/* V3: quiet study cards, clear daily direction, and evidence-led summaries. */
body.fx-active {
  --bg:#f5f7fb; --paper:#fff; --ink:#172c4b; --muted:#66758a; --line:#e1e7f0;
  --green:#2463eb; --soft:#eef4ff; --gold:#996a21;
  background:var(--bg)!important; color:var(--ink);
  font-family:system-ui,-apple-system,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  -webkit-font-smoothing:antialiased;
}
body.fx-active .shell { max-width:1040px; padding:0 28px 36px; }
#focus-app {
  --v3-blue:#2463eb; --v3-blue-hover:#1b50c6; --v3-navy:#172c4b;
  --v3-paper:#fff; --v3-bg:#f5f7fb; --v3-soft:#eef4ff; --v3-line:#e1e7f0;
  --v3-muted:#66758a; --v3-answer:#16634b; --v3-answer-bg:#edf6f0;
  --v3-shadow:0 4px 20px #172c4b04; --v3-nav-height:76px;
  --fx-bg:var(--bg); --fx-paper:var(--paper); --fx-ink:var(--ink);
  --fx-muted:var(--muted); --fx-line:var(--line); --fx-green:var(--v3-blue); --fx-soft:var(--soft);
  --pm-shadow:var(--v3-shadow); --pm-small-shadow:none;
  --pm-gold:#996a21; --pm-gold-soft:#fff5e6; --pm-header:var(--v3-navy);
  color:var(--ink); font-family:inherit; letter-spacing:-.025em; line-height:1.6;
}
#focus-app *, #focus-app *::before, #focus-app *::after { box-sizing:border-box; }
#focus-app .fx-root { color:var(--ink); --fx-green:var(--v3-blue); max-width:760px; }
#focus-app :is(button,input,select,textarea) { font-family:inherit; }
#focus-app button { min-height:44px; }
#focus-app :is(button,a,summary,input,select,textarea):focus-visible {
  outline:3px solid #79a2ff; outline-offset:3px;
}
#focus-app :is(h1,h2,h3,h4,p,button,summary) { word-break:keep-all; overflow-wrap:anywhere; }
#focus-app [hidden] { display:none!important; }

/* Header and persistent navigation appear on browsing pages only. */
#focus-app .v3-app-header, #focus-app .focus-chrome {
  max-width:960px; margin:0 auto; min-height:84px; padding:18px 0 22px;
  display:flex; align-items:center; justify-content:space-between; gap:16px; color:var(--v3-navy);
}
#focus-app .v3-brand { display:flex; align-items:center; min-width:0; }
#focus-app button.v3-brand, #focus-app .v3-brand button, #focus-app button.focus-wordmark {
  display:flex; align-items:center; gap:10px; min-width:0; padding:8px 0; border:0;
  background:transparent; color:var(--v3-navy); font-size:17px; font-weight:800; letter-spacing:-.04em;
}
#focus-app .v3-brand > span { display:block; text-align:left; line-height:1.35; }
#focus-app .v3-brand small { display:block; margin-top:3px; color:var(--v3-muted); font-size:10px; font-weight:500; letter-spacing:0; }
#focus-app .v3-brand svg { width:28px; height:28px; flex:0 0 28px; color:var(--v3-blue); }
#focus-app .focus-wordmark i { border-color:var(--v3-blue); }
#focus-app .v3-header-tools { display:flex; gap:5px; align-items:center; flex:0 0 auto; }
#focus-app .v3-header-tools button, #focus-app .focus-tools button {
  display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px;
  border:0; border-radius:12px; padding:10px; background:transparent; color:var(--v3-muted);
}
#focus-app .v3-header-tools svg { width:22px; height:22px; }
#focus-app .v3-header-tools button:hover, #focus-app .focus-tools button:hover { background:var(--v3-soft); color:var(--v3-blue); }
#focus-app .focus-tools button[aria-pressed=true] { color:#9e710c; }
#focus-app .focus-tools button[aria-pressed=true] svg { fill:#ffeab0; }
#focus-app:has(.v3-bottom-nav) { padding-bottom:calc(var(--v3-nav-height) + env(safe-area-inset-bottom) + 24px); }
#focus-app .v3-bottom-nav {
  position:fixed; z-index:30; bottom:0; left:50%; transform:translateX(-50%);
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px;
  width:min(100%,760px); min-height:var(--v3-nav-height);
  padding:8px 20px calc(8px + env(safe-area-inset-bottom)); margin:0;
  border:1px solid var(--v3-line); border-bottom:0; border-radius:20px 20px 0 0;
  background:var(--v3-paper); box-shadow:0 -4px 24px #172c4b05;
}
#focus-app .v3-bottom-nav button {
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px;
  min-width:0; min-height:58px; border:0; border-radius:12px; padding:7px 8px;
  background:transparent; color:var(--v3-muted); font-size:12px; font-weight:600; line-height:1.35;
}
#focus-app .v3-bottom-nav svg { width:23px; height:23px; stroke-width:1.8; }
#focus-app .v3-bottom-nav button[aria-current=page] { color:var(--v3-blue); background:var(--v3-soft); font-weight:750; }
#focus-app .v3-bottom-nav button:hover { color:var(--v3-blue); background:var(--v3-bg); }

