:root{--bg:#0b0b10;--surface:#16161f;--surface-2:#1f1f2b;--border:#2a2a38;--text:#ffffff;--text-dim:#9a9aa8;--text-mute:#6c6c7a;--accent:#6c5ce7;--accent-hover:#7c6ef0;--danger:#ff6b6b;--warn:#ffd25a;--ok:#7ee6a2}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.5}h1,h2,h3,h4{margin:0;font-weight:600}h1{font-size:28px}h2{font-size:22px}h3{font-size:18px}h4{font-size:16px;color:var(--text-dim)}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}code,pre{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--surface);padding:2px 6px;border-radius:4px;font-size:13px}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),select,textarea{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:10px 12px;width:100%;outline:none;transition:border-color .15s}input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range])::placeholder,textarea::placeholder{color:var(--text-mute)}input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):focus,select:focus,textarea:focus{border-color:var(--accent)}input[type=file]{color:var(--text-dim);font-size:13px}input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.8);cursor:pointer}textarea{min-height:90px;resize:vertical;font-family:inherit}label{display:block}button{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:10px 18px;cursor:pointer;font-weight:500;transition:background .15s}button:hover:not(:disabled){background:var(--accent-hover)}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{background:var(--surface-2)}button.secondary:hover:not(:disabled){background:var(--border)}button.danger{background:transparent;color:var(--danger);border:1px solid var(--danger)}button.danger:hover:not(:disabled){background:rgba(255,107,107,.1)}button.small{padding:6px 12px;font-size:13px}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px}.muted{color:var(--text-dim)}.error{color:var(--danger)}.ok{color:var(--ok)}.row{display:flex;gap:12px;align-items:center}.row.wrap{flex-wrap:wrap}.col{display:flex;flex-direction:column;gap:12px}.spacer{flex:1 1}