:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f3f4f6;--panel:#fff;--line:#e5e7eb;--line2:#eef0f3;--text:#111827;--text2:#6b7280;--text3:#9ca3af;--accent:#d92d20;--accent-bg:#fee4e2;--green:#12b76a;--green-bg:#dcfae6;--amber:#f79009;--amber-bg:#fef0c7;--blue:#2e90fa;--blue-bg:#d1e9ff;--purple:#7a5af8;--purple-bg:#ebe9fe;--shadow:0 1px 2px #1018280f,0 1px 3px #1018281a}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0f1117;--panel:#161922;--line:#262a36;--line2:#1f2330;--text:#f3f4f6;--text2:#9aa3b2;--text3:#6b7280;--accent:#f04438;--accent-bg:#3b1413;--green:#32d583;--green-bg:#0f2e1f;--amber:#fdb022;--amber-bg:#3a2a0b;--blue:#53b1fd;--blue-bg:#0d2a47;--purple:#9b8afb;--purple-bg:#221c44}body{background:var(--bg);color:var(--text);margin:0;font-family:Inter,system-ui,sans-serif}*,:before,:after{box-sizing:border-box}html,body{min-height:100%}body{-webkit-font-smoothing:antialiased;font-size:13px;line-height:1.4}a{color:inherit}button,input,select,textarea{font:inherit;color:inherit}h1{margin:0;font-size:18px;font-weight:600}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mono{font-variant-numeric:tabular-nums;font-family:ui-monospace,Menlo,monospace;font-size:12px}.muted{color:var(--text2)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app{grid-template-columns:88px minmax(0,1fr);min-height:100vh;display:grid}.app.app-kiosk{grid-template-columns:minmax(0,1fr)}.main{min-width:0;padding:18px 26px 40px}.page-status{min-height:60vh;color:var(--text2);place-content:center;justify-items:center;gap:10px;display:grid}.rail{background:var(--panel);border-right:1px solid var(--line);z-index:20;flex-direction:column;align-items:center;gap:4px;height:100vh;padding:18px 0;display:flex;position:sticky;top:0}.rail-logo{background:linear-gradient(135deg, var(--accent), #f97066);color:#fff;border-radius:10px;place-items:center;width:40px;height:40px;margin-bottom:14px;font-weight:700;text-decoration:none;display:grid}.rail-item{text-align:center;width:76px;color:var(--text2);border-radius:8px;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;font-size:11px;text-decoration:none;display:flex}.rail-item:hover{background:var(--line2);color:var(--text)}.rail-item.active,.rail-item.active:hover{background:var(--accent);color:#fff}.rail-spacer{flex:1}.theme-toggle{border:1px solid var(--line);border-radius:20px;gap:2px;margin-top:6px;padding:3px;display:flex}.theme-toggle button{width:24px;height:24px;color:var(--text2);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid}.theme-toggle button[aria-pressed=true]{background:var(--line2);color:var(--text)}.avatar-wrap{margin-top:10px;position:relative}.avatar{color:#fff;cursor:pointer;background:linear-gradient(135deg,#2e90fa,#7a5af8);border:0;border-radius:50%;place-items:center;width:30px;height:30px;padding:0;font-size:11px;font-weight:600;display:grid}.menu{z-index:40;background:var(--panel);border:1px solid var(--line);border-radius:10px;min-width:220px;padding:6px;position:absolute;box-shadow:0 8px 24px #10182824}.menu-up{bottom:0;left:calc(100% + 10px)}.menu-down{top:calc(100% + 6px);right:0}.menu-header{border-bottom:1px solid var(--line2);margin-bottom:4px;padding:8px 10px}.menu-header b{font-weight:600;display:block}.menu-header span{color:var(--text2);word-break:break-all;font-size:12px}.menu-item{cursor:pointer;text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;width:100%;padding:8px 10px;font-size:13px;display:flex}.menu-item:hover:not(:disabled){background:var(--line2)}.menu-item:disabled{color:var(--text3);cursor:default}.menu-empty{color:var(--text2);padding:8px 10px;font-size:12px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:16px;display:flex}.crumbs{color:var(--text3);margin-bottom:4px;font-size:12px}.crumbs b{color:var(--text2);font-weight:500}.controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.indicator{border:1px solid var(--line);background:var(--panel);color:var(--text2);white-space:nowrap;border-radius:8px;align-items:center;gap:6px;padding:6px 10px;font-size:12px;display:inline-flex}.indicator .dot{border-radius:50%;width:7px;height:7px}.indicator-green .dot{background:var(--green);box-shadow:0 0 0 3px var(--green-bg)}.indicator-amber .dot{background:var(--amber);box-shadow:0 0 0 3px var(--amber-bg)}.indicator-red .dot{background:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.indicator-red{color:var(--accent)}.btn{border:1px solid var(--line);background:var(--panel);color:var(--text);cursor:pointer;white-space:nowrap;border-radius:8px;align-items:center;gap:6px;padding:7px 12px;font-size:12px;font-weight:500;text-decoration:none;display:inline-flex}.btn:hover:not(:disabled){background:var(--line2)}.btn:disabled{opacity:.55;cursor:default}.btn-primary,.btn-danger{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover:not(:disabled),.btn-danger:hover:not(:disabled){background:var(--accent);filter:brightness(.94)}.btn-sm{padding:4px 9px;font-size:11px}.btn-block{justify-content:center;width:100%;padding:9px 12px;font-size:13px}.btn-link{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;font-size:12px;font-weight:500}.btn-link:hover{text-decoration:underline}.icon-btn{border:1px solid var(--line);background:var(--panel);width:28px;height:28px;color:var(--text2);cursor:pointer;border-radius:7px;flex:none;place-items:center;padding:0;display:grid}.icon-btn:hover:not(:disabled){background:var(--line2);color:var(--text)}.icon-btn:disabled{opacity:.5;cursor:default}.card{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;min-width:0}.card-header{border-bottom:1px solid var(--line2);justify-content:space-between;align-items:center;gap:8px;margin:0;padding:12px 14px;font-size:13px;font-weight:600;display:flex}.count{background:var(--line2);color:var(--text2);white-space:nowrap;border-radius:10px;padding:1px 8px;font-size:11px;font-weight:600}.card-body{padding:14px}.card-foot{color:var(--text2);background:var(--line2);border-radius:0 0 12px 12px;align-items:center;gap:16px;padding:10px 14px;font-size:12px;display:flex}.card-foot .spacer{flex:1}.card-foot a{color:var(--text2);align-items:center;gap:2px;text-decoration:none;display:inline-flex}.card-foot a:hover{color:var(--text)}.stack{align-content:start;gap:12px;display:grid}.row{border-bottom:1px solid var(--line2);align-items:center;gap:10px;padding:10px 14px;display:flex}.row:last-child{border-bottom:0}.who{flex:1;min-width:0}.who b{text-overflow:ellipsis;white-space:nowrap;font-weight:600;display:block;overflow:hidden}.who span{color:var(--text2);font-size:12px}.empty{text-align:center;color:var(--text2);padding:22px 14px;font-size:12px}.pill{white-space:nowrap;border-radius:6px;flex:none;justify-content:center;align-items:center;gap:5px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.pill-green{background:var(--green-bg);color:#067647}.pill-amber{background:var(--amber-bg);color:#93370d}.pill-red{background:var(--accent-bg);color:#b42318}.pill-blue{background:var(--blue-bg);color:#175cd3}.pill-grey{background:var(--line2);color:var(--text2)}.pill-purple{background:var(--purple-bg);color:#5925dc}[data-theme=dark] .pill-green{color:#75e0a7}[data-theme=dark] .pill-amber{color:#fec84b}[data-theme=dark] .pill-red{color:#fda29b}[data-theme=dark] .pill-blue{color:#84caff}[data-theme=dark] .pill-purple{color:#bdb4fe}.ring{background:var(--line2);width:30px;height:30px;color:var(--text2);border-radius:50%;flex:none;place-items:center;font-size:11px;font-weight:600;display:grid}.ring-green{background:var(--green-bg);color:#067647}.ring-amber{background:var(--amber-bg);color:#93370d}.ring-blue{background:var(--blue-bg);color:#175cd3}.ring-purple{background:var(--purple-bg);color:#5925dc}.ring-red{background:var(--accent-bg);color:#b42318}[data-theme=dark] .ring-green{color:#75e0a7}[data-theme=dark] .ring-amber{color:#fec84b}[data-theme=dark] .ring-blue{color:#84caff}[data-theme=dark] .ring-purple{color:#bdb4fe}[data-theme=dark] .ring-red{color:#fda29b}.switch{background:var(--line);cursor:pointer;border:0;border-radius:12px;flex:none;width:34px;height:20px;padding:0;transition:background .2s;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:left .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0000004d}.switch[aria-checked=true]{background:var(--green)}.switch[aria-checked=true]:after{left:16px}.switch-red[aria-checked=true]{background:var(--accent)}.switch:disabled{opacity:.5;cursor:default}.kpis{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:14px;display:grid}.kpi{padding:12px 14px}.kpis-dimmed .kpi{opacity:.4}.kpi-label{color:var(--text2);font-size:12px}.kpi-value{font-variant-numeric:tabular-nums;margin:4px 0 6px;font-size:24px;font-weight:600}.kpi-value small{color:var(--text2);margin-left:4px;font-size:12px;font-weight:500}.bar{background:var(--line2);border-radius:3px;height:6px;overflow:hidden}.bar i{background:var(--accent);height:100%;transition:width .3s;display:block}.bar-green i{background:var(--green)}.bar-blue i{background:var(--blue)}.bar-amber i{background:var(--amber)}.grid-3{grid-template-columns:1.1fr 1.1fr 1fr;align-items:start;gap:12px;display:grid}.banner{border-radius:8px;align-items:center;gap:8px;margin-bottom:12px;padding:9px 12px;font-size:12px;display:flex}.banner-red{background:var(--accent-bg);color:#b42318}.banner-amber{background:var(--amber-bg);color:#93370d}[data-theme=dark] .banner-red{color:#fda29b}[data-theme=dark] .banner-amber{color:#fec84b}.card .banner{margin:10px 14px 0}.scenarios{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px;display:grid}.scenario{align-items:center;gap:12px;padding:12px 14px;display:flex}.scenario-icon{background:var(--line2);width:34px;height:34px;color:var(--text2);border-radius:9px;flex:none;place-items:center;display:grid}.scenario-on .scenario-icon{background:var(--green-bg);color:#067647}.scenario-warn.scenario-on .scenario-icon{background:var(--accent-bg);color:#b42318}.scenario-text{flex:1;min-width:0}.scenario-text b{font-weight:600;display:block}.scenario-state{color:var(--text2);flex-wrap:wrap;align-items:center;gap:4px 6px;font-size:12px;display:flex}.scenario-selectable{cursor:pointer}.scenario-selectable:hover{border-color:var(--text3)}.scenario-selected-blue{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-bg), var(--shadow)}.scenario-selected-amber{border-color:var(--amber);box-shadow:0 0 0 3px var(--amber-bg), var(--shadow)}.scenario-selected-red{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg), var(--shadow)}.table{border-collapse:collapse;width:100%}.table th{color:var(--text2);text-align:left;border-bottom:1px solid var(--line);padding:10px 12px;font-size:12px;font-weight:500}.table td{border-bottom:1px solid var(--line2);vertical-align:middle;padding:11px 12px}.table tr:last-child td{border-bottom:0}.table-scroll{position:relative;overflow-x:auto}.overlay{z-index:50;background:#10182861;display:flex;position:fixed;inset:0}.overlay-center{justify-content:center;align-items:center;padding:16px}.overlay-right{justify-content:flex-end}.overlay-docked{background:0 0;justify-content:flex-end;align-items:flex-end;padding:24px}.overlay-docked .dialog{box-shadow:0 12px 32px #10182838}.dialog{background:var(--panel);border:1px solid var(--line);border-radius:12px;width:min(440px,100%);padding:18px 20px;box-shadow:0 20px 40px #10182840}.dialog h2,.drawer h2{margin:0 0 8px;font-size:15px;font-weight:600}.dialog-body{color:var(--text2);margin-bottom:16px}.dialog-body p{margin:0 0 8px}.dialog-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.dialog-actions .spacer{flex:1}.dialog .banner{margin:0 0 12px}.drawer{background:var(--panel);flex-direction:column;width:min(460px,100%);height:100%;display:flex;overflow-y:auto;box-shadow:-12px 0 32px #1018282e}.drawer-wide{width:min(820px,100%)}.drawer-header{border-bottom:1px solid var(--line2);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.drawer-header h2{margin:0}.drawer-body{flex:1;padding:16px 18px}.toast{z-index:45;background:var(--green-bg);color:#067647;border-radius:10px;align-items:flex-start;gap:10px;width:min(420px,100vw - 32px);padding:12px 12px 12px 14px;display:flex;position:fixed;bottom:24px;right:24px;box-shadow:0 8px 24px #10182829}[data-theme=dark] .toast{color:#75e0a7}.toast>svg{flex:none;margin-top:1px}.toast-text{flex:1;gap:4px;min-width:0;display:grid}.toast-text b{font-weight:600}.toast-close{width:24px;height:24px}.login{place-items:center;min-height:100vh;padding:24px 16px;display:grid}.login-card{width:min(380px,100%);padding:26px 24px}.login-card .banner{margin:0 0 14px}.login-brand{align-items:center;gap:10px;margin-bottom:20px;display:flex}.login-brand .rail-logo{margin:0}.login-brand span{color:var(--text2);font-size:12px;display:block}.divider{color:var(--text3);align-items:center;gap:10px;margin:16px 0;font-size:12px;display:flex}.divider:before,.divider:after{content:"";background:var(--line);flex:1;height:1px}.field{gap:5px;margin-bottom:12px;display:grid}.field label{color:var(--text2);font-size:12px;font-weight:500}.input{border:1px solid var(--line);background:var(--panel);border-radius:8px;width:100%;padding:8px 10px;font-size:13px}.input:focus{outline:2px solid var(--accent-bg);border-color:var(--accent)}.prose{max-width:760px}.prose h2{margin:0 0 8px;font-size:14px}.prose p,.prose li{color:var(--text2);line-height:1.55}.prose p{margin:0 0 10px}.prose .card-body>:last-child{margin-bottom:0}.prose ul{margin:0 0 10px;padding-left:18px}.prose code{background:var(--line2);color:var(--text);border-radius:5px;padding:1px 6px;font-family:ui-monospace,Menlo,monospace;font-size:12px}html.kiosk body{font-size:16px}html.kiosk .main{padding:24px 32px}html.kiosk h1{font-size:26px}html.kiosk .kpi-value{font-size:40px}html.kiosk .kpi-label,html.kiosk .who span,html.kiosk .scenario-state,html.kiosk .mono,html.kiosk .indicator{font-size:15px}html.kiosk .card-header{font-size:16px}html.kiosk .pill{font-size:14px}html.kiosk .ring{width:40px;height:40px;font-size:14px}@media (width<=1180px){.kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-3{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}@media (width<=820px){.kpis,.scenarios,.grid-3{grid-template-columns:minmax(0,1fr)}.main{padding:16px}}
