*{box-sizing:border-box;margin:0;padding:0}:root{--accent:#3b82f6;--accent-glow:#3b82f638;--accent-dim:#3b82f61a;--accent-border:#3b82f657;--accent-secondary:#60a5fa;--accent-soft:#93c5fd;--bg:#000;--surface:#ffffff08;--surface-2:#ffffff0d;--border:#1a1f2b;--border-strong:#93c5fd29;--text:#e6edf3;--muted:#8b98a5;--success:#2ecc71;--error:#ff4d4f;--warning:#60a5fa;--panel-bg:#0a0e16e0;--panel-bg-elevated:#101624f0;--panel-bg-soft:#ffffff08;--input-bg:#ffffff0d;--panel-spot:#3b82f614;--panel-spot-strong:#3b82f624;--panel-shadow:0 18px 42px #00000080;--panel-shadow-soft:0 12px 28px #0000005c;--panel-inset:inset 0 0 0 1px #ffffff0a;--chip-bg:#3b82f61a;--chip-border:#3b82f642;--chip-text:#93c5fd;--meter-high:var(--accent);--meter-mid:var(--accent-soft);--chart-text:#e6edf3;--chart-muted:#8b98a5;--chart-grid:#93c5fd14;--chart-tooltip-bg:#0a0e16f5;--chart-tooltip-text:#e6edf3;--chart-tooltip-border:#3b82f647;--ring-track:#93c5fd14;--topbar-bg:#000000e6;--topbar-border:#3b82f62e;--topbar-shadow:#3b82f61a;--sidebar-bg:#0a0e16f5;--sidebar-border:#3b82f624;--grid-line:#3b82f609;--scan-line:#3b82f6b3;--sidebar-width:260px}*{scrollbar-width:thin;scrollbar-color:var(--accent) #ffffff14}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#ffffff0f;border-radius:999px}::-webkit-scrollbar-thumb{background:linear-gradient(180deg, var(--accent), var(--accent-secondary));border:2px solid color-mix(in srgb, var(--bg) 65%, transparent);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg, var(--accent-secondary), var(--accent))}::-webkit-scrollbar-corner{background:#ffffff0f}html,body{background:var(--bg);height:100%;color:var(--text);font-family:Poppins,sans-serif;overflow-x:hidden}html,body,.topbar,.sidebar,.card,.stat-card,.modal,.btn,.btn-primary,.btn-secondary,.btn-danger,.table tr,.row-menu-list,.hero-kpi,.dashboard-chart-card,.dashboard-activity-card,input,textarea,select{transition:background-color .22s,border-color .22s,color .22s,box-shadow .22s}#bg-canvas{z-index:0;pointer-events:none;position:fixed;inset:0}.grid-overlay{z-index:1;background-image:linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);pointer-events:none;background-size:48px 48px;position:fixed;inset:0}.scan-line{z-index:2;background:linear-gradient(90deg, transparent, var(--scan-line), transparent);opacity:.12;pointer-events:none;height:2px;animation:8s linear infinite scan;position:fixed;left:0;right:0}@keyframes scan{0%{top:-2px}to{top:100vh}}.app-shell{z-index:10;min-height:calc(100vh - 72px);position:relative}.topbar{z-index:30;background:var(--topbar-bg);border-bottom:1px solid var(--topbar-border);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);height:72px;box-shadow:0 1px 0 var(--topbar-shadow);justify-content:space-between;align-items:center;gap:16px;padding:0 24px;display:flex;position:fixed;top:0;left:0;right:0}.topbar-left{flex-shrink:0;align-items:center;gap:12px;display:flex}.sidebar-theme-toggle{border-top:1px solid var(--border);margin-top:auto;padding:12px 10px}.sidebar-theme-label{color:var(--muted,#8b98a5);text-transform:uppercase;letter-spacing:.75px;padding:0 4px 8px;font-family:Public Sans,sans-serif;font-size:10px;font-weight:600;display:block}.theme-toggle-btn{border:1px solid var(--accent-border);background:var(--accent-dim);width:100%;color:var(--accent-soft);cursor:pointer;letter-spacing:.25px;border-radius:10px;justify-content:flex-start;align-items:center;gap:10px;padding:10px 14px;font-family:Public Sans,sans-serif;font-size:12px;font-weight:600;transition:background .18s,border-color .18s,box-shadow .18s,color .18s;display:flex}.theme-toggle-icon{justify-content:center;align-items:center;display:inline-flex}.theme-toggle-label{white-space:nowrap;font-weight:600}.sidebar-logout{border-top:1px solid var(--border);padding:10px}.sidebar-logout-btn{border:1px solid var(--border);width:100%;color:var(--text);cursor:pointer;background:0 0;border-radius:10px;align-items:center;gap:10px;padding:10px 14px;font-family:Public Sans,sans-serif;font-size:13px;font-weight:600;transition:border-color .18s,color .18s,background .18s;display:flex}.sidebar-logout-btn:hover{border-color:var(--accent-border);background:var(--accent-dim);color:var(--accent-soft)}.sidebar-logout-label{white-space:nowrap}.theme-toggle-btn:hover{background:var(--accent-dim);border-color:var(--accent);color:var(--text);box-shadow:0 0 14px var(--accent-glow)}.icon-btn{border:1px solid var(--border);width:38px;height:38px;color:var(--text);cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;font-size:18px;transition:border-color .15s,color .15s;display:flex}.icon-btn:hover{border-color:var(--accent);color:var(--accent)}.logo{align-items:center;gap:10px;font-family:Poppins,sans-serif;font-size:22px;font-weight:800;line-height:30px;display:flex}.logo-sub{color:var(--muted);margin-top:1px;font-family:Poppins,sans-serif;font-size:11px}.logo-icon{background-position:50%;background-repeat:no-repeat;background-size:contain;background-image:var(--tenant-logo-url,var(--default-logo-url));width:30px;height:30px}html[data-theme=dark] .logo-icon{--default-logo-url:url(/assets/logo_dark.png)}html[data-theme=light] .logo-icon{--default-logo-url:url(/assets/logo_light.png)}html:not([data-theme]) .logo-icon{--default-logo-url:url(/assets/logo_dark.png)}.user-menu{flex-shrink:0;align-items:center;gap:12px;display:flex}.user-role-badge{letter-spacing:.7px;text-transform:uppercase;color:var(--accent);border:1px solid var(--accent-border);background:var(--accent-dim);border-radius:999px;padding:4px 8px;font-family:Public Sans,sans-serif;font-size:10px;font-weight:600}.user-name{text-overflow:clip;white-space:nowrap;max-width:none;color:var(--text);font-size:13px;overflow:hidden}.btn{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:8px;padding:9px 14px;font-size:13px;transition:border-color .15s,color .15s}.btn:hover{border-color:var(--accent);color:var(--accent)}.sidebar{width:var(--sidebar-width);z-index:25;background:var(--sidebar-bg);border-right:1px solid var(--sidebar-border);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);flex-direction:column;padding:16px 12px 24px;transition:transform .22s;display:flex;position:fixed;top:72px;bottom:0;left:0;overflow-y:auto}.sidebar-backdrop{z-index:24;opacity:0;pointer-events:none;background:#050a146b;border:0;transition:opacity .22s;position:fixed;inset:72px 0 0}.sidebar-backdrop.show{opacity:1;pointer-events:auto}.nav-group-title{color:var(--muted);text-transform:uppercase;letter-spacing:.75px;opacity:.78;margin-top:4px;padding:4px 12px 10px;font-family:Public Sans,sans-serif;font-size:10px;font-weight:600}.nav-link{color:var(--muted);border:1px solid #0000;border-radius:8px;align-items:center;gap:10px;margin-bottom:4px;padding:10px 12px;font-size:13.5px;font-weight:500;text-decoration:none;transition:color .15s,background .15s,border-color .15s;display:flex}.nav-link:hover{border-color:var(--border);background:var(--surface);color:var(--text)}.nav-link.active{border-color:var(--accent-border);background:var(--accent-dim);color:var(--text);box-shadow:inset 3px 0 0 var(--accent)}.nav-icon{opacity:.9;flex:0 0 14px;width:14px;height:14px}.nav-label{white-space:nowrap}.sidebar.collapsed{width:86px;padding-left:12px;padding-right:12px;transform:translate(0)}.sidebar.collapsed .nav-group-title,.sidebar.collapsed .sidebar-theme-label,.sidebar.collapsed .theme-toggle-label,.sidebar.collapsed .sidebar-logout-label{display:none}.sidebar.collapsed .nav-link,.sidebar.collapsed .theme-toggle-btn,.sidebar.collapsed .sidebar-logout-btn{justify-content:flex-start;gap:10px;padding-left:12px;padding-right:12px}.sidebar.collapsed .nav-label{display:none}.sidebar.collapsed .sidebar-theme-toggle,.sidebar.collapsed .sidebar-logout{padding-left:4px;padding-right:4px}@media (width>=1025px){.app-shell.sidebar-collapsed .content{margin-left:86px}}.content{margin-top:72px;margin-left:0;padding:24px;transition:none}.content.expanded{margin-left:0}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.page-title{font-family:Poppins,sans-serif;font-size:28px}.page-subtitle{color:var(--muted);margin-top:4px;font-size:13px}.card{background:var(--panel-bg);border:1px solid var(--border);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:var(--panel-shadow), var(--panel-inset);border-radius:16px;margin-bottom:18px;padding:22px;animation:.6s cubic-bezier(.22,1,.36,1) both card-in;position:relative;overflow:hidden}.card:before,.card:after{content:"";pointer-events:none;width:18px;height:18px;position:absolute}.card:before{border-top:2px solid var(--accent);border-left:2px solid var(--accent);border-radius:16px 0 0;top:0;left:0}.card:after{border-bottom:2px solid var(--accent);border-right:2px solid var(--accent);border-radius:0 0 16px;bottom:0;right:0}@keyframes card-in{0%{opacity:0;transform:translateY(24px)scale(.97)}to{opacity:1;transform:translateY(0)}}.section-header{margin-bottom:12px;font-family:Poppins,sans-serif;font-size:18px}.back-link{color:var(--accent);font-size:13px;text-decoration:none}.info-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.info-item{border:1px solid var(--border);background:#ffffff04;border-radius:10px;padding:12px}.info-label{color:var(--muted);text-transform:uppercase;letter-spacing:.8px;margin-bottom:4px;font-size:11px}.info-value{font-size:14px}.form-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.form-group{margin-bottom:14px}label{color:var(--muted);text-transform:uppercase;letter-spacing:.8px;margin-bottom:8px;font-size:12px;display:block}input,textarea,select{background:var(--panel-bg-soft);border:1px solid var(--border-strong);width:100%;color:var(--text);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;caret-color:var(--text);border-radius:8px;outline:none;padding:10px 12px;font-family:Poppins,sans-serif}@media (prefers-color-scheme:dark){input,textarea,select{--lightningcss-light: ;--lightningcss-dark:initial}}select,select option,select optgroup{background-color:var(--panel-bg-elevated);color:var(--text)}input:-webkit-autofill{-webkit-text-fill-color:var(--text);-webkit-box-shadow:0 0 0 1000px var(--panel-bg-soft) inset;box-shadow:0 0 0 1000px var(--panel-bg-soft) inset;caret-color:var(--text);transition:background-color 99999s ease-in-out}input:-webkit-autofill:hover{-webkit-text-fill-color:var(--text);-webkit-box-shadow:0 0 0 1000px var(--panel-bg-soft) inset;box-shadow:0 0 0 1000px var(--panel-bg-soft) inset;caret-color:var(--text);transition:background-color 99999s ease-in-out}input:-webkit-autofill:focus{-webkit-text-fill-color:var(--text);-webkit-box-shadow:0 0 0 1000px var(--panel-bg-soft) inset;box-shadow:0 0 0 1000px var(--panel-bg-soft) inset;caret-color:var(--text);transition:background-color 99999s ease-in-out}textarea:-webkit-autofill{-webkit-text-fill-color:var(--text);-webkit-box-shadow:0 0 0 1000px var(--panel-bg-soft) inset;box-shadow:0 0 0 1000px var(--panel-bg-soft) inset;caret-color:var(--text);transition:background-color 99999s ease-in-out}textarea:-webkit-autofill:hover{-webkit-text-fill-color:var(--text);-webkit-box-shadow:0 0 0 1000px var(--panel-bg-soft) inset;box-shadow:0 0 0 1000px var(--panel-bg-soft) inset;caret-color:var(--text);transition:background-color 99999s ease-in-out}textarea:-webkit-autofill:focus{-webkit-text-fill-color:var(--text);-webkit-box-shadow:0 0 0 1000px var(--panel-bg-soft) inset;box-shadow:0 0 0 1000px var(--panel-bg-soft) inset;caret-color:var(--text);transition:background-color 99999s ease-in-out}select:-webkit-autofill{-webkit-text-fill-color:var(--text);-webkit-box-shadow:0 0 0 1000px var(--panel-bg-soft) inset;box-shadow:0 0 0 1000px var(--panel-bg-soft) inset;caret-color:var(--text);transition:background-color 99999s ease-in-out}select:-webkit-autofill:hover{-webkit-text-fill-color:var(--text);-webkit-box-shadow:0 0 0 1000px var(--panel-bg-soft) inset;box-shadow:0 0 0 1000px var(--panel-bg-soft) inset;caret-color:var(--text);transition:background-color 99999s ease-in-out}select:-webkit-autofill:focus{-webkit-text-fill-color:var(--text);-webkit-box-shadow:0 0 0 1000px var(--panel-bg-soft) inset;box-shadow:0 0 0 1000px var(--panel-bg-soft) inset;caret-color:var(--text);transition:background-color 99999s ease-in-out}:is(input:-moz-autofill,textarea:-moz-autofill,select:-moz-autofill){box-shadow:0 0 0 1000px var(--panel-bg-soft) inset;-moz-text-fill-color:var(--text)}textarea{resize:vertical;min-height:110px}input:focus,textarea:focus,select:focus{border-color:var(--accent);background:var(--accent-dim);box-shadow:0 0 0 3px var(--accent-glow)}:-webkit-any(input:-webkit-autofill:focus,textarea:-webkit-autofill:focus,select:-webkit-autofill:focus){-webkit-box-shadow:0 0 0 1000px var(--accent-dim) inset;box-shadow:0 0 0 1000px var(--accent-dim) inset}:is(input:autofill:focus,textarea:autofill:focus,select:autofill:focus){-webkit-box-shadow:0 0 0 1000px var(--accent-dim) inset;box-shadow:0 0 0 1000px var(--accent-dim) inset}.btn-primary{background:var(--accent);color:#060a14;letter-spacing:.4px;cursor:pointer;border:none;border-radius:8px;padding:10px 16px;font-family:Poppins,sans-serif;font-weight:700;transition:opacity .2s,transform .15s,box-shadow .25s;position:relative;overflow:hidden}.btn-primary:after{content:"";pointer-events:none;background:linear-gradient(135deg,#ffffff26,#0000);position:absolute;inset:0}.btn-primary:hover{opacity:.92;box-shadow:0 4px 24px var(--accent-glow)}.btn.btn-primary:hover,.btn.btn-primary:focus-visible{color:#060a14}.btn-secondary{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:8px;padding:10px 14px}.btn-danger{border:1px solid var(--error);color:var(--error);cursor:pointer;background:0 0;border-radius:8px;padding:10px 14px}.btn-sm{padding:6px 10px;font-size:12px}.filters-bar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:18px;display:flex}.filter-input,.filter-select{background:var(--panel-bg-soft);border:1px solid var(--border);color:var(--text);border-radius:10px;width:auto;max-width:100%;padding:9px 13px;font-family:Poppins,sans-serif;font-size:13px;transition:border-color .2s,background-color .2s,box-shadow .2s}.filter-input:hover,.filter-select:hover{border-color:var(--border-strong);background:var(--surface-2)}.filter-input:focus,.filter-select:focus{border-color:var(--accent);box-shadow:0 0 12px var(--accent-glow);background:#ffffff0d;outline:none}.filter-input::placeholder{color:var(--muted)}input[type=search],input[type=text],input[type=email],input[type=number],input[type=date],input[type=time],select{background:var(--panel-bg-soft);border:1px solid var(--border);color:var(--text);border-radius:10px;padding:9px 13px;font-family:Poppins,sans-serif;font-size:13px;transition:border-color .2s,background-color .2s,box-shadow .2s}input:hover,select:hover{border-color:var(--border-strong);background:var(--surface-2)}input:focus,select:focus{border-color:var(--accent);background:var(--accent-dim);box-shadow:0 0 12px var(--accent-glow);outline:none}input::placeholder{color:var(--muted)}select{cursor:pointer}.filter-input{flex:320px;min-width:220px}.filter-select{flex:0 220px;min-width:170px}.table-wrap{z-index:1;border:1px solid var(--border);background:linear-gradient(180deg, color-mix(in srgb, var(--panel-bg) 74%, transparent), color-mix(in srgb, var(--panel-bg) 64%, transparent));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;position:relative;overflow-x:auto}.table{border-collapse:collapse;background:0 0;width:100%;font-size:13px}.table thead{background:color-mix(in srgb, var(--panel-bg-elevated) 62%, transparent);z-index:2;position:sticky;top:0}:is(.card:has(.table-wrap),.card:has(.activity-table),.dashboard-activity-card,.consumer-block:has(.table-wrap)){-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(180deg, color-mix(in srgb, var(--panel-bg) 76%, transparent), color-mix(in srgb, var(--panel-bg) 66%, transparent))!important}.table th,.table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;padding:13px 14px;font-weight:400}.table th{color:var(--muted);text-transform:uppercase;letter-spacing:.75px;padding:14px;font-size:11px;font-weight:600}.table td{color:var(--text)}.table tbody tr{transition:background-color .18s}.table tbody tr:hover{background:#3b82f60d}.table tbody tr:last-child td{border-bottom:none}.table th:last-child,.table td:last-child{text-align:center;white-space:nowrap;min-width:80px;padding:13px 14px}.table th:last-child{padding:14px}.table th:nth-child(3),.table td:nth-child(3),.table th:nth-child(4),.table td:nth-child(4),.table th:nth-child(5),.table td:nth-child(5){text-align:center;padding:13px 8px}.table td{text-overflow:ellipsis;overflow:hidden}.table-footer{color:var(--muted);text-align:right;margin-top:14px;padding-right:4px;font-size:12px}.table .actions{text-align:center;white-space:nowrap;width:60px;padding:11px 8px!important}.company-consumers-table{table-layout:fixed;min-width:850px}.company-consumers-table th:first-child,.company-consumers-table td:first-child{text-align:left;width:22%}.company-consumers-table th:nth-child(2),.company-consumers-table td:nth-child(2){text-align:left;width:20%}.company-consumers-table th:nth-child(3),.company-consumers-table td:nth-child(3){text-align:left;width:15%}.company-consumers-table th:nth-child(4),.company-consumers-table td:nth-child(4),.company-consumers-table th:nth-child(5),.company-consumers-table td:nth-child(5){text-align:center;width:16%}.company-consumers-table th:nth-child(6),.company-consumers-table td:nth-child(6){text-align:center;width:11%}.company-consumers-table .actions{width:11%}.sub-table{table-layout:fixed}@media (width<=900px){.table th,.table td{padding:10px 8px;font-size:12px}.table th{letter-spacing:.5px;font-size:10px}}.sub-table th,.sub-table td{white-space:nowrap}.sub-table th{text-transform:none;letter-spacing:0;font-size:12px}.sub-table td{font-size:13px}.row-menu{vertical-align:middle;z-index:10;align-items:center;display:inline-flex;position:relative}.row-menu-trigger{border:1px solid var(--border);background:var(--surface);width:32px;height:32px;color:var(--text);cursor:pointer;vertical-align:middle;border-radius:8px;justify-content:center;align-items:center;padding:0;font-size:18px;line-height:1;display:flex}.row-menu-trigger:hover{border-color:var(--accent);color:var(--accent)}.row-menu-list{z-index:9999;background:var(--panel-bg-elevated);border:1px solid var(--border);min-width:170px;box-shadow:var(--panel-shadow-soft);border-radius:10px;flex-direction:column;display:none;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden}.row-menu.open .row-menu-list{display:flex}.row-menu.open-up .row-menu-list{top:auto;bottom:calc(100% + 6px)}.row-menu.align-left .row-menu-list{left:0;right:auto}.row-menu-item{text-align:left;border:0;border-bottom:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;padding:9px 12px;font-size:12px;text-decoration:none}.row-menu-item:last-child{border-bottom:0}.row-menu-item:hover{color:var(--text);background:#3b82f61a}.row-menu-item.danger{color:var(--error)}.row-menu-item.danger:hover{color:#ff9696;background:#ff4e4e1f}.msg{border-radius:8px;margin-bottom:12px;padding:10px 12px;font-size:13px;display:none}.msg.success{color:var(--success);background:#00e87a14;border:1px solid #00e87a4d;display:block}.msg.error{color:var(--error);background:#ff4e4e14;border:1px solid #ff4e4e4d;display:block}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px;display:grid}.stat-card{border:1px solid var(--border);background:var(--surface);border-radius:12px;padding:14px 16px;transition:border-color .2s,box-shadow .2s,background .2s;position:relative}.stat-card:hover{border-color:var(--accent-border);box-shadow:0 0 16px var(--accent-glow);background:var(--surface-2)}.stat-label{color:var(--muted);text-transform:uppercase;letter-spacing:.8px;margin-bottom:4px;font-size:11px}.stat-value{font-family:Poppins,sans-serif;font-size:24px}.stat-icon{opacity:.5;position:absolute;top:10px;right:10px}.pill{border:1px solid var(--border);color:var(--muted);text-transform:uppercase;letter-spacing:.6px;border-radius:999px;padding:3px 8px;font-size:10px;display:inline-block}.pill.active,.pill.subscribed{color:var(--success);border-color:color-mix(in srgb, var(--success) 35%, transparent);background:color-mix(in srgb, var(--success) 8%, transparent)}.pill.inactive{color:#6b7a99}.pill.deployed{color:var(--chip-text);border-color:var(--chip-border);background:var(--chip-bg)}.pill.undeployed{color:#9aa7bf}.modal-overlay{z-index:120;background:color-mix(in srgb, var(--bg) 36%, #00000073);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);justify-content:center;align-items:center;padding:16px;display:none;position:fixed;inset:0}.modal-overlay.open{display:flex}.modal-overlay.open.fullscreen-mode{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;justify-content:stretch;align-items:stretch;padding:0}.modal{background:var(--panel-bg-elevated);border:1px solid var(--border);width:100%;max-width:620px;max-height:calc(100vh - 40px);box-shadow:var(--panel-shadow-soft), var(--panel-inset);border-radius:12px;padding:18px;overflow:auto}.modal.wide{max-width:760px}.modal.fullscreen{width:100%!important;max-width:100vw!important;height:100vh!important;max-height:100vh!important;box-shadow:none!important;border:none!important;border-radius:0!important;flex-direction:column!important;margin:0!important;padding:0!important;display:flex!important}.modal.fullscreen .modal-header{border-bottom:1px solid var(--border);background:var(--panel-bg-soft);flex-shrink:0;padding:12px 16px}.modal.fullscreen .modal-header .modal-title{font-size:18px}.modal.fullscreen>:not(.modal-header):not(.modal-footer){flex:auto;min-height:0;overflow:auto}.modal.fullscreen .modal-footer{border-top:1px solid var(--border);background:var(--panel-bg-soft);flex-shrink:0;margin-top:0;padding:12px 16px}.modal-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.modal-title{font-family:Poppins,sans-serif;font-size:20px}.modal-close{border:1px solid var(--border);width:32px;height:32px;color:var(--text);cursor:pointer;background:0 0;border-radius:8px}.modal-footer{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:8px;padding-top:12px;display:flex}.empty-state{border:1px dashed var(--border);color:var(--muted);text-align:center;border-radius:10px;padding:28px}@media (width<=980px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.form-row{grid-template-columns:1fr}.info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=768px){.topbar{gap:8px;padding:0 12px}.logo{font-size:18px}.sidebar{transform:translateX(calc(-1 * var(--sidebar-width)))}.sidebar:not(.hidden){transform:translate(0)}.sidebar.hidden.collapsed{width:var(--sidebar-width);transform:translateX(calc(-1 * var(--sidebar-width)));padding-left:12px;padding-right:12px}.content{margin-left:0;padding:18px 12px}.stats-grid,.info-grid{grid-template-columns:1fr}.user-role-badge{display:none}.filter-input,.filter-select{flex:100%;min-width:100%}}.dashboard-hero{background:radial-gradient(circle at top right, var(--panel-spot-strong), transparent 36%), radial-gradient(circle at bottom left, var(--panel-spot), transparent 34%), linear-gradient(180deg, color-mix(in srgb, var(--surface-2) 60%, transparent), color-mix(in srgb, var(--surface) 70%, transparent));grid-template-columns:1.3fr 1fr;gap:16px;margin-bottom:16px;display:grid}.dashboard-hero-main p{color:var(--muted);max-width:720px;margin-top:12px}.dashboard-eyebrow{border:1px solid var(--chip-border);text-transform:uppercase;letter-spacing:.68px;color:var(--chip-text);border-radius:999px;margin-bottom:12px;padding:4px 10px;font-family:Public Sans,sans-serif;font-size:10px;font-weight:600;display:inline-block}.hero-kpi{border:1px solid var(--border-strong);background:color-mix(in srgb, var(--panel-bg) 75%, transparent);border-radius:12px;padding:12px 14px}.hero-kpi strong{color:var(--text)}.dashboard-chart-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:4px;display:grid}.consumer-dashboard-page .dashboard-chart-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}.consumer-dashboard-page .chart-canvas-wrap{background:0 0;border-radius:0;padding:0}.consumer-device-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:14px;display:grid}.consumer-device-card{border:1px solid var(--border-strong);background:radial-gradient(circle at top right, var(--panel-spot-strong), transparent 46%), linear-gradient(180deg, color-mix(in srgb, var(--panel-bg-elevated) 88%, transparent), color-mix(in srgb, var(--panel-bg) 82%, transparent));min-width:0;height:100%;box-shadow:var(--panel-shadow-soft), var(--panel-inset);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.consumer-device-card.is-clickable{cursor:pointer;transition:border-color .14s,transform .14s}.consumer-device-card.is-clickable:hover{border-color:var(--accent);transform:translateY(-2px)}.consumer-device-card.is-clickable:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.consumer-device-card-header{border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--surface-2) 65%, transparent);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.consumer-device-id{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-family:Public Sans,sans-serif;font-size:17px;font-weight:700;overflow:hidden}.consumer-device-connection{color:var(--muted);white-space:nowrap;flex:none;align-items:center;gap:7px;font-size:11px;display:inline-flex}.consumer-device-connection-dot{border:2px solid #fffc;border-radius:50%;width:10px;height:10px;box-shadow:0 0 10px}.consumer-device-connection.online .consumer-device-connection-dot{color:#22c55e;background:#22c55e}.consumer-device-connection.stale .consumer-device-connection-dot{color:#f5c542;background:#f5c542}.consumer-device-connection.offline .consumer-device-connection-dot{color:#ef4444;background:#ef4444}.consumer-device-type{color:var(--muted);padding:12px 16px 4px;font-size:12px}.consumer-device-readings{flex:1 0 auto;padding:2px 16px 10px;display:grid}.consumer-device-reading{border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;gap:12px;padding:12px 0;display:flex}.consumer-device-reading:last-child{border-bottom:0}.consumer-device-reading-label{color:var(--muted);font-size:13px}.consumer-device-reading strong{color:var(--text);font-variant-numeric:tabular-nums;font-family:Public Sans,sans-serif;font-size:23px;font-weight:600}.consumer-device-timestamp{border-top:1px solid var(--border);color:var(--muted);flex:none;margin-top:auto;padding:10px 16px 13px;font-size:11px}.device-details-page{gap:18px;padding-bottom:24px;display:grid}.device-details-page-header{gap:14px;display:grid}.device-details-back{margin-bottom:12px}.device-details-title-row{justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.device-details-title-row h1{margin:0}.device-details-title-row p{color:var(--muted);margin:6px 0 0;font-size:13px}.device-details-loading{min-height:220px;color:var(--muted);place-items:center;display:grid}.device-details-kpis{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.device-details-kpi{border:1px solid var(--border-strong);background:linear-gradient(145deg, color-mix(in srgb, var(--panel-bg-elevated) 94%, #163451), var(--panel-bg));min-width:0;min-height:138px;box-shadow:var(--panel-shadow-soft), var(--panel-inset);border-radius:8px;align-content:space-between;gap:10px;padding:18px;display:grid;position:relative;overflow:hidden}.device-details-kpi-label{color:var(--muted);font-size:13px}.device-details-kpi strong{color:var(--text);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;font-family:Public Sans,sans-serif;font-size:28px;overflow:hidden}.device-details-kpi-foot{color:var(--muted);font-size:11px}.device-details-kpi-accent{width:3px;position:absolute;inset:0 auto 0 0}.device-details-history-section{gap:12px;display:grid}.device-details-section-header{justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.device-details-section-header h2{color:var(--text);margin:0;font-size:17px}.device-details-section-header p{color:var(--muted);margin:4px 0 0;font-size:12px}.device-history-chart-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.device-history-chart{border:1px solid var(--border-strong);background:linear-gradient(180deg, color-mix(in srgb, var(--panel-bg-elevated) 86%, transparent), var(--panel-bg));min-width:0;box-shadow:var(--panel-shadow-soft), var(--panel-inset);border-radius:8px;padding:16px}.device-history-chart-heading{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.device-history-chart-heading h3{color:var(--text);margin:0;font-size:13px}.device-history-chart-heading span{color:var(--muted);margin-top:4px;font-size:11px;display:block}.device-history-chart-heading strong{color:var(--text);font-variant-numeric:tabular-nums;flex:none;font-family:Public Sans,sans-serif;font-size:16px}.device-history-chart-canvas{min-width:0;height:230px;position:relative}.device-details-no-history{border:1px dashed var(--border-strong);min-height:160px;color:var(--muted);text-align:center;border-radius:8px;place-items:center;display:grid}.device-history-table-wrap{overflow-x:auto}.device-history-table{table-layout:fixed;min-width:760px}.device-history-table th,.device-history-table td{font-variant-numeric:tabular-nums;white-space:nowrap}.device-details-empty{color:var(--muted);text-align:center;padding:20px!important}@media (width<=640px){.device-details-kpis,.device-history-chart-grid{grid-template-columns:minmax(0,1fr)}.device-details-title-row{flex-direction:column;align-items:flex-start}}.dashboard-chart-card{background:radial-gradient(circle at top right, var(--panel-spot-strong), transparent 36%), linear-gradient(180deg, color-mix(in srgb, var(--surface-2) 55%, transparent), color-mix(in srgb, var(--surface) 65%, transparent));min-height:340px;margin-bottom:0;position:relative}.dashboard-chart-card.is-wide{grid-column:span 2}.dashboard-chart-card:after{content:"";background:radial-gradient(circle, var(--panel-spot-strong), transparent 70%);pointer-events:none;width:130px;height:130px;position:absolute;bottom:-34px;right:-34px}.chart-chip{border:1px solid var(--chip-border);background:var(--chip-bg);color:var(--chip-text);letter-spacing:.65px;text-transform:uppercase;white-space:nowrap;border-radius:999px;padding:6px 10px;font-family:Public Sans,sans-serif;font-size:10px;font-weight:600}.dashboard-activity-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px;display:grid}.dashboard-activity-card{min-height:0;margin-bottom:0;background:linear-gradient(180deg, color-mix(in srgb, var(--panel-bg) 76%, transparent), color-mix(in srgb, var(--panel-bg) 66%, transparent))!important}.activity-table th,.activity-table td{border-bottom:1px solid var(--border)}.stat-card.premium{background:linear-gradient(180deg, color-mix(in srgb, var(--surface-2) 55%, transparent), color-mix(in srgb, var(--surface) 70%, transparent)), radial-gradient(circle at top right, var(--panel-spot-strong), transparent 40%);border-color:var(--border-strong);box-shadow:var(--panel-inset);position:relative;overflow:hidden}.stat-card.premium:after{content:"";background:linear-gradient(90deg, color-mix(in srgb, var(--accent) 70%, transparent), color-mix(in srgb, var(--accent-secondary) 55%, transparent));height:2px;position:absolute;bottom:0;left:12px;right:12px}.stat-card.premium .stat-note{color:var(--muted);letter-spacing:.4px;margin-top:6px;font-family:Poppins,sans-serif;font-size:12px}@media (width<=980px){.dashboard-hero{grid-template-columns:1fr}.dashboard-chart-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=768px){.dashboard-chart-grid,.dashboard-activity-grid,.consumer-dashboard-page .dashboard-chart-grid{grid-template-columns:1fr}}.table-wrap>.table,.table-wrap>table{width:100%;min-width:100%}@media (width<=1024px){.table-wrap>.table,.table-wrap>table{width:max-content;min-width:100%}.topbar{flex-wrap:wrap;align-items:flex-start;height:auto;min-height:72px;padding:10px 14px}.topbar-left,.user-menu{width:100%}.user-menu{flex-wrap:wrap;justify-content:space-between;gap:8px}.page-header{flex-wrap:wrap;gap:10px}[style*="grid-template-columns: 1.3fr 1fr"],[style*="grid-template-columns:1.3fr 1fr"],[style*="grid-template-columns: 1fr 240px"],[style*="grid-template-columns:1fr 240px"]{grid-template-columns:1fr!important}[style*="grid-template-columns: repeat(4"],[style*="grid-template-columns:repeat(4"],[style*="grid-template-columns: repeat(3"],[style*="grid-template-columns:repeat(3"]{grid-template-columns:repeat(2,minmax(0,1fr))!important}}@media (width<=768px){.content{padding:16px 10px}.card{padding:14px}.table th,.table td{white-space:nowrap;padding:10px 8px;font-size:12px}.table-wrap{border-radius:10px}:is(.dashboard-activity-card,.card:has(.activity-table)){-webkit-overflow-scrolling:touch;overflow-x:auto}.activity-table{width:max-content;min-width:100%}.activity-table th,.activity-table td{white-space:nowrap}[style*="grid-template-columns: repeat(2"],[style*="grid-template-columns:repeat(2"]{grid-template-columns:1fr!important}[style*="min-width: 1200px"],[style*=min-width\:1200px]{min-width:880px!important}[style*="min-width: 1080px"],[style*=min-width\:1080px],[style*="min-width: 1040px"],[style*=min-width\:1040px],[style*="min-width: 980px"],[style*=min-width\:980px],[style*="min-width: 900px"],[style*=min-width\:900px]{min-width:760px!important}}@media (width<=1024px){.topbar{flex-wrap:nowrap;align-items:center;height:72px;min-height:72px;padding:0 12px}.topbar-left,.user-menu{width:auto}.user-menu{flex-wrap:nowrap;align-items:center;gap:10px;margin-left:auto}.user-name{max-width:96px}.sidebar{top:72px}.content{margin-top:72px}.nav-group-title{opacity:.86}}@media (width<=768px){.theme-toggle-label{display:inline}.theme-toggle-btn{justify-content:space-between;gap:8px}}@media (prefers-reduced-motion:reduce){.card,.stat-card,.scan-line{animation:none!important}html,body,.topbar,.sidebar,.card,.stat-card,.modal,.btn,.btn-primary,.btn-secondary,.btn-danger,.table tr,.row-menu-list,.hero-kpi,.dashboard-chart-card,.dashboard-activity-card,input,textarea,select{transition:none!important}}body{font-size:16px;line-height:1.55}.page-title{font-size:32px;line-height:1.2}label,.table-footer,.row-menu-item,.page-subtitle,.user-name,.nav-link,.filters-bar .filter-input,.filters-bar .filter-select,.filters-bar input,.filters-bar select,input,textarea,select,.btn,.btn-primary,.btn-secondary,.btn-danger,.table,.table td,.activity-table td{font-size:14px}.table th,.activity-table th{font-size:12px}@media (width<=1024px){body{font-size:15px}.page-title{font-size:30px}.table,.table td,.activity-table td,.btn,.btn-primary,.btn-secondary,.btn-danger,input,textarea,select{font-size:14px}.table th,.activity-table th,label{font-size:12px}}@media (width<=768px){body{font-size:14px}.page-title{font-size:26px}.page-subtitle,.table,.table td,.activity-table td,.btn,.btn-primary,.btn-secondary,.btn-danger,.filters-bar .filter-input,.filters-bar .filter-select,.filters-bar input,.filters-bar select,input,textarea,select{font-size:13px}.table th,.activity-table th,label{font-size:11px}}@media (width<=1024px){.sidebar.hidden.collapsed{width:var(--sidebar-width);transform:translateX(calc(-1 * var(--sidebar-width)));padding-left:12px;padding-right:12px}.sidebar:not(.collapsed) .nav-icon,.sidebar:not(.collapsed) .theme-toggle-icon,.sidebar:not(.collapsed) .sidebar-logout .nav-icon{display:none}.sidebar:not(.collapsed) .nav-link,.sidebar:not(.collapsed) .theme-toggle-btn,.sidebar:not(.collapsed) .sidebar-logout-btn{gap:0}}@media (hover:hover) and (pointer:fine){.sidebar.hidden.collapsed{width:86px!important;padding-left:12px!important;padding-right:12px!important;transform:translate(0)!important}}@media (width<=1024px),(hover:none),(pointer:coarse){.sidebar.hidden.collapsed{width:var(--sidebar-width)!important;transform:translateX(calc(-1 * var(--sidebar-width)))!important;padding-left:12px!important;padding-right:12px!important}.sidebar:not(.collapsed) .nav-icon,.sidebar:not(.collapsed) .theme-toggle-icon,.sidebar:not(.collapsed) .sidebar-logout .nav-icon{display:none!important}.sidebar:not(.collapsed) .nav-link,.sidebar:not(.collapsed) .theme-toggle-btn,.sidebar:not(.collapsed) .sidebar-logout-btn{gap:0!important}}.sidebar.hidden{transform:translateX(calc(-1 * var(--sidebar-width)))!important}.sidebar:not(.hidden) .nav-icon,.sidebar:not(.hidden) .theme-toggle-icon,.sidebar:not(.hidden) .sidebar-logout .nav-icon{display:inline-flex!important}.sidebar:not(.hidden) .nav-link,.sidebar:not(.hidden) .theme-toggle-btn,.sidebar:not(.hidden) .sidebar-logout-btn{gap:10px!important}.user-menu{flex-wrap:nowrap;min-width:0}.user-role-badge{align-items:center;display:inline-flex!important}@media (width<=1024px){.user-name{text-overflow:clip!important;max-width:none!important}}@media (width<=768px){.user-role-badge{display:inline-flex!important}}@media (width>=1025px){.app-shell.sidebar-collapsed .content{margin-left:0!important}}.consumer-page{gap:14px;display:grid}.consumer-hero{border:1px solid var(--border);background:radial-gradient(circle at top right, var(--panel-spot-strong), transparent 44%), linear-gradient(130deg, color-mix(in srgb, var(--panel-bg-elevated) 84%, transparent), color-mix(in srgb, var(--panel-bg) 74%, transparent));box-shadow:var(--panel-shadow-soft), var(--panel-inset);border-radius:16px;padding:18px}.consumer-hero-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.consumer-chip-row{flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;display:flex}.consumer-chip{border:1px solid var(--chip-border);background:var(--chip-bg);color:var(--chip-text);letter-spacing:.02em;border-radius:999px;align-items:center;padding:5px 10px;font-size:11px;font-weight:600;display:inline-flex}.consumer-surface{border:1px solid var(--border);background:radial-gradient(circle at top right, color-mix(in srgb, var(--panel-spot) 84%, transparent), transparent 50%), linear-gradient(180deg, color-mix(in srgb, var(--panel-bg-elevated) 76%, transparent), color-mix(in srgb, var(--panel-bg) 74%, transparent));box-shadow:var(--panel-shadow-soft), var(--panel-inset);border-radius:16px;overflow:hidden}.consumer-surface-head{border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--panel-bg-soft) 76%, transparent);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;display:flex}.consumer-surface-title{font-size:19px;font-weight:600;line-height:1.2}.consumer-surface-subtitle{color:var(--muted);margin-top:3px;font-size:12px}.consumer-surface-body{padding:14px 16px 16px}.consumer-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.consumer-kpi-card{border:1px solid var(--border);background:radial-gradient(circle at top right, color-mix(in srgb, var(--panel-spot-strong) 72%, transparent), transparent 60%), linear-gradient(180deg, color-mix(in srgb, var(--panel-bg-elevated) 86%, transparent), color-mix(in srgb, var(--panel-bg) 74%, transparent));box-shadow:var(--panel-shadow-soft), var(--panel-inset);border-radius:14px;padding:14px}.consumer-kpi-label{color:var(--muted);font-size:12px}.consumer-kpi-value{margin-top:8px;font-size:30px;font-weight:700;line-height:1}.consumer-toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;display:flex}.consumer-toolbar .grow{flex:260px;min-width:220px}.consumer-toolbar .compact{flex:none;min-width:150px}.alerts-subpage-tabs{flex-wrap:wrap;gap:8px;margin:14px 16px 0;padding:12px;display:flex}.alerts-page-toolbar{justify-content:space-between;align-items:center;gap:14px;margin:0 0 14px;display:flex}.alerts-page-toolbar h2{color:var(--text);margin:0;font-size:17px}.alerts-page-toolbar p{color:var(--muted);margin:4px 0 0;font-size:12px}.alerts-page-toolbar label{color:var(--muted);align-items:center;gap:10px;font-size:13px;display:flex}.alerts-table-wrap{width:100%;overflow-x:auto}.alerts-table{table-layout:fixed;width:100%;min-width:1080px}.alerts-events-table{min-width:1400px}.consumer-surface .table.alerts-events-table th,.consumer-surface .table.alerts-events-table td{text-align:center!important}.alerts-rules-table{min-width:1200px}.consumer-surface .table.alerts-table th,.consumer-surface .table.alerts-table td{text-overflow:ellipsis;vertical-align:middle;white-space:nowrap;overflow:hidden}.consumer-surface .table.alerts-table th:not(.is-centered):not(.is-numeric),.consumer-surface .table.alerts-table td:not(.is-centered):not(.is-numeric){text-align:left}.consumer-surface .table.alerts-table th.is-numeric,.consumer-surface .table.alerts-table td.is-numeric{text-align:right;font-variant-numeric:tabular-nums}.consumer-surface .table.alerts-table th.is-centered,.consumer-surface .table.alerts-table td.is-centered{text-align:center}.alerts-row-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;display:flex}.alerts-empty-cell{color:var(--muted);text-align:center;padding:24px!important}.alerts-pagination{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;margin-top:14px;display:flex}.alerts-pagination-controls{justify-content:center;align-items:center;gap:6px;display:flex}.alerts-pagination-controls .btn,.alerts-pagination-controls .btn-primary{font-variant-numeric:tabular-nums;place-items:center;width:36px;min-width:36px;height:36px;padding:0;display:inline-grid}.alerts-pagination-ellipsis{width:24px;color:var(--muted);text-align:center}.alerts-pagination-summary{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.consumer-pill-status{letter-spacing:.02em;border:1px solid #0000;border-radius:999px;align-items:center;padding:3px 8px;font-size:10px;font-weight:700;display:inline-flex}.consumer-pill-status.ok{color:#22c55e;background:#22c55e1f;border-color:#22c55e3d}.consumer-pill-status.off{color:#ef4444;background:#ef44441f;border-color:#ef44443d}@media (width<=1100px){.consumer-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=700px){.consumer-kpi-grid{grid-template-columns:1fr}.consumer-surface-head,.consumer-surface-body,.consumer-hero{padding:12px}.alerts-subpage-tabs{margin:12px 12px 0}.alerts-page-toolbar{flex-direction:column;align-items:flex-start}.alerts-pagination{flex-direction:column}}
