/* The shared page vocabulary. Loaded last, so every page uses the same spacing helpers, the same aircraft picker, the same
   empty state, and the same disabled look. Headers are the page-head pattern (app.css); buttons are the .btn rules in app.css. */

/* Shared surfaces keep colour restrained so feedback and the next action stay clear. */
.mod-card:not(.current), .tools-home-grid .mod-card, .sample-step, .wx-page .card,
.ss-page .card, .lg-page .card { box-shadow:none; border-color:var(--line); background:var(--surface); }
.mod-card:hover, .tools-home-grid .mod-card:hover { border-color:var(--link); box-shadow:none; }

/* A quiet dawn wash gives cards depth across the active light/dark palette.
   These translucent layers retain the component's base colour and selected state. */
:root {
  --card-surface:#fffcf5;
  --card-cool:color-mix(in srgb,var(--link) 3%,transparent);
  --card-warm:color-mix(in srgb,var(--action) 2%,transparent);
  --card-cool-interactive:color-mix(in srgb,var(--link) 5%,transparent);
  --card-warm-interactive:color-mix(in srgb,var(--action) 3%,transparent);
}
:root[data-theme="night"] {
  --card-surface:#292624;
  --card-cool:color-mix(in srgb,var(--link) 3%,transparent);
  --card-warm:color-mix(in srgb,var(--action) 2%,transparent);
  --card-cool-interactive:color-mix(in srgb,var(--link) 5%,transparent);
  --card-warm-interactive:color-mix(in srgb,var(--action) 3%,transparent);
}
body .page .card:not(:where(.page-head,.progress-overview,.danger-zone,.empty-state,.vcard,.sun,.vs-dial,.good,.bad,.correct,.wrong)),
body .page .card.pad:not(:where(.page-head,.progress-overview,.danger-zone,.empty-state,.vcard,.sun,.vs-dial,.good,.bad,.correct,.wrong)),
body .store-page .tier:is(.tier,.featured) {
  background-color:var(--card-surface);
  background-image:none;
  box-shadow:var(--shadow-1);
}
body :is(.mod-card,.progress-chapter,.acs-catalog-card,.acs-area-card,.store-page .tier) {
  --card-cool:var(--card-cool-interactive);
  --card-warm:var(--card-warm-interactive);
}
body .page .mod-card.current { border-color:var(--link); background-color:var(--nav-soft); }
/* Daylight cards need a clearer edge against the pale page canvas. */
:root:not([data-theme="night"]) body .page .card:not(:where(.danger-zone,.empty-state,.vcard,.sun,.vs-dial,.good,.bad,.correct,.wrong)),
:root:not([data-theme="night"]) body .page .card.pad:not(:where(.danger-zone,.empty-state,.vcard,.sun,.vs-dial,.good,.bad,.correct,.wrong)),
:root:not([data-theme="night"]) body .store-page .tier:is(.tier,.featured) {
  border-color:color-mix(in srgb,var(--ink-2) 28%,var(--line));
  box-shadow:0 1px 3px color-mix(in srgb,var(--ink) 8%,transparent),
    0 5px 16px -8px color-mix(in srgb,var(--ink) 22%,transparent);
}
:root:not([data-theme="night"]) body .page .mod-card.current { border-color:var(--link); }
@media(hover:hover) {
  body .page :is(a.card,button.card):not([disabled]):hover {
    border-color:color-mix(in srgb,var(--link) 55%,var(--line));
    box-shadow:var(--shadow-2);
  }
}
.site-support { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:12px 24px; padding:24px 0 10px; margin:20px 32px 0; border-top:1px solid var(--line); font-size:.85rem; }
.site-support a { color:var(--ink-2); padding:8px 0; }
.information-copy, .sample-step { padding:24px; margin-top:18px; }
.information-copy p, .sample-step .body, .sample-step>p { max-width:72ch; line-height:1.75; }
.information-copy h2 { margin-top:28px; }
.information-copy h2:first-child { margin-top:0; }
.sample-step h2 { margin:8px 0 12px; font-size:1.3rem; }
.sample-step>.eyebrow { margin-bottom:6px; }
.sample-step fieldset { border:0; padding:0; margin:16px 0; }
.sample-choice { display:flex; align-items:baseline; gap:12px; padding:12px; border:1px solid var(--line); border-radius:8px; margin:8px 0; cursor:pointer; }
.sample-feedback { margin-top:18px; padding:16px; background:var(--nav-soft); border-left:3px solid var(--link); }
.trainer-quiz-title { font:600 1.5rem var(--display); margin:12px 0 20px; }
.trainer-actions { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:16px; flex-wrap:wrap; }
.trainer-actions>.btn.primary { margin-left:auto; }
.trainer-exit { color:var(--ink-2); border-color:var(--line); box-shadow:none; }
.trainer-exit:hover { color:var(--ink); background:var(--surface-2); }
.study-independent { margin-top:24px; }
.study-independent>summary { display:flex; gap:16px; flex-wrap:wrap; align-items:baseline; padding:18px 0; font-size:1.1rem; font-weight:600; cursor:pointer; border-bottom:1px solid var(--line); }
.study-independent>summary::before { content:'+'; color:var(--link); }
.study-independent[open]>summary::before { content:'−'; }
.study-independent .study-hub-modes-heading { display:none; }
.tools-aircraft-filter[hidden] { display:none!important; }
.mod-own { flex-wrap:wrap; }
.search-page .result { max-width:90ch; }
.brief .body { max-width:75ch; line-height:1.75; }
.trainer-followup { margin:18px 36px 0; padding:18px 20px; }
.trainer-followup p { max-width:72ch; line-height:1.7; }
.trainer-followup h2 { font-size:1.1rem; margin-top:0; }
.admin-tools-table td>small { display:block; margin-top:6px; }
@media(max-width:650px) {
 .site-support { justify-content:flex-start; margin:20px 16px 0; gap:8px 18px; padding-bottom:22px; }
 .sample-step,.information-copy { padding:18px; }
 .study-independent>summary { gap:6px 12px; }
}

