*,:after,:before{box-sizing:border-box}body,html{height:100%}:root{--bg:#0c0c0f;--surface:#16161b;--surface-raised:#1e1e26;--surface-hover:#25252e;--border:rgba(255,255,255,0.07);--border-subtle:rgba(255,255,255,0.04);--border-strong:rgba(255,255,255,0.13);--fg:#f0f0f4;--fg-muted:rgba(240,240,244,0.5);--fg-subtle:rgba(240,240,244,0.28);--accent:#7eb3ff;--accent-fg:#0c0c0f;--accent-bg:rgba(126,179,255,0.12);--accent-border:rgba(126,179,255,0.3);--accent-hover:rgba(126,179,255,0.2);--danger:#ff6b6b;--danger-bg:rgba(255,107,107,0.1);--danger-border:rgba(255,107,107,0.28);--warning:#fba94c;--warning-bg:rgba(251,169,76,0.1);--success:#5ddf8b;--success-bg:rgba(93,223,139,0.1);--nav-bg:rgba(12,12,15,0.82);--shadow-sm:0 1px 3px rgba(0,0,0,0.35),0 1px 2px rgba(0,0,0,0.2);--shadow-md:0 4px 16px rgba(0,0,0,0.45),0 2px 6px rgba(0,0,0,0.25);--shadow-lg:0 12px 40px rgba(0,0,0,0.55),0 4px 12px rgba(0,0,0,0.3);--radius-xs:4px;--radius-sm:7px;--radius-md:11px;--radius-lg:15px;--radius-xl:20px}[data-theme=light]{--bg:#f2f2f5;--surface:#ffffff;--surface-raised:#ffffff;--surface-hover:#ededf0;--border:rgba(0,0,0,0.07);--border-subtle:rgba(0,0,0,0.04);--border-strong:rgba(0,0,0,0.13);--fg:#18181e;--fg-muted:rgba(24,24,30,0.55);--fg-subtle:rgba(24,24,30,0.33);--accent:#3b82f6;--accent-fg:#ffffff;--accent-bg:rgba(59,130,246,0.1);--accent-border:rgba(59,130,246,0.28);--accent-hover:rgba(59,130,246,0.17);--danger:#dc2626;--danger-bg:rgba(220,38,38,0.08);--danger-border:rgba(220,38,38,0.22);--warning:#d97706;--warning-bg:rgba(217,119,6,0.08);--success:#16a34a;--success-bg:rgba(22,163,74,0.08);--nav-bg:rgba(242,242,245,0.88);--shadow-sm:0 1px 3px rgba(0,0,0,0.07),0 1px 2px rgba(0,0,0,0.04);--shadow-md:0 4px 16px rgba(0,0,0,0.09),0 2px 6px rgba(0,0,0,0.05);--shadow-lg:0 12px 40px rgba(0,0,0,0.11),0 4px 12px rgba(0,0,0,0.07)}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--fg);display:flex;flex-direction:column;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background .2s,color .2s}a{color:var(--accent);text-decoration:none;transition:opacity .12s}a:hover{opacity:.75}button,input,select,textarea{font:inherit}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--fg-subtle)}.card{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-md);padding:20px;box-shadow:var(--shadow-sm)}.card-interactive{cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.card-interactive:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:6px 13px;border-radius:var(--radius-sm);font-size:13.5px;font-weight:500;cursor:pointer;transition:all .13s ease;white-space:nowrap;border:1px solid transparent}.btn-primary{background:var(--accent-bg);color:var(--accent);border-color:var(--accent-border)}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:transparent;color:var(--fg-muted);border-color:var(--border-strong)}.btn-secondary:hover{background:var(--surface-hover);color:var(--fg)}.btn-danger{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-border)}.btn-danger:hover{opacity:.8}.btn-solid{background:var(--accent);color:var(--accent-fg);font-weight:600}.btn-solid:hover{opacity:.88}.input{background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:8px 12px;color:var(--fg);font-size:14px;width:100%;outline:none;transition:border-color .13s,box-shadow .13s}.input:focus{border-color:var(--accent-border);box-shadow:0 0 0 3px var(--accent-bg)}.input::placeholder{color:var(--fg-subtle)}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:500;border:1px solid transparent}.badge-warning{background:var(--warning-bg);color:var(--warning);border-color:rgba(251,169,76,.22)}.badge-danger{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-border)}.badge-success{background:var(--success-bg);color:var(--success);border-color:rgba(93,223,139,.2)}.badge-accent{background:var(--accent-bg);color:var(--accent);border-color:var(--accent-border)}