:root{color-scheme:light;--accent: #0a84ff;--accent-strong: #0069d9;--accent-soft: #e7f3ff;--content-bg: #f3f5f8;--surface: #ffffff;--surface-2: #f8fafc;--surface-3: #eef2f6;--text: #17202d;--text-muted: #667085;--border: #dde3ea;--topbar-bg: #ffffff;--sidebar-bg: #1b2330;--sidebar-bg-2: #202b3a;--sidebar-text: #c7cfdb;--sidebar-strong: #ffffff;--sidebar-muted: #8390a2;--sidebar-border: #111823;--success: #1b9a59;--success-soft: #e8f7ef;--warning: #d47a00;--warning-soft: #fff4df;--danger: #db3b49;--danger-soft: #fdebed;--offline: #778292;--offline-soft: #eef1f4;--shadow: 0 8px 24px rgb(15 23 42 / 8%);--shadow-soft: 0 2px 9px rgb(15 23 42 / 7%)}body.theme-dark{color-scheme:dark;--accent: #4aa3ff;--accent-strong: #77baff;--accent-soft: #153454;--content-bg: #141a23;--surface: #1d2632;--surface-2: #222d3a;--surface-3: #293646;--text: #e8edf4;--text-muted: #9ba7b7;--border: #303c4c;--topbar-bg: #1b2330;--success: #54ca88;--success-soft: #173c29;--warning: #ffc066;--warning-soft: #453316;--danger: #ff7a85;--danger-soft: #482128;--offline: #a4adba;--offline-soft: #2c3541;--shadow: 0 10px 30px rgb(0 0 0 / 25%);--shadow-soft: 0 3px 12px rgb(0 0 0 / 20%)}html,body{height:100%}body{margin:0;overflow:hidden;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--content-bg);color:var(--text)}*{box-sizing:border-box}button,input,select{font:inherit}.page{display:flex;min-width:0;min-height:0;height:100%;flex-direction:column;gap:14px;padding:16px 20px 20px;overflow:auto}.page-toolbar{display:flex;flex:0 0 auto;align-items:center;gap:10px;min-height:36px}.page-toolbar .context{display:flex;min-width:0;flex-direction:column}.page-toolbar .context strong{font-size:14px;font-weight:650}.page-toolbar .context span{color:var(--text-muted);font-size:12px}.spacer{flex:1 1 auto}.surface{border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:var(--shadow-soft)}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px;border-bottom:1px solid var(--border)}.section-head strong{font-size:14px;font-weight:650}.section-head span{color:var(--text-muted);font-size:12px}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px}.kpi{position:relative;min-height:92px;padding:15px 16px;overflow:hidden}.kpi:after{content:"";position:absolute;top:14px;right:14px;width:34px;height:34px;border-radius:10px;background:var(--accent-soft)}.kpi .label{display:block;margin-bottom:7px;color:var(--text-muted);font-size:11px;font-weight:650;letter-spacing:.055em;text-transform:uppercase}.kpi .value{display:block;font-size:25px;font-weight:720;line-height:1}.kpi .detail{display:block;margin-top:8px;color:var(--text-muted);font-size:12px}.badge{display:inline-flex;align-items:center;gap:5px;min-height:22px;padding:2px 8px;border-radius:999px;background:var(--surface-3);color:var(--text-muted);font-size:11px;font-weight:650;white-space:nowrap}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.badge--working,.badge--online,.badge--good,.badge--installed,.badge--verified,.badge--assigned,.badge--active{background:var(--success-soft);color:var(--success)}.badge--idle,.badge--warning,.badge--configured,.badge--reserved,.badge--planned,.badge--newer-available{background:var(--warning-soft);color:var(--warning)}.badge--alarm,.badge--bad,.badge--conflict{background:var(--danger-soft);color:var(--danger)}.badge--offline,.badge--unknown,.badge--uncertain,.badge--observed,.badge--draft,.badge--to-verify,.badge--to-configure,.badge--free,.badge--available{background:var(--offline-soft);color:var(--offline)}.mono{font-family:Cascadia Code,SFMono-Regular,Consolas,monospace;font-size:.94em}.muted{color:var(--text-muted)}.split{display:grid;min-height:0;grid-template-columns:minmax(0,1fr) 340px;gap:14px}.grid-surface{display:flex;min-height:360px;flex:1 1 auto;flex-direction:column;overflow:hidden}.grid-surface>dx-data-grid,.grid-surface>dx-tree-list{min-height:0;flex:1 1 auto}.empty-state{display:grid;min-height:160px;place-items:center;color:var(--text-muted);text-align:center}@media(max-width:1100px){.kpi-grid{grid-template-columns:repeat(2,minmax(160px,1fr))}.split{grid-template-columns:1fr}}@media(max-width:680px){.page{padding:12px}.kpi-grid{grid-template-columns:1fr}}
