.app-shell{background:var(--page-bg);grid-template-columns:72px minmax(0,1fr);min-height:100vh;display:grid}.shell-sidebar{color:#edf4f7;background:#101b24;flex-direction:column;align-items:center;gap:24px;padding:18px 10px;display:flex}.brand-lockup{place-items:center;gap:6px;display:grid}.brand-mark{color:#fff;background:#1f7a8c;border-radius:7px;place-items:center;width:34px;height:34px;font-size:12px;font-weight:800;display:grid}.brand-title{color:#edf4f7b3;margin:0;font-size:10px;font-weight:700}.sidebar-group,.sidebar-nav{width:100%}.sidebar-nav{gap:8px;display:grid}.shell-sidebar,.demo-script-nav{scrollbar-width:none}.shell-sidebar::-webkit-scrollbar{display:none}.demo-script-nav::-webkit-scrollbar{display:none}.sidebar-link{color:#edf4f7c2;border-radius:6px;place-items:center;gap:3px;min-height:54px;text-decoration:none;display:grid}.sidebar-link strong{color:#fff;font-size:13px;line-height:1}.sidebar-link span{color:#edf4f7a3;text-align:center;text-overflow:ellipsis;width:100%;font-size:9px;line-height:1.1;overflow:hidden}.sidebar-link:hover,.sidebar-link--active{background:#213443}.sidebar-link--active strong,.sidebar-link--active span{color:#fff}.shell-main{min-width:0}.shell-header{border-bottom:1px solid var(--border);background:var(--surface);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;min-height:56px;padding:10px 32px;display:flex}.header-copy{min-width:0}.header-context{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:22px;font-size:13px;display:flex}.header-context strong{color:var(--text-primary);font-size:15px}.header-controls{justify-content:flex-end;align-items:center;gap:14px;display:flex}.demo-script-nav{color:var(--text-secondary);flex-wrap:wrap;flex:100%;align-items:center;gap:6px;font-size:11px;display:flex}.demo-script-nav span{color:var(--text-muted);text-transform:uppercase;font-weight:900}.demo-script-nav a{border:1px solid var(--border);color:var(--text-secondary);background:#f8fafc;border-radius:5px;padding:4px 8px;font-weight:800;line-height:1.2;text-decoration:none}.demo-script-nav a.active{border-color:var(--maintenance);color:var(--maintenance);background:#eaf2fb}.status-group{gap:8px;display:flex}.status-badge{border:1px solid var(--border);border-radius:5px;align-items:center;min-height:26px;padding:4px 9px;font-size:12px;font-weight:700;display:inline-flex}.status-badge--demo{color:var(--maintenance);background:#eaf2fb}.status-badge--simulated{color:var(--measured);background:#e7f6f8}.role-switcher{color:var(--text-secondary);gap:3px;font-size:11px;font-weight:700;display:grid}.role-switcher select{border:1px solid var(--border);width:160px;min-height:28px;color:var(--text-primary);font:inherit;background:#fff;border-radius:5px;padding:3px 8px}.shell-content{padding:24px}@media (width<=980px){.app-shell{grid-template-columns:1fr}.shell-sidebar{flex-direction:row;align-items:center;min-width:0;max-width:100vw;padding:10px 14px;overflow-x:auto}.sidebar-group{min-width:0;overflow-x:auto}.sidebar-nav{gap:8px;width:max-content;display:flex}.sidebar-link{min-width:62px}.shell-header{flex-direction:column;align-items:stretch;padding:12px 16px}.header-copy,.header-context,.header-controls,.demo-script-nav{min-width:0;max-width:100%}.header-controls{flex-wrap:wrap;justify-content:flex-start;width:100%}.demo-script-nav{flex-wrap:nowrap;width:100%;padding-bottom:2px;overflow-x:auto}.demo-script-nav a,.demo-script-nav span{flex:none}}@media (width<=640px){.shell-content{padding:16px}.role-switcher select{width:140px}}.kpi-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.kpi-card,.machine-tile,.side-panel,.chart-card,.detail-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-panel);border-radius:8px}.kpi-card{min-height:94px;padding:13px 14px 12px 16px;position:relative;overflow:hidden}.kpi-card:before,.machine-tile__rail{content:"";background:var(--status-color,var(--info));width:4px;position:absolute;top:0;bottom:0;left:0}.kpi-card--good{--status-color:var(--running)}.kpi-card--warn{--status-color:var(--behind)}.kpi-card--bad{--status-color:var(--alarm)}.kpi-card--info{--status-color:var(--maintenance)}.kpi-card span,.kpi-card small,.kpi-card em{color:var(--text-muted);font-size:12px;font-style:normal;display:block}.kpi-card strong{color:var(--text-primary);margin:3px 0;font-size:28px;line-height:1.05;display:block}.machine-tile{min-height:190px;color:inherit;flex-direction:column;gap:9px;padding:14px 14px 12px 18px;text-decoration:none;display:flex;position:relative}.machine-tile:hover{border-color:#9fb0bf}.machine-tile--running{--status-color:var(--running)}.machine-tile--behind{--status-color:var(--behind)}.machine-tile--stopped{--status-color:var(--stopped)}.machine-tile--alarm{--status-color:var(--alarm)}.machine-tile--maintenance,.machine-tile--setup{--status-color:var(--maintenance)}.machine-tile--e_stop{--status-color:var(--alarm)}.machine-tile--unknown{--status-color:var(--offline)}.machine-tile--overview-v0{border-radius:8px;gap:14px;min-height:348px;padding:22px 24px 20px 28px}.overview-card-header,.overview-hero,.overview-card-body,.overview-status-bar,.overview-hourly-axis{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.overview-card-title h3{color:var(--text-primary);margin:0;font-size:34px;line-height:1}.overview-card-title p{color:#60718a;margin:4px 0 0;font-size:18px}.overview-card-state{align-items:flex-start;gap:18px;display:flex}.overview-card-state>span{border:2px solid var(--status-color);min-width:226px;color:var(--status-color);text-align:center;background:#fff;border-radius:999px;padding:8px 16px;font-size:13px;font-weight:900}.overview-card-state>small{color:#60718a;align-self:flex-end;font-size:12px;font-weight:700}.overview-hero{justify-content:flex-start;align-items:center}.overview-oee-ring{background:conic-gradient(var(--status-color) var(--oee-value), #e8eef3 0);border-radius:999px;flex:0 0 104px;place-items:center;width:104px;height:104px;display:grid;position:relative}.overview-oee-ring:after{content:"";border-radius:inherit;background:#fff;position:absolute;inset:12px}.overview-oee-ring strong,.overview-oee-ring span,.overview-oee-ring__content{z-index:1;position:relative}.overview-oee-ring__content{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:80px;height:80px;display:flex}.overview-oee-ring strong{color:var(--status-color);font-size:34px;line-height:1}.overview-oee-ring span{color:#60718a;font-size:11px;font-weight:900}.overview-output{gap:4px;display:grid}.overview-output>span,.overview-hourly>strong,.overview-priority>span{color:#60718a;font-size:13px;font-weight:800}.overview-output strong{color:var(--text-primary);font-size:42px;line-height:1}.overview-output small{color:#60718a;font-size:15px}.overview-output p{color:#60718a;margin:0;font-size:13px}.overview-progress-track{background:#edf2f6;border-radius:999px;height:5px;overflow:hidden}.overview-progress-track span{border-radius:inherit;background:var(--status-color);height:100%;display:block}.overview-card-body{grid-template-columns:minmax(0,1.15fr) minmax(180px,.85fr);align-items:stretch;display:grid}.overview-main-column{gap:16px;min-width:0;display:grid}.overview-hourly{gap:8px;display:grid}.overview-bars{border-bottom:1px solid #dfe7ee;align-items:end;gap:8px;min-height:74px;padding-bottom:8px;display:flex}.overview-bars span{background:color-mix(in srgb, var(--status-color) 58%, white);border-radius:4px;width:12px;position:relative}.hourly-bar{cursor:help;position:relative}.hourly-bar--empty{cursor:default;min-height:0;background:0 0!important}.hourly-bar[data-tooltip]:after{content:attr(data-tooltip);z-index:20;visibility:hidden;width:max-content;max-width:220px;color:var(--text-primary);opacity:0;pointer-events:none;white-space:nowrap;background:#fff;border:1px solid #cbd7e2;border-radius:5px;padding:6px 8px;font-size:11px;font-weight:700;line-height:1.2;transition:opacity .12s,transform .12s,visibility .12s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(3px);box-shadow:0 4px 14px #0f172a29}.hourly-bar[data-tooltip]:hover:after{visibility:visible;opacity:1;transform:translate(-50%)translateY(0)}.overview-bars span:last-child{background:var(--status-color)}.overview-hourly-axis{color:#60718a;font-size:12px;font-weight:700}.overview-priority{border:2px solid var(--status-color);background:#fff9ed;border-radius:8px;align-content:center;gap:10px;min-height:110px;padding:18px 20px;display:grid}.overview-priority strong{overflow-wrap:anywhere;color:var(--status-color);font-size:22px;line-height:1.15}.overview-expanded-layout{grid-template-columns:minmax(0,1fr) minmax(0,1.03fr);gap:16px 22px;display:grid}.overview-expanded-left,.overview-expanded-right{align-content:start;gap:16px;min-width:0;display:grid}.overview-expanded-left{grid-template-rows:auto minmax(0,1fr) auto}.overview-expanded-right{grid-template-rows:minmax(0,1fr) auto auto}.overview-point-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.overview-point-grid article{border:1px solid #d8e3ec;border-left:4px solid var(--status-color);background:#f8fafc;border-radius:6px;gap:5px;min-width:0;padding:10px 12px;display:grid}.overview-point-grid span,.overview-tower-output>span{color:#60718a;font-size:10px;font-weight:800}.overview-point-grid strong{overflow-wrap:anywhere;color:var(--status-color);font-size:13px;line-height:1.25}.overview-priority--expanded{align-content:start;gap:7px;min-height:0;padding:14px 16px 10px}.overview-priority--expanded strong{font-size:20px}.overview-priority--expanded p{color:var(--text-primary);margin:0;font-size:12px;line-height:1.3}.overview-priority--expanded b{color:var(--status-color);background:color-mix(in srgb, var(--status-color) 12%, white);border-radius:7px;margin-top:auto;padding:5px 12px;font-size:11px;line-height:1.2}.overview-tower-output{background:#f8fafc;border:1px solid #d8e3ec;border-radius:8px;gap:7px;min-height:64px;padding:10px 14px;display:grid}.overview-tower-output>div{align-items:center;gap:14px;min-width:0;display:flex}.overview-tower-output .tower--compact{flex-direction:row;gap:5px;padding:5px 7px}.overview-tower-output .tower__label{display:none}.overview-tower-output strong{color:var(--status-color);font-size:15px}.overview-tower-output small{color:#60718a;white-space:nowrap;margin-left:auto;font-size:10px}.overview-data-provenance{color:#60718a;border-top:1px solid #e2e8ef;grid-column:1/-1;justify-content:space-between;gap:16px;padding-top:7px;font-size:10px;display:flex}.machine-tile--overview-expanded{min-height:0}.machine-tile--overview-expanded .overview-hero{gap:34px}.machine-tile--overview-expanded .overview-card-state{flex-direction:column;gap:8px}.machine-tile--overview-expanded .overview-main-column{gap:14px}.machine-tile--overview-expanded .overview-hourly{align-content:end}.machine-tile--overview-expanded .overview-point-grid article{min-height:58px}.machine-tile--overview-expanded .machine-alert--overview{display:none}.overview-status-bar{background:#f2f5f9;border-radius:999px;align-items:center;margin-top:auto;padding:12px 16px}.overview-status-item{color:#60718a;white-space:nowrap;align-items:center;gap:9px;min-width:0;font-size:14px;font-weight:900;display:inline-flex}.overview-status-item:nth-child(2){margin-left:5ch}.overview-status-item:last-child{margin-left:auto}.overview-status-icon{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;flex:0 0 1em;width:1em;height:1em}.overview-status-item--ok .overview-status-icon{color:var(--running)}.overview-status-item--warn .overview-status-icon{color:var(--behind)}.overview-status-item--bad .overview-status-icon{color:var(--alarm)}.overview-status-item--muted .overview-status-icon{color:var(--offline)}.machine-alert--overview{bottom:92px}.machine-tile__header,.machine-tile__footer,.machine-tile__status,.goal-row,.panel-heading,.detail-card header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.machine-tile h3,.machine-tile p,.panel-heading h2,.panel-heading p,.chart-card h3,.chart-card p,.detail-card h3,.detail-card p{margin:0}.machine-tile h3{font-size:20px;line-height:1}.machine-tile p,.machine-tile__footer,.goal-row,.chart-card p,.detail-card p,.panel-heading p{color:var(--text-secondary);font-size:12px}.machine-tile__status{flex-direction:column;align-items:flex-end}.status-chip,.data-source,.priority{white-space:nowrap;border:1px solid;border-radius:4px;justify-content:center;align-items:center;min-height:22px;padding:2px 8px;font-size:11px;font-weight:700;line-height:1.2;display:inline-flex}.status-chip--running{color:var(--running);background:#e9f7ef}.status-chip--behind,.status-chip--stopped{color:var(--behind);background:#fff7e6}.status-chip--alarm{color:#fff;background:var(--alarm);border-color:var(--alarm)}.status-chip--maintenance,.status-chip--setup{color:var(--maintenance);background:#eaf2fb}.status-chip--e_stop{color:#fff;background:var(--alarm);border-color:var(--alarm)}.status-chip--unknown{color:var(--offline);background:#f1f4f7}.level-chip{white-space:nowrap;border:1px solid;border-radius:4px;align-items:center;min-height:20px;padding:2px 7px;font-size:10px;font-weight:800;line-height:1.2;display:inline-flex}.level-chip--level1_normal{color:var(--running);background:#e9f7ef}.level-chip--level2_warning{color:var(--behind);background:#fff7e6}.level-chip--level3_stop_alarm{color:#fff;background:var(--alarm);border-color:var(--alarm)}.level-chip--level4_intervention{color:var(--maintenance);background:#eaf2fb}.level-chip--level5_comm_fault{color:var(--offline);background:#f1f4f7}.tower{border:1px solid var(--border);background:#f7fafc;border-radius:6px;align-items:center;gap:5px;padding:4px 6px;display:inline-flex}.tower--compact{flex-direction:column;gap:3px;padding:5px}.tower__lamp{background:#cfd8e2;border-radius:999px;width:9px;height:9px;transition:background-color .16s,box-shadow .16s,opacity .16s,transform .16s}.tower__lamp--red.tower__lamp--active{background:var(--alarm);--lamp-glow:#c6282859}.tower__lamp--yellow.tower__lamp--active{background:var(--behind);--lamp-glow:#c47a1257}.tower__lamp--green.tower__lamp--active{background:var(--running);--lamp-glow:#168a5452}.tower__lamp--active.tower__lamp--blink_1hz{animation:1s steps(2,end) infinite tower-blink}.tower__lamp--active.tower__lamp--blink_0_5hz{animation:2s steps(2,end) infinite tower-blink}.tower__lamp--active.tower__lamp--all_blink_2hz{animation:.5s steps(2,end) infinite tower-blink}.tower__lamp--active.tower__lamp--flow_2hz{animation:.5s ease-in-out infinite tower-flow}.tower__lamp--yellow.tower__lamp--flow_2hz{animation-delay:.12s}.tower__lamp--green.tower__lamp--flow_2hz{animation-delay:.24s}.tower__label{color:var(--text-muted);font-size:10px}@keyframes tower-blink{0%,49%{opacity:1;box-shadow:0 0 0 3px var(--lamp-glow,#2f6db32e), 0 0 10px var(--lamp-glow,#2f6db32e);transform:scale(1.08)}50%,to{opacity:.28;box-shadow:none;transform:scale(.9)}}@keyframes tower-flow{0%,to{opacity:.35;box-shadow:none;transform:scale(.9)}33%,62%{opacity:1;box-shadow:0 0 0 3px var(--lamp-glow,#2f6db32e), 0 0 10px var(--lamp-glow,#2f6db32e);transform:scale(1.08)}}@media (prefers-reduced-motion:reduce){.tower__lamp--active.tower__lamp--blink_1hz,.tower__lamp--active.tower__lamp--blink_0_5hz,.tower__lamp--active.tower__lamp--all_blink_2hz,.tower__lamp--active.tower__lamp--flow_2hz{box-shadow:0 0 0 3px var(--lamp-glow,#2f6db32e);opacity:1;animation:none;transform:none}}.machine-tile__metric{align-items:baseline;gap:8px;display:flex}.machine-tile__metric strong{color:var(--status-color);font-size:32px;line-height:1}.machine-tile__metric span{color:var(--text-secondary);font-size:12px;font-weight:700}.delta{font-size:11px}.delta--good{color:var(--running)}.delta--bad{color:var(--alarm)}.progress-track{background:#edf2f6;border-radius:999px;height:7px;overflow:hidden}.progress-track span{border-radius:inherit;background:var(--status-color);height:100%;display:block}.mini-bars{align-items:end;gap:5px;height:38px;display:flex}.mini-bars span{background:var(--status-color);border-radius:2px;width:8px}.machine-tile__footer{align-items:center;margin-top:auto}.machine-tile__recipe{background:#fbfdff;border:1px solid #d8e3ec;border-radius:6px;gap:3px;padding:7px 8px;display:grid}.machine-tile__recipe strong,.machine-tile__recipe span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.machine-tile__recipe strong{color:var(--text-primary);font-size:12px}.machine-tile__recipe span{color:var(--text-secondary);font-size:11px;font-weight:700}.machine-tile__risks{flex-wrap:wrap;gap:5px;display:flex}.machine-tile__risks span{max-width:100%;color:var(--maintenance);text-overflow:ellipsis;white-space:nowrap;background:#eaf2fb;border-radius:4px;padding:3px 6px;font-size:10px;font-weight:800;overflow:hidden}.machine-tile__plc{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;display:grid}.machine-tile__plc span{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;background:#f4f7fa;border-radius:4px;padding:4px 5px;font-size:10px;font-weight:700;overflow:hidden}.machine-alert{border:1px solid var(--alarm);max-width:45%;color:var(--alarm);text-align:center;background:#fff5f5;border-radius:5px;padding:4px 7px;font-size:11px;font-weight:700;position:absolute;bottom:43px;right:12px}.data-source--measured{color:var(--measured);background:#e7f6f8}.data-source--estimated{color:var(--estimated);background:#f1edff}.data-source--manual{color:var(--manual);background:#f4f6f8}.data-source--inferred{color:var(--maintenance);background:#eaf2fb}.data-source--missing{color:var(--missing);background:#f4f6f8}.oee-breakdown{gap:6px;display:grid}.oee-row{grid-template-columns:16px minmax(0,1fr) 36px auto;align-items:center;gap:8px;font-size:11px;display:grid}.oee-bar{background:#edf2f6;border-radius:999px;height:7px;overflow:hidden}.oee-bar span{border-radius:inherit;background:var(--measured);height:100%;display:block}.oee-row:nth-child(2) .oee-bar span{background:var(--running)}.oee-row:nth-child(3) .oee-bar span{background:var(--estimated)}.side-panel{padding:18px}.risk-list{gap:12px;margin-top:14px;display:grid}.risk-item{border:1px solid var(--border);border-left:4px solid var(--risk-color,var(--offline));color:inherit;background:#fff;border-radius:6px;gap:6px;padding:12px;text-decoration:none;display:grid}.risk-item--critical,.risk-item--urgent,.risk-item--high{--risk-color:var(--alarm)}.risk-item--warning,.risk-item--medium{--risk-color:var(--behind)}.risk-item--low,.risk-item--info{--risk-color:var(--maintenance)}.risk-item strong{color:var(--text-primary);font-size:14px}.risk-item span,.risk-item small,.boundary-note{color:var(--text-secondary);font-size:12px}.boundary-note{margin:16px 0 0}.chart-card{padding:16px}.chart-card header{margin-bottom:8px}.chart-card svg{width:100%;height:130px;display:block}.chart-target{stroke:#8a95a3;stroke-dasharray:4 4;stroke-width:1px}.chart-bar--blue,.chart-line--blue{fill:#2f6db3;stroke:#2f6db3}.chart-bar--green,.chart-line--green{fill:#168a54;stroke:#168a54}.chart-bar--red,.chart-line--red,.chart-bar--risk{fill:#c62828;stroke:#c62828}.chart-bar--amber,.chart-line--amber{fill:#c47a12;stroke:#c47a12}.chart-line{stroke-width:3px}.detail-card{gap:12px;padding:16px;display:grid}.detail-card dl{gap:8px;margin:0;display:grid}.detail-card dl div{color:var(--text-secondary);justify-content:space-between;gap:12px;font-size:12px;display:flex}.detail-card dt,.detail-card dd{margin:0}.detail-card dd{color:var(--text-primary);text-align:right;font-weight:700}.detail-card--alarm{border-color:#e8b4b4}.priority--urgent,.priority--high{color:var(--alarm);background:#fff5f5}.priority--medium{color:var(--behind);background:#fff7e6}.priority--low{color:var(--maintenance);background:#eaf2fb}@media (width<=900px){.kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.kpi-strip{grid-template-columns:minmax(0,1fr)}.machine-alert{max-width:100%;position:static}}.desktop-page{gap:20px;display:grid}.page-title-row{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.page-title-row h2{color:var(--text-primary);margin:0;font-size:28px;line-height:1.1}.page-title-row p,.page-context,.toolbar-row,.source-legend{color:var(--text-secondary);font-size:13px}.page-title-row p{margin:6px 0 0}.page-context,.toolbar-row,.source-legend,.segmented-control,.link-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.page-context span{border:1px solid var(--border);background:#fff;border-radius:5px;padding:6px 10px}.overview-card-toggle{border:1px solid var(--behind);min-height:32px;color:var(--behind);background:#fff;border-radius:5px;padding:7px 12px;font-size:12px;font-weight:900}.overview-card-toggle:hover{background:#fff7e6}.overview-layout,.oee-layout,.machine-detail-layout{grid-template-columns:minmax(0,1fr) 264px;align-items:start;gap:20px;display:grid}.machine-grid{grid-template-columns:repeat(2,minmax(420px,1fr));gap:14px;display:grid}.machine-grid--oee{grid-template-columns:repeat(4,minmax(230px,1fr))}.bottom-grid{grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:16px;display:grid}.summary-panel,.explain-panel,.timeline-panel,.basket-panel,.empty-state{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-panel);border-radius:8px;padding:16px}.summary-panel h3,.explain-panel h3,.timeline-panel h3,.basket-panel h3,.empty-state h2{margin:0}.summary-panel p,.explain-panel p,.timeline-panel p,.basket-panel p,.empty-state p{color:var(--text-secondary);margin:6px 0 14px;font-size:12px}.summary-row{color:var(--text-secondary);grid-template-columns:150px minmax(0,1fr) 42px;align-items:center;gap:12px;margin-top:10px;font-size:12px;display:grid}.summary-bar{background:#edf2f6;border-radius:999px;height:8px;overflow:hidden}.summary-bar__fill{border-radius:inherit;height:100%;display:block}.summary-bar__fill--bad{background:var(--alarm)}.summary-bar__fill--warn{background:var(--behind)}.summary-bar__fill--info{background:var(--maintenance)}.summary-bar__fill--muted{background:var(--offline)}.toolbar-row{border:1px solid var(--border);background:#fff;border-radius:8px;justify-content:space-between;padding:10px}.segmented-control button,.compact-toggle,.action-row button,.link-row a{border:1px solid var(--border);color:var(--text-primary);background:#f8fafc;border-radius:5px;padding:8px 14px;font-size:12px;font-weight:700;text-decoration:none}.segmented-control button.is-active,.action-row button{border-color:var(--maintenance);background:var(--maintenance);color:#fff}.compact-toggle{align-items:center;gap:7px;display:inline-flex}.oee-side,.detail-side,.detail-main{gap:16px;display:grid}.desktop-page--compact .oee-layout{grid-template-columns:minmax(0,1fr)}.desktop-page--compact .machine-grid--oee{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.quality-list{gap:8px;display:grid}.machine-detail-header{border:1px solid var(--border);box-shadow:var(--shadow-panel);background:#fff;border-radius:8px;grid-template-columns:minmax(220px,1fr) minmax(320px,1.4fr) auto auto;align-items:center;gap:18px;padding:18px 20px 18px 24px;display:grid;position:relative}.machine-detail-header:before{content:"";background:var(--alarm);width:5px;position:absolute;top:0;bottom:0;left:0}.machine-name-row,.header-signal,.gateway-pill{align-items:center;gap:12px;display:flex}.machine-name-row h2{margin:0;font-size:32px}.machine-detail-header p,.header-signal span,.header-meta span{color:var(--text-secondary);margin:4px 0 0;font-size:12px;display:block}.gateway-pill{border:1px solid var(--border);color:var(--running);border-radius:5px;padding:8px 12px;font-size:12px;font-weight:700}.dot{border-radius:999px;width:8px;height:8px}.dot--ok{background:var(--running)}.dot--off{background:var(--offline)}.header-meta{text-align:right;font-size:12px}.chart-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.timeline-panel{overflow:hidden}.timeline{grid-template-columns:repeat(5,minmax(0,1fr));gap:0;margin-top:18px;display:grid}.timeline-item{color:var(--text-secondary);gap:5px;padding-top:20px;font-size:11px;display:grid;position:relative}.timeline-item:before{content:"";background:var(--border-strong);height:1px;position:absolute;top:6px;left:0;right:0}.timeline-item span{background:var(--status-color,var(--alarm));border-radius:999px;width:11px;height:11px;position:absolute;top:1px;left:10px}.timeline-item:first-child{--status-color:var(--running)}.timeline-item:nth-child(2){--status-color:var(--behind)}.timeline-item:nth-child(5){--status-color:var(--maintenance)}.timeline-item strong,.timeline-item b{color:var(--text-primary)}.basket-panel{--basket-tone:var(--running);--basket-tone-soft:#e9f7ef;border-color:var(--basket-tone)}.basket-panel--normal{--basket-tone:var(--running);--basket-tone-soft:#e9f7ef}.basket-panel--warning{--basket-tone:var(--behind);--basket-tone-soft:#fff7e6}.basket-panel--critical{--basket-tone:var(--alarm);--basket-tone-soft:#fff5f5}.basket-panel--restored{--basket-tone:#14836f;--basket-tone-soft:#e6f7f3}.basket-panel header{justify-content:space-between;gap:12px;display:flex}.basket-panel header span{border:1px solid var(--basket-tone);color:var(--basket-tone);background:var(--basket-tone-soft);border-radius:4px;padding:4px 8px;font-size:11px;font-weight:700}.basket-panel>strong{color:var(--basket-tone);font-size:38px;line-height:1;display:block}.basket-gauge{background:#edf2f6;border-radius:999px;height:24px;margin:16px 8px 46px 0;position:relative}.basket-gauge span{border-radius:inherit;background:var(--basket-tone);height:100%;transition:width .28s,background-color .18s;display:block}.basket-gauge i{color:var(--behind);white-space:nowrap;font-size:10px;font-style:normal;position:absolute;top:28px;transform:translate(-50%)}.basket-gauge i:before{content:"";background:var(--behind);width:2px;height:27px;position:absolute;top:-30px;left:50%}.basket-gauge i:first-of-type{transform:translate(-100%)}.basket-gauge i:first-of-type:before{left:100%}.basket-gauge i:last-of-type{top:40px}.basket-gauge i:last-of-type:before{height:39px;top:-42px}.basket-panel dl{gap:8px;margin:0;display:grid}.basket-panel dl div{color:var(--text-secondary);justify-content:space-between;gap:12px;font-size:12px;display:flex}.basket-panel dt,.basket-panel dd{margin:0}.basket-panel dd{color:var(--text-primary);text-align:right;font-weight:700}.action-card .action-row{gap:8px;display:grid}.read-only-note{color:var(--text-muted);font-size:12px;font-weight:700}.link-row{margin-top:4px}.maintenance-layout,.alarm-layout,.roles-layout{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:20px;display:grid}.roles-main,.detail-stack{gap:16px;display:grid}.table-panel,.role-switcher-panel,.permission-matrix-panel{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-panel);border-radius:8px}.table-panel{overflow:hidden}.role-switcher-panel,.permission-matrix-panel{padding:16px}.role-switcher-panel h3,.role-switcher-panel p,.permission-matrix-panel h3,.permission-matrix-panel p{margin:0}.role-switcher-panel p,.permission-matrix-panel p{color:var(--text-secondary);font-size:12px}.responsive-table{overflow-x:auto}.ops-table{border-collapse:collapse;background:#fff;width:100%;min-width:920px}.ops-table th,.ops-table td{border-bottom:1px solid var(--border);color:var(--text-secondary);text-align:left;vertical-align:top;padding:10px 12px;font-size:12px}.ops-table th{color:var(--text-muted);text-transform:uppercase;font-size:11px;font-weight:800}.ops-table td strong,.permission-matrix-panel h3,.role-switcher-panel h3{color:var(--text-primary);display:block}.ops-table td small{color:var(--text-muted);margin-top:3px;display:block}.ops-table tbody tr{cursor:pointer}.ops-table tbody tr:hover,.ops-table tbody tr.is-selected{background:#f7fafc}.maintenance-table tbody tr{border-left:4px solid #0000}:is(.maintenance-table tbody tr:has(.priority--urgent),.maintenance-table tbody tr:has(.priority--high)){border-left-color:var(--alarm)}.maintenance-table tbody tr:has(.priority--medium){border-left-color:var(--behind)}.maintenance-table tbody tr:has(.priority--low){border-left-color:var(--maintenance)}.row-actions,.detail-actions,.filter-bar,.role-button-grid{flex-wrap:wrap;gap:8px;display:flex}.row-actions button,.detail-actions button,.role-button-grid button{border:1px solid var(--border);color:var(--text-primary);background:#f8fafc;border-radius:5px;padding:7px 10px;font-size:12px;font-weight:800}.row-actions button:not(:disabled),.detail-actions button:not(:disabled),.role-button-grid button.is-active{border-color:var(--maintenance);background:var(--maintenance);color:#fff}.row-actions button:disabled,.detail-actions button:disabled{cursor:not-allowed;color:var(--text-muted);background:#eef2f5}.task-status,.alarm-status,.severity-badge,.source-badge,.matrix-value{white-space:nowrap;border:1px solid;border-radius:4px;justify-content:center;align-items:center;min-height:22px;padding:2px 8px;font-size:11px;font-weight:800;line-height:1.2;display:inline-flex}.task-status--resolved,.alarm-status--resolved,.matrix-value--yes{color:var(--running);background:#e9f7ef}.task-status--in_progress,.task-status--accepted,.task-status--on_the_way,.alarm-status--acknowledged,.matrix-value--partial{color:var(--maintenance);background:#eaf2fb}.task-status--open,.task-status--assigned,.task-status--need_parts{color:var(--behind);background:#fff7e6}.alarm-status--active,.matrix-value--no,.severity-badge--critical,.severity-badge--high{color:var(--alarm);background:#fff5f5}.severity-badge--warning{color:var(--behind);background:#fff7e6}.severity-badge--info{color:var(--maintenance);background:#eaf2fb}.source-badge--sensor{color:var(--measured);background:#e7f6f8}.source-badge--plc{color:var(--alarm);background:#fff5f5}.source-badge--gateway{color:var(--offline);background:#f1f4f7}.source-badge--rs485_actuator{color:var(--behind);background:#fff7e6}.source-badge--rule{color:var(--estimated);background:#f1edff}.source-badge--manual{color:var(--manual);background:#f4f6f8}.filter-bar{border-bottom:1px solid var(--border);background:#fff;align-items:end;padding:12px}.filter-bar label{gap:4px;min-width:150px;display:grid}.filter-bar span{color:var(--text-muted);text-transform:uppercase;font-size:11px;font-weight:800}.filter-bar select{border:1px solid var(--border);background:#f8fafc;border-radius:5px;padding:8px 10px;font-size:12px}.task-detail-card,.alarm-detail-card,.role-summary-card{border-color:#bfd0df}.recommendation-copy,.restricted-hint{border-radius:6px;padding:10px;font-size:12px}.recommendation-copy{color:var(--maintenance);background:#f3f8fd;border:1px solid #c8d7e6}.manual-basis{border-left:3px solid var(--manual);color:var(--text-secondary);background:#f6f7f9;border-radius:6px;margin:0;padding:9px 10px;font-size:12px}.diagnostic-list{border:1px solid var(--border);background:#fbfcfd;border-radius:6px;gap:7px;padding:10px 12px;display:grid}.diagnostic-list strong{color:var(--text-primary);font-size:12px}.diagnostic-list ul{color:var(--text-secondary);gap:5px;margin:0;padding-left:17px;font-size:12px;display:grid}.restricted-hint{color:#8a5b10;background:#fff9ed;border:1px solid #ead1a8;margin:0;font-weight:700}.life-meter{gap:6px;display:grid}.life-meter:before{content:"";background:#edf2f6;border-radius:999px;height:8px;display:block}.life-meter span{background:var(--behind);border-radius:999px;height:8px;margin-top:-14px;display:block}.life-meter small{color:var(--text-secondary);font-size:11px}.role-button-grid{margin-top:14px}.role-button-grid button{min-width:150px}.permission-matrix{min-width:980px}.permission-matrix th:not(:first-child),.permission-matrix td:not(:first-child){text-align:center}.operator-console-page{gap:18px;max-width:1180px;margin:0 auto;display:grid}.operator-console-header,.console-metric-strip,.console-progress-card,.console-basket-card,.console-advice-card,.console-recent-card,.console-action-bar{border:1px solid var(--border);box-shadow:var(--shadow-panel);background:#fff;border-radius:8px}.operator-console-header{grid-template-columns:minmax(0,1fr) minmax(300px,.7fr);align-items:center;gap:20px;padding:18px 20px;display:grid}.console-eyebrow{color:var(--text-muted);text-transform:uppercase;margin-bottom:8px;font-size:12px;font-weight:900;display:inline-block}.console-title-row,.console-light-block,.console-metric-strip,.console-basket-card header,.console-progress-card header{align-items:center;gap:12px;display:flex}.console-title-row h2{color:var(--text-primary);margin:0;font-size:46px;line-height:1}.operator-console-header p,.console-light-block span,.console-advice-card p,.console-progress-card small,.console-basket-card p,.console-alert-row small{color:var(--text-secondary);margin:0;font-size:13px}.console-light-block{justify-content:flex-end}.console-light-block strong{color:var(--text-primary);display:block}.console-metric-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:0;display:grid;overflow:hidden}.console-metric-strip article{border-left:1px solid var(--border);gap:4px;min-width:0;padding:16px;display:grid}.console-metric-strip article:first-child{border-left:0}.console-metric-strip span,.console-advice-card li,.console-basket-card dt{color:var(--text-secondary);font-size:13px}.console-metric-strip strong{color:var(--text-primary);font-size:26px;line-height:1.1}.console-metric-strip small,.console-basket-card dd{color:var(--text-muted);font-size:12px}.operator-console-grid{grid-template-columns:minmax(0,1fr) 330px;align-items:start;gap:18px;display:grid}.console-main,.console-side{gap:18px;display:grid}.console-progress-card,.console-basket-card,.console-advice-card,.console-recent-card{gap:14px;padding:18px;display:grid}.console-progress-card h3,.console-basket-card h3,.console-advice-card h3,.console-recent-card h3{color:var(--text-primary);margin:0;font-size:20px}.console-progress-card header,.console-basket-card header{justify-content:space-between}.console-progress-value{justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.console-progress-value strong,.console-basket-card>strong{color:var(--text-primary);font-size:44px;line-height:1}.console-progress-value span{color:var(--text-secondary);font-size:16px;font-weight:800}.console-progress-track,.mobile-machine-progress{background:#edf2f6;border-radius:999px;height:14px;overflow:hidden}.console-progress-track span,.mobile-machine-progress span{border-radius:inherit;background:var(--running);height:100%;display:block}.console-mini-trend{border:1px solid var(--border);background:#f8fafc;border-radius:8px;align-items:end;gap:8px;min-height:86px;padding:12px;display:flex}.console-mini-trend span{background:var(--maintenance);border-radius:4px 4px 0 0;flex:1}.console-basket-card{border-left:6px solid var(--behind)}.console-basket-card--critical{border-color:var(--alarm);background:snow}.console-basket-card--restored{border-color:var(--running);background:#f6fbf8}.console-basket-card header span{color:var(--alarm);border:1px solid;border-radius:5px;padding:4px 8px;font-size:12px;font-weight:900}.console-basket-card--restored header span{color:var(--running)}.console-basket-card dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;display:grid}.console-basket-card dl div{border:1px solid var(--border);background:#fff;border-radius:6px;gap:2px;padding:10px;display:grid}.console-basket-card dt,.console-basket-card dd{margin:0}.console-basket-card dd{color:var(--text-primary);font-weight:900}.console-advice-card ol{gap:8px;margin:0;padding-left:18px;display:grid}.console-alert-row{border-top:1px solid var(--border);gap:4px;padding-top:10px;display:grid}.console-alert-row span{border:1px solid var(--alarm);width:fit-content;color:var(--alarm);border-radius:5px;padding:2px 7px;font-size:11px;font-weight:900}.console-alert-row strong{color:var(--text-primary)}.console-action-bar{flex-wrap:wrap;gap:10px;padding:12px;display:flex;position:sticky;bottom:0}.console-action-bar button,.console-action-bar a{border:1px solid var(--border-strong);min-height:56px;color:var(--text-primary);text-align:center;background:#fff;border-radius:7px;flex:160px;justify-content:center;align-items:center;padding:10px 14px;font-size:14px;font-weight:900;text-decoration:none;display:inline-flex}.console-action-bar button:not(:disabled){border-color:var(--maintenance);background:var(--maintenance);color:#fff}.console-action-bar button:disabled{cursor:not-allowed;color:var(--text-muted);background:#eef2f5}@media (width<=1280px){.machine-grid,.machine-grid--oee{grid-template-columns:repeat(2,minmax(240px,1fr))}.overview-layout,.oee-layout,.machine-detail-layout,.operator-console-grid,.bottom-grid,.maintenance-layout,.alarm-layout,.roles-layout{grid-template-columns:minmax(0,1fr)}.machine-detail-header,.operator-console-header,.console-metric-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.page-title-row,.toolbar-row{flex-direction:column;align-items:stretch}.machine-grid,.machine-grid--oee,.chart-grid,.machine-detail-header,.operator-console-header,.console-metric-strip,.console-basket-card dl{grid-template-columns:minmax(0,1fr)}.console-title-row h2,.console-progress-value strong,.console-basket-card>strong{font-size:34px}.console-metric-strip article{border-left:0;border-top:1px solid var(--border)}.console-metric-strip article:first-child{border-top:0}.console-light-block,.console-progress-value{flex-direction:column;justify-content:flex-start;align-items:flex-start}.timeline{grid-template-columns:minmax(0,1fr);gap:12px}}.mobile-stage{justify-items:center;gap:16px;display:grid}.mobile-phone{border:1px solid var(--border-strong);width:min(100%,430px);min-height:720px;box-shadow:var(--shadow-panel);background:#f7f9fb;border-radius:8px;grid-template-rows:auto 1fr auto;display:grid;overflow:hidden}.mobile-header{border-bottom:1px solid var(--border);background:#fff;gap:10px;padding:16px;display:grid}.mobile-header__top,.mobile-title-row,.mobile-tabbar,.mobile-filter-row,.mobile-actions,.mobile-metric-row,.mobile-status-row,.mobile-pressure-grid{align-items:center;gap:8px;display:flex}.mobile-header__top,.mobile-title-row{justify-content:space-between}.mobile-header h2{color:var(--text-primary);margin:0;font-size:20px;line-height:1.1}.mobile-header p,.mobile-card p,.mobile-note,.mobile-empty{color:var(--text-secondary);margin:0;font-size:12px}.mobile-pill,.mobile-status,.mobile-priority,.mobile-source{border:1px solid var(--border);width:fit-content;min-height:24px;color:var(--text-secondary);background:#fff;border-radius:5px;align-items:center;padding:3px 8px;font-size:11px;font-weight:800;line-height:1.2;display:inline-flex}.mobile-pill--demo{border-color:var(--maintenance);color:var(--maintenance)}.mobile-pill--push,.mobile-priority--urgent,.mobile-priority--high{border-color:var(--alarm);color:var(--alarm);background:#fff5f5}.mobile-priority--medium,.mobile-status--assigned,.mobile-status--open,.mobile-status--sent,.mobile-status--read{border-color:var(--behind);color:var(--behind);background:#fff8ec}.mobile-priority--low,.mobile-status--accepted,.mobile-status--on_the_way,.mobile-status--in_progress,.mobile-status--acknowledged{border-color:var(--maintenance);color:var(--maintenance);background:#f2f7fd}.mobile-status--resolved{border-color:var(--running);color:var(--running);background:#effaf4}.mobile-status--need_parts{border-color:var(--offline);color:var(--offline);background:#f3f5f7}.mobile-content{align-content:start;gap:12px;padding:14px;display:grid;overflow:auto}.mobile-card{border:1px solid var(--border);border-left:4px solid var(--maintenance);box-shadow:var(--shadow-panel);background:#fff;border-radius:8px;gap:12px;padding:14px;display:grid}.mobile-machine-card{border:1px solid var(--border);border-left:4px solid var(--running);color:inherit;box-shadow:var(--shadow-panel);background:#fff;border-radius:8px;gap:12px;padding:14px;text-decoration:none;display:grid}.mobile-machine-card--high{border-left-color:var(--alarm)}.mobile-machine-card--medium,.mobile-machine-card--warning{border-left-color:var(--behind)}.mobile-machine-card__header,.mobile-machine-signal,.mobile-machine-footer{align-items:center;gap:10px;display:flex}.mobile-machine-card__header{justify-content:space-between}.mobile-machine-card__header>div{min-width:0}.mobile-machine-card h3{color:var(--text-primary);margin:0;font-size:18px;line-height:1.1}.mobile-machine-card p,.mobile-machine-signal span{color:var(--text-secondary);margin:3px 0 0;font-size:12px;line-height:1.3}.mobile-machine-signal{border:1px solid var(--border);background:#f8fafc;border-radius:6px;align-items:flex-start;padding:9px}.mobile-machine-footer{flex-wrap:wrap;justify-content:space-between}.mobile-machine-footer strong{color:var(--text-primary);font-size:12px}.mobile-machine-progress{height:8px}.mobile-card--alarm,.mobile-card--urgent{border-left-color:var(--alarm)}.mobile-card--warning{border-left-color:var(--behind)}.mobile-card h3{color:var(--text-primary);margin:0;font-size:16px;line-height:1.2}.mobile-card dl{gap:8px;margin:0;display:grid}.mobile-card dl div{color:var(--text-secondary);gap:2px;font-size:12px;display:grid}.mobile-watch-row,.mobile-detail-row{color:var(--text-secondary);grid-template-columns:minmax(0,1fr) auto;gap:10px;font-size:12px;display:grid}.mobile-card dt,.mobile-card dd{margin:0}.mobile-card dd,.mobile-watch-row strong,.mobile-detail-row strong{color:var(--text-primary);font-weight:800}.mobile-card dd{text-align:left}.mobile-watch-row strong,.mobile-detail-row strong{text-align:right}.mobile-metric-row{align-items:stretch}.mobile-metric{border:1px solid var(--border);background:#f8fafc;border-radius:6px;flex:1;gap:2px;padding:9px;display:grid}.mobile-metric span{color:var(--text-secondary);font-size:11px}.mobile-metric strong{color:var(--text-primary);font-size:19px;line-height:1}.mobile-actions{flex-wrap:wrap}.mobile-button{border:1px solid var(--border-strong);min-height:38px;color:var(--text-primary);background:#fff;border-radius:6px;flex:132px;padding:8px 10px;font-size:12px;font-weight:900}.mobile-button--primary{border-color:var(--maintenance);background:var(--maintenance);color:#fff}.mobile-button--danger{border-color:var(--alarm);background:var(--alarm);color:#fff}.mobile-button:disabled{cursor:not-allowed;border-color:var(--border);color:var(--text-muted);background:#eef2f5}.mobile-filter-row{padding-bottom:2px;overflow-x:auto}.mobile-filter-row button{border:1px solid var(--border);color:var(--text-secondary);background:#fff;border-radius:6px;flex:none;padding:8px 10px;font-size:12px;font-weight:800}.mobile-filter-row button.is-active{border-color:var(--maintenance);color:var(--maintenance);background:#f2f7fd}.mobile-pressure-grid{align-items:stretch}.mobile-pressure{border:1px solid var(--border);background:#fff;border-radius:6px;flex:1;gap:2px;padding:9px;display:grid}.mobile-pressure span{color:var(--text-secondary);font-size:11px;font-weight:800}.mobile-pressure strong{color:var(--text-primary);font-size:20px;line-height:1}.mobile-watchlist{border:1px solid var(--border);background:#fff;border-radius:8px;gap:10px;padding:12px;display:grid}.mobile-watchlist h3{margin:0;font-size:14px}.mobile-watch-row{border-top:1px solid var(--border);padding-top:9px}.mobile-resolve-panel{border:1px solid var(--border-strong);background:#f8fafc;border-radius:8px;padding:12px}.mobile-resolve-panel h4{margin:0 0 6px;font-size:14px}.mobile-boundary{border-left:4px solid var(--border-strong)}.mobile-tabbar{border-top:1px solid var(--border);background:#fff;justify-content:space-around;padding:8px}.mobile-tabbar a,.mobile-tabbar span{color:var(--text-muted);text-align:center;border-radius:6px;flex:1;padding:7px 4px;font-size:11px;font-weight:900;text-decoration:none}.mobile-tabbar .is-active{color:var(--maintenance);background:#f2f7fd}@media (width<=720px){.mobile-stage{justify-items:stretch}.mobile-phone{width:100%;min-height:calc(100vh - 118px)}}@media (width<=390px){.mobile-header,.mobile-content,.mobile-card,.mobile-machine-card{padding-left:12px;padding-right:12px}.mobile-title-row,.mobile-machine-card__header{flex-direction:column;align-items:flex-start}.mobile-metric-row,.mobile-pressure-grid{flex-direction:column}.mobile-metric,.mobile-pressure{width:100%}}.page-placeholder{flex-direction:column;gap:1.5rem;display:flex}.page-placeholder__hero{background:linear-gradient(#ffffffe0,#faf6eef0),linear-gradient(135deg,#0891b20a,#0000 60%);border:1px solid #13222c17;border-radius:1.5rem;justify-content:space-between;gap:1.5rem;padding:1.5rem;display:flex;box-shadow:0 20px 45px #1226330f}.page-placeholder__hero h2,.page-placeholder__hero p{margin:0}.page-placeholder__hero h2{color:#13222c;font-size:clamp(1.5rem,2vw,2rem);line-height:1.15}.page-placeholder__hero>div:first-child>p:last-child{color:#516069;max-width:48rem;margin-top:.75rem;line-height:1.65}.page-placeholder__meta{color:#9a3412;letter-spacing:.08em;text-transform:uppercase;font-size:.85rem;font-weight:700;margin-bottom:.65rem!important}.page-placeholder__chips{flex-direction:column;align-items:flex-end;gap:.75rem;display:flex}.page-placeholder__chips span{color:#203641;background:#13222c14;border-radius:999px;align-items:center;padding:.55rem .8rem;font-size:.84rem;font-weight:700;display:inline-flex}.page-placeholder__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.placeholder-card{background:#fffc;border:1px solid #13222c14;border-radius:1.3rem;padding:1.35rem}.placeholder-card h3,.placeholder-card p,.placeholder-card ul{margin:0}.placeholder-card h3{color:#13222c;font-size:1rem}.placeholder-card p,.placeholder-card li{color:#54646d;line-height:1.65}.placeholder-card p,.placeholder-card ul{margin-top:.8rem}.placeholder-card ul{padding-left:1.15rem}.placeholder-card--wide{grid-column:1/-1}.domain-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem;margin-top:1rem;display:grid}.domain-grid>div{background:#13222c0f;border-radius:1rem;flex-direction:column;gap:.35rem;min-width:0;padding:1rem;display:flex}.domain-grid strong{color:#13222c;font-size:1.25rem}.domain-grid small{color:#60717b;line-height:1.45}.domain-label{color:#9a3412;letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:800}.action-row{flex-wrap:wrap;gap:.7rem;margin-top:1rem;display:flex}.action-row button{color:#fffaf0;cursor:pointer;background:#13222c;border:1px solid #13222c24;border-radius:.9rem;padding:.75rem .95rem;font-weight:800;transition:transform .14s,opacity .14s}.action-row button:not(:disabled):hover{transform:translateY(-1px)}.action-row button:disabled{cursor:not-allowed;opacity:.42}.gate-note{color:#54646d;margin-top:1rem!important}@media (width<=860px){.page-placeholder__hero{flex-direction:column}.page-placeholder__chips{flex-flow:wrap;align-items:flex-start}.page-placeholder__grid{grid-template-columns:1fr}.placeholder-card--wide{grid-column:auto}.domain-grid{grid-template-columns:1fr}}:root{color:#17212b;--page-bg:#f4f6f8;--surface:#fff;--subtle:#eef2f5;--border:#d9e0e7;--border-strong:#b8c4d0;--text-primary:#17212b;--text-secondary:#5b6673;--text-muted:#8a95a3;--running:#168a54;--behind:#c47a12;--stopped:#d2a106;--alarm:#c62828;--maintenance:#2f6db3;--offline:#667085;--measured:#1f7a8c;--estimated:#7a5af8;--manual:#6b7280;--missing:#9aa4b2;--info:#2f6db3;--shadow-panel:0 1px 2px #10182814;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f4f6f8;font-family:Inter,Segoe UI,Arial,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html{scrollbar-gutter:stable}body{background:var(--page-bg);min-width:320px;min-height:100vh;margin:0}body,button,input,select,textarea{font:inherit}button,input,select,textarea,a{color:inherit}#root{min-height:100vh}
