/* Perl: one calm dark instrument for a clerkship year. Layout: sidebar left (Today, Calendar, then the Debrief and School spaces), one display line per screen.
   Neutrals carry the structure. Each space has one accent: blue for Debrief, teal for School. Completion takes its space's accent.
   Amber means it needs you within 14 days; red is kept for policy conflicts and passed hard limits. Gold is retired. Dark only. */
/* Every rule below is fenced out of the Debrief space (.dbf) with a zero-specificity :where(), so the two spaces never restyle each other. */
:root{--ground: #0f1112; --side: #0f1112; --surface: #161a1b; --raised: #1d2123; --sunk: #252a2c; --active: #252a2c;
  --border: #2b3134; --rule: #23282a; --control: #3c4346;
  --text: #eceeee; --text-2: #aab2b5; --muted: #8a9397; --inverse: #0f1112;
  --teal: #4fb3a5; --teal-text: #6fc8bb; --teal-wash: #13302c; --on-teal: #062420;
  --debrief: #7d9fe0; --debrief-text: #a3bdf0; --debrief-wash: #172233; --on-debrief: #0a1322;
  --amber: #e3a33f; --amber-text: #efbb66; --amber-wash: #33260f;
  --red: #ec6a5e; --red-text: #f49b91; --red-wash: #3a1715;
  --k-cl-bg: #1f2c35; --k-cl-ink: #c6d4de; --k-cl-bar: #6e8fa6;
  --k-el-bg: #24282c; --k-el-ink: #c9ced2; --k-el-bar: #858d94;
  --k-si-bg: transparent; --k-si-ink: #c6d4de; --k-si-bar: #6e8fa6;
  --k-ot-bg: #202426; --k-ot-ink: #aab2b5; --k-ot-bar: #5d6569;
  --od1-bg: #2a2212; --od1-ink: #e9c88a; --od2-bg: #4a3612; --od2-ink: #f5d49a; --od3-bg: #e3a33f; --od3-ink: #241703;
  --heat-1: #323637; --heat-2: #464a4c; --heat-3: #636768; --heat-4: #919495; --on-heat-3: #eceeee; --on-heat-4: #0f1112;
  --seg-1: #252a2c; --seg-2: #2f363a; --seg-3: #3a4246;
  --scrim: rgba(0, 0, 0, .45);
  --shadow-float: 0 24px 64px rgba(0, 0, 0, .55), 0 2px 8px rgba(0, 0, 0, .35);
  color-scheme: dark;
  
  --accent: var(--teal); --accent-soft: var(--teal-wash); --accent-ink: var(--teal-text); --on-accent: var(--on-teal);
  --positive: var(--teal-text); --negative: var(--red-text); --warning: var(--amber-text);
  --pill-positive-bg: var(--teal-wash); --pill-positive-ink: var(--teal-text);
  --pill-negative-bg: var(--red-wash); --pill-negative-ink: var(--red-text);
  --pill-warning-bg: var(--amber-wash); --pill-warning-ink: var(--amber-text);
  --pill-neutral-bg: var(--sunk); --pill-neutral-ink: var(--text-2);
  --pill-info-bg: var(--sunk); --pill-info-ink: var(--text-2);
  --hue: var(--teal); --hue-soft: var(--teal-wash);
  --font: "Geist", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  --r-card: 16px; --r-row: 10px; --r-chip: 6px;
  --s1: 4px; --s2: 8px; --s3: 12px; --s4: 16px; --s5: 24px; --s6: 32px; --s7: 48px;
  --gap: 16px; --pad: 24px; --section: 32px; --ctl: 38px; --row: 56px; --sidebar: 232px;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);}
:root[data-space="debrief"]{--accent: var(--debrief); --accent-soft: var(--debrief-wash); --accent-ink: var(--debrief-text); --on-accent: var(--on-debrief); --hue: var(--debrief); --hue-soft: var(--debrief-wash);}
*{box-sizing: border-box;}
html{-webkit-text-size-adjust: 100%;}
html,body{min-height: 100%;}
body{margin: 0; background: var(--ground); color: var(--text); font: 400 14px/20px var(--font); -webkit-font-smoothing: antialiased;}
button:where(:not(.dbf, .dbf *)),input:where(:not(.dbf, .dbf *)),select:where(:not(.dbf, .dbf *)),textarea:where(:not(.dbf, .dbf *)){font: inherit; color: inherit;}
a:where(:not(.dbf, .dbf *)){color: inherit;}
h1:where(:not(.dbf, .dbf *)),h2:where(:not(.dbf, .dbf *)),h3:where(:not(.dbf, .dbf *)){text-wrap: balance;}
.num:where(:not(.dbf, .dbf *)),.when:where(:not(.dbf, .dbf *)),td.num:where(:not(.dbf, .dbf *)),th.num:where(:not(.dbf, .dbf *)){font-variant-numeric: tabular-nums;}
:focus-visible{outline: 2px solid var(--accent); outline-offset: 2px;}
::selection{background: var(--accent-soft); color: var(--text);}
:root{accent-color: var(--accent); caret-color: var(--accent);}
[hidden]{display: none !important;}
.sr:where(:not(.dbf, .dbf *)){position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;}
.muted:where(:not(.dbf, .dbf *)){color: var(--muted);}
.small:where(:not(.dbf, .dbf *)){font-size: 12px; line-height: 16px;}
.mt8:where(:not(.dbf, .dbf *)){margin-top: 8px;}
.mt16:where(:not(.dbf, .dbf *)){margin-top: 16px;}
mark:where(:not(.dbf, .dbf *)){background: var(--accent-soft); color: inherit; border-radius: 3px; padding: 0 1px;}
kbd:where(:not(.dbf, .dbf *)){font: 500 11px/18px var(--font); padding: 0 6px; border-radius: var(--r-chip); background: var(--sunk); color: var(--muted); white-space: nowrap;}
.app:where(:not(.dbf, .dbf *)){display: grid; grid-template-columns: var(--sidebar) minmax(0, 1fr); min-height: 100vh;}
.app:where(:not(.dbf, .dbf *))::before{content: ""; position: fixed; inset: 0 auto 0 0; width: var(--sidebar); background: var(--side); z-index: -1;}
.side:where(:not(.dbf, .dbf *)){position: sticky; top: 0; height: 100vh; overflow-y: auto; display: flex; flex-direction: column; gap: 2px; padding: 18px 12px 16px; padding-left: max(12px, env(safe-area-inset-left, 0px)); background: var(--side);}
.brand:where(:not(.dbf, .dbf *)){display: flex; align-items: center; gap: 10px; padding: 4px 8px 18px; text-decoration: none;}
.brand .mark:where(:not(.dbf, .dbf *)){flex: none;}
.brand b:where(:not(.dbf, .dbf *)){display: block; font-weight: 600; font-size: 14px; line-height: 18px;}
.brand small:where(:not(.dbf, .dbf *)){display: block; color: var(--muted); font-size: 12px; line-height: 16px;}
.side-search:where(:not(.dbf, .dbf *)){display: flex; align-items: center; gap: 10px; width: 100%; height: 36px; padding: 0 8px 0 12px; margin: 0 0 14px; border: 1px solid var(--border); border-radius: 999px; background: var(--ground); color: var(--muted); cursor: pointer; text-align: left; transition: border-color 150ms var(--ease);}
.side-search:hover:where(:not(.dbf, .dbf *)){border-color: var(--control); color: var(--text);}
.side-search span:where(:not(.dbf, .dbf *)){flex: 1;}
.side-search svg:where(:not(.dbf, .dbf *)),.nav svg:where(:not(.dbf, .dbf *)),.tb-search svg:where(:not(.dbf, .dbf *)){width: 16px; height: 16px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round;}
.nav:where(:not(.dbf, .dbf *)){display: grid; gap: 2px;}
.nav a:where(:not(.dbf, .dbf *)){display: flex; align-items: center; gap: 10px; height: 32px; padding: 0 12px; border-radius: 999px; color: var(--muted); text-decoration: none; transition: background 150ms var(--ease), color 150ms var(--ease);}
.nav a:hover:where(:not(.dbf, .dbf *)){background: var(--sunk); color: var(--text);}
.nav a[aria-current="page"]:where(:not(.dbf, .dbf *)){background: var(--active); color: var(--text); font-weight: 500;}
.side-foot:where(:not(.dbf, .dbf *)){margin-top: auto; display: grid; gap: 12px; padding-top: 18px;}
.theme-btn:where(:not(.dbf, .dbf *)){display: flex; align-items: center; gap: 10px; width: 100%; height: 34px; padding: 0 10px 0 12px; border: 0; border-radius: 999px; background: transparent; color: var(--text-2); cursor: pointer; font-size: 13px; text-align: left; transition: background 160ms var(--ease), color 160ms var(--ease);}
.theme-btn:hover:where(:not(.dbf, .dbf *)){background: var(--sunk); color: var(--text);}
.theme-btn svg:where(:not(.dbf, .dbf *)){width: 16px; height: 16px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round;}
.theme-btn > span:not(.theme-sw):where(:not(.dbf, .dbf *)){flex: 1;}
.theme-sw:where(:not(.dbf, .dbf *)){position: relative; width: 30px; height: 18px; border-radius: 999px; background: var(--control); flex: none; transition: background 200ms var(--ease);}
.theme-sw i:where(:not(.dbf, .dbf *)){position: absolute; top: 2px; left: 2px; width: 14px; height: 14px; border-radius: 50%; background: var(--ground); transition: transform 200ms var(--ease);}
:root[data-theme="dark"] .theme-sw,.theme-btn[aria-checked="true"] .theme-sw:where(:not(.dbf, .dbf *)){background: var(--teal);}
.theme-btn[aria-checked="true"] .theme-sw i:where(:not(.dbf, .dbf *)){transform: translateX(12px); background: var(--on-teal);}
@media (prefers-reduced-motion: reduce){
.theme-sw:where(:not(.dbf, .dbf *)),.theme-sw i:where(:not(.dbf, .dbf *)){transition: none;}
}
.side-foot p:where(:not(.dbf, .dbf *)){margin: 0; padding: 0 12px; color: var(--muted); font-size: 12px; line-height: 16px;}
.scope:where(:not(.dbf, .dbf *)){display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: var(--r-row); text-decoration: none; transition: background 150ms var(--ease);}
.scope:hover:where(:not(.dbf, .dbf *)),.scope[aria-current="page"]:where(:not(.dbf, .dbf *)){background: var(--active);}
.avatar:where(:not(.dbf, .dbf *)){width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; flex: none; background: var(--k-cl-bg); color: var(--k-cl-ink); font-size: 12px; font-weight: 600;}
.scope-t:where(:not(.dbf, .dbf *)){min-width: 0;}
.scope b:where(:not(.dbf, .dbf *)){display: block; font-weight: 500; font-size: 13px; line-height: 17px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}
.scope small:where(:not(.dbf, .dbf *)){display: block; color: var(--muted); font-size: 12px; line-height: 16px;}
.topbar:where(:not(.dbf, .dbf *)),.sheet:where(:not(.dbf, .dbf *)){display: none;}
.canvas:where(:not(.dbf, .dbf *)){min-width: 0; padding: 40px 32px 80px; padding-left: max(32px, env(safe-area-inset-left, 0px)); padding-right: max(32px, env(safe-area-inset-right, 0px));}
.view:where(:not(.dbf, .dbf *)){max-width: 1100px; margin: 0 auto; display: grid; gap: var(--gap);}
.view > *:where(:not(.dbf, .dbf *)){min-width: 0;}
.title-row:where(:not(.dbf, .dbf *)){display: flex; justify-content: space-between; align-items: flex-end; gap: 14px 24px; flex-wrap: wrap; padding: 8px 0 10px;}
.title-row > div:first-child:where(:not(.dbf, .dbf *)){min-width: 0; flex: 1 1 420px;}
.title-row h1:where(:not(.dbf, .dbf *)){margin: 0; font-size: 28px; line-height: 34px; font-weight: 500; letter-spacing: -0.015em;}
.finding:where(:not(.dbf, .dbf *)){margin: 6px 0 0; color: var(--text-2); font-size: 15px; line-height: 22px; max-width: 72ch;}
.finding b:where(:not(.dbf, .dbf *)){color: var(--text); font-weight: 500;}
.title-actions:where(:not(.dbf, .dbf *)){display: flex; gap: 8px; align-items: center; flex-wrap: wrap;}
.home:where(:not(.dbf, .dbf *)){display: grid; gap: 24px;}
.hero:where(:not(.dbf, .dbf *)){display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 28px 48px; padding: 32px; border-radius: var(--r-card); background: var(--surface);}
.hero-main:where(:not(.dbf, .dbf *)){min-width: 0;}
.hero-meta:where(:not(.dbf, .dbf *)){margin: 0 0 14px; color: var(--text-2); font-size: 13px; line-height: 18px;}
.hero h1:where(:not(.dbf, .dbf *)){margin: 0; font-size: 44px; line-height: 48px; font-weight: 500; letter-spacing: -0.025em;}
.hero-rot:where(:not(.dbf, .dbf *)){margin-top: 24px; display: grid; gap: 10px; max-width: 560px;}
.hero-sub:where(:not(.dbf, .dbf *)){margin: 0; color: var(--text-2); font-size: 13px; line-height: 18px;}
.hero-sub .link:where(:not(.dbf, .dbf *)),.hero-then .link:where(:not(.dbf, .dbf *)){font-size: 13px; color: var(--text);}
.hero-then:where(:not(.dbf, .dbf *)){margin: 6px 0 0; color: var(--muted); font-size: 13px; line-height: 18px;}
.hero-next:where(:not(.dbf, .dbf *)){align-self: end; display: grid; gap: 10px; min-width: 0;}
.hero-next .label:where(:not(.dbf, .dbf *)){margin: 0; color: var(--text-2); font-size: 13px; line-height: 18px; font-weight: 500;}
.hero-clear:where(:not(.dbf, .dbf *)){margin: 0; padding: 16px; border-radius: var(--r-row); background: var(--raised); color: var(--text-2);}
.next-rows > li:where(:not(.dbf, .dbf *)){grid-template-columns: 22px 44px minmax(0, 1fr); gap: 8px 12px;}
.next-rows > li .tail:where(:not(.dbf, .dbf *)){grid-column: 3; justify-content: flex-start; margin-top: -2px;}
.hero-figs:where(:not(.dbf, .dbf *)){grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); padding-top: 20px; border-top: 1px solid var(--rule);}
.fig-q:where(:not(.dbf, .dbf *)){display: grid; gap: 2px; align-content: start; min-width: 0; padding: 0 20px; text-decoration: none; border-left: 1px solid var(--rule);}
.fig-q:first-child:where(:not(.dbf, .dbf *)){padding-left: 0; border-left: 0;}
.fig-q .k:where(:not(.dbf, .dbf *)){color: var(--muted); font-size: 12px; line-height: 16px; transition: color 160ms var(--ease);}
.fig-q:hover .k:where(:not(.dbf, .dbf *)){color: var(--text-2);}
.fig-q .v:where(:not(.dbf, .dbf *)){font-size: 22px; line-height: 28px; font-weight: 400; letter-spacing: -0.01em;}
.fig-q .v small:where(:not(.dbf, .dbf *)){font-size: 13px; color: var(--text-2); margin-left: 4px; letter-spacing: 0;}
.fig-q .c:where(:not(.dbf, .dbf *)){color: var(--muted); font-size: 12px; line-height: 16px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}
.g12:where(:not(.dbf, .dbf *)){display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--gap); align-items: stretch;}
.s3:where(:not(.dbf, .dbf *)){grid-column: span 3;}
.s4:where(:not(.dbf, .dbf *)){grid-column: span 4;}
.s5:where(:not(.dbf, .dbf *)){grid-column: span 5;}
.s7:where(:not(.dbf, .dbf *)){grid-column: span 7;}
.s6:where(:not(.dbf, .dbf *)){grid-column: span 6;}
.s8:where(:not(.dbf, .dbf *)){grid-column: span 8;}
.s9:where(:not(.dbf, .dbf *)){grid-column: span 9;}
.s12:where(:not(.dbf, .dbf *)){grid-column: 1 / -1;}
.count:where(:not(.dbf, .dbf *)){display: grid; grid-template-rows: auto 1fr auto; gap: 6px; min-height: 128px; padding: 16px 18px; border-radius: var(--r-card); background: var(--surface); text-decoration: none; transition: background 150ms var(--ease);}
.count:hover:where(:not(.dbf, .dbf *)){background: var(--sunk);}
.count .k:where(:not(.dbf, .dbf *)){color: var(--muted); font-size: 13px; line-height: 18px;}
.count .v:where(:not(.dbf, .dbf *)){align-self: end; font-size: 32px; line-height: 38px; font-weight: 400; letter-spacing: -0.02em;}
.count .v small:where(:not(.dbf, .dbf *)){font-size: 15px; color: var(--muted); margin-left: 6px; letter-spacing: 0;}
.count .c:where(:not(.dbf, .dbf *)){color: var(--muted); font-size: 12px; line-height: 16px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}
.col:where(:not(.dbf, .dbf *)){display: flex; flex-direction: column; gap: var(--gap); min-width: 0;}
.col > .grow:where(:not(.dbf, .dbf *)){flex: 1; display: flex; flex-direction: column;}
.col > .grow > .panel-foot:where(:not(.dbf, .dbf *)){margin-top: auto; padding-top: 14px;}
.agenda:where(:not(.dbf, .dbf *)){display: flex; flex-direction: column;}
.agenda > .panel-foot:where(:not(.dbf, .dbf *)){margin-top: auto; padding-top: 16px;}
.ag-h:where(:not(.dbf, .dbf *)){display: flex; align-items: baseline; gap: 10px; margin: 18px 4px 8px; font-size: 13px; line-height: 18px; font-weight: 600;}
.panel-head + .ag-h:where(:not(.dbf, .dbf *)){margin-top: 2px;}
.ag-h span:where(:not(.dbf, .dbf *)){color: var(--muted); font-weight: 400; font-size: 12px;}
.rot-card:where(:not(.dbf, .dbf *)){display: grid; gap: 4px; width: 100%; padding: 14px 16px 14px; border: 0; border-radius: var(--r-row); background: var(--k-bg); color: var(--k-ink); text-align: left; cursor: pointer; transition: transform 120ms var(--ease);}
.rot-card:active:where(:not(.dbf, .dbf *)){transform: translateY(1px);}
.rot-card b:where(:not(.dbf, .dbf *)){font-weight: 600; font-size: 15px; line-height: 20px;}
.rot-card small:where(:not(.dbf, .dbf *)){font-size: 12px; line-height: 16px; opacity: .85;}
.rot-card .meter:where(:not(.dbf, .dbf *)){margin-top: 8px; background: color-mix(in srgb, var(--k-ink) 14%, transparent);}
.rot-card .meter span:where(:not(.dbf, .dbf *)){background: var(--k-bar);}
.rc-foot:where(:not(.dbf, .dbf *)){display: flex; justify-content: space-between; gap: 8px; font-size: 12px; line-height: 16px; margin-top: 2px;}
.meter:where(:not(.dbf, .dbf *)){display: block; position: relative; height: 6px; border-radius: 999px; background: var(--sunk); overflow: hidden;}
.meter span:where(:not(.dbf, .dbf *)){position: absolute; inset: 0 auto 0 0; border-radius: 999px; background: var(--accent);}
.next-up:where(:not(.dbf, .dbf *)){margin: 12px 4px 0; color: var(--muted); font-size: 13px; line-height: 18px;}
.next-up .link:where(:not(.dbf, .dbf *)){color: var(--text); font-weight: 500;}
.facts:where(:not(.dbf, .dbf *)){list-style: none; margin: 0; padding: 0; display: grid; gap: 8px;}
.facts li:where(:not(.dbf, .dbf *)){display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 52px; padding: 8px 12px; background: var(--raised); border: 1px solid var(--border); border-radius: var(--r-row);}
.facts li:has(> .fact):where(:not(.dbf, .dbf *)){padding: 0; border: 0; background: none;}
.fact:where(:not(.dbf, .dbf *)){display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%; min-height: 54px; padding: 9px 12px; border: 1px solid var(--border); border-radius: var(--r-row); background: var(--raised); text-align: left; cursor: pointer; transition: border-color 150ms var(--ease);}
.fact:hover:where(:not(.dbf, .dbf *)){border-color: var(--control);}
.fact.on:where(:not(.dbf, .dbf *)){border-color: var(--accent); background: color-mix(in srgb, var(--accent) 7%, var(--raised));}
.facts .what:where(:not(.dbf, .dbf *)){min-width: 0;}
.facts .t:where(:not(.dbf, .dbf *)){display: block; font-size: 13px; line-height: 18px; font-weight: 500;}
.facts .what .link:where(:not(.dbf, .dbf *)){font-size: 13px; line-height: 18px; text-decoration: none;}
.facts .what .link:hover:where(:not(.dbf, .dbf *)){text-decoration: underline;}
.facts small:where(:not(.dbf, .dbf *)){display: block; color: var(--muted); font-size: 12px; line-height: 16px;}
.facts .tail:where(:not(.dbf, .dbf *)){display: flex; align-items: center; gap: 8px; white-space: nowrap; font-size: 13px;}
.secs:where(:not(.dbf, .dbf *)){display: grid; gap: 8px;}
.pm-sec:where(:not(.dbf, .dbf *)){display: grid; gap: 8px; padding: 12px 14px; background: var(--raised); border: 1px solid var(--border); border-radius: var(--r-row); text-decoration: none;}
a.pm-sec:hover:where(:not(.dbf, .dbf *)){border-color: var(--control);}
.sec-t:where(:not(.dbf, .dbf *)){display: flex; justify-content: space-between; gap: 10px; font-size: 13px; line-height: 18px;}
.sec-t b:where(:not(.dbf, .dbf *)){font-weight: 500;}
.sec-t span:where(:not(.dbf, .dbf *)){color: var(--muted);}
.mini:where(:not(.dbf, .dbf *)){display: grid; gap: 6px;}
.mini-t:where(:not(.dbf, .dbf *)){display: flex; justify-content: space-between; gap: 10px; color: var(--muted); font-size: 12px; line-height: 16px;}
.segbar:where(:not(.dbf, .dbf *)){display: flex; gap: 3px;}
.segbar i:where(:not(.dbf, .dbf *)){flex: 1; height: 10px; border-radius: 999px; background: var(--sunk);}
.segbar i.done:where(:not(.dbf, .dbf *)){background: var(--accent);}
.segbar i.inprog:where(:not(.dbf, .dbf *)){background: color-mix(in srgb, var(--accent) 38%, var(--sunk));}
.segbar i.unknown:where(:not(.dbf, .dbf *)){background: var(--od1-bg);}
.sub-h:where(:not(.dbf, .dbf *)){margin: 18px 4px 10px; font-size: 13px; line-height: 18px; font-weight: 600;}
.panel > .plan:where(:not(.dbf, .dbf *)){padding: 0 4px;}
.btn:where(:not(.dbf, .dbf *)){display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: var(--ctl); padding: 0 16px; border-radius: 999px; border: 1px solid var(--control); background: var(--ground); color: var(--text); font-weight: 500; font-size: 14px; cursor: pointer; text-decoration: none; white-space: nowrap; transition: background 150ms var(--ease), border-color 150ms var(--ease), transform 120ms var(--ease);}
.btn:hover:where(:not(.dbf, .dbf *)){border-color: var(--muted);}
.btn:active:where(:not(.dbf, .dbf *)){transform: translateY(1px);}
.btn.primary:where(:not(.dbf, .dbf *)){background: var(--text); border-color: var(--text); color: var(--inverse);}
.btn.primary:hover:where(:not(.dbf, .dbf *)){opacity: .88;}
.btn.quiet:where(:not(.dbf, .dbf *)){border-color: transparent; background: transparent; color: var(--muted); padding: 0 10px;}
.btn.quiet:hover:where(:not(.dbf, .dbf *)){background: var(--sunk); color: var(--text);}
.btn.danger:where(:not(.dbf, .dbf *)){color: var(--negative);}
.btn.small:where(:not(.dbf, .dbf *)){height: 32px; padding: 0 13px; font-size: 13px;}
.btn.icon:where(:not(.dbf, .dbf *)){width: var(--ctl); padding: 0;}
.btn.icon.small:where(:not(.dbf, .dbf *)){width: 32px;}
.btn[aria-pressed="true"]:where(:not(.dbf, .dbf *)){background: var(--active); border-color: var(--active);}
.btn[disabled]:where(:not(.dbf, .dbf *)){opacity: .5; cursor: not-allowed;}
.btn svg:where(:not(.dbf, .dbf *)),.gcal svg:where(:not(.dbf, .dbf *)){width: 16px; height: 16px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round;}
.link:where(:not(.dbf, .dbf *)){background: none; border: 0; padding: 0; text-align: left; color: var(--text); font-size: 13px; text-decoration: underline; text-decoration-color: var(--control); text-underline-offset: 3px; cursor: pointer;}
.link:hover:where(:not(.dbf, .dbf *)){text-decoration-color: var(--text);}
.link.strong:where(:not(.dbf, .dbf *)){font-size: 14px; font-weight: 500; text-decoration: none;}
.link.strong:hover:where(:not(.dbf, .dbf *)){text-decoration: underline;}
.field:where(:not(.dbf, .dbf *)){display: grid; gap: 6px; align-content: start;}
.field label:where(:not(.dbf, .dbf *)),.label:where(:not(.dbf, .dbf *)){font-weight: 500; font-size: 13px;}
.hint:where(:not(.dbf, .dbf *)){color: var(--muted); font-size: 12px; line-height: 17px;}
input[type="text"]:where(:not(.dbf, .dbf *)),input[type="date"]:where(:not(.dbf, .dbf *)),input[type="month"]:where(:not(.dbf, .dbf *)),input[type="number"]:where(:not(.dbf, .dbf *)),input[type="search"]:where(:not(.dbf, .dbf *)),select:where(:not(.dbf, .dbf *)),textarea:where(:not(.dbf, .dbf *)){height: var(--ctl); padding: 0 14px; border: 1px solid var(--control); border-radius: var(--r-row); background: var(--ground); min-width: 0; width: 100%;}
select:where(:not(.dbf, .dbf *)){padding-right: 8px;}
textarea:where(:not(.dbf, .dbf *)){height: auto; min-height: 120px; padding: 11px 14px; line-height: 20px; resize: vertical;}
input:where(:not(.dbf, .dbf *))::placeholder,textarea:where(:not(.dbf, .dbf *))::placeholder{color: var(--muted);}
.seg:where(:not(.dbf, .dbf *)){display: inline-flex; gap: 2px; padding: 3px; border-radius: 999px; background: var(--sunk); flex-wrap: wrap;}
.seg button:where(:not(.dbf, .dbf *)){height: 30px; padding: 0 14px; border: 0; border-radius: 999px; background: transparent; color: var(--muted); font-weight: 500; font-size: 13px; cursor: pointer; white-space: nowrap; transition: background 150ms var(--ease), color 150ms var(--ease);}
.seg button:hover:where(:not(.dbf, .dbf *)){color: var(--text);}
.seg button[aria-pressed="true"]:where(:not(.dbf, .dbf *)){background: var(--ground); color: var(--text);}
.chip:where(:not(.dbf, .dbf *)){height: 32px; padding: 0 13px; border: 1px solid var(--control); border-radius: 999px; background: var(--ground); color: var(--muted); cursor: pointer; font-size: 13px; white-space: nowrap;}
.chip[aria-pressed="true"]:where(:not(.dbf, .dbf *)){background: var(--sunk); border-color: var(--control); color: var(--text);}
.count-chip:where(:not(.dbf, .dbf *)){display: inline-grid; place-items: center; min-width: 22px; height: 20px; padding: 0 7px; border-radius: 999px; background: var(--sunk); color: var(--muted); font-size: 12px; font-weight: 500;}
.grid:where(:not(.dbf, .dbf *)){display: grid; gap: var(--gap); grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start;}
.span-2:where(:not(.dbf, .dbf *)){grid-column: span 2;}
.span-3:where(:not(.dbf, .dbf *)){grid-column: 1 / -1;}
.panel:where(:not(.dbf, .dbf *)){background: var(--surface); border-radius: var(--r-card); padding: var(--pad); min-width: 0;}
.panel-head:where(:not(.dbf, .dbf *)){display: flex; align-items: center; justify-content: space-between; gap: 8px 12px; min-height: 28px; margin-bottom: 14px; flex-wrap: wrap;}
.panel-head h2:where(:not(.dbf, .dbf *)){margin: 0; font-size: 14px; line-height: 20px; font-weight: 600;}
.ph-t:where(:not(.dbf, .dbf *)){display: inline-flex; align-items: center; gap: 8px;}
.panel-head .aside:where(:not(.dbf, .dbf *)){color: var(--muted); font-size: 12px;}
.panel-foot:where(:not(.dbf, .dbf *)){margin-top: 14px; display: flex; justify-content: space-between; align-items: center; gap: 10px 12px; flex-wrap: wrap;}
.stack:where(:not(.dbf, .dbf *)){display: grid; gap: 12px;}
.notice:where(:not(.dbf, .dbf *)){display: flex; gap: 12px; align-items: center; justify-content: space-between; flex-wrap: wrap; padding: 10px 10px 10px 18px; border-radius: var(--r-card); background: transparent; border: 1px solid var(--border); color: var(--text-2); font-size: 13px; line-height: 18px;}
.notice .btn:where(:not(.dbf, .dbf *)){background: var(--raised); border-color: var(--border);}
.notice.warn:where(:not(.dbf, .dbf *)){border-color: var(--amber); color: var(--text);}
.notice + .notice:where(:not(.dbf, .dbf *)){margin-top: 8px;}
.notice-acts:where(:not(.dbf, .dbf *)){display: flex; gap: 8px; flex-wrap: wrap;}
#view[data-view="journal"] > .notice, #view[data-view="history"] > .notice, #view[data-view="vault"] > .notice, #view[data-view="mspe"] > .notice, #view[data-view="dsettings"] > .notice{margin-bottom: 0;}
.empty:where(:not(.dbf, .dbf *)){padding: 14px 16px; border-radius: var(--r-row); border: 1px dashed var(--control); color: var(--muted); font-size: 13px; line-height: 19px;}
.saved:where(:not(.dbf, .dbf *)){color: var(--muted); font-size: 12px;}
.key:where(:not(.dbf, .dbf *)){display: inline-flex; gap: 6px 14px; flex-wrap: wrap; color: var(--muted); font-size: 12px; line-height: 16px;}
.key > span:where(:not(.dbf, .dbf *)){display: inline-flex; align-items: center; gap: 6px;}
.sw:where(:not(.dbf, .dbf *)){display: inline-block; width: 12px; height: 12px; border-radius: 4px; background: var(--k-bar); flex: none;}
.dot:where(:not(.dbf, .dbf *)){display: inline-block; width: 7px; height: 7px; border-radius: 50%; flex: none; background: var(--muted);}
.dot.soon:where(:not(.dbf, .dbf *)){background: var(--amber);}
.dot.breach:where(:not(.dbf, .dbf *)){background: var(--red);}
.dot.done:where(:not(.dbf, .dbf *)){background: var(--teal);}
.dot.later:where(:not(.dbf, .dbf *)){background: var(--muted);}
.dot.hol:where(:not(.dbf, .dbf *)){background: transparent; box-shadow: inset 0 0 0 1.5px var(--muted);}
.k-clerkship:where(:not(.dbf, .dbf *)){--k-bg: var(--k-cl-bg); --k-ink: var(--k-cl-ink); --k-bar: var(--k-cl-bar);}
.k-elective:where(:not(.dbf, .dbf *)){--k-bg: var(--k-el-bg); --k-ink: var(--k-el-ink); --k-bar: var(--k-el-bar);}
.k-subi:where(:not(.dbf, .dbf *)){--k-bg: var(--k-si-bg); --k-ink: var(--k-si-ink); --k-bar: var(--k-si-bar);}
.k-other:where(:not(.dbf, .dbf *)){--k-bg: var(--k-ot-bg); --k-ink: var(--k-ot-ink); --k-bar: var(--k-ot-bar);}
.rows:where(:not(.dbf, .dbf *)),.list:where(:not(.dbf, .dbf *)){list-style: none; margin: 0; padding: 0; display: grid; gap: 8px;}
.rows > li:where(:not(.dbf, .dbf *)),.list > li:where(:not(.dbf, .dbf *)){display: grid; grid-template-columns: 22px 52px minmax(0, 1fr) auto; align-items: center; gap: 14px; min-height: var(--row); padding: 10px 12px 10px 14px; background: var(--raised); border: 1px solid var(--border); border-radius: var(--r-row);}
.rows.plain > li:where(:not(.dbf, .dbf *)),.list.two > li:where(:not(.dbf, .dbf *)){grid-template-columns: minmax(0, 1fr) auto;}
.list.cols:where(:not(.dbf, .dbf *)){grid-template-columns: repeat(2, minmax(0, 1fr));}
.plans:where(:not(.dbf, .dbf *)){display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 28px;}
.plans .plan + .plan:where(:not(.dbf, .dbf *)){margin-top: 0;}
.list > li:where(:not(.dbf, .dbf *)){grid-template-columns: 96px minmax(0, 1fr) auto;}
.rows .when b:where(:not(.dbf, .dbf *)){display: block; font-weight: 500; font-size: 13px; line-height: 17px;}
.rows .when span:where(:not(.dbf, .dbf *)){display: block; color: var(--muted); font-size: 12px; line-height: 16px; white-space: nowrap;}
.rows .what:where(:not(.dbf, .dbf *)),.list .what:where(:not(.dbf, .dbf *)){min-width: 0;}
.rows .what .t:where(:not(.dbf, .dbf *)){display: block; line-height: 19px;}
.rows .what small:where(:not(.dbf, .dbf *)),.list .what small:where(:not(.dbf, .dbf *)){display: block; color: var(--muted); font-size: 12px; line-height: 16px; margin-top: 2px;}
.rows .what small:where(:not(.dbf, .dbf *)){white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}
.rows .tail:where(:not(.dbf, .dbf *)),.list .tail:where(:not(.dbf, .dbf *)){display: flex; align-items: center; justify-content: flex-end; gap: 6px; white-space: nowrap;}
.due:where(:not(.dbf, .dbf *)){display: inline-flex; align-items: center; gap: 6px; margin-right: 4px; color: var(--muted); font-size: 12px; line-height: 16px; font-weight: 500; white-space: nowrap;}
.due.amber:where(:not(.dbf, .dbf *)){color: var(--amber-text);}
.due.red:where(:not(.dbf, .dbf *)){color: var(--red-text);}
.due.teal:where(:not(.dbf, .dbf *)){color: var(--teal-text);}
.rows > li.is-done .t:where(:not(.dbf, .dbf *)),.rows > li.is-done .when b:where(:not(.dbf, .dbf *)){color: var(--muted);}
.rows > li.is-done .t:where(:not(.dbf, .dbf *)){text-decoration: line-through; text-decoration-color: var(--control);}
.rows > li.is-hol:where(:not(.dbf, .dbf *)){background: transparent;}
.list .when:where(:not(.dbf, .dbf *)){color: var(--text); font-weight: 500;}
.list .when small:where(:not(.dbf, .dbf *)){display: block; color: var(--muted); font-weight: 400; font-size: 12px;}
.code-btn:where(:not(.dbf, .dbf *)){display: inline-flex; align-items: center; height: 24px; padding: 0 7px; border: 0; border-radius: var(--r-chip); background: transparent; color: var(--muted); font: 500 12px/24px var(--font); font-variant-numeric: tabular-nums; cursor: pointer; white-space: nowrap; transition: background 150ms var(--ease);}
.code-btn:hover:where(:not(.dbf, .dbf *)){background: var(--sunk); color: var(--text);}
.code-btn + .code-btn:where(:not(.dbf, .dbf *)){margin-left: 4px;}
.tag:where(:not(.dbf, .dbf *)){display: inline-flex; align-items: center; height: 24px; padding: 0 9px; border: 0; border-radius: var(--r-chip); background: var(--k-bg); color: var(--k-ink); font-size: 12px; font-weight: 500; white-space: nowrap; cursor: pointer;}
.pill:where(:not(.dbf, .dbf *)){display: inline-flex; align-items: center; gap: 5px; height: 22px; padding: 0 9px; border-radius: 999px; font-size: 12px; font-weight: 500; white-space: nowrap; flex: none; background: var(--pill-neutral-bg); color: var(--pill-neutral-ink);}
.pill.pos:where(:not(.dbf, .dbf *)){background: var(--pill-positive-bg); color: var(--pill-positive-ink);}
.pill.neg:where(:not(.dbf, .dbf *)){background: var(--pill-negative-bg); color: var(--pill-negative-ink);}
.pill.warn:where(:not(.dbf, .dbf *)){background: var(--pill-warning-bg); color: var(--pill-warning-ink);}
.pill.info:where(:not(.dbf, .dbf *)){background: var(--pill-info-bg); color: var(--pill-info-ink);}
.warn-t:where(:not(.dbf, .dbf *)){color: var(--warning);}
.gcal:where(:not(.dbf, .dbf *)){display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 999px; color: var(--muted);}
.gcal:hover:where(:not(.dbf, .dbf *)){background: var(--sunk); color: var(--text);}
.chk:where(:not(.dbf, .dbf *)){width: 22px; height: 22px; padding: 0; border-radius: 7px; border: 1.5px solid var(--control); background: var(--ground); display: grid; place-items: center; cursor: pointer; --check-len: 15;}
.chk:hover:where(:not(.dbf, .dbf *)){border-color: var(--accent);}
.chk[aria-checked="true"]:where(:not(.dbf, .dbf *)){background: var(--accent); border-color: var(--accent);}
.chk svg:where(:not(.dbf, .dbf *)){width: 11px; height: 11px;}
.chk svg path:where(:not(.dbf, .dbf *)){fill: none; stroke: var(--on-accent); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round;}
.chk-pad:where(:not(.dbf, .dbf *)){width: 22px;}
.table-wrap:where(:not(.dbf, .dbf *)){overflow-x: auto; margin: 0 -4px; padding: 0 4px;}
table:where(:not(.dbf, .dbf *)){border-collapse: collapse; width: 100%;}
th:where(:not(.dbf, .dbf *)){text-align: left; font-weight: 400; color: var(--muted); font-size: 12px; padding: 0 12px 8px 0; white-space: nowrap;}
td:where(:not(.dbf, .dbf *)){padding: 11px 12px 11px 0; border-top: 1px solid var(--rule); vertical-align: top;}
td:last-child:where(:not(.dbf, .dbf *)),th:last-child:where(:not(.dbf, .dbf *)){padding-right: 0;}
td.num:where(:not(.dbf, .dbf *)),th.num:where(:not(.dbf, .dbf *)){text-align: right;}
td small:where(:not(.dbf, .dbf *)){display: block; color: var(--muted); font-size: 12px; line-height: 16px; margin-top: 2px;}
tr.sec td:where(:not(.dbf, .dbf *)){border-top: 0; padding-top: 18px; padding-bottom: 6px; font-weight: 600;}
.req-rule:where(:not(.dbf, .dbf *)){color: var(--muted); font-size: 13px; line-height: 18px;}
.req-rule b:where(:not(.dbf, .dbf *)){color: var(--text); font-weight: 500;}
.status-sel:where(:not(.dbf, .dbf *)){height: 32px; width: auto; padding: 0 8px 0 12px; font-size: 13px;}
.diff:where(:not(.dbf, .dbf *)){color: var(--red-text); font-size: 12px; display: block; margin-top: 4px;}
.figures:where(:not(.dbf, .dbf *)){display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-top: 14px;}
.fig:where(:not(.dbf, .dbf *)){display: grid; gap: 2px; align-content: start; padding: 12px 14px; background: var(--raised); border: 1px solid var(--border); border-radius: var(--r-row);}
.fig .k:where(:not(.dbf, .dbf *)){color: var(--muted); font-size: 12px; line-height: 16px;}
.fig .v:where(:not(.dbf, .dbf *)){font-size: 22px; line-height: 28px; font-weight: 400; font-variant-numeric: tabular-nums; letter-spacing: -0.01em;}
.fig .v small:where(:not(.dbf, .dbf *)){font-size: 13px; color: var(--muted); margin-left: 4px;}
.fig .sub:where(:not(.dbf, .dbf *)){color: var(--muted); font-size: 12px; line-height: 16px;}
.calc-out:where(:not(.dbf, .dbf *)){display: grid; gap: 2px; padding: 14px 16px; background: var(--raised); border: 1px solid var(--border); border-radius: var(--r-row);}
.calc-out .k:where(:not(.dbf, .dbf *)){color: var(--muted); font-size: 12px;}
.calc-out .v:where(:not(.dbf, .dbf *)){font-size: 20px; line-height: 26px; color: var(--accent-ink); font-variant-numeric: tabular-nums;}
.calc-out .sub:where(:not(.dbf, .dbf *)){color: var(--muted); font-size: 12px;}
.plan:where(:not(.dbf, .dbf *)){display: grid; gap: 6px;}
.plan + .plan:where(:not(.dbf, .dbf *)){margin-top: 14px;}
.plan-top:where(:not(.dbf, .dbf *)){display: flex; justify-content: space-between; gap: 8px; font-size: 13px;}
.plan-top b:where(:not(.dbf, .dbf *)){font-weight: 500; font-variant-numeric: tabular-nums;}
.track:where(:not(.dbf, .dbf *)){position: relative; height: 8px; border-radius: 999px; background: var(--sunk); overflow: hidden;}
.track .done:where(:not(.dbf, .dbf *)){position: absolute; inset: 0 auto 0 0; background: var(--accent); border-radius: 999px;}
.track .soon:where(:not(.dbf, .dbf *)){position: absolute; top: 0; bottom: 0; background: color-mix(in srgb, var(--accent) 35%, var(--sunk));}
.plan-ends:where(:not(.dbf, .dbf *)){display: flex; justify-content: space-between; color: var(--muted); font-size: 12px; font-variant-numeric: tabular-nums;}
.clock:where(:not(.dbf, .dbf *)){width: 100%; overflow: visible;}
.clock text:where(:not(.dbf, .dbf *)){font-family: var(--font); font-size: 12px; fill: var(--muted); paint-order: stroke; stroke: var(--surface); stroke-width: 4px; stroke-linejoin: round;}
.clock .seg-label:where(:not(.dbf, .dbf *)){stroke: none; fill: var(--text); font-size: 12px; font-weight: 500;}
.clock .lbl-ink:where(:not(.dbf, .dbf *)){fill: var(--text);}
.clock .lbl-hue:where(:not(.dbf, .dbf *)){fill: var(--accent); font-weight: 600;}
.clock-key:where(:not(.dbf, .dbf *)){display: none;}
.cal-nav:where(:not(.dbf, .dbf *)){display: inline-flex; align-items: center; gap: 4px;}
.mc-panel:where(:not(.dbf, .dbf *)){padding: 14px 14px 16px;}
.mc-dow:where(:not(.dbf, .dbf *)){display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; padding: 2px 0 8px; color: var(--muted); font-size: 13px;}
.mc-dow span:where(:not(.dbf, .dbf *)){padding-left: 10px;}
.mc:where(:not(.dbf, .dbf *)){display: grid; gap: 6px;}
.mc-wk:where(:not(.dbf, .dbf *)){display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); grid-template-rows: 32px repeat(var(--lanes, 1), 24px) minmax(66px, auto); column-gap: 6px;}
.mc-day:where(:not(.dbf, .dbf *)){grid-row: 1 / -1; min-width: 0; padding: 0; border: 1px solid transparent; border-radius: var(--r-row); background: var(--raised); cursor: pointer; transition: border-color 150ms var(--ease), background 150ms var(--ease);}
.mc-day.we:where(:not(.dbf, .dbf *)){background: color-mix(in srgb, var(--raised) 45%, var(--surface));}
.mc-day:hover:where(:not(.dbf, .dbf *)){border-color: var(--control);}
.mc-day.sel:where(:not(.dbf, .dbf *)){border: 2px solid var(--accent);}
.mc-day.out:where(:not(.dbf, .dbf *)){background: transparent;}
.mc-num:where(:not(.dbf, .dbf *)){grid-row: 1; align-self: center; justify-self: start; z-index: 1; pointer-events: none; min-width: 24px; height: 24px; margin-left: 6px; padding: 0 6px; border-radius: 999px; display: grid; place-items: center; font-size: 13px; font-variant-numeric: tabular-nums;}
.mc-num.today:where(:not(.dbf, .dbf *)){box-shadow: inset 0 0 0 1.5px var(--teal); color: var(--teal-text); font-weight: 600;}
.mc-day.today:where(:not(.dbf, .dbf *)){background: var(--sunk);}
.mc-num.out:where(:not(.dbf, .dbf *)){color: var(--muted);}
.mc-num.today.out:where(:not(.dbf, .dbf *)){color: var(--teal-text);}
.mc-band:where(:not(.dbf, .dbf *)){z-index: 1; align-self: center; display: flex; align-items: center; justify-content: space-between; gap: 6px; height: 22px; min-width: 0; margin: 0 3px; padding: 0 9px; border: 0; border-radius: var(--r-chip); background: var(--k-bg); color: var(--k-ink); font-size: 13px; font-weight: 500; text-align: left; cursor: pointer; overflow: hidden;}
.mc-band span:where(:not(.dbf, .dbf *)),.mc-band small:where(:not(.dbf, .dbf *)){white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}
.mc-band small:where(:not(.dbf, .dbf *)){font-size: 12px; font-weight: 400; opacity: .85; flex: none;}
.mc-band.cont-l:where(:not(.dbf, .dbf *)){margin-left: -3px; border-top-left-radius: 0; border-bottom-left-radius: 0;}
.mc-band.cont-r:where(:not(.dbf, .dbf *)){margin-right: -3px; border-top-right-radius: 0; border-bottom-right-radius: 0;}
.mc-band:not(.cont-l):where(:not(.dbf, .dbf *)){border-left: 3px solid var(--k-bar); padding-left: 7px;}
.mc-band.k-subi:where(:not(.dbf, .dbf *)){border: 1px solid var(--k-bar);}
.sw.k-subi:where(:not(.dbf, .dbf *)){background: transparent; border: 1.5px solid var(--k-bar);}
.mc-band:hover:where(:not(.dbf, .dbf *)){filter: brightness(.97);}
.mc-items:where(:not(.dbf, .dbf *)){grid-row: -2 / -1; z-index: 1; pointer-events: none; display: grid; gap: 3px; align-content: start; min-width: 0; padding: 4px 8px 8px;}
.mc-items.out:where(:not(.dbf, .dbf *)){opacity: .7;}
.mc-chip:where(:not(.dbf, .dbf *)){display: flex; align-items: center; gap: 6px; min-width: 0; font-size: 13px; line-height: 17px;}
.mc-chip .t:where(:not(.dbf, .dbf *)){white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}
.mc-chip.done .t:where(:not(.dbf, .dbf *)){color: var(--muted); text-decoration: line-through;}
.mc-chip.hol .t:where(:not(.dbf, .dbf *)){color: var(--muted);}
.mc-more:where(:not(.dbf, .dbf *)){color: var(--muted); font-size: 13px; line-height: 17px; padding-left: 13px;}
.mc-dots:where(:not(.dbf, .dbf *)){display: none;}
.mc-foot:where(:not(.dbf, .dbf *)){display: flex; justify-content: space-between; gap: 10px 20px; flex-wrap: wrap; padding: 14px 6px 0;}
.mc-list:where(:not(.dbf, .dbf *)){display: none;}
.hc-legend:where(:not(.dbf, .dbf *)){display: inline-flex; align-items: center; gap: 4px; color: var(--muted); font-size: 12px;}
.hc-legend span:where(:not(.dbf, .dbf *)){margin: 0 4px;}
.hc-legend .hc-day:where(:not(.dbf, .dbf *)){width: 14px; height: 14px; display: inline-block; aspect-ratio: auto;}
.hc-months:where(:not(.dbf, .dbf *)){display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px;}
.hc-month:where(:not(.dbf, .dbf *)){padding: 14px; background: var(--raised); border: 1px solid var(--border); border-radius: var(--r-row);}
.hc-month h3:where(:not(.dbf, .dbf *)){margin: 0 0 10px; font-size: 13px; font-weight: 600; line-height: 18px; display: flex; justify-content: space-between; gap: 8px;}
.hc-month h3 span:where(:not(.dbf, .dbf *)){color: var(--muted); font-weight: 400; font-size: 12px;}
.hc-grid:where(:not(.dbf, .dbf *)){display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 3px;}
.hc-dow:where(:not(.dbf, .dbf *)){font-size: 11px; line-height: 14px; color: var(--muted); text-align: center;}
.hc-day:where(:not(.dbf, .dbf *)){position: relative; aspect-ratio: 1; min-width: 0; padding: 0; border: 0; border-radius: var(--r-chip); background: var(--surface); color: var(--muted); font: 400 11px/1 var(--font); font-variant-numeric: tabular-nums; display: grid; place-items: center;}
.hc-day.we.lv0:where(:not(.dbf, .dbf *)){background: color-mix(in srgb, var(--sunk) 55%, var(--surface));}
.hc-day.lv1:where(:not(.dbf, .dbf *)){background: var(--heat-1); color: var(--text);}
.hc-day.lv2:where(:not(.dbf, .dbf *)){background: var(--heat-2); color: var(--text); font-weight: 500;}
.hc-day.lv3:where(:not(.dbf, .dbf *)){background: var(--heat-3); color: var(--on-heat-3); font-weight: 500;}
.hc-day.lv4:where(:not(.dbf, .dbf *)){background: var(--heat-4); color: var(--on-heat-4); font-weight: 600;}
.hc-day.soon:where(:not(.dbf, .dbf *))::before{content: ""; position: absolute; left: 50%; bottom: 3px; width: 4px; height: 4px; margin-left: -2px; border-radius: 50%; background: var(--amber);}
.hc-legend .hc-day.soon:where(:not(.dbf, .dbf *))::before{bottom: 5px;}
.hc-day.hol:where(:not(.dbf, .dbf *))::after{content: ""; position: absolute; top: 3px; right: 3px; width: 4px; height: 4px; border-radius: 50%; background: var(--muted);}
.hc-day.past:where(:not(.dbf, .dbf *)){opacity: .4;}
.hc-day.today:where(:not(.dbf, .dbf *)){outline: 1.5px solid var(--teal); outline-offset: -1.5px; color: var(--teal-text); font-weight: 600;}
button.hc-day:where(:not(.dbf, .dbf *)){cursor: pointer; transition: transform 120ms var(--ease);}
button.hc-day:hover:where(:not(.dbf, .dbf *)){transform: scale(1.12); z-index: 1;}
.tl-body:where(:not(.dbf, .dbf *)){position: relative; display: grid; gap: 6px; padding-top: 24px; --label: 200px; --gutter: 14px;}
.tl-row:where(:not(.dbf, .dbf *)){display: grid; grid-template-columns: var(--label) minmax(0, 1fr); gap: var(--gutter); align-items: center;}
.tl-label:where(:not(.dbf, .dbf *)){display: grid; gap: 1px; min-width: 0; padding: 7px 12px; border: 0; border-radius: var(--r-row); background: transparent; text-align: left; cursor: pointer;}
.tl-label:hover:where(:not(.dbf, .dbf *)){background: var(--sunk);}
.tl-label b:where(:not(.dbf, .dbf *)){font-weight: 500; font-size: 13px; line-height: 18px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}
.tl-label small:where(:not(.dbf, .dbf *)){color: var(--muted); font-size: 12px; line-height: 16px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}
.tl-row.now .tl-label b:where(:not(.dbf, .dbf *)){color: var(--accent-ink);}
.tl-track:where(:not(.dbf, .dbf *)){position: relative; height: 40px; border-radius: var(--r-row); background: var(--raised);}
.tl-axis .tl-track:where(:not(.dbf, .dbf *)){height: 26px; background: transparent;}
.tl-axis .tl-track span:where(:not(.dbf, .dbf *)){position: absolute; top: 0; height: 26px; padding-left: 8px; color: var(--muted); font-size: 12px; line-height: 26px; white-space: nowrap; overflow: hidden; box-shadow: inset 1px 0 0 var(--rule);}
.tl-axis .tl-track span small:where(:not(.dbf, .dbf *)){font-size: 11px;}
.tl-bar:where(:not(.dbf, .dbf *)){position: absolute; top: 7px; height: 26px; min-width: 6px; padding: 0 8px; border: 0; border-radius: var(--r-chip); background: var(--k-bg); color: var(--k-ink); border-left: 3px solid var(--k-bar); font-size: 12px; font-weight: 500; text-align: left; overflow: hidden; cursor: pointer;}
.tl-bar.k-subi:where(:not(.dbf, .dbf *)){border: 1px solid var(--k-bar);}
.tl-bar span:where(:not(.dbf, .dbf *)){display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}
.tl-tick:where(:not(.dbf, .dbf *)){position: absolute; top: 50%; width: 9px; height: 9px; margin: -4.5px 0 0 -4.5px; border-radius: 50%; background: var(--raised); border: 2px solid var(--muted);}
.tl-tick.soon:where(:not(.dbf, .dbf *)){background: var(--amber); border-color: var(--amber);}
.tl-tick.done:where(:not(.dbf, .dbf *)){background: var(--teal); border-color: var(--teal);}
.tl-tick.breach:where(:not(.dbf, .dbf *)){background: var(--red); border-color: var(--red);}
.tl-tick.demo:where(:not(.dbf, .dbf *)){position: static; display: inline-block; margin: 0;}
.tl-now:where(:not(.dbf, .dbf *)){position: absolute; top: 0; bottom: 0; left: calc(var(--label) + var(--gutter) + (100% - var(--label) - var(--gutter)) * var(--now) / 100); width: 2px; margin-left: -1px; background: var(--accent); pointer-events: none; border-radius: 2px;}
.tl-now span:where(:not(.dbf, .dbf *)){position: absolute; top: 0; left: -1px; transform: translateX(-50%); padding: 0 6px; border-radius: var(--r-chip); background: var(--teal); color: var(--on-teal); font-size: 11px; line-height: 18px; font-weight: 600; white-space: nowrap;}
:root{--panel-open-dur: 400ms;
  --panel-close-dur: 350ms;
  --panel-translate-y: 100px;
  --panel-blur: 2px;
  --panel-ease: cubic-bezier(0.22, 1, 0.36, 1);}
