.platform-time-series-chart[data-v-6f623599]{display:grid;gap:10px;min-width:0;padding:14px;border:1px solid #dfe7f2;border-radius:8px;background:#fff;color:#26364f}.platform-time-series-chart[data-v-6f623599]:focus-visible{outline:2px solid #1677ff;outline-offset:2px}.platform-time-series-chart__header[data-v-6f623599]{display:flex;align-items:start;justify-content:space-between;gap:12px}.platform-time-series-chart__header>div[data-v-6f623599]{display:grid;gap:3px}.platform-time-series-chart__header span[data-v-6f623599],.platform-time-series-chart__header small[data-v-6f623599]{color:#718096;font-size:12px}.platform-time-series-chart__header strong[data-v-6f623599]{color:#17243d;font-size:16px}.platform-time-series-chart__empty[data-v-6f623599]{display:grid;min-height:220px;place-items:center;margin:0;color:#718096;border:1px dashed #cbd7e6;border-radius:6px;background:#f8fbff}.platform-time-series-chart__svg[data-v-6f623599]{display:block;width:100%;min-height:270px;touch-action:none;-webkit-user-select:none;user-select:none;cursor:crosshair;background:#fff}.platform-time-series-chart__grid[data-v-6f623599],.platform-time-series-chart__x-tick[data-v-6f623599]{stroke:#e7edf6;stroke-width:1}.platform-time-series-chart__minor-tick[data-v-6f623599]{stroke:#b9c6d6;stroke-width:1}.platform-time-series-chart__axis[data-v-6f623599]{stroke:#b8c5d6;stroke-width:1.2}.platform-time-series-chart__y-label[data-v-6f623599],.platform-time-series-chart__x-label[data-v-6f623599],.chart-month-band[data-v-6f623599]{fill:#718096;font-size:11px}.platform-time-series-chart__month-axis line[data-v-6f623599]{stroke:#dce5f0;stroke-width:1}.platform-time-series-chart__axis-title[data-v-6f623599]{fill:#52647a;font-size:11px;font-weight:700}.platform-time-series-chart__line[data-v-6f623599]{fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.platform-time-series-chart__point[data-v-6f623599]{stroke:#fff;stroke-width:1.4}.platform-time-series-chart__point.is-abnormal[data-v-6f623599]{stroke:#f97316;stroke-width:2.3}.platform-time-series-chart__status-point.is-offline[data-v-6f623599]{fill:#94a3b8}.platform-time-series-chart__status-point.is-abnormal[data-v-6f623599]{fill:#f97316}.platform-time-series-chart__status-point.is-missing[data-v-6f623599]{fill:#cbd5e1}.platform-time-series-chart__crosshair[data-v-6f623599]{stroke:#52647a;stroke-width:1.2;stroke-dasharray:4 4;pointer-events:none}.platform-time-series-chart__tooltip[data-v-6f623599]{pointer-events:none}.platform-time-series-chart__tooltip rect[data-v-6f623599]{fill:#17243df2;stroke:#fff3}.platform-time-series-chart__tooltip text[data-v-6f623599]{fill:#fff;font-size:11px}.platform-time-series-chart__zoom[data-v-6f623599]{display:grid;gap:7px;padding:10px 12px;border:1px solid #dfe7f2;border-radius:7px;background:#f8fbff}.platform-time-series-chart__zoom>div[data-v-6f623599]:first-child{display:flex;align-items:center;gap:10px;color:#65758a;font-size:12px}.platform-time-series-chart__zoom strong[data-v-6f623599]{margin-right:auto;color:#26364f;font-size:12px}.platform-time-series-chart__zoom button[data-v-6f623599]{min-height:26px;padding:3px 10px;color:#2563eb;border:1px solid #bfdbfe;border-radius:5px;background:#fff;cursor:pointer}.platform-time-series-chart__zoom button[data-v-6f623599]:disabled{color:#94a3b8;border-color:#e2e8f0;cursor:not-allowed}.platform-time-series-chart__zoom small[data-v-6f623599]{color:#718096;font-size:11px}.platform-time-series-chart__range[data-v-6f623599]{position:relative;height:24px;background:linear-gradient(to right,#e5e7eb 0%,#e5e7eb var(--range-start),#bfdbfe var(--range-start),#bfdbfe var(--range-end),#e5e7eb var(--range-end),#e5e7eb 100%) center / 100% 5px no-repeat}.platform-time-series-chart__range input[data-v-6f623599]{position:absolute;inset:0;width:100%;height:24px;margin:0;appearance:none;pointer-events:none;background:transparent}.platform-time-series-chart__range input[data-v-6f623599]::-webkit-slider-thumb{width:14px;height:14px;appearance:none;pointer-events:auto;cursor:ew-resize;border:2px solid #fff;border-radius:50%;background:#1677ff;box-shadow:0 1px 4px #2563eb57}.platform-time-series-chart__range input[data-v-6f623599]::-moz-range-thumb{width:12px;height:12px;pointer-events:auto;cursor:ew-resize;border:2px solid #fff;border-radius:50%;background:#1677ff;box-shadow:0 1px 4px #2563eb57}.meter-multi-series-chart[data-v-09cc31f5]{display:grid;gap:12px;min-width:0;padding:16px;border:1px solid #dfe7f2;border-radius:8px;background:#fff}.meter-multi-series-header[data-v-09cc31f5]{display:flex;align-items:start;justify-content:space-between;gap:12px}.meter-multi-series-header div[data-v-09cc31f5]{display:grid;gap:3px;min-width:0}.meter-multi-series-header span[data-v-09cc31f5],.meter-multi-series-header small[data-v-09cc31f5]{color:#78879a;font-size:12px}.meter-multi-series-header strong[data-v-09cc31f5]{color:#17243d;font-size:16px}.meter-multi-series-empty[data-v-09cc31f5]{display:grid;place-items:center;min-height:210px;margin:0;border:1px dashed #cbd7e6;border-radius:8px;color:#75849a;background:#f8fbff;font-size:13px}.meter-multi-series-body[data-v-09cc31f5]{display:grid;gap:12px;min-width:0}.meter-multi-series-legend[data-v-09cc31f5]{display:flex;flex-wrap:wrap;gap:8px}.meter-multi-series-legend button[data-v-09cc31f5]{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:5px 9px;border:1px solid #dfe7f2;border-radius:999px;background:#f8fbff;color:#26364f;font-size:12px;cursor:pointer}.meter-multi-series-legend button[aria-pressed=true][data-v-09cc31f5]{border-color:color-mix(in srgb,var(--series-color) 45%,#dfe7f2);background:color-mix(in srgb,var(--series-color) 10%,#fff)}.meter-multi-series-legend button[aria-pressed=false][data-v-09cc31f5]{color:#8a98aa;opacity:.68}.meter-multi-series-legend i[data-v-09cc31f5]{width:9px;height:9px;border-radius:999px;background:var(--series-color)}.meter-multi-series-legend small[data-v-09cc31f5]{color:#718096}.meter-multi-series-chart svg[data-v-09cc31f5]{display:block;width:100%;height:auto;min-height:240px;border:1px solid #edf2f8;border-radius:8px;background:#fbfdff;touch-action:none}.meter-multi-series-grid[data-v-09cc31f5]{stroke:#e7edf6;stroke-width:1}.meter-multi-series-axis[data-v-09cc31f5]{stroke:#aebbd0;stroke-width:1.2;stroke-dasharray:5 5}.meter-multi-series-area[data-v-09cc31f5]{opacity:.75}.meter-multi-series-line[data-v-09cc31f5]{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.meter-multi-series-point[data-v-09cc31f5]{stroke:#fff;stroke-width:2;outline:none}.meter-multi-series-point.is-style-1[data-v-09cc31f5]{stroke-width:1.4}.meter-multi-series-point.is-style-2[data-v-09cc31f5]{stroke-width:2.6}.meter-multi-series-point.is-style-3[data-v-09cc31f5]{stroke-dasharray:2 1}.meter-multi-series-point[data-v-09cc31f5]:focus{stroke:#17243d;stroke-width:3}.meter-multi-series-y-tick-label[data-v-09cc31f5],.meter-multi-series-x-tick-label[data-v-09cc31f5],.meter-multi-series-axis-title[data-v-09cc31f5]{fill:#718096;font-size:11px}.meter-multi-series-axis-title[data-v-09cc31f5]{font-weight:600}.meter-chart-hover-hitbox[data-v-09cc31f5]{cursor:crosshair}.meter-chart-crosshair[data-v-09cc31f5]{stroke:#52647a;stroke-width:1.2;stroke-dasharray:4 4;pointer-events:none}.meter-chart-hover-point[data-v-09cc31f5]{stroke:#17243d;stroke-width:2;opacity:.9;pointer-events:none}.meter-chart-tooltip[data-v-09cc31f5]{pointer-events:none}.meter-chart-tooltip rect[data-v-09cc31f5]{fill:#17243df0;stroke:#ffffff2e}.meter-chart-tooltip text[data-v-09cc31f5]{fill:#fff;font-size:11px}.meter-multi-series-zoom[data-v-09cc31f5]{display:grid;gap:7px;padding:10px 12px;border:1px solid #dfe7f2;border-radius:8px;background:#f8fbff}.meter-multi-series-zoom-header[data-v-09cc31f5]{display:flex;align-items:center;gap:10px;color:#65758a;font-size:12px}.meter-multi-series-zoom-header strong[data-v-09cc31f5]{margin-right:auto;color:#26364f;font-size:12px}.meter-multi-series-zoom-header button[data-v-09cc31f5]{min-height:26px;padding:3px 10px;border:1px solid #cbd7e6;border-radius:6px;background:#fff;color:#2f6bff;cursor:pointer}.meter-multi-series-zoom-header button[data-v-09cc31f5]:disabled{color:#9aa8ba;cursor:default}.meter-multi-series-zoom-track[data-v-09cc31f5]{position:relative;height:22px;border-radius:999px;background:#e3eaf4}.meter-multi-series-zoom-track>span[data-v-09cc31f5]{position:absolute;top:7px;height:8px;border-radius:999px;background:#2f6bff;pointer-events:none}.meter-multi-series-zoom-track input[data-v-09cc31f5]{position:absolute;inset:0;width:100%;height:22px;margin:0;background:transparent;pointer-events:none;appearance:none}.meter-multi-series-zoom-track input[data-v-09cc31f5]::-webkit-slider-thumb{width:16px;height:16px;border:2px solid #2f6bff;border-radius:50%;background:#fff;pointer-events:auto;appearance:none;cursor:ew-resize}.meter-multi-series-zoom-track input[data-v-09cc31f5]::-moz-range-thumb{width:14px;height:14px;border:2px solid #2f6bff;border-radius:50%;background:#fff;pointer-events:auto;cursor:ew-resize}.meter-multi-series-zoom>small[data-v-09cc31f5]{color:#78879a;font-size:11px}.meter-daily-bar-chart[data-v-b46b3f3b]{display:grid;gap:10px;min-width:0}.meter-daily-bar-chart svg[data-v-b46b3f3b]{display:block;width:100%;min-height:250px;touch-action:none;cursor:grab}.meter-daily-bar-chart svg[data-v-b46b3f3b]:active{cursor:grabbing}.meter-daily-bar-grid line[data-v-b46b3f3b]{stroke:#e7edf6;stroke-width:1}.meter-daily-bar-grid text[data-v-b46b3f3b],.meter-daily-bar-date[data-v-b46b3f3b]{fill:#7c8ba1;font-size:11px}.meter-daily-bar-axis-title[data-v-b46b3f3b]{fill:#65758a;font-size:11px;font-weight:700}.meter-daily-bar[data-v-b46b3f3b]{cursor:pointer;outline:none;transition:opacity .16s ease,filter .16s ease}.meter-daily-bar.is-terminal[data-v-b46b3f3b]{fill:#2f6bff}.meter-daily-bar.is-aggregate[data-v-b46b3f3b]{fill:#75a7ff}.meter-daily-bar[data-v-b46b3f3b]:hover,.meter-daily-bar[data-v-b46b3f3b]:focus,.meter-daily-bar.is-selected[data-v-b46b3f3b]{filter:drop-shadow(0 3px 5px rgba(47,107,255,.28));opacity:1;stroke:#174fd0;stroke-width:2}.meter-daily-bar-value[data-v-b46b3f3b]{fill:#2f6bff;font-size:11px;font-weight:700}.meter-daily-bar-legend[data-v-b46b3f3b]{display:flex;justify-content:flex-end;gap:16px;color:#65758a;font-size:12px}.meter-daily-bar-legend span[data-v-b46b3f3b]{display:inline-flex;align-items:center;gap:6px}.meter-daily-bar-legend i[data-v-b46b3f3b]{width:10px;height:10px;border-radius:3px}.meter-daily-bar-legend i.is-terminal[data-v-b46b3f3b]{background:#2f6bff}.meter-daily-bar-legend i.is-aggregate[data-v-b46b3f3b]{background:#75a7ff}.meter-daily-bar-tooltip[data-v-b46b3f3b]{pointer-events:none}.meter-daily-bar-tooltip rect[data-v-b46b3f3b]{fill:#17243df0;stroke:#ffffff2e}.meter-daily-bar-tooltip text[data-v-b46b3f3b]{fill:#fff;font-size:11px}.meter-daily-bar-zoom[data-v-b46b3f3b]{display:grid;gap:7px;padding:10px 12px;border:1px solid #dfe7f2;border-radius:8px;background:#f8fbff}.meter-daily-bar-zoom>div[data-v-b46b3f3b]:first-child{display:flex;align-items:center;gap:10px;color:#65758a;font-size:12px}.meter-daily-bar-zoom strong[data-v-b46b3f3b]{margin-right:auto;color:#26364f;font-size:12px}.meter-daily-bar-zoom button[data-v-b46b3f3b]{min-height:26px;padding:3px 10px;border:1px solid #cbd7e6;border-radius:6px;background:#fff;color:#2f6bff;cursor:pointer}.meter-daily-bar-zoom button[data-v-b46b3f3b]:disabled{color:#9aa8ba;cursor:default}.meter-daily-bar-zoom-track[data-v-b46b3f3b]{position:relative;height:22px;border-radius:999px;background:#e3eaf4}.meter-daily-bar-zoom-track>span[data-v-b46b3f3b]{position:absolute;top:7px;height:8px;border-radius:999px;background:#2f6bff;pointer-events:none}.meter-daily-bar-zoom-track input[data-v-b46b3f3b]{position:absolute;inset:0;width:100%;height:22px;margin:0;background:transparent;pointer-events:none;appearance:none}.meter-daily-bar-zoom-track input[data-v-b46b3f3b]::-webkit-slider-thumb{width:16px;height:16px;border:2px solid #2f6bff;border-radius:50%;background:#fff;pointer-events:auto;appearance:none;cursor:ew-resize}.meter-daily-bar-zoom-track input[data-v-b46b3f3b]::-moz-range-thumb{width:14px;height:14px;border:2px solid #2f6bff;border-radius:50%;background:#fff;pointer-events:auto;cursor:ew-resize}.meter-daily-bar-zoom>small[data-v-b46b3f3b]{color:#78879a;font-size:11px}.meter-daily-bar-empty[data-v-b46b3f3b]{display:grid;place-items:center;min-height:250px;margin:0;border:1px dashed #cbd7e6;border-radius:8px;color:#75849a;background:#f8fbff;font-size:13px}:root{--nav-w: 203px;--top-h: 44px;--bg: #f7f8fb;--text: #111827;--muted: #8d95a3;--blue: #2f6bff;--cyan: #35a9f4;--green: #35c66b;--orange: #ff8a2a;--red: #ff4b66;--line: #eef0f4;--panel: #ffffff;--shadow: 0 8px 22px rgba(42, 52, 73, .08);font-family:Microsoft YaHei,PingFang SC,Arial,sans-serif}.strategy-reference-workbench{--strategy-blue: #0b6cf0;--strategy-border: #dfe6ef;--strategy-muted: #75849a;width:100%;min-width:0;height:auto;min-height:calc(100vh - 92px);overflow:visible;color:#24344d;background:#f7f9fc;border:1px solid #edf1f6;box-shadow:0 2px 12px #24344d0d}.strategy-reference-loading{min-height:720px}.strategy-reference-topbar{height:50px;display:flex;align-items:stretch;justify-content:space-between;background:#fbfcfe;border-bottom:1px solid var(--strategy-border)}.strategy-reference-topbar nav{display:flex;align-items:stretch;gap:10px}.strategy-reference-topbar nav button{position:relative;min-width:148px;padding:0 28px;border:0;border-right:1px solid #edf0f5;border-radius:0;color:#64748c;background:#fff;font-size:15px;font-weight:700;transform:skew(9deg)}.strategy-reference-topbar nav button>*{transform:skew(-9deg)}.strategy-reference-topbar nav button.active{color:#20304a;background:#f5f7fa}.strategy-reference-topbar nav button.active:after{content:"";position:absolute;right:28px;bottom:0;left:28px;height:2px;background:var(--strategy-blue)}.strategy-reference-actions{display:flex;align-items:center;gap:14px;padding-right:16px}.strategy-reference-actions span{color:#7e8ba0;font-size:12px}.strategy-reference-actions button{height:38px;min-width:142px;border:1px solid #cfd8e5;border-radius:4px;color:#45536b;background:#fff;font-weight:700}.strategy-reference-actions button.primary{min-width:158px;border-color:var(--strategy-blue);color:#fff;background:var(--strategy-blue);box-shadow:0 3px 9px #0b6cf033}.strategy-reference-actions button:disabled{cursor:not-allowed;opacity:.72}.strategy-reference-error{height:34px;display:flex;align-items:center;justify-content:center;gap:12px;color:#c2413d;background:#fff1f0;border-bottom:1px solid #ffd2cf;font-size:12px}.strategy-reference-error button{border:0;color:var(--strategy-blue);background:transparent}.strategy-reference-body{display:grid;grid-template-columns:288px minmax(0,1fr);align-items:start;min-height:calc(100vh - 142px);background:#fff}.strategy-reference-error+.strategy-reference-body{min-height:calc(100vh - 176px)}.strategy-reference-library,.strategy-reference-editor,.strategy-reference-vehicle-panel{min-width:0;background:#fff}.strategy-reference-library{align-self:stretch;border-right:1px solid var(--strategy-border)}.strategy-reference-workspace{min-width:0;background:#fff}.strategy-library-heading{height:104px;padding:23px 22px;border-bottom:1px solid var(--strategy-border)}.strategy-library-heading h1{margin:0 0 9px;color:#22314a;font-size:22px;line-height:1.2}.strategy-library-heading p{margin:0;color:#8492a7;font-size:12px}.strategy-library-content{padding:21px 20px}.strategy-library-label{margin-bottom:11px;color:#8794a8;font-size:12px;font-weight:700}.strategy-library-toolbar,.strategy-library-count{display:flex;align-items:center;justify-content:space-between}.strategy-library-toolbar{padding-bottom:17px;border-bottom:1px solid #edf1f5}.strategy-library-toolbar strong{color:#26364f;font-size:17px}.strategy-library-toolbar button{height:36px;padding:0 18px;border:0;border-radius:4px;color:#fff;background:var(--strategy-blue);font-weight:700}.strategy-library-count{height:46px;color:#78869b;font-size:12px}.strategy-library-count button{border:0;color:#8797ac;background:transparent;font-size:22px}.strategy-library-list{display:grid;gap:16px;max-height:calc(100vh - 380px);overflow:auto;padding:1px}.strategy-library-list>button{position:relative;display:grid;gap:10px;width:100%;padding:18px 17px;text-align:left;border:1px solid #e5eaf1;border-radius:8px;background:#fff}.strategy-library-list>button.active{border-color:#1677ff;box-shadow:0 0 0 1px #1677ff}.strategy-library-list>button>span{display:flex;align-items:center;gap:10px;min-width:0;padding-right:20px}.strategy-library-list strong{min-width:0;overflow:hidden;color:#33435c;font-size:15px;text-overflow:ellipsis;white-space:nowrap}.strategy-library-list>button.active strong{color:#1677ff}.strategy-library-list i{flex-shrink:0;padding:3px 8px;border-radius:12px;font-size:11px;font-style:normal}.strategy-library-list i.enabled{color:#22a96b;background:#eaf8f1}.strategy-library-list i.disabled{color:#8a96a9;background:#eef1f5}.strategy-library-list small{color:#8491a5;font-size:11px}.strategy-library-list em{position:absolute;top:28px;right:14px;color:#6c7c93;font-size:20px;font-style:normal}.strategy-library-foot{margin:22px 0 0;text-align:center;color:#8795a9;font-size:11px}.strategy-reference-editor{display:flex;flex-direction:column;border-bottom:1px solid var(--strategy-border)}.strategy-editor-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;min-height:104px;padding:18px 20px;border-bottom:1px solid var(--strategy-border)}.strategy-editor-summary>div:first-child{min-width:220px}.strategy-editor-summary .strategy-head-actions{margin-left:auto}.strategy-editor-summary h2{margin:0 0 11px;color:#263650;font-size:16px}.strategy-editor-summary h2 span{color:#9aa5b5}.strategy-editor-summary p{margin:0;color:#8290a5;font-size:11px}.strategy-editor-summary p i{display:inline-block;width:7px;height:7px;margin:0 5px;border-radius:50%;background:#27bf78}.strategy-editor-summary p b{margin:0 7px;color:#a8b1bf;font-weight:400}.strategy-editor-scroll{overflow:visible;padding:14px 14px 28px}.strategy-reference-card{margin-bottom:14px;padding:17px 15px;border:1px solid #e3e9f1;border-radius:9px;background:#fff;box-shadow:0 1px 4px #25375008}.strategy-reference-card>header{display:flex;align-items:center;gap:13px;margin-bottom:20px}.strategy-reference-card>header>span{display:inline-grid;width:30px;height:30px;place-items:center;border-radius:7px;color:#1677ff;background:#eaf3ff;font-size:12px;font-weight:800}.strategy-reference-card>header>strong{color:#2d3c55;font-size:16px}.strategy-reference-card>header>button{margin-left:auto;height:32px;padding:0 12px;border:1px solid #d8e0ea;border-radius:4px;color:#526279;background:#fff}.strategy-reference-fields{display:grid;gap:17px}.strategy-reference-fields.basic{grid-template-columns:1.35fr 1fr .75fr}.strategy-reference-fields label{display:grid;gap:7px;min-width:0}.strategy-reference-fields label span,.strategy-reference-soc-row label>span{color:#7c8ba0;font-size:11px;font-weight:700}.strategy-reference-fields input,.strategy-reference-fields select{width:100%;height:40px;padding:0 12px;border:1px solid #dce3ec;border-radius:5px;color:#35445c;background:#fff;font-size:13px}.strategy-reference-fields input:read-only,.strategy-reference-fields select:disabled{background:#fafbfd}.strategy-reference-soc-row{display:grid;grid-template-columns:minmax(150px,190px) minmax(240px,1fr) minmax(150px,190px);align-items:end;gap:22px}.strategy-reference-soc-row label{position:relative;display:grid;gap:7px}.strategy-reference-soc-row label input{width:100%;height:40px;padding:0 30px 0 12px;border:1px solid #dce3ec;border-radius:5px;color:#3c4b61;font-weight:700}.strategy-reference-soc-row label b{position:absolute;right:12px;bottom:12px;color:#65758a;font-size:12px}.strategy-reference-soc-row>div{display:grid;gap:7px;padding-bottom:2px;text-align:center}.strategy-reference-soc-slider{position:relative;min-height:42px;padding-top:8px}.strategy-reference-soc-row .track{position:relative;height:11px;overflow:hidden;border-radius:9px;background:linear-gradient(90deg,#ffdfe3 0 16%,#e3f5e9 16% 84%,#e8eef8 84%)}.strategy-reference-soc-row .track i{position:absolute;top:0;bottom:0;border-radius:9px;background:#20bd6e}.strategy-reference-soc-row small{color:#8492a6;font-size:10px}.strategy-reference-soc-range{position:absolute;z-index:2;top:0;left:0;width:100%;height:28px;margin:0;appearance:none;pointer-events:none;background:transparent}.strategy-reference-soc-range::-webkit-slider-runnable-track{height:11px;background:transparent}.strategy-reference-soc-range::-webkit-slider-thumb{width:18px;height:18px;margin-top:-4px;appearance:none;border:3px solid #fff;border-radius:50%;background:#1677ff;box-shadow:0 0 0 1px #1677ff,0 2px 6px #1677ff47;cursor:grab;pointer-events:auto}.strategy-reference-soc-range.upper::-webkit-slider-thumb{background:#20bd6e;box-shadow:0 0 0 1px #20bd6e,0 2px 6px #20bd6e47}.strategy-reference-soc-range:disabled::-webkit-slider-thumb{cursor:not-allowed;opacity:.55}.strategy-reference-schedule{margin-bottom:0}.strategy-reference-timeline{display:grid;gap:12px}.strategy-reference-timeline-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.strategy-reference-timeline-toolbar button{height:30px;padding:0 11px;border:1px solid #cbd9ec;border-radius:5px;color:#1677ff;background:#fff;font-size:11px;font-weight:700}.strategy-reference-timeline-legend{display:flex;align-items:center;gap:15px;color:#64748b;font-size:11px;font-weight:700}.strategy-reference-timeline-legend span{display:inline-flex;align-items:center;gap:5px}.strategy-reference-timeline-legend span:before{width:8px;height:8px;border-radius:2px;content:""}.strategy-reference-timeline-legend .charge:before{background:#1677ff}.strategy-reference-timeline-legend .discharge:before{background:#f59e0b}.strategy-reference-timeline-legend .stop:before{background:#ef4444}.strategy-reference-timeline-controls{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:6px}.strategy-reference-timeline-scale{display:inline-flex;align-items:center;min-height:30px;padding:0 10px;border:1px solid #dbe7f6;border-radius:999px;color:#55708f;background:#f7fbff;font-size:10px;font-weight:800}.strategy-reference-timeline-track{position:relative;height:116px;overflow:hidden;border:1px solid #dbe5f0;border-radius:7px;background:repeating-linear-gradient(90deg,#fff 0 calc(12.5% - 1px),#eef3f8 calc(12.5% - 1px) 12.5%)}.strategy-reference-timeline-ruler{position:absolute;inset:0 0 auto;height:31px;color:#7d8da2;font-size:10px;font-weight:700}.strategy-reference-timeline-ruler span{position:absolute;top:8px;transform:translate(-50%);white-space:nowrap}.strategy-reference-timeline-ruler span:first-child{transform:translate(0)}.strategy-reference-timeline-ruler span:last-child{transform:translate(-100%)}.strategy-reference-timeline-block{position:absolute;top:45px;display:flex;align-items:center;justify-content:center;gap:5px;min-width:44px;height:42px;padding:0 16px;border:0;border-radius:5px;color:#fff;box-shadow:0 2px 5px #33415529;cursor:grab;outline:0;-webkit-user-select:none;user-select:none}.strategy-reference-timeline-block:focus-visible,.strategy-reference-timeline-block.active{box-shadow:0 0 0 2px #fff,0 0 0 4px #1677ff,0 3px 8px #1677ff42}.strategy-reference-timeline-block.overlap{box-shadow:0 0 0 2px #fff,0 0 0 4px #ef4444,0 3px 8px #ef444442}.strategy-reference-timeline-block:active{cursor:grabbing}.strategy-reference-timeline-block strong{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.strategy-reference-timeline-block small{display:none;font-size:10px;white-space:nowrap}.strategy-reference-timeline-block:hover small,.strategy-reference-timeline-block.active small{display:inline}.strategy-reference-timeline-block.is-charge{background:#1677ff}.strategy-reference-timeline-block.is-discharge{background:#f59e0b}.strategy-reference-timeline-block.is-stop{background:#ef4444}.strategy-reference-timeline-block.disabled{opacity:.48;cursor:default}.strategy-reference-timeline-handle{position:absolute;top:0;bottom:0;width:10px;cursor:ew-resize}.strategy-reference-timeline-handle:after{position:absolute;top:13px;width:3px;height:16px;border-radius:2px;background:#ffffffe5;content:""}.strategy-reference-timeline-handle.start{left:0}.strategy-reference-timeline-handle.start:after{left:3px}.strategy-reference-timeline-handle.end{right:0}.strategy-reference-timeline-handle.end:after{right:3px}.strategy-reference-timeline-editor{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;padding:13px;border:1px solid #bfd6f5;border-radius:7px;background:#f8fbff;box-shadow:0 3px 10px #2f5b9617}.strategy-reference-timeline-editor>header,.strategy-reference-timeline-editor>footer,.strategy-reference-timeline-editor>p{grid-column:1 / -1}.strategy-reference-timeline-editor>header{display:flex;align-items:center;justify-content:space-between;color:#334155;font-size:12px}.strategy-reference-timeline-editor>header button{border:0;color:#718096;background:transparent;font-size:18px}.strategy-reference-timeline-editor label{display:grid;grid-template-columns:52px minmax(0,1fr);align-items:center;gap:7px;color:#718096;font-size:11px;font-weight:700}.strategy-reference-timeline-editor input,.strategy-reference-timeline-editor select{min-width:0;height:32px;padding:0 9px;border:1px solid #d7e1ed;border-radius:4px;color:#40516a;background:#fff;font:inherit;font-weight:700}.strategy-reference-timeline-editor label b{margin-left:-35px;color:#7d8da2;pointer-events:none}.strategy-reference-timeline-editor label:has(b) input{padding-right:35px}.strategy-reference-timeline-editor>p{margin:0;color:#dc4c4c;font-size:11px}.strategy-reference-timeline-editor>footer{display:flex;justify-content:flex-end}.strategy-reference-timeline-editor>footer button{height:30px;padding:0 15px;border:0;border-radius:4px;color:#fff;background:#1677ff;font-weight:700}.strategy-reference-slot-list{overflow:hidden;border:1px solid #e3e8ef;border-radius:6px}.strategy-reference-slot-header,.strategy-reference-slot{display:grid;grid-template-columns:36px minmax(110px,.8fr) minmax(110px,.8fr) minmax(120px,1fr) minmax(150px,1fr) 40px;align-items:center;gap:12px;padding:0 14px}.strategy-reference-slot-header{min-height:36px;color:#7a899d;background:#f7f9fc;font-size:10px;font-weight:700}.strategy-reference-slot{min-height:54px;border-bottom:1px solid #e7ebf1;font-size:11px}.strategy-reference-slot.overlap{background:#fff7f7;box-shadow:inset 3px 0 #ef4444}.strategy-reference-slot-overlap{grid-column:2 / -1;margin:-6px 0 8px;color:#d9363e;font-size:11px;font-weight:700}.strategy-reference-slot:last-child{border-bottom:0}.strategy-reference-slot .sequence{color:#92a0b2;font:700 11px ui-monospace,SFMono-Regular,Menlo,monospace}.strategy-reference-slot>input{width:100%;height:34px;padding:0 9px;border:1px solid #e0e6ee;border-radius:4px;color:#526178;background:#fff;font:inherit;font-weight:700}.strategy-reference-slot select{min-width:0;height:34px;padding:0 9px;border:1px solid #e0e6ee;border-radius:4px;color:#68778b;background:#f6f9fc;font:inherit;font-weight:700}.strategy-reference-time-picker{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:4px;min-width:0}.strategy-reference-time-picker>select{width:100%;min-width:0}.strategy-reference-time-picker>span{color:#8090a5;font-weight:700}.strategy-reference-time-picker>select:disabled{color:#9aa7b8;cursor:not-allowed}.strategy-reference-slot select.is-charge{color:#1677ff}.strategy-reference-slot select.is-discharge{color:#f19b2b}.strategy-reference-slot select.is-stop{color:#ea4b4b}.strategy-reference-slot label{display:flex;align-items:center;gap:7px;height:34px;padding:0 9px;border:1px solid #e0e6ee;border-radius:4px;color:#66768a;background:#fff}.strategy-reference-slot label input{min-width:0;width:100%;border:0;outline:0;text-align:right;color:#53637a;background:transparent;font:inherit;font-weight:700}.strategy-reference-slot>button{width:30px;height:30px;border:0;border-radius:4px;color:#8493a8;background:transparent;font-size:18px}.strategy-reference-slot>button:hover:not(:disabled){color:#ef4444;background:#fff1f2}.strategy-reference-protocol-note{margin:18px 4px 0;color:#7e8da2;font-size:10px;line-height:1.65}.strategy-reference-vehicle-panel{display:flex;flex-direction:column;border-right:0}.strategy-reference-vehicle-panel>header{flex:0 0 68px;display:flex;align-items:center;padding:0 20px}.strategy-reference-vehicle-panel>header h2{margin:0;color:#263650;font-size:18px}.strategy-reference-tabs{flex:0 0 48px;display:flex;align-items:end;gap:10px;padding:0 12px;border-bottom:1px solid var(--strategy-border)}.strategy-reference-tabs button{position:relative;min-width:140px;height:42px;padding:0 18px;border:1px solid #e1e7ef;border-bottom:0;border-radius:7px 7px 0 0;color:#78869b;background:#fafbfd;font-weight:700}.strategy-reference-tabs button.active{z-index:1;height:43px;margin-bottom:-1px;color:#1677ff;background:#fff}.strategy-reference-tabs b{margin-left:4px;font-weight:700}.strategy-reference-tabpage{min-height:0;flex:1;overflow:visible}.strategy-reference-sync{padding:16px 14px}.strategy-sync-summary{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.strategy-sync-summary article{height:56px;display:flex;align-items:center;gap:9px;padding:0 12px;border:1px solid #e1e7ee;border-radius:6px;background:#fff}.strategy-sync-summary article>span{display:grid;width:22px;height:22px;place-items:center;border-radius:50%;color:#fff;background:#6e7c91;font-weight:800}.strategy-sync-summary article small{color:#7b899e;font-size:11px}.strategy-sync-summary article strong{font-size:20px}.strategy-sync-summary .is-synced>span{background:#22b86d}.strategy-sync-summary .is-synced strong{color:#22b86d}.strategy-sync-summary .is-pending>span{background:#1677ff}.strategy-sync-summary .is-pending strong{color:#1677ff}.strategy-sync-summary .is-different>span{color:#fff;background:#f59d1e}.strategy-sync-summary .is-different strong{color:#ef8b13}.strategy-sync-summary .is-failed>span{background:#f04444}.strategy-sync-summary .is-failed strong{color:#f04444}.strategy-sync-summary .is-unqueried>span{background:#657389}.strategy-sync-summary .is-unqueried strong{color:#59687e}.strategy-sync-toolbar{display:flex;align-items:center;gap:8px;margin-top:16px}.strategy-sync-toolbar .search{width:200px;height:36px;display:flex;align-items:center;gap:6px;padding:0 9px;border:1px solid #dce3ec;border-radius:5px}.strategy-sync-toolbar input{min-width:0;border:0;outline:0;color:#46566d;background:transparent}.strategy-sync-toolbar select,.strategy-sync-toolbar button{height:36px;padding:0 11px;white-space:nowrap;border:1px solid #d8e1ec;border-radius:5px;color:#506078;background:#fff;font-size:11px}.strategy-sync-toolbar button{color:#1677ff;border-color:#8dbdff;font-weight:700}.strategy-sync-toolbar button:disabled{color:#7f8da2;border-color:#dce3ec;background:#f8fafc}.strategy-sync-toolbar .selected{margin-left:auto;white-space:nowrap;color:#7d8a9d;font-size:11px}.strategy-sync-toolbar .selected b{color:#1677ff}.strategy-sync-protocol{margin:13px 0 8px;color:#8895a8;font:10px ui-monospace,SFMono-Regular,Menlo,monospace}.strategy-sync-table{max-width:100%;overflow-x:auto;overflow-y:hidden;border:1px solid #dfe6ee;border-radius:6px}.strategy-sync-row{display:grid;grid-template-columns:28px minmax(155px,1.25fr) 76px 76px 100px 100px 92px 62px 18px;align-items:center;min-height:51px;padding:0 9px;border-bottom:1px solid #e4e9ef;color:#617188;font-size:11px}.strategy-sync-table>.strategy-sync-row,.strategy-sync-table>footer{min-width:900px}.strategy-sync-row.header{min-height:38px;color:#5a6980;background:#fbfcfe;font-weight:700}.strategy-sync-row>span{min-width:0}.strategy-sync-row>span:nth-child(2){display:grid;gap:2px}.strategy-sync-row>span:nth-child(2) strong{overflow:hidden;color:#394960;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.strategy-sync-row>span:nth-child(2) small{color:#7e8ca0;font-size:10px}.strategy-sync-row .status{display:inline-flex;padding:4px 9px;border-radius:13px;font-style:normal;font-weight:700}.strategy-sync-row .status.is-synced{color:#1ead65;background:#e9f8f0}.strategy-sync-row .status.is-pending{color:#1677ff;background:#eaf3ff}.strategy-sync-row .status.is-different{color:#ed8a19;background:#fff2e3}.strategy-sync-row .status.is-failed{color:#ef4848;background:#ffeded}.strategy-sync-row .status.is-unqueried{color:#647287;background:#f0f2f5}.strategy-sync-row>span:nth-child(8) button{height:28px;padding:0 9px;border:1px solid #d9e4f0;border-radius:4px;color:#1677ff;background:#fff}.strategy-sync-row>button{border:0;color:#8090a5;background:transparent}.strategy-sync-table>footer{height:43px;display:flex;align-items:center;gap:24px;padding:0 12px;color:#7d8a9e;font-size:11px}.strategy-sync-table>footer>span:nth-child(2){margin-left:auto}.strategy-sync-table>footer div{display:flex;align-items:center;gap:7px}.strategy-sync-table>footer button{border:0;background:transparent}.strategy-sync-table>footer div b{display:grid;width:25px;height:25px;place-items:center;border:1px solid #1677ff;border-radius:4px;color:#1677ff}.strategy-diff-panel,.strategy-sync-diff-panel{margin-top:12px;padding:12px;border:1px solid #dfe6ee;border-radius:8px}.strategy-sync-diff-panel>header{display:flex;align-items:center;gap:11px;margin-bottom:9px}.strategy-sync-diff-panel>header strong{color:#36465d;font-size:13px}.strategy-sync-diff-panel>header span,.strategy-sync-diff-panel>header i{padding:4px 12px;border-radius:13px;font-size:10px;font-style:normal}.strategy-sync-diff-panel>header span{color:#1677ff;background:#eaf3ff}.strategy-sync-diff-panel>header i{color:#ee8420;background:#fff0e4}.strategy-diff-content{display:grid;grid-template-columns:minmax(150px,1fr) minmax(150px,1fr) minmax(245px,.9fr);gap:14px}.strategy-diff-content>section{padding:10px;border:1px solid #e1e6ed;border-radius:5px}.strategy-diff-content>section>strong{display:block;margin-bottom:7px;color:#53637a;font-size:11px}.strategy-diff-content dl{margin:0}.strategy-diff-content dl div{display:flex;justify-content:space-between;min-height:27px;align-items:center;border-bottom:1px solid #edf0f4}.strategy-diff-content dt,.strategy-diff-content dd{margin:0;color:#718097;font-size:10px}.strategy-diff-content dd{color:#ed8520;font-weight:700}.strategy-diff-content section p{color:#8a96a8;font-size:11px}.strategy-diff-actions{display:grid;grid-template-columns:1fr 1.3fr;gap:9px;align-content:center}.strategy-diff-actions button{height:39px;border:1px solid #d8e0ea;border-radius:5px;color:#53637a;background:#fff;font-weight:700}.strategy-diff-actions button.primary{color:#fff;border-color:#1677ff;background:#1677ff}.strategy-diff-actions p{grid-column:1 / -1;margin:2px 0 0;color:#f18419;font-size:10px}.strategy-latest-batch,.strategy-sync-latest-batch{min-height:54px;display:flex;align-items:center;gap:20px;margin-top:14px;padding:0 14px;border:1px solid #71acff;border-radius:6px;color:#6e7e94;font-size:11px;box-shadow:inset 0 0 0 1px #e4f0ff}.strategy-sync-latest-batch strong{color:#1677ff;font-size:14px}.strategy-sync-latest-batch button{margin-left:auto;height:34px;padding:0 15px;border:1px solid #8dbdff;border-radius:5px;color:#1677ff;background:#fff;font-weight:700}.strategy-reference-vehicle-select,.strategy-reference-records{padding:18px}.strategy-reference-vehicle-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:10px}.strategy-reference-vehicle-grid label{display:flex;align-items:center;gap:10px;padding:14px;border:1px solid #dfe6ee;border-radius:6px}.strategy-reference-vehicle-grid label.selected{border-color:#1677ff;background:#f6faff}.strategy-reference-vehicle-grid label span{display:grid;gap:3px}.strategy-reference-vehicle-grid label strong{color:#3b4b62;font-size:12px}.strategy-reference-vehicle-grid label small,.strategy-reference-vehicle-grid label i{color:#8190a4;font-size:10px;font-style:normal}.strategy-reference-vehicle-grid label i{margin-left:auto}.strategy-vehicle-groups{display:grid;gap:18px}.strategy-vehicle-group{display:grid;gap:0}.strategy-vehicle-group>header{display:flex;align-items:center;min-height:28px;padding:0 2px;color:#657186;font-size:12px;font-weight:700}.strategy-vehicle-group.online>header{color:#047857}.strategy-vehicle-group.offline>header{color:#b91c1c}.strategy-vehicle-status{margin-left:auto;padding:3px 8px;border-radius:12px;font-size:10px;font-style:normal}.strategy-vehicle-status.online{color:#047857;background:#dff7ec}.strategy-vehicle-status.offline{color:#b91c1c;background:#fee2e2}.strategy-reference-sync-notice{margin:14px 14px 0;padding:14px;border:1px solid #b9d4fb;border-radius:8px;background:#f5f9ff}.strategy-reference-sync-notice.is-failed,.strategy-reference-sync-notice.is-timeout{border-color:#fecaca;background:#fff7f7}.strategy-reference-sync-notice__summary{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:12px}.strategy-reference-sync-notice__summary>span{display:grid;width:28px;height:28px;place-items:center;border-radius:50%;color:#fff;background:#1677ff;font-weight:800}.strategy-reference-sync-notice.is-failed .strategy-reference-sync-notice__summary>span,.strategy-reference-sync-notice.is-timeout .strategy-reference-sync-notice__summary>span{background:#ef4444}.strategy-reference-sync-notice__summary strong{color:#293a54;font-size:13px}.strategy-reference-sync-notice__summary p{margin:4px 0 0;color:#66768c;font-size:11px}.strategy-reference-sync-notice__summary small{display:block;margin-top:4px;color:#c2413d;font-size:10px}.strategy-reference-sync-notice button{height:34px;padding:0 13px;border:1px solid #91bffd;border-radius:5px;color:#1677ff;background:#fff;font-weight:700}.strategy-reference-sync-notice button.primary{color:#fff;border-color:#1677ff;background:#1677ff}.strategy-timeout-recovery{display:grid;grid-template-columns:minmax(300px,360px) minmax(0,1fr);gap:24px;align-items:stretch;padding:18px 14px}.strategy-timeout-recovery__summary{grid-column:1;display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;align-content:center;min-width:0;padding-right:24px;border-right:1px solid #fee2e2}.strategy-timeout-recovery__icon{display:grid;width:42px;height:42px;place-items:center;border-radius:50%;color:#fff;background:#ef4444;font-size:20px;font-weight:800}.strategy-timeout-recovery__summary strong{display:block;color:#7a271a;font-size:15px}.strategy-timeout-recovery__summary p{overflow:hidden;margin:5px 0 0;color:#8a5a3f;font-size:12px;line-height:1.55;text-overflow:ellipsis;white-space:nowrap}.strategy-timeout-recovery__content{grid-column:2;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;gap:14px 20px;align-items:center;min-width:0}.strategy-timeout-recovery__content>strong{color:#b42318;font-size:12px}.strategy-timeout-recovery ol{grid-column:1 / -1;display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:12px;margin:0;padding:0;list-style:none}.strategy-timeout-recovery li{display:flex;align-items:center;gap:8px;min-width:0}.strategy-timeout-recovery li>b{display:grid;flex:0 0 24px;width:24px;height:24px;place-items:center;border:1px solid #f0a8a8;border-radius:50%;color:#c2413d;font-size:9px}.strategy-timeout-recovery li.done>b{color:#fff;border-color:#ef4444;background:#ef4444}.strategy-timeout-recovery li>span{display:grid;min-width:0;color:#3e4c61;font-size:11px;font-weight:700}.strategy-timeout-recovery li small{overflow:hidden;color:#8b98aa;font-size:9px;font-weight:400;text-overflow:ellipsis;white-space:nowrap}.strategy-timeout-recovery__actions{display:flex;grid-row:1;grid-column:2;gap:8px;justify-self:end}@media(max-width:1679px){.strategy-library-heading,.strategy-editor-summary{padding-right:16px;padding-left:16px}.strategy-library-content{padding-right:14px;padding-left:14px}.strategy-reference-fields.basic{grid-template-columns:repeat(3,minmax(160px,1fr));gap:12px}.strategy-sync-summary{gap:6px}.strategy-sync-summary article{gap:6px;padding:0 8px}.strategy-sync-summary article strong{font-size:17px}.strategy-sync-toolbar{flex-wrap:wrap;align-items:flex-start}.strategy-sync-toolbar .search{flex:1 1 180px}.strategy-sync-toolbar .selected{flex-basis:100%;margin-left:0}.strategy-sync-row{grid-template-columns:26px minmax(130px,1.2fr) 65px 65px 90px 86px 80px 54px 16px;padding-right:6px;padding-left:6px}.strategy-diff-content{grid-template-columns:1fr 1fr}.strategy-diff-actions{grid-column:1 / -1;grid-template-columns:140px 190px 1fr}.strategy-diff-actions p{grid-column:auto;align-self:center}.strategy-sync-latest-batch{gap:10px}.strategy-timeout-recovery{grid-template-columns:1fr}.strategy-timeout-recovery__summary,.strategy-timeout-recovery__content{grid-column:1}.strategy-timeout-recovery__summary{padding:0 0 14px;border-right:0;border-bottom:1px solid #fee2e2}}@media(max-width:1359px){.strategy-reference-topbar{min-height:50px;height:auto;flex-wrap:wrap}.strategy-reference-actions{min-height:50px;margin-left:auto;padding:6px 12px}.strategy-reference-actions span{display:none}.strategy-reference-fields.basic{grid-template-columns:repeat(3,minmax(150px,1fr))}.strategy-reference-tabs{overflow-x:auto}.strategy-reference-tabs button{min-width:132px}}*{box-sizing:border-box}html,body{min-width:1280px;min-height:100%;margin:0;color:var(--text);background:var(--bg);font-size:14px}button,input,select,textarea{font:inherit}input,select,textarea{min-width:0;max-width:100%}button{max-width:100%;flex-shrink:0;border:0;background:none;color:inherit;cursor:pointer;white-space:nowrap;word-break:keep-all}button span,button strong,button small{min-width:0}button:focus{outline:none}button:focus-visible,input:focus-visible{outline:2px solid rgba(47,107,255,.45);outline-offset:2px}.platform{position:relative;min-height:100vh;overflow:hidden;background:var(--bg)}.platform.sidebar-collapsed{--nav-w: 64px}.login-page{min-width:1280px;min-height:100vh;position:relative;display:block;overflow:hidden;padding:0;color:#fff;background:linear-gradient(90deg,#080c14f5 0 43%,#090b12cc 43% 100%),radial-gradient(circle at 76% 52%,rgba(16,89,210,.48),transparent 29%),radial-gradient(circle at 22% 78%,rgba(194,45,105,.28),transparent 24%),linear-gradient(130deg,#0e131c,#10131d 48%,#090a10)}.login-page:before{content:"GOODWE";position:absolute;left:-46px;top:-18px;width:210px;color:transparent;-webkit-text-stroke:2px rgba(255,255,255,.1);writing-mode:vertical-rl;font-size:132px;font-weight:800;letter-spacing:8px;opacity:.85}.login-page:after{content:"";position:absolute;left:115px;top:76px;width:360px;height:490px;opacity:.28;border-radius:50%;background:repeating-radial-gradient(ellipse at center,transparent 0 22px,rgba(255,255,255,.16) 23px 25px),radial-gradient(circle at center,rgba(55,174,237,.16),transparent 62%);transform:rotate(-17deg)}.login-top-actions{position:absolute;z-index:4;right:88px;top:30px;display:flex;gap:14px}.login-top-actions button{height:36px;min-width:72px;padding:0 18px;color:#fff;border:1px solid rgba(255,255,255,.56);border-radius:20px;background:#ffffff0f}.login-brand{position:absolute;z-index:2;left:12vw;top:28px;width:430px}.login-logo{width:210px;height:60px;margin-bottom:28px}.login-logo img{width:100%;height:100%;display:block;object-fit:contain}.login-brand h2{position:relative;margin:0 0 58px;font-size:26px}.login-brand h2:after{content:"";position:absolute;left:0;bottom:-16px;width:72px;height:4px;background:linear-gradient(90deg,#f5267d,#2f6bff)}.login-brand h1{margin:0 0 48px;font-size:36px;letter-spacing:0}.login-brand p{position:relative;margin:0 0 18px;padding-left:14px;color:#f4f7fb;font-size:15px}.login-brand p:before{content:"";position:absolute;left:0;top:9px;width:5px;height:5px;border-radius:50%;background:#fff}.login-visual{position:absolute;inset:0 0 0 43%;overflow:hidden}.login-visual:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 39% 42%,rgba(78,142,255,.46),transparent 5%),radial-gradient(circle at 51% 48%,rgba(242,118,42,.38),transparent 7%),linear-gradient(115deg,rgba(255,255,255,.03),transparent 32%),linear-gradient(90deg,rgba(255,255,255,.03),transparent)}.energy-panel{position:absolute;left:58px;top:112px;width:610px;height:454px;border:1px solid rgba(0,190,255,.28);border-radius:24px;background:radial-gradient(circle at 54% 47%,rgba(47,107,255,.48),transparent 19%),linear-gradient(125deg,#142c4d75,#08101c1f);box-shadow:0 0 44px #009bff29;transform:perspective(900px) rotateY(-15deg) rotate(7deg)}.energy-panel span{position:absolute;left:42px;top:44px;color:#7ea5ffc7;font-size:34px;font-weight:800;font-style:italic}.grid-mark{position:absolute;left:198px;top:150px;width:210px;height:210px;border-radius:50%;border:12px solid rgba(63,129,255,.52);box-shadow:inset 0 0 0 24px #ffffff14}.grid-mark:before{content:"";position:absolute;left:72px;top:58px;width:64px;height:76px;clip-path:polygon(50% 0,100% 100%,0 100%);background:linear-gradient(180deg,#f8fbff,#7ab4ff)}.node{position:absolute;width:62px;height:70px;clip-path:polygon(50% 0,100% 26%,100% 74%,50% 100%,0 74%,0 26%);background:#1659b4a3;border:1px solid rgba(74,181,255,.42)}.node.one{right:66px;top:108px}.node.two{right:24px;top:206px}.node.three{right:78px;top:304px}.node.four{right:152px;top:242px}.enter-btn{position:absolute;right:72px;bottom:108px;width:190px;height:68px;color:#fff;font-size:16px;font-weight:700;background:linear-gradient(100deg,#ee276c,#5d23ce)}.login-panel{position:absolute;z-index:5;left:50%;top:50%;width:420px;min-height:378px;padding:38px 40px;color:#fff;border:1px solid rgba(255,255,255,.11);border-radius:8px;background:#565470eb;box-shadow:0 18px 46px #00000057;transform:translate(-50%,-47%)}.login-panel-title{display:flex;align-items:baseline;gap:10px;margin-bottom:42px}.login-panel-title strong{font-size:26px;line-height:1}.login-panel-title span{color:#ffffffb8}.login-panel-title span:before{content:"|";margin-right:10px;color:#ffffffb8}.login-panel label{display:block;margin-bottom:26px}.login-panel input{width:100%;height:42px;padding:0 13px;color:#fff;border:1px solid rgba(255,255,255,.18);border-radius:6px;outline:0;background:#ffffff0a}.login-panel input::placeholder{color:#ffffff85}.login-panel input:focus{border-color:#ffffff80;box-shadow:0 0 0 3px #8675ff38}.login-row{display:grid;gap:10px;margin:-4px 0 12px;color:#ffffffad;font-size:12px}.agreement{display:flex!important;align-items:center;gap:5px;margin:0!important;min-width:0;white-space:nowrap}.agreement input{width:13px;height:13px;padding:0;accent-color:#9f7aea}.agreement b,.login-row button{color:#fff;font-weight:400}.login-row button{justify-self:end;order:-1}.login-error{min-height:24px;margin:0 0 8px;color:#ffd1d7}.login-submit{width:100%;height:42px;color:#fff;font-size:16px;font-weight:700;border-radius:7px;background:linear-gradient(100deg,#f56f9e,#6a72ff)}.login-copyright{position:absolute;right:34px;bottom:18px;color:#ffffffc7;font-size:11px}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--nav-w);color:#c9d0df;background:radial-gradient(circle at 62% 78%,rgba(126,82,255,.42),transparent 5%),radial-gradient(circle at 24% 68%,rgba(255,75,105,.28),transparent 4%),radial-gradient(circle at 70% 62%,rgba(36,115,255,.34),transparent 3%),radial-gradient(circle at 10% 17%,rgba(110,69,255,.42),transparent 3%),linear-gradient(180deg,#131927f5,#141828f2),#121725;z-index:10;transition:width .18s ease}.sidebar:after{content:"";position:absolute;inset:0;background-image:radial-gradient(circle,rgba(255,255,255,.82) 0 1px,transparent 1.6px),radial-gradient(circle,rgba(108,164,255,.7) 0 1px,transparent 1.5px);background-position:20px 86px,70px 132px;background-size:92px 124px,142px 190px;opacity:.56;pointer-events:none}.sidebar nav{position:relative;z-index:1;height:calc(100vh - var(--top-h));overflow-y:auto;padding-bottom:16px;scrollbar-width:none}.sidebar nav::-webkit-scrollbar{display:none}.logo{position:relative;z-index:1;height:var(--top-h);display:flex;align-items:center;padding:4px 0 4px 24px;overflow:hidden}.logo-image{width:150px;height:36px;display:block;object-fit:contain;object-position:left center}#sideNav{position:relative;z-index:1;padding-top:2px}.nav-section{border-top:1px solid rgba(255,255,255,.06);border-bottom:1px solid rgba(255,255,255,.03)}.nav-head,.nav-item{width:100%;display:flex;align-items:center;gap:11px;height:54px;padding:0 28px;color:#d7deeb;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-head{font-weight:700;background:#ffffff04}.nav-head.active{color:#fff;background:#ffffff14}.nav-head.expanded .chevron{transform:rotate(180deg)}.nav-head .chevron{margin-left:auto;color:#8b94a8;font-size:13px;transition:transform .2s ease;display:inline-block}.nav-label{min-width:0;overflow:hidden;text-overflow:ellipsis}.nav-item{height:40px;padding-left:48px;font-size:14px;color:#d8deec}.nav-children{overflow:hidden;max-height:500px;transition:max-height .2s ease}.nav-children.collapsed{max-height:0}.nav-item.active{position:relative;color:#e26aff;font-weight:700}.nav-item.active:before{content:"";position:absolute;left:33px;width:2px;height:15px;background:#7b58ff}.sidebar-collapsed .logo{padding-left:16px}.sidebar-collapsed .logo-image{width:150px;min-width:150px;max-width:none}.sidebar-collapsed .sidebar nav{overflow:visible}.sidebar-collapsed .nav-head{justify-content:center;gap:0;padding-right:0;padding-left:0}.sidebar-collapsed .nav-head{position:relative;overflow:visible}.sidebar-collapsed .nav-head:before{content:attr(data-menu-label);position:absolute;z-index:30;top:50%;left:calc(100% + 10px);min-width:max-content;padding:7px 10px;color:#f8fafc;font-size:13px;font-weight:600;line-height:1;letter-spacing:.1px;border:1px solid rgba(96,165,250,.42);border-radius:5px;background:#141d2df5;box-shadow:0 8px 22px #0208174d;opacity:0;visibility:hidden;pointer-events:none;transform:translate(-4px,-50%);transition:opacity .14s ease,transform .14s ease,visibility .14s ease}.sidebar-collapsed .nav-head:hover:before,.sidebar-collapsed .nav-head:focus-visible:before{opacity:1;visibility:visible;transform:translateY(-50%)}.sidebar-collapsed .nav-head:hover{color:#fff;background:#ffffff14}.sidebar-collapsed .nav-head.active:after{content:"";position:absolute;top:15px;right:0;width:2px;height:24px;border-radius:2px 0 0 2px;background:#6d8cff}.sidebar-collapsed .nav-label,.sidebar-collapsed .nav-head .chevron,.sidebar-collapsed .nav-children{display:none}.storage-shell{--storage-page-bg: #f5f7fb;--storage-primary-blue: #1677ff;--storage-card-bg: #ffffff;--storage-border: #e5eaf2;--storage-radius: 8px;--storage-gutter: 14px}.storage-shell .content{background:var(--storage-page-bg)}.topbar{position:fixed;inset:0 auto auto var(--nav-w);width:max(calc(100vw - var(--nav-w)),1077px);height:var(--top-h);color:#fff;background:#121821;z-index:20;transition:left .18s ease,width .18s ease}.sidebar-toggle{position:absolute;z-index:4;left:0;top:8px;width:28px;height:28px;display:grid;place-items:center;padding:0;color:#cbd5e1;border:1px solid rgba(148,163,184,.5);border-radius:6px;background:#182131;box-shadow:0 4px 12px #03081247;transform:translate(-50%);transition:color .16s ease,border-color .16s ease,background .16s ease}.sidebar-toggle:hover{color:#fff;border-color:#60a5fae6;background:#263858}.sidebar-toggle-icon{position:relative;width:15px;height:14px}.sidebar-toggle-icon:before{content:"";position:absolute;left:1px;top:2px;width:5px;height:10px;border:1px solid currentColor;border-radius:1px}.sidebar-toggle-icon:after{content:"";position:absolute;right:1px;top:5px;width:5px;height:5px;border-bottom:1.5px solid currentColor;border-left:1.5px solid currentColor;transform:rotate(45deg);transition:transform .18s ease}.sidebar-toggle.collapsed .sidebar-toggle-icon:after{transform:rotate(225deg)}.topbar-bg{position:absolute;inset:0;background:radial-gradient(ellipse at 39% -95%,rgba(109,124,146,.98) 0 30%,transparent 31%),radial-gradient(ellipse at 59% -115%,rgba(123,74,42,.78) 0 29%,transparent 30%),linear-gradient(90deg,#121821eb,#11161fe6);opacity:.98}.system-title{position:absolute;z-index:2;left:27px;top:0;height:var(--top-h);color:#fff;font-size:22px;font-weight:800;font-style:italic;letter-spacing:-1px}.system-title span{font-size:12px;font-style:normal}.system-switcher{position:absolute;z-index:3;left:24px;top:0;height:var(--top-h);display:inline-flex;align-items:center;max-width:calc(100vw - var(--nav-w) - 620px);min-width:0;overflow:visible}.system-title{display:inline-flex;align-items:center;gap:8px;left:0;top:0;padding:0;margin:0;background:transparent;position:relative;max-width:100%;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.system-title span{transition:transform .16s ease;flex-shrink:0}.system-title span.open{transform:rotate(180deg)}.system-popover{position:absolute;left:0;top:48px;min-width:178px;width:auto;border-radius:8px;overflow:hidden;border:1px solid rgba(255,255,255,.2);background:#181f2d;box-shadow:0 18px 40px #0f121c40}.system-option{width:100%;height:40px;padding:0 16px;color:#f5f7fb;text-align:left;border-bottom:1px solid rgba(255,255,255,.09);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.system-option:last-child{border-bottom:0}.system-option.active,.system-option:hover{background:#ffffff1f;color:#fff}.global-lighting-scene-switcher{position:absolute;z-index:4;left:205px;top:0;height:var(--top-h);display:flex;align-items:center;gap:9px}.global-lighting-scene-switcher__context{display:inline-flex;align-items:center;gap:6px;color:#cbd5e1;font-size:12px;font-weight:700;white-space:nowrap}.global-lighting-scene-switcher__context i{width:7px;height:7px;border-radius:50%;background:#34d399;box-shadow:0 0 0 3px #34d39929,0 0 10px #34d399b3}.global-lighting-scene-switcher__options{display:inline-flex;gap:3px;padding:3px;border:1px solid rgba(148,163,184,.45);border-radius:8px;background:#060c16b8;box-shadow:inset 0 0 0 1px #ffffff09,0 6px 18px #02081742}.global-lighting-scene-switcher__options button{height:32px;display:inline-flex;align-items:center;gap:6px;padding:0 10px;color:#cbd5e1;border:1px solid transparent;border-radius:6px;font-size:13px;font-weight:800;transition:color .16s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease}.global-lighting-scene-switcher__options button>span{width:19px;height:19px;display:grid;place-items:center;color:#94a3b8;border-radius:5px;background:#94a3b821;font-size:11px}.global-lighting-scene-switcher__options button:hover{color:#fff;background:#334155d1}.global-lighting-scene-switcher__options button.active{color:#fff;border-color:#5eead4e6;background:linear-gradient(135deg,#0f766e,#0d9488);box-shadow:0 0 0 1px #2dd4bf29,0 0 16px #14b8a647}.global-lighting-scene-switcher__options button.active>span{color:#0f766e;background:#ccfbf1}.global-lighting-scene-switcher__options button b{padding:1px 4px;color:#115e59;border-radius:4px;background:#f0fdfa;font-size:9px;line-height:1.3}.global-lighting-scene-switcher__options button:focus-visible{outline:2px solid #99f6e4;outline-offset:2px}.global-storage-vehicle-switcher{position:fixed;z-index:24;left:calc(var(--nav-w) + 206px);top:0;display:flex;align-items:center;height:var(--top-h);min-width:0}.twin-immersive-shell>.global-storage-vehicle-switcher{z-index:32;right:22px;left:auto;height:48px}.global-storage-vehicle-switcher__trigger{display:inline-flex;align-items:stretch;min-width:300px;max-width:min(420px,calc(100vw - var(--nav-w) - 720px));height:34px;overflow:hidden;padding:0;color:#fff;border:1px solid rgba(96,165,250,.85);border-radius:7px;background:#172b4d;box-shadow:0 0 0 1px #2563eb42,0 7px 18px #02122d6b}.global-storage-vehicle-switcher__trigger:hover,.global-storage-vehicle-switcher__trigger[aria-expanded=true]{border-color:#93c5fd;box-shadow:0 0 0 2px #3b82f642,0 9px 24px #02122d80}.global-storage-vehicle-switcher__trigger.is-offline{border-color:#ef4444}.global-storage-vehicle-switcher__trigger.is-unknown{border-color:#94a3b8}.global-storage-vehicle-switcher__trigger:focus-visible,.global-storage-vehicle-switcher__option:focus-visible{outline:2px solid #bfdbfe;outline-offset:2px}.global-storage-vehicle-switcher__label{display:grid;grid-template-columns:auto auto;grid-template-rows:1fr 1fr;align-items:center;column-gap:6px;flex:0 0 auto;min-width:74px;padding:4px 12px 3px;color:#86efac;background:linear-gradient(135deg,#3284ff,#1765dd);font-size:13px;font-weight:800}.global-storage-vehicle-switcher__label.is-offline{color:#ff6b7a}.global-storage-vehicle-switcher__label.is-unknown{color:#cbd5e1}.global-storage-vehicle-switcher__label-icon{grid-row:1 / span 2;font-size:12px;color:#dbeafe;transform:rotate(90deg)}.global-storage-vehicle-switcher__label-text{color:#fff;line-height:1.1;white-space:nowrap}.global-storage-vehicle-switcher__status{color:inherit;line-height:1.1;white-space:nowrap;font-size:10px;font-weight:800}.global-storage-vehicle-switcher__machine{min-width:0;flex:1 1 auto;overflow:hidden;padding:0 10px;font-size:13px;font-weight:800;line-height:32px;text-align:left;text-overflow:ellipsis;white-space:nowrap}.global-storage-vehicle-switcher__chevron{display:grid;width:30px;flex:0 0 30px;place-items:center;color:#dbeafe;border-left:1px solid rgba(147,197,253,.24);font-size:16px;transition:transform .16s ease}.global-storage-vehicle-switcher__chevron.open{transform:rotate(180deg)}.global-storage-vehicle-switcher__menu{position:absolute;top:42px;left:0;width:min(420px,calc(100vw - var(--nav-w) - 32px));max-height:min(420px,calc(100vh - 74px));overflow:auto;padding:6px;border:1px solid rgba(96,165,250,.62);border-radius:8px;background:#121d31;box-shadow:0 18px 42px #0208176b}.global-storage-vehicle-switcher__menu-title{display:flex;justify-content:space-between;padding:8px 9px 7px;color:#f8fafc;font-size:13px;font-weight:800}.global-storage-vehicle-switcher__menu-title span{color:#93c5fd;font-size:12px}.global-storage-vehicle-switcher__option{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:8px 10px;color:#e2e8f0;text-align:left;border-radius:6px}.global-storage-vehicle-switcher__option:hover,.global-storage-vehicle-switcher__option.active{background:#2563eb38}.global-storage-vehicle-switcher__option.active{box-shadow:inset 3px 0 #60a5fa}.global-storage-vehicle-switcher__option>span{min-width:0;display:grid;gap:3px}.global-storage-vehicle-switcher__option strong,.global-storage-vehicle-switcher__option small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.global-storage-vehicle-switcher__option strong{color:#f8fafc;font-size:13px}.global-storage-vehicle-switcher__option small{color:#94a3b8;font-size:11px}.global-storage-vehicle-switcher__states{flex:0 0 auto;display:flex;justify-content:flex-end}.global-storage-vehicle-switcher__states b{min-width:54px;padding:2px 7px;border:1px solid transparent;border-radius:999px;font-size:12px;line-height:1.25;text-align:center}.global-storage-vehicle-switcher__status.is-offline,.global-storage-vehicle-switcher__states .state.is-offline{color:#ff6b7a}.global-storage-vehicle-switcher__states .state.is-offline{border-color:#ff6b7a40;background:#ef44441a}.global-storage-vehicle-switcher__status.is-unknown,.global-storage-vehicle-switcher__states .state.is-unknown{color:#94a3b8}.global-storage-vehicle-switcher__states .state.is-unknown{border-color:#94a3b833;background:#94a3b814}.global-storage-vehicle-switcher__status.is-charging,.global-storage-vehicle-switcher__states .state.is-charging{color:#67e8f9}.global-storage-vehicle-switcher__states .state.is-charging{border-color:#67e8f947;background:#06b6d41f}.global-storage-vehicle-switcher__status.is-discharging,.global-storage-vehicle-switcher__states .state.is-discharging{color:#93c5fd}.global-storage-vehicle-switcher__states .state.is-discharging{border-color:#93c5fd47;background:#3b82f61f}.global-storage-vehicle-switcher__status.is-idle,.global-storage-vehicle-switcher__states .state.is-idle{color:#fde047}.global-storage-vehicle-switcher__states .state.is-idle{border-color:#fde0473d;background:#eab3081a}.global-storage-vehicle-switcher__status.is-fault,.global-storage-vehicle-switcher__states .state.is-fault{color:#fda4af}.global-storage-vehicle-switcher__states .state.is-fault{border-color:#fda4af47;background:#f43f5e1f}.global-storage-vehicle-switcher__empty{margin:0;padding:16px 10px;color:#94a3b8;text-align:center;font-size:12px}.top-tools{position:absolute;z-index:2;right:14px;top:0;display:flex;align-items:center;gap:26px;height:var(--top-h);white-space:nowrap;min-width:0;justify-content:flex-end}.top-tools button{display:inline-flex;align-items:center;gap:6px;color:#fff;font-size:13px;font-weight:700;white-space:nowrap}.top-tools .company{gap:8px}.avatar{width:24px;height:24px;border-radius:50%;background:radial-gradient(circle at 50% 35%,#ffd5d5 0 30%,transparent 31%),radial-gradient(circle at 52% 64%,#5c5fd5 0 35%,transparent 36%),#f2c8d8;box-shadow:0 0 0 1px #fff3}.content{margin-left:var(--nav-w);min-width:1077px;padding-top:var(--top-h);transition:margin-left .18s ease}.tab-strip{height:57px;display:flex;align-items:flex-end;padding-left:15px;background:#f4f5f8;overflow:hidden;overflow-x:auto;overflow-y:hidden;white-space:nowrap;scrollbar-width:none}.tab{position:relative;flex:0 0 auto;min-width:124px;height:45px;margin-right:3px;padding:0 24px;color:#9aa0aa;background:#fff;clip-path:polygon(0 0,calc(100% - 13px) 0,100% 100%,13px 100%);white-space:nowrap}.tab-strip::-webkit-scrollbar{display:none}.tab.active{color:#111827;font-weight:700}.tab span{display:block;line-height:39px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#view{position:relative;min-height:calc(100vh - var(--top-h) - 57px);padding:0 15px 10px;background:#f6f7fb}.content--storage-twin #view{padding:0;background:#040a12}.content--storage-leadership #view{min-height:calc(100vh - var(--top-h));padding:0;overflow:hidden;background:#020c20}.storage-leadership-shell{min-height:100vh;min-height:100dvh;overflow:hidden;background:#020b1e}.storage-leadership-shell .content{width:100vw;min-width:1280px;height:100vh;height:100dvh;margin-left:0;padding-top:0;overflow:hidden;background:#020b1e}.storage-leadership-shell .content--storage-leadership #view{width:100vw;height:100vh;height:100dvh;min-height:0;padding:0;overflow:hidden;background:#020b1e}.storage-workspace{min-height:calc(100vh - var(--top-h) - 57px);display:grid;grid-template-rows:auto minmax(0,1fr);gap:12px;padding:14px 0 4px;background:var(--bg)}.storage-workspace__header{min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 18px;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:0 4px 14px #2a34490d}.storage-workspace__title-group{min-width:0;display:grid;gap:8px}.storage-workspace__title-group h2{margin:0;color:var(--text);font-size:18px;line-height:1.25;font-weight:700}.storage-workspace__vehicle{min-width:0;display:flex;align-items:center;gap:10px;color:var(--muted);font-size:13px;line-height:1.35}.storage-workspace__vehicle strong{min-width:0;max-width:360px;overflow:hidden;color:var(--text);font-size:14px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.storage-workspace__freshness{min-width:0;color:var(--muted);white-space:nowrap}.storage-workspace__meta{min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:12px}.storage-workspace__status{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:0 10px;border:1px solid var(--line);border-radius:999px;color:var(--muted);background:var(--panel);font-size:13px;font-weight:700;line-height:1;white-space:nowrap}.storage-workspace__status:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.storage-workspace__status.is-online{border-color:#35c66b47;color:var(--green);background:#35c66b14}.storage-workspace__status.is-offline{border-color:#ff4b663d;color:var(--red);background:#ff4b6612}.storage-workspace__actions{min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:8px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.storage-workspace__body{min-width:0;min-height:0;display:block}.storage-workspace--alarm-center>.storage-workspace__header{min-height:82px;padding:13px 16px}.storage-workspace--alarm-center .storage-workspace__vehicle strong{max-width:none}.storage-workspace--alarm-center .storage-workspace__vehicle-icon{flex:0 0 26px;width:26px;height:30px;display:inline-grid;place-items:center;border:1px solid #dbe5f0;border-radius:5px;color:#64748b;background:#f8fafc}.storage-workspace--alarm-center .storage-workspace__vehicle-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.storage-workspace--alarm-center .storage-workspace__actions button{min-height:34px;padding:0 11px;border:1px solid #dbe5f0;border-radius:6px;color:#0f172a;background:#fff;font-weight:700}.storage-workspace--alarm-center .storage-workspace__actions button:before{margin-right:6px;font-size:16px;content:"⟳"}.storage-workspace__state{display:grid;gap:10px;align-content:center;justify-items:center;min-height:280px;padding:38px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--muted);text-align:center}.storage-workspace__state strong{color:var(--text);font-size:18px}.storage-workspace__state span{max-width:520px;line-height:1.6}.storage-workspace__state button{min-width:104px;border:1px solid var(--primary);border-radius:6px;background:var(--primary);color:#fff}.storage-workspace__state-skeleton{display:grid;gap:8px;width:min(420px,100%)}.storage-workspace__state-skeleton i{height:14px;border-radius:4px;background:color-mix(in srgb,var(--muted) 18%,transparent)}.storage-workspace__state-skeleton i:nth-child(2){width:76%;justify-self:center}.storage-workspace__state-skeleton i:nth-child(3){width:58%;justify-self:center}.storage-workspace__error{border-color:color-mix(in srgb,var(--red) 42%,var(--line))}.dashboard{display:grid;gap:20px}.top-grid{display:grid;grid-template-columns:minmax(470px,.88fr) minmax(520px,1.12fr);gap:20px}.card{background:#fff;border:1px solid #f0f1f5;border-radius:8px;box-shadow:var(--shadow)}.asset-card,.income-card{min-height:304px;padding:18px 20px}.card-title{margin:0;font-size:14px;color:#111827;font-weight:700}.card-title:after{content:"";display:inline-block;width:14px;height:2px;margin-left:1px;vertical-align:baseline;background:#2f6bff}.asset-head{display:flex;align-items:center;justify-content:space-between}.asset-detail{color:#8a92a1;font-size:13px}.asset-flow{position:relative;height:230px}.station-count{position:absolute;left:14px;top:18px;color:#8b94a1}.station-count strong{display:block;margin-top:8px;color:#111827;font-size:38px;line-height:38px}.station-count small{margin-left:4px;color:#8e97a5;font-size:13px}.flow-line{position:absolute;left:103px;top:40px;right:82px;height:146px;border-top:8px solid #d8d8ff;border-right:8px solid #d8d8ff;border-radius:0 22px 0 0}.flow-line:before,.flow-line:after{content:"";position:absolute;top:-8px;width:107px;height:139px;border-top:8px solid #cadffa;border-right:8px solid #cadffa;border-radius:0 22px 0 0}.flow-line:before{left:104px}.flow-line:after{left:280px;opacity:.24}.flow-dash{position:absolute;left:104px;right:0;bottom:36px;height:42px;border-left:5px dotted #e6e4ff;border-bottom:5px dotted #e6e4ff;border-radius:0 0 0 22px}.flow-dash.two{left:281px}.flow-dash.three{left:456px;opacity:.6}.asset-node{position:absolute;top:82px;width:150px;text-align:center}.asset-node.pv{left:72px}.asset-node.storage{left:250px}.asset-node.charge{left:426px;opacity:.32}.node-illustration{width:88px;height:58px;margin:0 auto 22px;background:linear-gradient(180deg,#eef4ff,#f8fbff);transform:skewY(-28deg);box-shadow:14px 9px #ecf3ff}.node-illustration:before{content:"";display:block;width:38px;height:32px;margin:11px auto;background:repeating-linear-gradient(90deg,#b9cdec 0 8px,#edf4ff 8px 10px);border:1px solid #c9d7ec}.asset-node.storage .node-illustration:before{width:36px;height:50px;margin-top:2px;background:linear-gradient(90deg,#b9c9e5,#eef5ff)}.asset-node.charge .node-illustration:before{width:16px;height:50px;margin-top:4px;background:#d9e7f8}.asset-node b{display:block;margin-bottom:4px;color:#8e95a1;font-size:20px;font-weight:400}.asset-node strong{font-size:16px}.asset-node small{color:#8c94a1}.plant{position:absolute;right:32px;top:54px;width:150px;height:84px;opacity:.74}.plant:before,.plant:after{content:"";position:absolute;bottom:0;border-radius:10px 10px 4px 4px;background:linear-gradient(180deg,#d5e0f2,#f5f8fc)}.plant:before{right:55px;width:34px;height:73px}.plant:after{right:10px;width:39px;height:62px}.plant-metrics{position:absolute;right:12px;bottom:19px;display:flex;gap:16px}.plant-metrics span{color:#a0a6b0;font-size:13px}.plant-metrics strong{color:#111827;font-size:16px}.virtual{position:absolute;right:13px;bottom:0;color:#4b5360}.income-layout{display:grid;grid-template-columns:300px 1px minmax(270px,1fr);gap:25px;align-items:center;height:235px}.divider{height:120px;background:#edf0f5}.donut-wrap{display:flex;align-items:center;justify-content:center}.donut{position:relative;width:153px;height:153px;border-radius:50%;background:conic-gradient(#2fa8ff 0 94%,#ff9818 94% 97%,#56cc77 97% 100%)}.donut:after{content:"";position:absolute;inset:7px;border-radius:50%;background:#fff}.donut-center{position:absolute;z-index:1;inset:0;display:grid;place-content:center;text-align:center;color:#6e7480}.donut-center strong{display:block;color:#111827;font-size:28px;line-height:34px}.legend-list{display:grid;gap:13px;color:#8d94a1}.legend-item{width:100%;display:grid;grid-template-columns:8px 1fr;gap:8px;align-items:start;text-align:left}.legend-dot{width:6px;height:6px;margin-top:6px;background:var(--blue)}.legend-item b{color:#111827;font-size:17px}.analysis-card{min-height:363px}.system-switch{height:40px;display:flex;align-items:center;justify-content:center;gap:84px;border-bottom:1px solid var(--line);color:#a1a7b2}.system-switch button{min-width:124px;color:#a1a7b2;font-size:16px}.system-switch button.active{color:var(--blue)}.chart-row{display:grid;grid-template-columns:minmax(720px,1fr) 383px;gap:28px;padding:17px 18px 20px}.asset-trend-stack{display:grid;gap:14px;min-width:0}.trend-title{margin:0 0 8px;font-weight:700}.trend-title:after{content:"";display:inline-block;width:14px;height:2px;margin-left:2px;background:#2f6bff}#trendCanvas{width:100%;height:245px}.summary-box{align-self:center;min-height:238px;padding:23px 28px;background:#fff;box-shadow:0 14px 32px #37455a14}.summary-line{display:grid;grid-template-columns:1fr 1fr;gap:28px;padding:15px 0 20px;border-bottom:1px solid var(--line)}.summary-line:last-child{border-bottom:0}.summary-box h3{margin:0;font-size:16px;font-weight:400;color:#8c94a1}.summary-box h3 strong{color:#111827;font-size:18px}.summary-box span{display:block;margin-bottom:9px;color:#777f8c}.summary-box b{font-size:16px}.bottom-grid{display:grid;grid-template-columns:1fr 1.32fr;gap:1px;min-height:120px;background:#e8ebf0}.bottom-panel{padding:18px 20px;background:#fff}.bottom-panel h3{margin:0 0 22px;font-size:14px}.inline-action{display:inline-flex;align-items:center;gap:7px;color:#55c87a}.settlement-cards{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:20px}.settlement-card{height:54px;display:grid;place-items:center;background:linear-gradient(90deg,#fff,#fff7ed 50%,#fff);color:#ff8a2a}.settlement-card.paid{color:#35c66b;background:linear-gradient(90deg,#fff,#edf9ef 50%,#fff)}.settlement-card.overdue{color:#f52831}.permission-workbench{min-height:calc(100vh - var(--top-h) - 57px);padding:18px;background:#f6f7fb}.permission-hero{display:grid;grid-template-columns:minmax(420px,1fr) minmax(520px,.95fr);gap:20px;align-items:end;padding:18px 20px;border:1px solid #e6eaf0;border-radius:8px;background:#fff}.permission-hero h1{margin:4px 0 8px;color:#111827;font-size:26px;letter-spacing:0}.permission-hero p{max-width:780px;margin:0;color:#5b6472;line-height:1.7}.permission-hero-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.permission-hero-actions button{min-height:70px;padding:12px 14px;text-align:left;border:1px solid #dfe5ee;border-radius:6px;background:#f9fafb}.permission-hero-actions button.active{border-color:#2f6bff;background:#eef4ff}.permission-hero-actions strong,.permission-hero-actions span{display:block}.permission-hero-actions strong{color:#111827;font-size:16px}.permission-hero-actions span{margin-top:6px;color:#6b7280}.permission-grid{display:grid;grid-template-columns:230px minmax(0,1fr) 250px;gap:14px;margin-top:14px}.permission-side,.permission-stage,.permission-inspector{border:1px solid #e6eaf0;border-radius:8px;background:#fff}.permission-side,.permission-inspector{padding:14px;align-self:start}.permission-side-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;color:#667085}.permission-side-head strong{color:#111827;font-size:20px}.permission-org-node{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;padding:11px 12px;color:#374151;text-align:left;border:1px solid #edf0f5;border-radius:6px;background:#fbfcfe}.permission-org-node:hover{border-color:#b9c7df;background:#f2f6fb}.permission-org-node span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.permission-org-node b{flex:0 0 auto;color:#2f6bff;font-weight:700}.permission-stage{min-width:0;padding:14px}.platform-ai-visibility-setting{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:14px;padding:16px 18px;border:1px solid #cfe0ff;border-radius:10px;background:linear-gradient(135deg,#f5f9ff,#eef6ff)}.platform-ai-visibility-setting>div>span,.platform-ai-visibility-setting small{display:block;color:#64748b}.platform-ai-visibility-setting>div>span{margin-bottom:5px;color:#2563eb;font-size:12px;font-weight:700;letter-spacing:.08em}.platform-ai-visibility-setting strong{display:block;color:#172033;font-size:17px}.platform-ai-visibility-setting small{margin-top:5px}.platform-ai-switch{display:flex;align-items:center;gap:10px;cursor:pointer;white-space:nowrap}.platform-ai-switch input{position:absolute;opacity:0;pointer-events:none}.platform-ai-switch span{position:relative;width:44px;height:24px;border-radius:999px;background:#aeb9c9;transition:background .2s ease}.platform-ai-switch span:after{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 2px 5px #0f172a3d;transition:transform .2s ease;content:""}.platform-ai-switch input:checked+span{background:#2563eb}.platform-ai-switch input:checked+span:after{transform:translate(20px)}.platform-ai-switch input:focus-visible+span{outline:3px solid rgb(37 99 235 / 25%);outline-offset:2px}.platform-ai-switch input:disabled+span{opacity:.55}.platform-ai-switch b{min-width:42px;color:#334155;font-size:13px}.permission-summary{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr));gap:10px}.permission-stat{min-height:74px;padding:12px 14px;text-align:left;border:1px solid #edf0f5;border-radius:6px;background:#fbfcfe}.permission-stat span,.permission-stat small{display:block;color:#7d8796}.permission-stat strong{display:inline-block;margin:7px 6px 0 0;color:#111827;font-size:24px;line-height:1.05}.permission-stat.online strong{color:#16a34a}.permission-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0;padding:12px;border:1px solid #edf0f5;border-radius:8px;background:#f8fafc}.permission-toolbar .search-box{min-width:320px;margin:0}.permission-user-grid{display:grid;grid-template-columns:repeat(2,minmax(240px,1fr));gap:10px}.permission-user-card{position:relative;min-height:132px;padding:14px 14px 14px 66px;text-align:left;border:1px solid #e6eaf0;border-radius:8px;background:#fff}.permission-avatar{position:absolute;left:14px;top:16px;width:38px;height:38px;display:grid;place-items:center;color:#fff;font-weight:700;border-radius:50%;background:#2f6bff}.permission-user-card strong,.permission-user-card small,.permission-user-card b,.permission-user-card i,.permission-user-card em{display:block}.permission-user-card strong{color:#111827;font-size:16px}.permission-user-card small,.permission-user-card i{margin-top:5px;color:#6b7280;font-style:normal}.permission-user-card b{margin-top:10px;color:#374151}.permission-user-card em,.permission-role-card em,.permission-menu-node em{position:absolute;right:12px;top:12px;padding:3px 8px;color:#15803d;font-style:normal;border-radius:999px;background:#dcfce7}.permission-user-card em.off,.permission-role-card em.off,.permission-menu-node em.off{color:#9a3412;background:#ffedd5}.permission-role-layout{display:grid;grid-template-columns:repeat(2,minmax(260px,1fr));gap:10px}.permission-role-card{position:relative;min-height:152px;padding:14px;text-align:left;border:1px solid #e6eaf0;border-radius:8px;background:#fff}.permission-role-card>span,.permission-role-card small{display:block;color:#6b7280}.permission-role-card strong{display:block;margin-top:6px;color:#111827;font-size:18px}.permission-role-card div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:18px}.permission-role-card b{min-height:38px;display:grid;place-items:center;color:#374151;border-radius:6px;background:#f3f6fb}.permission-menu-tree{display:grid;gap:12px}.permission-menu-system{border:1px solid #e6eaf0;border-radius:8px;background:#fff}.permission-menu-system h2{display:flex;align-items:center;justify-content:space-between;margin:0;padding:12px 14px;color:#111827;font-size:17px;border-bottom:1px solid #edf0f5}.permission-menu-system h2 span{color:#6b7280;font-size:13px;font-weight:500}.permission-menu-branches{display:grid;grid-template-columns:repeat(2,minmax(260px,1fr));gap:10px;padding:12px}.permission-menu-branch{padding:10px;border-radius:6px;background:#f8fafc}.permission-menu-branch h3{margin:0 0 8px;color:#374151;font-size:14px}.permission-menu-node{position:relative;width:100%;min-height:74px;margin-top:8px;padding:11px 84px 11px 12px;text-align:left;border:1px solid #e6eaf0;border-radius:6px;background:#fff}.permission-menu-node>span{display:inline-block;min-width:42px;margin-bottom:5px;padding:2px 8px;color:#475569;text-align:center;border-radius:999px;background:#eef2f7}.permission-menu-node.按钮>span{color:#0369a1;background:#e0f2fe}.permission-menu-node.目录>span{color:#6d28d9;background:#ede9fe}.permission-menu-node strong,.permission-menu-node small{display:block}.permission-menu-node strong{color:#111827}.permission-menu-node small{margin-top:4px;color:#6b7280}.permission-flow-step{width:100%;display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;padding:11px 12px;color:#475569;text-align:left;border:1px solid #edf0f5;border-radius:6px;background:#fbfcfe}.permission-flow-step.active{border-color:#2f6bff;color:#1d4ed8;background:#eef4ff}.permission-flow-step.done{color:#166534;background:#f0fdf4}.permission-rule-box{margin-top:14px;padding:12px;border-radius:6px;background:#f8fafc}.permission-rule-box span{display:block;margin-bottom:6px;color:#111827;font-weight:700}.permission-rule-box p{margin:0;color:#667085;line-height:1.7}.table-view{min-height:calc(100vh - var(--top-h) - 57px);background:#fff}.page-context{display:grid;grid-template-columns:minmax(520px,1fr) minmax(420px,.88fr);gap:18px;padding:18px 18px 4px;background:#fff}.page-context-main{display:grid;gap:14px;align-content:start}.page-brief{max-width:820px;margin:0;color:#4b5563;line-height:1.7}.context-metrics{display:grid;grid-template-columns:repeat(3,minmax(148px,1fr));gap:12px}.context-metric{min-height:74px;padding:12px 14px;text-align:left;border:1px solid #edf0f5;border-radius:6px;background:#f8fafc}.context-metric span,.context-metric small{display:block;color:#7d8796}.context-metric strong{display:inline-block;margin:7px 6px 0 0;color:#111827;font-size:22px;line-height:1.1}.context-metric.warn strong{color:#ff8a2a}.context-metric.danger strong{color:#ff4b66}.storage-control-console{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:12px;padding:12px 18px 4px;background:#fff}.storage-control-safety-note{grid-column:1 / -1;margin:-2px 0 0;color:#9a6700;font-size:12px;line-height:1.45}.storage-control-readiness{grid-column:1 / -1;padding:10px 12px;border:1px solid #dbe4ef;border-radius:6px;background:#f8fafc}.storage-control-readiness.blocked{border-color:#fecaca;background:#fff7f7}.storage-control-readiness>header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:8px}.storage-control-readiness>header div{display:flex;align-items:baseline;gap:10px}.storage-control-readiness>header span,.storage-control-readiness>header small{color:#64748b;font-size:12px}.storage-control-readiness>header strong{color:#15803d;font-size:15px}.storage-control-readiness.blocked>header strong{color:#dc2626}.storage-readiness-checks{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.storage-readiness-checks>div{min-width:0;display:flex;align-items:flex-start;gap:7px;padding:7px 8px;border:1px solid #e2e8f0;border-radius:4px;background:#fff}.storage-readiness-checks>div.block{border-color:#fecaca;background:#fff1f2}.storage-readiness-checks i{width:17px;height:17px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;color:#fff;font-size:11px;font-style:normal;font-weight:800;border-radius:50%;background:#16a34a}.storage-readiness-checks .block i{background:#dc2626}.storage-readiness-checks span{min-width:0;display:grid;gap:2px}.storage-readiness-checks strong{color:#334155;font-size:12px}.storage-readiness-checks small{overflow:hidden;color:#64748b;font-size:11px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.storage-control-readiness>p{margin:8px 0 0;color:#b91c1c;font-size:12px}.storage-control-status,.storage-control-field,.storage-control-group{min-height:48px;display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid #edf0f5;border-radius:6px;background:#f8fafc}.storage-control-status{grid-column:1 / -1;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px}.storage-control-adjustment{grid-column:1 / -1}.storage-control-status span,.storage-control-status small,.storage-control-field span,.storage-control-group label span{color:#64748b;font-size:12px;line-height:1.2}.storage-control-status strong{color:#111827;font-size:14px;line-height:1.2}.storage-control-status small{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.storage-control-field input,.storage-control-group input,.storage-control-group select{height:32px;min-width:0;padding:0 10px;color:#111827;border:1px solid #dfe4ec;border-radius:4px;background:#fff}.storage-control-field input{width:100%}.storage-control-group label{display:grid;grid-template-columns:auto minmax(76px,1fr);align-items:center;gap:8px;min-width:0}.storage-control-kind{width:42px;height:24px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;color:#166534;font-weight:700;border-radius:4px;background:#dcfce7}.storage-control-kind.adjust{color:#92400e;background:#fef3c7}.storage-control-group button{height:32px;min-width:86px;padding:0 14px;color:#fff;border-radius:4px;background:#1677ff;white-space:nowrap}.storage-control-group button:disabled{color:#94a3b8;background:#e5e7eb;cursor:not-allowed}.storage-duty-console{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;padding:16px 18px 20px;background:#f4f7f8}.storage-duty-target-strip,.storage-duty-device-strip{display:grid;grid-template-columns:minmax(220px,1.35fr) repeat(6,minmax(110px,.75fr));gap:1px;overflow:hidden;color:#101827;border:1px solid #d8e2e4;border-radius:12px;background:#d8e2e4}.storage-duty-target-strip>div,.storage-duty-device-strip>div{min-width:0;display:grid;align-content:center;gap:5px;min-height:70px;padding:12px 14px;background:#fff}.storage-duty-target-select{position:relative}.storage-duty-target-select:before{content:"";position:absolute;top:50%;right:16px;width:8px;height:8px;border-right:2px solid #64748b;border-bottom:2px solid #64748b;transform:translateY(-65%) rotate(45deg)}.storage-duty-target-strip span,.storage-duty-device-strip span{color:#65747d;font-size:12px;line-height:1.2}.storage-duty-target-strip strong,.storage-duty-device-strip strong{overflow:hidden;color:#0f172a;font-size:18px;line-height:1.18;text-overflow:ellipsis;white-space:nowrap}.storage-duty-target-strip small,.storage-duty-device-strip small{overflow:hidden;color:#7a8790;font-size:11px;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.storage-duty-workspace{display:grid;grid-template-columns:minmax(620px,1.45fr) minmax(300px,.7fr);gap:0;overflow:hidden;border:1px solid #dce5e7;border-radius:14px;background:#fff}.storage-duty-control-pane{min-width:0;display:grid;grid-template-columns:minmax(260px,1.1fr) minmax(190px,.7fr);align-content:start;gap:14px;padding:22px 24px;background:#fff}.storage-duty-command-head{grid-column:1 / -1;display:grid;grid-template-columns:minmax(180px,.42fr) minmax(0,1fr);gap:12px;align-items:start;padding:12px 14px;border:1px solid #dfe8e9;border-radius:10px;background:#f8fbfb}.storage-duty-command-head>div{display:grid;gap:4px}.storage-duty-command-head span,.storage-duty-command-head small{color:#61717a;font-size:12px}.storage-duty-command-head strong{color:#0f172a;font-size:20px;line-height:1.2}.storage-duty-mode-switch{grid-column:1 / -1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:5px;border:1px solid #e0e7e9;border-radius:10px;background:#eef3f4}.storage-duty-mode-switch button{min-width:0;min-height:58px;display:grid;align-content:center;gap:4px;padding:10px 12px;color:#405058;border:1px solid transparent;border-radius:8px;background:transparent;text-align:left;transition:color .14s ease,border-color .14s ease,background-color .14s ease,box-shadow .14s ease}.storage-duty-mode-switch button:hover{color:#0f172a;border-color:#c8d6d8;background:#fff}.storage-duty-mode-switch button.active{color:#128263;border-color:#12826347;background:#fff;box-shadow:0 1px 5px #0f172a14}.storage-duty-mode-switch button strong{font-size:15px;line-height:1.2}.storage-duty-mode-switch button span{overflow:hidden;color:#6b7b83;font-size:12px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.storage-duty-mode-switch button:focus-visible,.storage-duty-power-slider:focus-visible,.storage-duty-primary-action:focus-visible,.storage-duty-advanced-toggle:focus-visible,.storage-duty-checks-toggle:focus-visible,.storage-command-confirm-dialog:focus-visible,.storage-command-confirm-dialog button:focus-visible{outline:2px solid #128263;outline-offset:2px}.storage-duty-parameter-panel{min-width:0;display:grid;grid-template-columns:minmax(260px,1.1fr) minmax(190px,.7fr);gap:12px;grid-column:1 / -1;padding:14px;border:1px solid #e1e9eb;border-radius:10px;background:#fbfdfd}.storage-duty-parameter-panel>header{grid-column:1 / -1;display:flex;align-items:baseline;justify-content:space-between;gap:10px}.storage-duty-parameter-panel>header span,.storage-duty-status-grid small{color:#64717a;font-size:12px;font-weight:700}.storage-duty-parameter-panel>header strong{color:#0f172a;font-size:16px}.storage-duty-control-pane>.storage-control-field,.storage-duty-parameter-panel>.storage-control-field{min-height:64px;display:grid;grid-template-columns:minmax(92px,auto) minmax(0,1fr);align-items:center;gap:12px;padding:12px 14px;border-color:#e3ebed;border-radius:10px;background:#f8fbfb}.storage-duty-control-pane>.storage-control-field:first-of-type,.storage-duty-parameter-panel>.storage-control-field:first-of-type{grid-column:1 / -1;grid-template-columns:118px minmax(0,1fr)}.storage-duty-control-pane>.storage-control-field:nth-of-type(2) input,.storage-duty-parameter-panel>.storage-control-field:nth-of-type(2) input{height:42px;color:#0f172a;font-size:42px;font-weight:800;letter-spacing:0;text-align:right}.storage-duty-control-pane>.storage-control-field span,.storage-duty-control-pane>.storage-control-group label span,.storage-duty-parameter-panel>.storage-control-field span,.storage-duty-parameter-panel>.storage-control-group label span{color:#61717a;font-size:12px;font-weight:700}.storage-work-mode-selector{min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;border:1px solid #d8e3e5;border-radius:9px;background:#edf3f3}.storage-work-mode-selector label{position:relative;min-width:0;min-height:38px;display:grid;place-items:center;padding:0 14px;border:1px solid transparent;border-radius:6px;background:transparent;cursor:pointer;transition:color .14s ease,border-color .14s ease,background-color .14s ease,box-shadow .14s ease}.storage-work-mode-selector input{position:absolute;opacity:0;pointer-events:none}.storage-duty-parameter-panel .storage-work-mode-selector label span{color:#43545c;font-size:14px;font-weight:700}.storage-work-mode-selector label:hover{border-color:#c5d4d6;background:#fff}.storage-work-mode-selector label.active{border-color:#128263;background:#128263;box-shadow:0 1px 4px #12826338}.storage-duty-parameter-panel .storage-work-mode-selector label.active span{color:#fff}.storage-work-mode-selector label:focus-within{outline:2px solid #128263;outline-offset:2px}.storage-work-mode-selector label:has(input:disabled){opacity:.5;cursor:not-allowed}.storage-work-mode-selector label:has(input:disabled):hover{border-color:transparent;background:transparent}.storage-work-mode-selector label.active:has(input:disabled):hover{border-color:#128263;background:#128263}.storage-duty-power-slider{height:24px;accent-color:#128263}.storage-duty-power-slider:disabled{accent-color:#98a7ae}.storage-duty-control-pane>.storage-control-group,.storage-duty-parameter-panel>.storage-control-group{min-height:64px;display:flex;flex-wrap:nowrap;align-items:center;gap:8px;padding:12px 14px;border-color:#e3ebed;border-radius:10px;background:#f8fbfb}.storage-duty-control-pane>.storage-duty-soc-guard,.storage-duty-parameter-panel>.storage-duty-soc-guard{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(0,1fr);align-items:center}.storage-duty-soc-guard label{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px}.storage-duty-soc-guard input{width:100%;min-width:0}.storage-duty-control-pane>.storage-duty-power-tools,.storage-duty-parameter-panel>.storage-duty-power-tools{grid-column:1 / -1;min-height:64px;display:grid;grid-template-columns:auto repeat(5,minmax(60px,1fr));align-items:center;gap:8px;padding:12px 14px;border-color:#e3ebed;border-radius:10px;background:#f8fbfb}.storage-duty-power-tools{grid-column:1 / -1;min-height:64px;display:grid;grid-template-columns:auto repeat(5,minmax(60px,1fr));align-items:center;gap:8px}.storage-duty-control-pane>.storage-duty-power-tools{display:grid;grid-template-columns:auto repeat(5,minmax(60px,1fr))}.storage-duty-control-pane>.storage-control-group button,.storage-duty-parameter-panel>.storage-control-group button{min-width:62px;color:#26433b;border:1px solid #cbdcda;background:#fff;transition:color .14s ease,border-color .14s ease,background-color .14s ease}.storage-duty-control-pane>.storage-duty-power-tools button,.storage-duty-parameter-panel>.storage-duty-power-tools button{min-width:0;width:100%}.storage-duty-power-tools button{min-width:0;width:100%}.storage-duty-control-pane>.storage-duty-power-tools button{min-width:0;width:100%}.storage-duty-control-pane>.storage-control-group button:hover:not(:disabled),.storage-duty-parameter-panel>.storage-control-group button:hover:not(:disabled){color:#128263;border-color:#128263;background:#f2faf7}.storage-duty-control-pane>.storage-control-group button:active:not(:disabled),.storage-duty-control-pane>.storage-control-group button.active,.storage-duty-parameter-panel>.storage-control-group button:active:not(:disabled),.storage-duty-parameter-panel>.storage-control-group button.active{color:#fff;border-color:#128263;background:#128263}.storage-duty-status-grid{grid-column:1 / -1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.storage-duty-status-grid>span{min-width:0;display:grid;gap:4px;min-height:72px;padding:12px;border:1px solid #dfe8e9;border-radius:10px;background:#fff}.storage-duty-status-grid strong{overflow:hidden;color:#0f172a;font-size:18px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.storage-duty-primary-action{grid-column:1 / -1;min-height:52px;padding:0 22px;color:#fff;border:1px solid #128263;border-radius:8px;background:#128263;font-size:16px;font-weight:800;transition:background-color .14s ease,border-color .14s ease,box-shadow .14s ease}.storage-duty-primary-action:hover:not(:disabled){border-color:#0f6e55;background:#0f6e55;box-shadow:0 6px 14px #1282632e}.storage-duty-primary-action:disabled{color:#86949b;border-color:#d7e0e3;background:#edf2f3;cursor:not-allowed}.storage-duty-readonly-monitor{min-width:0;display:grid;align-content:start;gap:14px;padding:22px 24px;background:#fff}.storage-duty-readonly-monitor>header{display:grid;gap:4px}.storage-duty-readonly-monitor>header span,.storage-duty-readonly-monitor>header small,.storage-duty-readonly-facts small{color:#64717a;font-size:12px}.storage-duty-readonly-monitor>header strong{color:#0f172a;font-size:22px}.storage-duty-readonly-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.storage-duty-readonly-facts>span{display:grid;gap:4px;min-height:70px;padding:12px;border:1px solid #dfe8e9;border-radius:10px;background:#f8fbfb}.storage-duty-readonly-facts strong{color:#0f172a;font-size:18px}.storage-duty-safety-summary{min-width:0;display:grid;align-content:start;gap:12px;padding:22px;border-left:1px solid #dce5e7;background:#fbfcfc}.storage-duty-safety-summary .storage-control-readiness{display:grid;gap:12px;padding:14px;border-radius:10px;background:#fff}.storage-duty-safety-summary .storage-control-readiness.ready{border-color:#bbdfd2;background:#f6fbf9}.storage-duty-safety-summary .storage-control-readiness.blocked{border-color:#fecaca;background:#fff7f7}.storage-duty-safety-summary .storage-control-readiness>header{margin:0}.storage-duty-safety-summary .storage-control-readiness>header strong{font-size:16px}.storage-duty-safety-summary .storage-control-readiness.ready>header strong{color:#128263}.storage-duty-safety-summary .storage-readiness-checks,.storage-duty-safety-list{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}.storage-duty-safety-summary .storage-readiness-checks>div,.storage-duty-safety-list>div{align-items:center;min-height:42px;padding:8px 10px;border-radius:8px;background:#fff}.storage-duty-safety-summary .storage-readiness-checks>div.pass,.storage-duty-safety-list>div.pass{border-color:#c7e7dc;background:#f4fbf8}.storage-duty-safety-summary .storage-readiness-checks>div.block,.storage-duty-safety-list>div.block{border-color:#fecaca;background:#fff1f2}.storage-duty-safety-summary .storage-readiness-checks>div.limited,.storage-duty-safety-list>div.limited{border-color:#fed7aa;background:#fff7ed}.storage-duty-safety-summary .storage-readiness-checks .block strong,.storage-duty-safety-summary .storage-readiness-checks .block small,.storage-duty-safety-list .block strong,.storage-duty-safety-list .block small,.storage-duty-safety-summary .storage-control-readiness.blocked>p{color:#b91c1c}.storage-duty-safety-summary .storage-readiness-checks .pass strong,.storage-duty-safety-list .pass strong{color:#128263}.storage-duty-safety-summary .storage-readiness-checks .limited strong,.storage-duty-safety-summary .storage-readiness-checks .limited small,.storage-duty-safety-list .limited strong,.storage-duty-safety-list .limited small{color:#92400e}.storage-duty-safety-summary .storage-readiness-checks small,.storage-duty-safety-list small{white-space:normal}.storage-platform-control-card{display:grid;gap:12px;padding:14px;border:1px solid #b9cfee;border-radius:10px;background:#f5f8fd}.storage-platform-control-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.storage-platform-control-head>div{display:grid;gap:2px}.storage-platform-control-head span{color:#64748b;font-size:11px}.storage-platform-control-head strong{color:#172033;font-size:16px}.storage-platform-control-status{padding:4px 8px;color:#92400e;border-radius:999px;background:#fef3c7;font-size:11px;font-weight:700;font-style:normal;white-space:nowrap}.storage-platform-control-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.storage-platform-control-actions button{min-height:36px;padding:0 8px;color:#fff;border:1px solid #1677ff;border-radius:7px;background:#1677ff;font-weight:700}.storage-platform-control-actions button+button{color:#334155;border-color:#cbd5e1;background:#fff}.storage-platform-control-actions button:hover:not(:disabled){border-color:#0f5fc7;background:#0f5fc7}.storage-platform-control-actions button+button:hover:not(:disabled){color:#9a3412;border-color:#f59e0b;background:#fff7ed}.storage-platform-control-actions button:disabled{color:#94a3b8;border-color:#dce3ea;background:#e9eef3;cursor:not-allowed}.storage-platform-control-mapping{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.storage-platform-control-mapping>span{display:grid;gap:3px;padding:8px;color:#64748b;border-radius:7px;background:#fff;font-size:11px;text-align:center}.storage-platform-control-mapping code{color:#31598e;font-size:11px;font-weight:700}.storage-platform-control-mapping small{color:#64748b;font-size:10px}.storage-platform-control-last-action{display:grid;gap:3px;margin:0;padding-top:10px;color:#64748b;border-top:1px solid #d8e3f2;font-size:11px}.storage-platform-control-last-action strong{color:#334155;font-size:12px}.storage-duty-checks-toggle,.storage-duty-advanced-toggle{width:100%;min-height:38px;color:#31534a;border:1px solid #d4e0df;border-radius:8px;background:#fff;font-weight:700;transition:color .14s ease,border-color .14s ease,background-color .14s ease}.storage-duty-checks-toggle:hover,.storage-duty-advanced-toggle:hover{color:#128263;border-color:#128263;background:#f4fbf8}.storage-duty-advanced-panel{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;padding:12px;border:1px solid #dfe8e9;border-radius:10px;background:#fff}.storage-duty-advanced-panel .storage-control-group{display:flex;flex-wrap:wrap;align-items:center;min-height:0;padding:10px;border-color:#e5ecee;border-radius:8px;background:#f8fbfb}.storage-duty-advanced-panel .storage-control-group:nth-child(2){grid-column:auto}.storage-duty-advanced-panel .storage-control-group label{grid-template-columns:auto minmax(72px,1fr);flex:1 1 128px}.storage-duty-advanced-panel .storage-control-group select{width:100%}.storage-duty-advanced-panel .storage-control-group button{min-width:0;max-width:100%;flex:1 1 108px;color:#334155;border:1px solid #cbd5e1;background:#fff}.storage-duty-advanced-panel .storage-control-group button:hover:not(:disabled){color:#7c2d12;border-color:#f59e0b;background:#fff7ed}.storage-duty-advanced-panel .storage-control-group button:disabled{color:#94a3b8;border-color:#e2e8f0;background:#eef2f5}.storage-duty-console .storage-command-closure{grid-column:1 / -1;gap:14px}.storage-duty-console .storage-command-timeline,.storage-duty-console .storage-telemetry-trend{border-color:#dce5e7;border-radius:12px;background:#fff}.storage-command-closure{grid-column:1 / -1;display:grid;grid-template-columns:minmax(420px,1fr) minmax(460px,1.25fr);gap:12px;align-items:stretch}.storage-command-timeline,.storage-telemetry-trend{min-width:0;padding:12px 14px;border:1px solid #e6ebf2;border-radius:6px;background:#fbfcfe}.storage-command-timeline>header,.storage-telemetry-trend>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.storage-command-timeline header div,.storage-telemetry-trend header div{display:flex;align-items:center;gap:8px}.storage-command-timeline header span,.storage-telemetry-trend header span,.storage-command-timeline header small,.storage-telemetry-trend header small{color:#64748b;font-size:12px}.storage-command-timeline header strong,.storage-telemetry-trend header strong{color:#0f172a;font-size:13px}.storage-command-stage-note{margin:-2px 0 10px;color:#64748b;font-size:11px;line-height:1.45}.storage-command-timeline ol{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none}.storage-command-timeline li{min-width:0;padding:8px 9px;border-left:3px solid #94a3b8;border-radius:3px;background:#f1f5f9}.storage-command-timeline li.complete{border-color:#16a34a}.storage-command-timeline li.active{border-color:#2563eb;background:#eff6ff}.storage-command-timeline li.pending{border-color:#cbd5e1;background:#f8fafc}.storage-command-timeline li.published{border-color:#2563eb}.storage-command-timeline li.verified{border-color:#16a34a}.storage-command-timeline li.unverified,.storage-command-timeline li.failed,.storage-command-timeline li.unknown{border-color:#dc2626}.storage-command-timeline li div{display:flex;flex-direction:column;gap:2px}.storage-command-timeline li strong{color:#1e293b;font-size:12px}.storage-command-timeline li span,.storage-command-timeline li small,.storage-command-reason,.storage-command-empty{color:#64748b;font-size:11px;line-height:1.45}.storage-command-timeline li small{display:block;margin-top:5px}.storage-command-reason{margin:8px 0 0;color:#9a6700}.storage-command-empty{min-height:52px;display:flex;align-items:center;justify-content:center;border:1px dashed #cbd5e1;border-radius:4px}.storage-trend-notice{margin:0 0 8px;padding:6px 8px;border:1px solid #fde68a;border-radius:4px;background:#fffbeb;color:#92400e;font-size:12px;line-height:1.4}.storage-trend-notice.error{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.storage-trend-empty{min-height:214px}.storage-trend-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px}.storage-trend-toolbar>button{min-height:28px;padding:4px 10px;border:1px solid #d8e2ea;border-radius:5px;background:#f8fafc;color:#475569;font:inherit;font-size:11px;cursor:pointer}.storage-trend-toolbar>button:hover{border-color:#91caff;color:#0958d9}.storage-trend-toolbar>button.active{border-color:#1677ff;background:#eaf3ff;color:#0958d9;font-weight:700}.storage-trend-date-field,.storage-trend-custom-range,.storage-trend-custom-range label{display:flex;align-items:center;gap:5px}.storage-trend-date-field,.storage-trend-custom-range{margin-left:4px}.storage-trend-date-field span,.storage-trend-custom-range span,.storage-trend-custom-range i{color:#64748b;font-size:11px;font-style:normal}.storage-trend-date-field input,.storage-trend-custom-range input{min-height:28px;padding:3px 7px;border:1px solid #d8e2ea;border-radius:4px;background:#fff;color:#1e293b;font:inherit;font-size:11px}.storage-trend-legend{display:flex;align-items:center;gap:14px;min-height:22px;color:#64748b;font-size:11px}.storage-trend-legend span{display:inline-flex;align-items:center;gap:5px}.storage-trend-legend i{display:inline-block;width:18px;height:3px;border-radius:2px}.storage-trend-legend .power i{background:#1677ff}.storage-trend-legend .soc i{background:#22a06b}.storage-trend-legend em{margin-left:auto;color:#1677ff;font-style:normal}.storage-trend-chart{position:relative;min-height:240px;margin-top:2px;border:1px solid #edf1f5;border-radius:6px;background:linear-gradient(180deg,#fbfdff,#f8fbfd)}.storage-trend-chart:focus-visible{box-shadow:inset 0 0 0 2px #2f74ff59;outline:none}.storage-trend-window{position:absolute;left:52px;right:52px;bottom:1px;height:16px;color:#7d8ca3;font-size:10px}.storage-trend-window span{position:absolute;right:0;bottom:0}.storage-trend-window input{position:absolute;left:0;bottom:3px;width:72%;height:4px;appearance:none;pointer-events:none;background:transparent}.storage-trend-window input::-webkit-slider-thumb{width:10px;height:10px;appearance:none;pointer-events:auto;border:2px solid #2f74ff;border-radius:50%;background:#fff;cursor:ew-resize}.storage-trend-chart>svg{width:100%;height:240px;display:block;overflow:hidden}.storage-trend-grid line{stroke:#dbe3ef;stroke-width:1;stroke-dasharray:4 4;vector-effect:non-scaling-stroke}.storage-trend-grid line.zero{stroke:#94a3b8;stroke-width:1.4;stroke-dasharray:none}.storage-trend-axis text,.storage-trend-time-axis text{fill:#748494;font-size:9px}.storage-trend-power-areas .discharge{fill:url(#storage-power-discharge-area)}.storage-trend-power-areas .charge{fill:url(#storage-power-charge-area)}.storage-trend-lines path{fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.storage-trend-lines .power{stroke:#1677ff}.storage-trend-lines .soc{stroke:#22a06b;stroke-width:2.8}.storage-trend-hover line{stroke:#64748b;stroke-width:1;stroke-dasharray:3 3;vector-effect:non-scaling-stroke}.storage-trend-hover circle{stroke:#fff;stroke-width:2;vector-effect:non-scaling-stroke}.storage-trend-hover circle.power{fill:#1677ff}.storage-trend-hover circle.soc{fill:#22a06b}.storage-trend-tooltip{position:absolute;z-index:2;top:30px;display:grid;gap:3px;min-width:142px;padding:8px 10px;border:1px solid rgba(15,23,42,.14);border-radius:6px;background:#0f172aeb;color:#e2e8f0;font-size:11px;line-height:1.35;pointer-events:none;transform:translate(-50%);box-shadow:0 8px 24px #0f172a2e}.storage-trend-tooltip strong{color:#fff;font-size:11px}.storage-trend-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:6px}.storage-trend-stats span{color:#64748b;font-size:11px}.storage-trend-stats strong{display:block;margin-top:2px;color:#0f172a;font-size:13px}.storage-freshness-line,.energy-twin-freshness{display:flex;align-items:center;gap:8px;margin-top:6px}.storage-freshness-line small,.energy-twin-freshness small{color:#64748b;font-size:12px}.storage-freshness-badge{display:inline-flex;align-items:center;height:22px;padding:0 8px;border:1px solid #cbd5e1;border-radius:999px;background:#f8fafc;color:#475569;font-size:12px;font-weight:700}.storage-freshness-badge.fresh,.storage-freshness-badge.realtime,.storage-freshness-badge.online{border-color:#bbf7d0;background:#f0fdf4;color:#15803d}.storage-freshness-badge.delayed{border-color:#fde68a;background:#fffbeb;color:#a16207}.storage-freshness-badge.warning{border-color:#f3cf83;background:#fff8e6;color:#8a5200}.storage-freshness-badge.offline,.storage-freshness-badge.missing,.storage-freshness-badge.unknown{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.storage-gps-connection,.storage-mapbox-status em{display:inline-flex;align-items:center;height:22px;padding:0 8px;border:1px solid rgba(148,163,184,.42);border-radius:999px;color:#64748b;font-size:12px;font-style:normal;font-weight:700;white-space:nowrap}.storage-mapbox-status em{color:#cbd5e1}.storage-gps-connection.open,.storage-mapbox-status em.open{border-color:#22c55e6b;color:#16a34a}.storage-mapbox-status em.open{color:#bbf7d0}.storage-gps-connection.connecting,.storage-gps-connection.reconnecting,.storage-gps-connection.error,.storage-mapbox-status em.connecting,.storage-mapbox-status em.reconnecting,.storage-mapbox-status em.error{border-color:#f59e0b6b;color:#b45309}.storage-mapbox-status em.connecting,.storage-mapbox-status em.reconnecting,.storage-mapbox-status em.error{color:#fde68a}.storage-gps-connection.unauthorized,.storage-mapbox-status em.unauthorized{border-color:#ef44446b;color:#dc2626}.storage-mapbox-status em.unauthorized{color:#fecaca}.vpp-control-console{display:grid;gap:10px;padding:12px 18px 4px;background:#fff}.vpp-control-status,.vpp-control-fields,.vpp-control-command-detail{display:flex;align-items:center;gap:10px;min-width:0;padding:9px 10px;border:1px solid #edf0f5;border-radius:6px;background:#f8fafc}.vpp-control-status{align-items:baseline}.vpp-control-status span,.vpp-control-status small,.vpp-control-fields label span,.vpp-control-command-detail{color:#64748b;font-size:12px}.vpp-control-status strong{color:#111827;font-size:14px}.vpp-control-status small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vpp-control-fields label{display:grid;gap:4px;min-width:112px}.vpp-control-fields input,.vpp-control-fields select,.vpp-control-fields button{height:32px;min-width:0;padding:0 10px;border:1px solid #dfe4ec;border-radius:4px;background:#fff}.vpp-control-fields .vpp-control-json{min-width:240px;flex:1}.vpp-control-fields button.primary{color:#fff;border-color:#1677ff;background:#1677ff}.vpp-control-fields button:disabled{color:#94a3b8;border-color:#e5e7eb;background:#e5e7eb;cursor:not-allowed}.vpp-control-command-detail{justify-content:space-between}.context-flow{display:grid;grid-template-columns:repeat(5,minmax(78px,1fr));gap:8px;align-self:start}.context-step{position:relative;min-height:74px;padding:12px 9px;color:#667085;text-align:center;border:1px solid #edf0f5;border-radius:6px;background:#fafbfc}.context-step:after{content:"";position:absolute;right:-7px;top:50%;width:6px;height:6px;border-top:1px solid #cbd5e1;border-right:1px solid #cbd5e1;background:#fff;transform:translateY(-50%) rotate(45deg)}.context-step:last-child:after{display:none}.context-step.done{color:#147c4b;background:#f0fdf4}.context-step.active{color:#1d4ed8;border-color:#2f6bff47;background:#eff6ff}.context-step.pending{color:#a16207;background:#fffbeb}.vpp-workbench{display:grid;gap:16px;padding-bottom:18px}.vpp-hero{min-height:176px;display:flex;align-items:center;justify-content:space-between;gap:28px;padding:30px 34px;color:#fff;border-radius:8px;background:linear-gradient(115deg,#131e30fa,#1d3e5ce0),radial-gradient(circle at 72% 20%,rgba(53,198,107,.38),transparent 32%),#111827;box-shadow:var(--shadow)}.eyebrow{margin:0 0 8px;color:#81e6c6;font-weight:700}.vpp-hero h1{margin:0;font-size:34px;letter-spacing:0}.vpp-brief{max-width:670px;margin:12px 0 0;color:#d9e4f4;line-height:1.7}.vpp-dispatch-card{width:290px;min-height:112px;padding:20px;border:1px solid rgba(255,255,255,.22);border-radius:8px;background:#ffffff1a}.vpp-dispatch-card span,.vpp-dispatch-card small{display:block;color:#cbd5e1}.vpp-dispatch-card strong{display:block;margin:10px 0;color:#fff;font-size:28px}.vpp-metrics{display:grid;grid-template-columns:repeat(4,minmax(190px,1fr));gap:16px}.vpp-metric{min-height:106px;padding:18px 20px;text-align:left;border:1px solid #f0f1f5;border-radius:8px;background:#fff;box-shadow:var(--shadow)}.vpp-metric span,.vpp-metric small{display:block;color:#8d95a3}.vpp-metric strong{display:inline-block;margin:10px 8px 0 0;color:#111827;font-size:28px}.vpp-main-grid{display:grid;grid-template-columns:minmax(620px,1.2fr) minmax(430px,.8fr);gap:16px}.vpp-main-grid.lower{grid-template-columns:minmax(620px,1.1fr) minmax(430px,.9fr)}.vpp-panel{min-height:260px;padding:20px 24px}.vpp-panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.vpp-panel-head h2{margin:0;font-size:16px}.vpp-panel-head h2:after{content:"";display:inline-block;width:14px;height:2px;margin-left:3px;vertical-align:baseline;background:#2f6bff}.vpp-panel-head button,.vpp-panel-head span{color:#8d95a3}.vpp-flow{display:grid;grid-template-columns:repeat(5,minmax(100px,1fr));gap:12px;align-items:stretch}.vpp-flow-step{position:relative;min-height:146px;padding:18px 14px;text-align:left;border:1px solid #edf0f5;border-radius:8px;background:#fafbfc}.vpp-flow-step:after{content:"";position:absolute;right:-10px;top:50%;width:8px;height:8px;border-top:2px solid #cbd5e1;border-right:2px solid #cbd5e1;transform:translateY(-50%) rotate(45deg)}.vpp-flow-step:last-child:after{display:none}.vpp-flow-step span,.vpp-flow-step strong{display:block}.vpp-flow-step span{color:#667085}.vpp-flow-step strong{margin-top:16px;color:#111827;font-size:20px}.vpp-flow-step.done{background:#f0fdf4}.vpp-flow-step.active{border-color:#2f6bff52;background:#eff6ff}.vpp-flow-step.pending{background:#fff7ed}.vpp-resource-list,.vpp-task-list{display:grid;gap:12px}.vpp-resource-list button,.vpp-task-list button{min-height:52px;display:grid;align-items:center;gap:12px;text-align:left;border:1px solid #eef0f4;border-radius:6px;background:#fff}.vpp-resource-list button{grid-template-columns:1fr 92px 94px;padding:0 14px}.vpp-resource-list span{color:#374151}.vpp-resource-list b{color:#111827;font-size:18px}.vpp-resource-list small{color:#16a36a}#vppCanvas{width:100%;height:230px}.vpp-task-list button{grid-template-columns:12px 1fr 72px;padding:0 14px}.task-dot{width:9px;height:9px;border-radius:50%;background:#2f6bff}.task-dot.warn{background:#ff8a2a}.task-dot.danger{background:#ff4b66}.vpp-task-list b{color:#8d95a3;font-weight:400}.storage-workbench{display:grid;gap:16px;padding:16px 0 18px}.storage-workspace--monitor-dashboard>.storage-workspace__header{display:none}.storage-workspace--monitor-dashboard>.storage-workspace__body{padding-top:0}.storage-dispatch-overview,.storage-vehicle-monitor{display:grid;gap:14px}.storage-vehicle-monitor__summary{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 20px;border:1px solid #edf0f5;border-radius:8px;background:#fff;box-shadow:var(--shadow)}.storage-vehicle-monitor__summary h1{margin:0;color:#111827;font-size:20px;line-height:1.25;letter-spacing:0}.storage-vehicle-monitor__summary h1 span{margin-left:8px;color:#16a34a;font-size:13px}.storage-vehicle-monitor__summary p{margin:8px 0 0;color:#64748b}.storage-vehicle-monitor__meta{display:grid;gap:5px;justify-items:end;color:#64748b}.storage-vehicle-monitor__meta strong{color:#111827}.storage-vehicle-monitor__meta small{color:#94a3b8}.storage-vehicle-monitor__state{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px 14px;border:1px solid #edf0f5;border-radius:8px;background:#fff;box-shadow:var(--shadow)}.storage-vehicle-monitor__state button{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:34px;padding:5px 10px;color:#475569;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc}.storage-vehicle-monitor__state button.active{color:#1767a8;border-color:#2f6bff61;background:#eff6ff}.storage-vehicle-monitor__state strong{color:#111827}.storage-vehicle-monitor__columns{display:grid;grid-template-columns:minmax(320px,360px) minmax(0,1fr);gap:14px;align-items:start}.storage-vehicle-monitor__left,.storage-vehicle-monitor__right{min-width:0}.storage-vehicle-monitor__left{display:grid;gap:0;position:sticky;top:14px}.storage-vehicle-monitor__left .storage-vehicle-selector{min-width:0}.storage-vehicle-monitor__left .storage-vehicle-toolbar{grid-template-columns:minmax(0,1fr) auto}.storage-vehicle-monitor__left .storage-vehicle-priority-toggle{justify-self:end;width:34px;padding:0}.storage-vehicle-monitor__left .storage-vehicle-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.storage-vehicle-monitor__left .storage-vehicle-priority-toggle>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.storage-vehicle-monitor__right{display:grid;gap:14px;align-content:start}.storage-vehicle-monitor__metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px}.storage-vehicle-monitor__metrics button{min-height:84px;padding:14px;text-align:left;border:1px solid #eef0f4;border-radius:6px;background:#f8fafc}.storage-vehicle-monitor__metrics span,.storage-vehicle-monitor__metrics strong{display:block}.storage-vehicle-monitor__metrics span{color:#64748b}.storage-vehicle-monitor__metrics strong{margin-top:12px;color:#111827;font-size:20px;line-height:1.15}.storage-vehicle-monitor__metrics strong.missing{color:#94a3b8}.storage-vehicle-monitor__groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px}.storage-vehicle-monitor__groups button{min-height:62px;display:grid;grid-template-columns:12px minmax(0,1fr) minmax(52px,auto);gap:10px;align-items:start;padding:12px 14px;text-align:left;border:1px solid #eef0f4;border-radius:6px;background:#fff}.storage-vehicle-monitor__groups button>span{width:8px;height:8px;border-radius:50%;background:#35c66b}.storage-vehicle-monitor__groups button>span.offline{background:#cbd5e1}.storage-vehicle-monitor__groups button>span.abnormal{background:#f97316}.storage-vehicle-monitor__groups button>span.missing{background:#cbd5e1}.storage-vehicle-monitor__groups b{min-width:0;color:#111827;overflow-wrap:anywhere}.storage-vehicle-monitor__groups small{grid-column:2 / 4;min-width:0;color:#8d95a3;overflow-wrap:anywhere}.storage-vehicle-monitor__groups em{grid-column:2 / 4;min-width:0;color:#64748b;font-size:12px;font-style:normal;line-height:1.35;overflow-wrap:anywhere;white-space:normal}.storage-vehicle-monitor__checker{min-height:0}.storage-vehicle-monitor__checker .storage-panel-head>div{min-width:0}.storage-vehicle-monitor__checker .storage-panel-head p{overflow:hidden;margin:5px 0 0;color:#64748b;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.storage-vehicle-monitor__detail-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:16px}.storage-vehicle-monitor__detail-summary>div{min-width:0;padding:10px 12px;border:1px solid #edf1f6;border-radius:6px;background:#f8fafc}.storage-vehicle-monitor__detail-summary>div>span,.storage-vehicle-monitor__detail-summary>div>strong{display:block;min-width:0}.storage-vehicle-monitor__detail-summary>div>span{color:#64748b;font-size:12px}.storage-vehicle-monitor__detail-summary>div>strong{overflow:visible;margin-top:7px;color:#111827;font-size:17px;text-overflow:ellipsis;white-space:nowrap}.storage-vehicle-monitor__checker.is-focused,.storage-vehicle-monitor__telemetry-bar.is-focused,.storage-vehicle-monitor__params.is-focused{outline:2px solid rgba(22,119,255,.42);outline-offset:2px;scroll-margin-top:16px}.storage-vehicle-monitor__telemetry-bar{display:grid;grid-template-columns:minmax(96px,12fr) minmax(116px,14fr) minmax(220px,42fr) minmax(190px,32fr);gap:10px;padding:10px 12px;border:1px solid #edf0f5;border-radius:8px;background:#fff;box-shadow:var(--shadow)}.storage-vehicle-monitor__telemetry-bar button{min-width:0;min-height:58px;padding:9px 12px;text-align:left;border:1px solid #eef0f4;border-radius:6px;background:#f8fafc}.storage-vehicle-monitor__telemetry-bar button>span,.storage-vehicle-monitor__telemetry-bar button>strong{display:block;min-width:0}.storage-vehicle-monitor__telemetry-bar button>span{color:#64748b;font-size:12px}.storage-vehicle-monitor__telemetry-bar button>strong{overflow:hidden;margin-top:7px;color:#111827;font-size:18px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.storage-vehicle-monitor__telemetry-bar button>strong.has-unit-tooltip{overflow:visible}.storage-vehicle-monitor__telemetry-bar strong.missing{color:#94a3b8}.storage-vehicle-monitor__params{min-width:0}.storage-vehicle-monitor__trend{min-width:0;padding:16px 18px}.storage-vehicle-monitor__trend-plot{position:relative;min-width:0;overflow:hidden;margin-top:14px;border:1px solid #eef2f7;border-radius:8px;background:linear-gradient(180deg,#fbfdff,#fff)}.storage-vehicle-monitor__trend-svg{display:block;width:100%;min-height:244px;touch-action:none;cursor:crosshair}.storage-vehicle-monitor__trend-grid line{stroke:#e7edf5;stroke-width:1}.storage-vehicle-monitor__trend-zero{stroke:#aab7c8;stroke-dasharray:4 4}.storage-vehicle-monitor__trend-area{opacity:.12}.storage-vehicle-monitor__trend-area.is-discharge{fill:#18a879}.storage-vehicle-monitor__trend-area.is-charge{fill:#1677ff}.storage-vehicle-monitor__trend-line{fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.storage-vehicle-monitor__trend-line.is-power{stroke:#1677ff}.storage-vehicle-monitor__trend-line.is-soc{stroke:#18a879}.storage-vehicle-monitor__trend-point{cursor:pointer;stroke:#fff;stroke-width:1.5}.storage-vehicle-monitor__trend-point.is-power{fill:#1677ff}.storage-vehicle-monitor__trend-point.is-soc{fill:#18a879}.storage-vehicle-monitor__trend-point:focus-visible{stroke:#17243d;stroke-width:2.5;outline:none}.storage-vehicle-monitor__trend-axis-label{font-size:10px;font-weight:600}.storage-vehicle-monitor__trend-axis-label.is-soc{fill:#18a879}.storage-vehicle-monitor__trend-axis-label.is-power{fill:#1677ff}.storage-vehicle-monitor__trend-tooltip>line{stroke:#7d8da3;stroke-dasharray:3 3}.storage-vehicle-monitor__trend-tooltip rect{fill:#15233af5}.storage-vehicle-monitor__trend-tooltip text{fill:#fff;font-size:11px}.storage-vehicle-monitor__trend-axis,.storage-vehicle-monitor__trend-legend{display:flex;justify-content:space-between;gap:12px;padding:0 18px;color:#718096;font-size:11px}.storage-vehicle-monitor__trend-axis{margin-top:-15px;padding-left:52px;padding-right:52px}.storage-vehicle-monitor__trend-legend{justify-content:flex-start;padding-top:14px;padding-bottom:14px}.storage-vehicle-monitor__trend-legend span{display:inline-flex;align-items:center;gap:6px}.storage-vehicle-monitor__trend-legend i{width:16px;height:3px;border-radius:99px}.storage-vehicle-monitor__trend-legend i.is-soc{background:#18a879}.storage-vehicle-monitor__trend-legend i.is-power{background:#1677ff}@media(max-width:1500px){.storage-vehicle-monitor__columns{grid-template-columns:minmax(320px,360px) minmax(0,1fr)}.storage-vehicle-monitor__groups{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1680px){.storage-vehicle-monitor__groups{grid-template-columns:repeat(4,minmax(0,1fr))}}.storage-dispatch-station{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 20px;border:1px solid #edf0f5;border-radius:8px;background:#fff;box-shadow:var(--shadow)}.storage-dispatch-station h1{margin:0;color:#111827;font-size:20px;line-height:1.25;letter-spacing:0}.storage-dispatch-station h1 span{margin-left:8px;color:#16a34a;font-size:13px}.storage-dispatch-station p{margin:8px 0 0;color:#64748b}.storage-dispatch-station__meta{display:grid;gap:5px;justify-items:end;color:#64748b}.storage-dispatch-station__meta strong{color:#111827}.storage-dispatch-kpis{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px}.storage-dispatch-command-kpis{grid-template-columns:minmax(0,1.08fr) minmax(0,.94fr) minmax(0,.98fr);gap:0;min-height:112px;padding:10px 14px;border:1px solid #e5eaf2;border-radius:12px;background:#fff;box-shadow:0 8px 24px #2a34490f}.storage-dispatch-kpi-group{min-width:0;display:grid;grid-template-rows:30px minmax(0,1fr);gap:4px;padding:0 16px;border-left:1px solid #e2e8f0}.storage-dispatch-kpi-group:first-child{padding-left:4px;border-left:0}.storage-dispatch-kpi-group:last-child{padding-right:4px}.storage-dispatch-kpi-group__header{display:flex;align-items:center;gap:9px}.storage-dispatch-kpi-group__header h3{margin:0;color:#182033;font-size:15px;line-height:1;font-weight:750}.storage-dispatch-kpi-group__icon{width:28px;height:28px;display:grid;place-items:center;border-radius:8px;color:#2563eb;background:linear-gradient(145deg,#eff6ff,#dbeafe)}.storage-dispatch-kpi-group__icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.storage-dispatch-kpi-group--dispatch .storage-dispatch-kpi-group__icon svg{fill:currentColor;stroke:none}.storage-dispatch-kpi-group__metrics{min-width:0;display:grid;grid-template-columns:repeat(var(--metric-count, 2),minmax(0,1fr))}.storage-dispatch-kpi-group--fleet .storage-dispatch-kpi-group__metrics{--metric-count: 3}.storage-dispatch-command-kpis .storage-dispatch-kpi{min-width:0;min-height:58px;display:grid;align-content:center;gap:6px;padding:3px 13px;border:0;border-left:1px solid #e2e8f0;border-radius:0;background:transparent;box-shadow:none;overflow:hidden}.storage-dispatch-command-kpis .storage-dispatch-kpi:first-child{padding-left:0;border-left:0}.storage-dispatch-command-kpis .storage-dispatch-kpi:hover{background:#f8fafc}.storage-dispatch-command-kpis .storage-dispatch-kpi>span{overflow:hidden;color:#64748b;font-size:clamp(11px,.72vw,13px);line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.storage-dispatch-command-kpis .storage-dispatch-kpi>strong{margin-top:0;overflow:hidden;display:flex;align-items:baseline;color:#0f172a;font-size:clamp(22px,1.45vw,26px);line-height:1.35;text-overflow:ellipsis}.storage-dispatch-command-kpis .storage-dispatch-kpi>strong span{width:auto;display:inline;overflow:visible;line-height:inherit}.storage-dispatch-command-kpis .storage-dispatch-kpi>strong b{margin-left:5px;display:inline-flex;color:#64748b;font-size:clamp(10px,.7vw,12px);font-weight:650}.storage-workspace--dispatch-overview>.storage-workspace__header{min-height:64px;padding:10px 18px;border-radius:12px}.storage-workspace--dispatch-overview .storage-workspace__title-group{display:flex;align-items:center;gap:18px}.storage-workspace--dispatch-overview .storage-workspace__title-group h2{display:flex;align-items:center;gap:10px;font-size:20px;white-space:nowrap}.storage-workspace--dispatch-overview .storage-workspace__title-group h2:before{content:"";width:4px;height:26px;border-radius:999px;background:#ef2b2d;box-shadow:0 0 0 3px #ef2b2d12}.storage-workspace--dispatch-overview .storage-workspace__vehicle{gap:14px}.storage-workspace--dispatch-overview .storage-workspace__vehicle strong{display:inline-flex;align-items:center;gap:8px;font-size:14px}.storage-workspace--dispatch-overview .storage-workspace__vehicle strong:before{content:"▣";color:#64748b;font-size:15px}.storage-workspace--dispatch-overview .storage-workspace__freshness{padding-left:14px;border-left:1px solid #dbe1ea}.storage-workspace--dispatch-overview .storage-workspace__status{min-height:30px;padding:0 12px}.storage-overview-action{min-height:34px;display:inline-flex;align-items:center;gap:7px;padding:0 11px;border:1px solid #dbe1ea;border-radius:7px;color:#182033;background:#fff;font-size:13px;white-space:nowrap}.storage-overview-action:hover{border-color:#b8c3d4;background:#f8fafc}.storage-overview-action svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.storage-dispatch-kpi,.storage-dispatch-health,.storage-dispatch-orders,.storage-dispatch-alarms{border:1px solid #edf0f5;border-radius:8px;background:#fff;box-shadow:var(--shadow)}.storage-dispatch-kpi{min-width:0;min-height:104px;padding:14px;text-align:left}.storage-dispatch-kpi span,.storage-dispatch-kpi small{display:block;color:#64748b}.storage-dispatch-kpi strong{min-width:0;display:block;margin-top:14px;color:#111827;font-size:25px;line-height:1;white-space:nowrap}.storage-dispatch-kpi strong b{margin-left:3px;color:#64748b;font-size:13px;font-weight:600}.storage-dispatch-kpi.charge strong,.storage-dispatch-kpi.discharge strong{color:#1d4ed8}.storage-dispatch-kpi.warn strong{color:#dc2626}.storage-dispatch-kpi small{margin-top:10px;white-space:nowrap}.storage-dispatch-health{min-height:108px;display:grid;gap:12px;padding:16px}.storage-dispatch-health>div:first-child{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.storage-dispatch-health span{color:#64748b}.storage-dispatch-health strong{color:#111827;font-size:22px}.storage-dispatch-health__counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.storage-dispatch-health__counts span{display:inline-flex;align-items:center;gap:6px;min-width:0;padding:8px 9px;border-radius:6px;background:#f8fafc;white-space:nowrap}.storage-dispatch-main{display:grid;grid-template-columns:minmax(0,68fr) minmax(300px,32fr);gap:14px}.storage-dispatch-primary-grid{align-items:stretch}.storage-dispatch-map{min-width:0;padding:0;overflow:hidden}.storage-location-layout.storage-dispatch-map__layout{grid-template-columns:minmax(0,1fr)}.storage-dispatch-map .storage-mapbox-wrap{height:clamp(360px,calc(100dvh - 292px),920px);min-height:0;border:0;border-radius:inherit}@media(max-width:1380px){.storage-workspace--dispatch-overview .storage-workspace__title-group{gap:12px}.storage-workspace--dispatch-overview .storage-workspace__freshness{padding-left:10px}.storage-dispatch-command-kpis,.storage-dispatch-kpi-group{padding-inline:10px}.storage-dispatch-command-kpis .storage-dispatch-kpi{padding-inline:9px}}.storage-dispatch-map__empty{min-height:320px;display:grid;place-items:center}.storage-map-orders-control{position:absolute;left:18px;top:18px;z-index:7;display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 12px;color:#eff6ff;border:1px solid rgba(147,197,253,.42);border-radius:6px;background:#0f172ad6;box-shadow:0 10px 26px #0206173d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.storage-map-device-management{position:absolute;z-index:8;top:18px;right:18px;height:36px;padding:0 14px;color:#fff;font-weight:700;border:1px solid rgba(147,197,253,.64);border-radius:6px;background:#2563ebeb;box-shadow:0 10px 26px #1e40af4d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.storage-map-device-management:hover{border-color:#dbeafee6;background:#1d4ed8}.storage-map-orders-control:hover{border-color:#93c5fdc7;background:#1e40afe6}.storage-map-orders-control>span{color:#93c5fd;font-size:16px}.storage-map-orders-control>b{min-width:20px;height:20px;display:inline-grid;place-items:center;padding:0 5px;color:#172554;font-size:11px;border-radius:999px;background:#dbeafe}.storage-map-filter-toolbar{position:absolute;z-index:7;top:18px;left:166px;right:78px;display:flex;align-items:center;gap:8px;pointer-events:none}.storage-map-filter-toolbar button,.storage-map-filter-toolbar label{pointer-events:auto}.storage-map-filter-toolbar__operations{display:inline-flex;overflow:hidden;height:36px;border:1px solid rgba(147,197,253,.36);border-radius:6px;background:#0f172ad6;box-shadow:0 10px 26px #02061738;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.storage-map-filter-toolbar__operations button{display:inline-flex;align-items:center;gap:5px;padding:0 10px;color:#dbeafe;border:0;border-right:1px solid rgba(147,197,253,.18);border-radius:0;background:transparent;box-shadow:none}.storage-map-filter-toolbar__operations button:last-child{border-right:0}.storage-map-filter-toolbar__operations button:hover,.storage-map-filter-toolbar__operations button.active{color:#fff;background:#2563ebdb}.storage-map-filter-toolbar__operations b{min-width:17px;height:17px;display:inline-grid;place-items:center;padding:0 4px;color:#172554;font-size:10px;border-radius:999px;background:#dbeafe}.storage-map-filter-toolbar__more{height:36px;display:inline-flex;align-items:center;gap:5px;padding:0 11px;color:#e2e8f0;border:1px solid rgba(147,197,253,.36);border-radius:6px;background:#0f172ad6;box-shadow:0 10px 26px #02061738;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.storage-map-filter-toolbar__more:hover,.storage-map-filter-toolbar__more.active{color:#fff;border-color:#60a5facc;background:#1e40afe6}.storage-map-filter-toolbar__more span{min-width:18px;height:18px;display:inline-grid;place-items:center;color:#172554;font-size:10px;border-radius:999px;background:#bfdbfe}.storage-map-filter-panel option{color:#172033;background:#fff}.storage-map-filter-panel{position:absolute;z-index:8;top:62px;left:166px;display:flex;align-items:end;gap:10px;padding:12px;color:#dbeafe;border:1px solid rgba(147,197,253,.36);border-radius:8px;background:#0f172ae6;box-shadow:0 16px 38px #0206174d;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.storage-map-filter-panel label{display:grid;gap:5px}.storage-map-filter-panel label>span{color:#93c5fd;font-size:11px}.storage-map-filter-panel select{min-width:128px;height:32px;padding:0 28px 0 9px;color:#f8fafc;border:1px solid rgba(148,163,184,.42);border-radius:5px;background:#1e293be6}.storage-map-filter-panel>button{height:32px;padding:0 11px;color:#dbeafe;border:1px solid rgba(147,197,253,.36);border-radius:5px;background:#2563eb40}.storage-map-filter-panel>button:disabled{opacity:.45;cursor:not-allowed}.storage-map-filter-empty{position:absolute;z-index:7;left:50%;top:50%;display:grid;justify-items:center;gap:8px;padding:14px 18px;color:#f8fafc;border:1px solid rgba(147,197,253,.34);border-radius:8px;background:#0f172ad6;box-shadow:0 16px 38px #02061747;transform:translate(-50%,-50%);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.storage-map-filter-empty button{padding:4px 9px;color:#bfdbfe;border:1px solid rgba(147,197,253,.4);border-radius:4px;background:#2563eb4d}.storage-mapbox-wrap.has-panel .storage-map-orders-control,.storage-mapbox-wrap.has-panel .storage-map-device-management,.storage-mapbox-wrap.has-panel .storage-map-filter-toolbar,.storage-mapbox-wrap.has-panel .storage-map-filter-panel,.storage-mapbox-wrap.has-orders-panel .storage-map-orders-control,.storage-mapbox-wrap.has-orders-panel .storage-map-device-management,.storage-mapbox-wrap.has-orders-panel .storage-map-filter-toolbar,.storage-mapbox-wrap.has-orders-panel .storage-map-filter-panel,.storage-mapbox-wrap.has-orders-panel .storage-map-locate-control{display:none}.storage-map-orders-dialog-backdrop{position:absolute;z-index:9;inset:0;display:grid;place-items:center;padding:24px;background:#0f172a4d;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.storage-map-orders-panel{position:relative;width:min(1180px,100%);max-height:100%;display:flex;flex-direction:column;overflow:hidden;padding:24px;color:#172033;border:1px solid #dce4ef;border-radius:16px;background:#fff;box-shadow:0 24px 64px #0f172a38}.storage-map-orders-panel:before{position:absolute;inset:0 0 auto;height:4px;content:"";background:linear-gradient(90deg,#2563eb,#60a5fa 62%,#bfdbfe)}.storage-map-orders-panel__head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.storage-map-orders-panel__head>div{display:grid;gap:3px}.storage-map-orders-panel__head span{color:#2563eb;font-size:12px;font-weight:700;letter-spacing:.04em}.storage-map-orders-panel__head strong{color:#172033;font-size:21px;line-height:1.35}.storage-map-orders-panel__head>button{width:34px;height:34px;color:#64748b;font-size:22px;line-height:1;border:1px solid #dce4ef;border-radius:9px;background:#f8fafc;transition:color .18s ease,border-color .18s ease,background .18s ease}.storage-map-orders-panel__head>button:hover{color:#1d4ed8;border-color:#bfdbfe;background:#eff6ff}.storage-map-orders-panel>p{display:flex;align-items:center;gap:8px;margin:16px 0 0;padding:9px 12px;color:#64748b;font-size:12px;border:1px solid #edf1f6;border-radius:9px;background:#f8fafc}.storage-map-orders-panel>p>b{margin-left:auto;padding:4px 10px;color:#1d4ed8;border-radius:999px;background:#dbeafe}.storage-map-orders-panel .storage-dispatch-order-list{min-height:0;overflow-y:auto;margin:14px -6px 0 0;padding:2px 6px 4px 0}.storage-map-orders-panel .storage-dispatch-order-list button{grid-template-columns:minmax(210px,1.65fr) auto minmax(120px,.9fr) minmax(88px,.7fr) minmax(160px,1.25fr) minmax(125px,.9fr) minmax(145px,1fr);align-items:center;gap:14px;min-height:76px;padding:13px 18px;color:#334155;border-color:#e3e9f2;border-radius:10px;background:#fff;box-shadow:0 2px 10px #0f172a0d;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease}.storage-map-orders-panel .storage-dispatch-order-list button:hover{border-color:#93c5fd;background:#f8fbff;box-shadow:0 7px 20px #2563eb1a;transform:translateY(-1px)}.storage-map-orders-panel .storage-dispatch-order-summary{display:contents}.storage-map-orders-panel .storage-dispatch-order-number,.storage-map-orders-panel .storage-dispatch-order-time,.storage-map-orders-panel .storage-dispatch-order-details>span{display:grid;gap:4px;min-width:0;overflow:hidden;white-space:nowrap}.storage-map-orders-panel .storage-dispatch-order-summary small,.storage-map-orders-panel .storage-dispatch-order-details small{color:#7c889b;font-size:10px;font-weight:600;text-align:left}.storage-map-orders-panel .storage-dispatch-order-number strong{color:#172033;font-size:14px}.storage-map-orders-panel .storage-dispatch-order-time strong{color:#334155;font-size:13px}.storage-map-orders-panel .storage-dispatch-order-status{display:inline-flex;align-items:center;min-height:24px;padding:0 9px;color:#475569;font-size:11px;font-style:normal;font-weight:700;border:1px solid #cbd5e1;border-radius:999px;background:#f1f5f9;white-space:nowrap}.storage-map-orders-panel .storage-dispatch-order-status.warn{color:#b45309;border-color:#fcd34d;background:#fffbeb}.storage-map-orders-panel .storage-dispatch-order-status.info{color:#1d4ed8;border-color:#bfdbfe;background:#eff6ff}.storage-map-orders-panel .storage-dispatch-order-status.online{color:#15803d;border-color:#bbf7d0;background:#f0fdf4}.storage-map-orders-panel .storage-dispatch-order-status.danger{color:#b91c1c;border-color:#fecaca;background:#fef2f2}.storage-map-orders-panel .storage-dispatch-order-details{display:contents}.storage-map-orders-panel .storage-dispatch-order-details strong{color:#334155;font-size:12px;line-height:1.45}.storage-map-orders-panel .storage-dispatch-order-number strong,.storage-map-orders-panel .storage-dispatch-order-time strong,.storage-map-orders-panel .storage-dispatch-order-details strong{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.storage-map-orders-panel .storage-empty-state{min-height:180px;margin-top:14px;color:#64748b;border:1px dashed #dce4ef;border-radius:10px;background:#f8fafc}.storage-map-orders-panel__all{width:100%;min-height:42px;margin-top:14px;color:#1d4ed8;font-weight:700;border:1px solid #bfdbfe;border-radius:9px;background:#eff6ff;transition:color .18s ease,border-color .18s ease,background .18s ease}.storage-map-orders-panel__all:hover{color:#fff;border-color:#2563eb;background:#2563eb}.storage-fleet-tables{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.storage-fleet-ranking-card{min-width:0;padding:18px 20px;border:1px solid #edf0f5;border-radius:8px;background:#fff;box-shadow:var(--shadow)}.storage-fleet-ranking-card__actions{display:flex;flex:0 0 auto;align-items:center;gap:8px}.storage-fleet-ranking-card__count{flex:0 0 auto;padding:5px 9px;color:#2563eb;font-weight:700;border-radius:999px;background:#eff6ff}.storage-fleet-ranking-card .storage-fleet-sort-toggle{height:30px;padding:0 10px;color:#475569;font-weight:700;border:1px solid #dbe3ef;border-radius:6px;background:#fff;transition:color .18s ease,border-color .18s ease,background .18s ease}.storage-fleet-ranking-card .storage-fleet-sort-toggle:hover,.storage-fleet-ranking-card .storage-fleet-sort-toggle:focus-visible{color:#2563eb;border-color:#93b4ff;background:#f5f8ff}.storage-fleet-table{max-height:430px;overflow-y:auto;margin-top:14px;border:1px solid #e5eaf2;border-radius:7px}.storage-fleet-table__row{min-height:62px;display:grid;grid-template-columns:38px minmax(0,1.4fr) minmax(76px,.85fr) 54px;gap:10px;align-items:center;padding:8px 12px;border-bottom:1px solid #edf0f5}button.storage-fleet-table__row{width:100%;color:inherit;text-align:left;background:#fff;transition:background .18s ease}button.storage-fleet-table__row:hover{background:#f8fbff}.storage-fleet-table__row:last-child{border-bottom:0}.storage-fleet-table__head{position:sticky;z-index:1;top:0;min-height:40px;color:#64748b;font-size:12px;background:#f8fafc}.storage-fleet-table__rank{width:27px;height:27px;display:inline-grid;place-items:center;color:#475569;border-radius:999px;background:#f1f5f9}.storage-fleet-table__row:nth-child(2) .storage-fleet-table__rank{color:#92400e;background:#fef3c7}.storage-fleet-table__vehicle{min-width:0;display:grid;gap:3px}.storage-fleet-table__vehicle strong,.storage-fleet-table__vehicle small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.storage-fleet-table__vehicle strong{color:#1e293b}.storage-fleet-table__vehicle small{color:#94a3b8;font-size:11px}.storage-fleet-table__metric{min-width:0;display:grid;gap:6px;color:#1d4ed8}.storage-fleet-table__metric>i{height:5px;overflow:hidden;border-radius:999px;background:#e2e8f0}.storage-fleet-table__metric>i>b{height:100%;display:block;border-radius:inherit;background:#3b82f6}.storage-fleet-table__status,.storage-fleet-table__mode{justify-self:start;padding:4px 7px;font-size:11px;font-weight:700;border-radius:999px}.storage-fleet-table__status.is-online{color:#15803d;background:#dcfce7}.storage-fleet-table__status.is-offline{color:#64748b;background:#f1f5f9}.storage-fleet-table__power,.storage-fleet-table__soc{min-width:0;color:#334155;font-size:13px}.storage-fleet-table__power.discharge,.storage-fleet-table__mode.discharge{color:#1d4ed8}.storage-fleet-table__power.charge,.storage-fleet-table__mode.charge{color:#15803d}.storage-fleet-table__power.missing,.storage-fleet-table__power.standby{color:#94a3b8}.storage-fleet-table__mode.discharge{background:#dbeafe}.storage-fleet-table__mode.charge{background:#dcfce7}.storage-fleet-events .storage-fleet-table__row{grid-template-columns:minmax(62px,.75fr) minmax(0,1.5fr) minmax(92px,.8fr) 42px}.storage-fleet-event__device{min-width:0;overflow:hidden;color:#475569;font-size:11px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.storage-fleet-event__name{min-width:0;display:grid;gap:3px}.storage-fleet-event__name strong,.storage-fleet-event__name small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.storage-fleet-event__name strong{color:#1e293b}.storage-fleet-event__name small,.storage-fleet-event__time{color:#94a3b8;font-size:11px}.storage-fleet-event__action{color:#2563eb;font-size:12px;font-weight:700;white-space:nowrap}.storage-fleet-events__error{color:#b91c1c}.storage-fleet-ranking-card>.storage-empty-state{min-height:220px;display:grid;place-items:center}.storage-dispatch-orders,.storage-dispatch-alarms{min-width:0;padding:18px 20px}.storage-dispatch-order-list,.storage-dispatch-alarm-list{display:grid;gap:8px;margin-top:16px}.storage-dispatch-order-list button{min-height:58px;display:grid;grid-template-columns:minmax(0,1fr) minmax(72px,.72fr) minmax(64px,.58fr) minmax(82px,.8fr);gap:10px;align-items:center;padding:0 12px;text-align:left;border:1px solid #edf0f5;border-radius:6px;background:#fff}.storage-dispatch-order-list span,.storage-dispatch-order-list strong,.storage-dispatch-order-list b,.storage-dispatch-order-list small{min-width:0;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.storage-dispatch-order-list strong{color:#1d4ed8}.storage-dispatch-order-list b.charge{color:#16a34a}.storage-dispatch-order-list b.discharge{color:#2563eb}.storage-dispatch-order-list small,.storage-dispatch-alarm-list small{color:#64748b;text-align:right}.storage-dispatch-bottom{display:grid;grid-template-columns:minmax(0,29fr) minmax(0,29fr) minmax(320px,42fr);gap:14px}.storage-dispatch-bottom__alarms{grid-column:3;grid-row:1}.storage-dispatch-bottom--dense{grid-template-columns:minmax(680px,1fr) minmax(390px,.42fr)}.storage-dispatch-trends{min-width:0}.storage-dispatch-trends .storage-panel-head>div:first-child{min-width:0}.storage-dispatch-trends .storage-range{flex-wrap:wrap;justify-content:flex-end}.storage-dispatch-trend-panels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:16px}.storage-dispatch-soc-trend,.storage-dispatch-power-trend{min-width:0;min-height:306px;display:grid;grid-template-columns:58px minmax(0,1fr);gap:12px;padding:12px 4px 4px 0;border:1px solid #edf0f5;border-radius:6px;background:#fff}.storage-dispatch-soc-trend.empty-state,.storage-dispatch-power-trend.empty-state{min-height:306px;display:grid;grid-template-columns:1fr;place-items:center;padding:18px}.storage-dispatch-trend-axis{height:230px;display:grid;align-content:space-between;color:#8d95a3;font-size:12px;text-align:right}.storage-dispatch-trend-plot{min-width:0;height:260px;display:grid;grid-auto-flow:column;overflow:hidden;overflow-y:hidden;padding:0 8px 30px;position:relative;cursor:grab;touch-action:none;border-bottom:1px solid #d8dde6;background:linear-gradient(#eef2f7 1px,transparent 1px) 0 0 / 100% 52px}.storage-dispatch-trend-plot:active{cursor:grabbing}.storage-dispatch-power-plot:after{content:"";position:absolute;left:8px;right:8px;top:115px;border-top:1px dashed #cbd5e1}.storage-dispatch-soc-plot:after{content:"";position:absolute;left:8px;right:8px;top:115px;border-top:1px dashed #dbeafe}.storage-dispatch-trend-point{width:1px;position:absolute;top:0;bottom:30px;left:var(--trend-point-left);transform:translate(-50%)}.storage-dispatch-trend-point .soc{width:9px;height:9px;position:absolute;left:0;z-index:2;border:2px solid #1677ff;border-radius:50%;background:#fff;transform:translate(-50%,50%)}.storage-dispatch-trend-point .power{width:16px;min-height:3px;position:absolute;left:12px;z-index:1;border-radius:5px 5px 0 0;background:#2563eb;transform:translate(-50%)}.storage-dispatch-trend-point.charge .power{border-radius:0 0 5px 5px;background:#16a34a}.storage-dispatch-trend-axis-labels{position:absolute;right:8px;bottom:0;left:8px;height:26px;pointer-events:none}.storage-dispatch-trend-axis-labels span{max-width:88px;position:absolute;left:var(--trend-axis-left);bottom:5px;overflow:hidden;color:#8d95a3;font-size:12px;text-overflow:ellipsis;white-space:nowrap;transform:translate(-50%)}.storage-dispatch-trend-axis-labels span:first-child{transform:none}.storage-dispatch-trend-axis-labels span:last-child{transform:translate(-100%)}.storage-dispatch-trend-point small{display:none}.storage-dispatch-trend-point:hover small,.storage-dispatch-trend-point:focus-visible small{display:block;width:max-content;max-width:180px;position:absolute;left:50%;top:12px;z-index:5;padding:6px 8px;color:#fff;font-size:12px;line-height:1.35;border-radius:5px;background:#0f172aeb;box-shadow:0 6px 18px #0f172a33;transform:translate(-50%);white-space:normal}.storage-dispatch-trend-point:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.storage-dispatch-trend-zoom{grid-column:1 / 3;display:grid;grid-template-columns:max-content minmax(160px,1fr) max-content;align-items:center;gap:10px;margin:0;padding:10px 12px 0;border-top:1px solid #eef2f7}.storage-dispatch-trend-zoom__summary{display:grid;gap:2px;color:#8d95a3;font-size:11px}.storage-dispatch-trend-zoom__summary strong{color:#475569;font-weight:500;white-space:nowrap}.storage-dispatch-trend-zoom__inputs{min-width:0;height:24px;position:relative;background:linear-gradient(to right,#e5e7eb 0%,#e5e7eb var(--trend-zoom-start),#bfdbfe var(--trend-zoom-start),#bfdbfe var(--trend-zoom-end),#e5e7eb var(--trend-zoom-end),#e5e7eb 100%) center / 100% 5px no-repeat}.storage-dispatch-trend-zoom__inputs input{width:100%;height:24px;position:absolute;inset:0;margin:0;appearance:none;pointer-events:none;background:transparent}.storage-dispatch-trend-zoom__inputs input::-webkit-slider-thumb{width:14px;height:14px;appearance:none;pointer-events:auto;cursor:ew-resize;border:2px solid #fff;border-radius:50%;background:#1677ff;box-shadow:0 1px 4px #2563eb57}.storage-dispatch-trend-zoom__inputs input::-moz-range-thumb{width:12px;height:12px;pointer-events:auto;cursor:ew-resize;border:2px solid #fff;border-radius:50%;background:#1677ff;box-shadow:0 1px 4px #2563eb57}.storage-dispatch-trend-zoom button{height:26px;padding:0 9px;color:#2563eb;font-size:12px;border:1px solid #bfdbfe;border-radius:5px;background:#eff6ff}.storage-dispatch-trend-zoom button:disabled{cursor:not-allowed;color:#94a3b8;border-color:#e2e8f0;background:#f8fafc}.storage-dispatch-alarm-overview{display:grid;gap:14px;margin-top:16px}.storage-dispatch-alarm-distribution{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.storage-dispatch-alarm-distribution button{min-width:0;min-height:72px;display:grid;align-content:center;gap:8px;padding:10px;text-align:left;border:1px solid #edf0f5;border-radius:6px;background:#f8fafc}.storage-dispatch-alarm-distribution span{color:#64748b;font-size:12px}.storage-dispatch-alarm-distribution strong{color:#111827;font-size:22px;line-height:1}.storage-dispatch-alarm-distribution .danger strong{color:#dc2626}.storage-dispatch-alarm-distribution .warn strong{color:#f97316}.storage-dispatch-alarm-distribution .info strong{color:#2563eb}.storage-dispatch-alarm-list button{min-height:44px;display:grid;grid-template-columns:52px minmax(0,1fr) 72px;gap:10px;align-items:center;padding:0 10px;text-align:left;border-bottom:1px solid #edf0f5}.storage-dispatch-alarm-list b{justify-self:start;padding:3px 7px;color:#2563eb;border:1px solid rgba(37,99,235,.2);border-radius:4px;background:#eff6ff}.storage-dispatch-alarm-list b.warn{color:#b45309;border-color:#f59e0b3d;background:#fffbeb}.storage-dispatch-alarm-list b.danger{color:#dc2626;border-color:#dc262638;background:#fef2f2}.storage-alarm-center{display:grid;gap:12px}.storage-alarm-filters{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) minmax(0,1.15fr) minmax(0,1.35fr);gap:12px;align-items:end}.storage-alarm-vehicle-picker{position:relative;width:100%;display:grid;gap:5px}.storage-alarm-vehicle-picker__label{color:#475569;font-size:12px;font-weight:800}.storage-alarm-vehicle-multiselect{position:relative}.storage-alarm-vehicle-multiselect>summary{min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:9px 14px;border:1px solid #dbe5f0;border-radius:8px;background:#fff;box-shadow:var(--shadow);cursor:pointer;list-style:none}.storage-alarm-vehicle-multiselect>summary::-webkit-details-marker{display:none}.storage-alarm-vehicle-multiselect>summary span{min-width:0;display:grid;gap:4px}.storage-alarm-vehicle-multiselect>summary strong{overflow:hidden;color:#1e293b;text-overflow:ellipsis;white-space:nowrap}.storage-alarm-vehicle-multiselect>summary small{color:#64748b}.storage-alarm-vehicle-multiselect>summary i{color:#64748b;font-size:18px;font-style:normal;transition:transform .16s ease}.storage-alarm-vehicle-multiselect[open]>summary{border-color:#60a5fa;box-shadow:0 0 0 3px #2563eb1a}.storage-alarm-vehicle-multiselect[open]>summary i{transform:rotate(180deg)}.storage-alarm-vehicle-dropdown{position:absolute;z-index:40;top:calc(100% + 8px);left:0;right:0;display:grid;gap:10px;padding:14px;border:1px solid #dbe5f0;border-radius:9px;background:#fff;box-shadow:0 18px 38px #0f172a2e}.storage-alarm-vehicle-dropdown>header{display:flex;align-items:center;justify-content:space-between;gap:16px}.storage-alarm-vehicle-dropdown>header>div:first-child{display:grid;gap:3px}.storage-alarm-vehicle-dropdown header strong{color:#1e293b}.storage-alarm-vehicle-dropdown header small{color:#64748b}.storage-alarm-vehicle-picker__empty{margin:8px 2px;color:#64748b;font-size:13px}.storage-alarm-vehicle-picker__actions{display:flex;gap:8px}.storage-alarm-vehicle-picker__actions button{min-height:34px;padding:0 13px;border:1px solid #cbd5e1;border-radius:6px;background:#f8fafc;color:#334155;font-weight:700}.storage-alarm-vehicle-picker__actions button:first-child{border-color:#2563eb;background:#eff6ff;color:#1d4ed8}.storage-alarm-vehicle-picker__actions button:disabled{cursor:not-allowed;opacity:.45}.storage-alarm-vehicle-search{min-height:42px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:9px;padding:0 12px;border:1px solid #dbe4ec;border-radius:7px;color:#64748b;background:#f8fafc}.storage-alarm-vehicle-search input{min-width:0;height:40px;border:0;outline:0;color:#0f172a;background:transparent}.storage-alarm-vehicle-options{max-height:280px;display:grid;gap:4px;overflow-y:auto}.storage-alarm-vehicle-option{min-width:0;min-height:52px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 11px;border:1px solid transparent;border-radius:6px;background:#fff;cursor:pointer}.storage-alarm-vehicle-option.selected{border-color:#60a5fa;background:#eff6ff}.storage-alarm-vehicle-option input{width:16px;height:16px;accent-color:#2563eb}.storage-alarm-vehicle-option span{min-width:0;display:grid;gap:3px}.storage-alarm-vehicle-option strong,.storage-alarm-vehicle-option small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.storage-alarm-vehicle-option strong{color:#1e293b}.storage-alarm-vehicle-option small{color:#64748b}.storage-alarm-vehicle-option em{color:#94a3b8;font-size:12px;font-style:normal;font-weight:700}.storage-alarm-vehicle-option em.online{color:#16a34a}.storage-alarm-search{min-width:0;min-height:40px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;padding:0 10px;border:0;border-radius:6px;background:#f8fafc;color:#64748b}.storage-alarm-search span{font-weight:800}.storage-alarm-search input{min-width:0;width:100%;height:38px;border:0;padding:0 6px;outline:0;color:#0f172a;background:transparent}.storage-alarm-filter-card,.storage-alarm-time-filter{min-width:0;min-height:58px;display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid #dfe7f0;border-radius:8px;background:#fff;box-shadow:0 3px 12px #2a34490a}.storage-alarm-filter-card--search .storage-alarm-search{width:100%}.storage-alarm-status-filter>span{flex:0 0 auto;color:#475569;font-size:12px;font-weight:800;white-space:nowrap}.storage-alarm-status-filter button{min-height:34px;padding:0 9px;border:1px solid transparent;border-radius:6px;color:#475569;background:transparent;font-size:11px;font-weight:800;white-space:nowrap}.storage-alarm-status-filter button.active{border-color:#dbe5f0;color:#0f172a;background:#f8fafc}.storage-alarm-time-filter{justify-content:flex-end;color:#64748b}.storage-alarm-time-filter label{min-width:0;display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;white-space:nowrap}.storage-alarm-time-filter input{width:126px;height:38px;padding:0 8px;border:1px solid #dbe4ec;border-radius:6px;color:#0f172a;background:#f8fafc}.storage-alarm-protocol{color:#475569;font-weight:800}.storage-alarm-workbench{min-width:0;min-height:620px;height:clamp(620px,calc(100vh - 292px),760px);display:grid;grid-template-columns:minmax(0,2fr) minmax(340px,1fr);gap:12px;align-items:stretch}.storage-alarm-table-wrap{min-width:0;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;border:1px solid #e2e8f0;border-radius:8px;background:#fff;box-shadow:var(--shadow)}.storage-alarm-list-header{min-height:56px;display:flex;align-items:center;gap:32px;padding:0 16px;border-bottom:1px solid #edf2f7}.storage-alarm-list-header h1{margin:0;color:#0f172a;font-size:18px;line-height:1.2}.storage-alarm-list-header dl{display:flex;align-items:center;gap:28px;margin:0}.storage-alarm-list-header dl div{display:flex;align-items:baseline;gap:7px}.storage-alarm-list-header dt{color:#64748b;font-size:11px;font-weight:700}.storage-alarm-list-header dd{margin:0;color:#0f172a;font-size:15px;font-weight:800}.storage-alarm-list-header .active dd{color:#d97706}.storage-alarm-list-header .recovered dd{color:#16a34a}.storage-alarm-list-header .closed dd{color:#334155}.storage-alarm-table-scroll{min-width:0;min-height:0;overflow:auto;padding:10px 8px 0}.storage-alarm-table{width:100%;min-width:760px;border-collapse:collapse;table-layout:fixed}.storage-alarm-table col.device{width:33%}.storage-alarm-table col.name{width:29%}.storage-alarm-table col.occurred-time{width:20%}.storage-alarm-table col.status{width:10%}.storage-alarm-table col.operation{width:8%}.storage-alarm-table th,.storage-alarm-table td{height:70px;padding:0 12px;border-bottom:1px solid #edf2f7;color:#334155;text-align:left;vertical-align:middle;white-space:nowrap}.storage-alarm-table th{height:42px;color:#64748b;background:#f8fafc;font-size:12px;font-weight:800}.storage-alarm-table tbody tr{cursor:pointer}.storage-alarm-table tbody tr:hover,.storage-alarm-table tbody tr:focus,.storage-alarm-table tbody tr.active{outline:none;background:#f5f9ff}.storage-alarm-table tbody tr.active{box-shadow:inset 3px 0 #2563eb,inset 0 0 0 1px #bfdbfe}.storage-alarm-table__name,.storage-alarm-table__device{min-width:0}.storage-alarm-table__name strong,.storage-alarm-table__device strong{display:block;overflow:hidden;color:#0f172a;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.storage-alarm-table__name strong{display:flex;align-items:center;gap:9px}.storage-alarm-severity-dot{width:7px;height:7px;flex:0 0 auto;border-radius:50%;background:#22c55e}.storage-alarm-severity-dot.critical{background:#ef4444}.storage-alarm-severity-dot.warn{background:#f59e0b}.storage-alarm-severity-dot.info{background:#22c55e}.storage-alarm-table__name small,.storage-alarm-table__device small{display:block;overflow:hidden;margin-top:3px;color:#64748b;font-size:11px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.storage-alarm-table__time{white-space:nowrap}.storage-alarm-table__time strong,.storage-alarm-table__time small{display:block}.storage-alarm-table__time strong{color:#334155;font-size:12px;font-weight:600}.storage-alarm-table__time small{margin-top:4px;color:#94a3b8;font-size:10px}.storage-alarm-level,.storage-alarm-state{display:inline-flex;align-items:center;justify-content:center;min-width:52px;height:26px;padding:0 8px;border-radius:6px;font-size:12px;font-weight:800}.storage-alarm-level.critical{color:#fff;background:#dc2626}.storage-alarm-level.warn{color:#fff;background:#f97316}.storage-alarm-level.info{color:#fff;background:#2563eb}.storage-alarm-state.active{color:#b45309;background:#fffbeb}.storage-alarm-state.recovered{color:#15803d;background:#f0fdf4}.storage-alarm-state.closed{color:#64748b;background:#f1f5f9}.storage-alarm-table td button{min-height:30px;padding:0 10px;color:#1d4ed8;border:1px solid #bfdbfe;border-radius:6px;background:#eff6ff;font-weight:800}.storage-alarm-pagination{min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:0 14px;border-top:1px solid #edf2f7;color:#475569;font-size:11px}.storage-alarm-pagination>div{display:flex;align-items:center;gap:8px}.storage-alarm-pagination button,.storage-alarm-pagination>div>span{min-width:34px;min-height:34px;display:inline-flex;align-items:center;justify-content:center;padding:0 9px;border:1px solid #dbe5f0;border-radius:6px;color:#475569;background:#fff;font-weight:700}.storage-alarm-pagination button.active{border-color:#2563eb;color:#2563eb}.storage-alarm-pagination button:disabled{color:#cbd5e1;background:#f8fafc}.storage-alarm-reports{min-width:0;min-height:0;height:100%;display:grid;grid-template-rows:auto auto auto minmax(0,1fr);overflow:hidden;border:1px solid #dfe7f0;border-radius:10px;background:#fff;box-shadow:var(--shadow)}.storage-alarm-reports__header{min-height:56px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 16px;border-bottom:1px solid #edf2f7}.storage-alarm-reports__header>div{display:flex;align-items:center;gap:12px}.storage-alarm-reports__header h2{margin:0;color:#0f172a;font-size:18px;line-height:1.2}.storage-alarm-reports__live{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:0 9px;border:1px solid #bbf7d0;border-radius:999px;color:#15803d;background:#f0fdf4;font-size:12px;font-weight:800}.storage-alarm-reports__live i{width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 4px #22c55e1f}.storage-alarm-reports__context{position:relative;min-width:0;display:grid;gap:4px;padding:10px 168px 10px 16px;border-bottom:1px solid #edf2f7;background:#fff}.storage-alarm-reports__context p{overflow:hidden;margin:0;color:#475569;font-size:11px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.storage-alarm-reports__context p strong{color:#ef4444;font-size:12px}.storage-alarm-reports__context>span,.storage-alarm-reports__context>small{overflow:hidden;color:#64748b;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.storage-alarm-reports__summary{position:absolute;top:50%;right:14px;display:flex;gap:6px;padding:0;transform:translateY(-50%)}.storage-alarm-reports__summary span{min-height:28px;display:inline-flex;align-items:center;padding:0 8px;border:1px solid #dbe5f0;border-radius:6px;color:#475569;background:#fff;font-size:10px;font-weight:700;white-space:nowrap}.storage-alarm-reports__summary span.correlated{border-color:#fdba74;color:#d97706;background:#fffaf0}.storage-alarm-report-columns{display:grid;grid-template-columns:132px minmax(0,1fr) 44px;gap:10px;align-items:center;min-height:42px;padding:0 14px 0 30px;color:#64748b;background:#f8fafc;font-size:10px;font-weight:800}.storage-alarm-report-columns span:last-child{text-align:center}.storage-alarm-report-list{min-height:0;overflow-y:auto;border-top:1px solid #edf2f7}.storage-alarm-report{position:relative;min-width:0;display:block;min-height:72px;padding:12px 14px 12px 30px;border-bottom:1px solid #edf2f7;background:#fff}.storage-alarm-report__toggle{width:100%;min-width:0;display:grid;grid-template-columns:132px minmax(0,1fr) auto auto;gap:10px;align-items:start;padding:0;border:0;color:inherit;background:transparent;text-align:left;cursor:pointer}.storage-alarm-report:hover,.storage-alarm-report.expanded{background:#f8fbff}.storage-alarm-report__toggle:focus-visible{outline:2px solid #2563eb;outline-offset:5px}.storage-alarm-report__raw{position:relative;z-index:2;display:grid;gap:8px;margin-top:12px;padding:12px;border:1px solid #dbeafe;border-radius:7px;background:#f8fafc}.storage-alarm-report__raw-item{min-width:0;display:grid;gap:7px}.storage-alarm-report__raw-item+.storage-alarm-report__raw-item{padding-top:10px;border-top:1px solid #dbe5f0}.storage-alarm-report__raw-item header{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#475569;font-size:10px}.storage-alarm-report__raw-item header strong{color:#1d4ed8}.storage-alarm-report__raw-item pre{max-height:240px;overflow:auto;margin:0;padding:10px;border-radius:6px;color:#dbeafe;background:#0f172a;font:10px/1.55 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere}.storage-alarm-report__raw-state{padding:12px;color:#64748b;font-size:11px;text-align:center}.storage-alarm-report__raw-state.error{color:#b91c1c}.storage-alarm-report.correlated{background:#fffaf0}.storage-alarm-report.correlated:before{position:absolute;top:26px;left:13px;width:7px;height:7px;border-radius:50%;background:#f97316;content:""}.storage-alarm-report:not(.correlated):before{position:absolute;top:26px;left:13px;width:7px;height:7px;border-radius:50%;background:#94a3b8;content:""}.storage-alarm-report:after{position:absolute;top:0;bottom:0;left:16px;width:1px;background:#e2e8f0;content:""}.storage-alarm-report:before{z-index:1}.storage-alarm-report__time,.storage-alarm-report__content{min-width:0;display:grid;gap:4px}.storage-alarm-report__time strong{color:#0f172a;font-size:10px;font-weight:600;white-space:nowrap}.storage-alarm-report__time small,.storage-alarm-report__content small{color:#94a3b8;font-size:10px}.storage-alarm-report__content>div{min-width:0;display:flex;align-items:center;gap:6px}.storage-alarm-report__content strong{display:inline-flex;min-height:20px;align-items:center;padding:0 6px;border-radius:5px;color:#2563eb;background:#eff6ff;font-size:9px}.storage-alarm-report__content strong.pcs{color:#7c3aed;background:#f5f3ff}.storage-alarm-report__content p{overflow:hidden;margin:0;color:#0f172a;font-size:10px;font-weight:700;line-height:1.45;text-overflow:ellipsis;white-space:nowrap}.storage-alarm-report__content small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.storage-alarm-report__status{min-width:38px;padding:3px 6px;border-radius:5px;color:#15803d;background:#f0fdf4;font-size:10px;font-weight:800;text-align:center}.storage-alarm-report__correlation{align-self:center;padding:3px 6px;border:1px solid #fed7aa;border-radius:5px;color:#ea580c;background:#fff7ed;font-size:9px;font-weight:800;white-space:nowrap}.storage-alarm-report__status.received{color:#1d4ed8;background:#eff6ff}.storage-alarm-reports__empty{min-height:220px;display:grid;place-content:center;gap:8px;padding:24px;border-top:1px solid #edf2f7;color:#64748b;text-align:center}.storage-alarm-reports__empty strong{color:#334155}.storage-alarm-reports__empty span{max-width:260px;font-size:12px;line-height:1.6}@media(max-width:1360px){.storage-alarm-workbench{grid-template-columns:minmax(0,2fr) minmax(310px,1fr)}.storage-alarm-report{padding-right:10px}.storage-alarm-report__toggle{grid-template-columns:112px minmax(0,1fr) auto}.storage-alarm-report__correlation{display:none}}.storage-alarm-modal-backdrop{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px;background:#0f172a47;animation:storageAlarmFadeIn .14s ease-out}.storage-alarm-modal{width:min(820px,calc(100vw - 48px));max-height:86vh;min-width:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;border:1px solid #d7e0ea;border-radius:10px;background:#fff;box-shadow:0 22px 70px #0f172a38;animation:storageAlarmModalIn .16s ease-out}.storage-alarm-modal:focus{outline:2px solid rgba(37,99,235,.35);outline-offset:2px}.storage-alarm-modal__header,.storage-alarm-modal__footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;border-bottom:1px solid #edf2f7}.storage-alarm-modal__header h2{margin:0;color:#0f172a;font-size:22px;line-height:1.25}.storage-alarm-modal__eyebrow{margin:0 0 6px;color:#64748b;font-size:12px;font-weight:800}.storage-alarm-modal__header button{width:34px;height:34px;flex:0 0 auto;border:1px solid #e2e8f0;border-radius:6px;background:#fff;color:#64748b;font-size:20px;line-height:1}.storage-alarm-modal__body{min-height:0;display:grid;align-content:start;gap:14px;padding:16px 18px;overflow-y:auto}.storage-alarm-modal__badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.storage-alarm-modal__badges strong,.storage-alarm-modal__badges span{display:inline-flex;align-items:center;min-height:26px;padding:0 8px;border-radius:6px;background:#f1f5f9;color:#475569;font-size:12px;font-weight:800}.storage-alarm-modal__badges strong.critical{color:#fff;background:#dc2626}.storage-alarm-modal__badges strong.warn{color:#fff;background:#f97316}.storage-alarm-modal__badges strong.info{color:#fff;background:#2563eb}.storage-alarm-modal__meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0}.storage-alarm-modal__meta div{display:grid;grid-template-columns:106px minmax(0,1fr);gap:8px;align-items:start;min-width:0}.storage-alarm-modal__overview>div{min-height:66px;display:grid;grid-template-columns:1fr;gap:7px;padding:11px 12px;border:1px solid #e7edf4;border-radius:8px;background:#f8fafc}.storage-alarm-modal__overview>div.device{grid-column:1 / -1}.storage-alarm-modal__overview dd strong,.storage-alarm-modal__overview dd small{display:block}.storage-alarm-modal__overview dd small{margin-top:4px;color:#64748b;font-size:12px;font-weight:500}.storage-alarm-modal__meta dt{color:#64748b;font-size:12px}.storage-alarm-modal__meta dd{min-width:0;margin:0;color:#0f172a;font-weight:800;overflow-wrap:anywhere}.storage-alarm-modal__section{display:grid;gap:10px;padding-top:14px;border-top:1px solid #edf2f7}.storage-alarm-modal__section h3{margin:0;color:#0f172a;font-size:14px}.storage-alarm-modal__section p,.storage-alarm-modal__section ul,.storage-alarm-modal__section ol{margin:0;color:#475569;line-height:1.55}.storage-alarm-modal__section p.danger{color:#b91c1c}.storage-alarm-modal__section ul{display:grid;gap:8px;padding-left:18px}.storage-alarm-modal__metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.storage-alarm-modal__metrics div{min-width:0;display:grid;gap:5px;padding:10px;border:1px solid #edf2f7;border-radius:8px;background:#f8fafc}.storage-alarm-modal__metrics span,.storage-alarm-modal__metrics em{color:#64748b;font-size:12px;font-style:normal}.storage-alarm-modal__metrics strong{color:#0f172a;font-size:18px;line-height:1.2}.storage-alarm-modal__metrics small{margin-left:2px;color:#64748b;font-size:12px}.storage-alarm-modal__notice{padding:10px 12px;border:1px solid #bfdbfe;border-radius:8px;color:#1d4ed8;background:#eff6ff;font-size:13px;font-weight:800}.storage-alarm-modal__notice.danger{border-color:#fecaca;color:#b91c1c;background:#fef2f2}.storage-alarm-timeline{display:grid;gap:10px;padding-left:0;list-style:none}.storage-alarm-timeline li{display:grid;grid-template-columns:150px 90px minmax(0,1fr);gap:10px;align-items:start;padding:10px 12px;border:1px solid #edf2f7;border-radius:8px;background:#f8fafc}.storage-alarm-timeline time{color:#64748b;font-size:12px}.storage-alarm-timeline strong{color:#0f172a;font-size:13px}.storage-alarm-timeline span{min-width:0;color:#475569;overflow-wrap:anywhere}.storage-alarm-form{display:grid;gap:14px}.storage-alarm-form label{display:grid;gap:8px;color:#475569;font-size:13px;font-weight:800}.storage-alarm-form input,.storage-alarm-form textarea{width:100%;min-width:0;padding:10px 12px;border:1px solid #d8dde7;border-radius:8px;color:#0f172a;background:#fff;font:inherit}.storage-alarm-form textarea{resize:vertical}.storage-alarm-form__error{margin:0;color:#b91c1c;font-weight:800}.storage-alarm-action-reason{flex:1 1 100%;margin:0;color:#64748b;font-size:12px;font-weight:800;line-height:1.45;text-align:right}.storage-alarm-action-reason.danger{color:#b91c1c}.storage-alarm-modal__footer{flex-wrap:wrap;justify-content:flex-end;border-top:1px solid #edf2f7;border-bottom:0}.storage-alarm-modal__footer button{min-height:36px;padding:0 12px;border:1px solid #d8dde7;border-radius:6px;background:#fff;color:#334155;font-weight:800}.storage-alarm-modal__footer button.primary{border-color:#2563eb;background:#2563eb;color:#fff}.storage-alarm-modal__footer button.danger{border-color:#fecaca;color:#dc2626}.storage-alarm-modal__footer button:disabled,.storage-alarm-modal__header button:disabled{cursor:not-allowed;border-color:#e5e7eb;background:#f8fafc;color:#94a3b8}@keyframes storageAlarmFadeIn{0%{opacity:0}to{opacity:1}}@keyframes storageAlarmModalIn{0%{opacity:0;transform:translateY(8px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}@media(prefers-reduced-motion:reduce){.storage-alarm-modal-backdrop,.storage-alarm-modal{animation:none}}.storage-alarm-error{padding:10px 12px;border:1px solid rgba(220,38,38,.28);border-radius:8px;color:#b91c1c;background:#fef2f2}.storage-alarm-layout{display:grid;grid-template-columns:minmax(320px,.42fr) minmax(460px,1fr) minmax(320px,.42fr);gap:14px;align-items:start}.storage-alarm-queue,.storage-alarm-detail,.storage-alarm-response,.storage-alarm-evidence{min-width:0;padding:18px 20px}.storage-alarm-queue{min-height:560px}.storage-alarm-list{display:grid;gap:10px;margin-top:16px}.storage-alarm-list button{min-height:86px;display:grid;grid-template-columns:52px minmax(0,1fr) 72px;gap:8px 10px;align-items:center;padding:12px;text-align:left;border:1px solid #edf0f5;border-radius:8px;background:#fff}.storage-alarm-list button.active{border-color:#dc262673;background:snow;box-shadow:inset 3px 0 #dc2626}.storage-alarm-list b,.storage-alarm-title .storage-alarm-icon{display:inline-flex;align-items:center;justify-content:center;min-width:46px;height:28px;border-radius:6px;font-size:13px}.storage-alarm-list b.critical,.storage-alarm-icon.critical{color:#fff;background:#dc2626}.storage-alarm-list b.warn,.storage-alarm-icon.warn{color:#fff;background:#f97316}.storage-alarm-list b.info,.storage-alarm-icon.info{color:#fff;background:#2563eb}.storage-alarm-list span{min-width:0;color:#111827;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.storage-alarm-list small{grid-column:2 / 3;color:#64748b}.storage-alarm-list em{justify-self:end;color:#64748b;font-style:normal}.storage-alarm-list em.active{color:#f97316}.storage-alarm-list em.recovered{color:#16a34a}.storage-alarm-list em.closed{color:#64748b}.storage-alarm-title{display:flex;align-items:center;gap:14px}.storage-alarm-title .storage-alarm-icon{width:42px;height:42px;border-radius:50%;font-size:24px;font-weight:900}.storage-alarm-title h1{margin:0;color:#111827;font-size:28px;line-height:1.2}.storage-alarm-title p{margin:6px 0 0;color:#64748b}.storage-alarm-fields{display:grid;margin:20px 0 0;border-top:1px solid #edf0f5}.storage-alarm-fields div{display:grid;grid-template-columns:118px minmax(0,1fr);gap:16px;min-height:48px;align-items:center;border-bottom:1px solid #edf0f5}.storage-alarm-fields dt{color:#64748b}.storage-alarm-fields dd{margin:0;color:#111827;font-weight:800}.storage-alarm-fields dd.danger{color:#dc2626;font-size:22px}.storage-alarm-response{display:grid;gap:18px}.storage-alarm-suggestions{display:grid;gap:10px;margin:16px 0 0;padding-left:24px;color:#334155}.storage-alarm-suggestions li::marker{color:#dc2626;font-weight:900}.storage-alarm-actions{border-top:1px solid #edf0f5;padding-top:18px}.storage-alarm-actions h2{margin:0 0 12px;font-size:16px}.storage-alarm-actions div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.storage-alarm-actions button{min-height:42px;border:1px solid #d8dde7;border-radius:6px;background:#fff;color:#334155;font-weight:800}.storage-alarm-actions button.primary{border-color:#2563eb;background:#2563eb;color:#fff}.storage-alarm-actions button.danger{border-color:#fecaca;color:#dc2626}.storage-alarm-actions button:disabled{cursor:not-allowed;border-color:#e5e7eb;background:#f8fafc;color:#94a3b8}.storage-alarm-actions p{margin:10px 0 0;color:#dc2626;font-size:13px}.storage-alarm-evidence{grid-column:2 / 3}.storage-alarm-evidence svg{width:100%;height:248px;margin-top:14px;border:1px solid #edf0f5;border-radius:8px;background:#fff}.storage-alarm-grid line{stroke:#e5eaf2;stroke-dasharray:4 4}.storage-alarm-evidence path{fill:none;stroke-width:3}.storage-alarm-evidence path.soc{stroke:#16a34a}.storage-alarm-evidence path.power{stroke:#2563eb}.storage-alarm-evidence path.temperature{stroke:#dc2626}.storage-alarm-evidence-warning{margin-top:14px;padding:18px;border:1px solid rgba(245,158,11,.32);border-radius:8px;color:#92400e;background:#fffbeb;font-weight:700}.storage-alarm-legend{display:flex;gap:18px;margin-top:10px;color:#64748b}.storage-alarm-legend span:before{content:"";display:inline-block;width:18px;height:3px;margin-right:6px;vertical-align:middle;background:currentColor}.storage-alarm-legend .soc{color:#16a34a}.storage-alarm-legend .power{color:#2563eb}.storage-alarm-legend .temperature{color:#dc2626}.storage-alarm-c-filters{display:grid;grid-template-columns:minmax(330px,.95fr) minmax(320px,.9fr) minmax(280px,.8fr);gap:12px;align-items:stretch}.storage-alarm-c-filter-group{display:grid;grid-template-columns:repeat(3,minmax(88px,1fr));gap:8px;padding:7px;border:1px solid #e4eaf2;border-radius:12px;background:#fff;box-shadow:0 8px 24px #1e293b0a}.storage-alarm-c-filter{min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 12px;color:#64748b;border:1px solid transparent;border-radius:8px;background:transparent;font-size:13px;font-weight:800}.storage-alarm-c-filter strong{color:#172033;font-size:19px;line-height:1}.storage-alarm-c-filter.active{color:#18396c;border-color:#bfd2ef;background:#edf4ff}.storage-alarm-c-filter.critical{color:#cf2637}.storage-alarm-c-filter.critical.active{border-color:#f1bec5;background:#fff4f5}.storage-alarm-c-filter.warn{color:#c96812}.storage-alarm-c-filter.warn.active{border-color:#f3d19d;background:#fff9ed}.storage-alarm-c-search{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;padding:7px 12px;color:#526277;border:1px solid #e4eaf2;border-radius:12px;background:#fff;box-shadow:0 8px 24px #1e293b0a;font-size:13px;font-weight:800}.storage-alarm-c-search input{width:100%;height:36px;min-width:0;padding:0 10px;color:#1d2939;border:1px solid #dce5ef;border-radius:7px;outline:none;background:#f8fafc}.storage-alarm-c-search input:focus{border-color:#5e8fd7;background:#fff}.storage-alarm-c-board{display:grid;grid-template-columns:minmax(330px,.37fr) minmax(0,1fr);gap:14px;align-items:stretch}.storage-alarm-c-queue,.storage-alarm-c-detail{min-width:0;padding:0;overflow:hidden;border:1px solid #dde6f0;border-radius:14px;box-shadow:0 14px 34px #1f314c14}.storage-alarm-c-queue{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:680px;background:#122036}.storage-alarm-c-panel-head{min-height:104px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 20px 18px;color:#fff;border-bottom:1px solid rgba(191,216,249,.16);background:linear-gradient(135deg,#162a45,#0d192b)}.storage-alarm-c-panel-head p,.storage-alarm-c-panel-head h2{margin:0}.storage-alarm-c-panel-head p{color:#91a8c7;font-size:12px;font-weight:800;letter-spacing:.12em}.storage-alarm-c-panel-head h2{margin-top:8px;font-size:21px}.storage-alarm-c-panel-head>strong{min-width:36px;height:36px;display:inline-grid;place-items:center;color:#dceaff;border:1px solid rgba(175,210,255,.28);border-radius:50%;background:#4b7cb933}.storage-alarm-c-list{display:grid;align-content:start;gap:8px;max-height:650px;padding:12px;overflow-y:auto}.storage-alarm-c-list button{width:100%;display:grid;gap:7px;padding:13px 14px;text-align:left;color:#e8eef7;border:1px solid rgba(188,213,245,.12);border-radius:10px;background:#ffffff0b}.storage-alarm-c-list button:hover{background:#ffffff16}.storage-alarm-c-list button.active{border-color:#ffb4bbbf;background:linear-gradient(90deg,#af26356b,#ffffff14);box-shadow:inset 3px 0 #fb5664}.storage-alarm-c-list__top{display:flex;align-items:center;justify-content:space-between;gap:10px}.storage-alarm-c-list b{display:inline-flex;width:fit-content;padding:3px 7px;color:#fff;border-radius:4px;font-size:12px;line-height:1.25}.storage-alarm-c-list b.critical{background:#d83448}.storage-alarm-c-list b.warn{background:#d98526}.storage-alarm-c-list b.info{background:#4077bf}.storage-alarm-c-list em{color:#aebed3;font-size:12px;font-style:normal}.storage-alarm-c-list em.active{color:#ffd18b}.storage-alarm-c-list em.recovered{color:#83deb2}.storage-alarm-c-list em.closed{color:#aebed3}.storage-alarm-c-list>button>strong{overflow:hidden;color:#f8fbff;font-size:15px;text-overflow:ellipsis;white-space:nowrap}.storage-alarm-c-list small,.storage-alarm-c-list time{overflow:hidden;color:#9db0c9;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.storage-alarm-c-detail{min-height:680px;background:#fff}.storage-alarm-c-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px 20px;padding:26px 30px 22px;border-top:4px solid #1d4f91;border-bottom:1px solid #e6edf5;background:linear-gradient(112deg,#f7faff,#fff 63%)}.storage-alarm-c-hero__eyebrow{grid-column:1 / -1;display:inline-flex;align-items:center;gap:8px;color:#61728a;font-size:13px;font-weight:800}.storage-alarm-c-icon{width:28px;height:28px;display:inline-grid;place-items:center;color:#fff;border-radius:50%;font-size:18px;font-weight:900}.storage-alarm-c-icon.critical{background:#d72e42}.storage-alarm-c-icon.warn{background:#e48a25}.storage-alarm-c-icon.info{background:#4077bf}.storage-alarm-c-hero h1{max-width:760px;margin:0;color:#15243a;font-size:clamp(24px,2.2vw,36px);line-height:1.2}.storage-alarm-c-hero p{margin:8px 0 0;color:#627289;font-size:14px;font-weight:700}.storage-alarm-c-hero code{align-self:end;padding:8px 10px;color:#375374;border:1px solid #d7e3ef;border-radius:6px;background:#f4f8fc;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;white-space:nowrap}.storage-alarm-c-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0;border-bottom:1px solid #e8eef5}.storage-alarm-c-facts>div{min-width:0;padding:17px 18px;border-right:1px solid #e8eef5}.storage-alarm-c-facts>div:last-child{border-right:0}.storage-alarm-c-facts dt{color:#7a8ba1;font-size:12px;font-weight:700}.storage-alarm-c-facts dd{margin:7px 0 0;overflow:hidden;color:#1b2b42;font-size:14px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.storage-alarm-c-facts dd.danger{color:#d22c3e}.storage-alarm-c-workspace{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(260px,.8fr);gap:18px;padding:22px 30px}.storage-alarm-c-recommendations,.storage-alarm-c-timeline{min-width:0;padding:16px;border:1px solid #e4eaf2;border-radius:10px;background:#fcfdff}.storage-alarm-c-section-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.storage-alarm-c-section-title h2{margin:0;color:#1d2d45;font-size:16px}.storage-alarm-c-section-title span{color:#8290a3;font-size:12px;font-weight:700}.storage-alarm-c-recommendations ol{display:grid;gap:9px;margin:15px 0 0;padding-left:20px;color:#3f5067;font-size:13px;line-height:1.55}.storage-alarm-c-recommendations li::marker{color:#d72e42;font-weight:900}.storage-alarm-c-actions{display:flex;gap:8px;margin-top:17px;padding-top:14px;border-top:1px solid #e6edf5}.storage-alarm-c-actions button{min-height:35px;padding:0 14px;color:#fff;border:1px solid #1d5cad;border-radius:6px;background:#1d5cad;font-weight:800}.storage-alarm-c-actions button:disabled{cursor:not-allowed;color:#93a0b0;border-color:#dfe6ee;background:#f5f7fa}.storage-alarm-c-timeline ol{display:grid;gap:13px;margin:15px 0 0;padding:0;list-style:none}.storage-alarm-c-timeline li{display:grid;grid-template-columns:12px minmax(0,1fr);gap:9px}.storage-alarm-c-timeline li>span{width:9px;height:9px;margin-top:5px;border-radius:50%;background:#8fa0b5}.storage-alarm-c-timeline li>span.critical{background:#d72e42}.storage-alarm-c-timeline li>span.warn{background:#e48a25}.storage-alarm-c-timeline li>span.info,.storage-alarm-c-timeline li>span.active{background:#4077bf}.storage-alarm-c-timeline li>span.recovered{background:#23a56c}.storage-alarm-c-timeline time,.storage-alarm-c-timeline small{display:block;color:#8190a2;font-size:12px}.storage-alarm-c-timeline strong{display:block;margin:2px 0;color:#26364d;font-size:13px}.storage-alarm-c-evidence{padding:0 30px 26px}.storage-alarm-c-evidence .storage-alarm-c-section-title{padding:15px 0 11px;border-top:1px solid #e8eef5}.storage-alarm-c-evidence .storage-alarm-c-section-title>div:first-child{display:grid;gap:4px}.storage-alarm-c-legend{display:flex;gap:12px;color:#8090a4;font-size:12px;font-weight:700}.storage-alarm-c-legend span:before{content:"";display:inline-block;width:12px;height:3px;margin-right:4px;vertical-align:middle;background:currentColor}.storage-alarm-c-legend .soc{color:#269c66}.storage-alarm-c-legend .power{color:#3476d1}.storage-alarm-c-legend .temperature{color:#d72e42}.storage-alarm-c-evidence svg{width:100%;height:180px;display:block;border:1px solid #e6edf5;border-radius:8px;background:#fff}.storage-alarm-c-evidence path{fill:none;stroke-width:3}.storage-alarm-c-evidence path.soc{stroke:#269c66}.storage-alarm-c-evidence path.power{stroke:#3476d1}.storage-alarm-c-evidence path.temperature{stroke:#d72e42}@media(max-width:1500px){.storage-alarm-c-filters{grid-template-columns:minmax(300px,1fr) minmax(290px,1fr)}.storage-alarm-c-search{grid-column:1 / -1}.storage-alarm-c-board{grid-template-columns:minmax(300px,.42fr) minmax(0,1fr)}.storage-alarm-c-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.storage-alarm-c-facts>div:nth-child(2){border-right:0}.storage-alarm-c-facts>div:nth-child(-n+2){border-bottom:1px solid #e8eef5}}@media(max-width:1500px){.storage-alarm-layout{grid-template-columns:minmax(300px,.45fr) minmax(430px,1fr)}.storage-alarm-response{grid-column:1 / -1}}.storage-station-bar{min-height:86px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 24px;background:#fff;border:1px solid #f0f1f5;border-radius:8px;box-shadow:var(--shadow)}.storage-station-bar h1{margin:0;font-size:22px;line-height:1.25;letter-spacing:0}.storage-station-bar h1 span{color:#35c66b;font-size:14px;font-weight:700}.storage-station-bar p{margin:10px 0 0;color:#64748b}.storage-top-actions{display:flex;gap:10px;flex:0 0 auto}.storage-top-actions button,.storage-range button,.storage-panel-head button{height:34px;padding:0 15px;color:#fff;border-radius:4px;background:var(--blue)}.storage-machine-selector,.storage-control-machine-selector{display:inline-flex;align-items:center;gap:8px}.storage-machine-selector span,.storage-control-machine-selector span{color:#6b7280;font-size:12px}.storage-machine-selector select,.storage-control-machine-selector select{height:34px;min-width:170px;padding:0 12px;border-radius:4px;border:1px solid #c6d0da;color:#111827;background:#fff}.storage-top-actions button:first-child{color:var(--blue);border:1px solid rgba(47,107,255,.25);background:#eff6ff}.storage-param-workbench{margin:14px 18px 22px;overflow:hidden;border:1px solid #e3e9f1;border-radius:10px;background:#fff;box-shadow:0 8px 24px #25334b0f}.storage-param-page>.storage-vehicle-selector{margin:12px 18px 0;padding:13px 16px;box-shadow:none}.storage-param-page>.storage-vehicle-selector:has(.storage-vehicle-selector-card:only-child) .storage-vehicle-selector-body{grid-template-columns:minmax(420px,1fr) minmax(280px,330px);align-items:stretch}.storage-param-page>.storage-vehicle-selector:has(.storage-vehicle-selector-card:only-child) .storage-vehicle-toolbar{display:none}.storage-param-page>.storage-vehicle-selector:has(.storage-vehicle-selector-card:only-child) .storage-vehicle-summary{align-self:stretch}.storage-param-page>.storage-vehicle-selector:has(.storage-vehicle-selector-card:only-child) .storage-vehicle-selector-list{grid-column:2;grid-row:1;grid-template-columns:1fr}.storage-param-page>.storage-vehicle-selector:has(.storage-vehicle-selector-card:only-child) .storage-vehicle-selector-card{min-height:76px;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"badges name" "badges code" "metrics metrics";align-items:center;gap:3px 10px;padding:10px 12px}.storage-param-page>.storage-vehicle-selector:has(.storage-vehicle-selector-card:only-child) .storage-vehicle-selector-badges{grid-area:badges}.storage-param-page>.storage-vehicle-selector:has(.storage-vehicle-selector-card:only-child) .storage-vehicle-selector-card>strong{grid-area:name}.storage-param-page>.storage-vehicle-selector:has(.storage-vehicle-selector-card:only-child) .storage-vehicle-selector-card>small{grid-area:code}.storage-param-page>.storage-vehicle-selector:has(.storage-vehicle-selector-card:only-child) .storage-vehicle-selector-card>em{display:none}.storage-param-page>.storage-vehicle-selector:has(.storage-vehicle-selector-card:only-child) .storage-vehicle-selector-card>div{grid-area:metrics}.storage-param-summary{display:grid;grid-template-columns:minmax(250px,.78fr) minmax(520px,1.5fr) auto;align-items:center;gap:24px;padding:20px 22px;border-bottom:1px solid #e8edf4;background:linear-gradient(110deg,#f7fbfa,#fff 46%,#f8faff)}.storage-param-identity{min-width:0}.storage-param-kicker{display:block;margin-bottom:7px;color:#128263;font-size:12px;font-weight:700;letter-spacing:.08em}.storage-param-identity>div{display:flex;align-items:center;gap:10px;min-width:0}.storage-param-identity h2{min-width:0;margin:0;color:#172033;font-size:19px;line-height:1.3}.storage-param-identity p{margin:7px 0 0;overflow:hidden;color:#6b778b;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.storage-param-live-badge{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;padding:4px 8px;color:#64748b;font-size:12px;border-radius:999px;background:#eef2f6}.storage-param-live-badge i{width:7px;height:7px;border-radius:50%;background:currentColor}.storage-param-live-badge.live{color:#0f7b59;background:#dcf6eb}.storage-param-live-badge.live i{box-shadow:0 0 0 4px #0f7b591a;animation:storage-param-pulse 1.8s ease-out infinite}.storage-param-live-badge.delayed{color:#b36a10;background:#fff2d8}@keyframes storage-param-pulse{0%{box-shadow:0 0 #0f7b5938}70%{box-shadow:0 0 0 6px #0f7b5900}to{box-shadow:0 0 #0f7b5900}}.storage-param-metrics{display:grid;grid-template-columns:repeat(4,minmax(110px,1fr));min-width:0;border-left:1px solid #e2e8f0}.storage-param-metrics>div{min-width:0;padding:2px 18px;border-right:1px solid #e2e8f0}.storage-param-metrics span{display:block;margin-bottom:7px;color:#7a8699;font-size:12px}.storage-param-metrics strong{display:flex;align-items:baseline;gap:5px;overflow:hidden;color:#172033;font-size:23px;line-height:1;text-overflow:ellipsis;white-space:nowrap}.storage-param-metrics small{color:#7a8699;font-size:12px;font-weight:500}.storage-param-head-actions{display:flex;gap:8px}.storage-param-head-actions button{height:36px;padding:0 14px;color:#40506a;white-space:nowrap;border:1px solid #ccd6e4;border-radius:5px;background:#fff}.storage-param-head-actions button.primary{color:#fff;border-color:#2563eb;background:#2563eb;box-shadow:0 4px 12px #2563eb2e}.storage-param-head-actions button:hover,.storage-param-configure:hover{transform:translateY(-1px)}.storage-param-source-nav{display:flex;gap:4px;padding:12px 18px 0;overflow-x:auto;border-bottom:1px solid #edf1f6;background:#fff}.storage-param-source-nav button{position:relative;display:inline-flex;align-items:center;gap:8px;min-width:116px;height:45px;padding:0 13px;color:#607089;white-space:nowrap;border:0;border-radius:6px 6px 0 0;background:transparent}.storage-param-source-nav button:after{content:"";position:absolute;right:10px;bottom:-1px;left:10px;height:2px;border-radius:2px;background:transparent;transform:scaleX(.4);transition:transform .16s ease,background .16s ease}.storage-param-source-nav button:hover{color:#254366;background:#f7f9fc}.storage-param-source-nav button.active{color:#155ed4;font-weight:650;background:#f5f8ff}.storage-param-source-nav button.active:after{background:#2f6bff;transform:scaleX(1)}.storage-param-source-nav button>i,.storage-param-source-badge:before{width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:#64748b}.storage-param-source-nav button>i.pcs,.storage-param-source-badge.pcs:before{background:#2563eb}.storage-param-source-nav button>i.bms,.storage-param-source-badge.bms:before{background:#8b5cf6}.storage-param-source-nav button>i.meter,.storage-param-source-badge.meter:before{background:#0ea5a5}.storage-param-source-nav button>i.thermal,.storage-param-source-badge.thermal:before{background:#0891b2}.storage-param-source-nav button>i.fire,.storage-param-source-badge.fire:before{background:#e05858}.storage-param-source-nav button>i.ems,.storage-param-source-badge.ems:before{background:#128263}.storage-param-source-nav button>i.all{background:#94a3b8}.storage-param-source-nav button span{overflow:hidden;text-overflow:ellipsis}.storage-param-source-nav button strong{margin-left:auto;min-width:23px;padding:2px 6px;color:#6b778b;font-size:11px;text-align:center;border-radius:999px;background:#edf1f6}.storage-param-source-nav button.active strong{color:#155ed4;background:#e5edff}.storage-param-toolbar{display:grid;grid-template-columns:minmax(300px,1fr) auto auto auto;align-items:center;gap:10px;padding:13px 18px;border-bottom:1px solid #edf1f6;background:#fbfcfe}.storage-param-search{position:relative;max-width:540px}.storage-param-search>span{position:absolute;left:12px;top:50%;color:#8a97aa;transform:translateY(-50%)}.storage-param-search input{width:100%;height:36px;padding:0 34px;color:#172033;border:1px solid #cfd8e6;border-radius:5px;background:#fff;outline:none}.storage-param-search input:focus{border-color:#2f6bffa6;box-shadow:0 0 0 3px #2f6bff14}.storage-param-search button{position:absolute;right:7px;top:50%;width:24px;height:24px;padding:0;color:#8a97aa;border:0;border-radius:50%;background:transparent;transform:translateY(-50%)}.storage-param-filter-group{display:inline-flex;padding:3px;border:1px solid #d8e0eb;border-radius:6px;background:#fff}.storage-param-filter-group button,.storage-param-sort{height:28px;padding:0 11px;color:#64748b;white-space:nowrap;border:0;border-radius:4px;background:transparent}.storage-param-filter-group button.active{color:#1d4ed8;background:#edf3ff}.storage-param-priority{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 11px;color:#4b5b72;white-space:nowrap;border:1px solid #d8e0eb;border-radius:5px;background:#fff}.storage-param-priority input{width:14px;height:14px;accent-color:#2563eb}.storage-param-sort{height:36px;border:1px solid #d8e0eb;background:#fff}.storage-param-table-wrap{max-height:620px;overflow:auto}.storage-param-table{width:100%;border-collapse:collapse;table-layout:fixed}.storage-param-table th{position:sticky;top:0;z-index:2;height:43px;padding:0 16px;color:#68758a;text-align:left;font-size:12px;font-weight:600;border-bottom:1px solid #e5eaf1;background:#f7f9fc}.storage-param-table td{height:62px;padding:8px 16px;color:#253047;border-bottom:1px solid #edf1f6;vertical-align:middle}.storage-param-table th:nth-child(1){width:17%}.storage-param-table th:nth-child(2){width:25%}.storage-param-table th:nth-child(3){width:17%}.storage-param-table th:nth-child(4){width:13%}.storage-param-table th:nth-child(5){width:20%}.storage-param-table th:nth-child(6){width:8%}.storage-param-table tbody tr{transition:background-color .13s ease,box-shadow .13s ease}.storage-param-table tbody tr:hover{background:#f8faff;box-shadow:inset 3px 0 #2f6bff}.storage-param-table tbody tr.abnormal{background:snow}.storage-param-table td>small{display:block;margin-top:5px;overflow:hidden;color:#8995a8;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.storage-param-source-badge{display:inline-flex;align-items:center;gap:7px;max-width:100%;padding:4px 9px;color:#40506a;font-size:12px;font-weight:650;border:1px solid #dce3ed;border-radius:4px;background:#f8fafc}.storage-param-source-badge:before{content:""}.storage-param-name{display:block;overflow:hidden;color:#253047;font-size:14px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.storage-param-value{color:#101828;font-size:18px;font-variant-numeric:tabular-nums;font-weight:700}.storage-param-value.missing{color:#9aa5b5;font-weight:500}.storage-param-unit{display:inline!important;margin:0 0 0 5px!important;color:#718096!important;font-size:12px!important}.storage-param-quality{display:inline-flex;align-items:center;gap:7px;padding:4px 9px;color:#0f7b59;font-size:12px;border-radius:999px;background:#e6f7f0}.storage-param-quality i{width:6px;height:6px;border-radius:50%;background:currentColor}.storage-param-quality.warn{color:#bf5b16;background:#fff1e6}.storage-param-time{color:#40506a;font-size:12px;font-variant-numeric:tabular-nums}.storage-param-configure{padding:5px 10px;color:#2563eb;font-size:12px;border:1px solid #d7e3ff;border-radius:4px;background:#f4f7ff;transition:transform .13s ease,background .13s ease}.storage-param-empty{display:grid;justify-items:center;gap:8px;min-height:260px;align-content:center;color:#8491a5;background:#fbfcfe}.storage-param-empty>span{display:grid;place-items:center;width:42px;height:42px;color:#6d7c92;font-size:20px;border-radius:50%;background:#edf2f7}.storage-param-empty strong{color:#354158;font-size:15px}.storage-param-empty p{margin:0;font-size:12px}.storage-param-empty button{margin-top:4px;padding:6px 12px;color:#2563eb;border:1px solid #d7e3ff;border-radius:4px;background:#f4f7ff}@media(max-width:1500px){.storage-param-summary{grid-template-columns:minmax(220px,.72fr) minmax(430px,1.25fr) auto;gap:15px;padding-right:16px;padding-left:16px}.storage-param-metrics>div{padding:2px 11px}.storage-param-toolbar{grid-template-columns:minmax(260px,1fr) auto auto auto}}.storage-vehicle-selector{display:grid;gap:12px;padding:16px;background:#fff;border:1px solid #e5e9f0;border-radius:8px;box-shadow:var(--shadow)}.storage-vehicle-selector-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.storage-vehicle-selector-head div{display:flex;align-items:baseline;gap:10px}.storage-vehicle-selector-head span,.storage-vehicle-selector-head small,.storage-vehicle-selector-empty span{color:#64748b;font-size:12px}.storage-vehicle-selector-head strong{flex:0 0 auto;color:#111827;font-size:18px;white-space:nowrap}.storage-vehicle-selector-body{display:grid;gap:12px;min-width:0}.storage-vehicle-toolbar{display:grid;grid-template-columns:minmax(240px,1fr) auto;gap:10px;align-items:end;padding:10px;border:1px solid #e5e9f0;border-radius:8px;background:#f8fafc}.storage-vehicle-toolbar label{display:grid;gap:5px;color:#64748b;font-size:12px}.storage-vehicle-toolbar input[type=search]{width:100%;height:34px;min-width:0;padding:0 10px;color:#111827;border:1px solid #cbd5e1;border-radius:4px;background:#fff;outline:none}.storage-vehicle-toolbar input[type=search]:focus{border-color:#2f6bff8c;box-shadow:0 0 0 2px #2f6bff1a}.storage-vehicle-priority-toggle{height:34px;display:inline-flex!important;grid-auto-flow:column;align-items:center;justify-content:center;gap:7px!important;padding:0 12px;color:#334155!important;white-space:nowrap;border:1px solid #cbd5e1;border-radius:4px;background:#fff}.storage-vehicle-priority-toggle input{width:14px;height:14px;accent-color:#128263}.storage-vehicle-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.storage-vehicle-summary>span,.storage-vehicle-summary>button{display:flex;align-items:center;justify-content:space-between;min-width:0;padding:9px 11px;color:#64748b;font-size:12px;border:1px solid #e5e9f0;border-radius:6px;background:#f8fafc}.storage-vehicle-summary>button{text-align:left}.storage-vehicle-summary>button.active{color:#1767a8;border-color:#2f6bff61;background:#eff6ff}.storage-vehicle-summary strong{color:#111827;font-size:18px}.storage-vehicle-selector-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:10px}.storage-vehicle-monitor__left .storage-vehicle-selector-list{grid-template-columns:minmax(0,1fr)}.storage-vehicle-selector.compact{gap:0;padding:0;overflow:hidden}.storage-vehicle-selector.compact .storage-vehicle-selector-head{min-height:44px;padding:9px 12px;border-bottom:1px solid #edf1f6}.storage-vehicle-selector.compact .storage-vehicle-selector-head div{gap:8px}.storage-vehicle-selector.compact .storage-vehicle-selector-head small{overflow:hidden;max-width:150px;text-align:right;text-overflow:ellipsis;white-space:nowrap}.storage-vehicle-selector.compact .storage-vehicle-selector-body{gap:0}.storage-vehicle-selector.compact .storage-vehicle-toolbar{margin:0;padding:7px 10px;border:0;border-bottom:1px solid #edf1f6;border-radius:0;background:#fff}.storage-vehicle-selector.compact .storage-vehicle-toolbar label>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.storage-vehicle-selector.compact .storage-vehicle-toolbar .storage-vehicle-priority-toggle>span{position:static;width:auto;height:auto;overflow:visible;clip:auto}.storage-vehicle-selector.compact .storage-vehicle-summary{gap:4px;padding:0 10px 7px}.storage-vehicle-selector.compact .storage-vehicle-summary>button{min-height:30px;padding:5px 6px;font-size:11px}.storage-vehicle-selector.compact .storage-vehicle-summary strong{font-size:14px}.storage-vehicle-selector-compact-content{display:grid;min-width:0}.storage-vehicle-selector-table-head,.storage-vehicle-selector-row{display:grid;grid-template-columns:minmax(0,1fr) 46px 70px;gap:7px;align-items:center}.storage-vehicle-selector-table-head{min-height:28px;padding:4px 12px;color:#8491a4;font-size:11px;background:#fafbfd;border-top:1px solid #edf1f6;border-bottom:1px solid #edf1f6}.storage-vehicle-selector-table{max-height:min(480px,calc(100vh - 300px));overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.storage-vehicle-selector-row{width:100%;min-height:48px;padding:6px 12px;color:#111827;text-align:left;border:0;border-bottom:1px solid #edf1f6;background:#fff}.storage-vehicle-selector-row:hover{background:#f8fafc}.storage-vehicle-selector-row.alarm{background:#fff7f7}.storage-vehicle-selector-row.offline{background:#fef2f2}.storage-vehicle-selector-row.active,.storage-vehicle-selector-row.active.alarm,.storage-vehicle-selector-row.active.offline{background:#eefaf6;box-shadow:inset 3px 0 #128263}.storage-vehicle-selector-identity{min-width:0}.storage-vehicle-selector-identity strong,.storage-vehicle-selector-identity small,.storage-vehicle-selector-machine{display:block;overflow:hidden;min-width:0;text-overflow:ellipsis;white-space:nowrap}.storage-vehicle-selector-identity strong{color:#111827;font-size:12px}.storage-vehicle-selector-identity small{min-width:0;display:flex;align-items:center;gap:5px;margin-top:2px;color:#8491a4;font-size:10px}.storage-vehicle-selector-row .storage-vehicle-selector-status{flex:0 0 auto;max-width:100%;padding:1px 5px;font-size:10px}.storage-vehicle-selector-row>b{overflow:hidden;color:#111827;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.storage-vehicle-selector-pagination{min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px;color:#64748b;border-top:1px solid #e5e9f0;background:#fff;font-size:10px}.storage-vehicle-selector-pagination>div{display:flex;gap:3px}.storage-vehicle-selector-pagination button{min-width:24px;height:24px;padding:0 5px;color:#475569;border:1px solid #d8e0eb;border-radius:4px;background:#fff}.storage-vehicle-selector-pagination button.active{color:#fff;border-color:#2563eb;background:#2563eb}.storage-vehicle-selector-pagination button:disabled{cursor:not-allowed;opacity:.42}.storage-vehicle-selector-card{min-width:0;min-height:112px;display:grid;gap:7px;justify-items:start;padding:13px 14px;color:#111827;text-align:left;border:1px solid #dbe3ee;border-radius:8px;background:#f8fafc}.storage-vehicle-selector-card.alarm{border-color:#dc262659;background:#fff5f5}.storage-vehicle-selector-card.offline{border-color:#fecaca;background:#fef2f2}.storage-vehicle-selector-card.active,.storage-vehicle-selector-card.active.alarm,.storage-vehicle-selector-card.active.offline{border-color:#128263;background:#eefaf6;box-shadow:inset 0 0 0 1px #1282632e}.storage-vehicle-selector-card strong{max-width:100%;font-size:15px;overflow-wrap:anywhere;white-space:normal}.storage-vehicle-selector-card small,.storage-vehicle-selector-card em{max-width:100%;color:#64748b;font-size:12px;font-style:normal;overflow-wrap:anywhere;white-space:normal}.storage-vehicle-selector-card>div{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.storage-vehicle-selector-card>div span{min-width:0;display:grid;gap:2px;color:#64748b;font-size:12px;overflow-wrap:anywhere}.storage-vehicle-selector-card b{color:#111827;font-size:14px}.storage-vehicle-selector-badges{display:flex;flex-wrap:wrap;gap:6px;min-width:0}.storage-vehicle-selector-status,.storage-vehicle-selector-alert{padding:2px 8px;color:#128263;font-size:12px;border-radius:999px;background:#dff7ed}.storage-vehicle-selector-alert,.storage-vehicle-selector-card.alarm .storage-vehicle-selector-alert,.storage-vehicle-selector-card.alarm .storage-vehicle-selector-status,.storage-vehicle-selector-card.offline .storage-vehicle-selector-status,.storage-vehicle-selector-row.offline .storage-vehicle-selector-status{color:#b91c1c;background:#fee2e2}.storage-vehicle-selector-empty{display:grid;gap:4px;padding:12px;border:1px dashed #cbd5e1;border-radius:8px;background:#f8fafc}.storage-vehicle-selector-empty button{width:max-content;margin-top:4px;padding:6px 10px;color:var(--blue);border:1px solid rgba(47,107,255,.25);border-radius:4px;background:#eff6ff}.storage-overview-grid{display:grid;grid-template-columns:repeat(3,minmax(210px,1fr)) minmax(330px,.9fr);gap:16px}.storage-kpi,.storage-health-card,.storage-site-card,.storage-map-card,.storage-chart-card,.storage-realtime-card,.storage-device-card{border:1px solid #f0f1f5;border-radius:8px;background:#fff;box-shadow:var(--shadow)}.storage-kpi{position:relative;min-height:154px;padding:22px 24px;text-align:left;overflow:hidden}.storage-kpi:after{content:"";position:absolute;right:24px;top:26px;width:70px;height:70px;border-radius:50%;background:#eaf2ff}.storage-kpi.charge:after{background:#fff4dd}.storage-kpi.discharge:after{background:#e5f2ff}.storage-kpi.income:after{background:#ffe8ef}.storage-kpi span,.storage-kpi em{display:block;color:#64748b;font-style:normal}.storage-kpi strong{display:block;margin-top:24px;color:#111827;font-size:34px;line-height:1}.storage-kpi small{color:#475569;font-size:16px}.storage-kpi em{margin-top:18px}.storage-health-card{min-height:154px;padding:18px 20px}.storage-health-head,.storage-panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.storage-health-head button{color:#8d95a3}.storage-health-body{display:grid;grid-template-columns:126px 1fr;gap:16px;align-items:center;margin-top:16px}.storage-pie{position:relative;width:116px;height:116px;display:grid;place-content:center;color:#111827;border-radius:50%;background:conic-gradient(#e8edf3 0 100%);isolation:isolate}.storage-pie:before{content:"";position:absolute;inset:15px;z-index:0;border-radius:50%;background:#fff}.storage-pie span,.storage-pie small{position:relative;z-index:1;display:block;text-align:center}.storage-pie span{font-size:28px;font-weight:800}.storage-health-counts{display:grid;gap:10px}.storage-health-counts div{display:grid;grid-template-columns:9px minmax(72px,1fr) auto;align-items:center;gap:8px}.storage-health-counts b{font-size:22px;line-height:1;text-align:right}.storage-health-counts span{color:#64748b}.storage-health-dot{width:8px;height:8px;border-radius:50%}.storage-health-dot.online{background:#22b573}.storage-health-dot.offline{background:#aab4c3}.storage-health-dot.abnormal{background:#f97316}.storage-health-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.storage-health-list button{min-height:34px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 10px;text-align:left;background:#f8fafc}.storage-health-list b.normal{color:#16a34a}.storage-health-list b.warn{color:#f59e0b}.storage-health-list b.unknown{color:#94a3b8}.storage-main-grid{display:grid;grid-template-columns:minmax(680px,1fr) minmax(330px,.34fr);gap:16px}.storage-main-grid-single{grid-template-columns:1fr}.storage-main-grid.lower{grid-template-columns:minmax(620px,1fr) minmax(430px,.72fr)}.storage-chart-card,.storage-site-card,.storage-map-card,.storage-realtime-card,.storage-device-card{padding:20px 24px}.storage-panel-head h2{margin:0;font-size:16px}.storage-panel-head h2:after{content:"";display:inline-block;width:14px;height:2px;margin-left:3px;vertical-align:baseline;background:#2f6bff}.storage-panel-head p{margin:8px 0 0;color:#8d95a3}.storage-range{display:flex;gap:8px}.storage-range button{color:#64748b;border:1px solid #e5e7eb;background:#fff}.storage-range button.active{color:#1677ff;border-color:#bfdbfe;background:#eff6ff}.storage-chart{height:300px;display:grid;grid-template-columns:44px 1fr;gap:12px;margin-top:20px;padding:12px 10px 0 0;border-bottom:1px solid #d8dde6;background:linear-gradient(#eef2f7 1px,transparent 1px) 0 20px / 100% 56px}.storage-axis{display:grid;height:250px;color:#8d95a3;font-size:12px;text-align:right}.storage-bars{height:250px;display:grid;grid-template-columns:repeat(7,minmax(56px,1fr));align-items:end;gap:14px}.storage-bar-group{height:250px;display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:5px;position:relative}.storage-bar-group i{display:block;min-height:2px;border-radius:8px 8px 0 0}.storage-bar-group .charge{background:#35c66b}.storage-bar-group .discharge{background:#35a9f4}.storage-bar-group span{position:absolute;left:50%;bottom:-26px;color:#8d95a3;font-size:12px;transform:translate(-50%)}.storage-site-card .storage-panel-head{margin-bottom:16px}.storage-site-visual{height:150px;display:grid;place-items:center;margin-bottom:16px;color:#1f4c75;font-weight:800;border-radius:6px;background:linear-gradient(90deg,transparent 0 18%,rgba(255,255,255,.58) 18% 22%,transparent 22%),repeating-linear-gradient(90deg,#255b8c 0 54px,#f4f7fb 54px 64px,#2f6f9e 64px 118px)}.storage-site-card>strong{display:block;color:#1767a8;line-height:1.5}.storage-site-card dl{display:grid;gap:9px;margin:14px 0 0}.storage-site-card dl div{display:grid;grid-template-columns:76px 1fr;gap:10px}.storage-site-card dt{color:#8d95a3}.storage-site-card dd{margin:0;color:#374151}.storage-map-card .storage-panel-head{margin-bottom:16px}.storage-location-card{padding:20px 24px 24px}.storage-location-layout{display:grid;grid-template-columns:minmax(760px,1fr) minmax(300px,360px);gap:18px;align-items:stretch}.storage-mapbox-wrap{position:relative;min-height:460px;overflow:hidden;border:1px solid #d6e2f2;border-radius:6px;background:linear-gradient(135deg,#eef6ff,#dceeff 52%,#edf7f0);box-shadow:inset 0 0 0 1px #ffffff6b}.storage-mapbox-wrap:fullscreen,.storage-mapbox-wrap:-webkit-full-screen{width:100vw;height:100vh;min-height:100vh;border:0;border-radius:0}.storage-mapbox-canvas,.storage-mapbox-canvas .maplibregl-canvas{position:absolute;inset:0;width:100%;height:100%}.storage-mapbox-canvas .maplibregl-canvas{outline:none}.storage-mapbox-canvas{z-index:1}.storage-osm-tile-layer,.lighting-osm-tile-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none;background:#e9f4f1}.storage-osm-tile-layer{z-index:0}.lighting-osm-tile-layer{z-index:1}.storage-osm-tile-layer img,.lighting-osm-tile-layer img{position:absolute;max-width:none;-webkit-user-select:none;user-select:none}.storage-osm-tile-layer img{transform:none}.lighting-osm-tile-layer img{transform:translate(-50%,-50%)}.storage-static-map-layer{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:.62;transition:opacity .18s ease}.storage-mapbox-wrap.ready .storage-static-map-layer{opacity:0}.storage-map-data-source{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:-4px 0 14px}.storage-map-data-source div{min-width:0;padding:9px 10px;border:1px solid #eef0f4;border-radius:6px;background:#f8fafc}.storage-map-data-source span,.storage-map-data-source strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.storage-map-data-source span{color:#64748b;font-size:12px}.storage-map-data-source strong{margin-top:5px;color:#111827;font-size:13px}.static-grid,.static-road,.static-radius{position:absolute;display:block;pointer-events:none}.static-grid{background:#3b82f624}.static-grid.horizontal{left:0;right:0;height:1px}.static-grid.horizontal.one{top:34%}.static-grid.horizontal.two{top:66%}.static-grid.vertical{top:0;bottom:0;width:1px}.static-grid.vertical.one{left:33%}.static-grid.vertical.two{left:67%}.static-road{border-radius:999px;background:#2563eb3d;box-shadow:0 0 0 4px #ffffff6b,0 10px 24px #2563eb14}.static-road.primary{left:-8%;right:-8%;top:55%;height:14px;transform:rotate(-9deg)}.static-road.secondary{left:46%;top:4%;width:12px;height:96%;background:#16a34a33;transform:rotate(13deg)}.static-road.branch{left:20%;right:22%;top:43%;height:9px;background:#0ea5e92e;transform:rotate(22deg)}.static-radius{left:39%;top:34%;width:170px;height:170px;border:1px solid rgba(34,197,94,.24);border-radius:50%;background:radial-gradient(circle,#22c55e1f,#22c55e00 68%)}.storage-mapbox-wrap .maplibregl-ctrl-bottom-right{right:14px;bottom:14px;z-index:7}.storage-mapbox-wrap .maplibregl-ctrl-bottom-left{left:14px;bottom:12px;z-index:7}.storage-mapbox-wrap .maplibregl-ctrl-top-right{top:14px;right:14px;z-index:7}.storage-dispatch-map .storage-mapbox-wrap .maplibregl-ctrl-top-right{top:64px}.storage-mapbox-wrap .maplibregl-ctrl-group{overflow:hidden;border:1px solid rgba(148,163,184,.28);border-radius:6px;background:#0f172ac7;box-shadow:0 12px 28px #02061738}.storage-mapbox-wrap .maplibregl-ctrl-group button{filter:invert(1) grayscale(1)}.storage-mapbox-wrap .maplibregl-ctrl-group button:disabled{cursor:not-allowed;opacity:.35}.openfreemap-mode-switch{position:absolute;z-index:8;top:18px;left:50%;display:inline-flex;overflow:hidden;padding:3px;border:1px solid rgba(148,163,184,.3);border-radius:8px;background:#0f172ad1;box-shadow:0 12px 28px #0206173d;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transform:translate(-50%)}.openfreemap-mode-switch button{height:30px;padding:0 12px;color:#cbd5e1;border:0;border-radius:5px;background:transparent;font-size:12px;font-weight:600;cursor:pointer}.openfreemap-mode-switch button:hover{color:#fff;background:#3b82f633}.openfreemap-mode-switch button.active{color:#fff;background:#2563eb;box-shadow:0 4px 12px #2563eb57}.lighting-mapbox-wrap.is-3d{box-shadow:inset 0 0 0 1px #ffffff6b,0 0 0 1px #2563eb29}.storage-map-zoom-limit{position:absolute;z-index:7;top:18px;right:68px;padding:7px 10px;color:#dbeafe;font-size:12px;line-height:1;pointer-events:none;border:1px solid rgba(147,197,253,.28);border-radius:5px;background:#0f172ad1;box-shadow:0 8px 20px #02061733}.storage-mapbox-shade{position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.06),transparent 18%,transparent 82%,rgba(15,23,42,.05))}.storage-mapbox-status{position:absolute;z-index:4;left:18px;top:18px;display:inline-flex;align-items:center;gap:10px;padding:9px 12px;color:#dbeafe;border:1px solid rgba(147,197,253,.28);border-radius:6px;background:#0f172ac7;box-shadow:0 14px 34px #02061742;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.storage-mapbox-status span{color:#93c5fd;font-size:12px}.storage-mapbox-status strong{color:#f8fafc;font-size:13px}.storage-mapbox-fleet-warning{position:absolute;z-index:7;left:18px;top:64px;max-width:360px;padding:8px 11px;color:#fef3c7;font-size:12px;border:1px solid rgba(251,191,36,.36);border-radius:6px;background:#451a03d1;box-shadow:0 12px 28px #02061738;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.storage-dispatch-map .storage-mapbox-status{top:64px}.storage-dispatch-map .storage-mapbox-fleet-warning{top:110px}.storage-dispatch-map .storage-mapbox-wrap.has-filter-panel .storage-mapbox-status{top:120px}.storage-dispatch-map .storage-mapbox-wrap.has-filter-panel .storage-mapbox-fleet-warning{top:166px}.storage-map-locate-control{position:absolute;right:16px;bottom:18px;z-index:7;display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 12px;color:#eff6ff;border:1px solid rgba(147,197,253,.42);border-radius:6px;background:#0f172ad1;box-shadow:0 10px 26px #0206173d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.storage-map-locate-control:hover{border-color:#93c5fdc7;background:#1e40afe0}.storage-map-locate-control span{color:#86efac;font-size:18px;line-height:1}.storage-mapbox-wrap.has-panel .storage-map-locate-control{display:none}.storage-mapbox-error{position:absolute;left:18px;top:64px;z-index:3;display:grid;gap:4px;max-width:330px;padding:10px 12px;color:#dbeafe;border:1px solid rgba(251,191,36,.34);border-radius:6px;background:#1e293bd6;box-shadow:0 14px 34px #02061738}.storage-mapbox-error strong{color:#fef3c7}.storage-mapbox-error span{color:#cbd5e1;font-size:12px}.storage-vehicle-mapbox-marker-anchor{--vehicle-state-color: #ffd52f;--vehicle-state-rgb: 255, 213, 47;width:146px;height:58px;z-index:6}.storage-vehicle-mapbox-marker-anchor.is-charging{--vehicle-state-color: #35def2;--vehicle-state-rgb: 53, 222, 242}.storage-vehicle-mapbox-marker-anchor.is-discharging{--vehicle-state-color: #86bfff;--vehicle-state-rgb: 134, 191, 255}.storage-vehicle-mapbox-marker-anchor.is-idle,.storage-vehicle-mapbox-marker-anchor.is-unknown,.storage-vehicle-mapbox-marker-anchor.is-unreported{--vehicle-state-color: #ffd52f;--vehicle-state-rgb: 255, 213, 47}.storage-vehicle-mapbox-marker-anchor.is-offline{--vehicle-state-color: #ff5b72;--vehicle-state-rgb: 255, 91, 114}.storage-vehicle-mapbox-marker-anchor.is-selected .storage-vehicle-mapbox-marker strong{color:#fff;border-color:transparent;background:transparent;box-shadow:none;text-shadow:0 1px 4px rgba(2,6,23,.96),0 0 8px rgba(var(--vehicle-state-rgb),.56)}.storage-vehicle-mapbox-marker-anchor.is-offline:not(.is-selected){opacity:.7;filter:grayscale(.45)}.storage-vehicle-mapbox-marker,.storage-vehicle-fallback-marker{position:relative;z-index:6;display:grid;justify-items:center;gap:0;min-width:146px;padding:0;color:#f8fafc;text-align:center;border:0;background:transparent;box-shadow:none;cursor:pointer;transition:transform .16s ease}.storage-vehicle-mapbox-marker{display:block;width:146px;height:58px}.storage-vehicle-mapbox-marker:after,.storage-vehicle-fallback-marker:after{content:"";position:absolute;left:50%;top:39px;z-index:-1;width:88px;height:22px;border:2px solid rgba(248,113,113,.58);border-radius:50%;box-shadow:0 0 12px #ef444485,inset 0 0 8px #ef444433;transform:translate(-50%)}.storage-vehicle-mapbox-marker:before,.storage-vehicle-fallback-marker:before{content:"";position:absolute;left:50%;top:0;z-index:3;width:106px;height:58px;pointer-events:none;background:var(--vehicle-state-color, #ffd52f);-webkit-mask:url(/mobile-storage-truck-45deg.png) center / contain no-repeat;mask:url(/mobile-storage-truck-45deg.png) center / contain no-repeat;clip-path:polygon(68% 21%,85% 17%,95% 26%,100% 28%,100% 92%,66% 92%,66% 38%,68% 38%,68% 28%);mix-blend-mode:color;opacity:.78;transform:translate(-50%)}.storage-vehicle-fallback-marker.is-charging{--vehicle-state-color: #35def2;--vehicle-state-rgb: 53, 222, 242}.storage-vehicle-fallback-marker.is-discharging{--vehicle-state-color: #86bfff;--vehicle-state-rgb: 134, 191, 255}.storage-vehicle-fallback-marker.is-idle,.storage-vehicle-fallback-marker.is-unknown,.storage-vehicle-fallback-marker.is-unreported{--vehicle-state-color: #ffd52f;--vehicle-state-rgb: 255, 213, 47}.storage-vehicle-mapbox-marker-anchor.is-charging .storage-vehicle-mapbox-marker:after{border-color:#35def2c2;box-shadow:0 0 12px #35def294,inset 0 0 8px #35def238}.storage-vehicle-mapbox-marker-anchor.is-discharging .storage-vehicle-mapbox-marker:after{border-color:#86bfffc7;box-shadow:0 0 12px #86bfff94,inset 0 0 8px #86bfff38}.storage-vehicle-mapbox-marker-anchor.is-idle .storage-vehicle-mapbox-marker:after,.storage-vehicle-mapbox-marker-anchor.is-unknown .storage-vehicle-mapbox-marker:after,.storage-vehicle-mapbox-marker-anchor.is-unreported .storage-vehicle-mapbox-marker:after{border-color:#ffd52fc2;box-shadow:0 0 10px #ffd52f85,inset 0 0 8px #ffd52f33}.storage-vehicle-mapbox-marker:hover,.storage-vehicle-fallback-marker:hover{transform:translateY(-2px)}.storage-vehicle-mapbox-marker strong,.storage-vehicle-fallback-marker strong{position:relative;z-index:2;display:block;min-width:0;padding:4px 8px;font-size:14px;font-weight:700;line-height:1.2;border:0;border-radius:0;background:transparent;box-shadow:none;text-shadow:0 1px 4px rgba(2,6,23,.96),0 0 7px rgba(15,23,42,.7);white-space:nowrap}.storage-vehicle-mapbox-marker strong{position:absolute;top:56px;left:50%;transform:translate(-50%)}.storage-vehicle-fallback-marker{position:absolute;left:46%;top:54%;z-index:4;transform:translate(-50%,-100%)}.storage-vehicle-fallback-marker:hover{transform:translate(-50%,calc(-100% - 2px))}.storage-vehicle-icon{position:relative;z-index:2;display:block;width:106px;height:58px;flex:0 0 auto;margin-bottom:-2px;object-fit:contain;filter:drop-shadow(0 6px 6px rgba(2,6,23,.48))}.storage-vehicle-panel{position:absolute;right:18px;top:52px;bottom:18px;z-index:9;width:min(600px,calc(100% - 36px));display:grid;align-content:start;gap:12px;padding:18px;overflow-y:auto;color:#e2e8f0;border:1px solid rgba(148,163,184,.28);border-radius:8px;background:linear-gradient(180deg,#0f172af0,#0f172adb);box-shadow:0 24px 58px #0206175c;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.storage-vehicle-panel-head{display:grid;grid-template-columns:96px minmax(0,1fr) 30px;align-items:flex-start;gap:12px}.storage-vehicle-panel-head>img{width:92px;height:52px;object-fit:contain;filter:drop-shadow(0 7px 7px rgba(2,6,23,.56))}.storage-vehicle-panel-head span,.storage-vehicle-position span,.storage-vehicle-status-grid>div>span{display:block;color:#94a3b8;font-size:12px}.storage-vehicle-panel-head strong{display:block;margin-top:4px;color:#f8fafc;font-size:16px;line-height:1.35}.storage-vehicle-panel-head small{display:block;overflow:hidden;margin-top:4px;color:#93c5fd;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.storage-vehicle-panel-head button{width:28px;height:28px;flex:0 0 auto;color:#cbd5e1;border:1px solid rgba(148,163,184,.26);border-radius:6px;background:#0f172aad}.storage-vehicle-panel p{margin:0;color:#bfdbfe;line-height:1.5}.storage-vehicle-panel-state{padding:8px 10px;color:#bfdbfe;font-size:12px;border:1px solid rgba(96,165,250,.24);border-radius:6px;background:#1e40af2e}.storage-vehicle-panel-state.is-error{color:#fecaca;border-color:#f8717152;background:#7f1d1d38}.storage-vehicle-meta-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}.storage-vehicle-meta-grid>div{min-width:0;padding:9px 10px;border:1px solid rgba(148,163,184,.2);border-radius:6px;background:#1e293b80}.storage-vehicle-meta-grid span{display:block;color:#94a3b8;font-size:11px}.storage-vehicle-meta-grid strong{display:block;overflow:hidden;margin-top:4px;color:#e2e8f0;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.storage-vehicle-position{display:grid;gap:4px;padding:10px 12px;border:1px solid rgba(96,165,250,.24);border-radius:6px;background:#1e293b9e}.storage-vehicle-position strong{overflow:hidden;color:#f8fafc;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.storage-vehicle-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.storage-vehicle-status-grid div{min-width:0;padding:9px 10px;border:1px solid rgba(148,163,184,.2);border-radius:6px;background:#0f172a94}.storage-vehicle-status-grid strong{display:block;overflow:hidden;margin-top:5px;color:#f8fafc;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.storage-vehicle-status-grid strong>.unit-text{display:inline-flex;max-width:100%;align-items:baseline;white-space:nowrap}.storage-vehicle-status-grid .normal strong{color:#86efac}.storage-vehicle-status-grid .warn strong{color:#fde68a}.storage-vehicle-panel-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.storage-vehicle-panel-actions>button{height:36px;color:#f8fafc;border-radius:6px;background:#2563eb}.storage-vehicle-panel-actions>button:last-child{border:1px solid rgba(96,165,250,.46);background:#1e40af59}.storage-map{position:relative;height:176px;overflow:hidden;border:1px solid #e5edf7;border-radius:6px;background:linear-gradient(90deg,rgba(148,163,184,.18) 1px,transparent 1px) 0 0 / 54px 54px,linear-gradient(rgba(148,163,184,.16) 1px,transparent 1px) 0 0 / 54px 54px,#f8fbff}.storage-map-large{height:420px;border-color:#d8e5f5;background:radial-gradient(circle at 42% 56%,rgba(22,163,74,.12),transparent 0 10%,transparent 20%),linear-gradient(90deg,rgba(148,163,184,.18) 1px,transparent 1px) 0 0 / 66px 66px,linear-gradient(rgba(148,163,184,.16) 1px,transparent 1px) 0 0 / 66px 66px,#f8fbff}.storage-map:before{content:"";position:absolute;inset:18px 22px;border:1px solid rgba(47,107,255,.12);border-radius:50%}.map-road{position:absolute;display:block;height:10px;border-radius:999px;background:#2f6bff47}.storage-map-large:before{inset:42px 82px;border-color:#2f6bff24}.storage-map-large .map-road{height:14px}.map-road.main{left:-22px;right:-18px;top:92px;transform:rotate(-12deg)}.storage-map-large .map-road.main{left:-54px;right:-42px;top:248px;transform:rotate(-11deg)}.map-road.branch{width:230px;left:82px;top:76px;background:#16a34a3d;transform:rotate(44deg)}.storage-map-large .map-road.branch{width:500px;left:35%;top:176px;background:#16a34a38;transform:rotate(45deg)}.map-road.ring{height:auto;inset:70px 6% 58px 16%;border:1px solid rgba(47,107,255,.14);border-radius:50%;background:transparent}.map-road.spur{width:280px;left:12%;top:142px;background:#0ea5e92e;transform:rotate(18deg)}.map-zone{position:absolute;display:grid;place-items:center;width:64px;height:28px;color:#64748b;font-size:12px;font-style:normal;border:1px solid #dbeafe;border-radius:999px;background:#ffffffd6}.map-zone.north{left:28px;top:24px}.map-zone.west{left:74px;top:142px}.map-zone.east{right:112px;top:96px}.map-zone.south{right:24px;bottom:22px}.storage-map-large .map-zone.north{left:58px;top:42px}.storage-map-large .map-zone.south{right:72px;bottom:46px}.storage-map-marker{position:absolute;z-index:2;min-width:92px;display:grid;grid-template-columns:18px 1fr;gap:2px 7px;align-items:center;padding:8px 10px;color:#0f172a;text-align:left;border:1px solid rgba(22,163,74,.32);border-radius:6px;background:#fffffff0;box-shadow:0 12px 28px #0f172a29;transform:translate(-50%,-86%)}.storage-map-large .storage-map-marker{min-width:134px;grid-template-columns:22px 1fr;gap:3px 9px;padding:11px 13px;border-color:#16a34a6b}.storage-map-marker span{width:16px;height:16px;grid-row:span 2;border:4px solid #fff;border-radius:50%;background:#16a34a;box-shadow:0 0 0 2px #16a34a5c}.storage-map-large .storage-map-marker span{width:19px;height:19px}.storage-map-marker strong,.storage-map-marker small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.storage-map-marker strong{font-size:13px}.storage-map-marker small{color:#64748b;font-size:12px}.storage-map-position{position:absolute;left:24px;bottom:22px;display:grid;gap:5px;padding:10px 12px;color:#475569;border:1px solid rgba(203,213,225,.72);border-radius:6px;background:#ffffffe0;box-shadow:0 10px 24px #0f172a14}.storage-map-position span{font-size:12px}.storage-map-position strong{color:#0f172a;font-size:13px}.storage-location-side{min-width:0;display:flex;flex-direction:column;justify-content:space-between;gap:18px}.storage-location-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}.storage-location-meta div{min-width:0;padding:9px 10px;border:1px solid #eef0f4;border-radius:6px;background:#f8fafc}.storage-location-meta span,.storage-location-meta strong{display:block}.storage-location-meta span{color:#64748b;font-size:12px}.storage-location-meta strong{overflow:hidden;margin-top:5px;color:#111827;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.storage-location-side>strong{display:block;color:#1767a8;font-size:16px;line-height:1.5}.storage-location-side dl{display:grid;gap:10px;margin:0}.storage-location-side dl div{display:grid;grid-template-columns:76px 1fr;gap:10px}.storage-location-side dt{color:#8d95a3}.storage-location-side dd{min-width:0;margin:0;color:#374151}.storage-realtime-grid{display:grid;grid-template-columns:repeat(5,minmax(118px,1fr));gap:12px;margin-top:18px}.storage-realtime-grid button{min-height:88px;padding:14px 16px;text-align:left;background:#f8fafc;border:1px solid #eef0f4}.storage-realtime-grid span,.storage-realtime-grid small{color:#64748b}.storage-realtime-grid span,.storage-realtime-grid strong{display:block}.storage-realtime-grid strong{margin-top:12px;font-size:22px}.storage-realtime-grid small{margin-left:4px;font-size:13px}.storage-device-list{display:grid;gap:10px;margin-top:18px}.storage-device-list button{min-height:58px;display:grid;grid-template-columns:12px 1fr 110px;gap:10px;align-items:center;padding:0 14px;text-align:left;border:1px solid #eef0f4;border-radius:6px;background:#fff}.storage-device-list button>span{width:8px;height:8px;border-radius:50%;background:#35c66b}.storage-device-list button>span.offline{background:#cbd5e1}.storage-device-list b{justify-self:end}.storage-device-list small{grid-column:2 / 4;color:#8d95a3}.storage-empty-state{min-height:180px;border-bottom:0;border-radius:8px;background:#f8fafcd1}.storage-twin-workbench{display:grid;gap:16px;padding:16px 0 18px}.storage-twin-toolbar{min-height:86px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px;padding:18px 24px;border:1px solid #f0f1f5;border-radius:8px;background:#fff;box-shadow:var(--shadow)}.storage-twin-toolbar h1{margin:0;overflow:hidden;color:#111827;font-size:22px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.storage-twin-toolbar h1 span{color:#16a34a;font-size:14px}.storage-twin-toolbar p{margin:10px 0 0;overflow:hidden;color:#64748b;text-overflow:ellipsis;white-space:nowrap}.storage-twin-layout{display:grid;grid-template-columns:minmax(620px,1fr) minmax(260px,320px);gap:16px;align-items:stretch}.storage-twin-stage,.storage-twin-side,.storage-twin-thermal-grid,.storage-twin-event-panel{padding:20px 24px;border:1px solid #f0f1f5;border-radius:8px;background:#fff;box-shadow:var(--shadow)}.storage-twin-stage{min-height:540px}.storage-bimface-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.storage-bimface-shell{position:relative;min-height:438px;overflow:hidden;border-radius:8px}.storage-bimface-viewer{position:absolute;inset:0;z-index:3;opacity:0;pointer-events:none;transition:opacity .18s ease}.storage-bimface-shell.ready .storage-bimface-viewer{opacity:1;pointer-events:auto}.storage-bimface-shell.ready .storage-twin-scene{opacity:0;pointer-events:none}.storage-bimface-overlay{position:absolute;left:18px;top:18px;z-index:4;display:grid;gap:4px;max-width:360px;padding:10px 12px;color:#dcfce7;border:1px solid rgba(134,239,172,.24);border-radius:6px;background:#0f172ac7;box-shadow:0 14px 34px #02061742;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.storage-bimface-overlay.warn{color:#fef3c7;border-color:#fbbf2457}.storage-bimface-overlay span,.storage-bimface-overlay small{color:#94a3b8;font-size:12px}.storage-bimface-overlay strong{color:#f8fafc;font-size:13px}.storage-twin-scene{position:relative;min-height:438px;overflow:hidden;border:1px solid rgba(15,23,42,.12);border-radius:8px;background:linear-gradient(90deg,rgba(148,163,184,.12) 1px,transparent 1px) 0 0 / 56px 56px,linear-gradient(rgba(148,163,184,.1) 1px,transparent 1px) 0 0 / 56px 56px,radial-gradient(circle at 34% 42%,rgba(34,197,94,.14),transparent 0 16%,transparent 32%),linear-gradient(145deg,#111827,#0f2f2a 48%,#0f172a)}.storage-twin-energy-flow{position:absolute;inset:34px 38px;z-index:1;pointer-events:none}.storage-twin-energy-flow span{position:absolute;display:block;height:8px;border-radius:999px;opacity:.84;background:linear-gradient(90deg,transparent,#86efac,transparent);filter:drop-shadow(0 0 10px rgba(134,239,172,.34));transform-origin:left center}.storage-twin-energy-flow span:nth-child(1){left:7%;right:14%;top:18%;transform:rotate(4deg) scaleX(calc(var(--flow-level) / 100))}.storage-twin-energy-flow span:nth-child(2){left:13%;right:26%;top:52%;background:linear-gradient(90deg,transparent,#22c55e,transparent);transform:rotate(-2deg) scaleX(calc(var(--flow-level) / 100))}.storage-twin-energy-flow span:nth-child(3){left:48%;right:10%;top:64%;background:linear-gradient(90deg,transparent,#60a5fa,transparent);transform:rotate(11deg) scaleX(calc(var(--flow-level) / 100))}.storage-twin-energy-flow span:nth-child(4){left:18%;right:18%;bottom:15%;background:linear-gradient(90deg,transparent,#fbbf24,transparent);transform:rotate(-8deg) scaleX(calc(var(--flow-level) / 100))}.storage-twin-vehicle{position:absolute;z-index:2;left:50%;top:50%;width:min(660px,calc(100% - 58px));min-height:260px;transform:translate(-50%,-43%)}.storage-twin-cab,.storage-twin-container{position:absolute;bottom:42px;border:1px solid rgba(187,247,208,.32);background:linear-gradient(180deg,#0f172af5,#15803dbd);box-shadow:inset 0 0 0 1px #ffffff14,0 28px 64px #02061761}.storage-twin-cab{left:0;width:148px;height:128px;display:grid;align-content:center;gap:8px;padding:18px;color:#dcfce7;border-radius:12px 22px 10px 10px;clip-path:polygon(0 0,70% 0,100% 34%,100% 100%,0 100%)}.storage-twin-cab span,.storage-twin-container-head span,.storage-twin-readout span,.storage-twin-subsystems span,.storage-twin-location span{color:#94a3b8;font-size:12px}.storage-twin-cab strong{overflow:hidden;color:#f8fafc;font-size:17px;text-overflow:ellipsis;white-space:nowrap}.storage-twin-container{left:134px;right:0;height:196px;padding:18px 22px;border-radius:14px 8px 10px 10px}.storage-twin-container-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:15px}.storage-twin-container-head strong{color:#86efac;font-size:24px}.storage-twin-cell-row{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:8px}.storage-twin-cell-row span{position:relative;height:56px;overflow:hidden;border:1px solid rgba(187,247,208,.28);border-radius:5px;background:#0f172ab3}.storage-twin-cell-row span:before{content:"";position:absolute;left:0;right:0;bottom:0;height:var(--cell-fill);background:linear-gradient(180deg,#86efac,#16a34a);box-shadow:0 0 18px #22c55e57}.storage-twin-cell-row span.warn:before{background:linear-gradient(180deg,#fde68a,#f59e0b)}.storage-twin-cell-row span.full:before{background:linear-gradient(180deg,#bfdbfe,#2563eb)}.storage-twin-cell-row i{position:absolute;inset:9px 6px;border:1px solid rgba(255,255,255,.18);border-radius:3px}.storage-twin-busbar{display:grid;grid-template-columns:88px 1fr 88px;align-items:center;gap:10px;margin:14px 0 12px;color:#bfdbfe;font-size:12px;font-weight:700}.storage-twin-busbar:before,.storage-twin-busbar:after{content:"";height:4px;border-radius:999px;background:#93c5fd6b}.storage-twin-device-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.storage-twin-device-row button,.storage-twin-subsystems button,.storage-twin-flow-list button{min-width:0;text-align:left;border-radius:6px}.storage-twin-device-row button{min-height:56px;display:grid;gap:3px;padding:8px 9px;color:#e2e8f0;border:1px solid rgba(148,163,184,.22);background:#0f172aa3}.storage-twin-device-row button.normal{border-color:#4ade8057}.storage-twin-device-row button.warn{border-color:#fbbf2475}.storage-twin-device-row strong,.storage-twin-device-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.storage-twin-device-row span{color:#93c5fd;font-size:11px;font-weight:700}.storage-twin-device-row strong{color:#f8fafc;font-size:13px}.storage-twin-device-row small{color:#cbd5e1;font-size:12px}.storage-twin-wheels{position:absolute;left:88px;right:64px;bottom:18px;display:flex;justify-content:space-between}.storage-twin-wheels span{width:48px;height:48px;border:7px solid #020617;border-radius:50%;background:radial-gradient(circle,#cbd5e1 0 24%,#334155 25% 42%,#020617 43%);box-shadow:0 10px 22px #0206176b}.storage-twin-readout{position:absolute;left:28px;right:28px;bottom:22px;z-index:3;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.storage-twin-readout div{min-width:0;padding:11px 13px;border:1px solid rgba(148,163,184,.24);border-radius:6px;background:#0f172ac7;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.storage-twin-readout strong{display:block;overflow:hidden;margin-top:6px;color:#f8fafc;font-size:18px;text-overflow:ellipsis;white-space:nowrap}.storage-twin-side{min-height:540px}.storage-twin-subsystems{display:grid;gap:10px}.storage-twin-subsystems button{min-height:86px;display:grid;grid-template-columns:1fr auto;gap:5px 12px;padding:12px 14px;border:1px solid #e6edf5;background:#fff}.storage-twin-subsystems button.normal{border-left:4px solid #22c55e}.storage-twin-subsystems button.warn{border-left:4px solid #f59e0b;background:#fffbeb}.storage-twin-subsystems strong,.storage-twin-subsystems small,.storage-twin-subsystems b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.storage-twin-subsystems span{color:#1677ff;font-weight:700}.storage-twin-subsystems strong{color:#111827;font-size:14px}.storage-twin-subsystems small{grid-column:1 / 3;color:#64748b}.storage-twin-subsystems b{justify-self:end;color:#16a34a}.storage-twin-subsystems button.warn b{color:#b45309}.storage-twin-thermal-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.storage-twin-thermal-list div{min-width:0;padding:14px 16px;border:1px solid #e7edf5;border-radius:6px;background:#f8fafc}.storage-twin-thermal-list div.warn{border-color:#fed7aa;background:#fff7ed}.storage-twin-thermal-list span,.storage-twin-thermal-list strong{display:block}.storage-twin-thermal-list span{color:#64748b}.storage-twin-thermal-list strong{margin-top:10px;color:#111827;font-size:20px}.storage-twin-thermal-list i{display:block;height:7px;margin-top:13px;overflow:hidden;border-radius:999px;background:#e2e8f0}.storage-twin-thermal-list b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#22c55e,#86efac)}.storage-twin-thermal-list .warn b{background:linear-gradient(90deg,#f59e0b,#fcd34d)}.storage-twin-location{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:14px}.storage-twin-location div{min-width:0;padding:10px 12px;border:1px solid #e7edf5;border-radius:6px;background:#f8fafc}.storage-twin-location strong{display:block;overflow:hidden;margin-top:6px;color:#111827;text-overflow:ellipsis;white-space:nowrap}.storage-twin-flow-list{display:grid;gap:8px}.storage-twin-flow-list button{min-height:48px;display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;border:1px solid #e7edf5;background:#fff}.storage-twin-flow-list span{width:9px;height:9px;border-radius:50%;background:#22c55e}.storage-twin-flow-list span.discharge{background:#60a5fa}.storage-twin-flow-list span.charge,.storage-twin-flow-list span.meter{background:#f59e0b}.storage-twin-flow-list strong,.storage-twin-flow-list b{overflow:hidden;color:#111827;text-overflow:ellipsis;white-space:nowrap}.storage-twin-flow-list b{justify-self:end;color:#475569;font-weight:700}.lighting-map-card{padding:20px 24px 24px}.lighting-map-layout{display:grid;grid-template-columns:minmax(720px,1fr) minmax(270px,330px);gap:16px;align-items:stretch}.lighting-mapbox-wrap{position:relative;height:clamp(560px,calc(100vh - 220px),760px);min-height:560px;overflow:hidden;border:1px solid #d9e7ee;border-radius:6px;background:linear-gradient(135deg,#f6fbf8,#e6f5f0 46%,#f7f2df);box-shadow:inset 0 0 0 1px #ffffff75}.lighting-osm-tile-layer{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none;background:#e6f2fb}.lighting-osm-tile-layer img{position:absolute;max-width:none;-webkit-user-select:none;user-select:none}.lighting-static-map-layer{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:.68;transition:opacity .18s ease}.lighting-static-road{border-radius:999px;background:#0f766e38;box-shadow:0 0 0 5px #ffffff6b,0 12px 28px #0f766e14}.lighting-static-road.primary{left:-8%;right:-8%;top:54%;height:16px;transform:rotate(-8deg)}.lighting-static-road.secondary{left:49%;top:0;width:13px;height:100%;background:#2563eb2e;transform:rotate(11deg)}.lighting-static-road.branch{left:18%;right:18%;top:42%;height:10px;background:#f59e0b33;transform:rotate(25deg)}.lighting-static-grid{background:#0f766e1f}.lighting-static-grid.one{left:0;right:0;top:32%;height:1px}.lighting-static-grid.two{top:0;bottom:0;left:66%;width:1px}.lighting-mapbox-wrap .maplibregl-ctrl-bottom-right{right:14px;bottom:14px}.lighting-mapbox-wrap .maplibregl-ctrl-bottom-left{left:14px;bottom:12px}.lighting-mapbox-wrap .maplibregl-ctrl-top-right{top:14px;right:14px}.lighting-mapbox-wrap .maplibregl-ctrl-group{overflow:hidden;border:1px solid rgba(148,163,184,.28);border-radius:6px;background:#0f172ac7;box-shadow:0 12px 28px #02061733}.lighting-map-shade{position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.08),transparent 20%,transparent 82%,rgba(15,23,42,.08))}.lighting-map-status,.lighting-map-error{position:absolute;left:18px;z-index:4;display:grid;gap:4px;padding:9px 12px;color:#dbeafe;border:1px solid rgba(147,197,253,.28);border-radius:6px;background:#0f172ac7;box-shadow:0 14px 34px #02061738;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.lighting-map-status{top:18px;display:inline-flex;align-items:center;gap:10px}.lighting-map-status span,.lighting-map-error span{color:#bfdbfe;font-size:12px}.lighting-map-status strong,.lighting-map-error strong{color:#f8fafc;font-size:13px}.lighting-map-error{top:64px;max-width:340px;border-color:#fbbf2457}.lighting-map-marker{position:relative;z-index:6;display:inline-flex;align-items:center;gap:8px;min-width:124px;padding:8px 10px;color:#f8fafc;text-align:left;border:1px solid rgba(45,212,191,.5);border-radius:8px;background:#0f172ae6;box-shadow:0 18px 42px #02061747,0 0 0 5px #14b8a61f;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.lighting-map-marker:hover{border-color:#7dd3fcd1;box-shadow:0 22px 52px #02061752,0 0 0 8px #14b8a626;transform:translateY(-2px)}.lighting-map-marker.warn{border-color:#fbbf24a3;box-shadow:0 18px 42px #02061747,0 0 0 5px #fbbf2424}.lighting-map-marker.danger{border-color:#f87171b3;box-shadow:0 18px 42px #02061747,0 0 0 5px #f8717124}.lighting-map-marker.running{border-color:#4ade80a3}.lighting-map-marker-icon{position:relative;width:34px;height:34px;flex:0 0 auto;border:2px solid rgba(248,250,252,.58);border-radius:6px;background:linear-gradient(90deg,transparent 47%,rgba(255,255,255,.42) 47% 53%,transparent 53%),linear-gradient(180deg,#14b8a6,#0f766e);box-shadow:0 0 0 3px #14b8a638}.lighting-map-marker-icon:before,.lighting-map-marker-icon:after{content:"";position:absolute;box-sizing:border-box}.lighting-map-marker.control-box .lighting-map-marker-icon{width:32px;height:34px;border-color:#fde68ab8;border-radius:5px 5px 3px 3px;background:linear-gradient(90deg,transparent 47%,rgba(30,41,59,.5) 47% 53%,transparent 53%),linear-gradient(180deg,#fbbf24,#f59e0b 48%,#b45309);box-shadow:inset 0 0 0 1px #ffffff3d,0 0 0 4px #f59e0b33}.lighting-map-marker.control-box .lighting-map-marker-icon:before{left:5px;top:5px;width:20px;height:22px;border:1px solid rgba(120,53,15,.42);border-radius:3px;background:linear-gradient(90deg,transparent 46%,rgba(120,53,15,.52) 46% 54%,transparent 54%),linear-gradient(180deg,rgba(255,255,255,.24),transparent 58%)}.lighting-map-marker.control-box .lighting-map-marker-icon:after{left:7px;top:8px;width:4px;height:4px;border-radius:50%;background:#22c55e;box-shadow:13px 0 #e0f2fe,0 12px #f97316,13px 12px #0f172a61}.lighting-map-marker.controller .lighting-map-marker-icon{width:36px;height:36px;border:0;border-radius:0;background:linear-gradient(180deg,#475569,#1e293b) 9px 14px / 4px 22px no-repeat,linear-gradient(90deg,#475569,#334155) 10px 12px / 19px 4px no-repeat;box-shadow:none}.lighting-map-marker.controller .lighting-map-marker-icon:before{right:3px;top:4px;width:18px;height:12px;border:1px solid rgba(191,219,254,.92);border-radius:12px 12px 5px 5px;background:radial-gradient(circle at 50% 55%,#f8fafc 0 20%,transparent 22%),linear-gradient(180deg,#93c5fd,#2563eb);box-shadow:0 0 0 4px #60a5fa24,0 8px 15px #2563eb57;transform:rotate(-8deg)}.lighting-map-marker.controller .lighting-map-marker-icon:after{left:4px;top:22px;width:13px;height:10px;border:1px solid rgba(191,219,254,.72);border-radius:3px;background:linear-gradient(90deg,transparent 48%,rgba(255,255,255,.36) 48% 56%,transparent 56%),linear-gradient(180deg,#60a5fa,#1d4ed8);box-shadow:0 0 0 3px #2563eb29}.lighting-device-panel{position:static;z-index:5;width:100%;max-height:min(460px,100%);min-height:0;display:grid;gap:14px;overflow-y:auto;padding:16px;color:#e2e8f0;border:1px solid rgba(148,163,184,.28);border-radius:8px;background:linear-gradient(180deg,#0f172af0,#0f172adb);box-shadow:0 24px 58px #0206175c;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.lighting-device-state-pill{flex:0 0 auto;padding:4px 8px;color:#064e3b;font-size:12px;font-weight:800;border:1px solid rgba(16,185,129,.35);border-radius:999px;background:#a7f3d0}.lighting-control-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.lighting-control-summary div{min-width:0;padding:9px 10px;border:1px solid rgba(96,165,250,.26);border-radius:6px;background:#1e293bb8}.lighting-control-summary span{display:block;color:#bfdbfe;font-size:11px;font-weight:700}.lighting-control-summary strong{display:block;overflow:hidden;margin-top:5px;color:#f8fafc;font-size:13px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.lighting-device-panel-grid strong{display:block;overflow:hidden;margin-top:5px;color:#f8fafc;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.lighting-switch-actions button{min-width:0;height:36px;color:#f8fafc;border-radius:6px;background:#2563eb}.lighting-switch-actions button:nth-child(2){background:#0f766e}.lighting-switch-actions button:nth-child(3){color:#bfdbfe;border:1px solid rgba(147,197,253,.24);background:#1e293bcc}.lighting-switch-actions button:disabled{color:#94a3b8;cursor:not-allowed;background:#334155b8}.lighting-map-side{height:clamp(420px,calc(100vh - 320px),620px);min-width:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:10px;align-content:start;overflow:hidden}.lighting-map-side:not(.has-selection){grid-template-rows:minmax(0,1fr)}.lighting-map-side:not(.has-selection) .lighting-device-list{grid-row:1 / -1}.lighting-device-list button{min-height:72px;display:grid;grid-template-columns:1fr;gap:4px;padding:12px 14px;text-align:left;border:1px solid #e5edf7;border-radius:6px;background:#fff;box-shadow:0 10px 24px #0f172a0d}.lighting-device-list button.active{border-color:#2563eb61;background:#eff6ff;box-shadow:0 14px 34px #2563eb1f}.lighting-device-list button.warn{border-color:#f59e0b47}.lighting-device-list button.danger{border-color:#ef44444d}.lighting-device-list span{color:#64748b;font-size:12px}.lighting-device-list strong{overflow:hidden;color:#111827;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.lighting-device-list small{overflow:hidden;color:#64748b;text-overflow:ellipsis;white-space:nowrap}.ops-workbench{display:grid;gap:16px;padding:16px 0 18px}.ops-station-bar{min-height:86px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:24px;padding:18px 24px;border:1px solid #f0f1f5;border-radius:8px;background:#fff;box-shadow:var(--shadow)}.lighting-workbench .ops-station-bar{grid-template-columns:minmax(0,1fr) auto}.ops-station-bar>div:first-child{flex:1 1 0;min-width:0}.ops-station-bar h1{margin:0;font-size:22px;line-height:1.25;letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ops-station-bar h1 span{color:#1677ff;font-size:14px;font-weight:700}.ops-station-bar p{margin:10px 0 0;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ops-top-actions{display:flex;gap:10px;flex:0 0 auto}.ops-top-actions button,.ops-panel-head button{height:34px;padding:0 15px;color:#fff;border-radius:4px;background:var(--blue)}.ops-top-actions button:first-child{color:var(--blue);border:1px solid rgba(47,107,255,.25);background:#eff6ff}.ops-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:16px}.ops-kpi,.ops-panel{border:1px solid #f0f1f5;border-radius:8px;background:#fff;box-shadow:var(--shadow)}.ops-kpi{min-height:112px;padding:18px 20px;text-align:left}.ops-kpi>span{display:block;color:#64748b}.ops-kpi strong{display:block;margin-top:15px;color:#111827;font-size:28px;line-height:1}.ops-kpi strong small{display:inline;margin-left:4px;color:#64748b;font-size:18px;font-weight:700}.ops-kpi.warn strong{color:#ff8a2a}.ops-kpi.energy strong{color:#1677ff}.ops-main-grid{display:grid;grid-template-columns:minmax(660px,1fr) minmax(360px,.42fr);gap:16px}.ops-main-grid.lower{grid-template-columns:minmax(620px,.9fr) minmax(520px,.72fr)}.ops-panel{min-height:248px;padding:20px 24px}.ops-panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.ops-panel-head h2{margin:0;font-size:16px}.ops-panel-head h2:after{content:"";display:inline-block;width:14px;height:2px;margin-left:3px;vertical-align:baseline;background:#2f6bff}.ops-panel-head span{color:#8d95a3}.lighting-map-card{min-height:520px}.lighting-map-layout{display:grid;grid-template-columns:minmax(760px,1fr) minmax(300px,340px);gap:18px;align-items:stretch}.lighting-mapbox-wrap{position:relative;height:clamp(560px,calc(100vh - 220px),760px);min-height:560px;overflow:hidden;border:1px solid #d8e2ef;border-radius:6px;background:linear-gradient(135deg,#eef7f6,#f8fbff 48%,#fff7ed)}.lighting-mapbox-canvas,.lighting-mapbox-canvas .maplibregl-canvas{position:absolute;inset:0;width:100%;height:100%}.lighting-mapbox-canvas{z-index:auto}.lighting-mapbox-canvas .maplibregl-canvas{outline:none}.lighting-static-map-layer{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:.58;transition:opacity .18s ease}.lighting-mapbox-wrap.ready .lighting-static-map-layer{opacity:0}.lighting-static-road,.lighting-static-grid{position:absolute;display:block;pointer-events:none}.lighting-static-road{border-radius:999px;background:#0f766e38;box-shadow:0 0 0 4px #ffffff61}.lighting-static-road.primary{left:-7%;right:-9%;top:55%;height:15px;transform:rotate(-8deg)}.lighting-static-road.secondary{left:24%;top:4%;width:11px;height:96%;background:#f59e0b33;transform:rotate(18deg)}.lighting-static-road.branch{left:22%;right:18%;top:38%;height:9px;background:#3b82f629;transform:rotate(20deg)}.lighting-static-grid{inset:34px 48px;border:1px solid rgba(15,118,110,.14);border-radius:48%}.lighting-static-grid.two{inset:90px 130px 80px 120px;border-color:#f59e0b29}.lighting-map-shade{position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.06),transparent 18%,transparent 78%,rgba(15,23,42,.06))}.lighting-map-status,.lighting-map-error,.lighting-device-panel{position:absolute;z-index:4;border-radius:6px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.lighting-map-status{left:18px;top:18px;display:inline-flex;align-items:center;gap:10px;padding:9px 12px;color:#f8fafc;border:1px solid rgba(148,163,184,.24);background:#0f172ac7;box-shadow:0 14px 34px #02061738}.lighting-map-status span{color:#a7f3d0;font-size:12px}.lighting-map-status strong{font-size:13px}.lighting-map-error{left:18px;top:64px;display:grid;gap:4px;max-width:330px;padding:10px 12px;color:#e2e8f0;border:1px solid rgba(251,191,36,.36);background:#1e293bd6;box-shadow:0 14px 34px #02061738}.lighting-map-error strong{color:#fef3c7}.lighting-map-error span{color:#cbd5e1;font-size:12px}.lighting-mapbox-wrap .maplibregl-ctrl-top-right{top:14px;right:14px;z-index:7}.lighting-mapbox-wrap .maplibregl-ctrl-bottom-left{left:14px;bottom:12px;z-index:7}.lighting-mapbox-wrap .maplibregl-ctrl-group{overflow:hidden;border:1px solid rgba(148,163,184,.28);border-radius:6px;background:#0f172ac7;box-shadow:0 12px 28px #02061738}.lighting-mapbox-wrap .maplibregl-ctrl-group button{filter:invert(1) grayscale(1)}.lighting-map-marker{position:relative;display:grid;place-items:center;width:62px;height:62px;min-width:0;padding:0;text-align:center;border:0;border-radius:0;background:transparent;box-shadow:none;cursor:pointer;transform-origin:50% 100%;transition:filter .16s ease,transform .16s ease}.lighting-map-marker:hover{transform:translateY(-2px) scale(1.03);filter:saturate(1.08) brightness(1.05)}.lighting-map-marker:focus-visible{outline:3px solid rgba(14,165,233,.72);outline-offset:2px}.lighting-map-marker:after{content:none}.lighting-map-marker.control-box{width:64px;height:64px}.lighting-map-marker.controller{width:66px;height:66px}.lighting-map-marker.warn{filter:saturate(1.04) sepia(.18)}.lighting-map-marker.warn:hover{filter:saturate(1.12) sepia(.18) brightness(1.05)}.lighting-map-marker.danger{filter:saturate(1.12) hue-rotate(-12deg)}.lighting-map-marker.danger:hover{filter:saturate(1.2) hue-rotate(-12deg) brightness(1.05)}.lighting-map-marker-icon{position:relative;width:60px;height:60px;flex:0 0 auto;display:grid;place-items:center;border:0;border-radius:0;background:transparent;box-shadow:none}.lighting-map-marker.control-box .lighting-map-marker-icon{width:62px;height:62px}.lighting-map-marker.controller .lighting-map-marker-icon{width:64px;height:64px}.lighting-map-marker-icon img{width:100%;height:100%;display:block;object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;filter:drop-shadow(0 7px 8px rgba(15,23,42,.22))}.lighting-device-panel{position:static;right:auto;top:auto;width:100%;max-height:min(460px,100%);min-height:0;display:grid;gap:14px;overflow-y:auto;padding:16px;color:#e2e8f0;border:1px solid rgba(148,163,184,.3);background:linear-gradient(180deg,#0f172af0,#0f172adb);box-shadow:0 24px 58px #0206175c}.lighting-map-side-panel{align-self:start}.lighting-device-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.lighting-device-panel-head span,.lighting-device-panel-grid span{display:block;color:#94a3b8;font-size:12px}.lighting-device-panel-head strong{display:block;margin-top:4px;color:#f8fafc;font-size:16px;line-height:1.35}.lighting-device-panel-head button{width:28px;height:28px;flex:0 0 auto;color:#cbd5e1;border:1px solid rgba(148,163,184,.26);border-radius:6px;background:#0f172aad}.lighting-device-panel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.lighting-device-panel-grid div{min-width:0;padding:9px 10px;border:1px solid rgba(148,163,184,.2);border-radius:6px;background:#0f172a94}.lighting-device-panel-grid strong{display:block;overflow:hidden;margin-top:5px;color:#f8fafc;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.lighting-switch-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.lighting-switch-actions button{height:36px;color:#f8fafc;border-radius:6px;background:#0f766e}.lighting-switch-actions button:nth-child(2){background:#b45309}.lighting-switch-actions button:nth-child(3){color:#dbeafe;border:1px solid rgba(147,197,253,.32);background:#1e293bc2}.lighting-switch-actions button:disabled{cursor:not-allowed;opacity:.48}.lighting-map-side{height:clamp(560px,calc(100vh - 220px),760px);min-height:0;display:grid;grid-template-rows:minmax(0,1fr);align-content:start;gap:10px;overflow:hidden}.lighting-device-list{min-height:0;display:grid;gap:10px;align-content:start;overflow-y:auto;padding-right:4px}.lighting-map-side .lighting-device-list{grid-row:1 / -1}.lighting-device-list button{min-height:88px;padding:12px 14px;text-align:left;border:1px solid #e6ebf2;border-radius:6px;background:#fff;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.lighting-device-list button:hover,.lighting-device-list button.active{border-color:#0f766e6b;box-shadow:0 12px 28px #0f172a14;transform:translateY(-1px)}.lighting-device-list button.warn{border-color:#fed7aa;background:#fff7ed}.lighting-device-list span,.lighting-device-list strong,.lighting-device-list small{display:block}.lighting-device-list span{color:#0f766e;font-size:12px;font-weight:700}.lighting-device-list strong{overflow:hidden;margin-top:6px;color:#111827;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.lighting-device-list small{margin-top:8px;color:#64748b;line-height:1.35}.lighting-indoor-grid{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:12px}.lighting-indoor-card{min-height:142px;padding:14px;text-align:left;border:1px solid #e6ebf2;border-radius:8px;background:#fff}.lighting-indoor-card:hover{border-color:#0f766e61;box-shadow:0 12px 26px #0f172a14}.lighting-indoor-card.warn{border-color:#fed7aa;background:#fff7ed}.lighting-indoor-card.danger{border-color:#fecdd3;background:#fff1f2}.lighting-indoor-card span,.lighting-indoor-card strong,.lighting-indoor-card small,.lighting-indoor-card b,.lighting-indoor-card em{display:block}.lighting-indoor-card span{color:#0f766e;font-size:12px;font-weight:700}.lighting-indoor-card strong{margin-top:8px;color:#111827;font-size:17px}.lighting-indoor-card small{margin-top:8px;color:#64748b}.lighting-indoor-card div{display:grid;gap:4px;margin-top:14px;padding-top:12px;border-top:1px solid rgba(148,163,184,.24)}.lighting-indoor-card b{color:#111827;font-size:13px}.lighting-indoor-card em{color:#64748b;font-style:normal;font-size:12px}.ops-zone-grid{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:12px}.ops-zone-grid button{min-height:150px;padding:16px;text-align:left;border:1px solid #eef0f4;border-radius:8px;background:#f8fafc}.ops-zone-grid button.warn{border-color:#fed7aa;background:#fff7ed}.ops-zone-grid button.danger{border-color:#fecdd3;background:#fff1f2}.ops-zone-grid span,.ops-zone-grid strong,.ops-zone-grid small,.ops-zone-grid b{display:block}.ops-zone-grid span{color:#374151;font-weight:700}.ops-zone-grid strong{margin-top:18px;font-size:26px}.ops-zone-grid small{margin-top:10px;color:#64748b}.ops-zone-grid b{margin-top:16px;color:#1677ff}.ops-zone-grid button.warn b{color:#f59e0b}.ops-zone-grid button.danger b{color:#e11d48}.ops-task-list,.ops-rule-list{display:grid;gap:12px}.ops-task-list button{min-height:54px;display:grid;grid-template-columns:12px 1fr 72px;gap:12px;align-items:center;padding:0 14px;text-align:left;border:1px solid #eef0f4;border-radius:6px;background:#fff}.ops-task-list b{color:#8d95a3;font-weight:400}.ops-mini-chart{height:244px;display:grid;grid-template-columns:repeat(6,minmax(70px,1fr));align-items:end;gap:18px;padding:18px 12px 28px;border-bottom:1px solid #d8dde6;background:linear-gradient(#eef2f7 1px,transparent 1px) 0 22px / 100% 46px}.ops-mini-column{height:198px;display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:6px;position:relative}.ops-mini-column i{display:block;min-height:12px;border-radius:8px 8px 0 0}.ops-mini-column .energy{background:#35a9f4}.ops-mini-column .running{background:#35c66b}.ops-mini-column span{position:absolute;left:50%;bottom:-24px;color:#8d95a3;font-size:12px;transform:translate(-50%)}.ops-rule-list button{min-height:68px;display:grid;grid-template-columns:1fr 110px;gap:6px 12px;align-items:center;padding:12px 14px;text-align:left;border:1px solid #eef0f4;border-radius:6px;background:#fff}.ops-rule-list strong{color:#111827}.ops-rule-list span,.ops-rule-list small{color:#64748b}.ops-rule-list b{justify-self:end;color:#1677ff}.sun-panel{min-height:166px}.sun-timeline{position:relative;display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:12px}.sun-timeline:before{content:"";position:absolute;left:8%;right:8%;top:50%;height:2px;background:#dbeafe}.sun-timeline button{position:relative;z-index:1;min-height:86px;padding:14px 12px;text-align:center;border:1px solid #dbeafe;border-radius:8px;background:#fff}.sun-timeline span,.sun-timeline strong{display:block}.sun-timeline span{color:#64748b}.sun-timeline strong{margin-top:9px;color:#1677ff;font-size:20px}.schedule-list{display:grid;gap:10px}.schedule-list button{min-height:58px;display:grid;grid-template-columns:150px repeat(3,minmax(110px,1fr)) 84px;gap:12px;align-items:center;padding:0 14px;text-align:left;border:1px solid #eef0f4;border-radius:6px;background:#fff}.schedule-list span,.schedule-list small{color:#64748b}.schedule-list b{color:#1677ff}.sub-tabs{height:44px;display:flex;align-items:flex-end;padding-left:18px;border-bottom:1px solid #f0f1f5;background:#fff}.sub-tab{position:relative;height:42px;padding:0 18px;line-height:40px;color:#1f2937;font-weight:700}.sub-tab.active:after{content:"";position:absolute;left:20px;bottom:0;width:27px;height:3px;background:#f52831}.toolbar{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;gap:16px}.search-box{width:242px;height:32px;display:flex;align-items:center;gap:7px;padding:0 12px;color:#c4c9d1;border:1px solid #e7eaf0;border-radius:3px}.search-box input{width:100%;border:0;outline:0;color:#111827}.select-btn{height:32px;min-width:96px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;padding:0 14px;color:#1f2937;border:1px solid #e7eaf0;border-radius:3px;background:#fff;line-height:1;white-space:nowrap}.toolbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}.device-tree-bulk-actions{display:flex;align-items:center;gap:6px;margin-right:auto}.device-tree-bulk-actions .select-btn{min-width:76px;padding:0 10px}.device-tree-bulk-actions .select-btn:disabled{color:#a7afbd;border-color:#edf0f4;background:#f8f9fb;cursor:not-allowed}@media(max-width:1440px){.asset-device-toolbar{height:auto;min-height:112px;flex-wrap:wrap;align-content:center}.asset-device-toolbar .search-box{flex:0 0 242px}.asset-device-toolbar .device-tree-bulk-actions{margin-right:0}.asset-device-toolbar .toolbar-actions{flex:1 0 100%;justify-content:flex-start;overflow-x:auto;padding-bottom:4px}}.toolbar-select{height:32px;display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;padding:0 10px;color:#5d6675;border:1px solid #e7eaf0;border-radius:3px;background:#fff;white-space:nowrap}.toolbar-select span{color:#7b8493;font-size:12px}.toolbar-select select{width:132px;border:0;outline:0;color:#1f2937;background:transparent}.toolbar-option-error{color:#c2410c;font-size:12px;white-space:nowrap}.data-table-scroll{width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;scrollbar-gutter:stable;scrollbar-color:#aeb7c6 #eef1f5;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.data-table-scroll::-webkit-scrollbar{height:10px}.data-table-scroll::-webkit-scrollbar-track{background:#eef1f5}.data-table-scroll::-webkit-scrollbar-thumb{border:2px solid #eef1f5;border-radius:999px;background:#aeb7c6}.data-table-scroll:focus-visible{outline:2px solid rgba(47,107,255,.45);outline-offset:-2px}.hvac-device-table-scroll .data-table{min-width:2230px}.filter-chip{height:32px;padding:0 12px;color:#4b5563;border:1px solid #e7eaf0;border-radius:16px;background:#fff;white-space:nowrap}.filter-chip.active{color:#1677ff;border-color:#1677ff;background:#eff6ff}.select-btn.primary{color:#fff;border-color:var(--blue);background:var(--blue)}.data-table{width:100%;min-width:100%;border-collapse:collapse;table-layout:fixed}.data-table th,.data-table td{height:54px;padding:0 12px;border-bottom:1px solid #eef0f4;text-align:left;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.data-table th{height:48px;color:#111827;font-weight:400;background:#fafafa}.data-table td{color:#111827}.data-table tr.selected td{background:#2f6bff0e}.table-pagination{min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 18px;border-bottom:1px solid #eef0f4;background:#fff;color:#667085;font-size:13px}.table-pagination-summary,.table-pagination-controls{display:flex;align-items:center;gap:8px}.table-pagination select,.table-pagination button{height:32px;border:1px solid #e1e5ec;border-radius:4px;background:#fff;color:#344054}.table-pagination select{min-width:88px;padding:0 8px;outline:none}.table-pagination button{min-width:32px;padding:0 9px;cursor:pointer}.table-pagination button:hover:not(:disabled),.table-pagination button.active{color:#1677ff;border-color:#1677ff;background:#f3f7ff}.table-pagination button:disabled{color:#c6cbd4;background:#fafafa;cursor:not-allowed}.table-pagination-ellipsis{width:24px;text-align:center;color:#98a2b3}.data-table .device-parent-row td{background:#f8faff;font-weight:520}.data-table .device-child-row td:first-child{color:#4b5563}.data-table .device-child-row td{background:#fcfdff}.device-tree-cell{min-width:0;display:flex;align-items:center;gap:7px}.device-tree-toggle{width:22px;height:22px;display:inline-grid;place-items:center;flex:0 0 22px;padding:0;color:#315fba;border:1px solid #d7e2f7;border-radius:5px;background:#fff}.device-tree-toggle span{font-size:18px;line-height:1;transform:rotate(0);transition:transform .16s ease}.device-tree-toggle[aria-expanded=true] span{transform:rotate(90deg)}.device-tree-branch{width:22px;height:22px;position:relative;flex:0 0 22px}.device-tree-branch:before,.device-tree-branch:after{content:"";position:absolute;background:#cbd5e1}.device-tree-branch:before{left:10px;top:-17px;width:1px;height:28px}.device-tree-branch:after{left:10px;top:11px;width:10px;height:1px}.device-tree-code{min-width:0;overflow:hidden;text-overflow:ellipsis}.device-tree-kind{flex:0 0 auto;padding:2px 6px;color:#315fba;font-size:11px;font-weight:600;border-radius:10px;background:#eaf1ff}.muted{display:block;margin-top:3px;color:#9aa1ac;font-size:13px}.muted.inline{display:inline;margin-top:0}.table-action{min-width:52px;height:28px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;padding:0 8px;color:var(--blue);line-height:1;white-space:nowrap}.empty-state{height:84px;display:grid;place-items:center;color:#9aa1ac;border-bottom:1px solid #eef0f4}.energy-empty-state{display:grid;place-items:center;gap:5px;padding:14px 18px;text-align:center;color:#64748b}.energy-empty-state strong{color:#334155;font-size:13px;font-weight:700}.energy-empty-state p{margin:0;color:#64748b;font-size:12px;line-height:1.5}.energy-empty-state small{color:#94a3b8;font-size:11px;line-height:1.45}.energy-empty-state button{height:28px;margin-top:4px;padding:0 12px;border:1px solid #cbd5e1;border-radius:4px;background:#fff;color:#1677ff;font-size:12px;cursor:pointer}.empty-space{height:360px;background:#fff}.bottom-scroll{height:6px;margin:0 10px;border-radius:4px;background:linear-gradient(90deg,transparent 0 3%,#e3e5e9 3% 95%,transparent 95%)}.modal-backdrop{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:24px;background:#0f172a6b}.asset-dialog{width:min(720px,calc(100vw - 48px));padding:0;border-radius:8px;background:#fff;box-shadow:0 24px 70px #0f172a3d}.asset-device-dialog{width:min(980px,calc(100vw - 48px));max-height:calc(100vh - 48px);overflow:auto}.table-action-group{display:flex;align-items:center;gap:10px;white-space:nowrap}.table-action-group .table-action{padding:0}.table-action-group .danger-link{color:#dc2626}.action-dialog{width:min(860px,calc(100vw - 48px))}.storage-ingestion-dialog{width:min(980px,calc(100vw - 48px));max-height:calc(100vh - 48px);overflow:auto}.permission-dialog{width:min(900px,calc(100vw - 48px));max-height:calc(100vh - 48px);overflow:auto}.asset-dialog-head{height:62px;display:flex;align-items:center;justify-content:space-between;padding:0 22px;border-bottom:1px solid #eef0f4}.asset-dialog-head h2{margin:0;font-size:18px}.action-dialog-subtitle{margin:5px 0 0;color:#64748b;font-size:13px}.asset-dialog-head button{width:32px;height:32px;color:#64748b;font-size:24px}.asset-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:22px}.asset-form-grid label{min-width:0;display:grid;gap:8px}.asset-form-grid label.wide{grid-column:1 / 3}.asset-form-grid span{color:#475569;font-weight:700;white-space:nowrap}.asset-form-grid .field-help{color:#64748b;font-size:12px;font-weight:400;line-height:1.45}.asset-form-grid input,.asset-form-grid select,.asset-form-grid textarea{height:38px;width:100%;min-width:0;padding:0 12px;color:#111827;border:1px solid #dbe1ea;border-radius:4px;background:#fff}.asset-form-grid input:disabled,.asset-form-grid select:disabled,.asset-form-grid textarea:disabled{color:#475569;border-color:#e2e8f0;background:#f8fafc;opacity:1}.asset-device-form-grid{max-height:calc(100vh - 190px);overflow:auto}.asset-device-form-grid .device-control-field{align-items:start}.asset-device-form-grid .device-control-field small{color:#64748b;line-height:1.5}.asset-form-grid input,.asset-form-grid select{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.asset-form-grid textarea{height:auto;min-height:78px;padding:10px 12px;resize:vertical}.permission-menu-selector{display:grid;gap:12px;padding:12px 14px;border:1px solid #e3e8f0;border-radius:6px;background:#fff}.asset-form-grid .permission-menu-selector.wide{grid-column:1 / 3}.permission-menu-selector-head{display:flex;align-items:center;justify-content:space-between}.permission-menu-selector-head span{color:#334155}.permission-menu-selector-head strong{color:#2563eb;font-size:14px}.permission-menu-selector-state{min-height:42px;display:grid;place-items:center;color:#64748b;border:1px dashed #cbd5e1;border-radius:6px;background:#fff}.permission-menu-selector-state.warn{color:#b45309;background:#fffbeb}.permission-menu-tree{display:grid;gap:2px;max-height:360px;overflow:auto;padding:2px 4px 2px 0}.permission-menu-tree-group{min-width:0;display:grid;gap:1px}.permission-menu-tree-node{min-width:0;display:grid;align-items:center;color:#334155;border-radius:4px}.permission-menu-tree-node.root{grid-template-columns:24px minmax(0,1fr);min-height:38px;gap:8px;font-weight:760}.permission-menu-tree-node.child{grid-template-columns:24px 20px 24px minmax(0,1fr);min-height:36px;gap:10px;margin-left:34px;padding-right:8px;cursor:pointer;font-weight:650}.permission-menu-tree-node:hover{background:#f8fafc}.permission-tree-check-wrap{min-width:0;position:relative;display:grid;grid-template-columns:20px 24px minmax(0,1fr);align-items:center;gap:10px;cursor:pointer}.permission-tree-checkbox-native{position:absolute;width:18px;height:18px;opacity:0;pointer-events:none}.permission-tree-caret{width:24px;height:24px;position:relative;padding:0;border:0;border-radius:3px;background:transparent}.permission-tree-caret:before{content:"";position:absolute;left:8px;top:7px;width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:7px solid #64748b;transition:transform .16s ease}.permission-menu-tree-node.root.expanded>.permission-tree-caret:before{transform:rotate(90deg)}.permission-tree-caret.leaf:before{left:9px;border-left-color:#475569}.permission-tree-checkbox{width:18px;height:18px;position:relative;display:inline-block;border:1px solid #cbd5e1;border-radius:3px;background:#fff}.permission-tree-checkbox.checked{border-color:#5576ad;background:#5576ad}.permission-tree-checkbox.checked:after{content:"";position:absolute;left:5px;top:2px;width:5px;height:9px;border:solid #fff;border-width:0 3px 3px 0;transform:rotate(45deg)}.permission-tree-checkbox.partial:after{content:"";position:absolute;left:4px;top:4px;width:8px;height:8px;border-radius:1px;background:#5576ad}.permission-tree-folder,.permission-tree-file{width:22px;height:17px;position:relative;display:inline-block;border:2px solid #5b6068;border-radius:2px;background:#fff}.permission-tree-folder:before{content:"";position:absolute;left:-2px;top:-7px;width:10px;height:7px;border:2px solid #5b6068;border-bottom:0;border-radius:2px 2px 0 0;background:#fff}.permission-tree-folder:after{content:"";position:absolute;left:-2px;right:-2px;top:-2px;height:5px;border-top:2px solid #5b6068;background:#fff}.permission-tree-file{width:20px;height:18px}.permission-tree-label{min-width:0;overflow:hidden;color:#4b5563;font-size:16px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.permission-menu-tree-node.root .permission-tree-label{color:#374151;font-size:17px}.permission-menu-tree-node.child.checked .permission-tree-label{color:#1f2937}.action-dialog-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:18px 22px 0}.action-dialog-metrics div{min-height:76px;padding:12px 14px;border:1px solid #eef0f4;border-radius:6px;background:#f8fafc}.action-dialog-metrics span,.action-record span{display:block;color:#64748b;font-size:12px}.action-dialog-metrics strong{display:inline-block;margin-top:8px;color:#111827;font-size:22px}.action-dialog-metrics small{margin-left:4px;color:#8d95a3}.action-records{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;padding:18px 22px 0}.action-record{display:grid;gap:5px;min-width:0}.action-record strong{overflow:hidden;color:#111827;font-size:13px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.storage-ingestion-body{display:grid;gap:16px;padding:20px 22px 22px}.storage-ingestion-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.storage-ingestion-summary>div{min-width:0;display:grid;gap:6px;padding:10px 12px;border:1px solid #e6ebf1;border-radius:8px;background:#f8fafc}.storage-ingestion-summary span,.storage-ingestion-tables h3,.storage-ingestion-json summary{color:#64748b;font-size:12px;font-weight:700}.storage-ingestion-summary strong{min-width:0;color:#0f172a;font-size:13px;overflow-wrap:anywhere}.storage-ingestion-parse-error{margin:0;padding:10px 12px;color:#991b1b;border:1px solid #fecaca;border-radius:8px;background:#fef2f2}.storage-ingestion-tables{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.storage-ingestion-tables section{min-width:0}.storage-ingestion-tables h3{margin:0 0 8px}.storage-ingestion-tables table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:13px}.storage-ingestion-tables th,.storage-ingestion-tables td{padding:8px 10px;text-align:left;border:1px solid #e6ebf1;overflow-wrap:anywhere}.storage-ingestion-json{display:grid;gap:8px}.storage-ingestion-json summary{cursor:pointer}.storage-ingestion-json p{margin:0;color:#64748b;font-size:13px}.storage-ingestion-json pre{max-height:260px;margin:0;padding:12px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;border:1px solid #e6ebf1;border-radius:8px;background:#0f172a;color:#e2e8f0}.storage-command-confirm-dialog{width:min(520px,calc(100vw - 48px));border:1px solid #d8e2e4;border-radius:10px;box-shadow:0 24px 70px #0f172a3d}.storage-command-confirm-dialog .asset-dialog-head{height:auto;min-height:66px;padding:16px 20px;border-bottom-color:#e4ecee}.storage-command-confirm-dialog .asset-dialog-head h2{color:#0f172a;font-size:18px;line-height:1.25}.storage-command-confirm-dialog .asset-dialog-head button:focus-visible,.storage-command-confirm-dialog .asset-dialog-actions button:focus-visible{outline:2px solid #128263;outline-offset:2px}.storage-command-confirm-dialog .action-records{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:18px 20px 4px}.storage-command-confirm-dialog .action-record{min-height:54px;padding:10px 12px;border:1px solid #e3ebed;border-radius:8px;background:#f8fbfb}.storage-command-confirm-dialog .action-record span{color:#65747d;font-weight:700}.storage-command-confirm-dialog .action-record strong{color:#0f172a;font-size:14px}.storage-command-confirm-dialog>.action-dialog-subtitle{margin:12px 20px 18px;padding:10px 12px;color:#7c2d12;border:1px solid #fed7aa;border-radius:8px;background:#fff7ed;line-height:1.45}.storage-command-confirm-dialog .asset-dialog-actions{height:62px;padding:0 20px;border-top-color:#e4ecee}.storage-command-confirm-dialog .asset-dialog-actions button{border-radius:6px;transition:color .14s ease,border-color .14s ease,background-color .14s ease}.storage-command-confirm-dialog .asset-dialog-actions button:hover:not(:disabled){color:#128263;border-color:#128263;background:#f4fbf8}.storage-command-confirm-dialog .asset-dialog-actions button.primary{color:#fff;border-color:#128263;background:#128263}.storage-command-confirm-dialog .asset-dialog-actions button.primary:hover:not(:disabled){color:#fff;border-color:#0f6e55;background:#0f6e55}.storage-command-confirm-dialog .asset-dialog-actions button:disabled{color:#94a3b8;border-color:#e2e8f0;background:#edf2f3;cursor:not-allowed}.lighting-query-result-dialog{width:min(960px,calc(100vw - 48px));max-height:calc(100vh - 48px);display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}.lighting-query-result-body{min-height:0;display:grid;gap:14px;overflow-y:auto;padding:18px 22px 20px}.lighting-query-status{min-height:48px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;padding:10px 12px;border:1px solid #dbeafe;border-radius:6px;background:#eff6ff}.lighting-query-status strong{color:#1d4ed8;font-size:14px}.lighting-query-status span{min-width:0;color:#475569;font-size:13px}.lighting-query-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.lighting-query-metrics div{min-width:0;min-height:72px;position:relative;display:grid;align-content:center;gap:6px;padding:10px 12px 10px 42px;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc}.lighting-query-metric-icon{position:absolute;left:12px;top:14px;width:22px;height:22px;display:grid;place-items:center;color:#fff;font-size:12px;font-style:normal;font-weight:900;border-radius:50%;background:#64748b}.lighting-query-metric.voltage .lighting-query-metric-icon{background:#2563eb}.lighting-query-metric.current .lighting-query-metric-icon{background:#0891b2}.lighting-query-metric.power .lighting-query-metric-icon{background:#ea580c}.lighting-query-metric.online .lighting-query-metric-icon{background:#16a34a}.lighting-query-metric.warn .lighting-query-metric-icon{background:#dc2626}.lighting-query-metrics span,.lighting-query-records span{color:#64748b;font-size:12px}.lighting-query-metrics strong{color:#0f172a;font-size:22px;line-height:1}.lighting-query-metrics small{color:#64748b}.lighting-query-trend{display:grid;gap:10px;padding:12px;border:1px solid #dbeafe;border-radius:7px;background:#fbfdff}.lighting-query-trend-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.lighting-query-trend-head div{display:grid;gap:3px}.lighting-query-trend-head span{color:#1f2937;font-size:14px;font-weight:800}.lighting-query-trend-head strong,.lighting-query-trend-head b{color:#64748b;font-size:12px}.lighting-query-trend-svg{width:100%;height:180px;display:block;border:1px solid #e2e8f0;border-radius:8px;background:#fff}.lighting-query-trend-grid line{stroke:#dbeafe;stroke-width:1;vector-effect:non-scaling-stroke}.lighting-query-trend-line{fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.lighting-query-trend-line.voltage{stroke:#2563eb}.lighting-query-trend-line.current{stroke:#0891b2}.lighting-query-trend-line.power{stroke:#ea580c}.lighting-query-trend-bar,.lighting-query-trend-bar.voltage{fill:#2563eb}.lighting-query-trend-bar.current{fill:#0891b2}.lighting-query-trend-bar.power{fill:#ea580c}.lighting-query-trend-dot{stroke:#fff;stroke-width:1.5}.lighting-query-trend-dot.voltage{fill:#2563eb}.lighting-query-trend-dot.current{fill:#0891b2}.lighting-query-trend-dot.power{fill:#ea580c}.lighting-query-trend-legend{display:flex;align-items:center;gap:16px;color:#475569;font-size:12px}.lighting-query-trend-legend span{display:inline-flex;align-items:center;gap:6px}.lighting-query-trend-legend span:before{content:"";width:22px;height:3px;border-radius:999px;background:#64748b}.lighting-query-trend-legend .voltage:before{background:#2563eb}.lighting-query-trend-legend .current:before{background:#0891b2}.lighting-query-trend-legend .power:before{background:#ea580c}.lighting-query-records{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 14px}.lighting-query-records div{min-width:0;display:grid;gap:4px}.lighting-query-records strong{min-width:0;overflow:hidden;color:#1f2937;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.lighting-query-table-wrap{min-width:0;display:grid;gap:8px}.lighting-query-table-head{display:flex;align-items:center;justify-content:space-between;color:#334155;font-size:13px;font-weight:800}.lighting-query-result-table{width:100%;border-collapse:collapse;font-size:13px}.lighting-query-result-table th,.lighting-query-result-table td{padding:9px 10px;text-align:left;border:1px solid #e5e7eb}.lighting-query-result-table th{color:#475569;font-weight:800;background:#f8fafc}.lighting-query-result-table td{color:#1f2937;background:#fff}.lighting-query-result-table tr:nth-child(2n) td{background:#fbfdff}.lighting-query-result-code{display:grid;gap:8px;padding:10px 12px;border:1px solid #dcfce7;border-radius:6px;background:#f0fdf4}.lighting-query-result-code summary{color:#166534;font-size:13px;font-weight:800;cursor:pointer}.lighting-query-result-code code{overflow-wrap:anywhere;color:#14532d;font-size:12px;line-height:1.55}.lighting-archive-view{min-height:calc(100vh - 118px);display:grid;grid-template-columns:300px minmax(0,1fr);gap:16px}.lighting-archive-sidebar,.lighting-archive-main{min-width:0;border:1px solid #dfe7f1;border-radius:8px;background:#fff}.lighting-archive-sidebar{display:grid;align-content:start;gap:8px;padding:12px;overflow-y:auto}.lighting-archive-side-head,.lighting-archive-group-head,.lighting-archive-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.lighting-archive-side-head{color:#475569;font-size:13px;font-weight:800}.lighting-archive-side-head strong,.lighting-archive-group-head b{color:#0f766e}.lighting-archive-sidebar button{min-width:0;display:grid;gap:5px;padding:12px;text-align:left;border:1px solid #e2e8f0;border-radius:7px;background:#f8fafc}.lighting-archive-sidebar button.active{border-color:#0f766e;background:#ecfdf5;box-shadow:inset 3px 0 #0f766e}.lighting-archive-sidebar strong,.lighting-archive-sidebar span,.lighting-archive-sidebar small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lighting-archive-sidebar strong{color:#0f172a}.lighting-archive-sidebar span,.lighting-archive-sidebar small{color:#64748b;font-size:12px}.lighting-archive-main{display:grid;grid-template-rows:auto auto minmax(0,1fr);overflow:hidden}.lighting-archive-head{padding:18px 20px;border-bottom:1px solid #e6edf5;background:linear-gradient(180deg,#fff,#f8fbff)}.lighting-archive-head>div:first-child{min-width:0}.lighting-archive-head h1{margin:2px 0 4px;color:#0f172a;font-size:22px;letter-spacing:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lighting-archive-head span{display:block;min-width:0;overflow:hidden;color:#64748b;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.lighting-archive-actions{display:flex;flex-wrap:wrap;flex:0 0 auto;justify-content:flex-end;gap:8px}.lighting-archive-actions button,.lighting-archive-row-actions button{height:34px;min-width:88px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;padding:0 12px;color:#334155;font-weight:800;line-height:1;white-space:nowrap;border:1px solid #cbd5e1;border-radius:6px;background:#fff}.lighting-archive-actions button.primary{color:#fff;border-color:#0f766e;background:#0f766e}.lighting-archive-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:14px 20px;border-bottom:1px solid #edf2f7;background:#fbfdff}.lighting-archive-metrics div{min-width:0;display:grid;gap:4px;padding:12px;border:1px solid #e2e8f0;border-radius:7px;background:#fff}.lighting-archive-metrics span{color:#64748b;font-size:12px;font-weight:800}.lighting-archive-metrics strong{color:#0f172a;font-size:22px;line-height:1}.lighting-archive-metrics small{min-width:0;overflow:hidden;color:#64748b;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.lighting-archive-command-card.replied{border-color:#bbf7d0;background:#f0fdf4}.lighting-archive-command-card.queued{border-color:#bfdbfe;background:#eff6ff}.lighting-archive-groups{min-height:0;display:grid;gap:14px;overflow-y:auto;padding:16px 20px 20px}.lighting-archive-group{min-width:0;display:grid;gap:10px}.lighting-archive-group-head h2{margin:0;color:#0f172a;font-size:16px}.lighting-archive-group-head span{color:#64748b;font-size:12px}.lighting-archive-table-wrap{overflow-x:auto;border:1px solid #e2e8f0;border-radius:8px}.lighting-archive-table{width:100%;min-width:1160px;border-collapse:collapse;font-size:13px;table-layout:fixed}.lighting-archive-table th,.lighting-archive-table td{padding:10px 12px;text-align:left;vertical-align:middle;border-bottom:1px solid #edf2f7;overflow:hidden;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.lighting-archive-table th:nth-child(1),.lighting-archive-table td:nth-child(1){width:58px}.lighting-archive-table th:nth-child(2),.lighting-archive-table td:nth-child(2){width:190px}.lighting-archive-table th:nth-child(3),.lighting-archive-table td:nth-child(3){width:250px}.lighting-archive-table th:nth-child(4),.lighting-archive-table td:nth-child(4){width:170px}.lighting-archive-table th:nth-child(5),.lighting-archive-table td:nth-child(5){width:140px}.lighting-archive-table th:nth-child(6),.lighting-archive-table td:nth-child(6){width:72px}.lighting-archive-table th:nth-child(7),.lighting-archive-table td:nth-child(7){width:110px}.lighting-archive-table th:nth-child(8),.lighting-archive-table td:nth-child(8){width:170px}.lighting-archive-table th{color:#475569;font-weight:900;background:#f8fafc}.lighting-archive-table td{color:#1f2937;background:#fff}.lighting-archive-row-actions{display:flex;flex-wrap:nowrap;align-items:center;gap:6px}.lighting-archive-row-actions button{height:28px;min-width:44px;padding:0 9px;font-size:12px;white-space:nowrap}.lighting-archive-row-actions button.danger{color:#dc2626;border-color:#fecaca;background:#fff5f5}.lighting-archive-dialog .asset-form-grid textarea[readonly],.lighting-archive-dialog .asset-form-grid input[readonly]{color:#475569;background:#f8fafc}.action-form-grid{padding-top:18px}.asset-dialog-actions{height:64px;display:flex;align-items:center;justify-content:flex-end;flex-wrap:nowrap;gap:10px;padding:0 22px;border-top:1px solid #eef0f4}.asset-dialog-actions button{height:34px;min-width:82px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;padding:0 16px;border:1px solid #dbe1ea;border-radius:4px;background:#fff;line-height:1;white-space:nowrap}.asset-dialog-actions button.primary{color:#fff;border-color:var(--blue);background:var(--blue)}.asset-dialog-actions button.danger{margin-right:auto;color:#dc2626;border-color:#fecaca;background:#fff5f5}.asset-screen{padding:10px;color:#dbeafe;background:linear-gradient(180deg,rgba(47,107,255,.16) 0,transparent 24%),linear-gradient(90deg,rgba(53,169,244,.08) 1px,transparent 1px),linear-gradient(0deg,rgba(96,165,250,.06) 1px,transparent 1px),linear-gradient(135deg,#07111f,#0b2b58 48%,#101827);background-size:auto,48px 48px,48px 48px,auto;border-radius:10px}.asset-screen-frame{position:relative;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:12px;overflow:hidden;border:1px solid rgba(53,169,244,.34);border-radius:10px;padding:12px;background:linear-gradient(180deg,#050c1f6b,#030917c7),#061226b8;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.asset-screen-frame:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#2f6bff00 0 34%,#35a9f414 48%,#2f6bff00 63%),repeating-linear-gradient(90deg,transparent 0 120px,rgba(53,169,244,.045) 121px 122px)}.asset-screen-frame>*{position:relative;z-index:1}.asset-screen-header{position:relative;display:grid;min-height:70px;grid-template-columns:240px minmax(0,1fr) 260px;align-items:center;gap:18px;border:1px solid rgba(53,169,244,.36);background:linear-gradient(90deg,#10264edb,#08183499 45%,#0d2a54c7),linear-gradient(180deg,rgba(53,169,244,.16),transparent);box-shadow:0 0 0 1px #35a9f41a,inset 0 -1px 18px #35a9f424;border-radius:8px;padding:10px 16px}.asset-screen-brand{width:218px;height:52px;display:flex;align-items:center;gap:10px;padding:6px 12px;border:1px solid rgba(53,169,244,.28);border-radius:6px;background:linear-gradient(90deg,#2f6bff29,#35a9f40f),#0412237a}.asset-screen-brand-mark{position:relative;width:34px;height:34px;flex:0 0 34px;overflow:hidden;border-radius:8px}.asset-screen-brand-mark img{position:absolute;left:0;top:0;width:119px;height:34px;display:block;object-fit:contain;object-position:left center}.asset-screen-brand-copy{display:grid;gap:2px;min-width:0}.asset-screen-brand-copy strong{color:#f8fbff;font-size:18px;line-height:1.05}.asset-screen-brand-copy small{color:#dbeafeb8;font-size:10px;letter-spacing:0}.asset-screen-title{text-align:left;min-width:0}.asset-screen-header h1{margin:0;color:#eff6ff;font-size:29px;letter-spacing:0;text-shadow:0 0 18px rgba(53,169,244,.52)}.asset-screen-header p{margin-bottom:0;margin-top:5px;color:#b9ddff;font-size:13px}.asset-screen-tools{justify-self:end;display:flex;align-items:center;gap:10px}.asset-screen-back{height:34px;min-width:102px;padding:0 12px;border:1px solid rgba(34,197,94,.58);border-radius:6px;color:#e2e8f0;background:linear-gradient(130deg,#10b981b8,#08917d94);letter-spacing:.4px;font-size:13px;display:inline-flex;align-items:center;justify-content:center;gap:6px}.asset-screen-back:before{content:"←";color:#ecfccb;font-weight:700}.asset-screen-back:hover{background:linear-gradient(130deg,#10b981db,#08917dbd)}.asset-screen-back:active{transform:translateY(1px)}.asset-screen-back:focus-visible{outline:2px solid #22d3ee;outline-offset:2px}.asset-screen-clock{min-width:124px;padding:7px 10px;border:1px solid rgba(148,163,184,.16);border-radius:6px;color:#bfdbfe;background:#04121b6b;display:grid;justify-items:end;gap:4px}.asset-screen-clock strong{color:#f8fafc;font-size:16px}.asset-screen-status{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0}.asset-screen-status-card{min-height:76px;display:grid;grid-template-columns:18px minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:end;gap:5px 12px;padding:13px 16px;border:1px solid rgba(53,169,244,.28);border-radius:8px;background:linear-gradient(135deg,#112e608f,#0a1635c7),linear-gradient(90deg,rgba(53,169,244,.1),transparent);box-shadow:inset 0 0 18px #35a9f41f}.asset-screen-status-card i{grid-row:1 / 3;align-self:center;width:12px;height:12px;border-radius:50%}.asset-screen-status-card i.total{background:#60a5fa;box-shadow:0 0 0 7px #60a5fa1f,0 0 20px #60a5fa99}.asset-screen-status-card i.online,.asset-screen-status-card i.running{background:#35c66b;box-shadow:0 0 0 7px #35c66b1f,0 0 20px #35c66b9e}.asset-screen-status-card i.warn{background:#f59e0b;box-shadow:0 0 0 7px #f59e0b24,0 0 20px #f59e0b94}.asset-screen-status-card span{color:#bfdbfe;font-size:14px}.asset-screen-status-card strong{grid-column:2 / 3;color:#fff;font-size:30px;letter-spacing:.4px;line-height:1.1}.asset-screen-status-card small{grid-column:3 / 4;grid-row:2 / 3;color:#8fd3ff;font-size:13px}.asset-screen-main{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(560px,2.2fr) minmax(315px,1fr);min-height:0;gap:12px}.asset-screen-panel,.asset-screen-map-panel{border:1px solid;border-color:#35a9f452;border-radius:10px;background:linear-gradient(180deg,#0e2f5bb8,#041027db),#030d20c7;box-shadow:inset 0 0 22px #35a9f41a,0 10px 26px #00000038}.asset-screen-panel{min-width:0;padding:14px}.asset-screen-panel-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;padding-left:10px;border-left:3px solid #35a9f4;color:#eff6ff;font-size:16px}.asset-screen-panel-title button{color:#ecfeff;border:1px solid rgba(53,169,244,.46);background:linear-gradient(90deg,#2f6bff7a,#35a9f44d);min-width:72px;height:28px;padding:0 10px;border-radius:4px;font-size:12px}.asset-screen-mix{display:grid;gap:10px}.asset-screen-mix-row{min-height:64px;position:relative;overflow:hidden;padding:10px 12px;text-align:left;color:#dbeafe;border:1px solid rgba(53,169,244,.26);border-radius:8px;background:linear-gradient(90deg,rgba(47,107,255,.16),transparent 70%),#031127b8}.asset-screen-mix-row span,.asset-screen-mix-row b{position:relative;z-index:1}.asset-screen-mix-row b{float:right;color:#fff;font-size:20px}.asset-screen-mix-row small{margin-left:3px;color:#8ec8eb;font-size:12px}.asset-screen-mix-row i{position:absolute;left:0;bottom:0;height:4px;background:#41d4ff;width:0}.asset-screen-mix-row i.green{background:#31d48c}.asset-screen-mix-row i.orange{background:#ffbd3f}.asset-screen-mix-row i.blue{background:#2f6bff}.asset-screen-mix-row:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(120deg,rgba(255,255,255,.06),transparent 34%)}.asset-screen-stat-grid div,.asset-screen-env div{min-height:78px;padding:12px;border:1px solid rgba(148,163,184,.16);border-radius:8px;background:#051430c2}.asset-screen-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.asset-screen-stat-grid span,.asset-screen-env span{display:block;color:#91c8e8;font-size:12px}.asset-screen-stat-grid strong,.asset-screen-env strong{color:#fff;font-size:24px;line-height:1.8}.asset-screen-stat-grid small,.asset-screen-env small{color:#93c5fd}.asset-screen-map-panel{min-height:0;padding:0;overflow:hidden;position:relative;background:linear-gradient(180deg,rgba(53,169,244,.17),transparent 36%),linear-gradient(90deg,rgba(53,169,244,.16) 1px,transparent 1px),linear-gradient(0deg,rgba(47,107,255,.12) 1px,transparent 1px),#041932;background-size:auto,48px 48px,48px 48px,auto}.asset-screen-headline{position:absolute;top:24px;left:50%;z-index:4;display:grid;grid-template-columns:repeat(2,minmax(190px,220px));gap:16px;transform:translate(-50%)}.asset-screen-headline-card{min-height:78px;border:1px solid rgba(53,169,244,.36);border-radius:8px;padding:10px 12px;background:linear-gradient(180deg,#0f172ad1,#0f172a8f),linear-gradient(90deg,#2f6bff38,#35a9f42e);box-shadow:0 0 24px #2f6bff33,inset 0 0 14px #35a9f421}.asset-screen-headline-card span{display:block;color:#93d7ff}.asset-screen-headline-card strong{font-size:34px;font-family:DIN Alternate,Arial,sans-serif}.asset-screen-headline-card small{margin-left:4px;color:#8ee6ff}.asset-screen-map{height:100%;min-height:376px;margin:78px 0 0;position:relative;overflow:hidden}.asset-screen-map:before{content:"";position:absolute;left:50%;top:-40px;width:72%;height:210px;transform:translate(-50%);z-index:1;background:linear-gradient(180deg,rgba(96,165,250,.2),transparent);clip-path:polygon(34% 0,66% 0,100% 100%,0 100%)}.asset-screen-map-floor{position:absolute;left:3%;right:3%;bottom:0;height:138px;background:linear-gradient(90deg,rgba(53,169,244,.34) 1px,transparent 1px),linear-gradient(0deg,rgba(53,169,244,.3) 1px,transparent 1px);background-size:42px 24px;transform:perspective(360px) rotateX(62deg);transform-origin:bottom;opacity:.6;box-shadow:0 -20px 48px #35a9f438}.asset-screen-map-real{position:absolute;left:3%;top:-2px;z-index:1;width:91%;height:340px;object-fit:contain;filter:saturate(1.12) drop-shadow(0 0 18px rgba(53,169,244,.48));opacity:.96}.asset-screen-map-inset{position:absolute;right:32px;bottom:22px;z-index:3;width:136px;height:92px;padding:7px;border:1px solid rgba(53,169,244,.54);border-radius:6px;background:#05143085}.asset-screen-map-inset svg{width:100%;height:64px}.asset-screen-map-inset path{fill:#35a9f43d;stroke:#35a9f4}.asset-screen-map-inset span{display:block;color:#bfdbfe;font-size:12px;text-align:center}.asset-screen-marker{position:absolute;z-index:5;min-width:150px;padding:8px 10px 8px 28px;border:1px solid rgba(34,211,238,0);border-radius:4px;background:#020c1e00}.asset-screen-marker:hover{border-color:#35a9f480;background:#020c1eb8}.asset-screen-marker span{position:absolute;display:block;left:8px;top:12px;width:12px;height:12px;background:#22c55e;box-shadow:0 0 0 7px #22c55e33,0 0 22px #22c55ee6}.asset-screen-marker.warn span{background:#f59e0b}.asset-screen-marker b{max-width:190px;color:#f8fafc;text-shadow:0 0 10px rgba(53,169,244,.65)}.asset-screen-marker small{color:#bfdbfe}body:has(.asset-screen) .asset-screen-marker{min-width:132px}body:has(.asset-screen) .asset-screen-marker:nth-of-type(1){transform:translate(-96%,-78%)}body:has(.asset-screen) .asset-screen-marker:nth-of-type(2){transform:translate(-108%,2%)}body:has(.asset-screen) .asset-screen-marker:nth-of-type(3){transform:translateY(-96%)}body:has(.asset-screen) .asset-screen-marker:nth-of-type(4){transform:translate(0)}.asset-screen-legend{position:absolute;left:50%;bottom:18px;z-index:4;display:flex;gap:16px;padding:7px 12px;border:1px solid rgba(53,169,244,.22);border-radius:4px;background:#020c1e8a;transform:translate(-50%)}.asset-screen-legend span{display:inline-flex;align-items:center;gap:6px;color:#dbeafe;font-size:12px;white-space:nowrap}.asset-screen-legend i{width:9px;height:9px;display:inline-block;border-radius:50%}.asset-screen-legend i.normal{background:#22c55e;box-shadow:0 0 10px #22c55ebd}.asset-screen-legend i.warn{background:#f59e0b;box-shadow:0 0 10px #f59e0bbd}.asset-screen-legend i.pulse{background:#60a5fa;box-shadow:0 0 10px #60a5fabd}.asset-screen-alert{text-align:left;min-height:72px;padding:10px 12px;border:1px solid rgba(53,169,244,.24);border-radius:8px;background:linear-gradient(90deg,rgba(245,158,11,.14),transparent 64%),#030d20b8}.asset-screen-alert strong,.asset-screen-alert span,.asset-screen-alert small{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.asset-screen-alert strong{color:#fff}.asset-screen-alert span{margin-top:5px;color:#9bd9ff}.asset-screen-alert small{margin-top:4px;color:#ffdb87}.asset-screen-alerts{display:grid;gap:10px}.asset-screen-empty{display:grid;min-height:86px;place-items:center;color:#91c8e8;border:1px dashed rgba(53,169,244,.26);border-radius:6px}.asset-screen-env{display:grid;gap:10px;margin-top:14px}.asset-screen-alert:before{content:"";float:left;width:4px;height:48px;margin:2px 10px 0 0;border-radius:4px;background:#f59e0b}.asset-screen-bottom{display:grid;grid-template-columns:1.24fr 1.24fr .72fr;gap:12px;margin-top:0}.asset-screen-bottom .asset-screen-panel{min-height:150px}.asset-screen-bars{height:112px;display:grid;align-items:end;gap:10px}.asset-screen-bars.week{grid-template-columns:repeat(7,minmax(0,1fr))}.asset-screen-bars.month{grid-template-columns:repeat(6,minmax(0,1fr))}.asset-screen-bars div{height:104px;display:flex;align-items:flex-end;justify-content:center;gap:4px;position:relative}.asset-screen-bars span{width:18px;min-height:8px;border-radius:4px 4px 0 0;box-shadow:0 0 16px #35a9f45c;background:linear-gradient(180deg,#53ddff,#1f7dff)}.asset-screen-bars span.income{box-shadow:0 0 16px #22c55e52;background:linear-gradient(180deg,#34d399,#118c61)}.asset-screen-bars b{position:absolute;left:0;right:0;bottom:-22px;color:#91c8e8;font-size:12px;font-weight:400;text-align:center}.asset-screen-dispatch>div:last-child button{height:36px;border:1px solid rgba(53,169,244,.3);border-radius:6px;background:linear-gradient(90deg,#2f6bff5c,#35a9f42e);text-align:center}.asset-screen-dispatch>div:last-child{display:grid;gap:12px}@media(max-width:1440px){.asset-screen-header{grid-template-columns:220px minmax(0,1fr) 250px}.asset-screen-brand{width:204px}.asset-screen-main{grid-template-columns:280px minmax(560px,1fr) 315px}.asset-screen-headline{grid-template-columns:repeat(2,190px)}}.asset-bigscreen-shell,body.asset-bigscreen-mode .platform,body:has(.asset-screen) .platform{min-width:1280px;background:#06111f}.asset-bigscreen-shell #view,body.asset-bigscreen-mode #view,body:has(.asset-screen) #view{min-height:100vh;padding:0;background:#06111f}.asset-bigscreen-shell .asset-screen,body.asset-bigscreen-mode .asset-screen,body:has(.asset-screen) .asset-screen{min-height:100vh;padding:0}.asset-bigscreen-shell .asset-screen-frame,body.asset-bigscreen-mode .asset-screen-frame,body:has(.asset-screen) .asset-screen-frame{height:100vh;min-height:0;gap:10px}.asset-bigscreen-shell .asset-screen-main,body.asset-bigscreen-mode .asset-screen-main,body:has(.asset-screen) .asset-screen-main{grid-template-columns:minmax(280px,.9fr) minmax(560px,2.2fr) minmax(315px,1fr);height:auto;min-height:0}body:has(.asset-screen) .asset-screen-header{min-height:64px;padding-top:8px;padding-bottom:8px}body:has(.asset-screen) .asset-screen-brand{height:48px}body:has(.asset-screen) .asset-screen-status-card{min-height:66px;padding-top:10px;padding-bottom:10px}body:has(.asset-screen) .asset-screen-status-card strong{font-size:28px}body:has(.asset-screen) .asset-screen-left,body:has(.asset-screen) .asset-screen-right,body:has(.asset-screen) .asset-screen-map-panel{overflow:hidden}body:has(.asset-screen) .asset-screen-panel{padding:12px}body:has(.asset-screen) .asset-screen-left{padding:10px 12px}body:has(.asset-screen) .asset-screen-panel-title{margin-bottom:10px}body:has(.asset-screen) .asset-screen-mix{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}body:has(.asset-screen) .asset-screen-mix-row{min-height:54px;padding:8px 10px}body:has(.asset-screen) .asset-screen-mix-row span{display:block;font-size:12px}body:has(.asset-screen) .asset-screen-mix-row b{float:none;display:block;margin-top:6px;font-size:18px}body:has(.asset-screen) .asset-screen-stat-grid{gap:6px;margin-top:6px}body:has(.asset-screen) .asset-screen-stat-grid div{min-height:50px;padding:8px 10px}body:has(.asset-screen) .asset-screen-stat-grid strong{font-size:18px;line-height:1.35}.asset-bigscreen-shell .asset-screen-map-real,body.asset-bigscreen-mode .asset-screen-map-real,body:has(.asset-screen) .asset-screen-map-real{left:2%;top:-10px;width:92%;height:310px}body:has(.asset-screen) .asset-screen-right{overflow:hidden}body:has(.asset-screen) .asset-screen-alert{min-height:62px;padding-top:8px;padding-bottom:8px}body:has(.asset-screen) .asset-screen-alert:before{height:42px}body:has(.asset-screen) .asset-screen-env{grid-template-columns:repeat(3,minmax(0,1fr))}body:has(.asset-screen) .asset-screen-env div{min-height:58px;padding:9px}body:has(.asset-screen) .asset-screen-env strong{font-size:20px}body:has(.asset-screen) .asset-screen-bottom .asset-screen-panel-title{margin-bottom:8px}body:has(.asset-screen) .asset-screen-bars{height:68px}body:has(.asset-screen) .asset-screen-bars div{height:60px}body:has(.asset-screen) .asset-screen-bars b{bottom:-16px}body:has(.asset-screen) .asset-screen-dispatch>div:last-child{gap:8px}body:has(.asset-screen) .asset-screen-dispatch>div:last-child button{height:30px}.asset-bigscreen-shell .asset-screen-brand-copy strong,body.asset-bigscreen-mode .asset-screen-brand-copy strong,body:has(.asset-screen) .asset-screen-brand-copy strong,.asset-bigscreen-shell .asset-screen-header h1,body.asset-bigscreen-mode .asset-screen-header h1,body:has(.asset-screen) .asset-screen-header h1{color:#f8fbff}.asset-bigscreen-shell .asset-screen-brand-copy small,body.asset-bigscreen-mode .asset-screen-brand-copy small,body:has(.asset-screen) .asset-screen-brand-copy small,.asset-bigscreen-shell .asset-screen-header p,body.asset-bigscreen-mode .asset-screen-header p,body:has(.asset-screen) .asset-screen-header p{color:#b9ddff}.asset-bigscreen-shell .asset-screen-status-card,body.asset-bigscreen-mode .asset-screen-status-card,body:has(.asset-screen) .asset-screen-status-card,.asset-bigscreen-shell .asset-screen-panel,body.asset-bigscreen-mode .asset-screen-panel,body:has(.asset-screen) .asset-screen-panel,.asset-bigscreen-shell .asset-screen-map-panel,body.asset-bigscreen-mode .asset-screen-map-panel,body:has(.asset-screen) .asset-screen-map-panel{border-color:#35a9f452;background:linear-gradient(180deg,#0e2f5bb8,#041027db),#030d20c7;box-shadow:inset 0 0 22px #35a9f41a,0 10px 26px #00000038}.asset-bigscreen-shell .asset-screen-status-card span,body.asset-bigscreen-mode .asset-screen-status-card span,body:has(.asset-screen) .asset-screen-status-card span{color:#bfdbfe}.asset-bigscreen-shell .asset-screen-status-card strong,body.asset-bigscreen-mode .asset-screen-status-card strong,body:has(.asset-screen) .asset-screen-status-card strong{color:#fff;font-size:28px}.asset-bigscreen-shell .asset-screen-status-card small,body.asset-bigscreen-mode .asset-screen-status-card small,body:has(.asset-screen) .asset-screen-status-card small{color:#8fd3ff}.asset-bigscreen-shell .asset-screen-mix-row span,body.asset-bigscreen-mode .asset-screen-mix-row span,body:has(.asset-screen) .asset-screen-mix-row span{display:block;color:#bfdbfe;font-size:12px}.asset-bigscreen-shell .asset-screen-mix-row b,body.asset-bigscreen-mode .asset-screen-mix-row b,body:has(.asset-screen) .asset-screen-mix-row b{float:none;display:block;margin-top:6px;color:#fff;font-size:18px}.asset-bigscreen-shell .asset-screen-stat-grid span,body.asset-bigscreen-mode .asset-screen-stat-grid span,body:has(.asset-screen) .asset-screen-stat-grid span,.asset-bigscreen-shell .asset-screen-env span,body.asset-bigscreen-mode .asset-screen-env span,body:has(.asset-screen) .asset-screen-env span{color:#91c8e8}.asset-bigscreen-shell .asset-screen-stat-grid strong,body.asset-bigscreen-mode .asset-screen-stat-grid strong,body:has(.asset-screen) .asset-screen-stat-grid strong,.asset-bigscreen-shell .asset-screen-env strong,body.asset-bigscreen-mode .asset-screen-env strong,body:has(.asset-screen) .asset-screen-env strong{color:#fff}.asset-bigscreen-shell .asset-screen-headline-card strong,body.asset-bigscreen-mode .asset-screen-headline-card strong,body:has(.asset-screen) .asset-screen-headline-card strong,.asset-bigscreen-shell .asset-screen-marker b,body.asset-bigscreen-mode .asset-screen-marker b,body:has(.asset-screen) .asset-screen-marker b,.asset-bigscreen-shell .asset-screen-alert strong,body.asset-bigscreen-mode .asset-screen-alert strong,body:has(.asset-screen) .asset-screen-alert strong{color:#f8fafc}.asset-bigscreen-shell .asset-screen-headline-card small,body.asset-bigscreen-mode .asset-screen-headline-card small,body:has(.asset-screen) .asset-screen-headline-card small{color:#8ee6ff}.asset-bigscreen-shell .asset-screen-marker small,body.asset-bigscreen-mode .asset-screen-marker small,body:has(.asset-screen) .asset-screen-marker small,.asset-bigscreen-shell .asset-screen-legend span,body.asset-bigscreen-mode .asset-screen-legend span,body:has(.asset-screen) .asset-screen-legend span{color:#dbeafe}.asset-bigscreen-shell .asset-screen-bars b,body.asset-bigscreen-mode .asset-screen-bars b,body:has(.asset-screen) .asset-screen-bars b{bottom:-16px;color:#91c8e8}.asset-bigscreen-shell,body.asset-bigscreen-mode .platform,body:has(.asset-screen) .platform{min-width:1280px;background:var(--bg)}.asset-bigscreen-shell .sidebar,body.asset-bigscreen-mode .sidebar,body:has(.asset-screen) .sidebar{display:block}.asset-bigscreen-shell .topbar,body.asset-bigscreen-mode .topbar,body:has(.asset-screen) .topbar{display:block}.asset-bigscreen-shell .tab-strip,body.asset-bigscreen-mode .tab-strip,body:has(.asset-screen) .tab-strip{display:flex}.asset-bigscreen-shell .content,body.asset-bigscreen-mode .content,body:has(.asset-screen) .content{min-width:1077px;margin-left:var(--nav-w);padding-top:var(--top-h)}.asset-bigscreen-shell #view,body.asset-bigscreen-mode #view,body:has(.asset-screen) #view{min-height:calc(100vh - var(--top-h) - 57px);padding:0 15px 10px;background:#f6f7fb}.asset-bigscreen-shell .asset-screen,body.asset-bigscreen-mode .asset-screen,body:has(.asset-screen) .asset-screen{min-height:auto;padding:0;color:#111827;background:#f6f7fb;border-radius:0}.asset-bigscreen-shell .asset-screen-frame,body.asset-bigscreen-mode .asset-screen-frame,body:has(.asset-screen) .asset-screen-frame{height:auto;min-height:calc(100vh - var(--top-h) - 57px - 10px);display:grid;grid-template-rows:auto auto minmax(360px,1fr) auto;gap:14px;padding:0;overflow:visible;border:0;border-radius:0;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}.asset-screen-frame:before{display:none}.asset-bigscreen-shell .asset-screen-header,body.asset-bigscreen-mode .asset-screen-header,body:has(.asset-screen) .asset-screen-header{min-height:86px;grid-template-columns:220px minmax(0,1fr) 236px;gap:18px;padding:16px 20px;border:1px solid #f0f1f5;border-radius:8px;background:linear-gradient(90deg,rgba(47,107,255,.07),transparent 42%),#fff;box-shadow:var(--shadow)}.asset-bigscreen-shell .asset-screen-brand,body.asset-bigscreen-mode .asset-screen-brand,body:has(.asset-screen) .asset-screen-brand{width:188px;height:52px;padding:6px 10px;border:1px solid #edf0f5;background:#f8fbff}.asset-bigscreen-shell .asset-screen-brand-copy strong,body.asset-bigscreen-mode .asset-screen-brand-copy strong,body:has(.asset-screen) .asset-screen-brand-copy strong{color:#111827}.asset-bigscreen-shell .asset-screen-brand-copy small,body.asset-bigscreen-mode .asset-screen-brand-copy small,body:has(.asset-screen) .asset-screen-brand-copy small{color:#8d95a3}.asset-bigscreen-shell .asset-screen-header h1,body.asset-bigscreen-mode .asset-screen-header h1,body:has(.asset-screen) .asset-screen-header h1{color:#111827;font-size:28px;text-shadow:none}.asset-bigscreen-shell .asset-screen-header p,body.asset-bigscreen-mode .asset-screen-header p,body:has(.asset-screen) .asset-screen-header p{color:#64748b}.asset-bigscreen-shell .asset-screen-clock,body.asset-bigscreen-mode .asset-screen-clock,body:has(.asset-screen) .asset-screen-clock{color:#8d95a3;border-color:#eef0f4;background:#f7f9fd}.asset-bigscreen-shell .asset-screen-clock strong,body.asset-bigscreen-mode .asset-screen-clock strong,body:has(.asset-screen) .asset-screen-clock strong{color:#111827}.asset-bigscreen-shell .asset-screen-status-card,body.asset-bigscreen-mode .asset-screen-status-card,body:has(.asset-screen) .asset-screen-status-card,.asset-bigscreen-shell .asset-screen-panel,body.asset-bigscreen-mode .asset-screen-panel,body:has(.asset-screen) .asset-screen-panel,.asset-bigscreen-shell .asset-screen-map-panel,body.asset-bigscreen-mode .asset-screen-map-panel,body:has(.asset-screen) .asset-screen-map-panel{border:1px solid #f0f1f5;background:#fff;box-shadow:var(--shadow)}.asset-bigscreen-shell .asset-screen-status-card,body.asset-bigscreen-mode .asset-screen-status-card,body:has(.asset-screen) .asset-screen-status-card{min-height:78px;padding:14px 18px}.asset-bigscreen-shell .asset-screen-status-card span,body.asset-bigscreen-mode .asset-screen-status-card span,body:has(.asset-screen) .asset-screen-status-card span,.asset-bigscreen-shell .asset-screen-status-card small,body.asset-bigscreen-mode .asset-screen-status-card small,body:has(.asset-screen) .asset-screen-status-card small{color:#64748b}.asset-bigscreen-shell .asset-screen-status-card strong,body.asset-bigscreen-mode .asset-screen-status-card strong,body:has(.asset-screen) .asset-screen-status-card strong{color:#111827}.asset-bigscreen-shell .asset-screen-main,body.asset-bigscreen-mode .asset-screen-main,body:has(.asset-screen) .asset-screen-main{grid-template-columns:minmax(238px,.82fr) minmax(430px,1.86fr) minmax(282px,.96fr);gap:14px}.asset-bigscreen-shell .asset-screen-panel,body.asset-bigscreen-mode .asset-screen-panel,body:has(.asset-screen) .asset-screen-panel{padding:16px;overflow:hidden}.asset-bigscreen-shell .asset-screen-panel-title,body.asset-bigscreen-mode .asset-screen-panel-title,body:has(.asset-screen) .asset-screen-panel-title{margin-bottom:14px;border-left-color:#2f6bff;color:#111827;font-weight:700}.asset-bigscreen-shell .asset-screen-panel-title button,body.asset-bigscreen-mode .asset-screen-panel-title button,body:has(.asset-screen) .asset-screen-panel-title button{color:#2f6bff;border:1px solid rgba(47,107,255,.18);background:#f4f7ff}.asset-bigscreen-shell .asset-screen-mix,body.asset-bigscreen-mode .asset-screen-mix,body:has(.asset-screen) .asset-screen-mix{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.asset-bigscreen-shell .asset-screen-mix-row,body.asset-bigscreen-mode .asset-screen-mix-row,body:has(.asset-screen) .asset-screen-mix-row,.asset-bigscreen-shell .asset-screen-stat-grid div,body.asset-bigscreen-mode .asset-screen-stat-grid div,body:has(.asset-screen) .asset-screen-stat-grid div,.asset-bigscreen-shell .asset-screen-env div,body.asset-bigscreen-mode .asset-screen-env div,body:has(.asset-screen) .asset-screen-env div{border:1px solid #eef0f4;background:#f8fbff}.asset-bigscreen-shell .asset-screen-mix-row span,body.asset-bigscreen-mode .asset-screen-mix-row span,body:has(.asset-screen) .asset-screen-mix-row span,.asset-bigscreen-shell .asset-screen-stat-grid span,body.asset-bigscreen-mode .asset-screen-stat-grid span,body:has(.asset-screen) .asset-screen-stat-grid span,.asset-bigscreen-shell .asset-screen-env span,body.asset-bigscreen-mode .asset-screen-env span,body:has(.asset-screen) .asset-screen-env span{color:#64748b}.asset-bigscreen-shell .asset-screen-mix-row b,body.asset-bigscreen-mode .asset-screen-mix-row b,body:has(.asset-screen) .asset-screen-mix-row b,.asset-bigscreen-shell .asset-screen-stat-grid strong,body.asset-bigscreen-mode .asset-screen-stat-grid strong,body:has(.asset-screen) .asset-screen-stat-grid strong,.asset-bigscreen-shell .asset-screen-env strong,body.asset-bigscreen-mode .asset-screen-env strong,body:has(.asset-screen) .asset-screen-env strong{color:#111827}.asset-bigscreen-shell .asset-screen-map-panel,body.asset-bigscreen-mode .asset-screen-map-panel,body:has(.asset-screen) .asset-screen-map-panel{background:linear-gradient(90deg,rgba(47,107,255,.06) 1px,transparent 1px),linear-gradient(0deg,rgba(47,107,255,.06) 1px,transparent 1px),#fff;background-size:48px 48px,48px 48px,auto}.asset-bigscreen-shell .asset-screen-headline-card,body.asset-bigscreen-mode .asset-screen-headline-card,body:has(.asset-screen) .asset-screen-headline-card{border-color:#2f6bff26;background:#ffffffe6;box-shadow:0 10px 28px #2f6bff1f}.asset-bigscreen-shell .asset-screen-headline-card span,body.asset-bigscreen-mode .asset-screen-headline-card span,body:has(.asset-screen) .asset-screen-headline-card span{color:#64748b}.asset-bigscreen-shell .asset-screen-headline-card strong,body.asset-bigscreen-mode .asset-screen-headline-card strong,body:has(.asset-screen) .asset-screen-headline-card strong{color:#111827}.asset-bigscreen-shell .asset-screen-headline-card small,body.asset-bigscreen-mode .asset-screen-headline-card small,body:has(.asset-screen) .asset-screen-headline-card small{color:#2f6bff}.asset-bigscreen-shell .asset-screen-map,body.asset-bigscreen-mode .asset-screen-map,body:has(.asset-screen) .asset-screen-map{min-height:360px;margin-top:74px}.asset-bigscreen-shell .asset-screen-map-floor,body.asset-bigscreen-mode .asset-screen-map-floor,body:has(.asset-screen) .asset-screen-map-floor,.asset-bigscreen-shell .asset-screen-map:before,body.asset-bigscreen-mode .asset-screen-map:before,body:has(.asset-screen) .asset-screen-map:before{opacity:.18}.asset-bigscreen-shell .asset-screen-map-real,body.asset-bigscreen-mode .asset-screen-map-real,body:has(.asset-screen) .asset-screen-map-real{top:-4px;height:330px;filter:saturate(1.03) drop-shadow(0 10px 18px rgba(47,107,255,.22))}.asset-bigscreen-shell .asset-screen-marker,body.asset-bigscreen-mode .asset-screen-marker,body:has(.asset-screen) .asset-screen-marker{color:#111827}.asset-bigscreen-shell .asset-screen-marker b,body.asset-bigscreen-mode .asset-screen-marker b,body:has(.asset-screen) .asset-screen-marker b{color:#111827;text-shadow:0 1px 0 rgba(255,255,255,.9)}.asset-bigscreen-shell .asset-screen-marker small,body.asset-bigscreen-mode .asset-screen-marker small,body:has(.asset-screen) .asset-screen-marker small{color:#475569}.asset-bigscreen-shell .asset-screen-legend,body.asset-bigscreen-mode .asset-screen-legend,body:has(.asset-screen) .asset-screen-legend{border-color:#eef0f4;background:#ffffffeb}.asset-bigscreen-shell .asset-screen-legend span,body.asset-bigscreen-mode .asset-screen-legend span,body:has(.asset-screen) .asset-screen-legend span{color:#475569}.asset-bigscreen-shell .asset-screen-alert,body.asset-bigscreen-mode .asset-screen-alert,body:has(.asset-screen) .asset-screen-alert{border-color:#eef0f4;background:#f8fbff}.asset-bigscreen-shell .asset-screen-alert strong,body.asset-bigscreen-mode .asset-screen-alert strong,body:has(.asset-screen) .asset-screen-alert strong{color:#111827}.asset-bigscreen-shell .asset-screen-alert span,body.asset-bigscreen-mode .asset-screen-alert span,body:has(.asset-screen) .asset-screen-alert span{color:#2f6bff}.asset-bigscreen-shell .asset-screen-alert small,body.asset-bigscreen-mode .asset-screen-alert small,body:has(.asset-screen) .asset-screen-alert small{color:#ff8a2a}.asset-bigscreen-shell .asset-screen-empty,body.asset-bigscreen-mode .asset-screen-empty,body:has(.asset-screen) .asset-screen-empty{color:#64748b;border-color:#d9e0ef}.asset-bigscreen-shell .asset-screen-bottom,body.asset-bigscreen-mode .asset-screen-bottom,body:has(.asset-screen) .asset-screen-bottom{grid-template-columns:1.16fr 1.16fr .78fr;gap:14px}.asset-bigscreen-shell .asset-screen-bottom .asset-screen-panel,body.asset-bigscreen-mode .asset-screen-bottom .asset-screen-panel,body:has(.asset-screen) .asset-screen-bottom .asset-screen-panel{min-height:144px;padding:14px 16px}.asset-bigscreen-shell .asset-screen-bars,body.asset-bigscreen-mode .asset-screen-bars,body:has(.asset-screen) .asset-screen-bars{height:86px}.asset-bigscreen-shell .asset-screen-bars div,body.asset-bigscreen-mode .asset-screen-bars div,body:has(.asset-screen) .asset-screen-bars div{height:78px}.asset-bigscreen-shell .asset-screen-bars b,body.asset-bigscreen-mode .asset-screen-bars b,body:has(.asset-screen) .asset-screen-bars b{color:#64748b}.asset-bigscreen-shell .asset-screen-dispatch>div:last-child button,body.asset-bigscreen-mode .asset-screen-dispatch>div:last-child button,body:has(.asset-screen) .asset-screen-dispatch>div:last-child button{height:34px;color:#2f6bff;border-color:#2f6bff29;background:#f4f7ff}@media(max-width:1440px){.asset-bigscreen-shell .asset-screen-main,body.asset-bigscreen-mode .asset-screen-main,body:has(.asset-screen) .asset-screen-main{grid-template-columns:250px minmax(430px,1fr) 292px}.asset-bigscreen-shell .asset-screen-header,body.asset-bigscreen-mode .asset-screen-header,body:has(.asset-screen) .asset-screen-header{grid-template-columns:204px minmax(0,1fr) 232px}}.asset-bigscreen-shell,body.asset-bigscreen-mode .platform,body:has(.asset-screen) .platform{min-width:1280px;background:#101721}.asset-bigscreen-shell .sidebar,.asset-bigscreen-shell .topbar,.asset-bigscreen-shell .tab-strip,body.asset-bigscreen-mode .sidebar,body.asset-bigscreen-mode .topbar,body.asset-bigscreen-mode .tab-strip,body:has(.asset-screen) .sidebar,body:has(.asset-screen) .topbar,body:has(.asset-screen) .tab-strip{display:none}.asset-bigscreen-shell .content,body.asset-bigscreen-mode .content,body:has(.asset-screen) .content{min-width:1280px;margin-left:0;padding-top:0}.asset-bigscreen-shell #view,body.asset-bigscreen-mode #view,body:has(.asset-screen) #view{min-height:100vh;padding:0;background:#101721}.asset-bigscreen-shell .asset-screen,body.asset-bigscreen-mode .asset-screen,body:has(.asset-screen) .asset-screen{min-height:100vh;padding:0;color:#dbeafe;background:radial-gradient(circle at 16% 20%,rgba(123,88,255,.18),transparent 18%),radial-gradient(circle at 78% 8%,rgba(53,169,244,.18),transparent 20%),linear-gradient(90deg,rgba(53,169,244,.08) 1px,transparent 1px),linear-gradient(0deg,rgba(53,169,244,.06) 1px,transparent 1px),linear-gradient(135deg,#101721,#0b2b58 48%,#111827);background-size:auto,auto,48px 48px,48px 48px,auto;border-radius:0}.asset-bigscreen-shell .asset-screen-frame,body.asset-bigscreen-mode .asset-screen-frame,body:has(.asset-screen) .asset-screen-frame{height:100vh;min-height:720px;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:10px;overflow:hidden;border:1px solid rgba(53,169,244,.38);border-radius:10px;padding:12px;background:linear-gradient(180deg,#12182166,#08101cb8),#07111fc7;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.asset-bigscreen-shell .asset-screen-frame:before,body.asset-bigscreen-mode .asset-screen-frame:before,body:has(.asset-screen) .asset-screen-frame:before{display:block;background:linear-gradient(90deg,#2f6bff00 0 34%,#35a9f414 48%,#2f6bff00 63%),repeating-linear-gradient(90deg,transparent 0 120px,rgba(53,169,244,.045) 121px 122px)}.asset-bigscreen-shell .asset-screen-header,body.asset-bigscreen-mode .asset-screen-header,body:has(.asset-screen) .asset-screen-header{min-height:72px;grid-template-columns:230px minmax(0,1fr) 250px;gap:18px;padding:10px 16px;border:1px solid rgba(53,169,244,.38);border-radius:8px;background:linear-gradient(90deg,#121821f5,#10264edb 52%,#121821e6),linear-gradient(180deg,rgba(53,169,244,.14),transparent);box-shadow:inset 0 -1px 18px #35a9f424}.asset-bigscreen-shell .asset-screen-brand,body.asset-bigscreen-mode .asset-screen-brand,body:has(.asset-screen) .asset-screen-brand{width:208px;height:52px;padding:6px 12px;border:1px solid rgba(53,169,244,.28);background:linear-gradient(90deg,#2f6bff29,#35a9f40f),#0412237a}.asset-bigscreen-shell .asset-screen-brand-copy strong,body.asset-bigscreen-mode .asset-screen-brand-copy strong,body:has(.asset-screen) .asset-screen-brand-copy strong,.asset-bigscreen-shell .asset-screen-header h1,body.asset-bigscreen-mode .asset-screen-header h1,body:has(.asset-screen) .asset-screen-header h1,.asset-bigscreen-shell .asset-screen-status-card strong,body.asset-bigscreen-mode .asset-screen-status-card strong,body:has(.asset-screen) .asset-screen-status-card strong,.asset-bigscreen-shell .asset-screen-mix-row b,body.asset-bigscreen-mode .asset-screen-mix-row b,body:has(.asset-screen) .asset-screen-mix-row b,.asset-bigscreen-shell .asset-screen-stat-grid strong,body.asset-bigscreen-mode .asset-screen-stat-grid strong,body:has(.asset-screen) .asset-screen-stat-grid strong,.asset-bigscreen-shell .asset-screen-env strong,body.asset-bigscreen-mode .asset-screen-env strong,body:has(.asset-screen) .asset-screen-env strong,.asset-bigscreen-shell .asset-screen-headline-card strong,body.asset-bigscreen-mode .asset-screen-headline-card strong,body:has(.asset-screen) .asset-screen-headline-card strong,.asset-bigscreen-shell .asset-screen-marker b,body.asset-bigscreen-mode .asset-screen-marker b,body:has(.asset-screen) .asset-screen-marker b,.asset-bigscreen-shell .asset-screen-alert strong,body.asset-bigscreen-mode .asset-screen-alert strong,body:has(.asset-screen) .asset-screen-alert strong{color:#f8fafc}.asset-bigscreen-shell .asset-screen-header h1,body.asset-bigscreen-mode .asset-screen-header h1,body:has(.asset-screen) .asset-screen-header h1{font-size:29px;text-shadow:0 0 18px rgba(53,169,244,.52)}.asset-bigscreen-shell .asset-screen-brand-copy small,body.asset-bigscreen-mode .asset-screen-brand-copy small,body:has(.asset-screen) .asset-screen-brand-copy small,.asset-bigscreen-shell .asset-screen-header p,body.asset-bigscreen-mode .asset-screen-header p,body:has(.asset-screen) .asset-screen-header p,.asset-bigscreen-shell .asset-screen-status-card span,body.asset-bigscreen-mode .asset-screen-status-card span,body:has(.asset-screen) .asset-screen-status-card span,.asset-bigscreen-shell .asset-screen-mix-row span,body.asset-bigscreen-mode .asset-screen-mix-row span,body:has(.asset-screen) .asset-screen-mix-row span{color:#bfdbfe}.asset-bigscreen-shell .asset-screen-clock,body.asset-bigscreen-mode .asset-screen-clock,body:has(.asset-screen) .asset-screen-clock{color:#bfdbfe;border-color:#94a3b829;background:#04122380}.asset-bigscreen-shell .asset-screen-clock strong,body.asset-bigscreen-mode .asset-screen-clock strong,body:has(.asset-screen) .asset-screen-clock strong{color:#f8fafc}.asset-bigscreen-shell .asset-screen-status-card,body.asset-bigscreen-mode .asset-screen-status-card,body:has(.asset-screen) .asset-screen-status-card,.asset-bigscreen-shell .asset-screen-panel,body.asset-bigscreen-mode .asset-screen-panel,body:has(.asset-screen) .asset-screen-panel,.asset-bigscreen-shell .asset-screen-map-panel,body.asset-bigscreen-mode .asset-screen-map-panel,body:has(.asset-screen) .asset-screen-map-panel{border:1px solid rgba(53,169,244,.32);background:linear-gradient(180deg,#0e2f5bb8,#041027db),#030d20c7;box-shadow:inset 0 0 22px #35a9f41a,0 10px 26px #00000038}.asset-bigscreen-shell .asset-screen-status-card,body.asset-bigscreen-mode .asset-screen-status-card,body:has(.asset-screen) .asset-screen-status-card{min-height:66px;padding:10px 16px}.asset-bigscreen-shell .asset-screen-status-card strong,body.asset-bigscreen-mode .asset-screen-status-card strong,body:has(.asset-screen) .asset-screen-status-card strong{font-size:28px}.asset-bigscreen-shell .asset-screen-status-card small,body.asset-bigscreen-mode .asset-screen-status-card small,body:has(.asset-screen) .asset-screen-status-card small,.asset-bigscreen-shell .asset-screen-headline-card small,body.asset-bigscreen-mode .asset-screen-headline-card small,body:has(.asset-screen) .asset-screen-headline-card small{color:#8fd3ff}.asset-bigscreen-shell .asset-screen-main,body.asset-bigscreen-mode .asset-screen-main,body:has(.asset-screen) .asset-screen-main{grid-template-columns:minmax(280px,.9fr) minmax(560px,2.2fr) minmax(315px,1fr);gap:12px;min-height:0}.asset-bigscreen-shell .asset-screen-panel,body.asset-bigscreen-mode .asset-screen-panel,body:has(.asset-screen) .asset-screen-panel{padding:12px;overflow:hidden}.asset-bigscreen-shell .asset-screen-left,body.asset-bigscreen-mode .asset-screen-left,body:has(.asset-screen) .asset-screen-left{padding:10px 12px}.asset-bigscreen-shell .asset-screen-panel-title,body.asset-bigscreen-mode .asset-screen-panel-title,body:has(.asset-screen) .asset-screen-panel-title{margin-bottom:10px;border-left-color:#35a9f4;color:#eff6ff}.asset-bigscreen-shell .asset-screen-panel-title button,body.asset-bigscreen-mode .asset-screen-panel-title button,body:has(.asset-screen) .asset-screen-panel-title button{color:#e0f2fe;border-color:#35a9f475;background:linear-gradient(90deg,#2f6bff7a,#35a9f44d)}.asset-bigscreen-shell .asset-screen-mix,body.asset-bigscreen-mode .asset-screen-mix,body:has(.asset-screen) .asset-screen-mix{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.asset-bigscreen-shell .asset-screen-mix-row,body.asset-bigscreen-mode .asset-screen-mix-row,body:has(.asset-screen) .asset-screen-mix-row{min-height:54px;padding:8px 10px;border-color:#35a9f442;background:linear-gradient(90deg,rgba(47,107,255,.16),transparent 70%),#031127b8}.asset-bigscreen-shell .asset-screen-mix-row b,body.asset-bigscreen-mode .asset-screen-mix-row b,body:has(.asset-screen) .asset-screen-mix-row b{float:none;display:block;margin-top:6px;font-size:18px}.asset-bigscreen-shell .asset-screen-stat-grid,body.asset-bigscreen-mode .asset-screen-stat-grid,body:has(.asset-screen) .asset-screen-stat-grid{gap:6px;margin-top:6px}.asset-bigscreen-shell .asset-screen-stat-grid div,body.asset-bigscreen-mode .asset-screen-stat-grid div,body:has(.asset-screen) .asset-screen-stat-grid div,.asset-bigscreen-shell .asset-screen-env div,body.asset-bigscreen-mode .asset-screen-env div,body:has(.asset-screen) .asset-screen-env div{min-height:50px;border-color:#94a3b829;background:#051430c2}.asset-bigscreen-shell .asset-screen-stat-grid span,body.asset-bigscreen-mode .asset-screen-stat-grid span,body:has(.asset-screen) .asset-screen-stat-grid span,.asset-bigscreen-shell .asset-screen-env span,body.asset-bigscreen-mode .asset-screen-env span,body:has(.asset-screen) .asset-screen-env span,.asset-bigscreen-shell .asset-screen-marker small,body.asset-bigscreen-mode .asset-screen-marker small,body:has(.asset-screen) .asset-screen-marker small,.asset-bigscreen-shell .asset-screen-legend span,body.asset-bigscreen-mode .asset-screen-legend span,body:has(.asset-screen) .asset-screen-legend span{color:#dbeafe}.asset-bigscreen-shell .asset-screen-map-panel,body.asset-bigscreen-mode .asset-screen-map-panel,body:has(.asset-screen) .asset-screen-map-panel{background:linear-gradient(180deg,rgba(53,169,244,.17),transparent 36%),linear-gradient(90deg,rgba(53,169,244,.16) 1px,transparent 1px),linear-gradient(0deg,rgba(47,107,255,.12) 1px,transparent 1px),#041932;background-size:auto,48px 48px,48px 48px,auto}.asset-bigscreen-shell .asset-screen-map,body.asset-bigscreen-mode .asset-screen-map,body:has(.asset-screen) .asset-screen-map{height:100%;min-height:330px;margin-top:68px}.asset-bigscreen-shell .asset-screen-map-real,body.asset-bigscreen-mode .asset-screen-map-real,body:has(.asset-screen) .asset-screen-map-real{left:2%;top:-10px;width:92%;height:310px;filter:saturate(1.12) drop-shadow(0 0 18px rgba(53,169,244,.48))}.asset-bigscreen-shell .asset-screen-headline-card,body.asset-bigscreen-mode .asset-screen-headline-card,body:has(.asset-screen) .asset-screen-headline-card{border-color:#35a9f45c;background:linear-gradient(180deg,#0f172ad1,#0f172a8f),linear-gradient(90deg,#2f6bff38,#35a9f42e);box-shadow:0 0 24px #2f6bff33,inset 0 0 14px #35a9f421}.asset-bigscreen-shell .asset-screen-headline-card span,body.asset-bigscreen-mode .asset-screen-headline-card span,body:has(.asset-screen) .asset-screen-headline-card span{color:#93d7ff}.asset-bigscreen-shell .asset-screen-legend,body.asset-bigscreen-mode .asset-screen-legend,body:has(.asset-screen) .asset-screen-legend{border-color:#35a9f438;background:#020c1e8a}.asset-bigscreen-shell .asset-screen-alert,body.asset-bigscreen-mode .asset-screen-alert,body:has(.asset-screen) .asset-screen-alert{min-height:62px;border-color:#35a9f43d;background:linear-gradient(90deg,rgba(255,138,42,.14),transparent 64%),#030d20b8}.asset-bigscreen-shell .asset-screen-alert span,body.asset-bigscreen-mode .asset-screen-alert span,body:has(.asset-screen) .asset-screen-alert span{color:#9bd9ff}.asset-bigscreen-shell .asset-screen-alert small,body.asset-bigscreen-mode .asset-screen-alert small,body:has(.asset-screen) .asset-screen-alert small{color:#ffdb87}.asset-bigscreen-shell .asset-screen-bottom,body.asset-bigscreen-mode .asset-screen-bottom,body:has(.asset-screen) .asset-screen-bottom{grid-template-columns:1.24fr 1.24fr .72fr;gap:12px}.asset-bigscreen-shell .asset-screen-bottom .asset-screen-panel,body.asset-bigscreen-mode .asset-screen-bottom .asset-screen-panel,body:has(.asset-screen) .asset-screen-bottom .asset-screen-panel{min-height:118px;padding:10px 12px}.asset-bigscreen-shell .asset-screen-bars,body.asset-bigscreen-mode .asset-screen-bars,body:has(.asset-screen) .asset-screen-bars{height:68px}.asset-bigscreen-shell .asset-screen-bars div,body.asset-bigscreen-mode .asset-screen-bars div,body:has(.asset-screen) .asset-screen-bars div{height:60px}.asset-bigscreen-shell .asset-screen-bars b,body.asset-bigscreen-mode .asset-screen-bars b{bottom:-16px;color:#91c8e8}.asset-bigscreen-shell .asset-screen-dispatch>div:last-child,body.asset-bigscreen-mode .asset-screen-dispatch>div:last-child,body:has(.asset-screen) .asset-screen-dispatch>div:last-child{gap:8px}.asset-bigscreen-shell .asset-screen-dispatch>div:last-child button,body.asset-bigscreen-mode .asset-screen-dispatch>div:last-child button,body:has(.asset-screen) .asset-screen-dispatch>div:last-child button{height:30px;color:#e0f2fe;border-color:#35a9f44d;background:linear-gradient(90deg,#2f6bff5c,#35a9f42e)}@media(max-width:1440px){.asset-bigscreen-shell .asset-screen-main,body.asset-bigscreen-mode .asset-screen-main,body:has(.asset-screen) .asset-screen-main{grid-template-columns:minmax(280px,.9fr) minmax(560px,2.2fr) minmax(315px,1fr)}.asset-bigscreen-shell .asset-screen-header,body.asset-bigscreen-mode .asset-screen-header,body:has(.asset-screen) .asset-screen-header{grid-template-columns:220px minmax(0,1fr) 250px}}.electric-ai-assistant{display:flex;align-items:center}.electric-ai-trigger{min-width:142px;height:40px;display:inline-flex;align-items:center;gap:8px;padding:3px 11px 3px 5px;color:#dff9ff;border:1px solid rgba(52,211,235,.48);border-radius:7px;background:linear-gradient(115deg,#082f49,#0d4c68 72%,#075985);box-shadow:inset 0 0 14px #22d3ee14,0 4px 14px #0322352e}.electric-ai-trigger:hover,.electric-ai-trigger:focus-visible{color:#fff;border-color:#67e8f9;background:linear-gradient(115deg,#0c4a6e,#0e7490);outline:none;box-shadow:0 0 0 3px #22d3ee2e}.electric-ai-trigger__icon{position:relative;width:32px;height:32px;flex:0 0 32px;overflow:hidden;border:1px solid rgba(103,232,249,.6);border-radius:6px;background:#071d2e}.electric-ai-trigger__icon:after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 8px #22d3ee59}.electric-ai-trigger__icon img{width:100%;height:100%;object-fit:cover}.electric-ai-trigger__copy{display:grid;text-align:left;line-height:1.05}.electric-ai-trigger__copy strong{font-size:13px;letter-spacing:.03em}.electric-ai-trigger__copy small{margin-top:4px;color:#83e7f4;font-size:9px;letter-spacing:.12em}.electric-ai-overlay{position:fixed;inset:0;z-index:10020;background:#020c1785;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.electric-ai-drawer{position:absolute;top:0;right:0;width:min(480px,100vw);height:100%;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;color:#d8eaf1;border-left:1px solid rgba(34,211,238,.28);background:linear-gradient(#092333f5,#051623fc),repeating-linear-gradient(0deg,transparent 0 23px,rgba(34,211,238,.025) 24px);box-shadow:-18px 0 60px #00000061}.electric-ai-drawer__header{min-height:96px;display:flex;align-items:center;justify-content:space-between;padding:16px 16px 14px 18px;border-bottom:1px solid rgba(103,232,249,.15);background:linear-gradient(105deg,#082f49f0,#094458b8)}.electric-ai-identity{display:flex;align-items:center;gap:13px;min-width:0}.electric-ai-portrait{width:61px;height:61px;flex:0 0 61px;overflow:hidden;border:1px solid rgba(103,232,249,.56);border-radius:9px;background:#061a2b;box-shadow:0 0 20px #22d3ee2e}.electric-ai-portrait img{width:100%;height:100%;object-fit:cover}.electric-ai-kicker{color:#67e8f9;font-size:9px;letter-spacing:.12em}.electric-ai-kicker i{display:inline-block;width:6px;height:6px;margin-right:5px;border-radius:50%;background:#22d3ee;box-shadow:0 0 8px #22d3ee}.electric-ai-identity h2{margin:5px 0 3px;color:#f5fdff;font-size:20px;letter-spacing:.08em}.electric-ai-identity p{margin:0;color:#9db8c4;font-size:12px}.electric-ai-close{width:34px;height:34px;flex:0 0 34px;color:#b5d3dd;border:1px solid transparent;border-radius:5px;background:transparent;font-size:25px;line-height:1}.electric-ai-close:hover,.electric-ai-close:focus-visible{color:#fff;border-color:#67e8f966;background:#22d3ee1a;outline:none}.electric-ai-context{padding:12px 18px;border-bottom:1px solid rgba(103,232,249,.1);background:#031826b8}.electric-ai-context__title{display:flex;align-items:center;justify-content:space-between;color:#83a7b5;font-size:11px}.electric-ai-context__title b{padding:3px 7px;color:#67e8f9;border:1px solid rgba(34,211,238,.28);border-radius:3px;background:#0891b21f;font-size:10px;font-weight:600}.electric-ai-context__title b.readonly{color:#fbbf24;border-color:#fbbf2452;background:#f59e0b1a}.electric-ai-context__chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.electric-ai-context__chips span{max-width:100%;overflow:hidden;padding:4px 7px;color:#c8dde5;border-left:2px solid #0891b2;border-radius:2px;background:#113748bd;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.electric-ai-conversation{min-height:0;overflow-y:auto;padding:18px;scrollbar-color:#155e75 transparent}.electric-ai-welcome{margin:20px 0 14px;padding:24px 20px;text-align:center;border:1px solid rgba(34,211,238,.16);border-radius:7px;background:linear-gradient(135deg,#0e74901f,#082f4933)}.electric-ai-welcome__mark{width:44px;height:44px;display:grid;place-items:center;margin:0 auto 12px;color:#fbbf24;border:1px solid rgba(251,191,36,.38);border-radius:50%;background:#f59e0b14;box-shadow:0 0 22px #f59e0b1a;font-size:23px}.electric-ai-welcome h3{margin:0 0 8px;color:#eefcff;font-size:16px}.electric-ai-welcome p{margin:0;color:#91adba;font-size:12px;line-height:1.7}.electric-ai-capabilities{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:16px}.electric-ai-capabilities span{padding:6px 2px;color:#8fddeb;border:1px solid rgba(34,211,238,.16);border-radius:3px;background:#082f4970;font-size:10px}.electric-ai-message{margin-bottom:16px}.electric-ai-question{max-width:84%;margin-left:auto;padding:10px 12px;color:#ecfeff;border:1px solid rgba(34,211,238,.23);border-radius:8px 2px 8px 8px;background:#0e5d77;font-size:13px;line-height:1.55}.electric-ai-thinking,.electric-ai-error,.electric-ai-answer{border:1px solid rgba(34,211,238,.16);border-radius:3px 8px 8px;background:#092635e0}.electric-ai-thinking{padding:13px;color:#99bac6;font-size:12px}.electric-ai-thinking span{width:5px;height:5px;display:inline-block;margin-right:3px;border-radius:50%;background:#22d3ee;animation:electric-ai-pulse 1.15s ease-in-out infinite}.electric-ai-thinking span:nth-child(2){animation-delay:.14s}.electric-ai-thinking span:nth-child(3){animation-delay:.28s;margin-right:8px}.electric-ai-error{padding:13px;color:#fecaca;border-color:#f8717147;background:#7f1d1d29}.electric-ai-error strong{font-size:13px}.electric-ai-error p{margin:6px 0 10px;font-size:12px;line-height:1.5}.electric-ai-error button{color:#fef2f2;border:1px solid rgba(248,113,113,.4);background:transparent}.electric-ai-answer{overflow:hidden;padding:14px}.electric-ai-answer__meta{display:flex;align-items:center;gap:9px;margin-bottom:10px;color:#7899a6;font-size:10px}.electric-ai-status{padding:3px 6px;border:1px solid currentColor;border-radius:3px}.electric-ai-mode{padding:3px 6px;border:1px solid currentColor;border-radius:3px;font-weight:600;letter-spacing:.03em}.electric-ai-mode.is-llm{color:#67e8f9;background:#0891b21f}.electric-ai-mode.is-fallback{color:#fbbf24;background:#f59e0b1a}.electric-ai-execution-detail{display:flex;flex-wrap:wrap;gap:5px 12px;margin:-3px 0 10px;color:#7598a5;font-size:10px;line-height:1.45}.electric-ai-status.is-live{color:#5eead4}.electric-ai-status.is-demo{color:#93c5fd}.electric-ai-status.is-stale{color:#fbbf24}.electric-ai-status.is-error{color:#fca5a5}.electric-ai-answer h3{margin:0 0 8px;color:#f3fcff;font-size:15px}.electric-ai-summary,.electric-ai-sections p{margin:0;color:#c3d7df;font-size:12px;line-height:1.7;white-space:pre-line}.electric-ai-sections section{margin-top:13px;padding-top:11px;border-top:1px solid rgba(103,232,249,.1)}.electric-ai-sections h4,.electric-ai-evidence h4{margin:0 0 6px;color:#7dd3fc;font-size:11px;letter-spacing:.04em}.electric-ai-evidence{margin-top:14px;padding:11px;border-left:2px solid #0891b2;border-radius:2px;background:#051e2db3}.electric-ai-evidence dl,.electric-ai-evidence dd{margin:0}.electric-ai-evidence dl>div{display:grid;grid-template-columns:110px minmax(0,1fr);gap:9px;padding:7px 0;border-bottom:1px solid rgba(148,211,228,.07)}.electric-ai-evidence dl>div:last-child{border-bottom:0}.electric-ai-evidence dt{color:#7f9faa;font-size:11px}.electric-ai-evidence dd{min-width:0;color:#dff8fc;font-size:11px}.electric-ai-evidence dd strong{display:block;overflow-wrap:anywhere;font-weight:600}.electric-ai-evidence dd small{display:block;margin-top:3px;color:#688b98;font-size:9px}.electric-ai-actions{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-top:13px}.electric-ai-actions>span{color:#7594a0;font-size:10px}.electric-ai-actions button{padding:6px 9px;color:#b9f4fc;border:1px solid rgba(34,211,238,.3);border-radius:3px;background:#0891b21f;font-size:11px}.electric-ai-actions button:hover{border-color:#67e8f9;background:#0891b23d}.electric-ai-actions b{color:#fbbf24}.electric-ai-trace{margin:12px 0 0;color:#577985;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9px}.electric-ai-composer{padding:12px 16px 14px;border-top:1px solid rgba(103,232,249,.14);background:#041420fa}.electric-ai-prompts{display:flex;gap:6px;overflow-x:auto;padding-bottom:9px}.electric-ai-prompts button{flex:0 0 auto;padding:6px 8px;color:#9ac7d4;border:1px solid rgba(103,232,249,.15);border-radius:4px;background:#082f497a;font-size:10px}.electric-ai-prompts button:hover:not(:disabled){color:#e5fbff;border-color:#67e8f973}.electric-ai-composer form{position:relative;display:flex;align-items:flex-end;border:1px solid rgba(103,232,249,.28);border-radius:6px;background:#092a39e0}.electric-ai-composer form:focus-within{border-color:#22d3ee;box-shadow:0 0 0 2px #22d3ee1a}.electric-ai-composer label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.electric-ai-composer textarea{width:100%;min-height:54px;resize:none;padding:10px 47px 9px 11px;color:#e6f9fc;border:0;outline:none;background:transparent;font:inherit;font-size:12px;line-height:1.5}.electric-ai-composer textarea::placeholder{color:#64818d}.electric-ai-composer form>button{position:absolute;right:8px;bottom:9px;width:32px;height:32px;display:grid;place-items:center;color:#06212d;border:0;border-radius:4px;background:linear-gradient(135deg,#67e8f9,#22d3ee)}.electric-ai-composer form>button:disabled{color:#5c747c;background:#173945;opacity:.7}.electric-ai-composer>p{margin:8px 0 0;color:#587681;font-size:9px;text-align:center}.electric-ai-fade-enter-active,.electric-ai-fade-leave-active{transition:opacity .2s ease}.electric-ai-fade-enter-active .electric-ai-drawer,.electric-ai-fade-leave-active .electric-ai-drawer{transition:transform .24s ease}.electric-ai-fade-enter-from,.electric-ai-fade-leave-to{opacity:0}.electric-ai-fade-enter-from .electric-ai-drawer,.electric-ai-fade-leave-to .electric-ai-drawer{transform:translate(100%)}@keyframes electric-ai-pulse{0%,to{opacity:.32;transform:translateY(0)}50%{opacity:1;transform:translateY(-2px)}}@media(max-width:1360px){.electric-ai-trigger{min-width:40px;width:40px;padding:3px}.electric-ai-trigger__copy{display:none}}.loading-mask{position:absolute;inset:0;z-index:8;display:grid;place-items:center;color:#7d8796;background:#f6f7fb8c}.load-error{min-height:260px;display:grid;place-items:center;align-content:center;gap:12px;margin:18px;padding:28px;text-align:center;border:1px solid #fee2e2;border-radius:8px;background:#fff}.load-error strong{color:#991b1b;font-size:18px}.load-error span{max-width:560px;color:#64748b}.load-error button{height:34px;padding:0 16px;color:#fff;border-radius:6px;background:#1677ff}.action-toast{position:fixed;left:50%;bottom:34px;z-index:100;min-width:170px;padding:10px 18px;color:#fff;text-align:center;border-radius:4px;background:#111827db;transform:translate(-50%)}.line-icon{position:relative;width:18px;height:18px;display:inline-block;flex:0 0 18px;box-sizing:border-box;opacity:.9}.line-icon.search{border:1px solid currentColor;border-radius:50%}.line-icon.search:after{content:"";position:absolute;width:7px;height:1px;right:-5px;bottom:0;background:currentColor;transform:rotate(45deg)}.line-icon.message:before{content:"...";position:absolute;inset:-5px 0 0;text-align:center}.line-icon.message{border:1px solid currentColor;border-radius:3px}.line-icon.bookmark{border:1px solid currentColor;border-radius:2px}.line-icon.bookmark:before{content:"";position:absolute;left:4px;bottom:-1px;width:7px;height:7px;background:#1c2232;transform:rotate(45deg)}.line-icon.diamond{border:1.5px solid currentColor;border-radius:2px;transform:rotate(45deg)}.line-icon.ops{border:1.5px solid currentColor;border-radius:50%}.line-icon.ops:before{content:"";position:absolute;left:4px;bottom:4px;width:7px;height:4px;border-top:1.5px solid currentColor;transform:rotate(-38deg);transform-origin:right center}.line-icon.ops:after{content:"";position:absolute;left:7px;bottom:6px;width:3px;height:3px;border-radius:50%;background:currentColor}.line-icon.file{border:1.5px solid currentColor;border-radius:2px;clip-path:polygon(0 0,68% 0,100% 30%,100% 100%,0 100%)}.line-icon.file:before{content:"";position:absolute;top:-1px;right:-1px;width:5px;height:5px;border-left:1px solid currentColor;border-bottom:1px solid currentColor}.line-icon.file:after{content:"";position:absolute;left:4px;bottom:4px;width:8px;height:1px;background:currentColor;box-shadow:0 -3px 0 currentColor}.line-icon.cpu{border:1.5px solid currentColor;border-radius:3px}.line-icon.cpu:before{content:"";position:absolute;inset:4px;border:1px solid currentColor;border-radius:1px}.line-icon.cpu:after{content:"";position:absolute;inset:-3px;background:linear-gradient(currentColor,currentColor) 0 5px / 3px 1px no-repeat,linear-gradient(currentColor,currentColor) 0 11px / 3px 1px no-repeat,linear-gradient(currentColor,currentColor) 18px 5px / 3px 1px no-repeat,linear-gradient(currentColor,currentColor) 18px 11px / 3px 1px no-repeat,linear-gradient(currentColor,currentColor) 5px 0 / 1px 3px no-repeat,linear-gradient(currentColor,currentColor) 11px 0 / 1px 3px no-repeat,linear-gradient(currentColor,currentColor) 5px 18px / 1px 3px no-repeat,linear-gradient(currentColor,currentColor) 11px 18px / 1px 3px no-repeat}.line-icon.calc{border:1.5px solid currentColor;border-radius:3px}.line-icon.calc:before{content:"";position:absolute;top:3px;left:3px;width:9px;height:3px;border:1px solid currentColor;border-radius:1px}.line-icon.calc:after{content:"";position:absolute;left:4px;bottom:3px;width:2px;height:2px;border-radius:50%;background:currentColor;box-shadow:4px 0 0 currentColor,8px 0 0 currentColor,0 -3px 0 currentColor,4px -3px 0 currentColor,8px -3px 0 currentColor}.line-icon.value{border-left:1.5px solid currentColor;border-bottom:1.5px solid currentColor;border-radius:0 0 0 2px}.line-icon.value:before{content:"";position:absolute;inset:2px 1px 2px 2px;background:currentColor;clip-path:polygon(0 76%,34% 43%,57% 59%,100% 9%,100% 28%,59% 78%,35% 62%,0 96%)}.line-icon.value:after{content:"";position:absolute;top:1px;right:0;width:5px;height:5px;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor}.nav-head .line-icon.briefcase{margin-top:3px;height:14px;border:1.5px solid currentColor;border-radius:2px}.nav-head .line-icon.briefcase:before{content:"";position:absolute;top:-5px;left:5px;width:6px;height:4px;border:1.5px solid currentColor;border-bottom:0;border-radius:2px 2px 0 0}.nav-head .line-icon.briefcase:after{content:"";position:absolute;top:5px;left:-1px;width:17px;height:1px;background:currentColor}.nav-head .line-icon.headset{border:1.5px solid currentColor;border-bottom-color:transparent;border-radius:50% 50% 35% 35%}.nav-head .line-icon.headset:before{content:"";position:absolute;left:-2px;bottom:1px;width:3px;height:6px;border-radius:2px;background:currentColor;box-shadow:15px 0 0 currentColor}.nav-head .line-icon.headset:after{content:"";position:absolute;right:0;bottom:-1px;width:6px;height:4px;border-bottom:1.5px solid currentColor;border-radius:0 0 5px}.topbar .line-icon.briefcase,.topbar .line-icon.headset{border:1px solid currentColor;border-radius:2px}.topbar .line-icon.briefcase:before,.topbar .line-icon.headset:before{content:"";position:absolute;inset:4px;border:1px solid currentColor;opacity:.8}.line-icon.exit{border:1px solid currentColor;border-radius:2px}.line-icon.exit:before{content:"";position:absolute;inset:4px;border:1px solid currentColor;opacity:.8}@media(max-width:1420px){.top-tools{gap:14px}.global-lighting-scene-switcher{gap:0}.global-lighting-scene-switcher__context,.global-lighting-scene-switcher__options button>span,.global-lighting-scene-switcher__options button b{display:none}.global-lighting-scene-switcher__options button{padding:0 10px}.top-grid{grid-template-columns:minmax(610px,1fr) minmax(560px,1fr)}}.vpp-shell{--nav-w: 203px;--top-h: 40px}.platform.sidebar-collapsed.vpp-shell{--nav-w: 64px}.vpp-shell .logo{display:flex;align-items:center;padding-left:18px;padding-right:12px;font-size:15px;letter-spacing:.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vpp-shell .table-view{min-height:calc(100vh - var(--top-h) - 50px - 24px);margin-top:24px;padding:0;background:transparent}.vpp-shell .sub-tabs{height:72px;align-items:center;padding-left:0;border-bottom:0;background:transparent}.vpp-shell .sub-tab{height:auto;padding:0;color:#111827;font-size:22px;line-height:1}.vpp-shell .sub-tab.active:after{display:none}.vpp-shell .toolbar{height:88px;justify-content:flex-start;gap:16px;padding:0 24px;background:#fff}.vpp-shell .page-context{padding:18px 24px 4px;border-bottom:1px solid #f0f1f5}.vpp-shell .context-metric,.vpp-shell .context-step{border-radius:2px}.vpp-shell .toolbar-actions{justify-content:flex-start}.vpp-shell .search-box{width:330px;height:32px;border-color:#d9d9d9;border-radius:2px}.vpp-shell .select-btn{height:32px;min-width:64px;color:#fff;border-color:#1677ff;border-radius:2px;background:#1677ff}.vpp-shell .filter-chip{border-radius:2px}.vpp-shell .data-table{background:#fff}.vpp-shell .data-table th{height:48px;color:#1f2937;background:#fafafa;font-weight:600}.vpp-shell .data-table td{height:52px;color:#1f2937}.vpp-shell .table-action{color:#1677ff}.vpp-shell .empty-space,.vpp-shell .bottom-scroll{background:#fff}.vpp-shell .vpp-workbench{padding:24px 0 18px;gap:16px}.vpp-shell .vpp-hero{min-height:154px;padding:24px;color:#111827;border:0;border-radius:0;background:#fff;box-shadow:none}.vpp-shell .eyebrow{color:#1677ff}.vpp-shell .vpp-hero h1{color:#111827;font-size:26px}.vpp-shell .vpp-brief{color:#4b5563}.vpp-shell .vpp-dispatch-card{color:#111827;border:1px solid #e5e7eb;background:#f8fafc}.vpp-shell .vpp-dispatch-card span,.vpp-shell .vpp-dispatch-card small{color:#64748b}.vpp-shell .vpp-dispatch-card strong{color:#1677ff}.vpp-shell .vpp-metric,.vpp-shell .vpp-panel{border:0;border-radius:0;box-shadow:none}.vpp-shell .vpp-metric{min-height:96px}.vpp-shell .vpp-flow-step,.vpp-shell .vpp-resource-list button,.vpp-shell .vpp-task-list button{border-color:#e5e7eb;border-radius:2px}.vpp-shell .vpp-flow-step.active{border-color:#1677ff;background:#e6f4ff}.ops-shell .logo{display:flex;align-items:center;padding-left:18px;padding-right:12px;color:#fff;font-size:17px;letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-text-fill-color:currentColor;background:none}.lighting-quick-command-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.lighting-quick-command-head{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:8px}.lighting-quick-command-head span{color:#bfdbfe;font-size:12px;font-weight:800}.lighting-quick-command-head strong{color:#c4b5fd;font-size:12px;font-weight:800}.lighting-quick-command-actions button{min-width:0;min-height:54px;display:grid;align-content:center;gap:4px;padding:8px 10px;color:#0f172a;text-align:left;border:1px solid #bfdbfe;border-radius:6px;background:#dbeafe}.lighting-quick-command-actions button:nth-child(3){border-color:#fde68a;background:#fef3c7}.lighting-quick-command-actions button:nth-child(4){border-color:#bbf7d0;background:#dcfce7}.lighting-quick-command-actions button:nth-child(5){border-color:#c7d2fe;background:#e0e7ff}.lighting-quick-command-actions button span,.lighting-quick-command-actions button small{overflow:hidden;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.lighting-quick-command-actions button span{font-size:13px;font-weight:800}.lighting-quick-command-actions button small{color:#475569;font-size:11px}.lighting-quick-command-actions button:disabled{color:#64748b;cursor:not-allowed;border-color:#cbd5e1;background:#e2e8f0}.lighting-advanced-actions{padding:0;border:1px solid rgba(148,163,184,.26);border-radius:8px;background:#0f172a61}.lighting-advanced-actions summary{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:38px;padding:0 10px;color:#e2e8f0;font-size:12px;font-weight:800;cursor:pointer;list-style:none}.lighting-advanced-actions summary::-webkit-details-marker{display:none}.lighting-advanced-actions summary:after{content:"⌄";color:#93c5fd;font-size:12px}.lighting-advanced-actions[open] summary:after{transform:rotate(180deg)}.lighting-advanced-actions summary span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lighting-advanced-actions summary strong{flex:0 0 auto;color:#c4b5fd}.lighting-advanced-actions .lighting-workflow-actions{margin:0 8px 8px}.lighting-workflow-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:210px;overflow-y:auto;padding-right:2px}.lighting-workflow-head{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:2px 0 4px}.lighting-workflow-head span{color:#bfdbfe;font-size:12px;font-weight:700}.lighting-workflow-head strong{color:#86efac;font-size:12px;font-weight:800}.lighting-workflow-actions button{min-width:0;min-height:48px;display:grid;align-content:center;gap:3px;padding:6px 8px;color:#0f172a;text-align:left;border:1px solid #bae6fd;border-radius:6px;background:#e0f2fe}.lighting-workflow-actions button span{overflow:hidden;font-size:12px;font-weight:800;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.lighting-workflow-actions button small{overflow:hidden;color:#475569;font-size:11px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.lighting-workflow-actions button:nth-child(2){border-color:#bbf7d0;background:#dcfce7}.lighting-workflow-actions button:nth-child(3){border-color:#fde68a;background:#fef3c7}.lighting-workflow-actions button:nth-child(4){border-color:#c7d2fe;background:#e0e7ff}.lighting-workflow-actions button:disabled{color:#64748b;cursor:not-allowed;border-color:#cbd5e1;background:#e2e8f0}.lighting-command-detail{display:grid;gap:8px;margin-top:10px;padding:10px;border:1px solid rgba(148,163,184,.36);border-radius:8px;background:#0f172a61}.lighting-command-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.lighting-command-detail-head span{display:block;color:#bfdbfe;font-size:11px;font-weight:700}.lighting-command-detail-head strong{display:block;max-width:168px;overflow:hidden;color:#f8fafc;font-size:13px;font-weight:800;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.lighting-command-status{flex:0 0 auto;padding:3px 7px;color:#1f2937;font-size:11px;font-weight:800;border-radius:999px;background:#fde68a}.lighting-command-status.replied{color:#064e3b;background:#a7f3d0}.lighting-command-status.offline,.lighting-command-status.publish_failed,.lighting-command-status.send_failed,.lighting-command-status.unsupported,.lighting-command-status.gateway_disabled,.lighting-command-status.submit_failed,.lighting-command-status.query_failed{color:#7f1d1d;background:#fecaca}.lighting-command-detail-grid{display:grid;grid-template-columns:64px minmax(0,1fr);gap:5px 8px;align-items:center}.lighting-command-detail-grid span{color:#cbd5e1;font-size:11px}.lighting-command-detail-grid strong{min-width:0;overflow:hidden;color:#f8fafc;font-size:11px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.lighting-command-frame-toggle{width:fit-content;min-height:28px;padding:4px 9px;color:#0f172a;font-size:12px;font-weight:800;border:1px solid #bae6fd;border-radius:6px;background:#e0f2fe}.lighting-command-frame{display:grid;gap:5px}.lighting-command-frame span{color:#cbd5e1;font-size:11px;font-weight:700}.lighting-command-frame code{max-height:86px;overflow:auto;padding:7px;color:#d1fae5;font-size:11px;line-height:1.45;white-space:pre-wrap;word-break:break-all;border:1px solid rgba(16,185,129,.28);border-radius:6px;background:#0206178f}.lighting-map-marker{width:58px;height:62px;overflow:visible;color:#1f2937;border:0;border-radius:0;background:transparent;box-shadow:none;filter:drop-shadow(0 10px 18px rgba(15,23,42,.24));transition:filter .16s ease,transform .16s ease}.lighting-map-marker:hover{box-shadow:none;filter:drop-shadow(0 14px 22px rgba(15,23,42,.3)) saturate(1.12);transform:translateY(-3px) scale(1.04)}.lighting-map-marker:after{display:none}.lighting-map-marker.control-box,.lighting-map-marker.controller,.lighting-map-marker.warn,.lighting-map-marker.danger{border:0;background:transparent;box-shadow:none}.lighting-map-marker.control-box .lighting-map-marker-icon,.lighting-map-marker.controller .lighting-map-marker-icon{width:58px;height:62px;border:0;border-radius:0;background:transparent;box-shadow:none}.lighting-map-marker.control-box .lighting-map-marker-icon:before,.lighting-map-marker.control-box .lighting-map-marker-icon:after,.lighting-map-marker.controller .lighting-map-marker-icon:before,.lighting-map-marker.controller .lighting-map-marker-icon:after{display:none}.lighting-map-marker-icon svg{width:58px;height:62px;filter:none}.lighting-map-marker-icon img{position:relative;z-index:1;filter:drop-shadow(0 0 10px rgba(14,165,233,.28)) drop-shadow(0 8px 10px rgba(15,23,42,.22))}.lighting-map-marker.control-box .lighting-map-marker-icon:before,.lighting-map-marker.controller .lighting-map-marker-icon:before{content:"";position:absolute;inset:9px 8px 4px;display:block;border-radius:50%;background:radial-gradient(circle,rgba(34,211,238,.22),transparent 64%),radial-gradient(circle,rgba(16,185,129,.16),transparent 72%);filter:blur(1px);transform:rotateX(60deg)}.lighting-svg-monitor-frame{fill:#d7dde2;stroke:#aab4bd;stroke-width:1.8}.lighting-svg-monitor-screen{fill:#00ec3a;stroke:#68ff85;stroke-width:1.2}.lighting-svg-monitor-glare{fill:none;stroke:#ffffff9e;stroke-linecap:round;stroke-width:2}.lighting-svg-monitor-stand,.lighting-svg-monitor-base{fill:none;stroke:#bcc5cc;stroke-linecap:round;stroke-width:3}.lighting-svg-bulb-glass{fill:#9ec7df;stroke:#70a9cb;stroke-width:2}.lighting-svg-bulb-glow{fill:none;stroke:#eff6ffc7;stroke-linecap:round;stroke-width:3}.lighting-svg-bulb-neck{fill:#e5eef4;stroke:#a7b4be;stroke-width:1.6}.lighting-svg-bulb-base{fill:none;stroke:#8e9aa3;stroke-linecap:round;stroke-width:2.2}.lighting-device-inspector{max-height:100%;width:468px;min-width:468px;max-width:468px;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:0;overflow:hidden;padding:0;color:#1f2937;border:1px solid #dbe3ec;border-radius:8px;background:#fff;box-shadow:0 18px 44px #0f172a2e}.lighting-map-floating-panel{position:absolute;z-index:9;overflow-y:auto;contain:layout paint;pointer-events:auto;animation:lightingFloatingPanelIn .16s ease-out}.lighting-map-floating-panel:after{content:"";position:absolute;right:-7px;top:var(--lighting-panel-pointer-top, 72px);left:var(--lighting-panel-pointer-left, auto);right:var(--lighting-panel-pointer-right, -7px);width:14px;height:14px;border-top:1px solid #dbe3ec;border-right:1px solid #dbe3ec;background:#fff;transform:translateY(-50%) rotate(var(--lighting-panel-pointer-rotate, 45deg))}@keyframes lightingFloatingPanelIn{0%{opacity:0;transform:translate(8px) scale(.98)}to{opacity:1;transform:translate(0) scale(1)}}.lighting-device-inspector-head{min-height:60px;align-items:center;padding:12px 14px;border-bottom:1px solid #e6edf5;background:linear-gradient(180deg,#fff,#f8fbff)}.lighting-device-inspector-title-block{min-width:0;display:grid;gap:3px}.lighting-device-inspector-kicker{width:fit-content;color:#0f766e;font-size:11px;font-weight:800;line-height:1.2}.lighting-device-inspector-title{min-width:0;overflow-wrap:anywhere;color:#111827;font-size:16px;line-height:1.28}.lighting-device-inspector .lighting-device-inspector-title{color:#111827;font-size:16px;font-weight:800}.lighting-device-inspector-meta{min-width:0;overflow:hidden;color:#64748b;font-size:12px;font-weight:600;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.lighting-device-inspector .lighting-device-panel-head button{width:28px;height:28px;color:#8b95a1;font-size:22px;line-height:1;border:0;border-radius:6px;background:transparent}.lighting-device-inspector .lighting-device-panel-head button:hover{color:#4b5563;background:#f3f4f6}.lighting-device-inspector-body{min-height:0;overflow-y:auto;padding:8px 14px 10px}.lighting-device-section{display:grid;gap:8px;padding:10px 0}.lighting-device-section+.lighting-device-section{margin-top:0;border-top:1px solid #eef2f7}.lighting-device-section-title{min-height:18px;display:flex;align-items:center;margin:0;padding:0 0 0 8px;color:#0f766e;font-size:13px;font-weight:800;letter-spacing:0;border-left:3px solid #0f766e;background:transparent}.lighting-device-info-list{display:grid;gap:6px;padding:0}.lighting-device-info-list div,.lighting-device-param-grid div{min-width:0;display:grid;grid-template-columns:72px minmax(0,1fr);align-items:start;gap:6px;color:#334155;font-size:13px;line-height:1.35}.lighting-device-info-list span,.lighting-device-param-grid span{color:#475569;font-weight:700;white-space:nowrap}.lighting-device-info-list strong,.lighting-device-param-grid strong{min-width:0;overflow:hidden;color:#1f2937;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.lighting-dimming-panel{display:grid;gap:10px;padding:0}.lighting-dimming-tab{width:fit-content;min-height:24px;display:flex;align-items:center;padding:0 10px;color:#305b99;font-size:13px;font-weight:800;border-bottom:2px solid #5477b0}.lighting-dimming-control{display:grid;grid-template-columns:40px minmax(180px,1fr) 40px;align-items:center;gap:14px;padding:2px 0 4px}.lighting-dimming-button{height:34px;color:#fff;font-size:14px;font-weight:800;border:0;border-radius:6px}.lighting-dimming-button.off{background:#ff6262}.lighting-dimming-button.on{background:#547cb8}.lighting-dimming-button:disabled{cursor:not-allowed;opacity:.55}.lighting-dimming-track{--lighting-dimming-level: 0%;position:relative;height:44px}.lighting-dimming-track:before,.lighting-dimming-fill{content:"";position:absolute;top:17px;left:0;right:0;height:4px;border-radius:999px;background:#f1f1f1}.lighting-dimming-fill{right:auto;width:var(--lighting-dimming-level);background:#8fb0d8}.lighting-dimming-thumb{position:absolute;top:11px;left:var(--lighting-dimming-level);width:16px;height:16px;border:2px solid #c7ced6;border-radius:50%;background:#fff;transform:translate(-50%);z-index:2}.lighting-dimming-track b{position:absolute;top:14px;display:grid;justify-items:center;gap:6px;color:#85888d;font-size:11px;font-weight:500;transform:translate(-50%)}.lighting-dimming-track em{width:8px;height:8px;border:2px solid #dedede;border-radius:50%;background:#fff}.lighting-dimming-track small{font-size:11px}.lighting-device-param-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px 10px;padding:0}.lighting-device-command-section{padding-bottom:12px}.lighting-command-compact{display:grid;gap:8px}.lighting-device-inspector .lighting-command-detail{margin-top:0;padding:9px;color:#334155;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc}.lighting-device-inspector .lighting-command-detail-head span,.lighting-device-inspector .lighting-command-detail-grid span,.lighting-device-inspector .lighting-command-frame span{color:#64748b}.lighting-device-inspector .lighting-command-detail-head strong,.lighting-device-inspector .lighting-command-detail-grid strong{color:#1f2937}.lighting-device-inspector .lighting-command-detail-grid{grid-template-columns:58px minmax(0,1fr) 58px minmax(0,1fr)}.lighting-device-inspector .lighting-command-frame code{color:#14532d;border-color:#bbf7d0;background:#f0fdf4}.lighting-device-inspector .lighting-quick-command-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.lighting-device-inspector .lighting-quick-command-actions button,.lighting-device-inspector .lighting-workflow-actions button{min-height:40px;padding:6px 8px;border-color:#dbe5f0;background:#f8fafc}.lighting-device-inspector .lighting-quick-command-actions button span,.lighting-device-inspector .lighting-workflow-actions button span{font-size:12px}.lighting-device-inspector .lighting-quick-command-actions button small,.lighting-device-inspector .lighting-workflow-actions button small{font-size:10.5px}.lighting-device-inspector .lighting-quick-command-head span,.lighting-device-inspector .lighting-advanced-actions summary span{color:#4f75ad}.lighting-device-inspector .lighting-quick-command-head strong,.lighting-device-inspector .lighting-advanced-actions summary strong{color:#64748b}.lighting-device-inspector .lighting-advanced-actions{border-color:#e2e8f0;border-radius:6px;background:#fff}.lighting-device-inspector .lighting-advanced-actions summary{min-height:34px;color:#334155;background:#f8fafc}.lighting-device-inspector .lighting-device-inspector-footer{position:static;bottom:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:10px 14px;border-top:1px solid #e6edf5;background:#fff}.lighting-device-inspector-footer button{min-width:0;height:34px;color:#5577af;font-size:13px;font-weight:800;border:1px solid #d7dce2;border-radius:6px;background:#fff}.lighting-device-inspector-footer button:hover{color:#305b99;border-color:#b9c7dc;background:#f8fbff}.lighting-protocol-actions{display:grid;gap:12px;margin-top:14px;padding:14px;border:1px solid #e5edf7;border-radius:8px;background:#f8fafc}.lighting-protocol-actions.idle{background:#f1f5f9}.lighting-protocol-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.lighting-protocol-head span,.lighting-protocol-head b{color:#0f766e;font-size:12px;font-weight:800}.lighting-protocol-head strong{display:block;margin-top:4px;color:#0f172a;font-size:16px;line-height:1.3}.lighting-protocol-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.lighting-protocol-grid button{min-width:0;min-height:46px;display:grid;align-content:center;gap:3px;padding:7px 10px;text-align:left;border:1px solid #dbeafe;border-radius:6px;background:#fff}.lighting-protocol-grid button span,.lighting-protocol-grid button small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lighting-protocol-grid button span{color:#0f172a;font-size:12px;font-weight:800}.lighting-protocol-grid button small{color:#64748b;font-size:11px}.lighting-protocol-grid button:disabled{cursor:not-allowed;opacity:.54}.lighting-analysis-panel{display:grid;gap:16px;padding:20px;border:1px solid #e6edf6;border-radius:8px;background:#fff;box-shadow:0 12px 32px #0f172a0d}.lighting-analysis-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.lighting-analysis-card{min-width:0;min-height:190px;display:grid;grid-template-rows:auto auto 58px minmax(38px,1fr) auto;gap:8px;padding:14px;text-align:left;border:1px solid #e5edf7;border-radius:8px;background:#f8fafc}.lighting-analysis-card.concentrator{border-color:#bae6fd;background:#f0f9ff}.lighting-analysis-card.controller{border-color:#c4b5fd;background:#f5f3ff}.lighting-analysis-card.energy{border-color:#bfdbfe;background:#eff6ff}.lighting-analysis-card.meter{border-color:#a7f3d0;background:#ecfdf5}.lighting-analysis-card.rate{border-color:#bbf7d0;background:#f0fdf4}.lighting-analysis-card.saving{border-color:#fde68a;background:#fffbeb}.lighting-analysis-card.fault{border-color:#fecaca;background:#fff1f2}.lighting-analysis-card>span{color:#475569;font-size:12px;font-weight:800}.lighting-analysis-card strong{display:flex;align-items:baseline;gap:4px;color:#0f172a;font-size:24px;line-height:1}.lighting-analysis-card strong small{color:#64748b;font-size:12px}.lighting-analysis-chart{height:58px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;gap:6px;padding:8px;border:1px solid rgba(148,163,184,.18);border-radius:6px;background:#ffffffa3}.lighting-analysis-chart i{min-height:8px;border-radius:4px 4px 2px 2px;background:#2563eb}.lighting-analysis-card.concentrator .lighting-analysis-chart i{background:#0284c7}.lighting-analysis-card.controller .lighting-analysis-chart i{background:#7c3aed}.lighting-analysis-card.meter .lighting-analysis-chart i{background:#059669}.lighting-analysis-card.rate .lighting-analysis-chart i{background:#16a34a}.lighting-analysis-card.saving .lighting-analysis-chart i{background:#d97706}.lighting-analysis-card.fault .lighting-analysis-chart i{background:#e11d48}.lighting-analysis-card p{margin:0;color:#475569;font-size:12px;line-height:1.45}.lighting-analysis-card b{color:#0f172a;font-size:12px}.mobile-energy-twin-demo{--energy-twin-bg: #040a12;--energy-twin-panel: rgba(7, 18, 30, .92);--energy-twin-line: rgba(66, 193, 255, .24);--energy-twin-text: #f2f9ff;--energy-twin-muted: #86a2ba;--energy-twin-green: #35e6b1;--energy-twin-cyan: #42d9ff;--energy-twin-blue: #38a7ff;--energy-twin-amber: #f5b942;--energy-twin-red: #ff5d6c;--energy-twin-idle: #6f879f;height:calc(100vh - 130px);min-height:720px;overflow:hidden;color:var(--energy-twin-text);background:radial-gradient(circle at 18% 6%,rgba(30,126,191,.22),transparent 34%),linear-gradient(135deg,#071526,#040a12 52%,#07111d)}.energy-twin-app-shell{display:grid;grid-template-rows:auto minmax(0,1fr);gap:10px;height:calc(100vh - 130px);min-height:720px;overflow:hidden;padding:10px}.energy-twin-map-panel,.energy-twin-info-panel,.energy-twin-operations-panel{min-width:0;border:1px solid var(--energy-twin-line);background:var(--energy-twin-panel);box-shadow:inset 0 1px #85deff0f,0 22px 58px #00000061,0 0 34px #1589d40f}.energy-twin-map-panel{display:flex;flex-direction:column;height:100%;min-height:0}.energy-twin-cockpit-main{display:grid;grid-template-columns:18fr 60fr 22fr;gap:10px;min-height:0;overflow:hidden}.energy-twin-scene-panel{height:100%;min-height:0}.energy-twin-operations-panel,.energy-twin-inspector-panel{display:flex;flex-direction:column;gap:10px;min-height:0;padding:12px;overflow:auto}.energy-twin-topbar{display:grid;grid-template-columns:minmax(260px,1fr) auto auto;align-items:center;gap:12px;min-height:52px;padding:8px 12px;border:1px solid var(--energy-twin-line);background:var(--energy-twin-panel);box-shadow:inset 0 1px #85deff0f,0 14px 34px #00000047}.energy-twin-eyebrow{margin:0 0 5px;color:var(--energy-twin-cyan);font-size:12px;font-weight:700;letter-spacing:0;text-transform:uppercase}.energy-twin-topbar h1,.energy-twin-panel-header h2,.energy-twin-events-panel h3{margin:0;letter-spacing:0}.energy-twin-topbar h1{color:#f8ffff;font-size:20px}.energy-twin-summary-strip,.energy-twin-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.energy-twin-summary-strip span{min-width:86px;padding:6px 9px;border:1px solid var(--energy-twin-line);background:#ffffff0a;color:var(--energy-twin-muted);font-size:12px;text-align:center}.energy-twin-summary-strip strong{color:var(--energy-twin-text)}.energy-twin-actions button{height:32px;padding:0 11px;border:1px solid rgba(53,217,232,.4);border-radius:4px;background:#0a181df0;color:#d9f5f2}.energy-twin-vehicle-picker{position:relative}.energy-twin-vehicle-picker-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:20;width:min(520px,calc(100vw - 40px));max-height:min(680px,calc(100vh - 190px));overflow:auto;border:1px solid var(--energy-twin-line);background:#050e19f5;box-shadow:0 22px 54px #00000075,0 0 30px #29a6eb1f}.storage-digital-twin-workbench{background:linear-gradient(180deg,#f7fbfffa,#ecf4fcfa),radial-gradient(circle at 50% 26%,rgba(37,99,235,.1),transparent 40%);color:#0f172a}.storage-digital-twin-workbench .energy-twin-app-shell{gap:12px;padding:12px 18px 14px}.storage-digital-twin-workbench .energy-twin-topbar,.storage-digital-twin-workbench .energy-twin-map-panel,.storage-digital-twin-workbench .energy-twin-info-panel,.storage-digital-twin-workbench .energy-twin-operations-panel{border:1px solid #dbe7f3;border-radius:8px;background:#ffffffe6;box-shadow:0 10px 28px #0f172a14}.storage-digital-twin-workbench .energy-twin-topbar{grid-template-columns:minmax(320px,1fr) auto auto;min-height:64px}.storage-digital-twin-workbench .energy-twin-title span,.storage-twin-section-head span{color:#64748b;font-size:12px;font-weight:800}.storage-digital-twin-workbench .energy-twin-topbar h1,.storage-twin-section-head h3,.storage-twin-realtime-params h3,.storage-digital-twin-workbench .energy-twin-events-panel h3{color:#0f172a}.storage-digital-twin-workbench .energy-twin-summary-strip span{min-width:92px;color:#475569;border-color:#e2e8f0;border-radius:6px;background:#f8fafc}.storage-digital-twin-workbench .energy-twin-summary-strip strong{color:#2563eb}.storage-digital-twin-workbench .energy-twin-actions button{color:#1e40af;border-color:#bfdbfe;border-radius:6px;background:#eff6ff}.storage-twin-layout{display:grid;grid-template-columns:320px minmax(0,1fr) 360px;gap:12px;min-height:0;overflow:hidden}.storage-twin-status-card,.storage-twin-component-card{color:#0f172a}.storage-digital-twin-workbench .energy-twin-eyebrow{color:#1d4ed8}.storage-digital-twin-workbench .energy-twin-panel-header h2{color:#0f172a;font-size:18px}.storage-digital-twin-workbench .energy-twin-status-pill,.storage-twin-health-pill{display:inline-flex;align-items:center;min-height:24px;padding:3px 10px;border-radius:999px;color:#047857;background:#d1fae5;font-size:12px;font-weight:800}.storage-twin-health-pill.is-warning{color:#b45309;background:#fef3c7}.storage-twin-health-pill.is-idle{color:#64748b;background:#e2e8f0}.storage-digital-twin-workbench .energy-twin-last-report{color:#16a34a}.storage-twin-status-list,.storage-twin-realtime-params{display:grid;gap:0;overflow:hidden;border:1px solid #e5edf6;border-radius:6px}.storage-twin-status-list div,.storage-twin-realtime-params div{display:grid;grid-template-columns:112px minmax(0,1fr);align-items:center;min-height:38px;padding:7px 10px;border-bottom:1px solid #edf2f7;background:#fff}.storage-twin-status-list div:last-child,.storage-twin-realtime-params div:last-child{border-bottom:0}.storage-twin-status-list span,.storage-twin-realtime-params span{color:#64748b;font-size:12px}.storage-twin-status-list strong,.storage-twin-realtime-params strong{min-width:0;color:#0f172a;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.storage-twin-scene-card{position:relative;overflow:hidden;background:linear-gradient(180deg,#fff,#eef5fc)}.storage-twin-scene-head{display:grid;grid-template-columns:auto auto minmax(150px,1fr);align-items:center;gap:8px;min-height:46px;padding:10px 14px 0;color:#64748b;font-size:12px;font-weight:800}.storage-twin-scene-heading{display:flex;align-items:baseline;gap:10px}.storage-twin-scene-heading span{color:#334155;font-size:13px;white-space:nowrap}.storage-twin-scene-heading small{color:#94a3b8;font-size:11px;font-weight:600;white-space:nowrap}.storage-twin-scene-actions{display:flex;gap:6px}.storage-twin-scene-actions button{min-height:30px;padding:5px 8px;border:1px solid #cbd5e1;border-radius:5px;background:#fff;color:#334155;font:inherit;cursor:pointer}.storage-twin-scene-actions button:hover{border-color:#60a5fa;color:#1d4ed8}.storage-twin-scene-actions button[aria-pressed=true]{border-color:#2563eb;background:#eff6ff;color:#1d4ed8}.storage-twin-scene-head label{justify-self:end;display:flex;align-items:center;gap:6px;white-space:nowrap}.storage-twin-scene-head input{width:clamp(76px,8vw,118px);accent-color:#2563eb;cursor:pointer}.storage-twin-scene-head strong{min-width:32px}@media(max-width:1600px){.storage-twin-scene-heading small{display:none}}.storage-digital-twin-workbench .energy-twin-campus-map{margin:8px 10px 10px;height:calc(100% - 60px);border-radius:6px;background:linear-gradient(rgba(59,130,246,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(59,130,246,.08) 1px,transparent 1px),linear-gradient(180deg,#f8fbff,#eef6ff);background-size:34px 34px}.storage-twin-floating-nav{position:absolute;left:22px;right:22px;bottom:20px;z-index:4;display:block;width:auto;padding:8px;border:1px solid #dbeafe;border-radius:8px;background:#ffffffe0;box-shadow:0 10px 24px #2563eb1f}.storage-digital-twin-workbench .energy-twin-component-button{border-color:#cbd5e1;border-radius:6px;background:#fff;color:#334155}.storage-digital-twin-workbench .energy-twin-component-button[aria-pressed=true]{border-color:#2563eb;background:#eff6ff;color:#1d4ed8;box-shadow:inset 0 -2px #2563eb}.storage-twin-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:28px}.storage-twin-section-head h3{margin:0;font-size:15px}.storage-twin-section-head button{border:1px solid #dbeafe;border-radius:6px;background:#eff6ff;color:#2563eb;font-weight:800}.storage-digital-twin-workbench .energy-twin-detail-list{border-color:#e5edf6;background:#fff}.storage-digital-twin-workbench .energy-twin-detail-list dt{color:#64748b}.storage-digital-twin-workbench .energy-twin-detail-list dd{color:#0f172a}.storage-twin-realtime-params,.storage-twin-compact-table{display:grid;gap:8px}.storage-twin-compact-table table{width:100%;border-collapse:collapse;table-layout:fixed;overflow:hidden;border:1px solid #e5edf6;border-radius:6px;background:#fff}.storage-twin-compact-table td{padding:8px 10px;color:#475569;font-size:12px;border-bottom:1px solid #edf2f7;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.storage-twin-auxiliary-error{margin:0;padding:8px 10px;border:1px solid #fecaca;border-radius:6px;background:#fff1f2;color:#be123c;font-size:12px;font-weight:800}.storage-digital-twin-workbench .energy-twin-events-panel{color:#334155;border-color:#e5edf6;background:#fff}.storage-twin-timeline-panel{min-height:218px;padding:14px}.storage-twin-timeline-panel ul{display:grid;gap:9px;margin:12px 0 0;padding:0;list-style:none}.storage-twin-timeline-panel li{display:grid;grid-template-columns:76px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:28px;color:#475569;font-size:13px}.storage-twin-timeline-panel time,.storage-twin-timeline-panel span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.storage-twin-timeline-panel b{padding:2px 8px;border:1px solid #bfdbfe;border-radius:999px;color:#2563eb;background:#eff6ff;font-size:12px}.energy-twin-campus-map{flex:1;position:relative;min-height:0;height:100%;width:100%;overflow:hidden;background:linear-gradient(rgba(66,217,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(66,217,255,.07) 1px,transparent 1px),linear-gradient(160deg,#071523,#030912 58%,#07101b);background-size:34px 34px;-webkit-user-select:none;user-select:none}.energy-twin-campus-map:before{content:"";position:absolute;z-index:0;inset:8% 12% 18%;background:radial-gradient(ellipse,rgba(38,178,255,.15),transparent 66%);filter:blur(14px);pointer-events:none}.energy-twin-campus-map:after{content:"";position:absolute;inset:0;border:1px solid rgba(53,217,232,.28);pointer-events:none}.mobile-energy-twin-demo #sceneCanvas{display:block;width:100%;height:100%;min-height:0;outline:none;position:relative;z-index:1;touch-action:none;cursor:grab}.mobile-energy-twin-demo #sceneCanvas:active{cursor:grabbing}.energy-twin-component-navigator{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;width:100%;min-width:0;padding:9px 10px}.energy-twin-component-navigator>strong{display:flex;align-items:center;gap:8px;margin-bottom:0;color:#effaff;font-size:13px;letter-spacing:.08em;white-space:nowrap}.energy-twin-component-navigator>strong:before{content:"";width:18px;height:2px;background:linear-gradient(90deg,var(--energy-twin-cyan),transparent);box-shadow:0 0 10px #42d9ffa6}.energy-twin-component-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:6px}.energy-twin-component-button{--component-tone: var(--energy-twin-idle);display:flex;align-items:center;gap:8px;min-width:0;min-height:34px;padding:6px 8px;overflow:hidden;border:1px solid rgba(103,159,194,.22);border-radius:3px;background:#0f2334ad;color:#bdd1df;font:inherit;font-size:12px;text-align:left;cursor:pointer;transition:border-color .16s ease,background-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease}.energy-twin-component-button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.energy-twin-component-dot{flex:0 0 auto;width:7px;height:7px;border-radius:50%;background:var(--component-tone);box-shadow:0 0 9px color-mix(in srgb,var(--component-tone) 76%,transparent)}.energy-twin-component-button.is-online{--component-tone: #35e6b1}.energy-twin-component-button.is-running{--component-tone: #38a7ff}.energy-twin-component-button.is-warning{--component-tone: #f5b942}.energy-twin-component-button.is-alarm{--component-tone: #ff5d6c}.energy-twin-component-button.is-idle{--component-tone: #6f879f}.energy-twin-component-button:hover:not(:disabled){border-color:color-mix(in srgb,var(--component-tone) 58%,rgba(66,217,255,.42));background:#1c425db3;color:#f4fbff;transform:translateY(-1px)}.energy-twin-component-button[aria-pressed=true]{border-color:color-mix(in srgb,var(--component-tone) 62%,var(--energy-twin-cyan));background:linear-gradient(105deg,#1e7cbc57,#14466e38);color:#fff;box-shadow:inset 2px 0 0 var(--component-tone),inset 0 0 18px #42d9ff14,0 0 14px color-mix(in srgb,var(--component-tone) 18%,transparent)}.energy-twin-component-button:focus-visible{outline:2px solid #8ce8ff;outline-offset:2px}.energy-twin-component-button:disabled{cursor:wait;opacity:.48}.energy-twin-component-button.is-running .energy-twin-component-dot{animation:energy-twin-running-pulse 2.4s ease-in-out infinite}@keyframes energy-twin-running-pulse{50%{opacity:.58;transform:scale(.78)}}.energy-twin-scene-label{position:absolute;z-index:4;width:min(296px,28vw);min-width:220px;transform:translate(-50%,-100%) scale(1);transform-origin:50% 100%;padding:12px 14px;border:1px solid rgba(53,217,232,.55);background:#081418f0;box-shadow:0 12px 24px #00000059;color:#d9f5f2;font-size:13px;pointer-events:none;transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease,background .22s ease}.energy-twin-scene-label.is-focused{transform:translate(-50%,-100%) scale(1.14);border-color:#35d9e8f2;background:#06161cfa;box-shadow:0 0 0 1px #35d9e85c,0 18px 34px #0000006b,0 0 26px #35d9e838}.energy-twin-scene-label strong{display:block;margin-bottom:6px;color:#fff;font-weight:800}.energy-twin-scene-label span{display:block;color:#a7c9c8;line-height:1.45}.energy-twin-scene-error{position:absolute;left:18px;right:18px;top:18px;z-index:5;padding:10px 12px;border:1px solid rgba(248,113,113,.5);background:#320f12eb;color:#ffd5d5;font-size:13px;line-height:1.45}.energy-twin-info-panel{display:flex;flex-direction:column;gap:10px;padding:12px;overflow:auto}.energy-twin-vehicle-picker-panel .storage-vehicle-selector{min-width:0;width:100%;box-sizing:border-box;overflow:hidden;color:var(--energy-twin-text);border-color:var(--energy-twin-line);background:#081418d1;box-shadow:0 14px 32px #0000003d}.energy-twin-vehicle-picker-panel .storage-vehicle-selector-head{display:grid;justify-content:stretch}.energy-twin-vehicle-picker-panel .storage-vehicle-selector-head span,.energy-twin-vehicle-picker-panel .storage-vehicle-selector-head small,.energy-twin-vehicle-picker-panel .storage-vehicle-selector-empty span{color:var(--energy-twin-muted)}.energy-twin-vehicle-picker-panel .storage-vehicle-selector-head strong,.energy-twin-vehicle-picker-panel .storage-vehicle-selector-empty strong{color:var(--energy-twin-text)}.energy-twin-vehicle-picker-panel .storage-vehicle-toolbar{grid-template-columns:minmax(0,1fr);align-items:stretch;border-color:var(--energy-twin-line);background:#ffffff09}.energy-twin-vehicle-picker-panel .storage-vehicle-selector.compact .storage-vehicle-toolbar{border-color:var(--energy-twin-line);background:#081418d1}.energy-twin-vehicle-picker-panel .storage-vehicle-toolbar label{color:var(--energy-twin-muted)}.energy-twin-vehicle-picker-panel .storage-vehicle-toolbar input[type=search]{color:var(--energy-twin-text);border-color:#90dcd74d;background:#061217eb;color-scheme:dark}.energy-twin-vehicle-picker-panel .storage-vehicle-toolbar input[type=search]::placeholder{color:#6f8c8c}.energy-twin-vehicle-picker-panel .storage-vehicle-toolbar input[type=search]:focus{border-color:var(--energy-twin-cyan);box-shadow:0 0 0 2px #35d9e824}.energy-twin-vehicle-picker-panel .storage-vehicle-priority-toggle{width:100%;box-sizing:border-box;color:#c7dfdd!important;border-color:#90dcd74d;background:#061217eb}.energy-twin-vehicle-picker-panel .storage-vehicle-priority-toggle input{accent-color:var(--energy-twin-cyan)}.energy-twin-vehicle-picker-panel .storage-vehicle-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.energy-twin-vehicle-picker-panel .storage-vehicle-summary span{color:var(--energy-twin-muted);border-color:var(--energy-twin-line);background:#ffffff09}.energy-twin-vehicle-picker-panel .storage-vehicle-summary strong{color:var(--energy-twin-text)}.energy-twin-vehicle-picker-panel .storage-vehicle-selector-list{grid-template-columns:minmax(0,1fr)}.energy-twin-vehicle-picker-panel .storage-vehicle-selector-card{color:var(--energy-twin-text);border-color:var(--energy-twin-line);background:#ffffff09;transition:border-color .16s ease,background-color .16s ease,box-shadow .16s ease}.energy-twin-vehicle-picker-panel .storage-vehicle-selector-card:hover{border-color:#35d9e88c;background:#35d9e811}.energy-twin-vehicle-picker-panel .storage-vehicle-selector-card.active,.energy-twin-vehicle-picker-panel .storage-vehicle-selector-card.active.alarm,.energy-twin-vehicle-picker-panel .storage-vehicle-selector-card.active.offline{border-color:var(--energy-twin-cyan);background:#35d9e81a;box-shadow:inset 0 0 0 1px #35d9e82e,0 0 18px #35d9e814}.energy-twin-vehicle-picker-panel .storage-vehicle-selector-card small,.energy-twin-vehicle-picker-panel .storage-vehicle-selector-card em,.energy-twin-vehicle-picker-panel .storage-vehicle-selector-card>div span{color:var(--energy-twin-muted)}.energy-twin-vehicle-picker-panel .storage-vehicle-selector-card b{color:var(--energy-twin-text)}.energy-twin-vehicle-picker-panel .storage-vehicle-selector-status{color:var(--energy-twin-green);background:#4ade801c}.energy-twin-vehicle-picker-panel .storage-vehicle-selector-card.alarm{border-color:#f8717180;background:#f8717112}.energy-twin-vehicle-picker-panel .storage-vehicle-selector-alert,.energy-twin-vehicle-picker-panel .storage-vehicle-selector-card.alarm .storage-vehicle-selector-alert,.energy-twin-vehicle-picker-panel .storage-vehicle-selector-card.alarm .storage-vehicle-selector-status{color:#fca5a5;background:#f8717121}.energy-twin-vehicle-picker-panel .storage-vehicle-selector-card.offline{border-color:#f871716b;background:#f8717114}.energy-twin-vehicle-picker-panel .storage-vehicle-selector-card.offline .storage-vehicle-selector-status{color:#fca5a5;background:#f8717121}.energy-twin-vehicle-picker-panel .storage-vehicle-selector.compact .storage-vehicle-selector-table-head{color:var(--energy-twin-muted);border-color:var(--energy-twin-line);background:#ffffff09}.energy-twin-vehicle-picker-panel .storage-vehicle-selector.compact .storage-vehicle-selector-row{color:var(--energy-twin-text);border-color:var(--energy-twin-line);background:#081418d1}.energy-twin-vehicle-picker-panel .storage-vehicle-selector.compact .storage-vehicle-selector-row:hover{background:#35d9e811}.energy-twin-vehicle-picker-panel .storage-vehicle-selector.compact .storage-vehicle-selector-row.active{background:#35d9e81a;box-shadow:inset 3px 0 var(--energy-twin-cyan)}.energy-twin-vehicle-picker-panel .storage-vehicle-selector.compact .storage-vehicle-selector-identity strong,.energy-twin-vehicle-picker-panel .storage-vehicle-selector.compact .storage-vehicle-selector-row>b{color:var(--energy-twin-text)}.energy-twin-vehicle-picker-panel .storage-vehicle-selector.compact .storage-vehicle-selector-identity small{color:var(--energy-twin-muted)}.energy-twin-vehicle-picker-panel .storage-vehicle-selector-empty{border-color:#90dcd74d;background:#ffffff09}.energy-twin-vehicle-picker-panel .storage-vehicle-selector-empty button{color:var(--energy-twin-cyan);border-color:#35d9e86b;background:#35d9e814}.energy-twin-panel-header{position:relative;padding-bottom:16px;border-bottom:1px solid var(--energy-twin-line)}.energy-twin-panel-header:after{content:"";position:absolute;left:0;bottom:-1px;width:52px;height:1px;background:var(--energy-twin-cyan);box-shadow:0 0 12px #42d9ff9e}.energy-twin-panel-header h2{color:#f8ffff;font-size:22px;line-height:1.25}.energy-twin-status-line{display:flex;align-items:center;flex-wrap:wrap;gap:9px 12px;margin-top:12px}.energy-twin-status-pill{display:inline-flex;align-items:center;flex:0 0 auto;min-height:28px;padding:4px 11px;border:1px solid rgba(74,222,128,.36);border-radius:999px;background:#4ade801a;color:var(--energy-twin-green);font-size:13px;font-weight:700;line-height:1;white-space:nowrap;box-shadow:inset 0 0 14px #35e6b10a}.mobile-energy-twin-demo .energy-twin-freshness{display:flex;align-items:center;flex:1 1 172px;flex-wrap:wrap;gap:6px 9px;min-width:0;margin-top:0}.mobile-energy-twin-demo .energy-twin-freshness small{color:#7f9ab1;font-size:11px;line-height:1.35}.mobile-energy-twin-demo .storage-gps-connection{flex:0 0 auto;height:24px;padding:0 9px;border-color:#35e6b157;background:#35e6b114;color:var(--energy-twin-green);white-space:nowrap}.energy-twin-status-pill.alarm,.energy-twin-status-pill.is-warning{border-color:#fbbf2461;background:#fbbf241f;color:var(--energy-twin-amber)}.energy-twin-status-pill.is-alarm{border-color:#ff5d6c70;background:#ff5d6c1f;color:var(--energy-twin-red)}.energy-twin-status-pill.is-running{border-color:#38a7ff70;background:#38a7ff1f;color:#7fc5ff}.energy-twin-status-pill.is-online{border-color:#35e6b166;background:#35e6b11a;color:var(--energy-twin-green)}.energy-twin-status-pill.offline,.energy-twin-status-pill.is-idle{border-color:#ff5d6c70;background:#ff5d6c1f;color:var(--energy-twin-red)}.energy-twin-metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.energy-twin-metric-card{min-height:86px;padding:14px;border:1px solid rgba(66,193,255,.16);background:#ffffff07}.energy-twin-metric-card span{display:block;color:var(--energy-twin-muted);font-size:13px}.energy-twin-metric-card strong{display:block;overflow:hidden;margin-top:10px;color:var(--energy-twin-text);font-size:23px;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.energy-twin-detail-list{display:grid;gap:0;margin:0;border:1px solid rgba(66,193,255,.16)}.energy-twin-detail-list div{display:grid;grid-template-columns:92px minmax(0,1fr);min-height:44px;border-bottom:1px solid rgba(66,193,255,.12)}.energy-twin-detail-list div:last-child{border-bottom:0}.energy-twin-detail-list dt,.energy-twin-detail-list dd{display:flex;align-items:center;min-width:0;margin:0;padding:10px 12px;font-size:13px}.energy-twin-detail-list dt{color:var(--energy-twin-muted);background:#ffffff08}.energy-twin-detail-list dd{overflow:hidden;color:#dcefed;text-overflow:ellipsis;white-space:nowrap}.energy-twin-events-panel{display:grid;gap:12px;min-height:160px;padding:16px;border:1px solid rgba(66,193,255,.16);background:#ffffff06}.energy-twin-events-panel h3{color:#f8ffff;font-size:16px}.energy-twin-events-panel ul{display:grid;gap:10px;margin:0;padding:0;list-style:none}.energy-twin-events-panel li{position:relative;min-width:0;padding-left:16px;color:#bfdad7;font-size:13px;line-height:1.45}.energy-twin-events-panel li:before{content:"";position:absolute;left:0;top:7px;width:7px;height:7px;border-radius:50%;background:var(--energy-twin-cyan);box-shadow:0 0 12px #35d9e88c}@media(max-width:1440px){.storage-digital-twin-workbench .energy-twin-app-shell{padding:10px 12px 12px}.storage-twin-layout{grid-template-columns:280px minmax(0,1fr) 320px;gap:10px}.storage-twin-status-list div,.storage-twin-realtime-params div{grid-template-columns:92px minmax(0,1fr);padding:6px 8px}.energy-twin-app-shell{gap:8px;padding:8px}.energy-twin-component-grid{gap:5px}.energy-twin-component-button{min-height:30px;padding:5px 7px;font-size:11px}}@media(max-width:1280px){.storage-duty-console{padding:12px}.storage-duty-target-strip,.storage-duty-device-strip{grid-template-columns:minmax(180px,1fr) repeat(6,minmax(92px,.7fr))}.storage-duty-target-strip>div,.storage-duty-device-strip>div{min-height:60px;padding:9px 10px}.storage-duty-target-strip strong,.storage-duty-device-strip strong{font-size:15px}.storage-duty-workspace{grid-template-columns:minmax(600px,1.35fr) minmax(268px,.65fr)}.storage-duty-control-pane,.storage-duty-safety-summary{padding:14px}.storage-duty-parameter-panel{grid-template-columns:minmax(230px,1fr) minmax(160px,.7fr);gap:8px;padding:10px}.storage-duty-status-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.storage-duty-status-grid>span{min-height:60px;padding:8px}.storage-duty-status-grid strong{font-size:15px}.storage-command-closure{grid-template-columns:minmax(420px,.95fr) minmax(420px,1.05fr)}.storage-command-timeline ol{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.storage-digital-twin-workbench .energy-twin-topbar{grid-template-columns:minmax(230px,1fr) minmax(220px,auto) auto;gap:8px}.storage-twin-layout{grid-template-columns:260px minmax(0,1fr) 300px;gap:8px}.storage-twin-scene-head{grid-template-columns:auto auto minmax(130px,1fr);padding-inline:10px}.storage-twin-scene-head input{width:104px}.storage-twin-floating-nav{left:12px;right:12px;bottom:12px;padding:6px}.storage-digital-twin-workbench .energy-twin-component-button{gap:5px;min-height:28px;padding:5px 6px;font-size:11px}.storage-twin-timeline-panel{min-height:204px;padding:12px}.energy-twin-cockpit-main{grid-template-columns:18fr 60fr 22fr;gap:8px}.energy-twin-topbar{grid-template-columns:minmax(210px,1fr) auto auto;gap:8px;padding:7px 8px}.energy-twin-topbar h1{font-size:18px}.energy-twin-summary-strip{gap:6px}.energy-twin-summary-strip span{min-width:72px;padding:5px 7px;font-size:11px}.energy-twin-actions{gap:6px}.energy-twin-actions button{height:30px;padding:0 8px;font-size:12px}.energy-twin-operations-panel,.energy-twin-inspector-panel{padding:9px}.energy-twin-panel-header{padding-bottom:10px}.energy-twin-panel-header h2{font-size:17px}.energy-twin-status-pill{padding:4px 7px;font-size:11px;line-height:1.2;white-space:nowrap}.energy-twin-status-line{align-items:flex-start;gap:7px;margin-top:8px}.mobile-energy-twin-demo .energy-twin-freshness{flex-basis:100%;gap:5px 7px}.mobile-energy-twin-demo .energy-twin-freshness small{font-size:10.5px;line-height:1.25;word-break:normal;overflow-wrap:normal}.energy-twin-metric-grid{grid-template-columns:minmax(0,1fr);gap:7px}.energy-twin-metric-card{min-height:58px;padding:9px}.energy-twin-metric-card strong{margin-top:5px;font-size:18px}.energy-twin-detail-list div{grid-template-columns:74px minmax(0,1fr);min-height:38px}.energy-twin-detail-list dt,.energy-twin-detail-list dd{padding:8px;font-size:12px}.energy-twin-events-panel{min-height:126px;padding:10px}.energy-twin-component-navigator{grid-template-columns:auto minmax(0,1fr);padding:8px}.energy-twin-component-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}}@media(prefers-reduced-motion:reduce){.energy-twin-component-button,.energy-twin-scene-label{transition:none}.energy-twin-component-button.is-running .energy-twin-component-dot{animation:none}}.storage-charge-console{grid-template-columns:minmax(0,1.56fr) minmax(400px,1fr);grid-template-rows:auto auto;min-height:0;align-content:start;align-items:stretch;gap:10px;padding:10px;background:radial-gradient(circle at 8% 3%,rgba(22,119,255,.07),transparent 22%),linear-gradient(180deg,#f4f7fb,#eef3f8)}.storage-charge-console>.storage-duty-device-strip{grid-column:1 / -1;grid-template-columns:minmax(220px,1.2fr) repeat(5,minmax(130px,1fr));border-color:#d9e2ec;border-radius:8px;background:#d9e2ec}.storage-charge-console>.storage-duty-device-strip>div{min-height:56px;padding:8px 14px}.storage-charge-console .storage-duty-target-select:before{display:none}.storage-charge-console .storage-duty-device-strip strong{font-size:15px}.storage-control-warning-strip{grid-column:1 / -1;display:flex;align-items:center;gap:10px;min-width:0;padding:9px 12px;color:#7c4a03;border:1px solid #f3cf83;border-radius:8px;background:#fff8e6}.storage-control-warning-badge{flex:0 0 auto;padding:3px 8px;color:#8a5200;border:1px solid #e8b957;border-radius:999px;background:#fff3cf;font-size:11px;font-weight:800;white-space:nowrap}.storage-control-warning-strip p{min-width:0;display:flex;flex-wrap:wrap;gap:6px 12px;margin:0}.storage-control-warning-strip p>span{min-width:0;display:inline-flex;align-items:baseline;gap:6px}.storage-control-warning-strip strong{font-size:12px;font-weight:800}.storage-control-warning-strip small{overflow:hidden;color:#8a641c;font-size:12px;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.storage-charge-console .is-truth-positive{color:#159447}.storage-charge-console .is-truth-warning{color:#a16207}.storage-charge-console .is-truth-blocked{color:#d4380d}.storage-charge-primary{grid-column:1;grid-row:2;min-width:0;display:grid;grid-template-rows:minmax(330px,1fr) auto;align-content:stretch;gap:10px}.storage-charge-hero{height:clamp(330px,30vh,350px);max-height:350px;min-height:330px;display:block;overflow:hidden;border:1px solid #d7e2ef;border-radius:9px;background:linear-gradient(145deg,#f8fbff,#e7f1fd);box-shadow:0 8px 24px #1f4a7d14}.storage-charge-soc{position:absolute;top:18px;bottom:18px;left:18px;z-index:4;width:156px;display:grid;align-content:center;justify-items:center;gap:9px;padding:16px 10px;border:1px solid rgba(255,255,255,.82);border-radius:12px;background:#f8fbffdb;box-shadow:0 12px 32px #1f4b7b1f;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.storage-charge-soc-gauge{--storage-charge-soc-angle: 0deg;width:122px;aspect-ratio:1;display:grid;place-content:center;justify-items:center;border-radius:50%;background:radial-gradient(circle at center,#f8fbff 0 58%,transparent 59%),conic-gradient(#1677ff 0 var(--storage-charge-soc-angle),#cbd5e1 var(--storage-charge-soc-angle) 360deg);box-shadow:inset 0 0 0 1px #94a3b847}.storage-charge-soc-gauge.missing{background:radial-gradient(circle at center,#f8fbff 0 58%,transparent 59%),conic-gradient(#cbd5e1 0 360deg)}.storage-charge-soc-gauge span{display:flex;align-items:baseline}.storage-charge-soc-gauge strong{color:#0f172a;font-size:30px;line-height:1}.storage-charge-soc-gauge small{color:#334155;font-size:15px;font-weight:700}.storage-charge-soc-gauge em,.storage-charge-soc>small{color:#64748b;font-size:11px;font-style:normal;text-align:center}.storage-charge-live-state{min-width:112px;padding:8px 14px;color:#fff;border-radius:6px;background:#64748b;font-size:15px;font-weight:800;text-align:center}.storage-charge-live-state.charging{background:#1677ff}.storage-charge-live-state.discharging{background:#13a36f}.storage-charge-live-state.idle{background:#64748b}.storage-charge-live-state.missing{background:#94a3b8}.storage-charge-vehicle{position:relative;height:100%;min-width:0;overflow:hidden;background:radial-gradient(circle at 72% 42%,rgba(255,255,255,.92),transparent 34%),linear-gradient(145deg,#eef5fc,#dbeafb)}.storage-charge-vehicle:before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.34;background-image:linear-gradient(rgba(86,138,194,.13) 1px,transparent 1px),linear-gradient(90deg,rgba(86,138,194,.13) 1px,transparent 1px);background-size:36px 36px;-webkit-mask-image:linear-gradient(90deg,transparent 0 22%,#000 45% 100%);mask-image:linear-gradient(90deg,transparent 0 22%,#000 45% 100%)}.storage-charge-vehicle:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(231,241,253,.72),transparent 22% 76%,rgba(231,241,253,.24))}.storage-control-vehicle-scene,.storage-control-vehicle-stage{width:100%;height:100%}.storage-control-vehicle-scene{position:relative}.storage-control-vehicle-stage{position:relative;overflow:hidden}.storage-control-vehicle-stage canvas,.storage-control-vehicle-stage>img{width:100%;height:100%;display:block}.storage-control-vehicle-stage canvas{cursor:grab;touch-action:none}.storage-control-vehicle-stage canvas:active{cursor:grabbing}.storage-control-vehicle-stage>img{position:absolute;inset:0;object-fit:cover;object-position:48% 54%;mix-blend-mode:normal;filter:none}.storage-control-vehicle-loading,.storage-control-vehicle-error{position:absolute;right:18px;top:18px;z-index:3;padding:7px 10px;border:1px solid rgba(22,119,255,.18);border-radius:999px;color:#31506f;background:#ffffffd1;font-size:11px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.storage-control-vehicle-tools{position:absolute;left:190px;bottom:14px;z-index:4;display:flex;align-items:center;gap:10px;color:#4d6680;font-size:11px}.storage-control-vehicle-tools button{min-height:28px;padding:0 11px;color:#0958d9;border:1px solid #8cbcff;border-radius:5px;background:#ffffffe6;font-weight:700}.storage-charge-vehicle>.storage-charge-vehicle-identity{position:absolute;right:14px;bottom:12px;z-index:2;display:grid;justify-items:end;gap:2px;padding:7px 10px;border-radius:6px;background:#072744c7;color:#fff;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.storage-charge-vehicle>.storage-charge-vehicle-identity b{font-size:12px}.storage-charge-vehicle>.storage-charge-vehicle-identity small{color:#dbeafe;font-size:10px}.storage-charge-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.storage-charge-kpis>span{min-width:0;min-height:82px;display:grid;grid-template-columns:34px minmax(0,1fr);align-content:center;align-items:center;column-gap:9px;gap:7px;padding:9px 12px;border:1px solid #dbe4ee;border-radius:8px;background:#fff;box-shadow:0 5px 14px #29517d0e}.storage-charge-kpis>span:before{content:attr(data-symbol);grid-row:1 / 3;width:30px;height:30px;display:grid;place-items:center;color:#1677ff;border:2px solid #8cbcff;border-radius:50%;font-size:13px;font-weight:900}.storage-charge-kpi--soc:before{color:#159447!important;border-color:#65c88a!important}.storage-charge-kpi--power:before{color:#1677ff!important;border-color:#8cbcff!important}.storage-charge-kpi--temperature:before{color:#e3473e!important;border-color:#f2a6a1!important}.storage-charge-kpis small{grid-column:2;color:#64748b;font-size:11px;line-height:1.25}.storage-charge-kpis strong{grid-column:2;min-width:0;color:#172033;font-size:17px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.storage-charge-control-panel{display:contents}.storage-charge-control-panel .storage-duty-control-pane,.storage-charge-control-panel .storage-duty-readonly-monitor,.storage-charge-safety-panel{min-width:0;border:1px solid #d9e2ec;border-radius:9px;background:#fff;box-shadow:0 3px 12px #1f4a7d0a}.storage-charge-control-panel .storage-duty-control-pane{grid-column:2;grid-row:2;align-self:stretch;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto auto minmax(108px,auto) minmax(88px,auto) auto;align-content:start;gap:8px;padding:0 14px 14px;overflow:hidden}.storage-charge-control-panel .storage-duty-command-head,.storage-charge-control-panel .storage-duty-parameter-panel{border-radius:7px}.storage-charge-control-panel .storage-duty-command-head{grid-column:1 / -1;grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:16px;margin:0 -14px 2px;padding:12px 16px;border-bottom:1px solid #e4ebf3;border-radius:0;background:#fff;white-space:nowrap}.storage-charge-control-panel .storage-duty-command-head>div{display:flex;align-items:center;gap:10px;min-width:0}.storage-charge-control-panel .storage-duty-command-head strong{padding:3px 9px;border-radius:999px;color:#176ff2;background:#edf5ff;font-size:12px}.storage-charge-control-title>div>span{color:#172033;font-size:18px;font-weight:800}.storage-charge-control-panel .storage-duty-command-head small{min-width:0;overflow:hidden;color:#64748b;text-align:right;text-overflow:ellipsis;white-space:nowrap}.storage-charge-control-panel .storage-duty-mode-switch{grid-column:1 / -1;grid-template-columns:repeat(3,minmax(0,1fr));padding:4px;border-radius:7px;background:#f1f5f9}.storage-charge-control-panel .storage-duty-mode-switch button{min-height:38px;padding:4px 6px;overflow:hidden;text-align:center;white-space:nowrap}.storage-charge-control-panel .storage-duty-mode-switch button strong,.storage-charge-control-panel .storage-duty-mode-switch button span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.storage-charge-control-panel .storage-duty-mode-switch button.active{color:#fff;border-color:#1677ff;background:linear-gradient(135deg,#176ff2,#087cff);box-shadow:0 5px 12px #1677ff33}.storage-charge-control-panel .storage-duty-mode-switch button.active span{color:#ffffffd1}.storage-charge-control-panel .storage-duty-parameter-panel{grid-column:1 / -1;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto minmax(68px,1fr);gap:7px;padding:9px;border:1px solid #dfe8f3;background:linear-gradient(145deg,#f8fbff,#f3f7fb)}.storage-charge-control-panel .storage-duty-parameter-panel>header{grid-column:1 / -1;padding:0 2px 3px}.storage-charge-control-panel .storage-duty-parameter-panel>header,.storage-charge-control-panel .storage-duty-parameter-panel label,.storage-charge-control-panel .storage-control-kind{white-space:nowrap}.storage-charge-control-panel .storage-duty-parameter-panel>.storage-control-field,.storage-charge-control-panel .storage-duty-parameter-panel>.storage-control-group{position:relative;grid-column:auto;min-width:0;min-height:68px;align-self:stretch;align-items:center;justify-content:center;gap:10px;padding:9px 12px;overflow:hidden;border:1px solid #dce7f2;border-radius:9px;background:#ffffffe6;box-shadow:0 5px 14px #29517d0b}.storage-charge-control-panel .storage-duty-parameter-panel>.storage-control-field:after{content:"";position:absolute;right:10px;top:10px;width:36px;height:36px;border:7px solid rgba(22,119,255,.06);border-radius:50%;pointer-events:none}.storage-charge-control-panel .storage-duty-parameter-panel>.storage-work-mode-field:after{border-color:#1282630e}.storage-charge-control-panel .storage-duty-parameter-panel>.storage-control-field>span{position:relative;z-index:1;color:#465b73;font-weight:800}.storage-charge-control-panel .storage-duty-parameter-panel>.storage-control-field{grid-template-columns:max-content minmax(0,1fr)}.storage-charge-control-panel .storage-duty-parameter-panel>.storage-work-mode-field{flex-direction:row;justify-content:space-between}.storage-charge-control-panel .storage-duty-parameter-panel>.storage-control-field:first-of-type>input[type=number]{position:relative;z-index:1;height:40px;border-color:#cfddeb;border-radius:7px;font-size:24px;font-weight:700;box-shadow:inset 0 1px 2px #0f172a0a}.storage-charge-control-panel .storage-work-mode-selector{position:relative;z-index:1;width:100%;max-width:100%;justify-self:stretch;min-height:40px;padding:3px;border:1px solid #dce7e8}.storage-charge-control-panel .storage-work-mode-selector label{padding-inline:8px}.storage-charge-control-panel .storage-duty-soc-guard{grid-template-columns:92px repeat(2,minmax(100px,1fr))}.storage-charge-power-options{grid-column:1 / -1;border-top:1px solid #e6edf5}.storage-charge-power-options>summary,.storage-charge-confirmation>summary{padding:7px 2px;color:#31506f;font-size:12px;font-weight:700;cursor:pointer}.storage-charge-power-options[open]{display:grid;gap:7px}.storage-charge-secondary-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.storage-charge-power-options .storage-control-field{min-height:42px;padding:7px 9px}.storage-charge-control-panel .storage-duty-power-tools{grid-template-columns:auto repeat(5,minmax(42px,1fr))}.storage-charge-dispatch-summary{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);min-height:88px;overflow:hidden;border:1px solid #e0e8f2;border-radius:7px;background:linear-gradient(90deg,#f5f9ff,#fff 48%);box-shadow:0 4px 12px #29517d09}.storage-charge-dispatch-summary article{min-width:0;display:grid;align-content:center;gap:4px;padding:8px 12px;border-right:1px solid #e4ebf3}.storage-charge-dispatch-summary article:last-child{border-right:0}.storage-charge-dispatch-summary header{display:flex;align-items:center;justify-content:space-between;gap:8px}.storage-charge-dispatch-summary header span{color:#617186;font-size:11px;font-weight:700}.storage-charge-dispatch-summary header em{overflow:hidden;color:#8090a4;font-size:10px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.storage-charge-command-preview header em{padding:2px 7px;border-radius:999px;color:#176ff2;background:#eaf3ff;font-weight:800}.storage-charge-command-preview header em.discharging{color:#087a58;background:#e9f8f2}.storage-charge-command-preview header em.stopping{color:#5d6b7c;background:#edf1f5}.storage-charge-command-route{min-width:0;display:flex;align-items:center;gap:8px;white-space:nowrap}.storage-charge-command-route strong{overflow:hidden;color:#64748b;font-size:14px;text-overflow:ellipsis}.storage-charge-command-route i{flex:0 0 auto;color:#91a3b8;font-size:17px;font-style:normal}.storage-charge-command-route b{overflow:hidden;color:#1677ff;font-size:17px;text-overflow:ellipsis}.storage-charge-dispatch-summary article>small{overflow:hidden;color:#8290a3;font-size:10px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.storage-charge-power-budget>div{display:flex;align-items:baseline;gap:2px}.storage-charge-power-budget>div strong{color:#172033;font-size:20px;line-height:1}.storage-charge-power-budget>div small{color:#64748b;font-size:11px;font-weight:700}.storage-charge-power-track{height:4px;overflow:hidden;border-radius:999px;background:#e5edf6}.storage-charge-power-track i{height:100%;display:block;border-radius:inherit;background:linear-gradient(90deg,#4f9cff,#176ff2);transition:width .18s ease}.storage-charge-control-actions{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1fr) 148px;gap:8px}.storage-control-insights{grid-column:1 / -1;grid-row:3;min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.storage-control-insight-card{min-width:0;min-height:356px;display:grid;grid-template-rows:auto auto auto minmax(240px,1fr);align-content:start;overflow:hidden;border:1px solid #d9e2ec;border-radius:9px;background:#fff;box-shadow:0 5px 16px #1f4a7d0e}.storage-control-insight-head{min-width:0;min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 14px 10px;border-bottom:1px solid #e7edf4}.storage-control-insight-head>div:first-child{min-width:0;display:grid;gap:2px}.storage-control-insight-head span{color:#718198;font-size:10px;font-weight:800;letter-spacing:.08em}.storage-control-insight-head h2{margin:0;color:#172033;font-size:17px;line-height:1.25}.storage-control-insight-head small{overflow:hidden;color:#718198;font-size:11px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.storage-control-power-insight .storage-control-insight-head{box-shadow:inset 3px 0 #1677ff}.storage-control-soc-insight .storage-control-insight-head{box-shadow:inset 3px 0 #16a06a}.storage-control-view-switch{flex:0 0 auto;display:grid;grid-template-columns:repeat(2,max-content);gap:2px;padding:3px;border:1px solid #dbe4ee;border-radius:7px;background:#f1f5f9}.storage-control-view-switch button{min-height:30px;padding:4px 11px;border:0;border-radius:5px;background:transparent;color:#5c6d82;font:inherit;font-size:11px;font-weight:700;cursor:pointer}.storage-control-view-switch button:hover{color:#0958d9}.storage-control-view-switch button.active{color:#0958d9;background:#fff;box-shadow:0 2px 6px #30537a1f}.storage-control-soc-insight .storage-control-view-switch button.active{color:#087a58}.storage-control-insight-meta{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 14px 6px;color:#65758a;font-size:11px}.storage-control-insight-meta span{color:#31506f;font-weight:800}.storage-control-insight-meta em{overflow:hidden;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.storage-control-insight-notice{margin:0 14px 6px;padding:5px 8px;border:1px solid #f3cf83;border-radius:5px;background:#fff8e6;color:#8a641c;font-size:11px;line-height:1.35}.storage-control-insight-notice.error{border-color:#f0b4b4;background:#fff3f3;color:#b42318}.storage-control-insight-chart{position:relative;min-width:0;min-height:240px;margin:0 10px 10px;overflow:hidden;border:1px solid #e7edf4;border-radius:7px;background:linear-gradient(180deg,#f1f7ffb8,#fafcfff5)}.storage-control-soc-insight .storage-control-insight-chart{background:linear-gradient(180deg,#f0faf6c2,#fafdfcf5)}.storage-control-insight-chart:focus-visible,.storage-control-insight-table:focus-visible{outline:2px solid rgba(22,119,255,.35);outline-offset:-2px}.storage-control-insight-chart>svg{width:100%;height:240px;display:block}.storage-control-insight-grid line{stroke:#dbe4ee;stroke-width:1;stroke-dasharray:4 4;vector-effect:non-scaling-stroke}.storage-control-insight-grid line.zero{stroke:#8494a8;stroke-width:1.25;stroke-dasharray:none}.storage-control-insight-axis text{fill:#718198;font-size:9px}.storage-control-power-areas path.discharge{fill:url(#storage-control-discharge-area)}.storage-control-power-areas path.charge{fill:url(#storage-control-charge-area)}.storage-control-insight-lines path{fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.storage-control-insight-lines .power{stroke:#1677ff}.storage-control-insight-lines .soc{stroke:#16a06a;stroke-width:2.8}.storage-control-insight-hover line{stroke:#64748b;stroke-width:1;stroke-dasharray:3 3;vector-effect:non-scaling-stroke}.storage-control-insight-hover circle{stroke:#fff;stroke-width:2;vector-effect:non-scaling-stroke}.storage-control-insight-hover circle.power{fill:#1677ff}.storage-control-insight-hover circle.soc{fill:#16a06a}.storage-control-insight-tooltip{position:absolute;z-index:2;top:18px;min-width:146px;display:grid;gap:3px;padding:8px 10px;border:1px solid rgba(15,23,42,.14);border-radius:6px;background:#0f172aeb;color:#e2e8f0;font-size:11px;line-height:1.35;pointer-events:none;transform:translate(-12%);box-shadow:0 8px 18px #0f172a2e}.storage-control-insight-tooltip strong{color:#fff;font-size:11px}.storage-control-insight-table{min-width:0;height:240px;margin:0 10px 10px;overflow:auto;border:1px solid #e7edf4;border-radius:7px;background:#fff}.storage-control-insight-table table{width:100%;border-collapse:collapse;table-layout:fixed}.storage-control-insight-table th,.storage-control-insight-table td{padding:9px 11px;border-bottom:1px solid #edf2f7;color:#42526b;font-size:11px;text-align:left;white-space:nowrap}.storage-control-insight-table th{position:sticky;top:0;z-index:1;color:#607086;background:#f5f8fb;font-weight:800}.storage-control-insight-table tbody tr:hover{background:#f7faff}.storage-control-direction{display:inline-flex;min-width:42px;justify-content:center;padding:2px 7px;border-radius:999px;color:#64748b;background:#edf1f5;font-size:10px;font-weight:800}.storage-control-direction.discharge{color:#0958d9;background:#eaf3ff}.storage-control-direction.charge{color:#087a58;background:#e8f7f1}.storage-control-direction.missing{color:#7f8b9d;background:#f1f3f6}.storage-control-insight-empty{min-height:240px;margin:0 10px 10px;border:1px dashed #cfd9e5;border-radius:7px}.storage-command-popover-anchor{position:relative;min-width:0}.storage-charge-control-actions .storage-duty-primary-action,.storage-charge-control-actions .storage-duty-emergency-stop{width:100%;min-height:42px;border-radius:7px;white-space:nowrap}.storage-charge-control-actions .storage-duty-primary-action{grid-column:auto;border-color:#1677ff;background:linear-gradient(135deg,#176ff2,#087cff);box-shadow:0 7px 16px #1677ff33;font-size:16px;font-weight:800}.storage-charge-control-actions .storage-duty-primary-action:before{content:"▶";display:inline-grid;width:24px;height:24px;margin-right:9px;place-items:center;border:2px solid currentColor;border-radius:50%;font-size:10px}.storage-charge-control-actions .storage-duty-primary-action:hover:not(:disabled){border-color:#0958d9;background:#0958d9}.storage-command-confirm-popover{position:absolute;z-index:80;right:0;left:auto;bottom:calc(100% + 12px);width:min(248px,calc(100vw - 48px));max-height:min(420px,calc(100vh - 48px));display:grid;gap:8px;overflow-y:auto;padding:12px 14px;color:#0f172a;border:1px solid #b8cce8;border-radius:12px;background:#fff;box-shadow:0 18px 46px #0f172a38}.storage-command-confirm-popover:after{content:"";position:absolute;right:44px;left:auto;bottom:-7px;width:12px;height:12px;border-right:1px solid #b8cce8;border-bottom:1px solid #b8cce8;background:#fff;transform:rotate(45deg)}.storage-command-confirm-popover:focus-visible,.storage-command-confirm-popover button:focus-visible,.storage-command-confirm-popover input:focus-visible{outline:2px solid #1677ff;outline-offset:2px}.storage-command-confirm-popover>header,.storage-command-confirm-popover>footer{display:flex;align-items:center;gap:8px}.storage-command-confirm-popover>header>div{display:grid;gap:2px}.storage-command-confirm-popover>header span{color:#64748b;font-size:12px;font-weight:700}.storage-command-confirm-popover>header strong{display:block;width:100%;text-align:center;line-height:1.35;font-size:16px}.storage-command-popover-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.storage-command-popover-facts>span{min-width:0;display:grid;gap:3px;padding:9px 10px;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc}.storage-command-popover-facts small{color:#64748b;font-size:11px;font-weight:700}.storage-command-popover-facts strong{overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.storage-command-popover-facts strong.ready{color:#16764a}.storage-command-popover-facts strong.blocked{color:#d92d20}.storage-command-popover-warning{margin:0;padding:9px 11px;color:#8a3d12;border:1px solid #fed7aa;border-radius:8px;background:#fff7ed;font-size:12px;line-height:1.45}.storage-command-confirm-popover .storage-command-modal-confirmation>label:first-child,.storage-command-confirm-popover .storage-command-modal-confirmation .storage-control-field small{white-space:normal}.storage-command-confirm-popover>footer{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding-top:0}.storage-command-confirm-popover>footer button{min-width:0;min-height:36px;border:1px solid #d4dde8;border-radius:7px;background:#fff;font-size:14px;font-weight:700}.storage-command-confirm-popover>footer button.primary{color:#fff;border-color:#1677ff;background:#1677ff}.storage-command-confirm-popover>footer button:disabled{color:#94a3b8;border-color:#e2e8f0;background:#edf2f3;cursor:not-allowed}.storage-charge-control-actions .storage-duty-emergency-stop{color:#d92d20;border:1px solid #ff7875;background:#fff;font-size:16px;font-weight:800}.storage-charge-control-actions .storage-duty-emergency-stop:before{content:"■";display:inline-grid;width:24px;height:24px;margin-right:9px;place-items:center;border:2px solid currentColor;border-radius:50%;font-size:10px}.storage-command-modal-confirmation{display:grid;gap:10px;padding:12px;border:1px solid #d8e5f4;border-radius:8px;background:#f8fbff}.storage-command-modal-confirmation>label:first-child{display:flex;align-items:center;gap:9px;color:#334155;font-size:13px;white-space:nowrap}.storage-command-modal-confirmation input[type=checkbox]{flex:0 0 auto;width:16px;height:16px}.storage-command-modal-confirmation .storage-control-field{display:grid;grid-template-columns:104px minmax(0,1fr);align-items:center;gap:8px}.storage-command-modal-confirmation .storage-control-field small{grid-column:2;color:#7b8797;white-space:nowrap}.storage-charge-control-actions .storage-duty-emergency-stop:hover:not(:disabled){border-color:#d92d20;background:#fff1f0}.storage-charge-safety-panel{grid-column:2;grid-row:3;align-self:stretch;gap:10px;padding:0;border-left:1px solid #d9e2ec}.storage-charge-safety-panel .storage-control-readiness{padding:0 14px 12px;border:0;border-radius:9px;background:#fff}.storage-charge-safety-panel .storage-control-readiness>header{margin:0 -14px 4px;padding:13px 16px;border-bottom:1px solid #e4ebf3;background:#fff}.storage-charge-safety-panel .storage-readiness-checks>div,.storage-charge-safety-panel .storage-duty-safety-list>div{min-height:38px;padding:7px 9px;border-bottom:1px solid #edf2f7;border-radius:0}.storage-charge-safety-panel .storage-duty-safety-list>div>span small{display:none}.storage-charge-safety-panel .storage-duty-safety-list>div>em{margin-left:auto;color:#159447;font-size:12px;font-style:normal;font-weight:700}.storage-charge-safety-status:before{content:"✓";display:inline-grid;width:16px;height:16px;margin-right:5px;place-items:center;color:#fff;border-radius:50%;background:#159447;font-size:10px}.storage-charge-safety-panel .block .storage-charge-safety-status:before,.storage-charge-safety-panel .blocked .storage-charge-safety-status:before,.storage-charge-safety-panel .is-blocked .storage-charge-safety-status:before{content:"!";background:#d4380d}.storage-charge-safety-panel .storage-duty-safety-list>div.block>em,.storage-charge-safety-panel .storage-duty-safety-list>div.blocked>em,.storage-charge-safety-panel .storage-duty-safety-list>div.is-blocked>em{color:#d4380d}.storage-charge-command-flow{grid-column:1 / -1;grid-row:4;min-width:0;border-radius:9px}.storage-charge-command-flow ol{gap:0}.storage-charge-command-flow li{position:relative;min-height:76px;padding:10px 12px 10px 35px;border:0;border-radius:0;background:#fff}.storage-charge-command-node{position:absolute;top:14px;left:8px;z-index:2;width:30px;height:30px;display:grid;place-items:center;border:3px solid #cbd5e1;border-radius:50%;background:#fff}.storage-charge-command-flow li:not(:last-child):after{content:"";position:absolute;top:28px;left:36px;right:-12px;height:2px;background:#cbd5e1}.storage-charge-command-flow li.complete .storage-charge-command-node,.storage-charge-command-flow li.verified .storage-charge-command-node{border-color:#1677ff;background:#1677ff}.storage-charge-command-flow li.complete .storage-charge-command-node:after,.storage-charge-command-flow li.verified .storage-charge-command-node:after{content:"✓";color:#fff;font-size:15px;font-style:normal;font-weight:900}.storage-charge-command-flow li.active .storage-charge-command-node,.storage-charge-command-flow li.published .storage-charge-command-node{border-color:#1677ff}@media(max-width:1500px){.storage-charge-console{grid-template-columns:minmax(0,1.45fr) minmax(390px,1fr)}.storage-charge-hero{height:340px}.storage-charge-soc-gauge{width:124px}.storage-charge-kpis strong{font-size:15px}}@media(max-width:1320px){.storage-charge-console{grid-template-columns:minmax(0,1fr);grid-template-rows:auto;min-height:auto}.storage-charge-primary{grid-column:1;grid-row:2;grid-template-rows:auto}.storage-charge-control-panel .storage-duty-control-pane,.storage-charge-control-panel .storage-duty-readonly-monitor{grid-column:1;grid-row:3}.storage-control-insights{grid-column:1;grid-row:4}}@media(prefers-reduced-motion:reduce){.storage-charge-console *,.storage-charge-console *:before,.storage-charge-console *:after{transition-duration:.01ms!important}}.twin-immersive-shell .content--campus-twin #view{height:calc(100vh - 48px);height:calc(100dvh - 48px)}.twin-immersive-shell{min-height:100vh;min-height:100dvh;overflow:hidden;color:#dff7ff;background:#030b14}.twin-immersive-shell .content{min-width:1280px;height:100vh;height:100dvh;margin-left:0;padding-top:0;overflow:hidden;background:#030b14}.twin-immersive-tabs{position:relative;z-index:30;height:48px;display:flex;align-items:stretch;gap:18px;padding:0 22px;border-bottom:1px solid rgba(78,220,255,.2);background:linear-gradient(90deg,#061824,#07131d 58%,#050f19);box-shadow:0 8px 24px #00050c4d}.twin-immersive-exit{display:flex;align-items:center;gap:13px;padding-right:20px;color:#f1f7ff;border:0;background:none;cursor:pointer;transition:color .16s ease}.twin-immersive-exit__marker{width:6px;height:25px;flex:0 0 auto;background:#1bb8ff;box-shadow:0 0 10px #1aa6f1}.twin-immersive-exit strong{font-size:clamp(17px,1.3vw,24px);letter-spacing:2px}.twin-immersive-tabs__list{min-width:0;display:flex;align-items:stretch}.twin-immersive-tab{position:relative;min-width:176px;padding:0 22px;color:#7892a3;font-size:14px;background:transparent;transition:color .16s ease,background-color .16s ease}.twin-immersive-tab:after{position:absolute;right:20px;bottom:0;left:20px;height:2px;content:"";opacity:0;background:#4edcff;box-shadow:0 0 12px #4edcffcc;transition:opacity .16s ease}.twin-immersive-tab:hover,.twin-immersive-tab.active{color:#dcf8ff;background:linear-gradient(180deg,#4edcff00,#4edcff17)}.twin-immersive-tab.active:after{opacity:1}.twin-immersive-tab:focus-visible,.twin-immersive-exit:focus-visible{outline-color:#4edcff}.twin-immersive-exit:hover{color:#4edcff}.twin-immersive-shell #view{height:calc(100vh - 48px);height:calc(100dvh - 48px);min-height:0;padding:0;overflow:hidden;background:#030b14}.twin-immersive-shell .loading-mask{color:#9fc4d3;background:#030b14c7}.twin-immersive-shell .load-error{color:#dff7ff;border-color:#ff728647;background:#07131d}.twin-immersive-shell .load-error strong{color:#ff96a5}.twin-immersive-shell .load-error span{color:#8aa8b8}.twin-immersive-shell .campus-twin-workbench,.twin-immersive-shell .storage-digital-twin-workbench{width:100%;height:100%;min-height:0}.twin-immersive-shell .storage-digital-twin-workbench .energy-twin-app-shell{height:100%;min-height:0}.storage-strategy-page,.storage-strategy-workbench{display:grid;grid-template-columns:280px minmax(520px,1fr) 320px;gap:16px;align-items:start;min-height:calc(100vh - 144px);color:#172033}.storage-strategy-workbench{min-height:auto}.strategy-workbench-error{grid-column:1 / -1}.strategy-list-panel,.strategy-editor-panel,.strategy-inspector-panel{border:1px solid #dfe6ef;border-radius:12px;background:#fff;box-shadow:0 4px 18px #1f2d440d}.strategy-list-panel,.strategy-inspector-panel{position:sticky;top:16px;overflow:hidden}.strategy-list-panel>header,.strategy-inspector-panel>header,.strategy-editor-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 20px;border-bottom:1px solid #e7ecf3}.strategy-list-panel>header div,.strategy-inspector-panel>header div,.strategy-editor-head>div:first-child{display:grid;gap:4px}.strategy-list-panel>header span,.strategy-inspector-panel>header span,.strategy-editor-head>div:first-child>span{color:#7c879b;font-size:12px;letter-spacing:.04em}.strategy-list-panel>header strong,.strategy-inspector-panel>header strong{font-size:18px}.strategy-inspector-panel>header small{color:#2563eb;font-size:12px;white-space:nowrap}.strategy-list-panel button.primary,.strategy-editor-head button.primary{border-color:#2563eb;color:#fff;background:#2563eb}.strategy-list-summary{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;color:#748096;font-size:12px;background:#f8fafc}.strategy-list-summary button{border:0;color:#2563eb;background:transparent}.strategy-list{display:grid;gap:8px;max-height:calc(100vh - 260px);padding:10px;overflow:auto}.strategy-list>button{display:grid;gap:8px;width:100%;padding:14px;border:1px solid transparent;border-radius:9px;color:#344056;text-align:left;background:#f8fafc}.strategy-list>button:hover,.strategy-list>button.active{border-color:#a9c4fb;background:#eff5ff}.strategy-card-title,.strategy-card-meta{display:flex;align-items:center;justify-content:space-between;gap:8px}.strategy-card-title strong{overflow:hidden;color:#18233a;font-size:14px;text-overflow:ellipsis}.strategy-card-title i{padding:3px 7px;border-radius:12px;font-size:11px;font-style:normal}.strategy-card-title i.running{color:#047857;background:#dff7ec}.strategy-card-title i.stopped{color:#68758b;background:#e9edf3}.strategy-list>button small,.strategy-card-meta em{color:#7d8798;font-size:12px;font-style:normal}.strategy-card-meta b{color:#3a68c7;font-size:12px}.strategy-editor-panel{min-width:0;overflow:hidden}.strategy-editor-panel.is-draft{border-color:#4f7ef7;background:#f8fbff;box-shadow:0 0 0 3px #4f7ef729,0 10px 28px #2563eb1f}.strategy-editor-panel.is-draft .strategy-editor-head{border-bottom-color:#c8d9ff;background:linear-gradient(135deg,#eaf2ff,#f8fbff)}.strategy-editor-head>div:first-child>.strategy-draft-badge{justify-self:start;padding:4px 9px;border-radius:999px;color:#fff;font-size:11px;font-weight:700;letter-spacing:.04em;background:#2563eb}.strategy-inspector-panel{display:grid;gap:12px;padding-bottom:12px}.strategy-editor-head{flex-wrap:wrap;padding:20px 24px;background:linear-gradient(135deg,#fbfdff,#f3f7fd)}.strategy-editor-head>div:first-child{flex:1 1 300px;min-width:0}.strategy-editor-head h1{margin:0;color:#111c32;font-size:22px}.strategy-editor-head p{margin:2px 0 0;color:#6f7b90;font-size:13px}.strategy-head-actions{display:flex;flex:0 0 auto;flex-wrap:wrap;justify-content:flex-end;gap:10px}.strategy-head-actions button,.strategy-section-title button{min-height:34px;padding:0 14px;border:1px solid #cdd6e4;border-radius:7px;color:#344056;background:#fff}.strategy-head-actions button.danger{border-color:#f1b8b8;color:#d9363e;background:#fff7f7}.strategy-head-actions button.danger:hover:not(:disabled){border-color:#d9363e;background:#fff0f0}.strategy-edge-sync-notice{grid-column:1 / -1;flex:0 0 100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;align-items:center;margin-top:14px;padding:12px 14px;border:1px solid #bfd8f6;border-radius:8px;background:#f4f9ff;color:#26415f}.strategy-edge-sync-notice strong,.strategy-edge-sync-notice span,.strategy-edge-sync-notice small{min-width:0}.strategy-edge-sync-notice strong{font-size:13px}.strategy-edge-sync-notice span,.strategy-edge-sync-notice small{color:#5c6f86;font-size:12px}.strategy-edge-sync-notice small{grid-column:1 / -1}.strategy-edge-sync-notice button{grid-row:1 / span 2;grid-column:2;min-height:32px;padding:0 12px;border:1px solid #8ab8ec;border-radius:7px;color:#15538e;background:#fff}.strategy-edge-sync-notice.is-failed{border-color:#f2c4a8;background:#fff8f2;color:#7a3214}.strategy-edge-sync-notice.is-failed span,.strategy-edge-sync-notice.is-failed small{color:#8a5a3f}.strategy-edge-sync-notice.is-failed button{border-color:#e5a47b;color:#8a3a12}.strategy-section{margin:16px 20px;padding:18px;border:1px solid #e2e8f1;border-radius:10px;background:#fff}.strategy-dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin:16px 20px 0}.strategy-estimate-card,.strategy-conflict-card,.strategy-execution-panel{display:grid;gap:12px;min-height:132px;padding:14px;border:1px solid #e3eaf4;border-radius:10px;background:linear-gradient(180deg,#fff,#f8fbff)}.strategy-inspector-panel .strategy-estimate-card,.strategy-inspector-panel .strategy-conflict-card,.strategy-inspector-panel .strategy-execution-panel{min-height:0;margin:0 12px}.strategy-estimate-card header,.strategy-conflict-card header,.strategy-execution-panel header{display:flex;align-items:center;justify-content:space-between;gap:10px}.strategy-estimate-card header span,.strategy-conflict-card header span,.strategy-execution-panel header span{color:#1d2a3f;font-size:15px;font-weight:700}.strategy-estimate-card header small,.strategy-conflict-card header small,.strategy-execution-panel header small,.strategy-estimate-card p,.strategy-conflict-card p{margin:0;color:#7d889a;font-size:12px}.strategy-execution-vehicles{display:grid;gap:8px}.strategy-execution-vehicles>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 10px;border:1px solid #e3eaf4;border-radius:8px;background:#f8fbff}.strategy-execution-vehicles span{display:grid;gap:3px;min-width:0}.strategy-execution-vehicles strong,.strategy-execution-vehicles small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.strategy-execution-vehicles strong{color:#243049;font-size:13px}.strategy-execution-vehicles small{color:#7d889a;font-size:12px}.strategy-execution-vehicles b{padding:3px 8px;border-radius:999px;font-size:11px}.strategy-execution-vehicles b.online{color:#047857;background:#dff7ec}.strategy-execution-vehicles b.offline{color:#b91c1c;background:#fee2e2}.strategy-estimate-values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.strategy-inspector-panel .strategy-estimate-values{grid-template-columns:1fr}.strategy-inspector-panel .strategy-estimate-values.revenue strong{color:#d5681d}.strategy-estimate-values div{display:grid;gap:4px;min-height:58px;padding:10px;border-radius:8px;background:#f2f6fb}.strategy-estimate-values span,.strategy-conflict-list small{color:#79869a;font-size:12px}.strategy-estimate-values strong{color:#1769d8;font-size:17px}.strategy-conflict-list{display:grid;gap:8px}.strategy-conflict-list>div{display:grid;gap:3px;padding:9px 10px;border:1px solid #ffd8b4;border-radius:8px;background:#fff7ed}.strategy-conflict-list strong{color:#b45309;font-size:13px}.strategy-section-title{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.strategy-section-title>div{display:flex;align-items:center;gap:10px}.strategy-section-title>div>span{display:grid;place-items:center;width:27px;height:27px;border-radius:7px;color:#2563eb;font-size:11px;background:#eaf1ff}.strategy-section-title strong{font-size:16px}.strategy-section-title small{color:#8390a3}.strategy-form-grid{display:grid;grid-template-columns:1.4fr repeat(3,minmax(150px,.75fr));gap:14px}.strategy-form-grid label,.soc-threshold-layout label{display:grid;gap:7px;min-width:0;color:#657186;font-size:12px}.strategy-form-grid input,.strategy-form-grid select,.strategy-slot-row input,.strategy-slot-row select{height:38px;padding:0 11px;border:1px solid #cfd8e6;border-radius:7px;color:#1d293d;background:#fff}.strategy-weekdays{display:flex;align-items:center;gap:8px;margin-top:14px}.strategy-weekdays>span{margin-right:4px;color:#6c778a;font-size:12px}.strategy-weekdays button{width:48px;height:32px;border:1px solid #d3dbe8;border-radius:7px;color:#637087;background:#fff}.strategy-weekdays button.active{border-color:#2563eb;color:#2563eb;background:#edf4ff}.soc-threshold-layout{display:grid;grid-template-columns:220px minmax(180px,1fr) 220px;gap:24px;align-items:center}.soc-threshold-layout label>div{display:flex;align-items:center;border:1px solid #cfd8e6;border-radius:7px}.soc-threshold-layout label input{width:100%;height:40px;padding:0 12px;border:0;background:transparent}.soc-threshold-layout label b{padding-right:12px;color:#4c5b72}.soc-threshold-layout label small{color:#8994a6;line-height:1.45}.soc-range-control{position:relative;min-height:92px;padding:28px 10px 0}.soc-range-visual{position:relative;height:12px;border-radius:8px;background:linear-gradient(90deg,#fee2e2,#f2f5f9 25% 75%,#dbeafe)}.soc-range-visual i{position:absolute;top:0;bottom:0;border-radius:8px;background:linear-gradient(90deg,#4ade80,#22c55e)}.soc-range-input{position:absolute;z-index:2;top:22px;left:10px;width:calc(100% - 20px);height:24px;margin:0;pointer-events:none;appearance:none;background:transparent}.soc-range-input.upper{z-index:3}.soc-range-input::-webkit-slider-runnable-track{height:12px;background:transparent}.soc-range-input::-webkit-slider-thumb{width:22px;height:22px;margin-top:-5px;border:3px solid #2563eb;border-radius:50%;box-shadow:0 2px 8px #2563eb47;cursor:grab;pointer-events:auto;appearance:none;background:#fff}.soc-range-input::-moz-range-track{height:12px;background:transparent}.soc-range-input::-moz-range-thumb{width:18px;height:18px;border:3px solid #2563eb;border-radius:50%;box-shadow:0 2px 8px #2563eb47;cursor:grab;pointer-events:auto;background:#fff}.soc-threshold-value{position:absolute;top:0;z-index:4;padding:2px 6px;border-radius:10px;color:#2563eb;font-size:11px;font-weight:700;transform:translate(-50%);background:#edf4ff}.soc-range-control>strong{display:block;margin-top:10px;color:#4f7a60;font-size:11px;text-align:center}.soc-threshold-scale{display:flex;justify-content:space-between;margin-top:6px;color:#7d899c;font-size:11px}.strategy-selector-toolbar,.strategy-vehicle-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;margin-bottom:12px;padding:9px 10px;border:1px solid #e3eaf4;border-radius:8px;background:#f8fafc}.strategy-selector-toolbar>span,.strategy-vehicle-toolbar>span{min-width:0;color:#657186;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.strategy-selector-toolbar>div,.strategy-vehicle-toolbar>div{display:flex;gap:8px;align-items:center;justify-content:flex-end;min-width:0}.strategy-selector-toolbar button,.strategy-vehicle-toolbar button{min-height:30px;padding:0 10px;border:1px solid #c7d4e6;border-radius:6px;color:#2563eb;font-size:12px;background:#fff}.strategy-selector-toolbar button:hover:not(:disabled),.strategy-vehicle-toolbar button:hover:not(:disabled){border-color:#8db0f5;background:#eff5ff}.strategy-selector-toolbar button:disabled,.strategy-vehicle-toolbar button:disabled{color:#8b97a8;cursor:not-allowed;background:#eef2f7;opacity:.72}.strategy-vehicle-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.strategy-vehicle-grid>label{display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:10px;align-items:center;min-width:0;padding:14px;border:1px solid #dbe3ee;border-radius:9px;cursor:pointer;background:#fbfcfe}.strategy-vehicle-grid>label:has(input:not(:disabled)):hover{border-color:#b8c9e8;background:#f6f9fe}.strategy-vehicle-grid>label.selected{border-color:#8db0f5;background:#f1f6ff;box-shadow:inset 0 0 0 1px #2563eb14}.strategy-vehicle-grid>label:has(input:disabled){cursor:default}.strategy-vehicle-grid>label>input[type=checkbox]{justify-self:center;align-self:start;width:16px;height:16px;margin:1px 0 0;accent-color:#2563eb}.strategy-vehicle-grid>label>span{display:grid;gap:3px;min-width:0}.strategy-vehicle-grid>label>span small{overflow:hidden;color:#7b879a;text-overflow:ellipsis}.strategy-vehicle-grid>label>i{padding:3px 8px;border-radius:12px;font-size:11px;font-style:normal}.strategy-vehicle-grid>label>i.online{color:#047857;background:#dff7ec}.strategy-vehicle-grid>label>i.offline{color:#b91c1c;background:#fee2e2}.strategy-vehicle-grid dl{display:grid;grid-column:2 / -1;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:2px 0 0}.strategy-vehicle-grid dl div{display:grid;gap:2px;padding:8px;border-radius:6px;background:#ffffffbf}.strategy-vehicle-grid dt{color:#8a96a8;font-size:10px}.strategy-vehicle-grid dd{margin:0;color:#26334a;font-size:12px;font-weight:600}.strategy-slot-table,.strategy-bound-table{overflow:hidden;border:1px solid #dfe6ef;border-radius:8px}.strategy-slot-row{display:grid;grid-template-columns:135px 112px 120px minmax(150px,1fr) 76px 48px;gap:8px;align-items:center;min-height:72px;padding:10px 12px;border-bottom:1px solid #e8edf4;border-left:3px solid transparent;background:#fff}.strategy-edge-sync{display:inline-flex;margin-top:8px;color:#627087;font-size:12px}.strategy-edge-response{margin-top:8px;color:#526078;font-size:12px}.strategy-edge-response pre{max-width:680px;max-height:180px;margin:8px 0 0;padding:10px;overflow:auto;border:1px solid #dfe6ef;border-radius:6px;background:#f7f9fc;white-space:pre-wrap}.strategy-slot-row.is-charge{border-left-color:#0891b2;background:linear-gradient(90deg,#0891b20b,#fff 20%)}.strategy-slot-row.is-discharge{border-left-color:#ea7c2b;background:linear-gradient(90deg,#ea7c2b0d,#fff 20%)}.strategy-slot-row.is-stop{border-left-color:#94a3b8}.strategy-slot-row:last-child,.strategy-bound-row:last-child{border-bottom:0}.strategy-slot-row.header,.strategy-bound-row.header{min-height:38px;color:#758196;font-size:12px;background:#f7f9fc}.strategy-slot-heading-actions{display:flex;gap:14px;align-items:center}.strategy-slot-heading-actions small{color:#7d899c}.strategy-slot-time{display:grid;grid-template-columns:24px minmax(0,1fr);gap:7px;align-items:center}.strategy-slot-time em{color:#91a0b5;font-size:11px;font-style:normal;font-weight:700}.strategy-slot-power-field{display:grid;gap:4px}.strategy-slot-power-field>div{display:flex;align-items:center;border:1px solid #cfd8e6;border-radius:7px;background:#fff}.strategy-slot-power-field input{flex:1;min-width:0;border:0}.strategy-slot-power-field b{padding-right:12px;color:#607089;font-size:12px}.strategy-slot-power-field small{color:#8390a4;font-size:10px}.slot-switch{display:flex;align-items:center;gap:6px;color:#4d5a70;font-size:12px}.danger-link{border:0;color:#dc4c4c;background:transparent}.strategy-power-note{margin:10px 2px 0;color:#68768b;font-size:12px}.strategy-timeline-section{overflow:hidden}.strategy-timeline-track{position:relative;height:58px;border:1px solid #dce5f1;border-radius:8px;background:linear-gradient(90deg,#f8fafc 0 24.8%,#eef4fb 25% 25.2%,#f8fafc 25.4% 49.8%,#eef4fb 50% 50.2%,#f8fafc 50.4% 74.8%,#eef4fb 75% 75.2%,#f8fafc 75.4%)}.strategy-timeline-block{position:absolute;top:10px;display:flex;align-items:center;justify-content:center;gap:6px;min-width:44px;height:36px;padding:0 8px;border-radius:6px;color:#fff;font-size:12px;white-space:nowrap;overflow:hidden}.strategy-timeline-block small{color:#ffffffd1}.strategy-timeline-block.is-charge{background:#2563eb}.strategy-timeline-block.is-discharge{background:#16a34a}.strategy-timeline-block.is-stop{background:#8f9aaa}.strategy-timeline-block.disabled{opacity:.45}.strategy-timeline-scale{display:grid;grid-template-columns:repeat(5,1fr);margin-top:8px;color:#778399;font-size:11px}.strategy-timeline-scale span:nth-child(n+2):nth-child(-n+4){text-align:center}.strategy-timeline-scale span:last-child{text-align:right}.storage-power-reading{white-space:nowrap}.storage-power-reading.charge{color:#087f9b!important}.storage-power-reading.discharge{color:#d5681d!important}.storage-power-reading.standby,.storage-power-reading.missing{color:#7a879a!important}.strategy-bound-row{display:grid;grid-template-columns:minmax(180px,1.4fr) 70px 80px 100px 90px 110px 90px;gap:10px;align-items:center;min-height:54px;padding:8px 12px;border-bottom:1px solid #e8edf4;color:#3e4a5f;font-size:12px}.strategy-bound-row>span:first-child{display:grid;gap:2px}.strategy-bound-row>span:first-child small{color:#8792a3}.strategy-bound-row button{height:30px;border:1px solid #9eb9ec;border-radius:6px;color:#2563eb;background:#eff5ff}.strategy-execution-list{display:grid;gap:1px;border:1px solid #e1e7f0;border-radius:8px;background:#e1e7f0;overflow:visible}.strategy-execution-list>div{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px 13px;background:#fff}.strategy-execution-list>div:first-child{border-radius:7px 7px 0 0}.strategy-execution-list>div:last-child{border-radius:0 0 7px 7px}.strategy-execution-list>div:only-child{border-radius:7px}.strategy-execution-list i{width:8px;height:8px;border-radius:50%;background:#94a3b8}.strategy-execution-list i.verified{background:#22c55e}.strategy-execution-list i.failed,.strategy-execution-list i.unverified{background:#ef4444}.strategy-execution-list i.published,.strategy-execution-list i.queued{background:#3b82f6}.strategy-execution-list>div>span{display:grid;gap:2px}.strategy-execution-list small{color:#7c8799}.strategy-command-audit-section{display:grid;gap:14px}.strategy-command-audit-filters{display:grid;grid-template-columns:140px minmax(160px,1fr) 150px minmax(140px,1fr) auto;gap:10px;align-items:end}.strategy-command-audit-filters label{display:grid;gap:5px;color:#6b7688;font-size:12px}.strategy-command-audit-filters input,.strategy-command-audit-filters select{width:100%;min-height:34px;padding:0 10px;border:1px solid #d8e0eb;border-radius:7px;color:#243044;background:#fff}.strategy-command-audit-filters button{min-height:34px;padding:0 16px;border:1px solid #2563eb;border-radius:7px;color:#fff;background:#2563eb}.strategy-command-audit-loading{padding:14px;border:1px dashed #cbd5e1;border-radius:8px;color:#64748b;background:#f8fafc}.strategy-command-audit-table{display:grid;border:1px solid #e1e7f0;border-radius:8px;background:#fff;overflow:hidden}.strategy-command-audit-row.header,.strategy-command-audit-row>summary{display:grid;grid-template-columns:90px 150px minmax(150px,1.2fr) minmax(120px,1fr) 120px 90px minmax(150px,1fr);gap:10px;align-items:center;padding:10px 12px}.strategy-command-audit-row.header{color:#6b7688;font-size:12px;font-weight:700;background:#f4f7fb}.strategy-command-audit-row{border-top:1px solid #e6edf6}.strategy-command-audit-row>summary{color:#243044;font-size:12px;cursor:pointer;list-style-position:outside}.strategy-command-audit-row>summary span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.strategy-command-audit-detail{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:0 12px 12px;background:#fbfdff}.strategy-command-audit-detail section{display:grid;gap:6px;min-width:0}.strategy-command-audit-detail strong{color:#344056;font-size:12px}.strategy-command-audit-detail pre{min-height:96px;max-height:220px;margin:0;padding:10px;border:1px solid #dbe4ef;border-radius:7px;color:#253044;background:#fff;overflow:auto;font-size:11px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.strategy-execution-status{position:relative;display:inline-flex;justify-self:end;align-items:center;min-height:28px;border-radius:5px;cursor:help;outline:none}.strategy-execution-status:focus-visible{box-shadow:0 0 0 2px #bfdbfe}.strategy-execution-list .strategy-execution-status>b{color:#506079;font-size:11px}.strategy-execution-tooltip{position:absolute;z-index:20;top:50%;right:calc(100% + 11px);width:320px;padding:10px 12px;border:1px solid #d8e2f0;border-radius:8px;color:#394960;background:#fff;box-shadow:0 8px 24px #0f172a29;font-size:12px;font-weight:400;line-height:1.6;opacity:0;pointer-events:none;transform:translateY(-50%) translate(4px);transition:opacity .16s ease,transform .16s ease}.strategy-execution-tooltip:after{position:absolute;top:50%;right:-5px;width:8px;height:8px;border-top:1px solid #d8e2f0;border-right:1px solid #d8e2f0;background:#fff;content:"";transform:translateY(-50%) rotate(45deg)}.strategy-execution-status:hover .strategy-execution-tooltip,.strategy-execution-status:focus .strategy-execution-tooltip,.strategy-execution-status:focus-within .strategy-execution-tooltip{opacity:1;transform:translateY(-50%) translate(0)}@media(max-width:1500px){.storage-strategy-workbench{grid-template-columns:280px minmax(0,1fr)}.strategy-inspector-panel{position:static;grid-column:1 / -1}.strategy-inspector-panel .strategy-estimate-values{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:900px){.storage-ingestion-summary,.storage-ingestion-tables{grid-template-columns:1fr}}.storage-order-workbench{display:grid;gap:12px;min-width:0;padding:2px 0 24px}.storage-order-layout,.storage-order-table-card,.storage-order-detail-modal,.storage-order-dialog{border:1px solid #dbe4f0;border-radius:8px;background:#fff;box-shadow:0 5px 18px #0f172a0d}.storage-order-head-actions span,.storage-order-data-table small,.storage-order-info-grid span,.storage-order-info-grid small,.storage-order-timeline small,.storage-order-candidates span,.storage-order-evidence-grid span,.storage-order-evidence-grid small,.storage-order-exceptions span,.storage-order-exceptions small,.storage-order-attachments small{color:#66758a}.storage-order-detail-head h3{margin:0 0 6px;color:#162033;font-size:18px}.storage-order-head-actions{display:flex;align-items:center;gap:10px}.storage-order-head-actions button,.storage-order-filter-bar button,.storage-order-dialog-actions button,.storage-order-candidate-table button,.storage-order-link,.storage-order-action{border:1px solid #cbd8ea;border-radius:8px;background:#fff;color:#26364d;cursor:pointer;transition:border-color .16s ease,background .16s ease,color .16s ease,box-shadow .16s ease}.storage-order-head-actions button:hover,.storage-order-filter-bar button:hover,.storage-order-dialog-actions button:hover,.storage-order-candidate-table button:hover,.storage-order-link:hover,.storage-order-action:hover{border-color:#2f7cf6;color:#1d4ed8;background:#f5f9ff}.storage-order-head-actions button:focus-visible,.storage-order-filter-bar :is(button,input,select):focus-visible,.storage-order-dialog :is(button,select,textarea):focus-visible,.storage-order-link:focus-visible,.storage-order-action:focus-visible{outline:2px solid rgb(47 124 246 / 28%);outline-offset:2px}.storage-order-head-actions button:disabled,.storage-order-filter-bar button:disabled,.storage-order-dialog-actions button:disabled,.storage-order-candidate-table button:disabled,.storage-order-exception-card button:disabled,.storage-order-action:disabled{cursor:not-allowed;opacity:.55}.storage-order-head-actions button,.storage-order-dialog-actions button,.storage-order-link,.storage-order-action{min-height:36px;padding:0 14px}.storage-order-submit-success{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:14px;min-height:74px;padding:12px 18px;border:1px solid #bdebd1;border-radius:10px;background:linear-gradient(90deg,#f2fff8 0,#fff 72%);box-shadow:0 3px 12px #10b98112}.storage-order-submit-success__icon{display:grid;width:42px;height:42px;place-items:center;border-radius:50%;color:#fff;background:#16b66a;font-size:25px;box-shadow:0 6px 14px #16b66a33}.storage-order-submit-success strong{color:#167344;font-size:16px}.storage-order-submit-success p{margin:6px 0 0;color:#5f6f80;font-size:12px}.storage-order-submit-success__actions{display:flex;gap:10px}.storage-order-submit-success__actions button{min-width:108px;height:38px;border:1px solid #cfdaea;border-radius:7px;color:#34445b;background:#fff;font-weight:600;cursor:pointer}.storage-order-submit-success__actions button.primary{border-color:#2f7cf6;color:#fff;background:#2f7cf6}.storage-order-submit-success__actions button:hover{border-color:#2568d7;box-shadow:0 4px 12px #2f7cf629}.storage-order-submit-success__actions button:focus-visible{outline:2px solid rgb(47 124 246 / 30%);outline-offset:2px}.storage-order-summary-row{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;overflow:hidden;border:1px solid #dfe7f1;border-radius:10px;background:#fff}.storage-order-summary-card{position:relative;display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:9px;min-width:0;min-height:72px;padding:10px 16px;border:0;border-right:1px solid #e5ebf3;border-radius:0;background:#fff;text-align:left;cursor:pointer;transition:background .16s ease,box-shadow .16s ease}.storage-order-summary-card:last-child{border-right:0}.storage-order-summary-card.active{z-index:1;background:#fff9ef;box-shadow:inset 0 0 0 1px #f6bf62}.storage-order-summary-card strong{color:#15223a;font-size:20px}.storage-order-summary-card__icon{display:grid;width:32px;height:32px;place-items:center;border-radius:50%;color:#2f7cf6;background:#edf4ff;font-size:15px}.storage-order-summary-card__icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.storage-order-summary-card.warn .storage-order-summary-card__icon{color:#d98500;background:#fff4df}.storage-order-summary-card.online .storage-order-summary-card__icon{color:#0a9860;background:#e8f8f1}.storage-order-summary-card.danger .storage-order-summary-card__icon{color:#dc3b48;background:#fff0f1}.storage-order-summary-card>span:nth-child(2){overflow:hidden;color:#334155;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.storage-order-summary-card i{position:absolute;top:8px;right:8px;padding:2px 5px;border-radius:999px;color:#fff;background:#f59e0b;font-size:10px;font-style:normal}.storage-order-filter-bar{display:grid;grid-template-columns:minmax(280px,1fr) auto;gap:12px;align-items:stretch}.storage-order-filter-controls{display:grid;grid-template-columns:112px 112px 150px 10px 150px 60px 60px;gap:8px}.storage-order-filter-bar label{display:flex;align-items:center;gap:8px;border:1px solid #dbe4f0;border-radius:8px;background:#fff}.storage-order-search{padding:0 12px}.storage-order-search>span{color:#7c8ca2}.storage-order-date{position:relative;padding:0 8px}.storage-order-date span{position:absolute;left:10px;color:#7b8798;font-size:12px;pointer-events:none}.storage-order-date input{padding-left:59px;color:#3d4b60}.storage-order-date-separator{align-self:center;color:#94a3b8;text-align:center}.storage-order-filter-bar input{width:100%;height:42px;border:0;outline:none;color:#334155;background:transparent;font:inherit}.storage-order-filter-bar select{min-width:0;height:42px;border:1px solid #dbe4f0;border-radius:8px;padding:0 12px;color:#26364d;background:#fff}.storage-order-filter-bar button{min-height:42px;padding:0 12px}.storage-order-filter-bar button.primary{border-color:#2f7cf6;color:#fff;background:#2f7cf6}.storage-order-error,.storage-order-empty{display:grid;gap:8px;padding:22px;border:1px dashed #cbd8ea;border-radius:8px;color:#66758a;background:#f8fbff}.storage-order-error{border-color:#fecaca;color:#b91c1c;background:#fff5f5}.storage-order-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;align-items:start;width:100%;min-width:0;overflow-x:visible;border:0;background:transparent;box-shadow:none}.storage-order-info-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:hidden;gap:0;border:1px solid #dfe8f4;border-radius:12px;background:#fff;box-shadow:0 6px 20px #1f40680d}.storage-order-info-grid div{min-height:108px;padding:17px 18px;border:0;border-right:1px solid #e4ebf5;border-bottom:1px solid #e4ebf5;border-radius:0;background:#fff}.storage-order-info-grid div:nth-child(4n){border-right:0}.storage-order-info-grid div:nth-last-child(-n+4){border-bottom:0}.storage-order-info-grid .storage-order-demand-card{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));background:linear-gradient(135deg,#f3f8ff,#fff)}.storage-order-demand-card>span{grid-column:1 / -1}.storage-order-demand-card p{margin:0}.storage-order-demand-card p strong{font-size:19px}.storage-order-demand-card p small{display:block}.storage-order-info-grid span{color:#728197;font-size:12px;font-weight:600}.storage-order-status{display:inline-flex;width:fit-content;align-items:center;padding:4px 8px;border-radius:999px;color:#475569;background:#eef2f7;font-size:12px}.storage-order-status.warn{color:#b45309;background:#fff7ed}.storage-order-status.danger{color:#b91c1c;background:#fee2e2}.storage-order-status.info{color:#1d4ed8;background:#dbeafe}.storage-order-status.online{color:#047857;background:#d1fae5}.storage-order-priority{display:inline-flex;padding:4px 8px;border-radius:999px;color:#475569;background:#eef2f7;font-size:12px}.storage-order-priority.high{color:#b91c1c;background:#fee2e2}.storage-order-priority.low{color:#047857;background:#d1fae5}.storage-order-table-card{min-width:0;overflow:auto}.storage-order-data-table,.storage-order-candidate-table{width:100%;border-collapse:collapse;font-size:13px}.storage-order-data-table{min-width:1040px}.storage-order-data-table th,.storage-order-data-table td,.storage-order-candidate-table th,.storage-order-candidate-table td{padding:11px 10px;border-bottom:1px solid #e4ebf5;line-height:1.45;text-align:left;vertical-align:top}.storage-order-data-table th,.storage-order-candidate-table th{color:#64748b;background:#f8fbff;font-weight:600}.storage-order-data-table tbody tr{cursor:pointer}.storage-order-data-table tbody tr.active,.storage-order-data-table tbody tr:hover{background:#f5f9ff}.storage-order-data-table tbody tr.is-new{background:#fffaf0}.storage-order-data-table tbody tr.is-new.active{box-shadow:inset 3px 0 #f59e0b}.storage-order-new-badge{display:block;margin-bottom:4px;color:#e78900;font-size:11px;font-weight:700}.storage-order-data-table td:first-child strong{overflow-wrap:anywhere;word-break:normal}.storage-order-data-table td:nth-child(5){white-space:nowrap}.storage-order-data-table td:nth-child(6),.storage-order-data-table td:nth-child(9){white-space:nowrap}.storage-order-data-table td strong,.storage-order-data-table td small,.storage-order-candidate-table td strong,.storage-order-candidate-table td small{display:block}.storage-order-detail-backdrop{position:fixed;z-index:40;inset:0;display:grid;width:100vw;height:100dvh;place-items:center;overflow:hidden;padding:clamp(12px,2.5vw,32px);background:#0f172a8a;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.storage-order-detail-modal{display:grid;grid-template-rows:auto minmax(0,1fr);width:min(92vw,1480px);height:min(88dvh,900px);max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overflow:hidden;border:1px solid rgb(219 228 240 / 90%);border-radius:18px;background:#fff;box-shadow:0 28px 80px #0f172a52}.storage-order-detail-head{z-index:1;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px;min-height:104px;padding:18px 24px;border-bottom:1px solid #e4ebf5;background:linear-gradient(115deg,#fff,#f7faff 64%,#eef5ff)}.storage-order-detail-heading{min-width:0}.storage-order-detail-eyebrow,.storage-order-section-heading>div>span,.storage-order-timeline-heading>div>span{display:block;margin-bottom:4px;color:#2f7cf6;font-size:11px;font-weight:700;letter-spacing:.1em}.storage-order-detail-title-row{display:flex;align-items:center;gap:10px}.storage-order-detail-title-row h3{margin-bottom:0;font-size:22px;line-height:1.3}.storage-order-detail-head p{display:flex;min-width:0;align-items:center;gap:8px;margin:9px 0 0;color:#718096;font-size:12px}.storage-order-detail-head p span{flex:none}.storage-order-detail-head p strong{overflow:hidden;color:#111827;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.storage-order-detail-controls{display:flex;align-items:center;justify-content:flex-end;gap:12px}.storage-order-detail-close{display:grid;width:38px;height:38px;flex:none;place-items:center;border:1px solid #dce5f1;border-radius:10px;color:#526176;background:#ffffffd1;font-size:24px;line-height:1;cursor:pointer;transition:border-color .16s ease,color .16s ease,background .16s ease,transform .16s ease}.storage-order-detail-close:hover{border-color:#b9cff0;color:#1d4ed8;background:#fff;transform:translateY(-1px)}.storage-order-detail-close:focus-visible{outline:2px solid rgb(47 124 246 / 30%);outline-offset:2px}.storage-order-detail-close:disabled{cursor:not-allowed;opacity:.55}.storage-order-detail-body{display:grid;align-content:start;grid-auto-rows:max-content;gap:16px;min-height:0;overflow:auto;overscroll-behavior:contain;padding:20px 24px max(32px,env(safe-area-inset-bottom));scroll-padding-block:20px 32px;scrollbar-gutter:stable;background:#f5f8fc}.storage-order-detail-body::-webkit-scrollbar{width:10px}.storage-order-detail-body::-webkit-scrollbar-track{background:#edf2f8}.storage-order-detail-body::-webkit-scrollbar-thumb{border:2px solid #edf2f8;border-radius:999px;background:#b9c7da}.storage-order-progress{display:grid;gap:18px;padding:18px 20px 16px;border:1px solid #dfe8f4;border-radius:12px;background:#fff;box-shadow:0 6px 20px #1f40680d}.storage-order-section-heading,.storage-order-timeline-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px}.storage-order-section-heading h4,.storage-order-timeline-heading h4{margin:0;color:#17233a;font-size:16px}.storage-order-section-heading small{color:#7c8ca2;font-size:11px}.storage-order-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.storage-order-action.primary,.storage-order-dialog-actions .primary{border-color:#2f7cf6;color:#fff;background:#2f7cf6}.storage-order-action.primary:hover,.storage-order-dialog-actions .primary:hover{border-color:#2568d7;color:#fff;background:#2568d7}.storage-order-action.danger{border-color:#ef4444;color:#ef4444;background:#fff5f5}.storage-order-timeline,.storage-order-candidates,.storage-order-evidence,.storage-order-exceptions{padding:18px;border:1px solid #e4ebf5;border-radius:12px;background:#fff;box-shadow:0 6px 20px #1f40680a}.storage-order-lifecycle{position:relative;display:grid;grid-template-columns:repeat(6,minmax(86px,1fr));gap:0;overflow-x:auto;margin:0;padding:5px 0 2px;list-style:none}.storage-order-lifecycle:before{position:absolute;top:18px;right:7%;left:7%;height:3px;border-radius:999px;background:#e3eaf3;content:""}.storage-order-lifecycle li{position:relative;z-index:1;display:grid;justify-items:center;gap:7px;min-width:0;color:#7b8798;font-size:11px;text-align:center}.storage-order-lifecycle li span{display:grid;width:28px;height:28px;place-items:center;border:3px solid #dbe2ec;border-radius:50%;color:#fff;background:#fff;font-size:11px;box-shadow:0 0 0 4px #fff}.storage-order-lifecycle li.complete span{border-color:#18ae68;background:#18ae68}.storage-order-lifecycle li.current{color:#e28a00}.storage-order-lifecycle li.current span{border-color:#f5a817;background:#fff;box-shadow:0 0 0 5px #fff4d8}.storage-order-lifecycle li.complete{color:#168853}.storage-order-lifecycle li.error{color:#d93443}.storage-order-lifecycle li.error span{border-color:#ef4444;background:#fff1f2;box-shadow:0 0 0 5px #fff1f2}.storage-order-lifecycle strong{overflow:hidden;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.storage-order-review-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.8fr);gap:12px}.storage-order-review-checks{padding:14px;border:1px solid #e4ebf5;border-radius:8px;background:#fbfdff}.storage-order-review-checks h4{margin:0 0 10px}.storage-order-review-checks ul{display:grid;gap:7px;margin:0;padding:0;list-style:none}.storage-order-review-checks li{display:flex;align-items:center;gap:7px;color:#526176;font-size:12px}.storage-order-review-checks li span{display:grid;width:15px;height:15px;place-items:center;border-radius:50%;color:#fff;background:#ef4444;font-size:10px}.storage-order-review-checks li.passed span{background:#19ae69}.storage-order-review-checks p{margin:10px 0 7px;color:#7b8798;font-size:10px}.storage-order-review-checks>strong{color:#e58a00;font-size:11px}.storage-order-info-grid strong{display:block;margin:6px 0 3px;color:#15223a}.storage-order-timeline h4,.storage-order-candidates h4,.storage-order-evidence h4,.storage-order-exceptions h4{margin:0}.storage-order-timeline>ol{display:grid;gap:0;margin:22px 0 0;padding:0;list-style:none}.storage-order-events{position:relative}.storage-order-timeline:not(.storage-order-timeline--compact) .storage-order-events:before{position:absolute;top:17px;bottom:17px;left:144px;width:2px;border-radius:999px;background:linear-gradient(180deg,#bdd3ef,#dce6f3);content:""}.storage-order-timeline:not(.storage-order-timeline--compact) .storage-order-events li{position:relative;display:grid;grid-template-columns:112px 34px minmax(0,1fr);gap:16px;align-items:start;padding:0 0 16px}.storage-order-timeline:not(.storage-order-timeline--compact) .storage-order-events li:last-child{padding-bottom:0}.storage-order-event-marker{z-index:1;display:grid;width:34px;height:34px;place-items:center;border:2px solid #cbd7e7;border-radius:50%;color:#6b7b91;background:#fff;font-size:11px;font-weight:700;box-shadow:0 0 0 5px #fff}.storage-order-events li.latest .storage-order-event-marker{border-color:#2f7cf6;color:#fff;background:#2f7cf6;box-shadow:0 0 0 5px #e5efff,0 5px 12px #2f7cf63d}.storage-order-events li.success:not(.latest) .storage-order-event-marker{border-color:#1cad6c;color:#168853;background:#effbf5}.storage-order-events li.danger:not(.latest) .storage-order-event-marker{border-color:#ef6672;color:#d93443;background:#fff4f5}.storage-order-events li.active:not(.latest) .storage-order-event-marker{border-color:#7eabea;color:#2f6fcf;background:#f3f8ff}.storage-order-event-time{padding-top:5px;text-align:right}.storage-order-event-time strong,.storage-order-event-time small{display:block}.storage-order-event-time strong{color:#526176;font-size:12px;font-weight:650}.storage-order-event-time small{margin-top:4px;color:#8795a8;font-size:12px;font-variant-numeric:tabular-nums}.storage-order-event-content{display:grid;gap:9px;min-width:0;padding:13px 16px 14px;border:1px solid #e2e9f2;border-radius:12px;background:#fbfcfe;box-shadow:0 3px 12px #1f406808}.storage-order-events li.latest .storage-order-event-content{border-color:#bdd6fb;background:linear-gradient(100deg,#f2f7ff,#fff 72%);box-shadow:0 8px 22px #2f7cf617}.storage-order-event-content header{display:flex;align-items:center;justify-content:space-between;gap:12px}.storage-order-event-content header>div{display:flex;min-width:0;align-items:center;flex-wrap:wrap;gap:7px}.storage-order-event-stage{display:inline-flex;align-items:center;min-height:24px;padding:0 9px;border-radius:999px;color:#2f6fcf;background:#eaf2ff;font-size:12px;font-weight:700}.storage-order-events li.success .storage-order-event-stage{color:#168853;background:#eaf9f1}.storage-order-events li.danger .storage-order-event-stage{color:#d93443;background:#fff0f2}.storage-order-event-content header em{color:#2f7cf6;font-size:10px;font-style:normal;font-weight:700;letter-spacing:.04em}.storage-order-event-operator{display:inline-flex;flex:none;align-items:center;gap:6px;padding:4px 8px;border:1px solid #e0e7f0;border-radius:999px;color:#617188;background:#fff;font-size:11px;font-weight:600}.storage-order-event-operator:before{width:6px;height:6px;flex:none;border-radius:50%;background:#8da1b9;content:""}.storage-order-event-content>strong{color:#1e293b;font-size:13px;line-height:1.5;overflow-wrap:anywhere}.storage-order-timeline-summary{display:grid;flex:none;grid-template-columns:auto auto;align-items:center;justify-items:end;gap:4px 8px}.storage-order-timeline-summary>span,.storage-order-timeline-summary>strong{display:inline-flex;align-items:center;min-height:25px;padding:0 9px;border-radius:999px;font-size:11px}.storage-order-timeline-summary>span{gap:6px;color:#1f6b4c;background:#eaf9f1;font-weight:700}.storage-order-timeline-summary>span i{width:6px;height:6px;border-radius:50%;background:#1cad6c;box-shadow:0 0 0 3px #1cad6c1f}.storage-order-timeline-summary>strong{color:#526176;background:#edf2f8}.storage-order-timeline-summary>small{grid-column:1 / -1;color:#8795a8;font-size:10px;font-variant-numeric:tabular-nums}.storage-order-timeline>p{margin:18px 0 0;padding:26px;border:1px dashed #d5dfec;border-radius:10px;color:#7b8798;background:#fafcff;text-align:center}.storage-order-timeline-heading p{margin:5px 0 0;color:#7c8ca2;font-size:11px}.storage-order-timeline--compact{padding:14px;box-shadow:none}.storage-order-timeline--compact .storage-order-events{gap:6px;margin-top:9px}.storage-order-timeline--compact .storage-order-events li{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr);gap:5px 8px;align-items:center;padding:5px 0 5px 12px;background:transparent}.storage-order-timeline--compact .storage-order-events li:before{position:absolute;left:1px;width:7px;height:7px;border:2px solid #f5a817;border-radius:50%;background:#fff;content:""}.storage-order-timeline--compact .storage-order-events small{grid-column:2}.storage-order-candidates{display:grid;gap:12px;min-width:0;overflow-x:auto}.storage-order-candidates>div:first-child{display:flex;justify-content:space-between}.storage-order-candidate-table{min-width:1120px}.storage-order-candidate-table th,.storage-order-candidate-table td:nth-child(1),.storage-order-candidate-table td:nth-child(9){white-space:nowrap}.storage-order-candidate-table th:nth-child(1),.storage-order-candidate-table td:nth-child(1){min-width:180px}.storage-order-candidate-table th:nth-child(9),.storage-order-candidate-table td:nth-child(9){min-width:128px}.storage-order-candidate-table td:nth-child(10){min-width:160px;white-space:normal;overflow-wrap:anywhere}.storage-order-candidate-table button.active{border-color:#2f7cf6;background:#eef5ff}.storage-order-ready{display:inline-flex;width:fit-content;padding:3px 7px;border-radius:999px;color:#047857;background:#d1fae5;font-size:12px}.storage-order-blockers{display:grid;gap:4px;margin:0;padding-left:16px;color:#b91c1c;font-size:12px}.storage-order-evidence,.storage-order-exceptions{display:grid;gap:12px}.storage-order-evidence-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.storage-order-evidence-grid div,.storage-order-close-readiness,.storage-order-exception-card,.storage-order-attachments{display:grid;gap:6px;padding:10px;border:1px solid #e4ebf5;border-radius:8px;background:#fff}.storage-order-evidence-grid div{min-height:78px}.storage-order-evidence-grid strong,.storage-order-attachments strong,.storage-order-exception-card strong{color:#15223a}.storage-order-attachments ul,.storage-order-exception-attachments{display:grid;gap:6px;margin:0;padding:0;list-style:none}.storage-order-attachments li{display:grid;grid-template-columns:82px minmax(0,1fr);gap:4px 8px;min-width:0}.storage-order-attachments li small{grid-column:2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.storage-order-exceptions>div:first-child,.storage-order-exception-card header,.storage-order-exception-card footer{display:flex;justify-content:space-between;gap:10px}.storage-order-exception-card p{margin:0;color:#334155;font-size:13px;line-height:1.5}.storage-order-exception-card header span{display:inline-flex;padding:3px 7px;border-radius:999px;color:#b45309;background:#fff7ed;font-size:12px}.storage-order-exception-card footer{flex-wrap:wrap;justify-content:flex-start}.storage-order-exception-card button{min-height:32px;border:1px solid #cbd8ea;border-radius:8px;padding:0 10px;color:#26364d;background:#fff}.storage-order-exception-card button.danger{border-color:#ef4444;color:#b91c1c;background:#fff5f5}.storage-order-dialog-backdrop{position:fixed;z-index:60;inset:0;display:grid;place-items:center;background:#0f172a5c}.storage-order-dialog{display:grid;gap:14px;width:min(560px,calc(100vw - 48px));padding:20px}.storage-order-dialog header,.storage-order-dialog-actions{display:flex;justify-content:space-between;gap:12px}.storage-order-dialog label{display:grid;gap:7px;color:#48576c}.storage-order-dialog select,.storage-order-dialog textarea{width:100%;border:1px solid #cbd8ea;border-radius:8px;padding:10px 12px;font:inherit}@media(max-width:1480px){.storage-order-summary-card{grid-template-columns:28px minmax(0,1fr) auto;gap:6px;padding:9px 10px}.storage-order-summary-card__icon{width:28px;height:28px}.storage-order-filter-bar{grid-template-columns:minmax(0,1fr)}.storage-order-filter-controls{justify-content:end}.storage-order-detail-head>div:first-child{min-width:0}}@media(max-width:1360px){.storage-order-detail-head,.storage-order-detail-body{padding-right:18px;padding-left:18px}.storage-order-detail-controls{gap:8px}.storage-order-info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.storage-order-info-grid div:nth-child(4n){border-right:1px solid #e4ebf5}.storage-order-info-grid div:nth-child(2n){border-right:0}.storage-order-info-grid div:nth-last-child(-n+4){border-bottom:1px solid #e4ebf5}.storage-order-info-grid div:nth-last-child(-n+2){border-bottom:0}.storage-order-review-grid{grid-template-columns:minmax(0,1fr)}.storage-order-timeline:not(.storage-order-timeline--compact) .storage-order-events:before{left:125px}.storage-order-timeline:not(.storage-order-timeline--compact) .storage-order-events li{grid-template-columns:96px 34px minmax(0,1fr);gap:12px}}@media(max-width:900px){.storage-order-detail-backdrop{padding:0}.storage-order-detail-modal{width:100vw;height:100dvh;max-width:none;max-height:none;border:0;border-radius:0}.storage-order-detail-head{grid-template-columns:minmax(0,1fr) auto;min-height:0;padding:14px 16px}.storage-order-detail-controls>.storage-order-actions{display:none}.storage-order-info-grid{grid-template-columns:minmax(0,1fr)}.storage-order-info-grid div{border-right:0;border-bottom:1px solid #e4ebf5}.storage-order-info-grid div:nth-child(2n),.storage-order-info-grid div:nth-last-child(-n+2){border-bottom:1px solid #e4ebf5}.storage-order-info-grid div:last-child{border-bottom:0}.storage-order-section-heading{align-items:flex-start;flex-direction:column;gap:6px}.storage-order-timeline-heading{align-items:flex-start;flex-direction:column;gap:12px}.storage-order-timeline-summary{width:100%;grid-template-columns:auto auto minmax(0,1fr);justify-items:start}.storage-order-timeline-summary>small{grid-column:auto;justify-self:end}.storage-order-timeline:not(.storage-order-timeline--compact) .storage-order-events:before{top:13px;bottom:18px;left:12px}.storage-order-timeline:not(.storage-order-timeline--compact) .storage-order-events li{grid-template-columns:26px minmax(0,1fr);gap:8px 12px}.storage-order-event-time{grid-column:2;grid-row:1;display:flex;gap:7px;padding-top:0;text-align:left}.storage-order-event-time small{margin-top:0}.storage-order-event-marker{grid-column:1;grid-row:1 / span 2;width:26px;height:26px;font-size:10px}.storage-order-event-content{grid-column:2;grid-row:2}}.storage-command-confirmation{display:grid;gap:10px;padding:12px;border:1px solid #d8e2f0;border-radius:8px;background:#f8fbff}.storage-command-confirmation label{display:flex;align-items:flex-start;gap:9px;margin:0;color:#334155;line-height:1.45}.storage-command-confirmation input[type=checkbox]{width:16px;height:16px;margin-top:2px}.storage-duty-emergency-stop{border-color:#ef4444;color:#ef4444;background:#fff5f5}.storage-duty-emergency-stop:not(:disabled):hover{border-color:#dc2626;color:#fff;background:#dc2626}.meter-realtime-panel,.meter-curve-panel,.meter-daily-panel{display:grid;gap:12px;min-width:0;color:#17243d}.meter-data-header,.meter-realtime-intro,.meter-realtime-task,.meter-realtime-range,.meter-curve-intro,.meter-curve-task,.meter-daily-intro,.meter-daily-task,.meter-metric-table,.meter-realtime-quality,.meter-curve-selected,.meter-curve-table,.meter-daily-trend,.meter-daily-selected,.meter-daily-table,.meter-daily-sampling,.meter-daily-summary,.meter-daily-demand{border:1px solid #dfe7f2;border-radius:10px;background:#fff;box-shadow:0 4px 14px #1e40780b}.meter-data-header{display:flex;align-items:end;justify-content:space-between;gap:16px;padding:12px 16px}.meter-data-header-main,.meter-data-controls,.meter-realtime-range,.meter-realtime-range-shortcuts,.meter-realtime-range-custom,.meter-daily-actions,.meter-curve-range,.meter-daily-controls{display:flex;align-items:end;flex-wrap:wrap;gap:8px}.meter-data-header-main{gap:16px;min-width:0}.meter-data-controls,.meter-realtime-range,.meter-daily-actions,.meter-curve-range,.meter-daily-controls{justify-content:flex-end}.meter-realtime-range{align-items:center;justify-content:space-between;gap:10px 12px;min-width:0;padding:10px 12px}.meter-realtime-range-shortcuts,.meter-realtime-range-custom{align-items:center;gap:8px;min-width:0}.meter-data-identity{display:flex;flex-wrap:wrap;gap:6px 10px;min-width:0;color:#65758a;font-size:12px}.meter-data-identity strong{flex-basis:100%;color:#17243d;font-size:16px}.meter-data-status{display:inline-grid;grid-template-columns:auto auto;align-items:center;gap:2px 6px;min-width:138px;padding:5px 8px;border:1px solid #dfe7f2;border-radius:6px;background:#f8fbff}.meter-data-status em{color:#65758a;font-style:normal}.meter-data-status b{justify-self:start;border-radius:999px;padding:1px 7px;font-size:11px;line-height:18px}.meter-data-status b.is-online{background:#e8f8ef;color:#218454}.meter-data-status b.is-offline{background:#fff1d6;color:#a96300}.meter-data-status b.is-unknown{background:#edf1f6;color:#657386}.meter-data-status small{grid-column:1 / -1;color:#7b8a9e;font-size:11px}.meter-data-select,.meter-data-controls label,.meter-curve-range label,.meter-daily-controls label{display:grid;gap:5px;color:#65758a;font-size:12px}.meter-data-select select,.meter-data-controls select,.meter-data-controls input,.meter-realtime-range input,.meter-curve-range input,.meter-daily-controls input{min-height:34px;border:1px solid #cbd7e6;border-radius:6px;padding:0 10px;background:#fff;color:#17243d;font-size:13px}.meter-data-select select{min-width:210px}.meter-data-controls button,.meter-realtime-intro button,.meter-curve-intro button,.meter-daily-intro button,.meter-realtime-range button,.meter-realtime-error button,.meter-curve-range button,.meter-curve-error button,.meter-daily-controls button,.meter-daily-error button{min-height:34px;border:1px solid #2f6bff;border-radius:6px;padding:0 12px;background:#2f6bff;color:#fff;font-size:13px;cursor:pointer}.meter-data-controls button:disabled,.meter-realtime-intro button:disabled,.meter-curve-intro button:disabled,.meter-daily-intro button:disabled,.meter-realtime-range button:disabled,.meter-curve-range button:disabled,.meter-daily-controls button:disabled,.meter-data-select select:disabled,.meter-data-controls input:disabled,.meter-data-controls select:disabled,.meter-realtime-range input:disabled,.meter-curve-range input:disabled,.meter-daily-controls input:disabled{cursor:not-allowed;opacity:.62}.meter-realtime-range button[aria-pressed=true],.meter-realtime-range button.is-active{border-color:#2f6bff;background:#2f6bff;color:#fff}.meter-realtime-range-shortcuts button{border-color:#cbd7e6;background:#fff;color:#42526b}.meter-realtime-range-shortcuts button[aria-pressed=true],.meter-realtime-range-shortcuts button.is-active{border-color:#2f6bff;background:#2f6bff;color:#fff}.meter-realtime-range-custom input{width:190px}.meter-realtime-range-custom button{min-width:64px}.meter-realtime-intro,.meter-realtime-task,.meter-curve-intro,.meter-curve-task,.meter-daily-intro,.meter-daily-task{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;color:#65758a;font-size:13px}.meter-realtime-intro div,.meter-curve-intro div:first-child,.meter-daily-intro div:first-child{display:flex;align-items:baseline;gap:10px}.meter-realtime-intro strong,.meter-realtime-task strong,.meter-curve-intro strong,.meter-curve-task strong,.meter-daily-intro strong,.meter-daily-task strong,.meter-metric-table-header strong,.meter-realtime-quality header strong,.meter-curve-selected header strong,.meter-curve-table header strong,.meter-daily-trend header strong,.meter-daily-selected header strong,.meter-daily-table header strong,.meter-daily-sampling header strong{color:#17243d;font-size:15px}.meter-realtime-error,.meter-curve-error,.meter-daily-error,.meter-realtime-status,.meter-curve-status,.meter-daily-status{margin:0;border-radius:8px;padding:10px 12px;font-size:13px}.meter-realtime-error,.meter-curve-error,.meter-daily-error{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #ffd6d6;background:#fff5f5;color:#b42318}.meter-realtime-status,.meter-curve-status,.meter-daily-status{border:1px solid #dbeafe;background:#eff6ff;color:#1d4ed8}.meter-realtime-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.meter-realtime-kpi{display:flex;align-items:center;gap:12px;min-width:0;border:1px solid #dfe7f2;border-radius:10px;padding:15px 14px;background:#fff;box-shadow:0 4px 14px #1e40780b}.meter-realtime-kpi>i,.meter-daily-metric-card>i,.meter-daily-demand-card>i{display:grid;flex:0 0 auto;place-items:center;width:38px;height:38px;border:2px solid currentColor;border-radius:50%;font-style:normal;font-weight:800;background:color-mix(in srgb,currentColor 8%,white)}.meter-realtime-kpi>div{display:grid;gap:5px;min-width:0}.meter-realtime-kpi .tone-blue{color:#2f6bff}.meter-realtime-kpi .tone-green{color:#2ebd70}.meter-realtime-kpi .tone-violet{color:#8156e8}.meter-realtime-kpi .tone-orange{color:#f59a23}.meter-realtime-kpi .tone-cyan{color:#29a8c7}.meter-realtime-kpi span,.meter-metric-table-header small,.meter-realtime-quality header small,.meter-curve-selected header small,.meter-curve-table header small,.meter-curve-selected p,.meter-daily-trend header small,.meter-daily-selected header small,.meter-daily-table header small,.meter-daily-sampling header small{color:#65758a;font-size:12px}.meter-realtime-kpi strong{overflow:hidden;color:#17243d;font-size:18px;text-overflow:ellipsis;white-space:nowrap}.meter-realtime-kpi.is-updated strong,.meter-data-identity small{color:#0f766e}.meter-realtime-workspace{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;align-items:start;min-width:0}.meter-realtime-view-tabs{display:flex;flex-wrap:wrap;gap:8px}.meter-realtime-view-tab{min-height:32px;border:1px solid #cbd7e6;border-radius:6px;padding:0 12px;background:#fff;color:#42526b;font-size:13px;cursor:pointer}.meter-realtime-view-tab.is-active{border-color:#2f6bff;background:#2f6bff;color:#fff}.meter-realtime-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-width:0}.meter-realtime-chart-card{min-width:0}.meter-realtime-chart-card .meter-multi-series-chart{height:100%}.meter-realtime-detail{display:grid;gap:12px;min-width:0}.meter-realtime-detail-scroll{overflow-x:auto;border:1px solid #dfe7f2;border-radius:10px;background:#fff;box-shadow:0 4px 14px #1e40780b}.meter-realtime-detail-table{width:100%;min-width:1120px;border-collapse:collapse;font-size:12px}.meter-realtime-detail-table th,.meter-realtime-detail-table td{border-bottom:1px solid #edf2f8;padding:10px;color:#26364f;text-align:left;white-space:nowrap}.meter-realtime-detail-table th{color:#65758a;font-weight:700;background:#f8fbff}.meter-realtime-detail-table tbody tr:last-child td{border-bottom:0}.meter-realtime-detail-table tbody tr.is-latest td{background:#f0fdf7;color:#0f766e;font-weight:700}.meter-realtime-detail-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:start}.meter-realtime-stack{display:grid;gap:12px;min-width:0}.meter-metric-table,.meter-realtime-quality,.meter-curve-selected,.meter-curve-table,.meter-daily-trend,.meter-daily-selected,.meter-daily-table,.meter-daily-sampling{display:grid;gap:10px;min-width:0;padding:14px}.meter-realtime-workspace .meter-metric-table{padding:12px}.meter-realtime-workspace .meter-metric-table table{font-size:12px}.meter-control{display:grid;gap:12px;min-width:0;color:#17243d}.meter-control__hero,.meter-control__identity,.meter-control .control-card,.meter-control .control-results{border:1px solid #dfe7f2;border-radius:10px;background:#fff;box-shadow:0 4px 14px #1e40780b}.meter-control__hero{display:flex;align-items:end;justify-content:space-between;gap:18px;padding:16px}.meter-control__hero p{margin:0 0 5px;color:#65758a;font-size:12px}.meter-control__hero h1{margin:0 0 4px;color:#17243d;font-size:22px;line-height:1.25}.meter-control__hero span{color:#65758a;font-size:13px}.meter-control__selector{display:grid;grid-template-columns:minmax(260px,360px) auto;gap:7px 8px}.meter-control__selector label{grid-column:1 / -1;color:#65758a;font-size:12px}.meter-control select,.meter-control input,.meter-control textarea{border:1px solid #cbd7e6;border-radius:6px;padding:0 10px;color:#17243d;background:#fff;font:inherit}.meter-control select,.meter-control input{min-height:34px}.meter-control textarea{min-height:76px;padding-top:9px;padding-bottom:9px;line-height:1.5;resize:vertical}.meter-control button{min-height:34px;border:1px solid #cbd7e6;border-radius:6px;padding:0 12px;color:#42526b;background:#fff;font-size:13px;cursor:pointer;transition:border-color .16s ease,background-color .16s ease,color .16s ease}.meter-control button:not(:disabled):hover{border-color:#2f6bff;color:#2f6bff;background:#f4f7ff}.meter-control button:disabled,.meter-control select:disabled,.meter-control input:disabled,.meter-control textarea:disabled{cursor:not-allowed;opacity:.62}.meter-control button.is-primary{border-color:#2f6bff;color:#fff;background:#2f6bff}.meter-control button.is-primary:not(:disabled):hover{border-color:#2458d8;color:#fff;background:#2458d8}.meter-control__error{margin:0;border:1px solid #ffd6d6;border-radius:8px;padding:10px 12px;color:#b42318;background:#fff5f5;font-size:13px}.meter-control__identity{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.meter-control__identity div{min-width:0;padding:13px 16px;border-right:1px solid #edf2f8}.meter-control__identity div:last-child{border-right:0}.meter-control__identity span{display:block;margin-bottom:5px;color:#65758a;font-size:12px}.meter-control__identity strong{display:block;overflow:hidden;color:#17243d;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.meter-control__identity .is-unknown{color:#b7791f}.meter-control__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-width:0}.meter-control .control-card{min-width:0;padding:16px}.meter-control .control-card>header{display:flex;align-items:flex-start;gap:11px}.meter-control .control-card h2{margin:1px 0 4px;color:#17243d;font-size:17px}.meter-control .control-card p{margin:0;color:#65758a;font-size:13px;line-height:1.55}.meter-control .control-card__icon{display:grid;flex:0 0 38px;height:38px;place-items:center;border-radius:9px;color:#2f6bff;background:#eef4ff;font-weight:800}.meter-control .control-card--danger{grid-column:1 / -1;border-color:#f4b4b4;background:snow;box-shadow:0 4px 14px #b91c1c0b}.meter-control .control-card--danger .control-card__icon{color:#c92a2a;background:#ffebeb}.meter-control .danger-badge{margin-left:auto;border-radius:999px;padding:5px 9px;color:#b42318;background:#ffe6e6;font-size:12px}.meter-control .clock-compare{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:18px 0 13px}.meter-control .clock-compare div,.meter-control .switch-state{border:1px solid #edf2f8;border-radius:8px;padding:12px;background:#f8fbff}.meter-control .clock-compare dt{color:#65758a;font-size:12px}.meter-control .clock-compare dd{margin:6px 0 0;color:#17243d;font:700 14px/1.35 ui-monospace,SFMono-Regular,Menlo,monospace}.meter-control .clock-compare .is-warning{color:#b7791f}.meter-control .clock-compare .is-normal{color:#0f766e}.meter-control .control-confirm{display:flex;align-items:center;gap:8px;color:#42526b;font-size:13px}.meter-control .control-confirm input{min-height:auto;width:16px;height:16px;padding:0;accent-color:#2f6bff}.meter-control .command-feedback{margin-top:14px;border:1px solid #cfe0ff;border-radius:8px;padding:10px 12px;color:#1d4ed8;background:#f4f7ff}.meter-control .command-feedback__heading{display:flex;align-items:center;gap:8px;min-width:0}.meter-control .command-feedback__heading strong{font-size:13px}.meter-control .command-feedback__heading span,.meter-control .command-feedback__heading time{color:inherit;font-size:12px;opacity:.76}.meter-control .command-feedback__heading time{margin-left:auto;white-space:nowrap}.meter-control .command-feedback p{margin-top:5px;color:inherit;font-size:12px}.meter-control .command-feedback small{display:block;margin-top:5px;color:#b42318;font-size:12px}.meter-control .command-feedback.is-success{border-color:#b8e8d7;color:#0f766e;background:#effaf6}.meter-control .command-feedback.is-danger{border-color:#ffd0d0;color:#b42318;background:#fff5f5}.meter-control .command-feedback.is-warning{border-color:#f4d49b;color:#9a6700;background:#fff9eb}.meter-control .command-feedback.is-running{border-color:#cfe0ff;color:#1d4ed8;background:#f4f7ff}.meter-control .control-card footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:16px}.meter-control .control-card footer>span{margin-right:auto;color:#65758a;font-size:12px;line-height:1.45}.meter-control .history-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}.meter-control .history-form label:last-child{grid-column:1 / -1}.meter-control .history-form label{display:grid;gap:6px;color:#65758a;font-size:12px}.meter-control .query-progress{margin-top:13px}.meter-control .query-progress div{display:flex;justify-content:space-between;color:#65758a;font-size:12px}.meter-control .query-progress progress{width:100%;height:7px;margin-top:7px;accent-color:#2f6bff}.meter-control .switch-state{display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:12px;margin:16px 0 10px;border-color:#ffe0e0;background:#fff5f5}.meter-control .switch-state span,.meter-control .switch-state small{color:#7f5b5b}.meter-control .switch-state strong{color:#b7791f}.meter-control button.is-danger{border-color:#dc2626;color:#fff;background:#dc2626;font-weight:700}.meter-control button.is-danger:not(:disabled):hover{border-color:#b91c1c;color:#fff;background:#b91c1c}.meter-control button.is-close{border-color:#2f6bff;color:#fff;background:#2f6bff;font-weight:700}.meter-control button.is-close:not(:disabled):hover{border-color:#2458d8;color:#fff;background:#2458d8}.meter-control .switch-actions{display:flex;align-items:center;gap:8px}.meter-control .switch-action-anchor{position:relative}.meter-control .switch-action-anchor>button{min-width:76px}.meter-control .switch-confirm-popover{position:absolute;z-index:20;bottom:calc(100% + 10px);right:0;left:auto;width:258px;border:1px solid #efb7b7;border-radius:8px;padding:12px;background:#fff;box-shadow:0 12px 30px #6019192e}.meter-control .switch-confirm-popover:after{position:absolute;top:100%;right:28px;left:auto;width:10px;height:10px;border-right:1px solid #efb7b7;border-bottom:1px solid #efb7b7;background:#fff;content:"";transform:translateY(-5px) rotate(45deg)}.meter-control .switch-confirm-popover>strong{display:block;color:#991b1b;font-size:14px}.meter-control .switch-confirm-popover>p{margin-top:6px;color:#65758a;font-size:12px}.meter-control .switch-confirm-popover>div{display:flex;justify-content:flex-end;gap:7px;margin-top:12px}.meter-control .control-results{min-width:0;padding:16px}.meter-control .control-results>header{display:flex;align-items:center;justify-content:space-between;gap:12px}.meter-control .control-results h2{margin:0 0 4px;color:#17243d;font-size:17px}.meter-control .control-results p{margin:0;color:#65758a;font-size:13px}.meter-control .command-table-wrap,.meter-control .history-results{overflow:auto;margin-top:14px;border:1px solid #edf2f8;border-radius:8px}.meter-control .history-results>strong{display:block;padding:12px 12px 0;color:#17243d}.meter-control table{width:100%;border-collapse:collapse;font-size:13px}.meter-control th{color:#65758a;background:#f8fbff;text-align:left}.meter-control th,.meter-control td{border-bottom:1px solid #edf2f8;padding:10px 12px;white-space:nowrap}.meter-control tbody tr:last-child td{border-bottom:0}.meter-control td{color:#26364f}.meter-control code{color:#526783;font-size:11px}.meter-control .command-status{display:inline-flex;border-radius:999px;padding:4px 8px;font-size:12px}.meter-control .command-status.is-success{color:#0f766e;background:#e8f8f2}.meter-control .command-status.is-running{color:#1d4ed8;background:#eaf0ff}.meter-control .command-status.is-failed{color:#b42318;background:#ffeaea}@media(max-width:1500px){.meter-control__grid{grid-template-columns:minmax(0,1fr)}.meter-control .control-card--danger{grid-column:auto}}@media(max-width:1280px){.meter-control__hero{align-items:stretch;flex-direction:column}.meter-control__selector{grid-template-columns:minmax(0,1fr) auto}.meter-control__identity{grid-template-columns:repeat(2,minmax(0,1fr))}.meter-control__identity div:nth-child(2){border-right:0}.meter-control__identity div:nth-child(-n+2){border-bottom:1px solid #edf2f8}}.meter-metric-table-header,.meter-realtime-quality header,.meter-curve-selected header,.meter-curve-table header,.meter-daily-trend header,.meter-daily-selected header,.meter-daily-table header,.meter-daily-sampling header{display:flex;align-items:center;justify-content:space-between;gap:12px}.meter-realtime-quality-list,.meter-curve-selected-list{display:grid;gap:0;font-size:13px}.meter-realtime-quality-item,.meter-curve-selected-list div{display:grid;grid-template-columns:minmax(80px,max-content) minmax(0,1fr);gap:12px;border-bottom:1px solid #edf2f8;padding:9px 10px}.meter-realtime-quality-item:last-child,.meter-curve-selected-list div:last-child{border-bottom:0}.meter-realtime-quality-item span,.meter-curve-selected-list span,.meter-metric-table th:first-child,.meter-daily-sampling-list span{color:#65758a;font-weight:600}.meter-realtime-quality-item strong,.meter-curve-selected-list strong,.meter-daily-sampling-list strong{min-width:0;color:#26364f;font-weight:500;text-align:right;overflow-wrap:anywhere}.meter-curve-tabs,.meter-daily-tabs{display:flex;flex-wrap:wrap;gap:8px}.meter-curve-tabs button,.meter-daily-tabs button{min-height:32px;border:1px solid #cbd7e6;border-radius:6px;padding:0 12px;background:#fff;color:#42526b;cursor:pointer}.meter-curve-tabs button.is-active,.meter-daily-tabs button.is-active{border-color:#2f6bff;background:#2f6bff;color:#fff}.meter-curve-main{display:grid;grid-template-columns:minmax(0,4fr) minmax(250px,1fr);gap:14px;align-items:start}.meter-curve-chart{display:block;min-width:0}.meter-curve-chart-header,.meter-daily-summary>header,.meter-daily-demand>header,.meter-daily-trend>header{display:flex;align-items:center;justify-content:space-between;gap:12px}.meter-curve-chart-header>div,.meter-daily-summary>header>div,.meter-daily-trend>header>div{display:grid;gap:4px}.meter-curve-chart-header strong,.meter-daily-summary>header strong,.meter-daily-demand>header strong,.meter-daily-trend>header strong{color:#17243d;font-size:15px}.meter-curve-chart-header small,.meter-daily-summary>header small,.meter-daily-demand>header small,.meter-daily-trend>header small{color:#7b889b;font-size:12px}.meter-curve-chart-header>span{color:#7b889b;font-size:12px}.meter-curve-table,.meter-daily-table{overflow-x:auto}.meter-metric-table table,.meter-curve-table table,.meter-daily-table table{width:100%;border-collapse:collapse;font-size:13px}.meter-metric-table th,.meter-metric-table td,.meter-curve-table th,.meter-curve-table td,.meter-daily-table th,.meter-daily-table td{border-bottom:1px solid #edf2f8;padding:9px 10px;color:#26364f;white-space:nowrap}.meter-metric-table th,.meter-curve-table th,.meter-daily-table th{color:#65758a;font-weight:600;background:#f8fbff}.meter-metric-table th,.meter-metric-table td{text-align:right}.meter-metric-table th:first-child{text-align:left}.meter-metric-table tbody tr:last-child th,.meter-metric-table tbody tr:last-child td{border-bottom:0}.meter-unit-value{white-space:nowrap}.unit-symbol{position:relative;display:inline-block;color:inherit;font:inherit;line-height:inherit;white-space:nowrap}.unit-symbol.has-tooltip{text-decoration-line:underline;text-decoration-style:dotted;text-decoration-color:currentColor;text-underline-offset:3px}.unit-symbol__tooltip{position:fixed;z-index:1200;width:max-content;max-width:220px;padding:6px 9px;border:1px solid rgba(15,35,68,.14);border-radius:5px;background:#17243a;box-shadow:0 6px 18px #0f23442e;color:#fff;font-size:12px;font-weight:500;line-height:1.4;opacity:0;pointer-events:none;transform:translate(-50%,calc(-100% + 3px));transition:opacity .12s ease,transform .12s ease}.unit-symbol__tooltip:after{position:absolute;left:50%;bottom:-4px;width:8px;height:8px;border-right:1px solid rgba(15,35,68,.14);border-bottom:1px solid rgba(15,35,68,.14);background:#17243a;content:"";transform:translate(-50%) rotate(45deg)}.unit-symbol__tooltip[data-placement=bottom]{transform:translate(-50%,-3px)}.unit-symbol__tooltip[data-placement=bottom]:after{top:-4px;bottom:auto;border:0;border-top:1px solid rgba(15,35,68,.14);border-left:1px solid rgba(15,35,68,.14)}.unit-symbol__tooltip.is-visible{opacity:1;transform:translate(-50%)}.unit-symbol__tooltip.is-visible[data-placement=top]{transform:translate(-50%,-100%)}.unit-symbol.has-tooltip:focus-visible{border-radius:3px;outline:2px solid rgba(47,107,255,.45);outline-offset:2px}.meter-unit-symbol{color:inherit;font:inherit}.meter-curve-table th,.meter-curve-table td,.meter-daily-table th,.meter-daily-table td{text-align:left}.meter-daily-dashboard{display:grid;grid-template-columns:minmax(350px,1.15fr) minmax(300px,.9fr) minmax(420px,1.35fr);gap:12px;align-items:stretch}.meter-daily-summary,.meter-daily-demand,.meter-daily-trend{display:grid;align-content:start;gap:12px;min-width:0;padding:14px}.meter-daily-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.meter-daily-metric-card,.meter-daily-demand-card{display:grid;grid-template-columns:38px minmax(0,1fr);gap:4px 10px;min-width:0;border:1px solid #e5ecf5;border-radius:9px;padding:12px;background:#fff}.meter-daily-metric-card>i,.meter-daily-demand-card>i{grid-row:1 / 3;align-self:center;width:34px;height:34px;color:#2f6bff;font-size:11px}.meter-daily-metric-card>i.tone-1,.meter-daily-demand-card>i.tone-1{color:#2ebd70}.meter-daily-metric-card>i.tone-2,.meter-daily-demand-card>i.tone-2{color:#8156e8}.meter-daily-metric-card>i.tone-3,.meter-daily-demand-card>i.tone-3{color:#f59a23}.meter-daily-metric-card>i.tone-4{color:#29a8c7}.meter-daily-metric-card span,.meter-daily-demand-card span{overflow:hidden;color:#65758a;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.meter-daily-metric-card strong,.meter-daily-demand-card strong{color:#17243d;font-size:16px;font-weight:700;white-space:nowrap}.meter-daily-demand-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.meter-daily-source-badge{flex:0 0 auto;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:700}.meter-daily-source-badge.is-terminal{background:#e9f9ef;color:#14804a}.meter-daily-source-badge.is-aggregate{background:#eef4ff;color:#2459c4}.meter-daily-trend>header select{max-width:180px;min-height:32px;border:1px solid #cbd7e6;border-radius:6px;padding:0 8px;background:#fff;color:#42526b}.meter-daily-trend .meter-daily-tabs{max-height:72px;overflow:auto}.meter-daily-sampling-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;overflow:hidden;border:1px solid #edf2f8;border-radius:8px}.meter-daily-sampling-list div{display:grid;gap:6px;border-right:1px solid #edf2f8;padding:10px 12px;background:#f8fbff}.meter-daily-sampling-list div:last-child{border-right:0}.meter-daily-sampling-list div.is-success{background:color-mix(in srgb,var(--green) 10%,#fff)}.meter-daily-sampling-list div.is-warning{background:color-mix(in srgb,var(--orange) 10%,#fff)}.meter-daily-sampling-list div.is-muted{background:color-mix(in srgb,var(--muted) 8%,#fff)}.meter-daily-completeness{display:inline-flex;align-items:center;min-height:22px;border-radius:999px;padding:0 8px;font-size:12px;font-weight:700}.meter-daily-completeness.is-success{background:color-mix(in srgb,var(--green) 12%,#fff);color:#17804a}.meter-daily-completeness.is-warning{background:color-mix(in srgb,var(--orange) 13%,#fff);color:#9a6700}.meter-daily-completeness.is-muted{background:color-mix(in srgb,var(--muted) 12%,#fff);color:#657386}.meter-daily-empty{display:grid;place-items:center;min-height:90px;margin:0;border:1px dashed #cbd7e6;border-radius:8px;background:#f8fbff;color:#75849a;font-size:13px}@media(max-width:1360px){.meter-realtime-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.meter-realtime-charts,.meter-realtime-detail-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.meter-realtime-workspace,.meter-curve-main,.meter-daily-dashboard{grid-template-columns:1fr}.meter-daily-sampling-list{grid-template-columns:repeat(2,minmax(0,1fr))}}.content--campus-twin{overflow:hidden}.content--campus-twin #view{height:100%;padding:0}.campus-twin-workbench{--campus-cyan: #4edcff;--campus-green: #41d99a;--campus-amber: #ffbd59;position:relative;isolation:isolate;height:calc(100vh - 126px);min-height:720px;padding:18px;overflow:hidden;color:#e8f7ff;background:radial-gradient(circle at 38% 22%,rgba(24,125,169,.17),transparent 31%),#07131d}.campus-twin-workbench:before{position:absolute;inset:0;z-index:-1;content:"";pointer-events:none;opacity:.18;background-image:linear-gradient(rgba(80,194,231,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(80,194,231,.12) 1px,transparent 1px);background-size:42px 42px;-webkit-mask-image:linear-gradient(to bottom,black,transparent 88%);mask-image:linear-gradient(to bottom,black,transparent 88%)}.campus-twin-header{position:relative;z-index:4;display:flex;align-items:flex-start;justify-content:space-between;min-height:82px;padding:0 2px 15px;border-bottom:1px solid rgba(90,205,244,.18)}.campus-twin-header h1{margin:2px 0 4px;color:#f5fbff;font-size:27px;font-weight:650;letter-spacing:.04em}.campus-twin-header p{margin:0;color:#8ca8b8;font-size:13px}.campus-twin-header .campus-twin-eyebrow{color:#5fcff2;font-size:10px;font-weight:700;letter-spacing:.24em}.campus-twin-header-actions{display:flex;align-items:center;gap:8px;padding-top:15px}.campus-twin-header-actions button,.campus-twin-scene-controls button,.campus-twin-error button{min-height:34px;padding:0 13px;color:#cce9f6;border:1px solid rgba(91,193,231,.32);border-radius:4px;background:#081d2ac7;cursor:pointer}.campus-twin-header-actions button:hover,.campus-twin-header-actions button[aria-pressed=true],.campus-twin-scene-controls button:hover,.campus-twin-scene-controls button[aria-pressed=true]{color:#fff;border-color:#4edcffcc;background:#14709757}.campus-twin-state{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 11px;color:#abc4d0;font-size:12px;border:1px solid rgba(132,170,188,.22);border-radius:4px}.campus-twin-state:before{width:7px;height:7px;content:"";border-radius:50%;background:#8195a0}.campus-twin-state.is-ready:before{background:var(--campus-green);box-shadow:0 0 10px #41d99ab3}.campus-twin-state.is-fallback:before,.campus-twin-state.is-error:before{background:#ffbd55;box-shadow:0 0 9px #ffbd55b8}.campus-twin-layout{display:grid;grid-template-columns:minmax(0,3fr) minmax(280px,1fr);gap:12px;height:calc(100% - 83px);min-height:0;padding-top:12px}.campus-twin-scene{position:relative;min-width:0;min-height:680px;overflow:hidden;border:1px solid rgba(72,182,221,.22);border-radius:8px;background:#071622;box-shadow:inset 0 0 80px #020a10a6}.campus-twin-scene:after{position:absolute;inset:0;z-index:2;content:"";pointer-events:none;border:1px solid rgba(109,225,255,.08);box-shadow:inset 0 0 36px #1aacdf0d}.campus-twin-scene-backdrop{position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse at 50% 76%,rgba(23,125,162,.2),transparent 48%),linear-gradient(to bottom,rgba(15,47,67,.4),transparent 45%)}.campus-twin-canvas-wrap{position:absolute;inset:0;z-index:1}.campus-twin-canvas-wrap canvas{display:block;width:100%;height:100%;outline:none;cursor:grab}.campus-twin-canvas-wrap canvas:active{cursor:grabbing}.campus-twin-canvas-wrap canvas:focus-visible{outline:2px solid rgba(72,216,255,.92);outline-offset:-3px}.campus-twin-overlay{position:absolute;inset:0;z-index:8;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;color:#dff7ff;background:#05121ce6}.campus-twin-overlay span{color:#86a7b7;font-size:12px}.campus-twin-loading i{width:34px;height:34px;margin-bottom:5px;border:2px solid rgba(78,220,255,.18);border-top-color:var(--campus-cyan);border-radius:50%;animation:campus-twin-spin .9s linear infinite}@keyframes campus-twin-spin{to{transform:rotate(360deg)}}.campus-twin-fallback{overflow:hidden}.campus-twin-fallback img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.58}.campus-twin-fallback:after{position:absolute;inset:0;content:"";background:#0410196b}.campus-twin-fallback div{position:relative;z-index:1;display:flex;align-items:center;flex-direction:column;gap:7px}.campus-twin-error button{margin-top:8px}.campus-twin-scene-meta{position:absolute;top:15px;left:15px;z-index:4;display:flex;flex-wrap:wrap;gap:7px;max-width:calc(100% - 30px)}.campus-twin-scene-meta span{display:inline-flex;align-items:center;gap:6px;min-height:27px;padding:0 9px;color:#b7d2de;font-size:11px;border:1px solid rgba(94,191,228,.2);border-radius:3px;background:#051621c2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.campus-twin-scene-meta i,.campus-twin-truth-note i{width:6px;height:6px;border-radius:50%;background:var(--campus-cyan)}.campus-twin-scene-meta i.is-source{background:var(--campus-green)}.campus-twin-scene-meta i.is-selected{background:var(--campus-amber)}.campus-twin-layer-dock{position:absolute;right:15px;bottom:58px;left:15px;z-index:5;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;padding:1px;border:1px solid rgba(68,177,216,.22);border-radius:5px;background:#051520d1;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.campus-twin-layer-dock button{display:grid;grid-template-columns:10px minmax(0,1fr);grid-template-rows:auto auto;gap:2px 8px;min-width:0;min-height:52px;padding:8px 10px;color:#a7c1cc;text-align:left;border:0;border-right:1px solid rgba(84,166,197,.13);background:transparent;cursor:pointer}.campus-twin-layer-dock button:last-child{border-right:0}.campus-twin-layer-dock button:hover,.campus-twin-layer-dock button.active{color:#effcff;background:#1885ad2e}.campus-twin-layer-dock button.active{box-shadow:inset 0 -2px 0 var(--campus-cyan)}.campus-twin-layer-dock i{grid-row:1 / 3;align-self:center;width:8px;height:8px;border:1px solid currentColor;border-radius:50%;box-shadow:0 0 9px currentColor}.campus-twin-layer-dock i.is-energy{color:var(--campus-green)}.campus-twin-layer-dock i.is-hvac{color:#63bfff}.campus-twin-layer-dock i.is-lighting{color:var(--campus-amber)}.campus-twin-layer-dock span{overflow:hidden;font-size:12px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.campus-twin-layer-dock small{overflow:hidden;color:#6f8c99;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.campus-twin-scene-controls{position:absolute;right:15px;bottom:13px;left:15px;z-index:5;display:flex;align-items:center;justify-content:space-between;color:#7795a3;font-size:11px}.campus-twin-scene-controls button{min-height:30px;font-size:11px}.campus-twin-inspector{min-width:0;min-height:0;padding:17px;overflow:auto;border:1px solid rgba(72,182,221,.2);border-radius:8px;background:#071925e0;scrollbar-width:thin;scrollbar-color:rgba(78,220,255,.28) transparent}.campus-twin-inspector-intro{padding-bottom:16px;border-bottom:1px solid rgba(83,179,214,.17)}.campus-twin-inspector-heading{display:flex;align-items:center;justify-content:space-between;color:#6f909f;font-size:10px;letter-spacing:.12em}.campus-twin-inspector-heading b{padding:4px 7px;color:#96acb6;font-size:10px;font-weight:600;letter-spacing:0;border:1px solid currentColor;border-radius:2px}.campus-twin-inspector-heading b.is-ready{color:var(--campus-green)}.campus-twin-inspector-heading b.is-pending{color:var(--campus-amber)}.campus-twin-inspector h2{margin:13px 0 7px;color:#f1fbff;font-size:18px;font-weight:620}.campus-twin-inspector p{margin:0;color:#819eab;font-size:12px;line-height:1.7}.campus-twin-facts{margin:0;padding:10px 0;border-bottom:1px solid rgba(83,179,214,.17)}.campus-twin-facts div{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:8px 0}.campus-twin-facts dt{color:#6f8d9b;font-size:11px}.campus-twin-facts dd{margin:0;color:#d5eaf2;font-size:11px;text-align:right}.campus-twin-source{padding:14px 0;border-bottom:1px solid rgba(83,179,214,.17)}.campus-twin-source>span,.campus-twin-links>div>span{display:block;margin-bottom:7px;color:#6c8a98;font-size:10px;letter-spacing:.12em}.campus-twin-source strong{display:block;margin-bottom:5px;color:#cce9f4;font-size:12px;font-weight:600}.campus-twin-links{padding:15px 0}.campus-twin-links>div{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:8px}.campus-twin-links>div>span{margin:0}.campus-twin-links>div small{color:#58717d;font-size:9px}.campus-twin-links button{display:grid;grid-template-columns:minmax(0,1fr) 14px;gap:3px 8px;width:100%;min-height:51px;padding:9px 10px;color:#d0e7f0;text-align:left;border:0;border-top:1px solid rgba(79,165,199,.14);background:transparent;cursor:pointer}.campus-twin-links button:hover{color:#fff;background:#2086aa24}.campus-twin-links button:disabled{cursor:not-allowed;opacity:.48}.campus-twin-links button:disabled:hover{color:#d0e7f0;background:transparent}.campus-twin-links button span,.campus-twin-links button small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.campus-twin-links button span{font-size:12px;font-weight:600}.campus-twin-links button small{color:#688593;font-size:10px}.campus-twin-links button b{grid-row:1 / 3;grid-column:2;align-self:center;color:var(--campus-cyan);font-size:18px;font-weight:400}.campus-twin-truth-note{display:grid;grid-template-columns:7px minmax(0,1fr);gap:9px;padding-top:12px;border-top:1px solid rgba(83,179,214,.17)}.campus-twin-truth-note i{margin-top:7px;background:var(--campus-amber)}.campus-twin-truth-note p{color:#6e8995;font-size:10px}.campus-twin-workbench.is-immersive{position:fixed;inset:10px;z-index:3000;width:auto;height:auto;min-height:0;border:1px solid rgba(78,220,255,.28);box-shadow:0 24px 80px #00000094}.campus-twin-workbench.is-immersive .campus-twin-scene{min-height:0}.campus-twin-header-actions button:focus-visible,.campus-twin-layer-dock button:focus-visible,.campus-twin-scene-controls button:focus-visible,.campus-twin-links button:focus-visible,.campus-twin-error button:focus-visible{outline:2px solid var(--campus-cyan);outline-offset:2px}@media(max-width:1500px){.campus-twin-workbench{padding:14px}.campus-twin-layout{gap:9px}.campus-twin-inspector{padding:13px}}.storage-digital-twin-workbench{--storage-twin-surface: rgba(4, 17, 30, .88);--storage-twin-border: rgba(72, 196, 255, .2);--storage-twin-copy: #eaf8ff;--storage-twin-muted: #7899b1;--storage-twin-cyan: #2edcff;--storage-twin-green: #42e8b4;position:relative;background:radial-gradient(circle at 52% 32%,rgba(23,147,214,.18),transparent 34%),linear-gradient(145deg,#061321,#020914 58%,#050d18);color:var(--storage-twin-copy)}.storage-digital-twin-workbench:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(rgba(46,220,255,.024) 1px,transparent 1px),linear-gradient(90deg,rgba(46,220,255,.024) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:linear-gradient(to bottom,#000,transparent 88%);mask-image:linear-gradient(to bottom,#000,transparent 88%)}.storage-digital-twin-workbench .energy-twin-app-shell{position:relative;z-index:1;grid-template-rows:58px minmax(0,1fr);gap:10px;padding:10px 14px 12px}.storage-digital-twin-workbench .energy-twin-topbar,.storage-digital-twin-workbench .energy-twin-map-panel,.storage-digital-twin-workbench .energy-twin-info-panel,.storage-digital-twin-workbench .energy-twin-operations-panel{border:1px solid var(--storage-twin-border);border-radius:2px;background:linear-gradient(145deg,#091e30e6,#030f1beb);box-shadow:inset 0 1px #abe8ff0a,0 18px 40px #0000003d}.storage-digital-twin-workbench .energy-twin-topbar{position:relative;z-index:20;grid-template-columns:minmax(270px,1fr) auto auto;min-height:58px;padding:7px 12px 7px 15px;overflow:visible;animation:storage-twin-enter .42s ease-out both}.storage-digital-twin-workbench .energy-twin-title{min-width:0}.storage-digital-twin-workbench .energy-twin-title span,.storage-digital-twin-workbench .storage-twin-section-head span{color:#6f96af;font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.storage-digital-twin-workbench .energy-twin-topbar h1{color:#f3fbff;font-size:18px;letter-spacing:.02em}.storage-digital-twin-workbench .energy-twin-summary-strip,.storage-digital-twin-workbench .energy-twin-actions{flex-wrap:nowrap;gap:6px}.storage-digital-twin-workbench .energy-twin-summary-strip span{min-width:74px;padding:5px 8px;border-color:#54b5e733;border-radius:2px;background:#0c263ab8;color:#7c9caf}.storage-digital-twin-workbench .energy-twin-summary-strip strong{color:var(--storage-twin-cyan)}.storage-digital-twin-workbench .energy-twin-actions button,.storage-digital-twin-workbench .storage-twin-scene-actions button{border-color:#2edcff4d;border-radius:2px;background:#071c2beb;color:#c7e9f6;transition:border-color .16s ease,background-color .16s ease,color .16s ease,box-shadow .16s ease}.storage-digital-twin-workbench .energy-twin-actions button:hover,.storage-digital-twin-workbench .storage-twin-scene-actions button:hover{border-color:#2edcffb8;background:#0d384ff0;color:#fff;box-shadow:0 0 18px #2edcff1a}.storage-digital-twin-workbench .storage-twin-layout{position:relative;z-index:1;grid-template-columns:minmax(0,1fr);gap:0;animation:storage-twin-enter .46s 45ms ease-out both}.storage-digital-twin-workbench .energy-twin-vehicle-picker-panel{z-index:21}.storage-digital-twin-workbench .energy-twin-operations-panel,.storage-digital-twin-workbench .energy-twin-info-panel{gap:10px;padding:12px;scrollbar-width:thin;scrollbar-color:rgba(46,220,255,.28) transparent}.storage-digital-twin-workbench .energy-twin-panel-header{padding-bottom:12px;border-color:#51abd82e}.storage-digital-twin-workbench .energy-twin-eyebrow{margin-bottom:5px;color:var(--storage-twin-cyan);font-size:10px;letter-spacing:.16em}.storage-digital-twin-workbench .energy-twin-panel-header h2,.storage-digital-twin-workbench .storage-twin-section-head h3,.storage-digital-twin-workbench .storage-twin-realtime-params h3,.storage-digital-twin-workbench .energy-twin-events-panel h3{color:#eefaff}.storage-digital-twin-workbench .energy-twin-panel-header h2{font-size:18px}.storage-digital-twin-workbench .energy-twin-status-pill,.storage-digital-twin-workbench .storage-twin-health-pill{border:1px solid rgba(66,232,180,.28);border-radius:2px;background:#218b6c1f;color:var(--storage-twin-green)}.storage-digital-twin-workbench .storage-twin-health-pill.is-warning{border-color:#f5b94247;background:#f5b9421a;color:#ffd478}.storage-digital-twin-workbench .storage-twin-health-pill.is-idle{border-color:#7e99b138;background:#7e99b114;color:#8da9bd}.storage-digital-twin-workbench .energy-twin-last-report{color:#83a8bd}.storage-digital-twin-workbench .energy-twin-last-report:before{content:"";display:inline-block;width:5px;height:5px;margin-right:6px;border-radius:50%;background:var(--storage-twin-green);box-shadow:0 0 9px #42e8b4cc;animation:storage-twin-pulse 2.2s ease-in-out infinite}.storage-twin-primary-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.storage-twin-primary-metrics article{position:relative;display:grid;gap:5px;min-width:0;padding:10px;overflow:hidden;border:1px solid rgba(46,220,255,.2);background:linear-gradient(145deg,#0f394f85,#051826bd)}.storage-twin-primary-metrics article:after{content:"";position:absolute;right:-18px;bottom:-22px;width:52px;height:52px;border:1px solid rgba(46,220,255,.16);border-radius:50%}.storage-twin-primary-metrics span{color:#7295aa;font-size:10px;letter-spacing:.08em}.storage-twin-primary-metrics strong{overflow:hidden;color:#f3fcff;font-size:20px;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.storage-digital-twin-workbench .storage-twin-status-list,.storage-digital-twin-workbench .storage-twin-realtime-params{border-color:#48a1cf29;border-radius:2px;background:#030f1b66}.storage-digital-twin-workbench .storage-twin-status-list div,.storage-digital-twin-workbench .storage-twin-realtime-params div{grid-template-columns:100px minmax(0,1fr);min-height:34px;padding:6px 9px;border-color:#48a1cf1f;background:#0619279e;transition:background-color .15s ease}.storage-digital-twin-workbench .storage-twin-status-list div:hover,.storage-digital-twin-workbench .storage-twin-realtime-params div:hover{background:#0f3548b8}.storage-digital-twin-workbench .storage-twin-status-list span,.storage-digital-twin-workbench .storage-twin-realtime-params span{color:#7190a5}.storage-digital-twin-workbench .storage-twin-status-list strong,.storage-digital-twin-workbench .storage-twin-realtime-params strong{color:#dceef7}.storage-twin-scene-card{isolation:isolate;border-color:#2edcff57!important;background:#020a13!important;box-shadow:inset 0 0 0 1px #2edcff0a,0 0 42px #118ccf1f!important}.storage-twin-scene-card:before,.storage-twin-scene-card:after{content:"";position:absolute;z-index:5;width:26px;height:26px;pointer-events:none}.storage-twin-scene-card:before{top:-1px;left:-1px;border-top:2px solid var(--storage-twin-cyan);border-left:2px solid var(--storage-twin-cyan)}.storage-twin-scene-card:after{right:-1px;bottom:-1px;border-right:2px solid var(--storage-twin-cyan);border-bottom:2px solid var(--storage-twin-cyan)}.storage-digital-twin-workbench .storage-twin-scene-head{position:absolute;top:12px;left:14px;right:14px;z-index:6;grid-template-columns:auto auto minmax(150px,1fr);min-height:38px;padding:5px 7px;border:1px solid rgba(46,220,255,.18);background:#03111dc2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#84a6ba}.storage-digital-twin-workbench .storage-twin-scene-heading span{color:#d9eef7}.storage-digital-twin-workbench .storage-twin-scene-heading small{color:#6f8fa4}.storage-digital-twin-workbench .storage-twin-scene-actions button{min-height:28px;padding:4px 8px}.storage-digital-twin-workbench .storage-twin-scene-actions button[aria-pressed=true]{border-color:var(--storage-twin-cyan);background:#1b7ca647;color:#effcff}.storage-digital-twin-workbench .storage-twin-scene-head input{accent-color:var(--storage-twin-cyan)}.storage-digital-twin-workbench .energy-twin-campus-map{position:absolute;inset:0;width:auto;height:auto;margin:0;border-radius:0;background:radial-gradient(ellipse at 52% 56%,rgba(23,147,214,.2),transparent 42%),linear-gradient(rgba(46,220,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(46,220,255,.055) 1px,transparent 1px),linear-gradient(160deg,#071625,#020812 62%,#06101c);background-size:auto,36px 36px,36px 36px,auto}.storage-digital-twin-workbench .energy-twin-campus-map:before{z-index:0;inset:14% 14% 20%;background:radial-gradient(ellipse,rgba(28,181,255,.22),transparent 66%);filter:blur(22px);animation:storage-twin-glow 5.5s ease-in-out infinite}.storage-digital-twin-workbench .energy-twin-campus-map:after{z-index:3;border:0;background:radial-gradient(ellipse at center,transparent 54%,rgba(1,6,13,.78) 100%)}.storage-twin-scene-atmosphere{position:absolute;z-index:0;inset:0;overflow:hidden;pointer-events:none}.storage-twin-orbit{position:absolute;left:50%;top:54%;width:min(70%,720px);aspect-ratio:1;border:1px solid rgba(46,220,255,.12);border-radius:50%;transform:translate(-50%,-50%) rotateX(72deg);animation:storage-twin-orbit 14s linear infinite}.storage-twin-orbit:after{content:"";position:absolute;top:-3px;left:18%;width:6px;height:6px;border-radius:50%;background:var(--storage-twin-cyan);box-shadow:0 0 14px #2edcffd9}.storage-twin-orbit--inner{width:min(48%,480px);animation-direction:reverse;animation-duration:10s}.storage-twin-scanline{position:absolute;left:6%;right:6%;top:-10%;height:20%;background:linear-gradient(to bottom,transparent,rgba(46,220,255,.08),transparent);filter:blur(1px);animation:storage-twin-scan 6.5s linear infinite}.storage-digital-twin-workbench #sceneCanvas{z-index:1}.storage-digital-twin-workbench .energy-twin-scene-label{width:clamp(320px,28vw,440px);min-width:0;max-width:calc(100% - 32px);max-height:min(48vh,360px);padding:0;overflow:hidden;border-color:#2edcff94;background:#03111df5;box-shadow:0 18px 42px #00000075,0 0 26px #2edcff1f}.storage-digital-twin-workbench .energy-twin-scene-label.is-focused{transform:translate(-50%,-100%) scale(1)}.energy-twin-scene-label__header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 10px;border-bottom:1px solid rgba(46,220,255,.2);background:linear-gradient(105deg,#187da94d,#051e2d7a)}.energy-twin-scene-label__header strong{min-width:0;margin:0;overflow:hidden;color:#f1fbff;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.energy-twin-scene-label__header span{flex:none;color:var(--storage-twin-green);font-size:11px;white-space:nowrap}.energy-twin-scene-label__params{display:grid;margin:0;padding:2px 0}.energy-twin-scene-label__params div{display:grid;grid-template-columns:minmax(100px,.9fr) minmax(0,1.1fr);gap:8px;min-height:24px;padding:3px 10px;border-bottom:1px solid rgba(72,161,207,.12)}.energy-twin-scene-label__params div:last-child{border-bottom:0}.energy-twin-scene-label__params dt,.energy-twin-scene-label__params dd{min-width:0;margin:0;line-height:1.45}.energy-twin-scene-label__params dt{color:#789bb0;white-space:nowrap}.energy-twin-scene-label__params dd{color:#e3f3fa;overflow-wrap:anywhere;text-align:right}.storage-twin-scene-address-attribution{position:absolute;right:18px;bottom:62px;z-index:7;padding:4px 7px;border:1px solid rgba(46,220,255,.16);border-radius:2px;background:#03111dc2;color:#66889c;font-size:10px;line-height:1.4;pointer-events:none}.storage-digital-twin-workbench .storage-twin-floating-nav{left:16px;right:16px;bottom:14px;z-index:7;padding:6px;border-color:#2edcff33;border-radius:2px;background:#03111dd1;box-shadow:0 12px 28px #00000052;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.storage-digital-twin-workbench .energy-twin-component-grid{gap:4px}.storage-digital-twin-workbench .energy-twin-component-button{min-height:30px;border-color:#509fc52e;border-radius:2px;background:#071c2bc7;color:#89a8ba}.storage-digital-twin-workbench .energy-twin-component-button[aria-pressed=true]{border-color:var(--storage-twin-cyan);background:linear-gradient(105deg,#187da96b,#082b3f7a);color:#f0fbff;box-shadow:inset 2px 0 0 var(--component-tone),0 0 16px #2edcff1a}.storage-digital-twin-workbench .storage-twin-section-head{min-height:26px}.storage-digital-twin-workbench .storage-twin-section-head h3,.storage-digital-twin-workbench .storage-twin-realtime-params h3{font-size:13px}.storage-digital-twin-workbench .storage-twin-section-head button{border-color:#2edcff40;border-radius:2px;background:#0f394f6b;color:var(--storage-twin-cyan)}.storage-digital-twin-workbench .energy-twin-detail-list,.storage-digital-twin-workbench .storage-twin-compact-table table,.storage-digital-twin-workbench .energy-twin-events-panel{border-color:#48a1cf29;border-radius:2px;background:#041421ad}.storage-digital-twin-workbench .energy-twin-detail-list div,.storage-digital-twin-workbench .storage-twin-compact-table td{border-color:#48a1cf1f}.storage-digital-twin-workbench .energy-twin-detail-list dt,.storage-digital-twin-workbench .storage-twin-compact-table td{color:#7594a8}.storage-digital-twin-workbench .energy-twin-detail-list dd{color:#dfedf4}@keyframes storage-twin-enter{0%{opacity:0;transform:translateY(7px)}}@keyframes storage-twin-pulse{50%{opacity:.45;transform:scale(.8)}}@keyframes storage-twin-glow{50%{opacity:.68;transform:scale(1.08)}}@keyframes storage-twin-orbit{0%{transform:translate(-50%,-50%) rotateX(72deg) rotate(0)}to{transform:translate(-50%,-50%) rotateX(72deg) rotate(360deg)}}@keyframes storage-twin-scan{to{transform:translateY(610%)}}@media(max-width:1380px){.storage-digital-twin-workbench .energy-twin-app-shell{padding-inline:10px}.storage-digital-twin-workbench .energy-twin-topbar{grid-template-columns:minmax(210px,1fr) auto auto;gap:7px}.storage-digital-twin-workbench .energy-twin-topbar h1{font-size:16px}.storage-digital-twin-workbench .energy-twin-title span,.storage-digital-twin-workbench .storage-twin-scene-heading small{display:none}.storage-digital-twin-workbench .energy-twin-summary-strip span{min-width:62px;padding-inline:5px}.storage-digital-twin-workbench .energy-twin-actions button{padding-inline:8px}.storage-twin-layout{grid-template-columns:minmax(0,1fr);gap:0}.storage-digital-twin-workbench .energy-twin-operations-panel,.storage-digital-twin-workbench .energy-twin-info-panel{padding:9px}.storage-digital-twin-workbench .storage-twin-status-list div,.storage-digital-twin-workbench .storage-twin-realtime-params div{grid-template-columns:82px minmax(0,1fr);padding-inline:7px}.storage-digital-twin-workbench .storage-twin-scene-head,.storage-digital-twin-workbench .storage-twin-floating-nav{left:10px;right:10px}.storage-digital-twin-workbench .energy-twin-component-button{justify-content:center;padding-inline:5px}.storage-digital-twin-workbench .energy-twin-component-button span{font-size:10px}.storage-twin-primary-metrics strong{font-size:17px}}@media(prefers-reduced-motion:reduce){.campus-twin-workbench *,.campus-twin-workbench *:before,.campus-twin-workbench *:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.storage-twin-scanline,.storage-twin-orbit,.storage-digital-twin-workbench .energy-twin-last-report:before,.storage-digital-twin-workbench .energy-twin-campus-map:before,.storage-digital-twin-workbench .energy-twin-topbar,.storage-twin-layout{animation:none}}.energy-analytics-panel{display:grid;gap:12px;min-width:0;color:#17243d}.energy-analytics-hero,.energy-analytics-toolbar,.energy-analytics-metric,.energy-analytics-side-panel,.energy-analytics-quality-card,.energy-analytics-table{border:1px solid #dfe7f2;border-radius:8px;background:#fff;box-shadow:0 4px 14px #1e40780b}.energy-analytics-hero{position:relative;display:grid;grid-template-columns:280px minmax(0,1fr) auto;align-items:center;min-height:132px;overflow:hidden}.energy-analytics-hero img{width:100%;height:132px;object-fit:cover;background:#eef3f9}.energy-analytics-hero__content{display:grid;gap:7px;min-width:0;padding:18px 22px}.energy-analytics-hero__content span{color:#2f6bff;font-size:12px;font-weight:700}.energy-analytics-hero__content h2{margin:0;color:#17243d;font-size:22px;line-height:1.2;letter-spacing:0}.energy-analytics-hero__content p{max-width:660px;margin:0;color:#65758a;font-size:13px;line-height:1.6}.energy-analytics-hero>button,.energy-analytics-toolbar button,.energy-analytics-alert button{min-height:34px;border:1px solid #2f6bff;border-radius:6px;padding:0 12px;background:#2f6bff;color:#fff;font-size:13px;cursor:pointer}.energy-analytics-hero>button{margin-right:18px}.energy-analytics-hero>button:disabled,.energy-analytics-toolbar button:disabled,.energy-analytics-toolbar select:disabled,.energy-analytics-toolbar input:disabled{cursor:not-allowed;opacity:.62}.energy-analytics-toolbar{display:flex;align-items:end;flex-wrap:wrap;justify-content:flex-end;gap:10px;padding:12px 14px}.energy-analytics-toolbar label{display:grid;gap:5px;color:#65758a;font-size:12px}.energy-analytics-toolbar select,.energy-analytics-toolbar input{min-height:34px;border:1px solid #cbd7e6;border-radius:6px;padding:0 10px;background:#fff;color:#17243d;font-size:13px}.energy-analytics-toolbar select{min-width:220px}.energy-analytics-toolbar input{width:190px}.energy-analytics-range-shortcuts{display:flex;align-items:center;gap:8px}.energy-analytics-range-shortcuts button{border-color:#cbd7e6;background:#fff;color:#42526b}.energy-analytics-range-shortcuts button[aria-pressed=true]{border-color:#2f6bff;background:#2f6bff;color:#fff}.energy-analytics-alert,.energy-analytics-status{margin:0;border-radius:8px;padding:10px 12px;font-size:13px}.energy-analytics-alert{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #ffd6d6;background:#fff5f5;color:#b42318}.energy-analytics-status{border:1px solid #dbeafe;background:#eff6ff;color:#1d4ed8}.energy-analytics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.energy-analytics-metric{display:grid;gap:8px;min-width:0;padding:14px}.energy-analytics-metric span,.energy-analytics-side-panel dt,.energy-analytics-table header small{color:#65758a;font-size:12px}.energy-analytics-metric strong{overflow:hidden;color:#17243d;font-size:20px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.energy-analytics-metric small{overflow:hidden;color:#7b8a9e;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.energy-analytics-trend-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:12px;min-width:0}.energy-analytics-chart{min-width:0}.energy-analytics-side-panel{display:grid;align-content:start;gap:14px;min-width:0;padding:16px}.energy-analytics-side-panel strong,.energy-analytics-quality-card>strong,.energy-analytics-table header strong{color:#17243d;font-size:15px}.energy-analytics-side-panel dl,.energy-analytics-quality-card dl{display:grid;gap:9px;margin:0}.energy-analytics-side-panel dl div,.energy-analytics-quality-card dl div{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;border-bottom:1px solid #eef3f9;padding-bottom:8px}.energy-analytics-side-panel dd,.energy-analytics-quality-card dd{margin:0;color:#17243d;font-size:14px;font-weight:700;text-align:right}.energy-analytics-quality-layout{display:grid;grid-template-columns:380px minmax(0,1fr);gap:12px;min-width:0}.energy-analytics-quality-card{display:grid;align-content:start;gap:14px;min-width:0;padding:16px}.energy-analytics-quality-bar{display:flex;overflow:hidden;height:14px;border-radius:999px;background:#eef3f9}.energy-analytics-quality-bar span{min-width:2px}.energy-analytics-quality-bar .is-normal{background:#2f6bff}.energy-analytics-quality-bar .is-late{background:#d98500}.energy-analytics-quality-bar .is-anomaly{background:#d64545}.energy-analytics-quality-bar .is-missing{background:#94a3b8}.energy-analytics-table{display:grid;gap:10px;min-width:0;padding:14px}.energy-analytics-table header{display:flex;align-items:center;justify-content:space-between;gap:12px}.energy-analytics-table table,.energy-analytics-quality-card table{width:100%;border-collapse:collapse;font-size:12px}.energy-analytics-table th,.energy-analytics-table td,.energy-analytics-quality-card th,.energy-analytics-quality-card td{border-bottom:1px solid #eef3f9;padding:9px 8px;color:#42526b;text-align:left;white-space:nowrap}.energy-analytics-table th,.energy-analytics-quality-card th{color:#65758a;font-weight:700}@media(max-width:1380px){.energy-analytics-hero{grid-template-columns:220px minmax(0,1fr) auto}.energy-analytics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.energy-analytics-trend-layout{grid-template-columns:minmax(0,1fr) 230px}.energy-analytics-quality-layout{grid-template-columns:320px minmax(0,1fr)}}.storage-order-bound-driver{display:grid;gap:2px;min-height:42px;box-sizing:border-box;border:1px solid #cfe0d8;border-radius:7px;background:#f1faf6;padding:7px 10px}.storage-order-bound-driver strong{color:#1d6c4c}.storage-order-bound-driver span{color:#668174;font-size:12px}.storage-order-bound-driver.unavailable{border-color:#f0cbd1;background:#fff4f5}.storage-order-bound-driver.unavailable strong,.storage-order-bound-driver.unavailable span{color:#b33b4c}