/* Daily home and learning room share a measured card rhythm. */
#focus-app .v3-page { max-width:960px; margin:0 auto; padding:12px 0 32px; }
#focus-app .v3-page-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin:0 0 28px; }
#focus-app .v3-page-heading > div { min-width:0; }
#focus-app .v3-page-heading > button { flex:0 0 auto; min-height:44px; padding:10px 14px; font-size:12px; }
#focus-app .v3-page-heading h1, #focus-app .v3-page-heading h2 {
  color:var(--v3-navy); font-size:30px; line-height:1.35; letter-spacing:-.05em; font-weight:800; margin:0 0 10px;
}
#focus-app .v3-page-heading p { margin:0; max-width:640px; color:var(--v3-muted); font-size:14px; line-height:1.75; }
#focus-app .v3-eyebrow, #focus-app .v3-kicker { color:var(--v3-blue); font-size:12px; font-weight:750; letter-spacing:0; margin:0 0 8px; }
#focus-app .v3-card {
  min-width:0; border:1px solid var(--v3-line); border-radius:20px; padding:26px;
  background:var(--v3-paper); box-shadow:var(--v3-shadow); margin:0 0 20px;
}
#focus-app .v3-card h2 { margin:0 0 12px; color:var(--v3-navy); font-size:19px; font-weight:750; line-height:1.45; letter-spacing:-.035em; }
#focus-app .v3-card h3 { margin:0 0 10px; color:var(--v3-navy); font-size:16px; font-weight:750; }
#focus-app .v3-card p { margin:8px 0 16px; font-size:14px; line-height:1.8; color:var(--v3-muted); }
#focus-app .v3-card > :last-child { margin-bottom:0; }
#focus-app .v3-card-header, #focus-app .v3-section-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:18px; }
#focus-app .v3-card-header h2, #focus-app .v3-section-heading h2 { margin:0; }
#focus-app .v3-recommendation { padding:30px; border-color:#dbe6ff; position:relative; overflow:hidden; }
#focus-app .v3-recommendation h2 { font-size:25px; line-height:1.45; margin-bottom:12px; }
#focus-app .v3-recommendation .v3-button-primary { min-height:54px; min-width:200px; margin-top:8px; }
#focus-app .v3-recommendation .v3-meta { margin-top:14px; }
#focus-app .v3-recommend-tags { display:flex; flex-wrap:wrap; gap:6px; margin:16px 0; }
#focus-app .v3-recommend-tags > span { padding:5px 9px; border-radius:7px; background:var(--v3-bg); color:var(--v3-muted); font-size:12px; }
#focus-app .v3-actions { display:flex; flex-wrap:wrap; align-items:stretch; gap:10px; margin:18px 0 0; }
#focus-app .v3-actions > button { flex:1 1 150px; }
#focus-app .v3-button {
  display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:48px;
  padding:12px 18px; border:1px solid var(--v3-line); border-radius:12px;
  background:var(--v3-paper); color:var(--v3-navy); font-size:14px; font-weight:700;
  line-height:1.5; cursor:pointer; text-decoration:none; transition:background .16s,border-color .16s;
}
#focus-app .v3-button svg { width:20px; height:20px; flex:0 0 20px; }
#focus-app .v3-button-primary { background:var(--v3-blue); color:#fff; border-color:var(--v3-blue); }
#focus-app .v3-button-primary:hover:not(:disabled) { background:var(--v3-blue-hover); border-color:var(--v3-blue-hover); }
#focus-app .v3-button-secondary:hover:not(:disabled) { background:var(--v3-soft); border-color:#b8cdfa; color:var(--v3-blue); }
#focus-app .v3-button:disabled { opacity:.48; cursor:default; }
#focus-app .v3-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:0 0 20px; }
#focus-app .v3-stat { min-width:0; padding:22px 24px; background:var(--v3-paper); border:1px solid var(--v3-line); border-radius:18px; }
#focus-app .v3-stat > :is(span,small,p) { display:block; margin:0; font-size:12px; line-height:1.6; color:var(--v3-muted); }
#focus-app .v3-stat > :is(strong,b) { display:block; font-size:30px; font-weight:800; line-height:1.4; letter-spacing:-.04em; color:var(--v3-navy); margin:8px 0; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
#focus-app .v3-stat strong small { margin-left:4px; font-size:13px; font-weight:500; color:var(--v3-muted); letter-spacing:0; }
#focus-app .v3-meta, #focus-app .v3-card .v3-meta { color:var(--v3-muted); font-size:12px; line-height:1.75; margin:9px 0 0; }
#focus-app .v3-badge { display:inline-flex; align-items:center; gap:6px; padding:4px 9px; border-radius:6px; background:var(--v3-soft); color:var(--v3-blue); font-size:11px; font-weight:700; }
#focus-app .v3-today ul, #focus-app .v3-evidence ul { margin:14px 0 0; padding-left:20px; color:var(--v3-muted); font-size:13px; line-height:1.9; }
#focus-app .v3-today li + li, #focus-app .v3-evidence li + li { margin-top:6px; }
#focus-app .v3-bookmarks { display:block; }
#focus-app .v3-bookmarks h2 { margin-bottom:6px; }
#focus-app .v3-bookmarks p { margin:0; }
#focus-app .v3-bookmarks .v3-actions { margin:0; flex:0 1 auto; }
#focus-app .v3-section-heading > span { font-size:12px; color:var(--v3-muted); text-align:right; }
#focus-app .v3-section-heading h2 > span { color:var(--v3-blue); margin-left:4px; }
#focus-app .v3-today-details { display:flex; flex-wrap:wrap; gap:12px 24px; margin-top:20px; padding-top:18px; border-top:1px solid var(--v3-line); font-size:12px; color:var(--v3-muted); }
#focus-app .v3-today-details b { color:var(--v3-navy); margin-left:5px; font-variant-numeric:tabular-nums; }
#focus-app .v3-bookmark-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:18px 0; }
#focus-app .v3-bookmark-row { display:flex; align-items:center; gap:12px; min-width:0; min-height:76px; padding:14px; border:1px solid var(--v3-line); border-radius:12px; color:var(--v3-navy); background:var(--v3-paper); text-align:left; }
#focus-app .v3-bookmark-row > span:not(.v3-bookmark-icon) { min-width:0; flex:1; }
#focus-app .v3-bookmark-row b { display:block; font-size:13px; font-weight:650; }
#focus-app .v3-bookmark-row small { display:block; margin-top:4px; color:var(--v3-muted); font-size:11px; }
#focus-app .v3-bookmark-row > svg { flex:0 0 16px; width:16px; height:16px; color:var(--v3-muted); }
#focus-app .v3-bookmark-icon { display:grid; place-items:center; flex:0 0 36px; height:36px; background:#fff8e8; border-radius:11px; color:#9e710c; }
#focus-app .v3-bookmark-icon svg { width:21px; height:21px; fill:#ffeab0; }
#focus-app .v3-bookmark-row:hover { border-color:#b8cdfa; background:var(--v3-bg); }
#focus-app .v3-analysis-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.08fr); gap:20px; align-items:stretch; }
#focus-app .v3-analysis-grid > .v3-card { margin-bottom:20px; }
#focus-app .v3-radar { margin:14px auto 0; max-width:390px; width:100%; }
#focus-app .v3-radar svg { display:block; width:100%; height:auto; overflow:visible; }
#focus-app .v3-radar text { fill:var(--v3-muted); font-family:inherit; font-size:11px; letter-spacing:0; }
#focus-app .v3-radar .v3-radar-grid { fill:none; stroke:var(--v3-line); stroke-width:1; }
#focus-app .v3-radar .v3-radar-axis { stroke:var(--v3-line); stroke-width:1; }
#focus-app .v3-radar .v3-radar-value { fill:#2463eb1c; stroke:var(--v3-blue); stroke-width:2; stroke-linejoin:round; }
#focus-app .v3-radar .v3-radar-point { fill:var(--v3-blue); stroke:var(--v3-paper); stroke-width:2; }
#focus-app .v3-radar figcaption { margin:8px 0 0; color:var(--v3-muted); font-size:12px; line-height:1.7; }
#focus-app .v3-subject-bars { list-style:none; padding:0; margin:20px 0 0; display:grid; gap:20px; }
#focus-app .v3-subject-row { min-width:0; }
#focus-app .v3-subject-heading { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin:0 0 8px; font-size:13px; color:var(--v3-navy); font-weight:650; }
#focus-app .v3-subject-heading :is(strong,b) { color:var(--v3-blue); font-size:14px; font-weight:750; white-space:nowrap; font-variant-numeric:tabular-nums; }
#focus-app .v3-subject-heading i { display:inline-grid; place-items:center; width:21px; height:21px; margin-right:7px; background:var(--v3-soft); border-radius:6px; color:var(--v3-blue); font-size:10px; font-weight:700; font-style:normal; }
#focus-app .v3-progress { height:8px; background:var(--v3-bg); border-radius:4px; overflow:hidden; }
#focus-app .v3-progress > span { display:block; width:var(--v3-progress,0%); max-width:100%; height:100%; background:var(--v3-blue); border-radius:inherit; }
#focus-app .v3-subject-row .v3-meta { font-size:11px; margin-top:6px; }
#focus-app .v3-empty { padding:22px 18px; border:1px dashed var(--v3-line); background:var(--v3-bg); border-radius:12px; color:var(--v3-muted); font-size:13px; line-height:1.8; }
#focus-app .v3-evidence { background:var(--v3-paper); }
#focus-app .v3-evidence .v3-stats { grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; margin-top:20px; }
#focus-app .v3-evidence .v3-stat { background:var(--v3-bg); border:0; padding:16px 14px; border-radius:12px; }
#focus-app .v3-evidence .v3-stat > strong { font-size:27px; margin-bottom:0; }
#focus-app .v3-week { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:14px; list-style:none; padding:10px 0 0; margin:24px 0 12px; }
#focus-app .v3-week li { display:flex; flex-direction:column; align-items:center; gap:10px; min-width:0; color:var(--v3-muted); font-size:12px; }
#focus-app .v3-week-value { font-size:11px; font-variant-numeric:tabular-nums; text-align:center; }
#focus-app .v3-week-track { display:flex; align-items:flex-end; justify-content:center; width:100%; max-width:48px; height:116px; background:var(--v3-bg); border-radius:6px; overflow:hidden; }
#focus-app .v3-week-track i { display:block; height:var(--v3-height,0%); width:100%; background:#b7cafa; border-radius:6px; }
#focus-app .v3-week .is-today { color:var(--v3-blue); font-weight:700; }
#focus-app .v3-week .is-today i { background:var(--v3-blue); }
#focus-app .v3-calendar { margin-top:22px; border-top:1px solid var(--v3-line); padding-top:12px; }
#focus-app .v3-calendar > summary { min-height:44px; cursor:pointer; color:var(--v3-muted); font-size:13px; padding:10px 0; }
#focus-app .v3-calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:6px; margin-top:16px; }
#focus-app .v3-calendar-day { min-width:0; min-height:70px; padding:9px 5px; background:var(--v3-bg); border:1px solid transparent; border-radius:9px; text-align:center; color:var(--v3-muted); }
#focus-app .v3-calendar-day time { display:block; font-size:12px; }
#focus-app .v3-calendar-day strong { display:block; margin-top:7px; font-size:12px; font-weight:600; }
#focus-app .v3-calendar-day small { display:block; margin-top:3px; font-size:10px; }
#focus-app .v3-calendar-day.is-active { color:var(--v3-blue); background:var(--v3-soft); }
#focus-app .v3-calendar-day.is-today { border-color:var(--v3-blue); }
#focus-app .v3-calendar-day.is-future { background:transparent; opacity:.65; }
#focus-app .v3-calendar-weekday { padding:4px 0 6px; color:var(--v3-muted); text-align:center; font-size:11px; }
#focus-app .v3-recommend-detail, #focus-app .v3-feedback details { border-top:1px solid var(--v3-line); margin-top:18px; padding-top:4px; }
#focus-app .v3-recommend-detail summary, #focus-app .v3-feedback summary { min-height:44px; padding:11px 0; color:var(--v3-muted); font-size:13px; cursor:pointer; }
#focus-app .v3-recommend-detail p, #focus-app .v3-feedback details p { margin:4px 0 14px; font-size:13px; line-height:1.85; }
#focus-app .v3-result { border-color:#dbe6ff; }
#focus-app .v3-result .v3-stats { margin-top:22px; }
#focus-app .v3-result .v3-stat { padding:18px 16px; background:var(--v3-bg); border:0; border-radius:12px; }
#focus-app .v3-result-subjects { display:grid; gap:10px; padding:0; margin:20px 0; list-style:none; }
#focus-app .v3-result-subjects > :is(li,article,section,div) { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px 18px; min-width:0; padding:16px; border-radius:12px; background:var(--v3-bg); }
#focus-app .v3-result-subjects li > div { min-width:0; }
#focus-app .v3-result-subjects b { display:block; color:var(--v3-navy); font-size:13px; font-weight:700; }
#focus-app .v3-result-subjects small { display:block; margin-top:4px; color:var(--v3-muted); font-size:11px; line-height:1.65; }
#focus-app .v3-result-subjects li > span { color:var(--v3-blue); font-size:12px; line-height:1.65; }

/* Existing study and settings surfaces use the same neutral and blue controls. */
#focus-app .focus-chrome { max-width:760px; }
#focus-app .focus-flow { color:var(--v3-muted); margin-bottom:20px; --phase:var(--v3-blue); }
#focus-app .focus-flow-button { min-height:44px; color:var(--v3-muted); }
#focus-app .focus-rail i { background:var(--v3-line); }
#focus-app .focus-flow > p { color:var(--v3-muted); font-size:13px; }
#focus-app.focus-stage .fx-card-wrap, #focus-app.focus-stage .fx-card {
  border-color:var(--v3-line)!important; background:var(--v3-paper)!important;
  border-radius:20px!important; box-shadow:var(--v3-shadow)!important;
}
#focus-app.focus-stage .fx-card-wrap > .fx-card { box-shadow:none!important; }
#focus-app.focus-stage .fx-primary, #focus-app .fx-primary,
#focus-app .fx-rate[data-fx-rate=known], #focus-app .fx-rate[data-fx-input-rate=known] {
  background:var(--v3-blue)!important; border-color:var(--v3-blue)!important; color:#fff!important; box-shadow:none;
}
#focus-app .fx-secondary { background:var(--v3-paper); color:var(--v3-navy); border-color:var(--v3-line); box-shadow:none; }
#focus-app .science-check { background:var(--v3-paper)!important; border-color:var(--v3-line)!important; }
#focus-app input#science-answer, #focus-app .dq-form input, #focus-app.focus-stage .science-check input {
  color:var(--v3-navy); background:var(--v3-bg); border-color:var(--v3-line); border-radius:12px;
}
#focus-app input#science-answer:focus, #focus-app .dq-form input:focus { border-color:var(--v3-blue); box-shadow:0 0 0 3px #2463eb15; }
#focus-app :is(.fx-panel,.fx-settings-group,.dq-panel,.rv-panel,.course-finish) { border-color:var(--v3-line); background:var(--v3-paper); }
#focus-app .fx-page-heading h2 { color:var(--v3-navy); font-size:27px; letter-spacing:-.045em; }
#focus-app .fx-settings-group { padding:22px; border-radius:18px; margin-bottom:18px; }
#focus-app .fx-settings-group > h3 { color:var(--v3-navy); }
#focus-app .fx-settings-row small, #focus-app .fx-switch-row small { font-size:12px; line-height:1.75; }
#focus-app .fx-choice.is-selected { border-color:var(--v3-blue); background:var(--v3-soft); box-shadow:0 0 0 1px var(--v3-blue); }
#focus-app .fx-choice.is-selected .fx-choice-check { border-color:var(--v3-blue); background:var(--v3-blue); color:#fff; }
#focus-app .fx-field input, #focus-app .fx-field select { font-size:16px; color:var(--v3-navy); }
#focus-app .fx-wizard-actions { background:var(--v3-bg); }
#focus-app:has(.v3-bottom-nav) .fx-wizard-actions { bottom:calc(var(--v3-nav-height) + env(safe-area-inset-bottom)); }
#focus-app .fx-browse-pagination { background:var(--v3-bg); }
#focus-app[data-v3-page=free] .fx-browse-pagination { bottom:calc(var(--v3-nav-height) + env(safe-area-inset-bottom)); z-index:20; padding:12px 0; }
#focus-app .fx-browse-search-row input { min-height:46px; font-size:16px; background:var(--v3-paper); color:var(--v3-navy); border-color:var(--v3-line); }
#focus-app .fx-browse-search-row select { min-height:46px; background:var(--v3-paper); color:var(--v3-navy); border-color:var(--v3-line); }
#focus-app .fx-preview-levels > button { background:var(--v3-paper); color:var(--v3-navy); border-color:var(--v3-line); box-shadow:none; }
#focus-app .fx-preview-levels > button.is-selected { background:var(--v3-soft); color:var(--v3-blue); border-color:var(--v3-blue); box-shadow:inset 0 0 0 1px var(--v3-blue); }
#focus-app .fx-preview-note, #focus-app .fx-browse-record { color:var(--v3-muted); font-size:12px; line-height:1.75; }
#focus-app .dq-feedback { background:var(--v3-answer-bg); border-color:#cae3d5; color:var(--v3-answer); padding:18px; }
#focus-app .dq-feedback.is-miss { background:#fff7eb; border-color:#f1dec0; color:#795322; }
#focus-app .dq-feedback strong { color:inherit; }

