*,:before,:after{box-sizing:border-box}:root{--bg-app:#0b0f14;--bg-card:#141a22;--bg-input:#1e2a38;--border:#2d3b4f;--text-primary:#f0f4f8;--text-secondary:#94a3b8;--text-citation:#64748b;--accent:#3b82f6;--accent-hover:#2563eb;--success:#22c55e;--error:#ef4444;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--radius-sm:6px;--radius-md:10px;color:var(--text-primary);font-family:Inter,system-ui,sans-serif;line-height:1.5}body{background-color:var(--bg-app);min-height:100vh;margin:0}#root{flex-direction:column;min-height:100vh;display:flex}button{font:inherit;cursor:pointer;color:inherit;background:0 0;border:none}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:var(--space-sm)}.gap-4{gap:var(--space-md)}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-md)}.input{background:var(--bg-input);border:1px solid var(--border);color:var(--text-primary);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);font-family:inherit;font-size:14px}.input:focus{outline:2px solid var(--accent);border-color:#0000}.btn{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);font-weight:500;transition:background .2s}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{border:1px solid var(--border);color:var(--text-secondary);background:0 0}.btn-secondary:hover{background:var(--bg-input);color:var(--text-primary)}.chip{color:#60a5fa;cursor:pointer;background:#3b82f626;border-radius:999px;padding:2px 8px;font-family:monospace;font-size:12px;transition:background .2s;display:inline-flex}.chip:hover{background:#3b82f640}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}