.t-panel-slide:where(:not(.dbf, .dbf *)){transform: translateY(var(--panel-translate-y));
  opacity: 0;
  filter: blur(var(--panel-blur));
  pointer-events: none;
  visibility: hidden;
  transition:
    transform var(--panel-close-dur) var(--panel-ease),
    opacity   var(--panel-close-dur) var(--panel-ease),
    filter    var(--panel-close-dur) var(--panel-ease),
    visibility 0s linear var(--panel-close-dur);
  will-change: transform, opacity, filter;}
.t-panel-slide[data-open="true"]:where(:not(.dbf, .dbf *)){transform: translateY(0);
  opacity: 1;
  filter: blur(0);
  pointer-events: auto;
  visibility: visible;
  transition:
    transform var(--panel-open-dur) var(--panel-ease),
    opacity   var(--panel-open-dur) var(--panel-ease),
    filter    var(--panel-open-dur) var(--panel-ease);}
@media (prefers-reduced-motion: reduce){
.t-panel-slide:where(:not(.dbf, .dbf *)){transition: none !important;}
}
.scrim:where(:not(.dbf, .dbf *)){position: fixed; inset: 0; z-index: 45; background: var(--scrim); opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 300ms var(--ease), visibility 0s linear 300ms;}
.scrim[data-open="true"]:where(:not(.dbf, .dbf *)){opacity: 1; visibility: visible; pointer-events: auto; transition: opacity 300ms var(--ease);}
.drawer:where(:not(.dbf, .dbf *)){position: fixed; z-index: 50; top: 12px; right: 12px; bottom: 12px; width: min(440px, calc(100vw - 24px)); display: flex; flex-direction: column; background: var(--ground); border-radius: var(--r-card); box-shadow: var(--shadow-float); overflow: hidden; --panel-translate-y: 24px;}
.drawer:empty:where(:not(.dbf, .dbf *)){display: none;}
.dr-head:where(:not(.dbf, .dbf *)){display: flex; align-items: flex-start; gap: 12px; padding: 20px 16px 14px 22px;}
.dr-t:where(:not(.dbf, .dbf *)){flex: 1; min-width: 0;}
.dr-k:where(:not(.dbf, .dbf *)){margin: 0 0 4px; color: var(--muted); font-size: 13px; line-height: 18px;}
.dr-head h2:where(:not(.dbf, .dbf *)){margin: 0; font-size: 22px; line-height: 28px; font-weight: 500; letter-spacing: -0.01em;}
.dr-body:where(:not(.dbf, .dbf *)){flex: 1; overflow-y: auto; overscroll-behavior: contain; padding: 0 22px 24px; display: grid; gap: 12px; align-content: start;}
.dr-body h3:where(:not(.dbf, .dbf *)){margin: 8px 0 -2px; font-size: 13px; font-weight: 600;}
.dr-body .rows > li:where(:not(.dbf, .dbf *)){grid-template-columns: 22px 46px minmax(0, 1fr); background: var(--surface); border-color: transparent;}
.dr-body .rows > li .tail:where(:not(.dbf, .dbf *)){grid-column: 3; justify-content: flex-start; margin-top: -4px;}
.dr-body .rows .what small:where(:not(.dbf, .dbf *)){white-space: normal;}
.dr-span:where(:not(.dbf, .dbf *)){display: grid; grid-template-columns: 1fr auto 1fr; gap: 10px; align-items: center; padding: 12px 14px; border-radius: var(--r-row); background: var(--k-bg); color: var(--k-ink); font-size: 13px; font-variant-numeric: tabular-nums;}
.dr-span span:nth-child(2):where(:not(.dbf, .dbf *)){font-weight: 600;}
.dr-span span:last-child:where(:not(.dbf, .dbf *)){text-align: right;}
.dr-foot:where(:not(.dbf, .dbf *)){display: flex; gap: 8px; flex-wrap: wrap; align-items: center; padding-top: 6px;}
.dr-body .meta:where(:not(.dbf, .dbf *)),.detail .meta:where(:not(.dbf, .dbf *)){display: flex; gap: 4px 14px; flex-wrap: wrap; color: var(--muted); font-size: 12px; margin: 0;}
.dr-body .lede:where(:not(.dbf, .dbf *)),.detail .lede:where(:not(.dbf, .dbf *)){font-size: 15px; line-height: 23px; margin: 0;}
.dr-body .rot-card:where(:not(.dbf, .dbf *)){margin-bottom: 2px;}
:root{--modal-open-dur: 250ms;
  --modal-close-dur: 150ms;
  --modal-scale: 0.96;
  --modal-scale-close: 0.96;
  --modal-ease: cubic-bezier(0.22, 1, 0.36, 1);}
.t-modal:where(:not(.dbf, .dbf *)){transform-origin: center;
  transform: scale(var(--modal-scale));
  opacity: 0;
  pointer-events: none;
  transition:
    transform var(--modal-open-dur) var(--modal-ease),
    opacity   var(--modal-open-dur) var(--modal-ease);
  will-change: transform, opacity;}
.t-modal.is-open:where(:not(.dbf, .dbf *)){transform: scale(1);
  opacity: 1;
  pointer-events: auto;}
.t-modal.is-closing:where(:not(.dbf, .dbf *)){transform: scale(var(--modal-scale-close));
  opacity: 0;
  pointer-events: none;
  transition:
    transform var(--modal-close-dur) var(--modal-ease),
    opacity   var(--modal-close-dur) var(--modal-ease);}
