:root{--background: #f5f8fb;--foreground: #10233f;--card: #ffffff;--primary: #00a54e;--primary-strong: #008b42;--primary-soft: #e8f7ee;--primary-tint: rgba(0, 165, 78, .1);--primary-foreground: #ffffff;--secondary: #5d6f7d;--muted: #eef4f6;--accent: #003399;--accent-strong: #000099;--accent-soft: #e8efff;--cyan: #00cccc;--cyan-strong: #0099cc;--cyan-soft: #e5fbfb;--mint: #00cc66;--mint-soft: #e8fbf0;--warning: #ffd200;--warning-strong: #b77d00;--warning-soft: #fff8d6;--magenta: #ec008c;--magenta-soft: #ffedf8;--surface: #fbfdff;--destructive: #d9236f;--destructive-soft: #ffedf8;--border: #dbe7ed;--success: #00a54e;--info: #0099ff;--radius: 8px;--shadow: 0 16px 38px rgba(16, 35, 63, .08);--shadow-sm: 0 8px 22px rgba(16, 35, 63, .06);font-family:Inter,Noto Sans,Roboto,Arial,system-ui,sans-serif;font-weight:400;color:var(--foreground);background:var(--background);color-scheme:light}html[data-theme=dark]{--background: #07131f;--foreground: #e7edf5;--card: #101d2b;--primary: #35d487;--primary-strong: #23bf72;--primary-soft: #123727;--primary-tint: rgba(53, 212, 135, .16);--primary-foreground: #04110b;--secondary: #94a6b8;--muted: #172637;--accent: #78b9ff;--accent-strong: #a4ceff;--accent-soft: #132d49;--cyan: #4bdddc;--cyan-strong: #69e9f1;--cyan-soft: #123a3d;--mint: #46df93;--mint-soft: #123a29;--warning: #f1cb52;--warning-strong: #f7dc7d;--warning-soft: #3b3219;--magenta: #ff62b7;--magenta-soft: #3b1730;--surface: #0c1826;--destructive: #ff6fa9;--destructive-soft: #341625;--border: #27394c;--success: #35d487;--info: #78b9ff;--shadow: 0 18px 46px rgba(0, 0, 0, .32);--shadow-sm: 0 10px 28px rgba(0, 0, 0, .24);color-scheme:dark}.site-console{display:grid;gap:18px;color:#1f3144}.site-console-header{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:86px;padding:0 4px 14px;border-bottom:1px solid rgba(219,231,237,.9)}.site-console-title{display:grid;gap:5px;min-width:0}.site-console-title h2{margin:0;color:#06275b;font-size:24px;line-height:1.15;font-weight:760;overflow-wrap:anywhere}.site-console-title p{display:flex;align-items:center;gap:8px;margin:0;color:#5d6f7d;font-size:15px}.site-section-tabs{display:flex;align-items:stretch;justify-content:flex-end;gap:22px;flex-wrap:wrap}.site-section-tab{min-width:72px;display:grid;justify-items:center;gap:6px;padding:6px 4px;color:#5a6b7b;font-size:13px;font-weight:650}.site-section-tab .icon{width:30px;height:30px;stroke-width:1.7}.site-section-tab.active{color:#32c878}.site-section-tab.active .icon{filter:drop-shadow(0 6px 10px rgba(50,200,120,.22))}.plant-dashboard{display:grid;gap:18px}.plant-dashboard-grid{display:grid;grid-template-columns:minmax(0,2.5fr) minmax(320px,1fr);gap:18px;align-items:stretch}.plant-dashboard-grid.lower{align-items:start}.plant-card{min-width:0;padding:24px 26px;border:1px solid rgba(225,233,239,.92);border-radius:8px;background:#fff;box-shadow:0 8px 24px #1f31440d}.plant-card h3{margin:0;color:#06275b;font-size:22px;line-height:1.2;font-weight:760}.plant-card p{margin:4px 0 0;color:#728497;font-size:14px}.plant-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:20px}.card-action-icon{width:42px;height:42px;display:grid;place-items:center;color:#06275b;background:#f4f7fb;border-radius:8px}.overview-body{display:grid;grid-template-columns:minmax(220px,1fr) minmax(260px,.9fr);gap:34px;align-items:center;min-height:300px}.power-ring{width:min(280px,78vw);aspect-ratio:1;justify-self:center;display:grid;place-items:center;align-content:center;gap:6px;border-radius:50%;background:radial-gradient(circle at center,#ffffff 61%,transparent 62%),conic-gradient(#32c878 var(--ring-progress),#e9f0f5 0);box-shadow:0 0 42px #32c87833}.power-ring strong{color:#06275b;font-size:30px;line-height:1.1;font-weight:800}.power-ring span,.overview-metrics span,.overview-tile-row span,.environment-card span,.site-info-card dt,.install-card dt{color:#73869a;font-size:14px;font-weight:600}.overview-metrics{display:grid;grid-template-columns:1fr 1fr;gap:28px;padding-left:34px;border-left:1px solid #e3ebf0}.overview-metrics div,.overview-tile-row div{display:grid;gap:7px}.overview-metrics strong,.environment-card strong{color:#06275b;font-size:28px;line-height:1.15;font-weight:780}.overview-tile-row strong{color:#06275b;font-size:22px;line-height:1.25;font-weight:780;overflow-wrap:anywhere}.overview-tile-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.overview-tile-row div{padding:18px;background:#f6f8fb;border-radius:8px}.plant-side-stack{display:grid;gap:18px}.site-info-card dl,.install-card dl{display:grid;gap:18px;margin:24px 0 0}.site-info-card dl div,.install-card dl div{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(0,1.2fr);gap:16px}.site-info-card dt,.site-info-card dd,.install-card dt,.install-card dd{margin:0}.site-info-card dd,.install-card dd{color:#253648;text-align:right;overflow-wrap:anywhere}.environment-card{display:grid;gap:16px}.environment-card div{display:grid;grid-template-columns:58px minmax(0,1fr);align-items:center;gap:7px 18px}.environment-card .icon{grid-row:span 2;width:52px;height:52px;color:#06275b;stroke:#32c878}.weather-card{min-height:260px}.empty-state{min-height:170px;display:grid;place-items:center;color:#b5c0cb;font-weight:600}.production-card{min-height:250px}.production-heatmap{display:grid;grid-template-columns:repeat(30,minmax(10px,1fr));align-items:end;min-height:170px;gap:1px;padding-top:26px}.production-heatmap span{min-height:34px;background:rgba(50,200,120,var(--heat));border-radius:2px}.segmented-control{display:inline-flex;align-items:center;gap:2px;padding:3px;border:1px solid #dbe7ed;border-radius:8px;background:#f8fbfd}.segmented-control button{min-height:32px;border:0;box-shadow:none;background:transparent;color:#5d6f7d;font-size:13px;font-weight:700}.segmented-control button.active{color:#fff;background:#32c878}.plant-timeline-chart{position:relative;min-height:300px}.plant-timeline-chart svg{display:block;width:100%;min-height:260px}.timeline-line{fill:none;stroke:var(--series-color);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.timeline-area{fill:var(--series-color);opacity:.22}.timeline-legend{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:14px;color:#4b5f73;font-size:14px}.timeline-legend span{display:inline-flex;align-items:center;gap:7px}.timeline-legend span:before{content:"";width:12px;height:12px;border-radius:50%;background:var(--series-color)}.dc-side-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(360px,.85fr);gap:18px;align-items:start}.mppt-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:12px;color:#73869a;font-size:13px;font-weight:650}.mppt-pagination>div{display:flex;align-items:center;gap:8px}.mppt-pagination button{min-height:32px;padding-inline:10px;font-size:13px;font-weight:700}.devices-console-card{display:grid;grid-template-columns:330px minmax(0,1fr);min-height:720px;border:1px solid rgba(225,233,239,.94);border-radius:8px;background:#fff;box-shadow:0 8px 24px #1f31440d;overflow:hidden}.device-tree-panel{padding:24px 22px;border-right:1px solid #dfe8ef}.device-tree-panel h3{margin:0 0 18px;color:#06275b;font-size:22px}.device-tree{display:grid;gap:18px;margin-top:24px}.device-tree-group,.device-tree-subgroup,.device-tree-item{display:grid;gap:8px}.device-tree-logger,.device-tree-subheading,.device-tree-item{display:flex;align-items:center;gap:9px;color:#34485c}.device-tree-logger{padding:0 10px;font-weight:650}.device-tree-logger .icon{color:#32c878}.device-tree-subgroup{gap:8px}.device-tree-subheading{min-height:28px;padding:4px 10px 4px 22px;color:#6d7f91;font-size:11px;font-weight:700;letter-spacing:0;text-transform:uppercase}.device-tree-subheading .icon{width:15px;height:15px;color:#6f91b5}.device-tree-subheading small{margin-left:auto;color:#9aabba;font-size:11px}.device-tree-item{display:grid;width:100%;gap:10px;min-height:0;padding:12px;border:1px solid rgba(217,228,237,.96);border-radius:8px;background:linear-gradient(180deg,#fff,#f8fbff);box-shadow:0 8px 18px #1f31440b;text-align:left;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease,background .16s ease}.device-tree-item:hover{border-color:#32c8787a;box-shadow:0 12px 26px #1f314417;transform:translateY(-1px)}.device-tree-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;color:#f0b429;background:#f0b4291f}.device-tree-icon .icon{width:16px;height:16px}.device-tree-card-head{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:10px}.device-tree-card-head strong{min-width:0;color:#102942;font-size:16px;font-weight:850;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-tree-status{display:inline-flex;align-items:center;gap:5px;min-width:0;color:#7d8fa0;font-size:11px;font-weight:800}.device-tree-status i{width:8px;height:8px;border-radius:50%;background:#9ca9b5}.device-tree-status.online{color:#087d45}.device-tree-status.online i{background:#32c878;box-shadow:0 0 0 4px #32c87824}.device-tree-status.offline{color:#7d8fa0}.device-tree-meta-line{display:block;color:#52677c;font-size:11.5px;font-weight:500;line-height:1.35}.device-tree-meta-line span,.device-tree-card-foot span{display:block;min-width:0;padding:0;border:0;border-radius:0;background:transparent!important;box-shadow:none;overflow-wrap:anywhere}.device-tree-meta-line span:not(:last-child):after{content:none}.device-tree-card-foot{display:block;color:#71869a;font-size:11px;font-weight:500;line-height:1.35}.device-tree-card-foot span:not(:last-child):after{content:none}.device-tree-item>.icon{color:#f0b429}.device-tree-item>span{min-width:0;overflow:hidden;text-overflow:ellipsis}.device-tree-item>small{margin-left:auto;color:#8ca0b3;font-size:11px}.device-tree-item.active{background:linear-gradient(135deg,#32c87829,#25a7d30f),#f7fffb;color:#1c354e;border-color:#32c878ad;box-shadow:0 14px 30px #0e744124}.device-detail-panel{min-width:0;padding:0}.device-tabs{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:74px;padding:0 28px;border-bottom:1px solid #e4edf3}.device-tab-buttons{display:flex;align-items:center;gap:8px;min-width:0;overflow-x:auto;scrollbar-width:none}.device-tab-buttons::-webkit-scrollbar{display:none}.device-tab-buttons button{display:inline-flex;align-items:center;flex:0 0 auto;gap:8px;min-height:74px;padding:0 0 2px;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:#65788d;font-size:14px;font-weight:700;line-height:1.2;white-space:nowrap}.device-tab-buttons button .icon{width:16px;height:16px}.device-tab-buttons button.active{color:#32c878;border-bottom-color:#32c878}.device-refresh-button{display:inline-flex;align-items:center;justify-content:center;min-width:0;height:38px;flex:0 0 auto;gap:8px;padding:0 14px;border:1px solid #d6e5ee;border-radius:999px;background:#fff;color:#37506a;font-size:13px;font-weight:700;line-height:1;white-space:nowrap}.device-refresh-button:hover:not(:disabled){border-color:#32c878;color:#25a862}.device-refresh-button:disabled{cursor:wait;opacity:.68}.device-refresh-button .icon{width:18px;height:18px;flex:0 0 auto}.device-refresh-button .icon.spinning{animation:spin .9s linear infinite}.device-tab-panel,.device-basic-info{padding:28px}.device-data-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.device-basic-info h3{margin:0 0 26px;color:#253648;font-size:18px}.device-info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px 42px}.device-info-grid div{display:flex;align-items:baseline;gap:8px;min-width:0}.device-info-grid span{color:#34485c;white-space:nowrap}.device-info-grid strong{color:#253648;font-weight:500;overflow-wrap:anywhere}.access-page .primary-button{display:inline-flex;align-items:center;gap:8px}.check-row input[type=checkbox]{width:auto;min-height:0}.plugin-picker,.site-location-picker{display:grid;gap:12px;padding:16px;border:1px solid var(--border);border-radius:8px;background:#fbfdff}.plugin-option-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.plugin-option{display:flex!important;align-items:center;gap:10px!important;min-height:42px;padding:10px 12px;border:1px solid #dfe8ef;border-radius:8px;background:#fff;color:#34485c}.plugin-option input{width:auto;min-height:0}.inline-field{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.site-map-frame{position:relative;height:230px;border:1px solid #dfe8ef;border-radius:8px;overflow:hidden;background:#f4f7fb}.site-map-frame iframe{width:100%;height:100%;border:0;display:block;pointer-events:none}.site-map-click-layer{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;min-height:0;height:100%;padding:0;border:0;border-radius:0;background:transparent;cursor:crosshair}.site-map-click-layer:hover{background:#0099ff0a}.site-map-click-layer:focus-visible{outline:3px solid rgba(0,153,255,.28);outline-offset:-3px}.site-map-pin{position:absolute;left:50%;top:50%;width:18px;height:18px;border:3px solid #ffffff;border-radius:50% 50% 50% 0;background:#32c878;box-shadow:0 8px 18px #1f314438;transform:translate(-50%,-90%) rotate(-45deg)}.site-map-pin:after{content:"";position:absolute;top:4px;right:4px;bottom:4px;left:4px;border-radius:50%;background:#fff}.dashboard-control-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid rgba(225,233,239,.92);border-radius:8px;background:#fff;box-shadow:0 8px 24px #1f31440a}.dashboard-control-bar>div:first-child{display:grid;gap:2px}.dashboard-control-bar strong{color:#06275b;font-size:16px}.dashboard-control-bar span{color:#73869a;font-size:12px;font-weight:650}.site-range-control{display:flex;align-items:end;justify-content:flex-end;gap:10px;flex-wrap:wrap}.site-range-control label{display:grid;gap:4px;color:#73869a;font-size:12px;font-weight:650}.site-range-control input{min-height:34px;width:150px}.site-range-control.compact{justify-content:flex-start}.site-range-control.compact input{width:132px}.production-bar-chart{position:relative;min-height:210px;margin-bottom:12px}.production-bar-chart svg{display:block;width:100%}.production-bar{fill:#32c878;opacity:.9;transition:opacity .14s ease}.production-bar.bad{fill:#dc2626}.production-bar.low{fill:#f97316}.production-bar.fair{fill:#facc15}.production-bar.good{fill:#22c55e}.production-bar:hover,.production-bar:focus{opacity:1}.weather-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.weather-grid div{display:grid;gap:6px;padding:14px;border-radius:8px;background:#f6f8fb}.weather-grid span{color:#73869a;font-size:13px;font-weight:650}.weather-grid strong{color:#06275b;font-size:20px}.device-data-actions{display:flex;align-items:end;justify-content:flex-end;flex-wrap:wrap;gap:10px}.dashboard-refresh-overlay{position:sticky;top:88px;z-index:4;justify-self:end;display:inline-flex;align-items:center;gap:9px;padding:9px 13px;color:#34485c;background:#fffffff0;border:1px solid #dfe8ef;border-radius:999px;box-shadow:0 10px 26px #1f314414;font-size:13px;font-weight:700}.dashboard-refresh-overlay span{width:12px;height:12px;border:2px solid #ccebd9;border-top-color:#32c878;border-radius:50%;animation:spin .9s linear infinite}.site-dashboard-skeleton{display:grid;gap:18px}.skeleton-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:18px}.skeleton-line,.skeleton-block{border-radius:8px;background:linear-gradient(90deg,#eef4f7,#f8fbfd,#eef4f7 88%);background-size:220% 100%;animation:shimmer 1.35s ease-in-out infinite}.skeleton-line{height:20px;width:min(460px,70%)}.skeleton-line.short{width:160px}.skeleton-block{min-height:220px}.skeleton-block.tall{min-height:420px}.skeleton-block.wide{min-height:280px}.weather-loading{min-height:150px}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1180px){.plant-dashboard-grid,.plant-dashboard-grid.lower,.dc-side-grid,.devices-console-card{grid-template-columns:1fr}.device-tree-panel{border-right:0;border-bottom:1px solid #dfe8ef}.device-tree{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}}@media(max-width:760px){.site-console-header,.overview-body,.plant-card-heading,.device-data-toolbar{display:grid}.site-section-tabs{justify-content:space-between;gap:10px}.site-section-tab{min-width:56px;font-size:12px}.site-section-tab .icon{width:24px;height:24px}.plant-card{padding:18px}.overview-metrics{grid-template-columns:1fr;padding-left:0;border-left:0}.overview-tile-row,.device-info-grid{grid-template-columns:1fr}.device-tabs{gap:18px;overflow-x:auto}.device-tab-buttons{gap:18px}.device-tab-buttons button{white-space:nowrap;font-size:17px}}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 12% 0%,rgba(0,204,204,.13),transparent 260px),radial-gradient(circle at 88% 4%,rgba(255,210,0,.16),transparent 260px),linear-gradient(180deg,#ffffff 0%,#f7fbff 280px,var(--background) 100%)}button,input,select,textarea{font:inherit}button{border:1px solid var(--border);background:var(--card);border-radius:var(--radius);min-height:38px;padding:0 12px;cursor:pointer;transition:border-color .16s ease,background-color .16s ease,color .16s ease,transform .16s ease}button:hover{border-color:#0099ff61;background:var(--surface)}button:disabled{cursor:not-allowed;opacity:.55}input,select,textarea{width:100%;border:1px solid var(--border);border-radius:var(--radius);background:#fff;min-height:42px;padding:0 12px;color:var(--foreground);outline:none;transition:border-color .16s ease,box-shadow .16s ease}input:focus,select:focus,textarea:focus{border-color:#0099ffad;box-shadow:0 0 0 3px #0099ff21}textarea{min-height:118px;padding-block:11px;resize:vertical}select[multiple]{min-height:128px;padding-block:8px}a{color:inherit;text-decoration:none}.app-shell{display:flex;min-height:100vh}.mobile-appbar,.mobile-nav-backdrop,.mobile-nav-close{display:none}.sidebar{width:264px;background:#fffffff0;border-right:1px solid var(--border);display:flex;flex-direction:column;justify-content:space-between;padding:18px;position:sticky;top:0;height:100vh;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.brand{display:grid;align-content:center;gap:8px;min-height:82px;border-bottom:1px solid var(--border);min-width:0}.brand img{width:162px;max-width:100%;height:auto;object-fit:contain}.brand>div{min-width:0}.brand strong,.brand span,.profile strong,.profile span{display:block;overflow-wrap:anywhere}.brand strong,.profile strong{font-weight:650}.brand strong{font-size:13px}.brand span{font-size:12px}.brand span,.profile span{font-weight:400}.brand span,.profile span,.breadcrumbs,.panel p,.metric-card small,.metric-card span{color:var(--secondary)}.nav-label{margin:28px 8px 10px;color:var(--secondary);font-size:12px;font-weight:650;text-transform:uppercase;letter-spacing:.06em}.nav-list{display:grid;gap:6px}.nav-list a,.logout-button{padding:12px;border-radius:var(--radius);color:var(--secondary);font-weight:550;display:flex;align-items:center;gap:10px}.nav-list a.active{color:var(--accent);background:linear-gradient(90deg,#0099ff24,#00cccc0f);border-right:3px solid var(--info)}.nav-list a:hover,.logout-button:hover{background:var(--muted)}.logout-button{color:var(--destructive);text-align:left}.main-panel{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{height:80px;background:#ffffffe0;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 32px;position:sticky;top:0;z-index:5;gap:18px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.topbar h1{margin:4px 0 0;font-size:24px;font-weight:650;letter-spacing:0}.profile{display:flex;align-items:center;gap:12px;min-width:0}.profile-details{min-width:0}.profile-details strong,.profile-details span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.theme-toggle{position:relative;display:inline-grid;grid-template-columns:1fr 1fr;align-items:center;gap:0;min-height:38px;padding:3px;border:1px solid rgba(219,231,237,.9);border-radius:999px;background:#eef4f8;color:#5d6f7d;box-shadow:inset 0 1px #ffffffb8}.theme-toggle:before{content:"";position:absolute;inset:3px auto 3px 3px;width:calc(50% - 3px);border-radius:999px;background:#fff;box-shadow:0 6px 14px #10233f1f;transition:transform .18s ease}.theme-toggle[aria-pressed=true]:before{transform:translate(100%)}.theme-toggle span{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:70px;height:30px;padding:0 10px;color:var(--secondary);font-size:12px;line-height:1;font-weight:760;white-space:nowrap}.theme-toggle .icon{width:15px;height:15px}.theme-toggle[aria-pressed=false] span:first-child,.theme-toggle[aria-pressed=true] span:last-child{color:var(--foreground)}.avatar{width:42px;height:42px;flex:0 0 42px;border-radius:50%;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary-strong));font-weight:650;box-shadow:0 10px 24px #00a54e38}.content-pane{flex:1;padding:28px 32px 40px;min-width:0}.app-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:auto;padding:18px 32px;color:var(--secondary);background:#ffffffdb;border-top:1px solid var(--border);font-size:13px}.app-footer-message{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px;min-width:0}.app-footer-message strong{color:var(--foreground);font-size:14px;font-weight:650}.app-footer-links{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:10px 18px}.app-footer a{color:var(--accent);font-weight:650}.app-footer a:hover{color:var(--primary-strong)}.stack{display:grid;gap:24px;min-width:0}.grid{display:grid;min-width:0}.gap-5{gap:20px}.gap-6{gap:24px}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.metric-card,.panel,.login-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.icon{width:18px;height:18px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.metric-card{padding:22px;display:grid;gap:8px}.metric-card strong{font-size:30px;font-weight:700}.panel{padding:22px;background:linear-gradient(180deg,#ffffff,var(--surface));min-width:0}.panel-heading{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:18px;min-width:0}.panel h2,.panel p{margin:0}.panel h2{margin-bottom:6px;font-weight:700}.chart-surface{min-height:340px;border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(#fff,var(--surface));display:flex;align-items:end;gap:12px;padding:28px}.chart-surface span{flex:1;min-width:12px;background:linear-gradient(180deg,var(--primary),var(--primary-strong));border-radius:6px 6px 0 0;cursor:crosshair}.table-wrap{overflow-x:auto;max-width:100%;min-width:0}.data-table{width:100%;border-collapse:collapse;min-width:760px}.data-table td{vertical-align:middle}.data-table th{text-align:left;background:#eef5f1;color:#31443a;font-size:12px;letter-spacing:.04em;text-transform:uppercase}.data-table th,.data-table td{padding:14px 12px;border-bottom:1px solid var(--border)}.data-table tbody tr{transition:background-color .14s ease}.data-table tbody tr:hover{background:#00a54e09}.table-logo{width:42px;height:42px;object-fit:contain;border:1px solid var(--border);border-radius:6px;background:#fff;padding:4px}.sort-button{border:0;padding:0;min-height:0;background:transparent;font-weight:700}.sort-button.muted{cursor:default}.table-footer,.pager,.actions,.check-row{display:flex;align-items:center;gap:10px}.table-footer{justify-content:space-between;padding-top:16px;color:var(--secondary);flex-wrap:wrap}.actions a,.actions button,.table-link{color:var(--primary-strong);font-weight:600}.actions button{min-height:32px}.actions{flex-wrap:wrap}.actions .danger,.danger{color:var(--destructive);border-color:#ec008c38;background:var(--destructive-soft)}.text-button{border:0;background:transparent;min-height:0;padding:0;color:var(--primary-strong);font-weight:600}.status{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:650}.status.ok{color:#067a3f;background:var(--mint-soft)}.status.off{color:var(--secondary);background:#eef2ef}.status.warn{color:var(--warning-strong);background:var(--warning-soft)}.form-panel{display:grid;gap:16px}.form-panel label{display:grid;gap:7px;color:var(--foreground);font-weight:600}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.device-list{display:grid;gap:10px}.device-row{display:grid;grid-template-columns:145px 1.1fr minmax(150px,1fr) 105px minmax(145px,.9fr) minmax(145px,.9fr) minmax(145px,.9fr) auto;gap:10px;align-items:end;padding:14px;border:1px solid var(--border);border-radius:var(--radius);background:#f7faf8}.primary-button{color:var(--primary-foreground);background:linear-gradient(135deg,var(--primary),var(--primary-strong));border-color:var(--primary-strong);font-weight:700;box-shadow:0 10px 20px #00a54e2e}.primary-button:hover{transform:translateY(-1px);background:linear-gradient(135deg,var(--mint),var(--primary-strong))}.replace-confirm-button,.replace-button{color:#fff;border-color:#b10069;background:linear-gradient(135deg,var(--magenta),#b10069);box-shadow:0 10px 20px #ec008c29}.replace-confirm-button:hover,.replace-button:hover{color:#fff;border-color:#9b005e;background:linear-gradient(135deg,#ff2aa4,#b10069)}.firmware-button{color:#4a3900;border-color:#ffd20085;background:linear-gradient(135deg,var(--warning),#fff4a8);box-shadow:0 10px 20px #ffd2002e}.firmware-button:hover{color:#3b2d00;border-color:#b77d0080;background:linear-gradient(135deg,#ffe45c,#fff8c2)}.search-input{max-width:280px}.toolbar{display:flex;justify-content:flex-end;gap:10px;width:min(720px,100%);flex-shrink:0}.toolbar .search-input{flex:1 1 180px}.toolbar select{flex:0 1 170px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:4px}.empty-cell{text-align:center;color:var(--secondary)}.error-text{color:var(--destructive);font-weight:400}.success-text{color:#067a3f;font-weight:500}.field-hint{color:var(--secondary);font-size:12px;font-weight:400}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:24px;background:#0f172a6b}.modal-card{width:min(760px,100%);max-height:min(780px,calc(100vh - 48px));overflow:hidden;display:flex;flex-direction:column;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 24px 80px #0f172a38}.modal-card.layout-editor-modal{width:90vw;height:90vh;max-height:90vh}.modal-card.organization-modal{width:min(940px,100%)}.layout-editor-modal .modal-body{min-height:0}.modal-header,.modal-footer{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 22px;border-bottom:1px solid var(--border)}.modal-header h2,.modal-header p{margin:0}.modal-header h2{margin-bottom:5px;font-weight:600}.modal-header p{color:var(--secondary)}.modal-body{overflow-y:auto;padding:22px}.modal-footer{justify-content:flex-end;border-top:1px solid var(--border);border-bottom:0;background:#f7faf8}.icon-button{width:38px;min-width:38px;padding:0;font-weight:400;color:var(--secondary)}.logo-uploader{display:grid;grid-template-columns:250px minmax(0,1fr);gap:16px;margin-top:18px;padding:16px;border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(180deg,#fff,#f8fbfc)}.logo-preview-card{display:grid;align-content:start;gap:14px;min-width:0}.logo-preview-card strong,.logo-preview-card p{display:block;margin:0}.logo-preview-card p{color:var(--secondary);font-size:13px;line-height:1.45}.logo-preview-frame{display:grid;place-items:center;width:100%;min-height:124px;aspect-ratio:2.4 / 1;padding:18px;overflow:hidden;border:1px dashed #b9d2df;border-radius:var(--radius);background:linear-gradient(45deg,#f3f8fa 25%,transparent 25%),linear-gradient(-45deg,#f3f8fa 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#f3f8fa 75%),linear-gradient(-45deg,transparent 75%,#f3f8fa 75%);background-color:#fff;background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px}.logo-preview-frame img{display:block;max-width:100%;max-height:100%;object-fit:contain}.logo-preview-frame span{color:var(--secondary);font-size:13px}.logo-uploader-locked{display:grid;place-items:center;align-content:center;gap:8px;min-height:286px;padding:24px;text-align:center;border:1px dashed #b9d2df;border-radius:var(--radius);background:#fbfdff}.logo-uploader-locked span{max-width:360px;color:var(--secondary)}.logo-uploader .uppy-Dashboard{font-family:inherit}.logo-uploader .uppy-Dashboard-inner{width:100%!important;border-color:var(--border);border-radius:var(--radius);background:#fff}.logo-uploader .uppy-Dashboard-AddFiles{border-color:transparent}.logo-uploader .uppy-Dashboard-note{color:var(--secondary)}.login-screen{min-height:100vh;display:grid;grid-template-rows:1fr auto;padding:24px;background:linear-gradient(135deg,#00a54e1a,#fff0 38%),linear-gradient(180deg,#ffffff,var(--background))}.login-panel{width:min(980px,100%);display:grid;grid-template-columns:1fr 410px;gap:32px;align-items:center;align-self:center;justify-self:center}.login-brand img{width:min(260px,72vw);height:auto;object-fit:contain}.login-brand h1{margin:26px 0 10px;font-size:52px;font-weight:750;line-height:1.08;color:#0e2619}.login-brand p{color:var(--secondary);font-size:18px;max-width:460px;line-height:1.55}.login-card{display:grid;gap:18px;padding:32px;background:linear-gradient(180deg,#fffffffa,#fbfdfcfa)}.login-card h2{margin:0;font-size:24px;font-weight:700}.login-card label{display:grid;gap:7px;font-weight:600}.login-footer{width:min(980px,100%);justify-self:center;margin-top:24px;padding-inline:0;background:transparent;border-top:1px solid rgba(219,231,237,.82)}.legal-screen{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(180deg,#ffffffeb,#f5f8fbfa),var(--background)}.legal-header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 32px;background:#ffffffe6;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.legal-brand{display:flex;align-items:center;gap:14px;min-width:0;color:var(--foreground);font-weight:700}.legal-brand img{width:148px;max-width:44vw;height:auto;object-fit:contain}.legal-brand span{color:var(--secondary);font-size:13px;font-weight:650}.legal-login-link{min-height:38px;display:inline-flex;align-items:center;justify-content:center;padding:0 14px;color:var(--primary-foreground);background:linear-gradient(135deg,var(--primary),var(--primary-strong));border:1px solid var(--primary-strong);border-radius:var(--radius);font-weight:700;white-space:nowrap}.legal-document{width:min(980px,calc(100% - 48px));margin:34px auto 42px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.legal-hero{display:grid;gap:10px;padding:34px 38px;background:linear-gradient(135deg,#00a54e1a,#0099ff14 48%,#fff0),#fff;border-bottom:1px solid var(--border)}.legal-hero span{color:var(--primary-strong);font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.legal-hero h1{margin:0;font-size:36px;line-height:1.12;font-weight:750}.legal-hero p{max-width:760px;margin:0;color:var(--secondary);font-size:17px;line-height:1.58}.legal-hero small{color:var(--secondary);font-weight:650}.legal-content{display:grid;gap:24px;padding:34px 38px 40px}.legal-content section{display:grid;gap:10px}.legal-content h2,.legal-content p{margin:0}.legal-content h2{color:var(--foreground);font-size:20px;font-weight:700}.legal-content p{color:#304458;line-height:1.7}.legal-content a{color:var(--accent);font-weight:700}.site-hero{display:flex;justify-content:space-between;align-items:center;background:linear-gradient(135deg,#fff,#eef8f2);gap:18px}.site-hero h2{font-size:34px;font-weight:600;overflow-wrap:anywhere}.hero-metrics{display:grid;text-align:right}.hero-metrics strong{color:var(--primary-strong);font-size:42px;font-weight:750}.section-title strong,.device-card strong{font-weight:600}.device-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.device-card{display:grid;gap:8px;padding:16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--muted)}.site-title-row{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;background:linear-gradient(135deg,#00a54e17,#0099ff0f 44%,#fff0 72%),var(--card);border:1px solid rgba(223,232,227,.92);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px 22px}.site-title-row h2,.site-title-row p{margin:0}.site-title-row h2{margin-top:8px;font-size:28px;font-weight:700}.site-title-row p,.site-title-row span,.muted-text{color:var(--secondary)}.site-title-actions>span{border:1px solid var(--border);border-radius:999px;padding:7px 12px;background:var(--accent-soft);color:var(--accent);white-space:nowrap;display:inline-flex;align-items:center;gap:7px}.site-title-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:10px}.reports-open-button,.report-download-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;text-transform:uppercase;letter-spacing:.04em}.site-title-row p{display:inline-flex;align-items:center;gap:7px}.site-title-pills{margin-top:10px}.group-selector-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.group-card{display:grid;justify-items:start;gap:10px;min-height:190px;padding:20px;text-align:left;background:linear-gradient(135deg,#0099ff14,#fff0 46%),var(--card);border:1px solid rgba(223,232,227,.92);box-shadow:var(--shadow)}.group-card:hover{transform:translateY(-1px);border-color:#0099ff4d}.group-card:nth-child(2n){background:linear-gradient(135deg,#00cccc17,#fff0 46%),var(--card)}.group-card:nth-child(3n){background:linear-gradient(135deg,#ffd20021,#fff0 46%),var(--card)}.group-card-icon,.metric-pill-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:var(--radius);color:var(--accent);background:var(--accent-soft)}.group-card:nth-child(2n) .group-card-icon{color:var(--cyan-strong);background:var(--cyan-soft)}.group-card:nth-child(3n) .group-card-icon{color:var(--warning-strong);background:var(--warning-soft)}.group-card strong{font-size:22px;font-weight:700}.group-card small{color:var(--secondary)}.group-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow);padding:18px 20px}.group-header h3,.group-header p{margin:0}.group-header h3{display:flex;align-items:center;gap:8px;margin-top:6px;font-size:22px;font-weight:700}.group-header p{color:var(--secondary)}.group-header>span{border:1px solid var(--border);border-radius:999px;padding:7px 12px;color:var(--secondary);background:var(--muted);white-space:nowrap}.meter-card,.inverter-monitor-card{display:grid;grid-column:1 / -1;gap:20px;width:100%;min-width:0;background:linear-gradient(180deg,#fffffffa,#fbfdfce6),var(--card);border:1px solid rgba(223,232,227,.82);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px}.meter-header{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;border-bottom:1px solid var(--border);padding-bottom:18px}.meter-header p,.meter-header h2,.meter-header span{margin:0}.meter-header p,.meter-header span,.meter-status small{color:var(--secondary)}.meter-header h2{margin:4px 0;font-size:24px;font-weight:700;overflow-wrap:anywhere}.meter-status{display:grid;justify-items:end;gap:6px;text-align:right}.metric-pills{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px}.metric-pill{display:flex;align-items:center;gap:12px;border:1px solid rgba(223,232,227,.86);border-radius:var(--radius);background:#fff;padding:12px;box-shadow:var(--shadow-sm)}.metric-pill span{color:var(--secondary);font-size:12px;display:block;margin-bottom:3px}.metric-pill strong{font-size:18px;font-weight:700;color:var(--foreground)}.metric-pill.col-3{grid-column:span 3}.metric-pill.col-2{grid-column:span 2}.daily-energy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.daily-panel{min-width:0}.trend-grid-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.trend-panel{display:grid;gap:12px;border:1px solid rgba(223,232,227,.86);border-radius:var(--radius);padding:16px;background:linear-gradient(180deg,#fff,var(--surface));box-shadow:var(--shadow-sm)}.trend-panel h3,.trend-panel p{margin:0}.trend-panel h3{font-size:16px;font-weight:700;display:flex;align-items:center;gap:8px}.trend-panel p{color:var(--secondary);font-size:13px}.trend-chart{display:grid;gap:8px;position:relative}.trend-chart svg{width:100%;height:150px;overflow:visible}.trend-grid{fill:none;stroke:var(--border);stroke-width:1}.trend-line{fill:none;stroke:var(--info);stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round}.trend-hitpoint{fill:#0099ff14;stroke:#0099ff38;cursor:crosshair;pointer-events:all}.daily-chart{display:grid;gap:8px;position:relative}.daily-chart svg{width:100%;height:180px;overflow:visible}.daily-bar{fill:var(--cyan);cursor:crosshair;transition:opacity .16s ease,filter .16s ease}.daily-bar:hover{filter:brightness(.92)}.daily-bar.no-data{fill:var(--border);opacity:.9}.chart-axis-label{fill:var(--secondary);font-size:11px}.chart-tooltip{position:absolute;z-index:2;min-width:118px;max-width:min(220px,90%);pointer-events:none;transform:translate(-50%,calc(-100% - 10px));display:grid;gap:3px;padding:8px 10px;border:1px solid rgba(15,23,42,.1);border-radius:7px;color:var(--foreground);background:#fffffffa;box-shadow:0 12px 28px #112d1f29}.chart-tooltip span{color:var(--secondary);font-size:11px;white-space:nowrap}.chart-tooltip strong{font-size:13px;font-weight:500;white-space:nowrap}.trend-caption{display:flex;justify-content:space-between;gap:10px;color:var(--secondary);font-size:12px}.trend-caption strong{color:var(--foreground);font-weight:700}.empty-trend{display:grid;place-items:center;min-height:150px;border:1px dashed var(--border);border-radius:var(--radius);color:var(--secondary);text-align:center;padding:18px}.empty-trend.large{min-height:190px}.inverter-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.inverter-summary-card,.inverter-device-card{border:1px solid rgba(223,232,227,.86);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow-sm)}.inverter-summary-card{display:grid;gap:8px;padding:18px}.inverter-summary-card.highlight{background:linear-gradient(135deg,#00a54e1f,#00cccc14 58%,#fff0 78%),var(--card);border-color:#00a54e3d}.inverter-summary-card:nth-child(2n):not(.highlight){border-color:#0099ff2e;background:linear-gradient(135deg,#0099ff14,#fff0 52%),var(--card)}.inverter-summary-card:nth-child(3n):not(.highlight){border-color:#ffd2003d;background:linear-gradient(135deg,#ffd2001f,#fff0 52%),var(--card)}.inverter-summary-card span,.inverter-device-card p,.inverter-device-card small,.inverter-device-card header span:not(.status),.compact-metric span{color:var(--secondary)}.inverter-summary-card strong{font-size:24px;font-weight:750;overflow-wrap:anywhere}.inverter-device-grid{display:grid;grid-template-columns:1fr;gap:14px}.inverter-tabs{display:flex;gap:8px;align-items:stretch;overflow-x:auto;border-bottom:1px solid var(--border);padding-bottom:8px}.inverter-tab{display:grid;gap:3px;min-width:172px;height:auto;padding:10px 12px;text-align:left;border-color:#dfe8e3eb;background:var(--card)}.inverter-tab:hover{border-color:#0099ff5c}.inverter-tab.active{border-color:#0099ff94;background:linear-gradient(135deg,#0099ff1f,#00cccc0d);box-shadow:0 10px 24px #0099ff1a}.inverter-tab span,.inverter-tab small{color:var(--secondary);font-size:12px}.inverter-tab strong{font-weight:700;overflow-wrap:anywhere}.inverter-device-card{display:grid;gap:14px;padding:18px}.inverter-device-card header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.inverter-device-card h3,.inverter-device-card p{margin:0}.inverter-device-card h3{margin:4px 0;font-size:20px;font-weight:700;overflow-wrap:anywhere}.compact-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.compact-metric{display:grid;gap:4px;min-width:0;padding:10px;border:1px solid var(--border);border-radius:var(--radius);background:#f7fbff}.compact-metric strong{font-weight:700;overflow-wrap:anywhere}.inverter-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.inverter-detail-grid.wide{align-items:start}.inverter-detail-panel{display:grid;gap:14px;min-width:0;border:1px solid rgba(223,232,227,.86);border-radius:var(--radius);padding:16px;background:linear-gradient(180deg,#fff,var(--surface));box-shadow:var(--shadow-sm)}.inverter-detail-panel h3,.inverter-detail-panel p{margin:0}.inverter-detail-panel h3{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:700}.inverter-detail-panel p{color:var(--secondary);font-size:13px}.inverter-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.inverter-status-grid>div{display:grid;gap:4px;min-width:0;padding:10px;border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(135deg,#00cccc0d,#f7fbff)}.inverter-status-grid span,.inverter-metric-table th,.string-current-cell span{color:var(--secondary);font-size:12px}.inverter-status-grid strong,.string-current-cell strong{font-weight:700;overflow-wrap:anywhere}.inverter-table-wrap{overflow-x:auto}.inverter-metric-table{width:100%;min-width:520px;border-collapse:collapse}.inverter-metric-table th,.inverter-metric-table td{padding:10px;border-bottom:1px solid var(--border);text-align:left}.inverter-metric-table th{background:#eef5f1;font-weight:700}.string-current-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:8px}.string-current-cell{display:grid;gap:4px;padding:10px;border:1px solid var(--border);border-radius:var(--radius);background:#f7faf8}.string-details-page{display:grid;gap:16px}.string-details-toolbar{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;min-width:0}.string-details-toolbar h3,.string-details-toolbar p,.string-panel h3,.string-panel p{margin:0}.string-details-toolbar h3,.string-panel h3{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:750;line-height:1.25}.string-details-toolbar p,.string-panel p,.string-table-note{margin-top:4px;color:var(--secondary);font-size:13px}.string-toolbar-actions{display:flex;justify-content:flex-end;align-items:end;flex-wrap:wrap;gap:10px}.string-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.string-details-page .report-metric-tile{grid-template-columns:38px minmax(0,1fr);padding:12px}.string-details-page .report-metric-tile>div>span{color:var(--secondary);font-size:12px;font-weight:700}.string-details-page .report-metric-tile strong{font-size:18px;font-weight:760;line-height:1.2}.string-details-page .report-metric-tile small{color:var(--secondary);font-size:12px;font-weight:600}.string-details-page .report-tile-icon{width:34px;height:34px}.string-details-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.75fr);gap:18px;align-items:stretch}.string-chart-grid{display:grid;grid-template-columns:repeat(2,minmax(260px,1fr));gap:18px;align-items:stretch}.string-bottom-grid{display:grid;grid-template-columns:1fr;gap:18px;align-items:stretch}.string-chart-grid .string-panel:first-child{grid-column:1 / -1}.string-panel{display:grid;align-content:start;gap:12px;min-width:0;padding:16px;border:1px solid rgba(223,232,227,.9);border-radius:var(--radius);background:linear-gradient(180deg,#ffffff,var(--surface));box-shadow:var(--shadow-sm)}.string-panel-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.string-table-filters{display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px;padding:4px;border:1px solid var(--border);border-radius:var(--radius);background:#f7fbff}.string-table-filters button{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:5px 9px;border-color:transparent;color:#52677c;background:transparent;font-size:12px;font-weight:650;white-space:nowrap}.string-table-filters button.active{color:var(--foreground);border-color:#09f3;background:#fff;box-shadow:var(--shadow-sm)}.string-table-filters span{color:var(--secondary);font-size:11px;font-weight:700}.string-table-wrap .report-table{min-width:780px}.string-alert-table-wrap .report-table{min-width:620px}.string-details-page .report-download-button{gap:8px;font-size:13px;font-weight:700;text-transform:none}.string-table-wrap .string-table{min-width:680px;table-layout:fixed}.string-table th,.string-table td,.string-alert-table th,.string-alert-table td{padding:10px 12px;white-space:nowrap}.string-table th,.string-alert-table th{font-size:11px;font-weight:760}.string-table td,.string-alert-table td{font-size:13px;font-weight:580}.string-table td strong,.string-alert-table td strong{font-weight:700}.string-table th:first-child,.string-table td:first-child{width:90px;min-width:0}.string-table th:nth-child(2),.string-table td:nth-child(2){width:104px}.string-table th:nth-child(6),.string-table td:nth-child(6),.string-table th:nth-child(7),.string-table td:nth-child(7){width:112px}.string-table .status{display:inline-flex;white-space:nowrap;overflow-wrap:normal}.string-table-note{font-weight:700}.live-parameter-list{display:grid;gap:12px}.live-parameter-list div{display:flex;align-items:center;justify-content:space-between;gap:18px}.live-parameter-list span{display:inline-flex;align-items:center;gap:10px;color:var(--secondary);font-size:13px;font-weight:700}.live-parameter-list .icon{width:30px;height:30px;padding:6px;border-radius:50%;color:var(--accent);background:var(--accent-soft)}.live-parameter-list strong{font-size:17px;font-weight:760;text-align:right}.string-chart-controls{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:10px}.string-chart-controls select{width:180px;min-height:38px}.string-comparison-chart{display:grid;gap:14px}.string-comparison-row{display:grid;grid-template-columns:42px minmax(120px,1fr) 82px;align-items:center;gap:12px}.string-comparison-row span{color:var(--foreground);font-size:13px;font-weight:700}.string-comparison-row div{height:13px;border-radius:999px;background:var(--muted);overflow:hidden}.string-comparison-row i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--info),var(--accent-strong))}.string-comparison-row.low i{background:linear-gradient(90deg,#ef4444,#f97316)}.string-comparison-row strong{font-size:13px;font-weight:700;text-align:right}.performance-analysis-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.performance-analysis-grid>div{display:grid;gap:9px;min-width:0;padding:16px;border-radius:var(--radius);border:1px solid var(--border)}.performance-analysis-grid .best{background:linear-gradient(135deg,#00a54e24,#00a54e0a)}.performance-analysis-grid .worst{background:linear-gradient(135deg,#ec008c1f,#ec008c0a)}.performance-analysis-grid span,.performance-analysis-grid small{color:var(--secondary);font-size:12px;font-weight:700}.performance-analysis-grid strong{font-size:16px;font-weight:750}.performance-analysis-grid b{font-size:22px;line-height:1}.inverter-faults-page{display:grid;gap:18px}.faults-toolbar,.fault-panel-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;min-width:0}.faults-toolbar h3,.faults-toolbar p,.fault-panel h3,.fault-panel p{margin:0}.faults-toolbar h3,.fault-panel h3{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:850}.faults-toolbar p,.fault-panel p{margin-top:4px;color:var(--secondary);font-size:13px}.faults-toolbar-actions,.fault-history-actions{display:flex;justify-content:flex-end;align-items:end;flex-wrap:wrap;gap:10px}.fault-history-actions button{display:inline-flex;align-items:center;gap:8px;min-height:38px}.fault-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.faults-grid,.fault-chart-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.75fr);gap:18px;align-items:stretch}.fault-chart-grid{grid-template-columns:minmax(0,1.2fr) minmax(260px,.7fr) minmax(260px,.7fr)}.fault-panel{display:grid;align-content:start;gap:14px;min-width:0;padding:18px;border:1px solid rgba(223,232,227,.9);border-radius:var(--radius);background:linear-gradient(180deg,#ffffff,var(--surface));box-shadow:var(--shadow-sm)}.fault-panel-heading .secondary-button{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;gap:8px;white-space:nowrap}.current-fault-list{display:grid;gap:10px}.current-fault-card{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;min-width:0;padding:14px;border:1px solid var(--border);border-radius:8px;background:#f9fcffc7}.current-fault-card div{display:grid;gap:6px;min-width:0}.current-fault-card strong{color:var(--foreground);font-size:16px;font-weight:850}.current-fault-card small{flex:0 0 auto;color:var(--secondary);font-weight:800}.mapping-status-list{display:grid;gap:10px}.mapping-status-list div{display:grid;gap:4px;padding:12px;border:1px solid var(--border);border-radius:8px;background:#f9fcffb8}.mapping-status-list span{color:var(--secondary);font-size:11px;font-weight:850;text-transform:uppercase}.mapping-status-list strong{color:var(--foreground);font-size:13px;font-weight:760;line-height:1.35}.fault-distribution-bars{display:grid;gap:12px}.fault-distribution-row{display:grid;grid-template-columns:minmax(78px,.75fr) minmax(100px,1fr) 34px;align-items:center;gap:10px}.fault-distribution-row span{min-width:0;color:var(--foreground);font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fault-distribution-row div{height:12px;border-radius:999px;background:var(--muted);overflow:hidden}.fault-distribution-row i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#f97316,var(--accent-strong))}.fault-distribution-row strong{color:var(--foreground);font-weight:850;text-align:right}.fault-table-wrap .fault-table{min-width:1040px}.site-fault-device-table-wrap .site-fault-device-table{min-width:980px}.device-management-page>.panel{background:transparent;border:0;box-shadow:none;padding:0}.device-management-hero{display:flex;justify-content:space-between;gap:20px;align-items:end;border:1px solid rgba(223,232,227,.9);border-radius:var(--radius);background:radial-gradient(circle at 82% 0%,rgba(255,210,0,.18),transparent 180px),linear-gradient(135deg,#00a54e1f,#00cccc14 48%,#fff0 70%),var(--card);box-shadow:var(--shadow);padding:22px}.device-management-hero p,.device-management-hero h2,.device-management-hero span{margin:0}.device-management-hero p,.device-management-hero span,.logger-meta span,.logger-devices span,.logger-identity span,.logger-identity small,.logger-devices small{color:var(--secondary)}.device-management-hero p{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.device-management-hero h2{margin:6px 0 8px;font-size:28px;font-weight:750}.device-management-stats{display:grid;grid-template-columns:repeat(4,minmax(86px,1fr));gap:10px;min-width:min(520px,100%)}.device-management-stats>div{display:grid;gap:4px;padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:#ffffffc7}.device-management-stats>div:nth-child(1){border-color:#0033992e;background:linear-gradient(135deg,var(--accent-soft),rgba(255,255,255,.86))}.device-management-stats>div:nth-child(2){border-color:#00cccc38;background:linear-gradient(135deg,var(--cyan-soft),rgba(255,255,255,.86))}.device-management-stats>div:nth-child(3){border-color:#00a54e33;background:linear-gradient(135deg,var(--mint-soft),rgba(255,255,255,.86))}.device-management-stats>div:nth-child(4){border-color:#ffd20047;background:linear-gradient(135deg,var(--warning-soft),rgba(255,255,255,.88))}.device-management-stats span{color:var(--secondary);font-size:12px}.device-management-stats strong{font-size:22px;font-weight:750}.device-site-list{display:grid;gap:16px}.device-site-card{display:grid;gap:14px;min-width:0;border:1px solid rgba(223,232,227,.9);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow-sm);padding:18px}.device-site-header{display:flex;justify-content:space-between;gap:18px;align-items:start;padding-bottom:14px;border-bottom:1px solid var(--border)}.device-site-header h2,.device-site-header p{margin:0}.device-site-header h2{margin-top:5px;font-size:20px;font-weight:700;overflow-wrap:anywhere}.device-site-header p{display:inline-flex;align-items:center;gap:7px;color:var(--secondary)}.device-site-summary{display:grid;justify-items:end;gap:5px;min-width:110px;text-align:right}.device-site-summary span{color:var(--secondary);font-size:12px}.device-site-summary strong{color:var(--primary-strong);font-size:20px;font-weight:750}.logger-list{display:grid;gap:10px}.logger-row{display:grid;grid-template-columns:minmax(260px,1.6fr) minmax(132px,.75fr) minmax(120px,.7fr) minmax(110px,.58fr) minmax(108px,.58fr) minmax(178px,.95fr) minmax(150px,.8fr);gap:12px;align-items:center;min-width:0;padding:14px;border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(90deg,#0099ff0d,#00cccc0a 32%,#fff0 58%),#fff}.logger-identity{display:flex;align-items:center;gap:12px;min-width:0}.logger-thumb{position:relative;width:50px;height:50px;flex:0 0 50px;display:grid;place-items:center;border:1px solid rgba(0,204,204,.3);border-radius:8px;color:var(--accent);background:linear-gradient(180deg,#e5fbfbeb,#fffffff5);box-shadow:inset 0 -10px 18px #00cccc14}.logger-thumb:before{content:"";position:absolute;top:-7px;left:50%;width:18px;height:8px;border:1px solid rgba(0,153,255,.36);border-bottom:0;border-radius:8px 8px 0 0;transform:translate(-50%)}.logger-thumb .icon{width:26px;height:26px}.logger-identity strong,.logger-meta strong,.logger-devices strong{display:block;min-width:0;font-weight:700;overflow-wrap:anywhere}.logger-identity strong{font-size:17px}.logger-identity small,.logger-devices small{display:block;margin-top:3px;overflow-wrap:anywhere}.logger-meta,.logger-devices{display:grid;gap:4px;min-width:0}.logger-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.logger-actions button{min-height:34px;font-size:13px;font-weight:700}.firmware-upgrade-panel,.replace-logger-form{display:grid;gap:16px}.firmware-status-card,.replace-imei-box{display:grid;gap:6px;padding:16px;border-radius:var(--radius)}.firmware-status-card{border:1px solid rgba(255,210,0,.42);background:linear-gradient(135deg,#ffd20033,#fff0 50%),#fffdf0}.replace-imei-box{border:1px solid rgba(236,0,140,.24);background:linear-gradient(135deg,#ec008c1a,#fff0 52%),#fff}.firmware-status-card span,.replace-imei-box span,.firmware-detail-grid span{color:var(--secondary);font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.firmware-status-card strong,.replace-imei-box strong{font-size:22px;font-weight:750;overflow-wrap:anywhere}.firmware-status-card p,.replace-imei-box small{margin:0;color:var(--secondary)}.firmware-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.firmware-detail-grid>div{display:grid;gap:5px;min-width:0;padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:#f7fbff}.firmware-detail-grid strong{font-weight:700;overflow-wrap:anywhere}.signal-wrap{display:inline-flex;align-items:end;gap:8px}.signal-wrap strong{color:var(--secondary);font-size:13px}.signal-bars{display:inline-flex;align-items:end;gap:3px;height:18px}.signal-bars span{width:5px;border-radius:2px;background:#cfd8d3}.signal-bars span:nth-child(1){height:6px}.signal-bars span:nth-child(2){height:10px}.signal-bars span:nth-child(3){height:14px}.signal-bars span:nth-child(4){height:18px}.signal-bars span.active{background:var(--primary)}.device-management-footer{padding:16px 0 0}.master-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}.master-shell>.panel{min-width:0}.master-hero{display:flex;justify-content:space-between;gap:18px;align-items:end;background:radial-gradient(circle at 88% 0%,rgba(0,204,204,.14),transparent 210px),linear-gradient(135deg,#0099ff1f,#fff0 54%),var(--card)}.master-hero p,.master-hero h2,.master-hero span{margin:0}.master-hero p{color:var(--secondary);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.master-hero h2{margin:6px 0;font-size:28px;font-weight:800}.master-hero>div:first-child>span{color:var(--secondary)}.master-hero-stat{display:grid;gap:4px;min-width:180px;padding:14px;border:1px solid rgba(0,153,255,.18);border-radius:var(--radius);background:#ffffffd1}.master-hero-stat span{color:var(--secondary);font-size:12px;font-weight:700}.master-hero-stat strong{color:var(--accent);font-size:20px;font-weight:800}.master-workspace{display:grid;gap:16px}.master-tabs{display:inline-grid;grid-template-columns:repeat(3,minmax(130px,1fr));gap:8px;width:min(420px,100%);padding:6px;border:1px solid var(--border);border-radius:var(--radius);background:#f7fbff}.master-tab{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;padding:9px 12px;border:1px solid transparent;border-radius:6px;color:var(--secondary);font-weight:800}.master-tab strong{min-width:30px;padding:3px 8px;border-radius:999px;color:var(--accent);background:var(--accent-soft);text-align:center}.master-tab.active{color:var(--foreground);border-color:#0099ff38;background:#fff;box-shadow:var(--shadow-sm)}.master-tab.active strong{color:var(--primary-strong);background:var(--mint-soft)}.master-table-panel{display:grid;gap:14px;min-width:0}.pill-row{display:flex;flex-wrap:wrap;gap:6px;min-width:0}.master-pill,.group-pill,.colour-chip{display:inline-flex;align-items:center;min-height:26px;max-width:100%;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:800;line-height:1;overflow-wrap:anywhere}.master-pill.blue{color:var(--accent);background:var(--accent-soft);border:1px solid rgba(0,51,153,.14)}.master-pill.cyan{color:var(--cyan-strong);background:var(--cyan-soft);border:1px solid rgba(0,204,204,.18)}.group-pill{--group-color: var(--info);color:color-mix(in srgb,var(--group-color) 72%,#10233f);background:color-mix(in srgb,var(--group-color) 13%,#ffffff);border:1px solid color-mix(in srgb,var(--group-color) 34%,#dbe7ed)}.group-pill:before{content:"";width:7px;height:7px;margin-right:6px;border-radius:50%;background:var(--group-color)}.colour-chip{--chip-color: var(--info);color:color-mix(in srgb,var(--chip-color) 72%,#10233f);background:color-mix(in srgb,var(--chip-color) 12%,#ffffff);border:1px solid color-mix(in srgb,var(--chip-color) 34%,#dbe7ed)}.colour-chip:before,.group-name-cell i,.group-colour-dot{content:"";width:10px;height:10px;flex:0 0 10px;border-radius:50%;background:var(--chip-color)}.colour-chip:before{margin-right:7px}.group-name-cell{display:inline-flex;align-items:center;gap:8px;min-width:0;font-weight:800}.colour-input-row{display:grid;grid-template-columns:54px 1fr;gap:10px}.colour-input-row input[type=color]{padding:3px}.site-group-picker{display:grid;gap:10px;padding:14px;border:1px solid rgba(0,153,255,.14);border-radius:var(--radius);background:#f7fbff}.group-option-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px;max-height:190px;overflow:auto}.group-option{display:grid!important;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:8px!important;min-width:0;padding:9px 10px;border:1px solid var(--border);border-radius:var(--radius);background:#fff}.group-option input{width:16px;min-height:16px}.group-option strong{overflow-wrap:anywhere}.group-option small{color:var(--secondary);font-weight:700}.site-reports-section,.site-layout-section,.replacement-history-section{display:grid;gap:14px;min-width:0;border:1px solid rgba(223,232,227,.9);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow-sm);padding:18px}.site-reports-section{gap:16px;background:linear-gradient(135deg,#0033990d,#00cccc0a 45%,#fff0 72%),var(--card)}.section-heading-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.section-heading-row h2,.section-heading-row p{margin:0}.section-heading-row h2{font-size:20px;font-weight:750}.section-heading-row p{margin-top:4px;color:var(--secondary)}.report-heading h2{display:flex;align-items:center;gap:8px}.report-meta{display:grid;justify-items:end;gap:4px;min-width:180px;text-align:right}.report-meta span,.report-metric-tile span,.report-metric-tile small,.report-panel-heading p,.report-insight-list span,.report-insight-list small,.report-pack-card p,.report-pack-card small,.report-table td span{color:var(--secondary)}.report-meta span,.report-metric-tile span,.report-pack-card small{font-size:12px;font-weight:750;letter-spacing:.04em;text-transform:uppercase}.report-meta strong{font-size:14px;font-weight:750}.report-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.report-metric-tile{display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;align-items:center;min-width:0;padding:14px;border:1px solid rgba(223,232,227,.9);border-radius:var(--radius);background:#ffffffe6;box-shadow:var(--shadow-sm)}.report-metric-tile strong{display:block;margin-top:4px;font-size:20px;font-weight:800;overflow-wrap:anywhere}.report-metric-tile small{display:block;margin-top:3px}.report-tile-icon,.report-pack-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:var(--radius);color:var(--accent);background:var(--accent-soft)}.report-metric-tile.success{border-color:#00a54e3d;background:linear-gradient(135deg,var(--mint-soft),rgba(255,255,255,.96))}.report-metric-tile.success .report-tile-icon{color:var(--primary-strong);background:#dff6e8}.report-metric-tile.info{border-color:#0033992e;background:linear-gradient(135deg,var(--accent-soft),rgba(255,255,255,.96))}.report-metric-tile.cyan{border-color:#0cc3;background:linear-gradient(135deg,var(--cyan-soft),rgba(255,255,255,.96))}.report-metric-tile.cyan .report-tile-icon{color:var(--cyan-strong);background:var(--cyan-soft)}.report-metric-tile.warning{border-color:#ffd2004d;background:linear-gradient(135deg,var(--warning-soft),rgba(255,255,255,.96))}.report-metric-tile.warning .report-tile-icon{color:var(--warning-strong);background:var(--warning-soft)}.report-tabs{display:flex;gap:8px;overflow-x:auto;padding:6px;border:1px solid var(--border);border-radius:var(--radius);background:#f7fbffe6}.report-tab{flex:0 0 auto;min-height:38px;padding:8px 14px;color:var(--secondary);border-color:transparent;background:transparent;font-weight:800}.report-tab.active{color:var(--foreground);border-color:#0099ff3d;background:#fff;box-shadow:var(--shadow-sm)}.report-panel-grid{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:14px;align-items:stretch}.report-main-panel,.report-insight-list,.report-pack-card{border:1px solid rgba(223,232,227,.9);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow-sm)}.report-main-panel{display:grid;gap:12px;min-width:0;padding:16px}.report-panel-heading{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.report-panel-heading h3,.report-panel-heading p,.report-pack-card h3,.report-pack-card p{margin:0}.report-panel-heading h3{display:flex;align-items:center;gap:8px;font-size:17px;font-weight:800}.report-panel-heading p{margin-top:4px;font-size:13px}.report-series-chart{display:grid;gap:8px;position:relative;min-width:0}.report-series-chart svg{width:100%;height:220px;overflow:visible}.trend-grid.faint{opacity:.62}.report-series-bar{cursor:crosshair;transition:filter .16s ease,opacity .16s ease}.report-series-bar:hover{filter:brightness(.92)}.report-series-bar.success{fill:var(--primary)}.report-series-bar.info{fill:var(--info)}.report-series-bar.warning{fill:var(--warning)}.report-chart-legend{display:flex;flex-wrap:wrap;gap:10px;color:var(--secondary);font-size:12px;font-weight:750}.report-chart-legend span{display:inline-flex;align-items:center;gap:6px}.report-chart-legend span:before{content:"";width:9px;height:9px;border-radius:2px;background:var(--info)}.report-chart-legend .success:before{background:var(--primary)}.report-chart-legend .warning:before{background:var(--warning)}.report-insight-list{display:grid;gap:10px;padding:14px}.report-insight-list>div{display:grid;gap:4px;min-width:0;padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:#f7fbff}.report-insight-list strong{font-size:22px;font-weight:800;overflow-wrap:anywhere}.report-table-wrap{overflow-x:auto;border:1px solid rgba(223,232,227,.9);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow-sm)}.report-table{width:100%;min-width:920px;border-collapse:collapse}.report-table th,.report-table td{padding:12px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}.report-table th{color:#31443a;background:#eef5f1;font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.report-table td{font-weight:650}.report-table td:first-child{min-width:230px}.report-table td strong,.report-table td span{display:block;overflow-wrap:anywhere}.report-table td span{margin-top:3px;font-size:12px;font-weight:500}.report-pack-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.report-pack-card{display:grid;gap:10px;min-width:0;padding:16px}.report-pack-card>div{display:flex;justify-content:space-between;gap:10px;align-items:center}.report-pack-card h3{font-size:17px;font-weight:800}.report-pack-card p{color:var(--foreground);font-weight:650}.reports-page-hero{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;min-width:0;border:1px solid rgba(223,232,227,.9);border-radius:var(--radius);background:linear-gradient(135deg,#00339914,#00cccc0f 44%,#fff0 72%),var(--card);box-shadow:var(--shadow);padding:20px 22px}.reports-page-hero h2,.reports-page-hero p{margin:0}.reports-page-hero h2{display:flex;align-items:center;gap:9px;margin-top:8px;font-size:28px;font-weight:800}.reports-page-hero p{margin-top:6px;color:var(--secondary)}.report-view-hero{align-items:center}.reports-directory-grid .report-pack-card.clickable{width:100%;min-height:178px;text-align:left;align-content:start;cursor:pointer}.reports-directory-grid .report-pack-card.clickable:hover{transform:translateY(-1px);border-color:#0099ff4d;background:linear-gradient(135deg,#0099ff14,#fff0 48%),#fff}.report-controls-panel{display:flex;align-items:end;justify-content:space-between;gap:14px;min-width:0;padding:16px;border:1px solid rgba(223,232,227,.9);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow-sm)}.report-filter-stack{display:grid;gap:12px;min-width:min(560px,100%)}.report-date-range,.report-assumption-grid{display:grid;grid-template-columns:repeat(2,minmax(150px,1fr));gap:12px}.report-source-selector{display:inline-grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;width:min(560px,100%);padding:5px;border:1px solid var(--border);border-radius:var(--radius);background:#f7fbff}.report-source-option{min-height:36px;padding:7px 10px;color:var(--secondary);border-color:transparent;background:transparent;font-size:13px;font-weight:800}.report-source-option.active{color:var(--foreground);border-color:#0099ff3d;background:#fff;box-shadow:var(--shadow-sm)}.report-date-range label,.report-assumption-grid label{display:grid;gap:7px;color:var(--foreground);font-weight:750}.report-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.site-layout-view{display:grid;gap:12px;min-width:0}.layout-summary-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.layout-summary-strip>div,.layout-editor-stat{display:grid;gap:3px;min-width:0;padding:11px 12px;border:1px solid rgba(223,232,227,.92);border-radius:var(--radius);background:#f7fbff}.layout-summary-strip>div:nth-child(1),.layout-editor-stat:nth-of-type(1){border-color:#0099ff2e;background:linear-gradient(135deg,var(--accent-soft),#ffffff)}.layout-summary-strip>div:nth-child(2),.layout-editor-stat:nth-of-type(2){border-color:#00cccc38;background:linear-gradient(135deg,var(--cyan-soft),#ffffff)}.layout-summary-strip>div:nth-child(3){border-color:#00a54e33;background:linear-gradient(135deg,var(--mint-soft),#ffffff)}.layout-summary-strip>div:nth-child(4){border-color:#f0b42933;background:linear-gradient(135deg,#f0b42924,#fff)}.layout-summary-strip span,.layout-editor-stat span{color:var(--secondary);font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.layout-summary-strip strong,.layout-editor-stat strong{font-size:18px;font-weight:800}.layout-health-legend{display:flex;flex-wrap:wrap;gap:8px}.layout-health-legend span{display:inline-flex;align-items:center;gap:7px;min-height:28px;padding:4px 9px;border:1px solid rgba(217,228,237,.9);border-radius:999px;color:var(--secondary);background:#fff;font-size:12px;font-weight:800}.layout-health-legend i{width:11px;height:11px;border-radius:50%}.layout-health-legend .healthy{background:#32c878}.layout-health-legend .watch{background:#f0b429}.layout-health-legend .low{background:#ef4444}.layout-health-legend .unknown{background:#93a4b5}.layout-canvas{position:relative;min-width:0;overflow:auto;padding:84px 14px 14px 88px;border:1px solid rgba(223,232,227,.9);border-radius:var(--radius);background:radial-gradient(circle at 28px 28px,rgba(0,153,255,.12),transparent 92px),radial-gradient(circle at calc(100% - 40px) 42px,rgba(255,210,0,.12),transparent 120px),linear-gradient(180deg,#f7fbfff5,#fffffff5),#fff}.layout-canvas.editor{max-height:min(68vh,760px)}.layout-compass{position:absolute;top:12px;left:12px;z-index:2;width:58px;height:58px;border:1px solid rgba(0,153,255,.24);border-radius:50%;color:var(--accent);background:#ffffffeb;box-shadow:var(--shadow-sm);font-size:10px;font-weight:800}.layout-compass span,.layout-compass i{position:absolute}.layout-compass .north{top:4px;left:50%;transform:translate(-50%)}.layout-compass .east{right:6px;top:50%;transform:translateY(-50%)}.layout-compass .south{bottom:4px;left:50%;transform:translate(-50%)}.layout-compass .west{left:6px;top:50%;transform:translateY(-50%)}.layout-compass i{top:17px;right:17px;bottom:17px;left:17px;border-top:12px solid var(--cyan);border-inline:6px solid transparent;transform:translateY(1px)}.solar-layout-grid{display:grid;grid-template-columns:repeat(var(--layout-columns),100px);gap:6px;min-width:max-content}.solar-panel-cell{position:relative;display:grid;place-items:center;width:100px;height:150px;min-width:100px;min-height:150px;padding:4px;overflow:hidden;border:1px solid rgba(207,216,211,.92);border-radius:6px;color:var(--secondary);background:linear-gradient(135deg,#10233f09,#fff0 50%),#eef3f6}button.solar-panel-cell{cursor:pointer;height:auto}button.solar-panel-cell:hover{border-color:#0099ff61;background:linear-gradient(135deg,#0099ff14,#fff0 50%),#f5fbff}.solar-panel-cell.mapped{border-style:solid;border-color:#00cccc4d;color:var(--foreground);background:#f9fcfa}.solar-panel-cell.string-mapped{border-color:#32c8786b}.solar-panel-cell.string-health-healthy{background:linear-gradient(145deg,#d8ffe8eb,#94ebb9b8 46%,#28bb6b6b),#effcf5}.solar-panel-cell.string-health-idle,.solar-panel-cell.string-health-watch{border-color:#f0b42980;background:linear-gradient(145deg,#fff9daeb,#ffe098b3 48%,#f0b4296b),#fff9e8}.solar-panel-cell.string-health-low{border-color:#ef44448a;background:linear-gradient(145deg,#ffe8e2f0,#ffb59eb3 50%,#ef444461),#fff2ee}.solar-panel-cell.string-health-unknown{border-color:#93a4b580;background:linear-gradient(145deg,#f5f8fbf0,#e0e8f0b8),#f3f7fb}.solar-panel-cell.selected{outline:2px solid rgba(0,153,255,.68);outline-offset:2px}.panel-image-wrap{position:relative;display:grid;place-items:center;width:100%;height:100%;max-width:100%;max-height:100%;min-height:42px;overflow:hidden;border-radius:5px;transform:perspective(420px) rotateX(var(--panel-rotate-x)) rotateY(var(--panel-rotate-y));transform-style:preserve-3d;transition:transform .18s ease,filter .18s ease}.panel-image-wrap img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:center;filter:drop-shadow(0 8px 10px rgba(17,45,31,.14));pointer-events:none}.panel-image-wrap strong{position:absolute;left:5px;right:5px;bottom:5px;max-width:calc(100% - 10px);padding:3px 4px;border-radius:4px;color:#fff;background:#0a1811b8;font-size:10px;font-weight:800;line-height:1.15;text-align:center;overflow-wrap:anywhere}.panel-string-badge{position:absolute;top:5px;left:5px;right:5px;max-width:calc(100% - 10px);padding:3px 4px;border-radius:4px;color:#082018;background:#ffffffd1;font-size:9px;font-weight:850;line-height:1.1;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layout-editor{display:grid;gap:16px;min-height:0}.layout-editor-controls{display:grid;grid-template-columns:repeat(4,minmax(0,160px));gap:12px}.layout-editor-controls label{display:grid;gap:6px;font-weight:700}.layout-editor-workbench{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:16px;align-items:start;min-height:0}.panel-inspector{position:sticky;top:0;display:grid;gap:14px;min-width:0;padding:16px;border:1px solid rgba(223,232,227,.92);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow-sm)}.panel-inspector>div,.selected-device-card{display:grid;gap:5px}.panel-inspector-preview{display:grid;place-items:center;height:50px;min-height:50px;overflow:hidden;padding:6px;border:1px solid rgba(0,204,204,.2);border-radius:var(--radius);background:linear-gradient(135deg,#00cccc1f,#ffd2001a 56%,#fff0 78%),#f7fbff}.panel-inspector-preview .panel-image-wrap{width:min(72px,100%);height:44px;max-height:44px}.panel-inspector span,.selected-device-card span{color:var(--secondary);font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.panel-inspector strong,.selected-device-card strong{font-weight:750;overflow-wrap:anywhere}.panel-inspector small,.selected-device-card small{color:var(--secondary);overflow-wrap:anywhere}.panel-inspector label,.range-field{display:grid;gap:7px;font-weight:700}.range-field span{display:flex;justify-content:space-between;gap:10px;color:var(--foreground);letter-spacing:0;text-transform:none}.range-axis-labels{display:flex;justify-content:space-between;margin-bottom:-3px;color:var(--secondary);font-size:11px;font-style:normal;font-weight:800}.range-axis-labels em{font-style:normal}.range-field input[type=range]{accent-color:var(--primary)}.range-field small{color:var(--secondary);font-weight:500}.replacement-history-list{display:grid;gap:10px}.replacement-history-card{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:14px;border:1px solid var(--border);border-radius:var(--radius);background:#fff}.replacement-history-card div{display:grid;gap:4px;min-width:0}.replacement-history-card span{color:var(--secondary);font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.replacement-history-card strong{font-weight:700;overflow-wrap:anywhere}.replacement-history-card small{color:var(--secondary)}html[data-theme=dark] body{background:linear-gradient(180deg,#06111d 0%,#0a1624 320px,var(--background) 100%)}html[data-theme=dark] button{background:#111f2e;color:var(--foreground);border-color:var(--border)}html[data-theme=dark] button:hover{background:#17283a;border-color:#78b9ff75}html[data-theme=dark] input,html[data-theme=dark] select,html[data-theme=dark] textarea{background:#0b1724;color:var(--foreground);border-color:var(--border)}html[data-theme=dark] input::placeholder,html[data-theme=dark] textarea::placeholder{color:#64798c}html[data-theme=dark] .sidebar,html[data-theme=dark] .topbar,html[data-theme=dark] .mobile-appbar,html[data-theme=dark] .app-footer,html[data-theme=dark] .legal-header{background:#0a1624e0;border-color:var(--border)}html[data-theme=dark] .sidebar{box-shadow:18px 0 44px #00000038}html[data-theme=dark] .brand,html[data-theme=dark] .site-console-header,html[data-theme=dark] .meter-header,html[data-theme=dark] .device-site-header,html[data-theme=dark] .inverter-tabs,html[data-theme=dark] .site-section-tabs,html[data-theme=dark] .modal-header,html[data-theme=dark] .modal-footer,html[data-theme=dark] .device-tabs{border-color:var(--border)}html[data-theme=dark] .nav-list a.active{color:var(--accent-strong);background:linear-gradient(90deg,#78b9ff29,#4bdddc14);border-right-color:var(--cyan)}html[data-theme=dark] .nav-list a:hover,html[data-theme=dark] .logout-button:hover{background:#132233}html[data-theme=dark] .theme-toggle{background:#0a1522;border-color:#2b4258;box-shadow:inset 0 1px #ffffff0d}html[data-theme=dark] .theme-toggle:before{background:linear-gradient(135deg,#1b3044,#122438);box-shadow:0 8px 18px #00000057,inset 0 1px #ffffff14}html[data-theme=dark] .avatar{color:#06110c;box-shadow:0 10px 26px #35d4873d}html[data-theme=dark] .panel,html[data-theme=dark] .metric-card,html[data-theme=dark] .login-card,html[data-theme=dark] .plant-card,html[data-theme=dark] .group-card,html[data-theme=dark] .group-header,html[data-theme=dark] .site-title-row,html[data-theme=dark] .legal-document,html[data-theme=dark] .device-site-card,html[data-theme=dark] .meter-card,html[data-theme=dark] .inverter-monitor-card,html[data-theme=dark] .inverter-summary-card,html[data-theme=dark] .inverter-device-card,html[data-theme=dark] .report-pack-card,html[data-theme=dark] .report-metric-tile,html[data-theme=dark] .report-main-panel,html[data-theme=dark] .master-hero,html[data-theme=dark] .master-tab,html[data-theme=dark] .master-table-panel,html[data-theme=dark] .modal-card,html[data-theme=dark] .devices-console-card{background:linear-gradient(180deg,#111f2efa,#0d1826fa);border-color:var(--border);box-shadow:var(--shadow-sm)}html[data-theme=dark] .panel,html[data-theme=dark] .chart-surface{background:linear-gradient(180deg,#111f2e,#0d1826)}html[data-theme=dark] .site-console,html[data-theme=dark] .site-console-title h2,html[data-theme=dark] .plant-card h3,html[data-theme=dark] .power-ring strong,html[data-theme=dark] .overview-metrics strong,html[data-theme=dark] .overview-tile-row strong,html[data-theme=dark] .environment-card strong,html[data-theme=dark] .meter-header h2,html[data-theme=dark] .metric-pill strong,html[data-theme=dark] .device-tree-panel h3,html[data-theme=dark] .device-site-header h2,html[data-theme=dark] .app-footer-message strong,html[data-theme=dark] .legal-content h2,html[data-theme=dark] .site-info-card dd,html[data-theme=dark] .install-card dd{color:var(--foreground)}html[data-theme=dark] .site-console-title p,html[data-theme=dark] .power-ring span,html[data-theme=dark] .overview-metrics span,html[data-theme=dark] .overview-tile-row span,html[data-theme=dark] .environment-card span,html[data-theme=dark] .site-info-card dt,html[data-theme=dark] .install-card dt,html[data-theme=dark] .timeline-legend,html[data-theme=dark] .mppt-pagination,html[data-theme=dark] .meter-header p,html[data-theme=dark] .meter-header span,html[data-theme=dark] .meter-status small,html[data-theme=dark] .metric-pill span,html[data-theme=dark] .device-tree-subheading,html[data-theme=dark] .device-site-header p,html[data-theme=dark] .device-site-summary span,html[data-theme=dark] .legal-content p{color:var(--secondary)}html[data-theme=dark] .overview-tile-row div,html[data-theme=dark] .metric-pill,html[data-theme=dark] .daily-panel,html[data-theme=dark] .device-tree-panel,html[data-theme=dark] .device-row,html[data-theme=dark] .device-card,html[data-theme=dark] .logger-row,html[data-theme=dark] .firmware-detail-grid>div,html[data-theme=dark] .replacement-history-card,html[data-theme=dark] .weather-grid div{background:#0b1724;border-color:var(--border)}html[data-theme=dark] .metric-pill-icon,html[data-theme=dark] .group-card-icon,html[data-theme=dark] .report-tile-icon,html[data-theme=dark] .report-pack-icon,html[data-theme=dark] .card-action-icon{color:var(--accent-strong);background:var(--accent-soft)}html[data-theme=dark] .power-ring{background:radial-gradient(circle at center,#101d2b 61%,transparent 62%),conic-gradient(var(--primary) var(--ring-progress),#26394c 0);box-shadow:0 0 46px #35d4872e}html[data-theme=dark] .segmented-control{background:#0a1522;border-color:var(--border)}html[data-theme=dark] .segmented-control button{color:var(--secondary);background:transparent}html[data-theme=dark] .segmented-control button.active{color:#06110c;background:var(--primary)}html[data-theme=dark] .device-tree-logger,html[data-theme=dark] .device-tree-item{color:#c9d6e3}html[data-theme=dark] .device-tree-item{background:linear-gradient(180deg,#111f2efa,#0a1522fa);border-color:#536f8b6b;box-shadow:0 12px 24px #00000024}html[data-theme=dark] .device-tree-item:hover{border-color:#72ecad80;box-shadow:0 16px 30px #00000038}html[data-theme=dark] .device-tree-item.active{color:var(--foreground);background:linear-gradient(135deg,#35d48729,#4bdddc12),#0f1d2b;border-color:#72ecada3;box-shadow:0 16px 34px #00000040,inset 3px 0 #72ecadf2}html[data-theme=dark] .device-tree-card-head strong{color:var(--foreground)}html[data-theme=dark] .device-tree-icon{color:#f0c94d;background:#f0c94d21}html[data-theme=dark] .device-tree-status.online{color:#72ecad}html[data-theme=dark] .device-tree-status.offline,html[data-theme=dark] .device-tree-meta-line,html[data-theme=dark] .device-tree-card-foot{color:var(--secondary)}html[data-theme=dark] .device-tab-buttons button{color:#9dafc1;background:transparent}html[data-theme=dark] .device-tab-buttons button.active{color:var(--primary);border-bottom-color:var(--primary)}html[data-theme=dark] .device-refresh-button{background:#0b1724;color:var(--foreground);border-color:var(--border)}html[data-theme=dark] .device-refresh-button:hover:not(:disabled){color:var(--primary);border-color:#35d48780}html[data-theme=dark] .data-table th,html[data-theme=dark] .report-table th,html[data-theme=dark] .inverter-metric-table th{background:#142235;color:#c9d6e3}html[data-theme=dark] .data-table th,html[data-theme=dark] .data-table td,html[data-theme=dark] .report-table th,html[data-theme=dark] .report-table td,html[data-theme=dark] .inverter-metric-table th,html[data-theme=dark] .inverter-metric-table td{border-color:var(--border)}html[data-theme=dark] .data-table tbody tr:hover,html[data-theme=dark] .report-table tbody tr:hover{background:#35d4870f}html[data-theme=dark] .status.ok{color:#8af0bd;background:#35d48724}html[data-theme=dark] .status.off{color:#9aabba;background:#172637}html[data-theme=dark] .status.warn{color:var(--warning-strong);background:#f1cb5224}html[data-theme=dark] .primary-button{color:#06110c;background:linear-gradient(135deg,var(--primary),var(--primary-strong));border-color:var(--primary-strong)}html[data-theme=dark] .firmware-button{color:#1b1604}html[data-theme=dark] .replace-button,html[data-theme=dark] .replace-confirm-button{color:#fff}html[data-theme=dark] .master-hero-stat,html[data-theme=dark] .site-title-actions>span,html[data-theme=dark] .group-header>span,html[data-theme=dark] .firmware-status-card,html[data-theme=dark] .replace-imei-box,html[data-theme=dark] .logo-uploader,html[data-theme=dark] .logo-preview-frame,html[data-theme=dark] .logo-uploader-locked,html[data-theme=dark] .table-logo{background:#0b1724;border-color:var(--border)}html[data-theme=dark] .logger-thumb{color:var(--cyan-strong);background:linear-gradient(180deg,#123a3deb,#0b1724f5);border-color:#4bdddc47}html[data-theme=dark] .modal-footer{background:#0b1724}html[data-theme=dark] .empty-trend,html[data-theme=dark] .empty-state{color:#75889b;background:#0b1724;border-color:var(--border)}html[data-theme=dark] .chart-grid-line,html[data-theme=dark] .timeline-grid-line{stroke:#26394c}html[data-theme=dark] .site-console,html[data-theme=dark] .content-pane{color:var(--foreground)}html[data-theme=dark] .site-title-row,html[data-theme=dark] .group-card,html[data-theme=dark] .site-reports-section,html[data-theme=dark] .report-main-panel,html[data-theme=dark] .device-management-hero,html[data-theme=dark] .reports-page-hero{background:linear-gradient(135deg,#78b9ff14,#4bdddc0d 48%,#35d48708),linear-gradient(180deg,#122233fa,#0b1724fa)}html[data-theme=dark] .group-card:nth-child(2n),html[data-theme=dark] .group-card:nth-child(3n){background:linear-gradient(135deg,#4bdddc14,#f1cb520a 54%,#ff62b708),linear-gradient(180deg,#122233fa,#0b1724fa)}html[data-theme=dark] .device-detail-panel,html[data-theme=dark] .device-tab-panel,html[data-theme=dark] .device-basic-info,html[data-theme=dark] .device-data-toolbar{background:transparent;color:var(--foreground)}html[data-theme=dark] .device-basic-info h3,html[data-theme=dark] .device-info-grid strong,html[data-theme=dark] .inverter-tab strong,html[data-theme=dark] .inverter-detail-panel h3,html[data-theme=dark] .trend-panel h3,html[data-theme=dark] .compact-metric strong,html[data-theme=dark] .inverter-status-grid strong,html[data-theme=dark] .inverter-metric-table td,html[data-theme=dark] .string-current-cell strong,html[data-theme=dark] .weather-grid strong{color:var(--foreground)}html[data-theme=dark] .device-info-grid span,html[data-theme=dark] .inverter-tab span,html[data-theme=dark] .inverter-tab small,html[data-theme=dark] .inverter-detail-panel p,html[data-theme=dark] .trend-panel p,html[data-theme=dark] .compact-metric span,html[data-theme=dark] .weather-grid span{color:var(--secondary)}html[data-theme=dark] .trend-panel,html[data-theme=dark] .inverter-detail-panel,html[data-theme=dark] .daily-panel,html[data-theme=dark] .string-panel,html[data-theme=dark] .fault-panel{background:linear-gradient(180deg,#122233fa,#0a1522fa);border-color:#536f8b75;box-shadow:0 14px 34px #0000003d,inset 0 1px #ffffff09}html[data-theme=dark] .trend-panel:hover,html[data-theme=dark] .inverter-detail-panel:hover{border-color:#78b9ff5c}html[data-theme=dark] .chart-surface,html[data-theme=dark] .plant-timeline-chart,html[data-theme=dark] .production-bar-chart,html[data-theme=dark] .trend-chart,html[data-theme=dark] .daily-chart,html[data-theme=dark] .report-series-chart{background:linear-gradient(180deg,#09131f9e,#08111c5c);border-color:#536f8b6b}html[data-theme=dark] .chart-tooltip{color:var(--foreground);background:#0a1522f5;border-color:#78b9ff47;box-shadow:0 18px 38px #00000061}html[data-theme=dark] .trend-grid{stroke:#2a4055}html[data-theme=dark] .trend-grid.faint{stroke:#213448}html[data-theme=dark] .trend-line{stroke:#78b9ff;filter:drop-shadow(0 0 5px rgba(120,185,255,.18))}html[data-theme=dark] .trend-hitpoint{fill:#78b9ff1a;stroke:#78b9ff47}html[data-theme=dark] .daily-bar{fill:#4bdddc;filter:drop-shadow(0 0 5px rgba(75,221,220,.14))}html[data-theme=dark] .daily-bar.no-data{fill:#2b4053;opacity:.72}html[data-theme=dark] .production-bar{filter:drop-shadow(0 0 5px rgba(53,212,135,.12))}html[data-theme=dark] .chart-axis-label{fill:#9eb0c2}html[data-theme=dark] .trend-caption{color:var(--secondary)}html[data-theme=dark] .trend-caption strong{color:var(--foreground)}html[data-theme=dark] .compact-metric,html[data-theme=dark] .inverter-status-grid>div,html[data-theme=dark] .string-current-cell,html[data-theme=dark] .live-parameter-list .icon,html[data-theme=dark] .string-comparison-row div,html[data-theme=dark] .performance-analysis-grid>div,html[data-theme=dark] .current-fault-card,html[data-theme=dark] .mapping-status-list div,html[data-theme=dark] .fault-distribution-row div,html[data-theme=dark] .device-info-grid div,html[data-theme=dark] .weather-grid div,html[data-theme=dark] .plugin-picker,html[data-theme=dark] .site-location-picker,html[data-theme=dark] .plugin-option,html[data-theme=dark] .site-group-picker,html[data-theme=dark] .group-option{background:linear-gradient(135deg,#4bdddc0b,#78b9ff09),#0b1724;border-color:#536f8b6b}html[data-theme=dark] .inverter-table-wrap{border:1px solid rgba(83,111,139,.34);border-radius:var(--radius);background:#0b1724}html[data-theme=dark] .inverter-metric-table th{background:#142235}html[data-theme=dark] .inverter-metric-table tbody tr:hover,html[data-theme=dark] .data-table tbody tr:hover,html[data-theme=dark] .report-table tbody tr:hover{background:#78b9ff12}html[data-theme=dark] .inverter-tab{background:linear-gradient(180deg,#111f2ef5,#0b1724f5);border-color:#536f8b75}html[data-theme=dark] .inverter-tab:hover{border-color:#78b9ff80}html[data-theme=dark] .inverter-tab.active{color:var(--foreground);background:linear-gradient(135deg,#78b9ff2b,#4bdddc17),#101d2b;border-color:#78b9ffad;box-shadow:0 12px 28px #0000003d}html[data-theme=dark] .site-section-tabs,html[data-theme=dark] .device-tabs{background:#0a1522eb}html[data-theme=dark] .string-table-filters{background:#0a1522d1;border-color:#536f8b75}html[data-theme=dark] .string-table-filters button{color:#9dafc1}html[data-theme=dark] .string-table-filters button.active{color:var(--foreground);border-color:#78b9ff6b;background:#101d2b}html[data-theme=dark] .site-section-tabs a,html[data-theme=dark] .device-tab-buttons button{color:#9dafc1}html[data-theme=dark] .site-section-tabs a.active,html[data-theme=dark] .device-tab-buttons button.active{color:#72ecad}html[data-theme=dark] .live-parameter-list span,html[data-theme=dark] .string-details-toolbar p,html[data-theme=dark] .string-panel p,html[data-theme=dark] .string-table-note,html[data-theme=dark] .faults-toolbar p,html[data-theme=dark] .fault-panel p,html[data-theme=dark] .current-fault-card small,html[data-theme=dark] .mapping-status-list span,html[data-theme=dark] .performance-analysis-grid span,html[data-theme=dark] .performance-analysis-grid small{color:var(--secondary)}html[data-theme=dark] .string-details-toolbar h3,html[data-theme=dark] .string-panel h3,html[data-theme=dark] .faults-toolbar h3,html[data-theme=dark] .fault-panel h3,html[data-theme=dark] .current-fault-card strong,html[data-theme=dark] .mapping-status-list strong,html[data-theme=dark] .fault-distribution-row span,html[data-theme=dark] .fault-distribution-row strong,html[data-theme=dark] .live-parameter-list strong,html[data-theme=dark] .string-comparison-row span,html[data-theme=dark] .string-comparison-row strong,html[data-theme=dark] .performance-analysis-grid strong,html[data-theme=dark] .performance-analysis-grid b{color:var(--foreground)}html[data-theme=dark] .dashboard-control-bar,html[data-theme=dark] .dashboard-refresh-overlay{color:var(--foreground);background:#0b1724f0;border-color:#536f8b75;box-shadow:0 12px 30px #0000003d}html[data-theme=dark] .skeleton-line,html[data-theme=dark] .skeleton-block{background:linear-gradient(90deg,#0b1724,#162a3d,#0b1724 88%);background-size:220% 100%}@media(max-width:1100px){.kpi-grid{grid-template-columns:1fr 1fr}.inverter-summary-grid,.inverter-detail-grid,.report-metric-grid,.report-pack-grid,.report-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.report-panel-grid{grid-template-columns:1fr}.device-management-hero{align-items:stretch;display:grid}.device-management-stats{min-width:0}.master-grid{grid-template-columns:1fr}.master-hero{display:grid;align-items:stretch}.master-hero-stat{min-width:0}.logger-row{grid-template-columns:minmax(240px,1.4fr) repeat(2,minmax(120px,.8fr))}.logger-actions{justify-content:flex-start}.solar-layout-grid{overflow-x:auto}.layout-editor-workbench{grid-template-columns:1fr}.panel-inspector{position:static}.layout-editor-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.login-panel{grid-template-columns:1fr 380px}}@media(max-width:900px){.app-shell{display:block;padding-top:62px}.sidebar{position:fixed;inset:0 auto 0 0;z-index:30;width:min(320px,86vw);height:100dvh;padding:16px;overflow-y:auto;transform:translate(-105%);transition:transform .18s ease;box-shadow:22px 0 44px #10233f2e;overscroll-behavior:contain}.mobile-nav-open .sidebar{transform:translate(0)}.brand{grid-template-columns:minmax(0,1fr) 38px;align-items:center;min-height:60px}.brand img{grid-column:1;width:148px}.brand>div{grid-column:1}.mobile-appbar{position:fixed;inset:0 0 auto;z-index:25;display:grid;grid-template-columns:42px auto minmax(0,1fr);align-items:center;gap:10px;min-height:62px;padding:9px 14px;border-bottom:1px solid var(--border);background:#fffffff0;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.mobile-appbar img{width:92px;max-height:38px;object-fit:contain}.mobile-appbar-title{display:grid;min-width:0}.mobile-appbar-title strong,.mobile-appbar-title span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-appbar-title strong{font-size:14px;font-weight:760}.mobile-appbar-title span{color:var(--secondary);font-size:12px;font-weight:600}.mobile-menu-button,.mobile-nav-close{width:38px;min-height:38px;padding:0;display:grid;place-items:center}.mobile-nav-close{justify-self:end;grid-column:2;grid-row:1 / span 2}.mobile-nav-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:29;display:block;width:100%;min-height:100dvh;padding:0;border:0;border-radius:0;background:#10233f5c}.nav-label{margin-top:18px}.nav-list{grid-template-columns:1fr}.nav-list a.active{border-right:0;border-bottom:2px solid var(--primary)}.logout-button{width:100%;margin-top:8px}.topbar{display:none}.content-pane{padding:24px}.app-footer{padding-inline:24px}}@media(max-width:760px){.login-panel{display:block}.topbar{height:auto;padding:18px;align-items:flex-start}.profile{display:none}.content-pane{padding:18px}.app-footer{display:grid;align-items:start;padding:18px}.app-footer-links{justify-content:flex-start}.kpi-grid,.form-grid{grid-template-columns:1fr}.toolbar,.panel-heading{flex-direction:column;align-items:stretch}.device-row{grid-template-columns:1fr}.table-wrap{margin-inline:-10px;padding-inline:10px}.data-table{min-width:680px}.empty-cell{text-align:left}.table-footer{align-items:flex-start}.pager{width:100%;justify-content:space-between}.chart-surface{min-height:240px;gap:7px;padding:16px}.metric-card{padding:18px}.modal-backdrop{padding:10px;align-items:end}.modal-card{max-height:calc(100vh - 20px)}.modal-header,.modal-footer,.modal-body{padding:16px}.modal-footer{flex-direction:column-reverse;align-items:stretch}.logo-uploader{grid-template-columns:1fr;padding:12px}.logo-uploader-locked{min-height:220px}.login-brand{margin-bottom:22px}.login-brand h1{font-size:36px}.login-card{padding:22px}.login-footer{width:100%}.legal-header{padding:16px 18px}.legal-brand{display:grid;gap:6px}.legal-brand img{width:132px}.legal-document{width:calc(100% - 28px);margin-block:18px 28px}.legal-hero,.legal-content{padding-inline:20px}.legal-hero{padding-block:26px}.legal-content{padding-block:26px 30px}.legal-hero h1{font-size:30px}.site-hero{display:grid}.site-title-row,.meter-header,.group-header,.inverter-device-card header{display:grid}.group-header>span{justify-self:start}.metric-pill.col-3,.metric-pill.col-2{grid-column:span 6}.daily-energy-grid{grid-template-columns:1fr}.meter-status{justify-items:start;text-align:left}.hero-metrics{text-align:left}.inverter-summary-grid,.inverter-detail-grid,.inverter-status-grid,.compact-metrics{grid-template-columns:1fr}.device-management-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.device-site-header{display:grid}.device-site-summary{justify-items:start;text-align:left}.logger-row{grid-template-columns:1fr;align-items:stretch}.logger-meta,.logger-devices,.logger-actions{grid-template-columns:minmax(110px,.7fr) 1fr;align-items:center;padding-top:10px;border-top:1px solid var(--border)}.logger-meta .status{justify-self:start}.logger-devices small{grid-column:2}.logger-actions{display:grid;grid-template-columns:1fr}.firmware-detail-grid{grid-template-columns:1fr}.section-heading-row,.reports-page-hero,.replacement-history-card{grid-template-columns:1fr;display:grid}.report-meta{justify-items:start;min-width:0;text-align:left}.report-panel-heading{display:grid}.report-controls-panel{display:grid;align-items:stretch}.layout-summary-strip{grid-template-columns:1fr 1fr 1fr}.layout-canvas{padding:84px 10px 10px 78px}}@media(max-width:460px){.sidebar,.topbar,.content-pane{padding-inline:14px}.brand img{width:112px;max-width:54%;height:auto}.topbar h1{font-size:22px}.login-screen{padding:14px}.login-footer{padding-top:16px}.login-brand h1{font-size:31px}.legal-header{align-items:flex-start}.legal-login-link{min-height:34px;padding-inline:11px}.legal-hero h1{font-size:27px}.metric-card strong{font-size:26px}.site-hero h2{font-size:28px}.hero-metrics strong{font-size:34px}.metric-pill.col-3,.metric-pill.col-2{grid-column:span 12}.device-management-hero{padding:18px}.device-management-hero h2{font-size:24px}.device-management-stats{grid-template-columns:1fr 1fr}.report-metric-grid,.report-pack-grid,.report-summary-grid{grid-template-columns:1fr}.report-metric-tile{grid-template-columns:38px minmax(0,1fr)}.report-tabs{padding:4px}.report-tab{padding-inline:10px}.report-date-range,.report-assumption-grid,.report-source-selector{grid-template-columns:1fr}.report-download-button{width:100%}.device-site-card{padding:14px}.logger-row{padding:12px}.logger-thumb{width:44px;height:44px;flex-basis:44px}.layout-editor-controls{grid-template-columns:1fr 1fr}.layout-summary-strip{grid-template-columns:1fr}.panel-image-wrap strong{font-size:9px}}@media(max-width:760px){body{background:var(--background)}button,input,select,textarea{font-size:16px}.content-pane{padding:14px}.site-console{gap:14px}.site-console-header{align-items:stretch;min-height:0;padding:0 0 10px}.site-console-title h2{font-size:21px}.site-console-title p{align-items:flex-start;font-size:13px;line-height:1.35}.site-section-tabs{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(72px,1fr);justify-content:start;gap:6px;max-width:100%;padding:6px;overflow-x:auto;border:1px solid var(--border);border-radius:8px;background:#fff;box-shadow:var(--shadow-sm);scrollbar-width:none}.site-section-tabs::-webkit-scrollbar,.device-tabs::-webkit-scrollbar,.report-tabs::-webkit-scrollbar{display:none}.site-section-tab{min-width:0;min-height:54px;padding:6px;border-radius:8px;white-space:nowrap}.site-section-tab.active{background:var(--primary-soft)}.dashboard-control-bar,.site-range-control{display:grid;grid-template-columns:1fr;align-items:stretch}.dashboard-control-bar{padding:12px}.site-range-control,.site-range-control.compact{justify-content:stretch}.site-range-control .segmented-control,.site-range-control label,.site-range-control input,.site-range-control.compact input{width:100%}.site-range-control .segmented-control{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.plant-card{padding:16px}.plant-card h3{font-size:19px}.overview-body{min-height:0;gap:18px}.power-ring{width:min(230px,74vw)}.power-ring strong{font-size:24px}.overview-metrics,.overview-tile-row{gap:10px}.overview-metrics strong,.environment-card strong{font-size:22px}.overview-tile-row div,.weather-grid div{padding:12px}.site-info-card dl div,.install-card dl div{grid-template-columns:1fr;gap:4px}.site-info-card dd,.install-card dd{text-align:left}.environment-card div{grid-template-columns:44px minmax(0,1fr)}.environment-card .icon{width:40px;height:40px}.plant-timeline-chart,.production-bar-chart,.daily-chart,.trend-chart,.report-series-chart{min-width:0;overflow:hidden}.plant-timeline-chart{min-height:230px}.plant-timeline-chart svg{min-height:210px}.production-bar-chart,.report-series-chart svg{min-height:190px}.production-heatmap{grid-template-columns:repeat(auto-fit,minmax(7px,1fr));min-height:92px;padding-top:12px}.production-heatmap span{min-height:22px}.dc-side-grid{gap:12px}.devices-console-card{min-height:0}.device-tree-panel{padding:16px}.device-tree-panel h3{margin-bottom:12px;font-size:18px}.device-tree{grid-template-columns:1fr;max-height:340px;overflow:auto;gap:12px;margin-top:14px;padding-right:2px}.device-tree-item{min-height:0;padding:10px;border-radius:8px}.device-tree-subheading{padding-left:10px}.device-tree-item.active{box-shadow:inset 3px 0 #32c878}.device-tabs{min-height:54px;gap:8px;padding:0 12px}.device-tab-buttons{gap:14px;overflow-x:auto}.device-tab-buttons button{min-height:54px;font-size:15px}.device-refresh-button{height:34px;padding:0 10px;font-size:12px}.device-tab-panel,.device-basic-info{padding:16px}.device-data-actions,.device-data-actions .segmented-control,.device-data-actions .site-range-control{width:100%}.device-data-actions .segmented-control{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.report-metric-grid,.report-pack-grid,.report-summary-grid{grid-template-columns:1fr}.reports-page-hero{padding:16px}.reports-page-hero h2{font-size:22px}.reports-directory-grid .report-pack-card.clickable{min-height:132px}.report-controls-panel,.report-filter-stack,.report-date-range,.report-assumption-grid,.report-source-selector{width:100%}.report-source-selector{grid-template-columns:1fr}.report-table-wrap,.inverter-table-wrap,.table-wrap{margin-inline:-6px;border-radius:8px}.report-table{min-width:760px}.report-table th,.report-table td{padding:10px}.inverter-summary-card,.metric-pill,.report-metric-tile,.report-pack-card{min-width:0}.inverter-tabs{overflow-x:auto;padding-bottom:4px}.inverter-tab{min-width:min(260px,78vw)}.inverter-detail-panel{padding:16px}.inverter-status-grid,.string-current-grid{gap:10px}.layout-editor-controls{grid-template-columns:1fr 1fr}.layout-editor-modal .modal-card{width:min(100%,760px)}.app-footer{font-size:12px}}@media(max-width:460px){.mobile-appbar{grid-template-columns:38px 76px minmax(0,1fr);padding-inline:10px}.mobile-appbar img{width:76px}.content-pane{padding-inline:10px}.site-section-tabs{grid-auto-columns:64px}.site-section-tab span{font-size:11px}.site-section-tab .icon{width:21px;height:21px}.plant-card{padding:14px}.overview-tile-row strong,.weather-grid strong{font-size:18px}.report-table{min-width:700px}}html[data-theme=dark] .mobile-appbar{background:#0a1624f0;border-bottom-color:var(--border);box-shadow:0 14px 34px #0000003d}html[data-theme=dark] .topbar h1,html[data-theme=dark] .profile-details strong,html[data-theme=dark] .mobile-appbar-title strong,html[data-theme=dark] .dashboard-control-bar strong,html[data-theme=dark] .report-meta strong,html[data-theme=dark] .section-heading-row h2,html[data-theme=dark] .report-metric-tile strong,html[data-theme=dark] .report-pack-card h3,html[data-theme=dark] .report-insight-list strong,html[data-theme=dark] .report-table td,html[data-theme=dark] .layout-summary-strip strong,html[data-theme=dark] .layout-editor-stat strong,html[data-theme=dark] .panel-inspector strong,html[data-theme=dark] .selected-device-card strong,html[data-theme=dark] .master-hero h2,html[data-theme=dark] .master-hero-stat strong,html[data-theme=dark] .master-tab.active,html[data-theme=dark] .device-management-hero h2,html[data-theme=dark] .device-management-stats strong,html[data-theme=dark] .logger-identity strong,html[data-theme=dark] .logger-meta strong,html[data-theme=dark] .logger-devices strong,html[data-theme=dark] .firmware-status-card strong,html[data-theme=dark] .replace-imei-box strong,html[data-theme=dark] .success-text{color:var(--foreground)}html[data-theme=dark] .profile-details span,html[data-theme=dark] .mobile-appbar-title span,html[data-theme=dark] .dashboard-control-bar span,html[data-theme=dark] .site-range-control label,html[data-theme=dark] .report-date-range label,html[data-theme=dark] .report-assumption-grid label,html[data-theme=dark] .report-chart-legend,html[data-theme=dark] .layout-summary-strip span,html[data-theme=dark] .layout-editor-stat span,html[data-theme=dark] .layout-editor-controls label,html[data-theme=dark] .panel-inspector label,html[data-theme=dark] .range-field label,html[data-theme=dark] .range-axis-labels,html[data-theme=dark] .master-hero>div:first-child>span,html[data-theme=dark] .master-hero-stat span,html[data-theme=dark] .master-tab,html[data-theme=dark] .group-pill,html[data-theme=dark] .colour-chip,html[data-theme=dark] .device-management-stats span,html[data-theme=dark] .logger-meta span,html[data-theme=dark] .logger-devices span,html[data-theme=dark] .logger-identity span,html[data-theme=dark] .logger-identity small,html[data-theme=dark] .logger-devices small,html[data-theme=dark] .firmware-status-card span,html[data-theme=dark] .replace-imei-box span,html[data-theme=dark] .firmware-detail-grid span,html[data-theme=dark] .firmware-status-card p,html[data-theme=dark] .replace-imei-box small,html[data-theme=dark] .field-hint{color:var(--secondary)}html[data-theme=dark] .site-section-tabs,html[data-theme=dark] .report-tabs,html[data-theme=dark] .master-tabs,html[data-theme=dark] .report-source-selector{background:#08121ee6;border-color:#536f8b80;box-shadow:inset 0 1px #ffffff09,var(--shadow-sm)}html[data-theme=dark] .site-section-tab.active,html[data-theme=dark] .report-tab.active,html[data-theme=dark] .report-source-option.active,html[data-theme=dark] .master-tab.active{color:var(--foreground);background:linear-gradient(135deg,#78b9ff29,#4bdddc14),#111f2e;border-color:#78b9ff6b;box-shadow:0 12px 26px #00000038}html[data-theme=dark] .report-tab,html[data-theme=dark] .report-source-option{color:var(--secondary);background:transparent}html[data-theme=dark] .site-reports-section,html[data-theme=dark] .site-layout-section,html[data-theme=dark] .replacement-history-section,html[data-theme=dark] .report-controls-panel,html[data-theme=dark] .report-insight-list,html[data-theme=dark] .report-table-wrap,html[data-theme=dark] .panel-inspector,html[data-theme=dark] .selected-device-card,html[data-theme=dark] .master-table-panel{background:linear-gradient(135deg,#78b9ff0e,#4bdddc09 52%,#35d48706),linear-gradient(180deg,#111f2efa,#0c1826fa);border-color:#536f8b75;box-shadow:var(--shadow-sm)}html[data-theme=dark] .report-metric-tile,html[data-theme=dark] .report-metric-tile.success,html[data-theme=dark] .report-metric-tile.info,html[data-theme=dark] .report-metric-tile.cyan,html[data-theme=dark] .report-metric-tile.warning,html[data-theme=dark] .report-pack-card,html[data-theme=dark] .report-pack-card.clickable,html[data-theme=dark] .reports-directory-grid .report-pack-card.clickable:hover,html[data-theme=dark] .layout-summary-strip>div,html[data-theme=dark] .layout-summary-strip>div:nth-child(1),html[data-theme=dark] .layout-summary-strip>div:nth-child(2),html[data-theme=dark] .layout-summary-strip>div:nth-child(3),html[data-theme=dark] .layout-summary-strip>div:nth-child(4),html[data-theme=dark] .layout-health-legend span,html[data-theme=dark] .layout-editor-stat,html[data-theme=dark] .layout-editor-stat:nth-of-type(1),html[data-theme=dark] .layout-editor-stat:nth-of-type(2),html[data-theme=dark] .report-insight-list>div,html[data-theme=dark] .device-management-stats>div,html[data-theme=dark] .device-management-stats>div:nth-child(1),html[data-theme=dark] .device-management-stats>div:nth-child(2),html[data-theme=dark] .device-management-stats>div:nth-child(3),html[data-theme=dark] .device-management-stats>div:nth-child(4){background:linear-gradient(135deg,#4bdddc0b,#78b9ff09),#0b1724;border-color:#536f8b6b}html[data-theme=dark] .report-tile-icon,html[data-theme=dark] .report-pack-icon,html[data-theme=dark] .report-metric-tile.success .report-tile-icon,html[data-theme=dark] .report-metric-tile.cyan .report-tile-icon,html[data-theme=dark] .report-metric-tile.warning .report-tile-icon,html[data-theme=dark] .master-tab strong{color:var(--accent-strong);background:var(--accent-soft)}html[data-theme=dark] .layout-canvas{background:radial-gradient(circle at 28px 28px,rgba(120,185,255,.13),transparent 92px),radial-gradient(circle at calc(100% - 40px) 42px,rgba(241,203,82,.09),transparent 120px),linear-gradient(180deg,#0a1522f5,#07131ff5),#07131f;border-color:#536f8b7a;box-shadow:inset 0 1px #ffffff09}html[data-theme=dark] .layout-compass{color:var(--accent-strong);background:#0c1826f0;border-color:#78b9ff57}html[data-theme=dark] .solar-panel-cell{color:#8da1b4;background:linear-gradient(135deg,#78b9ff0a,#4bdddc05),#0d1b2a;border-color:#536f8b70}html[data-theme=dark] button.solar-panel-cell:hover{background:linear-gradient(135deg,#78b9ff21,#4bdddc0f),#122235;border-color:#78b9ff85}html[data-theme=dark] .solar-panel-cell.mapped{color:var(--foreground);background:linear-gradient(135deg,#35d48714,#4bdddc0b),#101f2d;border-color:#4bdddc5c}html[data-theme=dark] .solar-panel-cell.string-health-healthy{background:linear-gradient(145deg,#40b46a61,#2a825447 48%,#0c1826f0),#102419;border-color:#72ecad8f}html[data-theme=dark] .solar-panel-cell.string-health-idle,html[data-theme=dark] .solar-panel-cell.string-health-watch{background:linear-gradient(145deg,#f0b42961,#9e701c47 48%,#0c1826f0),#261f10;border-color:#f0c94d94}html[data-theme=dark] .solar-panel-cell.string-health-low{background:linear-gradient(145deg,#ef444466,#9a34124d 50%,#0c1826f0),#2a1415;border-color:#f871719e}html[data-theme=dark] .solar-panel-cell.string-health-unknown{background:linear-gradient(145deg,#60708247,#0c1826f5),#111f2e;border-color:#7f92a585}html[data-theme=dark] .panel-string-badge{color:var(--foreground);background:#08121ec2}html[data-theme=dark] .panel-inspector-preview{background:linear-gradient(135deg,#4bdddc14,#f1cb520b 56%,#78b9ff09),#0b1724;border-color:#4bdddc42}html[data-theme=dark] .logo-preview-frame{background:linear-gradient(45deg,rgba(120,185,255,.08) 25%,transparent 25%),linear-gradient(-45deg,rgba(120,185,255,.08) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(120,185,255,.08) 75%),linear-gradient(-45deg,transparent 75%,rgba(120,185,255,.08) 75%),#0b1724;background-position:0 0,0 8px,8px -8px,-8px 0,0 0;background-size:16px 16px,16px 16px,16px 16px,16px 16px,auto;border-color:#78b9ff47}html[data-theme=dark] .logo-uploader .uppy-Dashboard-inner,html[data-theme=dark] .logo-uploader .uppy-Dashboard-AddFiles,html[data-theme=dark] .uppy-Dashboard-inner,html[data-theme=dark] .uppy-Dashboard-AddFiles,html[data-theme=dark] .uppy-DashboardContent-bar,html[data-theme=dark] .uppy-Dashboard-Item,html[data-theme=dark] .uppy-StatusBar{color:var(--foreground);background:#0b1724;border-color:var(--border)}html[data-theme=dark] .uppy-Dashboard-AddFiles-title,html[data-theme=dark] .uppy-Dashboard-note,html[data-theme=dark] .uppy-DashboardContent-title{color:var(--secondary)}@media(max-width:1180px){.string-kpi-grid,.fault-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.string-details-grid,.string-chart-grid,.string-bottom-grid,.faults-grid,.fault-chart-grid{grid-template-columns:1fr}}@media(max-width:1500px){.string-details-grid{grid-template-columns:1fr}.live-parameter-list{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}}@media(max-width:760px){.device-tab-buttons button{gap:6px}.device-tab-buttons button .icon{width:16px;height:16px}.string-details-toolbar,.faults-toolbar,.string-panel-heading,.fault-panel-heading,.string-toolbar-actions,.faults-toolbar-actions,.fault-history-actions,.string-chart-controls{display:grid;align-items:stretch}.string-toolbar-actions,.faults-toolbar-actions,.fault-history-actions,.string-chart-controls,.string-chart-controls select,.faults-toolbar-actions .site-range-control,.string-toolbar-actions .site-range-control{width:100%}.string-kpi-grid,.fault-kpi-grid,.performance-analysis-grid{grid-template-columns:1fr}.string-panel,.fault-panel{padding:14px}.live-parameter-list div,.string-comparison-row,.current-fault-card,.fault-distribution-row{grid-template-columns:1fr;display:grid;align-items:stretch}.live-parameter-list strong,.string-comparison-row strong,.fault-distribution-row strong{text-align:left}}
