:root{--cyan:#60a5fa;--cyan-dim:#3b82f659;--amber:#ffa94d;--green:#4ade80;--red:#ff6b6b;--text:#dce8f6;--text-dim:#8fa6c6;--panel:#091634bd;--edge:#3b82f638;--bg:#050b1e;--row-hi:#3b82f61a;--fs-xs:12px;--fs-s:13px;--fs-m:14px}*{box-sizing:border-box}[hidden]{display:none!important}body{background:radial-gradient(1200px 700px at 50% -10%, #0d2150 0%, var(--bg) 60%);color:var(--text);min-height:100vh;margin:0;font:13px/1.6 Microsoft YaHei,PingFang SC,system-ui,sans-serif}a{color:var(--cyan);text-decoration:none}a:hover{text-decoration:underline}.card{background:var(--panel);border:1px solid var(--edge);border-radius:4px;margin-bottom:10px;padding:10px 12px}.card>h2{font-size:var(--fs-m);color:var(--cyan);border-left:3px solid var(--cyan);justify-content:space-between;align-items:center;margin:0 0 8px;padding-left:8px;font-weight:600;display:flex}.card>h2 em{color:var(--text-dim);font-style:normal;font-weight:400}.kpis{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.kpi{border:1px solid var(--edge);background:#3b82f60d;border-radius:3px;padding:7px 9px}.kpi .v{color:var(--cyan);font-size:19px;font-weight:600;line-height:1.2}.kpi .v small{font-size:var(--fs-xs);color:var(--text-dim);font-weight:400}.kpi .k{font-size:var(--fs-xs);color:var(--text-dim)}button,.btn{border:1px solid var(--edge);color:var(--text);cursor:pointer;font:inherit;background:#3b82f614;border-radius:3px;padding:5px 11px;line-height:1.4}button:hover:not(:disabled),.btn:hover{background:#3b82f62e}button:disabled{opacity:.38;cursor:not-allowed}button.primary{color:#fff;background:linear-gradient(#3b82f6,#1d4ed8);border-color:#60a5fa}button.danger{color:var(--red);border-color:#ff6b6b80}button.danger:hover:not(:disabled){background:#ff6b6b29}input,select,textarea{border:1px solid var(--edge);color:var(--text);font:inherit;background:#00142899;border-radius:3px;width:100%;padding:5px 8px}input:focus,select:focus,textarea:focus{outline:1px solid var(--cyan-dim)}input:disabled,select:disabled,textarea:disabled{opacity:.5;cursor:not-allowed}textarea{resize:vertical;min-height:48px}label{color:var(--text-dim);font-size:var(--fs-xs);margin-bottom:2px;display:block}::placeholder{color:#5b76a3}.tag{font-size:var(--fs-xs);border:1px solid var(--edge);color:var(--text-dim);white-space:nowrap;border-radius:2px;padding:0 6px;display:inline-block}.tag.ok{color:var(--green);border-color:#4ade8066}.tag.vacant{color:var(--amber);border-color:#ffa94d66}.tag.pending{color:var(--red);border-color:#ff6b6b66}.tag.removed{color:#667}select option{background:#0a1838}#toast{z-index:99;border:1px solid var(--edge);max-width:460px;color:var(--text);opacity:0;pointer-events:none;white-space:pre-wrap;background:#0b1a3a;border-radius:4px;padding:9px 14px;transition:opacity .18s,transform .18s;position:fixed;top:14px;right:14px;transform:translateY(-10px)}#toast.show{opacity:1;transform:none}#toast.ok{border-color:#4ade808c}#toast.warn{border-color:#ffa94d8c}#toast.err{border-color:#ff6b6b99}.muted{color:var(--text-dim)}.right{text-align:right}.nowrap{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mask{z-index:60;background:#020812b8;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.mask.on{display:flex}.modal{border:1px solid var(--edge);background:#0b1a3a;border-radius:5px;width:560px;max-width:94vw;max-height:88vh;padding:16px 18px;overflow:auto}.modal h3{color:var(--cyan);font-size:var(--fs-m);margin:0 0 12px}.modal .row{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px;display:grid}.modal .foot{justify-content:flex-end;gap:8px;margin-top:14px;display:flex}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#3b82f638;border-radius:4px}::-webkit-scrollbar-track{background:0 0}