@media (prefers-reduced-motion: reduce){
.t-modal:where(:not(.dbf, .dbf *)){transition: none !important;}
}
.pal-wrap:where(:not(.dbf, .dbf *)){position: fixed; inset: 0; z-index: 70; visibility: hidden; padding: 12vh 16px 16px;}
.pal-wrap[data-open="true"]:where(:not(.dbf, .dbf *)){visibility: visible;}
.pal-scrim:where(:not(.dbf, .dbf *)){position: absolute; inset: 0; background: var(--scrim); opacity: 0; transition: opacity 200ms var(--ease);}
.pal-wrap.on .pal-scrim:where(:not(.dbf, .dbf *)){opacity: 1;}
.pal:where(:not(.dbf, .dbf *)){position: relative; margin: 0 auto; width: min(620px, 100%); max-height: 72vh; display: flex; flex-direction: column; background: var(--ground); border-radius: var(--r-card); box-shadow: var(--shadow-float); overflow: hidden;}
.pal-in:where(:not(.dbf, .dbf *)){display: flex; align-items: center; gap: 10px; padding: 0 16px 0 20px; border-bottom: 1px solid var(--rule);}
.pal-in svg:where(:not(.dbf, .dbf *)){width: 18px; height: 18px; flex: none; fill: none; stroke: var(--muted); stroke-width: 1.5; stroke-linecap: round;}
.pal-in input:where(:not(.dbf, .dbf *)){flex: 1; height: 58px; border: 0; border-radius: 0; background: transparent; padding: 0; font-size: 16px;}
.pal-in input:focus-visible:where(:not(.dbf, .dbf *)){outline: none;}
.pal-res:where(:not(.dbf, .dbf *)){overflow-y: auto; padding: 6px 8px 8px; overscroll-behavior: contain;}
.pal-g:where(:not(.dbf, .dbf *)){padding: 12px 12px 4px; color: var(--muted); font-size: 12px; line-height: 16px;}
.pal-it:where(:not(.dbf, .dbf *)){display: flex; align-items: center; gap: 12px; width: 100%; min-height: 44px; padding: 7px 12px; border: 0; border-radius: var(--r-row); background: transparent; text-align: left; cursor: pointer;}
.pal-it[aria-selected="true"]:where(:not(.dbf, .dbf *)){background: var(--active);}
.pal-it svg:where(:not(.dbf, .dbf *)){width: 16px; height: 16px; flex: none; fill: none; stroke: var(--muted); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round;}
.pi-t:where(:not(.dbf, .dbf *)){flex: 1; min-width: 0; line-height: 19px;}
.pi-t small:where(:not(.dbf, .dbf *)){display: block; color: var(--muted); font-size: 12px; line-height: 16px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}
.pal-empty:where(:not(.dbf, .dbf *)){padding: 18px 12px; color: var(--muted);}
.pal-foot:where(:not(.dbf, .dbf *)){display: flex; gap: 16px; flex-wrap: wrap; padding: 10px 20px; border-top: 1px solid var(--rule); color: var(--muted); font-size: 12px;}
.journey:where(:not(.dbf, .dbf *)){padding: 32px; display: grid; gap: 0;}
.j-top:where(:not(.dbf, .dbf *)){display: flex; justify-content: space-between; align-items: flex-end; gap: 16px 32px; flex-wrap: wrap;}
.j-top > div:first-child:where(:not(.dbf, .dbf *)){min-width: 0; flex: 1 1 420px;}
.journey h1:where(:not(.dbf, .dbf *)){margin: 0; font-size: 44px; line-height: 48px; font-weight: 500; letter-spacing: -0.025em;}
.j-sub:where(:not(.dbf, .dbf *)){margin: 10px 0 0; color: var(--text-2); font-size: 14px; line-height: 20px;}
.j-line:where(:not(.dbf, .dbf *)){position: relative; height: 120px; margin: 28px 0 8px;}
.j-seg:where(:not(.dbf, .dbf *)){position: absolute; top: 58px; height: 4px; border-radius: 999px; background: var(--sunk); overflow: hidden;}
.j-seg + .j-seg:where(:not(.dbf, .dbf *)){margin-left: 3px;}
.j-seg.past:where(:not(.dbf, .dbf *)){background: var(--teal);}
.j-seg.now i:where(:not(.dbf, .dbf *)){position: absolute; inset: 0 auto 0 0; background: var(--teal); border-radius: 999px;}
.j-seg.room:where(:not(.dbf, .dbf *)){height: 0; top: 59px; background: transparent; border-top: 2px dashed var(--control); border-radius: 0;}
.j-ms:where(:not(.dbf, .dbf *)){position: absolute; top: 60px; width: 0;}
.j-ms > i:where(:not(.dbf, .dbf *)){position: absolute; left: -5px; top: -5px; width: 10px; height: 10px; border-radius: 50%; background: var(--surface); border: 2px solid var(--text-2);}
.j-ms.strong > i:where(:not(.dbf, .dbf *)){border-color: var(--text); background: var(--text);}
.j-ms.soon > i:where(:not(.dbf, .dbf *)){border-color: var(--amber); background: var(--amber);}
.j-ms.breach > i:where(:not(.dbf, .dbf *)){border-color: var(--red); background: var(--red);}
.j-ms.end > i:where(:not(.dbf, .dbf *)){border-style: dashed;}
.j-l:where(:not(.dbf, .dbf *)){position: absolute; left: 0; transform: translateX(-50%); display: grid; text-align: center; white-space: nowrap;}
.j-ms.up .j-l:where(:not(.dbf, .dbf *)){bottom: 14px;}
.j-ms.down .j-l:where(:not(.dbf, .dbf *)){top: 14px;}
.j-ms.end .j-l:where(:not(.dbf, .dbf *)){transform: translateX(-100%); text-align: right;}
.j-l b:where(:not(.dbf, .dbf *)){font-size: 13px; line-height: 17px; font-weight: 500;}
.j-l small:where(:not(.dbf, .dbf *)){color: var(--muted); font-size: 12px; line-height: 16px;}
.j-ms.soon .j-l small:where(:not(.dbf, .dbf *)){color: var(--amber-text);}
.j-today:where(:not(.dbf, .dbf *)){position: absolute; top: 60px; width: 0;}
.j-today > i:where(:not(.dbf, .dbf *)){position: absolute; left: -7px; top: -7px; width: 14px; height: 14px; border-radius: 50%; background: var(--surface); border: 3px solid var(--teal);}
.j-today > span:where(:not(.dbf, .dbf *)){position: absolute; top: 14px; left: 0; transform: translateX(-50%); color: var(--teal-text); font-size: 12px; font-weight: 600; white-space: nowrap;}
.j-cols:where(:not(.dbf, .dbf *)){display: grid; gap: 0 16px; align-items: start;}
.j-col:where(:not(.dbf, .dbf *)){min-width: 0; padding-top: 16px; border-top: 1px solid var(--rule);}
.j-col h2:where(:not(.dbf, .dbf *)){display: flex; justify-content: space-between; gap: 8px; margin: 0 0 10px; font-size: 13px; line-height: 18px; font-weight: 600;}
.j-col h2 span:where(:not(.dbf, .dbf *)){color: var(--muted); font-weight: 400;}
.j-col.room p:where(:not(.dbf, .dbf *)){margin: 0 0 8px; color: var(--text-2); font-size: 13px; line-height: 19px;}
.j-col.room p.muted:where(:not(.dbf, .dbf *)){color: var(--muted); font-size: 12px; line-height: 17px;}
.j-tiles:where(:not(.dbf, .dbf *)){display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 6px;}
.jt:where(:not(.dbf, .dbf *)){display: flex; align-items: flex-start; gap: 10px; min-height: 52px; padding: 9px 10px; border: 1px solid var(--border); border-radius: var(--r-row); background: var(--raised); color: var(--text); text-align: left; cursor: pointer; transition: border-color 160ms var(--ease), background 160ms var(--ease), transform 120ms var(--ease);}
.jt:hover:where(:not(.dbf, .dbf *)){border-color: var(--control);}
.jt:active:where(:not(.dbf, .dbf *)){transform: translateY(1px);}
.jt-i:where(:not(.dbf, .dbf *)){flex: none; display: grid; place-items: center; width: 18px; height: 18px; margin-top: 1px; border-radius: 50%; border: 1.5px solid var(--control); transition: background 150ms var(--ease), border-color 150ms var(--ease);}
.jt-i svg:where(:not(.dbf, .dbf *)){width: 10px; height: 10px; fill: none; stroke: var(--on-teal); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 12; stroke-dashoffset: 12; transition: stroke-dashoffset 150ms var(--ease);}
.jt.done .jt-i:where(:not(.dbf, .dbf *)){background: var(--teal); border-color: var(--teal);}
.jt.done .jt-i svg:where(:not(.dbf, .dbf *)){stroke-dashoffset: 0; transition: stroke-dashoffset 350ms var(--ease);}
.jt.inprog .jt-i:where(:not(.dbf, .dbf *)){border-color: var(--teal);}
.jt.inprog .jt-i:where(:not(.dbf, .dbf *))::after{content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--teal); grid-area: 1 / 1;}
.jt-i svg:where(:not(.dbf, .dbf *)){grid-area: 1 / 1;}
.jt.na:where(:not(.dbf, .dbf *)){border-style: dashed;}
.jt.unknown .jt-i:where(:not(.dbf, .dbf *)){border-color: var(--amber);}
.jt-t:where(:not(.dbf, .dbf *)){min-width: 0; font-size: 13px; line-height: 17px; font-weight: 500;}
.jt-t small:where(:not(.dbf, .dbf *)){display: block; color: var(--muted); font-size: 12px; line-height: 16px; font-weight: 400;}
.jt.done .jt-t small:where(:not(.dbf, .dbf *)){color: var(--teal-text);}
.jt-t em:where(:not(.dbf, .dbf *)){font-style: normal; color: var(--red-text);}
@media (prefers-reduced-motion: reduce){
.jt:where(:not(.dbf, .dbf *)),.jt-i:where(:not(.dbf, .dbf *)),.jt-i svg:where(:not(.dbf, .dbf *)){transition: none !important;}
}
.board-wrap:where(:not(.dbf, .dbf *)){display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 28px; align-items: start;}
.lanes:where(:not(.dbf, .dbf *)){display: grid; gap: 16px;}
.lane:where(:not(.dbf, .dbf *)){display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 16px; align-items: start;}
.lane-h:where(:not(.dbf, .dbf *)){font-weight: 600; font-size: 13px; line-height: 18px; padding-top: 8px;}
.lane-h small:where(:not(.dbf, .dbf *)){display: block; color: var(--muted); font-weight: 400; font-size: 12px;}
.tiles:where(:not(.dbf, .dbf *)){display: grid; grid-template-columns: repeat(auto-fill, minmax(128px, 1fr)); gap: 8px;}
.tile:where(:not(.dbf, .dbf *)){position: relative; display: grid; gap: 3px; align-content: start; min-height: 60px; padding: 10px 12px; text-align: left; border-radius: var(--r-row); border: 1px solid var(--border); background: var(--raised); color: var(--text); cursor: pointer; transition: transform 120ms var(--ease), border-color 150ms var(--ease);}
.tile:hover:where(:not(.dbf, .dbf *)){border-color: var(--control);}
.tile:active:where(:not(.dbf, .dbf *)){transform: translateY(1px);}
.tile b:where(:not(.dbf, .dbf *)){font-size: 13px; font-weight: 500; line-height: 17px;}
.tile span:where(:not(.dbf, .dbf *)){display: inline-flex; align-items: center; gap: 4px; font-size: 12px; color: var(--muted);}
.tile.done:where(:not(.dbf, .dbf *)){background: var(--accent); border-color: var(--accent); color: var(--on-accent);}
.tile.done span:where(:not(.dbf, .dbf *)){color: var(--on-accent);}
.tile.inprog:where(:not(.dbf, .dbf *)){background: var(--accent-soft); border-color: transparent; color: var(--accent-ink);}
.tile.inprog span:where(:not(.dbf, .dbf *)){color: var(--accent-ink);}
.tile.na:where(:not(.dbf, .dbf *)){border-style: dashed;}
.tile.unknown:where(:not(.dbf, .dbf *)){background: var(--pill-warning-bg); border-color: transparent;}
.tile .tick:where(:not(.dbf, .dbf *)){width: 12px; height: 12px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round;}
.tile .differs:where(:not(.dbf, .dbf *)),.differs-key:where(:not(.dbf, .dbf *)){width: 8px; height: 8px; border-radius: 50%; background: var(--warning); box-shadow: 0 0 0 2px var(--raised);}
.tile .differs:where(:not(.dbf, .dbf *)){position: absolute; top: 8px; right: 8px;}
.board-key:where(:not(.dbf, .dbf *)){display: flex; gap: 16px; flex-wrap: wrap; margin-top: 14px; color: var(--muted); font-size: 12px;}
.board-key span:where(:not(.dbf, .dbf *)){display: inline-flex; align-items: center; gap: 6px;}
.tile-key:where(:not(.dbf, .dbf *)){width: 14px; height: 14px; border-radius: 4px; border: 1px solid var(--border); background: var(--raised); display: inline-block;}
.tile-key.done:where(:not(.dbf, .dbf *)){background: var(--accent); border-color: var(--accent);}
.tile-key.inprog:where(:not(.dbf, .dbf *)){background: var(--accent-soft); border-color: transparent;}
.differs-key:where(:not(.dbf, .dbf *)){display: inline-block;}
.board-side .label:where(:not(.dbf, .dbf *)){margin: 0 0 10px;}
.board-actions:where(:not(.dbf, .dbf *)){display: flex; gap: 14px; align-items: center; flex-wrap: wrap; margin-top: 18px;}
.seg.stage button:where(:not(.dbf, .dbf *)){white-space: nowrap;}
.hm-legend:where(:not(.dbf, .dbf *)){display: inline-flex; gap: 14px; flex-wrap: wrap; color: var(--muted); font-size: 12px;}
.hm-legend span:where(:not(.dbf, .dbf *)){display: inline-flex; align-items: center; gap: 4px;}
.hm-legend .hm-tile:where(:not(.dbf, .dbf *)){min-width: 14px; width: 14px; height: 14px; padding: 0; display: inline-block;}
.hm-sum:where(:not(.dbf, .dbf *)){margin: 0 0 16px; font-size: 15px; line-height: 22px; max-width: 80ch;}
.hm-sum b:where(:not(.dbf, .dbf *)){font-weight: 600;}
.hm-rows:where(:not(.dbf, .dbf *)){display: grid; gap: 8px;}
.hm-row:where(:not(.dbf, .dbf *)){display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 16px; align-items: start; padding: 10px 12px; background: var(--raised); border: 1px solid var(--border); border-radius: var(--r-row);}
.hm-label:where(:not(.dbf, .dbf *)){font-size: 13px; font-weight: 500; line-height: 18px; padding-top: 6px;}
.hm-label small:where(:not(.dbf, .dbf *)){color: var(--muted); font-weight: 400; margin-left: 6px;}
.hm-tiles:where(:not(.dbf, .dbf *)){display: flex; flex-wrap: wrap; gap: 4px;}
.hm-tile:where(:not(.dbf, .dbf *)){min-width: 66px; height: 30px; padding: 0 8px; border-radius: var(--r-chip); border: 1px solid transparent; background: var(--surface); color: var(--text); font: 500 12px/28px var(--font); font-variant-numeric: tabular-nums; cursor: pointer; transition: transform 120ms var(--ease);}
.hm-tile:hover:where(:not(.dbf, .dbf *)){transform: translateY(-1px); border-color: var(--text);}
.hm-tile.ok:where(:not(.dbf, .dbf *)){background: transparent; border-color: var(--rule); color: var(--muted);}
.hm-tile.od1:where(:not(.dbf, .dbf *)){background: var(--od1-bg); color: var(--od1-ink);}
.hm-tile.od2:where(:not(.dbf, .dbf *)){background: var(--od2-bg); color: var(--od2-ink);}
.hm-tile.od3:where(:not(.dbf, .dbf *)){background: var(--od3-bg); color: var(--od3-ink);}
.hm-tile.clash:where(:not(.dbf, .dbf *)){background: var(--red-wash); color: var(--red-text); border-color: transparent;}
.hm-tile.gone:where(:not(.dbf, .dbf *)){background: transparent; color: var(--muted); border: 1px dashed var(--control);}
table.pt th:where(:not(.dbf, .dbf *)),table.pt td:where(:not(.dbf, .dbf *)){padding: 3px 4px; border-top: 0; text-align: center; vertical-align: middle;}
table.pt th:first-child:where(:not(.dbf, .dbf *)){text-align: left; padding-left: 0; padding-right: 12px; font-weight: 400; color: var(--text); font-size: 13px; white-space: nowrap;}
table.pt thead th:where(:not(.dbf, .dbf *)){color: var(--muted); font-size: 12px; white-space: nowrap; vertical-align: bottom; padding-bottom: 8px;}
table.pt thead th small:where(:not(.dbf, .dbf *)){display: block; color: var(--teal-text); font-weight: 500;}
table.pt thead th.you:where(:not(.dbf, .dbf *)){color: var(--text); font-weight: 600;}
.pt-cell:where(:not(.dbf, .dbf *)){display: inline-grid; place-items: center; width: 100%; min-width: 56px; height: 34px; border-radius: var(--r-chip); border: 0; font: 500 13px/1 var(--font); font-variant-numeric: tabular-nums; background: var(--raised); color: var(--muted);}
button.pt-cell:where(:not(.dbf, .dbf *)){cursor: pointer; transition: transform 120ms var(--ease);}
button.pt-cell:hover:where(:not(.dbf, .dbf *)){transform: scale(1.04);}
.pt-cell.lv1:where(:not(.dbf, .dbf *)){background: var(--heat-1); color: var(--text-2);}
.pt-cell.lv2:where(:not(.dbf, .dbf *)){background: var(--heat-2); color: var(--text);}
.pt-cell.lv3:where(:not(.dbf, .dbf *)){background: var(--heat-3); color: var(--on-heat-3);}
.pt-cell.lv4:where(:not(.dbf, .dbf *)){background: var(--heat-4); color: var(--on-heat-4); font-weight: 600;}
table.pt td.you:where(:not(.dbf, .dbf *)),table.pt th.you:where(:not(.dbf, .dbf *)){background: var(--raised);}
table.pt thead th.you:where(:not(.dbf, .dbf *)){border-radius: 8px 8px 0 0;}
table.pt tbody tr:last-child td.you:where(:not(.dbf, .dbf *)){border-radius: 0 0 8px 8px;}
table.pt td.you .pt-cell:where(:not(.dbf, .dbf *)){box-shadow: none;}
.pt-cell.on:where(:not(.dbf, .dbf *)){outline: 2px solid var(--text); outline-offset: 1px;}
.toolbar:where(:not(.dbf, .dbf *)){display: flex; gap: 8px; flex-wrap: wrap; align-items: center;}
.toolbar input[type="search"]:where(:not(.dbf, .dbf *)){width: 320px; max-width: 100%; border-radius: 999px;}
.toolbar select:where(:not(.dbf, .dbf *)){width: auto; border-radius: 999px;}
.split:where(:not(.dbf, .dbf *)){display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.12fr); gap: var(--gap); align-items: start;}
.plist:where(:not(.dbf, .dbf *)){display: grid; gap: 6px;}
.prow:where(:not(.dbf, .dbf *)){display: grid; grid-template-columns: 70px minmax(0, 1fr) auto; gap: 12px; align-items: center; min-height: 56px; padding: 9px 12px; border-radius: var(--r-row); cursor: pointer; border: 1px solid var(--border); text-align: left; background: var(--raised); width: 100%; transition: border-color 150ms var(--ease);}
.prow:hover:where(:not(.dbf, .dbf *)){border-color: var(--control);}
.prow[aria-current="true"]:where(:not(.dbf, .dbf *)){border-color: var(--accent); background: color-mix(in srgb, var(--accent) 7%, var(--raised));}
.prow .pc:where(:not(.dbf, .dbf *)){font-size: 12px; font-weight: 500; color: var(--muted); font-variant-numeric: tabular-nums;}
.prow .pt:where(:not(.dbf, .dbf *)){min-width: 0; line-height: 19px;}
.prow .pt small:where(:not(.dbf, .dbf *)){display: block; color: var(--muted); font-size: 12px; margin-top: 1px; line-height: 16px;}
.prow .pr:where(:not(.dbf, .dbf *)){text-align: right; color: var(--muted); font-size: 12px; white-space: nowrap; display: flex; gap: 4px; justify-content: flex-end;}
.detail:where(:not(.dbf, .dbf *)){position: sticky; top: 24px; max-height: calc(100vh - 48px); overflow-y: auto; display: grid; gap: 12px; align-content: start;}
.detail .dr-k:where(:not(.dbf, .dbf *)){margin: 0;}
.detail h2:where(:not(.dbf, .dbf *)){margin: -6px 0 0; font-size: 22px; line-height: 28px; font-weight: 500; letter-spacing: -0.01em;}
.detail h3:where(:not(.dbf, .dbf *)),.dr-body h3:where(:not(.dbf, .dbf *)){font-size: 13px; font-weight: 600; margin: 8px 0 -2px;}
.rules:where(:not(.dbf, .dbf *)){margin: 0; padding-left: 18px; display: grid; gap: 8px; line-height: 21px;}
.rules li:where(:not(.dbf, .dbf *))::marker{color: var(--muted);}
.dl:where(:not(.dbf, .dbf *)){list-style: none; margin: 0; padding: 0; display: grid; gap: 6px;}
.dl li:where(:not(.dbf, .dbf *)){padding: 10px 12px; background: var(--raised); border: 1px solid var(--border); border-radius: var(--r-row); display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center;}
.dr-body .dl li:where(:not(.dbf, .dbf *)){background: var(--surface); border-color: transparent;}
.dl li small:where(:not(.dbf, .dbf *)){display: block; color: var(--muted); font-size: 12px; line-height: 16px;}
.back:where(:not(.dbf, .dbf *)){display: none; justify-self: start;}
.tk-lead:where(:not(.dbf, .dbf *)){margin: -4px 0 12px; color: var(--text-2); font-size: 13px; line-height: 19px; max-width: 80ch;}
.tk-lead b:where(:not(.dbf, .dbf *)){color: var(--text); font-weight: 600;}
.tk-find:where(:not(.dbf, .dbf *)){display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-bottom: 12px;}
.tk-find .hint:where(:not(.dbf, .dbf *)){margin-right: 4px;}
table.tk:where(:not(.dbf, .dbf *)){border-collapse: separate; border-spacing: 0 4px; min-width: 860px;}
table.tk th:where(:not(.dbf, .dbf *)),table.tk td:where(:not(.dbf, .dbf *)){border-top: 0; padding: 0; vertical-align: middle;}
table.tk thead th:where(:not(.dbf, .dbf *)){padding: 0 4px 6px; text-align: left; font-size: 12px; color: var(--muted); white-space: nowrap;}
table.tk thead th small:where(:not(.dbf, .dbf *)){display: block; font-size: 11px; color: var(--muted);}
table.tk thead th.now:where(:not(.dbf, .dbf *)){color: var(--teal-text); font-weight: 600;}
table.tk thead th em:where(:not(.dbf, .dbf *)){display: block; font-style: normal; font-size: 11px; color: var(--teal-text);}
table.tk thead th:first-child:where(:not(.dbf, .dbf *)){width: 64px;}
table.tk tbody tr:where(:not(.dbf, .dbf *)){cursor: pointer;}
table.tk tbody td:where(:not(.dbf, .dbf *)){height: 34px; padding: 0 8px; background: var(--raised); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); font-size: 12px; color: var(--text-2); white-space: nowrap; transition: background 160ms var(--ease);}
table.tk tbody td + td:where(:not(.dbf, .dbf *)){border-left: 1px solid var(--rule);}
table.tk tbody td:last-child:where(:not(.dbf, .dbf *)){border-right: 1px solid var(--border); border-radius: 0 var(--r-row) var(--r-row) 0;}
table.tk tbody td.el:where(:not(.dbf, .dbf *)){color: var(--muted);}
table.tk tbody td.now:where(:not(.dbf, .dbf *)){color: var(--text); font-weight: 600;}
table.tk tbody th:where(:not(.dbf, .dbf *)){padding-right: 6px;}
.tk-btn:where(:not(.dbf, .dbf *)){width: 56px; height: 34px; border: 1px solid var(--border); border-radius: var(--r-row); background: var(--raised); color: var(--text); font-weight: 600; font-size: 13px; cursor: pointer;}
table.tk tbody tr:hover td:where(:not(.dbf, .dbf *)),table.tk tbody tr:hover .tk-btn:where(:not(.dbf, .dbf *)){border-color: var(--control);}
table.tk tbody tr.sel td:where(:not(.dbf, .dbf *)){background: var(--teal-wash); color: var(--teal-text); border-color: transparent;}
table.tk tbody tr.sel td.now:where(:not(.dbf, .dbf *)){color: var(--teal-text);}
table.tk tbody tr.sel .tk-btn:where(:not(.dbf, .dbf *)){background: var(--teal); border-color: var(--teal); color: var(--on-teal);}
table.tk tbody tr.dim:where(:not(.dbf, .dbf *)){opacity: .35;}
.dz:where(:not(.dbf, .dbf *)){display: grid; gap: 4px; justify-items: center; text-align: center; padding: 28px 20px; border: 1.5px dashed var(--control); border-radius: var(--r-row); background: var(--raised); color: var(--text-2); cursor: pointer; transition: border-color 160ms var(--ease), background 160ms var(--ease);}
.dz:hover:where(:not(.dbf, .dbf *)),.dz:focus-within:where(:not(.dbf, .dbf *)){border-color: var(--teal);}
.dz b:where(:not(.dbf, .dbf *)){color: var(--text); font-size: 15px; font-weight: 600;}
.dz span:where(:not(.dbf, .dbf *)){font-size: 13px; line-height: 19px; max-width: 60ch;}
.dz.busy:where(:not(.dbf, .dbf *)){cursor: progress;}
.dz-msg:where(:not(.dbf, .dbf *)){display: grid; gap: 12px; padding: 16px; border-radius: var(--r-row); background: var(--raised); border: 1px solid var(--border);}
.dz-msg p:where(:not(.dbf, .dbf *)){margin: 0; line-height: 21px;}
.dz-msg b:where(:not(.dbf, .dbf *)){font-weight: 600;}
.dz-names:where(:not(.dbf, .dbf *)),.dz-acts:where(:not(.dbf, .dbf *)){display: flex; flex-wrap: wrap; gap: 8px;}
.dz-acts:where(:not(.dbf, .dbf *)){justify-content: flex-end;}
.dz-row:where(:not(.dbf, .dbf *)){display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: end;}
.dz-row .field:where(:not(.dbf, .dbf *)){min-width: 220px;}
.dz-check:where(:not(.dbf, .dbf *)){display: flex; gap: 10px; align-items: baseline; font-size: 13px; line-height: 19px; max-width: 60ch;}
.day-list:where(:not(.dbf, .dbf *)){list-style: none; margin: 0; padding: 0; display: grid; gap: 6px;}
.day-list li:where(:not(.dbf, .dbf *)){display: grid; grid-template-columns: 74px minmax(0, 1fr) auto; gap: 10px; align-items: baseline; padding: 9px 12px; border-radius: var(--r-row); background: var(--raised); border: 1px solid var(--border);}
.dr-body .day-list li:where(:not(.dbf, .dbf *)){background: var(--surface); border-color: transparent;}
.day-list .tm:where(:not(.dbf, .dbf *)){font-size: 13px; color: var(--text-2); white-space: nowrap;}
.day-list .ev-t:where(:not(.dbf, .dbf *)){min-width: 0;}
.day-list .ev-t b:where(:not(.dbf, .dbf *)){display: block; font-size: 14px; line-height: 19px; font-weight: 500;}
.day-list .ev-t small:where(:not(.dbf, .dbf *)){display: block; color: var(--muted); font-size: 13px; line-height: 16px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;}
.ev-tag:where(:not(.dbf, .dbf *)){font-size: 11px; line-height: 18px; padding: 0 7px; border-radius: 999px; background: var(--sunk); color: var(--text-2);}
.hero-hint:where(:not(.dbf, .dbf *)){margin: 0; padding: 12px 14px; border-radius: var(--r-row); border: 1px dashed var(--control); color: var(--text-2); font-size: 13px; line-height: 19px;}
.hero-next > .label + .day-list + .label:where(:not(.dbf, .dbf *)){margin-top: 6px;}
html.dropping body::after{content: "Drop your schedule to read it"; position: fixed; inset: 12px; z-index: 90; display: grid; place-items: center; border: 2px dashed var(--teal); border-radius: var(--r-card); background: color-mix(in srgb, var(--ground) 82%, transparent); color: var(--teal-text); font: 600 18px var(--font); pointer-events: none;}
.triage:where(:not(.dbf, .dbf *)){padding: 8px 0 4px;}
.triage h1:where(:not(.dbf, .dbf *)){margin: 0; font-size: 44px; line-height: 48px; font-weight: 500; letter-spacing: -0.025em;}
.fact .due:where(:not(.dbf, .dbf *)){margin-right: 0;}
.flag:where(:not(.dbf, .dbf *)){display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 16px; padding: 16px; background: var(--raised); border: 1px solid var(--border); border-radius: var(--r-row);}
.flag + .flag:where(:not(.dbf, .dbf *)){margin-top: 8px;}
.flag h3:where(:not(.dbf, .dbf *)){margin: 0 0 6px; font-size: 15px; line-height: 21px; font-weight: 600;}
.flag p:where(:not(.dbf, .dbf *)){margin: 0 0 8px; line-height: 21px; max-width: 80ch;}
.flag .who:where(:not(.dbf, .dbf *)){color: var(--muted); font-size: 13px;}
.flag .codes:where(:not(.dbf, .dbf *)){display: flex; gap: 4px; flex-wrap: wrap; margin-top: 10px;}
.flag .codes .code-btn + .code-btn:where(:not(.dbf, .dbf *)){margin-left: 0;}
.ask-box:where(:not(.dbf, .dbf *)){display: grid; gap: 10px;}
.ask-row:where(:not(.dbf, .dbf *)){display: flex; gap: 12px; justify-content: space-between; align-items: center; flex-wrap: wrap;}
.facts.cols:where(:not(.dbf, .dbf *)){grid-template-columns: repeat(2, minmax(0, 1fr));}
.answer:where(:not(.dbf, .dbf *)){line-height: 22px; font-size: 14px;}
.q:where(:not(.dbf, .dbf *)){font-weight: 600; font-size: 15px; margin: 0 0 10px;}
.turn + .turn:where(:not(.dbf, .dbf *)){margin-top: 20px;}
.hits .hit-text:where(:not(.dbf, .dbf *)){line-height: 21px;}
.hits small .pill:where(:not(.dbf, .dbf *)){height: 18px; padding: 0 6px; font-size: 11px; vertical-align: 1px;}
.drop:where(:not(.dbf, .dbf *)){border: 1px dashed var(--control); border-radius: var(--r-row); padding: 16px; display: grid; gap: 10px; background: var(--raised);}
.drop.over:where(:not(.dbf, .dbf *)){border-color: var(--accent); background: var(--accent-soft);}
.changes:where(:not(.dbf, .dbf *)){list-style: none; padding: 0; margin: 0; display: grid; gap: 6px;}
.changes li:where(:not(.dbf, .dbf *)){display: flex; gap: 10px; align-items: baseline; padding: 10px 12px; background: var(--raised); border: 1px solid var(--border); border-radius: var(--r-row);}
.changes input:where(:not(.dbf, .dbf *)){margin: 0;}
.form-grid:where(:not(.dbf, .dbf *)){display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 20px;}
.rot-list > li:where(:not(.dbf, .dbf *)){grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr) auto !important;}
.rot-list .what:where(:not(.dbf, .dbf *)){display: grid; grid-template-columns: 12px minmax(0, 1fr); column-gap: 10px; align-items: center;}
.rot-list .what small:where(:not(.dbf, .dbf *)){grid-column: 2;}
.rot-dates:where(:not(.dbf, .dbf *)){display: flex; flex-wrap: wrap; gap: 6px; font-size: 12px; color: var(--muted);}
.dchip:where(:not(.dbf, .dbf *)){display: inline-flex; align-items: center; gap: 6px; height: 26px; padding: 0 10px; border-radius: 999px; background: var(--sunk); color: var(--text-2); white-space: nowrap;}
.dchip b:where(:not(.dbf, .dbf *)){color: var(--text); font-weight: 500;}
.dchip.soon:where(:not(.dbf, .dbf *)),.dchip.slipped:where(:not(.dbf, .dbf *)){background: var(--amber-wash); color: var(--amber-text);}
.dchip.soon b:where(:not(.dbf, .dbf *)),.dchip.slipped b:where(:not(.dbf, .dbf *)){color: var(--amber-text);}
.dchip.breach:where(:not(.dbf, .dbf *)){background: var(--red-wash); color: var(--red-text);}
.dchip.done:where(:not(.dbf, .dbf *)),.dchip.past:where(:not(.dbf, .dbf *)){background: transparent; color: var(--muted); padding: 0 4px;}
.dchip.done b:where(:not(.dbf, .dbf *)),.dchip.past b:where(:not(.dbf, .dbf *)){color: var(--muted); font-weight: 400;}
.mc-band small.amber:where(:not(.dbf, .dbf *)){color: var(--amber-text); opacity: 1; font-weight: 500;}
.rot-form:where(:not(.dbf, .dbf *)){display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, .9fr) minmax(0, 1fr) minmax(0, 1fr) auto; gap: 12px; align-items: end; margin-top: 16px;}
.gp:where(:not(.dbf, .dbf *)){display: inline-flex; align-items: center; gap: 8px; flex-wrap: wrap; flex-basis: 100%; margin-top: 2px;}
.gp label:where(:not(.dbf, .dbf *)){font-size: 12px; color: var(--muted);}
.gp input[type="date"]:where(:not(.dbf, .dbf *)){width: auto; height: 32px; font-size: 13px; padding: 0 10px;}
.sched:where(:not(.dbf, .dbf *)){display: grid; gap: 12px; margin-top: 16px;}
.sched-row:where(:not(.dbf, .dbf *)){display: flex; gap: 8px; align-items: center; flex-wrap: wrap;}
:root{--toast-open: 350ms;
  --toast-close: 250ms;
  --toast-distance: 16px;
  --toast-blur: 2px;
  --toast-scale: 0.97;
  --toast-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --check-box: 150ms;
  --check-draw: 350ms;
  --check-delay: 0ms;
  --check-uncheck: 150ms;
  --check-ease: cubic-bezier(0.22, 1, 0.36, 1);}