/* Correct answers keep a separate green meaning. Do not change slot geometry. */
#focus-app .subject-map .cs-table .semantic-current-cell > td,
#focus-app .subject-map .cs-table .subject-map-current > td { background:var(--v3-answer-bg); }
#focus-app .subject-map .cs-table .semantic-current-cell > th { border-left-color:var(--v3-answer); }
#focus-app .cs-table mark, #focus-app .subject-map mark {
  background:var(--v3-answer-bg); color:var(--v3-answer); text-decoration:underline;
  text-decoration-color:#368c6c; text-decoration-thickness:2px; text-underline-offset:4px;
}
#focus-app .subject-map .cs-blank { color:var(--v3-answer); border-color:#8cbaa5; background:var(--v3-answer-bg); }
#focus-app .cs-standard-code { color:var(--v3-muted); }

/* The drawer remains an optional workspace, with readable touch controls. */
#focus-app .focus-drawer { border-color:var(--v3-line); background:var(--v3-paper); color:var(--v3-navy); box-shadow:0 24px 80px #172c4b26; }
#focus-app .focus-drawer::backdrop { background:#172c4b40; }
#focus-app .focus-drawer-heading h2 { color:var(--v3-navy); font-size:24px; }
#focus-app .focus-drawer-heading small, #focus-app .focus-menu small { color:var(--v3-muted); font-size:12px; }
#focus-app .focus-drawer-tabs { border-color:var(--v3-line); }
#focus-app .focus-drawer-tabs button { min-height:44px; font-size:14px; color:var(--v3-muted); }
#focus-app .focus-drawer-tabs button[aria-selected=true] { border-color:var(--v3-blue); color:var(--v3-blue); }
#focus-app .focus-menu > button { border-color:var(--v3-line); font-size:15px; padding:18px 2px; }
#focus-app .focus-reason p, #focus-app .focus-reason li { font-size:14px; color:var(--v3-muted); }
#focus-app .pc-panel { --pc-accent:var(--v3-blue); --pc-soft:var(--v3-soft); --pc-bg:var(--v3-bg); --pc-paper:var(--v3-paper); --pc-line:var(--v3-line); --pc-ink:var(--v3-navy); --pc-muted:var(--v3-muted); }
#focus-app .pc-account { padding:16px; }
#focus-app .pc-account > p, #focus-app .pc-note, #focus-app .pc-feedback { font-size:12px; }
#focus-app .pc-account button, #focus-app .pc-account label { font-size:12px; }
#focus-app .pc-panel button, #focus-app .pc-panel summary, #focus-app .dp-focus-settings > summary, #focus-app .dp-details > summary { min-height:44px; }

@media (max-width:760px) {
  body.fx-active .shell { padding:0 20px 28px; }
  #focus-app .v3-app-header, #focus-app .focus-chrome { min-height:76px; padding:12px 0 18px; }
  #focus-app .v3-page { padding-top:10px; }
  #focus-app .v3-page-heading { margin-bottom:24px; }
  #focus-app .v3-page-heading h1, #focus-app .v3-page-heading h2 { font-size:27px; }
  #focus-app .v3-card { padding:22px; }
  #focus-app .v3-recommendation { padding:26px 24px; }
  #focus-app .v3-analysis-grid { grid-template-columns:minmax(0,1fr); gap:0; }
  #focus-app .v3-stats { gap:10px; }
  #focus-app .v3-stat { padding:18px 16px; }
  #focus-app .v3-evidence .v3-stats { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:480px) {
  body.fx-active .shell { padding:0 16px 24px; }
  #focus-app .v3-app-header, #focus-app .focus-chrome { gap:8px; min-height:70px; padding:10px 0 14px; }
  #focus-app button.v3-brand, #focus-app .v3-brand button, #focus-app button.focus-wordmark { font-size:15px; gap:8px; }
  #focus-app .v3-header-tools { gap:0; }
  #focus-app .v3-page-heading { margin-bottom:20px; }
  #focus-app .v3-page-heading > button { min-width:68px; font-size:11px; padding:8px 10px; }
  #focus-app .v3-page-heading h1, #focus-app .v3-page-heading h2 { font-size:25px; }
  #focus-app .v3-page-heading p { font-size:13px; }
  #focus-app .v3-card { padding:21px 20px; border-radius:17px; margin-bottom:16px; }
  #focus-app .v3-card h2 { font-size:18px; }
  #focus-app .v3-card p { font-size:13px; }
  #focus-app .v3-recommendation { padding:25px 22px; }
  #focus-app .v3-recommendation h2 { font-size:23px; }
  #focus-app .v3-recommendation .v3-button-primary { width:100%; min-width:0; }
  #focus-app .v3-actions { gap:8px; }
  #focus-app .v3-actions > button { flex-basis:120px; }
  #focus-app .v3-button { padding:12px 14px; font-size:13px; }
  #focus-app .v3-stats { gap:8px; margin-bottom:16px; }
  #focus-app .v3-stat { padding:16px 12px; border-radius:14px; }
  #focus-app .v3-stat > :is(strong,b) { font-size:25px; }
  #focus-app .v3-stat > :is(span,small,p) { font-size:11px; }
  #focus-app .v3-stat strong small { display:block; margin:0; font-size:11px; }
  #focus-app .v3-bookmarks { gap:16px; }
  #focus-app .v3-bookmarks .v3-actions { flex:1 1 100%; }
  #focus-app .v3-bookmark-list { grid-template-columns:minmax(0,1fr); }
  #focus-app .v3-section-heading { align-items:flex-start; }
  #focus-app .v3-section-heading > span { max-width:43%; font-size:11px; }
  #focus-app .v3-evidence .v3-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #focus-app .v3-evidence .v3-stat { padding:14px; }
  #focus-app .v3-result .v3-stat { padding:15px 12px; }
  #focus-app .v3-result .v3-stats > .v3-stat:first-child { grid-column:1/-1; }
  #focus-app .v3-result .v3-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #focus-app .v3-result-subjects > li { padding:14px; }
  #focus-app .v3-result-subjects li > span { flex-basis:100%; }
  #focus-app .v3-week { gap:7px; }
  #focus-app .v3-week-track { height:100px; max-width:30px; }
  #focus-app .v3-week-value { font-size:10px; }
  #focus-app .v3-calendar-grid { gap:4px; }
  #focus-app .v3-calendar-day { padding:7px 2px; min-height:62px; }
  #focus-app .v3-calendar-day strong { font-size:10px; }
  #focus-app .v3-bottom-nav { width:100%; border-radius:16px 16px 0 0; padding-left:16px; padding-right:16px; }
  #focus-app .fx-settings-group { padding:20px 16px; }
  #focus-app .fx-page-heading h2 { font-size:24px; }
  #focus-app.focus-stage .fx-card { border-radius:17px!important; }
  #focus-app .focus-drawer { padding:22px 20px calc(24px + env(safe-area-inset-bottom)); border-radius:22px 22px 0 0; }
}
@media (max-width:360px) {
  body.fx-active .shell { padding-left:12px; padding-right:12px; }
  #focus-app .v3-card { padding:20px 17px; }
  #focus-app .v3-page-heading h1, #focus-app .v3-page-heading h2 { font-size:24px; }
  #focus-app .v3-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #focus-app .v3-stats > :first-child:last-child { grid-column:1/-1; }
  #focus-app .v3-stats > :first-child:nth-last-child(3) { grid-column:1/-1; }
  #focus-app .v3-stats > :first-child:nth-last-child(3) > :is(strong,b) { font-size:30px; }
  #focus-app .v3-stat strong small { display:inline; margin-left:4px; }
  #focus-app .v3-radar text { font-size:10px; }
  #focus-app .v3-bottom-nav { gap:4px; padding-left:12px; padding-right:12px; }
}

html[data-theme=dark] body.fx-active {
  --bg:#0d1421; --paper:#172235; --ink:#edf3ff; --muted:#b6c4da; --line:#3d506c;
  --green:#9fc2ff; --soft:#253b5b; --red:#ffc2b8; --gold:#f1d296;
  --card:var(--paper); background:var(--bg)!important;
  background-image:radial-gradient(ellipse at 50% 0%,#253c571f,transparent 70%)!important;
}
html[data-theme=dark] #focus-app {
  --v3-blue:#9fc2ff; --v3-blue-hover:#c0d6ff; --v3-navy:#edf3ff; --v3-paper:#172235;
  --v3-bg:#0d1421; --v3-soft:#253b5b; --v3-line:#3d506c; --v3-muted:#b6c4da;
  --v3-answer:#a8e2c0; --v3-answer-bg:#203b33;
  --v3-field:#111c2c; --v3-field-line:#6b809d; --v3-table-line:#516680;
  --v3-danger:#ffc2b8; --v3-danger-bg:#402d33; --v3-warning:#f1d296; --v3-warning-bg:#3b3227;
  --v3-glass:rgba(23,34,53,.94); --v3-on-accent:#122038;
  --v3-shadow:0 12px 30px #00000014,inset 0 1px 0 #ffffff07;
  --fx-text:var(--v3-navy); --fx-surface:var(--v3-paper); --card:var(--v3-paper);
  --pm-gold:var(--v3-warning); --pm-gold-soft:var(--v3-warning-bg); --pm-header:var(--v3-soft);
}
html[data-theme=dark] #focus-app .v3-button-primary,
html[data-theme=dark] #focus-app .fx-primary,
html[data-theme=dark] #focus-app .fx-rate[data-fx-rate=known],
html[data-theme=dark] #focus-app .fx-rate[data-fx-input-rate=known] { color:var(--v3-on-accent)!important; }
html[data-theme=dark] #focus-app .v3-recommendation { border-color:#526f98; }
html[data-theme=dark] #focus-app .dq-feedback { border-color:#3c6453; }
html[data-theme=dark] #focus-app .dq-feedback.is-miss { background:var(--v3-warning-bg); border-color:#9c8256; color:var(--v3-warning); }
html[data-theme=dark] #focus-app #fx-card .fp-slot { background:var(--v3-answer-bg); border-color:#547d68; color:var(--v3-answer); }
html[data-theme=dark] #focus-app #fx-card .fp-slot .fp-slot-number,
html[data-theme=dark] #focus-app #fx-card .fp-slot.is-answer .fp-slot-value { color:var(--v3-answer); }
html[data-theme=dark] #focus-app .focus-tools button[aria-pressed=true] { color:#f1ce71; }
html[data-theme=dark] #focus-app .focus-tools button[aria-pressed=true] svg { fill:#70561a; }
@media (prefers-reduced-motion:reduce) {
  #focus-app *, #focus-app *::before, #focus-app *::after {
    animation:none!important;
    transition:none!important; scroll-behavior:auto!important;
  }
  #focus-app button:active { transform:none!important; }
}
@media print {
  #focus-app .v3-bottom-nav, #focus-app .v3-header-tools { display:none!important; }
  #focus-app { padding-bottom:0!important; }
  #focus-app .v3-card { break-inside:avoid; box-shadow:none; }
}