/* ---------- spacing: the named steps replace one-off inline margins ---------- */
.flush { margin: 0 !important; }
.mt-s { margin-top: 8px !important; }
.mt-m { margin-top: 16px !important; }
.mt-l { margin-top: 24px !important; }
.mb-s { margin-bottom: 8px !important; }
.mb-m { margin-bottom: 16px !important; }
.mb-l { margin-bottom: 24px !important; }
/* a section that follows other content: a clear step up, then a close heading */
.sec-gap { margin: 24px 0 10px; }
.sec-gap h2 { margin: 0; }

/* ---------- result colour: correct and incorrect answers read the same everywhere ---------- */
.text-good { color: var(--good) !important; }
.text-bad { color: var(--bad) !important; }

/* ---------- a link or card that is not available yet: same look as a disabled button ---------- */
.is-disabled { opacity: .45; pointer-events: none; }

/* ---------- empty state: a dashed panel that says what is missing and what to do next ---------- */
.empty-state { display: grid; justify-items: start; gap: 8px; padding: 22px 24px; border-style: dashed; box-shadow: none;
  background: color-mix(in srgb, var(--surface) 70%, transparent); }
.empty-state h2, .empty-state h3 { margin: 0; font-size: 1.05rem; }
.empty-state p { margin: 0; color: var(--ink-2); max-width: 62ch; }
.empty-state .row { margin-top: 6px; }
.empty-state[hidden] { display: none; }

/* ---------- page-head options: a labelled control (display, switch) sits beside the header's buttons ---------- */
.page-head .ph-opts .row { justify-content: flex-end; }
.page-head .ph-opts label:not(.wl-check) { display: flex; flex-direction: column; gap: 5px; font-size: .76rem; color: var(--ink-2); }
.page-head .ph-opts select { min-width: 110px; height: 40px; }

