:root,[data-theme=dark]{--bg: #0f0f12;--bg-elevated: #18181c;--text: #e4e4e7;--text-muted: #a1a1aa;--card-bg: #18181c;--border: #27272a;--accent: #3b82f6;--accent-hover: #2563eb}[data-theme=light]{--bg: #fafafa;--bg-elevated: #ffffff;--text: #18181b;--text-muted: #71717a;--card-bg: #ffffff;--border: #e4e4e7;--accent: #2563eb;--accent-hover: #1d4ed8}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.5}.app{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:1.5rem;padding:.75rem 1.5rem;background:var(--bg-elevated);border-bottom:1px solid var(--border)}.app-name{margin:0;font-size:1.25rem;font-weight:600}.topbar-nav{display:flex;gap:1rem}.topbar-nav a,.sidebar-nav a{color:var(--text-muted);text-decoration:none;padding:.35rem .6rem;border-radius:4px}.topbar-nav a:hover,.sidebar-nav a:hover{color:var(--text)}.topbar-nav a.active,.sidebar-nav a.active{color:var(--accent);font-weight:500}.body{display:flex;flex:1}.sidebar{width:200px;flex-shrink:0;padding:1rem;background:var(--bg-elevated);border-right:1px solid var(--border)}.sidebar-nav{display:flex;flex-direction:column;gap:.25rem}.main{flex:1;padding:1.5rem;overflow:auto}.page-header{margin:0 0 1rem;font-size:1.5rem;font-weight:600}.card{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;padding:1.25rem}.card code{font-size:.9em;padding:.15rem .35rem;border-radius:4px;background:var(--bg-elevated);border:1px solid var(--border)}button{font:inherit;cursor:pointer;padding:.5rem 1rem;border-radius:6px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--text)}button:hover{background:var(--border)}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}textarea{font:inherit;width:100%;min-height:160px;padding:.75rem;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--text);resize:vertical}textarea::placeholder{color:var(--text-muted)}