/* One visual system for the older card, planning and preference surfaces. */
#focus-app {
  --v3-radius:18px; --v3-gap:22px;
}
#focus-app .fx-root {
  --av-review:var(--v3-blue); --av-review-bg:var(--v3-soft);
  --av-new:#7fa3ed; --av-new-bg:#f0f5ff;
  --av-extra:#526c96; --av-extra-bg:#f0f4fa;
  --av-overdue:#91651f; --av-overdue-bg:#fff6e8;
  --av-reserve:#bbc7d9; --av-reserve-bg:var(--v3-bg);
}
#focus-app :is(.gv-editor,.gv-hero) {
  --gv-ink:var(--v3-navy); --gv-muted:var(--v3-muted); --gv-paper:var(--v3-paper); --gv-line:var(--v3-line);
  --gv-blue:var(--v3-blue); --gv-blue-soft:var(--v3-soft); --gv-green:var(--v3-blue); --gv-green-soft:var(--v3-soft);
}
#focus-app :is(.rv-pace,.rv-calibration,.rv-history,.rv-report) {
  --rv-ink:var(--v3-navy); --rv-muted:var(--v3-muted); --rv-paper:var(--v3-paper); --rv-bg:var(--v3-bg);
  --rv-line:var(--v3-line); --rv-green:var(--v3-blue); --rv-soft:var(--v3-soft); --rv-blue:var(--v3-blue); --rv-blue-soft:var(--v3-soft);
}
#focus-app :is(.rt-editor,.rt-cycle-progress) {
  --rt-green:var(--v3-blue); --rt-ink:var(--v3-navy); --rt-muted:var(--v3-muted); --rt-line:var(--v3-line);
  --rt-paper:var(--v3-paper); --rt-soft:var(--v3-soft); --rt-blue:var(--v3-blue); --rt-blue-bg:var(--v3-soft);
  --rt-violet:#526c96; --rt-violet-bg:var(--v3-soft);
}
#focus-app :is(.fx-settings,.fx-roadmap,.fx-onboarding,.fx-history) { max-width:960px; padding-left:0; padding-right:0; }
#focus-app :is(.fx-settings,.fx-roadmap,.fx-onboarding,.fx-history) > * { min-width:0; }
#focus-app :is(.fx-settings-group,.rv-pace,.rt-editor,.av-plan,.av-roadmap,.gv-hero,.rv-panel,.fx-panel) {
  background:var(--v3-paper); border:1px solid var(--v3-line); border-radius:var(--v3-radius); box-shadow:none;
}
#focus-app :is(.rv-pace,.rt-editor,.av-roadmap,.gv-hero,.fx-panel) { padding:24px; margin:0 0 var(--v3-gap); }
#focus-app :is(.fx-settings-group,.rv-panel) { margin-bottom:var(--v3-gap); }
#focus-app :is(.fx-panel,.fx-settings-group,.av-roadmap,.rv-pace,.rt-editor) > h3 { font-size:18px; color:var(--v3-navy); line-height:1.5; }
#focus-app :is(.fx-panel,.fx-settings-group) > p { font-size:13px; line-height:1.85; color:var(--v3-muted); }
#focus-app :is(.fx-secondary,.fx-primary,.rv-button,.av-button,.fx-link-button) { min-height:46px; }
#focus-app :is(.fx-secondary,.fx-primary,.rv-button,.av-button) { border-radius:11px; }
#focus-app :is(.fx-switch-row,.fx-settings-row) { padding-top:18px; padding-bottom:18px; }
#focus-app .fx-settings-row strong { font-size:14px; line-height:1.6; }
#focus-app .fx-settings-row small { margin-top:5px; }
#focus-app .fx-settings-row > :first-child { min-width:0; }
#focus-app .fx-settings-row > svg { flex:0 0 18px; }
#focus-app .fx-settings-group > h3 { margin:0 0 12px; }
#focus-app .fx-settings .fx-wizard-actions { margin-top:0; border-top:1px solid var(--v3-line); }
#focus-app :is(.fx-settings,.fx-roadmap) > .fx-credit { display:none; }
#focus-app :is(.fx-field,.fx-switch-row) input { accent-color:var(--v3-blue); }
#focus-app :is(.fx-field,.fx-setting-fields) { min-width:0; }

/* A white card is the quiet center of study; green is reserved for answer ink. */
#focus-app.focus-stage > .fx-root:is(.fx-study,.av-input) { max-width:760px!important; }
#focus-app.focus-stage .fx-card-wrap { overflow:hidden; border-radius:20px; }
#focus-app.focus-stage .fx-card { padding:28px!important; }
#focus-app .fx-card .subject-map-heading { margin-bottom:22px!important; }
#focus-app .fx-card .question-area { font-size:24px; color:var(--v3-navy); line-height:1.45; }
#focus-app .fx-card .subject-map-heading h4 { color:var(--v3-muted); font-size:12px!important; font-weight:600; }
#focus-app .fx-card .subject-map .cs-table th { font-size:12px; background:var(--v3-bg); color:var(--v3-muted); }
#focus-app .fx-card .subject-map .cs-table { border-color:var(--v3-line); border-radius:11px; }
#focus-app .fx-card .subject-map .cs-table :is(th,td) { border-color:var(--v3-line); }
#focus-app.focus-stage .fx-card-wrap > .science-check { padding:4px 28px 26px!important; border:0!important; border-radius:0!important; margin:0!important; }
#focus-app.focus-stage .science-check input#science-answer { background:var(--v3-bg); min-height:52px; padding:14px!important; }
#focus-app .science-buttons { gap:10px; }
#focus-app .science-check label[for=science-answer] { color:var(--v3-navy); font-size:13px; }
#focus-app .science-check :is(.fx-primary,.fx-secondary) { min-height:48px; font-size:13px!important; }
#focus-app .science-check details { margin-top:14px; color:var(--v3-muted); }
#focus-app .science-check details > summary { min-height:44px; padding:11px 0; font-size:12px; cursor:pointer; }
#focus-app .science-check .science-rule { font-size:12px; line-height:1.8; }
#focus-app .av-reading-actions { gap:12px; padding-top:16px; }
#focus-app .av-reading-actions > button { font-size:14px!important; min-height:50px; }
#focus-app .fx-pause-cover { background:color-mix(in srgb,var(--v3-paper) 95%,transparent); color:var(--v3-navy); border-radius:18px; }
#focus-app .fx-pause-cover > span { color:var(--v3-blue); background:var(--v3-soft); }
#focus-app:has(> .focus-chrome) > .fx-root > .fx-header { display:none!important; }
#focus-app:is([data-v3-page=roadmap],[data-v3-page=settings],[data-v3-page=history],[data-v3-page=results]) > .focus-flow { display:none; }
#focus-app:is([data-v3-page=roadmap],[data-v3-page=settings],[data-v3-page=history],[data-v3-page=results]) > .focus-chrome { max-width:960px; }

/* Roadmap: distinguish recorded steps, today's decision, and estimates. */
#focus-app .v3-roadmap-flow { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); list-style:none; padding:24px; margin:0 0 var(--v3-gap); background:var(--v3-paper); border:1px solid var(--v3-line); border-radius:var(--v3-radius); }
#focus-app .v3-roadmap-flow > li { position:relative; min-width:0; padding:0 18px 0 28px; color:var(--v3-muted); font-size:12px; line-height:1.7; }
#focus-app .v3-roadmap-flow > li::before { content:""; position:absolute; top:6px; left:0; width:11px; height:11px; border:2px solid var(--v3-blue); border-radius:50%; background:var(--v3-paper); z-index:1; }
#focus-app .v3-roadmap-flow > li:not(:last-child)::after { content:""; position:absolute; height:1px; background:var(--v3-line); top:11px; left:11px; right:-1px; }
#focus-app .v3-roadmap-flow :is(strong,b) { display:block; position:relative; z-index:2; width:fit-content; padding-right:10px; background:var(--v3-paper); color:var(--v3-navy); font-size:14px; line-height:1.6; font-weight:700; }
#focus-app .v3-roadmap-flow small { display:block; font-size:12px; margin-top:5px; }
#focus-app .v3-roadmap-flow li > span { position:relative; z-index:2; display:block; width:fit-content; padding-right:10px; color:var(--v3-muted); background:var(--v3-paper); font-size:12px; }
#focus-app .v3-roadmap-flow li > strong { font-size:23px; margin-top:8px; }
#focus-app .v3-roadmap-flow li > strong > small { display:inline; margin:0; color:var(--v3-muted); font-weight:400; }
#focus-app .v3-roadmap-now { background:var(--v3-soft); border:1px solid #d3e1ff; border-radius:var(--v3-radius); padding:22px 24px; margin:0 0 var(--v3-gap); }
#focus-app .v3-roadmap-now > :is(span,small) { color:var(--v3-blue); font-size:12px; font-weight:700; }
#focus-app .v3-roadmap-now > :is(h3,strong) { display:block; color:var(--v3-navy); font-size:22px; line-height:1.5; margin:7px 0; font-weight:750; }
#focus-app .v3-roadmap-now p { font-size:13px; line-height:1.8; color:var(--v3-muted); margin:7px 0 0; }
#focus-app .gv-hero-heading { gap:12px; margin-bottom:22px; }
#focus-app .gv-hero-icon { width:42px; height:42px; flex-basis:42px; border-radius:12px; }
#focus-app .gv-hero-icon svg { width:23px; height:23px; }
#focus-app .gv-hero .gv-kicker { font-size:11px; }
#focus-app .gv-hero-heading h3 { font-size:21px!important; margin-top:5px!important; }
#focus-app .gv-hero .gv-result { padding:0; border:0; border-radius:0; background:transparent; }
#focus-app .gv-hero .gv-result-main { font-size:31px; }
#focus-app .gv-hero .gv-result-date > span { font-size:13px; }
#focus-app .gv-hero .gv-result-date > strong { font-size:25px; }
#focus-app .gv-hero .gv-result-date > b { font-size:17px; }
#focus-app .gv-hero .gv-result-daily { border-color:var(--v3-line); padding-bottom:18px; margin-bottom:18px; }
#focus-app .gv-hero p { font-size:12px!important; line-height:1.8; }
#focus-app .gv-hero .gv-total { border-color:var(--v3-line); margin-top:18px; padding-top:16px; }
#focus-app .gv-hero .gv-total > span { font-size:12px; }
#focus-app .gv-hero .gv-total > strong { font-size:17px; }
#focus-app .gv-hero .gv-edit-button { min-height:48px; padding:12px 14px; font-size:13px!important; border:1px solid var(--v3-line); background:var(--v3-paper); color:var(--v3-blue); border-radius:11px; }
#focus-app .gv-hero .gv-edit-button svg { width:19px; height:19px; }
#focus-app .av-plan { margin:0 0 var(--v3-gap); }
#focus-app .av-plan-title { padding:24px 24px 0; }
#focus-app .av-plan-body { padding:20px 24px 0; }
#focus-app .av-plan-title h3, #focus-app .av-section-heading h3 { font-size:18px; line-height:1.5; margin:0; }
#focus-app .av-section-heading p { font-size:12px; line-height:1.75; }
#focus-app .av-budget-heading { margin-bottom:14px; }
#focus-app .av-budget-heading > strong { font-size:24px; }
#focus-app .av-budget-heading > span, #focus-app .av-budget-caption { font-size:11px!important; line-height:1.7; }
#focus-app .av-budget-bar { height:8px; border-radius:4px; }
#focus-app .av-budget-legend { gap:14px; margin:20px 0; grid-template-columns:repeat(2,minmax(0,1fr)); }
#focus-app .av-budget-item { border:0; }
#focus-app .av-budget-item > span { font-size:12px; white-space:normal; }
#focus-app .av-budget-item strong { font-size:21px; margin-top:7px; }
#focus-app .av-budget-item small { font-size:11px; }
#focus-app .av-plan-footer { font-size:11px; padding:10px 0; }
#focus-app .av-note { font-size:12px!important; line-height:1.8; }
#focus-app .av-date-cards { gap:14px; }
#focus-app .av-date-card { padding:18px 20px; background:var(--v3-bg); border:0; border-radius:12px; color:var(--v3-navy); }
#focus-app .av-date-card > span { color:var(--v3-muted); font-size:12px; }
#focus-app .av-date-card > strong { margin:9px 0; color:var(--v3-navy); font-size:22px; }
#focus-app .av-date-card > p { font-size:12px; line-height:1.8; margin:5px 0 0; }
#focus-app .av-forecast-heading > h4 { font-size:14px; }
#focus-app .av-forecast-heading > span { font-size:11px; }
#focus-app .av-day-chart { height:156px; gap:8px; }
#focus-app .av-day-bars { max-width:38px; width:100%; margin:auto; }
#focus-app .av-day-column > span { font-size:10px; white-space:normal; line-height:1.5; }
#focus-app .av-chart-note { font-size:12px!important; }
#focus-app .av-assumptions { font-size:12px; }
#focus-app .av-assumptions summary { font-size:13px; padding:14px 0; min-height:48px; }
#focus-app .av-subject-row { font-size:12px; flex-wrap:wrap; gap:6px 12px; }
#focus-app .av-progress-counts progress { width:100%; height:8px; accent-color:var(--v3-blue); border:0; border-radius:4px; overflow:hidden; }
#focus-app .fx-roadmap-actions { display:flex; gap:10px; flex-wrap:wrap; }
#focus-app .fx-roadmap-actions > button { flex:1 1 180px; }

