/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--ease-out:cubic-bezier(0, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}}@layer base,components;@layer utilities{.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.top-5{top:calc(var(--spacing) * 5)}.row-0{grid-row:0}.row-1{grid-row:1}.row-2{grid-row:2}.row-3{grid-row:3}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-1{margin:var(--spacing)}.m-2{margin:calc(var(--spacing) * 2)}.m-3{margin:calc(var(--spacing) * 3)}.m-4{margin:calc(var(--spacing) * 4)}.\!block{display:block!important}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.list-item{display:list-item}.table{display:table}.flex-shrink,.shrink{flex-shrink:1}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.text-wrap{text-wrap:wrap}.text-input{color:var(--input)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.paused{animation-play-state:paused}.running{animation-play-state:running}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--background:#f6f2e6;--foreground:#1a1a1a;--card:#fff;--card-foreground:#1a1a1a;--popover:#fff;--popover-foreground:#1a1a1a;--primary:#33a95a;--primary-foreground:#1a1a1a;--primary-ink:#1e7a3c;--primary-wash:#e4f3e7;--primary-wash-2:#d5eedb;--primary-line:#bfe4c9;--secondary:#ece5d4;--secondary-foreground:#1a1a1a;--muted:#efeadd;--muted-foreground:#7a7f85;--accent:#e4f3e7;--accent-foreground:#1e7a3c;--destructive:#dc4c3e;--border:#e7e1d2;--input:#e7e1d2;--ring:#33a95a;--state-good:#33a95a;--state-good-ink:#1e7a3c;--state-good-wash:#e4f3e7;--state-good-line:#bfe4c9;--state-mid:#e0922a;--state-mid-ink:#8b5710;--state-mid-wash:#f7ecd6;--state-bad:#dc4c3e;--state-bad-ink:#b23227;--state-bad-wash:#f7e1dc;--paper-tan:#ece5d4;--line-soft:#efeadd;--ink-2:#4a4d51;--ink-faint:#a7a292;--warm-neutral:#7d7663;--lime:#c6f24c;--brand-mark:#39b54a;--brand-strong:#2e9a51;--chart-1:#33a95a;--chart-2:#e0922a;--chart-3:#dc4c3e;--chart-4:#7a7f85;--chart-5:#ece5d4;--radius:1rem;--sidebar:#fbfbfa;--sidebar-foreground:#1a1a1a;--sidebar-primary:#33a95a;--sidebar-primary-foreground:#1a1a1a;--sidebar-accent:#e4f3e7;--sidebar-accent-foreground:#1e7a3c;--sidebar-border:#e7e1d2;--sidebar-ring:#33a95a;--chart-background:oklch(100% 0 0);--chart-foreground:oklch(14.5% .004 285);--chart-foreground-muted:oklch(55% .014 260);--chart-line-primary:var(--chart-1);--chart-line-secondary:var(--chart-2);--chart-crosshair:oklch(40% .1828 274.34);--chart-grid:oklch(90% 0 0);--chart-brush-border:var(--chart-grid);--chart-tooltip-background:oklch(21% .006 285/.8);--chart-tooltip-foreground:oklch(98.5% 0 0);--chart-tooltip-muted:oklch(65% .01 260);--chart-marker-background:oklch(97% .005 260);--chart-marker-border:oklch(85% .01 260);--chart-marker-foreground:oklch(30% .01 260);--chart-label:oklch(45% .01 260);--chart-scale-01:oklch(98% .003 106);--chart-scale-02:oklch(92% .008 106);--chart-scale-03:oklch(82% .015 106);--chart-scale-04:oklch(68% .02 106);--chart-scale-05:oklch(55% .025 106);--chart-scale-pattern-color:oklch(96% .005 106)}.dark{--background:oklch(14.5% 0 0);--foreground:oklch(98.5% 0 0);--card:oklch(20.5% 0 0);--card-foreground:oklch(98.5% 0 0);--popover:oklch(20.5% 0 0);--popover-foreground:oklch(98.5% 0 0);--primary:oklch(92.2% 0 0);--primary-foreground:oklch(20.5% 0 0);--secondary:oklch(26.9% 0 0);--secondary-foreground:oklch(98.5% 0 0);--muted-surface:oklch(26.9% 0 0);--muted-foreground:oklch(70.8% 0 0);--accent:oklch(26.9% 0 0);--accent-foreground:oklch(98.5% 0 0);--destructive:oklch(70.4% .191 22.216);--border:oklch(100% 0 0/.1);--input:oklch(100% 0 0/.15);--ring:oklch(55.6% 0 0);--chart-1:oklch(87% 0 0);--chart-2:oklch(55.6% 0 0);--chart-3:oklch(43.9% 0 0);--chart-4:oklch(37.1% 0 0);--chart-5:oklch(26.9% 0 0);--sidebar:oklch(20.5% 0 0);--sidebar-foreground:oklch(98.5% 0 0);--sidebar-primary:oklch(48.8% .243 264.376);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(26.9% 0 0);--sidebar-accent-foreground:oklch(98.5% 0 0);--sidebar-border:oklch(100% 0 0/.1);--sidebar-ring:oklch(55.6% 0 0);--chart-background:oklch(14.5% 0 0);--chart-foreground:oklch(45% 0 0);--chart-foreground-muted:oklch(65% .01 260);--chart-crosshair:oklch(45% 0 0);--chart-grid:oklch(25% 0 0);--chart-brush-border:var(--chart-grid);--chart-marker-background:oklch(25% .01 260);--chart-marker-border:oklch(40% .01 260);--chart-marker-foreground:oklch(90% 0 0);--chart-label:oklch(75% .01 260);--chart-scale-01:oklch(28% .03 270);--chart-scale-02:oklch(38% .04 270);--chart-scale-03:oklch(48% .05 270);--chart-scale-04:oklch(58% .06 270);--chart-scale-05:oklch(68% .07 270);--chart-scale-pattern-color:oklch(14.5% 0 0)}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@font-face{font-family:Figtree;font-style:normal;font-weight:300 900;font-display:swap;src:url(/fonts/figtree-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Figtree;font-style:normal;font-weight:300 900;font-display:swap;src:url(/fonts/figtree-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/fonts/jetbrains-mono-latin.woff2) format("woff2")}:root{--bg: var(--background);--surface: var(--card);--chat: var(--background);--header: var(--muted);--rail: var(--paper-tan);--rail-2: var(--muted);--ink: var(--foreground);--text-2: var(--ink-2);--text-muted: var(--muted-foreground);--faint: var(--ink-faint);--pace-neutral: var(--warm-neutral);--line: var(--border);--border-soft: var(--line-soft);--brand: var(--primary);--brand-2: var(--brand-strong);--brand-ink: var(--primary-ink);--brand-wash: var(--primary-wash);--brand-line: var(--primary-line);--brand-wash-2: var(--primary-wash-2);--green: var(--state-good);--green-ink: var(--state-good-ink);--green-wash: var(--state-good-wash);--amber: var(--state-mid);--amber-ink: var(--state-mid-ink);--amber-wash: var(--state-mid-wash);--red: var(--state-bad);--red-ink: var(--state-bad-ink);--red-wash: var(--state-bad-wash);--ahead: var(--primary);--r: var(--radius);--r-lg: var(--radius);--r-xl: 1.375rem;--r-md: .75rem;--r-sm: .5625rem;--r-xs: var(--r-sm);--r-pill: 999px;--sp-2: 6px;--sp-3: 8px;--sp-4: 10px;--sp-6: 14px;--sp-7: 16px;--sp-9: 20px;--sp-12: 28px;--sans: "Figtree", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--fs-figure-xl: 2.75rem;--fs-figure: 2.125rem;--fs-display: 1.875rem;--fs-h1: 1.625rem;--fs-h2: 1.25rem;--fs-lede: 1.125rem;--fs-h3: 1rem;--fs-body: .875rem;--fs-sm: .8125rem;--fs-xs: .75rem;--fs-label: .75rem;--fs-micro: .6875rem;--fw-body: 400;--fw-medium: 500;--fw-semi: 600;--fw-bold: 700;--fw-x: 800;--fw-black: 900;--ls-label: .14em;--ls-tight: -.02em;--dur-fast: .12s;--dur-base: .2s;--dur-slow: .3s;--ease-out: cubic-bezier(.2, .7, .3, 1);--ease-loop: ease-in-out;--sh-card: 0 1px 2px rgba(40, 30, 10, .04), 0 2px 8px rgba(40, 30, 10, .05);--sh-pane: 0 8px 30px rgba(40, 30, 10, .1);--sh-soft: 0 1px 2px rgba(40, 30, 10, .05);--sh-brand: 0 0 0 4px var(--brand-wash);--shadow-card: var(--sh-card);--shadow-pane: var(--sh-pane);--scrim: rgba(40, 30, 10, .32);--toast-ink: var(--primary-foreground);--toast-accent: var(--lime);--r-2xl: 18px;--phone-w: 402px;--phone-h: 844px;--header-h: 56px;--tabbar-h: 58px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--app-top-inset: 44px;--shadow-soft: 0 1px 2px rgba(0, 0, 0, .05), 0 8px 24px rgba(0, 0, 0, .06);--shadow-device: 0 30px 70px rgba(0, 0, 0, .28), 0 8px 20px rgba(0, 0, 0, .16)}*{box-sizing:border-box;margin:0;padding:0}button,input,select,textarea,optgroup{font-family:inherit}body{font-family:var(--sans);background:var(--bg);color:var(--ink);font-size:var(--fs-body);line-height:1.45;-webkit-font-smoothing:antialiased}svg{display:block}.hl{background-image:none;box-shadow:inset 0 -.56em 0 var(--lime)}@keyframes pulse-dot{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1.15)}}@keyframes sheet-fade{0%{opacity:0}to{opacity:1}}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}.mono{font-family:var(--mono)}.label{font-family:var(--sans);font-size:var(--fs-label);font-weight:var(--fw-x);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-muted);line-height:1.35}.label-brand{color:var(--brand-ink)}.label-faint{color:var(--faint)}.pace-module{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-pane);overflow:hidden}.m-head{display:flex;align-items:center;gap:10px;padding:13px 16px;border-bottom:1px solid var(--border)}.m-head .mi{width:18px;height:18px;color:var(--text-2);flex:0 0 auto}.m-head h3{font-size:var(--fs-body);font-weight:600;letter-spacing:.1px}.m-type{font-family:var(--mono);font-size:var(--fs-micro);font-weight:500;color:var(--text-muted);background:var(--bg);border:1px solid var(--border-soft);padding:2px 6px;border-radius:5px}.m-type.new{color:var(--brand-ink);background:var(--brand-wash);border-color:transparent}.m-type.sig{color:var(--green-ink);background:var(--green-wash);border-color:transparent}.m-head .tools{margin-left:auto;display:flex;align-items:center;gap:6px}.tbtn{display:flex;align-items:center;gap:5px;font-size:var(--fs-xs);font-weight:600;color:var(--text-2);padding:5px 9px;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface)}.tbtn svg{width:13px;height:13px}.tbtn.spark{color:var(--brand-ink);border-color:var(--brand-wash);background:var(--brand-wash)}.seg{display:inline-flex;border:1px solid var(--border);border-radius:var(--r-sm);overflow:hidden}.seg span{font-size:var(--fs-micro);font-weight:600;color:var(--text-muted);padding:5px 9px}.seg span.on{background:var(--brand);color:var(--primary-foreground)}.m-body{padding:18px}.row{display:grid;gap:18px}.row.two{grid-template-columns:1fr 1fr}@media (max-width: 880px){.row.two{grid-template-columns:1fr}}.addon-badge{font-family:var(--sans);font-size:var(--fs-label);font-weight:var(--fw-x);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--amber-ink);background:var(--amber-wash);border:1px solid rgba(224,146,42,.3);padding:2px 7px;border-radius:var(--r-xl)}.addon-badge.on-fill{background:#ffffffe6;border-color:transparent}.ot{display:grid;grid-template-columns:1.25fr 1fr;gap:24px}@media (max-width: 760px){.ot{grid-template-columns:1fr}}.pace-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:6px}.pace-head .state{font-size:var(--fs-h2);font-weight:700;letter-spacing:-.2px;display:flex;align-items:center;gap:9px}.pace-head .state .pp{width:11px;height:11px;border-radius:50%;flex:0 0 auto}.state.ok{color:var(--green-ink)}.state.ok .pp{background:var(--green)}.state.slip{color:var(--amber-ink)}.state.slip .pp{background:var(--amber)}.state.behind{color:var(--red-ink)}.state.behind .pp{background:var(--red)}.state.ahead{color:var(--brand-ink)}.state.ahead .pp{background:var(--brand)}.pace-head .goal{font-family:var(--mono);font-size:var(--fs-micro);font-weight:700;color:var(--text-muted);background:var(--bg);border:1px solid var(--border-soft);padding:2px 8px;border-radius:var(--r-xl)}.gauge{margin:14px 0 6px}.gauge .bar{height:13px;border-radius:var(--r-sm);position:relative;background:linear-gradient(90deg,#f1bdb6,#f1bdb6 24%,#f3dcb4 24%,#f3dcb4 50%,#c2e6cb 50%,#c2e6cb 86%,#cbe7f5 86%,#cbe7f5)}.gauge .mk{position:absolute;top:-5px;bottom:-5px;width:3px;background:var(--ink);border-radius:2px;box-shadow:0 0 0 3px var(--surface)}.gauge .mk:before{content:"";position:absolute;left:50%;top:-6px;transform:translate(-50%);width:9px;height:9px;border-radius:50%;background:var(--ink)}.gauge .ticks{display:flex;justify-content:space-between;font-family:var(--mono);font-size:var(--fs-micro);color:var(--faint);margin-top:8px;font-weight:600;letter-spacing:.04em}.gauge .ticks span.hi{color:var(--green-ink)}.reason{display:flex;gap:10px;align-items:flex-start;margin-top:16px;padding:12px 14px;border-radius:var(--r);background:var(--amber-wash);border:1px solid rgba(224,146,42,.25);font-size:var(--fs-sm);line-height:1.5;color:#6e4d18}.reason svg{width:16px;height:16px;color:var(--amber-ink);flex:0 0 auto;margin-top:1px}.reason b{color:var(--amber-ink)}.reason .g{color:var(--green-ink);font-weight:700}.brk{display:flex;flex-direction:column;gap:9px;align-self:center}.brk .bk-h{font-family:var(--mono);font-size:var(--fs-micro);letter-spacing:.1em;text-transform:uppercase;color:var(--faint);font-weight:700;margin-bottom:3px}.brow{display:grid;grid-template-columns:118px 1fr 42px;align-items:center;gap:11px;font-size:var(--fs-xs)}.brow .n{color:var(--text-2);font-weight:600}.brow .n i{font-style:normal;color:var(--faint);font-family:var(--mono);font-size:var(--fs-micro);margin-left:4px}.track{height:7px;border-radius:5px;background:#eef0f2;overflow:hidden;position:relative}.track i{position:absolute;inset:0 auto 0 0;border-radius:5px;background:var(--green)}.track.am i{background:var(--amber)}.track.rd i{background:var(--red)}.track.pend{background:repeating-linear-gradient(45deg,#eef0f2,#eef0f2 5px,#e3e6e9 5px,#e3e6e9 10px)}.brow .v{font-family:var(--mono);font-size:var(--fs-xs);font-weight:700;text-align:right}.v.m{color:var(--faint)}.week{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.day .dh{font-family:var(--mono);font-size:var(--fs-micro);text-transform:uppercase;color:var(--faint);text-align:center;font-weight:600;padding-bottom:6px;border-bottom:1px solid var(--border-soft);margin-bottom:6px}.day.today .dh{color:var(--brand-ink)}.day{min-height:104px;display:flex;flex-direction:column;gap:5px}.ev{position:relative;font-size:var(--fs-micro);font-weight:600;padding:5px 7px;border-radius:var(--r-sm);line-height:1.25;border-left:3px solid}.ev small{display:block;font-family:var(--mono);font-size:var(--fs-micro);font-weight:500;opacity:.85;margin-top:1px}.ev .log{position:absolute;top:4px;right:4px;font-family:var(--mono);font-size:var(--fs-micro);font-weight:700;width:14px;height:14px;border-radius:50%;display:grid;place-items:center;color:#fff}.log.done{background:var(--brand);color:var(--primary-foreground)}.log.short{background:var(--amber)}.log.miss{background:var(--red)}.ev.chem{background:var(--brand-wash);border-color:var(--brand);color:var(--brand-ink)}.ev.cs{background:#e9f6ee;border-color:var(--green);color:#1f6b38}.ev.math{background:#f1ecfa;border-color:#8b6fc7;color:#5a3f97}.ev.exam{background:var(--red-wash);border-color:var(--red);color:var(--red-ink)}.ev.dim{opacity:.55}.ev.dim .tx{text-decoration:line-through}.ev.ghost{background:#f0faff;border:1.5px dashed var(--brand);color:var(--brand-ink)}.logkey{display:flex;gap:14px;margin-top:12px;font-size:var(--fs-micro);color:var(--text-muted);align-items:center;flex-wrap:wrap}.logkey b{font-weight:600;color:var(--text-2)}.logkey i{font-family:var(--mono);font-size:var(--fs-micro);font-weight:700;width:.875rem;height:.875rem;border-radius:50%;display:inline-grid;place-items:center;color:#fff;font-style:normal}.courseload-note{margin-top:14px;display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:var(--r);background:var(--bg);border:1px solid var(--border-soft);font-size:var(--fs-xs);line-height:1.5;color:var(--text-2)}.courseload-note svg{width:16px;height:16px;color:var(--text-muted);flex:0 0 auto;margin-top:1px}.courseload-note b{color:var(--ink)}.courseload-note .dn{color:var(--red-ink);font-weight:700}.fc-q{display:flex;align-items:center;gap:10px;margin-bottom:13px;font-size:var(--fs-xs);color:var(--text-muted)}.fc-q b{font-family:var(--mono);color:var(--brand-ink);font-size:var(--fs-sm)}.fc-q .qbar{flex:1;height:6px;border-radius:5px;background:#eef0f2;overflow:hidden}.fc-q .qbar i{display:block;height:100%;background:var(--brand);border-radius:5px}.flip{perspective:1100px;height:150px;margin-bottom:11px;cursor:pointer}.flip-in{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .65s var(--ease-out)}.flip.flipped .flip-in{transform:rotateY(180deg)}.face{position:absolute;top:0;right:0;bottom:0;left:0;backface-visibility:hidden;border-radius:var(--r-sm);border:1px solid var(--border);padding:18px;display:flex;flex-direction:column;justify-content:center;background:var(--surface)}.face .ft{font-family:var(--mono);font-size:var(--fs-micro);letter-spacing:.12em;text-transform:uppercase;color:var(--faint);font-weight:600;margin-bottom:8px}.face .q{font-size:var(--fs-h3);font-weight:500;line-height:1.35}.face .q b{color:var(--brand-ink)}.face.back{transform:rotateY(180deg);background:var(--brand-wash);border-color:#2784444d}.face.back .a{font-size:var(--fs-body);font-weight:600;line-height:1.45}.face.back .a b{color:var(--brand-ink)}.fc-hint{text-align:center;font-size:var(--fs-micro);color:var(--faint)}.mhd{font-family:var(--mono);font-size:var(--fs-micro);letter-spacing:.1em;text-transform:uppercase;color:var(--faint);font-weight:700;margin-bottom:11px}.conc{display:grid;grid-template-columns:120px 1fr 92px;align-items:center;gap:11px;margin-bottom:11px}.conc .nm{font-size:var(--fs-xs);font-weight:600}.mbar{height:8px;border-radius:var(--r-sm);background:#eef0f2;position:relative;overflow:hidden}.mbar i{position:absolute;left:0;top:0;bottom:0;border-radius:var(--r-sm)}.ig{background:var(--green)}.ia{background:var(--amber)}.ir{background:var(--red)}.conc .meta{text-align:right;font-family:var(--mono);font-size:var(--fs-micro);font-weight:700}.conc .meta .vl{font-size:var(--fs-micro);font-weight:600;display:block;margin-top:1px}.vl.up{color:var(--green-ink)}.vl.flat{color:var(--faint)}.vl.dn{color:var(--red-ink)}.erow{display:grid;grid-template-columns:1fr 40px;align-items:center;gap:9px;margin-bottom:10px}.erow .et{font-size:var(--fs-xs);font-weight:600}.erow .et small{display:block;color:var(--faint);font-family:var(--mono);font-size:var(--fs-micro);font-weight:500;margin-top:1px}.erow .epc{font-family:var(--mono);font-size:var(--fs-sm);font-weight:700;text-align:right}.erow .eb{grid-column:1 / -1;height:5px;border-radius:5px;background:#eef0f2;overflow:hidden;margin-top:-5px}.erow .eb i{display:block;height:100%;border-radius:5px}.chat{padding:18px;display:flex;flex-direction:column;gap:11px;background:var(--chat)}.card-alert{display:flex;gap:11px;align-items:flex-start;padding:12px 14px;border-radius:var(--r);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-card)}.card-alert .ic{width:30px;height:30px;border-radius:var(--r-sm);display:grid;place-items:center;flex:0 0 auto}.card-alert.warn .ic{background:var(--amber-wash);color:var(--amber-ink)}.card-alert.info .ic{background:var(--brand-wash);color:var(--brand-ink)}.card-alert .ic svg{width:17px;height:17px}.card-alert .t{font-size:var(--fs-sm);line-height:1.45;color:var(--text-2)}.card-alert .t b{color:var(--ink)}.chat-tag{display:flex;align-items:center;gap:8px;font-size:var(--fs-micro);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--brand-ink);margin:6px 0 1px}.chat-tag .ai{width:21px;height:21px;border-radius:var(--r-sm);background:linear-gradient(135deg,var(--brand),var(--brand-2));display:grid;place-items:center;flex:0 0 auto;color:var(--primary-foreground)}.chat-tag .ai svg{width:12px;height:12px;color:currentColor}.chat-tag .addon-badge{margin-left:auto}.paywall{display:flex;gap:9px;align-items:flex-start;padding:11px 13px;border-radius:var(--r);background:linear-gradient(180deg,#fdf6ea,#fff);border:1px solid rgba(224,146,42,.3);font-size:var(--fs-xs);line-height:1.5;color:var(--amber-ink)}.paywall b{color:var(--ink)}.paywall svg{width:15px;height:15px;flex:0 0 auto;margin-top:1px}.msg{max-width:88%;font-size:var(--fs-sm);line-height:1.5;padding:10px 13px;border-radius:var(--r-md)}.msg.ai{align-self:flex-start;background:var(--surface);border:1px solid var(--border);border-bottom-left-radius:4px;box-shadow:var(--shadow-card)}.msg.me{align-self:flex-end;background:var(--brand-wash);border:1px solid rgba(39,132,68,.25);border-bottom-right-radius:4px}.msg .who{font-family:var(--mono);font-size:var(--fs-micro);letter-spacing:.1em;text-transform:uppercase;font-weight:700;opacity:.6;margin-bottom:4px}.msg.ai .who{color:var(--brand-ink)}.msg.me .who{color:var(--text-muted)}.msg b{color:var(--ink)}.msg.ai b{color:var(--brand-ink)}.ladder{display:flex;gap:6px;align-self:flex-start;margin:1px 0;flex-wrap:wrap}.rung{font-family:var(--mono);font-size:var(--fs-micro);font-weight:700;padding:3px 7px;border-radius:var(--r-xl);border:1px solid var(--border);color:var(--faint);background:var(--surface)}.rung.on{color:var(--brand-ink);border-color:var(--brand-wash);background:var(--brand-wash)}.escape{align-self:flex-start;display:flex;align-items:center;gap:9px;margin-top:3px;flex-wrap:wrap}.escbtn{font-size:var(--fs-micro);font-weight:600;padding:6px 12px;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface);color:var(--text-2);cursor:pointer}.escbtn.primary{background:var(--brand);color:var(--primary-foreground);border-color:var(--brand)}.escape .note{font-size:var(--fs-micro);color:var(--faint);font-style:italic}.phone-page{min-height:100dvh;background:radial-gradient(120% 80% at 50% 0%,#edeef0,#e2e4e7 60%,#d7dade);display:flex;align-items:center;justify-content:center;padding:28px 16px}.phone-frame{width:var(--phone-w);max-width:100%;height:var(--phone-h);max-height:calc(100dvh - 56px);background:#111317;border-radius:44px;padding:10px;box-shadow:var(--shadow-device);position:relative}.phone-screen{position:relative;width:100%;height:100%;background:var(--bg);border-radius:36px;overflow:hidden;display:flex}.phone-frame:before{content:"";position:absolute;top:18px;left:50%;transform:translate(-50%);width:120px;height:26px;background:#111317;border-radius:var(--r-lg);z-index:30}.app-root{position:relative;flex:1;min-width:0;display:flex;flex-direction:column;background:var(--bg)}.app-scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.app-root.has-tabbar .app-scroll{padding-bottom:calc(var(--tabbar-h) + var(--safe-bottom))}.screen{display:flex;flex-direction:column;min-height:100%}.screen-header{position:sticky;top:0;z-index:10;background:#f8f9fadb;backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid var(--border-soft);padding:calc(var(--app-top-inset) + 12px) 20px 12px}.screen-header.with-back{display:flex;align-items:center;gap:12px}.screen-title,.phead-h1{font-size:var(--fs-h1);font-weight:var(--fw-x);letter-spacing:var(--ls-tight);line-height:1.15;color:var(--ink)}.screen-header.with-back .screen-title{font-size:var(--fs-h2)}.screen-subtitle,.phead-sub{margin-top:3px;font-size:var(--fs-sm);color:var(--text-muted);font-weight:var(--fw-medium)}.back-btn{flex:0 0 auto;width:2.25rem;height:2.25rem;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--ink);font-size:var(--fs-lede);line-height:1;cursor:pointer;display:grid;place-items:center}.back-btn:active{transform:scale(.94)}.screen-body{flex:1;padding:16px 16px 28px;display:flex;flex-direction:column;gap:14px;animation:screen-in .26s var(--ease-out)}@keyframes screen-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.mcard{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--r-2xl);box-shadow:var(--shadow-soft);padding:16px 18px;text-align:left;width:100%}.mcard-tappable{cursor:pointer;transition:transform .12s ease,box-shadow .12s ease;display:flex;flex-direction:column;gap:8px}.mcard-tappable:active{transform:scale(.985);box-shadow:var(--shadow-card)}.mcard-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.mcard-eyebrow{font-family:var(--mono);font-size:var(--fs-micro);font-weight:700;letter-spacing:.04em;color:var(--text-muted)}.mcard-title{font-size:var(--fs-h3);font-weight:700;letter-spacing:-.2px;color:var(--ink);margin-top:2px}.mcard-meta{font-size:var(--fs-sm);color:var(--text-2)}.stub-note{font-size:var(--fs-xs);color:var(--faint);font-style:italic}.text-input{width:100%;box-sizing:border-box;font:inherit;font-size:var(--fs-h3);color:var(--ink);background:var(--bg);border:1px solid var(--border);border-radius:var(--r-lg);padding:11px 12px}.text-input:focus{outline:none;border-color:var(--brand);background:var(--surface)}.pace-chip{flex:0 0 auto;font-size:var(--fs-micro);font-weight:700;letter-spacing:.02em;padding:4px 10px;border-radius:var(--r-xl);white-space:nowrap}.pace-on_pace{color:var(--green-ink);background:var(--green-wash)}.pace-slipping{color:var(--amber-ink);background:var(--amber-wash)}.pace-behind{color:var(--red-ink);background:var(--red-wash)}.pace-ahead{color:var(--brand-ink);background:var(--brand-wash)}.btn-primary{width:100%;border:none;border-radius:var(--r-md);background:var(--brand);color:var(--primary-foreground);font-family:var(--sans);font-size:var(--fs-h3);font-weight:700;padding:15px 18px;cursor:pointer;box-shadow:0 4px 14px #27844452;transition:transform .12s ease,background .12s ease}.btn-primary:active{transform:scale(.98);background:var(--brand-2)}.btn-ghost{width:100%;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);color:var(--text-2);font-family:var(--sans);font-size:var(--fs-body);font-weight:600;padding:13px 18px;cursor:pointer;transition:transform .12s ease}.btn-ghost:active{transform:scale(.98)}.onboarding-screen{flex:1;display:flex;flex-direction:column;justify-content:space-between;padding:calc(var(--safe-top) + 48px) 24px calc(var(--safe-bottom) + 28px);background:radial-gradient(120% 60% at 50% 0%,var(--brand-wash) 0%,var(--bg) 55%)}.onboarding-hero{display:flex;flex-direction:column;gap:14px;margin-top:24px}.onboarding-mark{font-family:var(--mono);font-size:var(--fs-body);font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--brand-ink)}.onboarding-title{font-size:var(--fs-display);line-height:1.15;font-weight:700;letter-spacing:-.6px;color:var(--ink)}.onboarding-sub{font-size:var(--fs-body);line-height:1.5;color:var(--text-2)}.onboarding-actions{display:flex;flex-direction:column;gap:10px}.tabbar{position:absolute;left:0;right:0;bottom:0;z-index:20;height:calc(var(--tabbar-h) + var(--safe-bottom));padding-bottom:var(--safe-bottom);display:grid;grid-template-columns:repeat(var(--tab-count, 5),1fr);background:#ffffffe6;backdrop-filter:saturate(180%) blur(18px);-webkit-backdrop-filter:saturate(180%) blur(18px);border-top:1px solid var(--border-soft)}.tabbar-item{border:none;background:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--text-muted);padding:6px 0 4px;transition:color .15s ease,transform .12s ease}.tabbar-item.on{color:var(--brand)}.tabbar-item:active{transform:scale(.92)}.tabbar-icon{display:grid;place-items:center}.tabbar-label{font-size:var(--fs-micro);font-weight:600;letter-spacing:.01em}@media (max-width: 440px){:root{--app-top-inset: max(var(--safe-top), 10px)}.phone-page{padding:0;background:var(--bg);align-items:stretch}.phone-frame{width:100%;height:100dvh;max-height:none;border-radius:0;padding:0;box-shadow:none}.phone-screen{border-radius:0}.phone-frame:before{display:none}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0ms!important;scroll-behavior:auto!important}}button:has(>svg){display:inline-flex;align-items:center;justify-content:center;gap:7px}button>svg,a>svg{flex:none;vertical-align:-.15em}svg.is-open{transform:rotate(180deg)}.ds-page{min-height:100dvh;background:var(--bg)}.ds-app{display:grid;grid-template-columns:216px 1fr;height:100dvh}.ds-sidebar{display:flex;flex-direction:column;background:var(--sidebar);border-right:1px solid var(--line);padding:var(--sp-9) var(--sp-6)}.ds-brand{display:flex;align-items:center;gap:10px;padding:0 var(--sp-2) var(--sp-12);min-width:0}.ds-nav{display:flex;flex-direction:column;gap:2px;flex:1}.ds-nav-item{display:flex;align-items:center;gap:11px;width:100%;border:none;background:none;cursor:pointer;padding:9px 11px;border-radius:var(--r-sm);color:var(--text-2);font-family:var(--sans);font-size:var(--fs-body);font-weight:500;text-align:left;transition:background .12s ease,color .12s ease}.ds-nav-item:hover{background:var(--rail-2)}.ds-nav-item.on{background:var(--brand-wash);color:var(--brand-ink);font-weight:600}.ds-nav-item--foot{margin-top:auto}.ds-nav-icon{display:grid;place-items:center;width:18px;height:18px;flex:0 0 auto;color:currentColor}.ds-nav-icon svg{width:18px;height:18px}.ds-main{--app-top-inset: 6px;position:relative;overflow-y:auto;height:100dvh;background:var(--bg)}.ds-main-inner{max-width:980px;margin:0 auto;min-height:100%}.ds-main .screen-body{padding:20px 28px 40px;gap:16px}.ds-main .screen-header,.ds-main .m9 .phead,.ds-main .m9 .nested-head{padding-left:28px;padding-right:28px}.ds-main .screen.m9>:not(.phead):not(.nested-head){padding-left:28px;padding-right:28px}.home-cards{display:flex;flex-direction:column;gap:14px}.ds-main .home-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.brand-logo{display:inline-flex;align-items:center;gap:.7em;color:var(--ink, #1c1a16);font-family:var(--sans, "Figtree", sans-serif);line-height:1;max-width:100%}.brand-logo__tile{display:grid;width:2.375rem;height:2.375rem;flex:none;place-items:center;border-radius:var(--r-sm);background:var(--brand-mark, #39b54a);color:#fff;box-shadow:var(--shadow-brand, 0 12px 24px -14px rgba(57, 181, 74, .85))}.brand-logo__tile svg{width:58%;height:58%}.brand-logo__copy{display:flex;min-width:0;flex-direction:column;gap:.32em}.brand-logo--primary{width:100%;justify-content:center}.brand-logo--primary .brand-logo__copy{max-width:calc(100% - 3.075rem)}.brand-logo--primary .brand-logo__wordmark{white-space:normal}.brand-logo__wordmark{color:var(--ink, #1c1a16);font-size:1.25em;font-weight:800;letter-spacing:-.035em;white-space:nowrap}.brand-logo .hl{box-shadow:inset 0 -.56em 0 var(--lime, #b6f44a);padding:0 .04em}.brand-logo__tagline{color:var(--brand-ink, #1a5e32);font-size:.65em;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.brand-logo--compact{width:100%;gap:.5625rem}.brand-logo--compact .brand-logo__tile{width:1.875rem;height:1.875rem;border-radius:var(--r-sm)}.brand-logo--compact .brand-logo__copy{max-width:calc(100% - 2.4375rem)}.brand-logo--compact .brand-logo__wordmark{font-size:var(--fs-body);line-height:1.05;white-space:normal}.brand-logo--inverse .brand-logo__tile{background:#fff3;color:#fff;box-shadow:none}.brand-logo--inverse .brand-logo__wordmark,.brand-logo--inverse .brand-logo__tagline{color:#fff}.brand-logo--inverse .hl{color:#20370a}.brand-logo--compact.brand-logo--inverse .brand-logo__tile{width:2.25rem;height:2.25rem;border-radius:var(--r-sm)}.brand-logo--compact.brand-logo--inverse .brand-logo__copy{max-width:calc(100% - 2.8125rem)}.brand-logo--compact.brand-logo--inverse .brand-logo__wordmark{font-size:var(--fs-h3)}.brand-logo--stacked{align-items:flex-start}.brand-logo--stacked .brand-logo__wordmark{display:inline-block;max-width:7.5em;white-space:normal}.brand-logo--icon{gap:0}.onboarding{--paper: #FAF6EC;--surface: #FFFDF8;--paper-tan: #ECE5D4;--ink: #1C1A16;--ink-2: #3A362E;--muted: #8A8474;--hair: #E7DFCE;--hair-2: #EFE8D8;--track: #EAE2CF;--brand: #39B54A;--brand-hover: #2C8F3A;--ui-green: #278444;--ui-green-hover: #1F6C38;--ui-green-ink: #1A5E32;--green-wash: #E4F3E7;--green-line: #C2DECA;--lime: #B6F44A;--good: #33A95A;--good-ink: #1E7A3C;--good-wash: #E4F3E7;--amber: #E0922A;--amber-ink: #8B5710;--amber-wash: #F7ECD6;--red: #DC4C3E;--red-ink: #B23227;--red-wash: #F7E1DC;--font-sans: "Figtree", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--r-sm: 9px;--r-md: 12px;--r-lg: 16px;--r-xl: 22px;--r-pill: 999px;--shadow-brand: 0 12px 24px -14px rgba(57, 181, 74, .85);--shadow-card: 0 40px 80px -50px rgba(30, 30, 20, .4);--paper-dot: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%3E%3Ccircle%20cx='1'%20cy='1'%20r='1'%20fill='rgba(0,0,0,.05)'/%3E%3C/svg%3E");--paper-dot-size: 24px 24px;min-height:100dvh;display:grid;padding:clamp(18px,3vw,44px);color:var(--ink);background-color:var(--paper);background-image:var(--paper-dot);background-size:var(--paper-dot-size);font-family:var(--font-sans);line-height:1.5;-webkit-font-smoothing:antialiased}.onboarding *{box-sizing:border-box}.onboarding button,.onboarding input{font:inherit}.onboarding button{color:inherit;touch-action:manipulation}.onboarding button:not(:disabled){cursor:pointer}.onboarding svg{display:block}.onboarding .icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.onboarding :focus-visible{outline:3px solid var(--lime);outline-offset:3px}.onboarding .hl{padding:0 .04em;background-color:var(--lime);box-decoration-break:clone;-webkit-box-decoration-break:clone}.onboarding .stage{width:100%;min-height:720px;display:grid;grid-template-columns:minmax(260px,320px) minmax(0,1fr);overflow:clip;border:1px solid var(--hair);border-radius:var(--r-xl);background:var(--surface);box-shadow:var(--shadow-card)}.onboarding .rail{display:flex;flex-direction:column;padding:30px;border-right:1px solid var(--hair);background:var(--paper-tan)}.onboarding .brand{display:flex;align-items:center;gap:13px;color:var(--ink)}.onboarding .brand-mark{width:46px;height:46px;display:grid;place-items:center;flex:none;border-radius:var(--r-md);color:#fff;background:var(--brand);box-shadow:var(--shadow-brand)}.onboarding .brand-mark .icon{width:28px;height:28px;stroke-width:3}.onboarding .brand-wordmark{font-size:var(--fs-lede);font-weight:800;letter-spacing:-.02em;line-height:1.1}.onboarding .brand-tagline{margin-top:5px;color:var(--muted);font-size:var(--fs-micro);font-weight:800;letter-spacing:.18em;text-transform:uppercase}.onboarding .rail-intro{margin:48px 0 28px}.onboarding .eyebrow{color:var(--ui-green-ink);font-size:var(--fs-micro);font-weight:800;letter-spacing:.14em;text-transform:uppercase}.onboarding .rail-intro h2{margin:9px 0;font-size:var(--fs-h1);line-height:1.08;letter-spacing:-.025em}.onboarding .rail-intro p{margin:0;color:var(--ink-2);font-size:var(--fs-body)}.onboarding .stepper{position:relative;display:grid;gap:10px;margin:0;padding:0;list-style:none}.onboarding .stepper:before{content:"";position:absolute;top:25px;bottom:25px;left:19px;width:1px;background:var(--hair)}.onboarding .stepper li{position:relative;display:grid;grid-template-columns:40px 1fr;gap:12px;align-items:center;min-height:58px;color:var(--muted)}.onboarding .step-dot{width:40px;height:40px;display:grid;place-items:center;z-index:1;border:1px solid var(--hair);border-radius:var(--r-md);color:var(--muted);background:var(--surface);font-family:var(--font-mono);font-size:var(--fs-micro);font-weight:600}.onboarding .step-copy strong{display:block;color:currentColor;font-size:var(--fs-body)}.onboarding .step-copy span{display:block;margin-top:2px;font-size:var(--fs-micro)}.onboarding .stepper li.active{color:var(--ink)}.onboarding .stepper li.active .step-dot{border-color:var(--brand);color:#fff;background:var(--brand);box-shadow:var(--shadow-brand)}.onboarding .stepper li.done{color:var(--ink-2)}.onboarding .stepper li.done .step-dot{border-color:var(--green-line);color:var(--good-ink);background:var(--green-wash)}.onboarding .sample-card{margin-top:auto;padding:16px;border:1px solid var(--hair);border-radius:var(--r-lg);background:var(--surface)}.onboarding .sample-card span{display:block;color:var(--muted);font-size:var(--fs-xs)}.onboarding .sample-card button{min-height:44px;display:inline-flex;align-items:center;gap:7px;padding:8px 0 0;border:0;color:var(--ui-green-ink);background:transparent;font-size:var(--fs-sm);font-weight:800}.onboarding .sample-card .icon{width:16px;height:16px}.onboarding .panel{min-width:0;min-height:720px;display:grid;grid-template-rows:minmax(0,1fr) auto}.onboarding .pages{position:relative;min-height:0;overflow:auto;padding:clamp(28px,4vw,46px)}.onboarding .footer{display:flex;align-items:center;gap:10px;min-height:84px;padding:15px 24px;border-top:1px solid var(--hair);background:var(--surface)}.onboarding .footer-note{margin-right:auto;color:var(--muted);font-size:var(--fs-micro)}.onboarding .back-btn,.onboarding .primary-btn{min-height:52px;border-radius:var(--r-md);font-weight:800}.onboarding .back-btn{width:52px;display:grid;place-items:center;border:1px solid var(--hair);color:var(--ink-2);background:var(--surface)}.onboarding .back-btn:hover{border-color:var(--green-line);color:var(--ui-green-ink)}.onboarding .primary-btn{min-width:220px;display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:0 23px;border:0;color:#fff;background:var(--brand);box-shadow:var(--shadow-brand);font-size:var(--fs-body)}.onboarding .primary-btn:hover{background:var(--brand-hover)}.onboarding .primary-btn:disabled{cursor:not-allowed;opacity:.45;box-shadow:none}.onboarding .primary-btn .icon{width:17px;height:17px}.onboarding .footer.processing{justify-content:center}.onboarding .footer.processing .footer-note{margin:0}.onboarding .topline{min-height:28px;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.onboarding .phase{display:inline-flex;align-items:center;gap:8px;color:var(--ui-green-ink);font-size:var(--fs-micro);font-weight:800;letter-spacing:.13em;text-transform:uppercase}.onboarding .phase:before{content:"";width:8px;height:8px;border-radius:3px;background:var(--brand)}.onboarding .time-note{color:var(--muted);font-size:var(--fs-xs);font-weight:600;text-align:right}.onboarding h1{max-width:17ch;margin:0;font-size:clamp(34px,4vw,48px);line-height:1.03;letter-spacing:-.04em}.onboarding .lede{max-width:62ch;margin:14px 0 0;color:var(--ink-2);font-size:var(--fs-h3);line-height:1.6}.onboarding .mini-label{color:var(--muted);font-size:var(--fs-micro);font-weight:800;letter-spacing:.11em;text-transform:uppercase}.onboarding .meta{color:var(--muted);font-size:var(--fs-xs)}.onboarding .welcome-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,350px);gap:34px;align-items:start}.onboarding .promise-list{display:grid;margin-top:24px}.onboarding .promise{display:grid;grid-template-columns:34px 1fr;gap:12px;padding:13px 0;border-top:1px solid var(--hair)}.onboarding .promise:first-child{border-top:0}.onboarding .promise-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:var(--r-sm);color:var(--ui-green-ink);background:var(--green-wash)}.onboarding .promise-icon .icon{width:17px;height:17px}.onboarding .promise b{display:block;font-size:var(--fs-body)}.onboarding .promise p{margin:3px 0 0;color:var(--muted);font-size:var(--fs-xs)}.onboarding .forecast-card{padding:20px;border:1px solid var(--hair);border-radius:var(--r-lg);background:var(--surface);box-shadow:0 18px 45px -38px #1c1a1699}.onboarding .forecast-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.onboarding .course-code{color:var(--ui-green-ink);font-family:var(--font-mono);font-size:var(--fs-micro);font-weight:600;letter-spacing:.08em;text-transform:uppercase}.onboarding .forecast-head h3{margin:5px 0 2px;font-size:var(--fs-lede);letter-spacing:-.02em}.onboarding .forecast-head p{margin:0;color:var(--muted);font-size:var(--fs-micro)}.onboarding .forecast-badge{padding:5px 9px;border-radius:var(--r-pill);color:var(--ui-green-ink);background:var(--lime);font-size:var(--fs-micro);font-weight:800;letter-spacing:.07em;text-transform:uppercase;white-space:nowrap}.onboarding .forecast-rule{height:1px;margin:17px 0 13px;background:var(--hair)}.onboarding .topic-row{padding:11px 0;border-top:1px solid var(--hair-2)}.onboarding .topic-row:first-of-type{border-top:0}.onboarding .topic-top{display:flex;justify-content:space-between;gap:10px;font-size:var(--fs-xs);font-weight:700}.onboarding .likelihood{color:var(--muted);font-size:var(--fs-micro)}.onboarding .bar{height:7px;margin-top:8px;overflow:hidden;border-radius:4px;background:var(--track)}.onboarding .bar span{display:block;height:100%;border-radius:inherit;background:var(--good)}.onboarding .forecast-foot{display:flex;gap:8px;margin-top:13px;padding:12px;border:1px solid var(--green-line);border-radius:var(--r-md);color:var(--ui-green-ink);background:var(--green-wash);font-size:var(--fs-micro);font-weight:700}.onboarding .focus-wrap{width:min(560px,100%);margin:68px auto 0}.onboarding .focus-wrap.narrow{width:min(510px,100%)}.onboarding .focus-wrap h1{max-width:none;font-size:clamp(32px,4vw,42px)}.onboarding .focus-wrap .lede{margin-bottom:28px}.onboarding .field-label{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px;color:var(--ink-2);font-size:var(--fs-micro);font-weight:800;letter-spacing:.09em;text-transform:uppercase}.onboarding .text-field{width:100%;min-height:54px;padding:0 16px;border:1px solid var(--hair);border-radius:var(--r-md);outline:0;color:var(--ink);background:var(--surface);font-size:var(--fs-h3)}.onboarding .text-field:focus{border-color:var(--ui-green);box-shadow:0 0 0 4px var(--green-wash)}.onboarding .trust-row{display:flex;align-items:center;gap:9px;margin-top:14px;color:var(--muted);font-size:var(--fs-xs)}.onboarding .trust-dot{width:22px;height:22px;display:grid;place-items:center;flex:none;border-radius:var(--r-sm);color:var(--good-ink);background:var(--good-wash)}.onboarding .trust-dot .icon{width:13px;height:13px;stroke-width:3}.onboarding .email-pill{min-height:36px;display:inline-flex;align-items:center;gap:7px;padding:7px 11px;border:1px solid var(--hair);border-radius:var(--r-pill);color:var(--ink-2);background:var(--paper);font-size:var(--fs-xs);font-weight:700}.onboarding .email-pill .icon{width:15px;height:15px;color:var(--ui-green-ink)}.onboarding .code-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:9px;margin-top:24px}.onboarding .code-grid input{width:100%;height:62px;border:1px solid var(--hair);border-radius:var(--r-md);outline:0;text-align:center;color:var(--ink);background:var(--surface);font-family:var(--font-mono);font-size:var(--fs-h2);font-weight:600}.onboarding .code-grid input:focus{border-color:var(--ui-green);box-shadow:0 0 0 4px var(--green-wash)}.onboarding .inline-links{display:flex;flex-wrap:wrap;gap:18px;margin-top:16px}.onboarding .text-link{min-height:44px;border:0;padding:8px 0;color:var(--ui-green-ink);background:transparent;font-size:var(--fs-xs);font-weight:800}.onboarding .text-link:hover{text-decoration:underline}.onboarding .consent-row{display:flex;align-items:flex-start;gap:9px;margin-top:16px;color:var(--muted);font-size:var(--fs-xs);line-height:1.45}.onboarding .consent-row input{margin:2px 0 0;width:16px;height:16px;flex:none;accent-color:var(--ui-green);cursor:pointer}.onboarding .consent-row a{color:var(--ui-green-ink);text-decoration:underline;text-underline-offset:2px}.onboarding .inline-error{margin-top:12px;color:var(--red-ink);font-size:var(--fs-xs);font-weight:700}.onboarding .resend-status{margin-top:12px;color:var(--good-ink);font-size:var(--fs-xs);font-weight:700}.onboarding .feature-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:var(--r-sm);color:var(--ui-green-ink);background:var(--green-wash)}.onboarding .feature-icon .icon{width:17px;height:17px}.onboarding .upload-layout{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:20px;margin-top:26px}.onboarding .drop-zone{min-height:260px;display:grid;place-items:center;padding:28px;border:2px dashed var(--green-line);border-radius:var(--r-lg);color:var(--ink);background:var(--green-wash);text-align:center;transition:border-color .16s ease,background .16s ease}.onboarding .drop-zone:hover{border-color:var(--ui-green);background:var(--surface)}.onboarding .upload-icon{width:56px;height:56px;display:grid;place-items:center;margin:0 auto 14px;border-radius:var(--r-lg);color:#fff;background:var(--brand);box-shadow:var(--shadow-brand)}.onboarding .upload-icon .icon{width:25px;height:25px}.onboarding .drop-zone b{display:block;font-size:var(--fs-h3)}.onboarding .drop-zone p{margin:6px 0 0;color:var(--muted);font-size:var(--fs-xs)}.onboarding .file-ready{display:none;align-items:center;gap:13px;text-align:left}.onboarding .drop-zone.selected .drop-copy{display:none}.onboarding .drop-zone.selected .file-ready{display:flex}.onboarding .file-icon{width:48px;height:48px;display:grid;place-items:center;flex:none;border-radius:var(--r-md);color:var(--ui-green-ink);background:var(--surface);font-family:var(--font-mono);font-size:var(--fs-micro);font-weight:600}.onboarding .file-ready strong,.onboarding .file-ready span{display:block}.onboarding .file-ready strong{font-size:var(--fs-sm)}.onboarding .file-ready span{margin-top:3px;color:var(--muted);font-size:var(--fs-micro)}.onboarding .title-field{display:grid;gap:6px;margin:0 0 18px}.onboarding .drop-zone-wrap{position:relative;display:grid;transition:transform .16s ease}.onboarding .drop-zone-wrap:hover{transform:translateY(-2px)}.onboarding .drop-zone-wrap .drop-zone{width:100%}.onboarding .file-clear{position:absolute;top:10px;right:10px;width:28px;height:28px;display:grid;place-items:center;border:1px solid var(--hair);border-radius:var(--r-pill);background:var(--surface);color:var(--muted);font-size:var(--fs-h3);line-height:1;cursor:pointer}.onboarding .file-clear:hover{color:var(--red-ink);border-color:var(--red)}.onboarding .privacy-card{padding:18px;border:1px solid var(--hair);border-radius:var(--r-lg);background:var(--surface)}.onboarding .privacy-card .feature-icon{margin-bottom:30px}.onboarding .privacy-card h3{margin:0 0 8px;font-size:var(--fs-body)}.onboarding .privacy-card p{margin:0;color:var(--muted);font-size:var(--fs-xs)}.onboarding .accepted{margin-top:20px;padding-top:15px;border-top:1px solid var(--hair);color:var(--ink-2);font-size:var(--fs-micro);font-weight:800}.onboarding .processing-wrap{width:min(560px,100%);margin:52px auto 0;text-align:center}.onboarding .loader{width:70px;height:70px;display:grid;place-items:center;margin:0 auto 20px;border:5px solid var(--green-line);border-top-color:var(--brand);border-radius:50%;animation:onboarding-spin 1s linear infinite}.onboarding .loader .icon{width:24px;height:24px;color:var(--ui-green-ink);animation:onboarding-spin-back 1s linear infinite}.onboarding .processing-wrap h1{max-width:none;font-size:clamp(30px,4vw,39px)}.onboarding .scan-list{width:min(430px,100%);margin:26px auto 0;overflow:hidden;border:1px solid var(--hair);border-radius:var(--r-lg);background:var(--surface);text-align:left}.onboarding .scan-row{display:flex;align-items:center;gap:11px;padding:12px 14px;border-top:1px solid var(--hair-2);color:var(--ink-2);font-size:var(--fs-xs)}.onboarding .scan-row:first-child{border-top:0}.onboarding .scan-check{width:23px;height:23px;display:grid;place-items:center;flex:none;border-radius:var(--r-sm);color:#fff;background:var(--ui-green)}.onboarding .scan-check .icon{width:13px;height:13px;stroke-width:3}.onboarding .scan-row.pending{color:var(--muted)}.onboarding .scan-row.pending .scan-check{color:var(--ui-green-ink);background:var(--green-wash)}.onboarding .review-page{padding-top:28px}.onboarding .review-page h1{font-size:clamp(30px,4vw,40px)}.onboarding .course-summary{display:flex;align-items:center;gap:12px;margin-top:19px;padding:14px 15px;border:1px solid var(--green-line);border-radius:var(--r-md);background:var(--green-wash)}.onboarding .course-summary h3{margin:0 0 2px;font-size:var(--fs-body)}.onboarding .course-summary p{margin:0;color:var(--muted);font-size:var(--fs-micro)}.onboarding .course-identity{min-width:0;flex:1}.onboarding .course-monogram{width:42px;height:42px;display:grid;place-items:center;flex:none;border-radius:var(--r-sm);color:#fff;background:var(--ui-green);font-family:var(--font-mono);font-size:var(--fs-micro);font-weight:600}.onboarding .course-actions{display:flex;gap:7px;margin-left:auto}.onboarding .small-btn{min-height:44px;padding:8px 12px;border:1px solid var(--hair);border-radius:var(--r-sm);color:var(--ink-2);background:var(--surface);font-size:var(--fs-micro);font-weight:800}.onboarding .small-btn:hover{border-color:var(--green-line);color:var(--ui-green-ink)}.onboarding .review-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.onboarding .review-card{padding:15px;border:1px solid var(--hair);border-radius:var(--r-md);background:var(--surface)}.onboarding .review-card h3{margin:0 0 9px;color:var(--muted);font-size:var(--fs-micro);font-weight:800;letter-spacing:.09em;text-transform:uppercase}.onboarding .data-row{display:flex;justify-content:space-between;gap:10px;padding:4px 0;color:var(--ink-2);font-size:var(--fs-micro)}.onboarding .data-row strong{color:var(--ink);font-family:var(--font-mono);font-size:var(--fs-micro)}.onboarding .editable .data-row{margin:2px 0;padding:5px 7px;border-radius:var(--r-sm);background:var(--paper)}.onboarding .data-total{margin-top:7px;padding-top:8px;border-top:1px solid var(--hair);font-weight:800}.onboarding .data-total strong{color:var(--good-ink)}.onboarding .warning{grid-column:1 / -1;display:flex;align-items:center;gap:11px;padding:11px 13px;border:1px solid #E8C98E;border-radius:var(--r-md);color:var(--amber-ink);background:var(--amber-wash)}.onboarding .warning-mark{width:28px;height:28px;display:grid;place-items:center;flex:none;border-radius:var(--r-sm);color:var(--amber-ink);background:#f1d8a8}.onboarding .warning-mark .icon{width:16px;height:16px}.onboarding .warning b,.onboarding .warning span{display:block}.onboarding .warning b{font-size:var(--fs-xs)}.onboarding .warning span{margin-top:2px;font-size:var(--fs-micro)}.onboarding .warning .small-btn{margin-left:auto;border-color:#d8b46d;color:var(--amber-ink);white-space:nowrap}.onboarding .identity-edit{display:grid;gap:6px}.onboarding .identity-input{width:100%;min-height:34px;padding:6px 9px;border:1px solid var(--hair);border-radius:var(--r-sm);outline:0;color:var(--ink);background:var(--surface);font-size:var(--fs-sm)}.onboarding .identity-input:focus{border-color:var(--ui-green);box-shadow:0 0 0 3px var(--green-wash)}.onboarding .review-note{margin:10px 0 0;color:var(--muted);font-size:var(--fs-micro);line-height:1.5}.onboarding .review-note-warn{color:var(--amber-ink);font-weight:700}.onboarding .review-empty{margin:2px 0;color:var(--muted);font-size:var(--fs-micro)}.onboarding .gap-flag{display:flex;align-items:center;gap:8px;padding:4px 0;color:var(--ink-2);font-size:var(--fs-micro)}.onboarding .gap-flag span{flex:1}.onboarding .gap-message{margin:8px 0 0;color:var(--amber-ink);font-size:var(--fs-micro);font-weight:700}.onboarding .override-link{display:inline-block;margin-top:8px;border:0;padding:4px 0;color:var(--ui-green-ink);background:transparent;font-size:var(--fs-micro);font-weight:800;text-align:left}.onboarding .override-link:hover{text-decoration:underline}.onboarding .reread-confirm{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:10px;color:var(--ink-2);font-size:var(--fs-xs)}.onboarding .edit-row{align-items:center}.onboarding .edit-name{flex:1;min-width:0;min-height:32px;padding:5px 8px;border:1px solid var(--hair);border-radius:var(--r-sm);outline:0;color:var(--ink);background:var(--surface);font-size:var(--fs-xs)}.onboarding .edit-weight{display:inline-flex;align-items:center;gap:3px}.onboarding .edit-weight-input{width:52px;min-height:32px;padding:5px 6px;border:1px solid var(--hair);border-radius:var(--r-sm);outline:0;text-align:right;color:var(--ink);background:var(--surface);font-family:var(--font-mono);font-size:var(--fs-xs)}.onboarding .edit-pct{color:var(--muted);font-size:var(--fs-micro)}.onboarding .edit-date{width:88px;min-height:32px;padding:5px 8px;border:1px solid var(--hair);border-radius:var(--r-sm);outline:0;color:var(--ink);background:var(--surface);font-size:var(--fs-xs)}.onboarding .edit-name:focus,.onboarding .edit-weight-input:focus,.onboarding .edit-date:focus{border-color:var(--ui-green);box-shadow:0 0 0 3px var(--green-wash)}.onboarding .edit-rm{width:28px;min-height:28px;flex:none;border:1px solid var(--hair);border-radius:var(--r-sm);color:var(--muted);background:var(--surface);font-size:var(--fs-body);line-height:1}.onboarding .edit-rm:hover{border-color:var(--red);color:var(--red-ink)}.onboarding .add-row{margin-top:6px;border:0;padding:4px 0;color:var(--ui-green-ink);background:transparent;font-size:var(--fs-micro);font-weight:800}.onboarding .add-row:hover{text-decoration:underline}.onboarding .empty-recovery{margin-bottom:8px}.onboarding .empty-recovery p{margin:0 0 8px;color:var(--muted);font-size:var(--fs-micro)}.onboarding .empty-recovery-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.onboarding .more-layout,.onboarding .complete-wrap{width:min(650px,100%);margin:42px auto 0}.onboarding .more-layout h1,.onboarding .complete-wrap h1{max-width:none;font-size:clamp(32px,4vw,42px)}.onboarding .added-label{margin:25px 0 8px;color:var(--muted);font-size:var(--fs-micro);font-weight:800;letter-spacing:.1em;text-transform:uppercase}.onboarding .course-row{display:flex;align-items:center;gap:12px;padding:15px;border:1px solid var(--hair);border-radius:var(--r-md);background:var(--surface)}.onboarding .course-chip{padding:7px 9px;border-radius:var(--r-sm);color:var(--ui-green-ink);background:var(--green-wash);font-family:var(--font-mono);font-size:var(--fs-micro);font-weight:600}.onboarding .course-row h3{margin:0 0 2px;font-size:var(--fs-body)}.onboarding .course-row p{margin:0;color:var(--muted);font-size:var(--fs-micro)}.onboarding .ready-chip{margin-left:auto;padding:5px 9px;border:1px solid var(--green-line);border-radius:var(--r-pill);color:var(--good-ink);background:var(--good-wash);font-size:var(--fs-micro);font-weight:800;white-space:nowrap}.onboarding .course-row .row-remove{width:26px;height:26px;display:grid;place-items:center;flex:none;border:1px solid var(--hair);border-radius:var(--r-pill);background:var(--surface);color:var(--muted);font-size:var(--fs-body);line-height:1;cursor:pointer}.onboarding .course-row .row-remove:hover{color:var(--red-ink);border-color:var(--red)}.onboarding .course-row .row-actions{display:flex;gap:8px;flex:none;margin-left:auto}.onboarding .course-row .row-remove-confirm{padding:7px 12px;border:1px solid var(--red);border-radius:var(--r-sm);background:var(--red-wash);color:var(--red-ink);font-weight:600;font-size:var(--fs-xs);cursor:pointer}.onboarding .course-row .row-keep{padding:7px 12px;border:1px solid var(--hair);border-radius:var(--r-sm);background:var(--surface);color:var(--ink-2);font-weight:600;font-size:var(--fs-xs);cursor:pointer}.onboarding .add-card{width:100%;min-height:72px;display:flex;align-items:center;gap:12px;margin-top:12px;padding:15px;border:1px dashed var(--hair);border-radius:var(--r-md);color:var(--ink-2);background:var(--paper);text-align:left}.onboarding .add-card:hover{border-color:var(--ui-green);color:var(--ui-green-ink);background:var(--green-wash)}.onboarding .add-mark{width:38px;height:38px;display:grid;place-items:center;flex:none;border-radius:var(--r-sm);color:var(--ui-green-ink);background:var(--green-wash)}.onboarding .add-mark .icon{width:18px;height:18px}.onboarding .add-card b,.onboarding .add-card span{display:block}.onboarding .add-card b{font-size:var(--fs-sm)}.onboarding .add-card span{margin-top:2px;color:var(--muted);font-size:var(--fs-micro)}.onboarding .more-guidance{margin:10px 0 0;color:var(--muted);font-size:var(--fs-micro);line-height:1.5}.onboarding .complete-wrap{text-align:center}.onboarding .complete-mark{width:70px;height:70px;display:grid;place-items:center;margin:0 auto 19px;border-radius:var(--r-xl);color:#fff;background:var(--brand);box-shadow:var(--shadow-brand)}.onboarding .complete-mark .icon{width:37px;height:37px;stroke-width:3}.onboarding .complete-wrap .lede{margin-right:auto;margin-left:auto}.onboarding .stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:25px}.onboarding .stat-card{padding:16px;border:1px solid var(--hair);border-radius:var(--r-md);background:var(--surface);text-align:left}.onboarding .stat-card span{display:block;color:var(--muted);font-size:var(--fs-micro);font-weight:800;letter-spacing:.08em;text-transform:uppercase}.onboarding .stat-card strong{display:block;margin-top:5px;font-family:var(--font-mono);font-size:var(--fs-body)}.onboarding .ready-note{display:flex;align-items:center;gap:10px;margin-top:12px;padding:14px 15px;border:1px solid var(--green-line);border-radius:var(--r-md);color:var(--ui-green-ink);background:var(--green-wash);text-align:left;font-size:var(--fs-xs);font-weight:700}@media (prefers-reduced-motion: reduce){.onboarding *,.onboarding *:before,.onboarding *:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (max-width: 1023px){.onboarding{padding:18px}.onboarding .stage{min-height:calc(100dvh - 36px);grid-template-columns:240px minmax(0,1fr)}.onboarding .rail{padding:22px}.onboarding .rail-intro{margin:32px 0 20px}.onboarding .rail-intro p,.onboarding .step-copy span,.onboarding .sample-card{display:none}.onboarding .pages{padding:30px}.onboarding .welcome-grid{grid-template-columns:1fr}.onboarding .forecast-card{display:none}.onboarding .upload-layout{grid-template-columns:1fr}.onboarding .privacy-card{display:grid;grid-template-columns:auto 1fr;gap:0 13px}.onboarding .privacy-card .feature-icon{grid-row:1 / 3;margin:0}.onboarding .privacy-card .accepted{grid-column:1 / -1}}@media (max-width: 767px){.onboarding{padding:0}.onboarding .stage{min-height:100dvh;display:block;border:0;border-radius:0;box-shadow:none}.onboarding .rail{display:block;padding:18px 20px 14px;border:0;border-bottom:1px solid var(--hair)}.onboarding .brand-mark{width:40px;height:40px}.onboarding .brand-mark .icon{width:24px;height:24px}.onboarding .brand-tagline,.onboarding .rail-intro,.onboarding .step-copy,.onboarding .sample-card{display:none}.onboarding .stepper{grid-template-columns:repeat(4,1fr);gap:6px;margin-top:15px}.onboarding .stepper:before{top:19px;right:12%;bottom:auto;left:12%;width:76%;height:1px}.onboarding .stepper li{display:grid;grid-template-columns:1fr;justify-items:center;min-height:40px}.onboarding .step-dot{width:38px;height:38px}.onboarding .panel{min-height:calc(100dvh - 123px);display:flex;flex-direction:column}.onboarding .pages{flex:1;padding:26px 20px 32px}.onboarding .footer{position:sticky;bottom:0;z-index:20;min-height:78px;padding:13px 16px}.onboarding .footer-note{display:none}.onboarding .primary-btn{min-width:0;flex:1}.onboarding .topline{align-items:flex-start;margin-bottom:18px}.onboarding .time-note{max-width:15ch}.onboarding h1{font-size:clamp(32px,10vw,42px)}.onboarding .focus-wrap,.onboarding .more-layout,.onboarding .complete-wrap,.onboarding .processing-wrap{margin-top:20px}.onboarding .code-grid{gap:6px}.onboarding .code-grid input{height:54px;font-size:var(--fs-lede)}.onboarding .review-grid{grid-template-columns:1fr}.onboarding .warning{grid-column:1;align-items:flex-start;flex-wrap:wrap}.onboarding .warning .small-btn{width:100%;margin-left:39px}.onboarding .course-summary{align-items:flex-start;flex-wrap:wrap}.onboarding .course-actions{width:100%;margin-left:54px}.onboarding .small-btn{flex:1}.onboarding .stat-grid{grid-template-columns:1fr}}@media (max-width: 390px){.onboarding .pages{padding-inline:16px}.onboarding .code-grid{gap:4px}.onboarding .code-grid input{height:50px;padding:0}.onboarding .course-row{align-items:flex-start;flex-wrap:wrap}.onboarding .ready-chip{margin-left:50px}}@keyframes onboarding-spin{to{transform:rotate(360deg)}}@keyframes onboarding-spin-back{to{transform:rotate(-360deg)}}.x-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-family:var(--sans);font-size:var(--fs-sm);font-weight:600;line-height:1;padding:8px 14px;border-radius:var(--r-pill);border:1px solid var(--line);background:var(--card);color:var(--ink);box-shadow:var(--sh-soft);cursor:pointer;transition:background .12s ease,box-shadow .15s ease,transform .15s ease}.x-btn:hover{background:var(--rail-2)}.x-btn:active{transform:translateY(1px)}.x-btn:focus-visible{outline:none;box-shadow:var(--sh-brand)}.x-btn[disabled]{opacity:.5;cursor:not-allowed}.x-btn.sm{padding:6px 11px;font-size:var(--fs-xs)}.x-btn.prime{background:var(--brand-wash);border-color:var(--brand-line);color:var(--brand-ink)}.x-btn.prime:hover{background:var(--brand-wash-2)}.x-btn.ghost{background:transparent;border-color:transparent;box-shadow:none}.x-btn.ghost:hover{background:var(--rail-2)}.x-btn.ai{background:var(--brand-wash);border-color:var(--brand-line);color:var(--brand-ink)}.x-btn.ai:hover{background:var(--brand-wash-2)}.x-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-card)}.x-card.pad{padding:var(--sp-7)}.x-eyebrow{font-family:var(--sans);font-size:var(--fs-label);letter-spacing:var(--ls-label);text-transform:uppercase;font-weight:var(--fw-x);color:var(--text-muted)}.x-sectiontitle{display:flex;flex-direction:column;gap:4px}.x-sectiontitle h2{font-family:var(--sans);font-size:var(--fs-h3);font-weight:700;letter-spacing:-.01em;color:var(--ink)}.x-sectiontitle p{font-size:var(--fs-sm);color:var(--text-muted)}.x-pacechip{display:inline-flex;align-items:center;gap:5px;font-family:var(--sans);font-size:var(--fs-xs);font-weight:600;padding:3px 9px;border-radius:var(--r-pill)}.x-pacechip.onpace{background:var(--green-wash);color:var(--green-ink)}.x-pacechip.slipping{background:var(--amber-wash);color:var(--amber-ink)}.x-pacechip.behind{background:var(--red-wash);color:var(--red-ink)}.x-pacechip.ahead{background:var(--brand-wash);color:var(--brand-ink)}.x-pacechip.new,.x-pacechip.early{background:var(--rail);color:var(--text-2)}.x-statbar{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px}.x-statbar .x-statbar-label{font-size:var(--fs-sm);color:var(--text-2)}.x-statbar .x-statbar-track{grid-column:1 / -1;height:6px;border-radius:var(--r-pill);background:var(--rail);overflow:hidden}.x-statbar .x-statbar-fill{height:100%;border-radius:var(--r-pill);transition:width .3s ease}.x-statbar .x-statbar-val{font-family:var(--mono);font-size:var(--fs-xs);color:var(--ink)}.x-pacemeter{display:flex;flex-direction:column;gap:4px}.x-pacemeter-rail{position:relative;height:10px;border-radius:var(--r-pill);background:var(--rail);overflow:visible}.x-pacemeter-fill{position:absolute;left:0;top:0;height:100%;border-radius:var(--r-pill);transition:width .3s ease}.x-pacemeter-dot{position:absolute;top:50%;width:12px;height:12px;border-radius:50%;border:2px solid var(--card);transform:translate(-50%,-50%);box-shadow:var(--sh-soft)}.x-pacemeter-target{position:absolute;top:-2px;bottom:-2px;width:0;border-left:2px dashed var(--pace-neutral);transform:translate(-1px)}.x-pacemeter-scale{display:flex;justify-content:space-between;font-family:var(--mono);font-size:var(--fs-micro);color:var(--faint)}.x-pacemeter.behind .x-pacemeter-fill,.x-pacemeter.behind .x-pacemeter-dot{background:var(--red)}.x-pacemeter.slipping .x-pacemeter-fill,.x-pacemeter.slipping .x-pacemeter-dot{background:var(--amber)}.x-pacemeter.on_pace .x-pacemeter-fill,.x-pacemeter.on_pace .x-pacemeter-dot{background:var(--green)}.x-pacemeter.ahead .x-pacemeter-fill,.x-pacemeter.ahead .x-pacemeter-dot{background:var(--brand)}.x-pacemeter.early .x-pacemeter-fill,.x-pacemeter.early .x-pacemeter-dot{background:var(--pace-neutral)}.x-trendchip{font-family:var(--mono);font-size:var(--fs-micro);font-weight:700;white-space:nowrap}.x-trendchip.up{color:var(--green)}.x-trendchip.down{color:var(--red)}.x-trendchip.flat{color:var(--text-muted)}.x-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:grid;place-items:center;padding:20px;background:var(--scrim)}.x-modal-panel{width:100%;max-width:460px;max-height:calc(100vh - 40px);overflow:auto;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-pane)}.x-toast-wrap{position:fixed;left:50%;bottom:24px;transform:translate(-50%);z-index:1100;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}.x-toast{background:var(--ink);color:var(--toast-ink);font-family:var(--sans);font-size:var(--fs-sm);padding:10px 16px;border-radius:var(--r-pill);box-shadow:var(--sh-pane)}.x-toast b{color:var(--toast-accent);font-weight:700}@media (prefers-reduced-motion: reduce){.x-btn,.x-statbar-fill,.x-pacemeter-fill{transition:none}}.x-modal-panel.bit-modal{max-width:min(760px,calc(100vw - 40px));transition:max-width .35s ease}.x-modal-panel.bit-modal-review,.x-modal-panel.bit-modal-importing,.x-modal-panel.bit-modal-error{max-width:min(1360px,calc(100vw - 40px))}.bit-sheet{padding:20px;position:relative}.bit-close{position:absolute;top:8px;right:8px;z-index:2;display:grid;place-items:center;width:44px;height:44px;padding:0;cursor:pointer;border:1px solid transparent;border-radius:var(--r-lg);background:transparent;color:var(--text-muted);transition:background .12s,color .12s,border-color .12s}.bit-close:hover{color:var(--ink);background:var(--rail-2)}.bit-close:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.bit-choose{display:flex;flex-direction:column;gap:12px;padding:4px}.bit-choose-eyebrow{font-family:var(--sans);font-size:var(--fs-label);font-weight:var(--fw-x);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--brand-ink)}.bit-choose-heading{font-size:var(--fs-h2);font-weight:800;letter-spacing:-.01em;color:var(--ink);margin:0}.bit-choose-body{margin:0;font-size:var(--fs-body);line-height:1.5;color:var(--text-2)}.bit-choose-alert{font-size:var(--fs-sm);padding:8px 12px;border-radius:var(--r-lg);color:var(--amber-ink);background:var(--amber-wash);border:1px solid var(--amber-ink)}.bit-choose-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:2px}.bit-choose-btn{flex:1 1 200px;font:inherit;font-size:var(--fs-body);font-weight:700;cursor:pointer;padding:12px 16px;border-radius:var(--r-lg);border:1px solid var(--border);background:var(--card);color:var(--ink);transition:background .12s,border-color .12s}.bit-choose-btn:hover:not([disabled]){background:var(--rail-2)}.bit-choose-btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.bit-choose-btn[disabled]{opacity:.6;cursor:default}.bit-choose-primary{background:var(--brand-strong, var(--brand));border-color:var(--brand-strong, var(--brand));color:var(--primary-foreground)}.bit-choose-primary:hover:not([disabled]){background:var(--brand);border-color:var(--brand)}.bit-choose-drop{display:flex;align-items:center;justify-content:center;text-align:center;padding:20px;border:1.5px dashed var(--border);border-radius:var(--r-lg);color:var(--text-muted);font-size:var(--fs-sm);font-weight:600;transition:border-color .12s,color .12s,background .12s}.bit-choose-drop.is-drag{border-color:var(--brand);color:var(--brand-ink, var(--brand));background:var(--brand-wash, var(--rail-2))}.bit-choose-reassure{margin:0;font-size:var(--fs-xs);color:var(--text-muted)}.bit-consent{display:grid;grid-template-columns:auto 1fr;gap:11px;padding:13px;border:1px solid var(--brand-line, var(--border));border-radius:var(--r-md);background:var(--brand-wash, var(--rail-2));cursor:pointer}.bit-consent input[type=checkbox]{width:19px;height:19px;margin:2px 0 0;accent-color:var(--brand);flex-shrink:0}.bit-consent-copy{display:flex;flex-direction:column;gap:3px;min-width:0}.bit-consent-title{font-size:var(--fs-body);font-weight:750;color:var(--brand-ink, var(--brand))}.bit-consent-sub{font-size:var(--fs-xs);color:var(--text-muted);line-height:1.5}.bit-read{display:flex;flex-direction:column;gap:4px;padding:6px}.bit-read-top{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding-right:40px}.bit-read-head{min-width:0}.bit-read-eyebrow{font-family:var(--sans);font-size:var(--fs-label);font-weight:var(--fw-x);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--brand-ink)}.bit-read-title{font-size:var(--fs-h1);font-weight:800;letter-spacing:-.02em;color:var(--ink);margin:6px 0 4px}.bit-read-sub{margin:0;font-size:var(--fs-body);line-height:1.5;color:var(--text-muted)}.bit-read-count{flex:none;font-size:var(--fs-xs);font-weight:800;color:var(--brand-ink);padding:6px 10px;border-radius:var(--r-pill);background:var(--brand-wash);white-space:nowrap}.bit-read-track{height:7px;margin:18px 0;background:var(--rail);border-radius:var(--r-pill);overflow:hidden}.bit-read-fill{display:block;height:100%;background:var(--brand);border-radius:inherit;transition:width .3s ease}.bit-read-reader{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:center;padding:24px;border:1px solid var(--line);border-radius:var(--r);background:color-mix(in srgb,var(--card) 65%,var(--bg) 35%)}.bit-read-stage{display:grid;place-items:center}.bit-read-frame{position:relative;width:170px;height:220px}.bit-read-paper{position:absolute;top:0;right:0;bottom:0;left:0;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);box-shadow:var(--sh-pane);overflow:hidden}.bit-read-paper:before{content:"";position:absolute;left:20px;right:20px;top:35px;height:5px;background:var(--border);box-shadow:0 19px var(--line-soft),0 38px var(--line-soft),0 57px var(--line-soft),0 76px var(--line-soft)}.bit-read-beam{position:absolute;left:10px;right:10px;top:35px;height:4px;background:var(--brand);box-shadow:0 0 14px color-mix(in srgb,var(--brand) 55%,transparent);animation:bit-scan 2s ease-in-out infinite}.bit-read-steps{list-style:none;display:grid;gap:11px;margin:0;padding:0}.bit-read-step{display:flex;align-items:center;gap:9px;font-size:var(--fs-sm);color:var(--text-muted)}.bit-read-step.is-active{color:var(--brand-ink);font-weight:800}.bit-read-dot{flex:none;width:23px;height:23px;display:grid;place-items:center;border-radius:50%;background:var(--rail);font-size:var(--fs-micro);font-weight:800;color:var(--text-muted)}.bit-read-step.is-active .bit-read-dot{background:var(--brand);color:var(--primary-foreground)}.bit-read-live{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes bit-scan{0%,to{transform:translateY(0)}50%{transform:translateY(145px)}}@media (max-width: 760px){.bit-read-reader{grid-template-columns:1fr}}.bit-head-block{margin:0 0 12px;padding-right:40px}.bit-eyebrow{font-family:var(--sans);font-size:var(--fs-label);font-weight:var(--fw-x);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--brand-ink)}.bit-title{font-size:var(--fs-h2);font-weight:800;letter-spacing:-.01em;color:var(--ink);margin:4px 0}.bit-sub{margin:0 0 10px;color:var(--text-muted);font-size:var(--fs-sm);line-height:1.5}.bit-chips{display:flex;flex-wrap:wrap;gap:8px}.bit-chip{font-size:var(--fs-micro);font-weight:700;padding:3px 10px;border-radius:var(--r-pill);border:1px solid transparent}.bit-chip-ready{color:var(--brand-ink);background:var(--brand-wash)}.bit-chip-review{color:var(--amber-ink);background:var(--amber-wash)}.bit-chip-unassigned{color:var(--text-2);background:var(--rail-2)}.bit-notice{margin:10px 0 0;font-size:var(--fs-sm);padding:8px 12px;border-radius:var(--r-lg);color:var(--amber-ink);background:var(--amber-wash);border:1px solid var(--amber-ink)}.bit-undo{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:10px 0 0;font-size:var(--fs-sm);padding:7px 8px 7px 12px;border-radius:var(--r-lg);color:var(--ink);background:var(--rail-2);border:1px solid var(--border)}.bit-undo-msg{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bit-undo-btn{flex:none;font:inherit;font-size:var(--fs-sm);font-weight:700;cursor:pointer;padding:5px 12px;border-radius:var(--r-lg);border:1px solid var(--border);background:var(--card);color:var(--brand-ink)}.bit-undo-btn:hover:not([disabled]){border-color:var(--brand)}.bit-undo-btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.bit-undo-btn[disabled]{opacity:.5;cursor:default}.bit-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 12px}.bit-search{flex:1 1 220px;min-width:0;font:inherit;font-size:var(--fs-sm);padding:8px 12px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);color:var(--ink)}.bit-search:focus{outline:none;border-color:var(--brand)}.bit-search:disabled{opacity:.6}.bit-filters{display:flex;gap:6px;flex-wrap:wrap}.bit-filter{font:inherit;font-size:var(--fs-xs);font-weight:700;cursor:pointer;padding:7px 12px;border-radius:var(--r-lg);border:1px solid var(--border);background:var(--card);color:var(--text-2);transition:background .12s,border-color .12s,color .12s}.bit-filter:hover:not([disabled]){background:var(--rail-2)}.bit-filter:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.bit-filter[disabled]{opacity:.6;cursor:default}.bit-filter.is-active{color:var(--brand-ink);background:var(--brand-wash);border-color:var(--brand)}.bit-status{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin:-4px 0 12px;font-size:var(--fs-xs);color:var(--brand-ink, var(--brand))}.bit-spin{display:inline-block;width:15px;height:15px;vertical-align:-2px;animation:bit-spin 1.1s linear infinite}@keyframes bit-spin{to{transform:rotate(360deg)}}.bit-progress-track{flex-basis:100%;height:3px;border-radius:2px;background:var(--border);overflow:hidden}.bit-progress-fill{display:block;height:100%;background:var(--brand);transition:width .2s ease}.bit-table{display:flex;flex-direction:column;gap:6px;max-height:48vh;overflow:auto}.bit-groups{display:flex;flex-direction:column;gap:10px;max-height:48vh;overflow:auto}.bit-group{flex:none;border:1px solid var(--line);border-radius:var(--r);background:var(--card);overflow:hidden}.bit-group-head{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;border:0;background:none;cursor:pointer;text-align:left;font:inherit;color:var(--ink)}.bit-group-head:hover{background:color-mix(in srgb,var(--card) 88%,var(--bg) 12%)}.bit-group-badge{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:var(--r-sm);background:var(--brand-wash);color:var(--brand-ink)}.bit-group-badge svg{width:17px;height:17px}.bit-group-id{min-width:0;display:flex;flex-direction:column;gap:1px}.bit-group-id strong{font-size:var(--fs-body);font-weight:700;letter-spacing:-.01em}.bit-group-count{font-size:var(--fs-xs);color:var(--text-muted)}.bit-group-status{margin-left:auto;flex:none;font-size:var(--fs-xs);font-weight:700;color:var(--text-muted);white-space:nowrap}.bit-group-status.is-warn{color:var(--amber-ink)}.bit-group-chevron{flex:none;width:18px;height:18px;color:var(--text-muted);transition:transform var(--dur-fast) ease}.bit-group-head[aria-expanded=false] .bit-group-chevron{transform:rotate(-90deg)}.bit-group-files{display:flex;flex-direction:column;gap:6px;padding:4px 14px 12px;border-top:1px solid var(--border-soft)}.bit-group-files[hidden]{display:none}.bit-group-unassigned .bit-group-badge{background:var(--amber-wash);color:var(--amber-ink)}.bit-head,.bit-row{display:grid;grid-template-columns:44px minmax(140px,1.6fr) 84px 1fr 1.3fr 44px;gap:8px;align-items:center;min-width:560px}.bit-head{font-size:var(--fs-micro);font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);padding:0 2px 4px;position:sticky;top:0;background:var(--card);z-index:1}.bit-row{padding:1px 2px}.bit-empty{margin:12px 2px;font-size:var(--fs-sm);color:var(--text-muted)}.bit-src{font-size:var(--fs-micro);color:var(--text-muted);font-family:var(--mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bit-remove{display:grid;place-items:center;width:44px;height:44px;padding:0;cursor:pointer;border:1px solid transparent;border-radius:var(--r-lg);background:transparent;color:var(--text-muted);transition:background .12s,color .12s,border-color .12s}.bit-remove:hover:not([disabled]){color:var(--red-ink);background:var(--red-wash);border-color:var(--red-ink)}.bit-remove:focus-visible{outline:2px solid var(--red-ink);outline-offset:2px}.bit-remove[disabled]{opacity:.4;cursor:default}.bit-row-filing .bit-file-name{color:var(--brand-ink, var(--brand))}.bit-row-filed{opacity:.55}.bit-file-mark{margin-left:6px;color:var(--brand)}.bit-file{min-width:0;display:flex;flex-direction:column;gap:1px}.bit-file-name{font-size:var(--fs-xs);color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--mono)}.bit-sum{font-size:var(--fs-micro);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bit-thumb{width:44px;height:56px;border:1px solid var(--border);border-radius:var(--r-sm);overflow:hidden;display:flex;align-items:center;justify-content:center;background:var(--surface)}.bit-thumb-img{width:100%;height:100%;object-fit:cover;object-position:top;display:block}.bit-thumb-skel{width:100%;height:100%;background:var(--border);opacity:.4;animation:bit-skel 1.2s ease-in-out infinite alternate}@keyframes bit-skel{to{opacity:.15}}.bit-thumb-ext{font-size:var(--fs-micro);font-weight:700;letter-spacing:.04em;color:var(--text-muted)}.bit-flag{margin-left:6px;font-size:var(--fs-micro);font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:1px 5px;border-radius:var(--r-pill);color:var(--amber-ink);background:var(--amber-wash);vertical-align:1px}.bit-sel{-moz-appearance:none;appearance:none;-webkit-appearance:none;font:inherit;font-size:var(--fs-sm);padding:7px 26px 7px 8px;border:1px solid var(--border);border-radius:var(--r-lg);color:var(--ink);width:100%;cursor:pointer;background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5 6 8l3.5-3.5' fill='none' stroke='%23888' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 8px center}.bit-sel:focus{outline:none;border-color:var(--brand)}.bit-sel:disabled{opacity:.5;cursor:default}.bit-asg{display:flex;flex-direction:column;gap:4px}.bit-new{font:inherit;font-size:var(--fs-xs);padding:6px 8px;border:1px solid var(--brand);border-radius:var(--r-lg);background:var(--bg);color:var(--ink)}.bit-new:focus{outline:none}.bit-readgrade{display:flex;align-items:center;gap:6px;font-size:var(--fs-xs);color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;padding:2px 0}.bit-readgrade input{width:14px;height:14px;margin:0;accent-color:var(--brand);cursor:pointer;flex:none}.bit-readgrade:has(input:checked){color:var(--ink);font-weight:600}.bit-readgrade:has(input:disabled){opacity:.55;cursor:default}.bit-readgrade:has(input:disabled) input{cursor:default}.bit-readgrade.bit-readgrade-dupe:has(input:checked){color:var(--amber-ink);font-weight:600}.bit-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px;padding-top:12px;flex-wrap:wrap;position:sticky;bottom:0;background:var(--card);border-top:1px solid var(--line-soft, var(--border))}.bit-foot-info{display:flex;flex-direction:column;gap:3px;min-width:0}.bit-count{font-size:var(--fs-xs);color:var(--text-muted)}.bit-count-empty{color:var(--amber-ink);font-weight:600}.bit-ai-status{font-size:var(--fs-xs);font-weight:600;color:var(--text-muted)}.bit-ai-status.bit-ai-on{color:var(--brand-ink, var(--brand));font-weight:750}.bit-actions{display:flex;gap:8px;flex:none}.bit-actions>button{white-space:nowrap}.bit-actions-end{margin-left:auto}.bit-actions-center{justify-content:center;margin-top:16px}.bit-confirm{width:auto;padding:10px 16px;margin-top:0}.bit-confirm:disabled{opacity:.5;cursor:default}.bit-error{margin:12px 0 0;padding:10px 14px;border-radius:var(--r-lg);border:1px solid var(--red-ink);background:var(--red-wash)}.bit-error-msg{margin:0;font-size:var(--fs-sm);font-weight:700;color:var(--red-ink)}.bit-error-detail{margin:4px 0 0;font-size:var(--fs-xs);color:var(--text-2)}.bit-done{text-align:center;padding:12px 0 4px}.bit-done-n{font-size:var(--fs-figure);font-weight:800;color:var(--brand);letter-spacing:-1px}.bit-done-sub{font-size:var(--fs-sm);color:var(--text-muted);margin-top:4px}.bit-done-reads{font-size:var(--fs-sm);color:var(--text-muted);margin:8px 0 0}@media (prefers-reduced-motion: reduce){.x-modal-panel.bit-modal{transition:none}.bit-read-beam{animation:none}.bit-read-fill,.bit-progress-fill{transition:none}}.bit-choose-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px}.bit-choose-btn svg{width:17px;height:17px;flex:none}.bit-choose-reassure{display:flex;align-items:flex-start;gap:8px}.bit-choose-reassure svg{width:15px;height:15px;flex:none;margin-top:1px;color:var(--brand-ink)}.bit-whats{position:relative;display:inline-block}.bit-whats-trigger{border:0;background:none;padding:0;cursor:pointer;font:inherit;font-weight:700;color:var(--brand-ink);text-decoration:underline}.bit-whats-trigger:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:var(--r-sm)}.bit-whats-popover{position:absolute;z-index:3;left:0;top:calc(100% + 8px);width:min(320px,74vw);display:flex;flex-direction:column;gap:7px;padding:12px 13px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--card);box-shadow:var(--sh-pane);font-size:var(--fs-xs);font-weight:500;line-height:1.5;color:var(--text-2);cursor:auto;text-align:left}.bit-whats-popover b{color:var(--ink);font-weight:800}@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2) format("woff2"),url(/assets/KaTeX_AMS-Regular-DMm9YOAa.woff) format("woff"),url(/assets/KaTeX_AMS-Regular-DRggAlZN.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2) format("woff2"),url(/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff) format("woff"),url(/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2) format("woff2"),url(/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff) format("woff"),url(/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2) format("woff2"),url(/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff) format("woff"),url(/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2) format("woff2"),url(/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff) format("woff"),url(/assets/KaTeX_Fraktur-Regular-CB_wures.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Main-Bold-Cx986IdX.woff2) format("woff2"),url(/assets/KaTeX_Main-Bold-Jm3AIy58.woff) format("woff"),url(/assets/KaTeX_Main-Bold-waoOVXN0.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2) format("woff2"),url(/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff) format("woff"),url(/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2) format("woff2"),url(/assets/KaTeX_Main-Italic-BMLOBm91.woff) format("woff"),url(/assets/KaTeX_Main-Italic-3WenGoN9.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Main-Regular-B22Nviop.woff2) format("woff2"),url(/assets/KaTeX_Main-Regular-Dr94JaBh.woff) format("woff"),url(/assets/KaTeX_Main-Regular-ypZvNtVU.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2) format("woff2"),url(/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff) format("woff"),url(/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Math-Italic-t53AETM-.woff2) format("woff2"),url(/assets/KaTeX_Math-Italic-DA0__PXp.woff) format("woff"),url(/assets/KaTeX_Math-Italic-flOr_0UB.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff) format("woff"),url(/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff) format("woff"),url(/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff) format("woff"),url(/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Script-Regular-D3wIWfF6.woff2) format("woff2"),url(/assets/KaTeX_Script-Regular-D5yQViql.woff) format("woff"),url(/assets/KaTeX_Script-Regular-C5JkGWo-.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2) format("woff2"),url(/assets/KaTeX_Size1-Regular-C195tn64.woff) format("woff"),url(/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2) format("woff2"),url(/assets/KaTeX_Size2-Regular-oD1tc_U0.woff) format("woff"),url(/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size3-Regular-gV2CO0n9.woff2) format("woff2"),url(/assets/KaTeX_Size3-Regular-CTq5MqoE.woff) format("woff"),url(/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2) format("woff2"),url(/assets/KaTeX_Size4-Regular-BF-4gkZK.woff) format("woff"),url(/assets/KaTeX_Size4-Regular-DWFBv043.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2) format("woff2"),url(/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff) format("woff"),url(/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf) format("truetype")}.katex{font: 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;position:relative;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.17.0"}.katex .katex-mathml{border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .smash{display:inline;line-height:0}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.2777777778em;margin-right:-.5555555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.1666666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.6666666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.4566666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.1466666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.7142857143em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.8571428571em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.1428571429em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.2857142857em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.4285714286em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.7142857143em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.0571428571em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.4685714286em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.9628571429em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.5542857143em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.7777777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.8888888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.1111111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.3044444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.7644444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.5833333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.7283333333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.0733333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.4861111111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.4402777778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.7277777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.2893518519em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.4050925926em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462962963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.5208333333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.2002314815em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.4398148148em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.2410800386em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.2892960463em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512054em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.3857280617em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.4339440694em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.4821600771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.5785920926em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.6943105111em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.8331726133em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.1996142719em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.2009646302em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.2411575563em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.2813504823em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.3215434084em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.3617363344em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.4019292605em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.4823151125em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778135em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.6945337621em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.8336012862em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex svg{fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}.drill-runner{display:flex;flex-direction:column;min-height:100%}.drill-tbar{display:flex;align-items:center;gap:.875rem;padding:.75rem 1.25rem;background:var(--header);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}.drill-tbar-topic{display:flex;flex-direction:column;gap:.125rem;min-width:0}.drill-tbar-topic b{font-size:var(--fs-body);font-weight:700;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drill-prog{flex:1 1 auto;max-width:26rem;height:.375rem;background:var(--rail);border-radius:var(--r-pill);overflow:hidden}.drill-prog span{display:block;height:100%;background:var(--green);border-radius:inherit;transition:width .3s ease}.drill-count{font-size:var(--fs-xs);color:var(--text-muted);white-space:nowrap}.drill-exit{margin-left:auto;flex:none;color:var(--text-muted);font-weight:700;font-size:var(--fs-sm);font-family:var(--sans);cursor:pointer;background:none;border:none;padding:.25rem .4375rem;border-radius:var(--r-xs)}.drill-exit:hover{color:var(--ink);background:var(--rail-2)}.drill-exit:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.drill-stage{container-type:inline-size;container-name:drill-stage;flex:1 1 auto;display:grid;place-items:center;padding:clamp(1.5rem,6vh,3rem) 1rem}.drill-card-wrap{width:100%;max-width:35rem}.drill-pre{width:100%;max-width:35rem;padding:clamp(1.75rem,5vw,2.75rem) 1.75rem;text-align:center;cursor:pointer;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow-card);transition:box-shadow .15s ease}.drill-pre:hover{box-shadow:var(--shadow-pane)}.drill-pre:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.drill-pre-eyebrow{margin-bottom:1.375rem}.drill-pre-front{font-size:var(--fs-h2);font-weight:700;line-height:1.4;color:var(--ink)}.drill-pre-front .katex-display{overflow-x:auto;max-width:100%}.drill-pre-hint{margin-top:1.5rem;font-size:var(--fs-xs);color:var(--text-muted)}.drill-post-answer{padding:1.75rem;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow-card);animation:drill-reveal-in .22s ease}.drill-post-eyebrow{color:var(--green-ink);margin-bottom:.75rem}.drill-post-back{font-size:var(--fs-h3);font-weight:700;line-height:1.5;color:var(--ink)}.drill-post-back .katex-display{overflow-x:auto;max-width:100%}.drill-grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-top:1rem}@container drill-stage (max-width: 30rem){.drill-grid4{grid-template-columns:repeat(2,1fr)}}.drill-rb{text-align:center;padding:.75rem .5rem;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow-card);cursor:pointer;font-family:var(--sans)}.drill-rb b{display:block;font-size:var(--fs-body)}.drill-rb-interval{font-size:var(--fs-micro);color:var(--text-muted);margin-top:.25rem}.drill-rb:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.drill-rb-again{border-color:var(--red-wash)}.drill-rb-again b{color:var(--red)}.drill-rb-hard b{color:var(--amber-ink)}.drill-rb-good b{color:var(--green-ink)}.drill-rb-easy{background:var(--green-wash)}.drill-rb-easy b{color:var(--green-ink)}.drill-post-row{display:flex;justify-content:space-between;align-items:center;gap:.75rem;margin-top:.875rem;font-size:var(--fs-sm);flex-wrap:wrap}@keyframes drill-reveal-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.drill-pre,.drill-prog span,.drill-post-answer{transition:none;animation:none}}.drill-screen .phead{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.drill-screen .drill-gen-btn{flex:none;margin-top:.125rem}.drill-screen .screen-body{container:drill-body / inline-size}.drill-screen .pt-top{display:grid;grid-template-columns:1.5fr 1fr;gap:1rem}@container drill-body (max-width: 44rem){.drill-screen .pt-top{grid-template-columns:1fr}}.drill-screen .pt-hero{min-width:0;display:flex;flex-direction:column;background:var(--brand-wash);border:1px solid var(--brand-line);border-radius:var(--r);padding:clamp(1.25rem,3vw,1.75rem)}.drill-screen .pt-hero .badge{align-self:flex-start;background:var(--surface);color:var(--brand-ink);border:1px solid var(--brand-line);font-size:var(--fs-micro);font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:.3125rem .6875rem;border-radius:var(--r-pill);margin-bottom:1rem}.drill-screen .pt-hero-title{font-size:var(--fs-display);font-weight:800;letter-spacing:-.02em;line-height:1.15;color:var(--ink);margin-bottom:.5625rem}.drill-screen .pt-hero p{color:var(--text-2);font-size:var(--fs-body);line-height:1.55;max-width:24rem;margin-bottom:.875rem}.drill-screen .fchips{display:flex;gap:.5rem;flex-wrap:wrap}.drill-screen .fchip{display:inline-flex;align-items:center;font-size:var(--fs-xs);font-weight:700;color:var(--brand-ink);background:var(--surface);border:1px solid var(--brand-line);padding:.3125rem .6875rem;border-radius:var(--r-pill)}.drill-screen .fchips-more{margin-top:.5rem}.drill-screen .fchips-more>summary{list-style:none;cursor:pointer;width:fit-content;font-size:.71875rem;font-weight:700;color:var(--text-2)}.drill-screen .fchips-more>summary::-webkit-details-marker{display:none}.drill-screen .fchips-more-list{margin-top:.5rem}.drill-screen .pt-hero-cta{margin-top:auto;padding-top:1.25rem}.drill-screen .drill-hero-cta{gap:.375rem}.drill-screen .drill-side{min-width:0;display:flex;flex-direction:column;gap:.75rem}.drill-screen .drill-card{flex:1;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-card);padding:1.125rem 1.25rem}.drill-screen .drill-card.weak{background:var(--red-wash);border-color:var(--line)}.drill-screen .drill-card .dc-head{display:flex;justify-content:space-between;align-items:center;gap:.625rem;margin-bottom:.375rem}.drill-screen .drill-card .dc-head b{font-size:var(--fs-body)}.drill-screen .drill-card p{font-size:var(--fs-sm);color:var(--text-muted);line-height:1.5;margin:.375rem 0 .875rem}.drill-screen .drill-card .x-btn{align-self:flex-start;margin-top:auto}.drill-screen .mcount{flex:none;min-width:1.625rem;height:1.625rem;padding:0 .5rem;border-radius:var(--r-pill);display:grid;place-items:center;font-weight:800;font-size:var(--fs-sm);background:var(--red-wash);color:var(--red-ink)}.drill-screen .chip.days{display:inline-flex;align-items:center;font-size:var(--fs-micro);font-weight:700;padding:.1875rem .5625rem;border-radius:var(--r-pill);background:var(--amber-wash);color:var(--amber-ink);white-space:nowrap}.drill-screen .decks-h{font-size:var(--fs-h2);font-weight:800;letter-spacing:-.01em;margin:.375rem 0 .25rem}.drill-screen .drill-decks-empty{margin:0;font-size:var(--fs-sm);color:var(--text-muted);line-height:1.55}.drill-screen .deck-course{font-size:var(--fs-micro);font-weight:800;letter-spacing:.05em;color:var(--text-muted);margin:.5rem 0}.drill-screen .deck-grid{display:grid;grid-template-columns:1fr 1fr;gap:.875rem;margin-bottom:.375rem}@container drill-body (max-width: 32rem){.drill-screen .deck-grid{grid-template-columns:1fr}}.drill-screen .deckcard{min-width:0;background:var(--surface);border:1px solid var(--line);border-left-width:.25rem;border-radius:var(--r);box-shadow:var(--shadow-card);padding:1.125rem 1.25rem}.drill-screen .deckcard.sev-imp{border-left-color:var(--green)}.drill-screen .deckcard.sev-mid{border-left-color:var(--amber)}.drill-screen .deckcard.sev-low{border-left-color:var(--red)}.drill-screen .deckcard.sev-none{border-left-color:var(--line)}.drill-screen .deckcard .dk-top{display:flex;justify-content:space-between;align-items:flex-start;gap:.625rem}.drill-screen .deckcard .dk-name{font-size:var(--fs-body);font-weight:800;color:var(--ink)}.drill-screen .deckcard .dk-meta{font-size:var(--fs-xs);color:var(--text-muted);margin-top:.1875rem}.drill-screen .duepill{font-size:var(--fs-micro);font-weight:800;color:var(--amber-ink);background:var(--amber-wash);padding:.125rem .5rem;border-radius:var(--r-pill);margin-left:.3125rem;white-space:nowrap}.drill-screen .statuschip{flex:none;font-size:var(--fs-micro);font-weight:800;letter-spacing:.05em;text-transform:uppercase;padding:.1875rem .5625rem;border-radius:var(--r-pill);white-space:nowrap}.drill-screen .statuschip.ok{background:var(--green-wash);color:var(--green-ink)}.drill-screen .statuschip.warn{background:var(--amber-wash);color:var(--amber-ink)}.drill-screen .statuschip.crit{background:var(--red-wash);color:var(--red-ink)}.drill-screen .statuschip.none{background:var(--rail);color:var(--text-muted)}.drill-screen .deckcard .dk-bottom{display:flex;align-items:center;gap:.875rem;margin-top:1rem}.drill-screen .deckcard .dk-prog{flex:1;min-width:0}.drill-screen .deckcard .dk-mrow{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.3125rem}.drill-screen .metric-label{font-size:var(--fs-xs);font-weight:700;color:var(--text-muted)}.drill-screen .mstat{font-size:var(--fs-micro);font-weight:800;font-variant-numeric:tabular-nums}.drill-screen .mstat.m-grn{color:var(--green-ink)}.drill-screen .mstat.m-amb{color:var(--amber-ink)}.drill-screen .mstat.m-red{color:var(--red-ink)}.drill-screen .mstat.m-none{color:var(--text-muted);font-weight:700}.drill-screen .deckcard .hbar{height:.4375rem;border-radius:var(--r-pill);background:var(--rail);overflow:hidden}.drill-screen .deckcard .hbar span{display:block;height:100%;border-radius:inherit}.drill-screen .deckcard .x-btn{flex:none}.drill-gen-empty{margin:0;font-size:var(--fs-sm);color:var(--text-muted)}.drill-gen-pick{display:flex;flex-direction:column;gap:8px}.drill-gen-pick-label{margin:0;font-size:var(--fs-sm);font-weight:600;color:var(--text-2)}.drill-gen-course{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);color:var(--ink);font:inherit;font-size:var(--fs-sm);text-align:left;cursor:pointer}.drill-gen-course:hover{border-color:var(--brand)}.drill-gen-course:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.upcoming-section{display:flex;flex-direction:column;gap:8px}.upcoming-card{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--r-2xl);box-shadow:var(--shadow-soft);padding:10px 14px 8px;display:flex;flex-direction:column;gap:6px}.upcoming-row{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--bg);border:1px solid var(--border-soft);border-radius:var(--r-lg);cursor:pointer;font:inherit;text-align:left;transition:background .12s,border-color .12s;width:100%}.upcoming-row:hover{background:var(--brand-wash);border-color:var(--brand)}.upcoming-date{flex:0 0 auto;font-family:var(--mono);font-size:var(--fs-micro);font-weight:700;color:var(--text-muted);white-space:nowrap;min-width:44px}.upcoming-code{flex:0 0 auto;font-family:var(--mono);font-size:var(--fs-micro);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--brand-ink);background:var(--brand-wash);border-radius:var(--r-sm);padding:2px 7px;white-space:nowrap}.upcoming-label{flex:1 1 auto;min-width:0;font-size:var(--fs-sm);font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dates-section{display:flex;flex-direction:column;gap:8px}.dates-card{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--r-2xl);box-shadow:var(--shadow-soft);padding:12px 14px 10px;display:flex;flex-direction:column;gap:8px}.dates-empty{font-size:var(--fs-sm);color:var(--faint);padding:4px 2px 6px;text-align:center}.dates-row{display:flex;flex-direction:column;gap:0;background:var(--bg);border:1px solid var(--border-soft);border-radius:var(--r-lg);overflow:hidden}.dates-row-main{display:flex;align-items:center;gap:8px;padding:9px 10px}.dates-label{flex:1 1 auto;min-width:0;font-size:var(--fs-sm);font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left;background:none;border:none;padding:0;cursor:pointer;font-family:inherit}.dates-label:hover{text-decoration:underline;text-decoration-color:var(--brand)}.dates-date{flex:0 0 auto;font-size:var(--fs-xs);color:var(--text-muted);white-space:nowrap}.dates-chip{flex:0 0 auto;font-family:var(--mono);font-size:var(--fs-micro);font-weight:700;letter-spacing:.04em;text-transform:uppercase;border-radius:var(--r-sm);padding:2px 7px;white-space:nowrap}.dates-chip--exam{background:#fce8e8;color:#b91c1c}.dates-chip--due{background:var(--amber-wash);color:var(--amber-ink)}.dates-chip--reminder{background:var(--bg);color:var(--text-muted);border:1px solid var(--border)}.dates-expand{flex:0 0 auto;background:none;border:none;cursor:pointer;font-size:var(--fs-micro);color:var(--faint);padding:2px 4px;font-family:inherit}.dates-expand:hover{color:var(--brand-ink)}.dates-prep{border-top:1px solid var(--border-soft);padding:10px}.screen:has(.ads-overlay){position:relative}.ads-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;align-items:flex-end;background:#14161a6b;animation:sheet-fade var(--dur-fast) ease-out}.ads-sheet{width:100%;background:var(--surface);border-top-left-radius:22px;border-top-right-radius:22px;box-shadow:0 -10px 40px #0003;padding:10px 18px calc(24px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:14px;animation:sheet-up var(--dur-base) var(--ease-out)}.ads-grab{width:36px;height:4px;border-radius:2px;background:var(--border);align-self:center;margin-bottom:2px}.ads-title{font-size:var(--fs-h3);font-weight:700;color:var(--ink);letter-spacing:-.2px}.ads-toggle-row{display:flex;gap:8px}.ads-toggle{flex:1 1 0;font:inherit;font-size:var(--fs-sm);font-weight:700;cursor:pointer;border-radius:var(--r-pill);padding:8px 12px;border:1.5px solid var(--border);background:var(--bg);color:var(--text-2);transition:background .12s,border-color .12s,color .12s}.ads-toggle.selected{background:var(--brand);border-color:var(--brand);color:var(--primary-foreground)}.ads-field{display:flex;flex-direction:column;gap:5px}.ads-field-label{font-family:var(--mono);font-size:var(--fs-micro);letter-spacing:.1em;text-transform:uppercase;color:var(--faint);font-weight:700}.ads-input{width:100%;box-sizing:border-box;font:inherit;font-size:var(--fs-body);color:var(--ink);background:var(--bg);border:1px solid var(--border);border-radius:var(--r-lg);padding:11px 12px}.ads-input:focus{outline:none;border-color:var(--brand);background:var(--surface)}.ads-actions{display:flex;gap:10px;margin-top:2px}.ads-btn{flex:1 1 0;font:inherit;font-size:var(--fs-body);font-weight:700;cursor:pointer;border-radius:var(--r-lg);padding:13px 12px;border:1px solid transparent}.ads-btn.ghost{background:var(--bg);border-color:var(--border);color:var(--text-2)}.ads-btn.primary{background:var(--brand);color:var(--primary-foreground)}.ads-btn.primary:disabled{opacity:.45;cursor:default}.mat-section{display:flex;flex-direction:column;gap:8px}.mat-intro{font-size:var(--fs-sm);line-height:1.5;color:var(--text-muted);margin:1px 2px 12px}.mat-card{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--r-2xl);box-shadow:var(--shadow-soft);padding:12px 14px 10px;display:flex;flex-direction:column;gap:8px}.mat-empty{font-size:var(--fs-sm);color:var(--faint);padding:4px 2px 6px;text-align:center}.mat-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:9px 10px;background:var(--bg);border:1px solid var(--border-soft);border-radius:var(--r-lg)}.mat-name{flex:1 1 100px;min-width:100px;font-size:var(--fs-sm);font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;flex:0 1 auto}.mat-action{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;font:inherit;font-size:var(--fs-xs);font-weight:700;cursor:pointer;background:none;border:1px solid var(--border);border-radius:var(--r-lg);padding:4px 9px;color:var(--brand-ink);transition:background .12s,border-color .12s}.mat-action:hover:not(:disabled){background:var(--brand-wash);border-color:var(--brand)}.mat-action:disabled{opacity:.45;cursor:default}.mat-action.keep-badge:disabled{opacity:1;color:var(--faint);border-color:var(--border-soft)}.mat-action.primary{background:var(--brand);border-color:var(--brand);color:var(--primary-foreground)}.mat-action.primary:hover:not(:disabled){background:var(--brand-ink);border-color:var(--brand-ink)}.dt-doctext{font-family:var(--sans);font-size:var(--fs-body);line-height:1.65;color:var(--ink);word-break:break-word}.dt-doctext>:first-child{margin-top:0}.dt-doctext>:last-child{margin-bottom:0}.dt-doctext h1,.dt-doctext h2,.dt-doctext h3,.dt-doctext h4{line-height:1.3;margin:1.4em 0 .5em;color:var(--ink);font-weight:700}.dt-doctext h1{font-size:var(--fs-lede)}.dt-doctext h2{font-size:var(--fs-h3)}.dt-doctext h3,.dt-doctext h4{font-size:var(--fs-body)}.dt-doctext p{margin:0 0 .8em}.dt-doctext ul,.dt-doctext ol{margin:0 0 .8em;padding-left:1.4em}.dt-doctext li{margin:.2em 0}.dt-doctext strong{font-weight:700;color:var(--ink)}.dt-doctext em{font-style:italic}.dt-doctext code{font-family:var(--mono);font-size:.88em;background:var(--bg);padding:1px 5px;border-radius:4px}.dt-doctext pre{font-family:var(--mono);font-size:var(--fs-sm);line-height:1.5;background:var(--bg);padding:12px 14px;border-radius:var(--r-sm);overflow-x:auto;margin:0 0 .8em}.dt-doctext pre code{background:none;padding:0}.dt-doctext hr{border:none;border-top:1px solid var(--border-soft);margin:1.2em 0}.dt-doctext blockquote{margin:0 0 .8em;padding-left:14px;border-left:3px solid var(--border);color:var(--text-2)}.dt-doctext a{color:var(--brand-ink);text-decoration:underline}.dt-doctext table{border-collapse:collapse;width:100%;margin:0 0 .8em;font-size:var(--fs-sm)}.dt-doctext th,.dt-doctext td{border:1px solid var(--border-soft);padding:6px 9px;text-align:left}.dt-doctext th{background:var(--bg);font-weight:600}.dt-doctext img{max-width:100%}.msg-md>:first-child{margin-top:0}.msg-md>:last-child{margin-bottom:0}.msg-md p{margin:0 0 .5em}.msg-md ul,.msg-md ol{margin:.3em 0 .5em;padding-left:1.3em}.msg-md li{margin:.15em 0}.msg-md strong{font-weight:700}.msg-md em{font-style:italic}.msg-md code{font-family:var(--mono);font-size:.88em;background:#0000000d;padding:1px 4px;border-radius:4px}.msg-md h1,.msg-md h2,.msg-md h3,.msg-md h4{font-size:1em;font-weight:700;margin:.6em 0 .3em}.msg-md pre{white-space:pre;overflow-x:auto;max-width:100%;margin:.4em 0;background:#0000000d;padding:8px 10px;border-radius:var(--r-sm)}.msg-md pre code{background:none;padding:0}.msg-md table{display:block;overflow-x:auto;max-width:100%;border-collapse:collapse;font-size:.95em}.msg-md .katex-display{overflow-x:auto;max-width:100%}.dt-doc-empty{color:var(--text-2);font-size:var(--fs-body);line-height:1.6;max-width:34ch;margin:8vh auto 0;text-align:center}.mat-remove{flex:0 0 auto;display:grid;place-items:center;width:1.375rem;height:1.375rem;border-radius:50%;background:none;border:none;cursor:pointer;font-size:var(--fs-body);color:var(--faint);padding:0;transition:background .12s,color .12s}.mat-remove:hover{background:#fce8e8;color:#b91c1c}.mat-add{align-self:flex-start;display:inline-flex;align-items:center;gap:5px;background:none;border:none;cursor:pointer;padding:4px 2px;font:inherit;font-size:var(--fs-sm);font-weight:700;color:var(--brand-ink)}.mat-add-cta{align-self:stretch;justify-content:center;width:100%;margin-top:4px;padding:13px 14px;background:var(--brand-wash);border:1px dashed var(--brand);border-radius:var(--r-lg);font-size:var(--fs-body);transition:filter .15s}.mat-add-cta:hover:not(:disabled){filter:brightness(.97)}.mat-add-cta:disabled{opacity:.55;cursor:default}.mat-add .plus{width:16px;height:16px;border-radius:50%;display:grid;place-items:center;background:var(--brand-wash);font-size:var(--fs-sm);line-height:1}.mat-extracting{display:flex;align-items:center;gap:8px;padding:10px 12px;font-size:var(--fs-sm);font-weight:600;color:var(--brand-ink);background:var(--brand-wash);border-radius:var(--r-lg)}.cms-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;align-items:flex-end;background:#14161a6b;animation:sheet-fade var(--dur-fast) ease-out}.cms-sheet{width:100%;background:var(--surface);border-top-left-radius:22px;border-top-right-radius:22px;box-shadow:0 -10px 40px #0003;padding:10px 18px calc(24px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:14px;animation:sheet-up var(--dur-base) var(--ease-out)}.cms-grab{width:36px;height:4px;border-radius:2px;background:var(--border);align-self:center;margin-bottom:2px}.cms-file-name{font-size:var(--fs-body);font-weight:700;color:var(--ink);letter-spacing:-.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cms-summary{font-size:var(--fs-sm);color:var(--text-2);line-height:1.45;margin:0}.cms-row-label{font-family:var(--mono);font-size:var(--fs-micro);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);margin-bottom:2px}.cms-kind-row{display:flex;gap:7px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:2px}.cms-kind-row::-webkit-scrollbar{display:none}.cms-kind-chip{flex:0 0 auto;font:inherit;font-size:var(--fs-xs);font-weight:700;border-radius:var(--r-pill);padding:6px 14px;cursor:pointer;border:1.5px solid var(--border);background:var(--bg);color:var(--text-2);transition:background .12s,border-color .12s,color .12s}.cms-kind-chip.selected{background:var(--brand);border-color:var(--brand);color:var(--primary-foreground)}.cms-option-list{display:flex;flex-direction:column;gap:7px}.cms-option{font:inherit;font-size:var(--fs-body);font-weight:600;text-align:left;cursor:pointer;background:var(--bg);border:1px solid var(--border-soft);border-radius:var(--r-lg);padding:12px 14px;color:var(--ink);transition:background .12s,border-color .12s}.cms-option:hover:not(:disabled){background:var(--brand-wash);border-color:var(--brand)}.cms-option.discard{color:#b91c1c}.cms-option.discard:hover{background:#fce8e8;border-color:#b91c1c}.cms-option-ai{display:inline-flex;align-items:center;gap:5px}.cms-option:disabled{opacity:.45;cursor:default}.cms-option.cms-option-ai:disabled{opacity:1;color:var(--faint)}.bp-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:end center;background:#00000047;padding:16px}.bp-sheet{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--r-2xl);box-shadow:var(--shadow-soft);padding:16px 16px 12px;display:flex;flex-direction:column;gap:10px}.bp-title{font-size:var(--fs-body);font-weight:700;color:var(--ink)}.bp-sub{font-size:var(--fs-sm);line-height:1.5;color:var(--text-muted);margin:-4px 0 2px}.bp-choices{display:flex;flex-direction:column;gap:8px}.bp-choice{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:11px 13px;border-radius:var(--r-md);border:1px solid var(--border-soft);background:var(--bg);font-size:var(--fs-body);font-weight:600;color:var(--ink);cursor:pointer}.bp-choice:hover{border-color:var(--brand)}.bp-choice.suggested{border-color:var(--brand);background:var(--brand-wash);color:var(--brand-ink)}.bp-choice.reference{color:var(--text-muted)}.bp-tag{font-family:var(--mono);font-size:var(--fs-micro);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--brand-ink)}.bp-skip{align-self:center;background:none;border:none;color:var(--text-muted);font-size:var(--fs-sm);font-weight:600;padding:6px;cursor:pointer}.bp-skip:hover{color:var(--ink)}.eg-materials{display:flex;flex-direction:column;gap:4px;margin-top:4px}.eg-reference{border:1px solid var(--border-soft);border-radius:var(--r-2xl);background:var(--surface);box-shadow:var(--shadow-soft);padding:12px 14px;display:flex;flex-direction:column;gap:8px}.eg-reference-head{font-size:var(--fs-sm);font-weight:700;color:var(--ink)}.eg-reference-sub{font-size:var(--fs-xs);color:var(--text-muted);margin:-4px 0 2px}.eg-add-materials{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;background:none;border:1px dashed var(--border);border-radius:var(--r-md);padding:9px 13px;font-size:var(--fs-sm);font-weight:600;color:var(--brand-ink);cursor:pointer}.eg-add-materials:hover:not(:disabled){border-color:var(--brand);background:var(--brand-wash)}.eg-add-materials:disabled{opacity:.5;cursor:default}.screen{position:relative}.dt-docview{display:inline-flex;gap:3px;background:var(--bg);border-radius:var(--r-sm);padding:3px;margin-bottom:10px}.dt-docview button{border:none;background:none;cursor:pointer;font:inherit;font-size:var(--fs-xs);font-weight:700;color:var(--text-muted);padding:5px 12px;border-radius:var(--r-sm)}.dt-docview button.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-soft)}.dt-doc-scan{display:block}.dt-doc-scan img{box-shadow:var(--shadow-soft);border:1px solid var(--border-soft)}.m9{--green-line: var(--state-good-line, #BFE4C9);--green-2: var(--brand-2, #2E9A51);--tan: var(--paper-tan, #ECE5D4);color:var(--ink);font-family:var(--sans)}.m9 .phead,.m9 .nested-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;position:sticky;top:0;z-index:10;background:#f8f9fadb;backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid var(--border-soft);padding:calc(var(--app-top-inset) + 12px) 16px 12px;margin-bottom:0}.m9 .phead h1{font-size:var(--fs-h1);font-weight:var(--fw-x);letter-spacing:var(--ls-tight);line-height:1.15}.m9 .phead .sub{color:var(--text-muted);font-size:var(--fs-sm);margin-top:3px}.m9 .nested-head h1{font-size:var(--fs-h2);font-weight:var(--fw-x);letter-spacing:var(--ls-tight);margin-top:5px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.m9 .nested-head .sub{color:var(--text-muted);font-size:var(--fs-xs);margin-top:3px}.screen.m9{padding-bottom:28px}.screen.m9>:not(.phead):not(.nested-head){padding-left:16px;padding-right:16px}.screen.m9>.phead+*,.screen.m9>.nested-head+*{margin-top:20px}.m9 .crumb{display:flex;align-items:center;gap:7px;font-size:var(--fs-sm);color:var(--text-muted);font-weight:600;margin-bottom:4px;flex-wrap:wrap}.m9 .crumb a{color:var(--text-muted);cursor:pointer}.m9 .crumb a:hover{color:var(--green-ink)}.m9 .crumb b{color:var(--ink)}.m9 .eyebrow{font-size:var(--fs-xs);font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--text-2)}.m9 .muted{color:var(--text-muted)}.m9 .link{color:var(--green-ink);font-weight:700;cursor:pointer;font-size:var(--fs-sm)}.m9 .link:hover{text-decoration:underline}.m9 .card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-card)}.m9 .m-grn{color:var(--green-ink)}.m9 .crumbseg{display:contents}.m9 .icwrap{display:flex;align-items:center}.m9 .searchic{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2}.m9 .headactions{display:flex;gap:10px}.m9 .row.clickable{cursor:pointer}.m9 .ficon.grn{background:var(--green-wash)}.m9 .provline{font-size:var(--fs-xs);margin-top:2px}.m9 .filemeta{font-size:var(--fs-xs)}.m9 .datestamp{font-size:var(--fs-micro)}.m9 .composer.searchbar{flex:1;padding:9px 15px}.m9 .composer.searchbar.hasmin{min-width:180px}.m9 .btn{display:inline-flex;align-items:center;gap:7px;padding:9px 15px;border-radius:var(--r-pill);font-weight:700;font-size:var(--fs-sm);border:1px solid var(--line);background:var(--card);color:var(--ink);box-shadow:var(--sh-card);transition:.1s;cursor:pointer}.m9 .btn:hover{background:#faf7ee}.m9 .btn:active{transform:translateY(1px)}.m9 .btn.green{background:var(--green);border-color:var(--green);color:var(--primary-foreground)}.m9 .btn.green:hover{background:var(--green-2)}.m9 .btn.docact:hover{background:var(--green);border-color:var(--green);color:var(--primary-foreground)}.m9 .btn.docact:hover svg{stroke:currentColor}.m9 .btn.sm{padding:6px 11px;font-size:var(--fs-xs)}.m9 .btn svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2}.m9 .btn:disabled{opacity:.5;cursor:default}.m9 .chip{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:var(--r-pill);font-size:var(--fs-xs);font-weight:700;white-space:nowrap}.m9 .chip.tgt{background:#f0ead9;color:var(--text-2)}.m9 .chip.green{background:var(--green-wash);color:var(--green-ink)}.m9 .chip.aimade{background:#f0ead9;color:var(--text-2);border:1px solid var(--line);font-weight:800;font-size:var(--fs-xs);letter-spacing:.04em}.m9 .tag{font-size:var(--fs-xs);font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);background:#efeadd;padding:3px 7px;border-radius:5px;white-space:nowrap}.m9 .iconbtn{width:32px;height:32px;border:1px solid var(--line);border-radius:var(--r-xs);background:var(--card);display:inline-grid;place-items:center;color:var(--text-muted);box-shadow:var(--sh-card);cursor:pointer;flex:none}.m9 .iconbtn:hover{background:#faf7ee;color:var(--ink)}.m9 .composer{display:flex;align-items:center;gap:9px;border:1px solid var(--line);background:var(--card);border-radius:var(--r-pill);padding:6px 6px 6px 15px;box-shadow:var(--sh-card);min-width:0}.m9 .composer input{flex:1;min-width:0;border:none;outline:none;font:inherit;font-size:var(--fs-sm);background:none;color:var(--ink)}.m9 .send{width:34px;height:34px;border-radius:50%;background:var(--green);color:var(--primary-foreground);display:grid;place-items:center;flex:none;border:none;cursor:pointer}.m9 .send svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2}.m9 .rowcard{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-card);margin-bottom:10px}.m9 .row{display:flex;align-items:center;gap:12px;padding:13px 16px;min-width:0}.m9 .row+.row{border-top:1px solid var(--border-soft)}.m9 .ficon{width:34px;height:34px;border-radius:var(--r-sm);background:#f0ead9;display:grid;place-items:center;flex:none;color:var(--green-ink);font-size:var(--fs-h3)}.m9 .ficon svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.7}.m9 .row-main{flex:1;min-width:0}.m9 .row-main>b{font-size:var(--fs-body)}.m9 .row-actions{display:flex;gap:6px;margin-right:8px;flex-wrap:wrap}.m9 .filterchip{display:inline-flex;align-items:center;padding:5px 10px;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--card);color:var(--text-muted);font-size:var(--fs-xs);font-weight:700;cursor:pointer}.m9 .filterchip:hover{background:#faf7ee}.m9 .filterchip.on{background:var(--green-wash);border-color:var(--green-line);color:var(--green-ink)}.m9 .filterchip.on:before{content:"✓";font-size:var(--fs-micro);margin-right:5px}.m9 .lib-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:24px}.m9 .lib-cc{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-card);padding:18px;cursor:pointer;transition:.12s;text-align:left}.m9 .lib-cc:hover{box-shadow:var(--sh-pane);transform:translateY(-2px)}.m9 .lib-cc .lc-ic{width:44px;height:44px;border-radius:var(--r-md);display:grid;place-items:center;margin-bottom:14px}.m9 .lib-cc .lc-ic svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.8}.m9 .lib-cc .lc-name{font-size:var(--fs-h3);font-weight:800;letter-spacing:-.01em}.m9 .lib-cc .lc-sub{font-size:var(--fs-xs);color:var(--text-muted);margin-top:2px}.m9 .lib-cc .lc-thumbs{display:flex;margin-top:14px}.m9 .lib-cc .lc-thumbs span{width:24px;height:24px;border-radius:50%;border:2px solid var(--card);background:#ece4d2;margin-left:-6px;display:grid;place-items:center;color:var(--text-muted);font-size:var(--fs-micro);font-weight:800;letter-spacing:.02em}.m9 .lib-cc .lc-thumbs span:first-child{margin-left:0}.m9 .lib-searchrow{display:flex;gap:12px;margin-bottom:18px}.m9 .lib-sectionhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.m9 .lib-otherhead{margin-bottom:12px}.m9 .libclass-searchrow{display:flex;gap:12px;margin-bottom:14px;flex-wrap:wrap}.m9 .libclass-chiprow{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.m9 .libclass-sectionhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.m9 .libclass-genbtn{padding:5px 10px}.m9 .libclass-sectiontitle{margin:18px 0 8px}.m9 .libadd-note{margin-top:10px;font-size:var(--fs-sm)}.m9 .libdoc-toolbar{padding:10px 16px;display:flex;align-items:center;gap:10px;margin-bottom:16px;flex-wrap:wrap}.m9 .libdoc-tbinfo{font-size:var(--fs-micro);flex:1;min-width:120px}.m9 .libdoc-body{padding:10px 0 40px}.m9 .docpage{background:#fff;border-radius:var(--r-sm);box-shadow:var(--sh-pane);padding:34px 40px;max-width:640px;margin:0 auto}.m9 .docpage h2{font-size:var(--fs-h2);font-weight:800;margin-bottom:6px;border-bottom:2px solid var(--green);display:inline-block;padding-bottom:4px}.m9 .docpage p{font-size:var(--fs-sm);color:var(--text-2);line-height:1.6;margin:10px 0}.m9 .hi{background:#e9f6ec;box-shadow:-3px 0 0 var(--green)}.m9 .tdoc-grid{display:grid;grid-template-columns:1fr 340px;gap:18px;align-items:start}.m9 .tdoc-docwrap{background:#f3efe3;padding:24px 26px}.m9 .tdoc-page{padding:26px 30px;max-width:none;margin:0}.m9 .tdoc-chat{display:flex;flex-direction:column}.m9 .bubble{max-width:80%;padding:11px 14px;border-radius:var(--r-md);font-size:var(--fs-body);line-height:1.5}.m9 .bubble.ai{background:var(--card);border:1px solid var(--line);align-self:flex-start;border-bottom-left-radius:4px;box-shadow:var(--sh-card)}.m9 .bubble.me{background:var(--green);color:var(--primary-foreground);align-self:flex-end;border-bottom-right-radius:4px}.m9 .bubble.thinking{display:flex;align-items:center;gap:9px;color:var(--text-muted);font-style:italic;font-size:var(--fs-sm)}.m9 .tdots{display:inline-flex;gap:4px}.m9 .tdots i{width:6px;height:6px;border-radius:50%;background:var(--faint);display:block;animation:m9tblink 1.2s infinite ease-in-out}.m9 .tdots i:nth-child(2){animation-delay:.2s}.m9 .tdots i:nth-child(3){animation-delay:.4s}@keyframes m9tblink{0%,60%,to{opacity:.3}30%{opacity:1}}.m9 .tdoc-panecard{overflow:hidden}.m9 .row.tdoc-panehead{padding:10px 14px;border-bottom:1px solid var(--line)}.m9 .tdoc-panetitle{font-size:var(--fs-sm);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.m9 .tdoc-closebtn{background:none;border:none;cursor:pointer;font-size:var(--fs-h3)}.m9 .tdoc-todaylabel{margin-bottom:12px}.m9 .tdoc-log{display:flex;flex-direction:column;gap:12px;margin-bottom:14px;overflow:auto}.m9 .tdoc-chat .bubble{max-width:100%}.m9 .tdoc-errorbubble{color:var(--red-ink)}.m9 .tdoc-bubblewho{color:var(--green-ink);font-size:var(--fs-micro)}.m9 .composer.tdoc-composer{border-radius:var(--r-md);flex-direction:column;align-items:stretch;gap:8px;padding:10px 12px}.m9 .tdoc-composer input{width:100%}.m9 .tdoc-composerfoot{display:flex;align-items:center;gap:8px}.m9 .tdoc-composerfoot .send{margin-left:auto}.m9 .overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1e180a57;display:grid;place-items:center;z-index:40;padding:24px}.m9 .modal{width:100%;max-width:560px;background:var(--card);border-radius:var(--r);box-shadow:var(--sh-pane);max-height:90vh;overflow:auto}.m9 .pad{padding:18px}.m9 .gmode{padding:7px 14px;font-size:var(--fs-sm);font-weight:700;border-radius:var(--r-pill);color:var(--text-muted);border:none;background:none;cursor:pointer}.m9 .gmode.on{background:#fff;box-shadow:var(--sh-card);color:var(--green-ink)}.m9 .grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.m9 .opt{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-md);background:#fff;font-size:var(--fs-body);cursor:pointer;text-align:left}.m9 .opt.sel{border-color:var(--green);background:var(--green-wash)}.m9 .ansbox{border:1px solid var(--line);border-radius:var(--r-md);background:#fff;padding:16px;min-height:56px;font-size:var(--fs-sm);color:var(--ink);font-family:inherit;width:100%;resize:vertical;outline:none}.m9 .ansbox::placeholder{color:var(--text-muted)}.m9 .minput{border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 12px;font:inherit;font-size:var(--fs-sm);background:#fff;outline:none;color:var(--ink)}.m9 .minput:focus,.m9 .ansbox:focus{border-color:var(--green);box-shadow:0 0 0 3px var(--green-wash)}.m9 .gen-select{-webkit-appearance:none;-moz-appearance:none;appearance:none}.m9 .btn.green:disabled{background:var(--faint);border-color:var(--faint)}@media (max-width:900px){.m9 .grid4{grid-template-columns:1fr 1fr}}@media (max-width:520px){.m9 .grid4{grid-template-columns:1fr}}.m9 .gen-kindicon{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2}.m9 .gen-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.m9 .gen-title{font-size:var(--fs-lede);font-weight:800}.m9 .gen-sub{font-size:var(--fs-sm);margin-top:2px}.m9 .gen-close{color:var(--text-muted);font-size:var(--fs-lede);background:none;border:none;cursor:pointer}.m9 .gen-modebar{display:inline-flex;background:#f3efe3;border-radius:var(--r-pill);padding:3px;margin-bottom:16px}.m9 .gen-step-eyebrow{margin-bottom:8px}.m9 .gen-kindgrid{margin-bottom:16px}.m9 .opt.gen-kindcard{flex-direction:column;align-items:flex-start;gap:6px}.m9 .gen-kindlabel{font-size:var(--fs-sm)}.m9 .gen-kinddesc{font-size:var(--fs-micro)}.m9 .gen-scoperow{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap}.m9 .gen-selectflex{flex:1;min-width:140px}.m9 .gen-weaknote{font-size:var(--fs-xs);font-style:italic;margin-top:10px}.m9 .gen-error{color:var(--red-ink);font-size:var(--fs-sm);margin-top:12px}.m9 .gen-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.m9 .gen-deckname{flex:2;min-width:160px}.m9 .gen-courseselect{flex:1;min-width:120px}.m9 .gen-cardcount{font-weight:700;color:var(--text-muted)}.m9 .gen-cardlist{margin-bottom:10px;display:flex;flex-direction:column;gap:6px}.m9 .row.gen-cardrow{padding:8px 12px;border:1px solid var(--line);border-radius:var(--r-sm)}.m9 .gen-cardtext{font-size:var(--fs-sm)}.m9 .gen-cardremove{background:none;border:none;cursor:pointer}.m9 .gen-dropzone{border:1px dashed var(--line);border-radius:var(--r-md);padding:14px;background:#fbf8ef}.m9 .gen-frontinput{width:100%;margin-bottom:8px}.m9 .gen-backinput{width:100%;margin-bottom:10px}.m9 .m9-libgrid .rowcard{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px;padding:0;border:none;box-shadow:none;background:transparent}.m9 .m9-libgrid .rowcard .row{border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--sh-card);background:var(--card);align-items:flex-start}.m9 .m9-libgrid .rowcard .row+.row{border-top:1px solid var(--line)}@media (max-width:640px){.m9 .lib-grid{grid-template-columns:1fr}}@media (max-width:760px){.m9 .tdoc-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){.m9 .btn,.m9 .lib-cc{transition:none}.m9 .lib-cc:hover{transform:none}.m9 .tdots i{animation:none}}
