:root{--bg-page:#f3f5f8;--bg-card:#fff;--bg-soft:#f9fafb;--bg-input:#fff;--border:#e5e7eb;--border-strong:#d1d5db;--text:#1f2937;--text-muted:#6b7280;--text-strong:#111827;--accent:#2563eb;--accent-hover:#1d4ed8;--accent-soft:#e6efff;--header-bg:#1e3a5f;--header-text:#fff;--success:#16a34a;--success-soft:#d1fae5;--warning:#d97706;--warning-soft:#fef3c7;--danger:#dc2626;--danger-soft:#fee2e2;--suggest:#d97706;--code-bg:#f6f8fa;--code-border:#e5e7eb;--output-bg:#fffaf0;--output-text:#6b4519;--output-label:#b45309;--accent-tx:#1e40af;--accent-bd:#bfdbfe;--success-tx:#065f46;--success-bd:#a7f3d0;--warning-tx:#92400e;--warning-bd:#fde68a;--danger-tx:#991b1b;--danger-bd:#fecaca;--solution-bg:#ebf5ff;--solution-tx:#1e3a8a;--solution-bd:#bfdbfe;--student-bg:#ecfdf5;--student-tx:#14532d;--student-bd:#a7f3d0;color:var(--text);background:var(--bg-page);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}:root[data-theme=dark]{--bg-page:#0f1419;--bg-card:#181d27;--bg-soft:#1f2530;--bg-input:#11151c;--border:#2a3142;--border-strong:#3a4458;--text:#d1d5db;--text-muted:#9ca3af;--text-strong:#f3f4f6;--accent:#60a5fa;--accent-hover:#93c5fd;--accent-soft:#60a5fa2e;--header-bg:#0a0f17;--header-text:#f3f4f6;--success:#22c55e;--success-soft:#22c55e2e;--warning:#fbbf24;--warning-soft:#fbbf242e;--danger:#f87171;--danger-soft:#f871712e;--suggest:#f59e0b;--code-bg:#0d1117;--code-border:#2a3142;--output-bg:#f59e0b12;--output-text:#fcd34d;--output-label:#fbbf24;--accent-tx:#93c5fd;--accent-bd:#60a5fa59;--success-tx:#86efac;--success-bd:#22c55e59;--warning-tx:#fcd34d;--warning-bd:#f59e0b59;--danger-tx:#fca5a5;--danger-bd:#f8717159;--solution-bg:#60a5fa1a;--solution-tx:#93c5fd;--solution-bd:#60a5fa4d;--student-bg:#22c55e14;--student-tx:#86efac;--student-bd:#22c55e4d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=dark] .hljs{color:#d4d4d4;background:0 0}:root[data-theme=dark] .hljs-comment,:root[data-theme=dark] .hljs-quote{color:#6a9955;font-style:italic}:root[data-theme=dark] .hljs-keyword,:root[data-theme=dark] .hljs-selector-tag,:root[data-theme=dark] .hljs-literal,:root[data-theme=dark] .hljs-meta-keyword{color:#c586c0}:root[data-theme=dark] .hljs-string,:root[data-theme=dark] .hljs-title.string,:root[data-theme=dark] .hljs-meta-string{color:#ce9178}:root[data-theme=dark] .hljs-number,:root[data-theme=dark] .hljs-symbol,:root[data-theme=dark] .hljs-bullet{color:#b5cea8}:root[data-theme=dark] .hljs-built_in,:root[data-theme=dark] .hljs-builtin-name,:root[data-theme=dark] .hljs-type{color:#4ec9b0}:root[data-theme=dark] .hljs-function,:root[data-theme=dark] .hljs-title.function,:root[data-theme=dark] .hljs-title{color:#dcdcaa}:root[data-theme=dark] .hljs-variable,:root[data-theme=dark] .hljs-attr,:root[data-theme=dark] .hljs-attribute{color:#9cdcfe}:root[data-theme=dark] .hljs-params{color:#d4d4d4}:root[data-theme=dark] .hljs-decorator,:root[data-theme=dark] .hljs-meta{color:#d7ba7d}:root[data-theme=dark] .hljs-operator,:root[data-theme=dark] .hljs-punctuation{color:#d4d4d4}body{background:var(--bg-page);color:var(--text);min-height:100vh;margin:0}*{box-sizing:border-box}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;font-family:inherit}input,textarea,select{background:var(--bg-input);color:var(--text);border:1px solid var(--border-strong);border-radius:6px;font-family:inherit}input:focus,textarea:focus,select:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #2563eb26}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-soft)}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.btn{border:1px solid var(--border-strong);background:var(--bg-card);color:var(--text);border-radius:6px;padding:.45rem .85rem;font-size:.875rem;transition:background .1s,border-color .1s}.btn:hover:not(:disabled){background:var(--bg-soft)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn-suggest{background:var(--suggest);border-color:var(--suggest);color:#fff}.btn-suggest:hover:not(:disabled){background:#b45309;border-color:#b45309}.btn:disabled{opacity:.55;cursor:not-allowed}kbd{color:var(--text-strong);background:var(--bg-card);border:1px solid var(--border-strong);text-align:center;border-bottom-width:2px;border-radius:4px;min-width:1.5em;padding:1px 7px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;font-weight:600;line-height:1.2;display:inline-block}.kbd-hint{color:var(--text-muted);align-items:center;gap:.35rem;font-size:.78rem;display:inline-flex}:where(.appbar,.topnav) kbd{color:#fff;background:#ffffff29;border-color:#ffffff4d}:where(.appbar,.topnav) .kbd-hint{color:#ffffffb3}.boot-overlay[data-v-cd5ac26d]{background:var(--bg-page);z-index:1000;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.boot-card[data-v-cd5ac26d]{text-align:center;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;max-width:480px;padding:2rem;box-shadow:0 4px 20px #0f172a0f}.boot-icon[data-v-cd5ac26d]{margin-bottom:.4rem;font-size:3rem}.boot-card h1[data-v-cd5ac26d]{color:var(--text-strong);margin:0 0 .6rem;font-size:1.4rem}.boot-card .lead[data-v-cd5ac26d]{color:var(--text);font-size:.95rem;line-height:1.5}.boot-card .lead strong[data-v-cd5ac26d]{color:var(--accent)}.stage[data-v-cd5ac26d]{background:var(--accent-soft);color:var(--accent);border-radius:999px;align-items:center;gap:.6rem;margin:1.4rem 0 .8rem;padding:.55rem 1rem;font-size:.9rem;font-weight:500;display:inline-flex}.stage.error[data-v-cd5ac26d]{background:var(--danger-soft);color:var(--danger)}.stage .stage-text[data-v-cd5ac26d]{letter-spacing:.2px}.hint[data-v-cd5ac26d]{color:var(--text-muted);margin:0;font-size:.8rem}.err[data-v-cd5ac26d]{color:var(--danger);background:var(--danger-soft);border-radius:6px;margin-top:.8rem;padding:.5rem .7rem;font-size:.85rem}.spin[data-v-cd5ac26d]{border:2px solid;border-right-color:#0000;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite spin-cd5ac26d;display:inline-block}@keyframes spin-cd5ac26d{to{transform:rotate(360deg)}}.boot-enter-from[data-v-cd5ac26d],.boot-leave-to[data-v-cd5ac26d]{opacity:0}.boot-enter-active[data-v-cd5ac26d],.boot-leave-active[data-v-cd5ac26d]{transition:opacity .25s}.landing-icon[data-v-bb1fb7c5]{width:100%;height:100%;display:block}.theme-toggle[data-v-ccd01cf4]{border:1px solid var(--border-strong);background:var(--bg-card);width:34px;height:34px;color:var(--text);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;padding:0;transition:background .15s,border-color .15s,transform .1s;display:inline-flex}.theme-toggle[data-v-ccd01cf4]:hover{background:var(--bg-soft);border-color:var(--accent);color:var(--accent)}.theme-toggle[data-v-ccd01cf4]:active{transform:scale(.95)}.theme-toggle svg[data-v-ccd01cf4]{width:18px;height:18px}:where(.appbar,.topnav) .theme-toggle[data-v-ccd01cf4]{color:#fff;background:#ffffff1a;border-color:#ffffff40}:where(.appbar,.topnav) .theme-toggle[data-v-ccd01cf4]:hover{color:#fff;background:#fff3;border-color:#fff6}.landing[data-v-3845ff80]{background:var(--bg-page);color:var(--text);min-height:100vh}.reveal[data-v-3845ff80]{opacity:0;transition:opacity .6s,transform .6s;transform:translateY(20px)}.reveal.in-view[data-v-3845ff80]{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.reveal[data-v-3845ff80]{opacity:1;transition:none;transform:none}}.hero[data-v-3845ff80]{color:#fff;background:radial-gradient(circle at 80% 20%,#38bdf833,#0000 55%),radial-gradient(circle at 10% 80%,#8b5cf629,#0000 55%),radial-gradient(circle at 50% 110%,#ec48991a,#0000 60%),linear-gradient(135deg,#1e3a5f 0%,#2c4a72 60%,#1e293b 100%);padding:1rem 1.5rem 4rem;position:relative;overflow:hidden}.hero[data-v-3845ff80]:before{content:"";pointer-events:none;background-image:radial-gradient(#ffffff14 1px,#0000 1px);background-size:32px 32px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 60%,#0000);mask-image:linear-gradient(#000 60%,#0000)}.topnav[data-v-3845ff80]{z-index:1;justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto 3rem;display:flex;position:relative}.topnav .logo[data-v-3845ff80]{letter-spacing:-.015em;font-size:1.35rem;font-weight:700}.topnav-actions[data-v-3845ff80]{align-items:center;gap:.5rem;display:flex}.hero-inner[data-v-3845ff80]{z-index:1;grid-template-columns:1.1fr 1fr;align-items:center;gap:3rem;max-width:1200px;margin:0 auto;display:grid;position:relative}.hero-text .badge[data-v-3845ff80]{background:#ffffff1a;border:1px solid #fff3;border-radius:999px;align-items:center;gap:.45rem;margin-bottom:1.4rem;padding:.3rem .85rem;font-size:.78rem;display:inline-flex}.hero-text .badge .dot[data-v-3845ff80]{background:#6ee7b7;border-radius:50%;width:8px;height:8px;animation:2s ease-in-out infinite pulse-3845ff80;box-shadow:0 0 10px #6ee7b7}@keyframes pulse-3845ff80{50%{opacity:.4;transform:scale(.8)}}.hero-text h1[data-v-3845ff80]{letter-spacing:-.025em;margin:0 0 1.2rem;font-size:clamp(2.1rem,4.6vw,3.6rem);font-weight:750;line-height:1.05}.hero-text h1 .accent[data-v-3845ff80]{background:linear-gradient(120deg,#93c5fd 0%,#c4b5fd 50%,#f0abfc 100%);color:#0000;-webkit-background-clip:text;background-clip:text}.hero-text .lead[data-v-3845ff80]{color:#ffffffdb;max-width:560px;margin:0 0 1.8rem;font-size:1.1rem;line-height:1.6}.cta-row[data-v-3845ff80]{flex-wrap:wrap;gap:.75rem;margin-bottom:1rem;display:flex}.btn.big[data-v-3845ff80]{border-radius:8px;align-items:center;gap:.4rem;padding:.78rem 1.5rem;font-size:1rem;font-weight:600;display:inline-flex}.btn.big.btn-primary[data-v-3845ff80]{color:#1e3a5f;background:#fff;border:none;transition:transform .12s,box-shadow .15s;box-shadow:0 4px 14px #0000002e}.btn.big.btn-primary[data-v-3845ff80]:hover{background:#f1f5f9;transform:translateY(-1px);box-shadow:0 8px 20px #00000038}.btn.big.ghost[data-v-3845ff80]{color:#fff;background:#ffffff14;border:1px solid #ffffff40;text-decoration:none}.btn.big.ghost[data-v-3845ff80]:hover{background:#ffffff2e;text-decoration:none}.micro[data-v-3845ff80]{color:#ffffffa6;margin:.4rem 0 0;font-size:.82rem}.micro .ok[data-v-3845ff80]{color:#6ee7b7}.micro .warn[data-v-3845ff80]{color:#fca5a5}.hero-art[data-v-3845ff80]{justify-content:center;display:flex}.window[data-v-3845ff80]{background:#0f1d31;border:1px solid #ffffff1f;border-radius:12px;width:100%;max-width:460px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;overflow:hidden;transform:rotate(-1deg);box-shadow:0 25px 50px #00000059}.window.float[data-v-3845ff80]{animation:6s ease-in-out infinite float-3845ff80}@keyframes float-3845ff80{0%,to{transform:rotate(-1deg)translateY(0)}50%{transform:rotate(-1deg)translateY(-6px)}}.win-bar[data-v-3845ff80]{background:#1a2942;border-bottom:1px solid #ffffff0f;align-items:center;gap:.45rem;padding:.55rem .75rem;display:flex}.win-bar .dot[data-v-3845ff80]{border-radius:50%;width:11px;height:11px}.win-bar .dot.r[data-v-3845ff80]{background:#ef4444}.win-bar .dot.y[data-v-3845ff80]{background:#f59e0b}.win-bar .dot.g[data-v-3845ff80]{background:#22c55e}.win-bar .win-title[data-v-3845ff80]{color:#ffffff8c;margin-left:auto;margin-right:auto;font-size:.78rem}.win-body[data-v-3845ff80]{color:#e2e8f0;padding:.85rem;font-size:.82rem}.cell[data-v-3845ff80]{border-radius:6px;margin-bottom:.55rem;padding:.65rem .85rem}.cell.md[data-v-3845ff80]{background:#a78bfa14;border-left:3px solid #a78bfa;font-family:system-ui;font-size:.85rem}.cell.md .hl[data-v-3845ff80]{color:#ddd6fe;font-weight:600}.cell.md .muted[data-v-3845ff80]{color:#ffffff8c;margin-top:.2rem;font-size:.8rem}.cell.code[data-v-3845ff80]{background:#22c55e0f;border-left:3px solid #22c55e;font-size:.79rem;line-height:1.55}.cell.code .kw[data-v-3845ff80]{color:#c084fc}.cell.code .fn[data-v-3845ff80]{color:#fbbf24}.cell.code .num[data-v-3845ff80]{color:#5eead4}.grade-strip[data-v-3845ff80]{background:#ffffff0a;border-radius:6px;align-items:center;gap:.35rem;padding:.55rem .6rem;font-family:ui-monospace,monospace;font-size:.75rem;display:flex}.qchip[data-v-3845ff80]{color:#ffffffb3;background:#ffffff14;border-radius:4px;padding:.15rem .5rem}.qchip.on[data-v-3845ff80]{color:#fff;background:#2563eb}.grade-score[data-v-3845ff80]{color:#6ee7b7;margin-left:auto;font-weight:600}.testimonial[data-v-3845ff80]{background:var(--bg-page);padding:4rem 1.5rem 2.5rem}.quote-card[data-v-3845ff80]{background:linear-gradient(135deg, var(--bg-card) 0%, var(--accent-soft) 100%);border:1px solid var(--accent-bd);border-radius:14px;grid-template-columns:auto 1fr;align-items:center;gap:2rem;max-width:880px;margin:0 auto;padding:1.7rem 2rem;display:grid;box-shadow:0 6px 20px #0f172a0f}.quote-card .stat[data-v-3845ff80]{border-right:1px solid var(--accent-bd);flex-direction:column;align-items:center;min-width:120px;padding-right:1.6rem;display:flex}.quote-card .stat strong[data-v-3845ff80]{letter-spacing:-.04em;color:var(--accent);font-variant-numeric:tabular-nums;font-size:clamp(2.4rem,4.5vw,3.4rem);font-weight:800;line-height:1}.quote-card .stat span[data-v-3845ff80]{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);text-align:center;margin-top:.35rem;font-size:.78rem}.quote-card .claim h2[data-v-3845ff80]{letter-spacing:-.01em;color:var(--text-strong);margin:0 0 .4rem;font-size:clamp(1.15rem,2vw,1.45rem);font-weight:700;line-height:1.25}.quote-card .claim p[data-v-3845ff80]{color:var(--text);margin:0;font-size:.95rem;line-height:1.55}.quote-card .claim .hl[data-v-3845ff80]{color:var(--accent);font-weight:700}@media (width<=700px){.quote-card[data-v-3845ff80]{grid-template-columns:1fr;gap:1rem;padding:1.4rem 1.5rem}.quote-card .stat[data-v-3845ff80]{border-right:none;border-bottom:1px solid var(--accent-bd);padding-bottom:1rem;padding-right:0}}.section-head[data-v-3845ff80]{text-align:center;max-width:720px;margin:0 auto 2.2rem}.section-head h2[data-v-3845ff80]{letter-spacing:-.015em;color:var(--text-strong);margin:0 0 .6rem;font-size:clamp(1.55rem,3vw,2.15rem);font-weight:700}.section-head p[data-v-3845ff80]{color:var(--text-muted);margin:0;font-size:1rem;line-height:1.5}.workflow[data-v-3845ff80]{background:var(--bg-page);padding:5rem 1.5rem}.screens[data-v-3845ff80]{grid-template-columns:repeat(3,1fr);gap:1.25rem;max-width:1300px;margin:0 auto;display:grid}.screen[data-v-3845ff80]{flex-direction:column;transition:transform .2s,opacity .6s;display:flex;position:relative}.screen[data-v-3845ff80]:hover{transform:translateY(-4px)}.screen-tag[data-v-3845ff80]{color:var(--accent);background:var(--accent-soft);border-radius:999px;align-self:flex-start;margin-bottom:.55rem;padding:.2rem .7rem;font-size:.78rem;font-weight:600;display:inline-block}.mock[data-v-3845ff80]{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 6px 24px #0f172a14}.mock-bar[data-v-3845ff80]{background:var(--bg-soft);border-bottom:1px solid var(--border);align-items:center;gap:.4rem;padding:.5rem .7rem;display:flex}.mock-bar.navy[data-v-3845ff80]{background:var(--header-bg);border-bottom-color:#ffffff1a}.mock-bar.navy .mock-title[data-v-3845ff80]{color:#ffffffd9}.mock-bar .dot[data-v-3845ff80]{border-radius:50%;width:10px;height:10px}.mock-bar .dot.r[data-v-3845ff80]{background:#ef4444}.mock-bar .dot.y[data-v-3845ff80]{background:#f59e0b}.mock-bar .dot.g[data-v-3845ff80]{background:#22c55e}.mock-bar .mock-title[data-v-3845ff80]{color:var(--text-muted);margin-left:auto;margin-right:auto;font-size:.78rem}.mock-body[data-v-3845ff80]{min-height:280px;padding:.85rem}.setup-mock[data-v-3845ff80]{flex-direction:column;gap:.5rem;display:flex}.filebox[data-v-3845ff80]{background:var(--success-soft);border:1px solid var(--success-bd);color:var(--text);border-radius:6px;align-items:center;gap:.45rem;padding:.45rem .6rem;font-size:.8rem;display:flex}.filebox .ico[data-v-3845ff80]{font-size:1rem}.filebox .fname[data-v-3845ff80]{font-family:ui-monospace,monospace;font-weight:500}.filebox .ftag[data-v-3845ff80]{color:var(--success);background:var(--bg-card);text-transform:uppercase;letter-spacing:.4px;border-radius:999px;margin-left:auto;padding:1px 7px;font-size:.68rem;font-weight:600}.meta-row[data-v-3845ff80]{flex-wrap:wrap;gap:.35rem;display:flex}.meta-row .pill[data-v-3845ff80]{background:var(--bg-soft);border:1px solid var(--border);color:var(--text-muted);border-radius:999px;padding:2px 8px;font-size:.7rem}.meta-row .pill.ok[data-v-3845ff80]{background:var(--accent-soft);color:var(--accent-tx);border-color:var(--accent-bd);font-weight:600}.dropzone[data-v-3845ff80]{border:1px dashed var(--accent);text-align:center;color:var(--accent);background:var(--accent-soft);border-radius:6px;margin-top:.2rem;padding:.55rem .6rem;font-size:.82rem;font-weight:500}.qrow[data-v-3845ff80]{grid-template-columns:18px 60px 1fr 36px;align-items:center;gap:.5rem;font-size:.82rem;display:grid}.qrow.off[data-v-3845ff80]{opacity:.4}.qrow .check[data-v-3845ff80]{background:var(--bg-soft);width:18px;height:18px;color:var(--text-muted);border:1px solid var(--border-strong);border-radius:4px;justify-content:center;align-items:center;font-size:.7rem;display:inline-flex}.qrow .check.on[data-v-3845ff80]{background:var(--success);color:#fff;border-color:var(--success)}.qrow code[data-v-3845ff80]{background:var(--accent-soft);color:var(--accent-tx);border-radius:3px;padding:1px 6px;font-size:.75rem}.qrow .bar[data-v-3845ff80]{background:var(--bg-soft);border-radius:3px;height:6px;overflow:hidden}.qrow .bar i[data-v-3845ff80]{background:linear-gradient(90deg, var(--accent), #93c5fd);border-radius:3px;height:100%;display:block}.qrow .pts[data-v-3845ff80]{color:var(--text-muted);text-align:right;font-size:.72rem}.grading-mock[data-v-3845ff80]{flex-direction:column;gap:.55rem;display:flex}.g-top[data-v-3845ff80]{background:var(--bg-soft);border-radius:6px;align-items:center;gap:.5rem;padding:.35rem .5rem;display:flex}.g-nav[data-v-3845ff80]{border:1px solid var(--border-strong);background:var(--bg-card);width:24px;height:24px;color:var(--text);cursor:default;border-radius:4px;justify-content:center;align-items:center;font-size:.85rem;display:inline-flex}.g-name[data-v-3845ff80]{text-align:center;flex-direction:column;flex:1;gap:1px;display:flex}.g-name strong[data-v-3845ff80]{color:var(--text-strong);font-size:.86rem}.g-name span[data-v-3845ff80]{color:var(--text-muted);font-family:ui-monospace,monospace;font-size:.72rem}.g-chips[data-v-3845ff80]{flex-wrap:wrap;gap:.3rem;display:flex}.g-chips .qchip[data-v-3845ff80]{background:var(--bg-soft);color:var(--text);border:1px solid var(--border-strong);border-radius:4px;align-items:center;padding:.18rem .55rem;font-family:ui-monospace,monospace;font-size:.72rem;display:inline-flex}.g-chips .qchip.done[data-v-3845ff80]{border-color:var(--success);color:var(--success)}.g-chips .qchip.active[data-v-3845ff80]{background:var(--accent);color:#fff;border-color:var(--accent)}.g-pane[data-v-3845ff80]{grid-template-columns:1fr 1fr;gap:.4rem;font-family:ui-monospace,monospace;font-size:.72rem;display:grid}.g-col[data-v-3845ff80]{background:var(--code-bg);border-left:3px solid;border-radius:6px;padding:.45rem .55rem}.g-col.solution[data-v-3845ff80]{border-left-color:var(--accent)}.g-col.student[data-v-3845ff80]{border-left-color:var(--success)}.g-col .lbl[data-v-3845ff80]{color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;margin-bottom:.3rem;font-size:.65rem}.g-col .g-line[data-v-3845ff80]{line-height:1.4}.g-col .kw[data-v-3845ff80]{color:#8b5cf6}.g-col .fn[data-v-3845ff80]{color:#d97706}.g-col .num[data-v-3845ff80]{color:#0d9488}.g-actions[data-v-3845ff80]{align-items:center;gap:.45rem;display:flex}.suggest-pill[data-v-3845ff80]{background:var(--warning-soft);color:var(--warning-tx);border-radius:999px;padding:.2rem .6rem;font-size:.72rem;font-weight:600}.comment-mini[data-v-3845ff80]{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.72rem;font-style:italic;overflow:hidden}.btn-mini[data-v-3845ff80]{background:var(--accent);color:#fff;border-radius:4px;margin-left:auto;padding:.25rem .7rem;font-size:.75rem;font-weight:600}.compare-mock[data-v-3845ff80]{flex-direction:column;gap:.55rem;display:flex}.cmp-head[data-v-3845ff80]{background:var(--danger-soft);border:1px solid var(--danger-bd);border-radius:6px;align-items:center;gap:.5rem;padding:.5rem .65rem;display:flex}.cmp-pair[data-v-3845ff80]{flex:1;align-items:center;gap:.35rem;font-size:.85rem;display:flex}.cmp-pair strong[data-v-3845ff80]{color:var(--text-strong)}.cmp-arrow[data-v-3845ff80]{color:var(--text-muted)}.cmp-score[data-v-3845ff80]{font-size:1rem;font-weight:700}.cmp-score.danger[data-v-3845ff80]{color:var(--danger)}.cmp-q[data-v-3845ff80]{background:var(--bg-soft);border-radius:4px;align-items:center;gap:.4rem;padding:.35rem .55rem;font-size:.78rem;display:flex}.cmp-q code[data-v-3845ff80]{background:var(--accent-soft);color:var(--accent-tx);border-radius:3px;padding:1px 6px;font-size:.78rem;font-weight:600}.cmp-q-sim[data-v-3845ff80]{color:var(--danger);font-family:ui-monospace,monospace;font-weight:600}.cmp-tag[data-v-3845ff80]{color:var(--danger);background:var(--bg-card);border:1px solid var(--danger-bd);border-radius:999px;margin-left:auto;padding:1px 7px;font-size:.68rem;font-weight:600}.cmp-codes[data-v-3845ff80]{grid-template-columns:1fr 1fr;gap:.4rem;font-family:ui-monospace,monospace;font-size:.7rem;line-height:1.45;display:grid}.cmp-col[data-v-3845ff80]{background:var(--code-bg);border:1px solid var(--border);border-radius:6px;padding:.4rem .5rem}.cmp-line[data-v-3845ff80]{color:var(--text);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.cmp-line.dim[data-v-3845ff80]{color:var(--text-muted)}.cmp-line .kw[data-v-3845ff80]{color:#8b5cf6}.cmp-line .fn[data-v-3845ff80]{color:#d97706}.cmp-line .num[data-v-3845ff80]{color:#0d9488}.cmp-block[data-v-3845ff80]{border-radius:4px;margin:.25rem -.25rem;padding:.3rem .4rem;position:relative}.cmp-block.exact[data-v-3845ff80]{border:1.5px solid var(--danger);background:linear-gradient(135deg,#ef444429,#ef44440f)}.cmp-tag-mini[data-v-3845ff80]{background:var(--bg-card);border:1px solid var(--danger);color:var(--danger);border-radius:3px;padding:0 4px;font-family:system-ui,sans-serif;font-size:.6rem;line-height:1.2;position:absolute;top:-7px;right:-3px}.features[data-v-3845ff80]{background:var(--bg-card);border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:5rem 1.5rem}.features .grid[data-v-3845ff80]{grid-template-columns:repeat(3,1fr);gap:1rem;max-width:1200px;margin:0 auto;display:grid}.features article[data-v-3845ff80]{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:1.4rem 1.4rem 1.5rem;transition:transform .15s,box-shadow .15s,border-color .15s}.features article[data-v-3845ff80]:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 8px 24px #0f172a14}.features article .ico[data-v-3845ff80]{background:var(--accent-soft);width:48px;height:48px;color:var(--accent);border-radius:10px;justify-content:center;align-items:center;margin-bottom:.85rem;padding:12px;transition:background .15s,color .15s,transform .15s;display:inline-flex}.features article:hover .ico[data-v-3845ff80]{background:var(--accent);color:#fff;transform:scale(1.05)}.features article h3[data-v-3845ff80]{color:var(--text-strong);margin:0 0 .4rem;font-size:1.05rem}.features article p[data-v-3845ff80]{color:var(--text);margin:0;font-size:.92rem;line-height:1.55}.how[data-v-3845ff80]{background:var(--bg-page);padding:5rem 1.5rem}.how .steps[data-v-3845ff80]{grid-template-columns:repeat(3,1fr);gap:1.5rem;max-width:1100px;margin:0 auto;padding:0;list-style:none;display:grid}.how .steps li[data-v-3845ff80]{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:1.4rem;position:relative}.how .steps .num[data-v-3845ff80]{background:var(--accent);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;margin-bottom:.7rem;font-weight:700;display:inline-flex}.how .steps h3[data-v-3845ff80]{color:var(--text-strong);margin:0 0 .4rem;font-size:1.05rem}.how .steps p[data-v-3845ff80]{color:var(--text);margin:0;font-size:.92rem;line-height:1.55}.how .steps code[data-v-3845ff80]{background:var(--accent-soft);color:var(--accent-tx);border:1px solid var(--accent-bd);border-radius:3px;padding:1px 6px;font-size:.85em}.audience[data-v-3845ff80]{background:var(--bg-card);border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:5rem 1.5rem}.personas[data-v-3845ff80]{grid-template-columns:repeat(3,1fr);gap:1rem;max-width:1100px;margin:0 auto;display:grid}.personas article[data-v-3845ff80]{background:var(--bg-page);border:1px solid var(--border);text-align:left;border-radius:12px;padding:1.6rem;transition:border-color .15s,transform .15s}.personas article[data-v-3845ff80]:hover{border-color:var(--accent);transform:translateY(-2px)}.personas article .ico[data-v-3845ff80]{background:linear-gradient(135deg, var(--accent-soft), #8b5cf62e);width:52px;height:52px;color:var(--accent);border-radius:14px;justify-content:center;align-items:center;margin-bottom:.7rem;padding:13px;transition:transform .15s;display:inline-flex}.personas article:hover .ico[data-v-3845ff80]{transform:rotate(-4deg)scale(1.06)}.personas article h3[data-v-3845ff80]{color:var(--text-strong);margin:0 0 .45rem;font-size:1.05rem}.personas article p[data-v-3845ff80]{color:var(--text);margin:0;font-size:.9rem;line-height:1.55}.faq[data-v-3845ff80]{background:var(--bg-card);border-top:1px solid var(--border);padding:5rem 1.5rem}.faq-grid[data-v-3845ff80]{grid-template-columns:1fr 1fr;align-items:start;gap:.7rem;max-width:900px;margin:0 auto;display:grid}.faq details[data-v-3845ff80]{background:var(--bg-page);border:1px solid var(--border);border-radius:10px;padding:.85rem 1rem;transition:border-color .15s}.faq details[data-v-3845ff80]:hover{border-color:var(--border-strong)}.faq details[open][data-v-3845ff80]{border-color:var(--accent)}.faq summary[data-v-3845ff80]{cursor:pointer;color:var(--text-strong);padding-right:1.2rem;font-size:.95rem;font-weight:600;list-style:none;position:relative}.faq summary[data-v-3845ff80]::-webkit-details-marker{display:none}.faq summary[data-v-3845ff80]:after{content:"+";color:var(--accent);font-size:1.3rem;font-weight:400;transition:transform .2s;position:absolute;top:50%;right:0;transform:translateY(-50%)}.faq details[open] summary[data-v-3845ff80]:after{content:"–"}.faq summary code[data-v-3845ff80]{background:var(--accent-soft);color:var(--accent-tx);border-radius:3px;padding:1px 6px;font-size:.85em;font-weight:500}.faq details p[data-v-3845ff80]{color:var(--text);margin:.7rem 0 0;font-size:.92rem;line-height:1.55}.faq details code[data-v-3845ff80]{background:var(--accent-soft);color:var(--accent-tx);border-radius:3px;padding:1px 5px;font-size:.86em}.final-cta[data-v-3845ff80]{text-align:center;background:radial-gradient(circle at 50% 50%, #2563eb1f, transparent 70%), var(--bg-page);padding:5rem 1.5rem}.final-cta h2[data-v-3845ff80]{color:var(--text-strong);letter-spacing:-.015em;margin:0 0 .6rem;font-size:clamp(1.7rem,3.5vw,2.5rem);font-weight:700}.final-cta p[data-v-3845ff80]{color:var(--text-muted);margin:0 0 1.5rem;font-size:1.05rem}.final-cta .btn.big.btn-primary[data-v-3845ff80]{background:var(--accent);color:#fff;border:none;padding:.85rem 1.7rem;font-size:1.05rem}.final-cta .btn.big.btn-primary[data-v-3845ff80]:hover{background:var(--accent-hover)}.foot[data-v-3845ff80]{background:var(--header-bg);color:#ffffffbf;text-align:center;padding:2rem 1.5rem 3rem;font-size:.85rem}.foot p[data-v-3845ff80]{margin:0}.foot a[data-v-3845ff80]{color:#93c5fd}.foot a[data-v-3845ff80]:hover{color:#fff}@media (width<=1024px){.screens[data-v-3845ff80]{grid-template-columns:1fr;max-width:600px}.features .grid[data-v-3845ff80]{grid-template-columns:repeat(2,1fr)}.how .steps[data-v-3845ff80],.personas[data-v-3845ff80],.faq-grid[data-v-3845ff80]{grid-template-columns:1fr}}@media (width<=700px){.hero[data-v-3845ff80]{padding:1rem 1.25rem 3rem}.hero-inner[data-v-3845ff80]{grid-template-columns:1fr;gap:2rem}.hero-art[data-v-3845ff80]{order:-1}.window[data-v-3845ff80]{max-width:380px;transform:none}.window.float[data-v-3845ff80]{animation:none}.features .grid[data-v-3845ff80]{grid-template-columns:1fr}}.points-input[data-v-dad8024c]{border:1px solid var(--border-strong);background:var(--bg-card);-webkit-user-select:none;user-select:none;border-radius:6px;align-items:stretch;transition:border-color .1s,box-shadow .1s;display:inline-flex;overflow:hidden}.points-input.focused[data-v-dad8024c]{border-color:var(--accent);box-shadow:0 0 0 3px #2563eb26}.points-input.disabled[data-v-dad8024c]{opacity:.55}.value[data-v-dad8024c]{text-align:center;width:52px;color:var(--text);-moz-appearance:textfield;background:0 0;border:none;padding:.3rem .2rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92rem;font-weight:600}.value[data-v-dad8024c]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.value[data-v-dad8024c]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.value[data-v-dad8024c]:focus{outline:none}.step[data-v-dad8024c]{background:var(--bg-soft);cursor:pointer;width:28px;color:var(--text-muted);border:none;padding:0;font-size:1.1rem;font-weight:600;line-height:1;transition:background .1s,color .1s}.step[data-v-dad8024c]:hover:not(:disabled){background:var(--accent-soft);color:var(--accent)}.step[data-v-dad8024c]:active:not(:disabled){background:var(--accent);color:#fff}.step[data-v-dad8024c]:disabled{cursor:not-allowed;opacity:.5}.step[data-v-dad8024c]:first-of-type{border-right:1px solid var(--border)}.step[data-v-dad8024c]:last-of-type{border-left:1px solid var(--border)}.page[data-v-c540ad36]{background:var(--bg-page);min-height:100vh}.appbar[data-v-c540ad36]{background:var(--header-bg);color:var(--header-text);align-items:center;padding:.7rem 1.25rem;display:flex;box-shadow:0 2px 8px #00000014}.appbar h1[data-v-c540ad36]{letter-spacing:-.015em;margin:0;font-size:1.3rem;font-weight:700}.appbar .meta[data-v-c540ad36]{color:#ffffffbf;font-size:.78rem}.appbar .title[data-v-c540ad36]{color:inherit;border-radius:6px;flex-direction:column;margin:-.25rem -.55rem;padding:.25rem .55rem;text-decoration:none;transition:background .15s;display:flex}.appbar .title[data-v-c540ad36]:hover{background:#ffffff14;text-decoration:none}.appbar .title[data-v-c540ad36]:focus-visible{outline-offset:2px;outline:2px solid #ffffff80}.body[data-v-c540ad36]{flex-direction:column;gap:1rem;max-width:940px;margin:0 auto;padding:1.25rem 1.25rem 3rem;display:flex}.stepper[data-v-c540ad36]{align-items:center;gap:0;margin:0 0 .5rem;padding:0;list-style:none;display:flex}.stepper li[data-v-c540ad36]{color:var(--text-muted);flex:1;align-items:center;gap:.5rem;padding:.55rem .85rem;font-size:.85rem;display:flex;position:relative}.stepper li[data-v-c540ad36]:after{content:"";background:var(--border);width:30%;height:1px;position:absolute;top:50%;right:0}.stepper li[data-v-c540ad36]:last-child:after{display:none}.stepper li .dot[data-v-c540ad36]{background:var(--bg-card);border:1px solid var(--border-strong);width:24px;height:24px;color:var(--text-muted);border-radius:50%;justify-content:center;align-items:center;font-size:.78rem;font-weight:600;display:inline-flex}.stepper li.active .dot[data-v-c540ad36]{background:var(--accent);border-color:var(--accent);color:#fff}.stepper li.active[data-v-c540ad36]{color:var(--text-strong)}.stepper li.done .dot[data-v-c540ad36]{background:var(--success);border-color:var(--success);color:#fff}.stepper li.done[data-v-c540ad36]{color:var(--success)}.card[data-v-c540ad36]{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;transition:opacity .2s;overflow:hidden;box-shadow:0 1px 2px #0f172a0a}.card.dimmed[data-v-c540ad36]{opacity:.55}.card-head[data-v-c540ad36]{background:var(--bg-soft);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:.6rem 1rem;display:flex}.card-head h2[data-v-c540ad36]{color:var(--text-strong);align-items:center;gap:.55rem;margin:0;font-size:.95rem;font-weight:600;display:flex}.card-head .num[data-v-c540ad36]{background:var(--accent);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:.78rem;display:inline-flex}.card-head .card-meta[data-v-c540ad36]{color:var(--text-muted);font-size:.78rem}.card-body[data-v-c540ad36]{padding:1rem 1.1rem}.upload[data-v-c540ad36]{align-items:center;gap:.65rem;display:flex}.file-input[data-v-c540ad36]{background:var(--bg-soft);border:2px dashed var(--border-strong);cursor:pointer;border-radius:8px;flex:1;align-items:center;gap:.55rem;padding:.65rem .85rem;transition:border-color .15s,background .15s;display:flex}.file-input[data-v-c540ad36]:hover:not(.disabled){border-color:var(--accent);background:var(--accent-soft)}.file-input.filled[data-v-c540ad36]{border-style:solid;border-color:var(--success);background:var(--success-soft)}.file-input.disabled[data-v-c540ad36]{cursor:not-allowed;opacity:.55}.file-input input[data-v-c540ad36]{display:none}.file-input .icon[data-v-c540ad36]{font-size:1.05rem}.file-input .text[data-v-c540ad36]{color:var(--text);font-size:.9rem}.error[data-v-c540ad36]{color:var(--danger);background:var(--danger-soft);border-radius:6px;margin-top:.7rem;padding:.45rem .7rem;font-size:.85rem}.results[data-v-c540ad36]{margin-top:1rem}.result-meta[data-v-c540ad36]{color:var(--text);flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.6rem;font-size:.9rem;display:flex}.pill[data-v-c540ad36]{background:var(--bg-soft);border:1px solid var(--border);color:var(--text-muted);border-radius:999px;padding:2px 9px;font-size:.74rem;display:inline-block}.pill.type[data-v-c540ad36]{background:var(--accent-soft);border-color:var(--accent-bd);color:var(--accent-tx);font-family:ui-monospace,monospace}.pill.total[data-v-c540ad36]{background:var(--success-soft);border-color:var(--success-bd);color:var(--success-tx);font-weight:600}.pill.warn[data-v-c540ad36]{background:var(--warning-soft);border-color:var(--warning-bd);color:var(--warning-tx)}.qtable-wrap[data-v-c540ad36]{border:1px solid var(--border);border-radius:8px;overflow:hidden}.bulk-toggle[data-v-c540ad36]{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:.4rem;margin:.4rem 0 .5rem;font-size:.82rem;display:flex}.btn-link[data-v-c540ad36]{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:.15rem .3rem;font-size:.82rem}.btn-link[data-v-c540ad36]:hover:not(:disabled){text-decoration:underline}.btn-link[data-v-c540ad36]:disabled{color:var(--text-muted);cursor:default}.bulk-toggle .sep[data-v-c540ad36],.bulk-hint[data-v-c540ad36]{color:var(--text-muted)}.qtable[data-v-c540ad36]{border-collapse:collapse;width:100%;font-size:.88rem}.qtable .check-col[data-v-c540ad36]{text-align:center;width:50px}.grade-check[data-v-c540ad36]{cursor:pointer;width:16px;height:16px;accent-color:var(--accent)}.qtable tr.skipped[data-v-c540ad36]{background:var(--bg-soft);opacity:.55}.qtable tr.skipped .qcode[data-v-c540ad36]{background:var(--bg-soft);border-color:var(--border);color:var(--text-muted)}.qtable th[data-v-c540ad36]{background:var(--bg-soft);text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);padding:.5rem .7rem;font-size:.74rem;font-weight:600}.qtable td[data-v-c540ad36]{border-bottom:1px solid var(--border);vertical-align:middle;padding:.5rem .7rem}.qtable tr:last-child td[data-v-c540ad36]{border-bottom:none}.qtable tr[data-v-c540ad36]:hover{background:var(--bg-soft)}.num-col[data-v-c540ad36]{width:130px}.qcode[data-v-c540ad36]{background:var(--accent-soft);color:var(--accent-tx);border:1px solid var(--accent-bd);border-radius:4px;padding:2px 7px;font-size:.82rem;font-weight:600}.statement[data-v-c540ad36]{color:var(--text-muted);max-width:400px;font-size:.83rem}.warn-details[data-v-c540ad36]{margin-top:.7rem}.warn-details summary[data-v-c540ad36]{cursor:pointer;color:var(--warning);font-size:.85rem}.warn-details ul[data-v-c540ad36]{color:var(--text-muted);max-height:200px;margin:.5rem 0 0;padding-left:1.2rem;font-size:.83rem;overflow-y:auto}.continue[data-v-c540ad36]{justify-content:flex-end;display:flex}.btn.big[data-v-c540ad36]{padding:.7rem 1.5rem;font-size:1rem}.spin[data-v-c540ad36]{vertical-align:middle;border:2px solid;border-right-color:#0000;border-radius:50%;width:12px;height:12px;margin-right:.4rem;animation:.7s linear infinite spin-c540ad36;display:inline-block}@keyframes spin-c540ad36{to{transform:rotate(360deg)}}pre code.hljs{padding:1em;display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#005cc5}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-comment,.hljs-code,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}.notebook[data-v-a984a0c8]{flex-direction:column;gap:.5rem;display:flex}.placeholder[data-v-a984a0c8]{color:var(--text-muted);text-align:center;padding:1rem;font-style:italic}.cell[data-v-a984a0c8]{border:1px solid var(--border);background:var(--bg-card);border-radius:6px;flex-direction:column;display:flex;overflow:hidden}.cell.markdown[data-v-a984a0c8]{border-left:3px solid #8b5cf6}.cell.code[data-v-a984a0c8]{border-left:3px solid var(--success)}.cell.output[data-v-a984a0c8]{border-left:3px solid var(--warning);background:var(--output-bg);margin-top:-.35rem}.cell-head[data-v-a984a0c8]{text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);background:var(--bg-soft);border-bottom:1px solid var(--border);padding:.28rem .6rem;font-size:.7rem}.cell.output .cell-head[data-v-a984a0c8]{color:var(--output-label);background:#f59e0b14;border-bottom-color:#f59e0b40;font-weight:600}.md[data-v-a984a0c8]{padding:.7rem .9rem}.md[data-v-a984a0c8] p{margin:.4rem 0}.md[data-v-a984a0c8] h1,.md[data-v-a984a0c8] h2,.md[data-v-a984a0c8] h3{color:var(--text-strong);margin:.6rem 0 .3rem}.md[data-v-a984a0c8] code{background:var(--code-bg);border:1px solid var(--code-border);border-radius:3px;padding:1px 4px;font-size:.9em}pre.code[data-v-a984a0c8]{background:var(--code-bg);vertical-align:top;white-space:pre;margin:0;padding:.55rem .85rem;font-size:.85rem;line-height:1.5;display:block;overflow-x:auto}pre.code[data-v-a984a0c8] code.hljs{vertical-align:top;background:0 0;padding:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;display:block}pre.output-body[data-v-a984a0c8]{color:var(--output-text);white-space:pre-wrap;word-break:break-word;background:0 0;margin:0;padding:.55rem .85rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;line-height:1.5}.code-editor[data-v-9d96bbda]{background:var(--code-bg);border:1px solid var(--border-strong);height:calc(var(--rows,12) * 1.5em + 1.1rem);border-radius:6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;line-height:1.5;position:relative;overflow:hidden}.code-editor .hl[data-v-9d96bbda],.code-editor .input[data-v-9d96bbda]{font-family:inherit;font-size:inherit;line-height:inherit;white-space:pre;word-spacing:normal;tab-size:4;background:0 0;border:0;margin:0;padding:.55rem .75rem;position:absolute;inset:0;overflow:auto}.code-editor .hl[data-v-9d96bbda]{pointer-events:none;color:var(--text)}.code-editor .hl[data-v-9d96bbda] code.hljs{background:0 0;padding:0}.code-editor .input[data-v-9d96bbda]{resize:none;color:#0000;caret-color:var(--text-strong);-webkit-text-fill-color:transparent}.code-editor .input[data-v-9d96bbda]::selection{-webkit-text-fill-color:transparent;background:#2563eb40}.code-editor .input[data-v-9d96bbda]::placeholder{color:var(--text-muted);-webkit-text-fill-color:var(--text-muted)}.code-editor .input[data-v-9d96bbda]:focus{outline:2px solid var(--accent);outline-offset:-2px}.page[data-v-02b5b7e3]{background:var(--bg-page);min-height:100vh}.appbar[data-v-02b5b7e3]{background:var(--header-bg);color:var(--header-text);justify-content:space-between;align-items:center;gap:1rem;padding:.7rem 1.25rem;display:flex;box-shadow:0 2px 8px #00000014}.appbar h1[data-v-02b5b7e3]{letter-spacing:-.015em;margin:0;font-size:1.3rem;font-weight:700}.appbar .meta[data-v-02b5b7e3]{color:#ffffffbf;font-size:.78rem}.appbar .title[data-v-02b5b7e3]{color:inherit;border-radius:6px;flex-direction:column;margin:-.25rem -.55rem;padding:.25rem .55rem;text-decoration:none;transition:background .15s;display:flex}.appbar .title[data-v-02b5b7e3]:hover{background:#ffffff14;text-decoration:none}.appbar .title[data-v-02b5b7e3]:focus-visible{outline-offset:2px;outline:2px solid #ffffff80}.appbar .actions[data-v-02b5b7e3]{gap:.5rem;display:flex}.appbar .btn[data-v-02b5b7e3]{color:#fff;background:#ffffff1a;border-color:#ffffff40}.appbar .btn[data-v-02b5b7e3]:hover:not(:disabled){background:#fff3}.appbar .btn-primary[data-v-02b5b7e3]{background:var(--accent);border-color:var(--accent)}.appbar .btn-warn[data-v-02b5b7e3]{background:var(--warning);border-color:var(--warning);color:#fff}.appbar .btn-warn[data-v-02b5b7e3]:hover:not(:disabled){background:#b45309;border-color:#b45309}.topnav[data-v-02b5b7e3]{background:var(--bg-card);border-bottom:1px solid var(--border);align-items:center;gap:.75rem;padding:.6rem 1.25rem;display:flex}.nav-btn[data-v-02b5b7e3]{min-width:100px}.cur-student[data-v-02b5b7e3]{flex-direction:column;flex:1;align-items:center;display:flex}.cs-name[data-v-02b5b7e3]{color:var(--text-strong);font-size:.95rem;font-weight:600}.cs-meta[data-v-02b5b7e3]{color:var(--text-muted);font-size:.78rem}.cs-meta code[data-v-02b5b7e3]{background:var(--code-bg);border-radius:3px;padding:1px 4px}.cs-meta.muted[data-v-02b5b7e3]{font-style:italic}.body[data-v-02b5b7e3]{flex-direction:column;gap:.85rem;max-width:1500px;margin:0 auto;padding:1rem 1.25rem 2rem;display:flex}.row.split[data-v-02b5b7e3]{grid-template-columns:2fr 1fr;gap:.85rem;display:grid}.code-row[data-v-02b5b7e3]{align-items:stretch;gap:0;display:flex}.code-row .pane.left[data-v-02b5b7e3]{flex:0 0 calc(var(--split-left,50%) - 5px);min-width:0}.code-row .pane.right[data-v-02b5b7e3]{flex:auto;min-width:0}.splitter[data-v-02b5b7e3]{cursor:col-resize;-webkit-user-select:none;user-select:none;background:0 0;flex:0 0 10px;justify-content:center;align-self:stretch;align-items:center;display:flex;position:relative}.splitter[data-v-02b5b7e3]:before{content:"";background:var(--border-strong);border-radius:2px;width:3px;height:44px;transition:background .1s,height .1s}.splitter[data-v-02b5b7e3]:hover:before{background:var(--accent);height:64px}.splitter.dragging[data-v-02b5b7e3]:before{background:var(--accent);width:2px;height:100%}.card[data-v-02b5b7e3]{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;overflow:hidden;box-shadow:0 1px 2px #0f172a0a}.card-head[data-v-02b5b7e3]{background:var(--bg-soft);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:.55rem .9rem;display:flex}.card-head h3[data-v-02b5b7e3]{color:var(--text-strong);margin:0;font-size:.85rem;font-weight:600}.card-head.solution h3[data-v-02b5b7e3]:before{content:""}.card-head .card-meta[data-v-02b5b7e3]{color:var(--text-muted);font-size:.78rem}.card-head .card-meta strong[data-v-02b5b7e3]{color:var(--text-strong)}.muted[data-v-02b5b7e3]{color:var(--text-muted)}.selector[data-v-02b5b7e3]{padding:0}.selector .card-head[data-v-02b5b7e3]{gap:.5rem}.sort-toggle[data-v-02b5b7e3]{align-items:center;gap:.25rem;display:flex}.sort-toggle .lbl[data-v-02b5b7e3]{color:var(--text-muted);margin-right:.2rem;font-size:.72rem}.sort-toggle button[data-v-02b5b7e3]{background:var(--bg-card);border:1px solid var(--border-strong);color:var(--text);border-radius:4px;padding:.2rem .55rem;font-size:.78rem}.sort-toggle button.active[data-v-02b5b7e3]{background:var(--accent);border-color:var(--accent);color:#fff}.student-select[data-v-02b5b7e3]{width:calc(100% - 1.6rem);margin:.7rem .8rem .4rem;padding:.5rem .6rem;font-family:inherit;font-size:.92rem}.hint[data-v-02b5b7e3]{color:var(--text-muted);margin:0;padding:0 .85rem .7rem;font-size:.75rem}.alert[data-v-02b5b7e3]{border-radius:6px;margin:0 .85rem .85rem;padding:.5rem .7rem;font-size:.82rem}.alert.warn[data-v-02b5b7e3]{background:var(--warning-soft);color:var(--warning-tx);border-left:3px solid var(--warning)}.summary-list[data-v-02b5b7e3]{margin:0;padding:.5rem 0;list-style:none}.summary-list li[data-v-02b5b7e3]{border-bottom:1px dashed var(--border);justify-content:space-between;padding:.35rem .9rem;font-size:.85rem;display:flex}.summary-list li[data-v-02b5b7e3]:last-child{border-bottom:none}.summary-list .qid[data-v-02b5b7e3]{color:var(--text-muted);font-family:ui-monospace,monospace}.summary-list .qmax[data-v-02b5b7e3]{color:var(--text-muted)}.summary-list li.done .qval[data-v-02b5b7e3]{color:var(--success);font-weight:600}.summary-list li.total[data-v-02b5b7e3]{border-top:1px solid var(--border-strong);background:var(--bg-soft);border-bottom:none;margin-top:.3rem;padding:.5rem .9rem;font-weight:600}.summary-list li.total .qid[data-v-02b5b7e3]{color:var(--text-strong)}.summary-list li.total .qval strong[data-v-02b5b7e3]{color:var(--accent);font-size:1.05rem}.qbar[data-v-02b5b7e3]{flex-wrap:wrap;gap:.35rem;padding:.7rem .9rem .4rem;display:flex}.qchip[data-v-02b5b7e3]{background:var(--bg-card);border:1px solid var(--border-strong);color:var(--text);border-radius:6px;align-items:center;gap:.35rem;padding:.35rem .7rem;font-size:.85rem;display:inline-flex}.qchip[data-v-02b5b7e3]:hover{background:var(--bg-soft)}.qchip-id[data-v-02b5b7e3]{font-family:ui-monospace,monospace;font-weight:600}.qchip-pts[data-v-02b5b7e3]{color:var(--text-muted);font-size:.72rem}.qchip.graded[data-v-02b5b7e3]{border-color:var(--success)}.qchip.graded .qchip-pts[data-v-02b5b7e3]{color:var(--success)}.qchip.active[data-v-02b5b7e3]{background:var(--accent);border-color:var(--accent);color:#fff}.qchip.active .qchip-pts[data-v-02b5b7e3]{color:#ffffffd9}.qstatement[data-v-02b5b7e3]{background:var(--accent-soft);border-left:3px solid var(--accent);color:var(--accent-tx);border-radius:4px;margin:.3rem .9rem .85rem;padding:.55rem .7rem;font-size:.85rem}.grading[data-v-02b5b7e3]{padding:0}.grading[data-v-02b5b7e3]>*{margin:0}.grade-row[data-v-02b5b7e3]{align-items:center;gap:.6rem;padding:.85rem .9rem .55rem;display:flex}.grade-input[data-v-02b5b7e3]{background:var(--bg-soft);border:1px solid var(--border-strong);border-radius:6px;align-items:center;gap:.35rem;padding:0 .5rem 0 0;display:flex}.grade-input input[data-v-02b5b7e3]{background:0 0;border:none;width:90px;padding:.45rem .55rem;font-family:ui-monospace,monospace;font-size:1.1rem;font-weight:600}.grade-input input[data-v-02b5b7e3]:focus{box-shadow:none}.grade-input .of[data-v-02b5b7e3]{color:var(--text-muted);font-size:.9rem}.btn-warn[data-v-02b5b7e3]{background:var(--warning);border-color:var(--warning);color:#fff}.quick-row[data-v-02b5b7e3]{align-items:center;gap:.4rem;padding:0 .9rem .6rem;display:flex}.quick-lbl[data-v-02b5b7e3]{color:var(--text-muted);margin-right:.4rem;font-size:.75rem}.btn.quick[data-v-02b5b7e3]{background:var(--bg-soft);padding:.28rem .55rem;font-size:.78rem}.btn.quick[data-v-02b5b7e3]:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.comment[data-v-02b5b7e3]{resize:vertical;width:calc(100% - 1.8rem);margin:0 .9rem .85rem;padding:.5rem .6rem;font-size:.85rem;display:block}.suggest-result[data-v-02b5b7e3]{border-top:1px solid var(--border);background:var(--bg-soft);margin:0;padding:.7rem .9rem}.suggest-result header[data-v-02b5b7e3]{align-items:center;gap:.55rem;font-size:.92rem;display:flex}.suggest-result .conf-pill[data-v-02b5b7e3]{text-transform:uppercase;letter-spacing:.4px;border-radius:999px;padding:1px 8px;font-size:.7rem;font-weight:600;display:inline-block}.conf-pill.high[data-v-02b5b7e3]{background:var(--success-soft);color:var(--success-tx)}.conf-pill.medium[data-v-02b5b7e3]{background:var(--warning-soft);color:var(--warning-tx)}.conf-pill.low[data-v-02b5b7e3]{background:var(--danger-soft);color:var(--danger-tx)}.conf-pill.none[data-v-02b5b7e3]{background:var(--border);color:var(--text-muted)}.suggest-comment[data-v-02b5b7e3]{background:var(--bg-card);border:1px solid var(--border);color:var(--text);white-space:pre-wrap;border-radius:4px;margin:.5rem 0 0;padding:.6rem .7rem;font-family:inherit;font-size:.83rem}.pane[data-v-02b5b7e3]{padding:0}.card-head.solution[data-v-02b5b7e3]{background:var(--solution-bg);border-bottom-color:var(--solution-bd)}.card-head.solution h3[data-v-02b5b7e3]{color:var(--solution-tx);align-items:center;gap:.5rem;display:inline-flex}.card-head.student[data-v-02b5b7e3]{background:var(--student-bg);border-bottom-color:var(--student-bd)}.card-head.student h3[data-v-02b5b7e3]{color:var(--student-tx);align-items:center;gap:.5rem;display:inline-flex}.card-head .side-dot[data-v-02b5b7e3]{opacity:.7;background:currentColor;border-radius:50%;width:8px;height:8px;display:inline-block}.btn-small[data-v-02b5b7e3]{padding:.2rem .5rem;font-size:.75rem}.pane-body[data-v-02b5b7e3]{background:var(--bg-soft);max-height:540px;padding:.55rem;overflow-y:auto}.runner[data-v-02b5b7e3]{padding:0}.runner-editor[data-v-02b5b7e3]{margin:.7rem .8rem .4rem}.run-row[data-v-02b5b7e3]{align-items:center;gap:.5rem;padding:0 .8rem .7rem;display:flex}.run-row .stdin[data-v-02b5b7e3]{flex:1;padding:.4rem .55rem;font-size:.85rem}.run-meta[data-v-02b5b7e3]{font-size:.85rem}.run-meta.ok[data-v-02b5b7e3]{color:var(--success)}.run-meta.err[data-v-02b5b7e3]{color:var(--danger)}.run-out[data-v-02b5b7e3]{padding:0 .8rem .85rem}.run-out .lbl[data-v-02b5b7e3]{text-transform:uppercase;color:var(--text-muted);letter-spacing:.5px;margin-bottom:.2rem;font-size:.7rem;display:inline-block}.run-out .lbl.err[data-v-02b5b7e3]{color:var(--danger)}.run-out pre[data-v-02b5b7e3]{background:var(--code-bg);border:1px solid var(--border);white-space:pre-wrap;word-break:break-word;border-radius:4px;max-height:240px;margin:0;padding:.55rem .7rem;font-family:ui-monospace,monospace;font-size:.82rem;overflow:auto}.run-out pre.err[data-v-02b5b7e3]{border-color:var(--danger);background:var(--danger-soft);color:var(--danger-tx)}.spin[data-v-02b5b7e3]{vertical-align:middle;border:2px solid;border-right-color:#0000;border-radius:50%;width:12px;height:12px;margin-right:.4rem;animation:.7s linear infinite spin-02b5b7e3;display:inline-block}@keyframes spin-02b5b7e3{to{transform:rotate(360deg)}}.toast[data-v-02b5b7e3]{background:var(--success);color:#fff;z-index:100;border-radius:6px;padding:.6rem .95rem;font-size:.85rem;position:fixed;bottom:18px;right:18px;box-shadow:0 4px 14px #00000026}.toast.err[data-v-02b5b7e3]{background:var(--danger)}.toast-enter-from[data-v-02b5b7e3],.toast-leave-to[data-v-02b5b7e3]{opacity:0;transform:translate(120%)}.toast-enter-active[data-v-02b5b7e3],.toast-leave-active[data-v-02b5b7e3]{transition:all .25s}@media (width<=1100px){.row.split[data-v-02b5b7e3]{grid-template-columns:1fr}.code-row[data-v-02b5b7e3]{flex-direction:column}.code-row .pane.left[data-v-02b5b7e3]{flex:auto}.splitter[data-v-02b5b7e3]{display:none}}.heatmap-tab[data-v-9b1bd6c6]{padding:1rem 1.25rem 1.5rem}.hm-controls[data-v-9b1bd6c6]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.6rem;display:flex}.hint[data-v-9b1bd6c6]{color:var(--text-muted);max-width:60ch;margin:0;font-size:.85rem}.midpoint[data-v-9b1bd6c6]{align-items:center;gap:.5rem;font-size:.82rem;display:flex}.midpoint .lbl[data-v-9b1bd6c6]{color:var(--text-muted)}.midpoint input[type=range][data-v-9b1bd6c6]{width:160px}.midpoint strong[data-v-9b1bd6c6]{color:var(--accent);font-variant-numeric:tabular-nums;min-width:3em}.canvas-wrap[data-v-9b1bd6c6]{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;max-height:70vh;padding:.6rem;overflow:auto}canvas[data-v-9b1bd6c6]{cursor:pointer;display:block}.legend[data-v-9b1bd6c6]{color:var(--text-muted);align-items:center;gap:.5rem;margin-top:.7rem;font-size:.78rem;display:flex}.legend .bar[data-v-9b1bd6c6]{border-radius:4px;flex:0 0 100px;height:8px}.tooltip[data-v-9b1bd6c6]{pointer-events:none;color:#fff;z-index:100;background:#0f172aeb;border-radius:6px;max-width:240px;padding:.4rem .6rem;font-size:.78rem;line-height:1.3;position:fixed;box-shadow:0 4px 16px #0003}.clusters-tab[data-v-e7bb670d]{padding:1rem 1.25rem 1.5rem}.hint[data-v-e7bb670d]{color:var(--text-muted);margin:0 0 .8rem;font-size:.85rem}.grid[data-v-e7bb670d]{grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:.85rem;display:grid}.cluster[data-v-e7bb670d]{background:var(--bg-card);border:1px solid var(--border);border-left:4px solid;border-radius:10px;padding:.85rem 1rem .95rem}.cluster header[data-v-e7bb670d]{justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.7rem;display:flex}.cluster h3[data-v-e7bb670d]{color:var(--text-strong);margin:0 0 .15rem;font-size:1rem}.cluster .meta[data-v-e7bb670d]{color:var(--text-muted);margin:0;font-size:.85rem}.members[data-v-e7bb670d]{flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.members li[data-v-e7bb670d]{background:var(--bg-card);cursor:pointer;border:1px solid;border-radius:999px;align-items:center;gap:.4rem;padding:.3rem .6rem;font-size:.85rem;transition:transform .1s,background .1s;display:inline-flex}.members li[data-v-e7bb670d]:hover,.members li[data-v-e7bb670d]:focus{background:var(--bg-soft);outline:none;transform:translateY(-1px)}.members li .num[data-v-e7bb670d]{color:var(--text-muted);font-family:ui-monospace,monospace;font-size:.78rem}.placeholder[data-v-e7bb670d]{text-align:center;color:var(--text-muted);background:var(--bg-card);border:1px dashed var(--border-strong);border-radius:8px;padding:3rem 1rem;font-style:italic}.footer[data-v-e7bb670d]{color:var(--text-muted);margin-top:1rem;font-size:.85rem}.btn-primary[data-v-e7bb670d]{padding:.35rem .7rem;font-size:.82rem}.pairs-tab[data-v-9f7fe4c5]{padding:1rem 1.25rem 1.5rem}.bar[data-v-9f7fe4c5]{justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.6rem;display:flex}.bar .meta[data-v-9f7fe4c5]{color:var(--text-muted);margin:0;font-size:.9rem}.bar .meta strong[data-v-9f7fe4c5]{color:var(--text-strong)}.sort[data-v-9f7fe4c5]{color:var(--text-muted);align-items:center;gap:.5rem;font-size:.85rem;display:inline-flex}.sort select[data-v-9f7fe4c5]{padding:.3rem .5rem;font-size:.85rem}.list[data-v-9f7fe4c5]{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.list li[data-v-9f7fe4c5]{background:var(--bg-card);border:1px solid var(--border);border-left:4px solid var(--text-muted);border-radius:6px;grid-template-columns:1fr auto auto auto;align-items:center;gap:.6rem;padding:.6rem .85rem;transition:transform .1s;display:grid}.list li[data-v-9f7fe4c5]:hover{transform:translateY(-1px)}.list li.low[data-v-9f7fe4c5]{border-left-color:var(--success)}.list li.med[data-v-9f7fe4c5]{border-left-color:var(--warning)}.list li.high[data-v-9f7fe4c5]{border-left-color:var(--danger)}.names[data-v-9f7fe4c5]{cursor:pointer;flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.names strong[data-v-9f7fe4c5]{color:var(--text-strong);font-size:.95rem}.names .sep[data-v-9f7fe4c5]{color:var(--text-muted)}.cluster-badge[data-v-9f7fe4c5]{letter-spacing:.4px;border-radius:999px;padding:1px 8px;font-size:.7rem;font-weight:600;display:inline-block}.meta-line[data-v-9f7fe4c5]{color:var(--text-muted);font-size:.8rem}.meta-line code[data-v-9f7fe4c5]{background:var(--bg-soft);border-radius:3px;padding:1px 5px}.score[data-v-9f7fe4c5]{text-align:right;min-width:60px;font-size:1.05rem;font-weight:700}.score.low[data-v-9f7fe4c5]{color:var(--success)}.score.med[data-v-9f7fe4c5]{color:var(--warning)}.score.high[data-v-9f7fe4c5]{color:var(--danger)}.actions[data-v-9f7fe4c5]{gap:.4rem;display:flex}.btn-small[data-v-9f7fe4c5]{padding:.3rem .55rem;font-size:.78rem}.btn-pdf[data-v-9f7fe4c5]{background:var(--danger);color:#fff;border-color:var(--danger)}.btn-pdf[data-v-9f7fe4c5]:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}.placeholder[data-v-9f7fe4c5]{text-align:center;color:var(--text-muted);background:var(--bg-card);border:1px dashed var(--border-strong);border-radius:8px;padding:2.5rem 1rem;font-style:italic}@media (width<=700px){.list li[data-v-9f7fe4c5]{grid-template-columns:1fr auto}.actions[data-v-9f7fe4c5]{grid-column:1/-1;justify-content:flex-end}}.modal-bg[data-v-947aa733]{z-index:50;background:#0f172a8c;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal[data-v-947aa733]{background:var(--bg-card);border:1px solid var(--border-strong);border-radius:10px;flex-direction:column;width:min(1300px,96vw);max-height:92vh;display:flex;overflow:hidden;box-shadow:0 20px 50px #0003}.modal>header[data-v-947aa733]{background:var(--header-bg);color:#fff;border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:.6rem;padding:.7rem 1rem;display:flex}.modal h3[data-v-947aa733]{margin:0;font-size:.95rem}.title[data-v-947aa733]{flex-direction:column;gap:.15rem;min-width:0;display:flex}.overall[data-v-947aa733]{color:#ffffffd9;font-size:.82rem}.overall strong[data-v-947aa733]{color:#fff}.overall strong.high[data-v-947aa733]{color:#fca5a5}.overall strong.med[data-v-947aa733]{color:#fcd34d}.overall strong.low[data-v-947aa733]{color:#86efac}.actions[data-v-947aa733]{gap:.4rem;display:flex}.btn-pdf[data-v-947aa733]{background:var(--danger);color:#fff;border:none;border-radius:6px;padding:.35rem .7rem;font-size:.82rem}.btn-pdf[data-v-947aa733]:hover{background:#b91c1c}.btn.ghost[data-v-947aa733]{color:#fff;background:#ffffff1a;border:1px solid #ffffff40;border-radius:6px;padding:.3rem .6rem;font-size:.82rem}.btn.ghost[data-v-947aa733]:hover{background:#ffffff2e}.modal-body[data-v-947aa733]{background:var(--bg-page);padding:1rem 1.25rem;overflow-y:auto}.modal-body.loading[data-v-947aa733]{text-align:center;color:var(--text-muted);padding:4rem 1rem}.modal-body.loading .spin[data-v-947aa733]{border:4px solid var(--accent);border-right-color:#0000;border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin-947aa733;display:inline-block}@keyframes spin-947aa733{to{transform:rotate(360deg)}}.legend[data-v-947aa733]{background:var(--bg-card);border:1px solid var(--border);color:var(--text-muted);border-radius:8px;flex-wrap:wrap;gap:.6rem;margin-bottom:.85rem;padding:.55rem .85rem;font-size:.78rem;display:flex}.lg-item.exact[data-v-947aa733]{color:#ef4444}.lg-item.similar[data-v-947aa733]{color:#f59e0b}.lg-item.invisible[data-v-947aa733]{color:#3b82f6}.qsection[data-v-947aa733]{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;margin-bottom:.85rem;overflow:hidden}.qhead[data-v-947aa733]{background:var(--bg-soft);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:.55rem .85rem;display:flex}.qhead.high[data-v-947aa733]{background:var(--danger-soft)}.qhead.med[data-v-947aa733]{background:var(--warning-soft)}.qhead.low[data-v-947aa733]{background:var(--success-soft)}.qhead h4[data-v-947aa733]{color:var(--text-strong);align-items:center;gap:.5rem;margin:0;font-size:.92rem;display:flex}.qhead .qsim[data-v-947aa733]{font-weight:700}.qhead.high .qsim[data-v-947aa733]{color:var(--danger)}.qhead.med .qsim[data-v-947aa733]{color:var(--warning)}.qhead.low .qsim[data-v-947aa733]{color:var(--success)}.qhead .qsub[data-v-947aa733]{color:var(--text-muted);font-family:ui-monospace,monospace;font-size:.78rem}.codes[data-v-947aa733]{grid-template-columns:1fr 1fr;gap:.55rem;padding:.55rem;display:grid}.code-pane[data-v-947aa733]{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;flex-direction:column;display:flex;overflow:hidden}.code-pane>header[data-v-947aa733]{background:var(--bg-soft);border-bottom:1px solid var(--border);color:var(--text-muted);padding:.35rem .6rem;font-size:.78rem;font-weight:600}.code-body[data-v-947aa733]{background:var(--code-bg);max-height:460px;padding:.4rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;overflow:auto}.bubble[data-v-947aa733]{border:2px solid;border-radius:8px;margin:.45rem 0;padding:.5rem .6rem .4rem;position:relative;box-shadow:0 2px 8px #0000000a}.bubble-tag[data-v-947aa733]{letter-spacing:.3px;background:#ffffffd9;border-radius:4px;padding:1px 6px;font-size:.68rem;font-weight:700;position:absolute;top:4px;right:8px}.bubble pre[data-v-947aa733],pre.loose[data-v-947aa733]{white-space:pre-wrap;word-break:break-word;background:0 0;margin:0;line-height:1.5}pre.loose[data-v-947aa733]{padding:0 .2rem}code.hljs[data-v-947aa733]{background:0 0;padding:0}.empty[data-v-947aa733]{color:var(--text-muted);margin:0;padding:.5rem;font-style:italic}.modal-enter-from[data-v-947aa733],.modal-leave-to[data-v-947aa733]{opacity:0}.modal-enter-active[data-v-947aa733],.modal-leave-active[data-v-947aa733]{transition:opacity .15s}@media (width<=900px){.codes[data-v-947aa733]{grid-template-columns:1fr}}.page[data-v-c289c61f]{background:var(--bg-page);min-height:100vh}.appbar[data-v-c289c61f]{background:var(--header-bg);color:var(--header-text);justify-content:space-between;align-items:center;padding:.7rem 1.25rem;display:flex;box-shadow:0 2px 8px #00000014}.appbar h1[data-v-c289c61f]{letter-spacing:-.015em;color:#fff;margin:0;font-size:1.3rem;font-weight:700}.appbar .meta[data-v-c289c61f]{color:#ffffffbf;font-size:.78rem}.appbar .title[data-v-c289c61f]{color:inherit;border-radius:6px;flex-direction:column;margin:-.25rem -.55rem;padding:.25rem .55rem;text-decoration:none;transition:background .15s;display:flex}.appbar .title[data-v-c289c61f]:hover{background:#ffffff14;text-decoration:none}.appbar .title[data-v-c289c61f]:focus-visible{outline-offset:2px;outline:2px solid #ffffff80}.appbar .actions[data-v-c289c61f]{gap:.5rem;display:flex}.appbar .btn[data-v-c289c61f]{color:#fff;background:#ffffff1a;border:1px solid #ffffff40;border-radius:6px;padding:.35rem .7rem;font-size:.85rem}.appbar .btn[data-v-c289c61f]:hover:not(:disabled){background:#fff3}.body[data-v-c289c61f]{flex-direction:column;gap:.85rem;max-width:1500px;margin:0 auto;padding:1rem 1.25rem 2rem;display:flex}.empty[data-v-c289c61f]{background:var(--bg-card);border:1px solid var(--border);text-align:center;border-radius:10px;padding:2rem}.empty p[data-v-c289c61f]{color:var(--text-muted);margin:0 0 1rem}.card[data-v-c289c61f]{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;overflow:hidden;box-shadow:0 1px 2px #0f172a0a}.card-head[data-v-c289c61f]{background:var(--bg-soft);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:.55rem .9rem;display:flex}.card-head h3[data-v-c289c61f]{color:var(--text-strong);margin:0;font-size:.85rem;font-weight:600}.card-head .card-meta[data-v-c289c61f]{color:var(--text-muted);font-size:.78rem}.control-row[data-v-c289c61f]{flex-wrap:wrap;align-items:center;gap:1.25rem;padding:1rem 1rem .5rem;display:flex}.threshold[data-v-c289c61f]{align-items:center;gap:.5rem;display:flex}.threshold .lbl[data-v-c289c61f]{color:var(--text-muted);font-size:.85rem}.threshold input[type=range][data-v-c289c61f]{width:180px}.threshold strong[data-v-c289c61f]{color:var(--accent);min-width:3em;font-size:1rem}.btn.big[data-v-c289c61f]{padding:.6rem 1.2rem;font-size:.95rem}.hint[data-v-c289c61f]{color:var(--text-muted);margin:.4rem 1rem 1rem;font-size:.8rem}.error[data-v-c289c61f]{color:var(--danger);background:var(--danger-soft);border-radius:6px;padding:.55rem .85rem}.error.floating[data-v-c289c61f]{z-index:60;max-width:480px;position:fixed;bottom:1rem;right:1rem;box-shadow:0 4px 16px #00000026}.progress[data-v-c289c61f]{background:var(--accent-soft);border-color:var(--accent-bd)}.progress-row[data-v-c289c61f]{align-items:center;gap:.85rem;padding:1rem 1.25rem;display:flex}.progress-row strong[data-v-c289c61f]{color:var(--text-strong);font-size:.95rem}.progress-row p[data-v-c289c61f]{color:var(--text);margin:.2rem 0 0;font-size:.85rem}.stats[data-v-c289c61f]{grid-template-columns:repeat(5,1fr);gap:.7rem;display:grid}.stat[data-v-c289c61f]{background:var(--bg-card);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:8px;padding:.7rem .95rem}.stat.warn[data-v-c289c61f]{border-left-color:var(--warning)}.stat.danger[data-v-c289c61f]{border-left-color:var(--danger)}.stat.info[data-v-c289c61f]{border-left-color:#6366f1}.stat .lbl[data-v-c289c61f]{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:.7rem;display:block}.stat strong[data-v-c289c61f]{color:var(--text-strong);margin-top:.2rem;font-size:1.55rem;display:block}.stat .sub[data-v-c289c61f]{color:var(--text-muted);font-size:.72rem}.tabs-card[data-v-c289c61f]{padding:0}.tabbar[data-v-c289c61f]{background:var(--bg-soft);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.2rem;padding:.4rem .5rem;display:flex}.tabbar>button[data-v-c289c61f]{color:var(--text);background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:.35rem;padding:.4rem .7rem;font-size:.85rem;transition:background .1s,border-color .1s;display:inline-flex}.tabbar>button[data-v-c289c61f]:hover{background:var(--bg-card)}.tabbar>button.active[data-v-c289c61f]{background:var(--bg-card);border-color:var(--border-strong);color:var(--text-strong);font-weight:600;box-shadow:0 1px 2px #0000000a}.tabbar .badge[data-v-c289c61f]{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:1px 7px;font-size:.72rem;font-weight:600;display:inline-block}.tabbar>button.active .badge[data-v-c289c61f]{background:var(--accent);color:#fff}.tab-spacer[data-v-c289c61f]{flex:auto}.btn-pdf[data-v-c289c61f]{background:var(--danger);color:#fff;border:1px solid var(--danger);border-radius:6px;padding:.4rem .8rem;font-size:.82rem}.btn-pdf[data-v-c289c61f]:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}.btn-pdf[data-v-c289c61f]:disabled{opacity:.55;cursor:not-allowed}.spin[data-v-c289c61f]{vertical-align:middle;border:2px solid;border-right-color:#0000;border-radius:50%;width:12px;height:12px;margin-right:.4rem;animation:.7s linear infinite spin-c289c61f;display:inline-block}.big-spin[data-v-c289c61f]{border:4px solid var(--accent);border-right-color:#0000;border-radius:50%;flex-shrink:0;width:36px;height:36px;animation:.8s linear infinite spin-c289c61f;display:inline-block}@keyframes spin-c289c61f{to{transform:rotate(360deg)}}@media (width<=1100px){.stats[data-v-c289c61f]{grid-template-columns:repeat(2,1fr)}}