/* Pace and routine choices keep one selection model, with readable descriptions. */
#focus-app .rv-section-heading, #focus-app .rt-heading { margin-bottom:14px; }
#focus-app .rv-pace h3, #focus-app .rt-heading h3 { font-size:21px!important; line-height:1.5!important; }
#focus-app .rv-kicker, #focus-app .rt-kicker { font-size:11px; color:var(--v3-muted); }
#focus-app .rv-pace > p, #focus-app .rt-heading p { font-size:13px; line-height:1.8; margin:10px 0; color:var(--v3-muted); }
#focus-app .rv-pace-choices { gap:10px; margin:20px 0; }
#focus-app .rv-pace-choice, #focus-app .rv-pace-choice.is-selected { min-height:140px; border:1px solid var(--v3-line); border-radius:12px; padding:17px 14px; background:var(--v3-paper); box-shadow:none; }
#focus-app .rv-pace-choice.is-selected { border-color:var(--v3-blue); background:var(--v3-soft); box-shadow:inset 0 0 0 1px var(--v3-blue); }
#focus-app .rv-pace-choice > strong { font-size:15px; white-space:normal; }
#focus-app .rv-pace-choice > small { font-size:12px; line-height:1.7; }
#focus-app .rv-pace-icon { margin-bottom:14px; color:var(--v3-blue); background:var(--v3-bg); border-radius:9px; }
#focus-app .rv-pace .rv-small { font-size:12px; line-height:1.8; }
#focus-app .rt-choices { display:grid; grid-template-columns:1fr; gap:10px; margin:20px 0; }
#focus-app .rt-choice, #focus-app .rt-choice.is-selected { border:1px solid var(--v3-line); border-radius:12px; padding:16px; background:var(--v3-paper); box-shadow:none; min-height:78px; }
#focus-app .rt-choice.is-selected { background:var(--v3-soft); border-color:var(--v3-blue); box-shadow:inset 0 0 0 1px var(--v3-blue); }
#focus-app .rt-choice-copy strong { font-size:14px; }
#focus-app .rt-choice-copy small { font-size:12px; line-height:1.65; margin-top:5px; }
#focus-app .rt-choice-icon { color:var(--v3-blue); background:var(--v3-bg); border-radius:10px; }
#focus-app .rt-selected-policy { border:0; border-top:1px solid var(--v3-line); border-radius:0; padding:22px 0 0; background:transparent; }
#focus-app .rt-policy-heading strong { font-size:15px; color:var(--v3-navy); }
#focus-app .rt-selected-policy > p, #focus-app .rt-policy-note { color:var(--v3-muted); font-size:12px; line-height:1.8; }
#focus-app .rt-policy-note { background:var(--v3-bg); border-radius:9px; padding:12px 14px; }
#focus-app .rt-week { margin:22px 0; gap:10px; }
#focus-app .rt-day-track { background:var(--v3-bg); border-radius:5px; }
#focus-app .rt-day-track i { background:#9fbaf3; border-radius:5px; }
#focus-app .rt-day.is-weekend .rt-day-track i { background:var(--v3-blue); }
#focus-app .rt-day > span, #focus-app .rt-day > strong { font-size:11px; }
#focus-app .rt-time-fields input, #focus-app .rt-new-limit input { font-size:20px; min-height:48px; color:var(--v3-navy); }
#focus-app .rt-new-limit { gap:12px; }
#focus-app .rt-new-bundles > span, #focus-app .rt-recall-bundle { background:var(--v3-soft); color:var(--v3-blue); border-color:#d3e1ff; border-radius:10px; }
#focus-app .rt-cycle-example { gap:10px; }

/* Setup is a focused page, not a collection of nested colored boxes. */
#focus-app .fx-onboarding .fx-wizard-body { padding-top:14px; }
#focus-app .fx-wizard-body > h2 { font-size:29px; line-height:1.4; margin:8px 0 12px; }
#focus-app .fx-wizard-body > .fx-intro { font-size:14px; max-width:660px; margin-bottom:30px!important; }
#focus-app .fx-form-block { margin:24px 0; }
#focus-app .fx-form-block h3 { font-size:16px; margin-bottom:14px; }
#focus-app .fx-choice { min-height:50px; border-radius:10px; font-size:14px!important; padding:13px 14px; }
#focus-app .fx-area-details { border-radius:12px; background:var(--v3-paper); }
#focus-app .fx-level { padding:18px; border-radius:12px; background:var(--v3-paper); }
#focus-app .fx-level small { font-size:12px; line-height:1.7; }
#focus-app .fx-subject-scope { background:var(--v3-paper); border:1px solid var(--v3-line); padding:20px; border-radius:14px; }
#focus-app .fx-subject-scope fieldset { margin:20px 0; }
#focus-app .fx-subject-scope legend { font-size:14px; margin-bottom:10px; }
#focus-app .gv-editor { background:var(--v3-paper); border:1px solid var(--v3-line); border-radius:var(--v3-radius); padding:28px; }
#focus-app .gv-editor-intro h3 { font-size:24px!important; }
#focus-app .gv-editor p, #focus-app .gv-date-field small { font-size:13px!important; line-height:1.8; }
#focus-app .gv-kicker { font-size:12px; }
#focus-app :is(.gv-date-field > span,.gv-mode-label,.gv-control-title,.gv-exam-setting label > span) { font-size:15px; }
#focus-app :is(.gv-date-field,.gv-exam-setting) input { border:1px solid var(--v3-line); min-height:50px; border-radius:10px; font-size:17px!important; }
#focus-app .gv-mode { border-width:1px; border-radius:12px; min-height:86px; padding:17px; }
#focus-app .gv-mode strong { font-size:15px; }
#focus-app .gv-mode small { font-size:12px; line-height:1.7; }
#focus-app .gv-mode.is-selected { box-shadow:inset 0 0 0 1px var(--v3-blue); }
#focus-app .gv-time-inputs label { border-width:1px; border-radius:10px; }
#focus-app .gv-time-inputs span { font-size:15px; }
#focus-app .gv-presets button { border-width:1px; border-radius:9px; font-size:13px!important; }
#focus-app .gv-editor .gv-result { border-color:#d4e2ff; background:var(--v3-soft); border-radius:14px; padding:22px; }
#focus-app .gv-editor .gv-result-main { font-size:30px; }
#focus-app .gv-editor .gv-result-date > strong { font-size:25px; }
#focus-app .gv-editor .gv-result-date > span, #focus-app .gv-editor .gv-total > span { font-size:13px; }
#focus-app .gv-editor .gv-total > strong { font-size:18px; }
#focus-app .gv-sticky-summary { border:1px solid var(--v3-line); background:var(--v3-paper); border-radius:12px; color:var(--v3-navy); font-size:13px; }
#focus-app .gv-sticky-date { font-size:13px; color:var(--v3-muted); }
#focus-app .gv-sticky-main > :is(strong,b), #focus-app .gv-sticky-message { font-size:18px; }
#focus-app .gv-plan-dock { background:var(--v3-bg); border-color:var(--v3-line); box-shadow:none; }
#focus-app .gv-plan-dock .fx-wizard-actions button { min-height:48px; font-size:14px!important; }

