:root{--ink-50:#141414;--ink-100:#1f1a18;--ink-200:#2e2a26;--ink-300:#3d3935;--ink-400:#5a5550;--ink-500:#7a7570;--ink-600:#9a958e;--ink-700:#bdb8b0;--ink-800:#e5dfd3;--ink-900:#f2ede4;--ink-950:#faf7f1;--signal:#dc4400;--signal-hover:#b83400;--signal-soft:#ffe9de;--signal-mark:#ff4d00;--error-bg:#ffe9de;--error-border:#dc440047;--error-text:#7a2418;--success-bg:#f0f9f0;--success-border:#cfe5cf;--success-text:#1a4a1a;--font-sans:"Geist", ui-sans-serif, system-ui, sans-serif;--font-mono:"Geist Mono", ui-monospace, SFMono-Regular, monospace;--font-editorial:"Newsreader", Georgia, serif;--color-primary:var(--signal);--color-primary-hover:var(--signal-hover);--color-bg:var(--ink-950);--color-surface:var(--ink-900);--color-ink:var(--ink-50);--color-muted:var(--ink-400);--color-border:var(--ink-800);--color-accent:var(--signal);--color-danger:var(--error-text);--font-headline:var(--font-sans);--font-body:var(--font-sans)}*{box-sizing:border-box}html,body{background:var(--color-bg);color:var(--color-ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;padding:0;line-height:1.5}h1,h2,h3,h4{font-family:var(--font-headline);color:var(--color-ink);margin:0 0 .5em}a{color:var(--color-primary);text-decoration:underline}a:hover{color:var(--color-primary-hover)}button,input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}button{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:.5rem 1rem;font-weight:500}button:hover:not(:disabled){background:var(--color-primary-hover)}button:disabled{opacity:.5;cursor:progress}button.secondary{background:var(--color-surface);color:var(--color-ink);border:1px solid var(--color-border)}button.secondary:hover:not(:disabled){background:var(--color-border)}button.danger{background:var(--color-danger);color:#fff}button.danger:hover:not(:disabled){filter:brightness(1.15)}input[type=text],textarea{background:var(--color-bg);border:1px solid var(--color-border);border-radius:6px;width:100%;padding:.5rem}input[type=text]:focus,textarea:focus{outline:2px solid var(--color-primary);outline-offset:-1px}textarea{resize:vertical;font-family:var(--font-body)}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--color-border);padding:.5rem .75rem}th{background:var(--color-surface);font-weight:600}:where(button,a,[role=button],summary,select,[tabindex]):focus-visible{outline:2px solid var(--color-accent,#2563eb);outline-offset:2px;border-radius:2px}input[type=text]:focus-visible,input[type=email]:focus-visible,input[type=password]:focus-visible,textarea:focus-visible{outline:2px solid var(--color-accent,#2563eb);outline-offset:1px}