.t-toast:where(:not(.dbf, .dbf *)){opacity: 0;
  transform: translateY(var(--toast-distance)) scale(var(--toast-scale));
  filter: blur(var(--toast-blur));
  will-change: transform, opacity, filter;
  transition:
    opacity var(--toast-close) var(--toast-ease),
    transform var(--toast-close) var(--toast-ease),
    filter var(--toast-close) var(--toast-ease);}
.t-toast.is-open:where(:not(.dbf, .dbf *)){opacity: 1;
  transform: translateY(0) scale(1);
  filter: blur(0);
  transition:
    opacity var(--toast-open) var(--toast-ease),
    transform var(--toast-open) var(--toast-ease),
    filter var(--toast-open) var(--toast-ease);}
@media (prefers-reduced-motion: reduce){
.t-toast:where(:not(.dbf, .dbf *)){transition: none !important;}
}
.t-check:where(:not(.dbf, .dbf *)){transition:
    background var(--check-box) var(--check-ease),
    box-shadow var(--check-box) var(--check-ease);}
.t-check svg path:where(:not(.dbf, .dbf *)){stroke-dasharray: var(--check-len, 15);
  stroke-dashoffset: var(--check-len, 15);
  transition: stroke-dashoffset var(--check-uncheck) var(--check-ease);}
.t-check[aria-checked="true"] svg path:where(:not(.dbf, .dbf *)){stroke-dashoffset: 0;
  transition: stroke-dashoffset var(--check-draw) var(--check-ease) var(--check-delay);}
@media (prefers-reduced-motion: reduce){
.t-check:where(:not(.dbf, .dbf *)),.t-check svg path:where(:not(.dbf, .dbf *)){transition: none !important;}
}
.toast-wrap:where(:not(.dbf, .dbf *)){position: fixed; left: 0; right: 0; bottom: calc(20px + env(safe-area-inset-bottom, 0px)); display: flex; justify-content: center; pointer-events: none; z-index: 80; padding: 0 16px;}
.toast:where(:not(.dbf, .dbf *)){display: inline-flex; align-items: center; gap: 10px; max-width: 460px; padding: 10px 18px 10px 14px; border-radius: 999px; background: var(--raised); border: 1px solid var(--border); color: var(--text); font-size: 14px; line-height: 20px; box-shadow: var(--shadow-float);}
.toast:where(:not(.dbf, .dbf *))::before{content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--teal); flex: none;}
.toast:empty:where(:not(.dbf, .dbf *)){display: none;}
.toast-act:where(:not(.dbf, .dbf *)){pointer-events: auto; margin-left: 4px; min-height: 28px; padding: 2px 8px; border: 0; border-radius: 999px; background: none; color: var(--teal-text); font: inherit; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; cursor: pointer;}
.toast-act:where(:not(.dbf, .dbf *)):focus-visible{outline: 2px solid var(--focus, var(--teal)); outline-offset: 2px;}
.toast.is-open:where(:not(.dbf, .dbf *)){pointer-events: auto;}
@media (max-width: 1180px){
.r-main > .s8:where(:not(.dbf, .dbf *)),.r-main > .s4:where(:not(.dbf, .dbf *)){grid-column: 1 / -1;}
.r-main > .col:where(:not(.dbf, .dbf *)){display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));}
.hc-months:where(:not(.dbf, .dbf *)){grid-template-columns: repeat(3, minmax(0, 1fr));}
.board-wrap:where(:not(.dbf, .dbf *)){grid-template-columns: minmax(0, 1fr);}
.rot-form:where(:not(.dbf, .dbf *)){grid-template-columns: repeat(2, minmax(0, 1fr));}
.rot-form .rot-add:where(:not(.dbf, .dbf *)){grid-column: 1 / -1;}
.rot-form .rot-add .label:where(:not(.dbf, .dbf *)){display: none;}
}
@media (max-width: 1100px){
.j-cols:where(:not(.dbf, .dbf *)){grid-template-columns: minmax(0, 1fr) !important; gap: 16px;}
.g12 > .s5:where(:not(.dbf, .dbf *)),.g12 > .s7:where(:not(.dbf, .dbf *)){grid-column: 1 / -1;}
.triage h1:where(:not(.dbf, .dbf *)){font-size: 36px; line-height: 42px;}
.j-col.room:where(:not(.dbf, .dbf *)){display: none;}
.hero:where(:not(.dbf, .dbf *)){grid-template-columns: minmax(0, 1fr);}
.hero-next:where(:not(.dbf, .dbf *)){align-self: start;}
.grid:where(:not(.dbf, .dbf *)){grid-template-columns: repeat(2, minmax(0, 1fr));}
.span-2:where(:not(.dbf, .dbf *)),.span-3:where(:not(.dbf, .dbf *)){grid-column: 1 / -1;}
.figures:where(:not(.dbf, .dbf *)){grid-template-columns: repeat(2, minmax(0, 1fr));}
.g12 > .s4:where(:not(.dbf, .dbf *)),.g12 > .s8:where(:not(.dbf, .dbf *)){grid-column: 1 / -1;}
}
@media (max-width: 900px){
.app:where(:not(.dbf, .dbf *)){grid-template-columns: minmax(0, 1fr);}
.side:where(:not(.dbf, .dbf *)),.app:where(:not(.dbf, .dbf *))::before{display: none;}
.topbar:where(:not(.dbf, .dbf *)){display: flex; align-items: center; gap: 8px; position: sticky; top: 0; z-index: 20; height: calc(52px + env(safe-area-inset-top, 0px)); padding: env(safe-area-inset-top, 0px) max(12px, env(safe-area-inset-right, 0px)) 0 max(16px, env(safe-area-inset-left, 0px)); background: var(--ground);}
.topbar .tb-name:where(:not(.dbf, .dbf *)){flex: 1; min-width: 0; font-weight: 600; font-size: 15px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;}
.topbar button:where(:not(.dbf, .dbf *)){display: inline-grid; place-items: center; height: 36px; min-width: 40px; padding: 0 12px; border: 1px solid var(--border); border-radius: 999px; background: var(--ground); cursor: pointer; font-weight: 500; font-size: 13px;}
.sheet[data-open="true"]:where(:not(.dbf, .dbf *)){display: flex; flex-direction: column; gap: 2px; position: fixed; inset: 0; z-index: 40; overflow-y: auto; background: var(--side); padding: calc(12px + env(safe-area-inset-top, 0px)) max(16px, env(safe-area-inset-right, 0px)) 24px max(16px, env(safe-area-inset-left, 0px));}
.sheet-top:where(:not(.dbf, .dbf *)){display: flex; align-items: center; justify-content: space-between; gap: 12px;}
.sheet-top .brand:where(:not(.dbf, .dbf *)){padding-bottom: 14px;}
.sheet .nav a:where(:not(.dbf, .dbf *)){height: 44px; font-size: 15px;}
.sheet .side-foot:where(:not(.dbf, .dbf *)){margin-top: 24px;}
.canvas:where(:not(.dbf, .dbf *)){padding: 12px max(16px, env(safe-area-inset-right, 0px)) 56px max(16px, env(safe-area-inset-left, 0px));}
.split:where(:not(.dbf, .dbf *)){grid-template-columns: minmax(0, 1fr);}
.split.has-sel .plist:where(:not(.dbf, .dbf *)){display: none;}
.split:not(.has-sel) .detail-wrap:where(:not(.dbf, .dbf *)){display: none;}
.detail:where(:not(.dbf, .dbf *)){position: static; max-height: none;}
.back:where(:not(.dbf, .dbf *)){display: inline-flex;}
.g12 > .s6:where(:not(.dbf, .dbf *)){grid-column: 1 / -1;}
.hero:where(:not(.dbf, .dbf *)){padding: 24px;}
.hero h1:where(:not(.dbf, .dbf *)){font-size: 36px; line-height: 42px;}
}
@media (max-width: 640px){
:root{--pad: 16px; --gap: 12px;}
.title-row h1:where(:not(.dbf, .dbf *)){font-size: 24px; line-height: 30px;}
.finding:where(:not(.dbf, .dbf *)){font-size: 14px; line-height: 21px;}
.hero:where(:not(.dbf, .dbf *)){padding: 20px 18px; gap: 22px;}
.hero h1:where(:not(.dbf, .dbf *)),.journey h1:where(:not(.dbf, .dbf *)),.triage h1:where(:not(.dbf, .dbf *)){font-size: 30px; line-height: 36px; letter-spacing: -0.02em;}
.journey:where(:not(.dbf, .dbf *)){padding: 20px 18px;}
.j-line:where(:not(.dbf, .dbf *)){height: 92px; margin: 20px 0 4px;}
.j-seg:where(:not(.dbf, .dbf *)),.j-ms:where(:not(.dbf, .dbf *)),.j-today:where(:not(.dbf, .dbf *)){top: 44px;}
.j-seg.room:where(:not(.dbf, .dbf *)){top: 45px;}
.j-ms:not(.strong):not(.end) .j-l:where(:not(.dbf, .dbf *)){display: none;}
.j-ms .j-l small:where(:not(.dbf, .dbf *)){display: none;}
.j-tiles:where(:not(.dbf, .dbf *)){grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);}
.hero-figs:where(:not(.dbf, .dbf *)){grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 0;}
.fig-q:nth-child(3):where(:not(.dbf, .dbf *)){padding-left: 0; border-left: 0;}
.r-main > .col:where(:not(.dbf, .dbf *)){display: flex;}
.grid:where(:not(.dbf, .dbf *)){grid-template-columns: minmax(0, 1fr);}
.rows > li:where(:not(.dbf, .dbf *)){grid-template-columns: 22px 44px minmax(0, 1fr); gap: 10px 12px; padding: 10px 12px;}
.rows > li .tail:where(:not(.dbf, .dbf *)){grid-column: 3; justify-content: flex-start; margin-top: -2px;}
.rows > li .tail:empty:where(:not(.dbf, .dbf *)){display: none;}
.rows .what small:where(:not(.dbf, .dbf *)){white-space: normal;}
.rows.plain > li .tail:where(:not(.dbf, .dbf *)){grid-column: auto;}
.list > li:where(:not(.dbf, .dbf *)){grid-template-columns: 76px minmax(0, 1fr);}
.list > li .tail:where(:not(.dbf, .dbf *)){grid-column: 2; justify-content: flex-start;}
.list.two > li:where(:not(.dbf, .dbf *)){grid-template-columns: minmax(0, 1fr);}
.list.cols:where(:not(.dbf, .dbf *)),.plans:where(:not(.dbf, .dbf *)),.facts.cols:where(:not(.dbf, .dbf *)){grid-template-columns: minmax(0, 1fr);}
.list.two > li .tail:where(:not(.dbf, .dbf *)){grid-column: 1;}
.flag:where(:not(.dbf, .dbf *)){grid-template-columns: minmax(0, 1fr); gap: 8px;}
.form-grid:where(:not(.dbf, .dbf *)){grid-template-columns: minmax(0, 1fr);}
.toolbar input[type="search"]:where(:not(.dbf, .dbf *)){width: 100%;}
.req-table thead:where(:not(.dbf, .dbf *)){display: none;}
.req-table tr:not(.sec):where(:not(.dbf, .dbf *)){display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px; border-top: 1px solid var(--rule); padding: 10px 0;}
.req-table tr:not(.sec) td:where(:not(.dbf, .dbf *)){border: 0; padding: 0;}
.req-table tr:not(.sec) td.rule-cell:where(:not(.dbf, .dbf *)){grid-column: 1 / -1; grid-row: 2;}
.req-table tr:not(.sec) td.src-cell:where(:not(.dbf, .dbf *)){display: none;}
.clock-svg-wrap:where(:not(.dbf, .dbf *)){display: none;}
.clock-key:where(:not(.dbf, .dbf *)){display: grid;}
.figures:where(:not(.dbf, .dbf *)){margin-top: 10px;}
.title-actions:where(:not(.dbf, .dbf *)){width: 100%;}
.title-actions .seg.stage:where(:not(.dbf, .dbf *)){display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; border-radius: var(--r-row);}
.seg.stage button:where(:not(.dbf, .dbf *)){height: 36px; white-space: normal; border-radius: 9px;}
.mc-panel:where(:not(.dbf, .dbf *)){padding: 10px 8px 12px;}
.mc-dow:where(:not(.dbf, .dbf *)){gap: 3px;}
.mc-dow span:where(:not(.dbf, .dbf *)){padding-left: 0; text-align: center;}
.mc:where(:not(.dbf, .dbf *)){gap: 3px;}
.mc-wk:where(:not(.dbf, .dbf *)){column-gap: 3px; grid-template-rows: 28px repeat(var(--lanes, 1), 10px) minmax(18px, auto);}
.mc-day:where(:not(.dbf, .dbf *)){border-radius: 8px;}
.mc-num:where(:not(.dbf, .dbf *)){justify-self: center; margin-left: 0; font-size: 12px; min-width: 22px; height: 22px; padding: 0 4px;}
.mc-band:where(:not(.dbf, .dbf *)){height: 6px; margin: 0 1px; padding: 0; border-radius: 999px; background: var(--k-bar);}
.mc-band.cont-l:where(:not(.dbf, .dbf *)){margin-left: -2px;}
.mc-band.cont-r:where(:not(.dbf, .dbf *)){margin-right: -2px;}
.mc-band span:where(:not(.dbf, .dbf *)),.mc-band small:where(:not(.dbf, .dbf *)){display: none;}
.mc-items:where(:not(.dbf, .dbf *)){padding: 2px 0 6px; justify-items: center;}
.mc-chip:where(:not(.dbf, .dbf *)),.mc-more:where(:not(.dbf, .dbf *)){display: none;}
.mc-dots:where(:not(.dbf, .dbf *)){display: flex; gap: 3px;}
.mc-dots .dot:where(:not(.dbf, .dbf *)){width: 5px; height: 5px;}
.mc-foot:where(:not(.dbf, .dbf *)){padding: 12px 6px 0;}
.mc-foot .key:last-child:where(:not(.dbf, .dbf *)){display: none;}
.mc-list:where(:not(.dbf, .dbf *)){display: block;}
.hc-months:where(:not(.dbf, .dbf *)){grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px;}
.hc-month:where(:not(.dbf, .dbf *)){padding: 10px;}
.tl-body:where(:not(.dbf, .dbf *)){--label: 112px; --gutter: 8px;}
.tl-label:where(:not(.dbf, .dbf *)){padding: 6px 4px;}
.tl-label small:where(:not(.dbf, .dbf *)){display: none;}
.tl-bar span:where(:not(.dbf, .dbf *)){display: none;}
.tl-axis .tl-track span:not(.q):where(:not(.dbf, .dbf *)){visibility: hidden;}
.tl-axis .tl-track span:where(:not(.dbf, .dbf *)){overflow: visible;}
.lane:where(:not(.dbf, .dbf *)),.hm-row:where(:not(.dbf, .dbf *)){grid-template-columns: minmax(0, 1fr); gap: 8px;}
.lane-h:where(:not(.dbf, .dbf *)),.hm-label:where(:not(.dbf, .dbf *)){padding-top: 0;}
.tiles:where(:not(.dbf, .dbf *)){grid-template-columns: repeat(2, minmax(0, 1fr));}
.rot-list > li:where(:not(.dbf, .dbf *)){grid-template-columns: minmax(0, 1fr) auto !important;}
.rot-list > li .rot-dates:where(:not(.dbf, .dbf *)){grid-column: 1 / -1; grid-row: 2;}
.rot-list > li .tail:where(:not(.dbf, .dbf *)){grid-column: 2 !important; grid-row: 1;}
.rot-form:where(:not(.dbf, .dbf *)){grid-template-columns: minmax(0, 1fr);}
.hm-tile:where(:not(.dbf, .dbf *)){min-width: 60px;}
.drawer:where(:not(.dbf, .dbf *)){top: auto; left: 0; right: 0; bottom: 0; width: 100%; max-height: 88vh; border-radius: var(--r-card) var(--r-card) 0 0; --panel-translate-y: 100px; padding-bottom: env(safe-area-inset-bottom, 0px);}
.scrim:where(:not(.dbf, .dbf *)){background: rgba(16, 24, 20, .32);}
.dr-head:where(:not(.dbf, .dbf *)){padding: 18px 14px 12px 18px;}
.dr-body:where(:not(.dbf, .dbf *)){padding: 0 18px 22px;}
.pal-wrap:where(:not(.dbf, .dbf *)){padding: 10px 10px;}
.pal:where(:not(.dbf, .dbf *)){max-height: 80vh;}
.pal-foot:where(:not(.dbf, .dbf *)){display: none;}
}
@media (prefers-reduced-motion: reduce){
*,*::before,*::after{transition-duration: 0.01ms !important; animation: none !important;}
}
code:where(:not(.dbf, .dbf *)),.mono:where(:not(.dbf, .dbf *)){font-family: var(--mono);}
.boot:where(:not(.dbf, .dbf *)){min-height: 40vh; display: grid; place-items: center;}
.setup:where(:not(.dbf, .dbf *)){max-width: 760px; width: 100%; margin: 0 auto; display: grid; gap: var(--gap);}
.steps:where(:not(.dbf, .dbf *)){list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 20px; color: var(--muted); font-size: 13px;}
.steps li:where(:not(.dbf, .dbf *)){display: flex; align-items: center; gap: 8px;}
.steps .num:where(:not(.dbf, .dbf *)){width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--control); font-size: 12px;}
.steps li.on:where(:not(.dbf, .dbf *)){color: var(--text); font-weight: 500;}
.steps li.on .num:where(:not(.dbf, .dbf *)){border-color: var(--teal); color: var(--teal-text);}
.steps li.done .num:where(:not(.dbf, .dbf *)){background: var(--teal-wash); border-color: var(--teal-wash); color: var(--teal-text);}
.setup .setup-foot:where(:not(.dbf, .dbf *)){display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;}
.setup-acts:where(:not(.dbf, .dbf *)){display: flex; gap: 8px;}
.setup-note:where(:not(.dbf, .dbf *)){margin: 0;}
.setup .tk-lead:where(:not(.dbf, .dbf *)){max-width: 62ch;}
.soon p:where(:not(.dbf, .dbf *)){margin: 0 0 4px; max-width: 64ch; color: var(--text-2); line-height: 22px;}
.ai-ans:where(:not(.dbf, .dbf *)){display: grid; gap: 6px; padding: 16px 18px; border-radius: var(--r-row); background: var(--raised); border: 1px solid var(--border);}
.ai-ans .ai-k:where(:not(.dbf, .dbf *)){color: var(--muted); font-size: 12px; line-height: 16px;}
.ai-ans p:where(:not(.dbf, .dbf *)){margin: 0; font-size: 15px; line-height: 23px; color: var(--text); max-width: 70ch; white-space: pre-wrap;}
.ai-ans.busy p:where(:not(.dbf, .dbf *)){color: var(--text-2);}
.ai-ans .code-btn:where(:not(.dbf, .dbf *)){vertical-align: baseline;}
@media (prefers-reduced-motion: reduce){
*,*::before,*::after{animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important;}
}

/* the debrief action sits at the top of the sidebar on every page */
.side-new { display: flex; align-items: center; gap: 10px; width: 100%; height: 38px; padding: 0 10px 0 12px; margin: 0 0 8px; border: 0; border-radius: 999px; background: var(--debrief); color: var(--on-debrief); font-weight: 500; cursor: pointer; text-align: left; transition: filter 150ms var(--ease); }
.side-new:hover { filter: brightness(1.07); }
.side-new svg { width: 16px; height: 16px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.side-new span { flex: 1; }
.side-new kbd { background: rgba(10, 19, 34, .16); color: var(--on-debrief); }
.dbf-host { padding-bottom: 32px; }

/* ---------- light mode (opt-in; dark is the default) ----------
   Policy Navigator's approved light set, plus the Debrief accent in light. Selected by data-mode, never by the host's data-theme alone. */
:root[data-mode="light"], :root[data-mode="system"][data-theme="light"] {
  --ground: #ffffff; --side: #f8f9f8; --surface: #f3f5f4; --raised: #ffffff; --sunk: #e8ebea; --active: #e8ebea;
  --border: #e0e4e2; --rule: #e8ebea; --control: #c9cfcc;
  --text: #15191a; --text-2: #4a5357; --muted: #5c666a; --inverse: #ffffff;
  --teal: #1b7a6e; --teal-text: #0f6a5f; --teal-wash: #dcefeb; --on-teal: #ffffff;
  --debrief: #2d63c8; --debrief-text: #1e4c9c; --debrief-wash: #e3ebf8; --on-debrief: #ffffff;
  --amber: #bf7310; --amber-text: #8a4a00; --amber-wash: #fbedd5;
  --red: #cf3a2f; --red-text: #a8281f; --red-wash: #fbe4e1;
  --k-cl-bg: #e2eaf0; --k-cl-ink: #22384a; --k-cl-bar: #6e8fa6;
  --k-el-bg: #eceeef; --k-el-ink: #353b40; --k-el-bar: #8b9298;
  --k-si-bg: transparent; --k-si-ink: #22384a; --k-si-bar: #6e8fa6;
  --k-ot-bg: #eef0ef; --k-ot-ink: #4a5357; --k-ot-bar: #9aa2a6;
  --od1-bg: #fbedd5; --od1-ink: #7a4300; --od2-bg: #f2d197; --od2-ink: #5c3300; --od3-bg: #9a5a00; --od3-ink: #ffffff;
  --heat-1: #eceded; --heat-2: #dadada; --heat-3: #b9baba; --heat-4: #696c6c; --on-heat-3: #15191a; --on-heat-4: #ffffff;
  --seg-1: #e3e7e5; --seg-2: #cfd6d3; --seg-3: #b8c2be;
  --scrim: rgba(16, 24, 20, .22);
  --shadow-float: 0 24px 64px rgba(16, 24, 20, .16), 0 2px 8px rgba(16, 24, 20, .06);
  color-scheme: light;
}
@media (prefers-color-scheme: light) {
  :root[data-mode="system"]:not([data-theme="dark"]) {
    --ground: #ffffff; --side: #f8f9f8; --surface: #f3f5f4; --raised: #ffffff; --sunk: #e8ebea; --active: #e8ebea;
    --border: #e0e4e2; --rule: #e8ebea; --control: #c9cfcc;
    --text: #15191a; --text-2: #4a5357; --muted: #5c666a; --inverse: #ffffff;
    --teal: #1b7a6e; --teal-text: #0f6a5f; --teal-wash: #dcefeb; --on-teal: #ffffff;
    --debrief: #2d63c8; --debrief-text: #1e4c9c; --debrief-wash: #e3ebf8; --on-debrief: #ffffff;
    --amber: #bf7310; --amber-text: #8a4a00; --amber-wash: #fbedd5;
    --red: #cf3a2f; --red-text: #a8281f; --red-wash: #fbe4e1;
    --k-cl-bg: #e2eaf0; --k-cl-ink: #22384a; --k-cl-bar: #6e8fa6;
    --k-el-bg: #eceeef; --k-el-ink: #353b40; --k-el-bar: #8b9298;
    --k-si-bg: transparent; --k-si-ink: #22384a; --k-si-bar: #6e8fa6;
    --k-ot-bg: #eef0ef; --k-ot-ink: #4a5357; --k-ot-bar: #9aa2a6;
    --od1-bg: #fbedd5; --od1-ink: #7a4300; --od2-bg: #f2d197; --od2-ink: #5c3300; --od3-bg: #9a5a00; --od3-ink: #ffffff;
    --heat-1: #eceded; --heat-2: #dadada; --heat-3: #b9baba; --heat-4: #696c6c; --on-heat-3: #15191a; --on-heat-4: #ffffff;
    --seg-1: #e3e7e5; --seg-2: #cfd6d3; --seg-3: #b8c2be;
    --scrim: rgba(16, 24, 20, .22);
    --shadow-float: 0 24px 64px rgba(16, 24, 20, .16), 0 2px 8px rgba(16, 24, 20, .06);
    color-scheme: light;
  }
}
/* the switch shows the student's choice, not the host's theme */
.theme-btn[aria-checked="false"] .theme-sw { background: var(--control); }
.theme-btn[aria-checked="false"] .theme-sw i { transform: none; background: var(--ground); }
:root[data-mode="light"] .side-new kbd, :root[data-mode="system"][data-theme="light"] .side-new kbd { background: rgba(0, 0, 0, .28); }
@media (prefers-color-scheme: light) { :root[data-mode="system"]:not([data-theme="dark"]) .side-new kbd { background: rgba(0, 0, 0, .28); } }
/* switching appearance eases colours for a moment; skipped when motion is reduced */
.theme-switching, .theme-switching *, .theme-switching *::before, .theme-switching *::after { transition: background-color 220ms var(--ease), border-color 220ms var(--ease), color 220ms var(--ease), fill 220ms var(--ease) !important; }
@media (prefers-reduced-motion: reduce) { .theme-switching, .theme-switching * { transition: none !important; } }

/* ---- setup from the degree audit ---- */
.su-drop:where(:not(.dbf, .dbf *)){display: grid; gap: 8px; justify-items: start; padding: 22px; border: 1.5px dashed var(--control); border-radius: var(--r-card); background: var(--ground); transition: border-color .15s var(--ease), background .15s var(--ease);}
.su-drop.over:where(:not(.dbf, .dbf *)), :root.dropping .su-drop:where(:not(.dbf, .dbf *)){border-color: var(--accent); background: var(--accent-soft);}
.su-drop.busy:where(:not(.dbf, .dbf *)){opacity: .7;}
.su-drop-t:where(:not(.dbf, .dbf *)){margin: 0; font-size: 16px; line-height: 22px; font-weight: 500; color: var(--text);}
.su-drop textarea:where(:not(.dbf, .dbf *)){width: 100%;}
.su-drop .field:where(:not(.dbf, .dbf *)){width: 100%;}
.su-acts:where(:not(.dbf, .dbf *)){display: flex; gap: 8px; flex-wrap: wrap; align-items: center;}
.su-read:where(:not(.dbf, .dbf *)){display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-radius: var(--r-card); background: var(--accent-soft); outline: none;}
.su-read > div:where(:not(.dbf, .dbf *)){flex: 1; min-width: 0; display: grid; gap: 2px;}
.su-read small:where(:not(.dbf, .dbf *)){color: var(--text-2);}
.su-ok:where(:not(.dbf, .dbf *)){display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--accent); flex: none;}
.su-ok svg:where(:not(.dbf, .dbf *)){width: 14px; height: 14px; fill: none; stroke: var(--on-accent); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round;}
.su-facts:where(:not(.dbf, .dbf *)){display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 12px 20px; margin: 0;}
.su-facts dt:where(:not(.dbf, .dbf *)){font-size: 12px; color: var(--muted);}
.su-facts dd:where(:not(.dbf, .dbf *)){margin: 2px 0 0; font-weight: 500; font-variant-numeric: tabular-nums;}
/* ---- custom track editor ---- */
.ct-list > li:where(:not(.dbf, .dbf *)){display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px 16px;}
.ct-list > li > .ct-dates:where(:not(.dbf, .dbf *)){grid-column: 1 / -1; grid-row: 2;}
.ct-row.ct-confirm:where(:not(.dbf, .dbf *)){box-shadow: inset 3px 0 0 var(--amber);}
.ct-row .what small:where(:not(.dbf, .dbf *)){display: block; color: var(--muted);}
.ct-confirm .what small:where(:not(.dbf, .dbf *)){color: var(--amber-text);}
.ct-dates:where(:not(.dbf, .dbf *)){display: flex; flex-wrap: wrap; align-items: center; gap: 6px; color: var(--muted); font-size: 13px;}
.ct-dates input:where(:not(.dbf, .dbf *)){height: 34px; padding: 0 8px; border: 1px solid var(--control); border-radius: var(--r-row); background: var(--raised); color: var(--text); font: inherit; font-variant-numeric: tabular-nums;}
.ct-list > li.ct-row .tail:where(:not(.dbf, .dbf *)){display: flex; align-items: center; gap: 6px; justify-content: flex-end;}
.ct-miss:where(:not(.dbf, .dbf *)){display: grid; gap: 8px; margin-top: 16px;}
.ct-chips:where(:not(.dbf, .dbf *)){display: flex; flex-wrap: wrap; gap: 8px;}
.ct-chips .chip:where(:not(.dbf, .dbf *)){color: var(--text);}
.ct-chips .chip small:where(:not(.dbf, .dbf *)){color: var(--muted); margin-left: 4px;}
.ct-base:where(:not(.dbf, .dbf *)){display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--rule);}
.ct-base label:where(:not(.dbf, .dbf *)){font-weight: 500; font-size: 13px;}
.ct-base select:where(:not(.dbf, .dbf *)){height: 34px;}
.tk-std:where(:not(.dbf, .dbf *)){padding: 0;}
.tk-std > summary:where(:not(.dbf, .dbf *)){padding: 16px var(--pad); cursor: pointer; font-weight: 500;}
.tk-std > .panel:where(:not(.dbf, .dbf *)){border: 0; box-shadow: none;}
@media (max-width: 720px){
  .ct-list > li:where(:not(.dbf, .dbf *)){grid-template-columns: minmax(0, 1fr); min-width: 0;}
  .ct-dates:where(:not(.dbf, .dbf *)){min-width: 0;}
  .ct-list > li.ct-row .tail:where(:not(.dbf, .dbf *)){grid-column: auto; justify-content: flex-start; flex-wrap: wrap;}
  .ct-dates input:where(:not(.dbf, .dbf *)){min-width: 0; flex: 1;}
}
@media (prefers-reduced-motion: reduce){ .su-drop:where(:not(.dbf, .dbf *)){transition: none;} }