@media(min-width:980px) {
  #focus-app .fx-roadmap, #focus-app .fx-settings { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:24px; }
  #focus-app .fx-roadmap > *, #focus-app .fx-settings > * { grid-column:1/-1; margin-top:0; margin-bottom:0; }
  #focus-app .fx-roadmap > :is(.gv-hero,.av-plan), #focus-app .fx-settings > :is(.fx-settings-group,.rv-pace,.rt-editor) { grid-column:auto; height:100%; }
  #focus-app .fx-settings > :is(.rv-pace,.rt-editor) { height:auto; }
  #focus-app .fx-settings > .fx-menu-group { grid-column:1/-1; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 24px; }
  #focus-app .fx-menu-group > h3 { grid-column:1/-1; }
  #focus-app .av-date-cards { grid-template-columns:repeat(3,minmax(0,1fr)); }
  #focus-app .av-date-card { padding:18px; }
  #focus-app .av-date-card > strong { font-size:21px; }
  #focus-app .fx-wizard-body:has(.rv-pace) { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 24px; align-items:start; }
  #focus-app .fx-wizard-body:has(.rv-pace) > * { grid-column:1/-1; }
  #focus-app .fx-wizard-body > :is(.rv-pace,.rt-editor) { grid-column:auto; }
  #focus-app .fx-onboarding:has(.rv-pace) .fx-wizard-actions { max-width:960px; }
  #focus-app .fx-subject-scope { padding:24px; }
  #focus-app .gv-editor { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 28px; align-items:start; }
  #focus-app .gv-editor > * { grid-column:1/-1; }
  #focus-app .gv-editor > .gv-date-field { grid-column:1; grid-row:2; }
  #focus-app .gv-editor > .gv-mode-label { grid-column:2; grid-row:2; }
  #focus-app .gv-editor > .gv-modes { grid-column:2; grid-row:2/4; padding-top:34px; }
  #focus-app .gv-editor > .gv-time-controls { grid-column:1; grid-row:3; }
}
@media(max-width:600px) {
  #focus-app { --v3-gap:18px; --v3-radius:16px; }
  #focus-app :is(.rv-pace,.rt-editor,.av-roadmap,.gv-hero,.fx-panel,.gv-editor) { padding:20px 18px; }
  #focus-app.focus-stage .fx-card { padding:22px 18px!important; }
  #focus-app.focus-stage .fx-card-wrap > .science-check { padding:0 18px 20px!important; }
  #focus-app .fx-card .question-area { font-size:21px; }
  #focus-app .av-input-actions { gap:8px; }
  #focus-app .av-reading-actions > button { font-size:12px!important; }
  #focus-app .v3-roadmap-flow { grid-template-columns:1fr; gap:0; padding:20px; }
  #focus-app .v3-roadmap-flow > li { padding:0 0 20px 28px; }
  #focus-app .v3-roadmap-flow > li:last-child { padding-bottom:0; }
  #focus-app .v3-roadmap-flow > li:not(:last-child)::after { width:1px; height:auto; top:16px; bottom:-6px; left:5px; right:auto; }
  #focus-app .v3-roadmap-now { padding:20px; }
  #focus-app .v3-roadmap-now > :is(h3,strong) { font-size:20px; }
  #focus-app .av-plan-title { padding:20px 18px 0; }
  #focus-app .av-plan-body { padding:18px 18px 0; }
  #focus-app .av-budget-legend:has(>div:nth-child(3):last-child) { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #focus-app .av-day-chart { gap:4px; }
  #focus-app .av-day-column > span { font-size:9px; }
  #focus-app .av-date-card { padding:18px; }
  #focus-app .av-date-card > strong { font-size:21px; }
  #focus-app .rv-pace-choices { grid-template-columns:1fr; gap:10px; }
  #focus-app .rv-pace-choice, #focus-app .rv-pace-choice.is-selected { display:grid; grid-template-columns:38px 1fr; min-height:88px; padding:17px 16px; gap:4px 12px; }
  #focus-app .rv-pace-icon { grid-column:1; grid-row:1/3; margin:0; align-self:center; }
  #focus-app .rv-pace-choice > strong, #focus-app .rv-pace-choice > small { grid-column:2; margin:0; padding-right:16px; }
  #focus-app .rt-choice, #focus-app .rt-choice.is-selected { padding:16px 14px; }
  #focus-app .rt-week { gap:6px; }
  #focus-app .rt-day > span { font-size:10px; }
  #focus-app .fx-wizard-body > h2 { font-size:26px; }
  #focus-app .fx-page-heading { align-items:flex-start; flex-wrap:wrap; gap:10px; }
  #focus-app .fx-roadmap .fx-page-heading { display:block; }
  #focus-app .fx-roadmap .fx-page-heading h2 { margin-bottom:10px; }
  #focus-app .fx-wizard-body > .fx-intro { font-size:13px; margin-bottom:24px!important; }
  #focus-app .fx-subject-scope { padding:18px 14px; }
  #focus-app .fx-choice { font-size:13px!important; padding:12px; }
  #focus-app .gv-editor-intro h3 { font-size:22px!important; }
  #focus-app .gv-editor .gv-result { padding:18px; }
  #focus-app .gv-editor .gv-result-main { font-size:27px; }
  #focus-app .gv-modes { gap:10px; }
  #focus-app .gv-mode { padding:15px 12px; gap:10px; }
  #focus-app .gv-mode-icon { width:30px; flex-basis:30px; }
  #focus-app .gv-mode i { width:20px; height:20px; flex-basis:20px; }
  #focus-app .gv-mode small { font-size:12px; }
}

/* Calendar selection and a factual, filterable learning journal. */
#focus-app .v3-calendar button.v3-calendar-day { width:100%; min-height:70px; font:inherit; cursor:pointer; }
#focus-app .v3-calendar-day.is-selected { border-color:var(--v3-blue); box-shadow:inset 0 0 0 1px var(--v3-blue); color:var(--v3-blue); }
#focus-app .v3-calendar button.v3-calendar-day:hover { background:var(--v3-soft); }
#focus-app .v3-journal-filters { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:20px 0; }
#focus-app .v3-journal-filters label { display:block; min-width:0; font-size:12px; color:var(--v3-muted); line-height:1.7; }
#focus-app .v3-journal-filters :is(select,input) { display:block; width:100%; min-width:0; min-height:48px; margin-top:7px; padding:10px 12px; color:var(--v3-navy); background:var(--v3-paper); border:1px solid var(--v3-line); border-radius:10px; font:inherit; font-size:16px; }
#focus-app .v3-journal-summary { border-top:1px solid var(--v3-line); padding-top:16px; margin:16px 0; color:var(--v3-muted); font-size:13px; line-height:1.8; }
#focus-app .v3-journal-list { list-style:none; padding:0; margin:18px 0 0; }
#focus-app .v3-journal-row { display:grid; grid-template-columns:75px minmax(0,1fr) auto; gap:18px; padding:19px 0; border-bottom:1px solid var(--v3-line); align-items:start; }
#focus-app .v3-journal-row:first-child { padding-top:0; }
#focus-app .v3-journal-row:last-child { border-bottom:0; padding-bottom:0; }
#focus-app .v3-journal-time { display:block; color:var(--v3-muted); font-size:12px; font-variant-numeric:tabular-nums; line-height:1.7; }
#focus-app .v3-journal-time span { display:block; }
#focus-app .v3-journal-row > .v3-button { font-size:12px; padding:10px 12px; }
#focus-app .v3-journal-content { min-width:0; color:var(--v3-navy); font-size:13px; line-height:1.8; overflow-wrap:anywhere; }
#focus-app .v3-journal-content :is(strong,b) { font-weight:700; }
#focus-app .v3-journal-content p { margin:6px 0; font-size:13px; line-height:1.8; }
#focus-app .v3-journal-content small { color:var(--v3-muted); font-size:12px; }
#focus-app .v3-journal-badges { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
#focus-app .v3-journal-badges > span { display:inline-block; color:var(--v3-blue); background:var(--v3-soft); border-radius:5px; padding:3px 7px; font-size:11px; line-height:1.6; }
#focus-app .v3-journal-empty { padding:24px 18px; background:var(--v3-bg); border-radius:12px; color:var(--v3-muted); font-size:13px; line-height:1.8; }
@media(max-width:600px) {
  #focus-app .v3-journal-filters { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 10px; }
  #focus-app .v3-journal-filters > :first-child { grid-column:1/-1; }
  #focus-app .v3-journal-row { grid-template-columns:1fr; gap:6px; padding:18px 0; }
  #focus-app .v3-journal-time { font-size:11px; }
}

