:root { color-scheme: dark; }
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{background:#0b0e14;color:#e6edf3;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,Arial}
a{color:#8ccfff;text-decoration:none}
.container{max-width:1200px;margin:0 auto;padding:20px}
header,footer{background:#0f141f;border-bottom:1px solid #1a2233}
h1,h2,h3{line-height:1.25}
.card{background:#0f141f;border:1px solid #1a2233;border-radius:14px;padding:14px;margin:12px 0}
.badge{display:inline-block;border:1px solid #27324a;border-radius:999px;padding:4px 10px;margin-right:8px;font-size:.85rem}
table{width:100%;border-collapse:collapse}
th,td{padding:10px;border-bottom:1px solid #1a2233;text-align:left;vertical-align:top}
input,select,textarea{width:100%;background:#0c1120;color:#e6edf3;border:1px solid #22314d;border-radius:10px;padding:10px}
button,.btn{display:inline-block;background:#1b263b;border:1px solid #2a3a5c;color:#e6edf3;border-radius:12px;padding:10px 14px;cursor:pointer;text-decoration:none}
button:hover,.btn:hover{background:#23314d}
.grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(500px,1fr))}
.alert{padding:10px;border-radius:10px}
.ok{background:#112417;border:1px solid #214a31;color:#98ffb0}
.warn{background:#2a2412;border:1px solid #5a4c1f;color:#ffd37d}
.err{background:#2a1515;border:1px solid #5a2222;color:#ff9c9c}
.small{font-size:.9rem;opacity:.85}
.table-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.status-queued{color:#ffd37d}
.status-failed{color:#ff9c9c}
.status-published{color:#98ffb0}
.footer{opacity:.7}
.hl-bad{outline:2px dashed #ff9c9c;outline-offset:2px}
.kbd{border:1px solid #2a3a5c;border-radius:6px;padding:1px 6px;background:#0c1120}