/* ---------- the aircraft picker: the one selector for module, store, and tool filters (sits in a page-head's filter row) ---------- */
.aircraft-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
.aircraft-tabs a { display: flex; flex-direction: row; align-items: center; gap: 8px; min-width: 0; padding: 9px 12px;
  border: 1px solid var(--line); border-radius: 10px; background: var(--surface); color: var(--ink); text-decoration: none; font-size: .85rem; }
.aircraft-tabs a:hover { border-color: var(--link); }
.aircraft-tabs a .ico { width: 18px; height: 18px; flex: none; }
.aircraft-tabs a > span { margin-left: 2px; padding: 1px 6px; border-radius: 5px; background: var(--surface-2); color: var(--ink-2); font-size: .72rem; }
.aircraft-tabs a[aria-current="page"] { background: var(--nav-soft); color: var(--link); border-color: var(--link); }
@media (max-width: 700px) {
  .aircraft-tabs { display: grid; grid-template-columns: 1fr 1fr; }
  .aircraft-tabs a { padding: 9px; font-size: .78rem; }
  .aircraft-tabs a > span { margin-left: auto; }
}

/* Section headings travel with their description as one compact content landmark. */
body .page .section-heading { display:block; margin:0 0 16px; padding:0; border:0; }
body .page .section-heading h2 { display:flex;align-items:center;gap:12px;margin:0;color:var(--ink);font:700 1.15rem/1.35 var(--ui);letter-spacing:0; }
body .page .section-heading h2::after { content:"";height:1px;min-width:24px;flex:1;background:var(--line); }
body .page .section-heading p { margin:5px 0 0;color:var(--ink-2);font-size:.82rem;line-height:1.5;max-width:90ch; }
@media(max-width:650px) { body .page .section-heading { margin-bottom:12px; } body .page .section-heading h2 { font-size:1.05rem; } }

/* Study text uses its available card width instead of leaving a fixed character gutter. */
body .page :is(.brief .body,.concept .body,.fc-body,.stem,.explain,.review-q,
  .sample-step .body,.sample-step > p,.information-copy p,.note-item p,
  .mv-brief-copy > p,.mv-standards,.mv-risks p,.wx-copy p,.wl-explanation,
  .trainer-followup p,.acs-areas-intro,.breakdown-help > div) {
  max-width:none;
  min-width:0;
  overflow-wrap:break-word;
}
body .page :is(.brief .body,.concept .body,.fc-body,.explain,.review-q,.sample-step .body,.information-copy p) {
  line-height:1.6;
}
body .page :is(.brief .body,.concept .body,.fc-body,.sample-step .body) p {
  margin-top:0;
  margin-bottom:.75em;
}
body .page :is(.brief .body,.concept .body,.fc-body,.sample-step .body) li {
  margin-bottom:.3em;
}
body .page .brief .body > p:first-child { line-height:1.55; margin-bottom:.85em; }
body .page.learn-reader .brief-head { margin-bottom:14px; }
@media(max-width:650px) {
  body .page :is(.brief .body,.concept .body,.fc-body,.explain,.sample-step .body) { line-height:1.65; }
}

/* Compact instructor signup; keep checkbox labels aligned with their control. */
.account-card .cfi-signup-option{display:flex;align-items:center;gap:10px}
.account-card .cfi-signup-option input{width:18px;height:18px;flex:0 0 18px;margin:0}
.account-card [data-cfi-certificate][hidden]{display:none}

