/* One calm working surface. Detail opens when requested rather than competing
   with the current action. Extends the existing FlightPath visual language. */
:root { --sidebar: 254px; --muted: #506b84; }
body { background: #f5f9fd; line-height: 1.55; }
button, input, select { font: inherit; }
button, a, summary, select { -webkit-tap-highlight-color: transparent; }
select:focus-visible, summary:focus-visible { outline: 3px solid #55aaff; outline-offset: 3px; }
.sidebar { padding: 26px 16px 20px; }
.brand { font-size: 19px; }
.service-label { font-size: 12px; letter-spacing: .25px; margin-left: 0; }
.profile-card { margin: 28px 0; padding: 13px 10px; grid-template-columns: 36px minmax(0,1fr); }
.profile-card .avatar { width: 36px; height: 36px; }
.profile-status { display: none; }
.profile-card strong { font-size: 15px; overflow-wrap: anywhere; }
.profile-card div span { font-size: 13px; line-height: 1.5; }
.nav-label { font-size: 12px; letter-spacing: .4px; color: #61798e; }
.nav-item { min-height: 62px; padding: 13px 10px; grid-template-columns: 24px minmax(0,1fr); gap: 7px; }
.nav-item strong { font-size: 14px; line-height: 1.5; }
.nav-item small { display: none; }
.nav-number, .nav-glyph { font-size: 12px; }
.nav-item.active { border-color: transparent; box-shadow: inset 3px 0 #177be4; }
.primary-nav { gap: 10px; }
.compact-item { min-height: 46px; }
.support-navigation { margin: 25px 6px; }
.support-navigation > summary { cursor: pointer; display: flex; justify-content: space-between; padding: 14px 4px; color: #536f86; font-size: 14px; }
.support-navigation .secondary-nav { margin-top: 5px; }
.support-navigation .nav-label { display: none; }
.sidebar-foot { margin-top: auto; padding: 20px 8px 0; }
.quiet-action, .prototype-note strong, .prototype-note small { font-size: 12px; }
.quiet-action { padding: 6px 0; }
.topbar { height: 66px; padding: 0 32px; }
.breadcrumb { font-size: 12px; letter-spacing: .2px; }
.breadcrumb > span, .breadcrumb > b { display: none; }
.plan-shortcut, .plan-shortcut strong { font-size: 13px; }
.view { padding: 44px clamp(24px, 3.4vw, 60px) 64px; min-height: calc(100vh - 66px); max-width: 1550px; margin: auto; }
.view-intro { margin-bottom: 30px; gap: 24px; align-items: flex-start; }
.view-intro h1, .route-context-bar h1, .task-hero h1 { font-size: clamp(30px, 3vw, 44px); line-height: 1.15; letter-spacing: -1.6px; }
.view-intro > div:first-child > p:last-child { font-size: 16px; margin-top: 13px; line-height: 1.7; max-width: 680px; }
.eyebrow, .mini-label, .section-kicker, .question-meta, .builder-topline span { font-size: 12px; letter-spacing: .65px; }
.principle-note, .trust-strip { display: none; }
.route-builder-card { max-width: 880px; margin-left: 0; min-height: 440px; padding: 32px; box-shadow: 0 12px 45px #1a44600a; }
.builder-topline h2 { font-size: 27px; letter-spacing: -.7px; }
.route-options { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.route-option { display: grid; grid-template-columns: 36px 1fr; gap: 3px 12px; min-height: 96px; padding: 18px; align-content: center; }
.route-option .route-no { grid-row: span 2; margin: 0; align-self: center; font-size: 14px; }
.route-option strong { font-size: 16px; }
.route-option small { font-size: 13px; margin: 0; }
.diagnostic-options { grid-template-columns: 1fr; max-width: 740px; gap: 12px; }
.diagnostic-option { min-height: 64px; padding: 18px 22px; font-size: 16px; }
#diagnostic-question { font-size: 28px; letter-spacing: -.75px; line-height: 1.3; outline: none; }
#diagnostic-help { font-size: 16px; max-width: 680px; }
.question-meta { margin-top: 16px; }
.primary-button, .secondary-button, .text-action { font-size: 14px; }
.primary-button, .secondary-button { min-height: 46px; line-height: 1.45; }
.back-link { font-size: 14px; }
#view-now { background: none; padding-top: 36px; }
.route-context-bar { min-height: 0; margin: 0 auto 25px; gap: 24px; align-items: flex-start; color: var(--ink); }
.route-context-bar h1 { color: var(--navy); font-size: 25px; letter-spacing: -.75px; }
.route-context-bar > div { max-width: 720px; }
.route-context-bar > div > p:last-child { display: none; }
.route-context-bar .eyebrow { color: #496d8d; margin-bottom: 10px; }
.context-change { color: #176ab3; border: 1px solid #ccdeee; background: #fff; font-size: 13px; padding: 10px 14px; white-space: nowrap; }
.focus-layout { grid-template-columns: minmax(0, 1.6fr) minmax(250px,.85fr); gap: 24px; margin: 0 auto; align-items: start; }
.focus-card { min-height: 420px; padding: 34px; background: linear-gradient(130deg,#102d53,#081d3b); border: 0; color: white; box-shadow: 0 14px 45px #122e5720; }
.focus-card::after { display: none; }
.focus-heading p { color: #afd9ff; font-size: 12px; }
.focus-heading > span:last-child { background: #214771; color: #d3eaff; font-size: 12px; border-radius: 6px; }
.focus-card h2 { color: white; font-size: clamp(30px,3.2vw,44px); letter-spacing: -1.4px; line-height: 1.15; margin: 22px 0 16px; }
.focus-card > p { color: #c5d9ec; font-size: 16px; line-height: 1.7; }
.focus-reason { display: none; }
.focus-actions { margin-top: 27px; flex-wrap: wrap; }
.focus-actions .primary-button { min-width: 0; width: 100%; justify-content: space-between; background: #d8f18c; color: #102d43; }
.focus-actions .secondary-button { border-color: #487096; color: #dbeaff; background: transparent; }
.focus-actions .on-dark { color: #c1dfff; text-align: left; font-size: 13px; }
.focus-rule-note { font-size: 14px; color: #c4ddf5; padding-top: 18px; margin-top: 22px; border-top: 1px solid #456286; }
.focus-rule-note summary { cursor: pointer; }
.focus-rule-note p { line-height: 1.7; }
.parallel-card { background: transparent; padding: 16px 0; border: 0; box-shadow: none; color: var(--ink); }
.parallel-heading { border-color: #d4e2ed; padding-bottom: 18px; }
.parallel-heading p { color: #2f678f; font-size: 12px; }
.parallel-heading div span { font-size: 14px; color: #597188; }
.parallel-icon { color: #1976cb; background: #e4f2ff; }
.parallel-list { gap: 12px; margin-top: 20px; }
button.parallel-item { width: 100%; text-align: left; color: var(--ink); }
.parallel-item { border: 1px solid #d4e2ed; padding: 17px 14px; background: white; gap: 9px; }
.parallel-item:hover { border-color: #368be4; }
.parallel-item > span { color: #2471b9; border-color: #aecdea; }
.parallel-item strong { font-size: 15px; line-height: 1.5; }
.parallel-item small { display: none; }
.parallel-footnote { color: #61798e; font-size: 13px; line-height: 1.7; }
.conditions-disclosure { margin: 28px auto 0; max-width: 1240px; border-top: 1px solid var(--line); }
.conditions-disclosure > summary { padding: 18px 0; display: flex; justify-content: space-between; cursor: pointer; color: #526e85; font-size: 14px; }
.conditions-disclosure > summary span { color: #2d6fa7; }
.conditions-row { margin: 0; background: white; padding: 20px; border: 1px solid #dbe6ee; border-radius: 12px; }
.condition-pills span { font-size: 13px; }
.context-companion { margin-top: 22px; }
.companion-card { padding: 24px; min-height: 0; background: #fff; }
.companion-card h3 { font-size: 21px; letter-spacing: -.6px; }
.companion-card p:not(.mini-label) { display: none; }
.companion-card[data-type="evidence"] { background: #fff; border: 1px solid #caddea; color: var(--ink); }
.companion-card[data-type="evidence"] h3 { color: var(--navy); }
.companion-card[data-type="evidence"] .mini-label { color: #46738f; }
.companion-card .primary-button { background: #e7f3ff; color: #115e9f; border: 1px solid #c8e0f4; }
.route-progress-card { display: none; }
.status-legend { font-size: 13px; flex-wrap: wrap; gap: 16px; }
.route-board { gap: 12px; }
.route-step { grid-template-columns: 44px minmax(0,1fr) 112px 16px; gap: 17px; padding: 21px; min-height: 94px; }
.route-step .step-dependency { display: none; }
.route-step strong { font-size: 16px; line-height: 1.5; }
.route-step small { font-size: 14px; }
.route-step .step-number { width: 36px; height: 36px; font-size: 14px; display: grid; place-items: center; }
.step-state { font-size: 12px; white-space: normal; text-align: center; }
.route-step[data-state="parallel"] { border-style: solid; background: white; }
.route-step[data-state="complete"] { background: #f6f9fc; border-color: #d4e0e9; }
.task-hero { min-height: 0; padding: 30px; gap: 20px; align-items: center; }
.task-hero::after { display: none; }
.task-hero h1 { font-size: 34px; margin-top: 10px; }
.task-hero > div:first-child > p:last-child { display: none; }
.task-hero-status { display: none; }
.task-route-label { font-size: 12px; }
.task-tabs { margin-top: 24px; padding: 5px; }
.task-tab { font-size: 14px; min-width: 0; }
.task-detail-grid { display: block; }
.task-content { padding: 32px; min-height: 0; }
.task-content h2 { font-size: 28px; letter-spacing: -.8px; }
.task-content .lead, .numbered-actions p, .check-list li, .detail-callout p { font-size: 16px; line-height: 1.8; }
.task-aside { margin-top: 20px; padding: 0 26px; }
.task-aside details { border-bottom: 1px solid var(--line); }
.task-aside details:last-child { border: 0; }
.task-aside summary { padding: 19px 0; font-weight: 700; font-size: 15px; cursor: pointer; }
.task-aside .aside-section { border: 0; padding-top: 0; }
.task-aside li, .resource-link { font-size: 14px; line-height: 1.7; }
.task-complete-bar { margin-top: 22px; padding: 22px; }
.task-complete-bar strong { font-size: 14px; }
.task-complete-bar span { font-size: 12px; }
.task-complete-bar .primary-button { min-width: 0; white-space: normal; }
.rule-explanation { border: 1px solid #cbdfee; background: #f0f7fd; border-radius: 14px; padding: 25px; margin-top: 22px; }
.rule-explanation h3 { font-size: 20px; margin: 9px 0; }
.rule-explanation p, .rule-explanation li { font-size: 15px; line-height: 1.75; }
.rule-explanation[data-availability="blocked"], .rule-explanation[data-availability="confirm"] { background: #fffbf2; border-color: #e2d5b3; }
.source-disclosure { border-top: 1px solid #c5d8e8; margin-top: 15px; padding-top: 15px; }
.source-disclosure summary { cursor: pointer; font-size: 14px; }
.source-reference { display: block; padding: 14px 0; text-decoration: none; }
.source-reference strong { display: block; font-size: 14px; color: #135e9c; }
.source-reference small { display: block; color: #506e87; font-size: 13px; margin-top: 4px; }
.readiness-layout { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 22px; align-items: start; }
.document-selector { grid-column: 1 / -1; min-height: 0; padding: 20px; }
.document-selector > .panel-heading { display: none; }
.document-types { margin: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.document-type { width: auto; min-height: 46px; border: 1px solid #dce6ef; padding: 9px 12px; font-size: 14px; }
.document-type > div small { display: none; }
.document-type span { font-size: 12px; }
.review-panel, .result-panel { min-height: 0; padding: 27px; }
.result-panel.empty { min-height: 290px; }
.result-head h3 { font-size: 21px; max-width: none; }
.result-head p, .panel-heading p { font-size: 12px; }
.sample-file strong { font-size: 14px; overflow-wrap: anywhere; }
.sample-file small, .upload-zone small, .check-result p, .fix-box p { font-size: 14px; line-height: 1.7; }
.sample-file { grid-template-columns: 32px minmax(0,1fr); }
.sample-file > span:last-child { grid-column: 2; font-size: 12px; }
.result-panel .parallel-footnote { color: #bfcee1; }
.check-result strong { font-size: 15px; }
.check-result.unknown > span { background: #d4e8ff; color: #113e71; }
.privacy-note { display: none; }
.readiness-context { display: flex; gap: 15px; flex-wrap: wrap; justify-content: space-between; background: #eaf3fc; padding: 16px 20px; border-radius: 10px; margin-bottom: 22px; font-size: 14px; }
.school-tool { grid-template-columns: minmax(210px,.65fr) minmax(0,1.35fr); }
.school-result p, .school-result li, .school-filters p { font-size: 15px; }
.notice-feed p, .community-grid p, .answer-body { font-size: 16px; line-height: 1.8; }
.quick-questions { gap: 10px; }
.quick-questions button { font-size: 14px; }
.site-footer { font-size: 13px; }
.site-footer p { font-size: 13px; line-height: 1.7; }
.login-view { max-width: none; padding: 40px 20px; }
.login-card { width: min(710px,100%); padding: 38px; }
.login-brand { margin-bottom: 30px; }
.login-card h1 { font-size: 40px; letter-spacing: -1.6px; }
.login-card > p:not(.eyebrow):not(.login-note) { font-size: 16px; }
.journey-picker strong { font-size: 15px; }
.journey-picker small, .login-note { font-size: 13px; }
.login-divider { font-size: 12px; }
.demo-profiles strong { font-size: 14px; }
.demo-profiles small { font-size: 13px; }
.conditions-overview { display: flex; gap: 25px; justify-content: space-between; align-items: center; padding: 28px; background: white; border: 1px solid var(--line); border-radius: 15px; }
.conditions-overview h2 { font-size: 28px; margin: 8px 0; }
.conditions-overview p:not(.mini-label) { max-width: 520px; color: var(--muted); }
.answer-summary { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; margin: 25px 0; }
.answer-summary article { padding: 20px; border-bottom: 1px solid var(--line); }
.answer-summary span { display: block; color: var(--muted); font-size: 14px; }
.answer-summary strong { display: block; margin-top: 10px; font-size: 16px; }
.conditions-bottom { margin-bottom: 20px; color: var(--muted); font-size: 14px; }
dialog { color: var(--ink); width: min(800px,calc(100% - 32px)); max-height: 90dvh; padding: 30px; border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 30px 100px #001b4555; }
dialog::backdrop { background: #071a3670; backdrop-filter: blur(4px); }
.dialog-heading { display: flex; justify-content: space-between; gap: 20px; align-items: flex-start; }
.dialog-heading h2 { font-size: 28px; margin: 6px 0; letter-spacing: -.6px; }
.dialog-close { width: 40px; height: 40px; flex-shrink: 0; border-radius: 50%; background: #edf5fc; border: 0; font-size: 25px; color: var(--ink); }
.dialog-intro { color: var(--muted); font-size: 15px; margin-bottom: 25px; }
.condition-group { border-top: 1px solid var(--line); }
.condition-group summary { display: flex; justify-content: space-between; cursor: pointer; padding: 19px 0; font-weight: 700; }
.field-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; padding-bottom: 25px; }
.field-grid label { min-width: 0; display: flex; flex-direction: column; justify-content: flex-end; gap: 8px; font-size: 14px; }
.field-grid input, .field-grid select { width: 100%; min-width: 0; padding: 12px; border: 1px solid #b7cedf; border-radius: 8px; background: white; color: var(--ink); font-size: 14px; }
.dialog-actions { display: flex; justify-content: flex-end; gap: 12px; padding-top: 22px; position: sticky; bottom: -30px; background: white; padding-bottom: 20px; }
.coverage-banner { padding: 25px; background: #eaf4fe; border: 1px solid #c4ddf1; border-radius: 12px; }
.coverage-banner p { margin-bottom: 0; font-size: 15px; }
.coverage-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 25px; margin: 25px 0 36px; }
.coverage-grid article { padding: 22px 0; border-bottom: 1px solid var(--line); }
.coverage-grid h2 { font-size: 19px; margin: 0; }
.coverage-grid p { font-size: 15px; color: var(--muted); }
.registry-entry { border: 1px solid var(--line); border-radius: 12px; margin-bottom: 12px; padding: 23px; background: white; }
.registry-entry summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; cursor: pointer; }
.registry-entry summary strong { font-size: 16px; }
.registry-entry summary span { display: block; font-size: 13px; color: var(--muted); margin-top: 7px; }
.registry-entry p, .registry-entry dl { font-size: 15px; line-height: 1.7; }
.registry-entry dt { font-weight: 700; margin-top: 10px; }
.registry-entry dd { margin-left: 0; color: var(--muted); }
@media (max-width: 1200px) {
  .focus-layout { grid-template-columns: minmax(0,1.35fr) minmax(230px,.85fr); gap: 20px; }
  .focus-card { padding: 28px; }
  .focus-card h2 { font-size: 34px; }
  .task-detail-grid { display: block; }
  .readiness-layout { grid-template-columns: minmax(0,1fr); }
  .document-selector { grid-column: auto; }
  .result-panel.empty { min-height: 200px; }
}
@media (max-width: 1000px) {
  :root { --sidebar: 224px; }
  .view { padding: 32px 24px 50px; }
  .focus-layout { grid-template-columns: 1fr; }
  .parallel-list { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .parallel-card { padding-top: 6px; }
  .parallel-heading { border: 0; padding-bottom: 0; }
  .parallel-footnote { margin-top: 12px; }
  .route-context-bar { display: block; }
  .context-change { margin-top: 14px; }
  .route-step { grid-template-columns: 36px minmax(0,1fr) 92px; gap: 12px; }
  .step-arrow { display: none; }
  .conditions-overview { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 900px) {
  .app-shell { display: block; }
  .sidebar { width: 270px; padding: 25px 18px; }
  .view { padding: 32px 24px 50px; }
  .topbar { padding: 0 22px; }
  .task-hero { padding: 26px; }
}
@media (max-width: 600px) {
  .view { padding: 26px 18px 42px; }
  .route-options, .answer-summary, .coverage-grid, .field-grid, .school-tool { grid-template-columns: 1fr; }
  .route-builder-card { padding: 24px 20px; }
  .route-option { min-height: 88px; }
  .view-intro h1 { font-size: 32px; }
  .focus-card { padding: 25px; }
  .focus-card h2 { font-size: 33px; }
  .parallel-list { grid-template-columns: 1fr; }
  .route-step { grid-template-columns: 32px minmax(0,1fr); padding: 19px 15px; }
  .step-state { grid-column: 2; justify-self: start; padding: 4px 8px; }
  .task-tabs { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .task-hero h1 { font-size: 29px; }
  .task-content { padding: 25px 21px; }
  .task-content h2 { font-size: 25px; }
  .task-complete-bar { align-items: stretch; flex-direction: column; }
  .readiness-layout { grid-template-columns: minmax(0,1fr); }
  .document-selector { padding: 15px; }
  .document-type { flex: 1 1 160px; }
  .review-panel, .result-panel { padding: 22px; }
  .login-card { padding: 28px 22px; }
  .login-card h1 { font-size: 35px; }
  .login-brand { margin-bottom: 27px; }
  .journey-picker { grid-template-columns: 1fr; }
  .dialog-actions { flex-wrap: wrap; bottom: -22px; }
  dialog { padding: 22px; }
  .registry-entry summary { align-items: flex-start; flex-direction: column; gap: 4px; }
  .conditions-disclosure > summary { display: block; }
  .conditions-disclosure > summary span { display: block; margin-top: 5px; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }
