:root{color:#253044;background:#eef2f6;--page-bg: #eef2f6;--panel-bg: #ffffff;--border: #dbe3ee;--muted: #66758c;--ink: #172033;--accent: #1473e6;--success: #14835e;--warning: #b45309;--danger: #b91c1c;--button-primary-bg: #1473e6;--button-primary-border: #1473e6;--button-primary-text: #ffffff;--button-secondary-bg: #ffffff;--button-secondary-border: #b8cbe3;--button-secondary-text: #24527f;--button-secondary-hover-bg: #eef4ff;--button-danger-bg: #ffffff;--button-danger-border: #f1a7a7;--button-danger-text: #b91c1c;--button-danger-hover-bg: #fff1f2;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--page-bg)}button,select,input,textarea{font:inherit}button,select,input,textarea{transition:border-color .14s ease,box-shadow .14s ease,background .14s ease,color .14s ease,transform .14s ease}button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid rgba(20,115,230,.18);outline-offset:2px}.auth-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#eef7f1,#eef2f6 48%,#e8eef8);padding:24px}.login-panel{width:min(440px,100%);background:#fff;border:1px solid #dbe3ee;border-radius:10px;padding:28px;box-shadow:0 20px 55px #10182824;display:grid;gap:15px}.login-panel h1{margin:8px 0 0}.login-panel p,.login-panel small{color:#667085}.login-panel label{display:grid;gap:7px;color:#536075;font-size:12px;font-weight:700}.login-panel input{min-height:42px;border:1px solid #d7deea;border-radius:8px;padding:9px 11px}.language-switcher{position:fixed;top:14px;right:18px;z-index:60;display:inline-flex;gap:4px;padding:4px;border:1px solid rgba(203,213,225,.84);border-radius:999px;background:#fffffff0;box-shadow:0 10px 30px #1018281f;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.language-switcher button{border:0;border-radius:999px;background:transparent;color:#516079;display:inline-flex;align-items:center;gap:5px;min-height:30px;padding:5px 9px;font-size:12px;font-weight:800;cursor:pointer}.language-switcher button.active{background:#101828;color:#fff}.app-shell{display:grid;grid-template-columns:274px minmax(0,1fr);min-height:100vh}.app-shell--sidebar-collapsed{grid-template-columns:78px minmax(0,1fr)}.sidebar{background:#101828;color:#e5edf8;padding:22px 16px;display:flex;flex-direction:column;gap:18px;border-right:1px solid rgba(255,255,255,.08)}.sidebar--collapsed{padding:22px 10px;align-items:center}.brand{display:flex;align-items:center;gap:12px;min-width:0}.sidebar .brand{justify-content:space-between}.brand--login strong{color:#101828}.brand--login span{color:#667085}.brand-logo{width:52px;height:52px;border-radius:8px;object-fit:contain;background:#fff;padding:3px}.brand strong,.brand span{display:block}.brand-copy{min-width:0}.brand strong{font-size:18px}.brand span,.sidebar-footer span{color:#9aa8bd;font-size:12px}.sidebar nav{display:grid;gap:16px;overflow-y:auto;padding-right:2px}.nav-section{display:grid;gap:6px}.nav-section-title{color:#7f8da4;font-size:11px;font-weight:800;letter-spacing:0;padding:0 10px;text-transform:uppercase}.sidebar button{border:0;border-radius:8px;background:transparent;color:#bfcbda;display:flex;align-items:center;gap:10px;padding:11px 12px;text-align:left;cursor:pointer}.sidebar-toggle{width:36px;height:36px;flex:0 0 auto;justify-content:center;padding:0!important;background:#1f2a3d!important;color:#fff!important}.sidebar--collapsed .brand{display:grid;justify-items:center;gap:10px}.sidebar--collapsed .brand-logo{width:44px;height:44px}.sidebar--collapsed .brand-copy,.sidebar--collapsed .nav-section-title,.sidebar--collapsed .nav-label,.sidebar--collapsed .sidebar-select,.sidebar--collapsed .sidebar-status-card,.sidebar--collapsed .sidebar-footer{display:none}.sidebar--collapsed nav{width:100%;padding-right:0}.sidebar--collapsed .nav-section{justify-items:center}.sidebar--collapsed .nav-section button{width:48px;height:44px;justify-content:center;padding:0}.sidebar--collapsed .nav-section button.active{box-shadow:inset 0 -3px #17a673}.sidebar button.active,.sidebar button:hover{background:#1f2a3d;color:#fff}.sidebar button.active{box-shadow:inset 3px 0 #17a673}.sidebar button:disabled{cursor:default;opacity:.46}.sidebar button:disabled:hover{background:transparent;color:#bfcbda}.sidebar-footer{margin-top:auto;border-top:1px solid #263247;padding-top:18px;display:grid;gap:6px}.sidebar-select{display:grid;gap:7px;color:#9aa8bd;font-size:12px;font-weight:700}.sidebar-select select{min-height:38px;border-color:#263247;background:#1f2a3d;color:#fff}.sidebar-status-card{display:grid;gap:4px;border:1px solid #263247;border-radius:8px;padding:12px;background:linear-gradient(180deg,#172033,#111827)}.sidebar-status-card span,.sidebar-status-card small{color:#9aa8bd;font-size:12px}.sidebar-status-card strong{color:#fff}.sidebar-footer strong{display:block;margin-top:4px}.sidebar-footer small{color:#9aa8bd;overflow-wrap:anywhere}.role-pill{width:fit-content;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800;text-transform:uppercase;background:#263247;color:#e5edf8}.role-pill--owner{background:#065f46}.role-pill--admin{background:#1d4ed8}.role-pill--engineer{background:#7c3aed}.sidebar-warning{color:#fcd34d!important}.sidebar-password-form{display:grid;gap:7px;margin:8px 0}.sidebar-password-form input{width:100%;border:1px solid rgba(255,255,255,.18);border-radius:7px;background:#ffffff14;color:#fff;padding:8px 9px}.sidebar-password-form input::placeholder{color:#ffffff9e}.logout-button{margin:6px 0 10px;background:#263247!important;color:#fff!important;justify-content:center;cursor:pointer!important}.page{padding:32px;overflow-x:hidden;overflow-y:auto}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:22px;padding-right:124px;padding-bottom:18px;border-bottom:1px solid rgba(203,213,225,.72)}.eyebrow{margin:0 0 6px;font-size:12px;color:#14835e;font-weight:700;text-transform:uppercase}h1,h2,p{margin-top:0}h1{color:var(--ink);font-size:32px;line-height:1.12;margin-bottom:8px}h2{font-size:18px;margin-bottom:6px}.page-header p,.panel-header p{color:#748095}.primary-button,.secondary-button,.button-row button,.ghost-button,.danger-button,.icon-text-button,.tab-button{border:1px solid transparent;border-radius:8px;background:var(--button-secondary-bg);color:var(--button-secondary-text);padding:11px 15px;display:inline-flex;align-items:center;gap:8px;cursor:pointer;justify-content:center;font-weight:800}.primary-button{background:var(--button-primary-bg);border-color:var(--button-primary-border);color:var(--button-primary-text)}.secondary-button,.button-row button,.ghost-button,.icon-text-button,.tab-button{background:var(--button-secondary-bg);border-color:var(--button-secondary-border);color:var(--button-secondary-text)}.primary-button:hover,.secondary-button:hover,.button-row button:hover,.ghost-button:hover,.icon-text-button:hover,.tab-button:hover{transform:translateY(-1px);box-shadow:0 10px 20px #1473e61f}.secondary-button:hover,.button-row button:hover,.ghost-button:hover,.icon-text-button:hover,.tab-button:hover{background:var(--button-secondary-hover-bg)}.ghost-button{padding:8px 10px;margin-left:auto}.danger-button{background:var(--button-danger-bg);border-color:var(--button-danger-border);color:var(--button-danger-text);justify-content:center}.danger-button:hover{background:var(--button-danger-hover-bg);box-shadow:0 10px 20px #b91c1c1a;transform:translateY(-1px)}.icon-text-button{padding:8px 10px;font-size:12px}.tab-strip{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.tab-button{padding:9px 13px}.tab-button--active{background:#12345b;color:#fff}.button-row button.primary-button{background:var(--button-primary-bg);border-color:var(--button-primary-border);color:var(--button-primary-text)}.button-row button.primary-button:hover{background:#0f63ca}.button-row button.danger-button{background:var(--button-danger-bg);border-color:var(--button-danger-border);color:var(--button-danger-text)}.button-row button.danger-button:hover{background:var(--button-danger-hover-bg)}.icon-only-button{width:38px;height:38px;padding:0}button:disabled{opacity:.55;cursor:progress}.error-banner,.success-banner{border:1px solid #fecaca;background:#fff1f2;color:#9f1239;border-radius:8px;padding:12px 14px;margin-bottom:16px}.success-banner{border-color:#bbf7d0;background:#f0fdf4;color:#166534;display:flex;align-items:center;gap:8px}.control-strip,.metric-grid,.content-grid{display:grid;gap:14px}.control-strip{grid-template-columns:2fr 2fr 1fr;margin-bottom:18px}.control-strip--four{grid-template-columns:2fr 1fr 1fr 1fr}.control-strip label{display:grid;gap:7px;font-size:12px;font-weight:700;color:#536075}select{width:100%;border:1px solid #d7deea;background:#fff;border-radius:8px;min-height:42px;padding:0 12px;color:#263244}input,textarea{width:100%;border:1px solid #d7deea;background:#fff;border-radius:8px;min-height:42px;padding:0 12px;color:#263244;font:inherit}textarea{min-height:156px;padding:12px;resize:vertical;font-family:Cascadia Mono,Consolas,monospace;font-size:13px;line-height:1.5}input[type=color]{padding:4px}.checkbox-field{display:flex!important;align-items:center;gap:10px!important;min-height:42px;color:#253044!important}.checkbox-field input{width:18px;height:18px;min-height:18px;flex:0 0 auto}.metric-grid{grid-template-columns:repeat(6,minmax(0,1fr));margin-bottom:18px}.metric-grid--four{grid-template-columns:repeat(4,minmax(0,1fr))}.metric-card,.panel{background:var(--panel-bg);border:1px solid var(--border);border-radius:8px;box-shadow:0 10px 28px #1018280d}.metric-card{min-height:118px;padding:17px;display:grid;align-content:space-between;position:relative;overflow:hidden}.metric-card:after{content:"";position:absolute;inset:auto 0 0;height:3px;background:#dbe5f2}.metric-card span,.metric-card small,dt{color:#66758c;font-size:12px}.metric-card strong{font-size:25px;color:#1d2939;line-height:1.12;overflow-wrap:anywhere}.metric-card--good{border-top:0}.metric-card--good:after{background:#17a673}.metric-card--warn{border-top:0}.metric-card--warn:after{background:#f59e0b}.metric-card--bad{border-top:0}.metric-card--bad:after{background:#ef4444}.health-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.health-card{display:grid;gap:10px;min-width:0;border:1px solid #dbe3ee;border-left-width:5px;border-radius:8px;background:#fff;padding:14px}.health-card strong,.health-card small{display:block}.health-card small{color:#66758c;overflow-wrap:anywhere}.health-card--good{border-left-color:#16a34a}.health-card--warn{border-left-color:#f59e0b}.health-card--bad{border-left-color:#ef4444}.content-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,520px),1fr));gap:14px;align-items:start}.admin-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:18px;align-items:start}.admin-tabs{position:sticky;top:18px;display:grid;gap:8px}.admin-tab{border:1px solid #d8e1ee;border-radius:8px;background:#fff;color:#52627a;display:flex;align-items:center;gap:10px;padding:13px 14px;text-align:left;cursor:pointer}.admin-tab svg{flex:0 0 auto;color:#1473e6}.admin-tab strong,.admin-tab small{display:block}.admin-tab strong{color:#263244;font-size:14px}.admin-tab small{color:#66758c;margin-top:2px;overflow-wrap:anywhere}.admin-tab--active{background:#12345b;border-color:#12345b;color:#fff}.admin-tab--active svg,.admin-tab--active strong,.admin-tab--active small{color:#fff}.admin-panel-stack{display:grid;gap:14px;min-width:0}.panel{min-width:0;padding:20px}.panel--wide{grid-column:1 / -1}.panel-header,.panel-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.panel-title{justify-content:flex-start;align-items:center}.panel-title svg,.panel-header svg{color:#1473e6}.segmented{display:flex;flex-wrap:wrap;gap:6px}.chart-controls{display:grid;justify-items:end;gap:10px}.axis-controls{display:grid;grid-template-columns:minmax(140px,160px) 84px 84px auto;gap:8px;align-items:center}.axis-controls select,.axis-controls input,.axis-controls button{min-height:36px}.segmented button{border:1px solid #d7deea;background:#f8fafc;color:#435168;border-radius:8px;padding:8px 10px;cursor:pointer}.segmented button.active{background:#12345b;color:#fff;border-color:#12345b}.loading-panel{min-height:190px;display:grid;place-items:center;color:#66758c;font-weight:800}.skeleton-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.skeleton-card{min-height:118px;border-radius:8px;background:linear-gradient(90deg,#e6edf6,#f6f8fb,#e6edf6);background-size:200% 100%;animation:shimmer 1.35s infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.chart-shell{width:100%;overflow:hidden;position:relative}.chart-shell svg{width:100%;height:auto;display:block}.chart-grid{stroke:#dce5f2;stroke-width:1}.chart-tick{stroke:#9cadc4;stroke-width:1.2}.chart-axis{fill:#778399;font-size:13px}.chart-overlay-empty{position:absolute;inset:46% 0 auto;text-align:center;color:#536075;font-weight:800;pointer-events:none}.chart-legend{display:flex;gap:16px;flex-wrap:wrap;padding-left:58px}.chart-legend button{border:0;background:transparent;padding:4px 0;display:inline-flex;align-items:center;gap:6px;color:#56647a;font-size:13px;cursor:pointer}.chart-legend i{width:10px;height:10px;border-radius:3px}.chart-legend .muted-series{color:#98a2b3;text-decoration:line-through}.chart-legend .muted-series i{opacity:.25}.detail-list{display:grid;gap:12px;margin:0}.detail-list div{display:grid;gap:3px}dd{margin:0;font-weight:700}.path-text{overflow-wrap:anywhere;font-size:12px}.list-stack{display:grid;gap:10px}.list-item,.empty-state{border:1px solid #e3e9f3;background:#f8fafc;border-radius:8px;padding:11px}.list-item{display:grid;gap:4px}.list-item span,.empty-state{color:#66758c;font-size:13px}.empty-state{display:flex;align-items:center;gap:8px}.list-item--warning,.list-item--warn{border-left:4px solid #f59e0b}.list-item--critical,.list-item--bad{border-left:4px solid #ef4444}.button-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.button-row--compact{margin-bottom:0}.button-row--compact button{min-height:42px;justify-content:center}.data-table{display:grid;border:1px solid #e3e9f3;border-radius:8px;overflow:hidden}.data-table__head,.data-table__row{display:grid;gap:12px;align-items:center;padding:12px 14px}.data-table__head{background:#f1f5f9;color:#536075;font-size:12px;font-weight:800;text-transform:uppercase}.data-table__row{background:#fff;border-top:1px solid #e3e9f3}.data-table__row small{display:block;color:#66758c;margin-top:3px}.alarm-table{grid-template-columns:96px 120px minmax(260px,1fr) 120px 180px}.alarm-table--ops{grid-template-columns:96px 130px 120px minmax(260px,1fr) 120px 220px 230px}.row-actions{display:flex;flex-wrap:wrap;gap:7px}.report-table{grid-template-columns:120px 180px 220px 180px minmax(220px,1fr) 140px}.site-table{grid-template-columns:minmax(220px,1.4fr) 150px 150px 90px 170px 120px}.meter-table{grid-template-columns:minmax(220px,1.3fr) 150px 150px 100px minmax(180px,1fr) 120px}.gateway-table{grid-template-columns:minmax(220px,1.3fr) 120px 170px minmax(240px,1fr) 100px 120px}.payload-table{grid-template-columns:160px 180px 140px 140px 180px}.dead-letter-table{grid-template-columns:180px 160px 160px minmax(260px,1fr)}.backup-table{grid-template-columns:180px minmax(260px,1fr) 120px minmax(320px,1.2fr)}.retention-table{grid-template-columns:minmax(180px,1fr) 120px 220px 120px 120px}.notification-table{grid-template-columns:170px 110px 110px minmax(180px,1fr) minmax(220px,1fr) minmax(180px,1fr)}.cost-table{grid-template-columns:minmax(180px,1fr) 160px 180px 180px}.tariff-editor-table{grid-template-columns:130px 120px 120px 140px 140px 100px 100px}.tariff-editor-table input,.tariff-editor-table select{width:100%}.security-table{grid-template-columns:minmax(260px,1fr) 120px 110px 170px 170px}.audit-table{grid-template-columns:170px minmax(220px,1fr) 150px minmax(220px,1fr) minmax(260px,1.2fr)}.tenant-table{margin-top:16px}.tenant-table__row{grid-template-columns:minmax(260px,1fr) 110px 80px 90px 100px 80px}.status-pill{width:fit-content;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:800;text-transform:uppercase;background:#e2e8f0;color:#334155}.status-pill--critical,.status-pill--high{background:#fee2e2;color:#991b1b}.status-pill--medium,.status-pill--warning{background:#fef3c7;color:#92400e}.status-pill--low,.status-pill--info{background:#dbeafe;color:#1e40af}.status-pill--open{background:#fee2e2;color:#991b1b}.status-pill--acknowledged{background:#fef3c7;color:#92400e}.status-pill--resolved{background:#dcfce7;color:#166534}.header-select{min-width:280px;display:grid;gap:7px;color:#536075;font-size:12px;font-weight:700}.plain-list{margin:14px 0 0;padding-left:18px;color:#536075;line-height:1.55}.page--dashboards{overflow:auto}.page--dashboard-fullscreen{background:#eef3f8;width:100vw;height:100vh;padding:24px;overflow:auto}.page--dashboard-fullscreen .page-header{position:sticky;top:0;z-index:10;background:#eef3f8f0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding-bottom:14px}.page--dashboard-fullscreen .dashboard-tabs,.page--dashboard-fullscreen .control-strip{max-width:none}.page--dashboard-fullscreen .dashboard-grid{grid-auto-rows:minmax(116px,auto)}.dashboard-title-input{border:0;padding:0;min-height:auto;font-size:34px;font-weight:900;color:#263244;background:transparent}.dashboard-tabs{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start;margin-bottom:16px;padding:8px;background:#fff;border:1px solid #e0e8f2;border-radius:8px}.dashboard-tab{display:inline-flex;align-items:center;gap:6px;border-radius:8px;background:#eef2f7;color:#536075;padding:0 6px 0 0}.dashboard-tab--active{background:#12345b;color:#fff}.dashboard-tab button{border:0;background:transparent;color:inherit;padding:9px 12px;font-weight:800;cursor:pointer}.dashboard-tab__delete{width:30px;height:30px;display:grid;place-items:center;border-radius:7px;padding:0!important}.dashboard-tab__delete:hover{background:#ffffff29}.dashboard-tab{max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-tabs input{width:220px}.dashboard-create-tools{display:grid;grid-template-columns:220px auto auto;gap:8px;align-items:start;margin-left:auto}.dashboard-create-tools--view{grid-template-columns:auto}.dashboard-icon-actions{grid-column:1 / -1;display:flex;justify-content:flex-end;gap:6px}.dashboard-create-tools--view .dashboard-icon-actions{grid-column:1}.icon-only-button--active{border-color:#1473e6;color:#1473e6;background:#eef4ff}.dashboard-add-menu{position:relative}.dashboard-add-menu summary{min-height:44px;display:inline-flex;align-items:center;gap:8px;list-style:none;cursor:pointer}.dashboard-add-menu summary::-webkit-details-marker{display:none}.dashboard-add-menu__panel{position:absolute;right:0;top:calc(100% + 8px);z-index:30;width:190px;display:grid;gap:6px;padding:8px;border:1px solid #d9e3f1;border-radius:10px;background:#fff;box-shadow:0 18px 40px #14233c29}.dashboard-add-menu__panel button{min-height:38px;display:inline-flex;align-items:center;gap:8px;padding:0 10px;border:1px solid transparent;border-radius:8px;background:#f8fbff;color:#1b2a41;font-weight:800;cursor:pointer}.dashboard-add-menu__panel button:hover{border-color:#c7d7eb;background:#eef4ff}.dashboard-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:minmax(96px,auto);grid-auto-flow:dense;gap:14px;align-items:stretch;overflow:visible}.dashboard-grid--edit{padding:14px;border:1px dashed #b8cbe3;border-radius:10px;background:#ffffff8c}.dashboard-widget{position:relative;background:#fff;border:1px solid #e0e8f2;border-radius:8px;padding:12px;min-width:0;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr);box-shadow:0 10px 28px #14233c0f;transition:box-shadow .15s ease,transform .15s ease,opacity .15s ease;container-type:inline-size}.dashboard-widget:has(.widget-menu--open){overflow:visible;z-index:60}.dashboard-widget-header{min-height:34px;display:flex;align-items:center;padding:0 36px 8px 0;color:#1b2a41;font-size:13px;font-weight:900;line-height:1.2;min-width:0}.dashboard-widget-header--editable{padding-left:44px}.dashboard-widget-header span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-grid--edit .dashboard-widget{border-color:#c6d7ec}.dashboard-widget:hover{box-shadow:0 14px 34px #14233c1f}.dashboard-widget--dragging{opacity:.46;transform:scale(.99);outline:2px dashed #1677ff}.dashboard-widget-drag{position:absolute;top:10px;left:10px;z-index:6;width:34px;height:32px;display:grid;place-items:center;border:1px solid #d7deea;border-radius:7px;background:#f8fafceb;color:#64748b;cursor:grab}.widget-menu{position:absolute;top:10px;right:10px;z-index:80}.widget-menu-button{width:34px;height:32px;display:grid;place-items:center;border:1px solid #d7deea;border-radius:7px;background:#f8fafceb;color:#334155;cursor:pointer}.widget-menu-panel{position:absolute;right:0;top:calc(100% + 8px);z-index:40;width:min(320px,82vw);display:grid;gap:10px;padding:12px;border:1px solid #d9e3f1;border-radius:10px;background:#fff;box-shadow:0 18px 42px #14233c33}.widget-menu-panel label,.widget-menu-grid{display:grid;gap:6px;color:#536075;font-size:12px;font-weight:800}.widget-menu-panel input,.widget-menu-panel select{width:100%;min-height:36px;border:1px solid #d7deea;border-radius:8px;padding:0 10px;background:#fff;color:#1b2a41}.widget-title-input{font-family:Segoe UI,Arial,sans-serif;ime-mode:active}.widget-menu-panel input[type=range]{padding:0;accent-color:#1473e6}.widget-size-stepper{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.widget-size-stepper button{min-height:32px;border:1px solid #d7deea;border-radius:7px;background:#f8fafc;color:#334155;font-size:11px;font-weight:900;cursor:pointer}.widget-size-stepper button:hover{border-color:#c7d7eb;background:#eef4ff}.widget-menu-danger{justify-content:center}.dashboard-empty-canvas{border:1px dashed #aac2df;border-radius:10px;background:#ffffffb8;color:#24527f;min-height:76px;display:grid;place-items:center;align-content:center;gap:7px;font-weight:800}.dashboard-empty-canvas{grid-column:1 / -1;min-height:220px;cursor:pointer}.dashboard-gauge{height:100%;display:grid;place-items:center;align-content:center;gap:4px;text-align:center;min-height:0;padding:6px 4px 4px}.dashboard-gauge--compact{gap:1px}.dashboard-gauge span{color:#657289;font-weight:800;overflow:hidden;text-overflow:ellipsis;max-width:100%}.dashboard-gauge strong{font-size:calc(clamp(22px,5cqw,54px) * var(--gauge-font-scale, 1));line-height:1}.dashboard-gauge--compact strong{font-size:calc(clamp(22px,7cqw,42px) * var(--gauge-font-scale, 1))}.dashboard-gauge small{color:#657289;font-weight:800}@media(max-width:1280px){.dashboard-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.dashboard-widget{grid-column:span 6!important}}@media(max-width:760px){.dashboard-grid{grid-template-columns:1fr}.dashboard-widget{grid-column:span 1!important}.dashboard-create-tools{grid-template-columns:1fr}.dashboard-icon-actions{grid-column:1;justify-content:flex-start}.dashboard-add-menu__panel{left:0;right:auto}}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;min-width:0}.form-grid--four{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.form-grid label{display:grid;gap:7px;color:#536075;font-size:12px;font-weight:700}.wide-field,.form-grid--four .wide-field{grid-column:span 2}.form-action{align-self:end;justify-content:center;min-height:42px}.report-action-grid{align-items:end}.reports-workspace,.reports-tab-panel{display:grid;gap:14px;margin-bottom:16px}.reports-generate-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}.reports-generate-grid .panel{display:grid;align-content:start;gap:10px}.report-history-panel{border-top:4px solid #1473e6}.mini-table{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px;min-width:0}.mini-table button{border:1px solid #d7deea;background:#f8fafc;border-radius:8px;display:grid;gap:2px;min-width:min(150px,100%);max-width:100%;padding:9px 11px;text-align:left;color:#263244}.mini-table button span,.mini-table button strong{overflow-wrap:anywhere}.mini-table span,.muted{color:#66758c}.muted{margin-top:-4px}.control-bar{display:grid;gap:12px;margin-bottom:16px}.gateway-control-bar{grid-template-columns:minmax(220px,1fr) minmax(220px,1fr)}.control-bar label,.adapter-console label{display:grid;gap:6px;color:#52627a;font-size:13px;font-weight:800}.control-bar select,.adapter-console textarea{width:100%}.two-column-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:16px}.stack-list{display:grid;gap:10px}.stack-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border:1px solid #e3e9f3;border-radius:8px;padding:12px;background:#fff}.stack-row small{display:block;color:#66758c;margin-top:4px}.baseline-recommendation{margin:14px 0}.baseline-bars{display:grid;grid-template-columns:repeat(48,minmax(10px,1fr));gap:5px;min-height:180px;align-items:end;margin-top:16px;padding-top:12px;border-top:1px solid #e3e9f3}.baseline-bar{display:grid;gap:6px;justify-items:center;min-width:0}.baseline-bar__fill{width:100%;max-width:18px;min-height:4px;border-radius:999px 999px 4px 4px;background:#94a3b8}.baseline-bar__fill--normal{background:#38bdf8}.baseline-bar__fill--medium{background:#f59e0b}.baseline-bar__fill--high{background:#ef4444}.baseline-bar small{color:#66758c;font-size:10px}.issue-text{color:#66758c}.issue-text--blocked,.issue-text--critical{color:#b91c1c}.issue-text--warning{color:#b45309}.adapter-console{display:grid;grid-template-columns:minmax(360px,1fr) minmax(360px,1fr);gap:16px;align-items:start}.adapter-console textarea{min-height:430px;resize:vertical;font-family:Cascadia Mono,Consolas,monospace;font-size:13px;line-height:1.5}.adapter-console__result{display:grid;gap:12px}.test-result{display:grid;gap:10px}.test-result pre{max-height:360px;overflow:auto;border:1px solid #e3e9f3;border-radius:8px;padding:12px;background:#f8fafc;color:#263244;font-size:12px}.wizard-progress-card{display:grid;justify-items:end;gap:2px;color:#66758c}.wizard-progress-card strong{color:#172033;font-size:28px}.wizard-progress-card small{color:#66758c;font-size:12px}.wizard-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:18px;align-items:start}.wizard-steps{display:grid;gap:8px;position:sticky;top:18px}.wizard-step{border:1px solid #d8e1ee;border-radius:8px;background:#fff;color:#52627a;display:flex;align-items:center;gap:10px;padding:13px 14px;font-weight:800;cursor:pointer}.wizard-step--active{background:#12345b;border-color:#12345b;color:#fff}.wizard-step--done{border-color:#bbf7d0;background:#f0fdf4;color:#166534}.wizard-panel{min-width:0}.wizard-card{display:grid;gap:14px}.wizard-action{justify-self:start}.wizard-payload{width:100%;min-height:420px;resize:vertical;font-family:Cascadia Mono,Consolas,monospace;font-size:13px;line-height:1.5}.wizard-test-result{display:grid;gap:8px;border:1px solid #e3e9f3;border-radius:8px;padding:12px;background:#f8fafc}.wizard-finish-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.wizard-check{display:flex;align-items:center;gap:9px;border:1px solid #e3e9f3;border-radius:8px;padding:12px;color:#66758c;background:#fff}.wizard-check--done{border-color:#bbf7d0;background:#f0fdf4;color:#166534;font-weight:800}.onboarding-checklist{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px}.onboarding-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid #e3e9f3;border-left:5px solid #f59e0b;border-radius:8px;padding:12px;background:#fff}.onboarding-item--done{border-left-color:#17a673}.onboarding-item--blocked{border-left-color:#ef4444}.onboarding-item__icon{display:grid;place-items:center;width:36px;height:36px;border-radius:8px;background:#eef4ff;color:#1455ad}.onboarding-item strong,.onboarding-item small{display:block}.onboarding-item small{color:#66758c}.onboarding-handover{box-shadow:none}.onboarding-next-actions{display:flex;flex-wrap:wrap;gap:8px}.hourly-bars{display:grid;grid-template-columns:repeat(24,minmax(18px,1fr));gap:8px;min-height:280px;align-items:end;padding-top:14px}.hourly-bar{display:grid;gap:7px;min-width:0;justify-items:center}.hourly-bar__plot{position:relative;width:100%;height:220px;border-bottom:1px solid #dbe5f2;background:linear-gradient(180deg,#e2e8f080,#f8fafc33);border-radius:6px 6px 0 0}.hourly-bar__avg,.hourly-bar__peak{position:absolute;bottom:0;border-radius:6px 6px 0 0}.hourly-bar__peak{left:18%;width:64%;background:#fecaca}.hourly-bar__avg{left:28%;width:44%;background:#1473e6}.hourly-bar small{color:#66758c;font-size:11px}.site-line-panel{margin-top:16px}.single-line-diagram{display:grid;gap:10px;padding:16px;border:1px solid #e2e8f0;border-radius:12px;background:linear-gradient(90deg,rgba(20,115,230,.05) 1px,transparent 1px),linear-gradient(180deg,rgba(20,115,230,.04) 1px,transparent 1px),#f8fafc;background-size:28px 28px}.single-line-layer{display:flex;justify-content:center;min-width:0}.single-line-layer--devices{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;align-items:stretch}.single-line-connector{width:2px;height:24px;background:#64748b;justify-self:center;border-radius:999px}.single-line-bus{display:flex;align-items:center;justify-content:center;height:12px}.single-line-bus span{display:block;width:min(720px,80%);height:3px;border-radius:999px;background:linear-gradient(90deg,#1473e6,#17a673)}.device-node{display:flex;align-items:center;gap:12px;min-width:0;width:100%;max-width:420px;padding:14px;border:1px solid #dbe3ee;border-radius:10px;background:#fff;box-shadow:0 10px 24px #0f172a0f}.device-node strong,.device-node small{display:block;min-width:0;overflow-wrap:anywhere}.device-node strong{color:#172033;font-size:15px}.device-node small{color:#66758c;margin-top:3px;font-size:12px}.device-node__icon{display:grid;place-items:center;width:44px;height:44px;flex:0 0 auto;border-radius:10px;color:#fff;background:#1473e6}.device-node--site{border-color:#b7d4ff;background:#f7fbff}.device-node--gateway .device-node__icon{background:#0f766e}.device-node--meter .device-node__icon{background:#7c3aed}.device-node--empty{border-style:dashed;background:#ffffffb8}.device-node--empty .device-node__icon{background:#94a3b8}@media(max-width:1180px){.app-shell,.app-shell--sidebar-collapsed{grid-template-columns:1fr}.sidebar{position:static;flex-direction:row;align-items:center;overflow-x:auto}.sidebar--collapsed{align-items:center;padding:14px 12px}.sidebar--collapsed .brand{display:flex}.sidebar--collapsed .brand-copy,.sidebar--collapsed .nav-label{display:inline}.sidebar--collapsed .nav-section button{width:auto;height:auto;padding:11px 12px}.sidebar nav{display:flex;align-items:stretch;gap:10px}.nav-section{display:flex;align-items:center}.nav-section-title,.sidebar-status-card,.sidebar-select,.sidebar-footer{display:none}.metric-grid,.skeleton-grid,.content-grid,.two-column-grid,.reports-generate-grid,.adapter-console,.admin-layout,.wizard-layout{grid-template-columns:repeat(2,minmax(0,1fr))}.panel--wide{grid-column:span 2}}@media(max-width:760px){.app-shell,.app-shell--sidebar-collapsed{grid-template-columns:1fr}.sidebar,.sidebar--collapsed{position:sticky;top:0;z-index:90;display:grid;grid-template-columns:1fr;align-items:stretch;padding:10px 12px;border-right:0;border-bottom:1px solid rgba(255,255,255,.08);overflow:visible}.sidebar .brand,.sidebar--collapsed .brand{display:flex;justify-content:space-between;justify-items:stretch;width:100%}.sidebar--collapsed nav,.sidebar--collapsed .sidebar-select,.sidebar--collapsed .sidebar-status-card,.sidebar--collapsed .sidebar-footer{display:none}.sidebar--collapsed .brand-copy{display:block}.sidebar nav{display:grid;max-height:calc(100vh - 86px);overflow-y:auto;padding:12px 0 0}.nav-section{display:grid}.nav-section-title{display:block}.sidebar button,.sidebar--collapsed .nav-section button{width:100%;height:auto;justify-content:flex-start;padding:11px 12px}.sidebar-toggle{width:40px!important;height:40px!important;justify-content:center!important}.page{padding:16px}.page-header,.panel-header{display:grid;gap:12px}.page-header h1{font-size:clamp(26px,8vw,40px)}.panel,.metric-card{border-radius:8px}.control-strip,.control-bar,.metric-grid,.skeleton-grid,.metric-grid--four,.content-grid,.admin-grid,.admin-layout,.two-column-grid,.reports-generate-grid,.adapter-console,.wizard-layout,.form-grid,.form-grid--four{grid-template-columns:1fr}.admin-tabs{position:static}.hourly-bars,.baseline-bars{grid-template-columns:repeat(12,minmax(18px,1fr))}.data-table{overflow-x:auto;-webkit-overflow-scrolling:touch}.data-table__head,.data-table__row{min-width:680px}.alarm-table{min-width:820px}.alarm-table--ops{min-width:1080px}.report-table,.site-table,.meter-table,.gateway-table,.payload-table,.dead-letter-table,.backup-table,.retention-table,.notification-table,.audit-table,.security-table,.tenant-table__row{min-width:860px}.cost-table,.tariff-editor-table{min-width:720px}.chart-controls,.axis-controls,.segmented{width:100%}.axis-controls{grid-template-columns:1fr}.segmented{overflow-x:auto;justify-content:flex-start}.panel--wide,.wide-field,.form-grid--four .wide-field{grid-column:span 1}}
