:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--paper:#fbfaf7;--surface:#fff;--surface-sunken:#f2f0ea;--border:#e0ddd4;--border-strong:#c9c5b8;--text:#1c1a17;--text-muted:#66625a;--text-faint:#8d887e;--accent:#3d4f8f;--accent-hover:#2f3e73;--accent-soft:#e8ebf6;--accent-text:#fff;--positive:#2f6a4a;--positive-soft:#e3f0e8;--warning:#8a5a12;--warning-soft:#f8eeda;--danger:#9b2f2f;--danger-hover:#7d2525;--danger-soft:#f7e6e4;--radius-sm:.375rem;--radius:.625rem;--radius-lg:1rem;--shadow-sm:0 1px 2px #1c1a170f;--shadow:0 2px 4px #1c1a170f, 0 8px 24px #1c1a170f;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--content-width:60rem;--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;font-family:var(--font-sans);-webkit-text-size-adjust:100%;line-height:1.55}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--paper:#16151a;--surface:#1e1d23;--surface-sunken:#26252c;--border:#35333c;--border-strong:#4b4854;--text:#f0eee9;--text-muted:#a8a49c;--text-faint:#837f78;--accent:#97a7e0;--accent-hover:#b0bdea;--accent-soft:#262b40;--accent-text:#14141a;--positive:#7fc39d;--positive-soft:#1e2b24;--warning:#d9ab63;--warning-soft:#2c2519;--danger:#e08b85;--danger-hover:#eba49f;--danger-soft:#2e1e1d;--shadow-sm:0 1px 2px #0006;--shadow:0 2px 4px #0000004d, 0 8px 24px #00000059}}*,:before,:after{box-sizing:border-box}body{background:var(--paper);color:var(--text);margin:0}h1,h2,h3{text-wrap:balance;margin:0;line-height:1.2}h1{letter-spacing:-.02em;font-size:clamp(1.75rem,1.3rem + 1.8vw,2.5rem)}h2{letter-spacing:-.01em;font-size:1.25rem}h3{font-size:1rem}p{margin:0}a{color:var(--accent);text-underline-offset:.15em;text-decoration-thickness:1px}a:hover{color:var(--accent-hover)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}img{max-width:100%}.app{flex-direction:column;min-height:100vh;display:flex}.app-header{background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:var(--space-3) var(--space-5);padding:var(--space-4) var(--space-5);z-index:10;flex-wrap:wrap;justify-content:space-between;display:flex;position:sticky;top:0}.app-brand{color:var(--text);align-items:center;gap:var(--space-2);letter-spacing:-.01em;font-size:1.0625rem;font-weight:600;text-decoration:none;display:inline-flex}.app-brand:hover{color:var(--text)}.app-brand svg{color:var(--accent);flex:none}.app-session{align-items:center;gap:var(--space-2) var(--space-4);flex-wrap:wrap;font-size:.9375rem;display:flex}.app-session-user{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:16rem;overflow:hidden}.app>main{max-width:var(--content-width);padding:var(--space-7) var(--space-5) var(--space-8);flex:1;width:100%;margin:0 auto}.app-footer{border-top:1px solid var(--border);color:var(--text-faint);max-width:var(--content-width);padding:var(--space-5);width:100%;margin:0 auto;font-size:.875rem}.app-error{max-width:34rem;padding:var(--space-8) var(--space-5);text-align:center;margin:0 auto}.page-header{gap:var(--space-3) var(--space-5);margin-bottom:var(--space-6);flex-wrap:wrap;justify-content:space-between;display:flex}.page-header p{color:var(--text-muted);margin-top:var(--space-2)}.section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:var(--space-5);padding:var(--space-5)}.section>h2{margin-bottom:var(--space-4)}.stack{gap:var(--space-4);flex-direction:column;display:flex}.muted{color:var(--text-muted)}.back-link{margin-top:var(--space-5);font-size:.9375rem;display:inline-block}button,.button{background:var(--accent);border-radius:var(--radius);color:var(--accent-text);cursor:pointer;font:inherit;align-items:center;gap:var(--space-2);border:1px solid #0000;justify-content:center;padding:.5rem 1rem;font-size:.9375rem;font-weight:550;text-decoration:none;transition:background-color .12s,border-color .12s,color .12s;display:inline-flex}button:hover:not(:disabled),.button:hover{background:var(--accent-hover);color:var(--accent-text)}button:disabled{cursor:not-allowed;opacity:.5}button.secondary,.button.secondary{background:var(--surface);border-color:var(--border-strong);color:var(--text)}button.secondary:hover:not(:disabled),.button.secondary:hover{background:var(--surface-sunken);color:var(--text)}button.danger{color:var(--danger);background:0 0;border-color:#0000}button.danger:hover:not(:disabled){background:var(--danger-soft);color:var(--danger-hover)}button.link{color:var(--accent);text-underline-offset:.15em;background:0 0;border:none;padding:0;text-decoration:underline}button.link:hover:not(:disabled){color:var(--accent-hover);background:0 0}.button-row{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}label{font-size:.9375rem;font-weight:550;display:block}input[type=text],input[type=email],input[type=password],input[type=number],input[type=file]{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--text);font:inherit;margin-top:var(--space-2);width:100%;padding:.5rem .625rem;font-size:.9375rem;display:block}input[type=file]{padding:.4375rem .5rem}input:focus-visible{border-color:var(--accent)}input:disabled{background:var(--surface-sunken);color:var(--text-faint)}input[type=range]{accent-color:var(--accent);margin-top:var(--space-2);width:100%;display:block}input[type=checkbox]{accent-color:var(--accent);width:1rem;height:1rem;margin:0}.checkbox-label{align-items:center;gap:var(--space-2);font-weight:400;display:flex}.field-hint{color:var(--text-faint);margin-top:var(--space-1);font-size:.8125rem;font-weight:400;display:block}form{gap:var(--space-4);flex-direction:column;display:flex}[role=alert]{background:var(--danger-soft);border:1px solid color-mix(in srgb, var(--danger) 30%, transparent);border-radius:var(--radius);color:var(--danger);padding:var(--space-3) var(--space-4);font-size:.9375rem}.app-error [role=alert],[role=alert].plain{color:inherit;background:0 0;border:none;padding:0}.badge{background:var(--surface-sunken);color:var(--text-muted);align-items:center;gap:var(--space-2);white-space:nowrap;border-radius:999px;padding:.1875rem .625rem;font-size:.8125rem;font-weight:550;display:inline-flex}.badge.is-active{background:var(--accent-soft);color:var(--accent)}.badge.is-done{background:var(--positive-soft);color:var(--positive)}.badge.is-partial{background:var(--warning-soft);color:var(--warning)}.badge.is-failed{background:var(--danger-soft);color:var(--danger)}.badge.is-active:before{content:"";background:currentColor;border-radius:50%;width:.5rem;height:.5rem;animation:1.6s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.3}}@media (prefers-reduced-motion:reduce){.badge.is-active:before{animation:none}}.app-facts{gap:var(--space-2) var(--space-5);grid-template-columns:auto 1fr;margin:0;display:grid}.app-facts dt{color:var(--text-muted);font-size:.9375rem}.app-facts dd{margin:0;font-size:.9375rem}.upload-form .button-row{margin-top:var(--space-1)}.empty-library{background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);padding:var(--space-7) var(--space-5);text-align:center}.score-list{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.score-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);align-items:center;gap:var(--space-3) var(--space-4);padding:var(--space-4) var(--space-5);flex-wrap:wrap;display:flex}.score-row-main{flex:14rem;min-width:0}.score-row-title{color:var(--text);font-size:1.0625rem;font-weight:600;text-decoration:none}.score-row-title:hover{color:var(--accent);text-decoration:underline}.score-row-meta{color:var(--text-muted);margin-top:var(--space-1);font-size:.875rem}.score-row [role=alert]{flex-basis:100%}.section-heading{align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);justify-content:space-between;display:flex}.section-heading h2{margin-bottom:0}.recognition-progress{margin-top:var(--space-3);width:100%;display:block}.page-tabs{gap:var(--space-2);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.page-tabs button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.source-preview{background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius);object-fit:contain;width:100%;max-height:30rem;display:block}.hero{padding:var(--space-6) 0 var(--space-7);text-align:center}.hero-lead{color:var(--text-muted);margin:var(--space-4) auto 0;text-wrap:pretty;max-width:38rem;font-size:1.125rem}.hero .button-row{margin-top:var(--space-6);justify-content:center}.steps{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));margin:0;padding:0;list-style:none;display:grid}.steps li{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5)}.steps h2{margin-bottom:var(--space-2);font-size:1rem}.steps p{color:var(--text-muted);font-size:.9375rem}.auth-page{max-width:24rem;margin:0 auto}.auth-page h1{margin-bottom:var(--space-5)}.auth-form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5)}.auth-alt{color:var(--text-muted);margin-top:var(--space-4);text-align:center;font-size:.9375rem}