/* ================= calm pass: six destinations, section tabs, one card style, quieter rows =================
   Spacing comes from --s1…--s7 (4, 8, 12, 16, 24, 32, 48). Cards are surfaces without borders; rows inside a card are
   divided by hairlines instead of each sitting in its own box. Section headers are one size everywhere. */

/* sidebar */
.side:where(:not(.dbf, .dbf *)){gap: 0; padding: 20px 12px 16px;}
.brand:where(:not(.dbf, .dbf *)){padding: 4px 8px 20px;}
.side-new:where(:not(.dbf, .dbf *)){margin: 0 0 8px;}
.side-search:where(:not(.dbf, .dbf *)){margin: 0 0 20px; border-color: var(--rule); background: transparent;}
.nav:where(:not(.dbf, .dbf *)){gap: 2px;}
.nav a:where(:not(.dbf, .dbf *)){height: 36px; padding: 0 12px; border-radius: var(--r-row); font-size: 14px;}
.nav a[aria-current="page"]:where(:not(.dbf, .dbf *)){background: var(--active); color: var(--text); font-weight: 500;}
.nav a.sp-debrief[aria-current="page"] svg:where(:not(.dbf, .dbf *)){color: var(--debrief-text);}
.nav a.sp-school[aria-current="page"] svg:where(:not(.dbf, .dbf *)){color: var(--teal-text);}
.side-foot:where(:not(.dbf, .dbf *)){gap: var(--s3); padding-top: var(--s5);}
.side-foot p:where(:not(.dbf, .dbf *)){padding: 0 12px;}

/* you: the settings menu under your name */
.me:where(:not(.dbf, .dbf *)){position: relative;}
.scope:where(:not(.dbf, .dbf *)){width: 100%; border: 0; background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer;}
.scope-t:where(:not(.dbf, .dbf *)){flex: 1;}
.me-chev:where(:not(.dbf, .dbf *)){width: 14px; height: 14px; flex: none; fill: none; stroke: var(--muted); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; transform: rotate(180deg); transition: transform 160ms var(--ease);}
.me.open .me-chev:where(:not(.dbf, .dbf *)){transform: none;}
.me-menu:where(:not(.dbf, .dbf *)){position: absolute; left: 0; right: 0; bottom: calc(100% + 6px); z-index: 30; display: grid; gap: 2px; padding: 6px; border-radius: var(--r-card); background: var(--raised); border: 1px solid var(--border); box-shadow: var(--shadow-float);}
.me-menu a:where(:not(.dbf, .dbf *)){display: flex; align-items: center; height: 36px; padding: 0 12px; border-radius: var(--r-row); text-decoration: none; color: var(--text); font-size: 14px;}
.me-menu a:hover:where(:not(.dbf, .dbf *)),.me-menu a[aria-current="page"]:where(:not(.dbf, .dbf *)){background: var(--sunk);}
.me-menu .theme-btn:where(:not(.dbf, .dbf *)){height: 36px; border-radius: var(--r-row); margin-top: 4px; border-top: 1px solid var(--rule); border-radius: 0 0 var(--r-row) var(--r-row); padding-top: 4px; height: 40px;}
.sheet .me-menu:where(:not(.dbf, .dbf *)){position: static; box-shadow: none; margin-top: var(--s2);}

/* section tabs */
#subnav:where(:not(.dbf, .dbf *)){max-width: 1100px; margin: 0 auto;}
#subnav:empty:where(:not(.dbf, .dbf *)){display: none;}
.subnav:where(:not(.dbf, .dbf *)){margin: -8px 0 var(--s5); border-bottom: 1px solid var(--rule);}
.subnav-in:where(:not(.dbf, .dbf *)){display: flex; gap: var(--s5); overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch;}
.subnav-in:where(:not(.dbf, .dbf *))::-webkit-scrollbar{display: none;}
.subnav a:where(:not(.dbf, .dbf *)){position: relative; flex: none; display: inline-flex; align-items: center; height: 40px; color: var(--muted); text-decoration: none; font-size: 14px; white-space: nowrap; transition: color 150ms var(--ease);}
.subnav a:hover:where(:not(.dbf, .dbf *)){color: var(--text);}
.subnav a[aria-current="page"]:where(:not(.dbf, .dbf *)){color: var(--text); font-weight: 500;}
.subnav a[aria-current="page"]:where(:not(.dbf, .dbf *))::after{content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; border-radius: 2px; background: var(--text);}
.subnav.sp-debrief a[aria-current="page"]:where(:not(.dbf, .dbf *))::after{background: var(--debrief);}
.subnav.sp-school a[aria-current="page"]:where(:not(.dbf, .dbf *))::after{background: var(--teal);}
.subnav a:focus-visible:where(:not(.dbf, .dbf *)){outline-offset: -2px;}

/* one card style, one header style */
.panel:where(:not(.dbf, .dbf *)){padding: var(--s5); border-radius: var(--r-card);}
.panel-head:where(:not(.dbf, .dbf *)){min-height: 24px; margin-bottom: var(--s3);}
.panel-head h2:where(:not(.dbf, .dbf *)),.hb-invite h2:where(:not(.dbf, .dbf *)){font-size: 15px; line-height: 22px; font-weight: 600; letter-spacing: -0.005em;}
.panel-head .link:where(:not(.dbf, .dbf *)){font-size: 13px; color: var(--text-2); text-decoration: none;}
.panel-head .link:hover:where(:not(.dbf, .dbf *)){color: var(--text); text-decoration: underline;}
.count-chip:where(:not(.dbf, .dbf *)){min-width: 0; height: auto; padding: 0; background: none; color: var(--muted); font-size: 13px; font-weight: 400;}

/* rows sit on hairlines inside their card, not in boxes of their own */
.rows:where(:not(.dbf, .dbf *)),.list:where(:not(.dbf, .dbf *)),.facts:where(:not(.dbf, .dbf *)){gap: 0;}
.rows > li:where(:not(.dbf, .dbf *)),.list > li:where(:not(.dbf, .dbf *)){min-height: 52px; padding: 12px 4px; background: transparent; border: 0; border-top: 1px solid var(--rule); border-radius: 0;}
.rows > li:first-child:where(:not(.dbf, .dbf *)),.list > li:first-child:where(:not(.dbf, .dbf *)){border-top: 0;}
.facts li:where(:not(.dbf, .dbf *)){background: transparent; border: 0; border-top: 1px solid var(--rule); border-radius: 0;}
.facts li:first-child:where(:not(.dbf, .dbf *)){border-top: 0;}
.fact:where(:not(.dbf, .dbf *)){min-height: 52px; padding: 10px 4px; border: 0; border-radius: var(--r-row); background: transparent;}
.fact:hover:where(:not(.dbf, .dbf *)){background: var(--raised);}
.pm-sec:where(:not(.dbf, .dbf *)){padding: 12px 0; background: transparent; border: 0; border-top: 1px solid var(--rule); border-radius: 0;}
.secs .pm-sec:first-child:where(:not(.dbf, .dbf *)){border-top: 0; padding-top: 0;}
.code-btn:where(:not(.dbf, .dbf *)){height: 22px; padding: 0 6px; font-weight: 400; font-size: 11.5px; letter-spacing: 0.01em;}
.gcal:where(:not(.dbf, .dbf *)){opacity: .7;}
.gcal:hover:where(:not(.dbf, .dbf *)){opacity: 1;}
.rows > li .gcal:where(:not(.dbf, .dbf *)){width: 28px; height: 28px;}

/* Today */
.home:where(:not(.dbf, .dbf *)){gap: var(--s5);}
.hero:where(:not(.dbf, .dbf *)){grid-template-columns: minmax(0, 1fr) minmax(300px, 400px); gap: var(--s5) var(--s7); padding: var(--s2) 0 var(--s3); background: transparent; border-radius: 0; align-items: end;}
.hero-meta:where(:not(.dbf, .dbf *)){margin: 0 0 var(--s3); color: var(--text-2); font-size: 14px; line-height: 20px;}
.hero h1:where(:not(.dbf, .dbf *)){font-size: 48px; line-height: 52px; letter-spacing: -0.03em; max-width: 14ch;}
.hero-rot:where(:not(.dbf, .dbf *)){margin-top: var(--s5); gap: var(--s3); max-width: 560px;}
.weeks:where(:not(.dbf, .dbf *)){display: flex; gap: 6px; max-width: 560px;}
.weeks i:where(:not(.dbf, .dbf *)){position: relative; flex: 1; height: 8px; border-radius: 999px; background: var(--sunk); overflow: hidden;}
.weeks i.full:where(:not(.dbf, .dbf *)){background: var(--accent);}
.weeks i b:where(:not(.dbf, .dbf *)){position: absolute; inset: 0 auto 0 0; border-radius: 999px; background: var(--accent);}
.hero-sub:where(:not(.dbf, .dbf *)){font-size: 14px; line-height: 21px; color: var(--text-2); max-width: 60ch;}
.hero-where:where(:not(.dbf, .dbf *))::before{content: " · ";}
.hero-sub .link:where(:not(.dbf, .dbf *)){font-size: 14px; color: var(--text);}
.hero-next:where(:not(.dbf, .dbf *)){align-self: end; gap: var(--s2); padding: var(--s4) var(--s4) var(--s2); border-radius: var(--r-card); background: var(--surface);}
.hero-next .label:where(:not(.dbf, .dbf *)){margin: 0 4px; color: var(--text-2); font-size: 13px; font-weight: 500;}
.hero-next .label + .day-list:where(:not(.dbf, .dbf *)){margin-top: 0;}
.hero-next .rows > li:where(:not(.dbf, .dbf *)){padding: 8px 4px;}
.hero-next .next-rows + .label:where(:not(.dbf, .dbf *)),.hero-next .next-rows + .hero-hint:where(:not(.dbf, .dbf *)){margin-top: var(--s2); padding-top: var(--s3); border-top: 1px solid var(--rule);}
.hero-hint:where(:not(.dbf, .dbf *)){margin: 0 4px var(--s2); padding: 0; border: 0; border-radius: 0; color: var(--text-2); font-size: 13px; line-height: 19px;}
.day-list li:where(:not(.dbf, .dbf *)){padding: 8px 4px; background: transparent; border: 0; border-top: 1px solid var(--rule); border-radius: 0;}
.day-list li:first-child:where(:not(.dbf, .dbf *)){border-top: 0;}
.dr-body .day-list li:where(:not(.dbf, .dbf *)){padding: 9px 12px; background: var(--surface); border-radius: var(--r-row); border-top: 0;}
.hero-hint .link:where(:not(.dbf, .dbf *)){font-size: 13px;}
.today-pair:where(:not(.dbf, .dbf *)){display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--gap); align-items: start;}
.today-pair > *:where(:not(.dbf, .dbf *)){min-width: 0;}
.today-pair > .dbf-today:first-child:where(:not(.dbf, .dbf *)){grid-column: 1 / -1;}
.coming .rows > li:where(:not(.dbf, .dbf *)){min-height: 48px;}
.overview > .panel:where(:not(.dbf, .dbf *)){grid-column: span 6;}

@media (max-width: 1100px){
.hero:where(:not(.dbf, .dbf *)){grid-template-columns: minmax(0, 1fr); gap: var(--s5);}
.hero-next:where(:not(.dbf, .dbf *)){align-self: stretch;}
.today-pair:where(:not(.dbf, .dbf *)){grid-template-columns: minmax(0, 1fr);}
.overview > .panel:where(:not(.dbf, .dbf *)){grid-column: 1 / -1;}
}
@media (max-width: 900px){
.hero:where(:not(.dbf, .dbf *)){padding: var(--s2) 0 0;}
.hero h1:where(:not(.dbf, .dbf *)){font-size: 38px; line-height: 42px;}
.subnav:where(:not(.dbf, .dbf *)){margin: 0 calc(-1 * max(16px, env(safe-area-inset-left, 0px))) var(--s4); padding: 0 max(16px, env(safe-area-inset-left, 0px));}
.topbar:where(:not(.dbf, .dbf *)){border-bottom: 1px solid var(--rule);}
}
@media (max-width: 640px){
.home:where(:not(.dbf, .dbf *)){gap: var(--s4);}
.hero:where(:not(.dbf, .dbf *)){gap: var(--s4);}
.hero h1:where(:not(.dbf, .dbf *)){font-size: 32px; line-height: 36px;}
.hero-where:where(:not(.dbf, .dbf *)){display: block;}
.hero-where:where(:not(.dbf, .dbf *))::before{content: none;}
.hero-rot:where(:not(.dbf, .dbf *)){margin-top: var(--s4);}
.panel:where(:not(.dbf, .dbf *)){padding: var(--s4);}
.rows > li:where(:not(.dbf, .dbf *)){padding: 10px 2px;}
}
@media (prefers-reduced-motion: reduce){
.me-chev:where(:not(.dbf, .dbf *)){transition: none;}
}


/* The floating New debrief button belongs to the Debrief pages. Today has its own big Start debrief button, and on
   Habits, Career or Rotations a lone "+" reads as "add one of these", so it stays away; the menu has New debrief everywhere. */
:root:not([data-space="debrief"]) .dbf .fab{display:none!important}
/* keyboard hints mean nothing on a phone */
@media (hover: none) and (pointer: coarse){ .dbf .hero-lbl .kbd-hint{display:none} }

/* Whatever is typed or pasted (a 2,000-character string, a URL, a name in another script) wraps inside its box instead of
   pushing the page sideways. break-word doesn't change how wide things want to be, so layouts don't shift. */
:where(.canvas, .drawer, .sheet, .pal):where(:not(.dbf, .dbf *)){overflow-wrap: break-word;}
.fact > *:where(:not(.dbf, .dbf *)){min-width: 0;}
.fact .what:where(:not(.dbf, .dbf *)){display: block;}

/* phones: a policy's title gets the row; its status ("Review overdue", "Effective Jun 2026") sits under it */
@media (max-width: 560px){
  .prow:where(:not(.dbf, .dbf *)){grid-template-columns: 52px minmax(0, 1fr); row-gap: 4px;}
  .prow .pr:where(:not(.dbf, .dbf *)){grid-column: 2; justify-content: flex-start; text-align: left; flex-wrap: wrap; white-space: normal;}
}
.install-how:where(:not(.dbf, .dbf *)){display: block; margin-top: 2px;}
.facts .fact .t:where(:not(.dbf, .dbf *)){display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;}

/* Habits: the wheel, the heat map and the Today card. Every colour is a token, redefined for light mode.
   Habit colours --hb-c0…c6 keep ≥3:1 against --surface and --raised in both modes (dark ≥5.8:1, light ≥3.9:1). */
:root{
  --hb-c0: #4fb3a5; --hb-c1: #7d9fe0; --hb-c2: #e3a33f; --hb-c3: #e57a9a; --hb-c4: #a98be6; --hb-c5: #8cc26b; --hb-c6: #ec8a5e;
  --hb-miss: #262b2d; --hb-future: transparent; --hb-future-line: #2b3134; --hb-pre: #1b1f20;
  --hb-h0: #23282a; --hb-h1: #1d4a43; --hb-h2: #2b7a6e; --hb-h3: #45a596; --hb-h4: #7fdccc;
  --hb-nudge-bg: var(--amber-wash); --hb-nudge-ink: var(--amber-text);
}
:root[data-mode="light"], :root[data-mode="system"][data-theme="light"]{
  --hb-c0: #1b7a6e; --hb-c1: #2d63c8; --hb-c2: #a8640a; --hb-c3: #c2416b; --hb-c4: #7a55c9; --hb-c5: #4b8a2a; --hb-c6: #c4502a;
  --hb-miss: #e1e5e3; --hb-future: transparent; --hb-future-line: #d5dad8; --hb-pre: #eef0ef;
  --hb-h0: #e3e7e5; --hb-h1: #bfe3dc; --hb-h2: #7cc3b7; --hb-h3: #2f9585; --hb-h4: #0f6a5f;
}
@media (prefers-color-scheme: light){
  :root[data-mode="system"]:not([data-theme="dark"]){
    --hb-c0: #1b7a6e; --hb-c1: #2d63c8; --hb-c2: #a8640a; --hb-c3: #c2416b; --hb-c4: #7a55c9; --hb-c5: #4b8a2a; --hb-c6: #c4502a;
    --hb-miss: #e1e5e3; --hb-future: transparent; --hb-future-line: #d5dad8; --hb-pre: #eef0ef;
    --hb-h0: #e3e7e5; --hb-h1: #bfe3dc; --hb-h2: #7cc3b7; --hb-h3: #2f9585; --hb-h4: #0f6a5f;
  }
}

.hb{display: grid; gap: var(--gap); min-width: 0;}
.hb .g12 > *, .hb .col > *{min-width: 0;}
/* two columns on desktop: Today (row 1) and How it's going (row 2) on the right; wheel, heat map and editors on the left across both rows */
.hb-cols{display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); grid-template-rows: auto 1fr; gap: var(--gap); align-items: start;}
.hb-cols > *{min-width: 0;}
.hb-left{grid-column: 1; grid-row: 1 / span 2; display: grid; gap: var(--gap); min-width: 0;}
.hb-todayp{grid-column: 2; grid-row: 1;}
.hb-progp{grid-column: 2; grid-row: 2;}
@media (max-width: 900px){
  .hb-cols{grid-template-columns: minmax(0, 1fr); grid-template-rows: none;}
  .hb-left, .hb-todayp, .hb-progp{grid-column: 1; grid-row: auto;}
}
.hb h3, .hb h4{margin: 0; font-size: 13px; line-height: 18px; font-weight: 600;}

/* ---------- Today rows ---------- */
.hb-today .panel-head{margin-bottom: 10px;}
.hb-head-acts{display: inline-flex; align-items: center; gap: 10px;}
.hb-rows{list-style: none; margin: 0; padding: 0; display: grid; gap: 6px;}
.hb-row{display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 4px 8px; padding: 4px 8px 4px 4px; border-radius: var(--r-row); background: var(--raised);}
.hb-tick{display: flex; align-items: center; gap: 12px; min-height: 48px; width: 100%; padding: 6px 8px; border: 0; border-radius: var(--r-row); background: transparent; color: var(--text); text-align: left; cursor: pointer; -webkit-tap-highlight-color: transparent;}
.hb-tick:hover{background: var(--sunk);}
.hb-box{flex: none; width: 26px; height: 26px; border-radius: 50%; border: 2px solid var(--hb-c); display: grid; place-items: center; transition: background 160ms var(--ease), transform 160ms var(--ease);}
.hb-box svg{width: 14px; height: 14px; fill: none; stroke: var(--surface); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; opacity: 0;}
.hb-row.is-done .hb-box{background: var(--hb-c);}
.hb-row.is-done .hb-box svg{opacity: 1;}
.hb-row.is-pop .hb-box{animation: hb-pop 420ms var(--ease);}
@keyframes hb-pop{0%{transform: scale(.7);} 55%{transform: scale(1.18);} 100%{transform: scale(1);}}
.hb-tt{display: grid; min-width: 0;}
.hb-tt b{font-weight: 500; font-size: 14px; line-height: 20px;}
.hb-tt small{color: var(--text-2); font-size: 12px; line-height: 16px; overflow-wrap: anywhere;}
.hb-row.is-done .hb-tt b{color: var(--text-2);}
.hb-tag{font-style: normal; font-size: 11px; font-weight: 500; padding: 0 6px; border-radius: var(--r-chip); background: var(--sunk); color: var(--muted); vertical-align: 1px;}
.hb-alt{height: 32px; padding: 0 10px; border: 1px solid var(--control); border-radius: 999px; background: transparent; color: var(--text-2); font-size: 12px; cursor: pointer; white-space: nowrap;}
.hb-alt:hover{color: var(--text); border-color: var(--muted);}
.hb-nudge{grid-column: 1 / -1; margin: 0 4px 6px 46px; padding: 8px 10px; border-radius: var(--r-chip); background: var(--hb-nudge-bg); color: var(--text); font-size: 12px; line-height: 17px;}
.hb-nudge b{color: var(--hb-nudge-ink); font-weight: 600;}
.hb-easy, .hb-easy-off{margin: 0 0 10px; font-size: 13px; line-height: 18px;}
.hb-easy{padding: 8px 12px; border-radius: var(--r-row); background: var(--teal-wash); color: var(--text);}
.hb-easy .link, .hb-easy-off .link{font-size: 12px; color: var(--text-2);}
.hb-all{margin: 0 0 10px; color: var(--teal-text); font-weight: 500;}
.hb-foot{margin: 10px 0 0;}
.hb-anki-st{color: var(--text-2); font-size: 12px; line-height: 17px;}
.hb-anki-st.is-off{color: var(--muted);}
.hb-invite-in{display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;}
.hb-invite h2{margin: 0 0 2px; font-size: 14px; font-weight: 600;}
.hb-invite .hint{margin: 0;}

/* ---------- the wheel ---------- */
.hb-mnav{display: inline-flex; gap: 6px;}
.hb-wheel-box{display: grid; place-items: center;}
.hb-wheel{width: 100%; max-width: 460px; height: auto; display: block; overflow: visible; touch-action: manipulation;}
.hb-hole{fill: var(--raised);}
.hb-cell{fill: var(--hb-miss); stroke: none; cursor: pointer; outline: none; transition: fill 160ms var(--ease); transform-box: fill-box; transform-origin: center;}
.hb-cell.is-done, .hb-cell.is-tiny{fill: var(--hb-c);}
.hb-cell.is-future{fill: var(--hb-future); stroke: var(--hb-future-line); stroke-width: .8; cursor: default;}
.hb-cell.is-before{fill: var(--hb-pre);}
.hb-cell.is-miss:hover{fill: color-mix(in srgb, var(--hb-c) 35%, var(--hb-miss));}
.hb-cell:focus-visible{stroke: var(--text); stroke-width: 2.5; paint-order: stroke;}
.hb-cell.is-pop{animation: hb-cell-pop 380ms var(--ease);}
@keyframes hb-cell-pop{0%{transform: scale(.82);} 60%{transform: scale(1.08);} 100%{transform: scale(1);}}
.hb-tiny-dot{fill: var(--surface); pointer-events: none;}
.hb-today-spoke{fill: none; stroke: var(--text); stroke-width: 1.6; pointer-events: none;}
.hb-day{fill: var(--muted); font: 500 9px var(--font); font-variant-numeric: tabular-nums;}
.hb-day.is-today{fill: var(--text); font-weight: 700;}
.hb-c-big{fill: var(--text); font: 500 20px var(--font); font-variant-numeric: tabular-nums;}
.hb-c-small{fill: var(--muted); font: 400 11px var(--font);}
.hb-legend{list-style: none; margin: 14px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 14px; counter-reset: ring;}
.hb-legend li{display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--text);}
.hb-legend li i, .hb-dot{width: 10px; height: 10px; border-radius: 50%; background: var(--hb-c); flex: none; display: inline-block;}
.hb-key{display: flex; flex-wrap: wrap; gap: 4px 14px; margin: 8px 0 0;}
.hb-key span{display: inline-flex; align-items: center; gap: 6px;}
.hb-key i{width: 12px; height: 12px; border-radius: 3px; display: inline-block; position: relative;}
.hb-key .k-done{background: var(--text-2);}
.hb-key .k-tiny{background: var(--text-2);}
.hb-key .k-tiny::after{content: ""; position: absolute; inset: 4px; border-radius: 50%; background: var(--surface);}
.hb-key .k-miss{background: var(--hb-miss);}
.hb-key .k-fut{border: 1px solid var(--hb-future-line);}

/* ---------- progress ---------- */
.hb-prog{list-style: none; margin: 0; padding: 0; display: grid; gap: 14px;}
.hb-prog > li{display: grid; gap: 8px; padding-bottom: 14px; border-bottom: 1px solid var(--rule);}
.hb-prog > li:last-child{border-bottom: 0; padding-bottom: 0;}
.hb-prog-h{display: flex; align-items: center; gap: 8px;}
.hb-prog-h b{font-weight: 500;}
.hb-area{margin-left: auto; color: var(--muted); font-size: 12px;}
.hb-prog-n{display: flex; flex-wrap: wrap; gap: 4px 16px;}
.hb-prog-n b{font-weight: 500; font-size: 16px;}
.hb-prog-n small{color: var(--muted); font-size: 12px;}
.hb-strip{display: grid; grid-template-columns: repeat(28, minmax(0, 1fr)); gap: 2px; max-width: 360px;}
.hb-strip i{height: 10px; border-radius: 2px; background: var(--hb-miss);}
.hb-strip i.on{background: var(--hb-c);}
.hb-strip i.pre{background: var(--hb-pre);}
.hb-strip i.now{background: transparent; box-shadow: inset 0 0 0 1px var(--hb-future-line);}
.hb-offer{display: grid; gap: 8px; padding: 10px 12px; border-radius: var(--r-row); background: var(--teal-wash);}
.hb-offer.is-down{background: var(--sunk);}
.hb-offer p{margin: 0; font-size: 13px; line-height: 18px;}
.hb-offer-acts{display: flex; flex-wrap: wrap; gap: 6px;}
.hb-why-score{margin: 14px 0 0;}

/* ---------- heat map ---------- */
.hb-heat-wrap{max-width: 560px;}
.hb-heat-m, .hb-heat{display: grid; grid-template-columns: repeat(26, minmax(0, 1fr)); gap: 3px;}
.hb-heat{grid-template-rows: repeat(7, auto); grid-auto-flow: column;}
.hb-heat-m span{font-size: 11px; line-height: 16px; color: var(--muted); white-space: nowrap; overflow: visible;}
.hb-hm{display: block; aspect-ratio: 1; border-radius: 3px; background: var(--hb-h0);}
.hb-hm.l1{background: var(--hb-h1);} .hb-hm.l2{background: var(--hb-h2);} .hb-hm.l3{background: var(--hb-h3);} .hb-hm.l4{background: var(--hb-h4);}
.hb-hm.is-fut{background: transparent;}
.hb-hlegend{display: flex; align-items: center; flex-wrap: wrap; gap: 4px; margin: 10px 0 0;}
.hb-hlegend span:first-child{margin-right: 6px;}
.hb-hlegend i{width: 12px; height: 12px;}

/* ---------- setup and editor ---------- */
.hb-setup{display: grid; gap: 14px;}
.hb-setup h2{margin: 0; font-size: 18px; line-height: 24px; font-weight: 500;}
.hb-why{max-width: 560px;}
.hb-sub{margin-top: 6px !important;}
.hb-setup > .hint, .hb-addp > .hint{margin: -8px 0 0;}
.hb-addp{display: grid; gap: 12px;}
.hb-addp .panel-head{margin-bottom: 0;}
.hb-area-set{border: 0; margin: 0; padding: 0; min-width: 0;}
.hb-area-set legend{padding: 0; margin-bottom: 6px; color: var(--muted); font-size: 12px; font-weight: 500;}
.hb-chips{display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 8px;}
.hb-chip{display: grid; gap: 2px; padding: 10px 12px; min-height: 48px; border: 1px solid var(--control); border-radius: var(--r-row); background: var(--ground); color: var(--text); text-align: left; cursor: pointer; transition: border-color 150ms var(--ease), background 150ms var(--ease);}
.hb-chip b{font-weight: 500;}
.hb-chip small{color: var(--muted); font-size: 12px; line-height: 16px;}
.hb-chip:hover{border-color: var(--muted);}
.hb-chip[aria-pressed="true"]{border-color: var(--teal); background: var(--teal-wash);}
.hb-chip[disabled]{opacity: .45; cursor: not-allowed;}
.hb-setup-go{display: flex; align-items: center; gap: 12px; flex-wrap: wrap;}
.hb-custom{display: grid; gap: 10px; padding-top: 14px; border-top: 1px solid var(--rule);}
.hb-custom .btn{justify-self: start;}
.hb-grid{display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px;}
.hb-grid2{display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px;}
.hb textarea{height: auto; padding: 10px 14px; resize: vertical; line-height: 20px;}
.hb-eds{display: grid; gap: 8px;}
.hb-ed{border-radius: var(--r-row); background: var(--raised);}
.hb-ed summary{display: flex; align-items: center; gap: 10px; flex-wrap: wrap; min-height: 48px; padding: 10px 14px; cursor: pointer; list-style: none; border-radius: var(--r-row);}
.hb-ed summary::-webkit-details-marker{display: none;}
.hb-ed summary b{font-weight: 500;}
.hb-ed summary .hint{margin-left: auto;}
.hb-ed-in{display: grid; gap: 14px; padding: 4px 14px 14px;}
.hb-colors{display: flex; gap: 8px; flex-wrap: wrap; align-items: center; border: 0; margin: 0; padding: 0;}
.hb-colors legend{float: left; margin-right: 8px; font-weight: 500; font-size: 13px;}
.hb-sw{position: relative; display: inline-grid; place-items: center; width: 32px; height: 32px; cursor: pointer;}
.hb-sw input{position: absolute; inset: 0; margin: 0; opacity: 0; cursor: pointer;}
.hb-sw i{width: 22px; height: 22px; border-radius: 50%; background: var(--hb-c); box-shadow: 0 0 0 2px var(--raised);}
.hb-sw input:checked + i, .hb-sw input:checked ~ i{box-shadow: 0 0 0 2px var(--raised), 0 0 0 4px var(--text);}
.hb-sw input:focus-visible ~ i{outline: 2px solid var(--accent); outline-offset: 4px;}
.hb-anki-ed{display: grid; gap: 10px; max-width: 420px;}
.hb-check{display: inline-flex; align-items: center; gap: 8px; font-size: 13px; cursor: pointer;}
.hb-check input{width: 16px; height: 16px;}
.hb-hist ul{margin: 6px 0 0; padding-left: 18px; color: var(--text-2); font-size: 12px; line-height: 18px;}
.hb-ed-acts{display: flex; flex-wrap: wrap; align-items: center; gap: 6px;}
.hb-del-q{font-size: 13px; color: var(--text); margin-left: auto;}
.hb-anki-line{margin: 0 0 10px;}
.hb-guide summary{cursor: pointer; font-size: 13px; font-weight: 500;}
.hb-guide ol{margin: 10px 0 0; padding-left: 20px; display: grid; gap: 6px; color: var(--text-2); font-size: 13px; line-height: 19px; max-width: 72ch;}
.hb-guide code{font: 12px var(--mono); padding: 1px 5px; border-radius: 4px; background: var(--sunk); color: var(--text); overflow-wrap: anywhere;}
.hb-guide .hint{margin: 10px 0 0; max-width: 72ch;}

@media (max-width: 640px){
  .hb-row{grid-template-columns: minmax(0, 1fr); padding: 4px;}
  .hb-alt{justify-self: start; margin: 0 0 6px 46px;}
  .hb-nudge{margin-left: 4px;}
  .hb-heat-m, .hb-heat{gap: 2px;}
  .hb-heat-m span{font-size: 9px;}
  .hb-wheel-p{padding: 16px 12px;}
  .hb-ed summary .hint{margin-left: 0; flex-basis: 100%;}
}
@media (prefers-reduced-motion: reduce){
  .hb-row.is-pop .hb-box, .hb-cell.is-pop{animation: none;}
  .hb-box, .hb-cell{transition: none;}
}