/* Quiet progression: one next action, optional detail on demand. */
#focus-app .v3-disclosure { border:1px solid var(--v3-line); border-radius:16px; background:var(--v3-paper); margin:0 0 16px; padding:0; overflow:hidden; }
#focus-app .v3-disclosure > summary { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:64px; padding:18px 22px; cursor:pointer; list-style:none; color:var(--v3-navy); font-size:14px; font-weight:650; }
#focus-app .v3-disclosure > summary::-webkit-details-marker { display:none; }
#focus-app .v3-disclosure > summary::after { content:'+'; color:var(--v3-muted); font-size:20px; font-weight:400; flex-shrink:0; }
#focus-app .v3-disclosure[open] > summary::after { content:'−'; }
#focus-app .v3-disclosure > summary small { display:block; margin-top:4px; font-size:12px; font-weight:400; color:var(--v3-muted); line-height:1.6; }
#focus-app .v3-disclosure-body { padding:0 22px 22px; }
#focus-app .v3-disclosure-body > :is(.fx-settings-group,.rv-pace,.rt-editor,.fx-panel,.v3-card) { border:0; padding:12px 0 0; margin:0; background:transparent; }
#focus-app .calm-disclosure .v3-disclosure-body > :is(.fx-settings-group,.rv-pace,.rt-editor) > h3 { display:none; }
#focus-app .v3-roadmap-estimates .v3-disclosure-body { display:grid; gap:16px; }
#focus-app .v3-roadmap-estimates .v3-disclosure-body > * { margin:0; min-width:0; }
#focus-app .v3-progress-compact { margin:26px 0 0; padding-top:20px; border-top:1px solid var(--v3-line); }
#focus-app .v3-progress-compact .v3-section-heading { margin-bottom:12px; font-size:13px; }
#focus-app .v3-progress-compact .v3-meta { margin-bottom:0; }
#focus-app .v3-progress-compact .v3-progress { background:var(--v3-line); }
#focus-app .v3-progress-compact { margin:0 0 30px; padding:0 2px; border:0; }
#focus-app .v3-progress-compact > div:first-child { display:flex; gap:8px 14px; align-items:baseline; flex-wrap:wrap; margin:0 0 12px; color:var(--v3-muted); font-size:12px; }
#focus-app .v3-progress-compact strong { color:var(--v3-navy); font-size:16px; font-weight:650; }
#focus-app .v3-progress-compact > div:first-child > span:last-child { margin-left:auto; }
#focus-app .v3-progress-compact > small { display:block; font-size:11px; color:var(--v3-muted); margin-top:10px; }
#focus-app .v3-overview-summary { font-size:12px; line-height:1.8; color:var(--v3-muted); margin:-6px 0 22px; }
#focus-app .v3-overview { align-items:start; }
#focus-app .v3-overview .v3-bookmark-list { grid-template-columns:minmax(0,1fr); }
#focus-app .v3-learning-guide { margin:0 0 24px; padding:4px 2px; }
#focus-app .v3-learning-guide > h2 { font-size:14px; color:var(--v3-muted); font-weight:500; margin:0 0 18px; }
#focus-app .v3-learning-steps, .learning-story { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin:0; padding:0; list-style:none; }
#focus-app .v3-learning-steps > li, .learning-story > li { display:flex; gap:12px; align-items:flex-start; min-width:0; position:relative; font-size:14px; color:var(--v3-navy,#23334c); }
#focus-app .v3-learning-steps > li > :is(span,b), .learning-story > li > span { display:grid; place-items:center; width:28px; height:28px; border-radius:50%; background:var(--v3-soft,#eef4ff); color:var(--v3-blue,#2864dc); font-size:12px; font-weight:700; flex:0 0 28px; }
#focus-app .v3-learning-steps strong, .learning-story strong { display:block; font-size:14px; font-weight:650; }
#focus-app .v3-learning-steps small, .learning-story small { display:block; color:var(--v3-muted,#65738a); font-size:12px; line-height:1.7; margin-top:5px; }
#focus-app .v3-overview { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); align-items:start; gap:24px; }
#focus-app .v3-overview-summary > strong { display:block; font-size:34px; letter-spacing:-1px; }
#focus-app .v3-overview-summary > p { font-size:14px; }
#focus-app .v3-overview .v3-radar { margin:0; }
#focus-app .v3-overview .v3-radar svg { max-height:300px; }
#focus-app .v3-calendar-card { padding-top:4px; padding-bottom:4px; }
#focus-app .v3-calendar-card .v3-calendar { margin:0; border:0; }
#focus-app .calm-browse-options { display:grid; gap:16px; }
#focus-app .calm-browse-options > * { margin:0; }
#focus-app .fx-browse-controls > .calm-disclosure { width:100%; margin-bottom:12px; }
#focus-app .fx-browse-controls .v3-disclosure > summary { min-height:74px; }
#focus-app .fx-browse-controls .v3-disclosure-body { padding-top:8px; }
#focus-app .fx-explore-heading h2 { font-size:22px; }
#focus-app .fx-browse-summary { max-width:55ch; font-size:13px; }
.learning-story { margin:24px 0; }
.learning-story > li[aria-current=step] > span { background:var(--v3-blue,#2864dc); color:var(--v3-paper,#fff); }
#course-tour { --v3-navy:#23334c; --v3-blue:#2864dc; --v3-paper:#fff; --v3-soft:#eef4ff; --v3-muted:#65738a; border:1px solid #dfe5ef; border-radius:22px; background:#fff; color:#23334c; padding:30px; width:min(600px,calc(100vw - 24px)); max-height:calc(100dvh - 24px); overflow:auto; }
#course-tour::backdrop { background:#172c4b59; backdrop-filter:blur(3px); }
#course-tour h2 { font-size:26px; line-height:1.5; margin:22px 0 12px; }
#course-tour p { font-size:15px; line-height:1.85; color:var(--v3-muted); }
#course-tour .tour-top { font-size:12px; color:var(--v3-muted); }
#course-tour button { min-height:44px; border-radius:10px; border:1px solid #dfe5ef; background:var(--v3-paper); color:var(--v3-navy); padding:10px 16px; }
#course-tour .tour-actions { display:flex; justify-content:space-between; gap:12px; margin-top:24px; }
#course-tour [data-tour=next] { background:var(--v3-blue); color:#fff; border-color:var(--v3-blue); min-width:124px; }
#course-tour .tour-practice { background:var(--v3-soft); padding:20px; border:0; border-radius:14px; }
#course-tour .tour-practice u { color:#247152; text-decoration-thickness:2px; text-underline-offset:5px; }
#course-tour .tour-spacing { margin:24px 0 0; padding:12px; color:var(--v3-blue); background:var(--v3-soft); border-radius:14px; }
#course-tour .tour-spacing svg { width:100%; display:block; }
#course-tour figcaption { color:var(--v3-muted); font-size:11px; line-height:1.7; text-align:center; }
#course-tour[data-motion=true] .learning-story > li[aria-current=step] > span { animation:calm-step-in .18s ease-out; }
@keyframes calm-step-in { from { opacity:.45; transform:translateY(3px); } to { opacity:1; transform:none; } }
@media(min-width:980px) {
  #focus-app .fx-settings > .calm-disclosure { grid-column:1/-1; height:auto; }
  #focus-app .fx-roadmap > .v3-disclosure { grid-column:1/-1; }
  #focus-app .v3-roadmap-estimates .v3-disclosure-body { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #focus-app .v3-roadmap-estimates .av-roadmap { grid-column:1/-1; }
}
@media(max-width:600px) {
  #focus-app .v3-learning-steps, .learning-story { gap:12px; }
  #focus-app .v3-learning-steps > li, .learning-story > li { flex-direction:column; gap:8px; }
  #focus-app .v3-learning-steps small, .learning-story small { font-size:11px; }
  #focus-app .v3-overview { grid-template-columns:minmax(0,1fr); gap:8px; }
  #focus-app .v3-disclosure > summary { padding:16px 18px; }
  #focus-app .v3-disclosure-body { padding:0 18px 18px; }
  #focus-app .v3-disclosure > summary > small { display:none; }
  #course-tour { padding:22px; }
  #course-tour h2 { font-size:22px; }
  #course-tour p { font-size:14px; }
}
html[data-theme=dark] #course-tour { --v3-navy:#e9eff9; --v3-blue:#8bafff; --v3-paper:#18263b; --v3-soft:#223553; --v3-muted:#a5b3c8; background:var(--v3-paper); color:var(--v3-navy); border-color:#30405a; }
html[data-theme=dark] #course-tour [data-tour=next] { color:#101a2a; }
@media(prefers-reduced-motion:reduce) { #course-tour * { animation:none!important; transition:none!important; } }

/* Night surfaces: stable reading contrast, with translucency only on overlays.
   Keep light-mode color and all card/blank geometry unchanged. */
html[data-theme=dark] { color-scheme:dark; --bg:#0d1421; --paper:#172235; --ink:#edf3ff; --muted:#b6c4da; --line:#3d506c; --green:#9fc2ff; --soft:#253b5b; --red:#ffc2b8; }
html[data-theme=dark] #focus-app .fx-root {
  --fx-text:var(--v3-navy); --fx-surface:var(--v3-paper); --fx-paper:var(--v3-paper);
  --fx-bg:var(--v3-bg); --fx-ink:var(--v3-navy); --fx-muted:var(--v3-muted); --fx-line:var(--v3-line);
  --fx-warm:var(--v3-warning); --fx-warm-bg:var(--v3-warning-bg);
  --av-new:#9fc7f5; --av-new-bg:#253b5b; --av-extra:#d0b8f5; --av-extra-bg:#302d49;
  --av-overdue:var(--v3-warning); --av-overdue-bg:var(--v3-warning-bg); --av-reserve:#a3b2c8;
}
html[data-theme=dark] #focus-app :is(.v3-card,.v3-stat,.v3-disclosure,.fx-settings-group,.fx-panel,.rv-pace,.rt-editor,.av-roadmap,.av-plan,.gv-hero,.gv-editor) {
  background-color:var(--v3-paper); background-image:linear-gradient(135deg,#ffffff04,transparent 60%);
  border-color:var(--v3-line); box-shadow:var(--v3-shadow);
}
html[data-theme=dark] #focus-app .v3-disclosure-body > :is(.fx-settings-group,.rv-pace,.rt-editor,.fx-panel,.v3-card) { background:transparent; box-shadow:none; }
html[data-theme=dark] #focus-app :is(.v3-recommendation,.v3-result,.v3-roadmap-now) { border-color:#526f98; }
html[data-theme=dark] #focus-app :is(.v3-roadmap-now,.rt-new-bundles > span,.rt-recall-bundle,.gv-editor .gv-result) { background:var(--v3-soft); border-color:#5978a2; }
html[data-theme=dark] #focus-app :is(.v3-bottom-nav,.focus-drawer) {
  background:var(--v3-glass); border-color:#536780; box-shadow:0 16px 48px #00000040,inset 0 1px 0 #ffffff0c;
  -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
}
html[data-theme=dark] #focus-app .focus-drawer::backdrop { background:#040914a6; -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); }
html[data-theme=dark] #focus-app .v3-bottom-nav :is(button:hover,button[aria-current=page]) { background:var(--v3-soft); color:var(--v3-blue); }
html[data-theme=dark] #focus-app :is(.focus-drawer-heading > button:hover,.focus-tools button:hover,.v3-header-tools button:hover) { background:var(--v3-soft); color:var(--v3-blue); }
html[data-theme=dark] #focus-app :is(.focus-menu button,.focus-drawer-heading > button) { color:var(--v3-navy); }
html[data-theme=dark] #focus-app :is(.focus-other-tools > summary,.focus-reason-more > summary,.focus-return-note,.focus-menu small,.focus-reason-kicker,.focus-reason-stats small) { color:var(--v3-muted); }
html[data-theme=dark] #focus-app :is(.focus-reorder,.focus-reason-stats) { background:var(--v3-soft); border-color:var(--v3-line); color:var(--v3-navy); }
html[data-theme=dark] #focus-app .focus-reorder-track i { background:var(--v3-blue); }
html[data-theme=dark] #focus-app .focus-story-steps [aria-current=step] .focus-story-number { border-color:var(--v3-blue); }
html[data-theme=dark] #focus-app :is(.fx-card-meta,.fx-card-face-label,.fx-card-flip) { color:var(--v3-muted)!important; }
html[data-theme=dark] #focus-app :is(.science-confidence,#science-status) { color:var(--v3-muted); }
html[data-theme=dark] #focus-app .fx-brand-mark { color:var(--v3-blue); background:var(--v3-soft); border-color:var(--v3-line); }
html[data-theme=dark] #focus-app :is(.fx-card,.fx-card-content,.cs-table) { color:var(--v3-navy); }
html[data-theme=dark] #focus-app :is(.cs-table,.cs-table th,.cs-table td,.cs-table li + li) { border-color:var(--v3-table-line); }
html[data-theme=dark] #focus-app .fx-card .subject-map .cs-table :is(th,td) { border-color:var(--v3-table-line); }
html[data-theme=dark] #focus-app :is(.cs-table thead th,.cs-table tbody th,.fx-card .subject-map .cs-table th) { background:#1e2d43; color:#d2dded; }
html[data-theme=dark] #focus-app .subject-map .cs-table .context-row > td { color:var(--v3-muted); }
html[data-theme=dark] #focus-app .subject-map .cs-table :is(.semantic-current-cell,.subject-map-current) > td { background:var(--v3-answer-bg); color:var(--v3-navy); }
html[data-theme=dark] #focus-app :is(.cs-cue,.cs-standard-code,.question-school-context,.question-instruction,.source-original-context,.spiral-context) { color:var(--v3-muted); }
html[data-theme=dark] #focus-app :is(.cs-table mark,.subject-map mark,.cs-blank,.dq-blank) {
  color:var(--v3-answer); background:var(--v3-answer-bg); border-color:#80b798;
  text-decoration-color:#85c9a2; outline-color:#85c9a2;
}
html[data-theme=dark] #focus-app .fx-card-content mark { color:var(--v3-answer); background:var(--v3-answer-bg); text-decoration:underline; text-decoration-color:#85c9a2; text-decoration-thickness:2px; text-underline-offset:4px; }
html[data-theme=dark] #focus-app .subject-map .cs-blank { color:var(--v3-answer); border-color:#80b798; background:var(--v3-answer-bg); }
html[data-theme=dark] #focus-app #fx-card .fp-slot { background:var(--v3-answer-bg); border-color:#80b798; color:var(--v3-answer); }
html[data-theme=dark] #focus-app #fx-card .fp-slot :is(.fp-slot-number,.fp-slot-value) { color:var(--v3-answer); text-decoration-color:#85c9a2; }
html[data-theme=dark] #focus-app #fx-card .fp-slot.is-answer .fp-slot-value { color:var(--v3-answer); text-decoration-color:#85c9a2; }
html[data-theme=dark] #focus-app .cs-blank.cs-blank-waiting { color:var(--v3-muted)!important; background:var(--v3-field)!important; border-color:var(--v3-field-line)!important; }
html[data-theme=dark] #focus-app :is(input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea),
html[data-theme=dark] #focus-app.focus-stage .science-check input#science-answer {
  background:var(--v3-field)!important; color:var(--v3-navy)!important; border-color:var(--v3-field-line)!important;
  caret-color:var(--v3-blue); color-scheme:dark;
}
html[data-theme=dark] #focus-app :is(input,textarea)::placeholder { color:#acbcd3; opacity:1; }
html[data-theme=dark] #focus-app :is(button,a,summary,input,select,textarea):focus-visible { outline-color:#bdd5ff; }
html[data-theme=dark] #focus-app ::selection { background:#365f97; color:#fff; }
html[data-theme=dark] #focus-app :is(.fx-preview-levels > button,.fx-browse-kinds > button,.fx-choice,.fx-level,.fx-secondary,.gv-mode,.gv-presets button) { color:var(--v3-navy); background:var(--v3-paper); border-color:var(--v3-field-line); }
html[data-theme=dark] #focus-app :is(.fx-preview-levels > button.is-selected,.fx-browse-kinds > button.is-selected,.fx-choice.is-selected,.fx-level.is-selected,.gv-mode.is-selected,.gv-presets button.is-selected) { color:var(--v3-navy); background:var(--v3-soft); border-color:var(--v3-blue); box-shadow:inset 0 0 0 1px var(--v3-blue); }
html[data-theme=dark] #focus-app :is(.fx-choice-check,.fx-level-number,.rt-choice-check,.rv-choice-check,.gv-mode i) { border-color:var(--v3-field-line); }
html[data-theme=dark] #focus-app .fx-choice.is-selected .fx-choice-check { color:var(--v3-on-accent); background:var(--v3-blue); border-color:var(--v3-blue); }
html[data-theme=dark] #focus-app :is(.rv-pace-choice,.rt-choice) { color:var(--v3-navy); }
html[data-theme=dark] #focus-app :is(.rv-pace-choice,.rt-choice,.gv-mode) small { color:var(--v3-muted); }
html[data-theme=dark] #focus-app :is(.pc-primary,.dp-focus-primary,.rv-button-primary,.rc-primary,.av-button-primary) { color:var(--v3-on-accent)!important; background:var(--v3-blue); border-color:var(--v3-blue); }
html[data-theme=dark] #focus-app :is(.fx-rate[data-fx-rate=unknown],.fx-rate[data-fx-input-rate=unknown]) { color:var(--v3-warning); background:var(--v3-warning-bg); border-color:#9c8256; }
html[data-theme=dark] #focus-app :is(.pc-status[data-state=error],.gv-result-warning,.gv-sticky-summary.is-warning) { color:var(--v3-warning); }
html[data-theme=dark] #focus-app :is(.pc-error,.science-error,.fx-error,.dq-error,.exam-error) { color:var(--v3-danger); }
html[data-theme=dark] #focus-app .dq-feedback { color:var(--v3-answer); background:var(--v3-answer-bg); border-color:#80b798; }
html[data-theme=dark] #focus-app .dq-feedback.is-miss { color:var(--v3-warning); background:var(--v3-warning-bg); border-color:#9c8256; }
html[data-theme=dark] #focus-app .v3-bookmark-icon { color:#f1d296; background:#3b3227; }
html[data-theme=dark] #focus-app .v3-bookmark-icon svg { fill:#65522b; }
html[data-theme=dark] #focus-app .v3-radar .v3-radar-grid,
html[data-theme=dark] #focus-app .v3-radar .v3-radar-axis { stroke:#637892; }
html[data-theme=dark] #focus-app .v3-radar .v3-radar-value { fill:#9fc2ff26; stroke:var(--v3-blue); }
html[data-theme=dark] #focus-app :is(.v3-progress,.v3-progress-compact .v3-progress,.v3-week-track,.dp-track) { background:#30415b; }
html[data-theme=dark] #focus-app .v3-week-track i { background:#829ec9; }
html[data-theme=dark] #focus-app .v3-week .is-today i { background:var(--v3-blue); }
html[data-theme=dark] #focus-app .v3-calendar-day.is-future { opacity:.9; }
html[data-theme=dark] #focus-app .v3-calendar-day:disabled { opacity:.72; }

