@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-wght-normal-CnvboYUG.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-wght-normal-Ca2vKHc0.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-wght-normal-ukD16Tqj.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-wght-italic-BicUS2cM.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-wght-italic-BfTTTDIL.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-wght-italic-Py8at3oI.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/public-sans-vietnamese-wght-normal-CtlIRbEm.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/public-sans-latin-ext-wght-normal-MQgHevqp.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/public-sans-latin-wght-normal-DdeTHZLK.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/public-sans-vietnamese-wght-italic-B7WYVnNy.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/public-sans-latin-ext-wght-italic-Dw_CFXJO.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Public Sans Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/public-sans-latin-wght-italic-DGZ7iaiu.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;src:url(/assets/InterVariable-DiVDrmQJ.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(/assets/InterVariable-Italic-FCBEiFp6.woff2)format("woff2");font-weight:100 900;font-style:italic;font-display:swap}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--canvas:#eceef1;--panel-border:var(--border-strong);--panel-shadow:0 1px 2px #141c260f;--chip-bg:#e7eaee;--cat-blue:#1d4ed8;--cat-blue-bg:#1d4ed81f;--cat-amber:#92400e;--cat-amber-bg:#f59e0b24;--cat-teal:#0f766e;--cat-teal-bg:#0f766e1f;--cat-rose:#be123c;--cat-rose-bg:#be123c1f;--bg:var(--canvas);--surface:#fff;--surface-2:#e7eaee;--border:#d4d9df;--border-strong:#bcc3cc;--ink:#14181c;--ink-2:#3a424a;--ink-3:#6a727c;--brand-700:#163d2c;--brand-600:#1f4d3a;--brand-100:#dce8dd;--amber:#b07d16;--bg-raised:var(--surface);--bg-sunken:var(--surface-2);--panel:var(--surface);--text:#1a1f24;--text-dim:#4a525b;--text-faint:var(--ink-3);--text-strong:var(--ink);--accent:var(--brand-600);--accent-2:var(--brand-700);--accent-ink:#fff;--accent-soft:#1f4d3a1a;--accent-line:#1f4d3a52;--reader-paper:#f7f8fa;--parch:#efe6d2;--parch-2:#e6d9bd;--parch-ink:#2c2415;--parch-ink-dim:#5b4f37;--parch-line:#cdbd97;--parch-rule:#3c30162e;--hook-bg-a:var(--accent-2);--hook-bg-b:var(--accent);--hook-ink:#fff;--hook-label:#fde68a;--hook-ring:var(--accent-soft);--ok:#047857;--ok-bg:#0478571a;--bad:#dc2626;--bad-bg:#dc262614;--warn:#b45309;--warn-bg:#f59e0b24;--lock:#64748b;--lock-bg:#64748b24;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius:var(--radius-lg);--card-pad:24px;--card-pad-sm:16px;--shadow:0 1px 2px #141c2614;--shadow-lift:0 2px 6px #141c261f;--sans:"Public Sans Variable", ui-sans-serif, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--serif:"Fraunces Variable", "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Times New Roman", serif;--mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;font:16px/1.6 var(--sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--canvas:#15120c;--panel-border:var(--border-strong);--panel-shadow:0 1px 3px #00000073, 0 1px 2px #0000004d;--chip-bg:#2a2519;--cat-blue:#7fc4ff;--cat-blue-bg:#7fc4ff29;--cat-amber:#fbbf24;--cat-amber-bg:#fbbf2429;--cat-teal:#5fd6c2;--cat-teal-bg:#5fd6c229;--cat-rose:#ff9aae;--cat-rose-bg:#ff9aae29;--bg:var(--canvas);--surface:#201b12;--surface-2:#0f0d07;--border:#352e20;--border-strong:#4a4030;--ink:#f3ecdb;--ink-2:#d8ceb6;--ink-3:#a2977b;--brand-700:#3e8c68;--brand-600:#57a57e;--brand-100:#14301f;--amber:#e6b352;--bg-raised:#201b12;--bg-sunken:#0f0d07;--panel:var(--surface);--text:#e4dac4;--text-dim:#b0a588;--text-faint:#857a5f;--text-strong:#f3ecdb;--accent:#74c79b;--accent-2:#4e9e76;--accent-ink:#10140e;--accent-soft:#74c79b29;--accent-line:#74c79b66;--reader-paper:#1c1b16;--hook-bg-a:var(--accent-ink);--hook-bg-b:#14301f;--hook-ink:var(--text-strong);--hook-label:var(--accent);--hook-ring:var(--accent-soft);--ok:#4ade80;--ok-bg:#4ade801f;--bad:#ff7a7a;--bad-bg:#ff7a7a1f;--warn:#f4c95d;--warn-bg:#f4c95d1f;--lock:#7a7f97;--lock-bg:#7a7f9724;--shadow:0 1px 2px #0006;--shadow-lift:0 2px 6px #00000080}*{box-sizing:border-box}@media (width<=768px){:root{--card-pad:16px;--card-pad-sm:14px}}html,body,#root{min-height:100%}body{color:var(--text);background:var(--bg);margin:0;overflow-x:clip}#root{width:100%}.app-root{background:radial-gradient(1100px 540px at 78% -8%, var(--accent-soft), transparent 60%);min-height:100vh}h1,h2,h3,h4{color:var(--text-strong);font-family:var(--serif);letter-spacing:-.01em;margin:0;font-weight:600;line-height:1.18}p{margin:0}a{color:var(--accent)}.num{font-variant-numeric:tabular-nums}:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:6px}#main h1:focus{outline:none}button{font:inherit;cursor:pointer;color:inherit;background:0 0;border:none}code,kbd{font-family:var(--mono);font-size:.86em}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{background:var(--accent);color:var(--accent-ink);z-index:50;border-radius:8px;padding:8px 14px;font-weight:700;transition:top .15s;position:absolute;top:-48px;left:12px}.skip-link:focus{top:12px}.app-shell{width:100%;min-width:0;max-width:1160px;margin:0 auto;padding:0 20px 80px}.app-main-content{flex:auto;width:100%;min-width:0;max-width:1440px;margin:0 auto;padding:20px 24px 80px}.app-root{grid-template-columns:208px minmax(0,1fr);align-items:stretch;transition:grid-template-columns .15s;display:grid}.app-sidebar{z-index:15;background:var(--panel);border-right:1px solid var(--panel-border);flex-direction:column;align-self:start;gap:2px;min-width:0;height:100vh;padding:12px 10px;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-top{border-bottom:1px solid var(--border);align-items:center;gap:6px;margin-bottom:6px;padding:4px 6px 12px;display:flex}.sidebar-top .brand{flex:auto;min-width:0}.sidebar-collapse-toggle{border-radius:var(--radius-sm);border:1px solid var(--border);width:26px;height:26px;color:var(--text-dim);background:0 0;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.sidebar-collapse-toggle:hover{color:var(--text-strong);background:var(--chip-bg);border-color:var(--border-strong)}.sidebar-list{flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex}.sidebar-item{border-radius:var(--radius-sm);width:100%;color:var(--text-dim);text-align:left;white-space:nowrap;border-left:3px solid #0000;align-items:center;gap:10px;padding:9px 10px;font-size:.87rem;font-weight:650;display:flex}.sidebar-item svg{flex-shrink:0}.sidebar-item:hover{color:var(--text-strong);background:var(--chip-bg)}.sidebar-item.on{color:var(--accent);background:var(--accent-soft);border-left-color:var(--accent)}.sidebar-item-label{text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.sidebar-item-tag{border:1px solid var(--border-strong);background:var(--chip-bg);color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;border-radius:4px;flex-shrink:0;padding:1px 6px;font-size:.6rem;font-weight:700}.sidebar-bottom{border-top:1px solid var(--border);margin-top:auto;padding-top:10px}.sidebar-bottom .btn{justify-content:center;width:100%}@media (width>=861px){.app-root.sidebar-collapsed{grid-template-columns:60px minmax(0,1fr)}.app-sidebar.collapsed .sidebar-top{flex-direction:column;gap:8px;padding:4px 4px 12px}.app-sidebar.collapsed .brand{justify-content:center}.app-sidebar.collapsed .brand-text{display:none}.app-sidebar.collapsed .sidebar-item{justify-content:center;gap:0;padding:9px 6px}.app-sidebar.collapsed .sidebar-item-label,.app-sidebar.collapsed .sidebar-item-tag,.app-sidebar.collapsed .sidebar-bottom .auth-chip-name{display:none}}.app-main-col{flex-direction:column;min-width:0;display:flex}.topbar-slim{z-index:20;background:var(--canvas);border-bottom:1px solid var(--panel-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:10px 20px;display:flex;position:sticky;top:0}.topbar-slim-left{flex-wrap:wrap;flex:auto;align-items:center;gap:10px;min-width:0;display:flex}.topbar-slim-right{flex-shrink:0;align-items:center;gap:12px;display:flex}.topbar-brand-mobile{align-items:center;gap:8px;font-weight:750;display:none}.topbar-brand-mobile .mark{background:linear-gradient(140deg, var(--accent), var(--accent-2));width:26px;height:26px;color:var(--accent-ink);border-radius:7px;flex-shrink:0;place-items:center;font-size:13px;font-weight:800;display:inline-grid}.topbar-brand-mobile .brand-title{font-size:.86rem}.brand{letter-spacing:-.01em;color:var(--text-strong);align-items:center;gap:10px;font-weight:750;display:flex}.brand .mark{background:linear-gradient(140deg, var(--accent), var(--accent-2));width:32px;height:32px;color:var(--accent-ink);border-radius:9px;flex-shrink:0;place-items:center;font-size:15px;font-weight:800;display:inline-grid}.brand-text{text-align:left;flex-direction:column;line-height:1.2;display:flex}.back-btn{flex-shrink:0}.back-btn-label{white-space:nowrap}.brand-title{font-size:.95rem}.brand .sub{color:var(--text-faint);font-size:.74rem;font-weight:500}.topbar-slim-left .sdrop{flex-shrink:1;min-width:0}.topbar-slim-left .sdrop-trigger{min-width:0}.unlock-inline-row{flex-wrap:nowrap;flex-shrink:0;align-items:center;gap:8px;display:inline-flex}.unlock-inline-row .btn{white-space:nowrap;flex-shrink:0}.unlock-gate-count{background:var(--chip-bg);color:var(--text-faint);font-variant-numeric:tabular-nums;white-space:nowrap;cursor:help;border-radius:999px;align-items:center;padding:3px 8px;font-size:.72rem;font-weight:650;display:inline-flex}.hud{flex-shrink:0;align-items:center;gap:14px;display:flex}.hud-stat{flex-direction:column;align-items:flex-end;min-width:0;max-width:13em;line-height:1.1;display:flex}.hud-stat .k{text-transform:uppercase;letter-spacing:.09em;color:var(--text-faint);white-space:normal;text-align:right;font-size:.62rem}.hud-stat .v{color:var(--text-strong);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:1.05rem;font-weight:750}.hud-stat .v .accent{color:var(--accent)}.sdrop{flex-shrink:0;position:relative}.sdrop-trigger{border-radius:var(--radius-sm);border:1px solid var(--panel-border);background:var(--chip-bg);color:var(--text-strong);align-items:center;gap:8px;padding:7px 10px;font-size:.88rem;font-weight:650;display:inline-flex}.sdrop-trigger:hover{border-color:var(--accent-line)}.sdrop-trigger[aria-expanded=true]{border-color:var(--accent)}.sdrop-value{white-space:normal;overflow-wrap:break-word}.sdrop-chevron{color:var(--text-faint);flex-shrink:0;transition:transform .15s}.sdrop-trigger[aria-expanded=true] .sdrop-chevron{transform:rotate(180deg)}.sdrop-dot{border-radius:99px;flex-shrink:0;width:9px;height:9px}.sdrop-list{z-index:30;background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);width:max-content;min-width:100%;max-width:320px;max-height:320px;box-shadow:var(--shadow-lift);margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 6px);left:0;overflow-y:auto}.sdrop-option{border-radius:var(--radius-sm);color:var(--text);cursor:pointer;align-items:center;gap:8px;padding:9px 10px;font-size:.88rem;display:flex}.sdrop-option-label{flex:1}.sdrop-option.active{background:var(--chip-bg)}.sdrop-option.selected{color:var(--text-strong);font-weight:650}.sdrop-check{color:var(--accent);flex-shrink:0}.btn{border-radius:var(--radius-md);border:1px solid var(--border-strong);background:var(--bg-raised);color:var(--text-strong);align-items:center;gap:8px;padding:10px 16px;font-weight:650;transition:transform .12s,border-color .15s,background .15s,box-shadow .15s;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--accent-line);box-shadow:var(--panel-shadow);transform:translateY(-1px)}.btn:active:not(:disabled){box-shadow:none;transform:translateY(1px)}.btn-primary{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:var(--accent-ink);border-color:#0000}.btn-primary:hover{filter:brightness(1.05)}.btn-ghost{border-color:var(--border);color:var(--text-dim);background:0 0}.btn-ghost:hover{color:var(--text-strong)}.btn-danger{border-color:var(--bad);color:var(--bad);background:var(--bad-bg)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn-sm{padding:6px 12px;font-size:.85rem}.btn-block{justify-content:center;width:100%}.banner-error{border:2px solid var(--bad);background:var(--bad-bg);color:var(--text-strong);border-radius:var(--radius);margin-bottom:20px;padding:14px 16px}.banner-error h3{color:var(--bad);align-items:center;gap:8px;display:flex}.banner-error ul{max-height:220px;margin:10px 0 0;padding-left:18px;overflow:auto}.banner-error li{margin-bottom:4px;font-size:.9rem}.banner-error code{color:var(--warn)}.notice{border:1px solid var(--warn);background:var(--warn-bg);border-radius:var(--radius-sm);align-items:flex-start;gap:10px;margin-bottom:16px;padding:10px 14px;font-size:.9rem;display:flex}.notice .ic{color:var(--warn)}.subject-head{padding:var(--card-pad);border-radius:var(--radius);background:linear-gradient(135deg, var(--accent-soft), transparent 55%), var(--panel);border:1px solid var(--panel-border);box-shadow:var(--panel-shadow);margin-bottom:var(--space-5);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;display:flex}.subject-head .eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--accent);font-size:.7rem;font-weight:700}.subject-head h1{margin:4px 0 6px;font-size:1.9rem}.subject-head .meta{color:var(--text-dim);font-size:.92rem}.subject-head .subject-xp{max-width:min(460px,100%);margin-top:8px}.level-badge{border-radius:var(--radius);background:var(--bg-sunken);border:1px solid var(--border-strong);flex-direction:column;align-items:center;min-width:120px;padding:12px 18px;display:flex}.level-badge .lvl{color:var(--accent);font-variant-numeric:tabular-nums;font-size:2rem;font-weight:800;line-height:1}.level-badge .cap{text-transform:uppercase;letter-spacing:.1em;color:var(--text-faint);font-size:.66rem}.xpbar-wrap{margin-top:12px}.xpbar-meta{color:var(--text-dim);justify-content:space-between;margin-bottom:5px;font-size:.78rem;display:flex}.xpbar{background:var(--bg-sunken);border:1px solid var(--border-strong);border-radius:99px;height:10px;overflow:hidden}.xpbar>i{background:linear-gradient(90deg, var(--accent-2), var(--accent));border-radius:99px;height:100%;transition:width .5s cubic-bezier(.22,1,.36,1);display:block;position:relative;overflow:hidden}.xpbar>i:after{content:"";background:linear-gradient(100deg,#0000 20%,#ffffff59 50%,#0000 80%);animation:3.2s ease-in-out infinite bar-sheen;position:absolute;inset:0;transform:translate(-100%)}@keyframes bar-sheen{0%{transform:translate(-100%)}55%,to{transform:translate(100%)}}@media (prefers-reduced-motion:reduce){.xpbar>i:after{content:none;animation:none}}.section-meter{color:var(--text-dim);align-items:center;gap:12px;margin:18px 0 14px;font-size:.85rem;display:flex}.section-meter .track{background:var(--bg-sunken);border:1px solid var(--border);border-radius:99px;flex:1;height:6px;overflow:hidden}.section-meter .track>i{background:var(--accent);height:100%;transition:width .5s;display:block}.stage-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(232px,1fr));display:grid}.stage-card{text-align:left;border-radius:var(--radius);background:var(--panel);border:1px solid var(--panel-border);border-top:3px solid var(--accent);width:100%;height:180px;box-shadow:var(--panel-shadow);flex-direction:column;padding:0;transition:transform .12s,border-color .15s,box-shadow .15s;display:flex;position:relative;overflow:hidden}.stage-card.unlocked:hover{border-color:var(--accent-line);box-shadow:var(--shadow-lift);transform:translateY(-3px)}.stage-card.unlocked:active{box-shadow:var(--panel-shadow);transform:translateY(0)}.stage-card.locked{opacity:.62;cursor:not-allowed}.stage-card.passed{border-color:var(--ok);border-top-color:var(--ok)}.stage-card.premium-locked{opacity:1;cursor:pointer;border-color:var(--accent-line);border-style:solid dashed dashed}.stage-card.premium-locked:hover{border-color:var(--accent)}.stage-card-body{flex-direction:column;flex:auto;gap:8px;min-height:0;padding:14px;display:flex}.stage-card-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.stage-no{background:var(--accent-soft);width:28px;height:28px;color:var(--accent);border-radius:8px;flex-shrink:0;place-items:center;font-size:.85rem;font-weight:750;display:inline-grid}.stage-card.passed .stage-no{background:var(--ok-bg);color:var(--ok)}.stage-card-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.98rem;line-height:1.25;display:-webkit-box;overflow:hidden}.stage-status{border-radius:99px;align-items:center;gap:5px;padding:3px 8px;font-size:.72rem;font-weight:650;display:inline-flex}.stage-status.s-locked{color:var(--lock);background:var(--lock-bg)}.stage-status.s-premium,.stage-status.s-todo{color:var(--accent);background:var(--accent-soft)}.stage-status.s-learned{color:var(--warn);background:var(--warn-bg)}.stage-status.s-passed{color:var(--ok);background:var(--ok-bg)}.stage-foot{max-height:46px;color:var(--text-faint);flex-wrap:wrap;align-items:flex-start;gap:6px 8px;margin-top:auto;font-size:.74rem;display:flex;overflow:hidden}.chip{background:var(--bg-sunken);border:1px solid var(--border);color:var(--text-dim);border-radius:6px;align-items:center;gap:4px;padding:2px 7px;font-size:.72rem;display:inline-flex}.chip.hot{color:var(--bad);border-color:var(--bad);background:var(--bad-bg)}.chip.warn{color:var(--warn);border-color:var(--warn);background:var(--warn-bg)}.dots{gap:3px;display:inline-flex}.dots>i{background:var(--border-strong);border-radius:99px;width:6px;height:6px}.dots>i.on{background:var(--accent)}.view-head{align-items:center;gap:14px;margin:8px 0 18px;display:flex}.view-head .titles{flex:1}.view-head .eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--accent);font-size:.7rem;font-weight:700}.view-head h1{margin-top:2px;font-size:1.5rem}.learn-intro{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:18px;display:flex}.parchment{background:linear-gradient(180deg, var(--parch), var(--parch-2));color:var(--parch-ink);border:1px solid var(--parch-line);border-radius:var(--radius);padding:var(--card-pad);box-shadow:var(--shadow);margin-bottom:18px;position:relative}.parchment h2,.parchment h3{color:var(--parch-ink);font-family:var(--serif)}.parchment p,.parchment .rule-statement{max-width:68ch}.parchment .rule-statement{font-family:var(--serif);color:var(--parch-ink);font-size:1.16rem;font-weight:600;line-height:1.5}.block-label{text-transform:uppercase;letter-spacing:.12em;color:var(--text-faint);align-items:center;gap:6px;margin:16px 0 5px;font-size:.66rem;font-weight:800;display:flex}.parchment .block-label{color:var(--parch-ink-dim)}.parchment p{color:var(--parch-ink)}.parchment hr{border:none;border-top:1px solid var(--parch-line);margin:16px 0}.rule-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px;display:flex}.diff-pill{color:var(--parch-ink-dim);border:1px solid var(--parch-line);background:#3c30161a;border-radius:99px;flex-shrink:0;align-items:center;gap:6px;padding:4px 9px;font-size:.72rem;font-weight:700;display:inline-flex}.panel-card{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);padding:var(--card-pad);box-shadow:var(--panel-shadow);margin-bottom:18px;position:relative}.panel-card p,.panel-card .rule-statement{max-width:68ch}.panel-card .rule-statement{color:var(--text-strong);font-size:1.1rem;font-weight:600;line-height:1.5}.panel-card p{color:var(--text)}.panel-card hr{border:none;border-top:1px solid var(--border);margin:16px 0}.tag-pill{background:var(--chip-bg);color:var(--text-dim);border:1px solid var(--panel-border);border-radius:99px;flex-shrink:0;align-items:center;gap:6px;padding:4px 9px;font-size:.72rem;font-weight:700;display:inline-flex}.worked{border-left:3px solid var(--parch-line);background:#fff6;border-radius:6px;padding:10px 14px;font-size:.95rem}.contrast-with{border-left:3px solid var(--warn);background:#b4530914;border-radius:6px;margin:0;padding:10px 14px;font-size:.93rem}.memory-hook{background:linear-gradient(135deg, var(--hook-bg-a), var(--hook-bg-b));color:var(--hook-ink);border:1px solid var(--accent-line);border-radius:var(--radius);box-shadow:0 0 0 3px var(--hook-ring);margin-top:16px;padding:16px 18px}.memory-hook .mh-label{text-transform:uppercase;letter-spacing:.14em;color:var(--hook-label);align-items:center;gap:8px;margin-bottom:6px;font-size:.68rem;font-weight:800;display:flex}.memory-hook .mh-body{color:var(--hook-ink);font-size:1.08rem;font-weight:550;line-height:1.5}.citation{font-family:var(--mono);color:var(--parch-ink-dim);border-top:1px dashed var(--parch-line);align-items:flex-start;gap:8px;margin-top:14px;padding-top:10px;font-size:.78rem;line-height:1.45;display:flex}.citation .ic{flex-shrink:0}.citation.dark{color:var(--text-dim);border-top-color:var(--border)}[data-theme=dark] .citation.dark{color:var(--text-faint)}.runner{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);padding:var(--card-pad);box-shadow:var(--panel-shadow)}.runner-bar{align-items:center;gap:14px;margin-bottom:14px;display:flex}.runner-progress{flex:1}.runner-progress .track{background:var(--bg-sunken);border:1px solid var(--border);border-radius:99px;height:6px;overflow:hidden}.runner-progress .track>i{background:var(--accent);height:100%;transition:width .4s;display:block}.runner-progress .lbl{color:var(--text-dim);justify-content:space-between;margin-bottom:4px;font-size:.76rem;display:flex}.timer{font-family:var(--mono);border-radius:var(--radius-md);background:var(--bg-sunken);border:1px solid var(--border-strong);color:var(--text-strong);font-variant-numeric:tabular-nums;align-items:center;gap:7px;padding:7px 12px;font-size:1.05rem;font-weight:750;display:inline-flex}.timer.warn{color:var(--warn);border-color:var(--warn)}.timer.danger{color:var(--bad);border-color:var(--bad)}.stem{color:var(--text-strong);margin:6px 0 18px;font-size:1.08rem;line-height:1.55}.options{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.option{text-align:left;border-radius:var(--radius-md);border:1px solid var(--border-strong);background:var(--bg-sunken);width:100%;color:var(--text);align-items:flex-start;gap:12px;padding:13px 15px;transition:border-color .12s,background .12s,box-shadow .15s;display:flex}.option:hover:not(:disabled){border-color:var(--accent-line);box-shadow:var(--panel-shadow)}.option.selected{border-color:var(--accent);background:var(--accent-soft)}.option.correct{border-color:var(--ok);background:var(--ok-bg)}.option.incorrect{border-color:var(--bad);background:var(--bad-bg)}.option:disabled{cursor:default}.option .letter{border:1px solid var(--border-strong);width:28px;height:28px;color:var(--text-dim);border-radius:8px;flex-shrink:0;place-items:center;font-size:.85rem;font-weight:750;display:inline-grid}.option.selected .letter{border-color:var(--accent);color:var(--accent)}.option.correct .letter{border-color:var(--ok);color:var(--ok)}.option.incorrect .letter{border-color:var(--bad);color:var(--bad)}.option .otext{flex:1}.option .verdict{flex-shrink:0;align-items:center;gap:5px;font-size:.82rem;font-weight:750;display:inline-flex}.option .verdict.ok{color:var(--ok)}.option .verdict.bad{color:var(--bad)}.feedback{border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--bg-sunken);margin-top:18px;padding:16px 18px;animation:.25s rise}.feedback.ok{border-color:var(--ok)}.feedback.bad{border-color:var(--bad)}.feedback .verdict-line{align-items:center;gap:8px;margin-bottom:8px;font-size:1.05rem;font-weight:750;display:flex}.feedback.ok .verdict-line{color:var(--ok)}.feedback.bad .verdict-line{color:var(--bad)}.feedback .block-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-faint);margin:12px 0 4px;font-size:.66rem;font-weight:800}.feedback p{color:var(--text);line-height:1.55}.feedback .dnote{color:var(--text-dim);margin:3px 0;font-size:.9rem}.feedback .dnote b{color:var(--text)}.feedback .q-correct-answer{color:var(--text-strong);font-weight:650}.q-options-disclosure{margin-top:14px}.q-options-review{flex-direction:column;gap:10px;margin-top:8px;display:flex}.q-option-review-row{border:1px solid var(--border);border-radius:var(--radius-sm,8px);background:var(--chip-bg);padding:8px 10px}.q-option-review-row.key{border-color:var(--ok);background:var(--ok-bg)}.q-option-review-row .block-label{margin:0 0 4px}.q-option-review-row.key .block-label{color:var(--ok)}.q-option-review-text{color:var(--text-strong);margin:0 0 4px;font-weight:600}.q-option-review-row .dnote{margin:0}.runner-foot{align-items:center;gap:12px;margin-top:18px;display:flex}.runner-foot .spacer{flex:1}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes pop{0%{opacity:0;transform:scale(.9)}60%{transform:scale(1.04)}to{opacity:1;transform:scale(1)}}@keyframes view-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}#main>:not(.exam-skin,.lb-screen){animation:.28s cubic-bezier(.22,1,.36,1) backwards view-in}.xp-toast{z-index:60;border-radius:var(--radius-md);background:linear-gradient(135deg, var(--accent), var(--accent-2));color:var(--accent-ink);box-shadow:var(--shadow-lift);align-items:center;gap:8px;padding:12px 18px;font-weight:800;animation:.25s pop;display:inline-flex;position:fixed;bottom:24px;right:24px}.app-footer{border-top:1px solid var(--line);max-width:1440px;color:var(--text-faint,var(--ink-3));flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin:28px auto 18px;padding:14px 24px 0;font-size:.78rem;display:flex}.app-footer-links{flex-wrap:wrap;gap:4px 14px;display:flex}.app-footer-link{font:inherit;color:var(--text-dim,var(--ink-2));cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;font-size:.78rem;text-decoration:underline}.app-footer-link:hover{color:var(--text-strong,var(--ink))}.app-footer-copy{white-space:nowrap}.result-card{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);padding:var(--card-pad);box-shadow:var(--panel-shadow);margin-bottom:18px}.result-score{flex-wrap:wrap;align-items:center;gap:24px;display:flex}.score-ring{--pct:0;background:radial-gradient(closest-side, var(--bg-raised) 76%, transparent 77%), conic-gradient(var(--accent) calc(var(--pct) * 1%), var(--bg-sunken) 0);border-radius:50%;place-items:center;width:132px;height:132px;animation:.35s pop;display:grid}.score-ring .pct{color:var(--text-strong);font-variant-numeric:tabular-nums;font-size:1.9rem;font-weight:800}.score-ring .cap{text-transform:uppercase;letter-spacing:.1em;color:var(--text-faint);font-size:.66rem}.score-tallies{flex-wrap:wrap;gap:18px;display:flex}.tally{flex-direction:column;display:flex}.tally .v{font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:800}.tally .k{color:var(--text-dim);align-items:center;gap:5px;font-size:.74rem;display:inline-flex}.tally.ok .v{color:var(--ok)}.tally.bad .v{color:var(--bad)}.tally.skip .v{color:var(--warn)}.verdict-badge{border-radius:99px;align-items:center;gap:8px;margin-top:6px;padding:8px 16px;font-weight:750;display:inline-flex}.verdict-badge.pass{color:var(--ok);background:var(--ok-bg);border:1px solid var(--ok)}.verdict-badge.fail{color:var(--bad);background:var(--bad-bg);border:1px solid var(--bad)}.attempt-history .block-label{letter-spacing:.1em;margin:0 0 8px}.attempt-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.attempt-list .attempt{border-radius:var(--radius-sm);background:var(--chip-bg);border:1px solid var(--panel-border);align-items:center;gap:12px;padding:8px 12px;font-size:.86rem;display:flex}.attempt-list .attempt-id{color:var(--text-strong);min-width:5.5em;font-weight:750}.attempt-list .attempt-score{color:var(--text-dim)}.attempt-list .attempt-verdict{align-items:center;gap:5px;margin-left:auto;font-weight:650;display:inline-flex}.attempt-list .attempt.pass .attempt-verdict{color:var(--ok)}.attempt-list .attempt.fail .attempt-verdict{color:var(--bad)}.review-item{border-radius:var(--radius-sm);background:var(--panel);border:1px solid var(--panel-border);box-shadow:var(--panel-shadow);text-align:left;align-items:flex-start;gap:14px;margin-bottom:10px;padding:14px 16px;display:flex}.review-item .rank{background:var(--bad-bg);width:30px;height:30px;color:var(--bad);border-radius:8px;flex-shrink:0;place-items:center;font-size:.85rem;font-weight:750;display:inline-grid}.review-item .body{flex:1}.review-item .sec{color:var(--accent);font-size:.74rem;font-weight:650}.review-item .q{color:var(--text);margin-top:2px;font-size:.95rem;line-height:1.45}.review-item .stats{color:var(--text-faint);flex-wrap:wrap;gap:12px;margin-top:6px;font-size:.76rem;display:flex}.empty{text-align:center;color:var(--text-dim);border:1px dashed var(--border-strong);border-radius:var(--radius);padding:40px 20px}.empty .ic{margin-bottom:8px;font-size:2rem;display:block}.review-groups{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-items:start;margin-bottom:8px;display:grid}.review-group-head{text-transform:uppercase;letter-spacing:.12em;align-items:center;gap:6px;margin:0 0 10px;font-size:.7rem;font-weight:750;display:flex}.review-group-correct .review-group-head{color:var(--ok)}.review-group-incorrect .review-group-head{color:var(--bad)}.review-card{border-radius:var(--radius-sm);box-shadow:var(--panel-shadow);text-align:left;border:1px solid;margin-bottom:12px;padding:14px 16px}.review-card .sec{color:var(--accent);font-size:.74rem;font-weight:650}.review-card .q-stem{color:var(--text);margin:4px 0 10px;font-size:.95rem;font-weight:600;line-height:1.45}.review-card .stats{color:var(--text-faint);flex-wrap:wrap;gap:12px;font-size:.78rem;display:flex}.review-card-correct{background:var(--ok-bg);border-color:var(--ok)}.review-card-correct .q-stem{margin-bottom:4px}.review-card-incorrect{background:var(--bad-bg);border-color:var(--bad)}.choice-row{flex-direction:column;gap:8px;margin:10px 0;display:flex}.choice-chip{border-radius:var(--radius-sm);background:var(--panel);border:1px solid var(--panel-border);flex-direction:column;gap:2px;padding:8px 12px;font-size:.86rem;display:flex}.choice-chip .lbl{text-transform:uppercase;letter-spacing:.08em;font-size:.66rem;font-weight:750}.choice-chip.chosen-wrong{border-color:var(--bad)}.choice-chip.chosen-wrong .lbl{color:var(--bad)}.choice-chip.the-correct{border-color:var(--ok)}.choice-chip.the-correct .lbl{color:var(--ok)}.why-wrong-block{border-radius:var(--radius-sm);background:var(--bg-sunken);border-left:4px solid var(--bad);margin-top:12px;padding:12px 14px}.why-wrong-block .why-title{text-transform:uppercase;letter-spacing:.09em;color:var(--bad);align-items:center;gap:6px;margin-bottom:6px;font-size:.72rem;font-weight:800;display:flex}.why-wrong-block .why-title.why-correct-title{color:var(--ok);margin-top:12px}.why-wrong-block p{color:var(--text);margin:0 0 4px;font-size:.92rem;line-height:1.5}@media (width<=900px){.review-groups{grid-template-columns:1fr}}.mode-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin-top:8px;display:grid}.mode-card{text-align:left;padding:var(--card-pad-sm);border-radius:var(--radius);background:var(--panel);border:1px solid var(--panel-border);box-shadow:var(--panel-shadow);flex-direction:column;gap:8px;transition:transform .12s,border-color .15s,box-shadow .15s;display:flex}.mode-card:hover{border-color:var(--accent-line);box-shadow:var(--shadow-lift);transform:translateY(-3px)}.mode-card:active{box-shadow:var(--panel-shadow);transform:translateY(0)}.mode-card .ic{font-size:1.5rem}.mode-card h3{font-size:1.05rem}.mode-card p{color:var(--text-dim);font-size:.88rem}.field-row{flex-wrap:wrap;align-items:center;gap:10px;margin:14px 0;display:flex}.map-actions{flex-wrap:wrap;gap:10px;display:flex}.field-row label{color:var(--text-dim);font-size:.9rem}.seg{border:1px solid var(--border-strong);border-radius:var(--radius-md);display:inline-flex;overflow:hidden}.seg button{color:var(--text-dim);border-right:1px solid var(--border-strong);padding:8px 14px;font-weight:650}.seg button:last-child{border-right:none}.seg button.on{background:var(--accent-soft);color:var(--accent)}.section-label{text-transform:uppercase;letter-spacing:.12em;color:var(--text-faint);margin:22px 0 10px;font-size:.7rem;font-weight:750}.hint{color:var(--text-faint);font-size:.82rem}.kbd-hint{align-items:center;gap:4px;display:inline-flex}.kbd-hint kbd{background:var(--bg-sunken);border:1px solid var(--border-strong);color:var(--text-dim);border-radius:5px;padding:2px 6px;font-size:.72rem}.brand-home{cursor:pointer}.brand-home:hover .mark{filter:brightness(1.08)}.brand-home:hover .sub{color:var(--text-dim)}.bar{background:var(--bg-sunken);border:1px solid var(--border);border-radius:99px;height:8px;display:block;overflow:hidden}.bar>i{background:linear-gradient(90deg, var(--accent-2), var(--accent));border-radius:99px;height:100%;transition:width .5s cubic-bezier(.22,1,.36,1);display:block}.dash-stats{gap:var(--space-3);margin-bottom:var(--space-5);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.dash-stat{background:var(--panel);border:1px solid var(--panel-border);box-shadow:var(--panel-shadow);border-radius:var(--radius);padding:var(--card-pad-sm);flex-direction:column;gap:4px;display:flex}.dash-stat-v{color:var(--text-strong);font-variant-numeric:tabular-nums;align-items:center;gap:8px;font-size:1.55rem;font-weight:800;display:inline-flex}.dash-stat-v svg{color:var(--accent)}.dash-stat-k{color:var(--text-dim);font-size:.76rem}.dash-recs{margin-bottom:var(--space-5)}.rec-list{flex-direction:column;gap:8px;display:flex}.rec-row{text-align:left;border-radius:var(--radius);background:var(--panel);border:1px solid var(--panel-border);width:100%;box-shadow:var(--panel-shadow);align-items:center;gap:14px;padding:13px 16px;transition:border-color .12s,transform .12s,box-shadow .15s;display:flex}.rec-row:hover{border-color:var(--accent-line);box-shadow:var(--shadow-lift);transform:translateY(-2px)}.rec-row:active{box-shadow:var(--panel-shadow);transform:translateY(0)}.rec-ic{background:var(--accent-soft);width:36px;height:36px;color:var(--accent);border-radius:9px;flex-shrink:0;place-items:center;display:inline-grid}.rec-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.rec-title{color:var(--text-strong);font-weight:700}.rec-detail{color:var(--text-dim);font-size:.82rem}.rec-go{color:var(--text-faint);flex-shrink:0;font-size:1.2rem}.flk-cols{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(320px,1fr));display:grid}.flk-panel{background:var(--panel);border:1px solid var(--panel-border);box-shadow:var(--panel-shadow);border-radius:var(--radius);padding:var(--card-pad);flex-direction:column;gap:12px;display:flex}.flk-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.flk-head h2{font-size:1.3rem}.flk-sub{color:var(--text-dim);margin-top:2px;font-size:.82rem}.flk-mastery{flex-direction:column;flex-shrink:0;align-items:flex-end;display:flex}.flk-mastery-v{color:var(--accent);font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:800;line-height:1}.flk-mastery-k{text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint);margin-top:3px;font-size:.6rem}.subj-list{flex-direction:column;gap:4px;margin-top:2px;display:flex}.subj-row{align-items:center;gap:8px;display:flex}.subj-main{text-align:left;border-radius:var(--radius-sm);border:1px solid #0000;flex:1;align-items:flex-start;gap:10px;min-width:0;padding:10px 12px;transition:background .12s,border-color .12s;display:flex}.subj-main:hover{background:var(--bg-sunken);border-color:var(--border)}.subj-dot{border-radius:99px;flex-shrink:0;width:10px;height:10px;margin-top:5px}.subj-body{flex-direction:column;flex:1;gap:5px;min-width:0;display:flex}.subj-title{color:var(--text-strong);align-items:center;gap:6px;font-weight:650;display:inline-flex}.subj-complete{color:var(--ok);display:inline-flex}.subj-meta{color:var(--text-faint);font-size:.74rem}.subj-weak{cursor:pointer;flex-shrink:0;align-self:center}.dash-foot{margin-top:var(--space-5);color:var(--text-faint);max-width:820px;font-size:.76rem;line-height:1.55}.rev-subjects{flex-wrap:wrap;gap:8px;margin:16px 0 6px;display:flex}.rev-subject{border:1px solid var(--border-strong);color:var(--text-dim);background:var(--bg-raised);border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:.82rem;font-weight:600;display:inline-flex}.rev-subject.on{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-line)}.rev-subject.soon{opacity:.55;cursor:not-allowed}.rev-soon{text-transform:uppercase;letter-spacing:.08em;border:1px solid var(--border);color:var(--text-faint);border-radius:6px;padding:0 4px;font-size:.62rem}.rev-filters{flex-wrap:wrap;gap:6px;display:inline-flex}.rev-chip{cursor:pointer}.rev-chip.on{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-line)}.rev-tools{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.rev-search{border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--bg-raised);color:var(--text);min-width:180px;padding:7px 12px;font-size:.85rem}.rev-legend{flex-wrap:wrap;align-items:center;gap:12px;margin:6px 0 14px;display:flex}.rev-meta-dim{color:var(--text-faint);font-size:.74rem}.rev-chip.k-rule.on{color:var(--accent)}.rev-chip.k-test.on{color:var(--ok);border-color:var(--ok);background:var(--ok-bg)}.rev-chip.k-date.on{color:var(--warn);border-color:var(--warn);background:var(--warn-bg)}.confirm-overlay{z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#090b148c;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.confirm-dialog{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);width:100%;max-width:440px;box-shadow:var(--shadow-lift);padding:var(--card-pad);animation:.18s rise}.confirm-dialog h2{margin-bottom:8px;font-size:1.15rem}.confirm-dialog p{color:var(--text-dim);line-height:1.55}.confirm-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.dash-hero{gap:var(--space-3);margin-bottom:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.countdown-chip{background:var(--panel);border:1px solid var(--panel-border);box-shadow:var(--panel-shadow);border-radius:var(--radius);padding:var(--card-pad-sm);flex-direction:column;gap:4px;display:flex}.countdown-flk{text-transform:uppercase;letter-spacing:.1em;color:var(--accent);align-items:center;gap:5px;font-size:.68rem;font-weight:750;display:inline-flex}.countdown-chip .btn{align-self:flex-start;margin-top:4px}.countdown-picker{flex-direction:column;gap:6px;display:flex}.countdown-picker input[type=date]{font:inherit;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-sunken);color:var(--text-strong);padding:8px 10px}.streak-stat .dash-stat-v svg{color:var(--amber)}.resume-banner{border-color:var(--warn);background:var(--warn-bg);flex-wrap:wrap;align-items:center}.resume-banner-body{flex:1;min-width:200px}.resume-banner-actions{flex-wrap:wrap;gap:8px;display:flex}.plan-cta-banner{border-color:var(--accent-line);background:var(--accent-soft);flex-wrap:wrap;align-items:center}.plan-cta-banner .ic{color:var(--accent)}.priority-card{grid-column:span 1}.priority-card-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.priority-disclosure{font-size:.82rem}.priority-disclosure summary{cursor:pointer;color:var(--accent);padding:4px 0;font-weight:650}.priority-disclosure p{margin-top:6px}.dash-trends{gap:var(--space-4);margin-bottom:var(--space-5);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));display:grid}.dash-trend-card{background:var(--panel);border:1px solid var(--panel-border);box-shadow:var(--panel-shadow);border-radius:var(--radius);padding:var(--card-pad-sm)}.analyser-toolbar{justify-content:flex-end;margin-bottom:8px;display:flex}.mock-history-trend{flex-wrap:wrap;gap:6px;display:flex}.mh-pip{font-variant-numeric:tabular-nums;border:1px solid var(--border);border-radius:8px;justify-content:center;align-items:center;min-width:44px;padding:4px 8px;font-size:.76rem;font-weight:700;display:inline-flex}.mh-pip.ok{color:var(--ok);background:var(--ok-bg);border-color:var(--ok)}.mh-pip.bad{color:var(--bad);background:var(--bad-bg);border-color:var(--bad)}.chart-bar-group{flex-direction:column;gap:10px;margin-bottom:6px;display:flex}.chart-bar-row{text-align:left;background:0 0;border:none;flex-direction:column;gap:5px;width:100%;padding:0;display:flex}.chart-bar-row-btn{cursor:pointer;border-radius:var(--radius-sm);padding:6px 8px}.chart-bar-row-btn:hover{background:var(--bg-sunken)}.chart-bar-label{color:var(--text-strong);justify-content:space-between;gap:10px;font-size:.84rem;display:flex}.chart-bar-detail{color:var(--text-dim);white-space:nowrap;font-size:.78rem}.chart-bar.bar-bad>i{background:var(--bad)}.chart-bar.bar-ok>i{background:var(--ok)}.chart-sparkline svg,.chart-pacing svg{display:block}.chart-axis{stroke:var(--border);stroke-width:1px}.chart-line{stroke:var(--accent);stroke-width:2px}.chart-dot{fill:var(--accent)}.chart-target-line{stroke:var(--warn);stroke-width:1.5px;stroke-dasharray:5 4}.chart-dot-fast{fill:var(--ok)}.chart-dot-ok{fill:var(--text-faint)}.chart-dot-slow{fill:var(--bad)}.chart-legend{color:var(--text-dim);flex-wrap:wrap;gap:14px;margin-top:8px;font-size:.74rem;display:flex}.chart-legend-item{align-items:center;gap:6px;display:inline-flex}.chart-dot-swatch{border-radius:99px;width:8px;height:8px;display:inline-block}.chart-target-label{color:var(--warn);margin-left:auto;font-weight:650}.chart-fallback{margin-top:8px;font-size:.78rem}.chart-fallback summary{cursor:pointer;color:var(--text-dim)}.chart-fallback table{border-collapse:collapse;width:100%;margin-top:6px}.chart-fallback th,.chart-fallback td{text-align:left;border-bottom:1px solid var(--border);padding:3px 8px 3px 0}.analyser{margin-bottom:8px}.priority-row{border-radius:var(--radius-sm);background:var(--panel);border:1px solid var(--panel-border);box-shadow:var(--panel-shadow);flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:8px;padding:12px 14px;display:flex}.priority-row-body{flex:1;min-width:200px}.priority-row-title{color:var(--text-strong);font-weight:700}.priority-row-detail{color:var(--text-dim);margin-top:2px;font-size:.82rem}.stage-card.focused{outline:3px solid var(--accent);outline-offset:2px;animation:.3s rise}@media (width>=1024px){.app-shell,.app-main-content{padding-left:24px;padding-right:24px}.topbar-slim{padding-top:14px;padding-bottom:14px}}@media (width<=1024px){.flk-cols{grid-template-columns:1fr}}@media (width<=860px){.app-root{grid-template-columns:minmax(0,1fr)}.app-sidebar{width:100%;height:auto;padding:4px 4px calc(4px + env(safe-area-inset-bottom));border-right:none;border-top:1px solid var(--panel-border);z-index:30;flex-direction:row;align-items:stretch;gap:0;position:fixed;inset:auto 0 0;overflow:auto hidden}.sidebar-top{display:none}.sidebar-list{flex-direction:row;flex:auto;gap:0}.sidebar-item{text-align:center;white-space:nowrap;border-top:3px solid #0000;border-left:none;flex-direction:column;flex:auto;justify-content:center;gap:2px;min-width:56px;min-height:48px;padding:6px 4px;font-size:.64rem}.sidebar-item.on{border-left-color:#0000;border-top-color:var(--accent)}.sidebar-item-tag{font-size:.58rem;display:block}.sidebar-bottom{border-top:none;border-left:1px solid var(--border);align-items:center;margin-top:0;padding-top:0;padding-left:6px;display:flex}.sidebar-bottom .btn{white-space:nowrap;width:auto}.topbar-brand-mobile{display:flex}.app-main-content{padding-bottom:84px}.app-footer{margin-bottom:84px}.xp-toast{bottom:76px}}@media (width<=768px){.app-shell,.app-main-content{padding-left:16px;padding-right:16px}.topbar-slim{gap:10px;padding:10px 16px}.btn,.seg button,.option,.rev-subject,.rev-chip,.subj-weak,.sdrop-trigger,.sdrop-option,.rev-search,.countdown-picker input[type=date],.chart-bar-row-btn,.priority-disclosure summary{min-height:44px}.btn-sm{padding:8px 14px}.subj-weak{border-radius:var(--radius-md);padding:8px 12px}.sdrop-trigger{max-width:none}.stage-grid{grid-template-columns:repeat(2,1fr)}.dash-hero,.dash-trends{grid-template-columns:1fr}.subject-head h1{font-size:1.5rem}}@media (width<=640px){.topbar-slim{gap:8px;padding:10px 16px 8px}.topbar-slim-left{flex-wrap:wrap;row-gap:6px}.sdrop{flex:auto;min-width:0}.sdrop-trigger{width:100%;max-width:none}.sdrop-value{flex:1}.topbar-slim-right{justify-content:space-between;width:100%}.hud{gap:10px;min-width:0}.hud-stat{align-items:flex-start;max-width:none}}@media (width<=480px){.dash-stats{grid-template-columns:repeat(2,1fr)}.stage-grid,.mode-grid{grid-template-columns:1fr}.result-score{gap:16px}.score-ring{width:110px;height:110px}.score-ring .pct{font-size:1.6rem}.view-head,.runner-bar,.option{flex-wrap:wrap}.option .otext{flex-basis:calc(100% - 44px)}.resume-banner-actions{width:100%}.resume-banner-actions .btn{flex:1;justify-content:center}.priority-card-actions{flex-direction:column;align-items:flex-start}}.flashcard{max-width:640px;margin-left:auto;margin-right:auto}.flashcard .rule-head{margin-bottom:4px}.flashcard-face{min-height:120px}.flashcard-face .rule-statement{font-size:1.28rem}.grade-row{flex-wrap:wrap;gap:8px;width:100%;display:flex}.grade-btn{border-width:2px;flex:1;justify-content:center;min-width:100px}.grade-btn kbd{opacity:.7;margin-left:4px}.grade-again{border-color:var(--bad);color:var(--bad)}.grade-again:hover{background:var(--bad-bg)}.grade-hard{border-color:var(--warn);color:var(--warn)}.grade-hard:hover{background:var(--warn-bg)}.grade-good{border-color:var(--accent);color:var(--accent)}.grade-good:hover{background:var(--accent-soft)}.grade-easy{border-color:var(--ok);color:var(--ok)}.grade-easy:hover{background:var(--ok-bg)}.rule-head-tools{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;align-items:center;gap:8px;display:inline-flex}.icon-btn{width:32px;height:32px;color:var(--parch-ink-dim);border:1px solid #0000;border-radius:999px;place-items:center;display:inline-grid}.icon-btn:hover{background:#3c30161a}.icon-btn.rule-bookmark.on{color:var(--accent-2)}.rule-note-toggle{flex-shrink:0}.note-box{max-width:68ch}.note-textarea{width:100%;font:inherit;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-sunken);color:var(--text-strong);resize:vertical;padding:8px 10px;font-size:.88rem}.parchment .note-textarea{border-color:var(--parch-line);color:var(--parch-ink);background:#ffffff80}.q-note-disclosure{margin-top:12px;font-size:.85rem}.q-note-disclosure summary{cursor:pointer;color:var(--accent);padding:4px 0;font-weight:650}.q-note-disclosure .note-textarea{margin-top:6px}.notes-card{max-width:720px}.notes-card .note-box{margin-top:10px}.rule-practice-row{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.rule-practice{max-width:68ch}.rule-practice-body{border-left:3px solid var(--parch-line);background:#fff6;border-radius:6px;margin-top:10px;padding:12px 14px}.limb-preamble{color:var(--parch-ink-dim);margin:0 0 8px;font-size:.92rem;font-style:italic}.limb-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.limb-list li{align-items:flex-start;gap:8px;font-size:.95rem;line-height:1.45;display:flex}.limb-list li.limb-shown{color:var(--parch-ink)}.limb-list li.limb-check,.limb-check{color:var(--ok);flex-shrink:0;margin-top:3px}.limb-placeholder{color:var(--parch-ink-dim);border:1px dashed var(--parch-line);border-radius:6px;padding:4px 8px;font-size:.85rem;font-style:italic}.cloze-statement{max-width:68ch;font-family:var(--serif);margin-top:10px;font-size:1.05rem;line-height:1.6}.cloze-blank{font:inherit;font-family:var(--mono);letter-spacing:.02em;background:var(--warn-bg);color:var(--warn);border:1px solid var(--warn);cursor:pointer;border-radius:4px;margin:0 1px;padding:0 4px;line-height:1.3;display:inline-block}.cloze-blank:hover{filter:brightness(1.05)}.cloze-blank.revealed{color:var(--parch-ink);font-family:var(--serif);cursor:pointer;background:0 0;border-color:#0000;padding:0 2px;font-weight:700}.rule-highlight{color:inherit;cursor:pointer;background:#facc1561;border-bottom:2px solid #ca8a0499;border-radius:3px;padding:0 1px}.rule-highlight:hover,.rule-highlight:focus-visible{background:#facc158c;outline:none}.highlight-affordance{z-index:40;background:var(--bg-raised);color:var(--text-strong);border:1px solid var(--border-strong);box-shadow:var(--shadow);border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:.8rem;font-weight:650;display:inline-flex;transform:translate(-50%)}.highlight-affordance:hover{filter:brightness(1.08)}.rule-highlight-menu{flex-shrink:0}.due-today-stat{gap:8px}.due-today-stat .bar{margin:2px 0 4px}.planner-card{gap:10px}.planner-setup{flex-wrap:wrap;align-items:flex-end;gap:12px;margin:6px 0;display:flex}.planner-setup label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;flex-direction:column;gap:4px;font-size:.72rem;font-weight:700;display:flex}.planner-setup input[type=number]{font:inherit;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-sunken);width:72px;color:var(--text-strong);padding:7px 9px}.planner-flk{border-top:1px solid var(--border);margin-top:6px;padding-top:8px}.planner-flk:first-of-type{border-top:none;margin-top:2px;padding-top:0}.planner-flk-head{text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin-bottom:4px;font-size:.7rem;font-weight:750}.plan-blocks{flex-direction:column;gap:4px;margin:4px 0 0;padding:0;list-style:none;display:flex}.plan-blocks .btn{text-align:left;justify-content:flex-start;width:100%}.conf-table{background:var(--panel);border:1px solid var(--panel-border);box-shadow:var(--panel-shadow);border-radius:var(--radius);flex-direction:column;display:flex;overflow:hidden}.conf-row{border-bottom:1px solid var(--border);grid-template-columns:2fr 2fr 2fr;align-items:center;gap:14px;padding:12px 16px;display:grid}.conf-row:last-child{border-bottom:none}.conf-head{background:var(--bg-sunken);text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint);font-size:.68rem;font-weight:750}.conf-row.conf-gap{background:var(--warn-bg)}.conf-section{color:var(--text-strong);align-items:center;gap:8px;font-weight:650;display:inline-flex}.conf-gap-chip{font-size:.62rem}.conf-levels button{padding:6px 10px;font-size:.78rem}.conf-levels button.on.conf-low{background:var(--bad-bg);color:var(--bad)}.conf-levels button.on.conf-med{background:var(--warn-bg);color:var(--warn)}.conf-levels button.on.conf-high{background:var(--ok-bg);color:var(--ok)}.conf-accuracy{color:var(--text-dim);font-size:.86rem;font-weight:650}.conf-accuracy.bad{color:var(--bad)}.conf-accuracy.ok{color:var(--ok)}.conf-accuracy-none{color:var(--text-faint);font-style:italic;font-weight:500}.conf-pill{text-transform:capitalize;border-radius:999px;align-items:center;padding:2px 9px;font-size:.7rem;font-weight:700;display:inline-flex}.conf-pill.conf-low{background:var(--bad-bg);color:var(--bad)}.conf-pill.conf-med{background:var(--warn-bg);color:var(--warn)}.conf-pill.conf-high{background:var(--ok-bg);color:var(--ok)}.evidence-feeling-cols{grid-template-columns:1fr 1fr;gap:18px;display:grid}.ef-row{text-align:left;border-radius:var(--radius-sm);border:1px solid #0000;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:7px 10px;display:flex}.ef-row:hover{background:var(--bg-sunken);border-color:var(--border)}.ef-row .num{color:var(--text-strong);font-weight:750}@media (width<=768px){.conf-row{grid-template-columns:1fr;gap:8px}.conf-head{display:none}.evidence-feeling-cols{grid-template-columns:1fr}}.ex-subject-group{margin-bottom:22px}.ex-card{gap:6px}.ex-card-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.ex-card p{font-size:.86rem}.topic-chip{border-radius:999px;align-self:flex-start;align-items:center;padding:3px 10px;font-size:.72rem;font-weight:650;display:inline-flex}.topic-chip.cat-blue{background:var(--cat-blue-bg);color:var(--cat-blue)}.topic-chip.cat-amber{background:var(--cat-amber-bg);color:var(--cat-amber)}.topic-chip.cat-teal{background:var(--cat-teal-bg);color:var(--cat-teal)}.topic-chip.cat-rose{background:var(--cat-rose-bg);color:var(--cat-rose)}.ex-scene .rule-statement{font-size:1.16rem}.ex-given-box{background:var(--cat-blue-bg);border-radius:var(--radius-sm);margin-top:14px;padding:12px 16px}.ex-given-label{text-transform:uppercase;letter-spacing:.1em;color:var(--cat-blue);margin-bottom:6px;font-size:.66rem;font-weight:800}.ex-given{color:var(--text);margin:0;padding-left:20px}.ex-given li{margin-bottom:3px;line-height:1.45}.ex-input-row{flex-wrap:wrap;align-items:center;gap:10px;margin:6px 0 12px;display:flex}.ex-input-wrap{border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--bg-sunken);align-items:center;gap:2px;padding:0 10px;display:inline-flex}.ex-unit-affix{color:var(--text-faint);font-weight:650}.ex-input{font:inherit;font-variant-numeric:tabular-nums;color:var(--text-strong);background:0 0;border:none;width:160px;padding:10px 6px;font-size:1rem}.ex-input:disabled{color:var(--text-faint)}.ex-input:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.ex-hint{color:var(--warn);flex-wrap:wrap;align-items:center;gap:10px;margin:4px 0 0;font-size:.92rem;display:flex}.ex-working{font-family:var(--mono);font-size:.92rem}.print-only{display:none}@media print{@page{margin:14mm}body{color:#000;background:#fff}.app-sidebar,.topbar-slim,.skip-link,.notice,.xp-toast,.app-footer,.btn,.seg,.rev-tools,.rev-subjects,.runner-foot,.no-print{display:none!important}.print-only{display:block}.app-shell,.app-main-content{max-width:none;margin:0;padding:0}.app-root{background:0 0;grid-template-columns:minmax(0,1fr)}a{color:#000;text-decoration:none}.parchment,.panel-card,.dash-stat,.dash-trend-card,.flk-panel,.conf-table,.result-card,.review-item,.review-card,.priority-row{color:#000!important;box-shadow:none!important;background:#fff!important;border:1px solid #999!important}.chart-bar-row,.priority-row{break-inside:avoid}}.revmap{max-width:1080px;margin-inline:auto}.rmap-title-row{align-items:center;gap:8px;display:flex}.info-note{display:inline-flex;position:relative}.info-note>summary{border:1px solid var(--border-strong);background:var(--surface);width:22px;height:22px;color:var(--text-faint);cursor:pointer;border-radius:999px;flex-shrink:0;place-items:center;list-style:none;transition:border-color .12s,color .12s;display:inline-grid}.info-note>summary::-webkit-details-marker{display:none}.info-note>summary:hover{border-color:var(--accent-line);color:var(--accent)}.info-note[open]>summary{border-color:var(--accent);color:var(--accent)}.info-note-body{z-index:20;background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius-sm);width:max-content;max-width:min(320px,100vw - 32px);box-shadow:var(--shadow-lift);color:var(--text-dim);padding:10px 12px;font-size:.82rem;line-height:1.5;position:absolute;top:calc(100% + 6px);left:0}.info-note-body p{margin:0}.info-note-body p+p{margin-top:6px}.rmap-modebar{flex-wrap:wrap;gap:8px;margin:4px 0 2px;display:inline-flex}.rmap-modebar-btn{color:var(--text-dim);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);align-items:center;gap:7px;padding:8px 14px;font-size:.86rem;font-weight:650;transition:border-color .12s,color .12s,background .12s,transform .12s;display:inline-flex}.rmap-modebar-btn:hover{border-color:var(--accent-line);color:var(--text-strong);transform:translateY(-1px)}.rmap-modebar-btn:active{transform:translateY(0)}.rmap-modebar-btn.on{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.rmap-toolbar{flex-wrap:wrap;justify-content:space-between;gap:10px;margin-top:12px}.rmap-modfilter{margin:16px 0 6px;position:relative}.rmap-modfilter-trigger{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-raised);color:var(--text-strong);align-items:center;gap:8px;padding:7px 12px;font-size:.82rem;font-weight:650;display:inline-flex}.rmap-modfilter-trigger:hover{border-color:var(--accent-line)}.rmap-modfilter-trigger[aria-expanded=true]{border-color:var(--accent)}.rmap-modfilter-icon{color:var(--text-faint);flex-shrink:0}.rmap-modfilter-summary{text-overflow:ellipsis;white-space:nowrap;max-width:46ch;overflow:hidden}.rmap-modfilter-chevron{color:var(--text-faint);flex-shrink:0;transition:transform .15s}.rmap-modfilter-chevron.rot{transform:rotate(180deg)}.rmap-modfilter-panel{z-index:30;background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius-sm);width:max-content;min-width:240px;max-width:min(340px,100vw - 32px);max-height:360px;box-shadow:var(--shadow-lift);padding:8px;position:absolute;top:calc(100% + 6px);left:0;overflow-y:auto}.rmap-modfilter-actions{border-bottom:1px solid var(--border);gap:6px;margin-bottom:6px;padding-bottom:6px;display:flex}.rmap-modfilter-list{flex-direction:column;gap:1px;margin:0;padding:0;list-style:none;display:flex}.rmap-modfilter-option label{border-radius:var(--radius-sm);color:var(--text);cursor:pointer;align-items:center;gap:8px;padding:7px 8px;font-size:.85rem;display:flex}.rmap-modfilter-option label:hover{background:var(--chip-bg)}.rmap-modfilter-option input:disabled+span{color:var(--text-faint)}.rmap-modfilter-option.soon label{cursor:not-allowed}.rmap-modfilter-soon{text-transform:uppercase;letter-spacing:.08em;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-faint);margin-left:auto;padding:0 4px;font-size:.6rem}.rmap-card-block+.rmap-card-block{border-top:1px solid var(--border);margin-top:24px;padding-top:20px}.rmap-canvas{scroll-behavior:auto;-webkit-overflow-scrolling:touch;margin-top:6px;padding:16px 6px 28px;overflow:auto}@media (width>=720px){.rmap-canvas{cursor:grab}.rmap-canvas.panning{cursor:grabbing;-webkit-user-select:none;user-select:none}}.rmap-canvas:focus-visible{outline:2px solid var(--accent,#6d28d9);outline-offset:-2px;border-radius:8px}.rmap-map{align-items:center;min-width:fit-content;display:flex}.rmap-rootcard{background:var(--panel,var(--bg-raised,#fff));border:1.5px solid var(--accent-line,#6d28d959);width:232px;box-shadow:var(--panel-shadow,0 1px 3px #100c230f);border-radius:16px;flex-shrink:0;padding:14px 16px}.rmap-root-eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint,#64748b);font-size:.66rem;font-weight:700}.rmap-root-title{margin:2px 0 8px;font-size:1.06rem;line-height:1.3}.rmap-root-counts{flex-wrap:wrap;gap:5px;margin:0 0 8px;display:flex}.rmap-root-meta{color:var(--text-faint,#64748b);font-variant-numeric:tabular-nums;margin:6px 0 0;font-size:.7rem}.rmap-root-arm{background:var(--accent-line,#6d28d959);flex-shrink:0;width:22px;height:2px}.rmap-tree,.rmap-children{--rm-conn:22px;--rm-center:23px;margin:0;list-style:none;position:relative}.rmap-tree{padding:0 0 0 var(--rm-conn)}.rmap-children{margin-top:2px;padding:0 0 0 34px}.rmap-item{padding:5px 0;animation:.3s cubic-bezier(.34,1.56,.64,1) backwards rmapNodeIn;position:relative}@keyframes rmapNodeIn{0%{opacity:0;transform:translate(-10px)scale(.96)}}.rmap-children>.rmap-item:before{content:"";left:calc(-1 * var(--rm-conn));width:calc(var(--rm-conn) - 2px);height:var(--rm-center);border-left:2px solid var(--branch-c,var(--accent,#6d28d9));border-bottom:2px solid var(--branch-c,var(--accent,#6d28d9));opacity:.55;pointer-events:none;border-bottom-left-radius:14px;position:absolute;top:0}.rmap-children>.rmap-item:not(:last-child):after{content:"";left:calc(-1 * var(--rm-conn));border-left:2px solid var(--branch-c,var(--accent,#6d28d9));opacity:.55;pointer-events:none;height:100%;position:absolute;top:0}.rmap-tree>.rmap-item.top:before{content:"";left:calc(-1 * var(--rm-conn));top:var(--rm-center);width:var(--rm-conn);border-top:2px solid var(--branch-c,var(--accent,#6d28d9));opacity:.55;pointer-events:none;height:0;position:absolute}.rmap-tree>.rmap-item.top:after{content:"";left:calc(-1 * var(--rm-conn));border-left:2px solid var(--branch-c,var(--accent,#6d28d9));opacity:.55;pointer-events:none;height:100%;position:absolute;top:0}.rmap-tree>.rmap-item.top:first-child:after{top:var(--rm-center);height:calc(100% - var(--rm-center))}.rmap-tree>.rmap-item.top:last-child:after{height:var(--rm-center);top:0}.rmap-tree>.rmap-item.top:first-child:last-child:after{display:none}.rmap-node{background:var(--panel,var(--bg-raised,#fff));border:1.5px solid color-mix(in srgb, var(--branch-c,var(--accent,#6d28d9)) 45%, transparent);cursor:pointer;border-radius:14px;align-items:flex-start;gap:8px;width:fit-content;max-width:min(560px,100%);padding:9px 12px;transition:transform .12s,box-shadow .12s,border-color .12s;display:flex}.rmap-node:hover{box-shadow:var(--panel-shadow,0 2px 6px #100c231a);transform:translateY(-1px)}.rmap-node:focus-visible{outline:2px solid var(--branch-c,var(--accent,#6d28d9));outline-offset:2px}.rmap-node.branch{background:var(--branch-c-bg,var(--accent-soft,#6d28d91a));min-width:190px}.rmap-node-main{flex-direction:column;gap:3px;min-width:0;display:flex}.rmap-node-title{color:var(--text-strong,#0f172a);font-size:.92rem;font-weight:650;line-height:1.35}.rmap-node-note{color:var(--text-dim,#475569);font-size:.78rem;font-style:italic}.rmap-node-meta{color:var(--text-faint,#64748b);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.7rem}.rmap-mini-progress{background:color-mix(in srgb, var(--branch-c,var(--accent,#6d28d9)) 18%, transparent);border-radius:99px;width:100%;max-width:190px;height:4px;display:block;overflow:hidden}.rmap-mini-progress.root{background:var(--bg-sunken,#f1f5f9);max-width:none}.rmap-mini-progress>i{background:var(--branch-c,var(--accent,#6d28d9));border-radius:99px;height:100%;transition:width .3s;display:block}.rmap-mini-progress.root>i{background:var(--accent,#6d28d9)}.rmap-caret{color:var(--branch-c,var(--accent,#6d28d9));flex-shrink:0;place-items:center;margin-top:3px;transition:transform .18s;display:inline-grid;transform:rotate(-90deg)}.rmap-caret.rot{transform:rotate(0)}.rmap-node.leaf{border-color:color-mix(in srgb, var(--branch-c,var(--accent,#6d28d9)) 30%, transparent);padding:8px 12px;display:block}.rmap-node.leaf.open{box-shadow:var(--panel-shadow,0 2px 6px #100c231a)}.rmap-node.leaf.is-known{border-color:color-mix(in srgb, var(--ok,#047857) 55%, transparent)}.rmap-leaf-head{align-items:center;gap:8px;display:flex}.rmap-leaf-head .rmap-caret{margin-top:0;margin-left:auto}.rmap-node.leaf .rmap-node-title{color:var(--text,#1e293b);min-width:0;font-size:.88rem;font-weight:550}.rmap-kind-dot{border-radius:50%;flex-shrink:0;place-items:center;width:22px;height:22px;display:inline-grid}.rmap-kind-dot.k-rule{color:var(--accent,#6d28d9);background:var(--accent-soft,#6d28d91a)}.rmap-kind-dot.k-test{color:var(--ok,#047857);background:var(--ok-bg,#0478571a)}.rmap-kind-dot.k-date{color:var(--warn,#b45309);background:var(--warn-bg,#f59e0b24)}.rmap-pill{text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;border-radius:99px;flex-shrink:0;align-items:center;gap:4px;padding:3px 8px;font-size:.66rem;font-weight:700;display:inline-flex}.rmap-pill.k-rule{color:var(--accent,#6d28d9);background:var(--accent-soft,#6d28d91a)}.rmap-pill.k-test{color:var(--ok,#047857);background:var(--ok-bg,#0478571a)}.rmap-pill.k-date{color:var(--warn,#b45309);background:var(--warn-bg,#f59e0b24)}.rmap-pill.known{color:var(--ok,#047857);background:var(--ok-bg,#0478571a)}.rmap-detail{border-top:1px dashed color-mix(in srgb, var(--branch-c,var(--accent,#6d28d9)) 35%, transparent);cursor:auto;flex-direction:column;align-items:flex-start;gap:7px;margin-top:8px;padding-top:8px;animation:.22s backwards rmapDetailIn;display:flex}@keyframes rmapDetailIn{0%{opacity:0;transform:translateY(-4px)}}.rmap-detail-text{max-width:64ch;color:var(--text-dim,#475569);text-align:justify;-webkit-hyphens:auto;hyphens:auto;margin:0;font-size:.85rem;line-height:1.6}.rmap-key-term{color:inherit;font-weight:700}.rmap-cite{font-size:.75rem;font-family:var(--mono,ui-monospace, monospace);color:var(--text-faint,#64748b);align-items:flex-start;gap:6px;margin:0;display:flex}.rmap-cite svg{flex-shrink:0;margin-top:2px}.rmap-known-btn{border:1px solid var(--panel-border,var(--border,#e2e8f0));color:var(--text-dim,#475569);cursor:pointer;background:0 0;border-radius:8px;align-items:center;gap:5px;padding:5px 10px;font-size:.72rem;font-weight:650;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.rmap-known-btn:hover{border-color:var(--ok,#047857)}.rmap-known-btn.on{color:var(--ok,#047857);background:var(--ok-bg,#0478571a);border-color:var(--ok,#047857)}.rmap-count-badge{color:var(--text-dim,#475569);background:var(--chip-bg,var(--bg-sunken,#eef0f9));border-radius:99px;flex-shrink:0;padding:3px 10px;font-size:.72rem;font-weight:650}.rmap-cross-head{flex-wrap:wrap;align-items:center;gap:8px;margin:4px 0 14px;display:flex}.rmap-cross-label{color:var(--text-dim);font-size:.86rem;font-weight:650}.rmap-sheet-group{background:var(--panel,var(--bg-raised,#fff));border:1px solid var(--panel-border,var(--border,#e2e8f0));border-radius:var(--radius,12px);box-shadow:var(--panel-shadow,0 1px 3px #100c230f);margin:0 0 18px;padding:18px 20px}.rmap-sheet-head{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 8px;font-size:1rem;display:flex}.rmap-sheet{margin:0;padding:0;list-style:none}.rmap-sheet-item{border-top:1px solid var(--panel-border,var(--border,#e2e8f0));flex-direction:column;gap:6px;padding:14px 0;display:flex}.rmap-sheet-item:first-child{border-top:none;padding-top:4px}.rmap-sheet-label{color:var(--text,#1e293b);flex-wrap:wrap;align-items:baseline;gap:8px;margin:0;font-size:.88rem;font-weight:600;line-height:1.4;display:flex}.rmap-cat-tag{letter-spacing:.01em;border-radius:var(--radius-sm);white-space:nowrap;color:#3d4a5e;background:#3d4a5e1f;border:1px solid #3d4a5e52;flex-shrink:0;align-items:center;padding:2px 7px;font-size:.68rem;font-weight:650;display:inline-flex}[data-theme=dark] .rmap-cat-tag{color:#b7c1d1;background:#b7c1d124;border-color:#b7c1d152}@media (width<=719px){.rmap-canvas{padding:12px 2px 24px;overflow-x:hidden}.rmap-map{flex-direction:column;align-items:stretch;min-width:0}.rmap-rootcard{width:auto}.rmap-root-arm{width:2px;height:16px;margin-left:11px}.rmap-tree,.rmap-children{--rm-conn:14px}.rmap-tree{padding-left:var(--rm-conn)}.rmap-children{padding-left:22px}.rmap-node{width:100%;max-width:none}.rmap-node-meta{white-space:normal}.rmap-tree>.rmap-item.top:before{width:calc(var(--rm-conn) - 2px);height:var(--rm-center);border-top:none;border-left:2px solid var(--branch-c,var(--accent,#6d28d9));border-bottom:2px solid var(--branch-c,var(--accent,#6d28d9));border-bottom-left-radius:14px;top:0}.rmap-tree>.rmap-item.top:after{height:100%;top:0}.rmap-tree>.rmap-item.top:last-child:after{display:none}}@media (prefers-reduced-motion:reduce){.rmap-item,.rmap-detail{animation:none}.rmap-caret,.rmap-node,.rmap-known-btn,.rmap-mini-progress>i{transition:none}.rmap-node:hover{transform:none}.rmap-canvas{scroll-behavior:auto}}@media print{.rmap-canvas{padding:0;overflow:visible}.rmap-map{flex-direction:column;align-items:stretch}.rmap-root-arm,.rmap-caret,.rmap-known-btn,.rmap-mini-progress{display:none!important}.rmap-node,.rmap-rootcard,.rmap-sheet-group{break-inside:avoid;width:100%;max-width:none;box-shadow:none!important;border-color:#999!important}.rmap-item{break-inside:avoid;animation:none}.rmap-detail{animation:none}.rmap-item:before,.rmap-item:after{border-color:#999!important}.rmap-node,.rmap-rootcard,.rmap-sheet-group{color:#000!important;background:#fff!important}.rmap-node-title,.rmap-root-title,.rmap-sheet-label{color:#000!important}.rmap-detail-text,.rmap-node-note{color:#1a1a1a!important}.rmap-cite,.rmap-node-meta,.rmap-root-meta,.rmap-root-eyebrow{color:#333!important}.rmap-pill,.rmap-kind-dot,.rmap-count-badge,.rmap-cat-tag{border:1px solid #999;color:#000!important;background:#fff!important}.rmap-detail{border-top-color:#999}}.rmap-protect-overlay{z-index:90;color:#fff;text-align:center;background:#06070ceb;place-items:center;padding:24px;font-size:1.15rem;font-weight:700;display:grid;position:fixed;inset:0}.rmap-print-lock{display:none}@media print{body.revmap-print-locked-fallback{background:#000!important}body:has(.revmap.print-locked){background:#000!important}body.revmap-print-locked-fallback #root *{visibility:hidden!important}body:has(.revmap.print-locked) #root *{visibility:hidden!important}body.revmap-print-locked-fallback #root .rmap-print-lock{color:#fff;text-align:center;z-index:9999;background:#000;place-items:center;font-size:1.6rem;font-weight:800;display:grid;position:fixed;inset:0;visibility:visible!important}body:has(.revmap.print-locked) #root .rmap-print-lock{color:#fff;text-align:center;z-index:9999;background:#000;place-items:center;font-size:1.6rem;font-weight:800;display:grid;position:fixed;inset:0;visibility:visible!important}}.lb-book{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"prev page next"".bar.";align-items:stretch;gap:12px 14px;margin-top:4px;display:grid}.lb-paddle{background:var(--panel,#fff);border:1px solid var(--panel-border,var(--border-strong));width:46px;min-height:46px;color:var(--text-strong);cursor:pointer;border-radius:999px;align-self:center;place-items:center;transition:border-color .15s,color .15s,transform .15s;display:inline-grid}.lb-paddle-left{grid-area:prev}.lb-paddle-right{grid-area:next}.lb-paddle:hover:not(:disabled){border-color:var(--accent-line);color:var(--accent);transform:scale(1.05)}.lb-paddle:disabled{opacity:.35;cursor:default}.lb-paddle-locked{color:var(--text-faint)}.lb-page-frame{grid-area:page;min-width:0;position:relative}.lb-page{background:var(--reader-paper,var(--panel,#fff));border:1px solid var(--panel-border,var(--border-strong));border-radius:var(--radius,12px);flex-direction:column;height:clamp(430px,100dvh - 330px,780px);display:flex;position:relative;overflow:hidden}.lb-page-head{letter-spacing:.04em;color:var(--text-faint);text-align:center;white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;padding:10px 26px 0;font-size:.72rem;font-weight:600;overflow:hidden}.lb-page-content{flex:1;min-height:0;padding:16px 28px 4px;overflow:hidden}.lb-page-content,.lb-scroll-body{max-width:68ch;margin-inline:auto}.lb-fit{zoom:var(--lb-fit-font,1)}.lb-fit-scaled{transform:scale(var(--lb-fit-scale,1));transform-origin:0 0;width:calc(100% / var(--lb-fit-scale,1))}.lb-page.lb-serif .lb-page-content :is(p,li,blockquote,.rule-statement,.rule-detail,.worked,.contrast-with,.mh-body,.lb-intro-copy,.stem){font-family:var(--serif)}.lb-serif-toggle,.lb-layout-toggle{align-self:center}.lb-serif-glyph{font-family:var(--serif);font-size:.95em;font-weight:700}.lb-scroll-body.lb-serif .lb-scroll-segment :is(p,li,blockquote,.rule-statement,.rule-detail,.worked,.contrast-with,.mh-body,.lb-intro-copy,.stem){font-family:var(--serif)}.lb-page-content[data-kind=checkpoint],.lb-page-content[data-kind=game],.lb-page-content[data-kind=end]{overscroll-behavior:contain;overflow-y:auto}.lb-scroll-cue{pointer-events:none;background:linear-gradient(to bottom, transparent, var(--reader-paper,var(--panel,#fff)) 78%);justify-content:center;align-items:flex-end;height:64px;padding-bottom:6px;display:flex;position:absolute;bottom:36px;left:1px;right:1px}.lb-scroll-more{text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);background:var(--chip-bg,var(--bg-sunken));border:1px solid var(--panel-border,var(--border-strong));border-radius:999px;padding:3px 12px;font-size:.72rem;font-weight:800}.lb-page-content .panel-card{box-shadow:none;background:0 0;border:none;border-radius:0;padding:0}.lb-folio{color:var(--text-faint);font-variant-numeric:tabular-nums;flex-shrink:0;justify-content:center;align-items:center;gap:12px;padding:8px 18px 12px;font-size:.76rem;font-weight:700;display:flex}.lb-folio-line{background:var(--panel-border,var(--border));flex:0 90px;height:1px}.lb-folio-pct{border:1px solid var(--panel-border,var(--border));color:var(--text-dim);border-radius:999px;padding:1px 8px;font-weight:700}.lb-continued{color:var(--text-faint);margin-bottom:10px;font-size:.72rem;font-style:italic;font-weight:600}.lb-continues{color:var(--text-dim);align-items:center;gap:6px;margin-top:14px;font-size:.78rem;font-style:italic;font-weight:600;display:inline-flex}.lb-tapzone{z-index:2;width:13%;display:none;position:absolute;top:76px;bottom:44px}.lb-tap-left{left:0}.lb-tap-right{right:0}.lb-bar{grid-area:bar}.lb-progress-track{background:var(--chip-bg,var(--bg-sunken));border:1px solid var(--panel-border,var(--border));border-radius:999px;height:8px;overflow:hidden}.lb-progress-fill{background:linear-gradient(90deg, var(--accent), var(--accent-2,var(--accent)));border-radius:inherit;height:100%;transition:width .25s;display:block}.lb-bar-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;min-height:18px;margin-top:7px;display:flex}.lb-cp-tally{color:var(--text-dim);font-variant-numeric:tabular-nums;align-items:center;gap:5px;font-size:.76rem;font-weight:700;display:inline-flex}.lb-cp-tally.done{color:var(--ok,#047857)}.lb-blocked-hint{color:var(--warn,#b45309);font-size:.78rem;font-weight:600}@keyframes lb-turn-fwd{0%{opacity:0;transform:perspective(1600px)translate(5%)rotateY(-6deg)}62%{opacity:1;transform:perspective(1600px)translate(-.6%)rotateY(1.2deg)}to{opacity:1;transform:none}}@keyframes lb-turn-back{0%{opacity:0;transform:perspective(1600px)translate(-5%)rotateY(6deg)}62%{opacity:1;transform:perspective(1600px)translate(.6%)rotateY(-1.2deg)}to{opacity:1;transform:none}}.lb-page-content[data-dir=fwd]{transform-origin:0;animation:.3s cubic-bezier(.2,.7,.3,1) lb-turn-fwd}.lb-page-content[data-dir=back]{transform-origin:100%;animation:.3s cubic-bezier(.2,.7,.3,1) lb-turn-back}@keyframes lb-shake{10%,90%{transform:translate(-2px)}20%,80%{transform:translate(3px)}30%,50%,70%{transform:translate(-4px)}40%,60%{transform:translate(4px)}}.lb-page.lb-shake{animation:.45s lb-shake}@media (prefers-reduced-motion:reduce){.lb-page-content[data-dir=fwd],.lb-page-content[data-dir=back],.lb-page.lb-shake{animation:none}.lb-paddle:hover:not(:disabled){transform:none}}@media (width<=719px){.lb-book{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"page page page""prev bar next";gap:10px}.lb-paddle{border-radius:10px;align-self:start;width:44px;min-height:40px}.lb-page{height:clamp(400px,100dvh - 250px,660px)}.lb-page-content{padding:12px 18px 2px}.lb-page-head{padding:8px 18px 0}.lb-tapzone{display:block}.lb-bar{align-self:center}.lb-bar-meta{text-align:center;justify-content:center}.lb-screen .view-head .titles{min-width:0}.lb-screen .view-head h1{white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:1.1rem;overflow:hidden}.lb-screen.lb-mid-chapter .runner-foot{display:none}}.lb-intro-title{margin-bottom:10px;font-size:1.15rem;line-height:1.35;display:none}@media (width<=719px){.lb-intro-title{display:block}}.lb-scroll{margin-top:10px;position:relative}.lb-scroll-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.lb-scroll-bar .lb-progress-track{flex:220px;min-width:140px}.lb-scroll-bar .lb-bar-meta{flex-wrap:wrap;align-items:center;gap:14px;min-height:0;margin-top:0;display:flex}.lb-zoom-control{align-items:center;gap:6px;display:inline-flex}.lb-zoom-btn{justify-content:center;width:28px;min-height:28px;padding:0;font-size:1rem;font-weight:800;line-height:1}.lb-zoom-pct{text-align:center;min-width:3.2em;color:var(--text-dim);font-variant-numeric:tabular-nums;font-size:.76rem;font-weight:700}.lb-scroll-body{zoom:var(--lb-zoom,1);flex-direction:column;gap:18px;display:flex}.lb-scroll-segment{background:var(--reader-paper,var(--panel,#fff));border:1px solid var(--panel-border,var(--border-strong));border-radius:var(--radius,12px);padding:20px 28px;position:relative}.lb-scroll-segment[data-kind=checkpoint],.lb-scroll-segment[data-kind=game]{border-color:var(--accent-line,var(--panel-border))}.lb-scroll-segment .panel-card{box-shadow:none;background:0 0;border:none;border-radius:0;padding:0}.lb-scroll-locked{border:1px dashed var(--panel-border,var(--border-strong));border-radius:var(--radius,12px);color:var(--text-dim);text-align:center;justify-content:center;align-items:center;gap:8px;padding:20px;font-size:.86rem;font-weight:700;display:flex}.lb-scroll>.lb-watermark{z-index:1}@media (width<=719px){.lb-scroll-segment{padding:16px 18px}}.lb-intro-page{padding:6px 2px}.lb-intro-copy{color:var(--text-dim);max-width:62ch;margin-top:14px;line-height:1.55}.lb-game-page{padding:2px;position:relative}.lb-game-eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--accent);align-items:center;gap:10px;margin-bottom:10px;font-size:.68rem;font-weight:800;display:flex}.lb-game-xp-note{color:var(--text-dim);margin:-2px 0 12px;font-size:.78rem;font-weight:600}@keyframes lb-combo-in{0%{opacity:0;transform:scale(.6)}70%{opacity:1;transform:scale(1.08)}to{opacity:1;transform:scale(1)}}.lb-combo{z-index:1;border:1px solid var(--accent-line,var(--border-strong));background:var(--accent-soft);color:var(--accent);font-variant-numeric:tabular-nums;border-radius:999px;align-items:center;gap:5px;padding:3px 10px;font-size:.74rem;font-weight:800;animation:.3s ease-out lb-combo-in;display:inline-flex;position:absolute;top:0;right:0}.lb-cheer{vertical-align:middle;place-items:center;width:22px;height:22px;display:inline-grid;position:relative}@keyframes lb-cheer-core-kf{0%{transform:scale(0)}55%{transform:scale(1.5)}to{transform:scale(1)}}.lb-cheer-core{background:var(--ok,#047857);color:#fff;border-radius:50%;place-items:center;width:20px;height:20px;animation:.45s cubic-bezier(.2,.7,.3,1.4) lb-cheer-core-kf;display:inline-grid}@keyframes lb-cheer-p-kf{0%{transform:rotate(calc(var(--i) * 60deg)) translateY(0) scale(1);opacity:1}to{transform:rotate(calc(var(--i) * 60deg)) translateY(-19px) scale(.4);opacity:0}}.lb-cheer-p{background:var(--ok,#047857);opacity:0;pointer-events:none;border-radius:50%;width:5px;height:5px;animation:.6s ease-out .1s lb-cheer-p-kf;position:absolute;top:8px;left:8px}.lb-cheer-p:nth-child(odd){background:var(--accent)}@media (prefers-reduced-motion:reduce){.lb-combo,.lb-cheer-core,.lb-cheer-p{animation:none}}.lb-cp-page{padding:2px;position:relative}.lb-cp-page .lb-cp-eyebrow,.lb-game-page .lb-game-eyebrow{padding-right:110px}.lb-cp-page .verdict-line .lb-cheer{margin-left:8px}.lb-cp-eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--accent);align-items:center;gap:6px;margin-bottom:6px;font-size:.68rem;font-weight:800;display:inline-flex}.lb-cp-lede{color:var(--text-dim);max-width:62ch;margin-bottom:12px;font-size:.85rem}.lb-cp-page .stem{color:var(--text-strong);max-width:68ch;margin-bottom:12px;font-weight:650}.lb-cp-page .feedback{margin-top:14px}.lb-end-page{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:100%;padding:10px;display:flex}.lb-end-badge{background:var(--chip-bg,var(--bg-sunken));border:1px solid var(--panel-border,var(--border-strong));width:58px;height:58px;color:var(--text-dim);border-radius:999px;place-items:center;display:grid}.lb-end-badge.ok{background:var(--ok-bg,#0478571a);border-color:var(--ok,#047857);color:var(--ok,#047857)}.lb-end-title{font-size:1.3rem}.lb-end-sub{color:var(--text-dim);max-width:52ch}.lb-end-actions{flex-direction:column;align-items:center;gap:10px;margin-top:8px;display:flex}.rulebook-card .rule-statement{background:var(--accent-soft,var(--chip-bg));border:1px solid color-mix(in srgb, var(--accent) 24%, transparent);border-left:3px solid var(--accent);border-radius:0 10px 10px 0;padding:12px 14px}.rulebook-card .rule-detail,.rulebook-card .rule-explain{background:var(--chip-bg,var(--bg-sunken));border:1px solid var(--panel-border,var(--border));border-radius:10px;padding:10px 14px}.rulebook-card .rule-explain{margin-top:10px}.rulebook-card .rule-explain .block-label{margin-top:0}.rulebook-card .rule-explain p{margin:4px 0 0}.rulebook-card .worked,.rulebook-card .contrast-with{border-radius:0 10px 10px 0;padding:10px 14px}.rulebook-card .rule-statement,.rulebook-card .rule-detail,.rulebook-card .rule-explain p,.rulebook-card .worked,.rulebook-card .contrast-with,.rulebook-card .mh-body{text-align:left;overflow-wrap:break-word}.rulebook-card .memory-hook{background:var(--cat-amber-bg,var(--warn-bg));border:1px solid color-mix(in srgb, var(--cat-amber,var(--warn)) 40%, transparent);border-left:4px solid var(--cat-amber,var(--warn));border-radius:0 12px 12px 0;margin-top:12px;padding:12px 14px}.rulebook-card .memory-hook .mh-body{color:var(--text-strong)}.rulebook-card .memory-hook .mh-label{color:var(--cat-amber,var(--warn));text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:6px;font-size:.72rem;font-weight:800;display:inline-flex}:root{--hl-yellow:#facc1561;--hl-yellow-line:#ca8a0499;--hl-green:#4ade8059;--hl-green-line:#15803d8c;--hl-blue:#60a5fa59;--hl-blue-line:#1d4ed880;--hl-pink:#f472b652;--hl-pink-line:#be185d80}[data-theme=dark]{--hl-yellow:#facc1552;--hl-yellow-line:#facc158c;--hl-green:#4ade8047;--hl-green-line:#4ade808c;--hl-blue:#60a5fa4d;--hl-blue-line:#60a5fa8c;--hl-pink:#f472b647;--hl-pink-line:#f472b68c}.rule-highlight[data-hl=yellow]{background:var(--hl-yellow);border-bottom-color:var(--hl-yellow-line)}.rule-highlight[data-hl=green]{background:var(--hl-green);border-bottom-color:var(--hl-green-line)}.rule-highlight[data-hl=blue]{background:var(--hl-blue);border-bottom-color:var(--hl-blue-line)}.rule-highlight[data-hl=pink]{background:var(--hl-pink);border-bottom-color:var(--hl-pink-line)}.hl-popover{z-index:40;background:var(--panel,var(--bg-raised));border:1px solid var(--panel-border,var(--border-strong));box-shadow:var(--panel-shadow,var(--shadow));border-radius:999px;align-items:center;gap:6px;padding:4px 6px;display:inline-flex;transform:translate(-50%)}.hl-popover .highlight-affordance{box-shadow:none;background:0 0;border:none;padding:4px 6px;position:static;transform:none}.hl-swatch{cursor:pointer;border:1px solid var(--panel-border,var(--border-strong));border-radius:50%;width:20px;height:20px;transition:transform .12s,border-color .12s}.hl-swatch:hover,.hl-swatch:focus-visible{border-color:var(--text-dim);outline:none;transform:scale(1.15)}.hl-swatch[data-hl=yellow]{background:var(--hl-yellow);box-shadow:inset 0 0 0 1px var(--hl-yellow-line)}.hl-swatch[data-hl=green]{background:var(--hl-green);box-shadow:inset 0 0 0 1px var(--hl-green-line)}.hl-swatch[data-hl=blue]{background:var(--hl-blue);box-shadow:inset 0 0 0 1px var(--hl-blue-line)}.hl-swatch[data-hl=pink]{background:var(--hl-pink);box-shadow:inset 0 0 0 1px var(--hl-pink-line)}@media (prefers-reduced-motion:reduce){.hl-swatch:hover,.hl-swatch:focus-visible{transform:none}}.note-chip{border:1px solid var(--accent-line,var(--panel-border));background:var(--accent-soft);color:var(--accent);cursor:pointer;border-radius:999px;flex-shrink:0;align-items:center;gap:5px;padding:4px 10px;font-size:.76rem;font-weight:700;display:inline-flex}.note-chip:hover{filter:brightness(1.04)}.note-popover{z-index:45;background:var(--panel,var(--bg-raised));border:1px solid var(--panel-border,var(--border-strong));width:min(340px,92vw);box-shadow:var(--panel-shadow,var(--shadow));border-radius:12px;padding:12px}.note-popover .note-textarea{min-height:76px}.note-popover .share-toggle-row{margin-top:8px}.note-popover-actions{justify-content:flex-end;gap:8px;margin-top:10px;display:flex}.rulebook-card .rule-head{flex-direction:column-reverse;align-items:stretch;gap:8px;margin-bottom:8px;display:flex}.rulebook-card .rule-head-tools{align-self:flex-end}.rulebook-card .rule-statement{width:100%;max-width:none}.rulebook-card .diff-pill{background:var(--chip-bg);color:var(--text-dim);border-color:var(--panel-border,var(--border-strong))}.rulebook-card .worked-label{color:var(--cat-blue,var(--accent));align-items:center;gap:6px;display:inline-flex}.rulebook-card .worked{background:var(--cat-blue-bg,var(--chip-bg));border:1px solid color-mix(in srgb, var(--cat-blue,var(--accent)) 28%, transparent);border-left:3px solid var(--cat-blue,var(--accent));color:var(--text);border-radius:0 10px 10px 0}.limb-glyph{flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0 10px;display:flex}.limb-glyph-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin-right:4px;font-size:.68rem;font-weight:800}.limb-glyph-node{font-variant-numeric:tabular-nums;background:var(--accent-soft);min-width:26px;height:22px;color:var(--accent);border:1px solid color-mix(in srgb, currentColor 35%, transparent);border-radius:999px;place-items:center;padding:0 6px;font-size:.74rem;font-weight:800;display:inline-grid}.limb-glyph-arrow{background:var(--text-faint);flex-shrink:0;width:14px;height:2px;position:relative}.limb-glyph-arrow:after{content:"";border-top:4px solid #0000;border-bottom:4px solid #0000;border-left:5px solid var(--text-faint);position:absolute;top:-3px;right:-1px}.limb-glyph-cat-0{background:var(--cat-blue-bg,var(--accent-soft));color:var(--cat-blue,var(--accent))}.limb-glyph-cat-1{background:var(--cat-amber-bg,var(--accent-soft));color:var(--cat-amber,var(--accent))}.limb-glyph-cat-2{background:var(--cat-teal-bg,var(--accent-soft));color:var(--cat-teal,var(--accent))}.limb-pipeline{position:relative}.limb-pipeline li{align-items:flex-start;gap:8px;display:flex;position:relative}.limb-pipeline li+li{margin-top:12px}.limb-pipeline li+li:before{content:"";background:var(--panel-border,var(--border-strong));width:2px;height:10px;position:absolute;top:-11px;left:10px}.limb-step-num{background:var(--accent-soft);width:22px;height:22px;color:var(--accent);border-radius:50%;flex-shrink:0;place-items:center;font-size:.74rem;font-weight:800;display:inline-grid}.limb-pipeline .limb-check{color:var(--ok,#047857);flex-shrink:0;margin-top:5px}@keyframes limb-step-in-kf{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.limb-pipeline li.limb-shown{animation:.25s ease-out limb-step-in-kf}@media (prefers-reduced-motion:reduce){.limb-pipeline li.limb-shown{animation:none}}.rulebook-card .contrast-with{background:var(--cat-amber-bg,var(--warn-bg));border-left:3px solid var(--cat-amber,var(--warn));color:var(--text)}.rulebook-card .icon-btn{color:var(--text-dim)}.rulebook-card .icon-btn:hover{background:var(--chip-bg)}.rulebook-card .icon-btn.rule-bookmark.on{color:var(--accent-2,var(--accent))}.rulebook-card .highlight-affordance{background:var(--panel,#fff);color:var(--text-strong);border:1px solid var(--panel-border,var(--border-strong));box-shadow:var(--panel-shadow,var(--shadow))}.rulebook-card .highlight-affordance:hover{filter:brightness(1.04)}.rulebook-card .rule-practice-body{background:var(--cat-teal-bg,var(--chip-bg));border-left:3px solid var(--cat-teal,var(--accent-line))}.rulebook-card .limb-preamble{color:var(--text-dim)}.rulebook-card .limb-list li.limb-shown{color:var(--text)}.rulebook-card .limb-placeholder{color:var(--text-faint);border-color:var(--panel-border,var(--border-strong))}.rulebook-card .cloze-blank.revealed{color:var(--text-strong)}.lb-watermark{z-index:3;pointer-events:none;-webkit-user-select:none;user-select:none;opacity:.17;background-repeat:repeat;position:absolute;inset:0}[data-theme=dark] .lb-watermark{opacity:.22}.lb-protect-overlay{z-index:90;color:#fff;text-align:center;background:#06070ceb;place-items:center;padding:24px;font-size:1.15rem;font-weight:700;display:grid;position:fixed;inset:0}.lb-print-lock{display:none}@media print{body:has(.lb-screen){background:#000!important}body:has(.lb-screen) #root *{visibility:hidden!important}body:has(.lb-screen) #root .lb-print-lock{color:#fff;text-align:center;z-index:9999;background:#000;place-items:center;font-size:1.6rem;font-weight:800;display:grid;position:fixed;inset:0;visibility:visible!important}}.limb-game{background:var(--panel,#fff);border:1px solid var(--panel-border,var(--border));border-radius:var(--radius,14px);box-shadow:var(--panel-shadow,var(--shadow));padding:var(--card-pad,20px);flex-direction:column;gap:14px;display:flex;position:relative;overflow:hidden}@keyframes lg-sweep-kf{0%{opacity:.9;transform:translate(-101%)}to{opacity:0;transform:translate(101%)}}.limb-game.lg-done-ok{border-color:var(--ok,#047857)}.limb-game.lg-done-ok:after{content:"";pointer-events:none;background:linear-gradient(105deg, transparent 20%, var(--ok-bg,#0478572e) 50%, transparent 80%);animation:.7s ease-out forwards lg-sweep-kf;position:absolute;inset:0;transform:translate(-101%)}@keyframes lg-pop-kf{0%{transform:scale(0)}60%{transform:scale(1.45)}to{transform:scale(1)}}.lg-opt-correct .lg-option-icon,.lg-matched .lg-option-icon,.lg-order-correct svg,.lg-cloze-ok .lg-option-icon,.lg-pipe-step .lg-option-icon{animation:.35s cubic-bezier(.2,.7,.3,1.4) lg-pop-kf}.lg-prompt{color:var(--text-strong);font-size:1.02rem;font-weight:700;line-height:1.4}.lg-controls{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.lg-feedback{min-height:1.2em;color:var(--text-dim);font-size:.88rem;font-weight:600}.lg-select-options{grid-template-columns:1fr;gap:10px;display:grid}@media (width>=560px){.lg-select-options{grid-template-columns:1fr 1fr}}.lg-option{text-align:left;border-radius:calc(var(--radius,14px) - 2px);border:2px solid var(--panel-border,var(--border));background:var(--chip-bg,var(--surface-2));color:var(--text);cursor:pointer;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;font-weight:600;line-height:1.4;transition:border-color .15s,background .15s,transform .1s;display:flex}.lg-option:hover:not(:disabled){border-color:var(--accent-line);transform:translateY(-1px)}.lg-option:active:not(:disabled){transform:translateY(0)scale(.99)}.lg-option:disabled{cursor:default}.lg-option-text{flex:1}.lg-option-icon{flex-shrink:0}.lg-option.lg-opt-selected,.lg-option[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft)}.lg-option.lg-opt-correct{border-color:var(--ok);background:var(--ok-bg);color:var(--ok)}.lg-option.lg-opt-incorrect{border-color:var(--bad);background:var(--bad-bg);color:var(--bad)}@keyframes lg-shake-kf{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(2px)}30%,50%,70%{transform:translate(-4px)}40%,60%{transform:translate(4px)}}.lg-shake{animation:.4s lg-shake-kf}.lg-match-columns{gap:16px;display:flex}@media (width<=480px){.lg-match-columns{gap:10px}.lg-match-item{padding:10px}}.lg-match-col{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.lg-match-item{text-align:left;border-radius:calc(var(--radius,14px) - 4px);border:2px solid var(--panel-border,var(--border));background:var(--chip-bg,var(--surface-2));color:var(--text);cursor:pointer;justify-content:space-between;align-items:center;gap:8px;padding:12px 14px;font-weight:600;line-height:1.35;transition:border-color .15s,background .15s;display:flex}.lg-match-item:hover:not(:disabled){border-color:var(--accent-line)}.lg-match-item:disabled{cursor:default}.lg-match-item.lg-selected{border-color:var(--accent);background:var(--accent-soft)}.lg-match-item.lg-matched{border-color:var(--ok);background:var(--ok-bg);color:var(--ok);cursor:default}@keyframes lg-flash-kf{0%,to{background:var(--chip-bg,var(--surface-2));border-color:var(--bad)}50%{background:var(--bad-bg);border-color:var(--bad)}}.lg-match-item.lg-wrong-flash{border-color:var(--bad);animation:.5s lg-flash-kf}.lg-order-sequence{border-radius:calc(var(--radius,14px) - 4px);border:1px dashed var(--panel-border,var(--border));background:var(--chip-bg,var(--surface-2));flex-wrap:wrap;gap:8px;min-height:48px;margin:0;padding:10px;list-style:none;display:flex}.lg-order-empty{color:var(--text-faint);align-self:center;font-size:.86rem;font-style:italic}.lg-order-slot{border:2px solid var(--panel-border,var(--border));background:var(--panel,#fff);border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:.9rem;font-weight:600;display:inline-flex}.lg-order-index{background:var(--accent-soft);width:20px;height:20px;color:var(--accent);border-radius:50%;flex-shrink:0;place-items:center;font-size:.72rem;font-weight:800;display:inline-grid}.lg-order-slot.lg-order-correct{border-color:var(--ok);color:var(--ok)}.lg-order-slot.lg-order-incorrect{border-color:var(--bad);color:var(--bad)}.lg-order-pool{flex-wrap:wrap;gap:8px;display:flex}.lg-order-pool .lg-option{flex:0 auto;padding:10px 14px}.lg-cloze-statement{color:var(--text);max-width:68ch;font-size:1.02rem;line-height:1.9}.lg-cloze-blank{border:2px dashed var(--panel-border,var(--border-strong));background:var(--chip-bg,var(--surface-2));color:var(--text-strong);font:inherit;cursor:pointer;border-radius:8px;align-items:baseline;gap:5px;margin:0 2px;padding:1px 8px;font-weight:700;transition:border-color .15s,background .15s;display:inline-flex}.lg-cloze-blank:hover:not(:disabled){border-color:var(--accent-line)}.lg-cloze-blank:disabled{cursor:default}.lg-cloze-hole{background:var(--text-faint);border-radius:2px;width:5.5ch;height:2px;margin-bottom:3px;display:inline-block}.lg-cloze-blank.lg-cloze-filled{border-style:solid;border-color:var(--accent);background:var(--accent-soft)}.lg-cloze-blank.lg-cloze-ok{border-style:solid;border-color:var(--ok);background:var(--ok-bg);color:var(--ok)}.lg-cloze-blank.lg-cloze-bad{border-style:solid;border-color:var(--bad);background:var(--bad-bg);color:var(--bad)}.lg-cloze-blank .lg-option-icon{align-self:center}.lg-cloze-pool{flex-wrap:wrap;gap:8px;display:flex}.lg-cloze-pool .lg-option{flex:0 auto;padding:10px 14px}.lg-cloze-chip:disabled:not([aria-pressed=true]){opacity:.55}.lg-cloze-chip[aria-pressed=true]:disabled{opacity:.45;cursor:default}.lg-pipe-track{border-radius:calc(var(--radius,14px) - 4px);border:1px dashed var(--panel-border,var(--border));background:var(--chip-bg,var(--surface-2));flex-direction:column;gap:0;margin:0;padding:10px 12px;list-style:none;display:flex}.lg-pipe-step{border:2px solid var(--ok,#047857);background:var(--panel,#fff);border-radius:10px;align-items:center;gap:10px;padding:8px 10px;font-size:.92rem;font-weight:600;line-height:1.35;display:flex;position:relative}.lg-pipe-step+.lg-pipe-step{margin-top:18px}.lg-pipe-step+.lg-pipe-step:before{content:"";background:var(--accent-line,var(--border-strong));width:2px;height:12px;position:absolute;top:-16px;left:22px}.lg-pipe-step+.lg-pipe-step:after{content:"";border-left:4px solid #0000;border-right:4px solid #0000;border-top:5px solid var(--accent-line,var(--border-strong));position:absolute;top:-6px;left:19px}@keyframes lg-pipe-in-kf{0%{opacity:0;transform:translateY(-6px)scale(.96)}to{opacity:1;transform:none}}.lg-pipe-step{animation:.25s ease-out lg-pipe-in-kf}.lg-pipe-num{background:var(--accent-soft);width:24px;height:24px;color:var(--accent);border-radius:50%;flex-shrink:0;place-items:center;font-size:.78rem;font-weight:800;display:inline-grid}.lg-pipe-num.lg-pipe-cat-0{background:var(--cat-blue-bg,var(--accent-soft));color:var(--cat-blue,var(--accent))}.lg-pipe-num.lg-pipe-cat-1{background:var(--cat-amber-bg,var(--accent-soft));color:var(--cat-amber,var(--accent))}.lg-pipe-num.lg-pipe-cat-2{background:var(--cat-teal-bg,var(--accent-soft));color:var(--cat-teal,var(--accent))}.lg-pipe-text{flex:1}.lg-pipe-step .lg-option-icon{color:var(--ok,#047857);flex-shrink:0}.lg-pipe-step.lg-pipe-next{border-style:dashed;border-color:var(--panel-border,var(--border-strong));background:0 0;animation:none}.lg-pipe-next .lg-pipe-num{background:var(--chip-bg,var(--surface-2));color:var(--text-faint)}.lg-pipe-hint{color:var(--text-faint);font-style:italic;font-weight:600}.lg-pipe-pool{flex-wrap:wrap;gap:8px;display:flex}.lg-pipe-pool .lg-option{flex:0 auto;padding:10px 14px}.lg-pipe-pool .lg-option.lg-wrong-flash{border-color:var(--bad);color:var(--bad);animation:.5s lg-flash-kf}@media (width<=768px){.lg-option,.lg-match-item{min-height:44px}}@media (prefers-reduced-motion:reduce){.limb-game.lg-done-ok:after{content:none}.lg-shake,.lg-match-item.lg-wrong-flash,.lg-opt-correct .lg-option-icon,.lg-matched .lg-option-icon,.lg-order-correct svg,.lg-cloze-ok .lg-option-icon,.lg-pipe-step,.lg-pipe-pool .lg-option.lg-wrong-flash{animation:none}.lg-option:hover:not(:disabled),.lg-option:active:not(:disabled){transform:none}}.collab-view{max-width:900px}.collab-info{color:var(--text-dim);max-width:60ch;margin:10px 0 0;font-size:.85rem}.collab-search{gap:8px;max-width:480px;margin:0 0 14px;display:flex}.collab-input{font:inherit;border:1px solid var(--panel-border);background:var(--panel);color:var(--text-strong);border-radius:8px;flex:auto;padding:8px 10px}.collab-input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.collab-toolbar{align-items:center;gap:10px;margin:0 0 14px;display:flex}.collab-card{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);box-shadow:var(--panel-shadow);max-width:68ch;margin:0 0 14px;padding:14px 16px}.collab-subhead{color:var(--text-strong);align-items:center;gap:6px;margin:0 0 8px;font-size:.95rem;display:flex}.collab-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.collab-row{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px;padding:6px 0;display:flex}.collab-row:last-child{border-bottom:none}.collab-name{color:var(--text-strong);overflow-wrap:anywhere;flex:auto;min-width:0;font-weight:600}.collab-tag{color:var(--text-faint);font-size:.78rem}.collab-row-actions{gap:6px;display:flex}.hint{color:var(--text-dim);margin:4px 0;font-size:.88rem}.collab-table-wrap{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);box-shadow:var(--panel-shadow);overflow-x:auto}.collab-table th{white-space:nowrap}.collab-sort-btn{font:inherit;text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:0;font-size:.76rem;font-weight:650;display:inline-flex}.collab-sort-btn:hover{color:var(--text-strong)}.collab-sort-asc{transform:rotate(180deg)}.collab-row-self{background:var(--accent-soft)}.collab-you-badge{background:var(--accent-soft);color:var(--accent-2);text-transform:uppercase;letter-spacing:.04em;border-radius:999px;margin-left:8px;padding:1px 7px;font-size:.68rem}.collab-cell-empty{color:var(--text-faint);font-style:italic}.collab-cell-sub{color:var(--text-faint);font-size:.78rem}.rule-friendlayer-toggle.on{background:var(--accent-soft);color:var(--accent-2)}.friend-annotations{border:1px dashed var(--panel-border);border-radius:calc(var(--radius) - 2px);background:var(--panel);margin-top:10px;padding:10px 12px}.friend-annotation{border-bottom:1px solid var(--border);flex-direction:column;gap:2px;padding:6px 0;display:flex}.friend-annotation:last-child{border-bottom:none}.friend-annotation-chip{color:var(--text-faint);font-size:.76rem;font-weight:650}.friend-annotation-chip:before{content:"";opacity:.5;background:currentColor;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.friend-annotation[data-hl=yellow] .friend-annotation-chip{color:var(--hl-yellow-line)}.friend-annotation[data-hl=green] .friend-annotation-chip{color:var(--hl-green-line)}.friend-annotation[data-hl=blue] .friend-annotation-chip{color:var(--hl-blue-line)}.friend-annotation[data-hl=pink] .friend-annotation-chip{color:var(--hl-pink-line)}.friend-annotation-text{color:var(--text);font-size:.88rem}.share-toggle-row{color:var(--text-dim);align-items:center;gap:6px;margin-top:6px;font-size:.8rem;display:flex}.share-toggle-row input[type=checkbox]{accent-color:var(--accent)}@media (width<=560px){.collab-table th,.collab-table td{padding:8px 9px}.collab-search{flex-direction:column}}.protected-content{position:relative}.protected-content .lb-watermark{z-index:3;pointer-events:none;-webkit-user-select:none;user-select:none;opacity:.17;background-repeat:repeat;position:absolute;inset:0}[data-theme=dark] .protected-content .lb-watermark{opacity:.22}.pc-protect-overlay{z-index:90;color:#fff;text-align:center;background:#06070ceb;place-items:center;padding:24px;font-size:1.15rem;font-weight:700;display:grid;position:fixed;inset:0}.pc-print-lock{display:none}@media print{body:has(.protected-content){background:#000!important}body:has(.protected-content) #root *{visibility:hidden!important}body:has(.protected-content) #root .pc-print-lock{color:#fff;text-align:center;z-index:9999;background:#000;place-items:center;font-size:1.6rem;font-weight:800;display:grid;position:fixed;inset:0;visibility:visible!important}}:is(body:has(.exam-skin) .app-sidebar,body:has(.exam-skin) .topbar-slim,body:has(.exam-skin) .skip-link){display:none}.exam-skin{z-index:60;color:#1a1a1a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fff;--bg-raised:#fff;--bg-sunken:#f2f4f7;--surface:#fff;--panel:#fff;--panel-border:#c9d2dc;--panel-shadow:0 8px 24px -12px #0f172a40;--chip-bg:#f2f4f7;--border:#c9d2dc;--border-strong:#9fb0c1;--text:#1a1a1a;--text-dim:#445263;--text-faint:#64748b;--text-strong:#101418;--accent:#1f4e79;--accent-2:#163a5b;--accent-ink:#fff;--accent-soft:#1f4e791f;--accent-line:#1f4e7973;--ok:#047857;--ok-bg:#0478571a;--bad:#c00202;--bad-bg:#c0020214;--warn:#b45309;--warn-bg:#f59e0b24;--radius:6px;--radius-sm:4px;--radius-md:6px;--radius-lg:6px;--card-pad:16px;--card-pad-sm:12px;--shadow:0 8px 24px -12px #0f172a40;--shadow-lift:0 14px 32px -12px #0f172a4d;background:#fff;flex-direction:column;font:15px/1.55 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif;display:flex;position:fixed;inset:0}.exam-titlebar{color:#fff;background:#1f4e79;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:10px 16px;display:flex}.exam-titlebar h1{color:#fff;margin:0;font-size:1rem;font-weight:600;line-height:1.3}.exam-titlebar .exam-progress{opacity:.95;font-weight:400}.exam-clock{font-variant-numeric:tabular-nums;white-space:nowrap;align-items:center;gap:8px;font-weight:600;display:inline-flex}.exam-clock.low{color:#ffd27a}.exam-toolbar{background:#2e6da4;flex-wrap:wrap;align-items:center;gap:2px;padding:4px 10px;display:flex}.exam-tool{color:#fff;background:0 0;border:1px solid #0000;border-radius:4px;align-items:center;gap:6px;padding:7px 12px;font-size:.9rem;font-weight:550;display:inline-flex}.exam-tool:hover{background:#ffffff24}.exam-tool.on,.exam-tool.armed{background:#ffffff38;border-color:#ffffffa6}.exam-tool:disabled{opacity:.45;cursor:not-allowed}.exam-tool .flag-filled{color:#ffd200}.exam-toolbar .exam-tool-spacer{flex:1}.exam-skin kbd{font:inherit;opacity:.85;font-size:.82em}.exam-canvas{flex:1;justify-content:center;padding:26px 20px 40px;display:flex;overflow-y:auto}.exam-canvas>.exam-col{width:100%;max-width:860px}.exam-qnum{color:#101418;margin-bottom:12px;font-weight:700}.exam-stem{white-space:pre-wrap;max-width:72ch;margin-bottom:20px;font-size:1rem;line-height:1.65}.exam-stem mark{cursor:pointer;background:#ffe95e;border-radius:2px;padding:0 1px}.exam-stem mark:hover{background:#ffd83a}.exam-options{flex-direction:column;gap:4px;max-width:72ch;display:flex}.exam-option{text-align:left;font:inherit;color:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;align-items:flex-start;gap:10px;padding:8px 6px;display:flex}.exam-option:hover{background:#eef3f8}.exam-option[aria-checked=true]{background:#e3edf6}.exam-option:disabled{cursor:not-allowed;opacity:.7}.exam-option .radio{background:#fff;border:2px solid #45536b;border-radius:50%;flex:none;width:16px;height:16px;margin-top:3px;position:relative}.exam-option[aria-checked=true] .radio:after{content:"";background:#1f4e79;border-radius:50%;position:absolute;inset:2px}.exam-option .letter{min-width:1.4em;font-weight:700}.exam-option.struck .letter,.exam-option.struck .otext{color:#5d6875;text-decoration:line-through}.exam-option:focus-visible{outline-offset:1px;outline:3px solid #1f4e79}.exam-armed-hint{color:#7a4b00;background:#fff6dd;border:1px solid #e5c56a;border-radius:4px;max-width:72ch;margin-top:14px;padding:8px 12px;font-size:.9rem}.exam-notice{color:#7a4b00;background:#fff6dd;border-bottom:1px solid #e5c56a;padding:8px 18px;font-size:.88rem}.exam-missing{color:#3f4a58;background:#f8fafc;border:1px dashed #9aa6b4;border-radius:6px;max-width:72ch;padding:18px 20px}.exam-missing p{margin:8px 0 0}.exam-missing b{color:#1f2a3a}.exam-foot{background:#1f4e79;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 14px;display:flex}.exam-nav-btn{color:#fff;background:#ffffff14;border:1px solid #ffffff8c;border-radius:4px;align-items:center;gap:6px;padding:8px 16px;font-size:.92rem;font-weight:600;display:inline-flex}.exam-nav-btn:hover{background:#fff3}.exam-nav-btn:disabled{opacity:.4;cursor:not-allowed}.exam-foot .exam-foot-spacer{flex:1}.exam-review-head{margin-bottom:4px}.exam-review-head h2{color:#101418;margin-bottom:4px;font-size:1.15rem}.exam-review-count{color:#c00202;font-weight:650}.exam-review-note{color:#445263;margin:6px 0 14px;font-size:.9rem}.exam-expired-banner{color:#7a0101;background:#c002020f;border:2px solid #c00202;border-radius:4px;margin-bottom:14px;padding:10px 14px;font-weight:600}.exam-review-grid{border:1px solid #c9d2dc;border-radius:4px;max-height:100%;margin:0;padding:0;list-style:none;overflow-y:auto}.exam-review-grid li{border-bottom:1px solid #e2e8f0}.exam-review-grid li:last-child{border-bottom:none}.exam-review-row{width:100%;font:inherit;color:#1d4ed8;text-align:left;cursor:pointer;background:0 0;align-items:center;gap:12px;padding:9px 14px;display:flex}.exam-review-row:hover{background:#eef3f8}.exam-review-row:disabled{cursor:not-allowed;color:#64748b}.exam-review-row .q{min-width:9em;font-weight:600}.exam-review-row .rflag{color:#b98600;width:1.4em}.exam-review-row .status{color:#445263}.exam-review-row .status.due{color:#c00202;font-weight:650}.exam-break{flex:1;justify-content:center;align-items:center;padding:30px 20px;display:flex}.exam-break .inner{text-align:center;max-width:560px}.exam-break h2{color:#101418;margin-bottom:12px;font-size:1.3rem}.exam-break .clock{font-variant-numeric:tabular-nums;color:#1f4e79;margin:18px 0;font-size:2.6rem;font-weight:650}.exam-break .clock.over{color:#b45309}.exam-break p{color:#445263;margin-bottom:10px;line-height:1.6}.exam-break .overrun{color:#b45309;font-weight:650}.exam-modal-overlay{z-index:80;background:#10182673;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.exam-modal{background:#fff;border:1px solid #9fb0c1;border-radius:6px;width:100%;max-width:520px;max-height:min(85vh,640px);overflow-y:auto;box-shadow:0 14px 32px -12px #0f172a59}.exam-modal-title{color:#fff;background:#1f4e79;padding:10px 16px;font-size:.98rem;font-weight:650}.exam-modal-body{padding:16px}.exam-modal-body p{color:#1a1a1a;margin-bottom:10px;line-height:1.6}.exam-modal-body ul{margin:0 0 10px 18px;padding:0}.exam-modal-body li{margin-bottom:6px;line-height:1.55}.exam-modal-body .dim{color:#445263;font-size:.9rem}.exam-modal-actions{justify-content:flex-end;gap:10px;padding:0 16px 16px;display:flex}.exam-modal-btn{color:#101418;font:inherit;background:#f2f4f7;border:1px solid #9fb0c1;border-radius:4px;padding:8px 16px;font-weight:600}.exam-modal-btn:hover{background:#e3e9f0}.exam-modal-btn.primary{color:#fff;background:#1f4e79;border-color:#1f4e79}.exam-modal-btn.primary:hover{background:#16609e}.exam-comment-input{resize:vertical;width:100%;min-height:130px;font:inherit;color:#1a1a1a;background:#fff;border:1px solid #9fb0c1;border-radius:4px;padding:10px}.exam-calc-display{font-variant-numeric:tabular-nums;text-align:right;background:#f8fafc;border:1px solid #9fb0c1;border-radius:4px;margin-bottom:12px;padding:10px 12px;font-size:1.5rem;font-weight:650;overflow-x:auto}.exam-calc-keys{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.exam-calc-keys button{color:#101418;font:inherit;background:#f2f4f7;border:1px solid #9fb0c1;border-radius:4px;padding:12px 0;font-size:1.05rem;font-weight:600}.exam-calc-keys button:hover{background:#e3e9f0}.exam-calc-keys button.op{background:#dbe7f2}.exam-calc-keys button.eq{color:#fff;background:#1f4e79;border-color:#1f4e79}.exam-skin :focus-visible{outline-offset:2px;outline:3px solid #ffbf47}.exam-canvas :focus-visible,.exam-modal :focus-visible,.exam-break :focus-visible{outline-color:#1f4e79}@media (width<=768px){.exam-tool,.exam-nav-btn,.exam-option,.exam-review-row,.exam-modal-btn,.exam-calc-keys button{min-height:44px}.exam-canvas{padding:18px 14px 30px}}@media (width<=480px){.exam-titlebar{gap:8px;padding:8px 12px}.exam-titlebar h1{font-size:.92rem}.exam-toolbar{padding:4px 8px}.exam-canvas{padding:16px 12px 28px}.exam-foot{padding:8px 10px}.exam-nav-btn{padding:8px 12px}.exam-review-row .q{min-width:7em}}.dash-eyebrow{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.dash-flk-tag{text-transform:none;letter-spacing:.02em;font-weight:700}.dash-greeting{flex-direction:column;gap:1px;display:flex}.dash-greeting-hi{color:var(--text-dim);font-size:1rem;font-weight:600;display:block}.dash-greeting-sub{font-size:1.5rem;display:block}.dash-motivation{border-radius:var(--radius-sm,8px);background:var(--accent-soft);max-width:60ch;color:var(--text-dim);align-items:center;gap:8px;margin:8px 0 0;padding:7px 12px;font-size:.85rem;display:flex}.dash-motivation:before{content:"";background:var(--accent);border-radius:99px;flex-shrink:0;width:6px;height:6px}.dc-tiles{margin-bottom:var(--space-4,16px);grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.dc-tile{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius-lg,14px);min-height:108px;box-shadow:var(--panel-shadow);flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:4px;padding:12px 14px;display:flex;position:relative}.dc-tile-k{text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);align-items:center;gap:5px;font-size:.68rem;font-weight:700;display:inline-flex}.dc-tile-k svg{color:var(--accent)}.dc-tile-v{color:var(--text-strong);font-variant-numeric:tabular-nums;font-size:1.7rem;font-weight:800;line-height:1.05}.dc-tile-of{color:var(--text-faint);font-size:1rem;font-weight:650}.dc-tile-s{color:var(--text-dim);font-size:.72rem}.dc-tile-bonus{color:var(--ok);background:var(--ok-bg);border-radius:999px;align-items:center;margin-top:2px;padding:2px 8px;font-size:.68rem;font-weight:700;display:inline-flex}.dc-tile-x{width:24px;height:24px;color:var(--text-faint);cursor:pointer;background:0 0;border:none;border-radius:99px;font-size:1rem;line-height:1;position:absolute;top:8px;right:8px}.dc-tile-x:hover{background:var(--bg-sunken);color:var(--text-strong)}.dc-date-row{align-items:center;gap:6px;min-width:0;margin-block:auto;display:flex}.dc-tile .dc-date{border:1px solid var(--border);border-radius:var(--radius-sm,8px);background:var(--bg-sunken);width:100%;min-width:0;color:var(--text);font:inherit;flex:1;margin-top:0;padding:6px 8px;font-size:.82rem}.dc-date-set{flex-shrink:0;padding:4px 10px}.dc-tile-btn{margin-top:auto}.dc-minibar{width:100%;margin-top:auto}.dc .bar.dc-minibar{height:5px}.dc-panels{margin-bottom:var(--space-4,16px);grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:10px;display:grid}.dc-panel{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius-lg,14px);box-shadow:var(--panel-shadow);flex-direction:column;align-items:flex-start;gap:8px;min-width:0;padding:14px 16px;display:flex}.dc-panel-h{text-transform:uppercase;letter-spacing:.07em;color:var(--text-dim);align-items:center;gap:6px;margin:0;font-size:.82rem;font-weight:750;display:inline-flex}.dc-panel-h svg{color:var(--accent)}.dc-panel-big{color:var(--text-strong);font-size:1.6rem;font-weight:800;line-height:1}.dc-note{color:var(--text-dim);margin:0;font-size:.8rem}.evidence-feeling-cols{grid-template-columns:1fr 1fr;gap:18px;width:100%;display:grid}.evidence-feeling-cols>div:first-child{border-right:1px solid var(--border);padding-right:18px}.ef-col-head{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);margin-bottom:8px;font-size:.66rem;font-weight:700}.ef-list{flex-direction:column;gap:5px;margin:0;padding:0;list-style:none;display:flex}.ef-row{text-align:left;border-radius:var(--radius-sm,6px);border:1px solid var(--border);background:var(--bg-sunken);width:100%;color:var(--text);cursor:pointer;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;font-size:.82rem;line-height:1.3;transition:border-color .14s,background .14s;display:flex}.ef-row:hover{border-color:var(--accent-line);background:var(--panel)}.ef-row .num{color:var(--text-strong);flex-shrink:0;font-weight:700}.evidence-feeling-widget .hint{color:var(--text-dim);margin:4px 0 0;font-size:.8rem}@media (width<=640px){.evidence-feeling-cols{grid-template-columns:1fr;gap:14px}.evidence-feeling-cols>div:first-child{border-right:none;border-bottom:1px solid var(--border);padding-bottom:14px;padding-right:0}}.dc-actions{flex-wrap:wrap;gap:8px;display:flex}.dc-plan-flk{flex-wrap:wrap;align-items:center;gap:6px;width:100%;display:flex}.dc-plan-flk-k{letter-spacing:.06em;color:var(--text-faint);align-items:center;gap:6px;font-size:.7rem;font-weight:800;display:inline-flex}.dc-plan-blocks{flex-wrap:wrap;gap:6px;display:inline-flex}.dc .chip.dc-block{cursor:pointer;border:1px solid var(--border);background:var(--bg-sunken);color:var(--text)}.dc .chip.dc-block:hover{border-color:var(--accent-line);color:var(--accent)}.dc .chip.dc-cfg{cursor:pointer;border:1px dashed var(--border-strong);color:var(--text-dim);font-variant-numeric:tabular-nums;background:0 0}.dc span.chip.dc-cfg{cursor:default}.dc button.chip.dc-cfg:hover{border-color:var(--accent-line);color:var(--accent)}.dc .chip.dc-warnchip{background:var(--warn-bg);color:var(--warn);border:none;gap:4px}.dc-plan-setup{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.dc-plan-setup label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);flex-direction:column;gap:3px;font-size:.68rem;font-weight:700;display:flex}.dc-plan-setup input[type=number]{border:1px solid var(--border);border-radius:var(--radius-sm,8px);background:var(--bg-sunken);width:64px;color:var(--text);font:inherit;padding:6px 8px}.chart-ring{display:block}.chart-ring-track{stroke:var(--border)}.chart-ring-fill{stroke:var(--accent);transition:stroke-dasharray .6s ease-out}.chart-ring-text{fill:var(--text-strong);font-variant-numeric:tabular-nums;font-size:.82rem;font-weight:800}.chart-segring .chart-ring-text{font-size:1rem}.chart-ring-subtext{fill:var(--text-dim);font-variant-numeric:tabular-nums;font-size:.58rem;font-weight:700}.chart-columns{width:100%}.chart-col{fill:var(--accent)}.chart-pop{margin-top:6px;position:relative}.chart-pop-btn{border:1px solid var(--border);color:var(--text-dim);font:inherit;cursor:pointer;background:0 0;border-radius:99px;align-items:center;gap:4px;padding:3px 8px;font-size:.72rem;font-weight:650;display:inline-flex}.chart-pop-btn:hover{border-color:var(--accent-line);color:var(--accent)}.chart-pop-panel{z-index:80;background:var(--panel);border:1px solid var(--border-strong);border-radius:var(--radius-md,10px);min-width:220px;max-width:min(340px,80vw);max-height:260px;padding:10px 12px;position:absolute;top:calc(100% + 6px);left:0;overflow:auto;box-shadow:0 14px 34px #00000059}.chart-pop-panel table{border-collapse:collapse;width:100%;font-size:.78rem}.chart-pop-panel th,.chart-pop-panel td{text-align:left;border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums;padding:3px 10px 3px 0}.chart-pop-panel th{color:var(--text-dim);font-weight:700}.dc-cal{margin-bottom:var(--space-4,16px);width:100%}.dc-cal-head{flex-wrap:wrap;align-items:center;gap:10px;width:100%;display:flex}.dc-cal-nav{align-items:center;gap:4px;margin-left:auto;display:inline-flex}.dc-cal-month-t{color:var(--text-strong);text-align:center;min-width:118px;font-size:.85rem;font-weight:750}.dc-cal-month{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;width:100%;display:grid}.dc-cal-wd{text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);text-align:center;padding:2px 0;font-size:.64rem;font-weight:750}.dc-cal-blank{min-height:20px}.dc-cal-day{border:1px solid var(--border);border-radius:var(--radius-sm,8px);background:var(--bg-raised);min-height:52px;color:var(--text);cursor:pointer;font:inherit;flex-direction:column;justify-content:flex-start;align-items:center;gap:3px;padding:5px 2px;display:flex}.dc-cal-day:hover{border-color:var(--accent-line)}.dc-cal-day.is-past{opacity:.45}.dc-cal-day.is-today{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.dc-cal-day.is-sel{background:var(--accent-soft);border-color:var(--accent)}.dc-cal-day.is-exam{border-color:var(--bad)}.dc-cal-n{font-size:.78rem;font-weight:700;line-height:1}.dc-cal-tag{letter-spacing:.04em;text-overflow:ellipsis;white-space:nowrap;border-radius:99px;max-width:100%;padding:1px 5px;font-size:.6rem;font-weight:800;overflow:hidden}.dc-cal-tag-exam{background:var(--bad-bg);color:var(--bad)}.dc-cal-dot{background:0 0;border-radius:99px;width:8px;height:8px}.dc-cal-strip{grid-auto-columns:minmax(44px,1fr);grid-auto-flow:column;gap:4px;width:100%;padding-bottom:2px;display:none;overflow-x:auto}.dc-cal-strip-day{min-height:60px}.dc-cal-detail{border:1px solid var(--border);border-radius:var(--radius-sm,8px);background:var(--bg-sunken);flex-wrap:wrap;align-items:center;gap:8px;width:100%;padding:10px 12px;display:flex}.dc-cal-detail-date{color:var(--text-strong);font-size:.82rem;font-weight:750}.dc .chip.dc-cal-subj{cursor:pointer;border:none;font-weight:700}.dc-cal-legend{flex-wrap:wrap;gap:6px 12px;width:100%;margin-top:2px;display:flex}.dc-leg{color:var(--text-dim);font-variant-numeric:tabular-nums;align-items:center;gap:5px;font-size:.7rem;font-weight:700;display:inline-flex}.dc-leg i{border-radius:99px;width:8px;height:8px;display:inline-block}.dc-leg-warn{color:var(--warn)}.dc-recs{margin-bottom:var(--space-4,16px)}.dc-rec-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.dc .rec-row.dc-rec{text-align:left;cursor:pointer;background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:var(--radius-md,8px);align-items:center;gap:12px;padding:12px 14px;transition:transform .12s,border-color .15s,background .15s}.dc .rec-row.dc-rec:hover{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, var(--panel));transform:translateY(-1px)}.dc .dc-rec .rec-ic{color:var(--accent);flex-shrink:0;display:inline-flex}.dc .dc-rec .rec-body{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.dc .dc-rec .rec-title{white-space:nowrap;text-overflow:ellipsis;min-width:0;color:var(--text-strong);font-weight:700;overflow:hidden}.dc .dc-rec .rec-detail{white-space:nowrap;text-overflow:ellipsis;min-width:0;color:var(--text-dim);font-size:.74rem;overflow:hidden}.dc .dc-rec .rec-go{color:var(--accent);flex-shrink:0;font-size:1.1rem}.dc-flk-cols{margin-bottom:var(--space-4,16px);grid-template-columns:1fr 1fr;align-items:stretch;gap:10px;display:grid}.dc-flk{background:linear-gradient(170deg, color-mix(in srgb, var(--accent) 7%, transparent), transparent 46%), var(--panel);gap:12px;padding:16px 18px;transition:transform .16s,box-shadow .16s,border-color .16s}.dc-flk:hover{border-color:var(--accent-line);transform:translateY(-2px);box-shadow:0 10px 26px #00000038}.dc-flk-head{justify-content:space-between;align-items:center;gap:14px;width:100%;display:flex}.dc-flk-head h2{letter-spacing:.04em;color:var(--text-strong);font-size:1.05rem}.dc-flk-titles{flex-direction:column;gap:5px;min-width:0;display:flex}.dc-flk-meta{color:var(--text-dim);font-size:.78rem;display:block}.dc-flk-head .chart-segring{flex-shrink:0}.dc-subj-grid{flex:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;width:100%;display:grid}.dc-subj{min-width:0;display:flex;position:relative}.dc .subj-main.dc-subj-open{text-align:left;border:1px solid var(--border);border-radius:var(--radius-md,10px);background:var(--bg-raised);cursor:pointer;flex-direction:row;align-items:center;gap:10px;width:100%;min-width:0;padding:8px 10px;transition:transform .14s,box-shadow .14s,border-color .14s,background .14s;display:flex}.dc .subj-main.dc-subj-open:hover{border-color:var(--accent-line);background:color-mix(in srgb, var(--accent) 8%, var(--bg-raised));transform:translateY(-1px);box-shadow:0 5px 14px #00000029}.dc .subj-main.dc-subj-open .chart-ring{flex-shrink:0}.dc-subj-name{color:var(--text-strong);flex:auto;align-items:center;gap:5px;min-width:0;font-size:.78rem;font-weight:650;line-height:1.25;display:inline-flex}.dc-subj-title{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;display:block;overflow:hidden}.dc .chip.hot.dc-subj-weak{cursor:pointer;font-variant-numeric:tabular-nums;z-index:1;color:var(--accent);border-color:var(--accent-line);background:var(--accent-soft);gap:3px;padding:2px 7px;font-weight:700;transition:background .14s,color .14s,border-color .14s;position:absolute;top:6px;right:6px}.dc .chip.hot.dc-subj-weak:hover{color:var(--accent-ink);background:var(--accent);border-color:var(--accent)}.dc .dc-subj-hasbadge .subj-main.dc-subj-open{padding-right:38px}@media (width<=1000px){.dc-panels{grid-template-columns:1fr 1fr}.dc-panels .dc-today{grid-column:1/-1}}@media (width<=860px){.dc-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.dc-flk-cols{grid-template-columns:1fr}}@media (width<=720px){.dc-panels,.dc-rec-grid{grid-template-columns:1fr}.dc-cal-month,.dc-cal-nav{display:none}.dc-cal-strip{display:grid}}@media (width<=420px){.dc-tile{min-height:96px;padding:10px 12px}.dc-tile-v{font-size:1.45rem}.dc-subj-grid{grid-template-columns:1fr}.dc-date-row{flex-direction:column;align-items:stretch;gap:4px}.dc-date-set{flex-shrink:1;width:100%}}@media (pointer:coarse){.dc-cal-day,.dc .chip.dc-block,.dc .chip.dc-cfg,.dc .chip.hot.dc-subj-weak,.dc-tile-x{min-height:44px}}.admin-view h1,.sub-view h1{letter-spacing:-.01em;color:var(--text-strong);align-items:center;gap:8px;margin:0;font-size:1.35rem;display:flex}.admin-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin:10px 0 16px;display:flex}.admin-sub{color:var(--text-dim);max-width:68ch;margin:4px 0 0;font-size:.9rem}.admin-head-actions{flex-wrap:wrap;gap:8px;display:flex}.admin-card{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);box-shadow:var(--panel-shadow);max-width:68ch;padding:16px}.admin-denied h1{margin-bottom:6px}.admin-denied p{color:var(--text-dim);margin:0 0 12px}.admin-loading{color:var(--text-dim)}.admin-stats{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.admin-stat{background:var(--panel);border:1px solid var(--panel-border);border-radius:calc(var(--radius) - 2px);align-items:baseline;gap:7px;padding:6px 11px;display:inline-flex}.admin-stat .k{color:var(--text-faint);text-transform:capitalize;letter-spacing:.02em;font-size:.76rem}.admin-stat .v{color:var(--text-strong);font-variant-numeric:tabular-nums;font-weight:700}.admin-table-wrap{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);box-shadow:var(--panel-shadow);overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:.9rem}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;white-space:nowrap;padding:10px 12px}.admin-table tbody tr:last-child td{border-bottom:none}.admin-table th{color:var(--text-faint);text-transform:uppercase;letter-spacing:.05em;font-size:.76rem;font-weight:650}.admin-user-name{color:var(--text-strong);font-weight:650;display:block}.admin-user-email{color:var(--text-faint);font-size:.8rem;display:block}.admin-tier-group{gap:4px;display:inline-flex}.admin-tier-group .btn{text-transform:capitalize}.admin-role-badge{background:var(--chip-bg);color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;border-radius:999px;margin-left:8px;padding:2px 8px;font-size:.72rem}.admin-role-badge[data-role=admin]{background:var(--accent-soft);color:var(--accent-2)}.sub-banner{border-radius:var(--radius);align-items:center;gap:10px;max-width:78ch;margin:0 0 14px;padding:11px 14px;font-size:.92rem;display:flex}.sub-banner .btn{margin-left:8px}.sub-banner-test{background:var(--accent-soft);border:1px solid var(--accent-line);color:var(--text)}.sub-banner-warn{background:var(--cat-amber-bg);border:1px solid var(--cat-amber);color:var(--text)}.sub-cards{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));align-items:stretch;gap:14px;display:grid}.sub-card{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);box-shadow:var(--panel-shadow);flex-direction:column;gap:10px;padding:18px;display:flex}.sub-card h2{color:var(--text-strong);margin:0;font-size:1.05rem}.sub-card-featured{border-color:var(--accent-line);box-shadow:0 0 0 2px var(--accent-soft), var(--panel-shadow)}.sub-blurb{color:var(--text-dim);margin:0;font-size:.88rem}.sub-price{flex-wrap:wrap;align-items:baseline;gap:8px;margin:0;display:flex}.sub-price-gbp{color:var(--text-strong);font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:800}.sub-price-pkr{color:var(--text-dim);font-variant-numeric:tabular-nums;font-weight:600}.sub-price-cadence{color:var(--text-faint);font-size:.8rem}.sub-features{flex-direction:column;flex:auto;gap:7px;margin:0;padding:0;list-style:none;display:flex}.sub-features li{color:var(--text);align-items:flex-start;gap:8px;font-size:.88rem;display:flex}.sub-features li svg{color:var(--ok);flex-shrink:0;margin-top:2px}.sub-current-note{color:var(--text-faint);margin:0;font-size:.85rem}.sub-smallprint{color:var(--text-faint);max-width:78ch;margin:16px 0 0;font-size:.8rem}@media (width<=560px){.admin-table th,.admin-table td{padding:8px 9px}.sub-cards{grid-template-columns:1fr}}.cookie-banner{z-index:40;background:var(--panel);border-top:1px solid var(--panel-border);box-shadow:var(--shadow-lift,var(--panel-shadow));padding:14px 20px;position:fixed;bottom:0;left:208px;right:0}.cookie-banner-row{flex-wrap:wrap;align-items:center;gap:16px;max-width:1160px;margin:0 auto;display:flex}.cookie-banner-text{color:var(--text-dim);flex:420px;margin:0;font-size:.88rem}.cookie-banner-more{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-weight:650;text-decoration:underline}.cookie-banner-accept{flex-shrink:0}.cookie-banner-detail{border-top:1px solid var(--panel-border);max-width:1160px;margin:12px auto 0;padding-top:12px}.privacy-note-list{color:var(--text-dim);flex-direction:column;gap:6px;margin:0;padding-left:18px;font-size:.85rem;display:flex}.privacy-note-list strong{color:var(--text-strong)}.cookie-banner-links{color:var(--text-dim);margin:10px 0 0;font-size:.85rem}.cookie-banner-links button{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-weight:650;text-decoration:underline}@media (width<=640px){.cookie-banner{padding:12px 16px}.cookie-banner-row{gap:10px}}@media (width<=860px){.cookie-banner{bottom:64px;left:0}}.legal-page{max-width:720px;margin:0 auto}.legal-title{align-items:center;gap:10px;display:flex}.legal-title-icon{color:var(--accent);flex:none}.legal-draft-banner{border-radius:var(--radius-md,12px);border:1px solid var(--warn);background:var(--warn-bg);color:var(--text-strong,var(--ink));align-items:flex-start;gap:10px;margin:4px 0 18px;padding:12px 14px;display:flex}.legal-draft-banner svg{color:var(--warn);flex:none;margin-top:2px}.legal-draft-banner p{margin:0;font-size:.9rem;line-height:1.5}.legal-card{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius-md,12px);padding:22px 24px 6px}.legal-card section{margin-bottom:22px}.legal-card h2{margin-bottom:8px;font-size:1.02rem}.legal-card p,.legal-card ul{max-width:68ch;color:var(--text-dim);line-height:1.6}.legal-card p{margin:0 0 10px}.legal-card ul{margin:0 0 10px;padding-left:20px}.legal-card li{margin-bottom:8px}.legal-card strong{color:var(--text-strong,var(--ink))}.legal-placeholder{border:1px dashed var(--line);background:var(--bg-sunken,transparent);border-radius:8px;padding:8px 10px;font-size:.85rem}.legal-flag{background:var(--warn-bg);color:var(--text-strong,var(--ink));border-radius:8px;align-items:flex-start;gap:8px;padding:8px 10px;font-size:.85rem;display:flex}.legal-flag svg{color:var(--warn);flex:none;margin-top:2px}.legal-nav{flex-wrap:wrap;gap:8px;margin:18px 0 40px;display:flex}.legal-nav-link{border:1px solid var(--line);background:var(--bg-raised);color:var(--text-dim);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:8px 12px;font-size:.85rem;display:inline-flex}.legal-nav-link:hover{color:var(--text-strong,var(--ink));border-color:var(--accent-line)}.legal-nav-link svg{flex:none}@media (width<=560px){.legal-card{padding:16px 16px 4px}}.auth-card{background:var(--bg-raised);border:1px solid var(--line);border-radius:14px;max-width:460px;margin:18px auto;padding:20px 22px}.auth-card h2{align-items:center;gap:8px;margin:0 0 12px;font-size:1.05rem;display:flex}.auth-card-icon{color:var(--accent);flex:none}.auth-field{flex-direction:column;gap:4px;margin:0 0 12px;display:flex}.auth-field label{color:var(--text-dim,var(--ink-2));align-items:center;gap:5px;font-size:.82rem;font-weight:600;display:flex}.auth-field label svg{color:var(--text-faint,var(--ink-3))}.auth-field input,.auth-field select{font:inherit;border:1px solid var(--line);background:var(--bg-sunken,transparent);color:var(--text-strong,var(--ink));border-radius:8px;padding:8px 10px}.auth-field input:focus-visible,.auth-field select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.auth-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px;display:flex}.auth-error{color:var(--danger,#b91c1c);margin:10px 0 0;font-size:.85rem}.auth-info{color:var(--text-dim,var(--ink-2));margin:10px 0 0;font-size:.85rem}.auth-switch-row{flex-wrap:wrap;gap:12px;margin-top:14px;font-size:.85rem;display:flex}.auth-switch-row button{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:0;text-decoration:underline;display:inline-flex}.auth-plan-badge{border:1px solid var(--accent-line);background:var(--accent-soft);color:var(--accent);text-transform:uppercase;letter-spacing:.06em;border-radius:999px;padding:4px 10px;font-size:.78rem;font-weight:700;display:inline-block}.auth-avatar-row{flex-wrap:wrap;align-items:center;gap:12px;margin:0 0 6px;display:flex}.auth-avatar-lg{color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:48px;height:48px;font-size:1.05rem;font-weight:750;display:inline-flex}.auth-avatar-hint{color:var(--text-dim,var(--ink-2));margin:8px 0 0;font-size:.78rem}.auth-identity{flex-direction:column;flex:auto;gap:1px;min-width:0;display:flex}.auth-identity-name{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:.98rem;font-weight:700;overflow:hidden}.auth-identity-email{color:var(--text-dim,var(--ink-2));text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:.8rem;overflow:hidden}.auth-sync-chip{color:var(--text-dim,var(--ink-2));white-space:nowrap;flex:none;align-items:center;gap:5px;font-size:.72rem;display:inline-flex}.auth-expander{margin:0}.auth-expander+.auth-expander{border-top:1px solid var(--line);margin-top:14px;padding-top:14px}.auth-tile-summary{cursor:pointer;color:var(--text-strong,var(--ink));align-items:center;gap:8px;font-size:.94rem;font-weight:650;list-style:none;display:flex}.auth-tile-summary::-webkit-details-marker{display:none}.auth-tile-summary:after{content:"";opacity:.55;border-bottom:2px solid;border-right:2px solid;width:7px;height:7px;margin-left:auto;transition:transform .15s;transform:rotate(45deg)}.auth-expander[open]>.auth-tile-summary:after{transform:rotate(-135deg)}.auth-expander-body{padding-top:12px}.auth-expander-body>:first-child{margin-top:0}.auth-tile-row{flex-wrap:wrap;align-items:center;gap:10px;padding:10px 0;display:flex}.auth-tile-row+.auth-tile-row{border-top:1px solid var(--line)}.auth-tile-icon{background:var(--bg-sunken,#78788c1a);width:34px;height:34px;color:var(--accent);border-radius:9px;flex:none;justify-content:center;align-items:center;display:inline-flex}.auth-tile-label{flex:auto;font-size:.92rem;font-weight:600}.auth-tile-button{width:100%;font:inherit;text-align:left;color:var(--text-strong,var(--ink));cursor:pointer;background:0 0;border:none;border-radius:10px}.auth-tile-button:hover:not(:disabled){background:var(--bg-sunken,#78788c1a)}.auth-tile-button:disabled{opacity:.5;cursor:not-allowed}.auth-tile-button .auth-tile-icon{color:var(--text-dim,var(--ink-2))}.auth-info-toggle{flex:none}.auth-info-toggle>summary{cursor:pointer;color:var(--text-dim,var(--ink-2));align-items:center;list-style:none;display:inline-flex}.auth-info-toggle>summary::-webkit-details-marker{display:none}.auth-info-toggle[open]{flex-basis:100%}.auth-info-popover{max-width:46ch;margin:8px 0 0;font-size:.82rem}.auth-legal-links{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.auth-legal-link{border:1px solid var(--line);background:var(--bg-sunken,transparent);color:var(--text-dim,var(--ink-2));font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:7px 11px;font-size:.8rem;display:inline-flex}.auth-legal-link:hover{color:var(--text-strong,var(--ink));border-color:var(--accent-line)}.auth-chip-avatar{background:var(--accent);width:20px;height:20px;color:var(--accent-ink,#fff);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:.7rem;font-weight:700;display:inline-flex}@media (width<=420px){.auth-card{margin:12px auto;padding:16px}.auth-sync-chip{flex-basis:100%;margin-top:6px}}.auth-signup-layout{flex-direction:column;gap:18px;max-width:820px;margin:18px auto;display:flex}.auth-signup-layout .auth-card{max-width:none;margin:0}@media (width>=760px){.auth-signup-layout{flex-direction:row;align-items:flex-start}.auth-signup-layout .auth-signup-form-card{flex:380px}.auth-signup-layout .auth-plan-picker{flex:320px;max-width:360px}}.auth-plan-options{flex-direction:column;gap:10px;display:flex}.auth-plan-option{border:1px solid var(--line);cursor:pointer;border-radius:10px;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.auth-plan-option-selected{border-color:var(--accent-line);background:var(--accent-soft)}.auth-plan-option input[type=radio]{flex:none;margin-top:3px}.auth-plan-option-body{flex-direction:column;flex:auto;gap:4px;min-width:0;display:flex}.auth-plan-option-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.auth-plan-option-price{color:var(--text-dim,var(--ink-2));white-space:nowrap;font-size:.82rem}.auth-plan-option-pkr{margin-left:4px}.auth-plan-option-blurb{color:var(--text-dim,var(--ink-2));margin:0;font-size:.82rem}.auth-plan-option-features{flex-direction:column;gap:3px;margin:4px 0 0;padding:0;list-style:none;display:flex}.auth-plan-option-features li{color:var(--text-strong,var(--ink));align-items:flex-start;gap:6px;font-size:.78rem;display:flex}.auth-plan-option-features li svg{color:var(--ok,var(--accent));flex-shrink:0;margin-top:2px}.auth-plan-note{align-items:flex-start;gap:6px;display:flex}