/* calm pass: Today's habit rows sit on hairlines like every other list; the 2-minute switch stays beside the tick */
.hb-rows{gap: 0;}
.hb-row{padding: 2px 0; background: transparent; border-radius: 0; border-top: 1px solid var(--rule);}
.hb-row:first-child{border-top: 0;}
.hb-tick{padding: 6px 4px;}
.hb-tick:hover{background: var(--raised);}
.hb-alt{height: 30px; border-color: var(--border);}
.hb-nudge{margin: 0 0 8px 42px; background: transparent; padding: 0; color: var(--text-2);}
.hb-easy-off{margin: 10px 0 0;}
.hb-easy{margin: 0 0 10px;}
@media (max-width: 640px){
  .hb-row{grid-template-columns: minmax(0, 1fr) auto; padding: 2px 0;}
  .hb-alt{justify-self: end; margin: 0; padding: 0 8px;}
  .hb-nudge{margin-left: 42px;}
}

/* Career (career.js). Built only from the shared tokens in styles.css, so dark and light both follow the student's choice. */
.cr{display: grid; gap: var(--gap); min-width: 0;}
.cr-grid{display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--gap); align-items: start;}
.cr-col{display: grid; gap: var(--gap); min-width: 0;}
.cr-btns{display: inline-flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end;}
.cr .panel-head h2[tabindex="-1"]:focus{outline: none;}

/* import */
.cr-dz.over{border-color: var(--teal); background: var(--teal-wash);}
.cr-dz:focus-within{outline: 2px solid var(--accent); outline-offset: 2px;}
.cr-privacy{max-width: 60ch;}
.cr-err{margin: 10px 0 0; color: var(--negative); font-size: 13px;}
.cr-progress{margin: 10px 0 0; color: var(--text-2); font-size: 13px; display: flex; align-items: center; gap: 8px;}
.cr-progress::before{content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--accent); flex: none; animation: cr-pulse 1.2s var(--ease) infinite;}
@keyframes cr-pulse{50%{opacity: .3;}}
.cr-bar{display: flex; align-items: center; justify-content: space-between; gap: 10px 16px; flex-wrap: wrap; padding: 10px 10px 10px 16px; border: 1px solid var(--border); border-radius: var(--r-card); font-size: 13px; color: var(--text-2);}
.cr-bar-t{display: inline-flex; align-items: center; gap: 10px; min-width: 0;}
.cr-bar-t > span{min-width: 0; overflow-wrap: anywhere;}
.cr-bar b{color: var(--text); font-weight: 500;}
.cr-bar svg{width: 18px; height: 18px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round;}
.cr-note{margin: 0; color: var(--text-2); font-size: 13px;}

/* what makes you you */
.cr-headline{margin: 0 0 14px; font-size: 20px; line-height: 27px; font-weight: 500; letter-spacing: -0.01em; color: var(--text);}
.cr-unique{margin: 0 0 18px; padding: 0; list-style: none; counter-reset: cru; display: grid; gap: 12px;}
.cr-unique > li{counter-increment: cru; position: relative; padding-left: 28px;}
.cr-unique > li::before{content: counter(cru); position: absolute; left: 0; top: 1px; width: 19px; height: 19px; border-radius: 50%; background: var(--sunk); color: var(--text-2); font-size: 11px; line-height: 19px; text-align: center; font-weight: 600;}
.cr-unique p{margin: 0; line-height: 21px;}
.cr-ev{margin: 4px 0 0; color: var(--muted); font-size: 12px; line-height: 17px; overflow-wrap: anywhere;}
.cr-ev em{font-style: normal; color: var(--warning);}
.cr-two{display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 20px;}
.cr-two h3{margin: 0 0 8px;}
.cr-chips{list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; align-items: flex-start;}
.cr-chips > li{max-width: 100%;}
.cr-chip{border: 1px solid var(--control); border-radius: 16px; background: var(--ground); max-width: 100%;}
.cr-chip summary{list-style: none; cursor: pointer; padding: 5px 12px; font-size: 13px; line-height: 18px; color: var(--text); border-radius: 16px;}
.cr-chip summary::-webkit-details-marker{display: none;}
.cr-chip summary:hover{background: var(--sunk);}
.cr-chip.unv summary::after{content: " ?"; color: var(--warning);}
.cr-chip[open]{background: var(--raised); border-color: var(--border);}
.cr-chip[open] summary{font-weight: 500;}
.cr-chip .cr-ev{margin: 0; padding: 0 12px 8px;}
.cr-themes{margin: 14px 0 0; display: flex; flex-wrap: wrap; gap: 6px; align-items: center;}
.cr-themes .label{margin-right: 4px;}

/* network */
.cr-net .panel-head .aside{margin-right: auto;}
.cr-gh{margin: 18px 0 8px; font-size: 13px; font-weight: 500; color: var(--text-2); display: flex; align-items: center; gap: 8px;}
.cr-gh:first-of-type{margin-top: 4px;}
.cr-people{list-style: none; margin: 0; padding: 0; display: grid; gap: 8px;}
.cr-p{display: grid; gap: 10px; padding: 12px 14px; background: var(--raised); border: 1px solid var(--border); border-radius: var(--r-row); min-width: 0;}
.cr-p.editing{padding: 14px;}
.cr-p-main{min-width: 0; display: grid; gap: 3px;}
.cr-p-t{display: flex; align-items: center; gap: 8px; flex-wrap: wrap;}
.cr-p-t b{font-weight: 500; overflow-wrap: anywhere;}
.cr-p small{color: var(--muted); font-size: 12px; line-height: 16px; overflow-wrap: anywhere;}
.cr-p-note{margin: 4px 0 0; font-size: 13px; line-height: 19px; color: var(--text-2); overflow-wrap: anywhere;}
.cr-p-specs{display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px;}
.cr-tag{height: 22px; padding: 0 8px; border: 0; border-radius: var(--r-chip); background: var(--sunk); color: var(--text-2); font-size: 12px; cursor: pointer;}
.cr-tag:hover{color: var(--text);}
.cr-p-acts{display: flex; flex-wrap: wrap; gap: 4px; margin-left: -4px;}
.cr-p-acts .btn.quiet{padding: 0 8px;}
.cr-temp{display: inline-flex; align-items: center; height: 20px; padding: 0 8px; border-radius: 999px; font-size: 11px; font-weight: 600; flex: none;}
.cr-temp.warm{background: var(--pill-positive-bg); color: var(--pill-positive-ink);}
.cr-temp.cold, .cr-temp.cool{background: var(--pill-neutral-bg); color: var(--pill-neutral-ink);}
.cr-new{margin-bottom: 12px; padding: 14px; border: 1px solid var(--border); border-radius: var(--r-row); background: var(--raised);}
.cr-form-g{display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px;}
.cr-span{grid-column: 1 / -1;}
.cr-warmth{border: 0; margin: 0; padding: 0; min-width: 0;}
.cr-warmth legend{padding: 0; margin-bottom: 6px;}
.cr-radio{position: relative; display: inline-flex;}
.cr-radio input{position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer;}
.cr-radio span{display: inline-flex; align-items: center; height: 30px; padding: 0 12px; border-radius: 999px; color: var(--muted); font-weight: 500; font-size: 13px;}
.cr-radio input:checked + span{background: var(--ground); color: var(--text);}
.cr-radio input:focus-visible + span{outline: 2px solid var(--accent); outline-offset: 1px;}
.cr-draft{display: grid; gap: 8px; padding-top: 10px; border-top: 1px solid var(--rule);}
.cr-draft textarea{min-height: 180px; font-size: 13px;}
.cr-draft-foot{display: flex; justify-content: space-between; align-items: center; gap: 8px 12px; flex-wrap: wrap;}

/* specialty explorer */
.cr-pick{display: grid; gap: 10px;}
.cr-quick{display: flex; flex-wrap: wrap; gap: 6px;}
.cr-quick .chip{max-width: 100%; overflow: hidden; text-overflow: ellipsis;}
.cr-when{margin: 16px 0 0; display: flex; align-items: baseline; gap: 10px; padding: 12px 14px; border-radius: var(--r-row); background: var(--raised); border: 1px solid var(--border); font-size: 14px; line-height: 20px; font-weight: 500;}
.cr-when .dot{transform: translateY(-1px);}
.cr-why{margin: 12px 0 0; color: var(--text-2); font-size: 13px; line-height: 19px;}
.cr-spec .cr-two{margin-top: 16px;}
.cr-bul{margin: 0; padding: 0; list-style: none; display: grid; gap: 6px;}
.cr-bul li{position: relative; padding-left: 16px; font-size: 13px; line-height: 19px; color: var(--text-2); overflow-wrap: anywhere;}
.cr-bul li::before{content: ""; position: absolute; left: 2px; top: 7px; width: 6px; height: 6px; border-radius: 50%;}
.cr-bul.pos li::before{background: var(--teal);}
.cr-bul.gap li::before{background: transparent; box-shadow: inset 0 0 0 1.5px var(--amber);}
.cr-mini{list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 6px;}
.cr-mini li{display: flex; justify-content: space-between; align-items: center; gap: 10px; font-size: 13px; min-width: 0;}
.cr-mini li > span:first-child{min-width: 0; overflow-wrap: anywhere;}
.cr-mini b{font-weight: 500;}
.cr-mini small{color: var(--muted);}
.cr-acts{margin: 8px 0 0; padding: 0; list-style: none; counter-reset: cra; display: grid; gap: 8px;}
.cr-acts > li{counter-increment: cra; display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; gap: 8px 10px; align-items: center; padding: 10px 12px; border-radius: var(--r-row); background: var(--raised); border: 1px solid var(--border); font-size: 13px; line-height: 19px;}
.cr-acts > li::before{content: counter(cra); width: 22px; height: 22px; border-radius: 50%; background: var(--accent-soft); color: var(--accent-ink); font-weight: 600; font-size: 12px; display: grid; place-items: center;}
.cr-acts .cr-draft{grid-column: 1 / -1;}

/* how competitive am I */
.cr-comp{margin-top: 4px; padding-top: 4px;}
.cr-comp .hint b{color: var(--text); font-weight: 500;}
.cr-bm-head{display: flex; justify-content: space-between; align-items: baseline; gap: 6px 12px; flex-wrap: wrap; margin-top: 14px;}
.cr-bm-src{margin-top: 10px;}
.cr-mt{margin-top: 12px; display: grid; gap: 6px;}
.cr-m{display: grid; grid-template-columns: minmax(0, 1.5fr) 84px 96px minmax(0, 1.4fr); gap: 6px 10px; align-items: center; padding: 8px 10px; border-radius: var(--r-row); background: var(--raised); border: 1px solid var(--border);}
.cr-m-h{background: transparent; border-color: transparent; padding-top: 0; padding-bottom: 0; color: var(--muted); font-size: 12px;}
.cr-m-l{font-size: 13px; line-height: 18px; min-width: 0;}
.cr-m-l small{display: block; color: var(--muted); font-size: 11px; line-height: 15px;}
.cr-m-c{display: grid; gap: 2px; min-width: 0;}
.cr-m-c input, .cr-m-c select{height: 32px; padding: 0 8px; font-size: 13px;}
.cr-m-cap{display: none; color: var(--muted); font-size: 11px;}
.cr-m-r{display: grid; gap: 2px; min-width: 0; justify-items: start;}
.cr-m-r small{font-size: 12px; line-height: 16px; color: var(--text-2);}
.cr-m-r small.muted{color: var(--muted);}
.cr-st{display: inline-flex; align-items: center; height: 20px; padding: 0 8px; border-radius: 999px; font-size: 11px; font-weight: 600;}
.cr-st.above{background: var(--pill-positive-bg); color: var(--pill-positive-ink);}
.cr-st.near{background: var(--pill-neutral-bg); color: var(--pill-neutral-ink);}
.cr-st.below{background: var(--pill-warning-bg); color: var(--pill-warning-ink);}

/* Today */
.cr-today{display: flex; align-items: center; justify-content: space-between; gap: 10px 16px; flex-wrap: wrap; padding: 12px 12px 12px 18px; border-radius: var(--r-card); border: 1px solid var(--border); color: var(--text-2); font-size: 13px; line-height: 19px;}
.cr-today p{margin: 0; min-width: 0; flex: 1 1 260px;}
.cr-today b{color: var(--text); font-weight: 500;}


/* career tabs: Overview | Mentors, styled like the section tabs */
.cr-tabs{margin: -4px 0 0;}
.cr-tabs .count-chip{margin-left: 6px;}

/* mentors */
.mt-grid{display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 6fr); gap: var(--gap); align-items: start;}
.mt-grid > .panel{min-width: 0;}
.mt .panel-head h2 .count-chip{margin-left: 6px;}
.mt-privacy{max-width: 62ch; flex: 1 1 260px;}
.mt-check{display: inline-flex; align-items: center; gap: 8px; margin-top: 4px; font-size: 13px; color: var(--text-2); cursor: pointer;}
.mt-check input{width: 16px; height: 16px; margin: 0; accent-color: var(--accent);}
.mt-fast, .mt-imp{margin: 0 0 var(--s4, 16px); padding: 0 0 var(--s4, 16px); border-bottom: 1px solid var(--rule);}
.mt-fast .panel-foot, .mt-imp .panel-foot{margin-top: 10px;}
.mt-dz.over{border-color: var(--teal); background: var(--teal-wash);}
.mt-schema{margin-top: 10px;}
.mt-schema summary{cursor: pointer; font-size: 13px; color: var(--text-2); width: fit-content;}
.mt-schema p{margin: 6px 0 0; overflow-wrap: anywhere;}
#mt-paste{font-family: var(--mono); font-size: 12px; min-height: 96px;}

/* search and tag filter */
.mt-filter{display: grid; gap: 10px; margin-bottom: 4px;}
.mt-filter input[type="search"]{border-radius: 999px;}
.mt-tagbar{display: flex; flex-wrap: wrap; gap: 6px;}
.mt-tagbar .chip{height: 28px; padding: 0 11px; font-size: 12.5px; max-width: 100%; overflow: hidden; text-overflow: ellipsis;}

/* rolodex rows: hairlines, no boxes */
.mt-list{list-style: none; margin: 8px 0 0; padding: 0;}
.mt-row{display: grid; gap: 4px; padding: 14px 2px; border-top: 1px solid var(--rule); min-width: 0;}
.mt-row:first-child{border-top: 0;}
.mt-row.editing{padding: 16px 2px;}
.mt-row-t, .mt-m-t{display: flex; align-items: baseline; gap: 6px 10px; flex-wrap: wrap; min-width: 0;}
.mt-row-t b, .mt-m-t b{font-weight: 500; font-size: 14px; overflow-wrap: anywhere;}
.mt-meta{margin: 0; color: var(--text-2); font-size: 13px; line-height: 18px; overflow-wrap: anywhere;}
.mt-w{display: inline-flex; align-items: center; gap: 5px; color: var(--text-2); font-size: 12px;}
.mt-w i{width: 7px; height: 7px; border-radius: 50%; background: var(--muted);}
.mt-w.warm i{background: var(--teal);}
.mt-w.cool i{background: var(--amber);}
.mt-w.cold i{background: transparent; box-shadow: inset 0 0 0 1.5px var(--muted);}
.mt-tags{display: flex; flex-wrap: wrap; gap: 2px 10px; margin-top: 2px;}
.mt-tag{border: 0; padding: 2px 0; background: none; color: var(--text-2); font: inherit; font-size: 12px; line-height: 16px; cursor: pointer; text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 3px; overflow-wrap: anywhere; text-align: left;}
.mt-tag:hover{color: var(--text); text-decoration-color: currentColor;}
.mt-tag[aria-pressed="true"]{color: var(--text); font-weight: 500; text-decoration-color: currentColor;}
.mt-tag:focus-visible{outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 3px;}
.mt-exp1{margin: 2px 0 0; color: var(--text-2); font-size: 13px; line-height: 19px; overflow-wrap: anywhere;}
.mt-more{margin-top: 2px;}
.mt-more > summary{cursor: pointer; width: fit-content; font-size: 12.5px; color: var(--text-2); padding: 2px 0; border-radius: 4px;}
.mt-more > summary:hover{color: var(--text);}
.mt-more[open] > summary{margin-bottom: 8px;}
.mt-dl{margin: 8px 0 0; display: grid; gap: 2px 0;}
.mt-dl dt{margin-top: 6px; font-size: 12px; color: var(--text-2); font-weight: 500;}
.mt-dl dd{margin: 0; font-size: 13px; line-height: 19px; overflow-wrap: anywhere;}
.mt-priv{font-weight: 400; color: var(--text-2);}
.mt-priv::before{content: "· ";}
.mt-links{display: flex; flex-wrap: wrap; gap: 4px 14px; margin: 8px 0 0; font-size: 13px;}
.mt-foot{display: flex; justify-content: space-between; align-items: center; gap: 4px 10px; flex-wrap: wrap; margin-top: 2px;}
.mt-foot small{color: var(--text-2); font-size: 12px;}
.mt-acts{display: inline-flex; gap: 2px; margin-right: -8px;}
.mt-acts .btn.quiet{padding: 0 8px; height: 30px;}

/* who should I talk to */
.mt-res{margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--rule);}
.mt-res-h{margin: 0; font-size: 15px; line-height: 22px; font-weight: 500; overflow-wrap: anywhere;}
.mt-res-h:focus{outline: none;}
.mt-res-h:focus-visible{outline: 2px solid var(--accent); outline-offset: 2px;}
.mt-res-src{margin: 2px 0 0; color: var(--text-2); font-size: 12.5px; line-height: 18px;}
.mt-res .cr-note{margin-top: 8px;}
.mt-warn, .mt-flag{margin: 8px 0 0; font-size: 13px; line-height: 19px; color: var(--warning);}
.mt-matches{list-style: none; margin: 10px 0 0; padding: 0;}
.mt-m{display: grid; gap: 4px; padding: 14px 0; border-top: 1px solid var(--rule); min-width: 0;}
.mt-m:first-child{border-top: 0;}
.mt-rank{flex: none; width: 20px; color: var(--text-2); font-size: 13px; font-variant-numeric: tabular-nums;}
.mt-m > *:not(.mt-m-t){margin-left: 30px;}
.mt-why{margin: 2px 0 0; font-size: 14px; line-height: 21px; overflow-wrap: anywhere;}
.mt-ev{list-style: none; margin: 2px 0 0; padding: 0; display: grid; gap: 2px;}
.mt-ev li{color: var(--text-2); font-size: 12.5px; line-height: 18px; overflow-wrap: anywhere;}
.mt-ev em{font-style: normal; color: var(--warning);}
.mt-score{margin: 0; color: var(--text-2); font-size: 12.5px; line-height: 18px; overflow-wrap: anywhere;}
.mt-ask{margin: 4px 0 0; font-size: 13px; line-height: 19px; color: var(--text); overflow-wrap: anywhere;}
.mt-ask b{font-weight: 500;}
.mt-m-acts{display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; margin-top: 6px;}
.mt-m-acts small{font-size: 12px; color: var(--text-2);}
.mt-m .cr-draft{margin-top: 6px;}
.mt-order, .mt-gaps{margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--rule);}
.mt-order h4, .mt-gaps h4{margin: 0 0 8px;}
.mt-steps{margin: 0; padding-left: 20px; display: grid; gap: 4px; font-size: 13px; line-height: 19px; color: var(--text-2);}
.mt-steps li{overflow-wrap: anywhere;}
.mt-past{margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--rule);}
.mt-past-h{display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 4px;}
.mt-past-h .label{margin: 0;}
.mt-past-l{list-style: none; margin: 0; padding: 0;}
.mt-past-l li + li{border-top: 1px solid var(--rule);}
.mt-past-b{display: grid; gap: 2px; width: 100%; padding: 9px 6px; border: 0; border-radius: var(--r-row); background: transparent; color: var(--text); font: inherit; text-align: left; cursor: pointer; min-width: 0;}
.mt-past-b:hover{background: var(--sunk);}
.mt-past-b[aria-current="true"]{background: var(--sunk);}
.mt-past-b span{font-size: 13px; line-height: 19px; overflow-wrap: anywhere;}
.mt-past-b small{font-size: 12px; color: var(--text-2); overflow-wrap: anywhere;}
.mt-past-b:focus-visible{outline: 2px solid var(--accent); outline-offset: -2px;}

@media (max-width: 1100px){
  .cr-grid, .mt-grid{grid-template-columns: minmax(0, 1fr);}
}
@media (max-width: 640px){
  .cr-two, .cr-form-g{grid-template-columns: minmax(0, 1fr);}
  .cr-headline{font-size: 18px; line-height: 25px;}
  .cr-m{grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);}
  .cr-m-h{display: none;}
  .cr-m-l, .cr-m-r{grid-column: 1 / -1;}
  .cr-m-cap{display: block;}
  .cr-acts > li{grid-template-columns: 24px minmax(0, 1fr);}
  .cr-acts > li > .btn{grid-column: 2; justify-self: start;}
  .cr-bar .cr-btns{justify-content: flex-start;}
}
@media (max-width: 640px){
  .mt-m > *:not(.mt-m-t){margin-left: 0;}
  .mt-acts{margin-right: 0;}
}
@media (prefers-reduced-motion: reduce){
  .cr-progress::before{animation: none;}
  .mt-tag{transition: none;}
}

/* Connect (connect.js): the Connections page. Built only from the shared tokens in styles.css, so dark and light both
   follow the student's choice. Prefix cn-. Thin rules, one status line per source, no badges. */
.cn{display: grid; gap: var(--gap); min-width: 0;}
.cn-cards{display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--gap); align-items: start;}
.cn-card{display: grid; gap: 12px; align-content: start; min-width: 0;}
.cn-card .panel-head{margin-bottom: 0;}
.cn-card .panel-head h2{margin: 0;}
.cn-h{display: inline-flex; align-items: center; gap: 8px; min-width: 0;}
.cn-h svg{width: 16px; height: 16px; flex: none; fill: none; stroke: var(--text-2); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round;}
.cn-card > .hint{margin: 0; max-width: 60ch;}
.cn-card p{margin: 0;}

/* status: one line, colour only where it means something */
.cn-status{margin: 0; color: var(--text-2); font-size: 13px; line-height: 19px; overflow-wrap: anywhere;}
.cn-status.is-off{color: var(--muted);}
.cn-status.is-attn{color: var(--warning);}
.cn-status.is-busy{color: var(--text-2);}
@media (prefers-reduced-motion: no-preference){
  .cn-status.is-busy::before{content: ""; display: inline-block; width: 7px; height: 7px; margin: 0 7px 1px 0; border-radius: 50%; background: var(--accent); animation: cn-pulse 1.2s var(--ease) infinite;}
  @keyframes cn-pulse{50%{opacity: .3;}}
}
.cn-acts{display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px;}
.cn-acts > .hint{flex: 1 1 200px; min-width: 0;}
.cn-confirm{color: var(--text-2); font-size: 13px; line-height: 18px; flex: 1 1 100%; max-width: 48ch;}
.cn-or{display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: 12px; line-height: 16px; margin-top: 4px;}
.cn-or::before,.cn-or::after{content: ""; flex: 1; height: 1px; background: var(--rule);}
.cn-or span{flex: none; max-width: 100%; text-align: center;}

/* linked feeds: a thin rule per row, no boxes */
.cn-feeds{list-style: none; margin: 0; padding: 0; display: grid;}
.cn-feeds > li{display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 12px; padding: 10px 0; border-top: 1px solid var(--rule); min-width: 0;}
.cn-feeds > li:last-child{border-bottom: 1px solid var(--rule);}
.cn-feed-main{min-width: 0; flex: 1 1 220px; display: grid; gap: 2px;}
.cn-feed-name{font-weight: 500; line-height: 19px; overflow-wrap: anywhere;}
.cn-feed-acts{display: flex; flex-wrap: wrap; align-items: center; gap: 4px; margin-left: -6px;}

/* add a link */
.cn-add{display: grid; gap: 6px; min-width: 0;}
.cn-add-l{font-weight: 500; font-size: 13px; line-height: 18px;}
.cn-add-row{display: flex; gap: 8px; min-width: 0;}
.cn-add-row input{flex: 1 1 auto; min-width: 0; width: auto; height: var(--ctl); padding: 0 14px; border: 1px solid var(--control); border-radius: var(--r-row); background: var(--ground); font-size: 13px;}
.cn-add-row input::placeholder{color: var(--muted);}
.cn-add-row .btn{flex: none; height: var(--ctl);}
.cn-err{margin: 0; color: var(--warning); font-size: 13px; line-height: 18px;}
.cn-note{margin: 0; color: var(--text-2); font-size: 13px; line-height: 18px;}

/* suggested deadlines */
.cn-domains{max-width: 420px;}
.cn-domains input{height: var(--ctl); padding: 0 14px; border: 1px solid var(--control); border-radius: var(--r-row); background: var(--ground); width: 100%; min-width: 0; font-size: 13px;}
.cn-sugg{list-style: none; margin: 0; padding: 0; display: grid;}
.cn-sugg > li{display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 12px; padding: 10px 0; border-top: 1px solid var(--rule); min-width: 0;}
.cn-sugg > li:last-child{border-bottom: 1px solid var(--rule);}
.cn-sugg-main{display: flex; gap: 12px; align-items: baseline; min-width: 0; flex: 1 1 240px;}
.cn-sugg-when{flex: none; width: 54px; font-weight: 500; font-size: 13px; color: var(--text);}
.cn-sugg-t{min-width: 0; display: grid; gap: 2px;}
.cn-sugg-t b{font-weight: 500; line-height: 19px; overflow-wrap: anywhere;}
.cn-sugg-t small{color: var(--muted); font-size: 12px; line-height: 16px; overflow-wrap: anywhere;}
.cn-sugg-t small a{color: var(--text-2); text-underline-offset: 3px; text-decoration-color: var(--control);}
.cn-sugg-t small a:hover{color: var(--text); text-decoration-color: var(--text);}
.cn-sugg-acts{display: flex; gap: 4px; align-items: center; flex: none;}

/* already connected elsewhere */
.cn-else{list-style: none; margin: 0; padding: 0; display: grid;}
.cn-else > li{border-top: 1px solid var(--rule);}
.cn-else > li:last-child{border-bottom: 1px solid var(--rule);}
.cn-else a{display: grid; gap: 2px; padding: 10px 0; text-decoration: none; color: inherit;}
.cn-else a b{font-weight: 500; line-height: 19px;}
.cn-else a small{color: var(--muted); font-size: 12px; line-height: 16px;}
.cn-else a:hover b{text-decoration: underline; text-decoration-color: var(--control); text-underline-offset: 3px;}

/* foot and the artifact note */
.cn-foot{margin: 0; display: grid; gap: 6px; color: var(--text-2); font-size: 13px; line-height: 18px;}
.cn-check{display: inline-flex; align-items: flex-start; gap: 8px; cursor: pointer;}
.cn-check input{margin: 2px 0 0; flex: none;}
.cn-needs-app{display: grid; gap: 8px;}
.cn-needs-app h2{margin: 0; font-size: 16px; line-height: 22px; font-weight: 600;}
.cn-needs-app p{margin: 0; max-width: 64ch; color: var(--text-2);}

@media (max-width: 900px){
  .cn-cards{grid-template-columns: minmax(0, 1fr);}
}
@media (max-width: 640px){
  .cn-add-row{flex-wrap: wrap;}
  .cn-add-row input{flex-basis: 100%;}
  .cn-sugg-main{flex-basis: 100%;}
  .cn-feed-main{flex-basis: 100%;}
}

/* SOURCE OF TRUTH. Originally generated once by tools/port_debrief.py from handoff/perl/, then edited by hand; edit this file directly. The port script is retired and refuses to run, so nothing regenerates or overwrites it. */
/* Debrief space: Perl's components on the merged dark palette. Gold is retired: progress and completion take the Debrief accent.
   Coral becomes the shared attention amber; red stays for what's wrong. Rotation tints are low-chroma so nothing shouts. */