/* Subject identity remains softly colored; selection also has an explicit edge. */
html[data-theme=dark] #focus-app :is([data-fx-subject="9정"],[data-fx-browse-subject="9정"],[data-subject="9정"]) { --subject-tint:#21372f; --subject-edge:#6b927e; }
html[data-theme=dark] #focus-app :is([data-fx-subject="12정"],[data-fx-browse-subject="12정"],[data-subject="12정"]) { --subject-tint:#223551; --subject-edge:#728eb5; }
html[data-theme=dark] #focus-app :is([data-fx-subject="12인기"],[data-fx-browse-subject="12인기"],[data-subject="12인기"]) { --subject-tint:#352e4b; --subject-edge:#9180af; }
html[data-theme=dark] #focus-app :is([data-fx-subject="12데과"],[data-fx-browse-subject="12데과"],[data-subject="12데과"]) { --subject-tint:#3b3427; --subject-edge:#a59169; }
html[data-theme=dark] #focus-app :is([data-fx-subject="12소생"],[data-fx-browse-subject="12소생"],[data-subject="12소생"]) { --subject-tint:#263c43; --subject-edge:#6b98a5; }
html[data-theme=dark] #focus-app :is([data-fx-subject="12정과"],[data-fx-browse-subject="12정과"],[data-subject="12정과"]) { --subject-tint:#3d2e3a; --subject-edge:#a3819b; }
html[data-theme=dark] #focus-app button:is([data-fx-subject],[data-fx-action="courseSubject"],[data-fx-action="diagnoseSubject"],[data-fx-browse-subject]:not([data-fx-browse-subject="all"]):not([data-fx-browse-subject="scope"])) { background:var(--subject-tint,var(--v3-paper)); border-color:var(--subject-edge,var(--v3-field-line)); color:var(--v3-navy); }
html[data-theme=dark] #focus-app button:is([data-fx-subject],[data-fx-action="courseSubject"],[data-fx-browse-subject])[aria-pressed=true] { border-color:var(--v3-blue); box-shadow:inset 0 0 0 1px var(--v3-blue); }

html[data-theme=dark] #course-tour { --v3-navy:#edf3ff; --v3-blue:#9fc2ff; --v3-paper:#172235; --v3-soft:#253b5b; --v3-muted:#b6c4da; background:rgba(23,34,53,.97); border-color:#536780; }
html[data-theme=dark] #course-tour :is(.tour-note,.tour-top) { color:var(--v3-muted); }
html[data-theme=dark] #course-tour [data-tour=next] { color:#122038; }
html[data-theme=dark] .di-dialog { --di-blue:#9fc2ff; --di-ink:#edf3ff; --di-muted:#b6c4da; --di-line:#536780; --di-paper:#172235; --di-soft:#253b5b; }
@media(prefers-reduced-transparency:reduce) {
  html[data-theme=dark] #focus-app :is(.v3-bottom-nav,.focus-drawer) { background:var(--v3-paper); -webkit-backdrop-filter:none; backdrop-filter:none; }
}

/* Always-visible records and a quiet, explicitly estimated course journey. */
#focus-app .v3-room [data-v3-section] > .v3-section-heading { margin-bottom:20px; }
#focus-app .v3-room .v3-calendar-card { padding:24px; }
#focus-app .v3-calendar .v3-section-heading { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; gap:8px; margin-bottom:18px; }
#focus-app .v3-calendar .v3-section-heading h2 { margin:0; font-size:18px; }
#focus-app .v3-calendar .v3-section-heading > span { color:var(--v3-muted); font-size:12px; }
#focus-app .v3-goal-progress { margin:20px 0; overflow:hidden; }
#focus-app .v3-goal-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
#focus-app .v3-goal-heading h2 { margin:0; font-size:20px; letter-spacing:-.035em; line-height:1.45; }
#focus-app .v3-goal-heading p { margin:6px 0 0; color:var(--v3-muted); font-size:12px; line-height:1.7; }
#focus-app .v3-goal-deadline { flex-shrink:0; padding:7px 10px; border:1px solid var(--v3-line); border-radius:10px; color:var(--v3-blue); background:var(--v3-soft); font-size:12px; font-weight:650; }
#focus-app .v3-goal-deadline :is(small,strong) { display:block; }
#focus-app .v3-goal-deadline small { font-size:10px; }
#focus-app .v3-goal-deadline strong { margin-top:3px; font-size:18px; }
#focus-app .v3-goal-journey { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding:0; margin:25px 0 12px; list-style:none; gap:8px; color:var(--v3-muted); font-size:12px; }
#focus-app .v3-goal-journey li { min-width:0; line-height:1.6; }
#focus-app .v3-goal-journey li > span { display:inline-grid; place-items:center; width:22px; height:22px; margin-bottom:8px; border-radius:50%; background:var(--v3-bg); border:1px solid var(--v3-line); font-size:10px; }
#focus-app .v3-goal-journey li > strong { display:block; font-weight:600; font-size:11px; }
#focus-app .v3-goal-journey .is-current > span { background:var(--v3-soft); border-color:var(--v3-blue); }
#focus-app .v3-goal-journey li:nth-child(2) { text-align:center; }
#focus-app .v3-goal-journey li:last-child { text-align:right; }
#focus-app .v3-goal-journey .is-current { color:var(--v3-blue); font-weight:750; }
#focus-app .v3-goal-track { overflow:hidden; height:8px; border-radius:20px; background:var(--v3-line); }
#focus-app .v3-goal-fill { display:block; width:var(--v3-goal-progress,0%); height:100%; border-radius:inherit; background:var(--v3-blue); transform-origin:left; }
#focus-app .v3-goal-progress[data-goal-motion=true] .v3-goal-fill { animation:v3-goal-reveal 700ms cubic-bezier(.2,.7,.3,1) both; }
#focus-app .v3-goal-count { margin:10px 0 0; color:var(--v3-muted); font-size:12px; line-height:1.7; }
#focus-app .v3-goal-count small { display:block; font-size:11px; }
#focus-app .v3-goal-metrics { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:22px 0 0; }
#focus-app .v3-goal-metrics article { padding:16px; border-radius:14px; background:var(--v3-bg); min-width:0; }
#focus-app .v3-goal-metrics :is(span,strong,small) { display:block; }
#focus-app .v3-goal-metrics span { color:var(--v3-muted); font-size:12px; }
#focus-app .v3-goal-metrics strong { margin:8px 0; color:var(--v3-navy); font-size:27px; line-height:1.4; font-weight:750; letter-spacing:-.04em; word-break:keep-all; }
#focus-app .v3-goal-metrics small { color:var(--v3-muted); font-size:11px; line-height:1.7; }
#focus-app .v3-goal-note { margin:16px 0 0; color:var(--v3-muted); font-size:12px; line-height:1.8; }
#focus-app .v3-goal-basis { margin-top:14px; color:var(--v3-muted); font-size:12px; line-height:1.8; }
#focus-app .v3-goal-basis summary { min-height:44px; display:flex; align-items:center; cursor:pointer; text-decoration:underline; text-underline-offset:4px; }
#focus-app .v3-goal-basis p { margin:0 0 8px; }
@keyframes v3-goal-reveal { from { transform:scaleX(0); } to { transform:scaleX(1); } }
@media(max-width:480px) {
 #focus-app .v3-room .v3-calendar-card { padding:20px 14px; }
 #focus-app .v3-goal-heading { flex-wrap:wrap; gap:10px; }
 #focus-app .v3-goal-heading h2 { font-size:18px; }
 #focus-app .v3-goal-metrics { gap:10px; }
 #focus-app .v3-goal-metrics article { padding:12px; }
 #focus-app .v3-goal-metrics strong { font-size:22px; }
}
@media(prefers-reduced-motion:reduce) { #focus-app .v3-goal-progress .v3-goal-fill { animation:none!important; } }
