:root{color:#14231e;font-synthesis:none;text-rendering:optimizelegibility;background:#f5f7f6;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:linear-gradient(#1028200f,#0000 280px),#f5f7f6;min-width:320px;margin:0}button,input{font:inherit}button{cursor:pointer}main{width:min(1180px,100% - 32px);margin:0 auto;padding:28px 0 48px}.topbar{justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px;display:flex}h1,h2,h3,p{margin:0}h1{font-size:34px;font-weight:760;line-height:1.1}h2{font-size:19px;line-height:1.2}h3{font-size:16px;line-height:1.2}.topbar p{color:#62716b;margin-top:6px}.actions{gap:10px;display:flex}.actions button{color:#102820;background:#fff;border:1px solid #c9d6d0;border-radius:8px;place-items:center;width:44px;height:44px;font-size:20px;display:grid}.actions button:disabled{cursor:not-allowed;opacity:.45}.banner,.notice,.loading{border-radius:8px;margin-bottom:16px;padding:12px 14px}.banner{color:#793615;background:#fff3ec;border:1px solid #ffc8aa}.notice{color:#15593c;background:#effaf4;border:1px solid #bfe5d1}.loading{color:#4f615a;background:#fff;border:1px solid #c9d6d0}.status-band{background:#c9d6d0;border:1px solid #c9d6d0;border-radius:8px;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin-bottom:18px;display:grid;overflow:hidden}.deployment-band{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:18px;display:grid}.deployment-band div{background:#fff;border:1px solid #d9e2de;border-radius:8px;min-width:0;padding:14px}.edge-sync-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:18px;display:grid}.edge-sync-list article{background:#fff;border:1px solid #d9e2de;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:14px;display:flex}.edge-sync-list div{min-width:0}.edge-sync-list span,.edge-sync-list small,.sync-empty{color:#62716b;font-size:12px;line-height:1.35;display:block}.edge-sync-list strong{overflow-wrap:anywhere;margin-top:4px;font-size:18px;line-height:1.2;display:block}.edge-sync-list .status{color:inherit;display:inline-flex}.modbus-import-form{background:#fff;border:1px solid #d9e2de;border-radius:8px;grid-template-columns:minmax(180px,2fr) repeat(2,minmax(120px,1fr)) auto;align-items:end;gap:10px;margin-bottom:18px;padding:14px;display:grid}.modbus-import-form label{gap:6px;min-width:0;display:grid}.modbus-import-form span{color:#62716b;font-size:13px}.modbus-import-form input,.modbus-import-form select{background:#fff;border:1px solid #c9d6d0;border-radius:8px;min-width:0;height:38px;padding:0 10px}.modbus-import-form input[type=file]{padding:7px 10px}.modbus-import-form button{color:#fff;white-space:nowrap;background:#102820;border:1px solid #102820;border-radius:8px;height:38px;padding:0 14px}.sync-empty{background:#fff;border:1px solid #d9e2de;border-radius:8px;margin:-4px 0 18px;padding:12px 14px}.auth-panel{margin-bottom:18px}.login-form,.session-card{background:#fff;border:1px solid #d9e2de;border-radius:8px;grid-template-columns:minmax(150px,1fr) minmax(150px,1fr) minmax(130px,.8fr) auto;align-items:end;gap:12px;padding:14px;display:grid}.login-form label{gap:6px;display:grid}.login-form span,.session-card span{color:#62716b;font-size:13px}.login-form input{background:#fff;border:1px solid #c9d6d0;border-radius:8px;min-width:0;height:40px;padding:0 12px}.login-form button,.session-card button,.inline-form button{color:#fff;background:#102820;border:1px solid #102820;border-radius:8px;height:40px;padding:0 14px}.session-card{grid-template-columns:minmax(0,1fr) auto;align-items:center}.session-card strong,.session-card small{display:block}.session-card small{color:#62716b;margin-top:2px}.session-actions{justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.inline-form{gap:8px;min-width:0;display:flex}.inline-form input{border:1px solid #c9d6d0;border-radius:8px;width:120px;min-width:0;height:40px;padding:0 10px}.checkbox{color:#334139;align-items:center;gap:6px;min-height:40px;font-size:13px;display:flex}.checkbox input{width:16px;height:16px}.toolbar,.filter-form{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.toolbar select,.filter-form input,.filter-form select,.filter-form button{background:#fff;border:1px solid #c9d6d0;border-radius:8px;min-width:110px;height:36px;padding:0 10px}.filter-form{justify-content:flex-start;margin-bottom:12px}.filter-form button{color:#fff;background:#102820;border-color:#102820}.mfa-panel{background:#fff;border:1px solid #d9e2de;border-radius:8px;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr) auto;align-items:end;gap:12px;margin-top:10px;padding:14px;display:grid}.mfa-panel span{color:#62716b;margin-bottom:6px;font-size:13px;display:block}.mfa-panel code{overflow-wrap:anywhere;color:#20342d;background:#f1f5f3;border-radius:8px;padding:10px;font-size:12px;display:block}.status-band div{background:#fff;min-width:0;padding:18px}.status-band span,.deployment-band span,.metric p,td small{color:#62716b;font-size:13px;line-height:1.35;display:block}.status-band strong{margin-top:4px;font-size:22px;line-height:1.2;display:block}.deployment-band strong{overflow-wrap:anywhere;width:fit-content;max-width:100%;margin-top:6px;font-size:18px;line-height:1.2;display:block}.deployment-band small{overflow-wrap:anywhere;color:#62716b;margin-top:6px;font-size:12px;line-height:1.35;display:block}.dashboard-grid,.alarm-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.metric{background:#fff;border:1px solid #d9e2de;border-radius:8px;flex-direction:column;justify-content:space-between;gap:16px;min-width:0;min-height:112px;padding:16px;display:flex}.metric strong{overflow-wrap:anywhere;margin-top:8px;font-size:24px;line-height:1.1;display:block}.operation-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.operation-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.operation-heading span{color:#224f86;background:#e7eef8;border-radius:999px;min-height:24px;padding:3px 8px;font-size:12px;font-weight:680}.control-list{gap:10px;display:grid}.control-card{background:#fff;border:1px solid #d9e2de;border-radius:8px;gap:12px;min-width:0;padding:14px;display:grid}.control-main,.control-meta{justify-content:space-between;align-items:flex-start;gap:10px;min-width:0;display:flex}.control-main strong,.control-main small,.control-value span,.control-value strong{display:block}.control-main strong{line-height:1.25}.control-main small,.control-value span{color:#62716b;margin-top:3px;font-size:12px}.control-value strong{overflow-wrap:anywhere;margin-top:4px;font-size:22px;line-height:1.1}.control-card .write-form{min-width:0}.quality,.safety,.status{border-radius:999px;align-self:flex-start;align-items:center;min-height:24px;padding:3px 8px;font-size:12px;font-weight:680;display:inline-flex}.quality-good{color:#0d6b46;background:#dff7ec}.quality-stale{color:#7b5a00;background:#fff3cf}.quality-bad{color:#9f261d;background:#fde1df}.safety-monitor{color:#224f86;background:#e7eef8}.safety-user{color:#16644e;background:#e1f6ef}.safety-installer{color:#8b5200;background:#fff0d8}.status-applied,.status-ok{color:#0d6b46;background:#dff7ec}.status-pending_commit,.status-validated{color:#7b5a00;background:#fff3cf}.status-rejected,.status-failed,.status-expired,.status-cancelled{color:#9f261d;background:#fde1df}.status-info,.status-skipped{color:#224f86;background:#e7eef8}.status-warning{color:#7b5a00;background:#fff3cf}.status-error{color:#9f261d;background:#fde1df}.panel{margin-top:22px}.panel-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;display:flex}.panel-heading input{background:#fff;border:1px solid #c9d6d0;border-radius:8px;width:min(320px,100%);height:40px;padding:0 12px}.panel-heading select{background:#fff;border:1px solid #c9d6d0;border-radius:8px;width:min(360px,100%);height:40px;padding:0 12px}.panel-heading button{color:#fff;white-space:nowrap;background:#102820;border:1px solid #102820;border-radius:8px;height:38px;padding:0 14px}.trend-card{background:#fff;border:1px solid #d9e2de;border-radius:8px;gap:14px;padding:16px;display:grid}.trend-summary{grid-template-columns:1.4fr repeat(4,minmax(0,1fr));gap:12px;display:grid}.trend-summary div{background:#f7faf8;border-radius:8px;min-width:0;padding:12px}.trend-summary span,.trend-summary small{color:#62716b;font-size:12px;line-height:1.35;display:block}.trend-summary strong{overflow-wrap:anywhere;margin:5px 0 3px;font-size:18px;line-height:1.2;display:block}.sparkline,.trend-empty{background:#fbfdfc;border:1px solid #e3ebe7;border-radius:8px;width:100%;min-height:170px}.sparkline line{stroke:#d4dfda;stroke-width:1px}.sparkline polyline{fill:none;stroke:#1b7a5a;stroke-linecap:round;stroke-linejoin:round;stroke-width:3px}.trend-empty{color:#62716b;place-items:center;display:grid}.tabs{gap:8px;padding-bottom:10px;display:flex;overflow-x:auto}.tabs button{white-space:nowrap;color:#34443e;background:#fff;border:1px solid #c9d6d0;border-radius:8px;min-height:36px;padding:0 12px}.tabs button.active{color:#fff;background:#102820;border-color:#102820}.table-wrap{background:#fff;border:1px solid #d9e2de;border-radius:8px;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:1040px}th,td{text-align:left;vertical-align:middle;border-bottom:1px solid #edf1ef;padding:13px 14px;font-size:14px}th{color:#62716b;text-transform:uppercase;font-size:12px}td strong{font-size:14px;line-height:1.35;display:block}tbody tr:last-child td{border-bottom:0}.muted{color:#71817a;font-size:13px}.write-form{grid-template-columns:minmax(96px,1fr) 96px;align-items:center;gap:8px;min-width:220px;display:grid}.write-form small{color:#62716b;grid-column:1/-1;font-size:12px;line-height:1.35}.write-form input,.write-form select{background:#fff;border:1px solid #c9d6d0;border-radius:8px;min-width:0;height:34px;padding:0 9px}.write-form button{color:#fff;background:#102820;border:1px solid #102820;border-radius:8px;height:34px;padding:0 10px;font-size:13px}.history-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.history-list article{background:#fff;border:1px solid #d9e2de;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:12px;display:flex}.history-list strong,.history-list small{overflow-wrap:anywhere;display:block}.history-list small{color:#62716b;margin-top:3px;font-size:12px}.history-actions{flex:none;align-items:center;gap:8px;display:flex}.history-actions button{color:#fff;white-space:nowrap;background:#102820;border:1px solid #102820;border-radius:8px;height:34px;padding:0 10px;font-size:13px}.history-actions button:last-child{color:#34443e;background:#fff;border-color:#c9d6d0}.event-list{gap:10px;display:grid}.diagnostics-report{gap:10px;margin-bottom:12px;display:grid}.diagnostics-summary,.diagnostics-list article{background:#fff;border:1px solid #d9e2de;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:12px;display:flex}.diagnostics-summary span,.diagnostics-summary strong,.diagnostics-summary small,.diagnostics-list strong,.diagnostics-list small{display:block}.diagnostics-summary span,.diagnostics-summary small,.diagnostics-list small{color:#62716b;font-size:12px;line-height:1.35}.diagnostics-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.diagnostics-list article{border-left-width:4px}.diagnostics-list article>div{min-width:0}.diagnostics-list article>div:last-child{justify-items:end;gap:4px;display:grid}.diagnostic-ok{border-left-color:#52b486}.diagnostic-warning{border-left-color:#e0b448}.diagnostic-error{border-left-color:#d95a4f}.diagnostic-skipped{border-left-color:#79a9df}.alarm-feed{gap:10px;margin-top:12px;display:grid}.alarm-item{background:#fff;border:1px solid #d9e2de;border-left-width:4px;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:12px;display:flex}.alarm-item strong,.alarm-item small{overflow-wrap:anywhere;display:block}.alarm-item small{color:#62716b;margin-top:3px;font-size:12px}.alarm-info{border-left-color:#79a9df}.alarm-warning{border-left-color:#e0b448}.alarm-error{border-left-color:#d95a4f}.recommendation-list{gap:10px;display:grid}.recommendation-item{background:#fff;border:1px solid #d9e2de;border-left-width:4px;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:12px;display:flex}.recommendation-item strong,.recommendation-item small{overflow-wrap:anywhere;display:block}.recommendation-item small{color:#62716b;margin-top:3px;font-size:12px}.recommendation-actions{flex:none;align-items:center;gap:8px;display:flex}.prepare-recommendation{color:#fff;white-space:nowrap;background:#102820;border:1px solid #102820;border-radius:8px;height:34px;padding:0 10px;font-size:13px}.recommendation-info{border-left-color:#79a9df}.recommendation-warning{border-left-color:#e0b448}.recommendation-error{border-left-color:#d95a4f}.automation-settings,.automation-settings-summary,.energy-signal-form,.energy-signal-summary{background:#fff;border:1px solid #d9e2de;border-radius:8px;margin-top:12px;padding:12px}.automation-settings,.energy-signal-form{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));align-items:end;gap:10px;display:grid}.automation-settings label,.energy-signal-form label{gap:6px;display:grid}.automation-settings span,.automation-settings-summary span,.energy-signal-form span,.energy-signal-summary span{color:#62716b;font-size:13px}.automation-settings input,.energy-signal-form input,.energy-signal-form select{background:#fff;border:1px solid #c9d6d0;border-radius:8px;min-width:0;height:38px;padding:0 10px}.automation-settings button,.energy-signal-form button{color:#fff;background:#102820;border:1px solid #102820;border-radius:8px;height:38px;padding:0 14px}.automation-settings-summary,.energy-signal-summary{flex-wrap:wrap;gap:10px 16px;display:flex}.energy-signal-summary .status-applied,.energy-signal-summary .status-ok{color:#0d6b46}.energy-signal-summary .status-skipped,.energy-signal-summary .status-info{color:#224f86}.energy-signal-summary .status-warning{color:#7b5a00}.event-list article{background:#fff;border:1px solid #d9e2de;border-left-width:4px;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:12px;display:flex}.event-list strong,.event-list small{overflow-wrap:anywhere;display:block}.event-list small{color:#62716b;margin-top:3px;font-size:12px}.event-info{border-left-color:#79a9df}.event-warning{border-left-color:#e0b448}.event-error{border-left-color:#d95a4f}.user-create-form,.user-card{background:#fff;border:1px solid #d9e2de;border-radius:8px;align-items:end;gap:12px;padding:14px;display:grid}.user-create-form{grid-template-columns:minmax(150px,1fr) minmax(150px,1fr) minmax(120px,.8fr) auto;margin-bottom:10px}.user-list{gap:10px;display:grid}.user-card{grid-template-columns:1.2fr minmax(120px,.7fr) minmax(150px,.9fr) auto auto auto}.user-create-form label,.user-card label{gap:6px;display:grid}.user-create-form span,.user-card span,.user-card small{color:#62716b;font-size:13px}.user-card strong,.user-card small{display:block}.user-card small{margin-top:2px}.user-create-form input,.user-create-form select,.user-card input,.user-card select{background:#fff;border:1px solid #c9d6d0;border-radius:8px;min-width:0;height:40px;padding:0 10px}.user-create-form button,.user-card button{color:#fff;background:#102820;border:1px solid #102820;border-radius:8px;height:40px;padding:0 14px}.check-row{grid-template-columns:auto minmax(90px,1fr);align-items:center;min-height:40px}.check-row input{width:18px;height:18px}@media (width<=900px){main{width:min(100% - 24px,1180px);padding-top:18px}.topbar{align-items:flex-start}h1{font-size:28px}.status-band,.deployment-band,.edge-sync-list,.dashboard-grid,.operation-grid,.alarm-grid,.user-create-form,.user-card,.history-list,.diagnostics-list,.automation-settings,.energy-signal-form,.modbus-import-form,.trend-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.topbar,.panel-heading{flex-direction:column;align-items:stretch}.actions{justify-content:flex-end}.status-band,.deployment-band,.edge-sync-list,.dashboard-grid,.operation-grid,.alarm-grid,.history-list,.diagnostics-list,.trend-summary,.login-form,.session-card,.user-create-form,.user-card,.automation-settings,.energy-signal-form,.modbus-import-form,.mfa-panel{grid-template-columns:1fr}.session-actions,.inline-form,.history-list article,.edge-sync-list article,.diagnostics-list article,.history-actions,.recommendation-item,.recommendation-actions{flex-direction:column;align-items:stretch}.inline-form input{width:100%}}
