*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--bg:#1a1a1a;--bg-surface:#262626;--bg-input:#2d2d2d;--bg-hover:#333333;--border:#3f3f3f;--text:#ececec;--text-muted:#8e8ea0;--text-dim:#555;--accent:#ececec;--danger:#ef4444;--warn:#f59e0b;--success:#22c55e}body,html{background:var(--bg);color:var(--text);font-family:SF Mono,Fira Code,Cascadia Code,Menlo,monospace;font-size:13px;line-height:1.6;min-height:100vh}a{color:var(--text-muted);text-decoration:none}a:hover,button{color:var(--text)}button{background:var(--bg-surface);border:1px solid var(--border);padding:4px 10px;cursor:pointer;font-family:inherit;font-size:12px;border-radius:4px;transition:background .15s}button:hover:not(:disabled){background:var(--bg-hover)}button:disabled{opacity:.4;cursor:not-allowed}button.danger{border-color:var(--danger);color:var(--danger)}button.danger:hover:not(:disabled){background:#3f1212}button.primary{background:var(--text);color:#000;border-color:var(--text)}button.primary:hover:not(:disabled){background:#ccc}input:not([type=checkbox]):not([type=radio]),select,textarea{background:var(--bg-input);color:var(--text);border:1px solid var(--border);padding:4px 8px;font-family:inherit;font-size:12px;border-radius:4px;outline:none;width:100%}input:not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus{border-color:#666}input[type=checkbox],input[type=radio]{width:auto;flex-shrink:0;cursor:pointer;accent-color:var(--success)}select option{background:var(--bg-input)}table{border-collapse:collapse;width:100%;font-size:12px}th{background:var(--bg-surface);color:var(--text-muted);text-align:left;white-space:nowrap;font-weight:600}td,th{border:1px solid var(--border);padding:6px 8px}td{vertical-align:top}tr:hover td{background:#1f1f1f}.surface{background:var(--bg-surface);border:1px solid var(--border);border-radius:6px;padding:12px 16px}.muted{color:var(--text-muted)}.danger-text{color:var(--danger)}.success-text{color:var(--success)}.warn-text{color:var(--warn)}.badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600}.badge-draft{background:#2d2d2d;color:var(--text-muted);border:1px solid var(--border)}.badge-in_review{background:#2d1f00;color:var(--warn);border:1px solid #5a3d00}.badge-published{background:#0d2d1a;color:var(--success);border:1px solid #1a5c33}.badge-rejected{background:#2d0d0d;color:var(--danger);border:1px solid #5c1a1a}