@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-italic-CZTNEAuW.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-400-italic-CsGl1sm0.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-latin-700-normal-Bxkt5Cjx.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-700-normal-Bth3BMcD.woff)format("woff")}@font-face{font-family:IBM Plex Serif;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-serif-latin-400-normal-BIGslYFI.woff2)format("woff2"),url(/assets/ibm-plex-serif-latin-400-normal-BB-zNvJB.woff)format("woff")}@font-face{font-family:IBM Plex Serif;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-serif-latin-500-normal-REKAfBVG.woff2)format("woff2"),url(/assets/ibm-plex-serif-latin-500-normal-C3_OdgN3.woff)format("woff")}@font-face{font-family:IBM Plex Serif;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-serif-latin-600-normal-DAxitmSu.woff2)format("woff2"),url(/assets/ibm-plex-serif-latin-600-normal-D3rpGdkS.woff)format("woff")}@font-face{font-family:IBM Plex Serif;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-serif-latin-700-normal-bnJnpGuO.woff2)format("woff2"),url(/assets/ibm-plex-serif-latin-700-normal-BBiG0u0D.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff)format("woff")}:root,[data-theme=warm]{--bg:#fcfbf6;--surface:#fff;--surface-2:#faf4e6;--surface-3:#f2eadb;--overlay:#2b27226b;--border-c:#e7e0d2;--border-strong:#d4d0c6;--text-1:#2b2722;--text-2:#6b6459;--text-3:#968f82;--text-inverse:#fffaf2;--ink:#2b2722;--ink-hover:#3d382f;--ink-text:#fffaf2;--accent:#ad9580;--accent-hover:#99826d;--accent-soft:#efe9e1;--accent-text:#fff;--accent-contrast:#5e4a2f;--brand-mark:#847a65;--success:#4f7a52;--success-soft:#e6efe4;--warning:#a87b2e;--warning-soft:#f4ecd8;--danger:#b0524a;--danger-soft:#f4e2df;--info:#5c7196;--info-soft:#e7ecf4;--ring:#ad958073;--code-bg:#fcfbf6;--code-text:#3a352d;--login-grad:radial-gradient(135% 125% at 0% 50%, var(--accent-soft) 0%, transparent 52%), linear-gradient(90deg, var(--surface-3), var(--bg) 85%);--syntax-comment:#a39a88;--syntax-keyword:#9a6536;--syntax-type:#5e7e6a;--syntax-string:#6e7f4e;--syntax-number:#a8694a;--syntax-func:#5b6f93;--syntax-builtin:#8a5a7e;--syntax-op:#8c6e47;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=cool]{--bg:#f9fbff;--surface:#fff;--surface-2:#ebebfa;--surface-3:#e1e6f4;--overlay:#23262e73;--border-c:#dee4f0;--border-strong:#d1d5e0;--text-1:#23262e;--text-2:#5c6270;--text-3:#8a8e99;--text-inverse:#f2f7ff;--ink:#23262e;--ink-hover:#33373f;--ink-text:#f2f7ff;--accent:#6b81ad;--accent-hover:#586e98;--accent-soft:#e9edf6;--accent-text:#fff;--accent-contrast:#33446e;--brand-mark:#637198;--success:#4d7560;--success-soft:#e2ede7;--warning:#8a7339;--warning-soft:#eee9da;--danger:#9e5258;--danger-soft:#f0e2e4;--info:#4f6491;--info-soft:#e6ecfa;--ring:#6b81ad73;--code-bg:#f9fbff;--code-text:#2c3140;--login-grad:radial-gradient(135% 125% at 0% 50%, var(--accent-soft) 0%, transparent 52%), linear-gradient(90deg, var(--surface-3), var(--bg) 85%);--syntax-comment:#969cab;--syntax-keyword:#4f6491;--syntax-type:#4e7e78;--syntax-string:#5e7e5e;--syntax-number:#97683f;--syntax-func:#6a5e9a;--syntax-builtin:#9e5258;--syntax-op:#4f6491;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=dark]{--bg:#16140f;--surface:#1f1c16;--surface-2:#262219;--surface-3:#2f2a20;--overlay:#00000094;--border-c:#322d24;--border-strong:#433d31;--text-1:#ede8db;--text-2:#ada597;--text-3:#7e776b;--text-inverse:#1f1c16;--ink:#c5b9a4;--ink-hover:#d4caba;--ink-text:#1f1c16;--accent:#c5b9a4;--accent-hover:#d4caba;--accent-soft:#c5b9a429;--accent-text:#1f1c16;--accent-contrast:#ddd3c4;--brand-mark:#fcfbf6;--success:#8fb98c;--success-soft:#8fb98c26;--warning:#d8b06a;--warning-soft:#d8b06a26;--danger:#d98a82;--danger-soft:#d98a8226;--info:#9fb0ce;--info-soft:#9fb0ce26;--ring:#c5b9a473;--code-bg:#14120d;--code-text:#d7d0c2;--login-grad:radial-gradient(140% 130% at 2% 50%, color-mix(in srgb, var(--accent) 26%, transparent) 0%, transparent 58%), linear-gradient(90deg, #000, var(--surface-3) 96%);--syntax-comment:#847c6e;--syntax-keyword:#cfae7c;--syntax-type:#8fb8a4;--syntax-string:#aabe8a;--syntax-number:#d8a06a;--syntax-func:#9fb0ce;--syntax-builtin:#d29cb4;--syntax-op:#c9a876;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=dark-cool]{--bg:#101219;--surface:#181b24;--surface-2:#1f232e;--surface-3:#272c39;--overlay:#0009;--border-c:#272c38;--border-strong:#39404f;--text-1:#e6ecfa;--text-2:#a3aaba;--text-3:#6e7585;--text-inverse:#181b24;--ink:#b1bdd5;--ink-hover:#c5cfe3;--ink-text:#181b24;--accent:#b1bdd5;--accent-hover:#c5cfe3;--accent-soft:#b1bdd529;--accent-text:#181b24;--accent-contrast:#cfd7e6;--brand-mark:#f9fbff;--success:#88bba0;--success-soft:#88bba029;--warning:#cdb178;--warning-soft:#cdb17829;--danger:#d38c8c;--danger-soft:#d38c8c29;--info:#9fb0ce;--info-soft:#9fb0ce29;--ring:#b1bdd573;--code-bg:#0c0e14;--code-text:#cdd4e2;--login-grad:radial-gradient(140% 130% at 2% 50%, color-mix(in srgb, var(--accent) 26%, transparent) 0%, transparent 58%), linear-gradient(90deg, #000, var(--surface-3) 96%);--syntax-comment:#757c8c;--syntax-keyword:#a6b6d4;--syntax-type:#88bba0;--syntax-string:#a6be9a;--syntax-number:#cdb178;--syntax-func:#b0a6d8;--syntax-builtin:#d69ba0;--syntax-op:#9fb0ce;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root{--font-display:"Times New Roman", "IBM Plex Serif", Georgia, serif;--font-serif:"IBM Plex Serif", Georgia, "Times New Roman", serif;--font-sans:"IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", "JetBrains Mono", "Consolas", monospace;--radius-xs:4px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-pill:999px;--shadow-xs:0 1px 2px #2b27220d;--shadow-sm:0 1px 3px #2b272212, 0 1px 2px #2b27220a;--shadow-md:0 4px 14px #2b272214, 0 2px 4px #2b27220a;--shadow-lg:0 12px 32px #2b27221f, 0 4px 8px #2b27220d;--shadow-focus:0 0 0 3px var(--ring);--ease-out:cubic-bezier(.22, .61, .36, 1);--dur-fast:.13s;--dur-base:.22s;--bg-primary:var(--bg);--bg-secondary:var(--surface);--bg-tertiary:var(--surface-2);--accent-blue:var(--accent);--accent-green:var(--success);--accent-red:var(--danger);--accent-yellow:var(--warning);--accent-purple:var(--accent);--text-primary:var(--text-1);--text-secondary:var(--text-2);--border:var(--border-c);--shadow:var(--shadow-sm)}[data-theme=dark],[data-theme=dark-cool]{--shadow-xs:0 1px 2px #0006;--shadow-sm:0 1px 3px #00000073, 0 1px 2px #0000004d;--shadow-md:0 4px 14px #00000080, 0 2px 4px #00000059;--shadow-lg:0 12px 32px #0009, 0 4px 8px #0006}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;font-family:var(--font-sans);background:var(--bg);color:var(--text-1);-webkit-font-smoothing:antialiased;font-size:15px}h1,h2,h3,h4,h5{font-family:var(--font-serif);letter-spacing:-.01em;font-weight:600}a{color:var(--accent);transition:color var(--dur-fast) var(--ease-out);text-decoration:none}a:hover{color:var(--accent-hover)}::selection{background:var(--accent-soft);color:var(--accent-contrast)}:focus-visible{box-shadow:var(--shadow-focus);border-radius:var(--radius-sm);outline:none}.navbar{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;height:56px;padding:0 18px;display:flex;container:navbar/inline-size}@container navbar (width<=880px){.brand-text{display:none}}@container navbar (width<=760px){.navbar-links .nav-link{padding:7px 10px}.nav-link-label{display:none}}@container navbar (width<=440px){.navbar-links .nav-link{padding:7px 8px}.navbar-actions .navbar-signin-btn{padding:6px 8px}.navbar-signin-label{display:none}.navbar .navbar-actions{gap:2px}.navbar-actions .theme-toggle{width:32px}}@media (width<=440px){.navbar{padding:0 10px}}.navbar-brand{align-items:center;gap:10px;display:flex}.brand-text{font-family:var(--font-serif);color:var(--text-1);white-space:nowrap;letter-spacing:-.01em;font-size:15px;font-weight:600}.brand-icon{color:var(--brand-mark)}.navbar-links{flex-shrink:0;gap:2px;display:flex}.nav-link{white-space:nowrap;border-radius:var(--radius-sm);color:var(--text-2);transition:all var(--dur-fast) var(--ease-out);align-items:center;gap:7px;padding:7px 13px;font-size:13px;font-weight:500;display:flex}.nav-link:hover{color:var(--text-1);background:var(--surface-3);text-decoration:none}.nav-link.active{color:var(--accent);background:var(--accent-soft)}.theme-toggle{border-radius:var(--radius-sm);width:36px;height:36px;color:var(--text-2);cursor:pointer;transition:all var(--dur-fast) var(--ease-out);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:flex}.theme-toggle:hover{color:var(--text-1);background:var(--surface-3)}.toolbar{background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;flex-shrink:0;justify-content:flex-start;align-items:center;gap:12px;padding:8px 14px;display:flex}.toolbar-left,.toolbar-center,.toolbar-right{align-items:center;gap:5px;display:flex}.toolbar-center{border-left:1px solid var(--border);padding-left:12px}.toolbar-right{margin-left:auto}.toolbar-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text-1);cursor:pointer;font-size:12.5px;font-weight:600;font-family:var(--font-sans);transition:all var(--dur-fast) var(--ease-out);white-space:nowrap;align-items:center;gap:6px;padding:5px 11px;display:inline-flex}.toolbar-btn:hover:not(:disabled){background:var(--surface-3)}.toolbar-btn:disabled{opacity:.4;cursor:not-allowed}.run-btn{background:var(--accent);color:var(--accent-text);border-color:#0000}.run-btn:hover:not(:disabled){background:var(--accent-hover)}.font-btn{padding:5px 9px}.font-size-label{color:var(--text-3);text-align:center;min-width:34px;font-size:11px;font-family:var(--font-mono)}.editor-page{flex-direction:column;height:100%;display:flex}.editor-workspace{flex:1;min-height:0;display:flex}.editor-pane{border-right:1px solid var(--border);flex-direction:column;flex:1.5;min-width:0;display:flex}.editor-pane-header{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:7px 14px;display:flex}.pane-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);font-size:11px;font-weight:700}.pane-lang{color:var(--accent);font-size:10px;font-weight:500}.output-pane{flex-direction:column;flex:1;min-width:260px;display:flex}.syllabus-selector{background:var(--code-bg);border:1px solid var(--border);border-radius:var(--radius-md);gap:2px;padding:3px;display:inline-flex}.syllabus-btn{border-radius:var(--radius-sm);color:var(--text-2);cursor:pointer;font-size:11.5px;font-weight:500;font-family:var(--font-sans);transition:all var(--dur-fast);white-space:nowrap;background:0 0;border:1px solid #0000;padding:4px 12px}.syllabus-btn:hover{color:var(--text-1)}.syllabus-btn.active{background:var(--surface);border-color:var(--border);color:var(--text-1);box-shadow:var(--shadow-xs)}.output-panel{flex-direction:column;height:100%;display:flex}.output-header{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:7px 14px;display:flex}.output-status{font-size:12.5px;font-weight:600}.output-clear-btn{color:var(--text-3);cursor:pointer;border-radius:var(--radius-xs);background:0 0;border:none;padding:2px 8px;font-size:11px}.output-clear-btn:hover{background:var(--surface-3);color:var(--text-1)}.output-content{font-family:var(--font-mono);flex:1;padding:16px;font-size:13.5px;line-height:1.7;overflow:auto}.output-text{white-space:pre-wrap;word-break:break-all;color:var(--text-1);margin:0}.output-error{color:var(--danger);background:var(--danger-soft);border:1px solid color-mix(in srgb, var(--danger) 30%, transparent);border-radius:var(--radius-sm);white-space:pre-wrap;padding:10px 14px;font-size:13px}.output-placeholder{height:100%;color:var(--text-3);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}.output-hint{opacity:.7;font-size:12px}.output-running{color:var(--text-2);flex-direction:column;align-items:center;gap:12px;padding:24px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:24px;height:24px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.input-form{background:var(--surface-2);border-radius:var(--radius-md);border:1px solid var(--accent);flex-direction:column;gap:8px;margin-top:12px;padding:12px;display:flex}.input-label{color:var(--accent-contrast);font-size:13px;font-weight:600}.input-row{gap:8px;display:flex}.input-field{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text-1);font-family:var(--font-mono);outline:none;flex:1;padding:7px 11px;font-size:13.5px}.input-field:focus{border-color:var(--accent);box-shadow:var(--shadow-focus)}.input-submit-btn{background:var(--ink);color:var(--ink-text);border-radius:var(--radius-sm);cursor:pointer;font-size:13px;font-weight:600;font-family:var(--font-sans);border:none;padding:7px 16px}.input-submit-btn:hover{background:var(--ink-hover)}.toast{background:var(--accent-green);color:#fff;z-index:1000;border-radius:8px;padding:10px 20px;font-size:13px;font-weight:500;animation:.3s toast-in;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%)translateY(10px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.home-page{height:100%;overflow:auto}.home-section{max-width:1080px;margin:0 auto;padding:0 32px}.hero{text-align:center;flex-direction:column;align-items:center;gap:18px;padding:108px 24px 64px;display:flex;position:relative;overflow:hidden}.hero-rule{opacity:.5;pointer-events:none;background:repeating-linear-gradient(0deg, transparent 0 38px, color-mix(in srgb, var(--text-3) 8%, transparent) 38px 39px);position:absolute;inset:0;-webkit-mask-image:radial-gradient(120% 90% at 50% 0,#000 30%,#0000 72%);mask-image:radial-gradient(120% 90% at 50% 0,#000 30%,#0000 72%)}.hero>*{z-index:1;position:relative}.reveal{opacity:0;transition:opacity .6s var(--ease-out), transform .6s var(--ease-out);transform:translateY(18px)}.reveal.in{opacity:1;transform:none}@keyframes stepIn{0%{opacity:0;transform:translate(14px)}to{opacity:1;transform:none}}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.step-anim{animation:stepIn .32s var(--ease-out)}.fade-anim{animation:fadeUp .3s var(--ease-out)}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transition:none;transform:none}.step-anim,.fade-anim{animation:none}}.editor-showcase{border-radius:var(--radius-xl);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-lg);margin-bottom:96px;overflow:hidden}.showcase-bar{border-bottom:1px solid var(--border);background:var(--surface-2);align-items:center;gap:8px;padding:11px 16px;display:flex}.showcase-dots{gap:6px;display:flex}.showcase-dots span{opacity:.75;border-radius:50%;width:11px;height:11px}.showcase-file{font-family:var(--font-mono);color:var(--text-3);margin-left:6px;font-size:12px}.showcase-run{border-radius:var(--radius-sm);background:var(--accent);color:var(--accent-text);align-items:center;gap:6px;margin-left:auto;padding:4px 11px;font-size:12px;font-weight:600;display:inline-flex}.showcase-body{grid-template-columns:1.3fr 1fr;min-height:250px;display:grid}.showcase-code{font-family:var(--font-mono);background:var(--code-bg);color:var(--code-text);border-right:1px solid var(--border);white-space:pre-wrap;margin:0;padding:20px 22px;font-size:13.5px;line-height:1.75;overflow:auto}.showcase-output{font-family:var(--font-mono);color:var(--text-2);padding:20px 22px;font-size:13.5px;line-height:1.75}.showcase-finished{color:var(--success);font-family:var(--font-sans);align-items:center;gap:6px;margin-top:16px;font-size:12.5px;display:inline-flex}@media (width<=640px){.showcase-body{grid-template-columns:1fr}.showcase-code{border-right:none;border-bottom:1px solid var(--border)}}.features-head{text-align:center;margin-bottom:44px}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:12px;font-size:12px;font-weight:600}.features-head h2{font-family:var(--font-serif);letter-spacing:-.02em;color:var(--text-1);font-size:clamp(28px,4vw,40px);font-weight:600}.cta-card{border-radius:var(--radius-xl);background:var(--ink);text-align:center;margin-bottom:96px;padding:64px 40px}.cta-title{font-family:var(--font-serif);letter-spacing:-.02em;color:var(--ink-text);margin-bottom:12px;font-size:clamp(26px,3.5vw,36px);font-weight:600}.cta-body{color:color-mix(in srgb, var(--ink-text) 78%, transparent);max-width:480px;margin:0 auto 26px;font-size:16px;line-height:1.6}.cta-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.cta-accent{font-size:17px;font-weight:600;font-family:var(--font-sans);border:1px solid var(--border-strong);border-radius:var(--radius-md);cursor:pointer;background:var(--surface);color:var(--text-1);box-shadow:var(--shadow-md);transition:all var(--dur-fast) var(--ease-out);justify-content:center;align-items:center;gap:9px;padding:13px 26px;display:inline-flex}.cta-accent:hover{background:var(--surface-3);box-shadow:var(--shadow-lg)}.cta-accent:active{transform:translateY(1px)}.cta-outline{font-size:17px;font-weight:600;font-family:var(--font-sans);border-radius:var(--radius-md);cursor:pointer;color:var(--ink-text);border:1px solid color-mix(in srgb, var(--ink-text) 30%, transparent);transition:all var(--dur-fast) var(--ease-out);background:0 0;justify-content:center;align-items:center;gap:9px;padding:13px 26px;display:inline-flex}.cta-outline:hover{background:color-mix(in srgb, var(--ink-text) 10%, transparent)}.hero-title{font-family:"Times New Roman", var(--font-serif);letter-spacing:-.025em;color:var(--text-1);font-size:clamp(30px,5vw,58px);font-weight:600;line-height:1.04}.hero-subtitle{color:var(--text-2);max-width:540px;font-size:17px;line-height:1.6}.hero-syllabus{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.syllabus-badge{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-2);font-size:12px;font-family:var(--font-mono);letter-spacing:.02em;padding:4px 12px}.hero-cta{gap:12px;margin-top:12px;display:flex}.btn-primary{background:var(--ink);color:var(--ink-text);border-radius:var(--radius-sm);letter-spacing:-.01em;font-size:15px;font-weight:600;font-family:var(--font-sans);cursor:pointer;box-shadow:var(--shadow-xs);transition:all var(--dur-fast) var(--ease-out);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:9px 18px;display:inline-flex}.btn-primary:hover{background:var(--ink-hover);color:var(--ink-text);text-decoration:none}.btn-primary:active{transform:translateY(1px)}.btn-primary:disabled{opacity:.45;cursor:not-allowed}.btn-secondary{background:var(--surface);color:var(--text-1);border:1px solid var(--border-strong);border-radius:var(--radius-sm);letter-spacing:-.01em;font-size:15px;font-weight:600;font-family:var(--font-sans);cursor:pointer;transition:all var(--dur-fast) var(--ease-out);justify-content:center;align-items:center;gap:8px;padding:9px 18px;display:inline-flex}.btn-secondary:hover{background:var(--surface-3);color:var(--text-1);text-decoration:none}.btn-secondary:active{transform:translateY(1px)}.btn-lg{border-radius:var(--radius-md);padding:13px 26px;font-size:17px}.features{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;padding-bottom:96px;display:grid}@media (width<=640px){.features{grid-template-columns:1fr}}.feature-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:26px}.feature-card-icon{border-radius:var(--radius-md);background:var(--accent-soft);width:46px;height:46px;color:var(--accent);justify-content:center;align-items:center;margin-bottom:16px;display:flex}.feature-card-icon.blue,.feature-card-icon.green,.feature-card-icon.purple{background:var(--accent-soft);color:var(--accent)}.feature-card h3{font-family:var(--font-serif);color:var(--text-1);margin-bottom:8px;font-size:19px;font-weight:600}.feature-card p{color:var(--text-2);font-size:14px;line-height:1.65}.home-footer{text-align:center;border-top:1px solid var(--border);padding:48px 24px}.home-footer-text{color:var(--text-secondary);margin-bottom:10px;font-size:13px}.challenges-page{height:100%;min-height:0;display:flex}.challenges-sidebar{background:var(--bg-secondary);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:320px;display:flex}.challenges-header{border-bottom:1px solid var(--border);padding:16px}.challenges-header h2{margin-bottom:10px;font-size:16px}.filter-bar{flex-wrap:wrap;gap:6px;display:flex}.filter-btn{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:14px;padding:3px 10px;font-size:11px;transition:all .15s}.filter-btn:hover{color:var(--text-primary);border-color:var(--text-secondary)}.filter-btn.active{background:var(--accent-blue);border-color:var(--accent-blue);color:#fff}.challenges-list{flex:1;padding:8px;overflow:auto}.challenge-card{cursor:pointer;border-radius:6px;margin-bottom:4px;padding:12px;transition:all .15s}button.challenge-card{appearance:none;font:inherit;color:inherit;text-align:left;background:0 0;border:none;width:100%}.challenge-card:hover{background:var(--bg-tertiary)}.challenge-card.selected{background:var(--bg-tertiary);border:1px solid var(--accent-blue)}.challenge-card-header{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.challenge-card-title{font-size:14px;font-weight:500}.difficulty-badge{text-transform:uppercase;border-radius:10px;padding:2px 8px;font-size:10px;font-weight:600}.difficulty-badge.easy{color:var(--accent-green);background:#3fb95026}.difficulty-badge.medium{color:var(--accent-yellow);background:#d2992226}.difficulty-badge.hard{color:var(--accent-red);background:#f8514926}.challenge-card-desc{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.record-dot{font-size:10px}.record-dot.passed{color:var(--accent-green)}.record-dot.attempted{color:var(--text-secondary)}.challenge-detail{flex:1;padding:24px;overflow:auto}.challenge-detail h2{margin-bottom:4px;font-size:22px}.challenge-meta{align-items:center;gap:8px;margin-bottom:16px;display:flex}.challenge-detail-desc{color:var(--text-secondary);margin-bottom:20px;font-size:14px;line-height:1.6}.challenge-sample{margin-bottom:20px}.challenge-restore{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px;font-size:12px;display:flex}.challenge-detail .exam-diff{margin-top:12px}.challenge-sample h4{text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);margin-bottom:6px;font-size:13px}.challenge-sample pre{background:var(--bg-primary);border:1px solid var(--border);border-radius:6px;padding:10px 14px;font-family:JetBrains Mono,Consolas,monospace;font-size:13px;overflow:auto}.challenge-hints{margin-bottom:20px}.challenge-hints details{margin-bottom:4px}.challenge-hints summary{color:var(--accent-yellow);cursor:pointer;font-size:13px}.challenge-hints p{color:var(--text-secondary);padding:4px 0 4px 16px;font-size:12px}.challenge-editor-section{margin-top:16px}.challenge-editor-section h4{text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);margin-bottom:8px;font-size:13px}.challenge-mini-editor{border:1px solid var(--border);border-radius:6px;height:200px;margin-bottom:12px;overflow:hidden}.challenge-output{background:var(--bg-primary);border:1px solid var(--border);white-space:pre-wrap;border-radius:6px;min-height:40px;margin-bottom:12px;padding:10px 14px;font-family:JetBrains Mono,Consolas,monospace;font-size:13px}.challenge-result{border-radius:6px;padding:8px 14px;font-size:13px;font-weight:500}.challenge-result.success{color:var(--accent-green);background:#3fb95026;border:1px solid #3fb9504d}.challenge-result.failure{color:var(--accent-red);background:#f8514926;border:1px solid #f851494d}.tutorials-page{height:100%;min-height:0;display:flex}.tutorials-sidebar{background:var(--bg-secondary);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:280px;display:flex}.tutorials-header{border-bottom:1px solid var(--border);padding:16px}.tutorials-header h2{font-size:16px}.tutorials-list{flex:1;padding:8px;overflow:auto}.tutorials-search{border:1px solid var(--border);background:var(--bg-primary);width:100%;color:var(--text-primary);border-radius:6px;margin:10px 0 8px;padding:7px 10px;font-size:13px}.tutorials-search:focus{border-color:var(--accent-blue);outline:none}.tutorials-header .filter-bar{margin-bottom:4px}.tutorials-section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);margin:14px 6px 4px;font-size:11px}.tutorials-group:first-child .tutorials-section-title{margin-top:4px}.tutorials-stage-title{color:var(--accent-blue);margin:10px 6px 2px;font-size:11px;font-weight:600}.tutorials-none{color:var(--text-secondary);padding:12px 6px;font-size:13px}.tutorial-item{cursor:pointer;border-radius:6px;justify-content:space-between;align-items:center;gap:6px;margin-bottom:2px;padding:10px 12px;transition:all .15s;display:flex}button.tutorial-item{appearance:none;font:inherit;color:inherit;text-align:left;background:0 0;border:none;width:100%}.tutorial-item:hover{background:var(--bg-tertiary)}.tutorial-item.active{background:var(--bg-tertiary);color:var(--accent-blue);border:1px solid var(--accent-blue)}.tutorial-item-num{color:var(--text-secondary);font-size:11px;font-weight:600}.tutorial-item-num.read{color:var(--accent-green)}.tutorial-item-num.read:before{content:"✓ "}.tutorial-practice{border:1px solid var(--border);background:var(--bg-secondary);border-radius:8px;margin-top:28px;padding:14px 16px}.tutorial-practice h2{margin:0 0 8px;font-size:15px}.tutorial-practice-item{color:var(--text-primary);border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:13px;font-weight:500;text-decoration:none;display:flex}.tutorial-practice-item:hover{background:var(--bg-tertiary);color:var(--accent-blue)}.tutorial-read-btn{border:1px solid var(--border);background:var(--bg-tertiary);color:var(--text-primary);cursor:pointer;border-radius:6px;padding:6px 14px;font-size:13px}.tutorial-read-btn.is-read{border-color:var(--accent-green);color:var(--accent-green)}.tutorial-item-title{font-size:13px;font-weight:500}.tutorial-item .difficulty-badge{flex-shrink:0}.tutorial-meta{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:4px;display:flex}.runnable-code{margin-bottom:16px;position:relative}.runnable-code pre{margin:0}.runnable-code-bar{z-index:2;position:absolute;top:8px;right:8px}.runnable-code-btn{border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;border-radius:6px;align-items:center;gap:5px;padding:4px 12px;font-size:12px;display:inline-flex}.runnable-code-btn:hover{border-color:var(--accent-blue);color:var(--accent-blue)}.runnable-code-out{background:var(--bg-primary);border:1px solid var(--border);border-top:none;border-radius:0 0 8px 8px;max-height:220px;padding:10px 14px;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:13px;line-height:1.5;overflow:auto}.runnable-code-line{white-space:pre-wrap}.runnable-code-error{color:var(--accent-red);white-space:pre-wrap;margin-top:4px}.runnable-code-input{align-items:center;gap:8px;margin-top:6px;display:flex}.runnable-code-input input{border:1px solid var(--accent-blue);background:var(--bg-secondary);max-width:260px;color:var(--text-primary);font:inherit;border-radius:4px;flex:1;padding:4px 8px}.runnable-code-input button{border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;border-radius:4px;padding:4px 10px;font-size:12px}.algo-viz{border:1px solid var(--border);background:var(--bg-secondary);border-radius:8px;margin-bottom:16px;padding:16px}.algo-viz-stage{flex-direction:column;align-items:center;gap:12px;min-height:150px;display:flex}.algo-viz-bars{align-items:flex-end;gap:10px;display:flex}.algo-viz-bar-wrap{flex-direction:column;align-items:center;gap:4px;display:flex}.algo-viz-bar{background:var(--accent-blue);color:#fff;border-radius:4px 4px 0 0;justify-content:center;align-items:flex-start;width:34px;padding-top:3px;font-size:12px;font-weight:600;transition:height .2s;display:flex}.algo-viz-bar.hl{background:var(--accent-yellow);color:#000}.algo-viz-bar.sorted{background:var(--accent-green)}.algo-viz-cells{gap:8px;display:flex}.algo-viz-cell{border:1px solid var(--border);background:var(--bg-primary);border-radius:6px;justify-content:center;align-items:center;width:44px;height:44px;font-weight:600;display:flex;position:relative}.algo-viz-cell.in-window{border-color:var(--accent-blue)}.algo-viz-cell.out-window{opacity:.35}.algo-viz-cell.hl{background:var(--accent-yellow);color:#000}.algo-viz-cell.found{background:var(--accent-green);color:#000}.algo-viz-pointer{color:var(--accent-red);font-size:10px;font-weight:700;position:absolute;top:-18px}.algo-viz-pointer.pl{color:var(--accent-blue);left:4px}.algo-viz-pointer.ph{color:var(--accent-purple,var(--accent-blue));right:4px}.algo-viz-pos{color:var(--text-secondary);font-size:10px}.algo-viz-note{color:var(--text-primary);min-height:20px;font-size:13px}.algo-viz-controls{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.algo-viz-controls button{border:1px solid var(--border);background:var(--bg-primary);width:28px;height:28px;color:var(--text-primary);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.algo-viz-controls button:hover:not(:disabled){border-color:var(--accent-blue);color:var(--accent-blue)}.algo-viz-controls button:disabled{opacity:.4;cursor:default}.algo-viz-count{color:var(--text-secondary);font-variant-numeric:tabular-nums;font-size:12px}.algo-viz-stat{color:var(--text-secondary);margin-left:auto;font-size:12px}.algo-viz-stat+.algo-viz-stat{margin-left:0}.viz-invalid{color:var(--accent-red)}@media (width<=768px){.algo-viz{padding:12px 8px}.algo-viz-bars{gap:5px}.algo-viz-bar{width:26px;font-size:10px}.algo-viz-cells{flex-wrap:wrap;justify-content:center}.algo-viz-cell{width:38px;height:38px;font-size:13px}.algo-viz-pointer{font-size:9px;top:-14px}.algo-viz-controls{justify-content:center}.algo-viz-stat{margin-left:0}.runnable-code pre code,.drill-code-line{font-size:12px}.runnable-code-btn{padding:3px 8px;font-size:11px}.tutorial-viewer pre code{padding:12px;font-size:12px}}.algo-viz-race{flex-wrap:wrap;justify-content:space-around;gap:24px;display:flex}.algo-viz-lane h4{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;text-align:center;margin:0 0 8px;font-size:12px}.algo-viz-stats{color:var(--text-secondary);justify-content:center;gap:12px;margin-top:6px;font-size:12px;display:flex}.drill{border:1px solid var(--border);background:var(--bg-secondary);border-radius:8px;margin-bottom:16px;padding:14px 16px}.drill-code{margin:0 0 10px}.drill-code-line{white-space:pre;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:13px;line-height:1.7}.drill-blank{border:1px solid var(--accent-blue);border-bottom:2px solid var(--accent-blue);background:var(--bg-primary);min-width:40px;color:var(--text-primary);font:inherit;text-align:center;border-radius:4px;margin:0 2px;padding:1px 6px;display:inline-block}.drill-blank:focus{border-color:var(--accent-green);outline:none}.drill-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.drill-pass{color:var(--accent-green);font-size:13px;font-weight:600}.drill-fail{color:var(--accent-red);font-size:13px}.drill-table-wrap{margin-bottom:10px;overflow-x:auto}.drill-table{border-collapse:collapse;font-size:13px}.drill-table th,.drill-table td{border:1px solid var(--border);text-align:left;padding:6px 12px;font-family:JetBrains Mono,Fira Code,Consolas,monospace}.drill-table th{background:var(--bg-tertiary);font-weight:600}.drill-table td.drill-ok{background:#3fb9501f}.drill-table td.drill-bad{background:#f851491f}.drill-invalid{color:var(--accent-red)}.tutorial-viewer{flex:1;padding:32px 40px;overflow:auto}.tutorial-viewer h1{border-bottom:1px solid var(--border);margin-bottom:16px;padding-bottom:12px;font-size:26px}.tutorial-viewer h2{margin-top:28px;margin-bottom:12px;font-size:20px}.tutorial-viewer h3{margin-top:20px;margin-bottom:8px;font-size:16px}.tutorial-viewer p{margin-bottom:12px;font-size:14px;line-height:1.7}.tutorial-viewer ul,.tutorial-viewer ol{margin-bottom:12px;padding-left:24px}.tutorial-viewer li{margin-bottom:4px;font-size:14px;line-height:1.7}.tutorial-viewer code{background:var(--bg-tertiary);border-radius:3px;padding:2px 6px;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:85%}.tutorial-viewer pre{margin-bottom:16px;overflow:auto}.tutorial-viewer pre code{background:var(--bg-primary);border:1px solid var(--border);border-radius:8px;padding:16px;font-size:13px;line-height:1.5;display:block;overflow:auto}.tutorial-viewer blockquote{border-left:3px solid var(--accent-yellow);background:#d2992214;border-radius:0 6px 6px 0;margin-bottom:12px;padding:8px 16px}.tutorial-viewer table{border-collapse:collapse;width:100%;margin-bottom:16px;font-size:13px}.tutorial-viewer th{text-align:left;background:var(--bg-tertiary);border:1px solid var(--border);padding:8px 12px;font-weight:600}.tutorial-viewer td{border:1px solid var(--border);padding:8px 12px}.tutorial-nav{border-top:1px solid var(--border);flex-shrink:0;gap:8px;padding:16px;display:flex}.tutorial-nav button{border:1px solid var(--border);background:var(--bg-tertiary);color:var(--text-primary);cursor:pointer;border-radius:6px;padding:6px 14px;font-size:13px}.tutorial-nav button:hover:not(:disabled){background:var(--border)}.tutorial-nav button:disabled{opacity:.4;cursor:not-allowed}.content-empty{color:var(--text-secondary);flex:1;justify-content:center;align-items:center;display:flex}.content-back{display:none}@media (width<=768px){.editor-page{height:auto;min-height:100%}.editor-workspace{flex-direction:column;flex:none}.editor-pane{border-right:none;border-bottom:1px solid var(--border);flex:none;height:60vh;min-height:320px}.output-pane{flex:none;min-width:0;height:45vh;min-height:240px}.toolbar{gap:8px;padding:8px 12px}.toolbar-center{border-left:none;padding-left:0}.toolbar-right{margin-left:0}.editor-pane-header{gap:8px;padding:6px 12px}.challenges-page,.tutorials-page{flex-direction:column}.challenges-sidebar,.tutorials-sidebar{border-right:none;flex:1;width:100%;min-height:0}.challenges-page.has-selection .challenges-sidebar,.tutorials-page.has-selection .tutorials-sidebar,.content-empty{display:none}.content-back{color:var(--text-2);background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:6px;padding:10px 16px;font-size:13px;font-weight:500;display:flex}.challenge-detail{padding:16px}.challenge-meta{flex-wrap:wrap}.tutorial-viewer{padding:16px}.tutorial-viewer table{display:block;overflow-x:auto}}.login-page-split{background:var(--bg);height:100%;display:flex}.login-brand{text-align:left;background:var(--login-grad);flex-direction:column;flex:5 1 0;justify-content:center;align-items:flex-start;padding:64px 72px;display:flex;position:relative;overflow:hidden}.login-brand-inner{z-index:1;margin-top:clamp(-260px,-28vh,-190px);position:relative}.login-brand-title{font-family:"Times New Roman", var(--font-serif);letter-spacing:-.025em;color:var(--text-1);margin-bottom:18px;font-size:60px;font-weight:600;line-height:1.06}.login-brand-sub{color:var(--text-2);max-width:400px;font-size:16px;line-height:1.65}.login-form-side{background:var(--surface);border-left:1px solid var(--border);flex:3 380px;justify-content:center;align-items:center;min-width:380px;max-width:520px;padding:32px 56px 64px;display:flex}.login-card-clean{flex-direction:column;gap:16px;width:100%;max-width:380px;display:flex}@media (width<=768px){.login-page-split{flex-direction:column}.login-brand{padding:48px 24px 32px;flex:none!important}.login-brand:after{display:none}.login-brand-title{font-size:40px}.login-form-side{border-left:none;min-width:0;max-width:none;padding:32px 24px;flex:auto!important}}.login-tabs{border-bottom:1px solid var(--border);width:100%;display:flex}.login-tab{color:var(--text-2);cursor:pointer;font-family:var(--font-sans);letter-spacing:0;transition:all var(--dur-fast) var(--ease-out);background:0 0;border:none;border-bottom:2px solid #0000;flex:1;margin-bottom:-1px;padding:9px 0;font-size:13px;font-weight:500}.login-tab:hover{color:var(--text-1)}.login-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.login-form{flex-direction:column;gap:12px;width:100%;display:flex}.login-input{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text-1);font-size:15px;font-family:var(--font-sans);transition:border-color var(--dur-fast), box-shadow var(--dur-fast);outline:none;padding:10px 13px}.login-input:focus{border-color:var(--accent);box-shadow:var(--shadow-focus)}.login-input::placeholder{color:var(--text-3)}.login-input:disabled{opacity:.6}.login-submit{justify-content:center;width:100%;margin-top:4px}.login-link{color:var(--accent);cursor:pointer;text-align:center;background:0 0;border:none;padding:4px 0;font-family:inherit;font-size:12.5px}.login-link:hover{text-decoration:underline}.login-error{color:var(--danger);background:var(--danger-soft);border:1px solid color-mix(in srgb, var(--danger) 30%, transparent);border-radius:var(--radius-sm);text-align:center;width:100%;padding:8px 12px;font-size:12.5px}.login-message{color:var(--success);background:var(--success-soft);border:1px solid color-mix(in srgb, var(--success) 30%, transparent);border-radius:var(--radius-sm);text-align:center;width:100%;padding:8px 12px;font-size:12.5px}.login-guest-note{color:var(--text-3);text-align:center;font-size:12.5px;line-height:1.5}.login-divider{background:var(--border);width:100%;height:1px}.lang-dropdown{position:relative}.lang-menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:100;min-width:160px;padding:5px;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden}.lang-option{width:100%;color:var(--text-2);cursor:pointer;text-align:left;border-radius:var(--radius-sm);transition:all var(--dur-fast);background:0 0;border:none;padding:8px 10px;font-family:inherit;font-size:13px;display:block}.lang-option:hover{background:var(--surface-3);color:var(--text-1)}.lang-option.active{color:var(--accent);background:var(--accent-soft);font-weight:600}.navbar-actions{flex:1;justify-content:flex-end;align-items:center;gap:8px;display:flex}.navbar-user-text{text-overflow:ellipsis;white-space:nowrap;max-width:120px;overflow:hidden}.navbar-signout-btn{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-1);cursor:pointer;transition:all var(--dur-fast);padding:5px 11px;font-family:inherit;font-size:12.5px;font-weight:500}.navbar-signout-btn:hover{background:var(--surface-3)}.navbar-signin-btn{white-space:nowrap;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-1);cursor:pointer;transition:all var(--dur-fast);align-items:center;gap:6px;padding:6px 12px;font-family:inherit;font-size:12.5px;font-weight:500;text-decoration:none;display:flex}.navbar-signin-btn:hover{background:var(--surface-3);text-decoration:none}.account-page{background:var(--bg-primary);justify-content:center;height:100%;padding:48px 24px;display:flex;overflow:auto}.account-card{width:100%;max-width:520px}.account-title{font-family:var(--font-serif);margin-bottom:28px;font-size:24px;font-weight:600}.account-avatar-row{align-items:center;gap:16px;margin-bottom:28px;display:flex}.account-avatar-wrap{cursor:pointer;font:inherit;background:0 0;border:none;border-radius:50%;flex-shrink:0;padding:0;position:relative}.account-avatar{border:2px solid var(--border);border-radius:50%;width:64px;height:64px;display:block}.account-avatar-initials{background:var(--accent-soft);color:var(--accent-contrast);letter-spacing:.02em;justify-content:center;align-items:center;font-size:22px;font-weight:600;display:flex}.account-avatar-wrap:focus-visible .account-avatar-overlay{opacity:1}.account-avatar-overlay{opacity:0;color:#fff;background:#00000080;border-radius:50%;justify-content:center;align-items:center;transition:opacity .15s;display:flex;position:absolute;inset:0}.account-email-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);margin-bottom:2px;font-size:11px}.account-email{font-size:14px;font-weight:500}.account-joined{color:var(--text-secondary);margin-top:2px;font-size:12px}.account-section{border-bottom:1px solid var(--border);flex-direction:column;gap:10px;margin-bottom:24px;padding-bottom:24px;display:flex}.account-label{font-size:14px;font-weight:600}.account-row{gap:10px;display:flex}.account-row .login-input{flex:1}.account-msg{color:var(--accent-green);font-size:12px}.account-err{color:var(--accent-red);font-size:12px}.account-avatar-wrap{cursor:pointer;position:relative}.account-avatar-overlay{opacity:0;background:#0006;border-radius:50%;justify-content:center;align-items:center;transition:opacity .15s;display:flex;position:absolute;inset:0}.account-avatar-wrap:hover .account-avatar-overlay{opacity:1}.login-stage-page{background:var(--bg-primary);justify-content:center;align-items:center;height:100%;display:flex}.login-select-box{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:48px 24px;display:flex}.login-select-cards{gap:16px;display:flex}.login-select-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--dur-base) var(--ease-out);width:230px;min-width:200px;color:var(--text-1);box-shadow:var(--shadow-sm);flex-direction:column;align-items:center;gap:12px;padding:32px 26px;font-family:inherit;display:flex}.login-select-card:hover{border-color:var(--accent);box-shadow:var(--shadow-md);transform:translateY(-2px)}.login-select-card h3{font-family:var(--font-serif);color:var(--text-1);font-size:19px;font-weight:600}.login-select-card p{color:var(--text-2);font-size:13px;line-height:1.5}.login-select-card-icon{border-radius:var(--radius-md);background:var(--accent-soft);width:52px;height:52px;color:var(--accent);justify-content:center;align-items:center;display:flex}.login-back{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:4px 0;font-family:inherit;font-size:13px;transition:color .15s;display:inline-flex}.login-back:hover{color:var(--text-primary);text-decoration:underline}.login-pw-toggle{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:4px 6px;font-family:inherit;font-size:11px;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.login-pw-toggle:hover{color:var(--text-primary)}.school-page{background:var(--bg-primary);justify-content:center;align-items:center;height:100%;padding:24px;display:flex}.school-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:480px;box-shadow:var(--shadow-md);flex-direction:column;gap:18px;padding:32px;display:flex}.school-top{justify-content:space-between;align-items:center;display:flex}.school-progress{color:var(--text-3);font-size:12px}.school-step h2{font-family:var(--font-serif);margin-bottom:8px;font-size:21px;font-weight:600}.school-sub{color:var(--text-2);font-size:13px;line-height:1.6}.school-role-cards{flex-direction:column;gap:10px;margin:12px 0;display:flex}.school-role-card{background:var(--surface-2);border-radius:var(--radius-md);cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out);color:var(--text-1);text-align:left;border:2px solid #0000;align-items:center;gap:15px;width:100%;padding:15px;font-family:inherit;display:flex}.school-role-card:hover{border-color:var(--border-strong)}.school-role-card.selected{border-color:var(--accent)}.school-role-card h4{font-family:var(--font-sans);letter-spacing:0;margin-bottom:2px;font-size:15px;font-weight:600}.school-role-card p{font-family:var(--font-sans);color:var(--text-2);font-size:12.5px}.school-role-icon{border-radius:var(--radius-sm);background:var(--accent-soft);width:44px;height:44px;color:var(--accent);flex-shrink:0;justify-content:center;align-items:center;display:flex}.school-nav{justify-content:space-between;align-items:center;margin-top:12px;display:flex}.school-done{text-align:center;flex-direction:column;align-items:center;display:flex}.school-done-icon{margin-bottom:12px}.school-code-block{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);align-items:center;gap:12px;margin:16px 0;padding:12px 16px;display:flex}.school-code-block code{font-family:var(--font-mono);letter-spacing:.12em;font-size:20px;font-weight:700}.app-shell{height:100%;min-height:0;display:flex}.app-main{flex-direction:column;flex:1;min-width:0;display:flex}.app-content{flex:1;min-height:0;position:relative;overflow:auto}.app-sidebar{background:var(--bg-secondary);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:2px;width:220px;padding:10px 8px;display:flex;overflow-y:auto}.sidebar-label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);padding:12px 10px 4px;font-size:10px;font-weight:700}.sidebar-item{border-radius:var(--radius-sm);color:var(--text-2);cursor:pointer;text-align:left;width:100%;transition:all var(--dur-fast) var(--ease-out);background:0 0;border:none;align-items:center;gap:9px;padding:7px 10px;font-family:inherit;font-size:13px;font-weight:500;text-decoration:none;display:flex}.sidebar-item:hover{background:var(--surface-3);color:var(--text-1);text-decoration:none}.sidebar-item.active{color:var(--accent);background:var(--accent-soft);font-weight:600}.sidebar-item-text{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.sidebar-group{flex-direction:column;gap:2px;display:flex}.sidebar-subitem{padding-left:24px}.sidebar-subitem2{padding-left:40px}.sidebar-footer{border-top:1px solid var(--border);flex-direction:column;gap:2px;margin-top:auto;padding-top:8px;display:flex}.sidebar-backdrop{display:none}.app-sidebar:focus-visible{box-shadow:none;border-radius:0}.navbar-hamburger{display:flex}.sidebar-head{justify-content:space-between;align-items:center;padding:2px 4px 6px;display:flex}.sidebar-head-title{letter-spacing:.5px;text-transform:uppercase;color:var(--text-secondary);padding-left:6px;font-size:10px;font-weight:600}.sidebar-collapse{width:26px;height:26px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;display:flex}.sidebar-collapse:hover{background:var(--bg-tertiary);color:var(--text-primary)}@media (width>=769px){.app-shell.sidebar-hidden .app-sidebar{display:none}}@media (width<=768px){.app-sidebar{z-index:200;visibility:hidden;transition:transform .2s,visibility 0s linear .2s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);box-shadow:2px 0 12px #0000004d}.app-sidebar:focus-visible{box-shadow:2px 0 12px #0000004d}.app-sidebar.open{visibility:visible;transition:transform .2s;transform:translate(0)}.sidebar-backdrop{z-index:199;background:#0006;display:block;position:fixed;inset:0}.brand-text{display:none}}.dash-tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:4px;margin-bottom:20px;display:flex}.dash-tab{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:6px;margin-bottom:-1px;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:500;text-decoration:none;display:inline-flex}.dash-tab:hover{color:var(--text-primary);text-decoration:none}.dash-tab.active{color:var(--text-1);border-bottom-color:var(--accent)}.dash-tab-badge{border-radius:var(--radius-pill);background:var(--danger);color:#fff;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:700;display:inline-flex}.dash-center{justify-content:center;align-items:center;height:100%;display:flex}.dash-page{max-width:1020px;height:100%;margin:0 auto;padding:28px;overflow:auto}.dash-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.dash-title{font-family:var(--font-serif);font-size:24px;font-weight:600}.dash-stats{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:26px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:18px}.stat-value{font-family:var(--font-serif);font-size:28px;font-weight:600;line-height:1}.stat-label{color:var(--text-2);margin-top:5px;font-size:12.5px}.dash-section{margin-bottom:28px}.dash-section h3{font-family:var(--font-serif);margin-bottom:10px;font-size:16px;font-weight:600}.dash-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:14px 16px}.dash-row{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}.dash-row:last-child{border-bottom:none}.badge{border-radius:var(--radius-pill);white-space:nowrap;align-items:center;padding:2px 10px;font-size:11px;font-weight:600;display:inline-flex}.badge.muted{color:var(--text-2);background:var(--surface-2)}.badge.blue{background:var(--info-soft);color:var(--info)}.badge.green{background:var(--success-soft);color:var(--success)}.badge.red{background:var(--danger-soft);color:var(--danger)}.badge.yellow{background:var(--warning-soft);color:var(--warning)}.btn-sm{border-radius:var(--radius-sm);padding:5px 12px;font-size:12px}.site-announcement{background:var(--info-soft);color:var(--info);border-bottom:1px solid var(--info);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:8px 16px;font-size:13px;display:flex}.site-announcement.warning{background:var(--warning-soft);color:var(--warning);border-bottom-color:var(--warning)}.site-announcement.danger{background:var(--danger-soft);color:var(--danger);border-bottom-color:var(--danger)}.site-announcement-text{flex:1;min-width:0}.site-announcement-close{cursor:pointer;color:inherit;border-radius:var(--radius-sm);background:0 0;border:none;flex-shrink:0;padding:2px 6px;font-size:16px;line-height:1}.site-announcement-close:hover{background:color-mix(in srgb, currentColor 15%, transparent)}.editor-banner{background:var(--accent-soft);border-bottom:1px solid var(--accent);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;font-size:13px;display:flex}@media (width<=768px){.dash-page{padding:16px}.dash-title{font-size:18px}}.examples-panel{background:var(--surface);border-bottom:1px solid var(--border);flex-direction:column;flex-shrink:0;min-height:0;max-height:45%;display:flex}.examples-head{justify-content:space-between;align-items:center;padding:10px 16px 4px;display:flex}.examples-hint{color:var(--text-secondary);padding:0 16px 8px;font-size:12px}.examples-body{padding:0 16px 12px;overflow-y:auto}.examples-row{border-top:1px solid var(--border);gap:12px;padding:8px 0;display:flex}.examples-cat{width:130px;color:var(--accent);flex-shrink:0;padding-top:5px;font-size:12px;font-weight:600}.examples-chips{flex-wrap:wrap;gap:6px;display:flex}.examples-chip{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text-1);cursor:pointer;transition:all var(--dur-fast);align-items:center;padding:4px 12px;font-family:inherit;font-size:12.5px;display:inline-flex}.examples-chip:hover{border-color:var(--accent);color:var(--accent)}@media (width<=640px){.examples-row{flex-direction:column;gap:6px}.examples-cat{width:auto}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.dialect-select{align-items:center;gap:6px;margin-right:4px;display:inline-flex}.dialect-label{color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600}.dialect-select select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text-1);font-size:12.5px;font-weight:600;font-family:var(--font-sans);cursor:pointer;padding:4px 8px}.toolbar-btn.strict-btn.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.cm-cpe-mark-error{-webkit-text-decoration:underline wavy var(--danger);text-decoration:underline wavy var(--danger);text-underline-offset:3px}.cm-cpe-mark-warning{-webkit-text-decoration:underline wavy var(--accent-yellow,#c98a1b);text-decoration:underline wavy var(--accent-yellow,#c98a1b);text-underline-offset:3px}.cm-cpe-mark-info{-webkit-text-decoration:underline dotted var(--text-3);text-decoration:underline dotted var(--text-3);text-underline-offset:3px}.cm-cpe-diagnostic{flex-direction:column;gap:4px;max-width:42ch;display:flex}.cm-cpe-diagnostic-message{color:var(--text-1);font-weight:600}.cm-cpe-diagnostic-hint{color:var(--text-2);font-size:12px}.cm-cpe-diagnostic-code{font-family:var(--font-mono);color:var(--text-3);border:1px solid var(--border);border-radius:var(--radius-xs);align-self:flex-start;padding:0 4px;font-size:10.5px}.cm-tooltip.cm-tooltip-lint{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg)}.cm-diagnostic{font-family:var(--font-sans);border-left-width:3px;padding:8px 10px;font-size:12.5px}.output-content.console{flex-direction:column;gap:0;display:flex}.console-row{white-space:pre-wrap;word-break:break-word;gap:8px;padding:0 2px;display:flex}.console-row.out{color:var(--text-1)}.console-row.echo{color:var(--text-3)}.console-row.prompt{color:var(--accent);font-weight:600}.console-row.err{color:var(--danger)}.console-row.warn{color:var(--accent-yellow,#c98a1b)}.console-row.info{color:var(--text-2)}.console-row.clickable{cursor:pointer;border-radius:var(--radius-xs)}button.console-row,button.output-error{appearance:none;text-align:left;width:100%;font-family:inherit;line-height:inherit}button.console-row{font-size:inherit;background:0 0;border:none}button.output-error{display:block}.console-row.clickable:hover{background:var(--surface-2)}.console-line-no{color:var(--text-3);flex-shrink:0;font-size:11.5px}.console-text{white-space:pre-wrap}.console-more{border:1px dashed var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-2);width:100%;color:var(--text-2);font-size:12px;font-family:var(--font-sans);cursor:pointer;margin-bottom:8px;padding:5px 10px}.console-more:hover{color:var(--text-1);border-color:var(--accent)}.output-error.clickable{cursor:pointer}.diagnostics-list{border-top:1px solid var(--border);flex-direction:column;gap:4px;margin-top:12px;padding-top:10px;display:flex}.diagnostic-row{text-align:left;border-radius:var(--radius-sm);cursor:pointer;width:100%;font-family:var(--font-sans);color:var(--text-1);background:0 0;border:1px solid #0000;flex-direction:column;gap:2px;padding:6px 8px;font-size:12.5px;display:flex}.diagnostic-row:hover{background:var(--surface-2);border-color:var(--border)}.diagnostic-head{flex-wrap:wrap;align-items:baseline;gap:6px;display:flex}.diagnostic-row.error .diagnostic-dot{color:var(--danger)}.diagnostic-row.warning .diagnostic-dot{color:var(--accent-yellow,#c98a1b)}.diagnostic-row.info .diagnostic-dot{color:var(--text-3)}.diagnostic-where{color:var(--text-2);white-space:nowrap;font-weight:600}.diagnostic-message{flex:1}.diagnostic-code{font-family:var(--font-mono);color:var(--text-3);font-size:10.5px}.diagnostic-hint{color:var(--text-3);padding-left:18px;font-size:11.5px}.input-caret{font-family:var(--font-mono);color:var(--accent);align-self:center;font-weight:700}.examples-level{margin-bottom:8px}.examples-level-title{letter-spacing:.05em;text-transform:uppercase;color:var(--text-3);margin:10px 0 2px;font-size:12px;font-weight:700}.exam-list-page{max-width:1240px}.exam-subtitle{color:var(--text-2);margin-top:2px;font-size:13.5px}.exam-filter-bar{z-index:5;background:var(--bg);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;padding:10px 0;display:flex;position:sticky;top:0}.exam-search-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-3);flex:200px;align-items:center;gap:6px;min-width:200px;padding:6px 10px;display:flex}.exam-search-box input{color:var(--text-1);background:0 0;border:none;outline:none;width:100%;font-size:13px}.exam-year-select{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-1);padding:6px 10px;font-size:13px}.exam-syllabus-chips{flex-wrap:wrap;gap:6px;display:flex}.exam-columns{grid-template-columns:1fr 1fr;gap:24px;display:grid}@media (width<=900px){.exam-columns{grid-template-columns:1fr}}.exam-column-title{font-family:var(--font-serif);margin-bottom:12px;font-size:17px;font-weight:600}.exam-session-group h3{align-items:baseline;gap:8px;display:flex}.exam-question-row{flex-wrap:nowrap;align-items:center;gap:10px;display:flex}.exam-row-tick{width:16px;color:var(--text-3);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.exam-row-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-1);flex:1;font-size:13.5px;overflow:hidden}.exam-row-title:hover{text-decoration:underline}.exam-row-marks{color:var(--text-3);flex-shrink:0;font-size:12px}.exam-row-chips{flex-shrink:0;gap:6px;display:flex}.exam-pdf-chip:disabled{opacity:.4;cursor:not-allowed}.exam-question-page{flex:1;grid-template-columns:minmax(320px,1fr) 2fr minmax(260px,340px);gap:0;height:100%;min-height:0;display:grid;overflow:hidden}@media (width<=1200px){.exam-question-page{grid-template-columns:1fr;height:auto;overflow-y:auto}}.exam-q-left,.exam-q-centre,.exam-q-right{min-width:0;padding:16px;overflow-y:auto}.exam-q-left{border-right:1px solid var(--border);--exam-question-font-size:13.5px}.exam-q-left-topbar{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.exam-q-left-topbar .exam-q-back{margin-bottom:0}.exam-q-font-controls{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-2);flex:none;align-items:center;gap:2px;padding:2px;display:inline-flex}.exam-q-font-controls .exam-q-tool{width:26px;height:26px}.exam-q-font-value{border-radius:var(--radius-sm);min-width:42px;height:26px;color:var(--text-2);font:500 11px/1 var(--font-mono);cursor:pointer;background:0 0;border:none;padding:0 6px}.exam-q-font-value:hover{background:var(--surface);color:var(--text-1)}.exam-q-right{border-left:1px solid var(--border)}.exam-q-back{color:var(--text-2);margin-bottom:10px;font-size:12.5px;display:inline-block}.exam-q-crumb{color:var(--text-3);font-size:12px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.03em}.exam-q-title{font-family:var(--font-serif);margin:4px 0 8px;font-size:19px;font-weight:600}.exam-q-tags{flex-wrap:wrap;gap:5px;margin-bottom:12px;display:flex}.exam-solution-notes{color:var(--text-2);margin-top:10px;font-size:13px}.exam-q-editor{border:1px solid var(--border);border-radius:var(--radius-md);flex:auto;min-height:200px;overflow:hidden}.exam-question-page.no-files{grid-template-columns:minmax(320px,1fr) 2fr}@media (width<=1200px){.exam-question-page.no-files{grid-template-columns:1fr}}.exam-q-centre{flex-direction:column;gap:8px;display:flex;overflow:hidden}.exam-q-toolbar{flex:none;align-items:center;gap:10px;min-height:34px;display:flex}.exam-q-toolbar .pane-title{flex:none}.exam-q-toolbar-actions{flex:none;align-items:center;gap:6px;margin-left:auto;display:flex}.exam-q-toolbar-actions .btn-primary,.exam-q-toolbar-actions .btn-secondary{align-items:center;gap:6px;display:inline-flex}.exam-q-tool{border-radius:var(--radius-sm);width:30px;height:30px;color:var(--text-2);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;display:inline-flex}.exam-q-tool:hover:not(:disabled){background:var(--surface-3);color:var(--text-1)}.exam-q-tool:disabled{opacity:.45;cursor:default}.exam-q-lock-hint{min-width:0;color:var(--text-2);background:var(--accent-soft);border-radius:var(--radius-pill);align-items:center;gap:6px;padding:4px 10px;font-size:12px;transition:background .2s,color .2s;display:flex}.exam-q-lock-hint>span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.exam-q-lock-hint svg{flex:none}.exam-q-lock-hint.alert{background:var(--warning-soft);color:var(--warning);font-weight:600}.exam-q-restored{color:var(--text-3);flex:none;margin:0;font-size:12px}.exam-q-split{cursor:row-resize;touch-action:none;flex:none;height:8px;margin:-4px 0;position:relative}.exam-q-split:after{content:"";background:var(--border-strong);width:40px;height:4px;transition:background var(--dur-fast);border-radius:2px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.exam-q-split:hover:after{background:var(--accent)}body.exam-resizing{cursor:row-resize;-webkit-user-select:none;user-select:none}.exam-q-dock{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);flex-direction:column;flex:none;min-height:0;display:flex;overflow:hidden}.exam-q-dock-tabs{border-bottom:1px solid var(--border);background:var(--surface-2);flex:none;align-items:center;gap:2px;height:38px;padding:0 6px;display:flex}.exam-q-dock.closed .exam-q-dock-tabs{border-bottom:none}.exam-q-dock-tabs [role=tab]{border-radius:var(--radius-sm);height:30px;color:var(--text-2);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:0 10px;font-size:12.5px;font-weight:600;display:inline-flex}.exam-q-dock-tabs [role=tab]:hover{color:var(--text-1)}.exam-q-dock-tabs [role=tab].active{background:var(--surface);color:var(--text-1);box-shadow:var(--shadow-xs)}.exam-q-dock-grow{flex:1}.exam-q-dot{border-radius:50%;width:7px;height:7px}.exam-q-dot.wait{background:var(--warning)}.exam-q-dot.bad{background:var(--danger)}.exam-q-dock-body{flex-direction:column;flex:1;min-height:0;display:flex;overflow:auto}.exam-q-dock-body .exam-tests{border:none;border-radius:0;margin:0}.exam-q-dock-body .exam-tests-head{display:none}.exam-q-dock-body .exam-q-console-title{margin:8px 12px 0}.exam-q-dock-body .output-panel{flex:1;min-height:120px}@media (width<=1200px){.exam-q-centre{overflow:visible}.exam-q-editor{flex:none;height:60vh}.exam-q-split{display:none}.exam-q-dock{height:auto!important}.exam-q-dock-body{max-height:50vh}.exam-q-lock-hint>span{white-space:normal}.exam-q-toolbar{flex-wrap:wrap}}.exam-q-console-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);margin:12px 0 4px;font-size:11px;font-weight:700}.exam-tests{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);margin-bottom:4px}.exam-tests-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;display:flex}.exam-tests-head h3{text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);margin:0;font-size:12px;font-weight:700}.exam-tests-list{margin:0;padding:0;list-style:none}.exam-test+.exam-test{border-top:1px solid var(--border)}.exam-test-row{text-align:left;width:100%;color:var(--text-1);cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:7px 12px;font-size:13px;display:flex}.exam-test-row:hover{background:var(--surface-2)}.exam-test-icon{width:16px;color:var(--text-3);justify-content:center;display:inline-flex}.exam-test.pass .exam-test-icon{color:var(--success)}.exam-test.fail .exam-test-icon,.exam-test.error .exam-test-icon{color:var(--danger)}.exam-test-name{flex:1;min-width:0}.exam-test-state{color:var(--text-3);font-size:12px}.exam-test-body{padding:4px 12px 12px 36px}.exam-test-io h4{text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);margin:6px 0 4px;font-size:11px}.exam-test-io pre{background:var(--surface-2);border-radius:var(--radius-sm);margin:0;padding:8px;font-size:12px;overflow-x:auto}.exam-test-none{color:var(--text-3);margin:0;font-size:12px}.exam-test-error{color:var(--danger);margin:8px 0 0;font-size:12.5px}.exam-help{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);margin:0 0 16px;padding:12px}.exam-help-title{color:var(--text-1);align-items:center;gap:6px;margin:0;font-size:13px;font-weight:700;display:flex}.exam-help-intro{color:var(--text-3);margin:4px 0 8px;font-size:12px}.exam-help-step{border-top:1px dashed var(--border);padding:8px 0}.exam-help-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.exam-help-n{background:var(--accent-soft);width:20px;height:20px;color:var(--accent);border-radius:50%;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:inline-flex}.exam-help-label{color:var(--text-2);flex:1;font-size:13px;font-weight:600}.exam-help-locked-note{color:var(--text-3);font-size:12px}.exam-help-body{color:var(--text-1);white-space:pre-wrap;margin:8px 0 0 28px;font-size:13px}.exam-help-body .exam-ms-table,.exam-help-body .challenge-mini-editor{white-space:normal}.exam-diff{grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;display:grid}.exam-diff-col h4{text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);margin-bottom:4px;font-size:11px}.exam-diff-col pre{background:var(--surface-2);border-radius:var(--radius-sm);margin:0;padding:8px;font-size:12px;overflow-x:auto}.exam-diff-line{white-space:pre}.exam-diff-line.diff{background:var(--danger-soft);color:var(--danger)}.exam-md{color:var(--text-1);overflow-wrap:anywhere;font-size:13.5px;line-height:1.6}.exam-q-left .exam-md{font-size:var(--exam-question-font-size)}.exam-q-left .exam-md code,.exam-q-left .exam-md-pre{font-size:.93em}.exam-q-left .exam-md table{font-size:inherit}.exam-md>:first-child{margin-top:0}.exam-md p,.exam-md ul,.exam-md ol{margin:0 0 10px}.exam-md ul,.exam-md ol{padding-left:22px}.exam-md code{font-family:var(--font-mono);background:var(--surface-2);border-radius:var(--radius-xs);padding:1px 4px;font-size:12.5px}.exam-md-pre{background:var(--code-bg);color:var(--code-text);border:1px solid var(--border);border-radius:var(--radius-sm);margin:0 0 12px;padding:10px 12px;font-size:12.5px;line-height:1.55;overflow-x:auto}.exam-md-pre code{font-size:inherit;white-space:pre;background:0 0;padding:0}.exam-md-table-wrap{margin:0 0 12px;overflow-x:auto}.exam-md table{border-collapse:collapse;font-size:13px}.exam-md th{text-align:left;background:var(--surface-2);border:1px solid var(--border);padding:6px 10px;font-weight:600}.exam-md td{border:1px solid var(--border);vertical-align:top;padding:6px 10px}.exam-md-figure{cursor:zoom-in;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;max-width:100%;margin:4px 0;display:inline-block}.exam-md-figure img{max-width:100%;height:auto;display:block}.exam-md-figure-missing{color:var(--text-3);border:1px dashed var(--border);border-radius:var(--radius-sm);padding:4px 8px;font-style:italic;display:inline-block}.exam-context-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-2);margin:0 0 14px}.exam-context-head{cursor:pointer;text-transform:uppercase;letter-spacing:.05em;width:100%;color:var(--text-2);text-align:left;background:0 0;border:none;align-items:center;gap:6px;padding:8px 10px;font-size:11px;font-weight:700;display:flex}.exam-context-body{padding:0 12px 10px}.exam-q-markdown{margin-bottom:14px}.exam-q-pdf-links{border-top:1px dashed var(--border);color:var(--text-3);flex-wrap:wrap;align-items:center;gap:10px;padding-top:10px;font-size:12px;display:flex}.exam-q-pdf-label{align-items:center;gap:4px;display:inline-flex}.exam-q-pdf-link{color:var(--text-2);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;text-decoration:underline}.exam-q-pdf-link:disabled{opacity:.45;cursor:not-allowed;text-decoration:none}.exam-ms-table{border-collapse:collapse;width:100%;margin-top:6px;font-size:13px}.exam-ms-table th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);border-bottom:1px solid var(--border);padding:6px 8px;font-size:11px}.exam-ms-table td{border-bottom:1px solid var(--border);vertical-align:top;padding:6px 8px}.exam-ms-table tfoot td{border-bottom:none;font-weight:600}.exam-ms-text{white-space:pre-wrap}.files-panel{flex-direction:column;gap:10px;display:flex}.files-panel-header{justify-content:space-between;align-items:center;display:flex}.files-panel-empty{color:var(--text-3);font-size:12.5px}.files-panel-error{color:var(--accent-red);margin:0;font-size:12px}.files-panel-row{flex-direction:column;gap:4px;display:flex}.files-panel-row-head{align-items:center;gap:6px;display:flex}.files-panel-name{font-family:var(--font-mono);color:var(--text-1);flex:1;font-size:12.5px}.files-panel-name-input{font-family:var(--font-mono);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xs);color:var(--text-1);flex:1;padding:3px 6px;font-size:12.5px}.files-panel-remove{color:var(--text-3);cursor:pointer;background:0 0;border:none;padding:2px;display:inline-flex}.files-panel-remove:hover{color:var(--danger)}.files-panel-textarea{box-sizing:border-box;width:100%;font-family:var(--font-mono);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-1);resize:vertical;padding:6px 8px;font-size:12px}.files-panel-add{align-self:flex-start}.files-panel-results{border-top:1px dashed var(--border);flex-direction:column;gap:10px;margin-top:10px;padding-top:10px;display:flex}.admin-page{padding-bottom:40px}.admin-tabs{flex-wrap:wrap}.admin-grow{flex:1;min-width:0}.admin-grow-v{flex-direction:column;flex:1;min-height:0;display:flex}.admin-hint{color:var(--text-3);margin:4px 0;font-size:12px}.admin-mono{font-family:var(--font-mono);font-size:12.5px}.admin-inline-error{color:var(--danger);background:var(--danger-soft);border-radius:var(--radius-sm);margin:6px 0;padding:6px 8px;font-size:12.5px}.admin-saved-tick{color:var(--success);align-items:center;gap:4px;font-size:12.5px;display:inline-flex}.admin-toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.admin-row-inline{flex-wrap:wrap;align-items:flex-end;gap:10px;margin:8px 0;display:flex}.admin-row-inline label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);flex-direction:column;gap:3px;font-size:11px;font-weight:700;display:flex}.admin-row-actions{gap:4px;display:flex}.admin-save-bar{align-items:center}.admin-field{flex-direction:column;gap:4px;margin:10px 0;display:flex}.admin-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);align-items:center;gap:6px;font-size:11px;font-weight:700;display:flex}.admin-input{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-1);box-sizing:border-box;padding:6px 8px;font-size:13px}.admin-input-tiny{width:96px}.admin-input-grow{flex:1;min-width:160px}.admin-textarea{box-sizing:border-box;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text-1);resize:vertical;padding:8px 10px;font-size:13px}.admin-textarea-tall{flex:1;min-height:220px}.admin-textarea.admin-mono{font-family:var(--font-mono);font-size:12.5px}.admin-pre{white-space:pre}.admin-output{background:var(--surface-2);border-radius:var(--radius-sm);font-family:var(--font-mono);white-space:pre;margin:0;padding:8px;font-size:12px;overflow-x:auto}.admin-md-preview{background:var(--surface-2);border-radius:var(--radius-sm);white-space:pre-wrap;flex:1;min-height:220px;padding:10px;font-size:13px;overflow-y:auto}.admin-check{color:var(--text-1);cursor:pointer;align-items:flex-start;gap:6px;font-size:13px;display:inline-flex}.admin-check span{flex-direction:column;gap:2px;display:flex}.admin-check em{color:var(--text-3);font-size:12px;font-style:normal}.admin-check code{font-family:var(--font-mono);color:var(--text-2);white-space:pre-wrap;font-size:11.5px}.admin-switch-row{margin:8px 0}.admin-chips{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.admin-chip-x{color:inherit;cursor:pointer;background:0 0;border:none;padding:0 0 0 3px;display:inline-flex}.admin-ai-mark{font-size:12px}.admin-editor{border:1px solid var(--border);border-radius:var(--radius-md);height:220px;overflow:hidden}.admin-stat-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.admin-stat-grid .stat-card{flex-direction:column;gap:3px;display:flex}.admin-stat-grid .stat-card-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);font-size:11px;font-weight:700}.admin-stat-grid .stat-card-value{color:var(--text-1);font-size:24px;font-weight:700;line-height:1.1}.admin-stat-grid .stat-card-sub{color:var(--text-3);font-size:11.5px}.stat-card-link{color:inherit;text-decoration:none}.admin-row-link{color:inherit;align-items:center;gap:8px;text-decoration:none;display:flex}.admin-row-link:hover{background:var(--surface-2)}.admin-table{border-collapse:collapse;width:100%;font-size:13px}.admin-table th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);border-bottom:1px solid var(--border);padding:6px 8px;font-size:11px}.admin-table td{border-bottom:1px solid var(--border);color:var(--text-1);vertical-align:middle;padding:6px 8px}.admin-row-clickable{cursor:pointer}.admin-row-clickable:hover td{background:var(--surface-2)}.admin-table-error-row td{border-bottom:none;padding-top:0}.admin-segmented{border:1px solid var(--border);border-radius:var(--radius-sm);display:inline-flex;overflow:hidden}.admin-segmented button{background:var(--surface);border:none;border-right:1px solid var(--border);color:var(--text-2);cursor:pointer;padding:5px 10px;font-size:12.5px}.admin-segmented button:last-child{border-right:none}.admin-segmented button.active{background:var(--accent);color:var(--surface)}.admin-segmented button:disabled{opacity:.45;cursor:not-allowed}.admin-dropzones{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;display:grid}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.batch-modal{max-width:980px}.batch-modal:focus{outline:none}.batch-head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.batch-icon-btn{border-radius:var(--radius-xs);color:var(--text-3);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:3px;display:inline-flex}.batch-icon-btn:hover:not(:disabled){color:var(--text-1);border-color:var(--border)}.batch-icon-btn:disabled{opacity:.4;cursor:not-allowed}.batch-link-btn{color:var(--accent);cursor:pointer;font-size:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.batch-steps{flex-wrap:wrap;gap:6px 18px;margin:0 0 14px;padding:0;list-style:none;display:flex}.batch-steps li{color:var(--text-3);align-items:center;gap:6px;font-size:12.5px;display:flex}.batch-steps li.active{color:var(--text-1);font-weight:600}.batch-steps li.done{color:var(--text-2)}.batch-step-dot{border:1px solid var(--border-strong);background:var(--surface);border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:11px;display:inline-flex}.batch-steps li.active .batch-step-dot{border-color:var(--accent);color:var(--accent);box-shadow:var(--shadow-focus)}.batch-steps li.done .batch-step-dot{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.batch-drop{border:1px dashed var(--border-strong);border-radius:var(--radius-md);text-align:center;color:var(--text-2);background:var(--surface);flex-direction:column;align-items:center;gap:8px;padding:22px 14px;font-size:13px;display:flex}.batch-drop.over{border-color:var(--accent);background:var(--surface-2)}.batch-drop p{margin:0}.batch-drop-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.batch-tip{background:var(--surface-2);border-radius:var(--radius-sm);color:var(--text-2);flex-direction:column;gap:4px;margin-top:12px;padding:10px 12px;font-size:12.5px;display:flex}.batch-tip p{margin:4px 0 0}.batch-tip code{font-family:var(--font-mono);color:var(--text-1);overflow-wrap:anywhere;font-size:11.5px}.batch-summary{color:var(--text-1);margin:0 0 8px;font-size:13px}.batch-inline-field{color:var(--text-2);flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 8px;font-size:12.5px;display:inline-flex}.batch-table-wrap{border:1px solid var(--border);border-radius:var(--radius-sm);max-height:50vh;overflow:auto}.batch-table{min-width:760px}.batch-table th[scope=row]{text-transform:none;letter-spacing:0;color:var(--text-1);border-bottom:1px solid var(--border);font-size:13px;font-weight:500}.batch-table td,.batch-table th{vertical-align:top}.batch-col-check{text-align:center;width:56px}.batch-unit{min-width:200px}.batch-unit-label{white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.batch-file{align-items:center;gap:6px;min-width:0;max-width:260px;display:flex}.batch-file-name{font-family:var(--font-mono);color:var(--text-1);text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:220px;font-size:12px;display:inline-block;overflow:hidden}.batch-file-size{color:var(--text-3);white-space:nowrap;font-size:11px}.batch-pick{max-width:250px;font-size:12px}.batch-missing{color:var(--text-3);font-size:12px;font-style:italic}.batch-status{flex-direction:column;align-items:flex-start;gap:3px;min-width:150px;display:flex}.batch-note{color:var(--text-3);font-size:11.5px;line-height:1.4}.batch-note.warn{color:var(--warning)}.batch-note.danger{color:var(--danger)}.batch-block{margin:0 0 8px;display:block}.batch-row-editor{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.batch-identity{flex-wrap:wrap;gap:6px;display:flex}.batch-identity label,.batch-assign label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);flex-direction:column;gap:2px;font-size:10.5px;font-weight:700;display:flex}.batch-input-year{width:78px}.batch-input-no{width:64px}.batch-skipped{margin-top:10px;font-size:12.5px}.batch-skipped summary{cursor:pointer;color:var(--text-2);font-weight:600}.batch-skipped ul{flex-direction:column;gap:6px;margin:6px 0 0;padding:0;list-style:none;display:flex}.batch-skipped li{border-bottom:1px solid var(--border);padding-bottom:6px}.batch-skipped-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.batch-assign{background:var(--surface-2);border-radius:var(--radius-sm);flex-wrap:wrap;align-items:flex-end;gap:8px;margin-top:6px;padding:8px;display:flex}.batch-assign-actions{gap:6px;display:inline-flex}.batch-options{border:none;flex-direction:column;gap:6px;margin:12px 0 0;padding:0;display:flex}.batch-options .admin-hint{margin:0 0 0 22px}.batch-indent{margin-left:22px}.batch-progress{background:var(--surface-2);border-radius:var(--radius-pill);height:8px;margin:0 0 8px;overflow:hidden}.batch-progress-bar{background:var(--accent);height:100%;transition:width .2s linear}@media (width<=560px){.batch-modal{padding:14px}.batch-table-wrap{max-height:45vh}}.pdf-dropzone{border:1px dashed var(--border);border-radius:var(--radius-md);background:var(--surface);flex-direction:column;gap:8px;padding:12px;display:flex}.pdf-dropzone.over{border-color:var(--accent);background:var(--surface-2)}.pdf-dropzone-head{color:var(--text-1);align-items:center;gap:6px;font-size:13px;display:flex}.pdf-dropzone-meta{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.pdf-dropzone-name{font-family:var(--font-mono);color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:12px;overflow:hidden}.pdf-dropzone-actions{flex-wrap:wrap;gap:6px;display:flex}.pdf-dropzone-empty{color:var(--text-3);text-align:center;flex-direction:column;align-items:center;gap:6px;padding:14px 0;font-size:12.5px;display:flex}.pdf-dropzone-progress{background:var(--surface-2);border-radius:var(--radius-xs);height:16px;color:var(--text-2);font-size:11px;position:relative;overflow:hidden}.pdf-dropzone-progress span{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.pdf-dropzone-bar{background:var(--accent);height:100%;transition:width .15s linear}.admin-job-strip{background:var(--surface-2);border-radius:var(--radius-md);flex-direction:column;gap:6px;margin-top:10px;padding:10px;display:flex}.admin-job-strip.failed{background:var(--danger-soft)}.admin-job-strip.compact{padding:6px 8px}.admin-job-strip-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.admin-job-strip-msg{min-width:0;color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12.5px;overflow:hidden}.admin-job-strip-elapsed{color:var(--text-3);font-size:11.5px}.admin-job-bar{background:var(--surface-3,var(--surface));border-radius:3px;height:5px;overflow:hidden}.admin-job-bar-fill{background:var(--accent);height:100%;transition:width .3s}.admin-job-log{background:var(--surface);border-radius:var(--radius-sm);font-family:var(--font-mono);color:var(--text-2);white-space:pre-wrap;max-height:110px;margin:0;padding:8px;font-size:11.5px;overflow:auto}.admin-modal-backdrop,.admin-drawer-backdrop{z-index:60;background:#0006;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.admin-modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);width:100%;max-width:440px;max-height:90vh;padding:18px;overflow-y:auto}.admin-modal-wide{max-width:620px}.admin-modal-title{color:var(--text-1);margin:0 0 10px;font-size:15px}.admin-modal-note{color:var(--text-2);margin:0 0 8px;font-size:12.5px}.admin-modal-actions{justify-content:flex-end;gap:8px;margin-top:14px;display:flex}.admin-fieldset{border:1px solid var(--border);border-radius:var(--radius-sm);margin:10px 0;padding:8px 10px}.admin-fieldset legend{text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);padding:0 4px;font-size:11px}.admin-radio{border-radius:var(--radius-sm);cursor:pointer;align-items:flex-start;gap:8px;padding:6px 4px;display:flex}.admin-radio.selected{background:var(--surface-2)}.admin-radio.inline{align-items:center;margin-right:12px;display:inline-flex}.admin-radio span{color:var(--text-1);flex-direction:column;gap:2px;font-size:13px;display:flex}.admin-radio em{color:var(--text-3);font-size:12px;font-style:normal}.admin-drawer{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);flex-direction:column;width:100%;max-width:1000px;max-height:90vh;display:flex}.admin-drawer-head{border-bottom:1px solid var(--border);flex-direction:column;gap:4px;padding:14px 16px;display:flex}.admin-drawer-head h3{color:var(--text-1);margin:0;font-size:15px}.admin-drawer-body{flex:1;padding:12px 16px;overflow:auto}.admin-drawer-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.admin-diff-codes{flex-wrap:wrap;gap:8px;margin:4px 0 8px;display:flex}.admin-diff-code{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);align-items:center;gap:10px;padding:4px 10px 4px 4px;display:inline-flex}.admin-diff-code.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.admin-diff-code>button{color:var(--text-1);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;gap:8px;padding:4px 6px;font-size:13px;font-weight:500;display:inline-flex}.admin-diff-code>button:hover{background:var(--accent-soft)}.admin-check-inline{color:var(--text-2);cursor:pointer;align-items:center;gap:4px;font-size:12px;display:inline-flex}.admin-drawer-extras{flex-direction:column;gap:10px;margin-top:14px;display:flex}.admin-diff{font-family:var(--font-mono);background:var(--surface-2);border-radius:var(--radius-sm);margin:0;padding:6px;font-size:12px;overflow-x:auto}.admin-diff-side{grid-template-columns:1fr 1fr;gap:8px;display:grid}.admin-diff-line{white-space:pre;gap:6px;display:flex}.admin-diff-line.add{background:var(--success-soft);color:var(--success)}.admin-diff-line.del{background:var(--danger-soft);color:var(--danger)}.admin-diff-line.blank{opacity:.4}.admin-diff-gutter{text-align:right;min-width:28px;color:var(--text-3);flex-shrink:0}.admin-diff-sign{flex-shrink:0;width:10px}.admin-diff-text{flex:1}.admin-diff-added{color:var(--success)}.admin-diff-removed{color:var(--danger)}.admin-merge-panes{grid-template-columns:1fr 1fr;gap:10px;display:grid}.admin-merge-panes h4{text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);margin:0 0 4px;font-size:11px}.admin-merge-textarea{box-sizing:border-box;width:100%;min-height:300px;font-family:var(--font-mono);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-1);resize:vertical;padding:8px;font-size:12px}.admin-workbench{flex-direction:column;gap:10px;display:flex}.admin-wb-grid{grid-template-columns:1fr;gap:12px;display:grid}.admin-wb-cell{min-width:0;display:none}.admin-wb-cell.shown{display:block}.admin-col{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);flex-direction:column;gap:6px;padding:12px;display:flex}.admin-wb-footer{z-index:5;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;display:flex;position:sticky;bottom:0}.admin-verify-bar{background:var(--surface-2);border-radius:var(--radius-sm);flex-wrap:wrap;align-items:center;gap:8px;padding:8px;display:flex}.admin-pdf-pane{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);flex-direction:column;gap:8px;height:100%;min-height:480px;padding:10px;display:flex}.admin-pdf-toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.admin-pdf-chip{color:var(--text-3);font-size:11.5px}.admin-pdf-frame{background:var(--surface-2);border-radius:var(--radius-sm);flex:1;justify-content:center;align-items:center;min-height:380px;display:flex;overflow:hidden}.admin-pdf-frame iframe{border:none;width:100%;height:100%}.admin-pdf-empty{text-align:center}.admin-pdf-stepper{flex-wrap:wrap;align-items:center;gap:6px;display:flex}@media (width>=1400px){.admin-wb-tabs{display:none}.admin-wb-grid{grid-template-columns:minmax(380px,1fr) 1.2fr 1fr}.admin-wb-cell{display:block}}@media (width<=900px){.admin-diff-side,.admin-merge-panes{grid-template-columns:1fr}}.admin-md-tabs{margin:6px 0}.admin-md-preview.exam-md{white-space:normal}.admin-mp-row{grid-template-columns:1fr 64px 1fr auto;align-items:start;gap:6px;margin-bottom:6px;display:grid}.admin-mp-row textarea{min-height:34px}.admin-figure-list{flex-direction:column;gap:8px;display:flex}.admin-figure-item{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);align-items:center;gap:8px;padding:6px;display:flex}.admin-figure-item.active{border-color:var(--accent);box-shadow:var(--shadow-focus)}.admin-figure-thumb{object-fit:contain;border-radius:var(--radius-xs);background:#fff;flex-shrink:0;width:72px;height:48px}.admin-figure-thumb-empty{background:var(--surface-2);border-radius:var(--radius-xs);flex-shrink:0;width:72px;height:48px}.admin-figures-grid{grid-template-columns:minmax(0,1.4fr) minmax(260px,1fr);align-items:start;gap:12px;display:grid}@media (width<=1000px){.admin-figures-grid{grid-template-columns:1fr}}.admin-page-stage{-webkit-user-select:none;user-select:none;touch-action:none;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:crosshair;background:#fff;width:100%;position:relative;overflow:hidden}.admin-page-stage img{pointer-events:none;width:100%;height:auto;display:block}.admin-page-placeholder{min-height:320px;color:var(--text-3);background:var(--surface-2);border-radius:var(--radius-sm);justify-content:center;align-items:center;font-size:13px;display:flex}.admin-bbox{border:2px solid var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent);cursor:move;box-sizing:border-box;position:absolute}.admin-bbox.selected{border-color:var(--warning,var(--accent));background:color-mix(in srgb, var(--warning,var(--accent)) 14%, transparent)}.admin-bbox.draft{cursor:default;border-style:dashed}.admin-bbox-label{background:var(--accent);color:var(--accent-text);white-space:nowrap;text-overflow:ellipsis;border-radius:var(--radius-xs) var(--radius-xs) 0 0;max-width:220px;padding:1px 4px;font-size:10.5px;position:absolute;top:0;left:0;overflow:hidden;transform:translateY(-100%)}.admin-bbox-handle{background:var(--surface);border:2px solid var(--accent);box-sizing:border-box;width:10px;height:10px;position:absolute}.admin-bbox-handle.nw{cursor:nwse-resize;top:-6px;left:-6px}.admin-bbox-handle.ne{cursor:nesw-resize;top:-6px;right:-6px}.admin-bbox-handle.sw{cursor:nesw-resize;bottom:-6px;left:-6px}.admin-bbox-handle.se{cursor:nwse-resize;bottom:-6px;right:-6px}.login-page-split.setup-page{min-height:100vh}.setup-card{max-width:440px}.setup-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.setup-head h2{letter-spacing:-.01em;color:var(--text-1);font-size:22px;font-weight:600}.setup-steps{flex-direction:column;gap:14px;margin:32px 0 0;padding:0;list-style:none;display:flex}.setup-steps li{color:var(--text-3);align-items:center;gap:10px;font-size:15px;display:flex}.setup-steps li.active{color:var(--text-1);font-weight:600}.setup-steps li.done{color:var(--text-2)}.setup-step-dot{border:1px solid var(--border-strong);background:var(--surface);border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.setup-steps li.active .setup-step-dot{border-color:var(--accent);color:var(--accent);box-shadow:var(--shadow-focus)}.setup-steps li.done .setup-step-dot{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.setup-label{color:var(--text-2);flex-direction:column;flex:1;gap:6px;min-width:0;font-size:13px;font-weight:600;display:flex}.setup-label .login-input{width:100%;font-weight:400}.setup-help{color:var(--text-3);font-size:12px;font-weight:400;line-height:1.5}.setup-row{gap:12px;display:flex}.setup-drivers{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.setup-driver{text-align:left;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text-1);cursor:pointer;transition:border-color var(--dur-fast), box-shadow var(--dur-fast);flex-direction:column;align-items:flex-start;gap:4px;padding:10px 12px;font-family:inherit;display:flex}.setup-driver strong{font-size:14px}.setup-driver span{color:var(--text-3);font-size:11.5px;line-height:1.4}.setup-driver:hover{border-color:var(--accent)}.setup-driver.active{border-color:var(--accent);box-shadow:var(--shadow-focus);background:var(--accent-soft)}.setup-actions{justify-content:flex-end;gap:10px;margin-top:4px;display:flex}.setup-note{color:var(--text-2);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;font-size:13px;line-height:1.55}@media (width<=520px){.setup-row{flex-direction:column}.setup-drivers{grid-template-columns:1fr}}.gtoast-stack{z-index:1200;pointer-events:none;flex-direction:column;gap:8px;width:min(380px,100vw - 32px);display:flex;position:fixed;top:16px;right:16px}.gtoast{pointer-events:auto;background:var(--surface);color:var(--text-1);border:1px solid var(--border);border-left:4px solid var(--info);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);animation:gtoast-in var(--dur-base) var(--ease-out);align-items:flex-start;gap:10px;padding:10px 10px 10px 12px;font-size:13.5px;line-height:1.45;display:flex}.gtoast--success{border-left-color:var(--success)}.gtoast--error{border-left-color:var(--danger)}.gtoast-icon{color:var(--info);flex:none;margin-top:1px;display:inline-flex}.gtoast--success .gtoast-icon{color:var(--success)}.gtoast--error .gtoast-icon{color:var(--danger)}.gtoast-msg{overflow-wrap:anywhere;white-space:pre-line;flex:1;min-width:0}.gtoast-close{border-radius:var(--radius-sm);width:24px;height:24px;color:var(--text-3);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;margin:-2px -2px 0 0;display:inline-flex}.gtoast-close:hover{background:var(--surface-2);color:var(--text-1)}.gtoast-close:focus-visible{box-shadow:var(--shadow-focus);outline:none}@keyframes gtoast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}@keyframes gtoast-in-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (width<=640px){.gtoast-stack{inset:auto auto 16px 50%;transform:translate(-50%)}.gtoast{animation-name:gtoast-in-up}}@media (prefers-reduced-motion:reduce){.gtoast{animation:none}}.adm-pill{border-radius:var(--radius-pill);white-space:nowrap;background:var(--surface-3);height:22px;color:var(--text-2);align-items:center;gap:6px;padding:0 9px;font-size:11.5px;font-weight:600;display:inline-flex}.adm-pill-dot{background:currentColor;border-radius:50%;flex:none;width:6px;height:6px}.adm-pill-review{background:var(--warning-soft);color:var(--warning)}.adm-pill-ready{background:var(--info-soft);color:var(--info)}.adm-pill-published{background:var(--success-soft);color:var(--success)}.adm-pill-archived{background:var(--surface-2);color:var(--text-3)}.adm-pill-flag{background:var(--warning);width:14px;height:14px;color:var(--surface);border-radius:50%;justify-content:center;align-items:center;font-size:10px;font-weight:700;display:inline-flex}.adm-pop-anchor{display:inline-flex;position:relative}.adm-pop{z-index:60;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-md);min-width:220px;max-width:min(420px,100vw - 24px);box-shadow:var(--shadow-lg);animation:adm-pop-in var(--dur-fast) var(--ease-out);padding:6px;position:absolute;top:calc(100% + 6px)}.adm-pop-start{left:0}.adm-pop-end{right:0}.adm-pop-title{color:var(--text-2);padding:6px 8px;font-size:12px;font-weight:600}@keyframes adm-pop-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.adm-menu-item{border-radius:var(--radius-sm);width:100%;color:var(--text-1);font:inherit;text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:none;align-items:center;gap:8px;padding:7px 10px;font-size:13px;text-decoration:none;display:flex}.adm-menu-item:hover:not(:disabled){background:var(--surface-2);color:var(--text-1);text-decoration:none}.adm-menu-item svg{color:var(--text-3);flex:none}.adm-menu-item.danger,.adm-menu-item.danger svg{color:var(--danger)}.adm-menu-item:disabled{opacity:.45;cursor:not-allowed}.adm-menu-sep{background:var(--border);height:1px;margin:4px 2px}.rw-btn{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);height:32px;color:var(--text-1);font:inherit;white-space:nowrap;cursor:pointer;transition:background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);justify-content:center;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:500;text-decoration:none;display:inline-flex}.rw-btn:hover:not(:disabled){background:var(--surface-3);color:var(--text-1);text-decoration:none}.rw-btn:disabled{opacity:.45;cursor:not-allowed}.rw-btn.sm{height:28px;padding:0 10px;font-size:12.5px}.rw-btn.primary{background:var(--ink);border-color:var(--ink);color:var(--ink-text)}.rw-btn.primary:hover:not(:disabled){background:var(--ink-hover);color:var(--ink-text)}.rw-btn.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-contrast)}.rw-btn.ghost{color:var(--text-2);background:0 0;border-color:#0000}.rw-btn.danger{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 45%, var(--border-c))}.rw-btn.danger:hover:not(:disabled){background:var(--danger-soft);color:var(--danger)}.rw-icon-btn{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--text-2);cursor:pointer;font:inherit;background:0 0;border:1px solid #0000;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.rw-icon-btn:hover:not(:disabled){background:var(--surface-3);color:var(--text-1)}.rw-icon-btn:disabled{opacity:.35;cursor:not-allowed}.rw-icon-btn.danger:hover:not(:disabled){background:var(--danger-soft);color:var(--danger)}.rw-icon-btn-lg{width:32px;height:32px}.rw-bordered{border-color:var(--border-strong);background:var(--surface)}.rw-spin{border-width:2px;flex:none;width:13px;height:13px}.rw-input{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);width:100%;min-width:0;height:32px;color:var(--text-1);font:inherit;transition:border-color var(--dur-fast), box-shadow var(--dur-fast);padding:0 10px;font-size:13px}.rw-input:hover{border-color:color-mix(in srgb, var(--text-3) 60%, var(--border-strong))}.rw-input:focus{border-color:var(--accent);box-shadow:var(--shadow-focus);outline:none}textarea.rw-input{resize:vertical;height:auto;padding:6px 10px;line-height:1.45}.rw-input[aria-invalid=true]{border-color:var(--warning)}.rw-grow-ta{field-sizing:content;min-height:32px}.rw-seg{background:var(--surface-3);border-radius:8px;flex:none;gap:2px;padding:2px;display:inline-flex}.rw-seg button{height:24px;color:var(--text-2);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;padding:0 10px;font-size:12px;font-weight:500}.rw-seg button:hover:not(:disabled){color:var(--text-1)}.rw-seg button.active{background:var(--surface);color:var(--text-1);box-shadow:var(--shadow-xs)}.rw-seg button:disabled{opacity:.4;cursor:not-allowed}.rw-seg-full{display:flex}.rw-seg-full button{flex:1}.rw-field{flex-direction:column;gap:4px;min-width:0;display:flex}.rw-field>span{color:var(--text-2);align-items:center;gap:6px;font-size:12px;font-weight:500;display:inline-flex}.rw-field>em{font-size:11.5px;font-style:normal}.rw-field-error{color:var(--danger);margin:0;padding:0 12px 10px;font-size:12px}.rw-field-warn{color:var(--warning);margin:0;padding:0 12px 10px;font-size:12px}.rw-muted{color:var(--text-3);font-size:12px}.rw-bad{color:var(--danger)}.rw-pad{padding:10px 12px}.rw-ai-chip{background:var(--info-soft);height:17px;color:var(--info);letter-spacing:.05em;cursor:help;border-radius:4px;align-items:center;padding:0 5px;font-size:10px;font-weight:700;display:inline-flex}.rw-link{border-radius:var(--radius-xs);color:var(--accent-contrast);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:2px 4px;font-size:12px}.rw-link:hover{text-decoration:underline}.rw-chip{border:1px solid var(--border-strong);border-radius:var(--radius-pill);background:var(--surface);height:24px;color:var(--text-2);font:inherit;cursor:pointer;align-items:center;padding:0 9px;font-size:12px;display:inline-flex}.rw-chip:hover{color:var(--text-1)}.rw-chip.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-contrast);font-weight:600}.rw-chip.static{background:var(--surface-3);cursor:default;border:none;height:20px;padding:0 7px;font-size:11px}.rw-dot{background:var(--text-3);border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.rw-dot-review{background:var(--warning)}.rw-dot-ready{background:var(--info)}.rw-dot-published{background:var(--success)}.rw-dot-archived{background:var(--border-strong)}.rw-shell kbd,.adm-pop kbd{border:1px solid var(--border-strong);background:var(--surface);min-width:18px;font-family:var(--font-mono);text-align:center;color:var(--text-2);border-bottom-width:2px;border-radius:4px;padding:0 5px;font-size:11px;line-height:16px;display:inline-block}.rw-skel{border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--surface-2) 25%, var(--surface-3) 50%, var(--surface-2) 75%);background-size:200% 100%;height:14px;animation:1.3s linear infinite rw-shimmer;display:block}.rw-skel-card{border-radius:var(--radius-md);height:140px}.rw-skel-page{aspect-ratio:1/1.414;width:100%;max-width:640px;margin:12px auto}.rw-skel-stack{flex-direction:column;gap:10px;padding:16px;display:flex}.rw-skel-stack.wide{width:100%;max-width:980px;margin:0 auto}@keyframes rw-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.rw-skel,.adm-pop{animation:none}}.rw-shell{background:var(--bg);min-width:0;height:100%;min-height:0;color:var(--text-1);flex-direction:column;font-size:13px;display:flex;overflow:hidden}.rw-top{z-index:30;background:var(--surface);border-bottom:1px solid var(--border);flex:none;align-items:center;gap:8px;min-width:0;min-height:48px;padding:0 12px;display:flex;position:relative}.rw-back{border-radius:var(--radius-sm);height:30px;color:var(--text-2);white-space:nowrap;align-items:center;gap:4px;padding:0 8px;font-size:12.5px;font-weight:500;display:inline-flex}.rw-back:hover{background:var(--surface-3);color:var(--text-1);text-decoration:none}.rw-crumb{align-items:center;gap:6px;min-width:0;display:flex}.rw-crumb-paper{color:var(--text-2);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;overflow:hidden}.rw-crumb-paper:hover{color:var(--text-1)}.rw-crumb-sep{color:var(--text-3);flex:none}.rw-crumb-q{white-space:nowrap;flex:none;font-size:15px;font-weight:600}.rw-crumb-select{width:auto;height:30px;font-weight:600}.rw-check-btn{border-radius:var(--radius-pill);height:28px;font:inherit;cursor:pointer;white-space:nowrap;border:1px solid #0000;align-items:center;gap:6px;padding:0 10px;font-size:12.5px;display:inline-flex}.rw-check-btn.ok{background:var(--success-soft);color:var(--success)}.rw-check-btn.warn{background:var(--warning-soft);color:var(--warning)}.rw-check-btn:hover{border-color:currentColor}.rw-check-dot{background:currentColor;border-radius:50%;width:7px;height:7px}.rw-checklist{width:320px}.rw-checklist ul{margin:0;padding:0 2px 2px;list-style:none}.rw-checklist li{border-radius:var(--radius-sm);align-items:center;gap:8px;padding:7px 8px;font-size:13px;display:flex}.rw-checklist li.good{color:var(--text-2)}.rw-checklist li.bad{background:color-mix(in srgb, var(--warning-soft) 55%, transparent)}.rw-check-icon{border-radius:50%;flex:none;justify-content:center;align-items:center;width:18px;height:18px;display:inline-flex}.good .rw-check-icon{background:var(--success-soft);color:var(--success)}.bad .rw-check-icon{background:var(--danger-soft);color:var(--danger)}.rw-save-state{color:var(--text-3);white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:inline-flex}.rw-save-state.dirty{color:var(--warning);font-weight:500}.rw-split{gap:0}.rw-split .rw-split-main{border-top-right-radius:0;border-bottom-right-radius:0}.rw-split .rw-split-caret{border-left:1px solid color-mix(in srgb, var(--ink-text) 25%, transparent);border-top-left-radius:0;border-bottom-left-radius:0;width:28px;padding:0}.rw-kbd-btn{border:1px solid var(--border-strong);font-size:13px;font-weight:700}.rw-keys{width:280px}.rw-keys dl{grid-template-columns:auto 1fr;align-items:center;gap:8px 12px;margin:0;padding:4px 8px 8px;font-size:12.5px;display:grid}.rw-keys dt{white-space:nowrap}.rw-keys dd{color:var(--text-2);margin:0}.rw-jobrow{background:var(--surface);border-bottom:1px solid var(--border);flex:none;padding:6px 12px}.rw-jobrow .admin-job-strip{margin:0}.rw-body{flex:1;min-height:0;display:flex;position:relative}.rw-list{width:var(--rw-list-w,232px);background:var(--surface);flex-direction:column;flex:none;min-height:0;display:flex}.rw-pane-head{border-bottom:1px solid var(--border);flex:none;align-items:center;gap:6px;height:40px;padding:0 6px 0 14px;display:flex}.rw-pane-title{letter-spacing:.05em;text-transform:uppercase;color:var(--text-3);font-size:11.5px;font-weight:700}.rw-list-filter{flex:none;padding:8px 10px 4px}.rw-list-scroll{flex:1;min-height:0;padding:0 6px 8px;overflow-y:auto}.rw-list-root{letter-spacing:.04em;color:var(--text-3);padding:10px 8px 3px;font-size:11px;font-weight:700}.rw-list-item{border-radius:var(--radius-sm);width:100%;height:32px;color:var(--text-1);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:0 8px;font-size:13px;display:flex}.rw-list-item:hover{background:var(--surface-2)}.rw-list-item.active{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.rw-list-num{font-family:var(--font-mono);min-width:26px;font-size:12.5px;font-weight:600}.rw-list-title{min-width:0;color:var(--text-2);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:12px;overflow:hidden}.rw-list-foot{border-top:1px solid var(--border);color:var(--text-3);flex:none;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;font-size:12px;display:flex}.rw-kbd-hint{align-items:center;gap:3px;display:inline-flex}.rw-resizer{z-index:5;background:var(--border-c);cursor:col-resize;touch-action:none;flex:0 0 1px;position:relative}.rw-resizer:before{content:"";position:absolute;inset:0 -4px}.rw-resizer:hover,.rw-resizer:focus-visible,body.rw-resizing .rw-resizer{background:var(--accent);box-shadow:0 0 0 1px var(--accent);border-radius:0}body.rw-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.rw-edge{background:var(--surface);width:30px;color:var(--text-2);cursor:pointer;border:none;flex:none;justify-content:center;padding-top:12px;display:flex}.rw-edge:hover{background:var(--surface-3);color:var(--text-1)}.rw-edge-left{border-right:1px solid var(--border)}.rw-edge-right{border-left:1px solid var(--border)}.rw-main{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.rw-tabs{background:var(--surface);border-bottom:1px solid var(--border);scrollbar-width:none;flex:none;align-items:flex-end;gap:2px;height:42px;padding:0 16px;display:flex;overflow-x:auto}.rw-tab{height:42px;color:var(--text-2);font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;align-items:center;gap:6px;margin-bottom:-1px;padding:0 12px;font-size:13px;font-weight:500;display:inline-flex;position:relative}.rw-tab:hover{color:var(--text-1)}.rw-tab.active{color:var(--text-1);border-bottom-color:var(--accent);font-weight:600}.rw-tab-dot{background:var(--warning);border-radius:50%;width:6px;height:6px}.rw-tab-count{border-radius:var(--radius-pill);background:var(--surface-3);min-width:18px;color:var(--text-2);text-align:center;padding:0 5px;font-size:11px;line-height:16px}.rw-main-scroll{flex:1;min-height:0;overflow-y:auto;container-type:inline-size}.rw-tab-body{flex-direction:column;gap:12px;max-width:1000px;margin:0 auto;padding:16px 16px 48px;display:flex}.rw-card,.rw-md{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);overflow:hidden}.rw-card-head,.rw-md-head{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;min-height:42px;padding:6px 8px 6px 14px;display:flex}.rw-card-title,.rw-md-label{font-family:var(--font-sans);letter-spacing:0;color:var(--text-1);align-items:center;gap:6px;margin:0;font-size:13px;font-weight:600;display:inline-flex}.rw-card-foot{border-top:1px solid var(--border);padding:8px 12px}.rw-md-note{border-bottom:1px solid var(--border);background:var(--surface-2);color:var(--text-2);padding:7px 14px;font-size:12px}.rw-md-body{grid-template-columns:minmax(0,1fr);display:grid}.rw-md-split{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.rw-md-input{field-sizing:content;background:var(--code-bg);width:100%;min-height:120px;color:var(--code-text);font-family:var(--font-mono);resize:vertical;tab-size:4;border:none;padding:12px 14px;font-size:12.5px;line-height:1.65;display:block}.rw-md-input:focus{box-shadow:inset 0 0 0 2px var(--ring);outline:none}.rw-md-preview{min-width:0;padding:12px 16px;overflow-x:auto}.rw-md-split .rw-md-preview{border-left:1px solid var(--border)}.rw-md-preview .exam-md{font-size:14px}.rw-md-preview .exam-md table{font-size:12.5px}.rw-md-count{border-top:1px solid var(--border);text-align:right;color:var(--text-3);padding:4px 12px;font-size:11px}.rw-md-count.over{color:var(--danger);font-weight:600}.rw-context{border-color:color-mix(in srgb, var(--accent) 35%, var(--border-c))}.rw-context .rw-md-head{background:color-mix(in srgb, var(--accent-soft) 60%, var(--surface))}.rw-flash{animation:rw-flash 1.8s var(--ease-out)}@keyframes rw-flash{0%,40%{box-shadow:0 0 0 4px var(--ring)}to{box-shadow:var(--shadow-xs)}}.rw-add-context{border:1px dashed var(--border-strong);border-radius:var(--radius-md);width:100%;color:var(--text-2);font:inherit;cursor:pointer;background:0 0;align-items:center;gap:6px;padding:10px 14px;font-size:13px;display:flex}.rw-add-context:hover{border-color:var(--accent);color:var(--text-1)}.rw-dirty-note{color:var(--warning);align-items:center;gap:6px;font-size:12px;display:inline-flex}.rw-scroll-anchor{scroll-margin-top:12px}.rw-meta{grid-template-columns:110px 90px minmax(130px,1fr) minmax(120px,1fr);gap:12px 14px;padding:14px;display:grid}.rw-f-wide{grid-column:1/-1}.rw-tags{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);flex-wrap:wrap;align-items:center;gap:6px;min-height:32px;padding:3px 6px;display:flex}.rw-tags:focus-within{border-color:var(--accent);box-shadow:var(--shadow-focus)}.rw-tag{border-radius:var(--radius-pill);background:var(--accent-soft);height:22px;color:var(--accent-contrast);align-items:center;gap:2px;padding:0 3px 0 9px;font-size:12px;display:inline-flex}.rw-tag button{color:inherit;opacity:.65;cursor:pointer;background:0 0;border:none;border-radius:50%;padding:2px;display:inline-flex}.rw-tag button:hover{opacity:1;background:color-mix(in srgb, var(--accent) 20%, transparent)}.rw-tag-input{min-width:120px;height:24px;color:var(--text-1);font:inherit;background:0 0;border:none;outline:none;flex:1;font-size:13px}.rw-tag-input:focus-visible{box-shadow:none}.rw-mp{padding:2px 8px 4px}.rw-mp-row{border-bottom:1px solid var(--border);grid-template-columns:22px minmax(0,2fr) 64px minmax(0,1.3fr) auto;align-items:start;gap:8px;padding:6px 4px;display:grid}.rw-mp-row:last-child{border-bottom:none}.rw-mp-headrow{color:var(--text-3);align-items:end;padding-top:10px;font-size:11.5px;font-weight:600}.rw-mp-idx{font-family:var(--font-mono);color:var(--text-3);text-align:right;padding-top:7px;font-size:12px}.rw-mp-actions{gap:0;padding-top:2px;display:inline-flex}.rw-mp-marks{text-align:center;padding:0 4px}.rw-total{border-radius:var(--radius-pill);background:var(--surface-3);height:22px;color:var(--text-2);align-items:center;padding:0 9px;font-size:12px;font-weight:600;display:inline-flex}.rw-total.warn{background:var(--warning-soft);color:var(--warning)}.rw-editor{height:240px;min-height:0;overflow:hidden}.rw-editor-tall{height:340px}.rw-editor>*{height:100%}.rw-io{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;padding:12px 14px;display:grid}.rw-code-ta{field-sizing:content;min-height:112px;font-family:var(--font-mono);white-space:pre;background:var(--code-bg);color:var(--code-text);font-size:12.5px;line-height:1.5;overflow-x:auto}.rw-run-body{flex-direction:column;align-items:flex-start;gap:8px;padding:12px 14px;display:flex}.rw-run-body.stale .rw-run-status,.rw-run-body.stale .rw-io{opacity:.55}.rw-run-body .rw-io{width:100%;padding:0}.rw-gen{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 30%, var(--border))}.rw-gen-body{flex-wrap:wrap;align-items:center;gap:16px;padding:14px;display:flex}.rw-gen-text{flex-direction:column;flex:320px;gap:4px;min-width:0;display:flex}.rw-gen-text .rw-muted{margin:0;line-height:1.5}.rw-gen-src{align-items:center;gap:5px;display:inline-flex}.rw-gen .rw-btn.primary{flex:none;padding:8px 16px;font-size:13.5px}.rw-step{background:var(--accent);width:18px;height:18px;color:var(--surface);font-size:11px;font-weight:600;font-family:var(--font-sans);border-radius:50%;place-items:center;display:inline-grid}.rw-card-hint{border-bottom:1px solid var(--border);margin:0;padding:8px 14px;line-height:1.5}.rw-files{border-top:1px solid var(--border);flex-direction:column;gap:8px;display:flex}.rw-lock-mode{color:var(--text-2);border-top:1px solid var(--border);align-items:flex-start;gap:6px;margin:0;padding:8px 14px;font-size:12.5px;display:flex}.rw-lock-mode svg{flex:none;margin-top:2px}.rw-lock-mode.free{color:var(--warning);background:var(--warning-soft)}.rw-field-error svg{vertical-align:-2px}.rw-cases,.rw-hints{border-top:1px solid var(--border);flex-direction:column;align-items:flex-start;gap:8px;display:flex}.rw-cases>em{font-size:12px}.rw-case{border:1px solid var(--border);border-radius:var(--radius-sm);align-self:stretch}.rw-case-head{align-items:center;gap:8px;padding:8px 14px 0;display:flex}.rw-case-head strong{white-space:nowrap;font-size:12.5px}.rw-case-head .rw-input{flex:1;min-width:0}.rw-hint-row{align-self:stretch;align-items:flex-start;gap:8px;display:flex}.rw-hint-row textarea{flex:1;min-width:0}.rw-case-run{border-top:1px dashed var(--border);margin-top:10px;padding-top:8px}.rw-field-label{color:var(--text-2);align-items:center;gap:6px;font-size:12px;font-weight:500;display:inline-flex}.rw-run-body .rw-field-error{padding:0}.rw-run-status{align-items:center;gap:6px;margin:0;font-size:13px;font-weight:600;display:inline-flex}.rw-run-status.ok{color:var(--success)}.rw-run-status.warn{color:var(--warning)}.rw-run-status.bad{color:var(--danger)}.rw-run.match{border-color:color-mix(in srgb, var(--success) 45%, var(--border-c))}.rw-run.differ{border-color:color-mix(in srgb, var(--warning) 45%, var(--border-c))}.rw-run.error{border-color:color-mix(in srgb, var(--danger) 45%, var(--border-c))}.rw-out{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--code-bg);max-height:260px;color:var(--code-text);font-family:var(--font-mono);white-space:pre;margin:0;padding:8px 10px;font-size:12px;line-height:1.5;overflow:auto}.rw-verify-chip{border-radius:var(--radius-pill);white-space:nowrap;align-items:center;gap:5px;height:22px;padding:0 9px;font-size:11.5px;font-weight:600;display:inline-flex}.rw-verify-chip.ok{background:var(--success-soft);color:var(--success)}.rw-verify-chip.no{background:var(--warning-soft);color:var(--warning)}.rw-figs{margin:0;padding:0;list-style:none}.rw-fig{border-bottom:1px solid var(--border);grid-template-columns:104px minmax(0,1fr) auto;align-items:center;gap:14px;padding:10px 14px;display:grid}.rw-fig-thumb{border:1px solid var(--border);border-radius:var(--radius-sm);width:104px;height:68px;color:var(--text-3);background:#fff;justify-content:center;align-items:center;display:flex;overflow:hidden}.rw-fig-thumb img{object-fit:contain;max-width:100%;max-height:100%}.rw-fig-thumb .rw-skel{border-radius:0;width:100%;height:100%}.rw-fig.missing .rw-fig-thumb{background:var(--danger-soft);color:var(--danger)}.rw-fig-meta{flex-direction:column;gap:3px;min-width:0;display:flex}.rw-fig-meta strong{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.rw-fig-where{flex-wrap:wrap;gap:4px;margin-top:2px;display:flex}.rw-fig-actions{align-items:center;gap:4px;display:inline-flex}.rw-fig-foot{margin:0}@container (width<=520px){.rw-src-bar .rw-hide-src{display:none}.rw-zoom-val{min-width:38px}}@container (width<=440px){.rw-zoom-val{display:none}}.rw-src-pane{width:var(--rw-src-w,36%);background:var(--surface-2);flex-direction:column;flex:none;min-width:0;min-height:0;display:flex;container-type:inline-size}.rw-src{flex-direction:column;height:100%;min-height:0;display:flex}.rw-src-bar{background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:nowrap;flex:none;align-items:center;gap:4px;min-height:42px;padding:5px 8px;display:flex;overflow:hidden}.rw-src-nav,.rw-src-zoom{align-items:center;gap:2px;display:inline-flex}.rw-page-select{width:auto;height:28px;font-family:var(--font-mono);padding:0 4px 0 8px;font-size:12px}.rw-zoom-val{border-radius:var(--radius-sm);min-width:44px;height:28px;color:var(--text-2);font-family:var(--font-mono);cursor:pointer;background:0 0;border:none;font-size:12px}.rw-zoom-val:hover{background:var(--surface-3)}.rw-src-range{background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:nowrap;flex:none;align-items:center;gap:6px;padding:6px 10px;font-size:12px;display:flex}.rw-src-range-label{flex:none}.rw-src-chips{scrollbar-width:none;flex:1;gap:4px;min-width:0;display:flex;overflow-x:auto}.rw-src-chips .rw-chip{flex:none}.rw-src-scroll{flex:1;min-height:0;padding:14px;overflow:auto}.rw-src-stage{box-shadow:var(--shadow-md);-webkit-user-select:none;user-select:none;touch-action:none;background:#fff;border-radius:2px;margin:0 auto;position:relative}.rw-src-stage img{pointer-events:none;width:100%;height:auto;display:block}.rw-src-stage.drawing{cursor:crosshair}.rw-src-stage.drawing .rw-src-box:not(.draft){pointer-events:none;opacity:.6}.rw-src-box{border:2px solid color-mix(in srgb, var(--info) 75%, transparent);background:color-mix(in srgb, var(--info) 8%, transparent);cursor:pointer;border-radius:2px;padding:0;position:absolute}.rw-src-box:hover{background:color-mix(in srgb, var(--info) 16%, transparent)}.rw-src-box.selected{border-color:var(--warning);background:color-mix(in srgb, var(--warning) 16%, transparent);box-shadow:0 0 0 3px color-mix(in srgb, var(--warning) 30%, transparent)}.rw-src-box.draft{border-style:dashed;border-color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, transparent);pointer-events:none}.rw-src-box-label{background:var(--info);max-width:220px;color:var(--surface);white-space:nowrap;text-overflow:ellipsis;opacity:0;transition:opacity var(--dur-fast);border-radius:3px 3px 0 0;padding:1px 6px;font-size:10.5px;position:absolute;top:0;left:-2px;overflow:hidden;transform:translateY(-100%)}.rw-src-box.selected .rw-src-box-label{background:var(--warning)}.rw-src-box:hover .rw-src-box-label,.rw-src-box.selected .rw-src-box-label{opacity:1}.rw-src-box-del{z-index:2;border:1px solid color-mix(in srgb, var(--danger) 40%, transparent);border-radius:var(--radius-sm);background:var(--surface);height:22px;color:var(--danger);white-space:nowrap;cursor:pointer;pointer-events:auto;box-shadow:var(--shadow-xs);align-items:center;gap:4px;padding:0 8px;font-size:11.5px;font-weight:600;display:inline-flex;position:absolute;transform:translate(-100%,calc(-100% - 2px))}.rw-src-box-del:hover{background:var(--danger-soft)}.rw-src-empty{min-height:320px;color:var(--text-3);justify-content:center;align-items:center;font-size:13px;display:flex}.rw-src-empty .rw-skel-page{max-width:none;margin:0}.rw-src-hint{background:var(--info-soft);color:var(--info);flex:none;align-items:center;gap:6px;padding:8px 12px;font-size:12px;display:flex}.rw-src-draft{background:var(--surface);border-top:1px solid var(--border);flex-direction:column;flex:none;gap:8px;padding:10px 12px;display:flex;box-shadow:0 -6px 16px #0000000f}.rw-src-draft-actions{flex-wrap:wrap;gap:6px;display:flex}.rw-src-overlay{z-index:40;border-left:1px solid var(--border);box-shadow:var(--shadow-lg);position:absolute;top:0;bottom:0;right:0;width:min(560px,94vw)!important}.rw-src-backdrop{z-index:39;background:var(--overlay);position:absolute;inset:0}.rw-empty-card{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;align-items:center;gap:12px;max-width:420px;margin:64px auto;padding:28px;display:flex}.rw-empty-card h2{font-size:18px}@container (width<=640px){.rw-meta{grid-template-columns:1fr 1fr}.rw-md-split{grid-template-columns:minmax(0,1fr)}.rw-md-split .rw-md-preview{border-left:none;border-top:1px solid var(--border)}.rw-io{grid-template-columns:minmax(0,1fr)}.rw-mp-row{grid-template-columns:22px minmax(0,1fr) 60px auto}.rw-mp-row>:nth-child(4){grid-area:2/2/auto/4}.rw-mp-headrow>:nth-child(4){display:none}.rw-fig{grid-template-columns:80px minmax(0,1fr)}.rw-fig-thumb{width:80px;height:56px}.rw-fig-actions{grid-column:1/-1;justify-content:flex-end}}@media (width<=1279px){.rw-hide-md{display:none}}@media (width<=1099px){.rw-hide-narrow{display:none}}@media (width<=759px){.rw-hide-sm,.rw-hide-phone{display:none}.rw-top{flex-wrap:wrap;gap:6px;padding:6px 8px}.rw-top .rw-btn{padding:0 9px}.rw-tabs{padding:0 8px}.rw-tab{padding:0 10px}.rw-tab-body{padding:12px 10px 40px}}.dash-page.admin-page-wide{max-width:1240px}.pw{flex-direction:column;gap:16px;font-size:13px;display:flex;container-type:inline-size}.pw-head{flex-direction:column;gap:6px;display:flex}.pw-back{width:fit-content;color:var(--text-2);align-items:center;gap:4px;font-size:12.5px;display:inline-flex}.pw-back:hover{color:var(--text-1);text-decoration:none}.pw-title-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.pw-title-block{min-width:0}.pw-title{margin:0;font-size:22px;line-height:1.25}.pw-title-sep{color:var(--text-3);margin:0 6px;font-weight:400}.pw-sub{color:var(--text-3);align-items:center;gap:6px;margin-top:2px;font-size:12px;display:flex}.pw-steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.pw-step{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);min-width:0;min-height:138px;box-shadow:var(--shadow-xs);flex-direction:column;gap:8px;padding:12px 14px;display:flex}.pw-step.current{border-color:color-mix(in srgb, var(--accent) 60%, var(--border-c));box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 14%, transparent)}.pw-step.blocked{background:color-mix(in srgb, var(--surface-2) 50%, var(--surface))}.pw-step-head{align-items:center;gap:8px;display:flex}.pw-step-badge{border:1px solid var(--border-strong);background:var(--surface-2);width:22px;height:22px;color:var(--text-2);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:12px;font-weight:600;display:inline-flex}.pw-step.done .pw-step-badge{background:var(--success);border-color:var(--success);color:var(--surface)}.pw-step.current .pw-step-badge{background:var(--ink);border-color:var(--ink);color:var(--ink-text)}.pw-step.blocked .pw-step-badge{color:var(--text-3);border-style:dashed}.pw-step-title{font-size:13.5px;font-weight:600}.pw-step.blocked .pw-step-title{color:var(--text-2)}.pw-step-facts{color:var(--text-2);flex-direction:column;gap:3px;font-size:12.5px;display:flex}.pw-step-facts span{align-items:center;gap:5px;display:inline-flex}.pw-step-facts .ok{color:var(--text-1)}.pw-step-facts .ok svg{color:var(--success)}.pw-step-facts .miss{color:var(--text-3)}.pw-step-actions{flex-wrap:wrap;gap:6px;margin-top:auto;display:flex}.pw-step-why{color:var(--text-3);margin:0;font-size:11.5px;line-height:1.4}.pw-step-job{flex-direction:column;gap:4px;display:flex}.pw-step-job .admin-job-strip{margin:0}.pw-step-link{font-size:12px}.pw-start-error{padding:8px 0 0}.pw-steps-skel .rw-skel-card{height:138px}.pw-pop{width:380px;padding:8px}.pw-pop-note{color:var(--text-2);margin:0 8px 8px;font-size:12px}.pw-radios{flex-direction:column;gap:2px;margin-bottom:6px;display:flex}.pw-radio{border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;align-items:flex-start;gap:8px;padding:8px;display:flex}.pw-radio:hover{background:var(--surface-2)}.pw-radio.selected{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 40%, transparent)}.pw-radio input{accent-color:var(--accent);margin-top:3px}.pw-radio span{flex-direction:column;gap:2px;display:flex}.pw-radio strong{font-size:13px;font-weight:600}.pw-radio em{color:var(--text-2);font-size:12px;font-style:normal;line-height:1.45}.pw-pop-row{flex-wrap:wrap;align-items:center;gap:8px;padding:6px 8px;display:flex}.pw-pop-label{min-width:72px;color:var(--text-2);font-size:12px}.pw-num{width:72px}.pw-pop-actions{border-top:1px solid var(--border);justify-content:flex-end;margin-top:6px;padding:8px 4px 2px;display:flex}.pw-pop .rw-field-error{padding:0 8px 4px}.pw-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs)}.pw-card-head{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;display:flex}.pw-card-title{font-family:var(--font-sans);letter-spacing:0;margin:0;font-size:14px;font-weight:600}.pw-filters{flex-wrap:wrap;gap:4px;display:inline-flex}.pw-filter{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface);height:28px;color:var(--text-2);font:inherit;cursor:pointer;align-items:center;gap:6px;padding:0 6px 0 10px;font-size:12.5px;display:inline-flex}.pw-filter:hover{color:var(--text-1);border-color:var(--border-strong)}.pw-filter.active{background:var(--ink);border-color:var(--ink);color:var(--ink-text)}.pw-filter-n{border-radius:var(--radius-pill);background:var(--surface-3);min-width:18px;color:var(--text-2);text-align:center;padding:0 5px;font-size:11px;line-height:17px}.pw-filter.active .pw-filter-n{background:color-mix(in srgb, var(--ink-text) 22%, transparent);color:inherit}.pw-table-wrap{overflow-x:auto}.pw-table{border-collapse:collapse;width:100%;font-size:13px}.pw-table th{border-bottom:1px solid var(--border);background:var(--surface-2);color:var(--text-3);text-align:left;white-space:nowrap;padding:8px 10px;font-size:11.5px;font-weight:600}.pw-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:8px 10px}.pw-table tbody:last-of-type tr:last-child td{border-bottom:none}.pw-group-row td{background:color-mix(in srgb, var(--surface-2) 70%, var(--surface));cursor:pointer;padding:7px 10px;font-size:12.5px}.pw-group-row:hover td{background:var(--surface-2)}.pw-ctx-cell{max-width:0}.pw-ctx{align-items:center;gap:8px;min-width:0;display:flex}.pw-ctx-tag{background:var(--accent-soft);color:var(--accent-contrast);border-radius:4px;flex:none;padding:1px 7px;font-size:11px;font-weight:600}.pw-ctx-text{min-width:0;color:var(--text-2);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.pw-row{cursor:pointer}.pw-row:hover td{background:color-mix(in srgb, var(--surface-2) 55%, var(--surface))}.pw-row.selected td{background:var(--accent-soft)}.pw-col-check{width:36px}.pw-col-check input{accent-color:var(--accent)}.pw-col-num{white-space:nowrap;width:58px}.pw-col-title{width:42%;max-width:0}.pw-qtitle{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.pw-col-marks{text-align:center;width:56px}.pw-table th.pw-col-marks{text-align:center}.pw-marks{border-radius:var(--radius-sm);background:var(--surface-3);justify-content:center;align-items:center;min-width:24px;height:22px;padding:0 6px;font-size:12px;font-weight:600;display:inline-flex}.pw-col-status{width:104px}.pw-col-move{width:68px}.pw-chips{gap:4px;display:inline-flex}.pw-chip{border-radius:var(--radius-sm);white-space:nowrap;border:1px solid #0000;align-items:center;gap:3px;height:22px;padding:0 7px;font-size:11.5px;display:inline-flex}.pw-chip.ok{background:var(--success-soft);color:var(--success)}.pw-chip.warn{background:var(--warning-soft);color:var(--warning)}.pw-chip.missing{border:1px dashed var(--border-strong);color:var(--text-3)}.pw-chip.na{background:var(--surface-2);color:var(--text-3)}.pw-move{opacity:0;transition:opacity var(--dur-fast);gap:2px;display:inline-flex}.pw-row:hover .pw-move,.pw-move:focus-within{opacity:1}@media (hover:none){.pw-move{opacity:1}}.pw-empty{text-align:center;color:var(--text-3);margin:0;padding:32px 16px}.pw-skipped{border-top:1px solid var(--border);padding:10px 14px}.pw-skipped summary{cursor:pointer;color:var(--text-2);align-items:center;gap:6px;font-size:12.5px;list-style:none;display:flex}.pw-skipped summary::-webkit-details-marker{display:none}.pw-figures>summary::-webkit-details-marker{display:none}.pw-caret{transition:transform var(--dur-fast);flex:none}details[open]>summary .pw-caret{transform:rotate(90deg)}.pw-skipped ul{margin:8px 0 0 20px;padding:0;list-style:none}.pw-skipped li{border-bottom:1px dashed var(--border);color:var(--text-2);grid-template-columns:64px minmax(0,1fr);gap:8px;padding:5px 0;font-size:12.5px;display:grid}.pw-skipped li:last-child{border-bottom:none}.pw-figures>summary{cursor:pointer;border-bottom:none;list-style:none}.pw-figures[open]>summary{border-bottom:1px solid var(--border)}.pw-figures-hint{margin-left:2px}.pw-figures-body{padding:4px 14px 14px}.pw-drawer-backdrop{z-index:70;background:var(--overlay);justify-content:flex-end;display:flex;position:fixed;inset:0}.pw-drawer{background:var(--surface);border-left:1px solid var(--border);width:min(460px,100vw);height:100%;box-shadow:var(--shadow-lg);animation:pw-slide var(--dur-base) var(--ease-out);outline:none;flex-direction:column;display:flex}@keyframes pw-slide{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.pw-drawer{animation:none}}.pw-drawer-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 12px 12px 18px;display:flex}.pw-drawer-head h3{font-family:var(--font-sans);letter-spacing:0;margin:0;font-size:15px}.pw-drawer-body{flex:1;padding:0 18px 24px;overflow-y:auto}.pw-drawer-section{border-bottom:1px solid var(--border);flex-direction:column;gap:10px;padding:16px 0;scroll-margin-top:8px;display:flex}.pw-drawer-section:last-child{border-bottom:none}.pw-drawer-h{font-family:var(--font-sans);letter-spacing:0;margin:0;font-size:13px;font-weight:600}.pw-form{grid-template-columns:1fr 1fr;gap:12px;display:grid}.pw-form-wide{grid-column:1/-1}.pw-files{flex-direction:column;gap:10px;display:flex}.pw-danger .pw-drawer-h{color:var(--danger)}.pw-danger-row{gap:8px;display:flex}@container (width<=1000px){.pw-chip-label{display:none}.pw-chip{padding:0 6px}}@container (width<=760px){.pw-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.pw-col-marks{display:none}}@container (width<=560px){.pw-title-block{flex:100%}.pw-steps{grid-template-columns:minmax(0,1fr)}.pw-step{min-height:0}.pw-col-ready,.pw-col-marks,.pw-col-move{display:none}.pw-title{font-size:19px}.pw-pop{width:min(340px,100vw - 32px)}}.dash-page.adm-page{max-width:none;margin:0;padding:24px 24px 56px;font-size:13px}.adm-view{flex-direction:column;gap:16px;min-width:0;max-width:1320px;margin:0 auto;display:flex}.adm-view.narrow{max-width:880px}.adm-page .pw{max-width:1320px;margin:0 auto}@media (width<=640px){.dash-page.adm-page{padding:16px 16px 48px}}.sidebar-count{border-radius:var(--radius-pill);background:var(--surface-3);min-width:18px;height:18px;color:var(--text-2);font-variant-numeric:tabular-nums;flex:none;justify-content:center;align-items:center;margin-left:auto;padding:0 6px;font-size:10.5px;font-weight:700;display:inline-flex}.sidebar-count.warn{background:var(--warning-soft);color:var(--warning)}.sidebar-count.info{background:var(--info-soft);color:var(--info)}.sidebar-count.danger{background:var(--danger);color:var(--surface)}.adm-head{flex-direction:column;gap:4px;display:flex}.adm-crumbs{color:var(--text-3);flex-wrap:wrap;align-items:center;gap:4px;font-size:12px;display:flex}.adm-crumb{color:var(--text-2)}.adm-crumb:hover{color:var(--text-1);text-decoration:none}.adm-crumb.current,.adm-crumb-sep{color:var(--text-3)}.adm-head-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px 16px;display:flex}.adm-head-main{flex:320px;min-width:0}.adm-head-title-row{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;display:flex}.adm-head-title{font-family:var(--font-serif);color:var(--text-1);overflow-wrap:anywhere;margin:0;font-size:22px;font-weight:600;line-height:1.25}.adm-head-desc{color:var(--text-2);margin:3px 0 0;font-size:13px;line-height:1.5}.adm-head-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}@media (width<=640px){.adm-head-title{font-size:20px}.adm-head-actions{width:100%}}.rw-btn.danger-solid{background:var(--danger);border-color:var(--danger);color:var(--surface)}.rw-btn.danger-solid:hover:not(:disabled){background:color-mix(in srgb, var(--danger) 88%, var(--text-1));color:var(--surface)}.rw-btn.accent-ghost{border-color:color-mix(in srgb, var(--accent) 45%, var(--border-c));color:var(--accent-contrast);background:var(--surface)}.rw-btn.accent-ghost:hover:not(:disabled){background:var(--accent-soft);color:var(--accent-contrast)}.rw-btn:focus-visible,.rw-icon-btn:focus-visible{box-shadow:var(--shadow-focus)}.adm-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);min-width:0;box-shadow:var(--shadow-xs)}.adm-section-head{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;padding:12px 16px;display:flex}.adm-section-titles{flex:200px;min-width:0}.adm-section-title{font-family:var(--font-sans);letter-spacing:0;color:var(--text-1);align-items:center;gap:8px;margin:0;font-size:14px;font-weight:600;display:flex}.adm-section-title svg{color:var(--text-3);flex:none}.adm-section-desc{color:var(--text-2);margin:2px 0 0;font-size:12.5px;line-height:1.45}.adm-section-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.adm-section-body{padding:16px}.adm-section-flush{min-width:0}.adm-stats{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.adm-stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);min-width:0;box-shadow:var(--shadow-xs);color:var(--text-1);transition:border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);flex-direction:column;gap:4px;padding:14px 16px;display:flex;position:relative}.adm-stat.link:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm);color:var(--text-1);text-decoration:none}.adm-stat.link:active{transform:translateY(1px)}.adm-stat-top{align-items:center;gap:8px;min-width:0;display:flex}.adm-stat-icon{background:var(--surface-2);width:26px;height:26px;color:var(--text-2);border-radius:8px;flex:none;justify-content:center;align-items:center;display:inline-flex}.adm-stat-label{min-width:0;color:var(--text-2);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:12.5px;font-weight:500;overflow:hidden}.adm-stat-go{color:var(--text-3);opacity:0;transition:opacity var(--dur-fast)}.adm-stat.link:hover .adm-stat-go,.adm-stat.link:focus-visible .adm-stat-go{opacity:1}.adm-stat-value{font-variant-numeric:tabular-nums;letter-spacing:-.01em;margin-top:4px;font-size:26px;font-weight:600;line-height:1.15}.adm-stat-sub{color:var(--text-3);flex-wrap:wrap;gap:2px 8px;font-size:12px;display:flex}.adm-stat-sub b{color:var(--text-2);font-weight:600}.adm-stat.tone-danger .adm-stat-value{color:var(--danger)}.adm-stat.tone-danger .adm-stat-icon{background:var(--danger-soft);color:var(--danger)}.adm-stat.tone-warning .adm-stat-icon{background:var(--warning-soft);color:var(--warning)}.adm-stat.tone-success .adm-stat-icon{background:var(--success-soft);color:var(--success)}.adm-stat.tone-info .adm-stat-icon{background:var(--info-soft);color:var(--info)}.adm-sub-bad{font-weight:600;color:var(--danger)!important}.adm-sub-warn{font-weight:600;color:var(--warning)!important}.adm-filters{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;min-width:0;display:flex}.adm-filters-main{flex-wrap:wrap;flex:auto;align-items:center;gap:8px;min-width:0;display:flex}.adm-filters-end{color:var(--text-3);white-space:nowrap;align-items:center;gap:8px;font-size:12.5px;display:flex}.adm-filters-clear{color:var(--accent-contrast)}.adm-search{align-items:center;width:260px;max-width:100%;display:flex;position:relative}.adm-search .rw-input{padding:0 28px 0 30px}.adm-search input::-webkit-search-cancel-button{display:none}.adm-search-icon{color:var(--text-3);pointer-events:none;position:absolute;left:10px}.adm-search-clear{width:22px;height:22px;color:var(--text-3);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;right:5px}.adm-search-clear:hover{background:var(--surface-3);color:var(--text-1)}.adm-seg{scrollbar-width:none;background:var(--surface-3);border-radius:8px;flex:none;align-items:center;gap:2px;max-width:100%;height:32px;padding:3px;display:inline-flex;overflow-x:auto}.adm-seg::-webkit-scrollbar{display:none}.adm-seg button{height:26px;color:var(--text-2);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;flex:none;align-items:center;gap:6px;padding:0 10px;font-size:12.5px;font-weight:500;display:inline-flex}.adm-seg button:hover{color:var(--text-1)}.adm-seg button.active{background:var(--surface);color:var(--text-1);box-shadow:var(--shadow-xs);font-weight:600}.adm-seg.sm{height:28px;padding:2px}.adm-seg.sm button{height:24px;font-size:12px}.adm-seg-n{border-radius:var(--radius-pill);background:color-mix(in srgb, var(--text-3) 18%, transparent);min-width:16px;color:var(--text-2);text-align:center;font-variant-numeric:tabular-nums;padding:0 5px;font-size:10.5px;font-weight:600;line-height:16px}.adm-seg button.active .adm-seg-n{background:var(--surface-3)}.adm-select{flex:none;display:inline-flex}.adm-select select.rw-input{cursor:pointer;width:auto;min-width:112px;padding-right:28px}.adm-select.set select.rw-input{border-color:color-mix(in srgb, var(--accent) 65%, var(--border-strong));background:var(--accent-soft);color:var(--accent-contrast);font-weight:500}.adm-toggle{border:1px solid var(--border-strong);border-radius:var(--radius-pill);background:var(--surface);height:32px;color:var(--text-2);font:inherit;cursor:pointer;white-space:nowrap;flex:none;align-items:center;gap:6px;padding:0 12px;font-size:12.5px;display:inline-flex}.adm-toggle:hover{color:var(--text-1)}.adm-toggle.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-contrast);font-weight:600}@media (width<=640px){.adm-search{flex:100%;width:100%}.adm-filters-end{justify-content:space-between;width:100%}}.adm-table-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);min-width:0;box-shadow:var(--shadow-xs);position:relative;overflow:clip;container-type:inline-size}.adm-table-wrap{min-width:0}.adm-table{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%;font-size:13px}.adm-table th{z-index:2;background:var(--surface-2);border-bottom:1px solid var(--border);height:36px;color:var(--text-2);text-align:left;white-space:nowrap;text-overflow:ellipsis;padding:0 12px;font-size:12px;font-weight:600;position:sticky;top:0;overflow:hidden}.adm-table td{border-bottom:1px solid var(--border);color:var(--text-1);vertical-align:middle;overflow-wrap:anywhere;min-width:0;padding:10px 12px}.adm-table tbody tr:last-child td{border-bottom:none}.adm-table .al-right{text-align:right}.adm-table .al-center{text-align:center}.adm-tr{transition:background var(--dur-fast)}.adm-tr.clickable{cursor:pointer}.adm-tr.clickable:hover td{background:color-mix(in srgb, var(--surface-2) 60%, var(--surface))}.adm-tr.clickable:focus-visible{outline:none}.adm-tr.clickable:focus-visible td{background:var(--accent-soft);box-shadow:inset 0 1px 0 var(--accent), inset 0 -1px 0 var(--accent);border-radius:0}.adm-tr.selected td{background:var(--accent-soft)}.adm-tr:has(+.adm-tr-after) td{border-bottom-color:#0000}.adm-tr-after td{padding:0 12px 10px}.adm-tr-after .admin-inline-error,.adm-owned p{margin:0}.adm-owned ul{gap:6px;margin:6px 0 0;padding:0;list-style:none;display:grid}.adm-owned li{color:var(--text-1);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.adm-tr-empty td{padding:0}.adm-tr-group th{background:var(--surface);height:auto;color:var(--text-2);text-align:left;border-bottom:1px solid var(--border);white-space:normal;padding:10px 12px 6px;font-size:12px;position:static}.adm-td-check{text-align:center;width:40px}.adm-table th.adm-td-check,.adm-table td.adm-td-check{text-align:center;padding:0 0 0 12px}.adm-td-check input{width:15px;height:15px;accent-color:var(--accent);cursor:pointer;vertical-align:middle}.adm-td-menu{text-align:right}.adm-table td.adm-td-menu{padding:4px 10px 4px 0}.adm-rowmenu-btn{color:var(--text-3)}.adm-rowmenu-btn.open{background:var(--surface-3);color:var(--text-1)}.adm-rowmenu{z-index:95;padding:4px}.adm-menu-label{text-overflow:ellipsis;min-width:0;overflow:hidden}.adm-table-foot{border-top:1px solid var(--border)}.adm-bulk{background:var(--ink);height:0;color:var(--ink-text);transition:height var(--dur-base) var(--ease-out);align-items:center;gap:12px;padding:0 8px 0 16px;font-size:13px;display:flex;overflow:hidden}.adm-bulk.show{height:46px}.adm-bulk-n{white-space:nowrap;font-weight:600}.adm-bulk-actions{scrollbar-width:none;flex:1;align-items:center;gap:6px;min-width:0;display:flex;overflow-x:auto}.adm-bulk .rw-btn{height:30px;color:var(--ink-text);border-color:color-mix(in srgb, var(--ink-text) 28%, transparent);background:0 0}.adm-bulk .rw-btn:hover:not(:disabled){background:color-mix(in srgb, var(--ink-text) 12%, transparent);color:var(--ink-text)}.adm-bulk .rw-btn.danger{color:color-mix(in srgb, var(--danger) 50%, var(--ink-text))}.adm-bulk .rw-icon-btn{color:var(--ink-text)}.adm-bulk .rw-icon-btn:hover{background:color-mix(in srgb, var(--ink-text) 12%, transparent);color:var(--ink-text)}@media (prefers-reduced-motion:reduce){.adm-bulk{transition:none}}.adm-tr.skel td{padding-top:14px;padding-bottom:14px}.adm-cell-main{flex-direction:column;gap:2px;min-width:0;display:flex}.adm-cell-title{color:var(--text-1);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.adm-cell-sub{color:var(--text-3);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.adm-mono-sm{font-family:var(--font-mono);color:var(--text-2);font-size:12px}.adm-time{color:var(--text-2);white-space:nowrap;font-size:12.5px}@container (width<=719px){.adm-table,.adm-table tbody{display:block}.adm-table thead,.adm-table colgroup{display:none}.adm-table tr.adm-tr{border-bottom:1px solid var(--border);flex-direction:column;gap:5px;padding:12px 14px;display:flex;position:relative}.adm-table tr.adm-tr:has(>td[data-card=check]){padding-left:46px}.adm-table tr.adm-tr:has(>td[data-card=menu])>td[data-card=primary]{padding-right:36px}.adm-table tbody tr.adm-tr:last-child{border-bottom:none}.adm-table tr.adm-tr>td{text-align:left;border:none;align-items:center;gap:8px;width:auto;min-width:0;padding:0;font-size:12.5px;display:flex;background:0 0!important}.adm-table tr.adm-tr>td:before{content:attr(data-label);width:76px;color:var(--text-3);flex:none;font-size:12px}.adm-table tr.adm-tr>td[data-label=""]:before{display:none}.adm-table tr.adm-tr>td[data-card=primary]{padding-bottom:2px;font-size:13.5px}.adm-table tr.adm-tr>td[data-card=primary]:before,.adm-table tr.adm-tr>td[data-card=hide]{display:none}.adm-table tr.adm-tr>td[data-card=check]{position:absolute;top:14px;left:14px}.adm-table tr.adm-tr>td[data-card=check]:before,.adm-table tr.adm-tr>td[data-card=menu]:before{display:none}.adm-table tr.adm-tr>td[data-card=menu]{position:absolute;top:8px;right:8px}.adm-table tr.adm-tr.selected,.adm-table tr.adm-tr.clickable:hover{background:color-mix(in srgb, var(--surface-2) 60%, var(--surface))}.adm-table tr.adm-tr.selected{background:var(--accent-soft)}.adm-table tr.adm-tr-group,.adm-table tr.adm-tr-after,.adm-table tr.adm-tr-empty,.adm-table tr.adm-tr-group th,.adm-table tr.adm-tr-after td,.adm-table tr.adm-tr-empty td{display:block}.adm-table tr.adm-tr:has(+.adm-tr-after){border-bottom-color:#0000}.adm-table tr.adm-tr-after td{border-bottom:1px solid var(--border);padding:0 12px 10px}.adm-cell-title{white-space:normal}}.adm-pager{color:var(--text-2);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;font-size:12.5px;display:flex}.adm-pager-range{font-variant-numeric:tabular-nums}.adm-pager-btns{align-items:center;gap:8px;display:inline-flex}.adm-pager-page{text-align:center;font-variant-numeric:tabular-nums;min-width:44px}.adm-empty{text-align:center;flex-direction:column;align-items:center;gap:6px;padding:48px 16px;display:flex}.adm-empty.compact{padding:24px 12px}.adm-empty-icon{background:var(--surface-2);width:44px;height:44px;color:var(--text-3);border-radius:50%;justify-content:center;align-items:center;margin-bottom:4px;display:inline-flex}.adm-empty-title{color:var(--text-1);margin:0;font-size:14px;font-weight:600}.adm-empty-hint{max-width:440px;color:var(--text-2);margin:0;font-size:12.5px;line-height:1.5}.adm-empty-action{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:8px;display:flex}.adm-switch{border-radius:var(--radius-pill);background:var(--border-strong);cursor:pointer;width:36px;height:20px;transition:background var(--dur-fast) var(--ease-out);border:none;flex:none;padding:0;position:relative}.adm-switch.sm{width:30px;height:17px}.adm-switch.on{background:var(--success)}.adm-switch:disabled{opacity:.45;cursor:not-allowed}.adm-switch:focus-visible{box-shadow:var(--shadow-focus);border-radius:var(--radius-pill)}.adm-switch-knob{background:var(--surface);width:16px;height:16px;transition:transform var(--dur-fast) var(--ease-out);border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000040}.adm-switch.sm .adm-switch-knob{width:13px;height:13px}.adm-switch.on .adm-switch-knob{transform:translate(16px)}.adm-switch.sm.on .adm-switch-knob{transform:translate(13px)}[data-theme=dark] .adm-switch-knob,[data-theme=dark-cool] .adm-switch-knob{background:var(--text-1)}.adm-dialog-backdrop{z-index:100;background:var(--overlay);animation:adm-fade var(--dur-fast) var(--ease-out);justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.adm-dialog{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:min(440px,100%);max-height:calc(100dvh - 32px);box-shadow:var(--shadow-lg);animation:adm-pop-in var(--dur-base) var(--ease-out);outline:none;overflow:auto}.adm-dialog-body{gap:12px;padding:20px 20px 16px;display:flex}.adm-dialog-icon{background:var(--danger-soft);width:36px;height:36px;color:var(--danger);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.adm-dialog-text{flex:1;min-width:0}.adm-dialog-title{font-family:var(--font-sans);letter-spacing:0;color:var(--text-1);margin:0;font-size:15px;font-weight:600;line-height:1.4}.adm-dialog-msg{color:var(--text-2);overflow-wrap:anywhere;margin-top:6px;font-size:13px;line-height:1.55}.adm-dialog-msg p{margin:0 0 6px}.adm-dialog-type{margin-top:12px}.adm-dialog-type code,.adm-dialog-msg code{font-family:var(--font-mono);background:var(--surface-2);color:var(--text-1);border-radius:4px;padding:1px 5px;font-size:12px}.adm-dialog-actions{border-top:1px solid var(--border);background:color-mix(in srgb, var(--surface-2) 45%, var(--surface));border-radius:0 0 var(--radius-lg) var(--radius-lg);justify-content:flex-end;gap:8px;padding:12px 20px;display:flex}@keyframes adm-fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.adm-dialog,.adm-dialog-backdrop{animation:none}}.adm-jobstat{flex-direction:column;gap:5px;min-width:0;display:inline-flex}.adm-pill-job-running{background:var(--info-soft);color:var(--info)}.adm-pill-job-queued{background:var(--surface-3);color:var(--text-2)}.adm-pill-job-succeeded{background:var(--success-soft);color:var(--success)}.adm-pill-job-failed{background:var(--danger-soft);color:var(--danger)}.adm-pill-job-cancelled{background:var(--surface-2);color:var(--text-3)}.adm-pill-pct{font-variant-numeric:tabular-nums;opacity:.85;font-weight:500}.adm-pill-dot.pulse{animation:1.4s ease-in-out infinite adm-pulse}@keyframes adm-pulse{0%,to{opacity:1}50%{opacity:.35}}.adm-jobstat-bar{background:var(--surface-3);border-radius:2px;width:100%;max-width:120px;height:3px;display:block;overflow:hidden}.adm-jobstat-bar span{background:var(--info);height:100%;transition:width .4s;display:block}@media (prefers-reduced-motion:reduce){.adm-pill-dot.pulse{animation:none}}.adm-spin{animation:.9s linear infinite spin}.adm-count{border-radius:var(--radius-pill);background:var(--surface-3);min-width:20px;height:18px;color:var(--text-2);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;padding:0 6px;font-size:11px;font-weight:600;display:inline-flex}.adm-count.bad{background:var(--danger-soft);color:var(--danger)}.adm-ov-stats{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}@media (width<=1180px){.adm-ov-stats .adm-stat{padding:12px 14px}.adm-ov-stats .adm-stat-icon{display:none}}@media (width<=700px){.adm-ov-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.adm-ov-stats .adm-stat:last-child{grid-column:1/-1}}.adm-ov-body{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:16px;display:grid}@media (width<=1100px){.adm-ov-body{grid-template-columns:minmax(0,1fr)}}.adm-ov-main,.adm-ov-side{flex-direction:column;gap:16px;min-width:0;display:flex}.adm-ov-block+.adm-ov-block{border-top:1px solid var(--border)}.adm-ov-h{font-family:var(--font-sans);letter-spacing:.02em;color:var(--text-2);text-transform:uppercase;align-items:center;gap:8px;margin:0;padding:12px 16px 4px;font-size:12px;font-weight:600;display:flex}.adm-ov-groups{margin:0;padding:4px 8px 8px;list-style:none}.adm-ov-group{border-radius:var(--radius-md);padding:8px}.adm-ov-group+.adm-ov-group{border-top:1px dashed var(--border);border-radius:0}.adm-ov-group-head{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.adm-ov-paper{font-family:var(--font-serif);color:var(--text-1);font-size:15px;font-weight:600}.adm-ov-paper:hover{color:var(--accent-contrast);text-decoration:none}.adm-ov-age{color:var(--text-3)}.adm-ov-go{margin-left:auto}.adm-ov-parts{flex-direction:column;gap:2px;margin:6px 0 0;padding:0;list-style:none;display:flex}.adm-ov-part{border-radius:var(--radius-sm);color:var(--text-1);grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:10px;padding:6px 8px;display:grid}.adm-ov-part:hover{background:var(--surface-2);color:var(--text-1);text-decoration:none}.adm-ov-qn{font-family:var(--font-mono);color:var(--text-2);font-size:12px;font-weight:600}.adm-ov-qt{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.adm-ov-more{color:var(--text-3);padding:4px 8px 0 70px;font-size:12px}.adm-ov-jobs{margin:0;padding:4px 8px 8px;list-style:none}.adm-ov-job{align-items:flex-start;gap:10px;padding:10px 8px;display:flex}.adm-ov-job+.adm-ov-job{border-top:1px dashed var(--border)}.adm-ov-job-icon{color:var(--danger);flex:none;margin-top:2px}.adm-ov-job-main{flex:1;min-width:0}.adm-ov-job-line{flex-wrap:wrap;align-items:baseline;gap:8px;font-size:13px;display:flex}.adm-ov-job-target{color:var(--text-2)}.adm-ov-job-err{font-family:var(--font-mono);color:var(--danger);white-space:nowrap;text-overflow:ellipsis;margin:4px 0 0;font-size:11.5px;overflow:hidden}.adm-ov-job-actions{flex:none;gap:6px;display:flex}@media (width<=640px){.adm-ov-job{flex-wrap:wrap}.adm-ov-job-actions{width:100%;padding-left:26px}.adm-ov-go{margin-left:0}.adm-ov-part{grid-template-columns:44px minmax(0,1fr)}.adm-ov-part .adm-pill{display:none}.adm-ov-more{padding-left:62px}}.adm-quick{grid-template-columns:1fr 1fr;gap:8px;display:grid}.adm-quick-btn{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);min-height:68px;color:var(--text-1);font:inherit;text-align:left;cursor:pointer;transition:border-color var(--dur-fast), background var(--dur-fast);flex-direction:column;align-items:flex-start;gap:8px;padding:10px 12px;font-size:12.5px;font-weight:500;display:flex}.adm-quick-btn svg{color:var(--text-2)}.adm-quick-btn:hover{border-color:var(--border-strong);background:var(--surface-2)}.adm-quick-btn.primary{background:var(--ink);border-color:var(--ink);color:var(--ink-text)}.adm-quick-btn.primary svg{color:var(--ink-text)}.adm-quick-btn.primary:hover{background:var(--ink-hover)}.adm-kv{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.adm-kv li{justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:7px 0;font-size:13px;display:flex}.adm-kv li+li{border-top:1px dashed var(--border)}.adm-kv-k{color:var(--text-2);white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.adm-kv-k svg{color:var(--text-3)}.adm-kv-v{align-items:center;gap:5px;min-width:0;font-size:12.5px;display:inline-flex}.adm-kv-v.ok svg{color:var(--success);flex:none}.adm-kv-v.warn{color:var(--warning);font-weight:500}.adm-kv-model{font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;max-width:180px;font-size:12px;overflow:hidden}.adm-kv li.adm-kv-note{border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;border-top:none;margin-top:2px;padding:6px 8px;font-size:12px;display:block;overflow:hidden}.adm-onoff{color:var(--text-3);align-items:center;gap:5px;font-size:12px;font-weight:600;display:inline-flex}.adm-onoff:before{content:"";background:var(--border-strong);border-radius:50%;width:7px;height:7px}.adm-onoff.on{color:var(--success)}.adm-onoff.on:before{background:var(--success)}.adm-side-foot{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;margin-top:10px;padding-top:10px;font-size:12.5px;display:flex}.adm-side-foot .rw-link{padding:0;font-size:12.5px}.adm-paper-code{font-family:var(--font-serif);color:var(--text-1);white-space:nowrap;text-overflow:ellipsis;font-size:14.5px;font-weight:600;overflow:hidden}.adm-file-chips{gap:4px;display:inline-flex}.adm-file-chip{border:1px dashed var(--border-strong);height:20px;color:var(--text-3);font-family:var(--font-mono);letter-spacing:.03em;border-radius:4px;align-items:center;padding:0 6px;font-size:10.5px;font-weight:600;display:inline-flex}.adm-file-chip.ok{background:var(--success-soft);color:var(--success);border:1px solid #0000}.adm-progress{flex-direction:column;gap:5px;min-width:0;max-width:200px;display:flex}.adm-progress-bar{background:var(--surface-3);border-radius:3px;height:5px;display:flex;overflow:hidden}.adm-progress-bar .pub{background:var(--success);border-radius:3px}.adm-progress-text{color:var(--text-2);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:12px}.adm-progress-text b{color:var(--text-1);font-weight:600}.adm-group-h{align-items:center;gap:8px;display:inline-flex}.adm-group-h strong{font-family:var(--font-serif);color:var(--text-1);font-size:13.5px}.adm-bulk-busy{align-items:center;gap:8px;font-size:12.5px;display:inline-flex}@container (width<=719px){.adm-progress{flex-direction:row;align-items:center;width:100%;max-width:220px}.adm-progress-bar{flex:1}}.adm-form-dialog{width:min(480px,100%)}.adm-dialog-form{flex-direction:column;gap:12px;padding:20px;display:flex}.adm-dialog-form .adm-dialog-msg{margin-top:-6px}.adm-form-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.adm-form-wide{grid-column:1/-1}.adm-inline-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}@media (width<=480px){.adm-form-grid{grid-template-columns:1fr}}.adm-diff{border-radius:var(--radius-pill);background:var(--surface-3);height:22px;color:var(--text-2);white-space:nowrap;align-items:center;padding:0 9px;font-size:11.5px;font-weight:600;display:inline-flex}.adm-diff-easy{background:var(--success-soft);color:var(--success)}.adm-diff-medium{background:var(--warning-soft);color:var(--warning)}.adm-diff-hard{background:var(--danger-soft);color:var(--danger)}.adm-tags{flex-wrap:wrap;gap:4px;display:inline-flex}.adm-tag{background:var(--surface-2);height:18px;color:var(--text-2);border-radius:4px;align-items:center;padding:0 6px;font-size:11px;display:inline-flex}.adm-num{font-variant-numeric:tabular-nums;color:var(--text-2)}.adm-dirty{border-radius:var(--radius-pill);background:var(--warning-soft);height:22px;color:var(--warning);align-items:center;gap:6px;padding:0 9px;font-size:11.5px;font-weight:600;display:inline-flex}.adm-dirty-dot{background:currentColor;border-radius:50%;width:6px;height:6px}.adm-form-error{margin:0}.adm-editor{grid-template-columns:minmax(0,1fr) minmax(0,.9fr);align-items:start;gap:16px;display:grid}@media (width<=1179px){.adm-editor{grid-template-columns:minmax(0,1fr)}.adm-editor.preview-only .adm-editor-form{display:none}}.adm-editor-form{flex-direction:column;gap:16px;min-width:0;display:flex}.adm-editor-preview{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);min-width:0;max-height:calc(100dvh - 104px);box-shadow:var(--shadow-xs);flex-direction:column;display:flex;position:sticky;top:0;overflow:hidden}@media (width<=1179px){.adm-editor-preview{max-height:none;position:static}}.adm-preview-head{border-bottom:1px solid var(--border);background:var(--surface-2);color:var(--text-2);align-items:center;gap:6px;padding:10px 16px;font-size:12px;font-weight:600;display:flex}.adm-preview-body{flex:1;min-height:0;overflow:auto}.adm-preview-challenge.challenge-detail,.adm-preview-tutorial.tutorial-viewer{overflow:visible}.adm-form-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.adm-span-2{grid-column:span 2}@media (width<=720px){.adm-form-grid.cols-3{grid-template-columns:1fr 1fr}.adm-span-2{grid-column:1/-1}}@media (width<=480px){.adm-form-grid.cols-3{grid-template-columns:1fr}}.adm-form-stack{flex-direction:column;gap:12px;display:flex}.adm-ta{min-height:64px;font-size:13px}.adm-ta.admin-mono{font-size:12.5px}.adm-ta-tall{min-height:420px}.adm-checks{flex-wrap:wrap;gap:6px;display:flex}.adm-hints{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.adm-hints li{align-items:flex-start;gap:8px;display:flex}.adm-hint-n{background:var(--surface-3);width:22px;height:22px;color:var(--text-2);border-radius:50%;flex:none;justify-content:center;align-items:center;margin-top:5px;font-size:11.5px;font-weight:600;display:inline-flex}.adm-hints .rw-input{flex:1}.adm-hints .rw-icon-btn{margin-top:2px}.adm-danger-zone{border-color:color-mix(in srgb, var(--danger) 30%, var(--border-c))}.adm-danger-zone .adm-section-title{color:var(--danger)}.adm-danger-zone .adm-inline-row .rw-muted{flex:240px}.adm-ok-text{color:var(--success);align-items:center;gap:4px;display:inline-flex}.adm-bad-text{color:var(--danger);align-items:center;gap:4px;display:inline-flex}.adm-warn-text{color:var(--warning);font-weight:500}.adm-inline-icon{vertical-align:-2px;color:var(--text-3);margin-right:2px}.adm-banner{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-xs);flex-wrap:wrap;align-items:center;gap:12px;padding:12px 16px;display:flex}.adm-banner.on{border-color:color-mix(in srgb, var(--success) 35%, var(--border-c));background:color-mix(in srgb, var(--success-soft) 55%, var(--surface))}.adm-banner.off{border-color:color-mix(in srgb, var(--warning) 40%, var(--border-c));background:color-mix(in srgb, var(--warning-soft) 60%, var(--surface))}.adm-banner-icon{background:var(--surface);border-radius:50%;flex:none;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.adm-banner.on .adm-banner-icon{color:var(--success)}.adm-banner.off .adm-banner-icon{color:var(--warning)}.adm-banner-main{flex:260px;min-width:0}.adm-banner-title{color:var(--text-1);font-size:14px;font-weight:600}.adm-banner-sub{color:var(--text-2);flex-wrap:wrap;align-items:center;gap:4px 8px;margin-top:2px;font-size:12.5px;display:flex}.adm-banner-switch{color:var(--text-1);cursor:pointer;align-items:center;gap:10px;font-size:13px;font-weight:500;display:inline-flex}.adm-provider-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;display:grid}.adm-provider{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);min-width:0;transition:border-color var(--dur-fast);flex-direction:column;gap:10px;padding:14px;display:flex}.adm-provider:hover{border-color:var(--border-strong)}.adm-provider.off{background:color-mix(in srgb, var(--surface-2) 45%, var(--surface))}.adm-provider.off .adm-provider-name{color:var(--text-2)}.adm-provider-head{align-items:flex-start;gap:8px;display:flex}.adm-provider-titles{flex-direction:column;flex:1;align-items:flex-start;gap:4px;min-width:0;display:flex}.adm-provider-name{font-family:var(--font-sans);letter-spacing:0;text-overflow:ellipsis;white-space:nowrap;max-width:100%;margin:0;font-size:14px;font-weight:600;overflow:hidden}.adm-provider-head .adm-switch{margin-top:6px}.adm-kind{background:var(--surface-3);height:18px;color:var(--text-2);border-radius:4px;align-items:center;padding:0 7px;font-size:11px;font-weight:500;display:inline-flex}.adm-provider-meta{flex-direction:column;gap:6px;margin:0;font-size:12.5px;display:flex}.adm-provider-meta>div{grid-template-columns:72px minmax(0,1fr);align-items:center;gap:8px;min-height:22px;display:grid}.adm-provider-meta dt{color:var(--text-3);font-size:12px}.adm-provider-meta dd{align-items:center;gap:4px;min-width:0;margin:0;display:flex}.adm-trunc{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.adm-copy{width:22px;height:22px}.adm-provider-alert{border-radius:var(--radius-sm);background:var(--danger-soft);color:var(--danger);align-items:center;gap:6px;margin:0;padding:6px 8px;font-size:12px;display:flex}.adm-provider-foot{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:10px;display:flex}.adm-test{min-width:0;color:var(--text-3);white-space:nowrap;align-items:center;gap:5px;font-size:12px;display:inline-flex;overflow:hidden}.adm-test.ok{color:var(--success)}.adm-test.bad{color:var(--danger)}.adm-test-at .adm-time{color:var(--text-3);font-size:11.5px}.adm-provider-add{border:1.5px dashed var(--border-strong);border-radius:var(--radius-md);min-height:180px;color:var(--text-2);font:inherit;cursor:pointer;transition:border-color var(--dur-fast), background var(--dur-fast), color var(--dur-fast);background:0 0;flex-direction:column;justify-content:center;align-items:center;gap:8px;font-size:13px;font-weight:500;display:flex}.adm-provider-add:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-contrast)}.adm-binds{container-type:inline-size}.adm-bind-headrow,.adm-bind-row{grid-template-columns:minmax(150px,1.1fr) minmax(140px,.9fr) minmax(180px,1.6fr) minmax(120px,1fr) auto;align-items:center;gap:12px;padding:0 16px;display:grid}.adm-bind-headrow{background:var(--surface-2);border-bottom:1px solid var(--border);height:34px;color:var(--text-2);font-size:12px;font-weight:600}.adm-bind{border-bottom:1px solid var(--border);transition:background var(--dur-fast)}.adm-bind:last-child{border-radius:0 0 var(--radius-lg) var(--radius-lg);border-bottom:none}.adm-bind.dirty{background:color-mix(in srgb, var(--warning-soft) 45%, var(--surface));box-shadow:inset 3px 0 0 var(--warning)}.adm-bind-row{padding-top:10px;padding-bottom:10px}.adm-bind-role{flex-direction:column;gap:2px;min-width:0;display:flex}.adm-bind-role strong{font-size:13px;font-weight:600}.adm-bind-use{color:var(--text-3);font-size:12px;line-height:1.35}.adm-bind.unbound .adm-bind-role strong:after{content:"";background:var(--warning);vertical-align:2px;border-radius:50%;width:6px;height:6px;margin-left:6px;display:inline-block}.adm-bind-provider,.adm-bind-model{min-width:0;display:flex}.adm-bind-provider select{width:100%}.adm-bind-status{flex-wrap:wrap;gap:4px;min-width:0;display:flex}.adm-cap{border-radius:var(--radius-sm);white-space:nowrap;align-items:center;gap:4px;height:22px;padding:0 7px;font-size:11.5px;display:inline-flex}.adm-cap.ok{background:var(--success-soft);color:var(--success)}.adm-cap.bad{background:var(--warning-soft);color:var(--warning)}.adm-cap.unknown{background:var(--surface-2);color:var(--text-3)}.adm-bind-actions{justify-content:flex-end;align-items:center;gap:4px;display:flex}.adm-bind-actions .rw-icon-btn{position:relative}.adm-bind-actions .rw-icon-btn.active{background:var(--accent-soft);color:var(--accent-contrast)}.adm-bind-adv-dot{background:var(--accent);border-radius:50%;width:6px;height:6px;position:absolute;top:4px;right:4px}.adm-bind-note{color:var(--text-3);margin:-4px 16px 10px;font-size:12px}.adm-bind-mismatch{border-radius:var(--radius-sm);background:var(--warning-soft);color:var(--warning);flex-wrap:wrap;align-items:center;gap:8px;margin:0 16px 10px;padding:8px 10px;font-size:12.5px;display:flex}.adm-bind-mismatch span{flex:200px}.adm-bind-adv{border:1px dashed var(--border-strong);border-radius:var(--radius-md);background:var(--surface);grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 16px;margin:0 16px 12px;padding:12px;display:grid}.adm-bind-fallback-row{gap:8px;min-width:0;display:flex}.adm-bind-fallback-row select{width:auto;max-width:45%}@container (width<=860px){.adm-bind-headrow{display:none}.adm-bind-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"role actions""provider model""status status"}.adm-bind-role{grid-area:role}.adm-bind-provider{grid-area:provider}.adm-bind-model{grid-area:model}.adm-bind-status{grid-area:status}.adm-bind-actions{grid-area:actions}.adm-bind-status:empty{display:none}.adm-bind-adv{grid-template-columns:1fr}}@container (width<=480px){.adm-bind-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"role actions""provider provider""model model""status status"}}.adm-usage{flex-direction:column;gap:16px;display:flex}.adm-usage-bar{justify-content:flex-end;margin-top:-4px;display:flex}.adm-usage-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.adm-usage-stats .adm-stat{box-shadow:none;background:var(--surface-2);border-color:#0000}@media (width<=900px){.adm-usage-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.adm-usage-block{flex-direction:column;gap:8px;min-width:0;display:flex}.adm-usage-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.adm-usage-filters{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.adm-usage-filters .adm-search{width:200px}.adm-usage-empty{text-align:center;margin:0;padding:16px 0}.adm-simple-wrap{border:1px solid var(--border);border-radius:var(--radius-md);overflow-x:auto}.adm-simple{border-collapse:collapse;width:100%;font-size:12.5px}.adm-simple th{background:var(--surface-2);height:32px;color:var(--text-2);text-align:left;white-space:nowrap;border-bottom:1px solid var(--border);padding:0 10px;font-size:12px;font-weight:600}.adm-simple td{border-bottom:1px solid var(--border);white-space:nowrap;font-variant-numeric:tabular-nums;padding:7px 10px}.adm-simple tbody tr:last-child td{border-bottom:none}.adm-simple .al-right{text-align:right}.adm-trunc-cell{text-overflow:ellipsis;max-width:240px;overflow:hidden}.adm-usage .adm-pager{padding:4px 0 0}.adm-provider-dialog{width:min(540px,100%)}.adm-dialog-head{justify-content:space-between;align-items:center;gap:8px;padding:14px 12px 0 20px;display:flex}.adm-presets{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.adm-preset{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--text-1);font:inherit;text-align:left;cursor:pointer;flex-direction:column;align-items:flex-start;gap:4px;padding:12px;display:flex}.adm-preset:hover{border-color:var(--accent);background:var(--accent-soft)}.adm-preset-name{font-size:13px;font-weight:600}.adm-preset-kind{color:var(--text-3);font-size:11.5px}.adm-check-row{flex-wrap:wrap;gap:16px;display:flex}.adm-check-inline{cursor:pointer;align-items:center;gap:6px;font-size:13px;display:inline-flex}.adm-check-inline input{accent-color:var(--accent)}.adm-switch-line{border-radius:var(--radius-sm);background:var(--surface-2);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;font-size:13px;font-weight:500;display:flex}.adm-dialog-actions-split{align-items:center}.adm-job-target{color:var(--text-2);align-items:center;gap:4px;display:inline-flex}.adm-job-target:hover{color:var(--accent-contrast)}.adm-job-err{font-family:var(--font-mono);color:var(--danger);text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;display:block;overflow:hidden}.adm-tr-failed td:first-child{box-shadow:inset 3px 0 0 var(--danger)}@container (width<=719px){.adm-tr-failed{box-shadow:inset 3px 0 0 var(--danger)}.adm-tr-failed td:first-child{box-shadow:none}}.adm-jd{width:min(520px,100vw)}.adm-jd-titles{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;display:flex}.adm-jd-meta{grid-template-columns:1fr 1fr;gap:10px 16px;margin:0;display:grid}.adm-jd-meta>div{flex-direction:column;gap:2px;min-width:0;display:flex}.adm-jd-meta dt{color:var(--text-3);font-size:11.5px}.adm-jd-meta dd{min-width:0;margin:0;font-size:13px}.adm-jd-progress{color:var(--text-2);flex-direction:column;gap:6px;font-size:12.5px;display:flex}.adm-jd-msg{color:var(--text-2);margin:0;font-size:13px}.adm-jd-error{border-radius:var(--radius-sm);background:var(--danger-soft);color:var(--danger);font-family:var(--font-mono);white-space:pre-wrap;overflow-wrap:anywhere;align-items:flex-start;gap:8px;padding:10px 12px;font-size:12px;line-height:1.5;display:flex}.adm-jd-error svg{flex:none;margin-top:2px}.adm-jd-actions{gap:8px;display:flex}.adm-jd-actions:empty{display:none}.adm-jd-result{flex-direction:column;gap:12px;margin:0;display:flex}.adm-jd-result dt{color:var(--text-2);align-items:center;gap:6px;margin-bottom:6px;font-size:12px;font-weight:600;display:flex}.adm-jd-result dd{margin:0}.adm-jd-chips{flex-wrap:wrap;gap:4px;display:flex}.adm-jd-chip{border-radius:var(--radius-sm);background:var(--surface-2);height:22px;color:var(--text-2);font-family:var(--font-mono);align-items:center;padding:0 8px;font-size:11.5px;display:inline-flex}.adm-jd-chip.ok{background:var(--success-soft);color:var(--success)}.adm-jd-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.adm-jd-list li{border-bottom:1px dashed var(--border);color:var(--text-2);grid-template-columns:56px minmax(0,1fr);gap:8px;padding:5px 0;font-size:12.5px;display:grid}.adm-jd-list li:last-child{border-bottom:none}.adm-jd-list li b{font-family:var(--font-mono);color:var(--text-1);font-size:12px}.adm-jd-list.warn li{color:var(--warning);grid-template-columns:16px minmax(0,1fr)}.adm-jd-list.warn svg{margin-top:3px}.adm-jd-gen{flex-direction:column;gap:10px;display:flex}.adm-jd-notes{color:var(--text-2);margin:0;font-size:12.5px;line-height:1.5}.adm-jd-code,.adm-jd-log{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--code-bg);max-height:320px;color:var(--code-text);font-family:var(--font-mono);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:10px 12px;font-size:11.5px;line-height:1.55;overflow:auto}.adm-jd-log .err{color:var(--danger);font-weight:600}.adm-jd-log .warn{color:var(--warning)}.adm-jd-loghead{justify-content:space-between;align-items:center;display:flex}@media (width<=480px){.adm-jd-meta{grid-template-columns:1fr}}.adm-settings{padding-bottom:8px}.adm-set-row{border-bottom:1px solid var(--border);transition:background var(--dur-fast);justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;display:flex}.adm-set-row:last-child{border-radius:0 0 var(--radius-lg) var(--radius-lg);border-bottom:none}.adm-set-row.changed{background:color-mix(in srgb, var(--warning-soft) 40%, var(--surface))}.adm-set-row.stack{flex-direction:column;align-items:stretch;gap:10px}.adm-set-text{flex:1;min-width:0}.adm-set-label{color:var(--text-1);cursor:pointer;align-items:center;gap:6px;font-size:13.5px;font-weight:500;display:inline-flex}.adm-set-dot{background:var(--warning);border-radius:50%;width:6px;height:6px}.adm-set-desc{color:var(--text-2);max-width:560px;margin:3px 0 0;font-size:12.5px;line-height:1.5}.adm-set-control{flex:none;align-items:center;gap:8px;display:flex}.adm-set-row.stack .adm-set-control{flex-direction:column;align-items:stretch}.adm-unit-input{align-items:center;gap:0;display:inline-flex}.adm-unit-input .rw-input{border-radius:var(--radius-sm) 0 0 var(--radius-sm);text-align:right;width:84px}.adm-unit-input span{border:1px solid var(--border-strong);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--surface-2);height:32px;color:var(--text-2);border-left:none;align-items:center;padding:0 10px;font-size:12.5px;display:inline-flex}.adm-ann-preview{border:1px dashed var(--border-strong);border-radius:var(--radius-md);background:var(--bg);flex-direction:column;gap:6px;padding:10px;display:flex}.adm-ann-preview-label{color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;font-size:11.5px;font-weight:600}.adm-ann-preview .site-announcement{border-radius:var(--radius-sm);border:1px solid}.adm-ann-preview .site-announcement.is-off{opacity:.5}.adm-mail-loading,.adm-mail-load-error{padding:14px 16px}.adm-mail-source{border:1px solid var(--border);background:var(--surface-2);min-height:28px;color:var(--text-2);border-radius:999px;align-items:center;padding:0 9px;font-size:12px;font-weight:600;display:inline-flex}.adm-mail-input{width:min(360px,52vw)}.adm-mail-port{text-align:right;width:100px}.adm-mail-password-row,.adm-mail-test-row{align-items:center;gap:10px;width:100%;display:flex}.adm-mail-password-row .rw-input,.adm-mail-test-row .rw-input{flex:1;min-width:0}.adm-mail-clear{white-space:nowrap;color:var(--text-2);cursor:pointer;align-items:center;gap:7px;font-size:12.5px;display:inline-flex}.adm-mail-clear input{accent-color:var(--accent)}.adm-mail-template-grid{grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr);gap:12px;width:100%;display:grid}.adm-mail-editor{flex-direction:column;gap:7px;min-width:0;display:flex}.adm-mail-field-label{color:var(--text-2);font-size:11.5px;font-weight:600}.adm-mail-body{resize:vertical;min-height:220px;font-family:var(--font-mono);font-size:12.5px;line-height:1.5}.adm-mail-vars{color:var(--text-3);flex-wrap:wrap;align-items:center;gap:6px;margin-top:2px;font-size:11.5px;display:flex}.adm-mail-vars code{border:1px solid var(--border);background:var(--surface-2);color:var(--text-2);border-radius:5px;padding:2px 6px;font-size:11.5px}.adm-mail-preview{border:1px dashed var(--border-strong);border-radius:var(--radius-md);background:var(--bg);flex-direction:column;gap:9px;min-width:0;padding:12px;display:flex}.adm-mail-preview strong{color:var(--text-1);overflow-wrap:anywhere;font-size:13px;line-height:1.45}.adm-mail-preview pre{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;color:var(--text-2);margin:0;font-size:12.5px;line-height:1.55}.adm-savebar{z-index:20;pointer-events:none;opacity:0;transition:opacity var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out);margin-top:4px;position:sticky;bottom:12px;transform:translateY(12px)}.adm-savebar.show{opacity:1;pointer-events:auto;transform:none}.adm-savebar-inner{border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-lg);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px 10px 16px;display:flex}.adm-savebar-text{color:var(--text-1);align-items:center;gap:8px;min-width:0;font-size:13px;font-weight:500;display:inline-flex}.adm-savebar-text .adm-dirty-dot{color:var(--warning);background:var(--warning)}@media (prefers-reduced-motion:reduce){.adm-savebar{transition:none}}@media (width<=560px){.adm-set-row:not(.stack){flex-wrap:wrap;gap:10px 16px}.adm-set-row:not(.stack)>.adm-set-text{flex:200px}.adm-mail-input{width:min(100%,360px)}.adm-mail-password-row,.adm-mail-test-row{flex-direction:column;align-items:stretch}.adm-mail-template-grid{grid-template-columns:1fr}.adm-savebar-inner .admin-grow{display:none}.adm-savebar-inner .adm-savebar-text{flex:100%}}.adm-user{align-items:center;gap:10px;min-width:0;display:flex}.adm-avatar{background:var(--surface-3);width:32px;height:32px;color:var(--text-2);letter-spacing:.02em;border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:12px;font-weight:600;display:inline-flex}.adm-avatar.admin{background:var(--accent-soft);color:var(--accent-contrast);box-shadow:0 0 0 2px var(--surface), 0 0 0 3px color-mix(in srgb, var(--accent) 55%, transparent)}.adm-you{background:var(--info-soft);height:17px;color:var(--info);vertical-align:1px;border-radius:4px;align-items:center;margin-left:6px;padding:0 6px;font-size:10.5px;font-weight:600;display:inline-flex}.adm-role-cell{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.adm-pill-admin{background:var(--accent-soft);color:var(--accent-contrast)}.adm-tr.adm-busy{opacity:.6}.rw-input.admin-mono,.rw-input.adm-mono-sm{font-family:var(--font-mono);font-size:12.5px}.rw-input:disabled{background:var(--surface-2);color:var(--text-2);cursor:not-allowed}.adm-job-err.muted{color:var(--text-3)}.adm-jd-chip.link:hover{filter:brightness(.96);text-decoration:none;box-shadow:inset 0 0 0 1px}.pw-pop-check{color:var(--text-2);cursor:pointer;align-items:center;gap:8px;padding:6px 8px;font-size:12.5px;display:flex}.pw-pop-check input{accent-color:var(--accent)}.rw-ans-empty{border:1px dashed color-mix(in srgb, var(--accent) 45%, transparent);border-radius:var(--radius-md);background:var(--accent-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px;padding:14px 16px;display:flex}.rw-ans-empty strong{color:var(--text-1);font-size:13.5px}.rw-ans-empty p{color:var(--text-2);max-width:520px;margin:4px 0 0;font-size:12.5px}.rw-verify-hint{color:var(--text-2);margin:0;padding:8px 16px 0;font-size:12.5px}.class-due{color:var(--text-2);white-space:nowrap;font-size:12px}.class-due.tone-red{color:var(--danger);font-weight:600}.class-due.tone-yellow{color:var(--warning);font-weight:600}.class-due.tone-muted{color:var(--text-3)}