.dbf{
  --bg:#0f1112; --surface:#161a1b; --surface-2:#1d2123; --hover:#252a2c;
  --border:#2b3134; --border-2:#3c4346; --line:#23282a;
  --ink:#eceeee; --ink-2:#aab2b5; --ink-3:#8a9397;
  --accent:#7d9fe0; --on-accent:#0a1322; --accent-soft:#172233; --accent-ink:#a3bdf0;
  --gold:#7d9fe0; --gold-ink:#a3bdf0; --on-gold:#0a1322; --gold-soft:rgba(125,159,224,.14); --gold-line:rgba(125,159,224,.5);
  --coral:#efbb66; --bad:#f49b91; --hl:rgba(227,163,63,.18); --on-hl:#f5d49a; --margin:rgba(227,163,63,.38);
  --good:var(--gold); --warn:var(--coral);
  --scrim:rgba(0,0,0,.45); --sh-1:none; --sh-thumb:0 2px 6px rgba(0,0,0,.5);
  --sh-2:0 12px 30px -10px rgba(0,0,0,.7),0 2px 6px rgba(0,0,0,.4);
  --sh-3:0 24px 64px rgba(0,0,0,.55),0 2px 8px rgba(0,0,0,.35);
  --c0b:#1f2a38; --c0f:#b9c9e0; --c1b:#1d2b25; --c1f:#b3d0c1; --c2b:#30231f; --c2f:#dcbcb1; --c3b:#2d281c; --c3f:#d8c9a4;
  --c4b:#26233a; --c4f:#c7bee4; --c5b:#1c2c2e; --c5f:#afd0d2; --c6b:#30212a; --c6f:#dcbac9; --c7b:#24282c; --c7f:#c9ced2;
  --ease-out:cubic-bezier(0.22,1,0.36,1); --ease-io:cubic-bezier(0.22,1,0.36,1);
  --t-hover:160ms; --t-press:120ms; --t-panel:400ms; --t-hold:650ms; --t-settle:450ms; --t-journey:900ms;
  --display:"Geist",system-ui,-apple-system,"Segoe UI",sans-serif;
  --ui:"Geist",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --mono:"Geist",system-ui,-apple-system,"Segoe UI",sans-serif; /* labels and figures read in the sans with tabular figures; only keys use the mono */
  --code:"Geist Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace; font-variant-numeric:tabular-nums;
  color-scheme:dark; color:var(--ink); font:400 14px/1.5 var(--ui);
}
.dbf .c0{--rb:var(--c0b);--rf:var(--c0f)} .dbf .c1{--rb:var(--c1b);--rf:var(--c1f)} .dbf .c2{--rb:var(--c2b);--rf:var(--c2f)} .dbf .c3{--rb:var(--c3b);--rf:var(--c3f)}
.dbf .c4{--rb:var(--c4b);--rf:var(--c4f)} .dbf .c5{--rb:var(--c5b);--rf:var(--c5f)} .dbf .c6{--rb:var(--c6b);--rf:var(--c6f)} .dbf .c7{--rb:var(--c7b);--rf:var(--c7f)}
.dbf .c0{--rb:var(--c0b);--rf:var(--c0f)}
.dbf .c1{--rb:var(--c1b);--rf:var(--c1f)}
.dbf .c2{--rb:var(--c2b);--rf:var(--c2f)}
.dbf .c3{--rb:var(--c3b);--rf:var(--c3f)}
.dbf .c4{--rb:var(--c4b);--rf:var(--c4f)}
.dbf .c5{--rb:var(--c5b);--rf:var(--c5f)}
.dbf .c6{--rb:var(--c6b);--rf:var(--c6f)}
.dbf .c7{--rb:var(--c7b);--rf:var(--c7f)}
.dbf *{box-sizing:border-box}
.dbf [hidden]{display:none!important}
.dbf{min-height:100%}
.dbf{background:var(--bg);color:var(--ink);font:400 14px/1.5 var(--ui);-webkit-font-smoothing:antialiased;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
body.locked{overflow:hidden}
.dbf button,.dbf input,.dbf select,.dbf textarea{font:inherit;color:inherit}
.dbf b,.dbf strong{font-weight:500}
.dbf button{cursor:pointer;transition:background-color var(--t-hover) ease,border-color var(--t-hover) ease,color var(--t-hover) ease}
.dbf button:disabled{cursor:default}
.dbf :focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.dbf svg.i{width:18px;height:18px;flex:none;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.dbf svg.i.sm{width:15px;height:15px}
.dbf svg.i.lg{width:22px;height:22px}
.dbf kbd{font:500 11px/16px var(--mono);color:var(--ink-3);border:1px solid var(--border);border-bottom-width:2px;border-radius:5px;padding:0 5px;background:var(--surface);white-space:nowrap}
.dbf .muted{color:var(--ink-3)}
.dbf .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.dbf .mark{width:28px;height:28px;border-radius:8px;background:var(--accent);color:var(--on-accent);display:grid;place-items:center;flex:none}
.dbf .mark svg{width:18px;height:18px}
.dbf .status{display:flex;align-items:center;gap:7px}
.dbf .si{display:flex;gap:6px;align-items:baseline;width:100%;font:400 11.5px/1.4 var(--ui);color:var(--ink-2);padding:1px 6px;min-width:0}
.dbf .si .tm{font:400 10.5px var(--mono);color:var(--ink-3);flex:none}
.dbf .si span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.dbf .si.k-exam,.dbf .si.k-due{color:var(--coral)}
.dbf .si.k-call{color:var(--accent-ink)}
.dbf .cal-dotrow i.kx{background:none;box-shadow:inset 0 0 0 1.5px var(--coral)}
.dbf .sched-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr)}
.dbf .sched-list li{display:grid;grid-template-columns:88px minmax(0,1fr);gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}
.dbf .sched-list li:last-child{border-bottom:0}
.dbf .sched-list .tm{font:400 11.5px var(--mono);color:var(--ink-3);padding-top:2px}
.dbf .sched-list b{font-weight:500;display:block}
.dbf .sched-list .d{display:block;font-size:12.5px;color:var(--ink-3)}
.dbf .sched-list .k-exam b,.dbf .sched-list .k-due b,.dbf .sched-list li.k-exam b,.dbf .sched-list li.k-due b{color:var(--coral)}
.dbf .kbadge{font:500 10px/16px var(--mono);text-transform:none;padding:0 5px;border-radius:4px;margin-left:6px;vertical-align:1px}
.dbf .kbadge.k-exam,.dbf .kbadge.k-due{color:var(--coral);background:color-mix(in srgb,var(--coral) 12%,transparent)}
.dbf .kbadge.k-call{color:var(--accent-ink);background:var(--accent-soft)}
.dbf .today-sched{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;margin-top:18px;max-width:70ch}
.dbf .ts{display:grid;grid-template-columns:92px minmax(0,1fr);gap:10px;font-size:14px}
.dbf .ts .tm{font:400 12px var(--mono);color:var(--ink-3);padding-top:2px}
.dbf .ts .tt{min-width:0}
.dbf .ts.k-exam .tt b,.dbf .ts.k-due .tt b{color:var(--coral)}
.dbf .ts.k-call .tt b{color:var(--accent-ink)}
.dbf .impfile{display:flex;align-items:center;gap:8px;font:400 12px var(--mono);color:var(--ink-3);min-width:0}
.dbf .impfile span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dbf .impsum{display:grid;gap:6px;justify-items:start}
.dbf .impsum b{font:500 26px/1.15 var(--display);letter-spacing:-.02em}
.dbf .check{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;cursor:pointer}
.dbf .check input{width:18px;height:18px;margin:1px 0 0;accent-color:var(--accent);flex:none}
.dbf .dropzone{display:grid;justify-items:center;gap:6px;padding:22px;border:1.5px dashed var(--border-2);border-radius:14px;text-align:center;color:var(--ink-2);background:none;width:100%;font-size:13.5px}
.dbf .dropzone:hover{border-color:var(--accent);color:var(--ink)}
.dbf .dropzone b{color:var(--ink);font-weight:500}
.dbf .drop{position:fixed;inset:0;z-index:80;display:grid;place-items:center;background:var(--scrim);pointer-events:none}
.dbf .drop-card{border:2px dashed var(--accent);border-radius:20px;background:var(--surface);padding:36px 48px;display:grid;justify-items:center;gap:6px;text-align:center;box-shadow:var(--sh-3)}
.dbf .drop-card b{font:500 22px var(--display);letter-spacing:-.015em}
.dbf .drop-card span{color:var(--ink-3);font-size:13px}
.dbf .drop-card svg{width:28px;height:28px;color:var(--accent)}
@container (max-width:620px){.dbf .cal-d .si{display:none}}
.dbf .status i{width:7px;height:7px;border-radius:50%;background:var(--ink-3);flex:none}
.dbf .status.local i{background:var(--coral)}
.dbf .main{min-width:0;container-type:inline-size}
.dbf .fab{display:none}
.dbf .vh{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 20px;margin:4px 0 32px}
.dbf .eyebrow{font:500 11px var(--mono);text-transform:none;color:var(--ink-3);margin-bottom:10px}
.dbf .vh h1{font:500 clamp(30px,3.4vw,36px)/1.08 var(--display);letter-spacing:-.03em;margin:0;text-wrap:balance}
.dbf .vh .sub{color:var(--ink-2);margin-top:12px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13.5px}
.dbf .vh-r{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.dbf .bento{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:20px}
.dbf .s4{grid-column:span 4}
.dbf .s5{grid-column:span 5}
.dbf .s6{grid-column:span 6}
.dbf .s7{grid-column:span 7}
.dbf .s8{grid-column:span 8}
.dbf .s12{grid-column:span 12}
.dbf .tall{grid-row:span 2}
@container (max-width:880px){.dbf .s4,.dbf .s5,.dbf .s6,.dbf .s7,.dbf .s8{grid-column:span 12}.dbf .tall{grid-row:auto}}
.dbf .card{background:var(--surface);border:1px solid var(--border);border-radius:16px;min-width:0}
.dbf .card-h{display:flex;align-items:center;gap:8px;padding:20px 24px 0;min-height:40px}
.dbf .card-h h2{font:500 13px var(--ui);margin:0;color:var(--ink-2)}
.dbf .card-h > svg{color:var(--ink-3)}
.dbf .card-h .act{margin-left:auto;display:flex;gap:6px;align-items:center}
.dbf .card-b{padding:14px 24px 24px;display:grid;grid-template-columns:minmax(0,1fr);gap:14px;min-width:0}
.dbf .btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 14px;border-radius:10px;border:1px solid var(--border);background:var(--surface);font:500 13.5px var(--ui);color:var(--ink);box-shadow:var(--sh-1);white-space:nowrap}
.dbf .btn:hover{border-color:var(--border-2);background:var(--surface-2)}
.dbf .btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.dbf .btn.primary:hover{filter:brightness(1.07);background:var(--accent)}
.dbf .btn.ghost{background:none;border-color:transparent;box-shadow:none;color:var(--ink-2)}
.dbf .btn.ghost:hover{background:var(--surface-2);color:var(--ink)}
.dbf .btn.danger{color:var(--bad)}
.dbf .btn.sm{height:30px;padding:0 10px;font-size:13px;border-radius:8px}
.dbf .btn:disabled{opacity:.5;filter:none}
.dbf .btn kbd{background:color-mix(in srgb,currentColor 12%,transparent);border-color:transparent;color:inherit;opacity:.85}
.dbf .iconbtn{width:34px;height:34px;display:inline-grid;place-items:center;border-radius:9px;border:0;background:none;color:var(--ink-2);flex:none}
.dbf .iconbtn:hover{background:var(--surface-2);color:var(--ink)}
.dbf .linkbtn{appearance:none;border:0;background:none;font:500 12.5px var(--ui);color:var(--ink-3);padding:4px 2px}
.dbf .linkbtn:hover{color:var(--ink)}
.dbf .pill{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 9px;border-radius:999px;background:var(--rb,var(--surface-2));color:var(--rf,var(--ink-2));font:500 12px var(--ui);white-space:nowrap;border:0}
.dbf .dot{width:8px;height:8px;border-radius:50%;background:var(--rf,var(--ink-3));flex:none;display:inline-block}
.dbf .tag{display:inline-flex;align-items:center;gap:5px;font:500 11px/18px var(--mono);color:var(--ink-2);background:var(--surface-2);border-radius:5px;padding:0 6px;white-space:nowrap}
.dbf .tag.ex{color:var(--warn);background:color-mix(in srgb,var(--warn) 12%,transparent)}
.dbf .prog{height:6px;border-radius:99px;background:var(--surface-2);overflow:hidden}
.dbf .prog > i{display:block;height:100%;background:var(--rf,var(--accent));border-radius:99px}
.dbf .prog.gold > i{background:var(--gold)}
.dbf .tag.gold{color:var(--gold-ink);background:var(--gold-soft)}
.dbf .chips{display:flex;flex-wrap:wrap;gap:6px}
.dbf .chiprow{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.dbf .chiprow::-webkit-scrollbar{display:none}
.dbf .chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 11px;border-radius:999px;border:1px solid var(--border);background:var(--surface);font:500 12.5px var(--ui);color:var(--ink-2);white-space:nowrap;flex:none}
.dbf .chip:hover{border-color:var(--border-2);color:var(--ink)}
.dbf .chip[aria-pressed="true"]{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 45%,transparent);color:var(--accent-ink)}
.dbf .seg{display:inline-flex;padding:3px;gap:2px;background:var(--surface-2);border-radius:10px;flex-wrap:nowrap;max-width:100%}
.dbf .seg button{border:0;background:none;min-width:34px;height:30px;padding:0 10px;border-radius:7px;font:500 13px var(--ui);color:var(--ink-2)}
.dbf .seg button:hover{color:var(--ink)}
.dbf .seg button[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:var(--sh-1)}
.dbf .input,.dbf .ta,.dbf .sel{width:100%;font:400 14.5px/1.5 var(--ui);color:var(--ink);background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:8px 11px;min-width:0}
.dbf .input:focus,.dbf .ta:focus,.dbf select.sel:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.dbf .input::placeholder,.dbf .ta::placeholder{color:var(--ink-3)}
.dbf .ta{min-height:140px;resize:vertical}
.dbf .lbl{font:500 10.5px var(--mono);text-transform:none;color:var(--ink-3)}
.dbf .empty{padding:20px;border:1px dashed var(--border-2);border-radius:12px;color:var(--ink-2);display:grid;gap:12px;justify-items:start}
.dbf .own{display:inline-flex;align-items:center;font:500 10.5px/20px var(--mono);text-transform:none;padding:0 7px;border-radius:5px;white-space:nowrap}
.dbf .own.you{color:var(--accent-ink);background:var(--accent-soft)}
.dbf .own.school{color:var(--ink-2);background:var(--surface-2)}
.dbf .ready{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px}
.dbf .ready .it{display:grid;gap:4px;min-width:0}
.dbf .ready b{font:500 24px/1.1 var(--display);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.dbf .ready b small{font:500 12.5px var(--ui);color:var(--ink-3);letter-spacing:0;margin-left:5px}
.dbf .ready span{font-size:12px;color:var(--ink-3)}
.dbf .seg.wide{display:flex;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
.dbf .seg.wide::-webkit-scrollbar{display:none}
.dbf .seg.wide button{flex:none;padding:0 14px}
.dbf .seg.wide button[aria-selected="true"]{background:var(--surface);color:var(--ink);box-shadow:0 0 0 1px var(--border)}
.dbf .nclist{display:grid;grid-template-columns:minmax(0,1fr)}
.dbf .nc{display:grid;grid-template-columns:28px minmax(0,1fr);gap:12px;padding:16px 0;border-top:1px solid var(--line)}
.dbf .nc .num{font:500 13px var(--mono);width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);color:var(--ink-2)}
.dbf .nc.filled .num{background:var(--gold-soft);color:var(--gold-ink)}
.dbf .ncbody{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;min-width:0}
.dbf .ncmeta{display:flex;flex-wrap:wrap;gap:4px 14px;font:400 11.5px var(--mono);color:var(--ink-3)}
.dbf .ncmeta .bad{color:var(--coral)}
.dbf .ncmeta .ok{color:var(--gold-ink)}
.dbf .cands{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
.dbf .cand{border:1px solid var(--border);border-radius:12px;padding:12px 14px;display:grid;gap:6px;font-size:13.5px;min-width:0}
.dbf .cand b{font-weight:500;font-size:13px}
.dbf .cand .ev{font-size:12px;color:var(--ink-3)}
.dbf .tips ul{margin:6px 0 0;padding-left:18px;font-size:13px;color:var(--ink-2)}
.dbf .tips li{margin:4px 0}
.dbf .acts{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr)}
.dbf .act{border-bottom:1px solid var(--line);min-width:0}
.dbf .act:last-child{border-bottom:0}
.dbf .act > button{display:grid;grid-template-columns:120px minmax(0,1fr) auto;gap:12px;align-items:start;width:100%;text-align:left;padding:12px 6px;border:0;background:none;color:var(--ink);border-radius:8px}
.dbf .act > button:hover{background:var(--surface-2)}
.dbf .act .ty{font:500 10.5px/20px var(--mono);text-transform:none;color:var(--ink-3)}
.dbf .act .tt{font-weight:500;display:block}
.dbf .act .sub{display:block;font-size:12.5px;color:var(--ink-3)}
.dbf .act .imp{display:block;font-size:13px;color:var(--ink-2);margin-top:2px}
.dbf .act .dt{font:400 11.5px var(--mono);color:var(--ink-3);white-space:nowrap;padding-top:2px}
@container (max-width:640px){.dbf .act > button{grid-template-columns:minmax(0,1fr) auto}.dbf .act .ty{grid-column:1/-1}}
.dbf .aform{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;padding:16px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);margin:6px 0}
.dbf .aform .input,.dbf .aform .ta,.dbf .aform .sel{background:var(--surface)}
.dbf .grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.dbf .ck-row{display:flex;gap:8px;align-items:center;font-size:13.5px;cursor:pointer}
.dbf .ck-row input{width:16px;height:16px;accent-color:var(--accent);flex:none}
.dbf .clk{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
.dbf .praise{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.dbf .praise li{font-size:13.5px;color:var(--ink);padding-left:12px;border-left:2px solid var(--gold-line)}
.dbf .doc{max-width:780px;margin-inline:auto;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:48px 56px;display:grid;grid-template-columns:minmax(0,1fr);gap:26px;font-size:14.5px;line-height:1.65}
.dbf .doc h3{font:500 11px var(--mono);text-transform:none;color:var(--ink-3);margin:0 0 10px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.dbf .doc ul{margin:0;padding-left:20px}
.dbf .doc li{margin:6px 0}
.dbf .doc .ph{border:1px dashed var(--border-2);border-radius:10px;padding:10px 12px;color:var(--ink-3);font-size:13px}
.dbf .doc .row2{display:flex;justify-content:space-between;gap:4px 12px;flex-wrap:wrap;font-weight:500}
.dbf .doc .note{font:400 11.5px var(--mono);color:var(--ink-3)}
.dbf .clk-doc{display:grid;gap:4px;margin-top:16px}
@container (max-width:640px){.dbf .doc{padding:28px 20px}}
.dbf .empty p{margin:0;max-width:60ch}
.dbf .empty strong{color:var(--ink)}
.dbf .spin{display:inline-block;width:13px;height:13px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.dbf .dots{font:500 11px var(--mono);letter-spacing:1px;color:var(--accent);white-space:nowrap}
.dbf .dots .off{color:var(--ink-3)}
.dbf .today-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px;margin:4px 0 24px}
.dbf .today-top .eyebrow{margin:0}
.dbf .today-top .meta{display:flex;align-items:center;gap:10px;color:var(--ink-2);font-size:12.5px;flex-wrap:wrap}
.dbf .minibar{width:96px;height:4px;border-radius:99px;background:var(--surface-2);overflow:hidden;display:inline-block}
.dbf .minibar i{display:block;height:100%;background:var(--rf)}
.dbf .hero{grid-column:span 12;background:var(--surface);border:1px solid var(--border);border-radius:24px;padding:40px 40px 32px;display:grid;grid-template-columns:minmax(0,1fr);gap:28px;min-width:0}
.dbf .hero .hq{font:500 clamp(34px,4.6vw,52px)/1.04 var(--display);letter-spacing:-.035em;margin:0;max-width:17ch;text-wrap:balance}
.dbf .hero .hq .rot{color:var(--rf)}
.dbf .hero .lead{color:var(--ink-2);font-size:15px;line-height:1.55;margin:14px 0 0;max-width:54ch}
.dbf .logged{display:inline-flex;align-items:center;gap:8px;color:var(--gold-ink);font-size:13px;font-weight:500}
.dbf .logged .gk{width:20px;height:20px;border-radius:50%;background:var(--gold);color:var(--on-gold);display:grid;place-items:center}
.dbf .logged .gk svg{width:12px;height:12px;stroke-width:2.6}
.dbf .logged .muted{font-weight:400}
.dbf .hero-act{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.dbf .micbtn{width:72px;height:72px;border-radius:50%;border:0;background:var(--accent);color:var(--on-accent);display:grid;place-items:center;flex:none;box-shadow:0 0 0 6px var(--accent-soft),inset 0 -2px 0 rgba(0,0,0,.2);transition:transform var(--t-press) var(--ease-out),box-shadow var(--t-press) var(--ease-out)}
.dbf .micbtn:hover{box-shadow:0 0 0 9px var(--accent-soft),inset 0 -2px 0 rgba(0,0,0,.2)}
.dbf .micbtn:active{transform:scale(.95)}
.dbf .micbtn svg{width:28px;height:28px;stroke-width:1.9}
.dbf .hero-lbl{display:grid;gap:4px}
.dbf .hero-lbl b{font-size:16px;color:var(--ink)}
.dbf .hero-lbl span{font-size:12.5px;color:var(--ink-3);display:flex;align-items:center;gap:6px}
.dbf .chip.ghost{background:none}
.dbf .hero .mini{border-top:1px solid var(--line);padding-top:12px}
@container (max-width:640px){.dbf .hero{padding:28px 22px 24px;border-radius:20px;gap:22px}.dbf .micbtn{width:60px;height:60px}}
.dbf .mini{list-style:none;margin:0;padding:0;display:grid}
.dbf .mini,.dbf .todo,.dbf .daylist,.dbf .qlist,.dbf .writers{grid-template-columns:minmax(0,1fr)}
.dbf .mini button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:8px 6px;border:0;background:none;border-radius:9px}
.dbf .mini button:hover{background:var(--surface-2)}
.dbf .mini .tt{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}
.dbf .todo{list-style:none;margin:0;padding:0;display:grid;gap:1px}
.dbf .todo button{display:grid;grid-template-columns:20px minmax(0,1fr) 16px;gap:10px;align-items:start;width:100%;text-align:left;padding:9px 6px;border:0;background:none;border-radius:10px;color:var(--ink)}
.dbf .todo button:hover{background:var(--surface-2)}
.dbf .ck{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--border-2);margin-top:1px;display:grid;place-items:center;color:transparent}
.dbf .ck svg{width:12px;height:12px;stroke-width:2.6}
.dbf .todo .done .ck{background:var(--gold);border-color:var(--gold);color:var(--on-gold)}
.dbf .todo .warn .ck{border-color:var(--warn)}
.dbf .todo .t{font-weight:500;font-size:13.5px}
.dbf .todo .s{display:block;font-size:12.5px;color:var(--ink-3);margin-top:1px}
.dbf .todo .done .t{color:var(--ink-3);text-decoration:line-through;text-decoration-color:var(--border-2)}
.dbf .todo .chev{color:var(--ink-3);margin-top:2px}
.dbf .week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.dbf .wday{display:grid;gap:7px;justify-items:center;padding:10px 2px 10px;border-radius:12px;border:0;background:none;min-width:0}
.dbf .wday:hover{background:var(--surface-2)}
.dbf .wday .wn{font:500 10.5px var(--mono);text-transform:none;color:var(--ink-3)}
.dbf .wday .wd{font:500 17px/1 var(--display);width:38px;height:38px;display:grid;place-items:center;border-radius:50%;font-variant-numeric:tabular-nums;color:var(--ink-2)}
.dbf .wday.done .wd{background:var(--gold-soft);color:var(--gold-ink)}
.dbf .wday.today .wd{box-shadow:inset 0 0 0 1.5px var(--accent);color:var(--ink)}
.dbf .wday .wr{height:3px;width:calc(100% - 10px);border-radius:3px;background:var(--rf,var(--line));opacity:.55}
.dbf .wday .wc{font:400 10.5px var(--mono);color:var(--ink-3);min-height:14px}
.dbf .wday.future .wd{color:var(--ink-3)}
.dbf .wday.future .wr{opacity:.45}
.dbf .wsum{font-size:12.5px;color:var(--ink-3);display:flex;gap:16px;flex-wrap:wrap}
.dbf .wsum b{color:var(--gold-ink);font-weight:500}
.dbf .mo{display:grid;gap:6px}
.dbf .mo .big{font:500 22px/1.25 var(--display);letter-spacing:-.015em;color:var(--ink);margin:0}
.dbf .mo .small{margin:0;color:var(--ink-2);font-size:13.5px}
.dbf .jstats{display:flex;gap:6px 18px;flex-wrap:wrap;font:400 11.5px var(--mono);color:var(--ink-3)}
.dbf .jstats b{color:var(--ink-2);font-weight:500}
.dbf .jscroll{overflow-x:auto;padding:4px 2px 2px;margin-inline:-2px}
.dbf .jpath{position:relative;min-width:600px;height:96px}
.dbf .jstage{position:absolute;top:0;bottom:0;min-width:0}
.dbf .jstage .nm{position:absolute;top:0;left:0;right:6px;font:500 12px var(--ui);color:var(--rf);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dbf .jstage .dt{position:absolute;top:18px;left:0;right:6px;font:400 10.5px var(--mono);color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dbf .jseg{position:absolute;top:53px;left:0;right:4px;height:2px;border-radius:2px;background:var(--rf);opacity:.22}
.dbf .jseg.past{opacity:.85;right:auto;transform-origin:left center}
.dbf .jend{position:absolute;top:47px;right:-3px;width:14px;height:14px;border-radius:50%;background:var(--gold);color:var(--on-gold);display:grid;place-items:center}
.dbf .jend svg{width:9px;height:9px;stroke-width:3}
.dbf .jstep{position:absolute;top:50px;width:8px;height:8px;margin-left:-4px;border-radius:50%;background:var(--rf);box-shadow:0 0 0 2px var(--surface)}
.dbf .jnow{position:absolute;top:43px;width:22px;height:22px;margin-left:-11px;border-radius:50%;border:1.5px solid var(--gold);background:var(--surface);display:grid;place-items:center}
.dbf .jnow i{width:8px;height:8px;border-radius:50%;background:var(--gold)}
.dbf .jnow-l{position:absolute;top:74px;font:500 10.5px var(--mono);letter-spacing:.04em;color:var(--gold-ink);white-space:nowrap;transform:translateX(-50%)}
.dbf .jnow-l.l{transform:none}
.dbf .jnow-l.r{transform:translateX(-100%)}
.dbf .jpath.draw .jseg.past{animation:jdraw var(--t-journey) var(--ease-out) both}
.dbf .jpath.draw .jstep,.dbf .jpath.draw .jnow,.dbf .jpath.draw .jend{animation:fade 360ms ease both;animation-delay:500ms}
@keyframes jdraw{from{transform:scaleX(0)}}
.dbf .legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--ink-3);align-items:center}
.dbf .legend i{display:inline-block;width:10px;height:10px;border-radius:3px;vertical-align:-1px;margin-right:5px}
.dbf .setup{display:flex;flex-wrap:wrap;gap:10px;align-items:end}
.dbf .setup .field{min-width:200px}
.dbf .cal-wrap{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}
@container (max-width:900px){.dbf .cal-wrap{grid-template-columns:minmax(0,1fr)}}
.dbf .cal{overflow:hidden}
.dbf .cal-dow{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-bottom:1px solid var(--border)}
.dbf .cal-dow span{padding:10px 10px 8px;font:500 10.5px var(--mono);text-transform:none;color:var(--ink-3);overflow:hidden}
.dbf .cal-wk{position:relative;border-bottom:1px solid var(--border)}
.dbf .cal-wk:last-child{border-bottom:0}
.dbf .cal-cells{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.dbf .cal-d{min-height:118px;padding:6px 6px 8px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:2px;min-width:0;cursor:pointer;outline-offset:-2px}
.dbf .cal-d:nth-child(7n){border-right:0}
.dbf .cal-d:hover{background:color-mix(in srgb,var(--surface-2) 60%,transparent)}
.dbf .cal-d.out{background:repeating-linear-gradient(135deg,transparent 0 6px,color-mix(in srgb,var(--surface-2) 70%,transparent) 6px 7px)}
.dbf .cal-d.out .dn{color:var(--ink-3)}
.dbf .cal-d.sel{background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--border-2)}
.dbf .dn{font:500 12.5px var(--ui);width:24px;height:24px;display:grid;place-items:center;border-radius:50%;font-variant-numeric:tabular-nums;flex:none}
.dbf .cal-d.done .dn{background:var(--gold-soft);color:var(--gold-ink)}
.dbf .cal-d.today .dn{box-shadow:inset 0 0 0 1.5px var(--accent);color:var(--ink)}
.dbf .cal-d.done.today .dn{color:var(--gold-ink)}
.dbf .msum{display:flex;align-items:center;gap:12px;font-size:12.5px;color:var(--ink-2);margin-top:12px}
.dbf .msum b{color:var(--gold-ink);font-weight:500}
.dbf .msum .prog{width:140px}
.dbf .daydone{display:flex;align-items:center;gap:8px;color:var(--gold-ink);font-size:13px;font-weight:500}
.dbf .cal-gap{height:26px;flex:none}
.dbf .ep{display:flex;align-items:center;gap:6px;width:100%;font:500 12px var(--ui);padding:2px 6px;border-radius:6px;color:var(--ink);background:none;border:0;text-align:left;min-width:0;cursor:pointer}
.dbf .ep span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dbf .ep:hover{background:var(--surface)}
.dbf .ep .dot{width:6px;height:6px}
.dbf .ep-more{font:500 11px var(--mono);color:var(--ink-3);padding:0 6px}
.dbf .cal-dotrow{display:none;gap:3px;padding:0 4px;flex-wrap:wrap}
.dbf .cal-dotrow i{width:6px;height:6px;border-radius:50%;background:var(--rf,var(--accent))}
.dbf .cal-bar{position:absolute;top:34px;height:21px;border-radius:6px;background:var(--rb);color:var(--rf);font:500 11.5px/21px var(--ui);padding:0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}
@container (max-width:620px){.dbf .cal-d{min-height:66px;padding:4px 3px}.dbf .cal-d .ep,.dbf .cal-d .ep-more{display:none}.dbf .cal-dotrow{display:flex}.dbf .cal-bar{height:4px;top:31px;font-size:0;padding:0;border-radius:3px;background:var(--rf)}.dbf .cal-gap{height:10px}.dbf .cal-dow span{padding:8px 4px;text-align:center}.dbf .dn{margin-inline:auto}}
.dbf .daylist{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.dbf .dayitem{display:grid;gap:4px;width:100%;text-align:left;padding:10px 12px;border:1px solid var(--border);border-radius:11px;background:var(--surface);border-left:3px solid var(--rf)}
.dbf .dayitem:hover{background:var(--surface-2)}
.dbf .dayitem b{font-weight:500}
.dbf .dayitem span{font-size:12.5px;color:var(--ink-3)}
.dbf .jtools{display:grid;gap:10px;margin-bottom:16px}
.dbf .search{position:relative}
.dbf .search svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--ink-3)}
.dbf .search .input{padding-left:36px;height:38px}
.dbf .jgroup + .jgroup{margin-top:18px}
.dbf .jgh{font:500 10.5px var(--mono);text-transform:none;color:var(--ink-3);padding:0 4px 8px;display:flex;gap:8px}
.dbf .jrows{list-style:none;margin:0;padding:0;overflow:hidden}
.dbf .jr{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:14px;align-items:center;width:100%;text-align:left;padding:12px 16px;border:0;border-bottom:1px solid var(--line);background:none;color:var(--ink)}
.dbf .jrows li:last-child .jr{border-bottom:0}
.dbf .jr:hover{background:var(--surface-2)}
.dbf .jr .tt{font-weight:500;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.dbf .jr .ol{font-size:13px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.dbf .jr .ol .rn{color:var(--rf)}
.dbf .jr{box-shadow:inset 3px 0 0 var(--rf)}
.dbf .jr.fresh{animation:fresh 2.2s var(--ease-out)}
@keyframes fresh{from{background:var(--gold-soft)}}
.dbf .jr .tg{display:flex;gap:4px;align-items:center}
.dbf .jr .dt{font:400 12px var(--mono);color:var(--ink-3);white-space:nowrap;text-align:right}
@container (max-width:640px){.dbf .jr .tg{display:none}.dbf .jr{grid-template-columns:minmax(0,1fr) auto;padding:12px 12px 12px 16px}}
.dbf .sumrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px}
.dbf .sum{padding:14px 16px;display:grid;gap:8px}
.dbf .sum b{font:500 26px/1 var(--display);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.dbf .sum b small{font:500 13px var(--ui);color:var(--ink-3);letter-spacing:0;margin-left:3px}
.dbf .sum span{font-size:12px;color:var(--ink-3)}
.dbf .qlist{list-style:none;margin:0;padding:0;display:grid}
.dbf .q{display:grid;gap:8px;padding:12px 0;border-bottom:1px solid var(--line)}
.dbf .q:last-child{border-bottom:0;padding-bottom:0}
.dbf .q:first-child{padding-top:0}
.dbf .qhead{display:grid;grid-template-columns:20px minmax(0,1fr) auto;gap:10px;align-items:start}
.dbf .qhead .ck{margin-top:2px}
.dbf .q.has .ck{background:var(--gold);border-color:var(--gold);color:var(--on-gold)}
.dbf .qtext{font-weight:500;font-size:13.5px}
.dbf .qmatch{font-size:12.5px;color:var(--ink-3);display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:2px}
.dbf .qmatch button{border:0;background:none;padding:0;color:var(--accent-ink);font:500 12.5px var(--ui)}
.dbf .qmatch button:hover{text-decoration:underline}
.dbf .qacts{display:flex;gap:6px}
.dbf .draft{white-space:pre-wrap;background:var(--surface-2);border-radius:10px;padding:12px 14px;font-size:14px;line-height:1.6;margin-left:30px}
.dbf .heat-wrap{overflow-x:auto}
.dbf table.heat{border-collapse:separate;border-spacing:4px;font-variant-numeric:tabular-nums;min-width:100%}
.dbf .heat th{font:500 10.5px var(--mono);letter-spacing:.06em;color:var(--ink-3);text-align:center;padding:2px 4px;white-space:nowrap}
.dbf .heat th.rowh{text-align:left;font:500 13px var(--ui);letter-spacing:0;color:var(--ink);padding-right:12px}
.dbf .heat th.rowh span{display:inline-flex;align-items:center;gap:8px}
.dbf .heat td{min-width:52px;height:34px;text-align:center;border-radius:7px;font:500 13px var(--mono)}
.dbf .heat td.z{color:var(--ink-3);background:repeating-linear-gradient(135deg,transparent 0 4px,var(--line) 4px 5px)}
.dbf .heat td.tot{background:none;color:var(--ink-3)}
.dbf .bars{display:grid;gap:11px}
.dbf .bar{display:grid;grid-template-columns:minmax(80px,130px) minmax(0,1fr) 72px;gap:10px;align-items:center;font-size:13px}
.dbf .bar .track{height:10px;background:var(--surface-2);border-radius:6px;overflow:hidden}
.dbf .bar .fill{display:block;height:100%;background:var(--rf);border-radius:6px}
.dbf .bar .v{font:400 12px var(--mono);color:var(--ink-3);text-align:right;font-variant-numeric:tabular-nums}
.dbf .writers{list-style:none;margin:0;padding:0;display:grid}
.dbf .writers li{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}
.dbf .writers li:last-child{border-bottom:0}
.dbf .av{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--rb,var(--surface-2));color:var(--rf,var(--ink-2));font:500 12.5px var(--ui)}
.dbf .writers .nm{font-weight:500}
.dbf .writers .meta{font:400 11.5px var(--mono);color:var(--ink-3)}
.dbf .writers q{font-size:13px;color:var(--ink-2);display:block;margin-top:3px}
.dbf .limits{font:400 11.5px var(--mono);color:var(--ink-3)}
.dbf .kit{display:grid;gap:16px;max-width:880px}
.dbf .kit .card-b{gap:14px}
.dbf .ksub{color:var(--ink-3);font-size:13px;margin:-6px 0 0;max-width:66ch}
.dbf .sched{display:grid;gap:6px}
.dbf .srow{display:grid;grid-template-columns:28px minmax(0,1fr) 150px 92px 30px;gap:8px;align-items:center}
.dbf .srow.hdr{font:500 10.5px var(--mono);text-transform:none;color:var(--ink-3)}
.dbf .swatch{width:26px;height:26px;border-radius:8px;border:0;background:var(--rb);display:grid;place-items:center}
.dbf .swatch i{width:10px;height:10px;border-radius:50%;background:var(--rf)}
@container (max-width:640px){.dbf .srow{grid-template-columns:28px minmax(0,1fr) 30px}.dbf .srow .sd,.dbf .srow .sw{grid-column:2 / span 1}.dbf .srow.hdr{display:none}}
.dbf .klist{list-style:none;margin:0;padding:0;border:1px solid var(--border);border-radius:12px;overflow:hidden}
.dbf .klist li{display:flex;align-items:center;gap:10px;padding:9px 12px;border-bottom:1px solid var(--line);min-width:0}
.dbf .klist li:last-child{border-bottom:0}
.dbf .klist .main{flex:1;min-width:0}
.dbf .klist .heard{font:400 12px var(--mono);color:var(--ink-3)}
.dbf .klist .prev{font-size:12.5px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dbf .kform{display:flex;flex-wrap:wrap;gap:8px}
.dbf .kform .input{flex:1 1 180px;width:auto}
.dbf .styles{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.dbf .stylecard{display:grid;gap:3px;text-align:left;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.dbf .stylecard:hover{border-color:var(--border-2)}
.dbf .stylecard[aria-pressed="true"]{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.dbf .stylecard b{font-weight:500}
.dbf .stylecard span{font-size:12.5px;color:var(--ink-3)}
.dbf .privacy{display:grid;gap:12px;font-size:13.5px;max-width:68ch}
.dbf .privacy p{margin:0}
.dbf .privacy .lbl{display:block;margin-bottom:2px}
.dbf .keys{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;font-size:13.5px;align-items:center}
.dbf .overlay{position:fixed;inset:0;z-index:40}
.dbf .overlay[hidden]{display:none}
.dbf .scrim{position:absolute;inset:0;background:var(--scrim);animation:fade .16s ease}
@keyframes fade{from{opacity:0}}
.dbf .sheet{position:absolute;left:50%;top:max(6vh,calc(12px + env(safe-area-inset-top,0px)));transform:translateX(-50%);width:min(720px,calc(100% - 32px));max-height:calc(100% - 12vh);display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:20px;box-shadow:var(--sh-3);overflow:hidden;animation:pop .2s cubic-bezier(.2,.8,.2,1)}
@keyframes pop{from{opacity:0;transform:translateX(-50%) translateY(10px) scale(.985)}}
.dbf .sheet-h{display:flex;align-items:center;gap:8px;padding:12px 12px 12px 20px;border-bottom:1px solid var(--border);flex-wrap:wrap}
.dbf .sheet-h h2{font:500 18px var(--display);margin:0 auto 0 0;letter-spacing:-.015em}
.dbf .sheet-meta{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.dbf .sheet-b{flex:1;overflow:auto;padding:16px 20px 20px;display:grid;grid-template-columns:minmax(0,1fr);gap:14px;align-content:start}
.dbf .sheet-f{display:flex;align-items:center;gap:8px;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px)) 20px;border-top:1px solid var(--border);flex-wrap:wrap}
.dbf .sheet-f .grow{margin-right:auto;font:400 11.5px var(--mono);color:var(--ink-3);display:flex;align-items:center;gap:7px}
.dbf .metapill{position:relative;display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 10px;border-radius:9px;border:1px solid var(--border);background:var(--surface);font:500 13px var(--ui);color:var(--ink)}
.dbf .metapill:hover{border-color:var(--border-2)}
.dbf .metapill input,.dbf .metapill select{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer;border:0}
.dbf .metapill svg{color:var(--ink-3)}
.dbf .pad{border:1px solid var(--border);border-radius:14px;background:var(--surface);overflow:hidden}
.dbf .pad:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.dbf .pad-top{display:flex;align-items:center;gap:8px 12px;flex-wrap:wrap;padding:10px 12px;border-bottom:1px solid var(--line)}
.dbf .dictate{display:inline-flex;align-items:center;gap:7px;height:32px;border:0;background:var(--accent);color:var(--on-accent);font:500 13px var(--ui);padding:0 13px 0 10px;border-radius:999px;flex:none}
.dbf .hint{font-size:12.5px;color:var(--ink-3);min-width:0;flex:1 1 200px}
.dbf .hint b{color:var(--ink-2);font-weight:500}
.dbf #pad{display:block;width:100%;min-height:256px;border:0;resize:none;outline:none;background:transparent;color:var(--ink);font:400 17px/1.65 var(--ui);padding:16px 18px 14px}
.dbf #pad::placeholder{color:var(--ink-3)}
.dbf .pad-foot{display:flex;align-items:center;gap:12px;padding:6px 12px 8px;border-top:1px solid var(--line)}
.dbf #ecg{flex:1;min-width:0;height:26px;display:block}
.dbf .wc{font:400 11.5px var(--mono);color:var(--ink-3);font-variant-numeric:tabular-nums;white-space:nowrap}
.dbf .phi{border-radius:12px;padding:12px 14px;background:color-mix(in srgb,var(--hl) 38%,var(--surface));border:1px solid color-mix(in srgb,var(--warn) 35%,transparent);display:grid;gap:10px}
.dbf .phi p{margin:0;font-size:13.5px}
.dbf .phi .flags{display:flex;flex-wrap:wrap;gap:6px}
.dbf mark{background:var(--hl);color:var(--on-hl);font:500 12px var(--mono);padding:2px 6px;border-radius:5px}
.dbf mark small{font:400 10.5px var(--ui);opacity:.8;margin-left:4px}
.dbf .phi.ok{background:none;border:0;padding:0 2px;color:var(--ink-3);font-size:12.5px;display:flex;gap:6px;align-items:center}
.dbf .phi .acts{display:flex;flex-wrap:wrap;gap:8px}
.dbf .pulse{animation:pulse .5s ease 2}
@keyframes pulse{50%{box-shadow:0 0 0 4px color-mix(in srgb,var(--warn) 30%,transparent)}}
.dbf .ends{display:flex;justify-content:space-between;font-size:12px;color:var(--ink-3)}
.dbf .slider{display:grid;gap:4px;padding:16px 18px 14px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}
.dbf .slider-h{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:4px}
.dbf .slider-h .sq{font-size:14px;font-weight:500}
.dbf .slider-h .rd{font:500 13px var(--mono);color:var(--ink);display:inline-block}
.dbf .slider-h .rd.tick{animation:tick var(--t-press) var(--ease-out)}
@keyframes tick{50%{transform:scale(1.16)}}
.dbf .slider.unset .rd{color:var(--ink-3)}
.dbf .range{-webkit-appearance:none;appearance:none;width:100%;height:36px;background:transparent;margin:0;cursor:pointer;--p:50%}
.dbf .range:focus{outline:none}
.dbf .range:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px var(--accent),var(--sh-thumb)}
.dbf .range::-webkit-slider-runnable-track{height:6px;border-radius:99px;background:linear-gradient(to right,var(--accent) 0 var(--p),var(--surface-2) var(--p) 100%)}
.dbf .range::-moz-range-track{height:6px;border-radius:99px;background:var(--surface-2)}
.dbf .range::-moz-range-progress{height:6px;border-radius:99px;background:var(--accent)}
.dbf .range::-webkit-slider-thumb{-webkit-appearance:none;width:26px;height:26px;margin-top:-10px;border-radius:50%;background:var(--ink);border:0;box-shadow:0 0 0 4px var(--accent-soft),var(--sh-thumb);transition:transform var(--t-press) var(--ease-out)}
.dbf .range:active::-webkit-slider-thumb{transform:scale(1.08)}
.dbf .range::-moz-range-thumb{width:26px;height:26px;border-radius:50%;background:var(--ink);border:0;box-shadow:0 0 0 4px var(--accent-soft)}
.dbf .slider.unset .range::-webkit-slider-runnable-track{background:var(--surface-2)}
.dbf .slider.unset .range::-moz-range-progress{background:transparent}
.dbf .slider.unset .range::-webkit-slider-thumb{background:var(--surface);box-shadow:0 0 0 1.5px var(--border-2)}
.dbf .slider.unset .range::-moz-range-thumb{background:var(--surface);box-shadow:0 0 0 1.5px var(--border-2)}
.dbf .ticks{display:flex;justify-content:space-between;padding:0 3px;margin-top:-4px}
.dbf .ticks span{display:grid;justify-items:center;gap:3px;font:400 11px var(--mono);color:var(--ink-3);width:20px}
.dbf .ticks span::before{content:"";width:1px;height:6px;background:var(--border-2)}
.dbf .ticks span.on{color:var(--ink)}
.dbf .ticks span.on::before{background:var(--accent)}
.dbf .hold{position:relative;overflow:hidden;height:40px;padding:0 18px;border-radius:10px;border:1px solid var(--border-2);background:var(--surface-2);color:var(--ink);font:500 13.5px var(--ui);touch-action:none;user-select:none;-webkit-user-select:none;display:inline-flex;align-items:center;gap:8px}
.dbf .hold .fill{position:absolute;inset:0;width:0;background:var(--gold-soft);border-right:2px solid var(--gold);transition:width 120ms ease}
.dbf .hold.on .fill{width:100%;transition:width var(--t-hold) var(--ease-io)}
.dbf .hold.done{border-color:var(--gold);color:var(--gold-ink);animation:settle var(--t-settle) var(--ease-out)}
.dbf .hold.done .fill{width:100%;border-right:0}
.dbf .hold > span,.dbf .hold > svg{position:relative}
.dbf .holdhint{font-size:12px;color:var(--ink-3)}
@keyframes settle{0%{transform:scale(.97)}60%{transform:scale(1.01)}100%{transform:scale(1)}}
.dbf .donev{display:grid;justify-items:start;gap:10px;padding:28px 8px 20px}
.dbf .done-ck{width:48px;height:48px;border-radius:50%;background:var(--gold);color:var(--on-gold);display:grid;place-items:center;margin-bottom:10px;animation:settle var(--t-settle) var(--ease-out)}
.dbf .done-ck svg{width:24px;height:24px;stroke-width:2.4}
.dbf .done-t{font:500 clamp(34px,5vw,44px)/1.05 var(--display);letter-spacing:-.03em;margin:0;animation:lift var(--t-panel) var(--ease-out) both;animation-delay:80ms}
.dbf .done-l{font-size:17px;color:var(--ink);margin:0;max-width:40ch;animation:lift var(--t-panel) var(--ease-out) both;animation-delay:140ms}
.dbf .done-m{font:400 12px var(--mono);color:var(--ink-3);margin:6px 0 0;animation:fade var(--t-panel) ease both;animation-delay:220ms}
.dbf .done-m b{color:var(--gold-ink);font-weight:500}
@keyframes lift{from{transform:translateY(8px);opacity:0}}
.dbf .panel{position:absolute;top:calc(12px + env(safe-area-inset-top,0px));right:max(12px,env(safe-area-inset-right,0px));bottom:calc(12px + env(safe-area-inset-bottom,0px));width:min(540px,calc(100% - 24px));background:var(--surface);border:1px solid var(--border);border-radius:18px;box-shadow:var(--sh-3);display:flex;flex-direction:column;overflow:hidden;animation:slide .22s cubic-bezier(.2,.8,.2,1)}
@keyframes slide{from{opacity:0;transform:translateX(24px)}}
.dbf .panel-h{display:flex;align-items:center;gap:8px;padding:12px 12px 12px 20px;border-bottom:1px solid var(--border)}
.dbf .panel-h .grow{margin-right:auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap;min-width:0}
.dbf .panel-b{flex:1;overflow:auto;padding:20px 20px 24px;display:grid;grid-template-columns:minmax(0,1fr);gap:18px;align-content:start}
.dbf .panel-f{display:flex;align-items:center;gap:8px;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px)) 20px;border-top:1px solid var(--border);flex-wrap:wrap}
.dbf .panel-f .grow{margin-right:auto}
.dbf .e-title{font:500 24px/1.15 var(--display);letter-spacing:-.02em;margin:0;text-wrap:balance}
.dbf .e-one{color:var(--ink-3);margin-top:6px;font-size:14px}
.dbf .e-text{white-space:pre-wrap;font-size:15px;line-height:1.65;max-width:66ch}
.dbf .sec h4{margin:0 0 6px;font:500 10.5px var(--mono);text-transform:none;color:var(--ink-3)}
.dbf .sec ul{margin:0;padding-left:18px;font-size:14px}
.dbf .sec li{margin:2px 0}
.dbf .secs{display:grid;gap:16px 22px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.dbf .fb{display:flex;gap:8px;align-items:flex-start;font-size:13.5px;margin:4px 0}
.dbf .fb q{quotes:"“" "”"}
.dbf .tone{font:500 10px/16px var(--mono);text-transform:none;padding:0 5px;border-radius:4px;flex:none;margin-top:2px}
.dbf .tone.positive{color:var(--gold-ink);background:color-mix(in srgb,var(--good) 12%,transparent)}
.dbf .tone.constructive{color:var(--warn);background:color-mix(in srgb,var(--warn) 12%,transparent)}
.dbf .x{appearance:none;border:0;background:none;color:var(--ink-3);font-size:16px;line-height:1;padding:0 4px;margin-left:auto}
.dbf .x:hover{color:var(--bad)}
.dbf .star{display:grid;gap:6px;font-size:13.5px}
.dbf .star div{display:grid;grid-template-columns:86px 1fr;gap:8px}
.dbf .star .k{font:500 10.5px var(--mono);text-transform:none;color:var(--ink-3);padding-top:2px}
.dbf .cmd{border:1px solid var(--border);border-radius:14px;padding:14px;display:grid;gap:10px;background:var(--surface-2)}
.dbf .cmd-h{display:flex;align-items:center;gap:8px;font-weight:500;font-size:13.5px}
.dbf .cmd-h svg{color:var(--accent)}
.dbf .cmd form{display:flex;gap:8px}
.dbf .cmd-out{white-space:pre-wrap;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px;font-size:14px;line-height:1.6}
.dbf .cnt{font:400 11.5px var(--mono);color:var(--ink-3)}
.dbf .cnt.over{color:var(--bad)}
.dbf .rowacts{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.dbf .ed{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
.dbf .field{display:grid;gap:6px;min-width:0}
.dbf .grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
.dbf .input.title{font:500 19px var(--display);letter-spacing:-.015em}
.dbf .pal{position:absolute;left:50%;top:max(12vh,calc(16px + env(safe-area-inset-top,0px)));transform:translateX(-50%);width:min(620px,calc(100% - 32px));background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--sh-3);overflow:hidden;animation:pop .16s ease}
.dbf .pal-in{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border);color:var(--ink-3)}
.dbf .pal-in input{flex:1;border:0;outline:none;background:none;font-size:16px;min-width:0;color:var(--ink)}
.dbf .pal ul{list-style:none;margin:0;padding:6px;max-height:min(56vh,420px);overflow:auto}
.dbf .pal .grp{font:500 10.5px var(--mono);text-transform:none;color:var(--ink-3);padding:10px 10px 4px}
.dbf .pal li button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:9px 10px;border:0;background:none;border-radius:9px;color:var(--ink);font-size:14px}
.dbf .pal li button .tt{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dbf .pal li button svg{color:var(--ink-3)}
.dbf .pal li[aria-selected="true"] button{background:var(--surface-2)}
.dbf .pal .none{padding:18px 12px;color:var(--ink-3);font-size:13.5px}
.dbf .toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(20px + env(safe-area-inset-bottom,0px));background:var(--surface-2);color:var(--ink);border:1px solid var(--border-2);padding:10px 14px;border-radius:12px;font-size:13.5px;display:flex;gap:14px;align-items:center;z-index:60;max-width:calc(100% - 32px);box-shadow:var(--sh-2);animation:pop .18s ease}
.dbf .toast button{border:0;background:none;color:var(--accent);font-weight:500;padding:0}
@media (max-width:899px){
.dbf .fab{display:grid;place-items:center;position:fixed;right:max(16px,env(safe-area-inset-right,0px));bottom:calc(78px + env(safe-area-inset-bottom,0px));width:56px;height:56px;border-radius:18px;border:0;background:var(--accent);color:var(--on-accent);box-shadow:var(--sh-2);z-index:31}
.dbf .toast{bottom:calc(146px + env(safe-area-inset-bottom,0px))}
}
@media (max-width:640px){
.dbf .sheet{left:0;right:0;transform:none;width:auto;top:calc(env(safe-area-inset-top,0px) + 18px);bottom:0;max-height:none;border-radius:20px 20px 0 0;border-bottom:0;animation:rise .24s cubic-bezier(.2,.8,.2,1)}
.dbf .sheet-h,.dbf .sheet-b,.dbf .sheet-f,.dbf .panel-h,.dbf .panel-b,.dbf .panel-f{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.dbf .panel{left:0;right:0;bottom:0;top:calc(env(safe-area-inset-top,0px) + 18px);width:auto;border-radius:20px 20px 0 0;border-bottom:0;animation:rise .24s cubic-bezier(.2,.8,.2,1)}
.dbf .pal{top:calc(12px + env(safe-area-inset-top,0px))}
.dbf #pad{min-height:200px}
.dbf .draft{margin-left:0}
}
@keyframes rise{from{transform:translateY(28px);opacity:0}}
@media (prefers-reduced-motion: reduce){
.dbf *{animation:none!important;transition:none!important}
}

/* ---- shared design principles applied to Perl's components ----
   One display line per screen; sentence case, no tracked uppercase labels; tonal panels, no borders or shadows at rest;
   radius 14 for panels and 10 for rows; tabular figures; one easing curve. */

/* light mode for the Debrief space: same selectors as School's, so one choice switches both */
:root[data-mode="light"] .dbf,:root[data-mode="system"][data-theme="light"] .dbf{
  --bg:#ffffff; --surface:#f3f5f4; --surface-2:#e8ebea; --hover:#e0e4e2;
  --border:#e0e4e2; --border-2:#c9cfcc; --line:#e8ebea;
  --ink:#15191a; --ink-2:#4a5357; --ink-3:#5c666a;
  --accent:#2d63c8; --on-accent:#ffffff; --accent-soft:#e3ebf8; --accent-ink:#1e4c9c;
  --gold:#2d63c8; --gold-ink:#1e4c9c; --on-gold:#ffffff; --gold-soft:rgba(45,99,200,.12); --gold-line:rgba(45,99,200,.45);
  --coral:#8a4a00; --bad:#a8281f; --hl:rgba(191,115,16,.16); --on-hl:#6b3a00; --margin:rgba(191,115,16,.4);
  --scrim:rgba(16,24,20,.22); --sh-thumb:0 1px 4px rgba(16,24,40,.28);
  --sh-2:0 10px 28px -10px rgba(16,24,40,.18),0 2px 6px rgba(16,24,40,.06);
  --sh-3:0 24px 64px rgba(16,24,20,.16),0 2px 8px rgba(16,24,20,.06);
  --c0b:#e6ecf3; --c0f:#2a3a50; --c1b:#e5efe9; --c1f:#24443a; --c2b:#f3e8e4; --c2f:#5a3328; --c3b:#f2ede0; --c3f:#4f4120;
  --c4b:#ebe8f4; --c4f:#3d3466; --c5b:#e3eff0; --c5f:#1f4448; --c6b:#f3e6ec; --c6f:#5a2a40; --c7b:#eceeef; --c7f:#353b40;
  color-scheme:light;
}
@media (prefers-color-scheme:light){:root[data-mode="system"]:not([data-theme="dark"]) .dbf{
  --bg:#ffffff; --surface:#f3f5f4; --surface-2:#e8ebea; --hover:#e0e4e2;
  --border:#e0e4e2; --border-2:#c9cfcc; --line:#e8ebea;
  --ink:#15191a; --ink-2:#4a5357; --ink-3:#5c666a;
  --accent:#2d63c8; --on-accent:#ffffff; --accent-soft:#e3ebf8; --accent-ink:#1e4c9c;
  --gold:#2d63c8; --gold-ink:#1e4c9c; --on-gold:#ffffff; --gold-soft:rgba(45,99,200,.12); --gold-line:rgba(45,99,200,.45);
  --coral:#8a4a00; --bad:#a8281f; --hl:rgba(191,115,16,.16); --on-hl:#6b3a00; --margin:rgba(191,115,16,.4);
  --scrim:rgba(16,24,20,.22); --sh-thumb:0 1px 4px rgba(16,24,40,.28);
  --sh-2:0 10px 28px -10px rgba(16,24,40,.18),0 2px 6px rgba(16,24,40,.06);
  --sh-3:0 24px 64px rgba(16,24,20,.16),0 2px 8px rgba(16,24,20,.06);
  --c0b:#e6ecf3; --c0f:#2a3a50; --c1b:#e5efe9; --c1f:#24443a; --c2b:#f3e8e4; --c2f:#5a3328; --c3b:#f2ede0; --c3f:#4f4120;
  --c4b:#ebe8f4; --c4f:#3d3466; --c5b:#e3eff0; --c5f:#1f4448; --c6b:#f3e6ec; --c6f:#5a2a40; --c7b:#eceeef; --c7f:#353b40;
  color-scheme:light;
}}
.dbf-host{max-width:1100px;margin:0 auto;display:grid;gap:var(--gap,16px);min-width:0}
.dbf .eyebrow,.dbf .lbl,.dbf .side-lbl,.dbf .grp,.dbf .card-h h2+.act,.dbf .kicker{text-transform:none!important;letter-spacing:0!important;font-family:var(--ui)!important}
.dbf .eyebrow{font-size:13px;color:var(--ink-3);font-weight:400}
.dbf .lbl{font-size:13px;font-weight:500;color:var(--ink-2)}
.dbf .card,.dbf .hero{border:0;border-radius:14px;background:var(--surface);box-shadow:none}
.dbf .vh h1{font:500 28px/34px var(--display);letter-spacing:-.02em}
.dbf .num,.dbf .wd,.dbf .dn,.dbf .tm,.dbf .jstats b{font-variant-numeric:tabular-nums}
.dbf-today{display:block}
.dbf kbd{font-family:var(--code)}
:root[data-boot="true"] .dbf .fab{display:none!important}
.dbf-today .hero{padding:24px 28px;gap:16px;background:var(--surface)}
.dbf-today .hero .hq{font:500 24px/30px var(--display);letter-spacing:-.02em;max-width:none}
.dbf-today .hero .lead{margin-top:6px;font-size:14px}
.dbf-today .zone-k{display:flex;align-items:center;gap:8px;color:var(--ink-3);font-size:13px;margin:0 0 10px}
.dbf-today .zone-k i{width:6px;height:6px;border-radius:50%;background:var(--accent)}
.dbf-extras{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px;margin-bottom:16px}
.dbf .bridge-note{color:var(--ink-3);font-size:13px;margin:0}
.dbf .rot-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:12px}
.dbf .rs-card{display:grid;gap:4px;align-content:start;text-align:left;padding:14px 16px;border-radius:10px;border:0;background:var(--surface);color:var(--ink);font:inherit;cursor:pointer}
.dbf .rs-card:hover{background:var(--surface-2)}
.dbf .rs-card .rs-k{font-size:12.5px;color:var(--ink-3)}
.dbf .rs-card .rs-t{font-size:14px;line-height:20px}
.dbf .rs-card.warn .rs-k{color:var(--coral)}
.dbf .si.sd{border-left:2px solid var(--border-2);padding-left:5px;color:var(--ink-2)}
.dbf .si.sd.st-soon,.dbf .si.sd.st-slipped,.dbf li.sd.st-soon .tm,.dbf li.sd.st-slipped .tm{border-color:var(--coral);color:var(--coral)}
.dbf .si.sd.st-breach,.dbf li.sd.st-breach .tm{border-color:var(--bad);color:var(--bad)}
.dbf .si.sd.st-done{text-decoration:line-through;color:var(--ink-3)}
.dbf .bridge-note a{color:var(--accent-ink)}
@media (max-width:899px){
  .dbf .fab{display:grid;place-items:center;position:fixed;right:max(16px,env(safe-area-inset-right,0px));bottom:calc(20px + env(safe-area-inset-bottom,0px));width:56px;height:56px;border-radius:18px;border:0;background:var(--accent);color:var(--on-accent);box-shadow:var(--sh-2);z-index:31}
  .dbf-extras{grid-template-columns:minmax(0,1fr)}
}

/* Today's debrief card: the same card as the rest of Today, a question, one button, and what you've logged */
.dbf.dbf-today{padding:0;background:transparent}
.dbf-today .hero{padding:24px;gap:16px;border-radius:16px;background:var(--surface);grid-template-columns:minmax(0,1fr)}
.dbf-today .hero-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px 16px;flex-wrap:wrap}
.dbf-today .hero .hq{font:600 15px/22px var(--display);letter-spacing:-.005em;max-width:none;margin:0}
.dbf-today .hero .hq .rot{color:var(--accent-ink)}
.dbf-today .hero .lead{margin:0;font-size:14px;line-height:21px;color:var(--ink-2)}
.dbf-today .logged{margin:0;font-size:13px;color:var(--accent-ink)}
.dbf-today .logged .gk{width:18px;height:18px;background:var(--accent);color:var(--on-accent)}
.dbf-today .hero-act{gap:14px}
.dbf-today .micbtn{width:52px;height:52px;box-shadow:0 0 0 5px var(--accent-soft)}
.dbf-today .micbtn:hover{box-shadow:0 0 0 7px var(--accent-soft)}
.dbf-today .micbtn svg{width:22px;height:22px}
.dbf-today .hero-lbl b{font-size:15px;font-weight:500}
.dbf-today .rot-strip{margin-top:0;grid-template-columns:minmax(0,1fr)}
.dbf-today .rs-card{background:var(--surface-2);padding:12px 14px}
.dbf-today .rs-card:hover{background:var(--hover)}
.dbf #jstrip:empty{display:none}
.dbf #jstrip .rot-strip{margin:0 0 16px}
.dbf #jstrip .rs-card{background:var(--surface)}
@media (prefers-reduced-motion: reduce){.dbf-today .micbtn{transition:none}}
.dbf.dbf-host{padding-left:0;padding-right:0;background:transparent}
.dbf.dbf-host{grid-template-columns:minmax(0,1fr)}.dbf-host > .view{min-width:0}
@media (max-width:640px){.dbf-today .hero{padding:16px}}
/* phones: a title gets two lines instead of being cut to "Presented a …" */
@container (max-width:640px){.dbf .jr .tt{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.dbf .jr .dt{align-self:start}}
/* narrow screens: card headers and their actions wrap instead of pushing the page sideways */
@media (max-width: 560px){
  .dbf .card-h{flex-wrap:wrap;padding:16px 16px 0}
  .dbf .card-h .act{flex-wrap:wrap}
  .dbf .card-b{padding-left:16px;padding-right:16px}
  .dbf .rowacts .btn{white-space:normal;text-align:left;max-width:100%}
  .dbf .vh{flex-wrap:wrap}
}
/* whatever the student types (or pastes), a long unbroken string wraps instead of widening the page. break-word, not
   anywhere: anywhere also shrinks how narrow a box may get, and auto-sized columns then collapse to one letter wide */
.dbf .tt,.dbf .ol,.dbf .cmd-out,.dbf .fb,.dbf .star,.dbf .clk-doc,.dbf .empty p{overflow-wrap:break-word}

/* The port wrote these width rules as ".dbf @container (...)", which browsers drop as invalid CSS, so Debrief's grids
   never collapsed: History at phone width had 12 columns of 10px and text one letter wide. They are real container
   queries now, measured against the Debrief pages and Today's debrief card. */
.dbf-host,.dbf.dbf-today{container-type:inline-size}
/* the selected day's entries in History: a title with no spaces in it wraps inside the card */
.dbf .dayitem{grid-template-columns:minmax(0,1fr)}
.dbf .dayitem > *{min-width:0;overflow-wrap:break-word}
