:root { color-scheme: dark; }
* { box-sizing: border-box; }
body { margin: 0; font: 14px/1.5 system-ui, sans-serif; background: #0f1216; color: #e6e9ee; }
a { color: #6ea8fe; text-decoration: none; }
a:hover { text-decoration: underline; }
nav { display: flex; gap: 16px; align-items: center; padding: 10px 18px; background: #151a21; border-bottom: 1px solid #232a34; }
nav b { color: #fff; }
nav form { margin-left: auto; }
main { max-width: 1100px; margin: 0 auto; padding: 20px; }
h1 { font-size: 20px; }
h2 { font-size: 15px; margin: 0 0 10px; }
.cards { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 18px; }
.card { background: #151a21; border: 1px solid #232a34; border-radius: 10px; padding: 14px 18px; min-width: 110px; }
.card .num { font-size: 26px; font-weight: 700; }
.card .lbl { color: #8a94a3; font-size: 12px; letter-spacing: .04em; }
.row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 800px) { .row { grid-template-columns: 1fr; } }
.panel { background: #151a21; border: 1px solid #232a34; border-radius: 10px; padding: 16px; margin-bottom: 16px; }
.inline { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin: 8px 0; }
table { width: 100%; border-collapse: collapse; font-size: 13px; }
th, td { text-align: left; padding: 6px 8px; border-bottom: 1px solid #232a34; }
th { color: #8a94a3; font-weight: 600; }
input, select, textarea, button { font: inherit; background: #0f1216; color: #e6e9ee; border: 1px solid #2c3542; border-radius: 6px; padding: 7px 10px; }
textarea { width: 100%; font-family: ui-monospace, monospace; }
button { background: #2b6cff; border-color: #2b6cff; color: #fff; cursor: pointer; }
button:hover { background: #1c5af0; }
button.link { background: none; border: none; color: #6ea8fe; padding: 0; }
button.danger { background: #b23a3a; border-color: #b23a3a; }
button:disabled { opacity: .5; cursor: not-allowed; }
.muted { color: #8a94a3; }
.warn { background: #3a2a10; border: 1px solid #6b4e1e; padding: 10px; border-radius: 8px; }
.msg { color: #7ee29a; }
.err { color: #ff8a8a; }
.badge { display: inline-block; padding: 2px 8px; border-radius: 999px; font-size: 12px; font-weight: 600; }
.st-PENDING { color: #d7b26b; } .badge.st-PENDING { background: #3a2f14; }
.st-PROCESSING { color: #6ea8fe; } .badge.st-PROCESSING { background: #16233a; }
.st-DONE { color: #7ee29a; } .badge.st-DONE { background: #14301f; }
.st-FAILED { color: #ff8a8a; } .badge.st-FAILED { background: #3a1616; }
.card.st-PENDING .num { color: #d7b26b; } .card.st-PROCESSING .num { color: #6ea8fe; }
.card.st-DONE .num { color: #7ee29a; } .card.st-FAILED .num { color: #ff8a8a; }
.worker-ctl-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.worker-ctl.st-paused { border-color: #6b4e1e; background: #251d10; }
.worker-ctl.st-running { border-color: #1e5b39; }
.center { display: flex; min-height: 100vh; align-items: center; justify-content: center; }
.login { background: #151a21; border: 1px solid #232a34; border-radius: 12px; padding: 28px; display: flex; flex-direction: column; gap: 10px; width: 280px; }
.login input, .login button { width: 100%; }
