:root{--bg: #071018;--bg-elev: #0c1822;--panel: #101d28;--panel-2: #152433;--stroke: rgba(184, 214, 232, .12);--gold: #e8c478;--gold-dim: rgba(232, 196, 120, .16);--teal: #4fd1c5;--teal-dim: rgba(79, 209, 197, .14);--text: #eaf1f6;--muted: #8aa0b2;--ok: #7dce9a;--warn: #e8b86d;--bad: #f07178;--p0: #f07178;--p1: #e8a04a;--p2: #6cb6ff;--p4: #8aa0b2;--shadow: 0 18px 50px rgba(0, 0, 0, .35);--radius: 14px;--nav-w: 232px}*{box-sizing:border-box}html,body,#app{margin:0;min-height:100%}body{font-family:Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;color:var(--text);background:radial-gradient(1200px 500px at 12% -10%,rgba(232,196,120,.08),transparent 55%),radial-gradient(900px 420px at 100% 0%,rgba(79,209,197,.07),transparent 50%),var(--bg)}a{color:inherit;text-decoration:none}button,input,select{font:inherit}.shell{display:grid;grid-template-columns:var(--nav-w) 1fr;min-height:100vh}.nav{border-right:1px solid var(--stroke);background:linear-gradient(180deg,#101d28f5,#071018fa);padding:22px 16px;display:flex;flex-direction:column;gap:18px}.brand{padding:4px 10px 8px}.brand-kicker{display:block;color:var(--gold);letter-spacing:.18em;font-size:11px;font-weight:700}.brand-title{display:block;margin-top:6px;font-size:20px;font-weight:700}.brand-sub{display:block;margin-top:4px;color:var(--muted);font-size:12px}.nav-list{display:flex;flex-direction:column;gap:6px}.nav-item{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:10px;color:var(--muted);border:1px solid transparent}.nav-item:hover{background:var(--panel-2);color:var(--text)}.nav-item.active{background:var(--gold-dim);color:var(--gold);border-color:#e8c47847}.nav-dot{width:8px;height:8px;border-radius:50%;background:currentColor}.nav-foot{margin-top:auto;padding:12px;border-radius:12px;border:1px dashed var(--stroke);color:var(--muted);font-size:12px;line-height:1.6}.main{min-width:0;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 28px 8px}.page-head h1{margin:0;font-size:24px}.page-head p{margin:6px 0 0;color:var(--muted);font-size:13px}.top-meta{display:flex;align-items:center;gap:10px}.badge{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;font-size:12px;border:1px solid var(--stroke);background:var(--panel);color:var(--muted)}.badge.demo{color:var(--gold);border-color:#e8c47859;background:var(--gold-dim)}.badge.admin{color:var(--teal);border-color:#4fd1c54d;background:var(--teal-dim)}.content{padding:12px 28px 32px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.card{background:linear-gradient(180deg,#152433e0,#101d28eb);border:1px solid var(--stroke);border-radius:var(--radius);box-shadow:var(--shadow)}.card.clickable{cursor:pointer;transition:transform .15s ease,border-color .15s ease}.card.clickable:hover{transform:translateY(-2px);border-color:#e8c47859}.module-card{padding:22px;min-height:188px}.module-kicker{color:var(--muted);font-size:12px;letter-spacing:.08em}.module-card h2{margin:8px 0 10px;font-size:22px}.module-card p{margin:0;color:var(--muted);line-height:1.6;font-size:13px}.module-stat{margin-top:18px;display:flex;gap:18px}.module-stat b{display:block;font-size:20px}.module-stat span{color:var(--muted);font-size:12px}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.kpi{padding:16px 18px}.kpi .label{color:var(--muted);font-size:12px}.kpi .value{margin-top:8px;font-size:26px;font-weight:700}.kpi .hint{margin-top:4px;color:var(--muted);font-size:12px}.split{display:grid;grid-template-columns:320px 1fr;gap:16px;min-height:620px}.split-wide{display:grid;grid-template-columns:1.15fr .85fr;gap:16px}.panel{padding:16px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.panel-head h3{margin:0;font-size:15px}.tabs{display:flex;gap:6px;flex-wrap:wrap}.tab{border:1px solid var(--stroke);background:transparent;color:var(--muted);padding:6px 10px;border-radius:999px;cursor:pointer}.tab.active{color:var(--gold);border-color:#e8c47866;background:var(--gold-dim)}.search{width:100%;margin-bottom:10px;padding:9px 11px;border-radius:10px;border:1px solid var(--stroke);background:#0b1620;color:var(--text);outline:none}.machine-list{display:flex;flex-direction:column;gap:6px;max-height:640px;overflow:auto;padding-right:4px}.machine-item{display:grid;grid-template-columns:1fr auto;gap:8px;padding:10px 12px;border-radius:10px;border:1px solid transparent;cursor:pointer;background:#0b16208c}.machine-item:hover{border-color:var(--stroke)}.machine-item.active{border-color:#e8c47866;background:var(--gold-dim)}.machine-name{font-weight:650}.machine-acc{display:block;margin-top:2px;color:var(--muted);font-size:12px}.score-pill{align-self:center;min-width:46px;text-align:right;font-weight:700}.score-ok{color:var(--ok)}.score-mid{color:var(--warn)}.score-low{color:var(--bad)}.chart-box{height:320px;padding:8px 4px 0}.table{width:100%;border-collapse:collapse;font-size:13px}.table th,.table td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--stroke)}.table th{color:var(--muted);font-weight:600}.prio{display:inline-block;min-width:34px;text-align:center;padding:2px 7px;border-radius:6px;font-size:12px;font-weight:700}.prio.P0{color:#3a0c10;background:var(--p0)}.prio.P1{color:#3a2508;background:var(--p1)}.prio.P2{color:#06233f;background:var(--p2)}.prio.P4{color:#0b1620;background:var(--p4)}.tag{display:inline-flex;padding:2px 8px;border-radius:999px;font-size:12px;border:1px solid var(--stroke);color:var(--muted)}.tag.hang{color:var(--warn);border-color:#e8b86d59}.tag.busy{color:var(--teal);border-color:#4fd1c559}.tag.idle{color:var(--ok);border-color:#7dce9a59}.tag.meal,.tag.rest{color:var(--muted)}.empty{padding:72px 24px;text-align:center}.empty h2{margin:0 0 10px}.empty p{margin:0 auto;max-width:420px;color:var(--muted);line-height:1.7}.engineer{display:grid;grid-template-columns:1fr auto;gap:8px;padding:12px;border-radius:12px;border:1px solid var(--stroke);background:#0b162073;margin-bottom:8px}.engineer .who{font-weight:700}.engineer .meta{margin-top:4px;color:var(--muted);font-size:12px}.engineer .where{margin-top:8px;font-size:13px}.queue-count{color:var(--muted);font-size:12px}@media (max-width: 1100px){.grid-3,.kpis,.split,.split-wide,.shell{grid-template-columns:1fr}.nav{flex-direction:row;overflow:auto}.nav-list{flex-direction:row}.nav-foot{display:none}}