/* Compact, aligned tool resources instead of a separate promotional card. */
.trainer-resource-footer{display:flex;justify-content:space-between;align-items:center;gap:14px 24px;flex-wrap:wrap;margin-top:20px;padding:16px 0 0;border-top:1px solid var(--line);box-shadow:none;background:none}
.trainer-resource-footer h2{font-size:1rem;margin:0 0 4px}
.trainer-resource-footer p{font-size:.85rem;color:var(--ink-2);margin:0;line-height:1.5}
.trainer-resource-footer nav{display:flex;gap:8px;flex-wrap:wrap}
.trainer-resource-footer .btn{min-height:40px;padding:8px 12px;box-shadow:none}
:root{--review-action:#956300;--review-action-ink:#fff}
:root[data-theme="night"]{--review-action:#c69532;--review-action-ink:#211906}
.btn.review-action{background:var(--review-action);color:var(--review-action-ink);border-color:var(--review-action);box-shadow:none}
.btn.review-action:hover{background:color-mix(in srgb,var(--review-action) 90%,#000);border-color:transparent;box-shadow:none}
.btn.review-action:focus-visible{outline:2px solid var(--link);outline-offset:3px;box-shadow:none}
@media(max-width:600px){.trainer-resource-footer{align-items:flex-start}.trainer-resource-footer nav{width:100%}}

/* Tool cards use the requested teal in their upper gradient accent. */
:root{--tool-card-accent:#26d9e0c9}
body .page .tools-home-grid .mod-card{--card-warm:color-mix(in srgb,var(--tool-card-accent) 4%,transparent)}
:root[data-theme="night"] body .page .tools-home-grid .mod-card{--card-warm:color-mix(in srgb,var(--tool-card-accent) 4%,transparent)}

/* The study dashboard prioritizes the next session, with a compact training summary. */
.today-sky.sky{padding:22px 24px 16px}
.today-sky .study-hub-bar{padding-bottom:10px;margin-bottom:14px}
.today-sky .sky-top{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px 24px}
.today-sky .greet{font-size:.8rem;margin:0 0 5px}
.today-sky h1{font-size:clamp(1.55rem,2.35vw,2.2rem);line-height:1.15;max-width:none;margin:0 0 8px}
.today-sky .sub{font-size:.88rem;line-height:1.5;max-width:none;margin:0;color:var(--ink-2)}
.today-sky .sub b{font-weight:600}
.today-sky .gauge{display:flex;align-items:center;gap:14px;min-width:0;padding:8px 0 8px 20px;text-align:left;border-left:1px solid var(--line);border-top:0}
.today-sky .gauge .num{font-size:2rem;line-height:1}
.today-sky .gauge .lbl{font-size:.72rem;margin-top:5px;white-space:nowrap}
.today-sky .gauge .sock{width:100px;max-width:100px;height:auto;margin:0;flex-shrink:0}
.today-action-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px 20px;margin-top:16px}
.today-sky .today-session{gap:16px}
.today-sky .today-session .btn{min-height:42px;padding:10px 16px;font-size:.88rem}
.today-sky .today-next{font-size:.82rem;padding:8px 0}
.today-sky .today-study-preference{display:inline-flex;align-items:center;gap:10px;margin:0;padding:7px 0;color:var(--ink-2);font-size:.76rem;text-decoration:none}
.today-preference-edit{color:var(--link);text-decoration:underline;text-underline-offset:3px}
.today-sky .today-status{margin-top:16px;border-radius:12px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.today-sky .today-status-item{grid-template-columns:18px minmax(0,1fr) auto;grid-template-rows:auto auto;gap:3px 8px;padding:11px 14px;align-items:center}
.today-sky .today-status-item .ico{grid-column:1;grid-row:1;width:16px;height:16px;color:var(--link)}
.today-sky .today-status-item>span{grid-column:2;grid-row:1;font-size:.75rem}
.today-sky .today-status-item>b{grid-column:3;grid-row:1;font-size:.94rem;white-space:nowrap}
.today-sky .today-status-item>small{grid-column:2/4;grid-row:2;font-size:.69rem}
.today-sky .today-schedule{margin-top:5px;padding:0}
.today-sky .today-schedule summary{padding:9px 0;gap:6px 10px;font-size:.78rem}
.today-sky .today-schedule summary .small{font-size:.75rem}
.today-sky .today-edit{font-size:.74rem}
.today-sky .today-trail-head{margin-top:6px;padding-top:10px}
@media(max-width:1000px){.today-sky .gauge{gap:10px;padding-left:14px}.today-sky .gauge .sock{width:74px}.today-sky .today-status{grid-template-columns:repeat(2,minmax(0,1fr))}.today-sky .today-status-item:nth-child(2n){border-right:0}.today-sky .today-status-item{border-bottom:1px solid var(--line)}.today-sky .today-status-item:last-child:nth-child(odd){grid-column:1/-1}.today-sky .today-status-item:last-child{border-bottom:0}}
@media(max-width:650px){.today-sky.sky{padding:16px}.today-sky .sky-top{grid-template-columns:minmax(0,1fr);gap:12px}.today-sky h1{font-size:1.6rem}.today-sky .gauge{border:0;padding:0;justify-content:flex-start;gap:12px}.today-sky .gauge>div{display:flex;align-items:baseline;gap:8px}.today-sky .gauge .num{font-size:1.6rem}.today-sky .gauge .lbl{font-size:.7rem;margin:0}.today-sky .gauge .sock{width:70px}.today-action-row{margin-top:12px;gap:4px}.today-sky .today-session{gap:8px 14px}.today-sky .today-study-preference{font-size:.72rem}.today-sky .today-status-item{grid-template-columns:minmax(0,1fr) auto;padding:10px;gap:3px 6px}.today-sky .today-status-item .ico{display:none}.today-sky .today-status-item>span{grid-column:1;font-size:.7rem}.today-sky .today-status-item>b{grid-column:2;font-size:.82rem}.today-sky .today-status-item>small{grid-column:1/3;font-size:.65rem}.today-sky .today-schedule summary .muted{flex:1 1 180px;font-size:.7rem}}

/* Recall ratings use the same red, amber, and green tones as other feedback actions. */
.grade-row .btn.g0{--recall-bg:var(--action-bad);--recall-ink:#fff}
.grade-row .btn.g1{--recall-bg:var(--review-action);--recall-ink:var(--review-action-ink)}
.grade-row .btn.g2{--recall-bg:var(--action-good);--recall-ink:#fff}
.grade-row .btn:is(.g0,.g1,.g2){background:var(--recall-bg);border-color:var(--recall-bg);color:var(--recall-ink);min-height:44px;box-shadow:none}
.grade-row .btn:is(.g0,.g1,.g2):hover{background:color-mix(in srgb,var(--recall-bg) 90%,#000);border-color:transparent;color:var(--recall-ink);box-shadow:none}
.grade-row .btn:is(.g0,.g1,.g2):focus-visible{outline:2px solid var(--link);outline-offset:3px;box-shadow:none}
.grade-row .btn small{color:inherit;opacity:.85}

/* Palette roles: blue for focus/navigation, orange for advancing, neutral control edges. */
body :is(input:not([type="checkbox"],[type="radio"],[type="range"],[type="hidden"]),select,textarea){border-color:var(--control-line)}
body :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline-color:var(--link);outline-offset:3px}
body .stack input:not([type="checkbox"]):not([type="radio"]):focus,
body #apiUrl:focus{outline:2px solid var(--link);outline-offset:3px;border-color:var(--link)}
body .vs-seg label:has(input:focus-visible){outline-color:var(--link)}
body .rp-search:focus-within{border-color:var(--link);box-shadow:none}
body .fc-stage:focus-visible .fc-ghost{box-shadow:0 0 0 3px var(--link)}
body input:is([type="checkbox"],[type="radio"]){accent-color:var(--link)}
.trainer-exit{border-color:var(--control-line)}
/* Bright semantic tokens are for text; filled destructive actions need a darker red. */
.btn.reset-danger-button{background:var(--action-bad);border-color:var(--action-bad);color:#fff}
.btn.reset-danger-button:hover{background:color-mix(in srgb,var(--action-bad) 90%,#000);color:#fff}

/* Contrast, repetition, alignment, proximity: orientation, controls, and content are distinct layers. */
body #main .tools-home>.page-head{margin-bottom:24px}
body .tools-home .page-head .ph-filters:not(:empty){padding:12px;margin-top:14px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
body .tools-home-grid{gap:20px}
body .tools-home-grid .tool-ico{background:var(--surface-2);color:var(--link);border:1px solid var(--line)}
body .tools-home-grid .lock-chip{background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line)}
body .tools-home-grid .mod-card h3{margin:0;color:var(--ink);font-weight:700}
body .tools-home-grid .mod-card .tools-topic{margin-bottom:-5px}
body .tools-home-grid .mod-card .mod-foot{margin-top:auto}
body .tools-home .tools-categories a[aria-current="page"]{box-shadow:inset 0 -1px var(--link)}
@media(max-width:650px){body #main .tools-home>.page-head{margin-bottom:18px}body .tools-home-grid{gap:14px}}

/* Warm reading surfaces complement the blue orientation headers. */
body .page :is(.card,.card.pad):not(:where(.page-head,.workspace-header,.learn-reader-heading,.fx-heading,.progress-overview,.danger-zone,.empty-state,.vcard,.sun,.vs-dial,.good,.bad,.correct,.wrong)){
  border-color:color-mix(in srgb,var(--ink-2) 25%,var(--card-surface));
}
body .tools-home-grid .tool-ico,body .tools-home-grid .lock-chip{
  background:color-mix(in srgb,var(--ink-2) 7%,var(--card-surface));
  border-color:color-mix(in srgb,var(--ink-2) 20%,var(--card-surface));
}
body .tools-home-grid .mod-foot{border-top-color:color-mix(in srgb,var(--ink-2) 22%,var(--card-surface))}

/* Paper and Signal: editorial neutral surfaces, with orange reserved for orientation and action. */
:root[data-design="paper-signal"]{--control-line:#85857d;--tool-card-accent:var(--link);--r-m:8px;--r-l:12px}
:root[data-design="paper-signal"][data-theme="night"]{--control-line:#777673}
:root[data-design="paper-signal"] body #main :is(.page-head,.workspace-header,.learn-reader-heading,.fx-heading,.why-masthead,.score-hero,.kt-result,.page-orientation){background:var(--canvas);border:0;border-bottom:2px solid var(--link);border-radius:0;box-shadow:none;overflow:visible}
:root[data-design="paper-signal"] body #main :is(.page-head,.workspace-header,.learn-reader-heading,.fx-heading,.why-masthead,.score-hero,.kt-result,.page-orientation)::after{content:none}
:root[data-design="paper-signal"] body #main :is(.page-head,.workspace-header,.learn-reader-heading,.fx-heading,.score-hero,.kt-result,.page-orientation) h1{color:var(--ink)}
:root[data-design="paper-signal"] body #main .page-head .ph-grid{padding:14px 0 20px}
:root[data-design="paper-signal"] body #main :is(.workspace-header,.learn-reader-heading,.fx-heading){padding-left:0;padding-right:0}
:root[data-design="paper-signal"] body .tools-home .page-head .ph-filters:not(:empty){background:var(--surface);border-radius:6px;padding:12px}
:root[data-design="paper-signal"] body .page :is(.card,.card.pad):not(:where(.page-head,.progress-overview,.danger-zone,.empty-state,.vcard,.sun,.vs-dial,.good,.bad,.correct,.wrong)),
:root[data-design="paper-signal"] body .store-page .tier{background:var(--surface);border:1px solid var(--line);border-radius:5px;box-shadow:none}
:root[data-design="paper-signal"] body .page .mod-card.current{border-color:var(--link);background:var(--nav-soft)}
:root[data-design="paper-signal"] body .rail{background:var(--surface);border-right-color:var(--line)}
:root[data-design="paper-signal"] body .tools-home-grid .tool-ico{background:transparent;border:0;color:var(--link)}
:root[data-design="paper-signal"] body .tools-home-grid .lock-chip{background:var(--surface-2);color:var(--ink-2);border:0}
:root[data-design="paper-signal"] body .tools-uses span{background:var(--surface-2)}
:root[data-design="paper-signal"] body .btn.primary,
:root[data-design="paper-signal"] body .btn-signin{background:var(--action);color:#fff;border-color:transparent;box-shadow:none}
:root[data-design="paper-signal"] body .btn.primary:hover,
:root[data-design="paper-signal"] body .btn-signin:hover{background:var(--action-hover);color:#fff;filter:none;box-shadow:none}
:root[data-design="paper-signal"] body .why-page .intro-hero{background:var(--surface);border:1px solid var(--line);box-shadow:none}
:root[data-design="paper-signal"] body .why-page .why-signin{background:var(--action);color:#fff}
:root[data-design="paper-signal"]{--info:var(--link);--info-soft:var(--surface-2);--info-line:var(--line);--info-ink:var(--ink)}

/* Search results share the catalog card grid and clear source hierarchy. */
.search-result-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:16px}
body .search-page .search-result-card{display:flex;flex-direction:column;align-items:flex-start;gap:9px;padding:20px;margin:0;max-width:none;text-decoration:none;min-width:0}
.search-result-card h2{margin:0;font:700 1.15rem/1.35 var(--ui);color:var(--ink)}
.search-result-source{color:var(--ink-2);font-size:.78rem}
body .search-result-card p{margin:0 0 8px;color:var(--ink-2);font-size:.9rem;line-height:1.65;overflow-wrap:anywhere}
.search-result-open{margin-top:auto;align-self:stretch;border-top:1px solid var(--line);padding-top:12px;text-align:right;color:var(--link);font-size:.8rem;font-weight:600}
.search-result-card .chip{height:auto;padding:3px 8px;font-size:.7rem}



/* Visual exploration has a distinct teal action alongside learning and quizzes. */
.btn.visual-guides-action{background:#167c70;color:#fff;border-color:#167c70;box-shadow:none}
.btn.visual-guides-action:hover{background:#116459;border-color:#116459;box-shadow:none}
:root[data-theme="night"] .btn.visual-guides-action{background:#20b8a3;color:#102a26;border-color:#20b8a3}
:root[data-theme="night"] .btn.visual-guides-action:hover{background:#45c9b7;border-color:#45c9b7}
.btn.visual-guides-action:focus-visible{outline:2px solid var(--link);outline-offset:3px;box-shadow:none}

/* Compass palette: navy stages, blue cards, cyan navigation and amber highlights. */
:root[data-design="compass"]{--info:var(--link);--info-soft:var(--surface-2);--info-line:var(--line);--info-ink:var(--ink);--tool-card-accent:var(--link)}
:root[data-design="compass"] body .page :is(.card,.card.pad):not(:where(.page-head,.progress-overview,.danger-zone,.empty-state,.vcard,.sun,.vs-dial,.good,.bad,.correct,.wrong)){background:var(--card-surface);border-color:var(--line);box-shadow:var(--shadow-1)}
:root[data-design="compass"] body #main :is(.page-head,.workspace-header,.learn-reader-heading,.fx-heading,.page-orientation){background:linear-gradient(120deg,var(--surface-2),var(--surface));border:1px solid var(--line);box-shadow:none}
:root[data-design="compass"] body #main :is(.page-head,.workspace-header,.learn-reader-heading,.fx-heading) h1{color:var(--link)}
:root[data-design="compass"] body .rail{background:var(--surface);border-color:var(--line)}
:root[data-design="compass"] body :is(.btn.primary,.btn-signin){background:var(--action);color:var(--action-ink,#fff);border-color:var(--action);box-shadow:none}
:root[data-design="compass"] body :is(.btn.primary,.btn-signin):hover{background:var(--action-hover);color:var(--action-ink,#fff);border-color:var(--action-hover);box-shadow:none;filter:none}
:root[data-design="compass"] body .tools-home-grid .tool-ico{background:var(--nav-soft);color:var(--link)}
:root[data-design="compass"] body .mod-card.current{background:var(--nav-soft);border-color:var(--link)}
:root[data-design="compass"] body .why-page .intro-hero{background:linear-gradient(120deg,var(--surface-2),var(--canvas));border-color:var(--line);box-shadow:none}
