:root,[data-theme=dark]{--bg: #0a0a0c;--bg-elevated: #101013;--panel: #131316;--panel-raised: #1a1a1e;--panel-hover: #1f1f24;--line: #26262b;--line-soft: #1c1c20;--text: #f0f0f2;--text-muted: #92929c;--text-faint: #5c5c66;--accent: #5eead4;--accent-2: #a78bfa;--accent-dim: #2b7a6c;--accent-soft: rgba(94, 234, 212, .1);--gradient: linear-gradient(135deg, #5eead4 0%, #a78bfa 100%);--due: #f5b155;--danger: #f0715a;--danger-soft: rgba(240, 113, 90, .12);--success: #6ee7a0;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 8px 24px rgba(0, 0, 0, .35);--shadow-glow: 0 0 0 1px rgba(94, 234, 212, .15), 0 8px 24px rgba(94, 234, 212, .08);--mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--sans: "Inter", -apple-system, "Segoe UI", sans-serif;color-scheme:dark}[data-theme=light]{--bg: #f7f7f8;--bg-elevated: #ffffff;--panel: #ffffff;--panel-raised: #ffffff;--panel-hover: #f0f0f2;--line: #e4e4e8;--line-soft: #ececef;--text: #17171a;--text-muted: #63636d;--text-faint: #9a9aa2;--accent: #0d9488;--accent-2: #7c3aed;--accent-dim: #0d9488;--accent-soft: rgba(13, 148, 136, .08);--gradient: linear-gradient(135deg, #0d9488 0%, #7c3aed 100%);--due: #b45309;--danger: #dc4c33;--danger-soft: rgba(220, 76, 51, .08);--success: #15803d;--shadow-sm: 0 1px 2px rgba(20, 20, 30, .06);--shadow-md: 0 8px 24px rgba(20, 20, 30, .08);--shadow-glow: 0 0 0 1px rgba(13, 148, 136, .12), 0 8px 24px rgba(13, 148, 136, .06);color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;transition:background-color .2s ease,color .2s ease}a{color:inherit}button,input,textarea,select{font-family:inherit;color:inherit}::selection{background:var(--accent-soft);color:var(--text)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.serial{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--text-faint);font-size:12px;letter-spacing:.04em}.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted)}.hairline{border-color:var(--line)!important}.card{border:1px solid var(--line);border-radius:10px;background:var(--panel);box-shadow:var(--shadow-sm)}.card-hover{transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.card-hover:hover{border-color:var(--accent-dim);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn{font-family:var(--mono);font-size:13px;padding:9px 14px;border:1px solid var(--line);background:var(--panel-raised);color:var(--text);border-radius:7px;cursor:pointer;transition:border-color .15s ease,color .15s ease,background .15s ease,transform .1s ease}.btn:hover{border-color:var(--text-muted);background:var(--panel-hover)}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-accent{border-color:var(--accent-dim);color:var(--accent);background:var(--accent-soft)}.btn-accent:hover{border-color:var(--accent)}.btn-gradient{border:none;background:var(--gradient);color:#04120f;font-weight:600;box-shadow:var(--shadow-glow)}.btn-gradient:hover{filter:brightness(1.05)}.field{width:100%;background:var(--bg-elevated);border:1px solid var(--line);border-radius:7px;padding:10px 12px;font-size:14px}.field:focus{border-color:var(--accent-dim)}.mono{font-family:var(--mono)}.tag-pill{font-family:var(--mono);font-size:11px;padding:2px 8px;border:1px solid var(--line);border-radius:999px;color:var(--text-muted);white-space:nowrap;background:var(--panel-raised)}.badge-easy{color:var(--success);border-color:var(--success)}.badge-medium{color:var(--due);border-color:var(--due)}.badge-hard{color:var(--danger);border-color:var(--danger)}.progress-track{height:6px;border-radius:999px;background:var(--line-soft);overflow:hidden}.progress-fill{height:100%;background:var(--gradient);border-radius:999px;transition:width .3s ease}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}.variant-accordions{display:none}@media (max-width: 640px){.variant-tabs,.variant-tab-panel{display:none!important}.variant-accordions{display:block}}
