@font-face{font-family:Proxima Nova;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ProximaNova/ProximaNova-Regular.woff2)format("woff2")}@font-face{font-family:Proxima Nova;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ProximaNova/ProximaNova-Semibold.otf)format("opentype")}@font-face{font-family:Proxima Nova;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/ProximaNova/ProximaNova-Bold.woff2)format("woff2")}:root{--color-brand:#36c3fe;--color-brand-hover:#71d4fe;--color-brand-light:#a4e3fe;--color-brand-pale:#effafe;--color-brand-dark:#2da5d8;--color-brand-deep:#237ea5;--color-brand-tint:#e1f6fe;--color-gradient:linear-gradient(to right, #4eacfe, #06ecfe);--color-dark:#283a5b;--color-dark-card:#14284b;--color-dark-border:#364766;--color-dark-muted:#717d92;--color-dark-secondary:#627088;--color-white:#fff;--color-gray-bg:#f5f7fa;--color-gray-subtle:#edf2f9;--color-gray-border:#dde4ed;--color-gray-divider:#d0d6df;--color-gray-muted:#8a94a6;--color-gray-placeholder:#b0b7c3;--color-success:#36ab80;--color-warning:#f7af22;--color-error:#f4541d;--color-info:#0284fe;--color-highlight:#9e77ed;--color-warning-bg:#fefaf1;--series-charging:#36c3fe;--series-grid:#2380a8;--series-solar:#f7af22;--series-battery:#36ab80;--series-unknown:#b0b7c3;--series-power:#dbebff;--text-primary:#283a5b;--text-secondary:#8a94a6;--shadow-s:0 0 2px 0 #1018280f, 0 0 3px 0 #1018281a;--shadow-l:0 0 6px -2px #10182808, 0 0 16px -4px #10182814;--shadow-focus:0 0 0 3px #36c3fe66;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-full:9999px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--sidebar-width:220px;--nav-height:56px}*{box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body,#root{height:100%;margin:0}body{background:var(--color-white);color:var(--text-primary);font-family:Proxima Nova,Inter,-apple-system,Helvetica Neue,sans-serif;font-size:15px;line-height:20px}a{color:var(--color-brand-deep)}html{background:var(--color-white)}.shell{grid-template-columns:var(--sidebar-width) 1fr;height:100vh;display:grid;overflow:hidden}.sidebar{background:var(--color-gray-bg);border-right:1px solid var(--color-gray-border);padding:var(--space-6) 0;z-index:20;height:100vh;position:sticky;top:0}.sidebar__logo{padding:0 var(--space-4) var(--space-4)}.sidebar__group-label{letter-spacing:.02em;color:var(--color-gray-muted);padding:var(--space-4) 18px 4px;font-size:11px;font-weight:500}.sidebar__item{text-align:left;border-radius:var(--radius-md);width:calc(100% - 16px);font:inherit;color:var(--color-dark);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none;margin:1px 8px;padding:7px 10px;font-size:15px;font-weight:400;line-height:20px;display:block}.sidebar__item:hover{background:var(--color-brand-tint)}.sidebar__item.is-active{color:var(--color-brand);font-weight:600}.sidebar__item:focus-visible,.btn:focus-visible,.input:focus-visible,.period-group__btn:focus-visible{box-shadow:var(--shadow-focus);outline:none}.settings-section{margin-top:var(--space-2)}.settings-section h2{margin:0;font-size:19px;font-weight:600;line-height:28px}.settings-section p{color:var(--color-gray-muted);margin:2px 0 0;font-size:13px}.main{background:var(--color-white);overscroll-behavior:contain;min-width:0;height:100vh;overflow-y:auto}.sidebar__status{margin:var(--space-2) var(--space-3) 0;padding:0 10px;display:flex}.sidebar__status .status-label{font-size:13px}@media (width<=1100px){.sidebar__status{justify-content:center;padding:0}.sidebar__status .status-label__icon{margin-right:0}}.page{padding:var(--space-6) var(--space-8) var(--space-8);gap:var(--space-6);flex-direction:column;max-width:1440px;display:flex}.page--wide{max-width:none}.page--wide .page-header{max-width:calc(1440px - 2 * var(--space-8));width:100%}.page-header h1{letter-spacing:-.02em;margin:0;font-size:29px;font-weight:700;line-height:36px}.page-header p{color:var(--color-gray-muted);margin:4px 0 0}.card{background:var(--color-white);border-radius:var(--radius-lg);padding:var(--space-6);border:1px solid var(--color-gray-border);box-shadow:var(--shadow-s)}.card__title{margin:0 0 4px;font-size:17px;font-weight:600}.card__headline{justify-content:space-between;align-items:center;gap:16px;margin-bottom:4px;display:flex}.card__headline>.card__title{min-width:0;margin:0}.card__headline>:last-child:not(.card__title){flex:none}.batteries .card:has(.recharts-wrapper):not(:has(.card__figure)) .card__title{margin-bottom:20px}.card__figure{margin:2px 0 var(--space-4);letter-spacing:-.01em;color:var(--color-gray-muted);font-variant-numeric:tabular-nums;font-size:26px;font-weight:400;line-height:32px}.card__sub{color:var(--color-gray-muted);margin:0 0 var(--space-4);font-size:13px}.card:has(.recharts-wrapper,.gantt) .card__sub{font-size:14px}.kpi-row{gap:var(--space-6);grid-template-columns:repeat(4,1fr);display:grid}.kpi-row--5{gap:var(--space-4);grid-template-columns:repeat(5,1fr)}.kpi-row--5 .card-metric__value{font-size:28px;line-height:36px}.kpi-row--6{gap:var(--space-3);grid-template-columns:repeat(6,1fr)}.kpi-row--6 .card-metric__value{font-size:25px;line-height:32px}@media (width<=1500px){.kpi-row--6{grid-template-columns:repeat(3,1fr)}}@media (width<=1100px){.kpi-row--6{grid-template-columns:repeat(2,1fr)}}@media (width<=1300px){.kpi-row--5{grid-template-columns:repeat(3,1fr)}}@media (width<=1100px){.kpi-row--5,.kpi-row{grid-template-columns:repeat(2,1fr)}.shell{grid-template-columns:60px 1fr}.sidebar__item span,.sidebar__group-label,.sidebar__logo,.sidebar__status-text{display:none}.sidebar__item{justify-content:center;padding:8px 0}}.card-metric{background:var(--color-white);border-radius:var(--radius-lg);border:1px solid var(--color-gray-border);box-shadow:var(--shadow-xs);color:var(--text-primary);min-width:0;padding:18px 20px}.card-metric__label{color:var(--color-gray-muted);white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.card-metric__row{justify-content:space-between;align-items:center;gap:8px;margin-top:6px;display:flex}.card-metric__value{letter-spacing:-.02em;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:32px;font-weight:700;line-height:40px;overflow:hidden}.card-metric__trend{border:1px solid var(--color-gray-border);border-radius:var(--radius-sm);color:var(--text-primary);background:var(--color-white);font-variant-numeric:tabular-nums;flex:none;align-items:center;gap:3px;padding:2px 7px;font-size:13px;font-weight:500;display:inline-flex}.card-metric__trend--up svg{color:var(--color-success)}.card-metric__trend--down svg{color:var(--color-error)}.card-metric__trend--flat svg{color:var(--color-gray-muted)}.card-metric__delta{color:var(--color-gray-muted);white-space:nowrap;text-overflow:ellipsis;margin-top:6px;font-size:13px;overflow:hidden}.card-metric__delta.is-good{color:var(--color-success)}.card-metric__delta.is-bad{color:var(--color-error)}.grid-2{gap:var(--space-6);grid-template-columns:1fr 1fr;display:grid}.grid-3{gap:var(--space-6);grid-template-columns:repeat(3,1fr);display:grid}.grid-2>*,.grid-3>*{min-width:0}@media (width<=1300px){.grid-3{grid-template-columns:1fr 1fr}}@media (width<=1100px){.grid-2,.grid-3{grid-template-columns:1fr}}.toolbar{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.input{background:var(--color-white);border:1px solid var(--color-gray-divider);border-radius:var(--radius-sm);height:36px;font:inherit;color:var(--text-primary);padding:0 12px}.input:focus{border-color:var(--color-brand);box-shadow:var(--shadow-focus);outline:none}.form-row{align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.form-row .input{width:200px}.plain-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.input-label{margin-bottom:4px;font-size:13px;font-weight:500;display:block}.input-helper{color:var(--color-gray-muted);margin-top:4px;font-size:13px}.field{flex-direction:column;display:flex}.form-subhead{color:var(--color-gray-muted);margin:12px 0 8px;font-size:13px;font-weight:600}.form-section__title+.form-subhead{margin-top:0}.form-grid{gap:var(--space-4) var(--space-6);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.input{width:100%;min-width:0}.btn{font:inherit;border-radius:var(--radius-md);cursor:pointer;border:none;padding:10px 20px;font-size:15px;font-weight:600;transition:filter .15s,box-shadow .15s}.btn-primary{background:var(--color-brand);color:#fff;border-radius:10px;padding:8px 18px;font-weight:600;transition:background-color .2s}.btn-primary.btn-sm{border-radius:8px;padding:5px 12px}.btn-primary:hover:not(:disabled){background:var(--color-brand-dark,#2da5d8)}.btn-secondary{color:var(--color-brand);border:1.5px solid var(--color-brand);background:0 0;border-radius:10px;padding:6.5px 16.5px;font-weight:600;transition:background-color .2s}.btn-secondary.btn-sm{border-radius:8px;padding:3.5px 10.5px}.btn-secondary:hover:not(:disabled){background:var(--color-brand-pale)}.btn-ghost{color:var(--color-gray-muted);background:0 0;padding:8px 16px;font-weight:400}.btn-ghost:hover{background:var(--color-gray-subtle);color:var(--text-primary)}.btn:disabled{background:var(--color-gray-divider);color:var(--color-gray-placeholder);cursor:not-allowed}.period-group{white-space:nowrap;border:1px solid var(--color-gray-border);background:var(--color-gray-subtle);border-radius:10px;flex-shrink:0;align-items:stretch;gap:2px;padding:3px;display:inline-flex}.period-group__btn{font:inherit;color:var(--color-gray-muted);cursor:pointer;transition:background var(--transition-fast,.1s ease), color var(--transition-fast,.1s ease);background:0 0;border:1px solid #0000;border-radius:7px;padding:5px 14px;font-size:14px;font-weight:500;line-height:20px}.period-group__btn:hover:not(.is-active):not(:disabled){color:var(--text-primary)}.period-group__btn.is-active{background:var(--color-white);color:var(--text-primary);border-color:var(--color-gray-border);font-weight:600;box-shadow:0 1px 2px #10182814}.period-group__btn:disabled{cursor:default;opacity:.5}.checkbox{align-items:center;gap:8px;font-size:15px;display:inline-flex}.data-table{border-collapse:collapse;width:100%}.data-table thead th{color:var(--color-gray-muted);text-align:left;border-bottom:1px solid var(--color-gray-border);background:var(--color-white);padding:12px 16px;font-size:14px;font-weight:500;position:sticky;top:0}.data-table tbody td{border-bottom:1px solid var(--color-gray-divider);height:48px;padding:0 16px;transition:background-color .25s}.data-table tbody tr:hover td{background:#f8fafc}.data-table tbody tr.is-selected td{background:var(--color-brand-pale)}.td-number{font-variant-numeric:tabular-nums;text-align:right}.data-table thead th.td-number{text-align:right}.td-entity__name{font-weight:600}.td-entity__sub{color:var(--color-gray-muted);font-size:13px}.table-scroll{max-height:520px;overflow:auto}.badge{border-radius:var(--radius-xs);text-transform:uppercase;letter-spacing:.08em;padding:2px 8px;font-size:11px;font-weight:600}.badge--success{color:var(--color-success);background:#f5fbf8}.badge--warning{color:var(--color-warning);background:#fefaf1}.badge--error{color:var(--color-error);background:#fef6f3}.badge--info{color:var(--color-info);background:#eef7ff}.badge--neutral{background:var(--color-gray-subtle);color:var(--color-gray-muted)}.badge--highlight{color:var(--color-highlight);background:#f9f5ff}.badge--brand{background:var(--color-brand-pale);color:var(--color-brand-deep)}.status-label{white-space:nowrap;border-radius:4px;align-items:center;padding:2px 6px;font-size:14px;font-weight:600;line-height:18px;display:inline-flex}.status-label__icon{flex:none;margin-right:4px}.status-label--success{color:#5aa983;background:#ecf7f2}.status-label--brand{color:#62bef8;background:#e5f4fd}.status-label--warning{color:#ecb346;background:#fdf6e9}.status-label--error{color:#ee7a52;background:#fdefea}.status-label--neutral{color:#8a94a6;background:#f1f3f6}.status-label--info{color:#4a97ee;background:#e9f2fd}.status-label--highlight{color:#a07feb;background:#f4effd}.legend{color:var(--color-gray-muted);flex-wrap:wrap;gap:16px;margin-top:8px;font-size:13px;display:flex}.legend__item{align-items:center;gap:6px;display:inline-flex}.legend__swatch{border-radius:3px;width:14px;height:14px}.legend--table{padding:0 var(--space-4);margin-top:12px}.card-alert{background:var(--color-white);border-left:3px solid var(--color-brand);border-radius:0 var(--radius-md) var(--radius-md) 0;padding:16px 20px}.card-alert--warning{border-left-color:var(--color-warning)}.card-alert--filled.card-alert--warning{background:#fefaf1}.notice-block{border-radius:var(--radius-md);color:var(--text-primary);align-items:flex-start;gap:12px;padding:14px 18px;font-size:15px;line-height:1.45;display:flex}.notice-block>svg{flex:none;width:20px;height:20px;margin-top:1px}.notice-block--warning{background:var(--color-warning-bg)}.notice-block--warning>svg{color:var(--color-warning)}.card-alert--highlight{border-left-color:var(--color-highlight)}.muted{color:var(--color-gray-muted)}.empty{padding:var(--space-8);text-align:center;color:var(--color-gray-muted)}.empty h3{color:var(--text-primary);margin:0 0 4px}.chart-tip,.chart-tooltip,.sankey__tip{background:var(--color-white);border:1px solid var(--color-gray-border);border-radius:var(--radius-md);padding:8px 10px}.chart-tip{box-shadow:var(--shadow-l);color:var(--text-primary);font-size:13px}.chart-tip__title{margin-bottom:4px;font-weight:600}.chart-tip table{border-collapse:collapse}.chart-tip th{color:var(--color-gray-muted);text-align:right;padding:0 0 2px 12px;font-weight:500}.chart-tip td{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;padding:1px 0 1px 12px}.chart-tip td:first-child{text-align:left;padding-left:0}.chart-tip__swatch{vertical-align:middle;border-radius:2px;width:8px;height:8px;margin-right:6px;display:inline-block}.recharts-cartesian-grid line{stroke:var(--color-gray-subtle,#edf2f9)}.recharts-cartesian-axis-line,.recharts-cartesian-axis-tick-line{stroke:var(--color-gray-border,#dde4ed)}.recharts-default-tooltip{box-shadow:var(--shadow-l);font-size:13px;border:1px solid var(--color-gray-border)!important;border-radius:8px!important}.switcher{padding:0 var(--space-3) var(--space-4);position:relative}.switcher__button{border:1px solid var(--color-gray-border);border-radius:var(--radius-md);background:var(--color-white);width:100%;font:inherit;text-align:left;cursor:pointer;color:var(--text-primary);align-items:center;gap:10px;padding:8px 10px;display:flex}.switcher__button:hover{background:var(--color-gray-subtle)}.switcher__button:focus-visible{box-shadow:var(--shadow-focus);outline:none}.switcher__avatar{background:var(--color-dark);width:34px;height:34px;color:var(--color-white);letter-spacing:.02em;border-radius:8px;flex:0 0 34px;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:inline-flex}.switcher__avatar--sm{flex-basis:30px;width:30px;height:30px;font-size:12px}.switcher__text{flex-direction:column;flex:1;min-width:0;display:flex}.switcher__name{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;line-height:18px;overflow:hidden}.switcher__sub{color:var(--color-gray-muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;line-height:15px;overflow:hidden}.switcher__chevron{color:var(--color-gray-muted);flex:none;margin-right:4px}.popover{left:var(--space-3);z-index:30;background:var(--color-white);border:1px solid var(--color-gray-border);border-radius:var(--radius-lg);width:300px;box-shadow:var(--shadow-xl,0 0 24px -4px #1018281f);padding:6px;position:absolute;top:calc(100% - 8px)}.popover__row{border-radius:var(--radius-md);width:100%;font:inherit;text-align:left;cursor:pointer;color:var(--text-primary);background:0 0;border:none;align-items:center;gap:10px;padding:8px 10px;display:flex}.popover__row:hover{background:var(--color-gray-subtle)}.popover__row+.popover__row{border-top:1px solid var(--color-gray-subtle);border-radius:0 0 var(--radius-md) var(--radius-md)}.popover__footer{border-top:1px solid var(--color-gray-border);margin-top:4px;padding:8px 6px 4px}.radio{border:1.5px solid var(--color-gray-divider);background:var(--color-white);border-radius:9999px;flex:0 0 18px;width:18px;height:18px;position:relative}.radio.is-on{border-color:var(--color-brand)}.radio.is-on:after{content:"";background:var(--color-brand);border-radius:9999px;position:absolute;inset:3.5px}.sidebar__item{align-items:center;gap:10px;display:flex}.sidebar__icon{color:currentColor;flex:0 0 18px;width:18px;height:18px}@media (width<=1100px){.switcher__text,.switcher__chevron{display:none}.switcher{padding:0 8px 16px}.switcher__button{justify-content:center;padding:6px}.popover{left:8px}}.dialog-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#283a5b47;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.dialog{background:var(--color-white);border-radius:var(--radius-lg);width:min(720px,100%);box-shadow:var(--shadow-xxl,0 0 48px -12px #1018282e);max-height:90vh;padding:20px 24px 24px;overflow:auto}.dialog__header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.dialog__header h2{margin:0;font-size:21px;font-weight:600;line-height:30px}.dialog--form{width:min(920px,100%);padding-bottom:0}.dialog--form .form-footer{background:var(--color-white);border-top:1px solid var(--color-gray-border);z-index:1;margin-top:8px;padding:12px 0 20px;position:sticky;bottom:0}.choice-grid{grid-template-columns:1fr 1fr;gap:16px;margin-top:12px;display:grid}@media (width<=700px){.choice-grid{grid-template-columns:1fr}}.choice{text-align:left;border:1px solid var(--color-gray-border);border-radius:var(--radius-lg);background:var(--color-white);font:inherit;cursor:pointer;color:var(--text-primary);flex-direction:column;gap:8px;padding:18px;display:flex}.choice:hover{border-color:var(--color-brand);background:var(--color-brand-pale)}.choice:focus-visible{box-shadow:var(--shadow-focus);outline:none}.choice__icon{background:var(--color-dark-card);width:36px;height:36px;color:var(--color-white);border-radius:8px;justify-content:center;align-items:center;font-size:19px;display:inline-flex}.choice__title{font-size:16px;font-weight:600}.choice__text{color:var(--color-gray-muted);font-size:14px;line-height:18px}.filedrop{border:1.5px dashed var(--color-gray-divider);border-radius:var(--radius-md);background:var(--color-gray-bg);cursor:pointer;align-items:center;gap:12px;min-height:64px;padding:12px 14px;transition:border-color .15s,background .15s;display:flex}.filedrop:hover{border-color:var(--color-brand);background:var(--color-brand-pale)}.filedrop:focus-visible{box-shadow:var(--shadow-focus);outline:none}.filedrop.is-over{border-color:var(--color-brand);background:var(--color-brand-pale);border-style:solid}.filedrop.has-file{border-style:solid;border-color:var(--color-success);background:#f5fbf8}.filedrop__icon{background:var(--color-white);border:1px solid var(--color-gray-border);border-radius:8px;flex:0 0 34px;justify-content:center;align-items:center;width:34px;height:34px;font-size:17px;display:inline-flex}.filedrop__text{flex-direction:column;flex:1;min-width:0;display:flex}.filedrop__name{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.filedrop__sub{color:var(--color-gray-muted);font-size:12px}.filedrop__clear{padding:4px 8px}.suggest{z-index:200;background:var(--color-white);border:1px solid var(--color-gray-border);border-radius:var(--radius-md);box-shadow:var(--shadow-xl,0 0 24px -4px #1018281f);max-height:320px;padding:4px;position:fixed;overflow:auto}.suggest__row{border-radius:var(--radius-sm);width:100%;font:inherit;text-align:left;cursor:pointer;color:var(--text-primary);background:0 0;border:none;align-items:center;gap:10px;padding:8px 10px;display:flex}.suggest__row:hover:not(:disabled){background:var(--color-gray-subtle)}.suggest__row:disabled{opacity:.55;cursor:not-allowed}.card-alert--info{border-left-color:var(--color-info)}.progress{background:var(--color-gray-subtle);border-radius:9999px;height:8px;overflow:hidden}.progress__bar{background:var(--color-gradient);height:100%;transition:width .4s}.section-title{color:var(--text-primary);margin:8px 0 0;font-size:19px;font-weight:600;line-height:28px}.login-backdrop{z-index:1000;-webkit-backdrop-filter:blur(10px);background:#f5f7fa80;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.login-card{background:var(--color-white);border-radius:20px;width:440px;max-width:calc(100vw - 48px);padding:40px;box-shadow:0 24px 60px #0a1f4438}.login-eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--color-brand-deep);font-size:12px;font-weight:600}.login-bar{background:var(--color-brand);border-radius:2px;width:48px;height:3px;margin-top:10px}.login-title{letter-spacing:-.02em;color:var(--color-dark);margin:18px 0 0;font-size:31px;font-weight:700;line-height:1.2}.login-text{color:var(--color-dark-secondary);margin:10px 0 0;font-size:16px;line-height:1.5}.login-form{flex-direction:column;gap:14px;margin-top:26px;display:flex}.login-label{color:var(--color-dark);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.login-error{color:var(--color-error);font-size:14px}.login-card .input{height:auto;padding:10px 14px;font-size:15px;line-height:20px;transition:border-color .15s,box-shadow .15s}.login-card .input:focus{border-color:var(--color-brand);box-shadow:0 0 0 3px #36c3fe33}.login-submit{width:100%;color:var(--color-white);background:var(--color-gradient);border-radius:var(--radius-md);cursor:pointer;border:none;justify-content:center;align-items:center;margin-top:8px;padding:12px 24px;font-size:15px;font-weight:600;line-height:1;transition:filter .15s,transform .1s,box-shadow .15s;display:inline-flex}.login-submit:hover:not(:disabled){filter:brightness(1.08);box-shadow:0 0 20px -4px #36c3fe59}.login-submit:active:not(:disabled){transform:scale(.97)}.login-label-row{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.login-link{font:inherit;cursor:pointer;background:0 0;border:none;margin-bottom:6px;padding:0;font-size:13px}.login-actions{align-items:center;gap:20px;margin-top:8px;display:flex}.login-actions .login-submit{flex:auto;width:auto;margin-top:0}.login-actions .login-link{white-space:nowrap;flex:none;margin:0;font-size:15px}.login-product{white-space:nowrap}.login-not-me{font-size:inherit;margin:0}.login-not-me-row{margin-top:12px}.login-code{letter-spacing:.3em;font-variant-numeric:tabular-nums;font-size:21px!important}a.login-submit{box-sizing:border-box;text-decoration:none}.login-submit:disabled{background:var(--color-gray-divider);color:var(--color-gray-placeholder);cursor:not-allowed}.login-notice{border-left:3px solid var(--color-warning);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--text-primary);background:#fefaf1;margin-top:16px;padding:10px 14px;font-size:15px}.shell.is-locked>.sidebar,.shell.is-locked>.main{filter:blur(2px);pointer-events:none;-webkit-user-select:none;user-select:none}.dayscroll{align-items:stretch;display:flex}.dayscroll__axis{flex:0 0 70px;width:70px}.dayscroll__main{flex:auto;min-width:0}.dayscroll__scroll{overflow:auto hidden}.dayscroll .hscroll__fade{width:48px}.dayscroll .hscroll__fade--left .hscroll__btn{left:10px}.action-bar{background:var(--color-dark);color:var(--color-white);box-shadow:var(--shadow-xxl,0 0 48px -12px #10182847);z-index:200;border-radius:9999px;align-items:center;gap:12px;padding:10px 18px;font-size:15px;font-weight:500;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.action-bar,.action-bar .btn,.action-bar span{white-space:nowrap}.action-bar .btn{padding:6px 12px}.action-bar__sep{background:#fff3;width:1px;height:20px}.action-bar .btn-ghost{color:#ffffffd9}.action-bar .btn-ghost:hover:not(:disabled){color:var(--color-white);background:#ffffff1f}.action-bar .input{height:32px}.action-bar--page{margin-top:var(--space-4);z-index:60;align-self:center;position:sticky;left:auto;transform:none}.action-bar--page .btn-primary:disabled{color:#ffffff8c;background:#ffffff2e}.input--usual{color:var(--color-gray-muted);border-style:dashed}.input--usual:not(.input--inline):focus{color:var(--text-primary);border-style:solid}.input--inline,.data-table--fixed .input--inline{border:none;border-bottom:1px dashed var(--color-gray-divider);background:0 0;border-radius:0;height:20px;padding:0 2px;font-size:15px;line-height:20px}.input--inline.input--usual{color:var(--color-gray-muted);border-bottom-style:dashed}.input--inline:not(.input--usual){border-bottom-color:var(--text-primary)}.input--inline:focus,.input--inline.input--usual:focus{box-shadow:none;border-bottom:1px solid var(--color-brand);color:var(--text-primary)}.input--inline:disabled{color:var(--color-gray-placeholder);background:0 0;border-bottom-style:dotted}.input--inline::-webkit-calendar-picker-indicator{display:none}.input--inline::placeholder{color:var(--color-gray-placeholder)}.td-measured{color:var(--text-primary);font-variant-numeric:tabular-nums}.data-table--fixed{table-layout:fixed;width:100%}.data-table--fixed td,.data-table--fixed th{text-overflow:ellipsis;overflow:hidden}.data-table--fixed .td-entity__name,.data-table--fixed .td-entity__sub{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.data-table--fixed .btn{padding:4px 6px;font-size:14px}.data-table--fixed tbody td,.data-table--fixed thead th{padding-left:8px;padding-right:8px}.data-table--fixed .input{padding:0 6px}.data-table--fixed td:last-child{white-space:nowrap}.kpi-row--3{grid-template-columns:repeat(3,1fr)}@media (width<=1100px){.kpi-row--3{grid-template-columns:repeat(2,1fr)}}.cost-split{gap:var(--space-4);flex-direction:column;height:100%;display:flex}.cost-split__head{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.cost-split__head .card__title,.cost-split__head .card__sub{margin:0}.cost-split__grid{align-items:end;gap:var(--space-3);grid-template-columns:1fr auto 1fr auto 1fr;display:grid}.cost-split__label{color:var(--color-gray-muted);margin-bottom:4px;font-size:13px;font-weight:500}.cost-split__value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:25px;font-weight:700;line-height:32px}.cost-split__op{color:var(--color-gray-placeholder);padding-bottom:6px;font-size:17px}.cost-split__item--save .cost-split__value{color:var(--color-success)}.cost-split__pct{border-radius:var(--radius-xs);background:#f5fbf8;margin-left:6px;padding:2px 6px;font-size:13px;font-weight:600}.cost-split__bar{border-radius:var(--radius-full);background:#36ab8038;height:10px;overflow:hidden}.cost-split__bar-fill{background:var(--color-brand);border-right:2px solid var(--color-white);height:100%}.cost-split__note{color:var(--color-gray-muted);margin:0;font-size:13px}@media (width<=900px){.cost-split__grid{grid-template-columns:1fr}.cost-split__op{display:none}}.setpoints table{border-collapse:separate;border-spacing:0;width:auto}.setpoints .setpoints__sticky{background:var(--color-white);z-index:2;white-space:nowrap;position:sticky;left:0}.setpoints .setpoints__sticky--2{left:var(--sp-col1,190px);padding-right:4px}.setpoints thead .setpoints__sticky{z-index:3}.setpoints .setpoints__slot{font-variant-numeric:tabular-nums;min-width:44px;padding-left:6px;padding-right:6px}.setpoints .setpoints__slot--quarter{border-left:1px solid var(--color-gray-border)}.setpoints thead .setpoints__slot:not(.setpoints__slot--quarter){color:var(--color-gray-placeholder);font-weight:400}.setpoints .setpoints__on{background:#36c3fe1a}.setpoints .setpoints__off{color:var(--color-gray-placeholder)}.setpoints .setpoints__bar{justify-content:center;align-items:flex-end;height:28px;display:flex}.setpoints .setpoints__bar:not(.setpoints__bar--signed)>span{background:var(--color-brand);border-radius:3px 3px 0 0;width:70%;min-height:1px}.setpoints .setpoints__off .setpoints__bar:not(.setpoints__bar--signed)>span{background:var(--color-gray-divider)}.setpoints tbody tr.is-priority .setpoints__bar:not(.setpoints__bar--signed)>span{background:var(--color-highlight)}.setpoints .setpoints__bar--signed{flex-direction:column;justify-content:stretch;align-items:stretch;height:40px}.setpoints .setpoints__bar-up,.setpoints .setpoints__bar-down{flex:1;justify-content:center;display:flex}.setpoints .setpoints__bar-up{border-bottom:1px solid var(--color-gray-divider);align-items:flex-end}.setpoints .setpoints__bar-down{align-items:flex-start}.setpoints .setpoints__bar-up>span,.setpoints .setpoints__bar-down>span{background:var(--series-battery,#36ab80);width:70%}.setpoints .setpoints__bar-up>span{border-radius:3px 3px 0 0}.setpoints .setpoints__bar-down>span{border-radius:0 0 3px 3px}.hover-tip{pointer-events:none;width:auto;min-width:180px;max-width:320px}.setpoints .setpoints__slot--provisional{background:#f7af2214;font-style:italic}.setpoints .setpoints__slot--provisional.setpoints__on{background:linear-gradient(#36c3fe1a,#36c3fe1a),#f7af2214}.setpoints .setpoints__total td{border-top:2px solid var(--color-gray-border)}.setpoints tbody tr:last-child td{box-shadow:inset 0 -1px 0 var(--color-gray-divider);border-bottom-color:#0000}.setpoints .setpoints__free{color:var(--color-gray-placeholder);font-style:italic}.cp-free{color:var(--color-gray-placeholder);white-space:nowrap;font-style:italic}.setpoints .setpoints__free{white-space:nowrap}.table-scroll.setpoints{max-height:none;overflow:auto visible}.cost-split__bar--revenue{background:var(--color-success);justify-content:flex-end;display:flex}.cost-split__bar--revenue .cost-split__bar-fill{border-right:none;border-left:2px solid var(--color-white);background:#bfe6d6}.cost-split__bar--revenue+.cost-split__legend .cost-split__legend-extra{color:var(--color-success)}.cost-split__legend{justify-content:space-between;gap:var(--space-3);color:var(--color-gray-muted);margin-top:-8px;font-size:13px;display:flex}.cost-split__legend-extra{color:var(--color-brand-deep);font-weight:600}.cost-split__legend-extra--saved{color:var(--color-success)}.cost-split__ref{color:var(--color-brand-deep);align-self:flex-start;margin-top:auto;padding:2px 0;font-size:13px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.dialog .card{box-shadow:none;border:none;padding:0}.cost-split__item--over .cost-split__value{color:var(--color-error)}.cost-split__bar--over{background:var(--color-gray-subtle);justify-content:flex-end;display:flex}.cost-split__bar--over .cost-split__bar-fill{background:var(--color-error);border-right:none;border-left:2px solid var(--color-white)}.cost-split__legend-extra--over{color:var(--color-error)}.diffbar{flex-direction:column;gap:6px;display:flex}.diffbar__track{align-items:center;height:10px;display:flex}.diffbar__half{flex:1;height:100%;display:flex}.diffbar__half--neg{justify-content:flex-end}.diffbar__zero{background:var(--color-dark);opacity:.5;width:2px;height:16px}.diffbar__seg{height:100%}.diffbar__seg--neg{background:var(--color-success)}.diffbar__seg--pos{background:var(--color-error)}.diffbar__seg--neg.diffbar__seg--replan{background:#bfe6d6}.diffbar__seg--pos.diffbar__seg--replan{background:#f9b9a2}.diffbar__half--neg .diffbar__seg:first-child{border-radius:9999px 0 0 9999px}.diffbar__half--pos .diffbar__seg:last-child{border-radius:0 9999px 9999px 0}.diffbar__seg+.diffbar__seg{border-left:2px solid var(--color-white)}.diffbar__legend{color:var(--color-gray-muted);flex-wrap:wrap;gap:4px 14px;font-size:13px;display:flex}.diffbar__swatch{vertical-align:-1px;border-radius:2px;width:10px;height:10px;margin-right:5px;display:inline-block}.diffbar__good{color:var(--color-success);font-weight:600}.diffbar__bad{color:var(--color-error);font-weight:600}.diffbar__total{color:var(--text-primary);margin-left:auto;font-weight:600}.depcell{align-items:baseline;gap:2px;display:inline-flex}.depcell .input--inline,.data-table .depcell .input.input--inline{text-align:left;font-variant-numeric:tabular-nums;width:44px;padding:0 1px}.depcell .input--inline.is-error{border-bottom:1px solid var(--color-error);color:var(--color-error)}.depcell__day{color:var(--color-gray-muted);font-size:13px}.depcell__star{color:var(--color-gray-muted);font-weight:600}.input--inline.is-error,.input.is-error{border-color:var(--color-error);border-bottom-color:var(--color-error);color:var(--color-error)}.setpoints .td-entity__sub{font-weight:400;line-height:14px}.setpoints thead th{vertical-align:bottom}.setpoints thead th.setpoints__slot{padding-top:22px;position:relative}.setpoints__daymark{color:var(--text-primary);white-space:nowrap;font-size:13px;font-weight:600;position:absolute;top:4px;right:6px}.form-section{padding:var(--space-5) 0;border-top:1px solid var(--color-gray-border)}.form-section:first-of-type{border-top:none;padding-top:0}.form-section__title{margin:0 0 var(--space-3);color:var(--text-primary);font-size:15px;font-weight:600}.form-grid--wide{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.idlist{gap:6px}.idlist__row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.idlist__row .input{font-variant-numeric:tabular-nums;flex:1}.idlist__row .btn-icon{flex:none;font-size:17px;line-height:1}.idlist__row .btn-icon:disabled{opacity:.4;cursor:default}.btn.idlist__add{align-self:flex-start;padding:4px 8px;font-size:14px}.input-unit{display:block;position:relative}.input-unit .input{padding-right:44px}.input-unit__label{color:var(--color-gray-muted);pointer-events:none;font-size:14px;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.form-footer{align-items:center;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--color-gray-border);flex-wrap:wrap;display:flex}.btn-icon{border-radius:var(--radius-sm);border:1px solid var(--color-gray-border);background:var(--color-white);width:32px;height:32px;color:var(--color-gray-muted);cursor:pointer;justify-content:center;align-items:center;display:inline-flex}.btn-icon:hover:not(:disabled){background:var(--color-gray-subtle);color:var(--text-primary)}.btn-icon:focus-visible{box-shadow:var(--shadow-focus);outline:none}.btn-icon:disabled{opacity:.45;cursor:default}.input-error-msg,.input-helper.input-error-msg{color:var(--color-error);font-size:13px}.link-button{font:inherit;color:var(--color-brand-deep);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;text-decoration:underline}.link-button:disabled{color:var(--color-gray-placeholder);cursor:default;text-decoration:none}.btn-icon--ghost{background:0 0;border-color:#0000}.btn-icon--danger:hover:not(:disabled){color:var(--color-error);background:#f4541d14}.row-actions .btn-icon+.btn-icon{margin-left:2px}a.sidebar__item{box-sizing:border-box;text-decoration:none}.period-group--form{align-self:flex-start}.period-group--form .period-group__btn{height:30px;padding:0 14px;font-size:15px}.btn-destructive{color:var(--color-error);background:#f4541d14;border:none;font-weight:600}.btn-destructive:hover:not(:disabled){background:var(--color-error);color:var(--color-white)}.danger-zone{align-items:center;gap:var(--space-4);margin-top:var(--space-8);padding-top:var(--space-6);border-top:1px solid var(--color-gray-border);display:flex}.setpoints thead th{white-space:nowrap}.idlist__hint{color:var(--color-gray-muted);flex-basis:100%;margin-top:-2px;font-size:13px}.sidebar{flex-direction:column;display:flex}.account{padding:var(--space-4) var(--space-3) 0;margin-top:auto;position:relative}.account__button{border:1px solid var(--color-gray-border);border-radius:var(--radius-md);background:var(--color-white);width:100%;font:inherit;color:var(--text-primary);text-align:left;cursor:pointer;align-items:center;gap:10px;padding:8px 10px;display:flex}.account__button:hover{background:var(--color-gray-subtle)}.account__button:focus-visible{box-shadow:var(--shadow-focus);outline:none}.account__avatar{background:var(--color-gray-subtle);width:34px;height:34px;color:var(--text-primary);border-radius:8px;flex:0 0 34px;justify-content:center;align-items:center;font-size:13px;font-weight:600;display:inline-flex;position:relative}.account__dot{background:var(--color-success);border:2px solid var(--color-white);border-radius:50%;width:10px;height:10px;position:absolute;bottom:-3px;right:-3px}.account__text{flex-direction:column;flex:1;min-width:0;display:flex}.account__name{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;line-height:18px;overflow:hidden}.account__email{color:var(--color-gray-muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;line-height:15px;overflow:hidden}.account__more{color:var(--color-gray-muted);flex:none;margin-right:2px}.account__menu{z-index:30;background:var(--color-white);border:1px solid var(--color-gray-border);border-radius:var(--radius-lg);width:280px;box-shadow:var(--shadow-xl);padding:6px;position:absolute;bottom:0;left:calc(100% + 8px)}.account__head{border-bottom:1px solid var(--color-gray-border);align-items:center;gap:10px;margin-bottom:4px;padding:8px 10px 10px;display:flex}.account__item{border-radius:var(--radius-md);width:100%;font:inherit;color:var(--color-gray-muted);cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;padding:9px 10px;font-size:15px;font-weight:500;display:flex}.account__item:hover{background:var(--color-gray-subtle);color:var(--text-primary)}@media (width<=1100px){.account{padding:var(--space-4) 8px 0}.account__button{justify-content:center;padding:6px}.account__button .account__text,.account__more{display:none}}.account__row{color:var(--color-gray-muted);border-bottom:1px solid var(--color-gray-subtle);justify-content:space-between;align-items:center;margin-bottom:4px;padding:6px 10px 8px;font-size:15px;font-weight:500;display:flex}.table-scroll.table-scroll--full{max-height:none;overflow-y:visible}.prio-btn{border-radius:var(--radius-sm);width:30px;height:30px;color:var(--color-gray-placeholder);cursor:pointer;background:0 0;border:1px solid #0000;flex:none;justify-content:center;align-items:center;display:inline-flex}.prio-btn:hover:not(:disabled){color:var(--text-primary)}.prio-btn.is-on{color:var(--color-highlight)}.prio-btn.is-on:hover:not(:disabled){color:#7f56d9;background:0 0}.prio-btn:disabled{cursor:default;opacity:.7}.prio-btn--empty,.prio-btn--empty:disabled{color:var(--color-gray-border);opacity:1}.prio-btn:focus-visible{box-shadow:var(--shadow-focus);outline:none}.setpoints .setpoints__prio{text-align:center;padding-left:6px;padding-right:6px}.plate{vertical-align:middle;border:1px solid #1b1b1b;border-radius:3px;align-items:stretch;height:20px;line-height:1;display:inline-flex;overflow:hidden}.plate--nl{color:#111;background:#ffcd00}.plate--be{color:#a6192e;background:#fff;border-color:#a6192e}.plate--de{color:#111;background:#fff}.plate__eu{color:#fff;letter-spacing:0;background:#039;justify-content:center;align-items:flex-end;width:12px;padding-bottom:2px;font-size:8px;font-weight:700;display:inline-flex}.charge-card{border:1px solid var(--color-gray-divider);vertical-align:middle;background:#fff;border-radius:4px;align-items:center;gap:5px;height:20px;padding:0 7px 0 5px;line-height:1;display:inline-flex;box-shadow:0 1px 2px #10182814}.charge-card__chip{background:linear-gradient(135deg,#ebcb7a 0%,#c9a43a 55%,#e2be5c 100%);border-radius:2px;flex:none;width:10px;height:8px;box-shadow:inset 0 0 0 1px #5a46142e}.charge-card__number{letter-spacing:.04em;color:var(--color-dark);white-space:nowrap;font-variant-numeric:tabular-nums;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:14px}.plate__text{letter-spacing:.06em;font-variant-numeric:tabular-nums;white-space:nowrap;align-items:center;padding:0 5px;font-size:13px;font-weight:700;display:inline-flex}.skeleton{border-radius:var(--radius-xs);background:linear-gradient(90deg, var(--color-gray-subtle) 25%, #f7f9fc 45%, var(--color-gray-subtle) 65%);background-size:400% 100%;max-width:100%;animation:1.4s ease-in-out infinite skeleton-shimmer;display:block}@keyframes skeleton-shimmer{0%{background-position:100%}to{background-position:0}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}.skeleton--dark{background:linear-gradient(90deg,#ffffff14 25%,#ffffff29 45%,#ffffff14 65%) 0 0/400% 100%}.skeleton-row{border-bottom:1px solid var(--color-gray-divider);align-items:center;gap:24px;height:48px;display:flex}.skeleton-row:last-child{border-bottom:none}.skeleton-card__head{justify-content:space-between;align-items:center;gap:12px;display:flex}.skeleton-card__actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.skeleton-legend{flex-wrap:wrap;gap:16px;margin-top:12px;display:flex}.skeleton-legend>span{align-items:center;gap:6px;display:inline-flex}.skeleton-table{overflow:hidden}.skeleton-table .skeleton-row{flex-wrap:nowrap}.skeleton-row--head{height:36px}.skeleton-row--tall{height:56px}.skeleton-cell{flex-direction:column;flex:none;justify-content:center;display:flex}.skeleton-cell--number{align-items:flex-end}.hscroll{position:relative}.hscroll__area{scrollbar-width:none}.hscroll__area::-webkit-scrollbar{display:none}.hscroll__area.can-drag,.hscroll__area.can-drag .recharts-surface{cursor:grab}.hscroll__area.is-dragging,.hscroll__area.is-dragging *{-webkit-user-select:none;user-select:none;cursor:grabbing!important}.hscroll__area:focus-visible{box-shadow:var(--shadow-focus);border-radius:var(--radius-sm);outline:none}.hscroll__fade{pointer-events:none;z-index:4;align-items:center;width:64px;display:flex;position:absolute;top:0;bottom:0}.hscroll__fade--right{background:linear-gradient(to right, #fff0, var(--color-white) 75%);justify-content:flex-end;right:0}.hscroll__fade--left{background:linear-gradient(to left, #fff0, var(--color-white) 75%);justify-content:flex-start}.hscroll__btn{pointer-events:auto;border-radius:var(--radius-full);border:1px solid var(--color-gray-border);background:var(--color-white);width:32px;height:32px;color:var(--color-dark);box-shadow:var(--shadow-l);cursor:pointer;justify-content:center;align-items:center;display:inline-flex}.hscroll__btn:hover{background:var(--color-brand-pale);color:var(--color-brand-deep);border-color:var(--color-brand)}.hscroll__btn:focus-visible{box-shadow:var(--shadow-focus);outline:none}.hscroll__fade .hscroll__btn{top:var(--hs-mid,50%);position:absolute;transform:translateY(-50%)}.hscroll__fade--right .hscroll__btn{right:0}.hscroll__fade--left .hscroll__btn{left:0}.hscroll__fade--right.has-inset .hscroll__btn{right:10px}.hscroll__fade--left.has-inset .hscroll__btn{left:10px}.field__known{align-items:center;min-height:36px;display:flex}.icon-btn{border-radius:var(--radius-sm);min-width:30px;height:30px;color:var(--color-gray-muted);cursor:pointer;font:inherit;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:0 6px;font-size:15px;display:inline-flex}.icon-btn:hover:not(:disabled){color:var(--text-primary);background:var(--color-gray-subtle)}.icon-btn.is-on{color:var(--color-error)}.icon-btn:disabled{cursor:default;opacity:.6}.icon-btn:focus-visible{box-shadow:var(--shadow-focus);outline:none}.icon-btn--label{height:36px;padding:0 10px}.data-table--fixed input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.data-table--fixed input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.dialog input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.dialog input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.data-table--fixed input[type=number],.dialog input[type=number]{appearance:textfield}.with-unit{justify-content:flex-end;align-items:baseline;gap:2px;width:100%;display:inline-flex}.with-unit__unit{color:var(--text-primary);font-size:15px}.with-unit__unit.is-usual{color:var(--color-gray-muted)}.with-unit--form{display:block;position:relative}.with-unit--form .input{padding-right:44px}.with-unit--form .with-unit__unit{pointer-events:none;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.with-unit__prefix{color:var(--color-gray-muted);margin-right:4px;font-size:15px}.data-table--fit{table-layout:auto;width:auto}.data-table--fit td,.data-table--fit th,.data-table--fit thead th,.data-table--fit .th-sort__btn{white-space:nowrap}.data-table--fit tbody td,.data-table--fit thead th{padding-left:var(--fit-pad,8px);padding-right:var(--fit-pad,8px)}.data-table--fit .td-fill .td-entity__name{max-width:220px}.data-table--fixed thead th{vertical-align:bottom;white-space:normal;overflow-wrap:normal}.data-table--fixed td.td-number .with-unit{justify-content:flex-end}.data-table--fixed td.td-number .input.input--inline{padding-right:0}.with-unit--start{justify-content:flex-start}.add-row{color:var(--color-gray-muted);font:inherit;cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;align-items:center;gap:10px;padding:6px 4px;font-size:15px;display:inline-flex}.add-row:hover:not(:disabled){color:var(--text-primary)}.add-row:focus-visible{box-shadow:var(--shadow-focus);outline:none}.add-row:disabled{cursor:default;opacity:.6}.data-table tbody tr.add-row-line td{border-bottom:none;height:auto;padding-top:6px;padding-bottom:6px}.data-table tbody tr.add-row-line:hover td{background:0 0}div.add-row-line{margin-top:8px}.th-sort__btn{font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:flex-end;gap:4px;padding:0;display:inline-flex}.th-sort__after{vertical-align:middle;margin-left:4px;font-weight:400;display:inline-flex}.th-sort__btn:hover{color:var(--text-primary)}.th-sort__btn:focus-visible{box-shadow:var(--shadow-focus);border-radius:2px;outline:none}.th-sort__arrow{color:var(--color-gray-placeholder);font-size:12px}.th-sort:not(.is-sorted) .th-sort__arrow{visibility:hidden}.th-sort:hover .th-sort__arrow{visibility:visible}.th-sort.is-sorted{color:var(--text-primary)}.th-sort.td-number .th-sort__btn{text-align:right;flex-direction:row-reverse}.th-sort.is-sorted .th-sort__arrow{color:var(--color-brand-deep)}.flex-windows{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.flex-window{border-radius:var(--radius-xs);background:var(--color-gray-subtle);font-variant-numeric:tabular-nums;white-space:nowrap;gap:6px;padding:2px 8px;font-size:14px;display:inline-flex}.flex-list{margin:4px 0 0;padding-left:18px;font-size:14px}.flex-table td{vertical-align:top;height:auto;padding-top:10px;padding-bottom:10px}.toggle{cursor:pointer;align-items:center;gap:10px;font-weight:500;display:inline-flex}.toggle__track{border-radius:var(--radius-full);background:var(--color-gray-divider);flex:none;width:36px;height:20px;transition:background .15s;position:relative}.toggle__track:after{content:"";background:var(--color-white);width:16px;height:16px;box-shadow:var(--shadow-s);border-radius:50%;transition:transform .15s;position:absolute;top:2px;left:2px}.toggle[aria-checked=true] .toggle__track{background:var(--color-brand)}.toggle[aria-checked=true] .toggle__track:after{transform:translate(16px)}.toggle:focus-visible{box-shadow:var(--shadow-focus);border-radius:var(--radius-sm);outline:none}.data-table--fixed .with-unit .input.input--inline{padding-left:1px;padding-right:1px}.dialog--compact{width:min(680px,100%)}.form-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}@media (width<=560px){.form-grid--2,.form-grid--3{grid-template-columns:1fr}}.form-step{border-radius:var(--radius-full);background:var(--color-brand-pale);width:20px;height:20px;color:var(--color-brand-deep);justify-content:center;align-items:center;margin-right:8px;font-size:13px;font-weight:600;display:inline-flex}.input-helper--ok{color:var(--color-success)}.data-table--fit td.td-make{text-overflow:ellipsis;max-width:200px;overflow:hidden}.btn-sm{align-items:center;gap:6px;padding:4px 10px;font-size:14px;display:inline-flex}.decisions td{vertical-align:middle}.setpoints input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.setpoints input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.setpoints input[type=number]{appearance:textfield}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px}.card-vehicles{flex-wrap:wrap;align-items:center;gap:4px 6px;display:inline-flex}.chip,.audit-chip,.routine-chip,.notif__filter,.palette__filter{font:inherit;color:var(--color-gray-muted);cursor:pointer}.chip--outline,.audit-chip,.routine-chip{border:1px solid var(--color-gray-border);border-radius:var(--radius-full);background:var(--color-white)}.tag,.audit-tag,.phase-tag,.routine-badge{background:var(--color-gray-subtle);color:var(--color-gray-muted);font-size:12px}.uid-masked{font:inherit;color:inherit;cursor:pointer;letter-spacing:.02em;border:none;border-bottom:1px dotted var(--color-gray-placeholder);background:0 0;padding:0}.uid-masked.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px}.uid-masked:hover{color:var(--text-primary);border-bottom-color:var(--color-brand)}.uid-masked:focus-visible{box-shadow:var(--shadow-focus);border-radius:2px;outline:none}.idlist__fixed{background:var(--color-gray-bg);color:var(--color-gray-muted);align-items:center;display:inline-flex}.drawer .form-grid--2 .idlist{min-width:0}.toaster{--toaster-left:calc(var(--sidebar-width) + 16px);left:var(--toaster-left);z-index:1000;width:min(400px, calc(100vw - var(--toaster-left) - 16px));pointer-events:none;height:0;position:fixed;bottom:16px}@media (width<=1100px){.toaster{--toaster-left:76px}}.toast-item{transform-origin:50% 0;transform:translateY(calc(var(--depth,0) * -10px)) scale(calc(1 - var(--depth,0) * .05));transition:transform .5s cubic-bezier(.22,1,.36,1),opacity .3s;position:absolute;bottom:0;left:0;right:0}.toast-item.is-behind .toast,.toast-item.is-waiting .toast{transition:height .3s;animation:none;overflow:hidden}.toast-item.is-behind .toast>*,.toast-item.is-waiting .toast>*{opacity:0}.toast-item.is-behind .toast{box-shadow:var(--shadow-m)}.toast-item.is-waiting{opacity:0}.toast-item.is-in-view .toast>*{transition:opacity .25s .1s}.toast-item.is-in-view .toast,.toast-item.is-leaving .toast{pointer-events:auto}.toast{--toast-accent:var(--color-brand);background:var(--color-white);border:1px solid var(--color-gray-border);color:var(--text-primary);border-radius:16px;align-items:flex-start;gap:14px;padding:16px 14px 16px 16px;display:flex;box-shadow:0 12px 32px -8px #1018282e,0 2px 6px #1018280f}.toast-item.is-fresh .toast{animation:.6s cubic-bezier(.22,1,.36,1) toast-in}.toast--info{--toast-accent:var(--color-brand)}.toast--success{--toast-accent:var(--color-success)}.toast--warning{--toast-accent:var(--color-warning)}.toast--error{--toast-accent:var(--color-error)}.toast__icon{color:var(--toast-accent);flex:none;display:flex}.toast__icon svg{width:22px;height:22px}.toast__body{flex:1;min-width:0;padding-top:1px}.toast__title{color:var(--text-primary);font-size:15px;font-weight:600;line-height:20px}.toast__context{color:var(--color-gray-muted);overflow-wrap:anywhere;margin-top:2px;font-size:14px;font-weight:400;line-height:19px}.toast__message{white-space:pre-line;color:var(--color-gray-muted);overflow-wrap:anywhere;margin-top:2px;font-size:14px;font-weight:400;line-height:19px}.toast__context+.toast__message{margin-top:0}.toast__progress{align-items:center;gap:10px;margin-top:10px;display:flex}.toast__bar{background:var(--color-gray-subtle);border-radius:999px;flex:1;height:6px;overflow:hidden}.toast__bar-fill{background:var(--color-gradient);border-radius:999px;height:100%;transition:width .6s}.toast__pct{color:var(--color-gray-muted);font-variant-numeric:tabular-nums;text-align:right;min-width:34px;font-size:13px}.toast__actions{align-items:center;gap:20px;margin-top:12px;display:flex}.toast__btn{border-radius:var(--radius-sm);font:inherit;color:var(--color-gray-muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:2px 0;font-size:14px;font-weight:400;line-height:20px;transition:color .15s;display:inline-flex}.toast__btn:hover{color:var(--text-primary)}.toast__btn--primary{color:var(--text-primary);font-weight:600}.toast__btn--primary svg{width:14px;height:14px;transition:transform .15s}.toast__btn--primary:hover svg{transform:translate(2px)}.toast__btn:focus-visible,.toast__close:focus-visible{box-shadow:var(--shadow-focus);outline:none}.toast__close{width:26px;height:26px;color:var(--color-gray-muted);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;margin:-4px -4px 0 0;display:flex}.toast__close svg{width:16px;height:16px}.toast__close:hover{background:var(--color-gray-subtle);color:var(--text-primary)}.toast-item.is-leaving .toast{animation:.4s forwards toast-dissolve}@keyframes toast-in{0%{transform:translateX(calc(-100% - var(--toaster-left,24px)));opacity:0}to{opacity:1;transform:none}}@keyframes toast-dissolve{0%{opacity:1;filter:blur()}to{opacity:0;filter:blur(2px)}}@media (prefers-reduced-motion:reduce){.toast,.toast-item{transition:none;animation:none}.toast-item.is-leaving .toast{animation:.2s forwards toast-dissolve}}.topview{gap:var(--space-6);flex-direction:column;display:flex}.tv-board{height:calc(100vh - 190px);min-height:520px}.ov{background:var(--color-gray-bg);border-radius:var(--radius-lg);flex-direction:column;justify-content:center;align-items:center;height:calc(100vh - 190px);min-height:520px;display:flex;position:relative}.ov[data-fullscreen=true]{z-index:1000;border-radius:0;height:auto;min-height:0;position:fixed;inset:0}.ov__toggle{margin:var(--space-3)}.ov__image{aspect-ratio:16/9;width:100%;max-width:142.22%;max-height:80%;position:relative}.ov__image img{object-fit:contain;width:100%;height:100%;position:absolute;top:0;left:0}.ov__toggle{z-index:2;opacity:0;transition:opacity var(--transition-slow,.25s ease);position:absolute;top:0;right:0}.ov__toggle--full{margin:0;top:1rem;right:1rem}.ov__toggle.is-shown,.ov__toggle:focus-visible,.ov__toggle:hover{opacity:1}.ov__labels{aspect-ratio:16/9;height:100%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);container:tooltipLayer/size}.ov-tip{flex-direction:row;justify-content:center;align-items:flex-start;width:0;display:flex;position:absolute;overflow:visible}.ov-tip[data-label-side=left]{flex-direction:row-reverse}.ov-tip span{white-space:nowrap;font-size:clamp(.55rem,min(1.3vw,2.3vh),.9rem);line-height:1.5}.ov-tip__values{color:var(--text-primary-light);flex-direction:column;align-items:flex-end;padding-right:.5em;font-weight:700;display:flex;position:absolute;top:0;right:2px}.ov-tip[data-label-side=left] .ov-tip__values{align-items:flex-start;padding-left:.5em;padding-right:0;left:2px;right:auto}.ov-tip__values span[data-loading=true]:after{content:" .";min-width:1.5ch;animation:1s steps(5,end) infinite ov-dots;display:inline-block}.ov-tip__labels{width:0;min-width:0;color:var(--color-gray-muted);flex-direction:column;flex:0 0 0;align-items:flex-start;padding-left:.5em;display:flex;overflow:visible}.ov-tip[data-label-side=left] .ov-tip__labels{align-items:flex-end;padding-left:0;padding-right:.5em}.ov-tip__title{color:var(--color-brand);font-weight:600}.ov-tip__line{background:var(--color-brand);flex-shrink:0;align-self:stretch;width:2px;position:relative}.ov-tip__line--down:after{content:"";width:2px;height:var(--tooltip-line-height,10%);background:var(--color-brand);position:absolute;top:100%;left:0}.ov-tip__line--down:before{content:"";left:50%;top:calc(100% + var(--tooltip-line-height,10%));background:var(--color-brand);border-radius:50%;width:6px;height:6px;position:absolute;transform:translate(-50%)}.ov-tip__line--up:before{content:"";width:2px;height:var(--tooltip-line-height,10%);background:var(--color-brand);position:absolute;bottom:100%;left:0}.ov-tip__line--up:after{content:"";left:50%;bottom:calc(100% + var(--tooltip-line-height,10%));background:var(--color-brand);border-radius:50%;width:6px;height:6px;position:absolute;transform:translate(-50%)}.ov-tip--solar{--tooltip-line-height:32cqh;bottom:86%;left:26%}.ov-tip--grid{--tooltip-line-height:23cqh;bottom:93%;left:61%}.ov-tip--dc{--tooltip-line-height:17cqh;bottom:77%;right:22%}.ov-tip--battery{--tooltip-line-height:4cqh;top:87%;left:38%}.ov-tip--ac{--tooltip-line-height:7cqh;top:84%;right:28%}.ov-tip--heatpump{--tooltip-line-height:25cqh;bottom:100%;left:42%}@keyframes ov-dots{0%,20%{color:#0000;text-shadow:.25em 0 #0000,.5em 0 #0000}40%{color:var(--text-primary-light);text-shadow:.25em 0 #0000,.5em 0 #0000}60%{text-shadow:.25em 0 0 var(--text-primary-light), .5em 0 0 transparent}80%,to{text-shadow:.25em 0 0 var(--text-primary-light), .5em 0 0 var(--text-primary-light)}}.tv-toolbar{flex-wrap:wrap;flex:none;align-items:center;gap:12px;padding:4px 0 0;display:flex}.tip{background:var(--color-white);border:1px solid var(--color-gray-border);border-radius:var(--radius-md);box-shadow:var(--shadow-xl,0 0 24px -4px #1018281f);pointer-events:none;padding:12px 14px;position:fixed}.tip.is-interactive{pointer-events:auto}.tv-tip{z-index:900;width:300px;font-family:inherit}.tv-tip__head{justify-content:space-between;align-items:center;gap:10px;display:flex}.tv-tip__prio{border-top:1px solid var(--color-gray-border);justify-content:space-between;align-items:center;gap:10px;margin-top:10px;padding-top:10px;font-size:13px;line-height:17px;display:flex}.tv-tip__prio-label{color:var(--text-primary);font-weight:600}.tv-tip__prio .icon-btn.is-on{color:var(--color-highlight)}.tv-tip__name{color:var(--text-primary);font-size:15px;font-weight:600;line-height:20px}.tv-tip__sub{color:var(--color-gray-muted);justify-content:space-between;align-items:center;gap:10px;margin-top:6px;font-size:13px;display:flex}.tv-kv{border-top:1px solid var(--color-gray-border);grid-template-columns:auto 1fr;gap:6px 16px;margin:10px 0 0;padding-top:10px;font-size:14px;display:grid}.tv-kv dt{color:var(--color-gray-muted)}.tv-kv dd{text-align:right;color:var(--text-primary);font-variant-numeric:tabular-nums;white-space:nowrap;margin:0;font-weight:600}.tv-soc{border-radius:var(--radius-full);background:var(--color-gray-subtle);height:4px;margin-top:10px;overflow:hidden}.tv-soc>div{border-radius:var(--radius-full);height:100%}.topview,.topview-portal{--font-ui:"Proxima Nova", Inter, -apple-system, "Helvetica Neue", sans-serif;--radius-pill:999px;--space-1:4px;--text-primary-light:#283a5b;--text-s:.75rem}.topview .tv-board,.topview-portal{font-family:var(--font-ui);color:var(--text-primary-light)}@keyframes topview-spin{to{transform:rotate(360deg)}}.topview-spinner{border:3px solid var(--color-gray-border);border-top-color:var(--color-brand);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite topview-spin}.issue-icon{vertical-align:middle;color:var(--color-warning);cursor:help;margin-left:6px;display:inline-flex}.issue-icon svg{width:16px;height:16px}.issue-icon--error{color:var(--color-error)}.issue-icon:focus-visible{box-shadow:var(--shadow-focus);border-radius:4px;outline:none}.issue-tip{z-index:950;text-align:left;white-space:normal;width:320px;max-height:calc(100vh - 16px);overflow-y:auto;transform:translate(-50%)}.issue-tip__choices{white-space:nowrap;border-top:1px solid var(--color-gray-border);flex-wrap:nowrap;align-items:center;gap:16px;margin-top:12px;padding-top:10px;display:flex}.issue-tip__head{letter-spacing:.06em;text-transform:uppercase;color:var(--color-gray-muted);margin-bottom:6px;font-size:12px;font-weight:600}.issue-tip__item{border-left:3px solid var(--color-warning);padding:2px 0 2px 10px}.issue-tip__item+.issue-tip__item{margin-top:8px}.issue-tip__item.is-error{border-left-color:var(--color-error)}.issue-tip__title{color:var(--text-primary);font-size:15px;font-weight:600;line-height:20px}.issue-tip__detail{color:var(--color-gray-muted);margin-top:2px;font-size:13px;line-height:18px}.cp-table th,.cp-table td{white-space:nowrap;vertical-align:middle}.cp-table{border-collapse:separate;border-spacing:0}.data-table .sticky-col{z-index:2;background:var(--color-white);position:sticky;left:0}.data-table thead .sticky-col{z-index:3}.data-table .sticky-col--2{left:var(--sticky-col1,180px)}.data-table .sticky-end{z-index:2;background:var(--color-white);position:sticky;right:0}.data-table thead .sticky-end{z-index:3}.hscroll.has-more tbody .sticky-end{box-shadow:inset 1px 0 0 var(--color-gray-border), -6px 0 8px -6px #1018281f}.hscroll.is-scrolled tbody .sticky-col--last{box-shadow:inset -1px 0 0 var(--color-gray-border), 6px 0 8px -6px #1018281f}.cp-table .td-entity__sub{white-space:nowrap}.status-counts{vertical-align:middle;flex-wrap:nowrap;gap:4px;display:inline-flex}.trend{vertical-align:-1px;width:12px;margin-left:6px;display:inline-flex}.trend--up{color:#6ec9a8}.trend--down{color:#f7906e}.trend--flat{color:#b1b7c4}.cp-table th.td-number.th-trend{padding-right:34px}.cp-table .td-actions{text-align:right;width:1%}.cp-actions{white-space:nowrap;gap:2px;display:inline-flex}.row-actions{white-space:nowrap;text-align:right;align-items:center;gap:2px;display:inline-flex}.data-table td.td-actions,.data-table td.row-actions{text-align:right;white-space:nowrap;width:1%}.row-actions .icon-btn.is-on{color:var(--color-highlight)}.row-actions a.icon-btn{text-decoration:none}.row-actions svg,.td-actions .icon-btn svg{width:18px;height:18px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.picker{z-index:1000;background:var(--color-white);border:1px solid var(--color-gray-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);padding:var(--space-3);position:fixed}.picker__split{align-items:stretch;display:flex}.picker__split .timelist{border-left:1px solid var(--color-gray-border);margin-left:var(--space-3);padding-left:var(--space-2)}.calendar{width:292px}.calendar__head{margin-bottom:var(--space-2);justify-content:space-between;align-items:center;display:flex}.calendar__month{color:var(--text-primary);text-transform:capitalize;font-size:16px;font-weight:600}.calendar__nav{border:1px solid var(--color-gray-border);border-radius:var(--radius-md);background:var(--color-white);width:32px;height:32px;color:var(--text-primary);cursor:pointer;justify-content:center;align-items:center;display:inline-flex}.calendar__nav:hover:not(:disabled){background:var(--color-gray-subtle)}.calendar__nav:disabled{color:var(--color-gray-placeholder);cursor:default}.calendar__grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.calendar__weekday{text-align:center;color:var(--color-gray-muted);text-transform:capitalize;padding:6px 0;font-size:14px}.calendar__day{border-radius:var(--radius-md);height:38px;font:inherit;color:var(--text-primary);cursor:pointer;font-variant-numeric:tabular-nums;background:0 0;border:none;font-size:15px;position:relative}.calendar__day:hover:not(:disabled){background:var(--color-gray-subtle)}.calendar__day.is-other{color:var(--color-gray-placeholder)}.calendar__day.is-selected{background:var(--color-brand-pale);color:var(--color-brand-deep);box-shadow:inset 0 0 0 1px var(--color-brand);font-weight:600}.calendar__day:disabled{color:var(--color-gray-divider);cursor:default}.calendar__day:focus-visible,.timelist__item:focus-visible,.calendar__nav:focus-visible{box-shadow:var(--shadow-focus);outline:none}.calendar__dot{background:var(--color-gray-muted);border-radius:9999px;width:4px;height:4px;margin-left:-2px;position:absolute;bottom:4px;left:50%}.calendar__dot--today{background:var(--color-brand)}.timelist{flex-direction:column;gap:2px;width:96px;max-height:300px;display:flex;overflow-y:auto}.picker>.timelist{max-height:260px}.timelist__item{border-radius:var(--radius-md);height:34px;font:inherit;color:var(--text-primary);cursor:pointer;font-variant-numeric:tabular-nums;background:0 0;border:none;flex:none;font-size:15px}.timelist__item:hover:not(:disabled){background:var(--color-gray-subtle)}.timelist__item.is-selected{background:var(--color-gray-subtle);font-weight:600}.timelist__item:disabled{color:var(--color-gray-divider);cursor:default}.picker-field{text-align:left;cursor:pointer;white-space:nowrap;align-items:center;gap:8px;display:inline-flex}.picker-field svg{color:var(--color-gray-muted);flex:none}.depcell__reset{color:var(--color-gray-muted);cursor:pointer;background:0 0;border:none;margin-left:4px;padding:0 2px;font-size:17px;line-height:1}.depcell__reset:hover{color:var(--color-error)}.depcell .picker-field.input--inline,.data-table .depcell .picker-field.input.input--inline{gap:4px;width:auto;padding:0 2px}.depcell .picker-field svg{width:13px;height:13px}.depcell__mark{text-align:left;width:14px;display:inline-block}.depcell__mark .depcell__reset{margin-left:2px}.setpoints tbody tr.is-priority td.setpoints__on{background:#9e77ed38}.data-table tbody tr.is-faulted td{background:#fef6f3}.data-table tbody tr.is-faulted:hover td{background:#fdede7}.data-table tbody tr.is-offline td{background:#f5f7fa}.data-table tbody tr.is-offline:hover td{background:#edf2f9}.hint-icon{vertical-align:middle;cursor:help;border-radius:var(--radius-xs);align-items:center;margin-left:6px;display:inline-flex}.hint-icon--info{color:var(--color-info)}.hint-icon--muted{color:var(--color-gray-muted)}.hint-icon--error{color:var(--color-error)}.hint-icon--warning{color:var(--color-warning)}.hint-icon:focus-visible{box-shadow:var(--shadow-focus);outline:none}.issue-tip__item.issue-tip__item--info{border-left-color:var(--color-info)}.issue-tip__item.issue-tip__item--muted{border-left-color:var(--color-gray-divider)}.issue-tip__item.issue-tip__item--error{border-left-color:var(--color-error)}.socket-name{align-items:center;gap:2px;display:inline-flex}.socket-name__edit{opacity:0;min-width:22px;height:22px;padding:0 3px}td:hover .socket-name__edit,.socket-name__edit:focus-visible{opacity:1}.socket-name__input{width:140px;font-weight:600}.card__badge{vertical-align:middle;margin-left:8px;display:inline-flex}.card__info{vertical-align:middle;color:var(--color-gray-muted);margin-left:6px;font-weight:400;display:inline-flex}.soc-bar{white-space:nowrap;align-items:center;gap:8px;display:inline-flex}.soc-bar__track{background:var(--color-gray-divider);border-radius:4px;width:96px;height:8px;position:relative;overflow:hidden}.soc-bar__fill{background:#36ab80;border-radius:4px;position:absolute;top:0;bottom:0;left:0}.soc-bar__limit{z-index:1;background:#4e5d78;width:1px;position:absolute;top:0;bottom:0}.soc-bar__unusable{z-index:1;background:repeating-linear-gradient(45deg,#4e5d7873 0 1.5px,#ffffff8c 1.5px 4px);position:absolute;top:0;bottom:0}.soc-bar__value{font-variant-numeric:tabular-nums;text-align:right;min-width:3.8em}.soc-bar--low .soc-bar__fill{background:var(--color-warning)}.soc-bar--critical .soc-bar__fill{background:var(--color-error)}.audit-toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.audit-chip{padding:4px 12px;font-size:14px}.audit-chip.is-on.audit-chip--user{color:#0262bd;background:#eef7ff;border-color:#0284fe}.audit-chip.is-on.audit-chip--planner{color:#6e4bc2;background:#f9f5ff;border-color:#9e77ed}.audit-chip.is-on.audit-chip--location{color:#237a5a;background:#f5fbf8;border-color:#36ab80}.audit-chip.is-on.audit-chip--system{color:#4e5d78;background:#f5f7fa;border-color:#8a94a6}.audit-search{width:240px}.audit-date{width:160px}.btn.audit-now{padding:5px 12px;font-size:14px}.audit-jumped{color:var(--color-gray-muted);margin:-8px 0 12px;font-size:14px}.audit-timeline,.audit-timeline ol{margin:0;padding:0;list-style:none}.audit-day{margin-bottom:8px}.audit-day__label{color:var(--color-gray-muted);margin:12px 0 6px 28px;font-size:14px;font-weight:600}.audit-item{border-left:2px solid var(--color-gray-border);margin-left:9px;padding:6px 0 10px 28px;position:relative}.audit-dot{width:20px;height:20px;color:var(--color-white);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:6px;left:-11px}.audit-item--user .audit-dot{background:#0284fe}.audit-item--planner .audit-dot{background:#9e77ed}.audit-item--location .audit-dot{background:#36ab80}.audit-item--system .audit-dot{background:#8a94a6}.audit-item--location.is-bad .audit-dot{background:#f4541d}.audit-item--system.is-bad .audit-dot,.audit-item--planner.is-bad .audit-dot{background:#f7af22}.audit-item--fold .audit-dot{width:12px;height:12px;top:10px;left:-7px}.audit-line{color:var(--text-primary);font-size:15px}.audit-time{font-variant-numeric:tabular-nums;color:var(--color-gray-muted);margin-right:4px}.audit-meta{color:var(--color-gray-muted);margin-top:2px;font-size:13px}.audit-tag{border-radius:var(--radius-xs);margin-left:8px;padding:1px 6px}.audit-more{margin-left:8px;font-size:13px}.audit-diff{border-collapse:collapse;margin-top:6px;font-size:13px}.audit-diff td{color:var(--text-primary);padding:2px 10px 2px 0}.audit-diff td:first-child{color:var(--color-gray-muted)}.audit-fold{color:var(--color-gray-muted);margin:6px 0 0;padding-left:16px;font-size:13px}.audit-gap{border-left:2px dashed var(--color-gray-placeholder);color:var(--color-gray-muted);margin-left:9px;padding:8px 0 8px 28px;font-size:14px;font-style:italic}@keyframes audit-slide-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}.audit-item--new{animation:.4s ease-out audit-slide-in}.data-table tfoot .data-table__total td{border-top:1px solid var(--color-gray-border);height:44px;padding:0 16px;font-weight:600}.page-header--action{justify-content:space-between;align-items:flex-start;gap:var(--space-4);display:flex}.page--wide .page-header--action{max-width:none}.page-header__tools{align-items:center;gap:var(--space-2);flex:none;display:flex}.page--wide .page-header--action>div{max-width:calc(1440px - 2 * var(--space-8))}.page-header--action .btn-icon{flex:none;margin-top:2px}.form-section__intro{margin:-4px 0 var(--space-3);color:var(--color-gray-muted);font-size:13px;line-height:18px}.ess-table .td-actions{text-align:right;width:1%}.ess-table .td-entity__name{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.ess-table th,.ess-table td{white-space:nowrap}.phase-tag{border-radius:var(--radius-xs);margin-left:6px;padding:0 5px;font-weight:600;line-height:16px;display:inline-block}.status-icon{vertical-align:middle;border-radius:4px;flex:none;justify-content:center;align-items:center;width:18px;height:18px;margin-left:6px;display:inline-flex}.sessions-toolbar{margin-bottom:var(--space-4)}.sessions-search{width:280px}.sessions-toolbar__end{align-items:center;gap:var(--space-3);margin-left:auto;display:inline-flex}.sessions-table td{vertical-align:middle}.sessions-more{padding-top:var(--space-4);justify-content:center;display:flex}@media (width<=700px){.sessions-search{width:100%}.sessions-toolbar__end{margin-left:0}}.lb-tree,.lb-tree ul{margin:0;padding:0;list-style:none}.lb-tree{justify-content:center;width:max-content;display:flex;position:relative}.lb-tree ul{justify-content:center;padding-top:52px;display:flex}.lb-tree li{flex-direction:column;align-items:center;padding:0 6px;display:flex}.lb-tree ul.is-stack{flex-direction:column;align-items:flex-start;gap:8px;padding:20px 0 0 28px}.lb-tree ul.is-stack>li{align-items:stretch;padding:0}.tree-stage{transform-origin:0 0;padding:12px;position:absolute;top:0;left:0}.tree-lines{pointer-events:none;position:absolute;top:0;left:0;overflow:visible}.tree-line{fill:none;stroke:var(--color-gray-divider);stroke-width:2px}.tree-pulse{fill:none;stroke-width:3.5px;stroke-linecap:round;animation:2s linear infinite tree-pulse}@keyframes tree-pulse{0%{stroke-dashoffset:var(--from)}to{stroke-dashoffset:var(--to)}}@media (prefers-reduced-motion:reduce){.tree-pulse{animation:none;stroke-dasharray:none!important;stroke-opacity:.6!important}}.tree-canvas{border:1px solid var(--color-gray-border);border-radius:var(--radius-md);background:var(--color-gray-bg);cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;height:560px;position:relative;overflow:hidden}.tree-canvas.is-dragging{cursor:grabbing}.tree-wrap--window{background:var(--color-gray-bg);flex-direction:column;gap:8px;padding:16px;display:flex}.tree-wrap:fullscreen{background:var(--color-gray-bg);flex-direction:column;gap:8px;padding:16px;display:flex}.tree-wrap--window{z-index:1000;position:fixed;inset:0}.tree-wrap--window .tree-canvas{background:var(--color-white);flex:1;height:auto}.tree-wrap:fullscreen .tree-canvas{background:var(--color-white);flex:1;height:auto}.tree-wrap__bar{justify-content:space-between;align-items:center;gap:12px;display:flex}.tree-zoom{align-items:center;gap:2px;display:inline-flex}.tree-zoom--float{z-index:2;border:1px solid var(--color-gray-border);border-radius:var(--radius-md);background:var(--color-white);box-shadow:var(--shadow-m);cursor:default;padding:3px;position:absolute;bottom:12px;right:12px}.tree-zoom .icon-btn.is-active{color:var(--color-brand-deep,#237ea5);background:var(--color-brand-pale,#effafe)}.tree-zoom__pct{font-variant-numeric:tabular-nums;min-width:48px;font-size:14px}.tree-card{border:1px solid var(--color-gray-border);border-radius:var(--radius-md);background:var(--color-white);width:max-content;min-width:170px;box-shadow:var(--shadow-xs);flex-direction:column;gap:2px;padding:6px 10px;display:inline-flex;position:relative}.tree-card--faulted{background:var(--color-error-bg,#fef6f3);border-color:#f4541d59}.tree-card__head{justify-content:space-between;align-items:center;gap:10px;display:flex}.tree-card__name{white-space:nowrap;font-weight:600}.tree-card__meta{color:var(--color-gray-muted);white-space:nowrap;justify-content:space-between;align-items:baseline;gap:12px;font-size:13px;display:flex}.tree-card__power{font-variant-numeric:tabular-nums;color:var(--text-primary,#283a5b);font-weight:600}.tree-card__power.muted{color:var(--color-gray-muted);font-weight:500}.session-power__sub{margin:16px 0 4px;font-size:15px;font-weight:600}.session-power__foot{margin:12px 0 0;font-size:13px}.sidebar__top{padding:0 var(--space-3) var(--space-4) 0;justify-content:flex-start;align-items:center;gap:8px;display:flex}.sidebar__top .sidebar__logo{padding-bottom:0;padding-right:0}@media (width<=1100px){.sidebar__top{padding:0 0 var(--space-3);justify-content:center}}.notif,.notif__bell{position:relative}.notif__bell svg{width:18px;height:18px}.notif__bell.is-open{background:var(--color-gray-subtle);color:var(--text-primary)}.notif__dot-badge{border-radius:var(--radius-full);background:var(--color-error);width:10px;height:10px;box-shadow:0 0 0 2px var(--color-white);position:absolute;top:-4px;right:-4px}.notif__filters{border-bottom:1px solid var(--color-gray-border);flex-wrap:wrap;gap:4px;padding:0 12px 10px;display:flex}.notif__filter{border-radius:var(--radius-full);background:0 0;border:0;align-items:center;gap:6px;padding:4px 10px;font-size:14px;display:inline-flex}.notif__filter:hover{background:var(--color-gray-subtle);color:var(--text-primary-light,#283a5b)}.notif__filter.is-active{background:var(--color-brand-pale,#effafe);color:var(--color-brand-deep,#237ea5);font-weight:600}.notif__count{border-radius:var(--radius-full);background:var(--color-error);min-width:16px;height:16px;color:var(--color-white);padding:0 4px;font-size:11px;font-weight:700;line-height:16px}.notif__list{overflow-y:auto}.notif__empty{margin:0;padding:20px 16px}.notif__item{border:0;border-bottom:1px solid var(--color-gray-subtle);text-align:left;width:100%;font:inherit;cursor:pointer;background:0 0;gap:12px;padding:12px 16px;display:flex;position:relative}.notif__item:hover{background:var(--color-gray-bg)}.notif__item.is-unread{background:#f8fdfe}.notif__item.is-unread:hover{background:var(--color-brand-pale,#effafe)}.notif__icon{border-radius:var(--radius-full);background:var(--color-gray-subtle);width:30px;height:30px;color:var(--color-gray-muted);flex:none;justify-content:center;align-items:center;display:inline-flex}.notif__item--error .notif__icon{color:var(--color-error);background:#fef6f3}.notif__item--warning .notif__icon{color:var(--color-warning);background:#fefaf1}.notif__item--change .notif__icon{color:var(--color-info);background:#eef7ff}.notif__item--maxem .notif__icon{background:var(--color-brand-pale,#effafe);color:var(--color-brand)}.notif__body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.notif__title{color:var(--text-primary-light,#283a5b);font-size:15px}.notif__item.is-unread .notif__title{font-weight:600}.notif__message{color:var(--color-gray-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:14px;display:-webkit-box;overflow:hidden}.notif__meta{color:var(--color-gray-muted);font-size:13px}.notif__dot{border-radius:var(--radius-full);background:var(--color-brand);flex:none;width:8px;height:8px;margin-top:6px}.dashboard__sub{margin:18px 0 6px;font-size:15px;font-weight:600}.dash-status{border-radius:var(--radius-full);background:var(--color-gray-subtle);gap:2px;height:12px;display:flex;overflow:hidden}.dash-status>span{min-width:4px}.dash-status__legend{flex-wrap:wrap;gap:8px 16px;margin-top:10px;font-size:14px;display:flex}.dash-status__legend strong{font-variant-numeric:tabular-nums}.dash-table td{height:40px}.dash-notes{margin:0;padding:0;list-style:none}.dash-notes__item{border-left:3px solid var(--color-gray-divider);justify-content:space-between;gap:12px;padding:10px 0 10px 12px;display:flex}.dash-notes__item+.dash-notes__item{margin-top:6px}.dash-notes__item--error{border-left-color:var(--color-error)}.dash-notes__item--warning{border-left-color:var(--color-warning)}.dash-notes__item--info{border-left-color:var(--color-info)}.replan-facts{grid-template-columns:max-content 1fr;gap:6px 16px;margin:12px 0 0;font-size:14px;display:grid}.replan-facts dt{color:var(--color-gray-muted)}.replan-facts dd{margin:0}.dash-notes__text{flex-direction:column;min-width:0;display:flex}.dash-notes__title{font-size:15px}.dash-notes__detail{color:var(--color-gray-muted);font-size:13px}.dash-notes__meta{color:var(--color-gray-muted);white-space:nowrap;flex:none;font-size:13px}.pv-inverters{flex-wrap:wrap;gap:6px;display:flex}.pv-inverter{border:1px solid var(--color-gray-border);border-radius:var(--radius-full);white-space:nowrap;background:var(--color-white);align-items:center;gap:6px;padding:2px 8px;font-size:13px;display:inline-flex}.pv-inverter__dot{border-radius:var(--radius-full);background:var(--color-gray-placeholder);width:7px;height:7px}.pv-inverter__dot--success{background:var(--color-success)}.pv-inverter__dot--error{background:var(--color-error)}.rangepicker__trigger{justify-content:space-between;align-items:center;gap:8px;min-width:220px;display:inline-flex}.rangepicker__trigger--navy{height:32px;color:var(--color-dark,#283a5b);border:1px solid var(--color-gray-border);background:var(--color-white)}.rangepicker__trigger--navy:hover{color:var(--color-dark,#283a5b);background:var(--color-gray-subtle,#edf2f9)}.rangepicker__trigger--navy svg{color:var(--color-dark,#283a5b)}.rangepicker__trigger--compact{white-space:nowrap;flex:none;min-width:0;padding-left:10px;padding-right:10px}.picker:has(.rangepicker){padding:0}.rangepicker{display:flex}.rangepicker__presets{width:160px;padding:var(--space-3);border-right:1px solid var(--color-gray-border);flex-direction:column;gap:2px;display:flex}.rangepicker__preset{text-align:left;border-radius:var(--radius-md);font:inherit;color:var(--text-primary);cursor:pointer;background:0 0;border:none;padding:9px 12px;font-size:15px}.rangepicker__preset:hover:not(:disabled){background:var(--color-gray-subtle)}.rangepicker__sep{background:var(--color-gray-border);height:1px;margin:6px 4px}.rangepicker__preset.is-active{background:var(--color-gray-subtle);font-weight:600}.rangepicker__preset:disabled{color:var(--color-gray-divider);cursor:default}.rangepicker__preset:focus-visible{box-shadow:var(--shadow-focus);outline:none}.rangepicker__main{flex-direction:column;display:flex}.rangepicker__months{display:flex}.rangepicker__month{padding:var(--space-4)}.rangepicker__second{border-left:1px solid var(--color-gray-border)}.rangepicker__navspace{width:32px;height:32px}.rangepicker__day{border-radius:var(--radius-md)}.rangepicker__day.is-in{background:var(--color-gray-subtle);border-radius:0}.rangepicker__day.is-from{border-radius:var(--radius-md) 0 0 var(--radius-md);background:linear-gradient(90deg, transparent 50%, var(--color-gray-subtle) 50%)}.rangepicker__day.is-to{border-radius:0 var(--radius-md) var(--radius-md) 0;background:linear-gradient(90deg, var(--color-gray-subtle) 50%, transparent 50%)}.rangepicker__day.is-end{color:var(--color-white);font-weight:600}.rangepicker__day.is-end:before{content:"";border-radius:var(--radius-md);background:var(--color-brand);z-index:-1;position:absolute;inset:0}.rangepicker__day{z-index:0;isolation:isolate}.rangepicker__day.is-end .calendar__dot--today{background:var(--color-white)}.rangepicker__foot{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-gray-border);display:flex}.rangepicker__fields{align-items:center;gap:8px;display:flex}.rangepicker__field{font-variant-numeric:tabular-nums;align-items:center;width:140px;display:inline-flex}.rangepicker__field.is-empty{color:var(--color-gray-placeholder)}.rangepicker__actions{gap:8px;display:flex}.rangepicker--narrow{flex-direction:column}.rangepicker--narrow .rangepicker__presets{border-right:none;border-bottom:1px solid var(--color-gray-border);flex-direction:row}@media (width<=900px){.rangepicker__presets{width:auto}.rangepicker__preset{white-space:nowrap}.rangepicker__field{width:110px}.rangepicker__foot{flex-wrap:wrap}}.sankey{width:100%;position:relative;overflow:hidden}.sankey svg{display:block}.sankey__name{fill:var(--text-primary);font-size:14px;font-weight:600}.sankey__value{fill:var(--color-gray-muted);font-variant-numeric:tabular-nums;font-size:13px}.sankey__tip{z-index:5;pointer-events:none;max-width:260px;box-shadow:var(--shadow-l);color:var(--text-primary);padding:6px 10px;font-size:13px;position:absolute}.algo-block{padding:var(--space-4);border:1px solid var(--color-gray-border);border-radius:var(--radius-md);background:var(--color-gray-bg);flex-direction:column;gap:10px;display:flex}.algo-block.is-on{background:var(--color-white);border-color:var(--color-brand-light,#a4e3fe)}.algo-block__head{justify-content:space-between;align-items:center;gap:12px;display:flex}.algo-block__head strong{color:var(--text-primary);font-size:16px}.algo-block__help{color:var(--color-gray-muted);margin:0;font-size:14px}.algo-block .input[readonly]{background:var(--color-gray-subtle);color:var(--color-gray-muted);cursor:default}.algo-block__sliders{flex-direction:column;gap:14px;display:flex}.algo-slider{flex-direction:column;gap:4px;display:flex}.algo-slider__top{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.algo-slider__top strong{color:var(--text-primary);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:15px}.algo-slider input[type=range]{appearance:none;border-radius:var(--radius-full);cursor:pointer;background:linear-gradient(to right, var(--color-gray-border) var(--from,0%), var(--color-brand) var(--from,0%), var(--color-brand) var(--to,0%), var(--color-gray-border) var(--to,0%));width:100%;height:6px;margin:8px 0}.algo-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--color-white);border:2px solid var(--color-brand);width:18px;height:18px;box-shadow:var(--shadow-s);border-radius:50%}.algo-slider input[type=range]::-moz-range-thumb{background:var(--color-white);border:2px solid var(--color-brand);border-radius:50%;width:14px;height:14px}.algo-slider input[type=range]:focus-visible{box-shadow:var(--shadow-focus);outline:none}.algo-block:not(.is-on) .algo-slider input[type=range]{background:linear-gradient(to right, var(--color-gray-border) var(--from,0%), var(--color-gray-placeholder) var(--from,0%), var(--color-gray-placeholder) var(--to,0%), var(--color-gray-border) var(--to,0%))}.algo-block:not(.is-on) .algo-slider input[type=range]::-webkit-slider-thumb{border-color:var(--color-gray-placeholder)}.algo-slider__scale{color:var(--color-gray-muted);font-variant-numeric:tabular-nums;justify-content:space-between;font-size:12px;display:flex}.drawer-backdrop{z-index:105;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#283a5b2e;animation:.25s drawer-fade;position:fixed;inset:0}.drawer{background:var(--color-white);border:1px solid var(--color-gray-border);border-radius:var(--radius-xl,16px);width:min(460px,100vw - 32px);box-shadow:var(--shadow-xxl);flex-direction:column;animation:.35s cubic-bezier(.22,1,.36,1) drawer-in;display:flex;position:absolute;top:16px;bottom:16px;right:16px;overflow:hidden}.drawer-backdrop.is-closing{animation:.22s forwards drawer-fade-out}.drawer-backdrop.is-closing .drawer{animation:.22s forwards drawer-out}@keyframes drawer-in{0%{transform:translate(calc(100% + 32px))}to{transform:none}}@keyframes drawer-out{to{transform:translate(calc(100% + 32px))}}@keyframes drawer-fade{0%{opacity:0}to{opacity:1}}@keyframes drawer-fade-out{to{opacity:0}}@media (prefers-reduced-motion:reduce){.drawer,.drawer-backdrop{animation:none!important}}.drawer__head{justify-content:space-between;align-items:flex-start;margin-bottom:20px;display:flex}.drawer__logo{border-radius:var(--radius-md);background:var(--color-dark);width:40px;height:40px;color:var(--color-white);justify-content:center;align-items:center;display:flex}.drawer__close{width:32px;height:32px;color:var(--color-gray-muted);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex}.drawer__close:hover{background:var(--color-gray-subtle);color:var(--text-primary)}.drawer__close:focus-visible{box-shadow:var(--shadow-focus);outline:none}.drawer__title{color:var(--text-primary);margin:0;font-size:19px;font-weight:600}.drawer__sub{color:var(--color-gray-muted);margin:4px 0 0;font-size:15px}.drawer__battery{letter-spacing:.06em;text-transform:uppercase;color:var(--color-gray-muted);margin-top:24px;font-size:13px;font-weight:600}.drawer .algo-list{flex-direction:column;display:flex}.drawer .algo-block{border:none;border-top:2px dotted var(--color-gray-border);background:0 0;border-radius:0;margin-top:22px;padding:22px 0 4px}.drawer .algo-list .algo-block:first-child{margin-top:20px}.drawer .algo-block.is-on{background:0 0}*{scrollbar-width:thin;scrollbar-color:transparent transparent}.is-scrolling{scrollbar-color:#283a5b52 transparent}.algo-range{height:22px;position:relative}.algo-range__track{border-radius:var(--radius-full);background:linear-gradient(to right, var(--color-gray-border) var(--from), var(--color-brand) var(--from), var(--color-brand) var(--to), var(--color-gray-border) var(--to));height:6px;position:absolute;top:8px;left:0;right:0}.algo-slider .algo-range input[type=range]{pointer-events:none;background:0 0;height:22px;margin:0;position:absolute;top:0;left:0;right:0}.algo-slider .algo-range input[type=range]::-webkit-slider-thumb{pointer-events:auto;cursor:grab}.algo-slider .algo-range input[type=range]::-moz-range-thumb{pointer-events:auto;cursor:grab}.algo-block:not(.is-on) .algo-range__track{background:linear-gradient(to right, var(--color-gray-border) var(--from), var(--color-gray-placeholder) var(--from), var(--color-gray-placeholder) var(--to), var(--color-gray-border) var(--to))}.algo-block:not(.is-on) .algo-slider .algo-range input[type=range]{background:0 0}.algo-range__legend{color:var(--color-gray-muted);justify-content:space-between;gap:8px;font-size:13px;display:flex}.algo-range__legend strong{color:var(--text-primary);font-weight:600}.drawer__body{flex:1;min-height:0;padding:28px 28px 24px;overflow-y:auto}.drawer__foot{background:var(--color-white);border-top:2px dotted var(--color-gray-border);flex-wrap:wrap;flex:none;align-items:center;gap:8px;padding:16px 28px;display:flex}.drawer__problem{flex:100%;margin:0 0 4px}.drawer__cancel{font:inherit;color:var(--color-gray-muted);text-underline-offset:3px;cursor:pointer;background:0 0;border:none;margin-left:8px;padding:0;font-size:15px;text-decoration:underline}.drawer__cancel:hover{color:var(--text-primary)}.drawer__cancel:focus-visible{box-shadow:var(--shadow-focus);border-radius:2px;outline:none}.drawer .form-grid--2,.drawer .form-grid--3{grid-template-columns:1fr 1fr}.drawer__logo svg{width:22px;height:22px}.drawer__cancel:disabled{opacity:.5;cursor:default}.drawer__confirm{z-index:2;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);border-radius:inherit;background:#fff9;justify-content:center;align-items:center;padding:24px;animation:.2s drawer-fade;display:flex;position:absolute;inset:0}.drawer__confirm-card{background:var(--color-white);border:1px solid var(--color-gray-border);border-radius:var(--radius-lg);width:100%;box-shadow:var(--shadow-xl);flex-direction:column;gap:10px;padding:20px;display:flex}.drawer__confirm-card h3{color:var(--text-primary);margin:0;font-size:17px;font-weight:600}.drawer__confirm-text{color:var(--text-primary);white-space:pre-line;margin:0;font-size:15px}.drawer__confirm-actions{gap:8px;margin-top:4px;display:flex}.settings-band{flex-direction:column;gap:4px;margin-top:14px;display:flex}.device-power-grid{margin-top:20px}.settings-band.device-power{gap:16px;margin-top:20px}.meter-panel__period{margin-top:20px}.meter-panel__chart{border-top:2px dotted var(--color-gray-border);margin-top:20px;padding-top:18px}.meter-panel__count{margin-right:auto;font-size:14px}.session-panel__figures{grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:8px;margin-top:20px;display:grid}.session-panel__figures>div{border-radius:var(--radius-md);background:var(--color-gray-bg);flex-direction:column;gap:2px;padding:10px 12px;display:flex}.session-panel__figures span{font-size:13px}.session-panel__figures strong{color:var(--text-primary);font-variant-numeric:tabular-nums;font-size:17px}.session-panel__title{border-top:2px dotted var(--color-gray-border);margin-top:22px;padding-top:18px}.tour-anchor{display:inline-flex}.inline-value{align-items:baseline;gap:3px;display:inline-flex}.inline-value__input.input--inline{width:auto;min-width:2ch;color:var(--text-primary);text-align:right;border-bottom-color:var(--color-gray-divider);font-variant-numeric:tabular-nums;padding:0 1px;font-size:15px;font-weight:600}.algo-range__legend .inline-value__input.input--inline{font-size:13px}.inline-value__unit{font-size:inherit;color:var(--text-primary);font-weight:600}.algo-range__legend .inline-value__unit{font-size:13px}.drawer__who{color:var(--text-primary);align-items:baseline;gap:8px;margin-top:8px;display:flex}.drawer__who-label{flex:none}.drawer.drawer--wide{width:min(610px,100vw - 32px)}.drawer__header{background:var(--color-white);border-bottom:2px dotted var(--color-gray-border);flex:none;padding:28px 28px 20px}.drawer__header .drawer__head{margin-bottom:16px}.drawer__body>.algo-list:first-child .algo-block:first-child,.drawer__body>:first-child.form-section{border-top:none}.drawer .form-section{border-top:2px dotted var(--color-gray-border);margin-top:22px;padding:22px 0 4px}.drawer .meter-panel__chart,.drawer .session-power__sub.session-panel__title{margin-top:22px;padding-top:22px}.drawer .drawer__body{padding-top:22px}.drawer__body>.algo-list:first-child .algo-block:first-child,.drawer__body>.form-section:first-child{margin-top:0;padding-top:0}.drawer__body>.panel-fresh>.form-section:first-of-type,.drawer__body>.panel-fresh>.algo-list:first-child .algo-block:first-child,.drawer__body>.panel-fresh>.sr-only:first-child+.algo-list .algo-block:first-child{border-top:none;margin-top:0;padding-top:0}.skeleton-split{justify-content:space-between;gap:12px;display:flex}.drawer__body>.meter-panel__period:first-child,.drawer__body>.session-panel__figures:first-child{margin-top:0}.drawer .form-section__title,.drawer .session-power__sub{color:var(--text-primary);margin:0 0 10px;font-size:16px;font-weight:700}.drawer .form-section__intro{font-size:14px;line-height:inherit;color:var(--color-gray-muted);margin:0 0 10px}.drawer__cancel,.login-link{color:var(--color-brand);text-decoration:underline;-webkit-text-decoration-color:var(--color-brand-light,#a4e3fe);text-decoration-color:var(--color-brand-light,#a4e3fe);text-underline-offset:5px;font-weight:600;text-decoration-thickness:1px;transition:text-decoration-color .25s,text-decoration-thickness .25s}.drawer__cancel:hover:not(:disabled),.login-link:hover{color:var(--color-brand);-webkit-text-decoration-color:var(--color-brand);text-decoration-color:var(--color-brand);text-decoration-thickness:2px}.wp-planner__head{align-items:center;gap:8px;margin-bottom:10px;display:flex}.wp-planner__head .form-section__title{margin:0}.wp-planner__edit,.wp-planner__switch{margin-left:auto}.wp-cal{grid-template-columns:40px repeat(7,minmax(0,1fr));grid-template-rows:auto var(--wp-h);column-gap:3px;margin-top:4px;display:grid}.wp-cal__corner{color:var(--color-gray-muted);align-self:end;padding-bottom:4px;font-size:11px}.wp-cal__day{text-align:center;color:var(--color-gray-muted);text-transform:lowercase;padding-bottom:4px;font-size:13px}.wp-cal__day.is-today{color:var(--text-primary);font-weight:700}.wp-planner.is-off .wp-cal__day{color:var(--color-gray-placeholder)}.wp-cal__hours{position:relative}.wp-cal__hours span{color:var(--color-gray-muted);font-size:11px;position:absolute;left:0;transform:translateY(-1px)}.wp-cal__col{background:repeating-linear-gradient(to bottom, var(--color-gray-subtle) 0 calc(3 * 18px - 1px), var(--color-gray-border) calc(3 * 18px - 1px) calc(3 * 18px));border-radius:6px;position:relative;overflow:hidden}.wp-cal__col.is-today{box-shadow:0 0 0 1px var(--color-brand-light)}.wp-cal__block{box-sizing:border-box;border-bottom:2px solid var(--color-white);color:var(--color-dark);flex-direction:column;gap:1px;padding:3px 5px;font-size:12px;line-height:15px;display:flex;position:absolute;left:0;right:0;overflow:hidden}.wp-cal__block strong{white-space:nowrap;font-weight:700}.wp-cal__block span{text-overflow:ellipsis;overflow:hidden}.wp-cal__block.is-carried{opacity:.75}.wp-cal__block.is-carried strong{font-style:italic;font-weight:400}.wp-cal__block.is-now{box-shadow:inset 0 0 0 2px var(--color-brand)}.wp-cal__now{background:var(--color-error);height:2px;margin-top:-1px;position:absolute;left:0;right:0}.wp-legend{color:var(--color-gray-muted);flex-wrap:wrap;gap:6px 14px;margin-top:12px;font-size:13px;display:flex}.wp-legend span{align-items:center;gap:6px;display:inline-flex}.wp-legend i{border:1px solid var(--color-gray-border);border-radius:3px;width:12px;height:12px}.wp-system__name{color:var(--color-gray-muted);text-transform:uppercase;letter-spacing:.04em;margin:22px 0 0;font-size:14px;font-weight:600}.drawer__body>.wp-system:first-child>.wp-system__name{margin-top:0}.drawer__body>.wp-system:first-child>.wp-planner:first-child,.drawer__body>.wp-system:first-child>.wp-system__name+.wp-planner{border-top:none;margin-top:0;padding-top:0}.wp-system__name+.wp-planner{border-top:none;margin-top:12px;padding-top:0}.wp-edit__tabs{flex-wrap:wrap;margin-bottom:12px}.wp-edit__count{background:var(--color-gray-subtle);min-width:18px;height:18px;color:var(--color-gray-muted);border-radius:9px;justify-content:center;align-items:center;margin-left:4px;padding:0 5px;font-size:12px;font-weight:600;display:inline-flex}.period-group__btn.is-active .wp-edit__count{background:var(--color-brand);color:var(--color-dark)}.wp-edit{flex-direction:column;gap:8px;margin-bottom:8px;display:flex}.wp-edit__slot{border:1px solid var(--color-gray-border);border-left:3px solid var(--color-brand);border-radius:0 6px 6px 0;align-items:flex-end;gap:10px;padding:8px 10px;display:flex}.wp-edit__nr{color:var(--text-primary);white-space:nowrap;align-self:center;min-width:52px;font-size:13px;font-weight:700}.wp-edit__field{flex-direction:column;gap:4px;min-width:0;display:flex}.wp-edit__field .input{width:100%}.wp-edit__time{width:80px!important}.wp-edit__field .input-unit{width:110px}.wp-edit__remove{align-self:center;margin-left:auto}.wp-edit__add{border:1px dashed var(--color-brand);color:var(--color-brand);font:inherit;cursor:pointer;text-align:left;background:0 0;border-radius:6px;padding:8px;font-size:14px;font-weight:600}.wp-edit__add:hover{background:var(--color-brand-pale)}.algo-offline{font-size:var(--text-sm);margin-bottom:var(--space-3);flex-direction:column;gap:2px;display:flex}.algo-offline strong{color:var(--text-primary-light);font-weight:600}.algo-offline span{color:var(--color-gray-muted)}fieldset.algo-list{border:0;min-width:0;margin:0;padding:0}.algo-list.is-locked .algo-block{opacity:.6}.algo-list.is-locked .toggle,.algo-list.is-locked input{cursor:not-allowed}.data-table tbody tr.is-archived td{color:var(--color-gray-muted);background:#f5f7fa}.data-table tbody tr.is-archived td .td-entity__name{color:var(--color-gray-muted);font-weight:500}.hub-batteries{margin-top:var(--space-4);flex-direction:column;gap:8px;display:flex}.hub-batteries__row{gap:var(--space-3);grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr);align-items:center;display:grid}.hub-batteries__head{color:var(--color-gray-muted);font-size:13px;font-weight:500}.hub-batteries__row.is-off>span{color:var(--color-gray-muted)}.hub-batteries__row.is-off .input{color:var(--color-gray-placeholder);background:var(--color-gray-subtle)}.label-info{vertical-align:middle;color:var(--color-gray-muted);margin-left:6px;font-weight:400;display:inline-flex}.hub-batteries__name{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.hub-batteries__switch{min-width:26px;height:26px;color:var(--color-brand-deep);padding:0 4px}.hub-batteries__switch.is-off{color:var(--color-gray-placeholder)}.hub-batteries__switch:disabled{opacity:.5;cursor:default}.form-section .input[readonly],.hub-batteries .input[readonly]{background:var(--color-gray-subtle);color:var(--color-gray-muted);cursor:default}.column-picker{display:inline-flex;position:relative}.column-picker .btn-icon.is-on{color:var(--color-brand-deep,#237ea5);border-color:var(--color-brand)}.column-picker__menu{z-index:30;background:var(--color-white);border:1px solid var(--color-gray-border);border-radius:var(--radius-md);min-width:220px;max-height:360px;box-shadow:var(--shadow-xl);padding:8px;position:absolute;top:calc(100% + 6px);right:0;overflow:auto}.column-picker__title{color:var(--color-gray-muted);padding:4px 8px 6px;font-size:13px;font-weight:600}.column-picker__item{border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;white-space:nowrap;align-items:center;gap:8px;padding:6px 8px;font-size:15px;display:flex}.column-picker__item:hover{background:var(--color-gray-subtle)}.column-picker__all{margin:6px 8px 2px;font-size:14px;display:block}.card-actions{align-items:center;gap:8px;display:inline-flex}.status-label--pulse .status-label__icon{transform-origin:50%;animation:1.6s ease-in-out infinite live-dot}@keyframes live-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.6)}}@media (prefers-reduced-motion:reduce){.status-label--pulse .status-label__icon{animation:none}}.main{position:relative}.topbar{top:var(--space-6);right:var(--space-8);z-index:30;align-items:center;height:36px;display:flex;position:absolute}.topbar__tools{align-items:center;gap:8px;display:flex}.main>.topbar~div .page-header{padding-right:80px}.palette-backdrop{z-index:1100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#283a5b2e;justify-content:center;align-items:flex-start;padding:12vh 16px 16px;animation:.2s drawer-fade;display:flex;position:fixed;inset:0}.palette{background:var(--color-white);border:1px solid var(--color-gray-border);border-radius:12px;flex-direction:column;width:min(620px,100%);max-height:70vh;animation:.2s cubic-bezier(.22,1,.36,1) palette-in;display:flex;overflow:hidden;box-shadow:0 24px 48px -12px #1018282e}@keyframes palette-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.palette,.palette-backdrop{animation:none}}.palette__field{border-bottom:1px solid var(--color-gray-subtle);align-items:center;gap:10px;padding:12px 16px;display:flex}.palette.is-bare .palette__field{border-bottom:none}.palette__magnifier{color:var(--color-gray-muted);display:inline-flex}.palette__input{min-width:0;font:inherit;color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;padding:4px 0;font-size:16px;line-height:24px}.palette__input::placeholder{color:var(--color-gray-placeholder)}.palette__kbd{box-sizing:border-box;border:1px solid var(--color-gray-border);background:var(--color-white);min-width:24px;height:22px;font:inherit;color:var(--color-gray-muted);border-radius:6px;justify-content:center;align-items:center;padding:0 6px;font-size:11px;font-weight:600;display:inline-flex}.palette__filters{border:1px solid var(--color-gray-border);background:var(--color-gray-bg);scrollbar-width:none;box-sizing:border-box;border-radius:10px;align-self:flex-start;gap:2px;max-width:calc(100% - 32px);margin:10px 16px 2px;padding:3px;display:flex;overflow-x:auto}.palette__filter{white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:8px;flex:none;align-items:center;gap:6px;padding:5px 12px;font-size:13px;display:inline-flex}.palette__filter:hover{color:var(--text-primary)}.palette__filter.is-active{background:var(--color-white);border-color:var(--color-gray-border);color:var(--text-primary);box-shadow:0 1px 2px #1018280f}.palette__filter-count{color:var(--color-gray-placeholder)}.palette__list{flex:1;min-height:0;padding:6px 8px;overflow-y:auto}.palette__section{padding:4px 0}.palette__section+.palette__section{border-top:1px solid var(--color-gray-subtle);margin-top:4px;padding-top:8px}.palette__heading{color:var(--color-gray-muted);justify-content:space-between;align-items:center;padding:6px 8px 4px;font-size:13px;font-weight:400;display:flex}.palette__clear{font:inherit;color:var(--color-gray-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px}.palette__clear:hover{color:var(--text-primary)}.palette__note{color:var(--color-gray-muted);margin:8px;font-size:14px}.palette__row{width:100%;min-height:36px;font:inherit;text-align:left;color:var(--text-primary);cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:6px 8px;display:flex}.palette__row.is-active{background:var(--color-gray-bg)}.palette__icon{color:var(--text-primary);opacity:.8;flex-shrink:0;display:inline-flex}.palette__label{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:14px;font-weight:500;overflow:hidden}.palette__detail{color:var(--color-gray-muted);margin-left:8px;font-weight:400}.palette__mark{background:var(--color-brand-pale);color:inherit;box-shadow:0 0 0 1px var(--color-brand-pale);border-radius:3px;padding:0 1px}.palette__chip{border:1px solid var(--color-gray-border);max-width:45%;color:var(--color-gray-muted);white-space:nowrap;text-overflow:ellipsis;border-radius:6px;flex-shrink:0;padding:1px 7px;font-size:12px;line-height:18px;overflow:hidden}.palette__empty{text-align:center;flex-direction:column;align-items:center;padding:28px 24px 32px;display:flex}.palette__empty-art{width:120px;height:72px}.palette__empty-title{color:var(--text-primary);margin:12px 0 6px;font-size:16px;font-weight:600}.palette__empty-text{max-width:380px;color:var(--color-gray-muted);margin:0;font-size:14px;line-height:20px}.palette__empty-actions{gap:10px;margin-top:20px;display:flex}.dash-grid{position:relative}.dash-grid .react-grid-layout{z-index:1;position:relative}.dash-grid.is-editing .react-grid-layout{pointer-events:none}.dash-grid.is-editing .react-grid-item{pointer-events:auto}.dash-grid__cells{z-index:0;position:absolute;inset:0}.dash-grid__cell{box-sizing:border-box;border:1.5px dashed var(--color-gray-border);border-radius:var(--radius-lg);background:#f5f7fa99;justify-content:center;align-items:center;display:flex;position:absolute}.dash-grid__add{border-radius:var(--radius-full);border:1px solid var(--color-gray-border);background:var(--color-white);width:36px;height:36px;color:var(--color-gray-muted);font:inherit;cursor:pointer;opacity:0;font-size:22px;line-height:1;transition:opacity .15s,color .15s,border-color .15s}.dash-grid__cell:hover .dash-grid__add,.dash-grid__add:focus-visible{opacity:1}.dash-grid__add:hover{color:var(--color-brand-deep);border-color:var(--color-brand)}.dash-item{flex-direction:column;min-width:0;display:flex;position:relative}.dash-item__fill{flex-direction:column;flex:1;min-height:0;display:flex}.dash-item__fill>.card,.dash-item__fill>.card-metric{flex:1;min-height:0;margin:0}.dash-item__fill>.card{flex-direction:column;display:flex;overflow:hidden}.dash-item__fill>.card>:last-child{min-height:0}.react-grid-item.resizing>.dash-item__fill{flex:none;position:absolute;top:0;left:0}.dash-grid.is-resizing .react-grid-item.react-grid-placeholder{display:none}.dash-item__scroll{flex:1;min-height:0;overflow:auto}.dash-grid.is-editing .dash-item__fill>.card,.dash-grid.is-editing .dash-item__fill>.card-metric{pointer-events:none;-webkit-user-select:none;user-select:none}.dash-grid.is-editing .dash-item{border-radius:var(--radius-lg);outline:2px solid #0000;transition:outline-color .15s}.dash-grid.is-editing .dash-item.react-draggable-dragging{outline-color:var(--color-brand)}.dash-item__chrome{z-index:3;border-radius:var(--radius-md);background:var(--color-white);border:1px solid var(--color-gray-border);box-shadow:var(--shadow-m);opacity:0;pointer-events:none;align-items:center;gap:2px;padding:2px;transition:opacity .15s;display:flex;position:absolute;top:8px;right:8px}.dash-item:hover>.dash-item__chrome,.dash-item:focus-within>.dash-item__chrome,.dash-item.react-draggable-dragging>.dash-item__chrome,.dash-item.resizing>.dash-item__chrome{opacity:1;pointer-events:auto}@media (hover:none){.dash-item__chrome{opacity:1;pointer-events:auto}}.dash-item__grip,.dash-item__btn{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--color-gray-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.dash-item__grip{cursor:grab}.dash-item__grip:active{cursor:grabbing}.dash-item__grip:hover,.dash-item__btn:hover{background:var(--color-gray-subtle);color:var(--text-primary)}.dash-grid .react-grid-item.react-grid-placeholder{opacity:1;border-radius:var(--radius-lg);outline:2px dashed var(--color-brand);outline-offset:-2px;background:0 0}.dash-grid .react-grid-item>.react-resizable-handle{z-index:3}.dash-stack{flex-direction:column;gap:16px;display:flex}.dash-stack .dash-item--chart,.dash-stack .dash-item--table{min-height:320px}.dash-editor__label{margin:14px 0 6px;display:block}.dash-editor__choices{flex-direction:column;gap:6px;margin-top:8px;display:flex}.dash-editor__choice{border:1px solid var(--color-gray-border);border-radius:var(--radius-md);cursor:pointer;align-items:center;gap:10px;padding:8px 10px;display:flex}.dash-editor__choice:hover{background:var(--color-gray-bg)}.dash-editor__choice:has(input:checked){border-color:var(--color-brand);background:var(--color-brand-pale)}.dash-editor__choice.is-off{color:var(--color-gray-muted)}.dialog__actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.dash-item--kpi .card-metric{overflow:hidden}.dash-item--kpi .card-metric__value{white-space:nowrap;text-overflow:ellipsis;font-size:29px;line-height:36px;overflow:hidden}.dash-item--kpi .card-metric__label,.dash-item--kpi .card-metric__delta{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.drawer .notif__filters{margin-bottom:4px;padding:0 0 12px}.drawer .notif__list{margin:0 -12px;overflow:visible}.dash-grid.is-resizing .dash-item.resizing{outline-color:#0000}.react-grid-item.resizing>.dash-item__fill{outline:2px solid var(--color-brand);border-radius:var(--radius-lg)}.marquee{vertical-align:bottom;white-space:nowrap;text-overflow:ellipsis;display:inline-block;overflow:hidden}.marquee__text{display:inline-block}:is(td,.marquee-host):hover .marquee--overflow{text-overflow:clip}:is(td,.marquee-host):hover .marquee--overflow .marquee__text{animation:marquee var(--marquee-time,4s) ease-in-out infinite alternate}@keyframes marquee{0%,18%{transform:translate(0)}82%,to{transform:translateX(var(--marquee-shift,0))}}@media (prefers-reduced-motion:reduce){:is(td,.marquee-host):hover .marquee--overflow .marquee__text{animation:none}}.message-log__tools{align-items:center;gap:8px;margin-bottom:12px;display:flex}.log-filter{display:inline-flex;position:relative}.log-filter__button{cursor:pointer;text-align:left;width:240px;color:var(--text-primary);justify-content:space-between;align-items:center;gap:8px;display:inline-flex}.log-filter__button.is-on{border-color:var(--color-brand)}.log-filter__button svg{color:var(--color-gray-muted);flex:none}.log-filter__text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.log-filter__menu{min-width:280px;left:0;right:auto}.log-filter__code{color:var(--color-gray-muted);font-size:12px;font-family:var(--font-mono,ui-monospace, monospace);margin-left:auto;padding-left:12px}.message-log__auto{margin-left:auto;font-size:13px}.message-log__auto .live-dot{background:var(--color-success);border-radius:50%;width:7px;height:7px;animation:1.6s ease-in-out infinite live-dot}.message-log{border-top:1px solid var(--color-gray-divider);margin:0 0 12px;padding:0;list-style:none}.message-log__item{border-bottom:1px solid var(--color-gray-divider)}.message-log__row{width:100%;font:inherit;text-align:left;color:var(--text-primary);cursor:pointer;background:0 0;border:none;grid-template-columns:128px 104px 1fr;align-items:center;gap:8px;padding:8px 4px;font-size:13px;display:grid}.message-log__row:hover{background:var(--color-gray-bg)}.message-log__note{flex-wrap:wrap;align-items:center;gap:8px 12px;margin:4px 0 12px;display:flex}.message-log__note p{margin:0}.message-log--skeleton .message-log__row{border-bottom:1px solid var(--color-gray-divider);cursor:default}.message-log--skeleton .message-log__row:hover{background:0 0}.message-log__time{color:var(--color-gray-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.message-log__dir{border-radius:var(--radius-full);white-space:nowrap;justify-self:start;align-items:center;gap:5px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-flex}.message-log__dir--from_asset{color:var(--color-success);background:#f5fbf8}.message-log__dir--to_asset{color:var(--color-info);background:#eef7ff}.message-log__summary{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.message-log__tech{color:var(--color-gray-muted);overflow-wrap:anywhere;font-size:12px}.message-log__tech code{color:var(--text-primary);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.message-log__detail{gap:8px;padding:4px 4px 12px;display:grid}.code-block{border:1px solid var(--color-gray-border);border-radius:var(--radius-md);background:var(--color-white);margin:4px 0 0;position:relative;overflow:hidden}.code-block pre.code{max-height:320px;color:var(--text-primary);white-space:pre-wrap;word-break:break-word;background:0 0;margin:0;padding:12px 14px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;line-height:20px;overflow:auto}.code-block:after{content:"";pointer-events:none;opacity:0;height:72px;transition:opacity var(--transition-base,.15s ease);background:linear-gradient(to bottom, #fff0, var(--color-white) 85%);position:absolute;bottom:0;left:0;right:0}.code-block.has-more:after{opacity:1}.code__key{color:var(--text-primary)}.code__str{color:#4e5d78}.code__num{color:var(--color-info)}.code__lit{color:var(--color-error)}.recharts-label{pointer-events:none}.soc-event-marker{cursor:help;pointer-events:all;outline:none}.soc-event-marker:focus-visible circle{stroke:var(--color-brand);stroke-width:3px}.conn-cell{align-items:center;gap:6px;display:inline-flex}.conn-cell .hint-icon{margin-left:0}.data-table tbody tr.is-inactive td,.data-table tbody tr.is-inactive .td-entity__name{color:var(--color-gray-muted)}.meters-table .td-entity__name,.meters-table td:nth-child(2),.meters-table td:nth-child(3){white-space:nowrap}.csv-export{width:min(640px,100%)}.csv-export__all{gap:16px;margin:4px 0 8px;font-size:14px;display:flex}.csv-export__fields{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:2px 12px;display:grid}.row-toggle{border-radius:var(--radius-sm);width:22px;height:22px;color:var(--color-gray-muted);cursor:pointer;vertical-align:middle;background:0 0;border:none;justify-content:center;align-items:center;margin:0 4px 0 -4px;padding:0;display:inline-flex}.row-toggle:hover{background:var(--color-gray-subtle);color:var(--text-primary)}.my-alerts__list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.my-alerts__item{border:1px solid var(--color-gray-border);border-radius:var(--radius-md);background:var(--color-white);align-items:center;gap:12px;padding:12px;display:flex}.my-alerts__item.is-off .my-alerts__text,.my-alerts__item.is-off .my-alerts__icon{opacity:.5}.my-alerts__icon{border-radius:var(--radius-sm);background:var(--color-brand-pale);width:32px;height:32px;color:var(--color-brand-deep);flex:none;justify-content:center;align-items:center;display:inline-flex}.my-alerts__icon--charger_offline{color:var(--color-error);background:#fef6f3}.my-alerts__icon--battery_low{color:var(--color-success);background:#f5fbf8}.my-alerts__icon--grid_import{color:#b57a06;background:#fefaf1}.my-alerts__text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.my-alerts__rule{color:var(--text-primary);font-weight:600}.my-alerts__where{color:var(--color-gray-muted);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.my-alerts__item .toggle{margin-right:4px}.my-alerts__form{flex-direction:column;gap:16px;display:flex}.my-alerts__form .field{flex-direction:column;display:flex}.my-alerts__empty{text-align:center;padding:32px 16px}.my-alerts__empty p{margin:4px 0}.my-alerts__empty-icon{background:var(--color-brand-pale);width:44px;height:44px;color:var(--color-brand-deep);border-radius:50%;justify-content:center;align-items:center;margin-bottom:8px;display:inline-flex}.my-alerts__error{border-radius:var(--radius-md);color:var(--color-error);background:#fef6f3;margin:0 0 12px;padding:10px 12px;font-size:14px}.notif__manage{margin:0 16px 8px auto;font-size:13px;display:block}.routine-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.routine-item{border:1px solid var(--color-gray-border);border-radius:var(--radius-md);background:var(--color-white);align-items:center;gap:12px;padding:14px 16px;display:flex}.routine-item.is-off .routine-item__text{opacity:.5}.routine-item__text{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.routine-item__meta{flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.routine-item .toggle{margin-right:4px}.routine-badge{border-radius:var(--radius-full);padding:1px 8px;font-weight:600}.routine-badge--auto{background:var(--color-brand-pale);color:var(--color-brand-deep)}.routine-state{color:var(--color-gray-muted);font-size:12px;font-weight:600}.routine-state--ok{color:var(--color-success)}.routine-state--fail{color:var(--color-error)}.routine-state--ask{color:#b57a06}.routine-pause{align-items:center;gap:8px;margin-right:12px;font-weight:500;display:inline-flex}.routine-banner{border-radius:var(--radius-md);color:#8a5d04;background:#fefaf1;margin:0 0 16px;padding:10px 14px;font-size:14px}.routine-step{border-bottom:1px dashed var(--color-gray-border);flex-direction:column;gap:12px;padding:16px 0;display:flex}.routine-step:last-child{border-bottom:none}.routine-step h3{align-items:center;gap:8px;margin:0;font-size:16px;display:flex}.routine-step__n{background:var(--color-brand-pale);width:22px;height:22px;color:var(--color-brand-deep);border-radius:50%;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:inline-flex}.routine-step__opt{font-size:13px;font-weight:400}.routine-step .field{flex-direction:column;display:flex}.routine-row{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.routine-params{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));align-items:start;gap:12px;display:grid}.routine-chips{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.routine-chip{padding:5px 10px;font-size:13px}.routine-chip.is-on{border-color:var(--color-brand);background:var(--color-brand-pale);color:var(--color-brand-deep);font-weight:600}.routine-check{align-items:center;gap:8px;font-size:14px;display:inline-flex}.routine-action{border:1px solid var(--color-gray-border);border-radius:var(--radius-md);flex-direction:column;gap:10px;padding:12px;display:flex}.routine-action__head{justify-content:space-between;align-items:center;display:flex}.routine-modes{grid-template-columns:1fr 1fr;gap:8px;display:grid}.routine-mode{border:1px solid var(--color-gray-border);border-radius:var(--radius-md);cursor:pointer;gap:8px;padding:10px 12px;display:flex}.routine-mode.is-on{border-color:var(--color-brand);background:var(--color-brand-pale)}.routine-mode>span{flex-direction:column;gap:2px;font-size:13px;display:flex}.routine-runs{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.routine-runs li{border:1px solid var(--color-gray-border);border-radius:var(--radius-md);padding:10px 12px;font-size:13px}.routine-runs__head{justify-content:space-between;display:flex}.routine-runs__ok{color:var(--color-success)}.routine-runs__fail{color:var(--color-error)}.notif__actions{gap:8px;margin-top:6px;display:flex}.select-field{cursor:pointer;text-align:left;color:var(--text-primary);justify-content:space-between;align-items:center;gap:8px;display:flex}.select-field:disabled{cursor:default;color:var(--color-gray-muted);background:var(--color-gray-subtle)}.select-field.is-open{border-color:var(--color-brand);box-shadow:var(--shadow-focus)}.select-field svg{color:var(--color-gray-muted);transition:transform var(--transition-base,.15s ease);flex:none}.select-field.is-open svg{transform:rotate(180deg)}.select-field__text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-field__text.is-placeholder{color:var(--color-gray-placeholder)}.select-menu{flex-direction:column;gap:2px;max-width:min(480px,100vw - 32px);max-height:320px;display:flex;overflow-y:auto}.select-menu__item{border-radius:var(--radius-md);font:inherit;color:var(--text-primary);text-align:left;cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;gap:12px;padding:8px 10px;font-size:15px;display:flex}.select-menu__item.is-active{background:var(--color-gray-subtle)}.select-menu__item.is-selected{font-weight:600}.select-menu__item.is-selected svg{color:var(--color-brand);flex:none}.select-menu__item:disabled{color:var(--color-gray-divider);cursor:default}.routine-date{align-items:center;gap:12px;display:flex}.routine-add{align-self:flex-start;font-size:14px}.routine-stats{color:var(--color-gray-muted);font-size:12px}.routine-trial{border-radius:var(--radius-md);background:var(--color-brand-pale);border:1px solid var(--color-brand-light);flex-direction:column;gap:8px;margin:0 0 8px;padding:12px 14px;font-size:14px;display:flex}.routine-trial .routine-banner{margin:0}.routine-trial p{margin:0;font-size:13px}.routine-trial__list{flex-direction:column;gap:2px;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.routine-trial__list li{justify-content:space-between;gap:12px;display:flex}.routine-trial__list li span:last-child{font-variant-numeric:tabular-nums;font-weight:600}.routine-trial__examples{flex-direction:column;gap:2px;font-size:13px;display:flex}.routine-copy{flex-direction:column;gap:8px;max-height:280px;margin:8px 0;display:flex;overflow:auto}.routine-banner ul{margin:6px 0 0;padding-left:18px}.select-menu__group{color:var(--color-gray-muted);padding:8px 10px 4px;font-size:13px;font-weight:600}input[type=checkbox],input[type=radio]{appearance:none;vertical-align:middle;border:1.5px solid var(--color-gray-divider);background:var(--color-white) center / 12px 12px no-repeat;cursor:pointer;width:18px;height:18px;transition:border-color var(--transition-fast,.1s ease), background-color var(--transition-fast,.1s ease), box-shadow var(--transition-fast,.1s ease);flex:none;margin:0}input[type=checkbox]{border-radius:5px}input[type=radio]{border-radius:9999px}input[type=checkbox]:hover:not(:disabled),input[type=radio]:hover:not(:disabled){border-color:var(--color-brand)}input[type=checkbox]:focus-visible,input[type=radio]:focus-visible{box-shadow:var(--shadow-focus);outline:none}input[type=checkbox]:checked{border-color:var(--color-brand);background-color:var(--color-brand);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 8.5l3 3 6-7'/%3E%3C/svg%3E")}input[type=checkbox]:indeterminate{border-color:var(--color-brand);background-color:var(--color-brand);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M4 8h8'/%3E%3C/svg%3E")}input[type=radio]:checked{border-color:var(--color-brand);background:radial-gradient(circle, var(--color-brand) 0 4.5px, var(--color-white) 5px)}input[type=checkbox]:disabled,input[type=radio]:disabled{cursor:default;border-color:var(--color-gray-border);background-color:var(--color-gray-subtle)}input[type=checkbox]:checked:disabled,input[type=checkbox]:indeterminate:disabled{border-color:var(--color-gray-placeholder);background-color:var(--color-gray-placeholder)}input[type=radio]:checked:disabled{border-color:var(--color-gray-placeholder);background:radial-gradient(circle, var(--color-gray-placeholder) 0 4.5px, var(--color-gray-subtle) 5px)}:is(label:has(>input[type=checkbox]:disabled),label:has(>input[type=radio]:disabled)){cursor:default;color:var(--color-gray-muted)}.dash-head{border-bottom:1px solid var(--color-gray-border);margin-bottom:20px;padding-bottom:14px}.dash-head--overview{border-bottom:none;margin-top:40px;margin-bottom:0;padding-bottom:0}.dash-head--overview h2{letter-spacing:-.01em;margin:0 0 12px;font-size:24px;font-weight:700;line-height:32px}.dash-head__row{border-bottom:1px solid var(--color-gray-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding-bottom:14px;display:flex}.dash-head__tools{gap:8px;display:flex}.btn-outline{border:1px solid var(--color-gray-border);background:var(--color-white);color:var(--text-primary-light,#283a5b);align-items:center;gap:6px;font-weight:600;display:inline-flex}.btn-outline:hover:not(:disabled){background:var(--color-gray-subtle)}.btn-outline.is-on{border-color:var(--color-brand);color:var(--color-brand-deep)}.dash-filters{flex-wrap:wrap;gap:8px;display:flex}.filter-pill{border:1px solid var(--color-gray-border);border-radius:var(--radius-full);background:var(--color-white);align-items:center;padding:0;font-size:13px;display:inline-flex}.filter-pill--add{cursor:pointer;font:inherit;border-style:dashed;font-size:13px}.filter-pill__clear{color:var(--color-gray-muted);cursor:pointer;background:0 0;border:none;padding:0 0 0 9px;display:inline-flex}.filter-pill__clear:hover{color:var(--color-error)}.filter-pill__btn{font:inherit;cursor:pointer;color:var(--color-gray-muted);background:0 0;border:none;align-items:center;gap:6px;padding:4px 11px;display:inline-flex}.filter-pill__label{color:#4e5d78;font-weight:500}.filter-pill__label+.filter-pill__value{border-left:1px solid var(--color-gray-border);padding-left:7px}.filter-pill__value{color:var(--color-brand-deep);font-weight:600}.dash-today{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:32px;display:grid}.dash-today--wide{grid-template-columns:minmax(0,1fr)}.dash-today__picks{gap:48px;display:flex}.dash-today__pick{flex-direction:column;gap:2px;min-width:0;display:flex}.dash-today__select{color:#4e5d78;height:auto;box-shadow:none;background:0 0;border:none;gap:6px;padding:0;font-size:14px;font-weight:500}.dash-today__select:hover{color:var(--color-brand-deep)}.dash-today__value{color:var(--text-primary-light,#283a5b);font-variant-numeric:tabular-nums;font-size:20px;line-height:28px}.dash-today__at{color:var(--color-gray-muted);font-size:12px}.dash-today__chart{margin-top:12px}.dash-today__figures{border-top:1px solid var(--color-gray-border);grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin-top:20px;padding-top:16px;display:grid}.dash-today__figure{flex-direction:column;gap:4px;display:flex}.dash-today__figure-head{color:#4e5d78;justify-content:space-between;gap:8px;font-size:14px;font-weight:500;display:flex}.dash-today__figure strong{font-variant-numeric:tabular-nums;font-size:20px;font-weight:400;line-height:28px}.dash-tip{border:1px solid var(--color-gray-border);border-radius:var(--radius-lg);background:linear-gradient(160deg, var(--color-white) 55%, var(--color-gray-bg) 55%);flex-direction:column;gap:8px;min-height:240px;padding:20px;display:flex;position:relative;overflow:hidden}.dash-tip__top{justify-content:space-between;align-items:center;display:flex}.dash-tip__label{border:1px solid var(--color-gray-border);border-radius:var(--radius-xs);color:#4e5d78;background:var(--color-gray-bg);align-items:center;gap:5px;padding:2px 8px;font-size:12px;display:inline-flex}.dash-tip__close{color:var(--color-gray-muted);cursor:pointer;background:0 0;border:none;padding:4px;font-size:14px}.dash-tip h3{margin:6px 0 0;font-size:20px;font-weight:700;line-height:28px}.dash-tip p{color:#4e5d78;margin:0;font-size:14px;line-height:20px}.dash-tip__link{color:var(--color-brand-deep);font:inherit;cursor:pointer;background:0 0;border:none;align-self:flex-start;margin-top:8px;padding:0;font-weight:600}.dash-period{flex-direction:column;gap:2px;padding:18px 20px 14px;display:flex}.dash-period__head{align-items:center;gap:6px;display:flex}.dash-period__title{margin:0}.dash-period__head .hint-icon{margin-left:0}.dash-period__value{align-items:baseline;gap:6px;margin-top:2px;display:flex}.dash-period__value strong{font-variant-numeric:tabular-nums;font-size:20px;font-weight:600;line-height:28px}.dash-period__delta{color:var(--color-gray-muted);font-size:13px;font-weight:600}.dash-period__delta.is-good{color:var(--color-success)}.dash-period__delta.is-bad{color:var(--color-error)}.dash-period__prev{color:var(--color-gray-muted);font-size:13px}.dash-period__chart{flex:1 1 0;min-height:0;margin-top:10px}.dash-period__none{flex:1;justify-content:center;align-items:center;margin:10px 0 0;display:flex}.dash-item__fill>.card.dash-period>:last-child{min-height:auto}.dash-today__figure-head{align-items:flex-start}.dash-period__foot{color:var(--color-gray-muted);justify-content:space-between;align-items:center;margin-top:auto;padding-top:10px;font-size:12px;display:flex}.dash-period__more{font:inherit;color:var(--color-brand-deep);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px}.dash-period__more:hover{text-decoration:underline}.dash-breakdown__bar{background:var(--color-gray-subtle);border-radius:4px;gap:2px;height:14px;margin:14px 0 6px;display:flex;overflow:hidden}.dash-breakdown__bar>span{min-width:4px}.dash-breakdown__rows{margin:0;padding:0;list-style:none}.dash-breakdown__rows li{border-bottom:1px solid var(--color-gray-subtle);grid-template-columns:10px minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:11px 0;font-size:14px;display:grid}.dash-breakdown__rows li strong{font-variant-numeric:tabular-nums;text-align:right;min-width:80px;font-weight:600}.dash-breakdown__key{border-radius:2px;width:10px;height:10px}.chart-tooltip{box-shadow:var(--shadow-m,0 4px 12px #1018281a);flex-direction:column;gap:3px;font-size:12px;display:flex}.chart-tooltip__title{font-weight:600}.chart-tooltip__dot{vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.chart-tooltip__dot--dash{background:repeating-linear-gradient(90deg,#b0b7c3 0 3px,#0000 3px 5px);border-radius:0;width:10px;height:2px}@media (width<=1100px){.dash-today{grid-template-columns:minmax(0,1fr)}.dash-today__figures{grid-template-columns:repeat(2,minmax(0,1fr))}}.dash-skeleton-row{gap:var(--space-4);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.settings-exempt{border-top:1px dashed var(--color-gray-border);margin-top:16px;padding-top:14px}.settings-exempt .input-helper{margin:4px 0 0 26px}.input-static{align-items:center;height:36px;font-weight:600;display:flex}.settings-moved{border-radius:var(--radius-md);background:var(--color-gray-subtle);color:#4e5d78;margin:4px 0 24px;padding:10px 14px;font-size:14px}.charger-settings{flex-direction:column;display:flex}.charger-settings__head,.charger-settings__row{grid-template-columns:minmax(0,1fr) 130px 130px;align-items:center;gap:12px;display:grid}.charger-settings__head{color:var(--color-gray-muted);border-bottom:1px solid var(--color-gray-border);padding:0 0 8px;font-size:12px;font-weight:500}.charger-settings__head span:not(:first-child){text-align:right}.charger-settings__item{border-bottom:1px solid var(--color-gray-subtle)}.charger-settings__row{padding:10px 0}.charger-settings__row--socket{background:var(--color-gray-bg);margin:0 -8px;padding:6px 8px}.charger-settings__row--socket .charger-settings__name{padding-left:32px;font-size:14px}.charger-settings__name{align-items:center;gap:8px;min-width:0;display:flex}.charger-settings__name strong{font-weight:600}.charger-settings__name .td-entity__sub{display:block}.charger-settings__input{text-align:right;width:100%}.data-table tr.table-group td{background:var(--color-gray-bg);color:var(--color-gray-muted);text-transform:uppercase;letter-spacing:.06em;height:32px;font-size:12px;font-weight:600}.data-table tr.is-unplanned td{color:var(--color-gray-muted)}.picker:has(.row-menu){padding:6px}.row-menu{flex-direction:column;min-width:200px;display:flex}.row-menu__item{border-radius:var(--radius-md);width:100%;font:inherit;color:var(--text-primary);text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:none;align-items:center;gap:10px;padding:8px 10px;font-size:14px;display:flex}.row-menu__item:hover:not(:disabled){background:var(--color-gray-subtle)}.row-menu__item:disabled{color:var(--color-gray-placeholder);cursor:default}.row-menu__item.is-danger{color:var(--color-error)}.row-menu__icon{color:var(--color-gray-muted);display:inline-flex}.row-menu__item.is-danger .row-menu__icon{color:var(--color-error)}
