:root{--panel:#14171c;--panel-2:#1b1f26;--panel-3:#232833;--line:#2c323d;--line-bright:#3a4250;--ink:#e7ebf0;--ink-dim:#97a0ad;--ink-faint:#626b78;--signal:#f2a413;--signal-dim:#7a5713;--live:#35c26a;--alert:#e5484d;--info:#4a90d9;--radius:3px;--mono:"JetBrains Mono","SF Mono","Menlo","Consolas",monospace;--sans:"Inter",-apple-system,"Segoe UI",system-ui,sans-serif}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--panel);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.legend{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint)}.legend,.mono{font-family:var(--mono)}.dim{color:var(--ink-dim)}.faint{color:var(--ink-faint)}.shell{display:grid;grid-template-columns:232px 1fr;min-height:100vh}.sidebar{border-right:1px solid var(--line);background:var(--panel-2);padding:20px 16px;display:flex;flex-direction:column;gap:4px}.brand{display:flex;align-items:baseline;gap:8px;padding:4px 8px 20px;border-bottom:1px solid var(--line);margin-bottom:14px}.brand .mark{font-family:var(--mono);font-weight:700;font-size:15px;letter-spacing:-.02em;color:var(--ink)}.brand .mark b{color:var(--signal)}.brand .sub{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;color:var(--ink-faint);text-transform:uppercase}.navlink{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius);color:var(--ink-dim);font-size:13px;cursor:pointer;border:1px solid transparent}.navlink.active,.navlink:hover{background:var(--panel-3);color:var(--ink)}.navlink.active{border-color:var(--line-bright)}.navlink .k{font-family:var(--mono);font-size:10px;color:var(--ink-faint);margin-left:auto}.main{padding:28px 34px;max-width:1180px}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px}.topbar h1{font-size:20px;font-weight:600;letter-spacing:-.01em;margin:0}.topbar .who{display:flex;align-items:center;gap:12px}.role-chip{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;padding:3px 8px;border:1px solid var(--line-bright);border-radius:var(--radius);color:var(--signal)}.grid{display:grid;grid-gap:16px;gap:16px}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-2{grid-template-columns:repeat(2,1fr)}.panelbox{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.panelbox h2{font-size:13px;font-weight:600;margin:0 0 14px;letter-spacing:.01em}.stat{display:flex;flex-direction:column;gap:6px}.stat .num{font-family:var(--mono);font-size:30px;font-weight:600;letter-spacing:-.02em}.stat .num.amber{color:var(--signal)}.stat .num.alert{color:var(--alert)}.lamp{width:8px;height:8px;border-radius:50%;display:inline-block}.lamp.live{background:var(--live);box-shadow:0 0 6px var(--live)}.lamp.amber{background:var(--signal);box-shadow:0 0 6px var(--signal)}.lamp.alert{background:var(--alert);box-shadow:0 0 6px var(--alert)}.lamp.off{background:var(--ink-faint)}table.readout{width:100%;border-collapse:collapse;font-size:13px}table.readout th{text-align:left;font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);font-weight:500;padding:8px 10px}table.readout td,table.readout th{border-bottom:1px solid var(--line)}table.readout td{padding:9px 10px}table.readout tr:hover td{background:var(--panel-3)}table.readout td.num{font-family:var(--mono);text-align:right}.btn,.clickable{cursor:pointer}.btn{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-family:var(--sans);font-weight:500;padding:8px 14px;border-radius:var(--radius);background:var(--panel-3);color:var(--ink);border:1px solid var(--line-bright)}.btn:hover{color:var(--signal)}.btn.primary,.btn:hover{border-color:var(--signal)}.btn.primary{background:var(--signal);color:#12140f}.btn.primary:hover{filter:brightness(1.08);color:#12140f}.btn.small{padding:5px 10px;font-size:12px}.btn:disabled{opacity:.5;cursor:not-allowed}.pill{font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;padding:2px 7px;border-radius:2px;border:1px solid var(--line-bright);color:var(--ink-dim)}.pill.live{color:var(--live);border-color:var(--live)}.pill.amber{color:var(--signal);border-color:var(--signal-dim)}.pill.alert{color:var(--alert);border-color:var(--alert)}.pill.info{color:var(--info);border-color:var(--info)}.login-wrap{min-height:100vh;display:grid;place-items:center;background:radial-gradient(1200px 600px at 50% -10%,#1a1e26 0,var(--panel) 60%)}.login-card{width:360px;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius);padding:30px 28px}.login-card .brand{border:none;padding:0 0 22px;margin:0 0 22px;border-bottom:1px solid var(--line)}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint)}.field input{background:var(--panel-3);border:1px solid var(--line-bright);border-radius:var(--radius);color:var(--ink);padding:10px 12px;font-size:14px;font-family:var(--mono)}.field input:focus{outline:none;border-color:var(--signal)}.err{color:var(--alert);font-size:12.5px;margin:8px 0 0;font-family:var(--mono)}.row{align-items:center;gap:10px}.between{justify-content:space-between}.wrap-actions{display:flex;flex-wrap:wrap;gap:8px}.empty{color:var(--ink-faint);font-family:var(--mono);font-size:12.5px;padding:18px 4px}.mt24{margin-top:24px}.mt16{margin-top:16px}.mb8{margin-bottom:8px}.spinner{color:var(--ink-faint);font-family:var(--mono);font-size:12.5px;padding:30px 4px}@media (max-width:820px){.shell{grid-template-columns:1fr}.sidebar{flex-direction:row;overflow-x:auto}.grid-2,.grid-3{grid-template-columns:1fr}.main{padding:20px}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.drawer-backdrop{position:fixed;inset:0;background:rgba(6,8,11,.66);display:flex;justify-content:flex-end;z-index:50}.drawer{width:440px;max-width:92vw;height:100%;overflow-y:auto;background:var(--panel-2);border-left:1px solid var(--line-bright);padding:24px 22px}.kv{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid var(--line)}.kv:last-child{border-bottom:none}.ok-msg{color:var(--live);font-family:var(--mono);font-size:13px;display:flex;align-items:center;gap:8px;margin:0 0 16px}.field textarea:focus{outline:none;border-color:var(--signal)}.compare{display:flex;align-items:center;gap:10px}.compare-col{flex:1 1;background:var(--panel);border:1px solid var(--line);border-radius:3px;padding:10px 12px}.compare-arrow{color:var(--signal);font-size:18px}.btn.danger{border-color:var(--alert,#c0392b);color:var(--alert,#e74c3c)}.btn.danger:hover:not(:disabled){background:rgba(192,57,43,.12)}.spinner-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--signal);animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:.3}50%{opacity:1}}@media (max-width:820px){.drawer{width:100vw}}.rowBetween{justify-content:space-between}.checkline,.rowBetween{display:flex;align-items:center}.checkline{gap:6px;color:var(--ink-dim);font-size:13px}.cards{display:flex;flex-direction:column;gap:10px}.card{background:var(--panel-2);border:1px solid var(--line-bright,#2a2f39);border-radius:4px;padding:12px}.cardHead{display:flex;align-items:center;justify-content:space-between;font-weight:600}.card .note{margin:6px 0 2px;color:var(--ink)}.tag{padding:2px 8px;border-radius:3px;font-size:12px;font-weight:700}.tag-pending{background:var(--signal-dim);color:var(--signal)}.tag-approved{background:#1c3a24;color:#3ecf8e}.tag-rework{background:#3a1c1c;color:var(--alert)}.reviewForm{margin-top:8px}.reviewForm textarea{width:100%;min-height:56px;background:var(--panel-3);color:var(--ink);border:1px solid var(--line-bright,#2a2f39);border-radius:4px;padding:8px;margin-bottom:8px}.row{display:flex;gap:8px}.btn-signal{border-color:var(--signal);color:var(--signal)}.btn-danger{border-color:var(--alert);color:var(--alert)}.timeline{list-style:none;padding:0;margin:8px 0 0}.timeline li{display:flex;align-items:center;gap:8px;padding:4px 0}.tlDot{width:8px;height:8px;border-radius:50%;background:var(--signal);flex:0 0 auto}.input,.tlLabel{color:var(--ink)}.input{background:var(--panel-3);border:1px solid var(--line);border-radius:6px;padding:8px 10px;font-size:14px;min-width:160px}.input:focus{outline:none;border-color:var(--line-bright)}.pkg{background:var(--panel-2);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:12px;margin-top:12px;font-size:12px;white-space:pre-wrap;word-break:break-word;max-height:360px;overflow:auto}.taskForm{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}.taskForm .input{flex:0 1 auto}