:root{--bg:#0f0f0f;--surface:#1a1a1a;--accent:#00b4d8;--accent-dim:#0096c7;--text:#e0e0e0;--text-dim:#888;--danger:#ef4444;--success:#22c55e;--warning:#f59e0b;--bg-primary:var(--bg);--bg-secondary:var(--surface);--bg-card:#242424;--bg-elevated:#2e2e2e;--text-primary:var(--text);--text-secondary:#a0a0a0;--text-muted:var(--text-dim);--accent-hover:var(--accent-dim);--accent-muted:rgba(0,180,216,.15);--danger-hover:#c0392b;--border:hsla(0,0%,100%,.08);--border-focused:rgba(0,180,216,.5);--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;--shadow-sm:0 1px 3px rgba(0,0,0,.4);--shadow-md:0 4px 12px rgba(0,0,0,.5);--shadow-lg:0 8px 24px rgba(0,0,0,.6);--transition-fast:120ms ease;--transition-base:200ms ease;--transition-slow:300ms ease;--font-sans:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:system-ui,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;font-family:inherit;border:none;outline:none;background:none;transition:all .15s ease;min-height:48px}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input,select{font-family:inherit;background:var(--bg-elevated);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.5rem .75rem;font-size:1rem;transition:border-color var(--transition-fast);outline:none}input:focus,select:focus{border-color:var(--border-focused)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bg-elevated);border-radius:var(--radius-full)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes speakBar{0%{height:4px;opacity:.6}to{height:14px;opacity:1}}@keyframes speakingRing{0%{box-shadow:0 0 0 0 rgba(34,197,94,.6)}70%{box-shadow:0 0 0 14px rgba(34,197,94,0)}to{box-shadow:0 0 0 0 rgba(34,197,94,0)}}