.app-shell[data-v-9fceb28c]{min-height:100vh;display:grid;grid-template-columns:264px minmax(0,1fr);background:linear-gradient(rgba(255,180,74,.022) 1px,transparent 1px),linear-gradient(90deg,rgba(255,180,74,.022) 1px,transparent 1px),var(--bg);background-size:48px 48px}.sidebar[data-v-9fceb28c]{position:sticky;top:0;z-index:40;height:100vh;display:flex;flex-direction:column;overflow:hidden;background:color-mix(in srgb,var(--surface) 96%,transparent);border-right:1px solid var(--border);box-shadow:12px 0 40px #00000029}.brand[data-v-9fceb28c]{display:flex;align-items:center;gap:12px;min-height:98px;padding:20px 18px;box-sizing:border-box;border-bottom:1px solid var(--border)}.brand-icon-wrap[data-v-9fceb28c]{position:relative;width:42px;height:42px;flex:0 0 42px;display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px solid var(--border-strong);border-radius:10px;background:var(--surface-2)}.brand-icon[data-v-9fceb28c]{width:30px;height:30px;display:block;object-fit:contain}.brand-led[data-v-9fceb28c]{position:absolute;right:4px;top:4px;width:5px;height:5px;border-radius:50%;background:var(--ok);box-shadow:0 0 8px var(--ok)}.brand-text[data-v-9fceb28c]{min-width:0;display:flex;flex-direction:column;justify-content:center}.brand-text h1[data-v-9fceb28c]{margin:2px 0 0;color:var(--text-strong);font-size:15px;font-weight:680;line-height:1.2;letter-spacing:.4px}.brand-kicker[data-v-9fceb28c],.brand-subtitle[data-v-9fceb28c]{font:8px/1.4 var(--mono);letter-spacing:1.25px;text-transform:uppercase}.brand-subtitle[data-v-9fceb28c]{margin-top:4px;color:var(--text-faint)}.brand-kicker[data-v-9fceb28c]{color:var(--accent)}.system-strip[data-v-9fceb28c]{min-height:37px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);color:var(--text-faint);font:8px var(--mono);letter-spacing:1px}.system-strip span[data-v-9fceb28c]{display:inline-flex;align-items:center;gap:7px}.system-strip i[data-v-9fceb28c]{width:5px;height:5px;border-radius:50%;background:var(--ok);box-shadow:0 0 8px var(--ok)}.system-strip b[data-v-9fceb28c]{padding:2px 6px;color:var(--warn);border:1px solid color-mix(in srgb,var(--warn) 30%,transparent);border-radius:3px;font-weight:500}.side-nav[data-v-9fceb28c]{flex:1;min-height:0;overflow-y:auto;padding:15px 12px 20px;scrollbar-width:thin}.nav-section+.nav-section[data-v-9fceb28c]{margin-top:17px}.nav-section-title[data-v-9fceb28c]{display:flex;align-items:center;gap:8px;padding:0 8px 7px;color:var(--text-faint);font:8px var(--mono);letter-spacing:1.25px;text-transform:uppercase}.nav-section-title span[data-v-9fceb28c]{color:var(--accent)}.nav-section-title b[data-v-9fceb28c]{font-weight:500}.nav-link[data-v-9fceb28c]{position:relative;display:flex;align-items:center;gap:11px;min-height:50px;margin:2px 0;padding:7px 9px;color:var(--text-dim);border:1px solid transparent;border-radius:7px;transition:.15s ease}.nav-link[data-v-9fceb28c]:hover{color:var(--text-strong);background:var(--surface-2);border-color:var(--border)}.nav-link.router-link-active[data-v-9fceb28c]{color:var(--text-strong);background:linear-gradient(90deg,var(--accent-weak),transparent 76%),var(--surface-2);border-color:color-mix(in srgb,var(--accent) 28%,var(--border))}.nav-link.router-link-active[data-v-9fceb28c]:before{content:"";position:absolute;left:-1px;top:9px;bottom:9px;width:2px;border-radius:2px;background:var(--accent);box-shadow:0 0 10px var(--accent-line)}.nav-icon[data-v-9fceb28c]{flex-shrink:0;opacity:.65;transition:.15s ease}.nav-link:hover .nav-icon[data-v-9fceb28c]{opacity:1}.nav-link.router-link-active .nav-icon[data-v-9fceb28c]{opacity:1;color:var(--accent)}.nav-copy[data-v-9fceb28c]{min-width:0;display:grid}.nav-copy b[data-v-9fceb28c]{color:inherit;font-size:12.5px;font-weight:580}.nav-copy small[data-v-9fceb28c]{overflow:hidden;margin-top:1px;color:var(--text-faint);font:8px var(--mono);letter-spacing:.45px;text-overflow:ellipsis;white-space:nowrap}.nav-state[data-v-9fceb28c]{width:4px;height:4px;margin-left:auto;border-radius:50%;background:var(--border-strong)}.router-link-active .nav-state[data-v-9fceb28c]{background:var(--accent);box-shadow:0 0 7px var(--accent)}.sidebar-foot[data-v-9fceb28c]{min-height:72px;padding:12px 14px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:8px}.identity[data-v-9fceb28c]{min-width:0;display:flex;align-items:center;gap:9px}.identity-avatar[data-v-9fceb28c]{width:30px;height:30px;flex:0 0 30px;display:grid;place-items:center;color:var(--accent);background:var(--accent-weak);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);border-radius:7px;font:9px var(--mono)}.identity>span[data-v-9fceb28c]:last-child{min-width:0;display:grid}.identity b[data-v-9fceb28c]{overflow:hidden;color:var(--text);font:10px var(--mono);text-overflow:ellipsis;white-space:nowrap}.identity small[data-v-9fceb28c]{margin-top:2px;color:var(--text-faint);font:8px var(--mono);letter-spacing:.5px;text-transform:uppercase}.foot-actions[data-v-9fceb28c]{display:flex;gap:5px}.logout-btn[data-v-9fceb28c]{width:30px;height:30px;display:grid;place-items:center;color:var(--text-dim);background:var(--surface-2);border:1px solid var(--border-strong);border-radius:6px;cursor:pointer}.logout-btn[data-v-9fceb28c]:hover{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 45%,var(--border))}.workspace[data-v-9fceb28c]{min-width:0}.cockpit-bar[data-v-9fceb28c]{position:sticky;top:0;z-index:30;min-height:68px;padding:0 26px;display:flex;align-items:center;justify-content:space-between;gap:24px;background:color-mix(in srgb,var(--bg) 90%,transparent);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.route-context[data-v-9fceb28c]{display:flex;align-items:center;gap:12px}.route-context>span[data-v-9fceb28c]:last-child{display:grid}.route-context small[data-v-9fceb28c]{color:var(--text-faint);font:8px var(--mono);letter-spacing:1px;text-transform:uppercase}.route-context b[data-v-9fceb28c]{margin-top:2px;color:var(--text-strong);font-size:14px;font-weight:620}.route-code[data-v-9fceb28c]{padding:5px 7px;color:var(--accent);background:var(--accent-weak);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);border-radius:4px;font:9px var(--mono);letter-spacing:.5px}.system-health[data-v-9fceb28c]{display:flex;align-items:center;gap:6px}.health-item[data-v-9fceb28c]{min-height:31px;padding:0 10px;display:inline-flex;align-items:center;gap:6px;color:var(--text-faint);border:1px solid var(--border);border-radius:5px;font:8px var(--mono);letter-spacing:.6px}.health-item i[data-v-9fceb28c]{width:5px;height:5px;border-radius:50%;background:var(--text-faint);opacity:.65}.health-item i.ok[data-v-9fceb28c]{background:var(--ok);box-shadow:0 0 7px var(--ok);opacity:1}.health-item b[data-v-9fceb28c]{color:var(--text-dim);font-weight:500}.health-item.clock[data-v-9fceb28c]{color:var(--text);font-size:10px;font-variant-numeric:tabular-nums}.health-item.clock small[data-v-9fceb28c]{color:var(--text-faint);font-size:7px}.process-rail[data-v-9fceb28c]{min-height:37px;padding:0 28px;display:flex;align-items:center;color:var(--text-faint);background:color-mix(in srgb,var(--surface) 65%,transparent);border-bottom:1px solid var(--border);font:7px var(--mono);letter-spacing:.85px}.process-rail em[data-v-9fceb28c]{width:clamp(16px,3vw,52px);height:1px;margin:0 8px;background:linear-gradient(90deg,var(--accent-line),var(--border-strong))}.rail-node[data-v-9fceb28c]{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.rail-node i[data-v-9fceb28c]{width:4px;height:4px;border-radius:50%;background:var(--text-faint)}.rail-node.active[data-v-9fceb28c]{color:var(--text-dim)}.rail-node.active i[data-v-9fceb28c]{background:var(--accent);box-shadow:0 0 6px var(--accent)}.main[data-v-9fceb28c]{width:100%;padding:28px clamp(20px,3vw,44px) 64px}.page-frame[data-v-9fceb28c]{width:min(100%,1540px);margin:0 auto}.menu-trigger[data-v-9fceb28c]{display:none;width:34px;height:34px;padding:8px;background:var(--surface-2);border:1px solid var(--border);border-radius:6px}.menu-trigger span[data-v-9fceb28c]{display:block;height:1px;margin:4px 0;background:var(--text-dim)}.nav-backdrop[data-v-9fceb28c]{display:none}@media(max-width:1050px){.app-shell[data-v-9fceb28c]{grid-template-columns:226px minmax(0,1fr)}.system-health .health-item[data-v-9fceb28c]:not(.clock){display:none}}@media(max-width:760px){.app-shell[data-v-9fceb28c]{display:block}.sidebar[data-v-9fceb28c]{position:fixed;left:0;width:min(294px,86vw);transform:translate(-102%);transition:transform .18s ease}.nav-open .sidebar[data-v-9fceb28c]{transform:translate(0)}.nav-backdrop[data-v-9fceb28c]{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:35;padding:0;background:#00000094;border:0;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);cursor:pointer}.cockpit-bar[data-v-9fceb28c]{min-height:62px;padding:0 14px}.menu-trigger[data-v-9fceb28c]{display:block}.route-code[data-v-9fceb28c],.system-health[data-v-9fceb28c]{display:none}.process-rail[data-v-9fceb28c]{padding:0 14px;overflow-x:auto}.main[data-v-9fceb28c]{padding:20px 14px 44px}}:root,:root[data-theme=dark]{--bg: #0b0a08;--surface: #13110e;--surface-2: #1a1712;--surface-3: #242018;--border: #30291e;--border-strong: #4a3c28;--text-strong: #fff8eb;--text: #e4dac9;--text-dim: #a2947e;--text-faint: #6e6251;--accent: #ffb44a;--accent-strong: #ffc66f;--accent-weak: rgba(255, 180, 74, .105);--accent-line: rgba(255, 180, 74, .42);--ok: #75d59b;--warn: #ffb44a;--danger: #f27463;--g1: #75aee6;--g2: #ffb44a;--g3: #f27463;--g4: #75d59b;--chart-text: #a2947e;--chart-grid: #272219;--chart-axis: #4a3c28;--chart-tt-bg: #17130e;--chart-tt-border: #4a3c28;--band-fill: rgba(117, 213, 155, .14);--series-1: #75aee6;--series-2: #ffb44a;--series-3: #f27463;--series-4: #75d59b;--series-5: #b497df;--series-6: #db8d37;--shadow: 0 16px 46px rgba(0, 0, 0, .32);--mono: "SF Mono", "JetBrains Mono", "Cascadia Code", ui-monospace, Menlo, monospace}:root[data-theme=light]{--bg: #f2eee6;--surface: #fffdf8;--surface-2: #f7f0e4;--surface-3: #ede3d4;--border: #e0d4c3;--border-strong: #c8b69c;--text-strong: #251c12;--text: #423527;--text-dim: #796a57;--text-faint: #9e907c;--accent: #ad6500;--accent-strong: #8d5000;--accent-weak: rgba(173, 101, 0, .1);--accent-line: rgba(173, 101, 0, .36);--ok: #287c4d;--warn: #ad6500;--danger: #bc493d;--g1: #3477b2;--g2: #ad6500;--g3: #bc493d;--g4: #287c4d;--chart-text: #796a57;--chart-grid: #e8dece;--chart-axis: #c8b69c;--chart-tt-bg: #fffdf8;--chart-tt-border: #c8b69c;--band-fill: rgba(40, 124, 77, .12);--series-1: #3477b2;--series-2: #ad6500;--series-3: #bc493d;--series-4: #287c4d;--series-5: #74509c;--series-6: #ad6500;--shadow: 0 16px 44px rgba(67, 46, 20, .12)}*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}body{overflow-x:hidden;color:var(--text);background:var(--bg);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang TC,Microsoft JhengHei,system-ui,sans-serif;font-size:13.5px;line-height:1.55;-webkit-font-smoothing:antialiased;transition:color .18s ease,background .18s ease}button,input,select{font:inherit}button,.chip{-webkit-tap-highlight-color:transparent}a{color:var(--accent);text-decoration:none}::selection{color:#211302;background:var(--accent)}.mono,.stat .value,td.num,.tabnum,code{font-family:var(--mono);font-feature-settings:"tnum" 1}.page-head{position:relative;margin-bottom:22px;padding:0 0 17px 15px;border-bottom:1px solid var(--border)}.page-head:before{content:"";position:absolute;left:0;top:3px;width:2px;height:38px;background:linear-gradient(var(--accent),transparent);box-shadow:0 0 10px var(--accent-line)}.page-head:after{content:"CZ VIRTUAL PLC / CONTROL ANALYTICS";display:block;margin-top:8px;color:var(--text-faint);font:7px var(--mono);letter-spacing:1.35px}.page-head h2{margin:0 0 4px;color:var(--text-strong);font-size:clamp(20px,2vw,26px);font-weight:610;letter-spacing:-.45px}.page-head p{max-width:980px;margin:0;color:var(--text-dim);font-size:12.5px}h3{margin:0 0 13px;color:var(--text-faint);font:600 9px/1.4 var(--mono)!important;letter-spacing:1.05px;text-transform:uppercase}.card{position:relative;overflow:hidden;padding:18px 20px;background:linear-gradient(135deg,rgba(255,180,74,.025),transparent 32%),var(--surface);border:1px solid var(--border);border-radius:9px;box-shadow:0 1px #ffffff05 inset}.card:before{content:"";position:absolute;left:0;top:0;width:44px;height:1px;background:var(--accent-line)}.grid{display:grid;gap:14px}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:11px}.stat{position:relative;min-height:106px;padding:15px 17px;overflow:hidden;background:linear-gradient(115deg,var(--accent-weak),transparent 45%),var(--surface);border:1px solid var(--border);border-radius:8px}.stat:after{content:"";position:absolute;right:10px;top:10px;width:5px;height:5px;border:1px solid var(--border-strong);border-radius:50%}.stat .label{color:var(--text-faint);font:8px var(--mono);letter-spacing:1px;text-transform:uppercase}.stat .value{margin-top:8px;color:var(--text-strong);font-size:clamp(22px,2.15vw,30px);font-weight:560;line-height:1.05;letter-spacing:-1px}.stat .sub{margin-top:7px;color:var(--text-dim);font-size:10.5px}.scroll-x{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:12px}th,td{min-height:38px;padding:9px 11px;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}th{position:sticky;top:0;z-index:2;color:var(--text-faint);background:var(--surface);font:500 8px var(--mono);letter-spacing:1px;text-transform:uppercase}td.num,td.mono{color:var(--text-strong)}tbody tr{cursor:pointer;transition:background .11s ease}tbody tr:hover{background:var(--accent-weak)}tbody tr.selected{background:color-mix(in srgb,var(--accent-weak) 145%,transparent);box-shadow:2px 0 var(--accent) inset}.badge{display:inline-flex;min-height:21px;padding:2px 8px;align-items:center;border:1px solid transparent;border-radius:4px;font:8px var(--mono);letter-spacing:.45px;text-transform:uppercase}.badge.g1{color:var(--g1);border-color:color-mix(in srgb,var(--g1) 42%,transparent);background:color-mix(in srgb,var(--g1) 11%,transparent)}.badge.g2{color:var(--g2);border-color:color-mix(in srgb,var(--g2) 42%,transparent);background:color-mix(in srgb,var(--g2) 11%,transparent)}.badge.g3{color:var(--g3);border-color:color-mix(in srgb,var(--g3) 42%,transparent);background:color-mix(in srgb,var(--g3) 11%,transparent)}.badge.g4{color:var(--g4);border-color:color-mix(in srgb,var(--g4) 42%,transparent);background:color-mix(in srgb,var(--g4) 11%,transparent)}.badge.ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 42%,transparent);background:color-mix(in srgb,var(--ok) 11%,transparent)}.badge.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 42%,transparent);background:color-mix(in srgb,var(--danger) 11%,transparent)}.badge.warn{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 42%,transparent);background:color-mix(in srgb,var(--warn) 11%,transparent)}.badge.dim{color:var(--text-dim);border-color:var(--border-strong);background:var(--surface-2)}.controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:16px}input[type=text],input[type=password],input[type=email],select{min-height:34px;padding:7px 11px;color:var(--text);background:var(--surface-2);border:1px solid var(--border-strong);border-radius:5px;outline:none;font-size:12px;transition:border-color .12s ease,box-shadow .12s ease}input:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-weak)}input[type=range]{accent-color:var(--accent)}.chip{min-height:30px;padding:5px 10px;color:var(--text-dim);background:transparent;border:1px solid var(--border-strong);border-radius:5px;font:9px var(--mono);letter-spacing:.3px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:.12s ease}.chip:hover{color:var(--text);border-color:var(--text-faint)}.chip.active{color:var(--accent-strong);background:var(--accent-weak);border-color:var(--accent);box-shadow:0 0 12px #ffb44a12 inset}.btn{min-height:34px;padding:7px 13px;color:var(--text);background:var(--surface-2);border:1px solid var(--border-strong);border-radius:5px;font:9px var(--mono);letter-spacing:.55px;text-transform:uppercase;cursor:pointer;transition:.12s ease}.btn:hover{color:var(--text-strong);border-color:var(--text-faint);transform:translateY(-1px)}.btn.primary{color:#251504;background:var(--accent);border-color:var(--accent);font-weight:650;box-shadow:0 0 18px #ffb44a24}.btn.primary:hover{background:var(--accent-strong)}.btn:disabled{opacity:.36;cursor:not-allowed;transform:none}.icon-btn{width:30px;height:30px;display:inline-grid;place-items:center;color:var(--text-dim);background:var(--surface-2);border:1px solid var(--border-strong);border-radius:6px;cursor:pointer}.icon-btn:hover{color:var(--accent);border-color:var(--accent-line)}.chart{width:100%;height:380px}.loading,.empty{min-height:110px;padding:40px;display:grid;place-items:center;color:var(--text-faint);font:9px var(--mono);letter-spacing:.7px;text-transform:uppercase}.loading:before{content:"";width:20px;height:2px;margin-bottom:8px;background:var(--accent);box-shadow:0 0 10px var(--accent);animation:scan 1.2s ease-in-out infinite alternate}@keyframes scan{0%{transform:translate(-14px);opacity:.35}to{transform:translate(14px);opacity:1}}.error{padding:11px 13px;color:var(--danger);background:color-mix(in srgb,var(--danger) 9%,transparent);border:1px solid color-mix(in srgb,var(--danger) 30%,transparent);border-radius:5px;font-size:12px}.row{display:flex;gap:14px}.muted{color:var(--text-dim)}.pagination{display:flex;gap:8px;align-items:center;justify-content:flex-end;margin-top:14px;color:var(--text-dim);font:9px var(--mono)}@media(max-width:900px){.grid[style*=grid-template-columns]{grid-template-columns:minmax(0,1fr)!important}.row{flex-direction:column}.page-head{margin-bottom:17px}.stat-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){body{font-size:13px}.page-head h2{font-size:21px}.stat-row{grid-template-columns:1fr}.card{padding:15px 14px}.controls{align-items:stretch}.controls>*{max-width:100%!important}.pagination{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
