/*
 * VagaAI product interface foundation — editorial readability pass.
 *
 * This layer is deliberately visual-only. Page-specific selectors keep the
 * existing markup, copy, analytics hooks and JavaScript contracts untouched.
 */

body[data-vagaai-ui] {
  --vui-focus: #4ece91;
  --vui-card-radius: 14px;
  --vui-control-radius: 10px;
  --vui-shadow: 0 1px 2px rgba(7, 18, 9, .04), 0 12px 34px rgba(7, 18, 9, .055);
  font-family: 'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-size: 16px;
  line-height: 1.6;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

body[data-vagaai-ui] :is(button, a, input, textarea, select):focus-visible {
  outline: 3px solid color-mix(in srgb, var(--vui-focus) 62%, transparent);
  outline-offset: 3px;
}

body[data-vagaai-ui] :is(button, input, textarea, select) {
  font-family: inherit;
}

body[data-vagaai-ui] :is(input, textarea, select) {
  font-size: 16px;
}

/* ── Shared theme control ─────────────────────────────────────────────
 * One compact interaction grammar across the product. The accessible name
 * remains on the button while the visible control is intentionally icon-only.
 */
body[data-vagaai-ui] .vui-theme-control {
  width: 40px;
  min-width: 40px;
  height: 40px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  flex: none;
  border: 1px solid var(--border, var(--app-border, rgba(10, 26, 16, .12)));
  border-radius: var(--vui-control-radius);
  background: var(--surface, var(--app-card, #fff));
  color: var(--text, var(--app-t1, #0a1a10));
  box-shadow: 0 1px 2px rgba(7, 18, 9, .035);
  cursor: pointer;
  transition: color .18s ease, border-color .18s ease, background .18s ease, transform .18s ease;
}

body[data-vagaai-ui] .vui-theme-control:hover {
  color: var(--green, var(--app-green, #1a7a4a));
  border-color: color-mix(in srgb, var(--green, var(--app-green, #1a7a4a)) 38%, transparent);
  background: color-mix(in srgb, var(--green, var(--app-green, #1a7a4a)) 7%, var(--surface, var(--app-card, #fff)));
  transform: translateY(-1px);
}

body[data-vagaai-ui] .vui-theme-control-icon {
  width: 18px;
  height: 18px;
  display: grid;
  place-items: center;
  flex: none;
  border-radius: 0;
  background: transparent;
  color: var(--green, var(--app-green, #1a7a4a));
}

body[data-vagaai-ui] .vui-theme-control svg {
  width: 15px;
  height: 15px;
  grid-area: 1 / 1;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

body[data-vagaai-ui] .vui-theme-label { display: none !important; }

body[data-vagaai-ui] .vui-theme-sun { display: none; }
html[data-theme="dark"] body[data-vagaai-ui] .vui-theme-moon { display: none; }
html[data-theme="dark"] body[data-vagaai-ui] .vui-theme-sun { display: block; }

body[data-vagaai-ui] .vui-theme-control--compact {
  width: 40px;
  min-width: 40px;
  padding: 0;
}

body[data-vagaai-ui] .vui-theme-control--compact .vui-theme-label { display: none !important; }

body[data-vagaai-ui="cv-editor"] .cn-theme-btn.vui-theme-control {
  width: 40px;
  min-width: 40px;
  margin-inline: auto;
  color: rgba(255, 255, 255, .78);
  border-color: rgba(255, 255, 255, .1);
  background: rgba(255, 255, 255, .055);
  box-shadow: none;
}

body[data-vagaai-ui="cv-editor"] .cn-theme-btn.vui-theme-control:hover {
  color: #fff;
  border-color: rgba(78, 206, 145, .3);
  background: rgba(78, 206, 145, .11);
}

body[data-vagaai-ui] .app-nav-item { font-size: 14px; min-height: 42px; }
body[data-vagaai-ui] .app-nav-label { font-size: 10.5px; }
body[data-vagaai-ui] .app-support { font-size: 12px; }
body[data-vagaai-ui] .app-profile strong { font-size: 12.5px; }
body[data-vagaai-ui] .app-profile span { font-size: 11.5px; }

@media (prefers-reduced-motion: reduce) {
  body[data-vagaai-ui] *,
  body[data-vagaai-ui] *::before,
  body[data-vagaai-ui] *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

/* ── Dashboard and embedded product home ─────────────────────────────── */
body[data-vagaai-ui="dashboard"] { font-size: 15px; }
body[data-vagaai-ui="dashboard"] .sb-btn { font-size: 14px; min-height: 42px; }
body[data-vagaai-ui="dashboard"] .sb-section-label { font-size: 10.5px; }
body[data-vagaai-ui="dashboard"] .sb-support,
body[data-vagaai-ui="dashboard"] .sb-support strong { font-size: 12px; }
body[data-vagaai-ui="dashboard"] .sb-profile-info strong { font-size: 12.5px; }
body[data-vagaai-ui="dashboard"] .sb-profile-info span { font-size: 11.5px; }
body[data-vagaai-ui="dashboard"] .pg-title { font-size: clamp(31px, 3vw, 38px); }
body[data-vagaai-ui="dashboard"] .pg-sub { font-size: 15px; line-height: 1.55; }
body[data-vagaai-ui="dashboard"] .pg-date { font-size: 13px; }
body[data-vagaai-ui="dashboard"] .pg-pill { font-size: 13px; padding: 7px 13px; }
body[data-vagaai-ui="dashboard"] .pba-eyebrow { font-size: 11.5px; }
body[data-vagaai-ui="dashboard"] .pba-title { font-size: clamp(27px, 2.5vw, 34px); line-height: 1.17; }
body[data-vagaai-ui="dashboard"] .pba-desc { font-size: 15px; line-height: 1.7; }
body[data-vagaai-ui="dashboard"] :is(.pba-btn-primary, .pba-btn-ghost) { font-size: 14px; min-height: 44px; padding-inline: 20px; }
body[data-vagaai-ui="dashboard"] .pba-priority-cargo { font-size: 16px; }
body[data-vagaai-ui="dashboard"] .pba-priority-empresa { font-size: 12.5px; }
body[data-vagaai-ui="dashboard"] .pba-score-label { font-size: 14px; }
body[data-vagaai-ui="dashboard"] .pba-score-sub { font-size: 12px; }
body[data-vagaai-ui="dashboard"] .workspace-section-label h2 { font-size: 17px; }
body[data-vagaai-ui="dashboard"] .workspace-section-link { font-size: 13px; }
body[data-vagaai-ui="dashboard"] .pv-eyebrow { font-size: 11px; }
body[data-vagaai-ui="dashboard"] .pv-title { font-size: clamp(27px, 2.3vw, 33px); }
body[data-vagaai-ui="dashboard"] .pv-desc { font-size: 14.5px; }
body[data-vagaai-ui="dashboard"] .pv-metric span { font-size: 11.5px; }
body[data-vagaai-ui="dashboard"] .pv-primary { font-size: 13.5px; min-height: 42px; }
body[data-vagaai-ui="dashboard"] .pv-updated { font-size: 11.5px; }
body[data-vagaai-ui="dashboard"] .pv-panel-head h3 { font-size: 15px; }
body[data-vagaai-ui="dashboard"] .pv-panel-head p { font-size: 12.5px; }
body[data-vagaai-ui="dashboard"] .pv-link { font-size: 12.5px; }
body[data-vagaai-ui="dashboard"] .pv-strength b { font-size: 13px; }
body[data-vagaai-ui="dashboard"] .pv-strength span { font-size: 11.5px; }
body[data-vagaai-ui="dashboard"] .pv-rank-num,
body[data-vagaai-ui="dashboard"] .pv-rank-freq,
body[data-vagaai-ui="dashboard"] .pv-version-count { font-size: 11.5px; }
body[data-vagaai-ui="dashboard"] .pv-rank-name { font-size: 12.5px; }
body[data-vagaai-ui="dashboard"] .profile-value-tools-head strong { font-size: 14px; }
body[data-vagaai-ui="dashboard"] .profile-value-tools-head span { font-size: 11.5px; }
body[data-vagaai-ui="dashboard"] .fer-nome { font-size: 13.5px; }
body[data-vagaai-ui="dashboard"] .fer-estado { font-size: 11.5px; }
body[data-vagaai-ui="dashboard"] .fer-selo { font-size: 9.5px; }
body[data-vagaai-ui="dashboard"] .bus-heading small { font-size: 10.5px; }
body[data-vagaai-ui="dashboard"] .bus-heading p { font-size: 14.5px; }
body[data-vagaai-ui="dashboard"] .bus-lbl { font-size: 12.5px; }
body[data-vagaai-ui="dashboard"] .bus-stage-sub { font-size: 11.5px; }
body[data-vagaai-ui="dashboard"] .opp-list-title-t { font-size: 14px; }
body[data-vagaai-ui="dashboard"] .opp-list-count-t { font-size: 11.5px; }
body[data-vagaai-ui="dashboard"] .opp-chip { font-size: 11.5px; min-height: 34px; }
body[data-vagaai-ui="dashboard"] .opp-item-cargo { font-size: 15px; }
body[data-vagaai-ui="dashboard"] .opp-item-sub { font-size: 11.5px; }
body[data-vagaai-ui="dashboard"] .opp-progress-top { font-size: 11px; }
body[data-vagaai-ui="dashboard"] .opp-action-kicker { font-size: 9.5px; }
body[data-vagaai-ui="dashboard"] .opp-action-lbl { font-size: 13px; }
body[data-vagaai-ui="dashboard"] .opp-action-when { font-size: 11px; }
body[data-vagaai-ui="dashboard"] :is(.card-ttl, .ai-title, .mv-outer-head h3, .score-card-head h3, .interview-list-head h3) { font-size: 17px; }
body[data-vagaai-ui="dashboard"] :is(.card-sub, .j-desc, .ai-text, .amber-text, .score-card-head p, .mv-footer-note, .interview-list-head p) { font-size: 13.5px; }
body[data-vagaai-ui="dashboard"] :is(.j-name, .mv-cargo, .int-cargo, .vaga-name) { font-size: 14.5px; }
body[data-vagaai-ui="dashboard"] :is(.j-cta, .mv-track-btn, .mv-tracking, .vf-chip, .int-filter, .int-action) { font-size: 12.5px; min-height: 36px; }

/* ── Vacancy analysis ───────────────────────────────────────────────── */
body[data-vagaai-ui="analysis"] .container { max-width: 920px; padding-top: clamp(42px, 6vw, 72px); }
body[data-vagaai-ui="analysis"] .page-title { font-size: clamp(34px, 5vw, 46px); letter-spacing: -.035em; }
body[data-vagaai-ui="analysis"] .page-sub { font-size: 16px; line-height: 1.65; max-width: 680px; }
body[data-vagaai-ui="analysis"] .steps-bar { margin-bottom: 3rem; }
body[data-vagaai-ui="analysis"] .step { font-size: 13px; padding-block: .8rem; }
body[data-vagaai-ui="analysis"] label { font-size: 14px; }
body[data-vagaai-ui="analysis"] :is(.form-section, .result) { letter-spacing: -.005em; }
body[data-vagaai-ui="analysis"] :is(.job-preview, .result-hero, .result-card, .next-step-card, .briefing-card, .upsell-card) { border-radius: var(--vui-card-radius); box-shadow: none; }
body[data-vagaai-ui="analysis"] .analysis-card-title p { font-size: 13px; line-height: 1.5; }
body[data-vagaai-ui="analysis"] .field > label span { font-size: 12.5px; }
body[data-vagaai-ui="analysis"] :is(.char-count, .fetch-status, .or-divider, .upload-hint, .cv-received-chars) { font-size: 12.5px; }
body[data-vagaai-ui="analysis"] :is(.job-preview-badge, .job-preview-edit, .job-preview-chip, .result-status-badge, .next-step-label, .score-projection-label, .plan-badge, .briefing-badge) { font-size: 12px; }
body[data-vagaai-ui="analysis"] .job-preview-title { font-size: 17px; }
body[data-vagaai-ui="analysis"] :is(.job-preview-company, .job-preview-excerpt, .priority-card-exp, .plan-desc, .plan-detalhes ul li, .briefing-sub, .briefing-block-list li, .score-resumo, .result-list li) { font-size: 13.5px; }
body[data-vagaai-ui="analysis"] :is(.priority-card-titulo, .plan-titulo, .next-step-estimate strong) { font-size: 14.5px; }
body[data-vagaai-ui="analysis"] :is(.btn-fetch, .upload-btn, .cv-mode-tab, .priority-card-link, .plan-expand-all, .briefing-expand-btn) { font-size: 13px; min-height: 40px; }
body[data-vagaai-ui="analysis"] :is(.btn-analyze, .btn-gerar-cv, .btn-cv-primary, .btn-pro) { font-size: 15px; min-height: 50px; }
body[data-vagaai-ui="analysis"] :is(.upsell-plan-badge, .upsell-quarterly-badge, .cvmic-status, .cv-builder-notice) { font-size: 12px; }
body[data-vagaai-ui="analysis"] .analysis-value-kicker { font-size: 11.5px; }
body[data-vagaai-ui="analysis"] .analysis-value-top p { font-size: 13px; }
body[data-vagaai-ui="analysis"] .analysis-ring-label small { font-size: 10.5px; }
body[data-vagaai-ui="analysis"] .analysis-score-copy strong { font-size: 13px; }
body[data-vagaai-ui="analysis"] .analysis-score-copy span { font-size: 11.5px; }
body[data-vagaai-ui="analysis"] .analysis-deliverable strong { font-size: 12.5px; }
body[data-vagaai-ui="analysis"] .analysis-deliverable span { font-size: 11.5px; }
body[data-vagaai-ui="analysis"] .analysis-tip-card p,
body[data-vagaai-ui="analysis"] .analysis-tip-card a { font-size: 12px; }
body[data-vagaai-ui="analysis"] :is(.next-step-microcopy, .score-breakdown-sub) { font-size: 12px; }

/* ── Curriculum library ─────────────────────────────────────────────── */
body[data-vagaai-ui="curriculum"] .page-title { font-size: clamp(32px, 5vw, 40px); letter-spacing: -.035em; }
body[data-vagaai-ui="curriculum"] .page-sub { font-size: 15.5px; line-height: 1.65; }
body[data-vagaai-ui="curriculum"] :is(.profile-head, .sec-card, .gap-panel, .version-row, .modal) { box-shadow: none; }
body[data-vagaai-ui="curriculum"] .profile-name { font-size: 20px; }
body[data-vagaai-ui="curriculum"] .profile-role { font-size: 14.5px; }
body[data-vagaai-ui="curriculum"] .completude-label { font-size: 12.5px; }
body[data-vagaai-ui="curriculum"] .gap-title { font-size: 11.5px; }
body[data-vagaai-ui="curriculum"] .gap-h2 { font-size: clamp(28px, 4vw, 35px); }
body[data-vagaai-ui="curriculum"] .gap-sub { font-size: 15px; }
body[data-vagaai-ui="curriculum"] .gap-metrics span,
body[data-vagaai-ui="curriculum"] .gap-side-label { font-size: 12px; }
body[data-vagaai-ui="curriculum"] .sec-title { font-size: 16px; }
body[data-vagaai-ui="curriculum"] .profile-main-label { font-size: 11px; }
body[data-vagaai-ui="curriculum"] :is(.profile-purpose, .versions-intro, .raw-cv, .metric-hint, .f-note) { font-size: 13px; }
body[data-vagaai-ui="curriculum"] :is(.version-row-copy b, .sec-item-title) { font-size: 14.5px; }
body[data-vagaai-ui="curriculum"] :is(.version-row-copy > span, .version-chip, .sec-item-sub, .sec-item ul) { font-size: 12.5px; }
body[data-vagaai-ui="curriculum"] :is(.version-tab, .version-action, .versions-more, .profile-danger, .sec-edit) { font-size: 12.5px; min-height: 36px; }
body[data-vagaai-ui="curriculum"] .tag { font-size: 13px; }
body[data-vagaai-ui="curriculum"] .f-row label { font-size: 13.5px; }

/* ── CV editor workspace (document typography remains untouched) ───── */
body[data-vagaai-ui="cv-editor"] { font-size: 15px; }
body[data-vagaai-ui="cv-editor"] .app-crumb { font-size: 13.5px; }
body[data-vagaai-ui="cv-editor"] .app-saved { font-size: 12px; }
body[data-vagaai-ui="cv-editor"] :is(.app-outline-btn, .app-primary-btn) { font-size: 13px; min-height: 40px; }
body[data-vagaai-ui="cv-editor"] .cn-brand-name { font-size: 17px; }
body[data-vagaai-ui="cv-editor"] .cn-back { font-size: 12.5px; }
body[data-vagaai-ui="cv-editor"] .cn-section-label { font-size: 10.5px; }
body[data-vagaai-ui="cv-editor"] .cn-step-name { font-size: 14px; }
body[data-vagaai-ui="cv-editor"] .cn-step-sub { font-size: 11.5px; }
body[data-vagaai-ui="cv-editor"] .cn-saved-indicator { font-size: 12px; }
body[data-vagaai-ui="cv-editor"] .cn-theme-btn { font-size: 12px; min-height: 38px; }
body[data-vagaai-ui="cv-editor"] .csv-kicker { font-size: 11.5px; }
body[data-vagaai-ui="cv-editor"] .csv-title { font-size: clamp(30px, 3vw, 36px); }
body[data-vagaai-ui="cv-editor"] .csv-sub { font-size: 15px; }
body[data-vagaai-ui="cv-editor"] :is(.csv-label, .csv-section-label, .csv-material-label, .cn-ats-label) { font-size: 12px; }
body[data-vagaai-ui="cv-editor"] :is(.csv-help, .csv-photo-sub, .csv-char-count, .csv-inline-fb, .csv-smart-warn, .csv-ats-note, .csv-send-sub, .csv-send-manual, .csv-tracker-sub) { font-size: 12.5px; }
body[data-vagaai-ui="cv-editor"] :is(.csv-item-name, .csv-photo-label, .csv-send-title, .csv-tracker-title) { font-size: 14px; }
body[data-vagaai-ui="cv-editor"] .csv-item-sub { font-size: 12px; }
body[data-vagaai-ui="cv-editor"] :is(.csv-btn-next, .csv-btn-prev, .csv-dl-btn, .csv-ai-btn, .csv-material-carta, .csv-send-btn, .csv-tracker-mark-btn) { font-size: 14px; min-height: 42px; }
body[data-vagaai-ui="cv-editor"] :is(.csv-add-btn, .csv-accordion-hd, .csv-return-yes, .csv-return-no, .csv-tracker-select) { font-size: 13px; min-height: 38px; }
body[data-vagaai-ui="cv-editor"] .job-summary-label { font-size: 10.5px; }
body[data-vagaai-ui="cv-editor"] .job-summary-role { font-size: 13px; }
body[data-vagaai-ui="cv-editor"] :is(.job-summary-company, .job-summary-text, .job-summary-link, .cv-quality-copy, .pdf-status-copy, .pdf-status-foot) { font-size: 11px; }
body[data-vagaai-ui="cv-editor"] .preflight-title { font-size: 26px; }
body[data-vagaai-ui="cv-editor"] .preflight-sub { font-size: 14px; }
body[data-vagaai-ui="cv-editor"] :is(.pf-row, .pf-tip, .pf-btn) { font-size: 13px; }
body[data-vagaai-ui="cv-editor"] :is(.sf-lbl, .s4-section-lbl, .s4-pillar-lbl) { font-size: 10.5px; }
body[data-vagaai-ui="cv-editor"] :is(.sf-input, .se-add, .sp-cloud-btn) { font-size: 13px; }

/* ── Interview simulator ─────────────────────────────────────────────── */
body[data-vagaai-ui="interview"] .container { max-width: 940px; padding-top: clamp(42px, 6vw, 72px); }
body[data-vagaai-ui="interview"] .page-title { font-size: clamp(34px, 5vw, 46px); }
body[data-vagaai-ui="interview"] .page-sub { font-size: 16px; line-height: 1.65; }
body[data-vagaai-ui="interview"] .field label { font-size: 12.5px; }
body[data-vagaai-ui="interview"] :is(.btn-primary, .btn-eval, .btn-next, .pro-gate-btn) { font-size: 15px; min-height: 48px; }
body[data-vagaai-ui="interview"] :is(.btn-ghost, .btn-skip, .btn-retry, .audio-btn, .btn-fetch) { font-size: 13.5px; min-height: 40px; }
body[data-vagaai-ui="interview"] .question-text { font-size: clamp(23px, 3vw, 28px); }
body[data-vagaai-ui="interview"] :is(.question-dica, .feedback-modelo, .feedback-resumo) { font-size: 14px; }
body[data-vagaai-ui="interview"] :is(.feedback-list li, .feedback-dica, .result-sub, .interview-cargo) { font-size: 13px; }
body[data-vagaai-ui="interview"] :is(.q-num, .q-cat, .q-nivel, .char-hint, .feedback-section-title, .result-score-label, .answer-summary-resumo) { font-size: 12px; }
body[data-vagaai-ui="interview"] .answer-summary-q { font-size: 13.5px; }
body[data-vagaai-ui="interview"] .result-title { font-size: 24px; }

/* ── Cover letter workspace ─────────────────────────────────────────── */
body[data-vagaai-ui="cover-letter"] { font-size: 16px; }
body[data-vagaai-ui="cover-letter"] .container { padding-top: clamp(36px, 5vw, 60px); }
body[data-vagaai-ui="cover-letter"] .page-title { font-size: clamp(32px, 4vw, 40px); }
body[data-vagaai-ui="cover-letter"] .page-sub { font-size: 15.5px; line-height: 1.65; }
body[data-vagaai-ui="cover-letter"] :is(.card, .letter-panel, .job-preview) { box-shadow: none; }
body[data-vagaai-ui="cover-letter"] .card-title { font-size: 13px; }
body[data-vagaai-ui="cover-letter"] .field label { font-size: 12.5px; }
body[data-vagaai-ui="cover-letter"] :is(.btn-generate, .pro-gate-btn) { font-size: 15px; min-height: 48px; }
body[data-vagaai-ui="cover-letter"] :is(.btn-fetch, .tom-btn, .btn-copy, .btn-download, .upload-btn) { font-size: 13px; min-height: 38px; }
body[data-vagaai-ui="cover-letter"] .letter-title { font-size: 15px; }
body[data-vagaai-ui="cover-letter"] .letter-text { font-size: 15px; line-height: 1.85; }
body[data-vagaai-ui="cover-letter"] :is(.subject-box, .carta-porque-dica, .fmt-dica, .rd-check-desc, .rd-sub, .job-preview-excerpt, .hist-sub, .hist-item-meta) { font-size: 12.5px; }
body[data-vagaai-ui="cover-letter"] :is(.highlights-title, .rd-eyebrow, .rd-highlights-title, .cv-label-row label) { font-size: 11.5px; }
body[data-vagaai-ui="cover-letter"] :is(.highlight-tag, .rd-prova-item, .job-preview-badge, .job-preview-chip) { font-size: 12px; }
body[data-vagaai-ui="cover-letter"] :is(.job-preview-title, .rd-title) { font-size: 17px; }
body[data-vagaai-ui="cover-letter"] :is(.hist-titulo, .hist-item-cargo, .rd-check-title) { font-size: 14px; }

/* ── Onboarding funnels ─────────────────────────────────────────────── */
body[data-vagaai-ui="onboarding"] .ob-main { max-width: 680px; padding-top: clamp(42px, 6vw, 68px); }
body[data-vagaai-ui="onboarding"] .ob-main.wide { max-width: 820px; }
body[data-vagaai-ui="onboarding"] h1 { font-size: clamp(29px, 6vw, 39px); letter-spacing: -.035em; }
body[data-vagaai-ui="onboarding"] .ob-sub { font-size: 16px; line-height: 1.65; }
body[data-vagaai-ui="onboarding"] .ob-choice { border-radius: var(--vui-card-radius); padding: 18px 20px; }
body[data-vagaai-ui="onboarding"] .ob-choice-t { font-size: 15.5px; }
body[data-vagaai-ui="onboarding"] .ob-choice-d { font-size: 13.5px; }
body[data-vagaai-ui="onboarding"] :is(label, .ob-diagnostic-title, .ob-method-t, .ob-item, .ob-locked-i, .ob-context-sub, .ob-radar-d, .ob-radar-check) { font-size: 13.5px; }
body[data-vagaai-ui="onboarding"] :is(label small, .ob-hint, .ob-note, .ob-micro, .ob-plan-note, .ob-profile-l) { font-size: 12px; }
body[data-vagaai-ui="onboarding"] .ob-btn { font-size: 16px; min-height: 54px; }
body[data-vagaai-ui="onboarding"] :is(.ob-back, .ob-link, .ob-close) { font-size: 13.5px; }
body[data-vagaai-ui="onboarding"] :is(.ob-context-title, .ob-context-t, .ob-radar-t, .ob-gate-t) { font-size: 20px; }
body[data-vagaai-ui="onboarding"] .ob-modal-t { font-size: 24px; }
body[data-vagaai-ui="onboarding"] .ob-modal-d { font-size: 14.5px; }
body[data-vagaai-ui="onboarding"] .ob-journey-label-item { font-size: 11.5px; }
body[data-vagaai-ui="onboarding"] .ob-journey-step-label { font-size: 11.5px !important; }
body[data-vagaai-ui="onboarding"] .ob-journey-progress { font-size: 11.5px !important; }
body[data-vagaai-ui="onboarding"] .ob-journey-toggle { font-size: 11px !important; min-height: 34px; }
body[data-vagaai-ui="onboarding"] .ob-journey-label { font-size: 10.5px; }
body[data-vagaai-ui="onboarding"] .ob-journey-value { font-size: 12px; }

/* ── Authentication entry ───────────────────────────────────────────── */
body[data-vagaai-ui="auth"] .card { border-radius: 18px; box-shadow: var(--vui-shadow); }
body[data-vagaai-ui="auth"] .card-title { font-size: clamp(28px, 6vw, 34px); }
body[data-vagaai-ui="auth"] .card-sub { font-size: 15px; }
body[data-vagaai-ui="auth"] :is(.tab, label, .foot, .back) { font-size: 14px; }
body[data-vagaai-ui="auth"] :is(.btn, .btn-google, .btn-outline) { min-height: 48px; font-size: 15px; }

@media (max-width: 760px) {
  body[data-vagaai-ui] { font-size: 15px; }
  body[data-vagaai-ui="dashboard"] .pg-title { font-size: 30px; }
  body[data-vagaai-ui="dashboard"] .pba-title { font-size: 28px; }
  body[data-vagaai-ui="dashboard"] .pv-title { font-size: 27px; }
  body[data-vagaai-ui="analysis"] .container,
  body[data-vagaai-ui="interview"] .container,
  body[data-vagaai-ui="cover-letter"] .container { padding-inline: 20px; }
  body[data-vagaai-ui="analysis"] .page-title,
  body[data-vagaai-ui="interview"] .page-title,
  body[data-vagaai-ui="cover-letter"] .page-title { font-size: 32px; }
  body[data-vagaai-ui="cv-editor"] .csv-title { font-size: 30px; }
  body[data-vagaai-ui="onboarding"] .ob-main { padding-inline: 20px; }
  body[data-vagaai-ui="analysis"] .analysis-side { grid-row: auto; }
}

/* ── Global product shell · editorial identity v3 ─────────────────────
 * The public identity is translated here as product infrastructure:
 * warm paper, flat forest navigation, disciplined borders and restrained
 * elevation. Module content and functional states remain page-owned.
 */
body[data-vagaai-ui] {
  --vui-paper: #f8f7e8;
  --vui-paper-strong: #ffffeb;
  --vui-ink: #1a1a1a;
  --vui-forest: #0a1a10;
  --vui-forest-soft: #123321;
  --vui-emerald: #1a7a4a;
  --vui-mid: #2cba74;
  --vui-mint: #77edb9;
  --vui-line: #cbd2c3;
  --vui-line-soft: #e1e5d7;
  --vui-subtle: #eef1df;
  --vui-danger: #b94b42;

  /* Aliases used by the independent product surfaces. */
  --bg: var(--vui-paper);
  --bg-card: var(--vui-paper-strong);
  --bg-sub: var(--vui-subtle);
  --surface: var(--vui-paper-strong);
  --surface2: var(--vui-subtle);
  --border: var(--vui-line);
  --border-soft: var(--vui-line-soft);
  --text: var(--vui-ink);
  --muted: #516452;
  --muted2: #687b69;
  --t1: var(--vui-ink);
  --t2: #3f5744;
  --t3: #607361;
  --green: var(--vui-emerald);
  --green-bright: var(--vui-mid);
  --green-dim: #e2f3e8;
  --green-border: rgba(26, 122, 74, .34);
  --gb-forest: var(--vui-forest);
  --gb-emerald: var(--vui-emerald);
  --gb-mid: var(--vui-mid);
  --gb-bright: var(--vui-mint);
  --app-bg: var(--vui-paper);
  --app-card: var(--vui-paper-strong);
  --app-sub: var(--vui-subtle);
  --app-border: var(--vui-line);
  --app-t1: var(--vui-ink);
  --app-t2: #3f5744;
  --app-t3: #607361;
  background: var(--vui-paper);
  color: var(--vui-ink);
}

html[data-theme="dark"] body[data-vagaai-ui] {
  --vui-paper: #08120d;
  --vui-paper-strong: #0f2117;
  --vui-ink: #f4f2df;
  --vui-forest: #050d08;
  --vui-forest-soft: #123321;
  --vui-emerald: #4ece91;
  --vui-mid: #77edb9;
  --vui-mint: #8af4c8;
  --vui-line: #2d4334;
  --vui-line-soft: #1c3023;
  --vui-subtle: #13291c;
  --bg: var(--vui-paper);
  --bg-card: var(--vui-paper-strong);
  --bg-sub: var(--vui-subtle);
  --surface: var(--vui-paper-strong);
  --surface2: var(--vui-subtle);
  --border: var(--vui-line);
  --border-soft: var(--vui-line-soft);
  --text: var(--vui-ink);
  --muted: #a9b9aa;
  --muted2: #8fa392;
  --t1: var(--vui-ink);
  --t2: #bfd0c0;
  --t3: #94a795;
  --green: var(--vui-emerald);
  --green-bright: var(--vui-mint);
  --green-dim: rgba(119, 237, 185, .12);
  --green-border: rgba(119, 237, 185, .32);
  --gb-emerald: var(--vui-emerald);
  --gb-mid: var(--vui-mid);
  --gb-bright: var(--vui-mint);
  --app-bg: var(--vui-paper);
  --app-card: var(--vui-paper-strong);
  --app-sub: var(--vui-subtle);
  --app-border: var(--vui-line);
  --app-t1: var(--vui-ink);
  --app-t2: #bfd0c0;
  --app-t3: #94a795;
}

body[data-vagaai-ui]::before { background: none; }
body[data-vagaai-ui] ::selection { background: var(--vui-mint); color: var(--vui-forest); }

body[data-vagaai-ui] :is(
  .pg-title,
  .page-title,
  .csv-title,
  .preflight-title,
  .carta-intro h1,
  .gap-h2,
  .profile-name
) {
  font-family: 'Lora', Georgia, serif;
  color: var(--vui-ink);
  letter-spacing: -.035em;
}

/* Desktop navigation: one flat, recognisable forest rail. */
body[data-vagaai-ui] :is(.sidebar, .app-sidebar, .cv-nav) {
  background: var(--vui-forest);
  border-right: 2px solid var(--vui-ink);
  box-shadow: none;
}

body[data-vagaai-ui] :is(.sidebar, .app-sidebar)::before { display: none; }

body[data-vagaai-ui] :is(.sb-brand, .app-brand, .cn-brand) {
  border-bottom: 1px solid rgba(255, 255, 235, .13);
  margin-bottom: 18px;
}

body[data-vagaai-ui] :is(.sb-section-label, .app-nav-label, .cn-section-label) {
  color: rgba(255, 255, 235, .48);
  letter-spacing: .11em;
}

body[data-vagaai-ui] :is(.sb-btn, .app-nav-item, .cn-step) {
  border: 1px solid transparent;
  border-radius: 10px;
  color: rgba(255, 255, 235, .62);
  box-shadow: none;
}

body[data-vagaai-ui] :is(.sb-btn, .app-nav-item, .cn-step):hover {
  background: rgba(119, 237, 185, .1);
  color: var(--vui-paper-strong);
  border-color: rgba(119, 237, 185, .16);
}

body[data-vagaai-ui] :is(.sb-btn, .app-nav-item).active {
  background: var(--vui-paper-strong);
  color: var(--vui-forest);
  border-color: var(--vui-paper-strong);
  box-shadow: none;
}

body[data-vagaai-ui] :is(.sb-btn, .app-nav-item).active svg { color: var(--vui-emerald); }
body[data-vagaai-ui] :is(.sb-bottom, .app-sidebar-bottom, .cn-bottom) { border-top-color: rgba(255, 255, 235, .13); }

body[data-vagaai-ui] :is(.sb-support, .app-support) {
  background: transparent;
  border-color: rgba(255, 255, 235, .16);
  color: rgba(255, 255, 235, .58);
  box-shadow: none;
}

body[data-vagaai-ui] :is(.sb-support, .app-support) strong { color: var(--vui-paper-strong); }
body[data-vagaai-ui] :is(.sb-avatar, .app-avatar) { background: var(--vui-mid); color: var(--vui-forest); box-shadow: none; }

/* Page frame and utility header. */
body[data-vagaai-ui] :is(.main, .app-main, .main-shell, .cv-main) { background: var(--vui-paper); }

body[data-vagaai-ui] :is(.header, .app-header, .top-nav, .standalone-nav, .base-studio-topbar) {
  background: color-mix(in srgb, var(--vui-paper-strong) 96%, transparent);
  border-bottom: 1px solid var(--vui-line);
  box-shadow: none;
  backdrop-filter: blur(16px);
}

html[data-theme="dark"] body[data-vagaai-ui] :is(.header, .app-header, .top-nav, .standalone-nav, .base-studio-topbar) {
  background: color-mix(in srgb, var(--vui-paper-strong) 94%, transparent);
}

body[data-vagaai-ui] :is(.content, .container) { width: 100%; }

body[data-vagaai-ui] :is(.vui-theme-control, .icon-btn, .theme-btn, .curriculum-theme-btn) {
  background: var(--vui-paper-strong);
  border: 1px solid var(--vui-line);
  color: var(--vui-emerald);
  box-shadow: none;
}

/* Shared control grammar. No handlers or states are changed here. */
body[data-vagaai-ui] :is(input, textarea, select) {
  background: var(--vui-paper-strong);
  color: var(--vui-ink);
  border-color: var(--vui-line);
  border-radius: var(--vui-control-radius);
  box-shadow: none;
}

body[data-vagaai-ui] :is(input, textarea, select):focus {
  border-color: var(--vui-emerald);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--vui-emerald) 14%, transparent);
}

body[data-vagaai-ui] :is(
  .btn-cta,
  .btn-analyze,
  .btn-primary,
  .btn-generate,
  .save-btn,
  .app-primary-btn
) {
  background: var(--vui-emerald);
  color: #fff;
  border: 1px solid var(--vui-forest);
  box-shadow: none;
}

body[data-vagaai-ui] :is(
  .btn-cta,
  .btn-analyze,
  .btn-primary,
  .btn-generate,
  .save-btn,
  .app-primary-btn
):hover {
  background: var(--vui-forest-soft);
  color: #fff;
  box-shadow: none;
  transform: none;
}

body[data-vagaai-ui] :is(
  .card,
  .profile-head,
  .sec-card,
  .result-card,
  .question-card,
  .interview-header,
  .analysis-form-card,
  .analysis-side-card,
  .carta-workspace,
  .carta-loading-state,
  .carta-result-workspace
) {
  border-color: var(--vui-line);
  box-shadow: none;
}

/* Dashboard has its own shell markup; keep it visually identical. */
body[data-vagaai-ui="dashboard"] .sidebar {
  background: var(--vui-forest);
  border-right: 2px solid var(--vui-ink);
}

body[data-vagaai-ui="dashboard"] .header { background: var(--vui-paper-strong); }

/* Mobile shell: bordered paper bar + flat forest active state. */
@media (max-width: 760px) {
  body[data-vagaai-ui] :is(.vm-top, .dm-top) {
    background: var(--vui-paper-strong);
    border-bottom: 2px solid var(--vui-ink);
    backdrop-filter: none;
  }

  body[data-vagaai-ui] :is(.vm-menu-btn, .dm-menu-btn, .vm-close, .dm-close) {
    background: var(--vui-paper-strong);
    color: var(--vui-ink);
    border: 1px solid var(--vui-ink);
    border-radius: 10px;
    box-shadow: none;
  }

  body[data-vagaai-ui] :is(.vm-drawer, .dm-drawer) {
    background: var(--vui-paper-strong);
    color: var(--vui-ink);
    border-right: 2px solid var(--vui-ink);
    border-radius: 0 20px 20px 0;
    box-shadow: none;
  }

  body[data-vagaai-ui] :is(.vm-drawer-btn, .dm-drawer-btn) {
    color: #425846;
    border: 1px solid transparent;
  }

  body[data-vagaai-ui] :is(.vm-drawer-btn, .dm-drawer-btn).active {
    background: var(--vui-forest);
    color: var(--vui-paper-strong);
    border-color: var(--vui-forest);
    box-shadow: none;
  }

  body[data-vagaai-ui] :is(.vm-bottom, .dm-bottom) {
    background: var(--vui-paper-strong);
    border: 2px solid var(--vui-ink);
    border-radius: 18px;
    box-shadow: 0 10px 28px rgba(10, 26, 16, .12);
  }

  body[data-vagaai-ui] :is(.vm-bottom-btn, .dm-bottom-btn) { color: #586a59; }

  body[data-vagaai-ui] :is(.vm-bottom-btn, .dm-bottom-btn).active {
    background: var(--vui-forest);
    color: var(--vui-paper-strong);
  }

  body[data-vagaai-ui] :is(.vm-bottom-btn, .dm-bottom-btn).active svg { color: var(--vui-mint); }
}
