:root{color-scheme:light;font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif;--bg: #eef2f6;--surface: #ffffff;--surface-2: #f7f9fc;--line: #dbe2ec;--text: #162033;--muted: #647184;--faint: #8a96a8;--blue: #2f6fed;--green: #159a62;--teal: #0f9f8f;--amber: #f0a629;--red: #d45d47;--violet: #7b61ff;--shadow: 0 16px 40px rgba(33, 45, 66, .1);--radius: 8px}.strategy-center-page{align-content:start}.strategy-center-header,.strategy-center-detail-head{min-height:68px;display:flex;align-items:center;gap:18px;padding:12px 16px}.strategy-center-header>div:first-child{min-width:180px}.strategy-center-header h2,.strategy-center-detail-head h2{margin:2px 0 0;font-size:20px}.strategy-center-tabs{display:flex;align-self:stretch;align-items:flex-end;gap:4px;flex:1}.strategy-center-tabs button{height:42px;min-width:118px;padding:0 16px;border:0;border-bottom:2px solid transparent;background:transparent;color:#647184;font-weight:650;cursor:pointer}.strategy-center-tabs button span{margin-left:5px;color:#8d98a8;font-size:11px}.strategy-center-tabs button.active{border-bottom-color:#2f6fed;color:#245ed1}.strategy-kpi-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:0;overflow:hidden}.strategy-kpi-strip>div{min-height:70px;padding:12px 16px;border-right:1px solid #e5eaf1;display:flex;flex-direction:column;justify-content:center;gap:5px}.strategy-kpi-strip>div:last-child{border-right:0}.strategy-kpi-strip span{color:#758194;font-size:12px}.strategy-kpi-strip strong{color:#172033;font-size:22px}.strategy-task-panel,.strategy-plan-panel{padding:0;overflow:hidden}.strategy-filter-bar{display:grid;grid-template-columns:minmax(240px,1.5fr) repeat(4,minmax(125px,.7fr)) minmax(145px,.8fr);gap:8px;padding:10px 12px;border-bottom:1px solid #dfe5ed;background:#f8fafc}.strategy-plan-panel .strategy-filter-bar{grid-template-columns:minmax(280px,1fr) 180px}.strategy-filter-bar input,.strategy-filter-bar select,.strategy-form-grid input,.strategy-form-grid select,.strategy-form-grid textarea{width:100%;min-width:0;border:1px solid #d5dce6;border-radius:5px;background:#fff;color:#253044;font:inherit}.strategy-filter-bar input,.strategy-filter-bar select,.strategy-form-grid input,.strategy-form-grid select{height:34px;padding:0 9px}.strategy-task-table,.strategy-plan-table{max-width:100%;overflow:auto}.strategy-task-table table{min-width:1240px}.strategy-plan-table table{min-width:1480px}.strategy-task-table th,.strategy-task-table td,.strategy-plan-table th,.strategy-plan-table td{padding:10px 11px;vertical-align:middle}.strategy-task-table td:first-child{min-width:235px}.strategy-task-table td:nth-child(2){min-width:205px}.strategy-task-table td:last-child,.strategy-plan-table td:last-child{min-width:120px}.strategy-task-table small,.strategy-plan-table small{display:block;margin-top:4px;color:#7b8798;white-space:normal}.product-dot{display:inline-flex;align-items:center;gap:6px;color:#2b5fc0;font-weight:650}.product-dot:before{width:7px;height:7px;border-radius:50%;background:#2f6fed;content:""}.strategy-task-status{display:inline-flex;align-items:center;justify-content:center;min-width:54px;height:23px;padding:0 8px;border-radius:4px;background:#f0f2f5;color:#667285;font-style:normal;font-size:11px;font-weight:700;white-space:nowrap}.strategy-task-status.ok{background:#e7f7ee;color:#13824f}.strategy-task-status.tracking{background:#eaf1ff;color:#2f64cc}.strategy-task-status.pending{background:#fff3d5;color:#966611}.strategy-task-status.muted{background:#edf0f3;color:#7d8794}.strategy-completion{display:grid;grid-template-columns:86px 34px;align-items:center;gap:7px}.strategy-completion>span{height:5px;overflow:hidden;border-radius:3px;background:#e6ebf1}.strategy-completion i{display:block;height:100%;border-radius:inherit;background:#2f6fed}.strategy-completion b{color:#58677b;font-size:11px}.table-actions{display:flex;align-items:center;gap:4px;white-space:nowrap}.table-actions button{height:27px;padding:0 7px;border:1px solid #dce2ea;border-radius:4px;background:#fff;color:#4d5d72;display:inline-flex;align-items:center;gap:3px;font-size:11px;cursor:pointer}.table-actions button:hover:not(:disabled){border-color:#9db7ec;color:#2f64cc}.table-actions button:disabled{opacity:.42;cursor:not-allowed}.strategy-center-detail-head{justify-content:space-between}.back-chevron{transform:rotate(180deg)}.strategy-detail-summary{flex:1;display:flex;align-items:center;justify-content:center;gap:14px;color:#647184;font-size:12px}.strategy-detail-summary strong{color:#273348}.strategy-detail-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.button.danger{border-color:#f0c6bd;color:#b94732}.strategy-create-modal,.strategy-plan-modal{width:min(1040px,calc(100vw - 40px))}.strategy-version-modal{width:min(650px,calc(100vw - 40px))}.strategy-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px 16px}.strategy-form-grid>label{display:flex;flex-direction:column;gap:6px;color:#5e6b7e;font-size:12px;font-weight:650}.strategy-form-grid .span-2{grid-column:span 2}.strategy-form-grid textarea{min-height:74px;padding:8px 9px;resize:vertical}.strategy-plan-config{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.strategy-config-section{min-width:0;padding:12px;border:1px solid #e1e7ef;border-radius:6px;background:#fbfcfe}.strategy-config-section h3{margin:0 0 10px;color:#263247;font-size:13px}.strategy-config-section.span-2{grid-column:span 2}.strategy-config-section label,.strategy-inline-field{display:flex;flex-direction:column;gap:6px;color:#5e6b7e;font-size:12px;font-weight:650}.strategy-config-section textarea{width:100%;min-height:82px;padding:8px 9px;border:1px solid #d5dce6;border-radius:5px;background:#fff;color:#253044;font:inherit;resize:vertical}.strategy-resource-config{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.strategy-resource-config.adaptive{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.strategy-resource-row{display:grid;grid-template-columns:minmax(0,1fr) 128px;align-items:center;gap:8px;padding:8px;border:1px solid #e0e6ee;border-radius:5px;background:#fff}.strategy-resource-row.active{border-color:#b9cdf6;background:#f4f8ff}.strategy-resource-row.resource-storage.active{border-color:#87d0c4;background:#f1fbf8}.strategy-resource-row.resource-charging.active{border-color:#a9b9ff;background:#f5f6ff}.strategy-resource-row.resource-other.active{border-color:#d4dbe6;background:#f8fafc}.strategy-resource-row label{flex-direction:row;align-items:center;font-weight:650}.strategy-resource-row label span,.strategy-resource-row label strong,.strategy-resource-row label small{display:block;min-width:0}.strategy-resource-row label small{margin-top:2px;color:#7b8798;font-size:10px}.strategy-resource-row select,.strategy-inline-field input{width:100%;height:32px;min-width:0;border:1px solid #d5dce6;border-radius:5px;background:#fff;color:#253044;font:inherit}.strategy-version-inline{padding:12px}.strategy-check-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:9px;border:1px solid #d5dce6;border-radius:5px}.strategy-check-grid label{display:flex;align-items:center;gap:6px;color:#4f5d71;font-size:12px;font-weight:500}.strategy-check-grid input{width:14px;height:14px}.strategy-version-list{display:grid;gap:0;border:1px solid #e0e5ec;border-radius:6px;overflow:hidden}.strategy-version-list>div{display:grid;grid-template-columns:45px 1fr auto;align-items:center;gap:12px;padding:11px 12px;border-bottom:1px solid #e8ecf2}.strategy-version-list>div:last-child{border-bottom:0}.strategy-version-list>div>span{color:#2f6fed;font-weight:750}.strategy-version-list strong,.strategy-version-list small{display:block}.strategy-version-list small{margin-top:4px;color:#7b8798}@media (max-width: 1100px){.strategy-filter-bar{grid-template-columns:repeat(3,minmax(0,1fr))}.strategy-search{grid-column:span 3}.strategy-kpi-strip{grid-template-columns:repeat(3,1fr)}.strategy-resource-config,.strategy-resource-config.adaptive,.charger-batch-toolbar{grid-template-columns:1fr}.charger-batch-actions{justify-content:flex-start}}@media (max-width: 760px){.strategy-center-header,.strategy-center-detail-head,.strategy-detail-summary{align-items:stretch;flex-direction:column}.strategy-center-tabs{align-items:stretch}.strategy-kpi-strip,.strategy-form-grid,.strategy-filter-bar,.strategy-resource-row,.strategy-plan-panel .strategy-filter-bar{grid-template-columns:1fr}.strategy-search,.strategy-form-grid .span-2{grid-column:span 1}}.dispatch-center-page{display:grid;gap:10px;min-width:0}.dispatch-center-toolbar,.dispatch-module-head,.dispatch-account-summary{display:flex;align-items:center;justify-content:space-between;gap:12px}.dispatch-center-toolbar{min-height:58px;padding:10px 14px;border:1px solid var(--line);background:var(--surface);border-radius:6px}.dispatch-center-toolbar h2{margin:2px 0 0;font-size:18px}.dispatch-title-stack{display:flex;align-items:center;gap:10px;min-width:0}.dispatch-title-stack>div{min-width:0}.dispatch-title-stack h2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dispatch-global-filters{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.dispatch-global-filters select,.dispatch-global-filters input,.dispatch-queue-search{height:34px;border:1px solid var(--line);background:#fff;border-radius:5px;padding:0 10px;color:var(--text)}.dispatch-kpi-strip{display:grid;grid-template-columns:minmax(190px,1.7fr) repeat(5,minmax(118px,1fr));gap:1px;overflow:hidden;border:1px solid var(--line);background:var(--line);border-radius:6px}.dispatch-kpi-strip .metric-inline{min-width:0;min-height:68px;padding:10px 12px;background:#fff}.dispatch-kpi-strip .metric-inline strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dispatch-overview-grid,.dispatch-runtime-grid{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(330px,.85fr);gap:10px;min-width:0}.dispatch-center-page .panel{padding:0;border-radius:6px;overflow:hidden}.dispatch-module-head{min-height:42px;padding:0 12px;border-bottom:1px solid var(--line);background:#fbfcfe}.dispatch-module-head>div{display:flex;align-items:center;gap:7px}.dispatch-module-head>span{color:var(--muted);font-size:12px}.dispatch-calendar-panel{min-height:420px}.dispatch-calendar-week,.dispatch-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.dispatch-calendar-week{border-bottom:1px solid var(--line);color:var(--muted);font-size:11px;text-align:center}.dispatch-calendar-week span{padding:7px 0}.dispatch-calendar-day{min-width:0;min-height:67px;padding:6px;border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);background:#fff}.dispatch-calendar-day:nth-child(7n){border-right:0}.dispatch-calendar-day>span{display:block;margin-bottom:4px;color:#667085;font-size:11px}.dispatch-calendar-day.muted{background:#f8fafc;opacity:.55}.dispatch-calendar-day.selected{background:#edf4ff;box-shadow:inset 3px 0 #2f6fed}.dispatch-calendar-day button{display:block;width:100%;min-width:0;margin:2px 0;padding:3px 5px;overflow:hidden;border:0;border-radius:4px;color:#fff;font-size:10px;text-align:left;text-overflow:ellipsis;white-space:nowrap}.dispatch-calendar-day .product-marketized-response{background:#2f6fed}.dispatch-calendar-day .product-demand-response{background:#159a62}.dispatch-calendar-day .product-ancillary-service{background:#d45d47}.dispatch-calendar-day .product-spot-linkage{background:#7b61ff}.dispatch-calendar-day .product-temporary{background:#687386}.dispatch-side-stack{display:grid;grid-template-rows:auto minmax(0,1fr);gap:10px;min-width:0}.dispatch-resource-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:10px}.dispatch-resource-grid button{min-width:0;padding:9px 10px;border:1px solid var(--line);border-radius:5px;background:#fff;text-align:left}.dispatch-resource-grid button:hover{border-color:#91b5f7;background:#f6f9ff}.dispatch-resource-grid button>span{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:11px}.dispatch-resource-grid button>span b{display:grid;width:22px;height:22px;place-items:center;border-radius:4px;background:#edf4ff;color:#2f6fed}.dispatch-resource-grid button>span em{margin-left:auto;color:#159a62;font-style:normal}.dispatch-resource-grid button>span em.warn{color:#d45d47}.dispatch-resource-grid button>strong{display:block;margin:7px 0 3px;font-size:16px}.dispatch-resource-grid button>small{display:block;overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.dispatch-queue-panel{min-height:244px}.dispatch-queue-search{width:calc(100% - 20px);margin:8px 10px 4px}.dispatch-queue-list{max-height:230px;overflow:auto;padding:4px 10px 10px}.dispatch-queue-item{display:flex;align-items:center;gap:4px;border-bottom:1px solid var(--line-soft)}.dispatch-queue-main{display:grid;flex:1;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;padding:8px 2px;border:0;background:transparent;text-align:left}.dispatch-type-mark{display:grid;width:28px;height:28px;place-items:center;border-radius:4px;background:#edf4ff;color:#2f6fed;font-size:11px;font-weight:700}.dispatch-queue-main>span:nth-child(2){min-width:0}.dispatch-queue-main strong,.dispatch-queue-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dispatch-queue-main strong{font-size:12px}.dispatch-queue-main small{margin-top:2px;color:var(--muted);font-size:10px}.dispatch-queue-item .icon-button{width:28px;height:28px}.dispatch-runtime-chart-panel,.dispatch-alert-panel{min-height:390px}.dispatch-runtime-grid.event-detail{grid-template-columns:minmax(0,1.55fr) minmax(300px,.75fr)}.dispatch-event-head{display:grid;grid-template-columns:minmax(260px,2fr) repeat(5,minmax(112px,1fr));align-items:stretch;gap:1px;border:1px solid var(--line);background:var(--line)}.dispatch-event-head>div:first-child{display:flex;align-items:center;gap:10px;min-width:0;padding:12px 14px;background:#fff}.dispatch-event-head h3{margin:0;overflow:hidden;font-size:16px;text-overflow:ellipsis;white-space:nowrap}.dispatch-event-head small{display:block;margin-top:3px;color:var(--muted);font-size:11px}.dispatch-event-head .metric-inline{min-width:0;min-height:64px;padding:10px 12px;background:#fff}.dispatch-event-task-panel{min-height:168px}.dispatch-basis-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.75fr);gap:10px;min-width:0}.dispatch-basis-panel,.dispatch-strategy-target-panel{min-width:0}.dispatch-basis-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;border-bottom:1px solid var(--line);background:var(--line)}.dispatch-basis-summary .metric-inline{min-height:58px;padding:8px 10px;background:#fff}.dispatch-basis-table{max-height:204px}.dispatch-basis-table table{min-width:720px;font-size:12px}.dispatch-strategy-target-list{max-height:262px;overflow:auto;padding:8px 10px}.dispatch-strategy-target-list button{display:grid;width:100%;grid-template-columns:minmax(0,1fr) auto;gap:3px 10px;padding:9px 4px;border:0;border-bottom:1px solid var(--line-soft);background:transparent;color:var(--text);text-align:left}.dispatch-strategy-target-list strong,.dispatch-strategy-target-list small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dispatch-strategy-target-list small{color:var(--muted);font-size:10px}.dispatch-strategy-target-list em{color:#245ed1;font-style:normal;font-weight:700}.dispatch-queue-list.event{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));max-height:none;gap:6px 12px}.dispatch-queue-list.event .dispatch-queue-item{border:1px solid var(--line-soft);border-radius:5px;padding:0 6px}.dispatch-runtime-chart{height:278px;padding:8px 8px 0}.dispatch-interval-progress{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));border-top:1px solid var(--line)}.dispatch-interval-progress button{display:grid;grid-template-columns:1fr auto;gap:3px 8px;min-width:0;padding:8px 10px;border:0;border-right:1px solid var(--line);background:#fff;text-align:left}.dispatch-interval-progress button>span,.dispatch-interval-progress button>small{color:var(--muted);font-size:10px}.dispatch-interval-progress button>strong{font-size:11px}.dispatch-interval-progress button>small{text-align:right}.dispatch-interval-progress button>i{height:4px;overflow:hidden;border-radius:2px;background:#e8edf4}.dispatch-interval-progress button>i b{display:block;height:100%;background:#159a62}.dispatch-interval-progress button.warn>i b{background:#f0a629}.dispatch-interval-progress button.danger>i b{background:#d45d47}.dispatch-alert-list{max-height:347px;overflow:auto;padding:8px 10px}.dispatch-alert-list button{display:flex;width:100%;gap:8px;padding:10px 4px;border:0;border-bottom:1px solid var(--line-soft);background:transparent;color:#d45d47;text-align:left}.dispatch-alert-list button span{min-width:0;color:var(--text)}.dispatch-alert-list strong,.dispatch-alert-list small{display:block}.dispatch-alert-list strong{font-size:12px}.dispatch-alert-list small{margin-top:3px;color:var(--muted);font-size:10px}.dispatch-account-monitor{min-height:410px}.dispatch-account-layout{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:365px}.dispatch-account-list{max-height:365px;overflow:auto;border-right:1px solid var(--line);background:#fbfcfe;padding:6px}.dispatch-account-list button{display:flex;width:100%;align-items:center;justify-content:space-between;gap:8px;padding:9px 8px;border:1px solid transparent;border-radius:4px;background:transparent;text-align:left}.dispatch-account-list button.active{border-color:#91b5f7;background:#edf4ff}.dispatch-account-list button.danger em{color:#d45d47}.dispatch-account-list strong,.dispatch-account-list small{display:block}.dispatch-account-list strong{font-size:12px}.dispatch-account-list small{margin-top:2px;color:var(--muted);font-size:10px}.dispatch-account-list em{color:#159a62;font-style:normal;font-weight:700}.dispatch-account-detail{display:grid;grid-template-rows:auto 210px minmax(0,1fr);min-width:0}.dispatch-account-summary{min-height:48px;padding:6px 12px;border-bottom:1px solid var(--line)}.dispatch-account-summary>div strong,.dispatch-account-summary>div small{display:block}.dispatch-account-summary>div small{color:var(--muted);font-size:10px}.dispatch-account-summary>span{color:var(--muted);font-size:11px}.dispatch-account-chart{min-width:0;padding:8px 12px 0}.dispatch-account-table{max-height:116px;border-top:1px solid var(--line)}.dispatch-account-table table{font-size:11px}.dispatch-log-panel .table-wrap{max-height:300px}.dispatch-log-panel td strong,.dispatch-log-panel td small{display:block}.dispatch-log-panel td small{margin-top:2px;color:var(--muted);font-size:10px}.modal.dispatch-strategy-edit-modal{width:min(920px,calc(100vw - 40px))}.dispatch-strategy-edit-modal .modal-body{padding:14px 18px}@media (max-width: 1180px){.dispatch-kpi-strip{grid-template-columns:repeat(3,1fr)}.dispatch-event-head{grid-template-columns:repeat(3,minmax(0,1fr))}.dispatch-event-head>div:first-child{grid-column:1 / -1}.dispatch-overview-grid,.dispatch-basis-grid,.dispatch-runtime-grid{grid-template-columns:1fr}.dispatch-side-stack{grid-template-columns:1fr 1fr;grid-template-rows:auto}}@media (max-width: 760px){.dispatch-center-toolbar,.dispatch-title-stack,.dispatch-account-summary{align-items:stretch;flex-direction:column}.dispatch-global-filters{justify-content:flex-start}.dispatch-kpi-strip,.dispatch-basis-summary,.dispatch-event-head{grid-template-columns:1fr 1fr}.dispatch-side-stack,.dispatch-account-layout{grid-template-columns:1fr}.dispatch-account-list{max-height:220px;border-right:0;border-bottom:1px solid var(--line)}.dispatch-calendar-panel{overflow-x:auto}.dispatch-calendar-week,.dispatch-calendar-grid{min-width:720px}}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:var(--bg);color:var(--text)}button,input,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:grid;grid-template-columns:286px minmax(0,1fr);background:linear-gradient(180deg,rgba(47,111,237,.08),transparent 360px),var(--bg)}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:16px;padding:18px 14px;background:#121927;color:#d8e0ec;border-right:1px solid #263247}.brand{display:flex;align-items:center;gap:12px;padding:10px 8px 16px;border-bottom:1px solid #263247}.brand-mark{width:42px;height:42px;display:grid;place-items:center;border-radius:var(--radius);background:#f8fbff;color:#172033;font-weight:800;font-size:21px}.brand strong,.brand span{display:block}.brand span{margin-top:3px;color:#95a3b8;font-size:12px}.sidebar-scroll{flex:1;min-height:0;overflow:auto;padding:0 2px 10px 0}.nav-group{margin-bottom:18px}.nav-group p{margin:0 0 8px;padding:0 10px;color:#8391a7;font-size:12px;font-weight:700}.nav-item,.screen-button{width:100%;min-height:38px;display:flex;align-items:center;gap:10px;padding:9px 10px;border:1px solid transparent;border-radius:var(--radius);background:transparent;color:#cbd5e1;text-align:left}.nav-item:hover,.screen-button:hover{background:#1d283a;color:#fff}.nav-item.active{background:#fff;color:#142033;border-color:#fff}.screen-button{margin-top:auto;background:#1d283a;color:#fff}.workspace{min-width:0;display:flex;flex-direction:column}.topbar{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 24px;background:#ffffffe0;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0;z-index:20}.topbar h1,.topbar p,.section-toolbar h2,.section-toolbar p{margin:0}.topbar h1{margin-top:4px;font-size:22px;line-height:1.2}.eyebrow{color:var(--muted);font-size:12px;font-weight:800}.topbar-status{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.status-pill{min-height:34px;display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2);color:var(--muted);font-size:13px;white-space:nowrap}.status-pill.good{background:#ebf8f3;border-color:#bfe8d8;color:#11784d}.button,.icon-button{min-height:36px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:var(--radius);border:1px solid var(--line);padding:8px 12px;background:var(--surface);color:var(--text);font-weight:700}.button.primary{background:var(--blue);color:#fff;border-color:var(--blue)}.button.secondary{background:#f6f8fb}.button.full{width:100%}.icon-button{width:36px;padding:0}.page{padding:22px 24px 40px}.page-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px}.span-4{grid-column:span 4}.span-5{grid-column:span 5}.span-6{grid-column:span 6}.span-7{grid-column:span 7}.span-8{grid-column:span 8}.span-12{grid-column:span 12}.panel,.hero-panel,.subpage-banner,.metric-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.subpage-banner{min-height:116px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;background:linear-gradient(120deg,#0f9f8f17,#2f6fed12),#fff}.subpage-banner h2,.subpage-banner p{margin:0}.subpage-banner h2{margin-top:6px;font-size:24px}.subpage-banner p:last-child{margin-top:8px;color:var(--muted);line-height:1.55}.hero-panel{grid-column:span 12;min-height:178px;display:flex;justify-content:space-between;gap:24px;padding:28px;background:linear-gradient(120deg,#2f6fed1f,#159a6214),#fff}.hero-panel h2,.product-hero h2{max-width:860px;margin:8px 0 10px;font-size:30px;line-height:1.22}.hero-panel p,.product-hero p{max-width:820px;margin:0;color:var(--muted);line-height:1.7}.hero-actions{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}.hero-actions.compact{align-items:center}.metric-grid{grid-column:span 12;display:grid;grid-template-columns:repeat(6,minmax(132px,1fr));gap:12px}.metric-card{min-height:112px;padding:16px;box-shadow:none}.metric-card span,.metric-card em{display:block;font-style:normal}.metric-card span{color:var(--muted);font-size:13px}.metric-card strong{display:block;margin-top:12px;font-size:25px;line-height:1.05}.metric-card em{margin-top:9px;font-size:13px;font-weight:800}.good-text{color:var(--green)}.warn-text{color:#b66f05}.danger-text{color:var(--red);font-weight:800}.panel{min-width:0;padding:18px}.panel-header,.section-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px}.panel-header>div,.section-toolbar>div:first-child{display:flex;align-items:center;gap:9px}.panel-header h3{margin:0;font-size:17px}.panel-header span{color:var(--muted);font-size:12px;font-weight:800}.section-toolbar{align-items:flex-start}.section-toolbar h2{margin-top:5px;font-size:26px}.city-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.city-tile{min-height:118px;display:flex;flex-direction:column;gap:10px;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2)}.city-tile>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:8px}.city-tile strong,.city-tile span,.city-tile b,.city-tile small{display:block}.city-tile span,.city-tile small{color:var(--muted);font-size:12px}.city-tile b{font-size:24px}.city-meter,.unit-bar,.horizontal-meter,.dispatch-meter{height:8px;overflow:hidden;border-radius:999px;background:#e4e9f1}.city-meter i,.unit-bar i,.horizontal-meter i,.dispatch-meter i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--blue),var(--green))}.product-stack,.resource-list,.health-bars,.process-list,.settlement-rules,.rule-check-list,.alarm-list{display:flex;flex-direction:column;gap:10px}.product-row,.resource-mini,.alarm-list button{width:100%;min-height:66px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;text-align:left}.product-row:hover,.resource-mini:hover,.alarm-list button:hover{border-color:var(--blue)}.product-dot{width:12px;height:36px;border-radius:999px}.product-row strong,.resource-mini strong,.alarm-list strong{display:block}.product-row small,.resource-mini small,.alarm-list small{display:block;margin-top:4px;color:var(--muted);line-height:1.4}.type-chip{display:inline-flex;min-height:26px;align-items:center;justify-content:center;padding:3px 8px;border:1px solid currentColor;border-radius:999px;color:var(--text);background:#fff;font-size:12px;font-weight:800;white-space:nowrap}.status-dot{width:9px;height:9px;border-radius:50%;background:var(--faint)}.status-dot.online{background:var(--green)}.status-dot.alarm{background:var(--red)}.chart-260{height:260px}.chart-340{height:340px}.table-wrap{width:100%;overflow:auto;border:1px solid var(--line);border-radius:var(--radius)}table{width:100%;min-width:880px;border-collapse:collapse;background:#fff}th,td{padding:12px 13px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}th{background:#f4f7fb;color:var(--muted);font-size:12px}td{font-size:14px}td small{display:block;margin-top:4px;color:var(--muted)}tbody tr:hover{background:#f8fbff}.table-badge{display:inline-flex;min-height:26px;align-items:center;padding:3px 8px;border-radius:999px;background:#ebf3ff;color:#245fc8;font-size:12px;font-weight:800}.table-badge.danger{background:#fff0ed;color:var(--red)}.table-badge.warn{background:#fff6df;color:#b66f05}.table-badge.success{background:#e7f7ef;color:#168259}.table-badge.muted{background:#edf1f6;color:#7c8798}.segmented{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.segmented{max-width:720px}.segmented button{min-height:34px;padding:7px 10px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;color:var(--muted);font-weight:800}.segmented button.active{background:var(--text);color:#fff;border-color:var(--text)}.unit-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.unit-card{min-height:142px;display:flex;flex-direction:column;gap:12px;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2)}.unit-card span{font-size:24px;font-weight:800}.unit-card small{color:var(--muted)}.health-row{min-height:58px;display:grid;grid-template-columns:minmax(190px,1fr) 180px 54px;gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2)}.health-bars.roomy .health-row{min-height:70px}.health-row strong,.health-row small{display:block}.health-row small{margin-top:4px;color:var(--muted)}.product-hero{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.timeline-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:18px}.timeline-item{min-height:82px;display:flex;flex-direction:column;gap:9px;padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2)}.timeline-item span{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:var(--text);color:#fff;font-size:12px}.rules-mini,.settlement-form-preview{display:grid;gap:10px}.rule-line{min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2)}.rule-line span{color:var(--muted)}.rule-line strong{text-align:right}.marketized-board{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.marketized-step{min-height:84px;display:flex;flex-direction:column;justify-content:center;gap:8px;padding:10px;border:1px solid #c9d8f8;border-radius:var(--radius);background:#f3f7ff}.marketized-step b{color:var(--blue);font-size:18px}.marketized-step span{color:var(--muted);font-size:12px}.split-rule{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.split-rule>div{min-height:92px;display:flex;flex-direction:column;gap:7px;padding:12px;border-radius:var(--radius);border:1px solid var(--line);background:#fff}.split-rule span{color:var(--muted);font-size:12px;line-height:1.4}.rule-check{min-height:42px;display:flex;align-items:center;gap:9px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2)}.rule-check svg{flex:0 0 auto;color:var(--green)}.certificate{display:flex;flex-direction:column;gap:10px}.cert-top{min-height:110px;display:flex;align-items:center;gap:14px;padding:16px;border-radius:var(--radius);background:#152033;color:#fff}.cert-top span{display:block;margin-top:6px;color:#b9c5d8}.cert-line{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}.cert-line span{color:var(--muted)}.process-list.horizontal{display:grid;grid-template-columns:repeat(6,minmax(0,1fr))}.process-step{min-height:58px;display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2)}.process-step>span{width:28px;height:28px;flex:0 0 auto;display:grid;place-items:center;border-radius:50%;background:var(--blue);color:#fff;font-size:12px;font-weight:800}.process-step strong,.process-step small{display:block}.process-step small{margin-top:4px;color:var(--muted);line-height:1.35}.dispatch-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.dispatch-card{min-height:170px;display:flex;flex-direction:column;gap:12px;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2)}.dispatch-card.danger{border-color:#f1b6ad;background:#fff7f5}.dispatch-head,.dispatch-foot{display:flex;justify-content:space-between;gap:12px}.dispatch-head span,.dispatch-foot span,.dispatch-card small{color:var(--muted)}.dispatch-head b{color:var(--blue)}.dispatch-card.danger .dispatch-head b{color:var(--red)}.dispatch-card strong{min-height:44px}.route-lanes{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.route-node{min-height:118px;display:flex;flex-direction:column;gap:14px;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.route-node span{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#eaf1ff;color:var(--blue);font-weight:800}.alarm-list button{grid-template-columns:auto minmax(0,1fr);color:var(--text)}.alarm-list svg{color:var(--red)}.architecture{display:grid;gap:10px;margin-bottom:16px}.architecture-row{min-height:74px;display:grid;grid-template-columns:160px minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2)}.architecture-row strong{font-size:17px}.architecture-row span{color:var(--text)}.architecture-row em{color:var(--muted);font-style:normal}.stage-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.stage-tabs-panel{padding:8px}.stage-tabs button{min-height:50px;display:flex;align-items:center;gap:7px;padding:7px 9px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;text-align:left;overflow:hidden}.stage-tabs button.active{border-color:var(--blue);background:#f3f7ff;box-shadow:inset 0 0 0 1px var(--blue)}.stage-tabs button>div{min-width:0}.stage-tabs span{width:22px;height:22px;flex:0 0 auto;display:grid;place-items:center;border-radius:50%;background:#e9eef7;color:var(--muted);font-weight:800}.stage-tabs button.active span{background:var(--blue);color:#fff}.stage-tabs strong,.stage-tabs small{display:block;min-width:0}.stage-tabs small{margin-top:2px;overflow:hidden;color:var(--muted);font-size:10.5px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.stage-tabs strong{overflow:hidden;font-size:13px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.marketized-stage{display:flex;flex-direction:column;gap:8px;scroll-margin-top:92px}.marketized-stage{min-height:620px;padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.stage-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px}.stage-toolbar h2,.stage-toolbar p{margin:0}.stage-toolbar h2{margin-top:2px;font-size:20px}.stage-toolbar.compact h2{font-size:20px}.stage-filters{display:flex;gap:6px;flex-wrap:wrap}.stage-filters select{min-height:30px;min-width:112px;border:1px solid var(--line);border-radius:var(--radius);padding:4px 8px;background:#fff}.stage-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.stage-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(154px,1fr));gap:6px}.quantity-decision-stage{gap:8px}.marketized-event-list{display:grid;gap:12px}.event-list-head,.marketized-event-detail-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.event-list-head h2,.marketized-event-detail-head h2{margin:0;font-size:18px}.event-list-filters{display:grid;grid-template-columns:minmax(180px,1fr) minmax(260px,1.2fr) 140px minmax(260px,1.2fr) 140px auto;align-items:center;gap:8px;padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:#f8fbff}.event-list-filters label{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:7px;color:#59687b;font-size:12px;font-weight:900;min-width:0}.event-date-range{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:5px;min-width:0}.event-date-range em{color:var(--muted);font-style:normal;font-size:12px;font-weight:900}.event-filter-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:6px;white-space:nowrap}.event-list-filters input,.event-list-filters select,.event-form-grid input,.event-form-grid select{width:100%;min-width:0;height:32px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--text);font-size:12px;padding:0 9px}.event-list-table{border:1px solid var(--line);border-radius:var(--radius)}.event-list-table th,.event-list-table td{white-space:nowrap}.table-actions.compact{gap:5px}.event-list-footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;color:var(--muted);font-size:12px}.event-list-footer b{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:5px;background:var(--blue);color:#fff}.marketized-event-detail-head{justify-content:flex-start}.marketized-event-detail-head>div:nth-child(2){min-width:220px}.marketized-event-form-modal{width:min(640px,calc(100vw - 40px))}.event-form-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.event-form-grid label{display:grid;gap:5px;color:#59687b;font-size:12px;font-weight:800}.event-form-grid .span-2{grid-column:span 1}.event-radio-row>span{display:inline-flex;align-items:center;gap:18px;min-height:30px}.event-radio-row>span label{display:inline-flex;align-items:center;gap:5px;color:var(--text);font-weight:800}.event-radio-row input[type=radio]{width:14px;height:14px}.event-interval-editor{display:grid;gap:7px}.event-interval-editor>strong{color:#59687b;font-size:12px}.event-interval-editor .table-wrap{max-height:210px;border:1px solid var(--line);border-radius:6px}.event-interval-editor table{width:100%;border-collapse:collapse}.event-interval-editor th,.event-interval-editor td{padding:6px 8px;border-bottom:1px solid var(--line);font-size:12px;white-space:nowrap}.event-interval-editor th{background:#f8fafc;color:#59687b;font-weight:900}.event-interval-editor input{height:28px}.event-form-grid .unit-input{display:grid;grid-template-columns:minmax(0,1fr) auto}.event-form-grid .unit-input input{border-radius:6px 0 0 6px}.event-form-grid .unit-input em{display:inline-flex;align-items:center;height:32px;padding:0 9px;border:1px solid var(--line);border-left:0;border-radius:0 6px 6px 0;background:#f8fafc;color:var(--muted);font-style:normal;font-weight:900}.confirm-delete-modal{width:min(460px,calc(100vw - 40px))}.button.primary.danger{background:#d45d47;border-color:#d45d47;color:#fff}.quantity-phase-switch{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:6px;width:100%}.quantity-phase-switch button{display:grid;gap:2px;min-height:52px;padding:7px 10px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;color:var(--text);text-align:left}.quantity-phase-switch button.active{border-color:var(--blue);background:#edf4ff;box-shadow:inset 0 0 0 1px #2f6fed47}.quantity-phase-switch button.completed{border-color:#bfe9d2}.quantity-phase-switch button.locked{background:#f8fafc;color:var(--muted)}.quantity-phase-switch button.current-workflow:not(.active){box-shadow:inset 0 0 0 1px #2f6fed24}.quantity-phase-switch span{color:var(--muted);font-size:11px;font-weight:900}.quantity-phase-switch strong{font-size:13px}.quantity-phase-switch b{color:var(--blue);font-size:16px}.quantity-phase-value{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.quantity-phase-value em{color:var(--muted);font-size:11px;font-style:normal;font-weight:900;white-space:nowrap}.quantity-phase-status{justify-self:start;display:inline-flex;align-items:center;min-height:18px;padding:1px 7px;border-radius:999px;background:#eef3fa;color:var(--muted);font-size:11px;font-style:normal;font-weight:900}.quantity-phase-status.completed{background:#e7f8ef;color:#11784d}.quantity-phase-status.locked{background:#edf1f6;color:#8a96a8}.quantity-phase-editor{display:grid;gap:6px;padding:8px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:0 1px 2px #1118270a}.quantity-phase-action-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;padding:2px 0 6px;border-bottom:1px solid var(--line)}.quantity-phase-action-bar strong{color:var(--text);font-size:13px;font-weight:900;white-space:nowrap}.quantity-phase-action-bar>div{display:inline-flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:6px}.quantity-edit-table{max-height:224px;border:1px solid var(--line);border-radius:var(--radius)}.quantity-table-toolbar{display:flex;justify-content:flex-end;gap:6px;margin:-2px 0 8px}.quantity-edit-table table{min-width:760px}.quantity-edit-table th,.quantity-edit-table td{padding:6px 8px;font-size:12px;vertical-align:middle;white-space:nowrap}.quantity-edit-table tr.selected td{background:#f3f7ff}.quantity-edit-table select.table-input{display:block;width:112px;min-width:112px;min-height:30px;margin-inline:auto;padding:4px 6px}.quantity-edit-table input.table-input{display:block;width:78px;min-height:30px;margin-inline:auto;padding:4px 6px}.quantity-edit-table .text-button:disabled{color:var(--muted);cursor:not-allowed;opacity:.55}.compact-mode-switch{grid-template-columns:repeat(3,minmax(118px,1fr)) auto auto;align-items:stretch}.compact-allocation-switch{justify-content:flex-start;gap:6px}.quantity-filter-list{display:inline-flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:5px}.quantity-filter-list button{min-height:28px;padding:4px 8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2);color:var(--muted);font-size:11px;font-weight:900}.quantity-filter-list button.active{border-color:var(--blue);background:#eef5ff;color:var(--blue)}.pre-demand-operating-board.unified-operating-board{grid-template-columns:minmax(0,1fr)}.matrix-toolbar-inline{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:6px;min-width:0}.matrix-view-switch{display:inline-flex;padding:2px;border:1px solid var(--line);border-radius:var(--radius);background:#f8fafc}.matrix-view-switch button{min-height:24px;padding:3px 8px;border:0;border-radius:5px;background:transparent;color:var(--muted);font-size:11px;font-weight:900}.matrix-view-switch button.active{background:#fff;color:var(--blue);box-shadow:0 1px 4px #1118271f}.matrix-edit-actions{display:inline-flex;align-items:center;gap:6px}.matrix-edit-actions span{color:var(--muted);font-size:11px;font-weight:900;white-space:nowrap}.matrix-user-filter-bar{display:grid;grid-template-columns:minmax(200px,260px) repeat(4,minmax(120px,136px)) auto auto minmax(42px,1fr);gap:6px;align-items:center;padding:8px 10px;border-bottom:1px solid var(--line);background:#fbfcfe}.matrix-user-filter-bar input,.matrix-user-filter-bar select{min-height:30px;width:100%;border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:5px 8px;color:var(--text);font-size:12px}.matrix-user-filter-bar span{justify-self:end;color:var(--muted);font-size:12px;font-weight:900;white-space:nowrap}.unified-quantity-matrix th.disabled,.unified-cell.disabled{background:#f5f7fa;color:#98a3b3}.unified-cell{min-height:108px}.interval-head-main{display:flex;align-items:center;justify-content:space-between;gap:6px}.interval-head-main span{display:inline-flex;min-height:18px;align-items:center;padding:1px 5px;border-radius:999px;background:#e8eef8;color:var(--muted);font-size:10px;font-weight:900}.unified-quantity-matrix th.disabled .interval-head-main span{background:#eef0f3;color:#9aa4b2}.demand-slot-card.muted{background:#f7f8fa;color:#8a94a4}.quantity-overview-table{max-height:286px;border:1px solid var(--line);border-radius:var(--radius)}.quantity-overview-table table{min-width:1120px}.quantity-overview-table th,.quantity-overview-table td{padding:8px 9px;font-size:12px;white-space:nowrap}.quantity-overview-table thead th{position:sticky;top:0;z-index:1;background:#f7f9fc}.quantity-overview-table tr.selected td{background:#f3f7ff}.quantity-stage-body>.marketized-stage{min-height:auto;padding:0;border:0;box-shadow:none;background:transparent}.quantity-stage-body .stage-toolbar{padding-top:2px}.fill-recommendation-panel{margin:10px 0;padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.fill-recommendation-head,.fill-recommendation-body,.fill-slot-top{display:flex;justify-content:space-between;gap:12px}.fill-recommendation-head{align-items:flex-start;margin-bottom:10px}.fill-recommendation-head h3{margin:0;color:var(--text);font-size:15px}.fill-recommendation-head span,.fill-recommendation-totals span{color:var(--muted);font-size:12px}.fill-recommendation-totals{min-width:210px;text-align:right}.fill-recommendation-totals b,.fill-slot-main{display:block;color:var(--text)}.fill-recommendation-body{align-items:stretch;min-width:0}.fill-slot-strip{min-width:0;flex:1;display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}.fill-slot-card{width:164px;min-width:164px;min-height:138px;padding:9px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2);text-align:left}.fill-slot-card.active{border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}.fill-slot-card.safe{background:#f4fbf8}.fill-slot-card.warn{background:#fffaf0}.fill-slot-card.danger{background:#fff7f5}.fill-slot-top{align-items:center}.fill-slot-top span{padding:2px 6px;border-radius:999px;background:#e8eef7;color:var(--muted);font-size:11px;font-weight:800}.fill-slot-main{margin-top:7px;font-size:16px}.fill-slot-bars{position:relative;height:8px;margin:8px 0;border-radius:999px;background:#e7edf5;overflow:hidden}.fill-slot-bars span{position:absolute;inset-block:0;left:0;border-radius:999px}.fill-slot-bars .suggested{background:#2f6fed52}.fill-slot-bars .firm{z-index:1;background:var(--green)}.fill-slot-card dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 8px;margin:0}.fill-slot-card dt,.fill-slot-card dd{margin:0;font-size:11px}.fill-slot-card dt{color:var(--muted)}.fill-slot-card dd{color:var(--text);font-weight:800;text-align:right}.fill-summary-card{width:280px;min-width:280px;padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:#f8fbff}.fill-summary-card>span{color:var(--muted);font-size:12px;font-weight:800}.fill-summary-card>strong{display:block;margin-top:4px;font-size:20px}.fill-summary-card p{margin:7px 0 9px;color:var(--muted);font-size:12px;line-height:1.4}.fill-summary-grid{display:grid;gap:6px}.decision-chart-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0}.decision-chart-card{min-width:0;padding:9px 10px 8px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.decision-chart-head{min-height:24px;display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:5px}.decision-chart-head h3{margin:0;color:var(--text);font-size:13px;line-height:1.2}.decision-chart-head span{color:var(--muted);font-size:11px;white-space:nowrap}.decision-chart{height:190px;min-width:0}.pre-demand-operating-board{display:grid;grid-template-columns:228px minmax(0,1fr);gap:10px;align-items:start;min-width:0}.demand-slot-panel,.pre-demand-matrix-panel{min-width:0;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.demand-slot-panel{max-height:704px;overflow:auto}.demand-slot-header{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px;border-bottom:1px solid var(--line);background:#fff}.demand-slot-header strong,.demand-slot-header small{display:block}.demand-slot-header small{margin-top:2px;color:var(--muted);font-size:11px}.demand-slot-header button{min-height:28px;padding:4px 8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2);color:var(--text);font-weight:800;white-space:nowrap}.demand-slot-header button.active{border-color:var(--blue);background:#eef5ff;color:var(--blue)}.demand-slot-list{display:grid;gap:8px;padding:10px}.demand-slot-card{width:100%;display:grid;gap:8px;min-height:96px;padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;text-align:left}.demand-slot-card.active{border-color:var(--blue);background:#f3f7ff;box-shadow:inset 0 0 0 1px var(--blue)}.demand-slot-card>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:8px}.demand-slot-card strong{font-size:13px}.demand-slot-card span{display:inline-flex;align-items:center;min-height:22px;padding:2px 7px;border-radius:999px;background:#eef3fa;color:var(--muted);font-size:11px;font-weight:900}.demand-slot-card.success span{background:#e8f8ef;color:#11784d}.demand-slot-card.danger span{background:#fff0ee;color:var(--red)}.demand-slot-card dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0}.demand-slot-card dt,.demand-slot-card dd{margin:0}.demand-slot-card dt{color:var(--muted);font-size:11px}.demand-slot-card dd{margin-top:2px;font-size:12px;font-weight:900;white-space:nowrap}.slot-progress,.cell-progress{height:5px;overflow:hidden;border-radius:999px;background:#e9edf4}.slot-progress span,.cell-progress span{display:block;height:100%;border-radius:inherit;background:var(--blue)}.demand-slot-card.success .slot-progress span{background:var(--green)}.demand-slot-card.danger .slot-progress span{background:var(--red)}.pre-demand-matrix-panel{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;overflow:hidden}.matrix-ops-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:10px;border-bottom:1px solid var(--line);background:#fff}.matrix-filter-grid{min-width:0;display:grid;grid-template-columns:minmax(220px,1.4fr) minmax(138px,.6fr) minmax(120px,.5fr);gap:8px}.matrix-filter-field{display:grid;gap:4px;color:var(--muted);font-size:11px;font-weight:900}.matrix-filter-field input,.matrix-filter-field select{width:100%;min-height:32px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:5px 8px;color:var(--text);font-size:12px}.matrix-action-row{display:flex;align-items:end;justify-content:flex-end;gap:6px;flex-wrap:wrap}.button.danger{border-color:#ffd0cb;background:#fff5f3;color:var(--red)}.matrix-title-bar,.matrix-bottom-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 10px}.matrix-title-bar{border-bottom:1px solid var(--line);background:#fff}.matrix-title-bar h3{margin:0;font-size:15px}.matrix-title-main{display:inline-flex;align-items:center;gap:8px;min-width:0}.matrix-title-main span{display:inline-flex;align-items:center;min-height:22px;padding:2px 8px;border:1px solid #cfe0ff;border-radius:999px;background:#f3f7ff;color:var(--blue);font-size:12px;font-weight:900;white-space:nowrap}.matrix-title-bar small{display:block;margin-top:3px;color:var(--muted);font-size:12px}.matrix-legend{display:inline-flex;align-items:center;gap:10px;color:var(--muted);font-size:12px;font-weight:800;white-space:nowrap}.matrix-legend span{display:inline-flex;align-items:center;gap:5px}.legend-dot{width:8px;height:8px;border-radius:999px;background:var(--line)}.legend-dot.join{background:var(--green)}.legend-dot.coordinate{background:var(--amber)}.legend-dot.exclude{background:#98a3b3}.matrix-bottom-bar{position:sticky;bottom:0;z-index:7;border-top:1px solid var(--line);background:#fffffff5;box-shadow:0 -8px 24px #212d4214}.matrix-bottom-bar>div{min-width:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.matrix-bottom-bar small{color:var(--muted);font-size:12px}.bottom-alert{display:inline-flex;min-height:26px;align-items:center;padding:3px 9px;border-radius:999px;background:#e8f8ef;color:#11784d;font-size:12px;font-weight:900}.bottom-alert.danger{background:#fff4df;color:#b66f05}.matrix-controls{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.time-ruler{min-width:0;flex:1;display:flex;gap:5px;overflow-x:auto;padding-bottom:2px}.time-ruler button{width:102px;min-width:102px;min-height:46px;display:grid;grid-template-columns:1fr 1fr;gap:2px 6px;align-content:center;padding:5px 7px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;text-align:left}.time-ruler button.active{border-color:var(--blue);background:#f3f7ff;box-shadow:inset 0 0 0 1px var(--blue)}.time-ruler strong{grid-column:1 / -1;font-size:12px}.time-ruler span,.time-ruler em{color:var(--muted);font-size:11px;font-style:normal;white-space:nowrap}.time-ruler em{color:var(--red);font-weight:800}.matrix-filter{flex:0 0 auto;display:inline-flex;gap:2px;padding:2px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2)}.matrix-filter button{min-height:28px;padding:4px 8px;border:0;border-radius:6px;background:transparent;color:var(--muted);font-weight:800}.matrix-filter button.active{background:#fff;color:var(--blue)}.metric-inline{min-height:50px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2)}.metric-inline span,.metric-inline strong{display:block}.metric-inline span{color:var(--muted);font-size:12px}.metric-inline strong{margin-top:4px;font-size:18px}.metric-inline.warn strong{color:#b66f05}.metric-inline.danger strong{color:var(--red)}.decision-split{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:12px}.decision-split section{min-height:170px;padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2)}.notify-list,.strategy-tips{display:grid;gap:9px}.notify-item{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;padding:9px 0;border-bottom:1px solid var(--line)}.notify-item:last-child{border-bottom:0}.notify-item strong,.notify-item small{display:block}.notify-item small{margin-top:4px;color:var(--muted);line-height:1.4}.empty-state{min-height:92px;display:grid;place-items:center;border:1px dashed var(--line);border-radius:var(--radius);color:var(--muted)}.button.small{min-height:32px;padding:6px 9px;font-size:12px}.text-button{border:0;background:transparent;color:var(--blue);font-weight:800;white-space:nowrap;padding:0;font-size:11px}.view-switch{display:inline-flex;width:fit-content;padding:2px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2)}.view-switch button{min-height:28px;display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border:0;border-radius:6px;background:transparent;color:var(--muted);font-weight:800}.view-switch button.active{background:#fff;color:var(--blue);box-shadow:0 4px 12px #2f6fed24}.matrix-wrap{max-width:100%;max-height:560px;overflow:auto;border:0;border-radius:0}.pre-demand-matrix{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0}.matrix-col-customer{width:220px}.matrix-col-summary{width:124px}.matrix-col-interval{width:142px}.pre-demand-matrix th,.pre-demand-matrix td{padding:5px 6px;border-right:1px solid #edf1f6;border-bottom:1px solid #edf1f6}.pre-demand-matrix .rule-line,.pre-demand-summary .rule-line{min-height:24px;gap:6px;padding:3px 6px;border-radius:5px;font-size:11px}.pre-demand-matrix .rule-line strong,.pre-demand-summary .rule-line strong{font-size:12px}.pre-demand-matrix th{position:sticky;top:0;z-index:4;background:#f8fafc;vertical-align:top;line-height:1.25}.pre-demand-matrix th strong,.pre-demand-matrix th small,.matrix-customer strong,.matrix-customer small,.matrix-customer em{display:block}.matrix-customer strong,.matrix-customer small,.matrix-customer em{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pre-demand-matrix th small,.matrix-customer small,.matrix-customer em{margin-top:2px;color:var(--muted);font-size:11px;font-style:normal}.sticky-col{position:sticky;left:0;z-index:5;background:#fff;width:220px;min-width:220px;max-width:220px}thead .sticky-col{z-index:8;background:#f6f8fb}.matrix-cell{vertical-align:top;min-height:108px;border-left:3px solid transparent}.summary-col{width:124px;min-width:124px;max-width:124px}.pre-demand-matrix th.selected,.matrix-cell.selected{box-shadow:inset 0 0 0 2px #2f6fed61}.pre-demand-matrix th.selected{background:#edf4ff}.matrix-cell.join{border-left-color:var(--green);background:#f4fbf8}.matrix-cell.coordinate{border-left-color:var(--amber);background:#fffaf0}.matrix-cell.exclude{border-left-color:#a7b0bd;background:#f8fafc}.matrix-cell.invalid{border-left-color:var(--red);background:#fff7f5}.clickable-cell,.clickable-row,.pre-demand-matrix th{cursor:pointer}.clickable-cell:hover,.clickable-row:hover{background-image:linear-gradient(0deg,#2f6fed0d,#2f6fed0d)}.cell-top,.cell-state-row,.cell-number,.cell-revenue,.summary-card>div,.summary-pills{display:flex;align-items:center;justify-content:space-between;gap:8px}.cell-top select,.cell-state-row select,.table-select{min-height:22px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:2px 5px;font-size:11px}.cell-state-row select:disabled,.compact-decision-row select:disabled,.cell-quantity-line input:disabled,.compact-quantity-row input:disabled{cursor:default;background:#f8fafc;color:var(--muted);opacity:1}.cell-top span,.cell-state-row span{color:var(--muted);font-size:11px;white-space:nowrap}.cell-state-row{min-height:24px;margin-bottom:4px}.cell-quantity-line{min-height:24px;display:grid;grid-template-columns:52px minmax(0,1fr);align-items:center;gap:5px;padding:3px 5px;border-radius:5px;background:#ffffffb8;color:var(--muted);font-size:11px;font-weight:800}.cell-quantity-line+.cell-quantity-line{margin-top:3px}.cell-quantity-line b{min-width:0;overflow:hidden;color:var(--text);font-size:12px;text-align:right;text-overflow:ellipsis;white-space:nowrap}.cell-quantity-line.editable{background:#fff;box-shadow:inset 0 0 0 1px #d8e4f4}.cell-quantity-line.strong{box-shadow:inset 0 0 0 1px #b8cdf6}.unit-input{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:3px;min-width:0;width:100%}.unit-input input{width:100%;min-width:0;min-height:20px;border:1px solid #d4e0ee;border-radius:4px;padding:1px 4px;color:var(--text);font-size:11px;font-weight:900;text-align:right}.unit-input em{color:var(--muted);font-size:10px;font-style:normal;font-weight:900}.table-unit-input input.table-input{min-width:74px}.cell-number{margin-top:3px}.cell-number b{font-size:14px;letter-spacing:0}.cell-number small,.cell-revenue,.muted-text{color:var(--muted)}.matrix-cell label{display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:4px;margin-top:5px;color:var(--muted);font-size:11px;font-weight:800}.matrix-cell input{width:100%;min-height:21px;border:1px solid var(--line);border-radius:5px;padding:1px 5px;font-size:11px}.cell-revenue{margin-top:2px;font-size:11px}.cell-progress{margin-top:5px;height:4px}.matrix-cell.join .cell-progress span{background:var(--green)}.matrix-cell.coordinate .cell-progress span{background:var(--amber)}.matrix-cell.exclude .cell-progress span{background:#a7b0bd}.matrix-customer-main{min-width:0}.matrix-customer-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px}.matrix-customer-tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:8px}.matrix-customer-tags span{display:inline-flex;align-items:center;min-height:22px;padding:2px 6px;border-radius:999px;background:#eef3fa;color:var(--muted);font-size:11px;font-weight:900}.matrix-customer-total{display:grid;grid-template-columns:1fr;gap:5px;min-width:82px;padding-left:8px;border-left:1px solid var(--line);text-align:right}.matrix-customer-total b,.matrix-customer-total small{display:block;white-space:nowrap}.matrix-customer-total b{font-size:12px}.participation-pill{display:inline-flex;justify-content:center;min-height:20px;align-items:center;padding:2px 7px;border-radius:999px;background:#eef3fa;color:var(--muted);font-size:11px;font-weight:900;white-space:nowrap}.participation-pill.join{background:#e7f8ef;color:#11784d}.participation-pill.coordinate{background:#fff4d8;color:#9a6400}.compact-view .matrix-col-interval{width:128px}.compact-view .matrix-cell,.compact-quantity-cell{min-height:96px}.compact-quantity-cell{padding:4px}.compact-decision-row{min-height:22px;margin-bottom:2px}.compact-decision-row select{width:100%;min-height:20px;border:1px solid var(--line);border-radius:4px;background:#fff;padding:1px 4px;color:var(--text);font-size:10px;font-weight:900}.compact-quantity-row{display:grid;grid-template-columns:30px minmax(0,1fr);gap:4px;align-items:center;min-height:22px;padding:2px 4px;border-radius:4px;color:var(--muted);font-size:10px;font-weight:900}.compact-quantity-row+.compact-quantity-row{margin-top:2px}.compact-quantity-row b{min-width:0;overflow:hidden;color:var(--text);font-size:11px;text-align:right;text-overflow:ellipsis;white-space:nowrap}.compact-quantity-row.editable{background:#fff;box-shadow:inset 0 0 0 1px #d8e4f4}.compact-quantity-row input{width:100%;min-height:18px;border:1px solid #d4e0ee;border-radius:4px;padding:0 4px;font-size:11px;text-align:right}.detail-table-wrap{max-height:560px}.quantity-detail-table{width:100%;min-width:1180px;border-collapse:separate;border-spacing:0;background:#fff;font-size:12px}.quantity-detail-table th,.quantity-detail-table td{border-bottom:1px solid var(--line);padding:8px 9px;text-align:left;vertical-align:middle}.quantity-detail-table th{position:sticky;top:0;z-index:2;background:#f5f8fc;color:#405064;font-size:11px;font-weight:900;white-space:nowrap}.quantity-detail-table tbody tr{cursor:pointer}.quantity-detail-table tbody tr:hover td,.quantity-detail-table tr.selected-row td{background:#f3f7ff}.quantity-detail-table tr.disabled-row td{color:var(--muted);background:#f9fbfd}.quantity-detail-table tr.invalid-row td{background:#fff7f5}.quantity-detail-table strong,.quantity-detail-table small{display:block;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quantity-detail-table small,.table-muted{color:var(--muted);font-size:11px}.quantity-detail-control input,.quantity-detail-control select{width:100%;min-width:86px;min-height:28px;border:1px solid #d4e0ee;border-radius:6px;background:#fff;color:var(--text);padding:4px 7px;font-size:12px}.quantity-detail-control input{text-align:right}.quantity-batch-modal{width:min(560px,calc(100vw - 48px))}.quantity-batch-body{display:grid;gap:12px}.quantity-batch-body label{display:grid;gap:5px;color:#475569;font-size:12px;font-weight:900}.quantity-batch-body select,.quantity-batch-body input{min-height:32px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;color:var(--text);padding:5px 8px;font-size:13px}.formal-sync-modal{width:min(680px,calc(100vw - 48px))}.quantity-import-modal{width:min(520px,calc(100vw - 48px))}.quantity-import-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.import-choice-card{min-height:92px;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;color:var(--text);font-size:15px;font-weight:900}.import-choice-card.primary{border-color:var(--blue);background:#eef5ff;color:var(--blue)}.formal-sync-body{display:grid;gap:12px}.formal-sync-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.formal-sync-summary span{display:grid;gap:4px;padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:#fbfcfe}.formal-sync-summary b{color:var(--text);font-size:20px}.formal-sync-summary small{color:var(--muted);font-size:12px;font-weight:900}.formal-sync-lists{display:grid;gap:8px}.formal-sync-lists>div{display:grid;grid-template-columns:86px 1fr;align-items:start;gap:8px;padding:8px 0;border-top:1px solid var(--line)}.formal-sync-lists strong{color:var(--text);font-size:12px}.formal-sync-lists div div{display:flex;flex-wrap:wrap;gap:6px}.formal-sync-lists span,.formal-sync-lists em{display:inline-flex;min-height:22px;align-items:center;border-radius:999px;background:#eef4ff;color:#245fc8;padding:2px 8px;font-size:12px;font-style:normal;font-weight:800}.formal-sync-lists em{background:#f3f5f8;color:var(--muted)}.batch-preview-line{padding:9px 10px;border:1px solid #dbe7f6;border-radius:var(--radius);background:#f7fbff;color:#43556b;font-size:12px;font-weight:800}.matrix-empty-cell{padding:22px!important;color:var(--muted);text-align:center;font-weight:900}.interval-head-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;margin-top:4px}.interval-head-metrics small{min-width:0;padding:2px 3px;border-radius:4px;background:#eef3fa;text-align:center;font-size:10px;line-height:1.2;white-space:nowrap}.interval-head-metrics small.warn{background:#fff1f0;color:var(--red)}.interval-head-metrics small.over{background:#fff7e6;color:#b66f05}.interval-progress{height:5px;margin-top:5px;overflow:hidden;border-radius:999px;background:#e8edf5}.interval-progress span{display:block;height:100%;border-radius:inherit;background:var(--blue)}.interval-progress.ok span{background:var(--green)}.interval-progress.over span{background:var(--amber)}.interval-progress.abnormal span{background:#8b5cf6}.interval-progress.gap span{background:var(--red)}.customer-day-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:12px}.customer-day-list,.customer-day-detail,.pre-demand-summary{padding:8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2)}.customer-day-buttons{display:grid;gap:8px}.customer-day-buttons button{min-height:78px;display:grid;gap:4px;padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;text-align:left}.customer-day-buttons button.active{border-color:var(--blue);background:#f3f7ff;box-shadow:inset 0 0 0 1px var(--blue)}.customer-day-buttons small,.customer-day-buttons span{color:var(--muted)}.summary-pills{flex-wrap:wrap;justify-content:flex-end}.summary-pills span{display:inline-flex;min-height:24px;align-items:center;padding:2px 7px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);font-size:12px;font-weight:800}.summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.summary-card{min-height:0;display:grid;gap:4px;padding:8px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.summary-card>div span{color:var(--red);font-size:11px;font-weight:800}.decision-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:14px}.decision-source{display:grid;grid-template-columns:1fr 1fr;gap:10px}.recommendation-card{min-height:210px;display:flex;flex-direction:column;justify-content:center;gap:10px;padding:18px;border:1px solid #c9d8f8;border-radius:var(--radius);background:#f3f7ff}.recommendation-card span,.recommendation-card small{color:var(--muted)}.recommendation-card strong{font-size:40px;line-height:1}.recommendation-card em{color:var(--blue);font-style:normal;font-weight:800}.mode-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.mode-cards button{min-height:82px;display:flex;flex-direction:column;gap:7px;padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;text-align:left}.mode-cards button.active{border-color:var(--blue);background:#f3f7ff;box-shadow:inset 0 0 0 1px var(--blue)}.mode-cards span{color:var(--muted);line-height:1.35}.formal-bid-editor{display:grid;grid-template-columns:minmax(0,1fr) 150px 150px;gap:10px;align-items:end;padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.formal-bid-editor span,.formal-bid-editor strong,.formal-bid-editor small,.formal-bid-editor label{display:block}.formal-bid-editor span,.formal-bid-editor small,.formal-bid-editor label{color:var(--muted);font-size:12px;font-weight:800}.formal-bid-editor strong{margin-top:2px;font-size:18px}.formal-bid-editor input{width:100%;min-height:34px;margin-top:5px;border:1px solid var(--line);border-radius:var(--radius);padding:6px 8px;color:var(--text)}.bid-mode-switch{display:grid;gap:8px}.bid-mode-switch button{min-height:48px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;color:var(--text);text-align:left}.bid-mode-switch button.active{border-color:var(--blue);background:#eef5ff}.bid-mode-switch button strong,.bid-mode-switch button span{display:block}.bid-mode-switch button span{margin-top:2px;color:var(--muted);font-size:11px}.formal-board .demand-slot-card span{background:#eef3ff;color:var(--blue)}.formal-col-interval{width:162px}.formal-cell .rule-line{min-height:22px;margin-top:4px;padding:2px 0;border:0;background:transparent}.formal-reason{display:block;min-height:30px;margin-top:5px;color:var(--muted);line-height:1.35;white-space:normal}.table-input{width:96px;min-height:34px;border:1px solid var(--line);border-radius:var(--radius);padding:6px 8px}.notice-box.danger{border-color:#f1b6ad;background:#fff7f5;color:#9b2f21}.allocation-mode-switch{display:inline-flex;width:fit-content;gap:3px;padding:3px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2)}.allocation-mode-switch button{min-height:30px;border:0;border-radius:6px;background:transparent;padding:5px 10px;color:var(--muted);font-weight:900}.allocation-mode-switch button.active{background:#fff;color:var(--blue);box-shadow:0 4px 12px #2f6fed1f}.allocation-compare-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.allocation-compare-grid section{min-width:0;padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2)}.allocation-table{max-height:420px;margin-top:8px}.allocation-table table{min-width:760px}.allocation-table th,.allocation-table td{padding:8px 9px;font-size:12px}.strategy-page-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.strategy-page-toolbar h2,.strategy-config-head h3,.instruction-drawer-head h3{margin:0}.strategy-page-toolbar h2{font-size:18px}.strategy-event-line{display:flex;flex-wrap:wrap;gap:12px;margin-top:5px;color:var(--muted);font-size:12px}.strategy-event-line span+span:before{content:"";display:inline-block;width:1px;height:10px;margin-right:12px;background:var(--line)}.strategy-workspace{display:grid;grid-template-columns:268px minmax(0,1fr);gap:10px;min-width:0}.strategy-tree-panel,.strategy-config-panel,.strategy-instruction-panel{min-width:0;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.strategy-tree-panel{height:676px;overflow:hidden}.strategy-tree-head,.section-compact-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.strategy-tree-head{min-height:45px;padding:0 12px;border-bottom:1px solid var(--line)}.strategy-tree-head span,.section-compact-head span,.section-compact-head small{color:var(--muted);font-size:11px}.section-compact-head>div strong,.section-compact-head>div small{display:block}.section-compact-head>div small{margin-top:3px}.strategy-tree-list{height:calc(100% - 45px);overflow:auto;padding:7px}.strategy-tree-account{margin-bottom:4px;border-radius:6px}.strategy-tree-account.selected{background:#f5f8fd}.strategy-account-row{width:100%;min-height:54px;display:grid;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:7px;border:0;border-radius:6px;background:transparent;color:var(--text);padding:7px 8px;text-align:left}.strategy-account-row:hover,.strategy-tree-account.selected>.strategy-account-row{background:#edf4ff}.tree-expander{display:grid;place-items:center;color:var(--muted)}.tree-account-copy strong,.tree-account-copy small,.strategy-station-children strong,.strategy-station-children small,.instruction-table td small,.smart-station-readiness strong,.smart-station-readiness small,.manual-station-head strong,.manual-station-head small,.device-power-list strong,.device-power-list small{display:block}.tree-account-copy strong{font-size:12px}.tree-account-copy small,.strategy-station-children small,.instruction-table td small,.smart-station-readiness small,.manual-station-head small,.device-power-list small{margin-top:2px;color:var(--muted);font-size:10px}.strategy-account-row b{color:var(--blue);font-size:11px}.strategy-station-children{display:grid;gap:2px;margin:0 7px 6px 25px;padding-left:8px;border-left:1px solid #cfd8e6}.strategy-station-children button{display:grid;grid-template-columns:25px minmax(0,1fr);align-items:center;gap:7px;min-height:46px;border:0;border-radius:5px;background:transparent;padding:5px 7px;color:var(--text);text-align:left}.strategy-station-children button:hover,.strategy-station-children button.active{background:#fff;box-shadow:inset 0 0 0 1px #9bbcf5}.station-type-icon{width:25px;height:25px;display:inline-grid;place-items:center;flex:0 0 auto;border-radius:5px;background:#eaf2ff;color:var(--blue)}.strategy-config-panel{min-height:676px;padding:12px;overflow:hidden}.strategy-config-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid var(--line)}.strategy-account-kicker{color:var(--muted);font-size:10px;font-weight:900}.strategy-config-head h3{margin-top:2px;font-size:17px}.strategy-config-meta{display:flex;gap:12px;margin-top:5px;color:var(--muted);font-size:11px}.strategy-config-meta span+span:before{content:"";display:inline-block;width:1px;height:10px;margin-right:12px;background:var(--line)}.strategy-mode-switch{display:grid;grid-template-columns:repeat(2,minmax(112px,1fr));overflow:hidden;border:1px solid var(--line);border-radius:6px;background:var(--surface-2)}.strategy-mode-switch button{min-height:34px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;background:transparent;color:var(--muted);font-weight:900}.strategy-mode-switch button.active{background:var(--blue);color:#fff}.strategy-mode-switch button:disabled{opacity:.38;cursor:not-allowed}.strategy-mode-notice{display:flex;align-items:center;gap:7px;margin-top:9px;padding:7px 9px;border:1px solid #f1d08b;border-radius:5px;background:#fff9eb;color:#9a6815;font-size:11px}.smart-strategy-panel{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,.75fr);gap:10px;margin-top:10px}.strategy-inline-error{grid-column:1 / -1;display:flex;align-items:center;gap:7px;padding:8px 10px;border:1px solid #efb7af;border-radius:5px;background:#fff2ef;color:#b4382c;font-size:11px;font-weight:800}.smart-target-chart,.smart-station-readiness,.storage-target-table,.storage-baseline-chart,.station-period-table,.device-power-panel{min-width:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2);padding:10px}.strategy-chart-canvas{height:292px;margin-top:8px;background:#fff}.smart-station-readiness{align-content:start}.smart-station-readiness>div:not(.section-compact-head){display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:7px;min-height:54px;padding:7px 0;border-bottom:1px solid var(--line)}.smart-station-readiness b{display:inline-flex;align-items:center;gap:3px;color:var(--green);font-size:11px}.smart-station-readiness>div.unavailable{opacity:.72}.smart-station-readiness>div.unavailable b{color:#c44c3d}.manual-strategy-panel{margin-top:10px}.manual-station-head{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;margin-bottom:8px}.manual-station-head>div{display:flex;align-items:center;gap:8px}.strategy-validation-state{display:inline-flex;align-items:center;gap:5px;min-height:28px;padding:4px 8px;border-radius:5px;font-size:11px;font-weight:900}.strategy-validation-state.ok{background:#e9f8f1;color:#168259}.strategy-validation-state.warn{background:#fff0ed;color:#c44c3d}.storage-strategy-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.storage-target-table .table-wrap,.station-period-table .table-wrap{max-height:282px;margin-top:8px}.storage-target-table table,.station-period-table table{min-width:660px}.storage-target-table th,.storage-target-table td,.station-period-table th,.station-period-table td{padding:7px 8px;font-size:11px}.storage-target-table .table-input,.station-period-table .table-input{width:78px;min-height:29px}.table-input.invalid{border-color:#dd5b4c;background:#fff4f1;color:#b4382c}.power-state{display:inline-flex;min-width:42px;justify-content:center;padding:3px 6px;border-radius:4px;font-size:10px;font-weight:900}.power-state.discharge{background:#e7f7ef;color:#168259}.power-state.charge{background:#e9f1ff;color:#2f6fed}.power-state.idle{background:#edf0f4;color:#697587}.strategy-chart-canvas.storage-chart{height:286px}.generic-power-config{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(310px,.75fr);gap:10px}.device-power-list{display:grid;gap:6px;margin-top:8px}.device-power-list label{display:grid;grid-template-columns:minmax(0,1fr) 92px;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid var(--line)}.device-power-list input{min-height:31px;border:1px solid var(--line);border-radius:5px;padding:5px 7px}.strategy-instruction-panel{padding:10px}.node-strategy-workspace{align-items:start}.node-strategy-workspace .strategy-tree-panel{position:sticky;top:8px;height:720px}.node-strategy-workspace .strategy-config-panel{min-height:720px;overflow:visible}.strategy-account-row.active{background:#e9f2ff;box-shadow:inset 3px 0 0 var(--blue)}.strategy-node-page{display:grid;gap:10px;min-width:0}.strategy-node-head{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:54px;padding-bottom:9px;border-bottom:1px solid var(--line)}.strategy-node-head>div>span,.strategy-node-head small{display:block;color:var(--muted);font-size:10px}.strategy-node-head h3{margin:2px 0 3px;font-size:17px}.strategy-account-curve-section,.strategy-account-grid>section,.strategy-local-instructions,.smart-station-panel{min-width:0;padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2)}.account-strategy-chart{height:230px}.strategy-account-grid{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:10px;min-width:0}.strategy-account-grid .table-wrap{max-height:270px;margin-top:8px}.strategy-account-grid table{min-width:600px}.strategy-account-grid th,.strategy-account-grid td,.strategy-local-instructions th,.strategy-local-instructions td{padding:7px 8px;font-size:11px}.clickable-row{cursor:pointer}.clickable-row:hover td{background:#edf4ff}.strategy-mode-tag{display:inline-flex;align-items:center;min-height:22px;padding:2px 6px;border-radius:4px;background:#e7f0ff;color:#2f6fed;font-size:10px;font-weight:800}.strategy-mode-tag.manual{background:#edf0f4;color:#526072}.strategy-mode-tag.offline{background:#fff4d8;color:#9a6815}.strategy-mode-tag.excluded{background:#ffecea;color:#b4382c}.strategy-mode-switch.four-mode{grid-template-columns:repeat(4,minmax(100px,1fr))}.strategy-mode-switch.two-mode{grid-template-columns:repeat(2,minmax(120px,1fr))}.strategy-station-info-card{min-width:0;padding:10px;border:1px solid #d6e0ec;border-radius:var(--radius);background:#fff}.strategy-station-info-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.strategy-station-info-head strong,.strategy-station-info-head small{display:block}.strategy-station-info-head small{margin-top:2px;color:var(--muted);font-size:10px}.strategy-station-info-head select{min-height:31px;border:1px solid var(--line);border-radius:5px;background:#fff;padding:5px 8px;color:var(--text)}.strategy-station-info-grid,.charger-batch-metrics{display:grid;gap:6px;margin-top:8px}.strategy-station-info-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.charger-batch-metrics{grid-template-columns:repeat(5,minmax(0,1fr))}.strategy-station-info-grid>*,.charger-batch-metrics>*{min-width:0}.strategy-power-semantics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:7px 8px;border:1px solid #d9e3f1;border-radius:5px;background:#f7f9fc;color:var(--muted);font-size:10px}.strategy-power-semantics span{min-width:0;line-height:1.45}.strategy-power-semantics b{display:block;margin-bottom:1px;color:var(--text);font-size:10px}.charger-manual-panel{min-width:0;padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2)}.charger-batch-toolbar{display:grid;grid-template-columns:minmax(190px,.7fr) minmax(190px,.7fr) minmax(360px,1.6fr);align-items:end;gap:8px}.charger-batch-toolbar label{position:relative;display:grid;gap:4px;color:var(--muted);font-size:10px;font-weight:800}.charger-batch-toolbar label span{position:absolute;right:8px;bottom:8px;color:var(--muted)}.charger-batch-toolbar input{min-width:0;min-height:33px;border:1px solid var(--line);border-radius:5px;background:#fff;padding:6px 34px 6px 8px;color:var(--text)}.charger-batch-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:6px}.charger-batch-actions .button{min-height:33px;padding:6px 9px;font-size:11px}.charger-auto-action{position:relative;display:inline-flex;align-items:center;gap:5px}.charger-auto-help{position:relative;display:inline-flex;align-items:center;justify-content:center;width:28px;height:33px;border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--muted);cursor:help}.charger-auto-help:hover,.charger-auto-help:focus-visible{border-color:var(--primary);color:var(--primary);outline:none}.charger-auto-help-popover{position:absolute;right:0;top:calc(100% + 8px);z-index:30;width:min(340px,calc(100vw - 48px));padding:10px 12px;border:1px solid var(--line);border-radius:7px;background:#fff;box-shadow:0 14px 34px #0f172a29;color:var(--text);font-size:12px;font-weight:600;line-height:1.7;text-align:left;white-space:normal;opacity:0;pointer-events:none;transform:translateY(-3px);transition:opacity .16s ease,transform .16s ease}.charger-auto-help:hover .charger-auto-help-popover,.charger-auto-help:focus-visible .charger-auto-help-popover,.charger-auto-help:focus-within .charger-auto-help-popover{opacity:1;pointer-events:auto;transform:translateY(0)}.charger-gun-table-wrap{max-height:410px;margin-top:8px;overflow:auto}.charger-gun-table{min-width:1060px}.charger-gun-table th,.charger-gun-table td{padding:7px 8px;font-size:11px}.charger-gun-table td strong,.charger-gun-table td small{display:block}.charger-gun-table td small{margin-top:2px;color:var(--muted);font-size:9px}.charger-gun-table .table-input{width:92px}.charger-filter-row th{padding:5px 6px;background:#f7f9fc;vertical-align:top}.charger-filter-row select,.charger-filter-row input{min-height:27px;border:1px solid #cfd7e3;border-radius:4px;background:#fff;padding:4px 6px;color:var(--text);font-size:10px}.charger-filter-row select{width:100%;min-width:92px}.charger-header-actions,.charger-header-quick>div,.charger-range-filter{display:flex;align-items:center;gap:4px}.charger-header-actions{min-width:124px}.charger-header-actions button,.charger-header-quick button{display:inline-flex;align-items:center;justify-content:center;gap:3px;min-height:27px;border:1px solid #cfd7e3;border-radius:4px;background:#fff;padding:4px 6px;color:var(--muted);font-size:9px;font-weight:800;white-space:nowrap}.charger-header-actions button:disabled{cursor:not-allowed;opacity:.45}.charger-header-quick{min-width:90px}.charger-header-quick button.active{border-color:#8db5f2;background:#e8f1ff;color:var(--blue)}.charger-header-quick small{display:block;margin-top:0;color:var(--muted);font-size:9px}.charger-range-filter{min-width:132px}.charger-range-filter input{width:58px;min-width:0}.charger-range-filter.power{min-width:150px}.charger-range-filter.power input{width:67px}.charger-gun-table .disabled-row td{background:#f6f8fa;color:#8b95a3}.charger-state{color:#15744b;font-weight:800}.charger-state.danger{color:var(--red)}.charger-state.warning{color:#a46a0a}.strategy-mode-confirm-modal{width:min(480px,100%)}.strategy-mode-confirm-modal header>div>span{display:block;margin-bottom:3px;color:var(--muted);font-size:10px;font-weight:800}.strategy-mode-confirm-modal .modal-body p{margin:0;color:var(--text);line-height:1.7}.strategy-mode-confirm-modal .modal-body>small{display:block;margin-top:10px;color:var(--muted);line-height:1.6}.strategy-mode-confirm-flow{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;margin-top:12px}.strategy-mode-confirm-flow span,.strategy-mode-confirm-flow strong{padding:9px 10px;border:1px solid var(--line);border-radius:5px;background:#f6f8fb;text-align:center}.strategy-mode-confirm-flow strong{border-color:#9dbce9;background:#eaf2ff;color:var(--blue)}.node-storage-layout{grid-template-columns:minmax(0,1fr);align-items:start}.storage-head-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}.storage-head-actions span{color:var(--muted);font-size:12px;font-weight:700;white-space:nowrap}.strategy-local-instructions select{min-width:0;min-height:31px;border:1px solid var(--line);border-radius:5px;background:#fff;padding:5px 7px;color:var(--text)}.storage-target-table .table-wrap{max-height:340px}.storage-target-table .table-input[type=time]{width:92px}.storage-target-table td small.danger-text{display:block;max-width:150px;margin-top:3px;white-space:normal}.invalid-row td{background:#fff7f5}.icon-button.danger{color:#b4382c}.smart-station-panel .strategy-chart-canvas{height:245px}.smart-monitor-panel{display:grid;gap:8px}.smart-monitor-panel .smart-monitor-chart{margin-top:0}.smart-monitor-table-wrap table{min-width:940px}.smart-device-head{margin-top:4px}.smart-device-table-wrap{max-height:300px;overflow:auto}.smart-device-table-wrap table{min-width:820px}.smart-device-table-wrap td strong,.smart-device-table-wrap td small{display:block}.smart-device-table-wrap td small{margin-top:2px;color:var(--muted);font-size:9px}.smart-control-status{display:inline-flex;min-width:48px;justify-content:center;padding:3px 6px;border-radius:4px;background:#edf0f4;color:#657184;font-size:10px;font-weight:800}.smart-control-status.ok{background:#e7f7ef;color:#168259}.smart-control-status.tracking{background:#e9f1ff;color:#2f6fed}.smart-control-status.warn{background:#fff5df;color:#9a650c}.smart-control-status.danger{background:#fff0ed;color:#c44c3d}.smart-station-panel .table-wrap,.strategy-local-instructions .table-wrap{margin-top:8px}.strategy-local-instructions table{min-width:760px}.strategy-local-instructions .section-compact-head select{width:116px}.strategy-mode-placeholder{min-height:260px;display:grid;place-content:center;justify-items:center;gap:8px;border:1px dashed #c8d2df;border-radius:var(--radius);background:#f8fafc;color:var(--muted);text-align:center}.strategy-mode-placeholder strong{color:var(--text);font-size:15px}.strategy-mode-placeholder svg{color:var(--blue)}.instruction-panel-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.instruction-view-switch{display:inline-grid;grid-template-columns:repeat(2,minmax(96px,1fr));overflow:hidden;border:1px solid var(--line);border-radius:6px;background:var(--surface-2)}.instruction-view-switch button{min-height:32px;display:inline-flex;align-items:center;justify-content:center;gap:5px;border:0;background:transparent;color:var(--muted);font-size:11px;font-weight:900}.instruction-view-switch button.active{background:var(--blue);color:#fff}.instruction-filters{display:grid;grid-template-columns:minmax(220px,300px) 132px;gap:7px}.instruction-filters input,.instruction-filters select{min-height:32px;border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--text);padding:5px 8px;font-size:11px}.instruction-table{max-height:278px;margin-top:8px}.instruction-table table{min-width:1020px}.instruction-table th,.instruction-table td{padding:8px 7px;font-size:11px}.instruction-account-table th:first-child,.instruction-account-table td:first-child,.instruction-station-table th:nth-child(3),.instruction-station-table td:nth-child(3){white-space:nowrap}.instruction-empty{min-height:92px;display:grid;place-items:center;color:var(--muted);font-size:12px}.instruction-status{display:inline-flex;min-height:24px;align-items:center;padding:3px 7px;border-radius:4px;background:#edf0f4;color:#697587;font-weight:900}.instruction-status.success{background:#e7f7ef;color:#168259}.instruction-status.partial{background:#fff4d8;color:#9a6815}.instruction-status.failed{background:#fff0ed;color:#c44c3d}.instruction-status.sending{background:#e9f1ff;color:#2f6fed}.icon-text-button{display:inline-flex;align-items:center;gap:4px;border:0;background:transparent;color:var(--blue);font-weight:900}.instruction-drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:flex;justify-content:flex-end;background:#121c2b47}.instruction-drawer{width:min(620px,92vw);height:100%;overflow:auto;padding:16px;background:#fff;box-shadow:-18px 0 48px #14203333}.instruction-drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--line)}.instruction-drawer-head span,.instruction-drawer-head small{color:var(--muted);font-size:11px}.instruction-detail-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.instruction-drawer-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.settlement-account-drawer{display:grid;align-content:start;gap:12px}.settlement-drawer-chart{display:grid;grid-template-rows:auto 260px;gap:8px;padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2)}.settlement-drawer-table table{min-width:640px}.settlement-drawer-table tr.selected-row td{background:#f3f7ff}.execution-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.execution-decision-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.execution-decision-card{display:grid;gap:6px;min-height:92px;padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.execution-decision-card small{color:var(--muted);line-height:1.45}.execution-decision-card.danger{border-color:#f1b6ad;background:#fff7f5}.execution-decision-card.warn{border-color:#f7d98e;background:#fffaf0}.execution-decision-card.ok{border-color:#bfe8d8;background:#f3fbf7}.execution-monitor-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(360px,.65fr);gap:10px;min-width:0}.interval-achievement-table,.account-runtime-table,.account-period-assessment-table{border:1px solid var(--line);border-radius:var(--radius)}.interval-achievement-table table{min-width:520px}.account-runtime-table table{min-width:980px}.account-period-assessment-table table{min-width:1160px}.interval-achievement-table th,.interval-achievement-table td,.account-runtime-table th,.account-runtime-table td,.account-period-assessment-table th,.account-period-assessment-table td{padding:8px 9px;font-size:12px}.account-settlement-section,.settlement-evidence-panel{display:grid;gap:8px;padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.settlement-action-row{display:flex;align-items:center;justify-content:flex-end;margin-bottom:8px;min-width:0}.settlement-source-metrics{display:grid;grid-template-columns:1.18fr .92fr .9fr;gap:10px}.settlement-source-card{min-width:0;display:grid;gap:8px;align-content:start;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.settlement-source-card.accent{border-color:#b7d1ff;background:#f6f9ff}.settlement-source-card.danger{border-color:#f0b1a8;background:#fff8f6}.settlement-source-card .settlement-kpi-heading{color:var(--muted);font-size:11px;font-weight:900;letter-spacing:0}.settlement-kpi-rows{display:grid;gap:0}.settlement-kpi-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:28px;padding:6px 0;border-top:1px solid #edf2f7}.settlement-kpi-row:first-child{border-top:0;padding-top:0}.settlement-kpi-row:last-child{padding-bottom:0}.settlement-kpi-row em{color:var(--muted);font-size:11px;font-style:normal;font-weight:800;white-space:nowrap}.settlement-kpi-row strong{min-width:0;color:#172033;font-size:14px;line-height:1.05;text-align:right;white-space:nowrap}.settlement-kpi-row.primary strong{font-size:18px}.settlement-timeline-panel{display:grid;gap:8px;min-width:0}.settlement-revenue-chart{height:220px;min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#fff}.settlement-timeline-panel.compact .settlement-revenue-chart{height:170px}.settlement-slot-table{display:grid;gap:4px;min-width:0}.settlement-slot-row{display:grid;grid-template-columns:86px minmax(0,1fr);gap:6px;align-items:stretch;min-width:0}.settlement-timeline-panel.compact .settlement-slot-row{grid-template-columns:74px minmax(0,1fr)}.settlement-slot-label{display:grid;place-items:center;min-height:34px;padding:4px;border:1px solid var(--line);border-radius:6px;background:#f8fafc;color:var(--muted);font-size:11px;font-weight:900;text-align:center}.settlement-slot-grid{display:grid;grid-template-columns:repeat(48,minmax(34px,1fr));gap:2px;min-width:0;overflow-x:auto;padding-bottom:2px}.settlement-timeline-panel.compact .settlement-slot-grid{grid-template-columns:repeat(48,minmax(30px,1fr))}.settlement-slot-cell{display:grid;gap:1px;min-width:34px;min-height:34px;align-content:center;justify-items:center;padding:3px 2px;border:1px solid #e2e8f0;border-radius:5px;background:#f8fafc;color:#94a0ae;text-align:center}.settlement-timeline-panel.compact .settlement-slot-cell{min-width:30px;min-height:30px}.settlement-slot-cell.response{border-color:#cfe8dc;background:#f3fbf7;color:var(--text)}.settlement-slot-cell.active{border-color:var(--blue);background:#eef5ff;box-shadow:inset 0 0 0 1px #2f6fed38}.settlement-slot-cell.danger{border-color:#f0b1a8;background:#fff6f4}.settlement-slot-cell.warn{border-color:#f6d88d;background:#fffaf0}.settlement-slot-cell.diff{border-color:#f6d88d}.settlement-slot-cell:disabled{cursor:not-allowed;opacity:.52}.settlement-slot-cell span{color:var(--muted);font-size:9px;line-height:1}.settlement-slot-cell strong{font-size:10px;line-height:1.05;white-space:nowrap}.settlement-slot-cell.rate strong{font-size:11px}.settlement-slot-cell small{color:var(--muted);font-size:8px;line-height:1;white-space:nowrap}.settlement-evidence-grid{display:block;min-width:0}.settlement-chart-card{min-width:0;display:grid;gap:8px}.settlement-chart-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.settlement-chart-head h3{margin:0;font-size:15px}.settlement-chart-head small{color:var(--muted)}.settlement-response-chart{height:220px;min-width:0}.settlement-response-panel{display:grid;gap:10px;min-width:0}.settlement-response-intervals{display:grid;grid-template-columns:repeat(auto-fit,minmax(176px,1fr));gap:8px;min-width:0}.settlement-response-intervals.compact{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.settlement-interval-strip-shell{min-width:0;overflow-x:auto;overflow-y:hidden;padding-bottom:4px;scrollbar-width:thin}.settlement-interval-strip-shell.compact{margin:0 -2px;padding:0 2px 4px}.settlement-interval-strip{display:flex;gap:6px;width:max-content;min-width:100%}.settlement-interval-chip{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 6px;align-content:start;flex:0 0 132px;min-height:70px;padding:8px 8px 7px;border:1px solid var(--line);border-left:3px solid #86b7ff;border-radius:7px;background:#f8fafc;color:var(--text);font:inherit;text-align:left}button.settlement-interval-chip{cursor:pointer}button.settlement-interval-chip:hover{border-color:#b8c9e4;background:#f3f7fc}.settlement-interval-chip.compact{flex-basis:124px;min-height:66px}.settlement-interval-chip.active{border-color:var(--blue);border-left-color:var(--blue);background:#eef5ff;box-shadow:inset 0 0 0 1px #2f6fed29}.settlement-interval-chip.danger{border-color:#f0b1a8;border-left-color:#d45d47;background:#fff6f4}.settlement-interval-chip.warn{border-color:#f6d88d;border-left-color:#d89b1d;background:#fffaf0}.settlement-interval-chip .settlement-interval-time{grid-column:1 / -1;min-width:0;color:var(--muted);font-size:10px;font-weight:900;white-space:nowrap}.settlement-interval-chip strong{min-width:0;font-size:16px;line-height:1.05;white-space:nowrap}.settlement-interval-chip small,.settlement-interval-chip em{min-width:0;color:var(--muted);font-size:10px;font-style:normal;font-weight:800;white-space:nowrap}.settlement-interval-chip b{justify-self:end;align-self:center;padding:2px 6px;border-radius:999px;background:#e8eef7;color:var(--muted);font-size:10px;font-weight:900;line-height:1.2;white-space:nowrap}.settlement-interval-chip.danger b{background:#fee2df;color:#c33f32}.settlement-interval-table-wrap{max-height:240px;min-width:0;overflow:auto;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.settlement-interval-table-wrap.compact{max-height:220px}.settlement-interval-table-wrap table{min-width:880px}.settlement-interval-table-wrap th{position:sticky;top:0;z-index:2;background:#f4f7fb}.settlement-interval-table-wrap tbody tr{cursor:pointer}.settlement-interval-table-wrap tbody tr.selected-row td{background:#eef5ff}.settlement-interval-table-wrap tbody tr.invalid-row td{background:#fff8f6}.settlement-response-card{position:relative;display:grid;gap:4px;min-height:86px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#f8fafc;color:var(--text);font:inherit;text-align:left}div.settlement-response-card{cursor:default}button.settlement-response-card{cursor:pointer}.settlement-response-card.active{border-color:var(--blue);background:#eef5ff;box-shadow:inset 0 0 0 1px #2f6fed29}.settlement-response-card.danger{border-color:#f0b1a8;background:#fff6f4}.settlement-response-card.warn{border-color:#f6d88d;background:#fffaf0}.settlement-response-card span,.settlement-response-card small{color:var(--muted);font-size:11px;font-weight:800}.settlement-response-card strong{font-size:18px;line-height:1.1}.settlement-response-card em{position:absolute;top:8px;right:8px;padding:2px 6px;border-radius:999px;background:#e8eef7;color:var(--muted);font-size:11px;font-style:normal;font-weight:900}.settlement-response-card.danger em{background:#fee2df;color:#c33f32}.settlement-response-detail{display:grid;gap:8px;min-width:0}.settlement-account-workbench{min-width:0}.settlement-account-controls{display:grid;grid-template-columns:minmax(260px,1fr) minmax(120px,.22fr);gap:8px;align-items:center}.settlement-account-controls input,.settlement-account-controls select,.settlement-result-meta select{height:32px;min-width:0;border:1px solid var(--line);border-radius:8px;padding:0 9px;background:#fff;color:var(--text);font-weight:700}.settlement-result-meta{display:flex;align-items:center;justify-content:flex-end;gap:8px;color:var(--muted);font-size:12px}.settlement-summary-table table{min-width:980px}.settlement-period-table table{min-width:1260px}.settlement-summary-table td small,.settlement-period-table td small{display:block;color:var(--muted);font-size:10px;line-height:1.25}.settlement-summary-table tbody tr,.settlement-period-table tbody tr{cursor:pointer}.sticky-account-cell{position:sticky;left:0;z-index:1;background:#fff;box-shadow:1px 0 0 var(--line)}thead .sticky-account-cell,.settlement-summary-table th:first-child,.settlement-period-table th:first-child{position:sticky;left:0;z-index:2;background:#f8fafc}.settlement-pagination{display:flex;justify-content:flex-end;gap:8px}.settlement-account-drawer{width:min(760px,94vw)}.settlement-drawer-summary-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;min-width:0}.settlement-drawer-summary-card{display:grid;gap:5px;min-width:0;min-height:68px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#f8fafc}.settlement-drawer-summary-card.accent{border-color:#cfe4d7;background:#f4fbf7}.settlement-drawer-summary-card.danger{border-color:#f0b1a8;background:#fff6f4}.settlement-drawer-summary-card span,.settlement-drawer-summary-card small{color:var(--muted);font-size:11px;font-weight:800}.settlement-drawer-summary-card strong{color:var(--text);font-size:18px;line-height:1.1}.settlement-drawer-section{display:grid;gap:8px;margin-top:14px}.settlement-drawer-period-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.settlement-drawer-period{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 8px;align-items:center;min-width:0;padding:8px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--text);text-align:left}.settlement-drawer-period.active{border-color:var(--blue);background:#eef5ff}.settlement-drawer-period.danger{border-color:#f0b1a8;background:#fff6f4}.settlement-drawer-period.warn{border-color:#f6d88d;background:#fffaf0}.settlement-drawer-period span{min-width:0}.settlement-drawer-period small,.settlement-drawer-period em{color:var(--muted);font-size:11px;font-style:normal}.settlement-drawer-period b{font-size:14px}.settlement-account-chart{height:210px;min-width:0}.settlement-drawer-calc{grid-template-columns:repeat(3,minmax(0,1fr))}.settlement-drawer-reason{margin:0;padding:9px 10px;border:1px solid #cfe4d7;border-radius:8px;background:#f4fbf7;color:#23714f;font-weight:800}.settlement-drawer-reason.danger{border-color:#f0b1a8;background:#fff6f4;color:#c33f32}.settlement-drawer-reason.warn{border-color:#f6d88d;background:#fffaf0;color:#a86b0d}.compact-meter{height:6px;min-width:96px;margin-bottom:3px}.execution-stage-redesign{gap:12px}.execution-stage-redesign .execution-toolbar{padding-bottom:2px}.execution-event-strip{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:11px 14px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.execution-event-status{display:grid;gap:8px;min-width:0}.execution-event-copy{display:flex;align-items:baseline;gap:16px;min-width:0}.execution-event-copy strong{flex:none;color:var(--text);font-size:18px}.execution-event-copy span{color:#a0a8b5;font-size:13px;font-weight:800}.execution-event-strip.running .execution-event-copy span{color:#15803d}.execution-event-strip.ended .execution-event-copy span{color:#8b95a5}.execution-progress-track{height:8px;overflow:hidden;border-radius:999px;background:#e7edf5}.execution-progress-inline{display:grid;grid-template-columns:minmax(180px,560px) auto;align-items:center;gap:10px}.execution-progress-inline b{color:var(--text);font-size:16px}.execution-progress-track span{display:block;height:100%;border-radius:inherit;background:var(--blue)}.execution-strip-metrics{display:grid;grid-template-columns:repeat(3,minmax(116px,auto));gap:8px}.execution-monitor-board{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;min-width:0}.execution-main-panel,.execution-side-panel>section{border:1px solid var(--line);border-radius:var(--radius);background:#fff}.execution-main-panel{display:grid;gap:8px;min-width:0;padding:12px}.execution-panel-title{display:flex;align-items:center;justify-content:space-between;gap:10px}.execution-panel-title h3{margin:0;font-size:15px}.execution-panel-title small{color:var(--muted);font-size:12px}.execution-panel-title select,.execution-panel-title input,.account-monitor-filters select,.account-monitor-filters input{min-height:34px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;color:var(--text);padding:6px 9px}.execution-date-controls{display:flex;align-items:center;justify-content:flex-end;gap:8px}.execution-vpp-chart{height:300px;min-width:0}.execution-day-panel{--execution-chart-left: 86px;--execution-chart-right: 42px;min-width:0;border:1px solid var(--line);border-radius:var(--radius);background:#fff;display:grid;gap:6px;overflow:hidden;padding:8px 0 9px}.execution-response-table{display:grid;gap:0;padding:0 var(--execution-chart-right) 0 var(--execution-chart-left)}.execution-response-row{position:relative;display:grid;min-width:0}.execution-response-label{position:absolute;top:0;right:calc(100% + 8px);display:flex;width:78px;min-height:29px;align-items:center;justify-content:flex-end;color:var(--text);font-size:12px;font-weight:800;white-space:nowrap}.execution-response-grid{display:grid;min-width:0;grid-template-columns:repeat(48,minmax(0,1fr))}.execution-response-cell{display:grid;min-width:0;height:31px;align-content:center;gap:1px;padding:2px 1px;border:1px solid var(--line);border-left:0;background:#f8fafc;color:var(--text);text-align:center}.execution-response-row+.execution-response-row .execution-response-cell{border-top:0}.execution-response-cell:first-child{border-left:1px solid var(--line)}.execution-response-row:first-child .execution-response-cell:first-child{border-radius:6px 0 0}.execution-response-row:first-child .execution-response-cell:last-child{border-radius:0 6px 0 0}.execution-response-row:last-child .execution-response-cell:first-child{border-radius:0 0 0 6px}.execution-response-row:last-child .execution-response-cell:last-child{border-radius:0 6px 6px 0}.execution-response-cell.response{background:#f4fbf2}.execution-response-cell.active{position:relative;z-index:1;border-color:var(--blue);background:#eef5ff;box-shadow:inset 0 0 0 1px #2f6fed3d}.execution-response-cell.warn{background:#fffaf0}.execution-response-cell.danger{background:#fff7f5}.execution-response-cell:disabled{cursor:default;color:var(--muted)}.execution-response-cell span{overflow:hidden;color:var(--muted);font-size:7px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.execution-response-cell strong{overflow:hidden;color:#64748b;font-size:8px;font-weight:800;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.execution-response-cell.response strong{color:#15803d}.execution-response-cell.warn strong{color:#9a6500}.execution-response-cell.danger strong{color:#c03324}.interval-achievement-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.interval-achievement-card{position:relative;overflow:hidden;display:grid;gap:4px;min-height:74px;padding:8px 10px 10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2);color:var(--text);text-align:left}.interval-achievement-card.active{border-color:var(--blue);box-shadow:inset 0 0 0 1px #2f6fed33}.interval-achievement-card.warn{border-color:#f7d98e;background:#fffaf0}.interval-achievement-card.danger{border-color:#f1b6ad;background:#fff7f5}.interval-achievement-card span,.interval-achievement-card small{color:var(--muted);font-size:12px}.interval-achievement-card strong{font-size:15px}.interval-achievement-card i{position:absolute;left:10px;right:auto;bottom:6px;height:4px;max-width:calc(100% - 20px);border-radius:999px;background:var(--green)}.interval-achievement-card.warn i{background:var(--amber)}.interval-achievement-card.danger i{background:var(--red)}.execution-side-panel{display:grid;grid-template-columns:minmax(360px,.78fr) minmax(560px,1.22fr);gap:10px;min-width:0}.execution-side-panel>section{display:grid;gap:9px;padding:10px}.resource-runtime-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.resource-runtime-card{display:grid;gap:5px;min-height:74px;padding:9px;border:1px solid var(--line);border-radius:var(--radius);background:#fbfdff;color:var(--text);text-align:left}.resource-runtime-card.active{border-color:var(--blue);background:#f3f7ff}.resource-runtime-card.warn{border-color:#f7d98e;background:#fffaf0}.resource-runtime-card.danger{border-color:#f1b6ad;background:#fff7f5}.resource-runtime-card span{display:flex;align-items:center;gap:5px;min-width:0}.resource-runtime-card b{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.resource-runtime-card em{flex:none;padding:2px 6px;border-radius:999px;background:#dcfce7;color:#116c42;font-style:normal;font-size:11px;font-weight:800}.resource-runtime-card.warn em{background:#fff1c7;color:#946200}.resource-runtime-card.danger em{background:#ffe0dc;color:#b93222}.resource-runtime-card strong{font-size:16px}.resource-runtime-card small{color:var(--muted);font-size:11px}.command-queue{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.command-item{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:48px;padding:8px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;color:var(--text);text-align:left}.command-item>span{display:grid;width:28px;height:28px;place-items:center;border-radius:var(--radius);background:#eef4ff;color:var(--blue);font-weight:900}.command-item strong,.command-item small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.command-item small{color:var(--muted);font-size:11px}.command-item em{padding:3px 7px;border-radius:999px;background:#eef2f7;color:var(--muted);font-style:normal;font-size:11px;font-weight:800}.command-item.ok em{background:#dcfce7;color:#116c42}.command-item.warn em{background:#fff1c7;color:#946200}.command-item.pending em{background:#eaf1ff;color:var(--blue)}.button.small{min-height:30px;padding:5px 9px;font-size:12px}.dispatch-task-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.dispatch-task-section,.account-execution-monitor-section{display:grid;gap:8px;min-width:0;padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.account-monitor-title{padding-bottom:2px}.dispatch-task-head-actions{display:flex;align-items:center;gap:7px;white-space:nowrap}.dispatch-task-filters{display:grid;grid-template-columns:minmax(0,1fr) 118px;gap:7px}.dispatch-task-filters input,.dispatch-task-filters select,.dispatch-create-form input,.dispatch-create-form select{min-height:32px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;color:var(--text);padding:6px 8px}.dispatch-task-filters input{color:var(--muted)}.dispatch-task-table-wrap{max-height:244px;overflow:auto;border:1px solid var(--line);border-radius:var(--radius)}.dispatch-task-table{width:100%;min-width:1120px;border-collapse:separate;border-spacing:0;font-size:12px}.dispatch-task-table th,.dispatch-task-table td,.dispatch-modal-table th,.dispatch-modal-table td{border-bottom:1px solid var(--line);padding:7px 8px;text-align:left;vertical-align:middle}.dispatch-task-table th,.dispatch-modal-table th{position:sticky;top:0;z-index:1;background:#f5f8fc;color:#405064;font-size:11px;font-weight:800}.dispatch-task-table tbody tr{cursor:pointer}.dispatch-task-table tbody tr:hover td{background:#f7fbff}.dispatch-task-table strong,.dispatch-task-table small,.dispatch-task-table span{display:block;overflow:hidden;max-width:180px;text-overflow:ellipsis;white-space:nowrap}.dispatch-task-table small,.dispatch-task-table span,.dispatch-modal-table small{color:var(--muted);font-size:11px}.dispatch-task-table th:nth-child(1),.dispatch-task-table td:nth-child(1){width:17%}.dispatch-task-table th:nth-child(2),.dispatch-task-table td:nth-child(2){width:15%}.dispatch-task-table th:nth-child(3),.dispatch-task-table td:nth-child(3){width:18%}.dispatch-task-table th:nth-child(4),.dispatch-task-table td:nth-child(4),.dispatch-task-table th:nth-child(5),.dispatch-task-table td:nth-child(5){width:10%}.dispatch-task-table th:nth-child(6),.dispatch-task-table td:nth-child(6){width:8%;text-align:center}.dispatch-task-table th:nth-child(7),.dispatch-task-table td:nth-child(7){width:14%}.dispatch-task-table th:nth-child(8),.dispatch-task-table td:nth-child(8){width:8%;text-align:center}.task-status{display:inline-flex;align-items:center;justify-content:center;min-width:68px;padding:3px 7px;border-radius:999px;background:#eaf1ff;color:var(--blue);font-style:normal;font-size:11px;font-weight:800;white-space:nowrap}.task-status.ok{background:#dcfce7;color:#116c42}.task-status.warn{background:#fff1c7;color:#946200}.task-status.danger{background:#ffe0dc;color:#b93222}.dispatch-task-actions{display:flex;flex-wrap:nowrap;gap:5px}.dispatch-task-actions button{border:0;background:transparent;color:var(--blue);font-weight:800;font-size:12px}.dispatch-task-actions button.danger{color:var(--red)}.modal.dispatch-task-modal{width:min(1180px,calc(100vw - 48px));max-height:min(820px,calc(100vh - 48px))}.modal.dispatch-task-modal.payload{width:min(1220px,calc(100vw - 48px))}.modal.dispatch-task-modal.unified{width:min(1368px,calc(100vw - 48px));max-height:min(880px,calc(100vh - 40px))}.dispatch-detail-breadcrumb{display:flex;align-items:center;gap:5px;min-height:34px;margin-bottom:10px;padding:5px 8px;border:1px solid var(--line);border-radius:5px;background:#f7f9fc;color:var(--muted)}.dispatch-detail-breadcrumb button{border:0;background:transparent;color:var(--blue);padding:3px 5px;font-size:12px;font-weight:800}.dispatch-detail-breadcrumb button.active,.dispatch-detail-breadcrumb span{color:var(--text)}.dispatch-instruction-section,.dispatch-instruction-detail,.dispatch-payload-page{display:grid;gap:10px;min-width:0}.dispatch-instruction-section{padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.dispatch-modal-table-wrap.instruction-list{max-height:460px;overflow:auto}.dispatch-modal-table-wrap.instruction-list table{min-width:0;table-layout:fixed}.dispatch-record-table td span,.dispatch-record-table td small{display:block}.dispatch-record-table th,.dispatch-record-table td{padding:6px 7px;overflow-wrap:anywhere}.dispatch-record-table th:nth-child(1),.dispatch-record-table td:nth-child(1){width:13%}.dispatch-record-table th:nth-child(2),.dispatch-record-table td:nth-child(2){width:12%}.dispatch-record-table th:nth-child(3),.dispatch-record-table td:nth-child(3){width:12%}.dispatch-record-table th:nth-child(4),.dispatch-record-table td:nth-child(4){width:8%}.dispatch-record-table th:nth-child(5),.dispatch-record-table td:nth-child(5){width:10%}.dispatch-record-table th:nth-child(6),.dispatch-record-table td:nth-child(6){width:11%}.dispatch-record-table th:nth-child(7),.dispatch-record-table td:nth-child(7),.dispatch-record-table th:nth-child(8),.dispatch-record-table td:nth-child(8){width:9%}.dispatch-record-table th:nth-child(9),.dispatch-record-table td:nth-child(9){width:8%;text-align:center}.dispatch-record-table th:nth-child(10),.dispatch-record-table td:nth-child(10){width:8%;text-align:center}.dispatch-modal-table-wrap.device-sample-table{max-height:470px}.device-sample-table table{min-width:1420px}.device-sample-table th,.device-sample-table td{padding:8px 9px;vertical-align:top}.power-reading{display:grid;gap:2px;min-width:136px}.power-reading strong,.power-reading small{display:block}.power-reading strong{color:var(--text);font-size:12px}.power-reading small{color:var(--muted);font-size:10px;white-space:nowrap}.power-reading.pending strong{color:#9a6815}.dispatch-instruction-detail td>.task-status+.danger-text{display:block;max-width:150px;margin-top:4px;white-space:normal}.dispatch-payload-page .dispatch-payload-grid{min-height:500px}.dispatch-payload-page .payload-block pre{max-height:500px}.dispatch-modal-body{display:grid;gap:12px}.dispatch-modal-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.dispatch-modal-table-wrap{max-height:230px;overflow:auto;border:1px solid var(--line);border-radius:var(--radius)}.dispatch-modal-table{width:100%;min-width:980px;border-collapse:separate;border-spacing:0;font-size:12px}.dispatch-timeline-panel,.dispatch-device-picker{display:grid;gap:10px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:12px}.dispatch-timeline-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.dispatch-timeline-head h3{margin:0;font-size:15px}.dispatch-timeline-head small,.dispatch-timeline-head span{color:var(--muted);font-size:12px}.dispatch-timeline-scale{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));color:var(--muted);font-size:11px}.dispatch-timeline-scale span{text-align:left}.dispatch-timeline-grid{display:grid;border:1px solid var(--line);border-bottom:0}.dispatch-timeline-row{display:grid;grid-template-columns:140px minmax(0,1fr);min-height:56px;border-bottom:1px solid var(--line)}.dispatch-timeline-name{display:grid;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:7px;padding:8px;border-right:1px solid var(--line)}.dispatch-timeline-name span{display:grid;width:22px;height:22px;place-items:center;border-radius:6px;background:#eaf1ff;color:var(--blue);font-weight:900}.dispatch-timeline-name strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dispatch-timeline-track{position:relative;min-width:0;background:repeating-linear-gradient(to right,transparent 0,transparent calc(12.5% - 1px),#d9e1ec calc(12.5% - 1px),#d9e1ec 12.5%),#fbfdff}.dispatch-timeline-bar{position:absolute;top:14px;height:28px;overflow:hidden;border:1px solid #f0a44b;border-radius:8px;background:#ffd18a;color:#5f3a00;font-weight:800;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.dispatch-timeline-bar.response{border-color:#8fd26c;background:#c6f47a;color:#205b18}.dispatch-timeline-bar.idle{border-color:#bfc7d1;background:#d7dce2;color:#405064}.dispatch-log-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 20px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius);background:#fbfdff;font-size:13px}.dispatch-log-meta span{color:var(--muted)}.dispatch-log-meta b{color:var(--text)}.dispatch-log-page{min-height:min(680px,calc(100vh - 170px));align-content:start}.dispatch-log-meta-list{display:grid;grid-template-columns:108px minmax(0,1fr);gap:14px 12px;padding:18px 24px 22px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;font-size:13px}.dispatch-log-meta-list span{color:#405064;font-weight:700;text-align:right}.dispatch-log-meta-list b{min-width:0;color:var(--text);font-weight:700}.dispatch-log-counts{display:inline-block;margin-left:8px;color:var(--muted);font-size:11px;font-weight:700;vertical-align:middle}.dispatch-log-table-wrap{max-height:360px;border-radius:0}.dispatch-log-table{font-size:12px}.dispatch-log-table th,.dispatch-log-table td{border-right:1px solid var(--line);padding:8px 10px;text-align:center}.dispatch-log-table th:last-child,.dispatch-log-table td:last-child{border-right:0}.dispatch-log-table td:nth-child(1),.dispatch-log-table td:nth-child(2),.dispatch-log-table td:nth-child(4){text-align:left}.dispatch-log-table td span,.dispatch-log-table td small{display:block}.dispatch-log-table td small{color:var(--muted);font-size:10px}.dispatch-payload-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.payload-block{display:grid;gap:8px;min-width:0}.payload-block-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.payload-block-head h3{margin:0;font-size:15px}.payload-block-head div{display:flex;gap:8px}.payload-block pre{height:500px;overflow:auto;margin:0;padding:14px;border:1px solid #0ea5e9;border-radius:4px;background:#030712;color:#14b8ff;font-size:12px;line-height:1.45}.dispatch-create-layout{display:grid;gap:10px}.dispatch-create-section{display:grid;gap:8px;padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.dispatch-create-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.dispatch-create-section-head strong{font-size:14px}.dispatch-create-section-head span{color:var(--muted);font-size:12px}.dispatch-create-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.dispatch-create-form.control{grid-template-columns:repeat(6,minmax(0,1fr))}.dispatch-create-form label{display:grid;gap:5px}.dispatch-create-form span{color:#536176;font-size:12px;font-weight:800}.dispatch-create-form input:disabled,.dispatch-create-form select:disabled{background:#f2f5f9;color:#94a3b8;cursor:not-allowed}.dispatch-device-select-table{display:grid;gap:6px}.dispatch-device-option{display:grid;grid-template-columns:18px minmax(0,1fr) 110px 110px;align-items:center;gap:8px;min-height:44px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius);background:#fbfdff}.dispatch-device-option.selected{border-color:var(--blue);background:#eef5ff}.dispatch-device-option span,.dispatch-device-option strong,.dispatch-device-option small{min-width:0}.dispatch-device-option span{display:grid;gap:2px}.dispatch-device-option small{color:var(--muted);font-size:11px}.dispatch-device-option em{color:var(--muted);font-style:normal;font-size:12px;font-weight:800}.dispatch-device-option b{text-align:right}.dispatch-device-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.dispatch-device-row span,.dispatch-device-row strong{padding:9px;border-right:1px solid var(--line);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dispatch-device-row strong{border-right:0;color:var(--blue)}.modal-footer-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:12px}.button:disabled{cursor:not-allowed;opacity:.45}.account-execution-monitor{display:grid;grid-template-columns:minmax(300px,320px) minmax(0,1fr);gap:12px;padding:0;min-width:0}.account-monitor-sidebar{display:grid;align-content:start;gap:8px;min-width:0}.account-monitor-filters{display:grid;grid-template-columns:minmax(0,1fr);gap:6px}.account-monitor-filters .text-button{grid-column:1 / -1;justify-self:start}.low-response-filter{display:grid;gap:7px;padding:8px;border:1px solid var(--line);border-radius:var(--radius);background:#fbfdff}.low-response-filter-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.low-response-filter-head strong{font-size:12px}.low-response-filter-head small,.low-response-counts{color:var(--muted);font-size:10px;font-weight:800}.low-response-threshold{display:grid;grid-template-columns:minmax(76px,1fr) 54px minmax(58px,76px) auto;align-items:center;gap:6px;color:var(--muted);font-size:11px;font-weight:900}.low-response-threshold input,.low-response-threshold select{min-height:28px;border:1px solid var(--line);border-radius:5px;padding:4px 7px;color:var(--text);font-weight:900;background:#fff}.low-response-threshold select{width:54px;text-align:center}.account-list{display:grid;gap:7px;max-height:560px;overflow:auto;padding-right:2px}.account-list-card{width:100%;display:grid;gap:6px;padding:9px 10px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--text);text-align:left}.account-list-card.active{border-color:var(--blue);background:#eef5ff;box-shadow:inset 3px 0 0 var(--blue)}.account-list-card.low{border-color:#f2c4bd;background:snow}.account-list-main{display:grid;gap:2px;min-width:0}.account-list-main strong,.account-list-main small,.account-list-resources{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-list-main small,.account-list-resources{color:var(--muted);font-size:11px}.account-list-resources{padding:4px 6px;border-radius:5px;background:#f5f8fc;font-weight:800}.account-list-metrics{display:flex;flex-wrap:wrap;gap:4px}.account-list-metrics em{padding:2px 6px;border:1px solid #d8e4f2;border-radius:999px;background:#f6f9fc;color:#446071;font-style:normal;font-size:10px;font-weight:900;line-height:1.35}.account-list-metrics em.low{border-color:#f0b1a8;background:#fff2f0;color:#b93222}.account-tree-list{display:grid;gap:5px;max-height:560px;overflow:auto;padding-right:2px}.account-tree-group{overflow:hidden;border:1px solid var(--line);border-radius:7px;background:#fff}.account-tree-group.active{border-color:var(--blue);background:#f7fbff}.account-tree-group.low{border-color:#f2c4bd}.account-tree-user,.account-tree-station{width:100%;display:grid;align-items:center;gap:8px;border:0;color:var(--text);text-align:left}.account-tree-user{grid-template-columns:18px minmax(0,1fr) auto;min-height:54px;padding:7px 8px;background:transparent}.account-tree-user.selected{background:#eef5ff}.account-tree-toggle,.account-tree-node-main{min-width:0;border:0;background:transparent;color:inherit;text-align:left}.account-tree-toggle{display:grid;width:18px;height:28px;place-items:center;padding:0}.account-tree-node-main{display:grid;gap:2px;padding:0}.account-tree-user svg{color:var(--muted);transition:transform .16s ease}.account-tree-user svg.expanded{transform:rotate(90deg)}.account-tree-stations{display:grid;gap:4px;padding:0 7px 7px 30px}.account-tree-station{grid-template-columns:minmax(0,1fr) auto;min-height:43px;padding:6px 7px;border:1px solid var(--line);border-radius:6px;background:#fbfdff}.account-tree-station.active{border-color:var(--blue);background:#eef5ff}.account-tree-station.warn{border-color:#f7d98e;background:#fffaf0}.account-tree-station.danger{border-color:#f1b6ad;background:#fff7f5}.account-tree-node-main strong,.account-tree-station strong,.account-tree-station small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-tree-node-main small{display:block;overflow:hidden;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.account-tree-node-main small,.account-tree-station small{color:var(--muted);font-size:11px}.account-tree-user b,.account-tree-station b{color:var(--blue);font-size:12px;white-space:nowrap}.account-tree-metrics{display:grid;gap:3px;justify-items:end;white-space:nowrap}.account-tree-metrics span{padding:2px 5px;border:1px solid #d8e4f2;border-radius:999px;background:#f6f9fc;color:#446071;font-size:10px;font-weight:900;line-height:1.25}.account-tree-metrics span.achievement-count{border-color:#d9e6d4;background:#f2faee;color:#267044}.account-tree-metrics span.low{border-color:#f0b1a8;background:#fff2f0;color:#b93222}.account-tree-metrics.compact span{padding:2px 5px}.account-tree-user em,.account-tree-station em{padding:3px 6px;border-radius:999px;background:#dcfce7;color:#116c42;font-style:normal;font-size:11px;font-weight:800;text-align:center;white-space:nowrap}.account-tree-user em.warn,.account-tree-station.warn em{background:#fff1c7;color:#946200}.account-tree-user em.danger,.account-tree-station.danger em{background:#ffe0dc;color:#b93222}.account-detail-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.account-detail-metric-groups{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.account-detail-metric-group{display:grid;gap:8px;padding:10px;border:1px solid #d8e4f2;border-radius:var(--radius);background:#f8fbff}.account-detail-metric-group.overall{border-color:#d3e7dc;background:#f7fbf8}.account-detail-metric-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.account-detail-metric-title strong{color:var(--text);font-size:12px}.account-detail-metric-title span{color:var(--muted);font-size:11px;font-weight:800}.account-detail-metric-group .metric-inline{min-height:58px;background:#fff}.account-detail-metric-group .metric-inline span{font-size:11px}.account-detail-metric-group .metric-inline strong{font-size:16px}.account-runtime-list{display:grid;gap:6px;max-height:420px;overflow:auto}.account-runtime-row{display:grid;grid-template-columns:minmax(0,1fr) 48px 54px;align-items:center;gap:8px;min-height:58px;padding:8px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;color:var(--text);text-align:left}.account-runtime-row.active{border-color:var(--blue);background:#f3f7ff}.account-runtime-row.warn{border-color:#f7d98e}.account-runtime-row.danger{border-color:#f1b6ad}.account-runtime-row strong,.account-runtime-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-runtime-row small{color:var(--muted);font-size:11px}.account-runtime-row b{color:var(--blue);font-size:13px}.account-runtime-row em{padding:3px 6px;border-radius:999px;background:#dcfce7;color:#116c42;font-style:normal;font-size:11px;font-weight:800;text-align:center}.account-runtime-row.warn em{background:#fff1c7;color:#946200}.account-runtime-row.danger em{background:#ffe0dc;color:#b93222}.account-monitor-detail{display:grid;gap:8px;min-width:0}.account-execution-chart{height:300px;min-width:0;border:1px solid var(--line);border-radius:var(--radius);padding:6px;background:var(--surface-2)}.account-runtime-table table{min-width:860px}.account-runtime-table tr.selected-row td{background:#f3f7ff}.account-runtime-table tbody tr{cursor:pointer}.execution-card{min-height:112px;display:flex;flex-direction:column;gap:10px;padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2)}.execution-card.danger{border-color:#f1b6ad;background:#fff7f5}.execution-card span,.execution-card small{color:var(--muted)}.risk-list{display:grid;gap:9px}.risk-item{min-height:42px;display:flex;align-items:center;gap:9px;padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2)}.risk-item svg{color:#b66f05}.risk-item.danger{border-color:#f1b6ad;background:#fff7f5;color:#9b2f21}.risk-item.danger svg{color:var(--red)}.modal-mode{margin:12px 0}.modal-detail,.modal-table{margin-top:12px}.strategy-mini-list{display:grid;gap:8px;margin-top:12px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:24px;background:#0a121e75}.modal{width:min(760px,100%);max-height:calc(100vh - 48px);display:flex;flex-direction:column;overflow:hidden;border-radius:var(--radius);background:#fff;box-shadow:0 24px 90px #00000042}.modal.marketized-detail-modal{width:min(1220px,calc(100vw - 48px))}.modal header,.modal footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line)}.modal footer{border-top:1px solid var(--line);border-bottom:0;justify-content:flex-end}.modal h2{margin:0;font-size:20px}.modal-body{overflow:auto;padding:18px}.detail-recommendation-summary{display:grid;grid-template-columns:1.2fr repeat(4,minmax(140px,1fr));gap:8px;align-items:stretch;margin-bottom:12px}.detail-recommendation-summary>div:first-child{padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius);background:#f8fbff}.detail-recommendation-summary span{display:block;color:var(--muted);font-size:12px;font-weight:800}.detail-recommendation-summary strong{display:block;margin-top:4px;font-size:20px}.detail-recommendation-summary p{grid-column:1 / -1;margin:0;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2);color:var(--muted)}.detail-table-wrap{margin-top:12px}.detail-table-wrap table{min-width:980px}.detail-grid,.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.account-detail-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.account-detail-card{display:grid;gap:10px;margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.account-baseline-chart{height:220px;min-width:0}.account-edit-table table{min-width:1060px}.account-edit-table tr.selected td{background:#eef5ff}.form-grid{margin-top:12px}.form-row{display:flex;flex-direction:column;gap:7px}.form-row label{color:var(--muted);font-size:13px;font-weight:800}.form-row input,.form-row select{min-height:40px;width:100%;border:1px solid var(--line);border-radius:var(--radius);padding:8px 10px;background:#fff;color:var(--text)}.notice-box{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid #c9d8f8;border-radius:var(--radius);background:#f3f7ff;color:#214d9d;line-height:1.5}.bid-preview{min-height:110px;margin-top:14px;display:flex;flex-direction:column;justify-content:center;gap:8px;padding:16px;border-radius:var(--radius);background:#f7f9fc;border:1px solid var(--line)}.bid-preview span,.bid-preview small{color:var(--muted)}.bid-preview strong{font-size:30px}.two-col{display:grid;grid-template-columns:1fr 1fr}.toast{position:fixed;right:20px;bottom:20px;z-index:70;max-width:420px;min-height:42px;display:flex;align-items:center;gap:9px;padding:10px 14px;border-radius:var(--radius);background:#152033;color:#fff;box-shadow:var(--shadow);font-size:14px}.toast svg{color:#8ce5b8}.screen-shell{min-height:100vh;background:#070b13;color:#eff6ff}.big-screen{min-height:100vh;padding:22px;background:radial-gradient(circle at 30% 10%,rgba(47,111,237,.16),transparent 360px),linear-gradient(180deg,#111827,#070b13)}.screen-top{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:16px}.screen-top p,.screen-top h1{margin:0}.screen-top p{color:#99a7bd;font-weight:800}.screen-top h1{margin-top:6px;font-size:30px}.screen-controls{display:flex;gap:10px}.screen-controls button{min-height:38px;display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid #334155;border-radius:var(--radius);background:#111827;color:#f8fafc;font-weight:800}.screen-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px}.span-screen-4{grid-column:span 4}.span-screen-6{grid-column:span 6}.span-screen-8{grid-column:span 8}.screen-card{min-height:330px;padding:18px;border:1px solid #263247;border-radius:var(--radius);background:#111827e0}.screen-card h2{margin:0 0 14px;font-size:18px}.city-grid.dark .city-tile{background:#0e1726;border-color:#263247}.city-grid.dark .city-tile span,.city-grid.dark .city-tile small{color:#9ca8ba}.screen-products{display:grid;gap:10px}.screen-products>div{min-height:70px;display:grid;grid-template-columns:48px minmax(0,1fr);grid-template-rows:auto auto;column-gap:12px;align-items:center;padding:12px;border:1px solid #263247;border-radius:var(--radius);background:#0e1726}.screen-products span{grid-row:1 / span 2;width:42px;height:42px;display:grid;place-items:center;border-radius:var(--radius);color:#fff;font-weight:800}.screen-products small{color:#99a7bd}.screen-chart{height:260px}.screen-dispatch{display:grid;gap:10px}.screen-dispatch>div{min-height:62px;display:grid;grid-template-columns:100px minmax(0,1fr) 120px 84px;gap:12px;align-items:center;padding:12px;border:1px solid #263247;border-radius:var(--radius);background:#0e1726}.screen-dispatch span,.screen-dispatch i{color:#99a7bd;font-style:normal}.screen-dispatch i.alarm{color:#fca5a5}@media (max-width: 1180px){.app-shell{grid-template-columns:230px minmax(0,1fr)}.metric-grid,.dispatch-grid,.settlement-source-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.span-4,.span-5,.span-6,.span-7,.span-8{grid-column:span 12}.timeline-row,.marketized-board,.decision-chart-grid,.pre-demand-operating-board,.allocation-compare-grid,.process-list.horizontal,.route-lanes,.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pre-demand-operating-board{grid-template-columns:210px minmax(0,1fr)}.matrix-ops-toolbar{grid-template-columns:1fr}.matrix-user-filter-bar{grid-template-columns:minmax(180px,1fr) repeat(2,minmax(120px,1fr)) auto auto}.matrix-user-filter-bar span{justify-self:start}.fill-recommendation-body{flex-direction:column}.fill-summary-card{width:100%;min-width:0}.detail-recommendation-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.matrix-action-row{justify-content:flex-start}.strategy-workspace{grid-template-columns:230px minmax(0,1fr)}.storage-strategy-layout,.smart-strategy-panel,.generic-power-config,.strategy-account-grid,.execution-monitor-board{grid-template-columns:1fr}.strategy-station-info-grid,.execution-event-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.strategy-tree-panel{height:720px}}@media (max-width: 820px){.app-shell{display:block}.sidebar{position:relative;height:auto}.topbar,.hero-panel,.subpage-banner,.product-hero,.strategy-page-toolbar,.strategy-config-head,.matrix-controls,.matrix-title-bar,.matrix-bottom-bar,.section-toolbar{flex-direction:column;align-items:stretch}.page{padding:14px}.matrix-user-filter-bar,.metric-grid,.settlement-source-metrics,.city-grid,.unit-board,.dispatch-grid,.detail-grid,.form-grid,.two-col,.customer-day-layout,.summary-grid,.decision-chart-grid,.detail-recommendation-summary,.pre-demand-operating-board,.allocation-compare-grid,.strategy-workspace,.formal-bid-editor,.matrix-filter-grid,.execution-event-strip,.account-execution-monitor,.account-detail-metric-groups,.account-detail-kpis,.screen-grid,.interval-achievement-strip,.resource-runtime-grid,.execution-side-panel,.command-queue{grid-template-columns:1fr}.strategy-tree-panel{height:320px}.strategy-mode-switch{width:100%}.strategy-mode-switch.four-mode{grid-template-columns:1fr 1fr}.instruction-detail-summary,.strategy-station-info-grid,.settlement-drawer-summary-cards{grid-template-columns:1fr}.demand-slot-panel{max-height:260px}.span-screen-4,.span-screen-6,.span-screen-8{grid-column:span 12}}
