:root{color-scheme:dark}
body{background:#0a0a0b;color:#e4e4e7;font-family:-apple-system,BlinkMacSystemFont,'SF Pro Text','Segoe UI',Roboto,'Noto Sans SC',sans-serif;-webkit-font-smoothing:antialiased;font-size:14px}
.hidden{display:none!important}
.sidebar{background:#121214;border-right:1px solid #27272a}
.card{background:#18181b;border:1px solid #27272a;border-radius:10px}
.card-soft{background:#121214;border:1px solid #27272a;border-radius:10px;padding:12px}
.card-hover:hover{border-color:#3f3f46}
.panel-head{border-bottom:1px solid #27272a;padding:14px 16px}
.panel-head h3{font-size:13px;font-weight:600;color:#e4e4e7}
.panel-head p{font-size:12px;color:#71717a;margin-top:2px}
.block-header{display:flex;align-items:center;padding:10px 16px;cursor:pointer;border-bottom:1px solid #27272a;font-size:13px;color:#e4e4e7;user-select:none}
.block-header:hover{background:#1f1f23}
.small-title{font-size:11px;color:#a1a1aa;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:collapse;font-size:13px}
th{text-align:left;padding:8px 12px;color:#71717a;font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #27272a;white-space:nowrap}
td{padding:10px 12px;border-bottom:1px solid #1f1f23;font-size:13px;vertical-align:middle}
tr:hover td{background:rgba(255,255,255,.02)}
.up{color:#22c55e}.down{color:#ef4444}.positive{color:#22c55e}.danger{color:#ef4444}.warning{color:#eab308}.muted{color:#71717a}
.pill{background:#27272a;color:#a1a1aa;font-size:11px;padding:2px 10px;border-radius:999px;white-space:nowrap}
.badge{font-size:11px;padding:2px 8px;border-radius:6px;font-weight:500;white-space:nowrap;display:inline-block}
.badge-green{background:rgba(34,197,94,.15);color:#22c55e}
.badge-red{background:rgba(239,68,68,.15);color:#ef4444}
.badge-amber{background:rgba(234,179,8,.15);color:#eab308}
.badge-blue{background:rgba(59,130,246,.15);color:#3b82f6}
.badge-teal{background:rgba(20,184,166,.15);color:#14b8a6}
.badge-gray{background:rgba(161,161,170,.1);color:#a1a1aa}
.badge-purple{background:rgba(168,85,247,.15);color:#a855f7}
.tab{display:inline-block;padding:6px 14px;font-size:12px;color:#71717a;cursor:pointer;border-radius:6px;transition:all .15s}
.tab:hover{color:#e4e4e7;background:rgba(255,255,255,.05)}
.tab.active,.tab-active{color:#e4e4e7;background:#27272a}
.nav-item{display:flex;align-items:center;gap:10px;padding:10px 14px;font-size:13px;color:#71717a;border-radius:8px;cursor:pointer;text-decoration:none;transition:all .15s}
.nav-item:hover{color:#e4e4e7;background:rgba(255,255,255,.04)}
.nav-item.active,.nav-active{color:#e4e4e7;background:#27272a}
.nav-item small{margin-left:auto;color:#52525b;font-size:11px}
.nav-children{margin:4px 0 8px 18px;display:flex;flex-direction:column;gap:4px}
.nav-child{padding:8px 12px;font-size:12px;gap:6px}
.nav-child small{display:none}
.btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;font-size:12px;border-radius:6px;cursor:pointer;font-weight:500;text-decoration:none;transition:all .15s}
.btn-primary{background:#3b82f6;color:#fff}.btn-primary:hover{background:#2563eb}
.btn-secondary{background:#27272a;color:#a1a1aa}.btn-secondary:hover{background:#3f3f46;color:#e4e4e7}
.btn-ghost{background:transparent;color:#71717a;padding:4px 10px}
.btn-ghost:hover{color:#e4e4e7;background:rgba(255,255,255,.04)}
.btn:disabled{opacity:.5;cursor:not-allowed}
[x-cloak]{display:none!important}
.mono{font-family:'SF Mono','JetBrains Mono',monospace;font-size:12px}
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}
.modal-backdrop.show{display:flex}
.modal{background:#18181b;border:1px solid #27272a;border-radius:12px;max-width:480px;width:100%;max-height:85vh;overflow-y:auto}
input,select,textarea{background:#18181b;border:1px solid #27272a;border-radius:8px;padding:8px 12px;font-size:13px;color:#e4e4e7;width:100%;outline:none;transition:border-color .15s}
input:focus,select:focus,textarea:focus{border-color:#3b82f6}
label{display:block;font-size:11px;color:#71717a;margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px}
.queue-item{padding:12px 0;border-bottom:1px solid #1f1f23}
.queue-item:last-child{border-bottom:none}
.queue-item-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}
.queue-item-top strong{font-size:13px;color:#e4e4e7}
.queue-item p{font-size:12px;color:#71717a;line-height:1.4}
.kv-list{padding:12px 16px}
.kv{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #1f1f23;font-size:13px}
.kv:last-child{border-bottom:none}
.kv span{color:#71717a}
.kv strong{color:#e4e4e7;font-weight:600}
.filters{display:flex;gap:6px;flex-wrap:wrap;padding:12px 16px}
.login-overlay{position:fixed;inset:0;z-index:9999;background:
radial-gradient(circle at top, rgba(59,130,246,.16), transparent 35%),
linear-gradient(180deg,#0a0a0b 0%,#111217 100%);
display:flex;align-items:center;justify-content:center;padding:20px}
.login-card{background:rgba(24,24,27,.94);border:1px solid #27272a;border-radius:16px;padding:32px;width:380px;max-width:92vw;box-shadow:0 24px 80px rgba(0,0,0,.45)}
.login-brand{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:22px}
.login-brand-mark{width:52px;height:52px;border-radius:999px;background:#2563eb;color:#fff;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;margin-bottom:12px}
.login-card h2{font-size:20px;font-weight:700;margin-bottom:4px}
.login-card p{font-size:12px;color:#a1a1aa;margin-bottom:0}
.login-error{color:#fca5a5;font-size:12px;margin-top:14px;background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.24);padding:10px 12px;border-radius:10px}
.login-note{font-size:11px;color:#71717a;text-align:center;margin-top:16px}
.w-full{width:100%}
.stage-line{display:flex;gap:8px;padding:16px}
.stage-node{flex:1;padding:12px;border:1px solid #27272a;border-radius:8px;text-decoration:none;transition:all .15s;text-align:center}
.stage-node:hover{border-color:#3f3f46}
.stage-node.current{border-color:#3b82f6;background:rgba(59,130,246,.08)}
.stage-node.done{border-color:#22c55e;background:rgba(34,197,94,.08)}
.stage-node span{font-size:10px;color:#71717a;display:block}
.stage-node strong{display:block;font-size:12px;color:#e4e4e7;margin:4px 0}
.stage-node small{font-size:10px;color:#52525b}
.metric{padding:14px 16px;text-align:center}
.metric span{font-size:11px;color:#71717a;text-transform:uppercase;letter-spacing:.5px}
.metric strong{display:block;font-size:22px;font-weight:700;margin:4px 0;color:#e4e4e7}
.metric small{font-size:11px;color:#52525b}
.danger{color:#ef4444}
.positive{color:#22c55e}
.warning{color:#eab308}
.metric-inline{display:flex;align-items:center;gap:6px;padding:4px 8px;background:#121214;border:1px solid #27272a;border-radius:8px}
.metric-inline span{font-size:11px;color:#71717a;text-transform:uppercase;letter-spacing:.5px}
.metric-inline strong{font-size:14px;font-weight:700;color:#e4e4e7}
.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}@media(max-width:768px){.sidebar{display:none}.mobile-nav{display:flex}.topbar-mobile{display:flex}.stage-line{flex-direction:column}}
@media(min-width:769px){.mobile-nav{display:none}.topbar-mobile{display:none}}
