:root{--bg: #f1f1f2;--surface: #fafafa;--surface-2: #ececee;--border: #dcdcdf;--text: #1d1d20;--text-2: #5c5c63;--text-3: #8b8b93;--accent: #2b2b30;--accent-text: #fafafa;--good: #2f8f4e;--warn: #b7791f;--bad: #c0392b;--radius: 14px;--shadow: 0 1px 2px rgb(0 0 0 / .04);color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #131315;--surface: #1b1b1e;--surface-2: #242427;--border: #2e2e33;--text: #ececee;--text-2: #a2a2aa;--text-3: #6f6f78;--accent: #ececee;--accent-text: #131315;--good: #4cc274;--warn: #e0a23a;--bad: #ef6a5b;--shadow: none;color-scheme:dark}}:root[data-theme=dark]{--bg: #131315;--surface: #1b1b1e;--surface-2: #242427;--border: #2e2e33;--text: #ececee;--text-2: #a2a2aa;--text-3: #6f6f78;--accent: #ececee;--accent-text: #131315;--good: #4cc274;--warn: #e0a23a;--bad: #ef6a5b;--shadow: none;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.01em}h1{font-size:1.6rem}h2{font-size:1.1rem}a{color:inherit;text-decoration:none}button,input,select{font:inherit;color:inherit}.num{font-variant-numeric:tabular-nums}.muted{color:var(--text-2)}.faint{color:var(--text-3)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px 22px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 16px;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);cursor:pointer}.btn:hover{border-color:var(--text-3)}.btn.primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.btn:disabled{opacity:.55;cursor:default}input[type=text],input[type=password],input[type=number],select{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:9px 12px;width:100%}input:focus-visible,select:focus-visible,.btn:focus-visible,a:focus-visible{outline:2px solid var(--text-3);outline-offset:2px}table{width:100%;border-collapse:collapse}th{text-align:left;font-weight:500;color:var(--text-3);font-size:.8rem;padding:0 10px 8px}td{padding:9px 10px;border-top:1px solid var(--border)}th.r,td.r{text-align:right}:root{--grade-s: 62%;--grade-l: 38%}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--grade-s: 62%;--grade-l: 58%}}:root[data-theme=dark]{--grade-s: 62%;--grade-l: 58%}.auth-form{display:flex;flex-direction:column;gap:16px}.auth-title{font-size:1.75rem;letter-spacing:-.02em;margin:0}.auth-sub{margin:4px 0 6px;color:var(--text-2)}.auth-form .err{color:var(--bad);margin:0;animation:rise .3s ease both}.auth-form .fine{font-size:.8rem;color:var(--text-3);margin:0}.btn.block{width:100%;padding:13px 16px;font-size:1rem;border-radius:12px}.btn.primary{box-shadow:0 6px 18px color-mix(in srgb,var(--accent) 28%,transparent)}.divider{display:flex;align-items:center;gap:12px;color:var(--text-3);font-size:.8rem;margin:2px 0}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--border)}.linkbtn{background:none;border:0;padding:0;cursor:pointer;color:var(--text-2);font:inherit;font-size:.88rem;text-decoration:underline;text-underline-offset:3px}.linkbtn:hover{color:var(--text)}.alt-links{display:grid;grid-template-columns:1fr 1fr;gap:10px}.alt-links .btn{padding:11px 10px;font-size:.92rem}.right{text-align:right}@media(max-width:420px){.alt-links{grid-template-columns:1fr}}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes pop{0%{transform:scale(.5);opacity:0}60%{transform:scale(1.12);opacity:1}to{transform:scale(1)}}@keyframes draw{0%{stroke-dashoffset:1}to{stroke-dashoffset:0}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes slide-in{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:none}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}.rise{animation:rise .55s cubic-bezier(.2,.7,.2,1) both}.fade{animation:fade .4s ease both}.pop{animation:pop .45s cubic-bezier(.2,.9,.3,1.2) both}.stagger>*{animation:rise .55s cubic-bezier(.2,.7,.2,1) both}.stagger>:nth-child(1){animation-delay:0ms}.stagger>:nth-child(2){animation-delay:55ms}.stagger>:nth-child(3){animation-delay:.11s}.stagger>:nth-child(4){animation-delay:165ms}.stagger>:nth-child(5){animation-delay:.22s}.stagger>:nth-child(6){animation-delay:275ms}.stagger>:nth-child(7){animation-delay:.33s}.stagger>:nth-child(8){animation-delay:385ms}.stagger>:nth-child(9){animation-delay:.44s}.stagger>:nth-child(10){animation-delay:495ms}.stagger>:nth-child(n+11){animation-delay:.54s}.cascade>*{animation:slide-in .4s cubic-bezier(.2,.7,.2,1) both}.cascade>:nth-child(1){animation-delay:60ms}.cascade>:nth-child(2){animation-delay:.1s}.cascade>:nth-child(3){animation-delay:.14s}.cascade>:nth-child(4){animation-delay:.18s}.cascade>:nth-child(5){animation-delay:.22s}.cascade>:nth-child(6){animation-delay:.26s}.cascade>:nth-child(7){animation-delay:.3s}.cascade>:nth-child(8){animation-delay:.34s}.cascade>:nth-child(n+9){animation-delay:.38s}.card{transition:border-color .25s ease,transform .25s ease,box-shadow .25s ease}.card.lift:hover{transform:translateY(-2px);border-color:var(--text-3);box-shadow:0 10px 28px #0000001a}.btn{transition:transform .12s ease,background-color .2s ease,border-color .2s ease,opacity .2s ease}.btn:active:not(:disabled){transform:scale(.97)}input[type=text],input[type=password],input[type=number],select{transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease}input:focus-visible,select:focus-visible{box-shadow:0 0 0 4px color-mix(in srgb,var(--text-3) 25%,transparent);outline:none}tr{transition:background-color .2s ease}tbody tr:hover{background:color-mix(in srgb,var(--surface-2) 60%,transparent)}.spinner{width:16px;height:16px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .7s linear infinite;display:inline-block}.skeleton{background:linear-gradient(90deg,var(--surface-2) 25%,var(--border) 50%,var(--surface-2) 75%);background-size:200% 100%;animation:shimmer 1.4s linear infinite;border-radius:8px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-delay:0ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
