:root{--bg:#06131f;--panel:#0b2031;--panel2:#0e293e;--line:#21445c;--text:#edf8ff;--muted:#8faabd;--cyan:#29d3f2;--blue:#1686e8;--green:#4be0a5;--amber:#ffc35a;--red:#ff727b;--vacant:#294052}*{box-sizing:border-box}html{background:var(--bg);color-scheme:dark}body{margin:0;background:radial-gradient(circle at 80% -10%,#123957 0,transparent 35%),var(--bg);color:var(--text);font:14px/1.45 "Segoe UI",Arial,sans-serif}button,input,select,textarea{font:inherit;color:var(--text);background:#0a1c2a;border:1px solid var(--line);border-radius:9px;padding:10px 12px}button{cursor:pointer}button:hover{border-color:var(--cyan)}button.primary{color:#00131e;background:linear-gradient(135deg,var(--cyan),#69e3ff);border:0;font-weight:750}button.danger{color:#ffdfe1;border-color:#8f3d46;background:#351c25}button:disabled{opacity:.5;cursor:wait}a{color:var(--cyan)}.layout{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:100vh}aside{position:sticky;top:0;height:100vh;padding:28px 22px;background:#05111b;border-right:1px solid #17344a;display:flex;flex-direction:column}.brand{font-size:31px;font-weight:800;letter-spacing:1px}.brand span{color:var(--cyan)}.eyebrow{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:#64caef}nav{display:grid;gap:7px;margin-top:42px}nav a{padding:11px 12px;text-decoration:none;color:#9eb6c8;border-radius:8px}nav a:hover,nav a.active{background:#12334a;color:white}.sidefoot{margin-top:auto;color:#7894a8;border-top:1px solid #17344a;padding-top:18px;font-size:12px}main{padding:28px 34px;min-width:0}header,.panel-head,.toolbar,.tabs,.kpi-row,.dc-picker,.legend{display:flex;align-items:center;gap:12px;flex-wrap:wrap}header,.panel-head{justify-content:space-between}header{padding-bottom:22px;border-bottom:1px solid var(--line)}h1{font-size:31px;margin:4px 0 2px;letter-spacing:-1px}h2{font-size:19px;margin:0}h3{margin:0;font-size:15px}.muted{color:var(--muted)}.tabs{margin:20px 0}.tabs a{padding:9px 14px;border:1px solid var(--line);border-radius:9px;text-decoration:none;color:#a9c0d0}.tabs a.active{color:#00131e;background:var(--cyan);border-color:var(--cyan);font-weight:700}.kpi-row{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));margin:18px 0}.kpi,.panel{background:linear-gradient(145deg,#0d2639,#091b2a);border:1px solid var(--line);border-radius:14px}.kpi{padding:17px}.kpi strong{display:block;font-size:27px;margin-top:8px}.kpi small{color:var(--muted)}.kpi.accent{border-color:#2fbce4;box-shadow:inset 0 2px 0 #2fbce4}.panel{padding:20px;margin:16px 0}.dc-picker button.active{color:#00131e;background:var(--cyan);border-color:var(--cyan);font-weight:800}.sync-note{font-size:12px;color:var(--muted)}.legend{font-size:12px}.legend i{width:10px;height:10px;border-radius:3px;display:inline-block;margin-right:5px}.legend .active{background:var(--cyan)}.legend .maintenance{background:var(--red)}.legend .repaired{background:var(--amber)}.legend .vacant{background:var(--vacant)}.map-sides{display:grid;grid-template-columns:1fr 1fr;gap:16px}.side-board{background:#071925;border:1px solid var(--line);border-radius:13px;padding:15px;min-width:0}.side-board>h3{display:flex;justify-content:space-between;margin-bottom:12px}.columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.column{min-width:0}.column-title{text-align:center;color:#74d9f7;font-weight:700;margin-bottom:7px}.rack{padding:7px;background:#0a2232;border:1px solid #183b51;border-radius:9px;margin-bottom:7px}.rack-label{font-size:10px;color:#718fa3;margin-bottom:5px}.slot-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.slot{min-height:42px;padding:5px 3px;border:1px solid #29485c;border-radius:6px;background:#132a3a;color:#8aa4b5;text-align:center;font-size:9px;overflow:hidden}.slot b{display:block;font-size:10px;color:inherit}.slot small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.slot.active{background:#0c4053;border-color:#27c8eb;color:#e8fbff}.slot.maintenance{background:#3d2028;border-color:#dc5d69;color:#ffe3e5}.slot.repaired{background:#45361b;border-color:#dca63e;color:#fff0c8}.slot.vacant{opacity:.55}.slot:hover{opacity:1;transform:translateY(-1px)}.table-panel{padding:0;overflow:hidden}.table-tools{padding:18px}.tablewrap{max-height:calc(100vh - 300px);overflow:auto;position:relative}.data-table{border-collapse:separate;border-spacing:0;width:100%;min-width:1180px}.data-table th{position:sticky;top:0;z-index:2;background:#0d2a3f;color:#8fc7e0;text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.6px}.data-table th,.data-table td{padding:11px 13px;border-bottom:1px solid #17364b}.data-table tr:hover td{background:#0d2638}.status{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:700}.status.active{background:#0a493e;color:#7ff0c4}.status.maintenance{background:#4a2229;color:#ffabb1}.status.repaired{background:#473719;color:#ffd580}.filters{display:grid;grid-template-columns:2fr 1fr 1fr;gap:10px}.scan-layout{display:grid;grid-template-columns:minmax(300px,.85fr) minmax(0,1.65fr);gap:16px}.scanbox input{width:100%;font-size:20px;padding:14px}.machine-card{border:1px solid var(--line);border-radius:12px;padding:15px;margin-top:14px;background:#071a28}.machine-card strong{font-size:17px}.meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.meta{padding:10px;background:#0b2435;border-radius:8px}.meta small{display:block;color:var(--muted)}.action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.action-card{padding:15px;border:1px solid var(--line);border-radius:11px;background:#081d2c}.action-card label{display:grid;gap:5px;margin:9px 0;color:#aac0cf;font-size:12px}.action-card textarea{min-height:72px;resize:vertical}.action-card button{width:100%;margin-top:6px}.queue{display:grid;gap:8px}.queue-item{display:grid;grid-template-columns:1.3fr 1.2fr .8fr auto;gap:12px;align-items:center;padding:12px;border:1px solid #28485d;border-radius:10px;background:#0a1f2e}.queue-item b,.queue-item span{overflow-wrap:anywhere}.history{display:grid;gap:6px}.history-row{display:grid;grid-template-columns:150px 130px 1fr 1fr;gap:12px;padding:10px;border-bottom:1px solid #17364b}.empty{padding:32px;text-align:center;color:var(--muted)}dialog{width:min(900px,94vw);max-height:88vh;overflow:auto;background:#091d2c;border:1px solid #2b5872;border-radius:14px;color:var(--text);padding:0}dialog::backdrop{background:#000b}.dialog-body{padding:22px}.dialog-head{display:flex;justify-content:space-between;align-items:start;gap:12px}.failure{border-left:3px solid var(--red);padding:10px 13px;background:#2d1b23;margin:8px 0}.notice{padding:12px 14px;border:1px solid #27647e;background:#0b2b3e;border-radius:10px;margin:14px 0}.warning{border-color:#805f28;background:#342a19}.error{border-color:#8b3e48;background:#351d25}.ok{border-color:#24745a;background:#102e29}@media(max-width:1200px){.kpi-row{grid-template-columns:repeat(3,1fr)}.map-sides,.scan-layout{grid-template-columns:1fr}.columns{grid-template-columns:1fr}.slot-grid{grid-template-columns:repeat(8,1fr)}}@media(max-width:720px){.layout{display:block}aside{position:static;height:auto}aside nav,.sidefoot{display:none}main{padding:18px}.kpi-row{grid-template-columns:repeat(2,1fr)}.filters,.action-grid{grid-template-columns:1fr}.queue-item,.history-row{grid-template-columns:1fr}.slot-grid{grid-template-columns:repeat(4,1fr)}}
.head-actions,.scan-row,.panel-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.head-actions{justify-content:flex-end}.button{display:inline-flex;padding:10px 13px;border:1px solid var(--line);border-radius:9px;text-decoration:none;color:var(--text)}.button:hover{border-color:var(--cyan)}.panel-title{justify-content:space-between}.scan-panel label{display:block;color:#b8cbd7;font-weight:700;margin-bottom:7px}.scan-row input{flex:1;min-width:260px;font-size:20px}.scan-panel small{display:block;margin-top:8px;color:var(--muted)}.facts{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:16px 0}.facts>div{padding:11px;background:#071a28;border:1px solid #17394e;border-radius:9px;min-width:0}.facts small{display:block;color:var(--muted)}.facts b{display:block;overflow-wrap:anywhere;margin-top:4px}.badge{display:inline-flex;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:700}.badge.active{background:#0a493e;color:#7ff0c4}.badge.maintenance{background:#4a2229;color:#ffabb1}.badge.repaired{background:#473719;color:#ffd580}.split{display:grid;grid-template-columns:1fr 1fr;gap:16px}.tablebox{max-height:430px;overflow:auto;border:1px solid #17384d;border-radius:10px}.tablebox table{width:100%;border-collapse:separate;border-spacing:0}.tablebox th{position:sticky;top:0;background:#0d2a3f;color:#8fc7e0;text-align:left;z-index:2}.tablebox th,.tablebox td{padding:10px;border-bottom:1px solid #17364b}.maintenance-list{display:grid;gap:8px;max-height:430px;overflow:auto}.maintenance-list>button,.match-list>button{display:grid;text-align:left;gap:3px;background:#081d2c}.maintenance-list>button span,.maintenance-list>button small,.match-list small{color:var(--muted)}.match-list{display:grid;gap:8px;margin-top:14px}.text-link{border:0;background:transparent;color:var(--cyan);padding:0;text-decoration:underline}.toast{position:fixed;right:24px;bottom:24px;z-index:20;min-width:260px;max-width:520px;display:none}.toast.notice{display:block}@media(max-width:1200px){.split{grid-template-columns:1fr}.facts{grid-template-columns:repeat(3,1fr)}}@media(max-width:720px){.facts{grid-template-columns:1fr}}



.kpi-row{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.offline-kpi{border-color:var(--red);box-shadow:inset 0 2px 0 var(--red)}.legend .offline{background:var(--red)}.slot.offline{background:#4a1e28;border-color:var(--red);color:#ffe2e4;box-shadow:0 0 0 1px #ff727b55}.status.offline{background:#54212a;color:#ffb4b9}.offline-row td{background:#2a1820}.offline-row:hover td{background:#351d26!important}.filters{grid-template-columns:2fr repeat(3,1fr)}
nav .cgm-nav-icon{display:inline-flex;width:22px;justify-content:center;margin-right:5px;color:var(--cyan);font-size:18px;line-height:1}

nav .cgm-nav-icon svg{display:block;width:18px;height:18px}
