@font-face{font-family:Uber Move Text;src:url(/_next/static/media/UberMoveTextRegular.12dab358.otf) format("opentype");font-weight:400;font-display:swap}@font-face{font-family:Uber Move Text;src:url(/_next/static/media/UberMoveTextMedium.f45e4761.otf) format("opentype");font-weight:500;font-display:swap}@font-face{font-family:Uber Move Text;src:url(/_next/static/media/UberMoveTextBold.6e5afddb.otf) format("opentype");font-weight:600 700;font-display:swap}@font-face{font-family:Gipbay;src:url(/_next/static/media/HFGipbay-Medium.c06a8cef.ttf) format("truetype");font-weight:500;font-display:swap}@font-face{font-family:Gipbay;src:url(/_next/static/media/HFGipbay-Bold.671c20c1.ttf) format("truetype");font-weight:700;font-display:swap}:root{--font-sans:"Uber Move Text",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--font-display:"Gipbay",ui-sans-serif,system-ui,sans-serif;--font-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--radius:0.625rem;--background:oklch(0.985 0 0);--foreground:oklch(0.145 0 0);--card:oklch(1 0 0);--muted:oklch(0.97 0 0);--muted-foreground:oklch(0.556 0 0);--border:oklch(0.922 0 0);--sidebar:oklch(1 0 0);--code-bg:oklch(0.972 0.002 250);--shadow-card:0 1px 2px oklch(0.145 0 0/0.05),0 8px 24px oklch(0.145 0 0/0.04);--brand:oklch(0.723 0.192 149.58);--state-available:oklch(0.596 0.145 163.2);--state-available-bg:oklch(0.962 0.044 156.7);--state-charging:oklch(0.546 0.215 262.9);--state-charging-bg:oklch(0.932 0.034 261.7);--state-preparing:oklch(0.646 0.163 63.1);--state-preparing-bg:oklch(0.962 0.059 95.6);--state-reserved:oklch(0.511 0.229 276.9);--state-reserved-bg:oklch(0.949 0.026 272.3);--state-faulted:oklch(0.577 0.245 27.3);--state-faulted-bg:oklch(0.949 0.033 17.4);--state-offline:oklch(0.708 0 0);--state-offline-bg:oklch(0.97 0 0)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--background:oklch(0.145 0 0);--foreground:oklch(0.985 0 0);--card:oklch(0.205 0 0);--muted:oklch(0.269 0 0);--muted-foreground:oklch(0.708 0 0);--border:oklch(0.269 0 0);--sidebar:oklch(0.205 0 0);--code-bg:oklch(0.185 0.003 250);--shadow-card:0 1px 2px oklch(0 0 0/0.4),0 8px 24px oklch(0 0 0/0.3);--state-available:oklch(0.765 0.153 163.2);--state-available-bg:oklch(0.278 0.055 160.1);--state-charging:oklch(0.707 0.152 261.9);--state-charging-bg:oklch(0.282 0.065 263.3);--state-preparing:oklch(0.795 0.147 82.1);--state-preparing-bg:oklch(0.286 0.058 76.4);--state-reserved:oklch(0.702 0.144 277.6);--state-reserved-bg:oklch(0.283 0.061 277.1);--state-faulted:oklch(0.704 0.191 22.2);--state-faulted-bg:oklch(0.291 0.076 21.8);--state-offline:oklch(0.556 0 0);--state-offline-bg:oklch(0.269 0 0)}}:root[data-theme=dark]{--background:oklch(0.145 0 0);--foreground:oklch(0.985 0 0);--card:oklch(0.205 0 0);--muted:oklch(0.269 0 0);--muted-foreground:oklch(0.708 0 0);--border:oklch(0.269 0 0);--sidebar:oklch(0.205 0 0);--code-bg:oklch(0.185 0.003 250);--shadow-card:0 1px 2px oklch(0 0 0/0.4),0 8px 24px oklch(0 0 0/0.3);--state-available:oklch(0.765 0.153 163.2);--state-available-bg:oklch(0.278 0.055 160.1);--state-charging:oklch(0.707 0.152 261.9);--state-charging-bg:oklch(0.282 0.065 263.3);--state-preparing:oklch(0.795 0.147 82.1);--state-preparing-bg:oklch(0.286 0.058 76.4);--state-reserved:oklch(0.702 0.144 277.6);--state-reserved-bg:oklch(0.283 0.061 277.1);--state-faulted:oklch(0.704 0.191 22.2);--state-faulted-bg:oklch(0.291 0.076 21.8);--state-offline:oklch(0.556 0 0);--state-offline-bg:oklch(0.269 0 0)}*{box-sizing:border-box}body,html{height:100%}body{margin:0;background:var(--background);color:var(--foreground);font-family:var(--font-sans);font-size:14.5px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow:hidden}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;text-align:left}:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:4px}.app{display:grid;grid-template-columns:232px 1fr;height:100dvh}.sidebar{background:var(--sidebar);border-right:1px solid var(--border);padding:16px 12px;display:flex;flex-direction:column;gap:20px;overflow-y:auto}.side-brand{display:flex;align-items:center;gap:9px;padding:4px 8px}.side-brand svg{color:var(--foreground);flex:none}.side-brand span{font-family:Gipbay,ui-sans-serif,system-ui,sans-serif;font-weight:700;font-size:16px;letter-spacing:-.01em}.side-brand .bt{display:flex;flex-direction:column;line-height:1.2;min-width:0}.side-brand .bt small{font-size:9px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--muted-foreground)}.navgroup{display:flex;flex-direction:column;gap:2px}.navlabel{font-size:10.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;padding:0 8px 6px;margin:0}.nav,.navlabel{color:var(--muted-foreground)}.nav{display:flex;align-items:center;gap:9px;padding:7px 8px;border-radius:7px;font-size:13.5px;width:100%}.nav.on,.nav:hover{background:var(--muted)}.nav.on{color:var(--foreground);font-weight:500}.nav .cnt{margin-left:auto;font-size:11.5px;opacity:.7;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.nav svg{flex:none;opacity:.75}.side-foot{margin-top:auto;display:flex;align-items:center;gap:9px;padding:8px;border-top:1px solid var(--border);font-size:12px;color:var(--muted-foreground)}.avatar{width:24px;height:24px;border-radius:50%;background:var(--muted);color:var(--foreground);display:grid;place-items:center;font-size:10.5px;font-weight:600;flex:none}.main{min-width:0;overflow-y:auto;padding:18px 22px 28px}.view{display:none}.view.on{flex-direction:column}.pagehead,.view.on{display:flex;gap:16px}.pagehead{align-items:flex-start;flex-wrap:wrap}.pagehead h1{font-family:Gipbay,ui-sans-serif,system-ui,sans-serif;font-weight:500;font-size:23px;margin:0;letter-spacing:-.01em}.pagehead .sub{margin:3px 0 0;font-size:13px;color:var(--muted-foreground)}.head-actions,.pagehead .sub{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.head-actions{margin-left:auto}.btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:7px;border:1px solid var(--border);background:var(--card);color:var(--foreground);font-size:13px;font-weight:500;white-space:nowrap}.btn:hover{background:var(--muted)}.btn.sm{padding:4px 9px;font-size:12px}.btn[disabled]{opacity:.45;cursor:not-allowed}.btn[disabled]:hover,.pill{background:var(--card)}.pill{display:inline-flex;align-items:center;padding:4px 11px;border-radius:999px;border:1px solid var(--border);font-size:12px;color:var(--muted-foreground);font-weight:500;white-space:nowrap}.pill:hover{background:var(--muted)}.pill.on{background:var(--foreground);color:var(--background);border-color:var(--foreground)}.live{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted-foreground)}.live i{width:7px;height:7px;border-radius:50%;background:var(--state-available);display:block}@media (prefers-reduced-motion:no-preference){.live i{animation:breathe 2.2s ease-in-out infinite}}@keyframes breathe{0%,to{opacity:1}50%{opacity:.35}}.chip{display:inline-flex;align-items:center;gap:6px;padding:2px 9px;border-radius:999px;font-size:11.5px;font-weight:500;white-space:nowrap}.chip i{width:6px;height:6px;border-radius:50%;background:currentColor;display:block;flex:none}.chip.available{background:var(--state-available-bg);color:var(--state-available)}.chip.charging{background:var(--state-charging-bg);color:var(--state-charging)}.chip.preparing{background:var(--state-preparing-bg);color:var(--state-preparing)}.chip.reserved{background:var(--state-reserved-bg);color:var(--state-reserved)}.chip.faulted{background:var(--state-faulted-bg);color:var(--state-faulted)}.chip.offline{background:var(--state-offline-bg);color:var(--state-offline)}.chip.ghost{background:var(--muted);color:var(--muted-foreground)}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(152px,1fr));grid-gap:12px;gap:12px}.kpi{border:1px solid var(--border);border-radius:var(--radius);padding:13px 15px;background:var(--card);min-width:0}.kpi .k{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-foreground);font-weight:600}.kpi .v{font-family:Gipbay,ui-sans-serif,system-ui,sans-serif;font-weight:500;font-size:28px;line-height:1.15;margin-top:5px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.01em}.kpi .v small{font-size:14px;font-weight:500;margin-left:2px}.kpi .d,.kpi .v small{color:var(--muted-foreground)}.kpi .d{font-size:11.5px;margin-top:2px}.card{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);min-width:0;display:flex;flex-direction:column;box-shadow:var(--shadow-card)}.card>header{display:flex;align-items:baseline;gap:10px;padding:13px 16px 0;flex-wrap:wrap}.card>header h4{margin:0;font-size:13.5px;font-weight:600}.card>header .right,.card>header .unit{font-size:11.5px;color:var(--muted-foreground)}.card>header .right{margin-left:auto}.card .body{padding:10px 16px 15px;min-width:0}.card .src{padding:0 16px 12px;font-size:11px;color:var(--muted-foreground)}.card .src code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10.5px;background:var(--muted);padding:0 4px;border-radius:3px}.grid2{grid-template-columns:1.5fr 1fr;grid-gap:14px}.grid2,.grid2e{display:grid;gap:14px;align-items:stretch}.grid2e{grid-template-columns:1fr 1fr;grid-gap:14px}@media (max-width:1060px){.grid2,.grid2e{grid-template-columns:1fr}}.flag{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;padding:1px 7px;border-radius:4px;background:var(--state-preparing-bg);color:var(--state-preparing);white-space:nowrap}[data-period="30"] .p90,[data-period="90"] .p30{display:none!important}.chartwrap{overflow-x:auto}.chart{display:block;width:100%;height:auto;min-width:440px}.chart .grid line{stroke:var(--border);stroke-width:1}.chart text{fill:var(--muted-foreground);font-size:9.5px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.chart text.lbl{fill:var(--foreground);font-weight:600;font-size:10px}.chart .bar-energy{fill:var(--state-charging)}.chart .bar-revenue{fill:var(--state-reserved)}.chart .line-price{fill:none;stroke:var(--state-preparing);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.chart .area-price,.chart .dot-price{fill:var(--state-preparing)}.chart .area-price{opacity:.08}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11.5px;color:var(--muted-foreground);padding-top:8px}.legend span{display:inline-flex;align-items:center;gap:6px}.legend i{width:8px;height:8px;border-radius:2px;display:block}.stackbar{display:flex;height:26px;border-radius:6px;overflow:hidden;gap:2px;background:var(--background)}.stackbar i{display:block;height:100%}.outcomerows{display:flex;flex-direction:column;gap:8px;margin-top:14px}.orow{display:grid;grid-template-columns:150px 1fr 76px;grid-gap:10px;gap:10px;align-items:center;font-size:12.5px}.orow .k{color:var(--muted-foreground);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.orow .track{height:8px;border-radius:4px;background:var(--muted);overflow:hidden}.orow .track i{display:block;height:100%;border-radius:4px}.orow .n{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--foreground)}.availrows{display:flex;flex-direction:column;gap:9px}.arow{display:grid;grid-template-columns:170px 1fr 62px;grid-gap:10px;gap:10px;align-items:center;font-size:12.5px}.arow .k{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.arow .k small{color:var(--muted-foreground);display:block;font-size:10.5px;line-height:1.3}.arow .track{height:8px;border-radius:4px;background:var(--muted);overflow:hidden}.arow .track i{display:block;height:100%;border-radius:4px;background:var(--state-available)}.arow .track i.warn{background:var(--state-preparing)}.arow .track i.bad{background:var(--state-faulted)}.arow .n{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.heatwrap{overflow-x:auto}.heat{display:grid;grid-template-columns:30px repeat(24,minmax(12px,1fr));grid-gap:2px;gap:2px;min-width:420px;align-items:center}.heat .hd{font-size:9px;text-align:center}.heat .hd,.heat .rowlbl{color:var(--muted-foreground);font-family:ui-monospace,monospace}.heat .rowlbl{font-size:10.5px}.heat .cell{aspect-ratio:1/.72;border-radius:3px;min-width:12px}.heatlegend{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted-foreground);padding-top:10px}.heatlegend i{width:14px;height:10px;border-radius:2px;display:block}.tablewrap{overflow-x:auto;border:1px solid var(--border);border-radius:10px}.tablewrap.scrolly{overflow-y:auto;max-height:430px}table{border-collapse:collapse;width:100%;min-width:680px}th{text-align:left;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-foreground);padding:9px 13px;border-bottom:1px solid var(--border);background:var(--muted);white-space:nowrap}.scrolly th{position:-webkit-sticky;position:sticky;top:0;z-index:2}td{padding:10px 13px;border-bottom:1px solid var(--border);font-size:13.5px;vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr.rowlink{cursor:pointer}tbody tr.rowlink:hover{background:var(--muted)}td.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.cpid{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;font-weight:500}.dim{color:var(--muted-foreground)}.tiny{font-size:11.5px}.sessions{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));grid-gap:12px;gap:12px}.session{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);overflow:hidden;cursor:pointer;transition:border-color .15s;padding:0;display:block;width:100%}.session:hover{border-color:var(--muted-foreground)}.session>header{display:flex;align-items:center;gap:8px;padding:11px 14px;border-bottom:1px solid var(--border)}.session>header .who{min-width:0}.session>header .who b{font-size:13.5px;font-weight:600;display:block;line-height:1.3}.session>header .who small{font-size:11px;color:var(--muted-foreground);display:block}.session>header .chip{margin-left:auto}.session .meters{display:grid;grid-template-columns:1fr 1fr;grid-gap:1px;gap:1px;background:var(--border)}.session .m{background:var(--card);padding:9px 14px}.session .m .k{font-size:9.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted-foreground);font-weight:600}.session .m .v{font-family:Gipbay,ui-sans-serif,system-ui,sans-serif;font-size:19px;font-weight:500;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin-top:1px}.session .m .v small{margin-left:1px}.session .m .v small,.session>footer{font-size:11px;color:var(--muted-foreground)}.session>footer{padding:8px 14px;border-top:1px solid var(--border);display:flex;gap:8px;align-items:center;flex-wrap:wrap}.mapsplit{display:grid;grid-template-columns:380px 1fr;grid-gap:14px;gap:14px;align-items:stretch;min-height:480px}@media (max-width:1060px){.mapsplit{grid-template-columns:1fr}}@media (min-width:1061px){#v-ubicaciones.on{height:calc(100dvh - 46px)}#v-ubicaciones .mapsplit{flex:1 1;min-height:0}#v-ubicaciones .sitelist{overflow-y:auto;min-height:0;padding-right:2px}#v-ubicaciones .mapcard{min-height:0;height:100%}}.sitelist{display:flex;flex-direction:column;gap:10px;min-width:0}.site{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);padding:12px 14px;display:block;width:100%;transition:border-color .15s}.site:hover{border-color:var(--muted-foreground)}.site[aria-pressed=true]{border-color:var(--foreground);box-shadow:var(--shadow-card)}.site .t{display:flex;align-items:center;gap:8px}.site .t b{font-size:14px;font-weight:600}.site .t .chip{margin-left:auto}.site .meta{font-size:12px;color:var(--muted-foreground);margin-top:2px}.sitedetail{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);padding:13px 15px;font-size:13px;display:flex;flex-direction:column;gap:9px}.sitedetail h4{margin:0;font-size:13.5px}.kv{flex-direction:column}.kv,.kv>div{display:flex}.kv>div{align-items:baseline;gap:10px;padding:4.5px 0;border-bottom:1px dashed var(--border);font-size:12.5px}.kv>div:last-child{border-bottom:0}.kv .k{color:var(--muted-foreground);flex:1 1 auto}.kv .v{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right;flex:none}.mapcard{position:relative;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);overflow:hidden;min-height:420px}.mapcard svg.schematic{position:absolute;inset:0;width:100%;height:100%}.pin{position:absolute;transform:translate(-50%,-100%);z-index:3}.pin .bub{background:var(--card);border:1px solid var(--border);border-radius:999px;box-shadow:var(--shadow-card);padding:3px 10px 3px 7px;display:flex;align-items:center;gap:6px;font-size:12px;font-weight:500;white-space:nowrap}.pin .bub i{width:8px;height:8px;border-radius:50%;flex:none;display:block}.pin .bub b{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700}.pin[data-sel="1"] .bub{border-color:var(--foreground);box-shadow:0 0 0 3px color-mix(in oklch,var(--brand) 35%,transparent),var(--shadow-card)}.pin .stem{width:1px;height:9px;background:var(--border);margin:0 auto}.maplegend{position:absolute;bottom:12px;left:12px;background:var(--card);border:1px solid var(--border);border-radius:8px;padding:8px 11px;box-shadow:var(--shadow-card);display:flex;gap:13px;font-size:11.5px;color:var(--muted-foreground);z-index:4;flex-wrap:wrap}.maplegend span{display:flex;align-items:center;gap:5px}.maplegend i{width:7px;height:7px;border-radius:50%;display:block}.mapnote{position:absolute;top:12px;right:12px;z-index:4}.scrim{position:fixed;inset:0;background:oklch(.145 0 0/.35);z-index:40;opacity:0;pointer-events:none;transition:opacity .2s}.scrim.on{opacity:1;pointer-events:auto}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(430px,94vw);background:var(--card);border-left:1px solid var(--border);z-index:50;transform:translateX(102%);transition:transform .22s ease;display:flex;flex-direction:column;box-shadow:var(--shadow-card)}.drawer.on{transform:translateX(0)}@media (prefers-reduced-motion:reduce){.drawer,.scrim{transition:none}}.drawer>header{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--border)}.drawer>header h2{font-family:Gipbay,ui-sans-serif,system-ui,sans-serif;font-weight:500;font-size:18px;margin:0}.drawer>header .x{margin-left:auto;width:28px;height:28px;border-radius:7px;border:1px solid var(--border);display:grid;place-items:center;font-size:14px;color:var(--muted-foreground)}.drawer>header .x:hover{background:var(--muted)}.drawer .dbody{overflow-y:auto;padding:16px 18px 24px;display:flex;flex-direction:column;gap:16px}.dsect h5{margin:0 0 7px;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-foreground);font-weight:600}.dmeters{display:grid;grid-template-columns:1fr 1fr;grid-gap:1px;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:9px;overflow:hidden}.dmeters .m{background:var(--card);padding:9px 13px}.dmeters .m .k{font-size:9.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted-foreground);font-weight:600}.dmeters .m .v{font-family:Gipbay,ui-sans-serif,system-ui,sans-serif;font-size:18px;font-weight:500;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin-top:1px}.dmeters .m .v small{font-size:11px;color:var(--muted-foreground)}.costlines{display:flex;flex-direction:column}.costlines>div{display:flex;align-items:baseline;gap:10px;padding:5px 0;border-bottom:1px dashed var(--border);font-size:13px}.costlines>div:last-child{border-bottom:0}.costlines .k{color:var(--muted-foreground);flex:1 1}.costlines .k small{display:block;font-size:11px}.costlines .v{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.costlines .total{font-weight:700}.costlines .total .k{color:var(--foreground)}.dnote{font-size:11.5px;color:var(--muted-foreground);background:var(--muted);border-radius:7px;padding:8px 11px}.seg{display:flex;border:1px solid var(--border);border-radius:9px;overflow:hidden;width:-moz-fit-content;width:fit-content}.seg button{padding:8px 16px;font-size:13px;font-weight:500;color:var(--muted-foreground);background:var(--card);border-right:1px solid var(--border);display:inline-flex;align-items:center;gap:7px}.seg button:last-child{border-right:0}.seg button:hover{background:var(--muted)}.seg button[aria-pressed=true]{background:var(--foreground);color:var(--background)}.visnote{font-size:12.5px;color:var(--muted-foreground);max-width:68ch}.formgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));grid-gap:12px;gap:12px}.field{display:flex;flex-direction:column;gap:4px;min-width:0}.field .lab{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-foreground);font-weight:600}.input{border:1px solid var(--border);border-radius:7px;padding:6px 10px;font-size:13px;background:var(--card);color:var(--foreground);font-family:inherit;width:100%}.input:focus{outline:2px solid var(--brand);outline-offset:0;border-color:var(--brand)}.input[disabled]{opacity:.5}select.input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted-foreground) 50%),linear-gradient(135deg,var(--muted-foreground) 50%,transparent 50%);background-position:calc(100% - 15px) 14px,calc(100% - 10px) 14px;background-size:5px 5px;background-repeat:no-repeat;padding-right:28px}.switchrow{display:flex;align-items:center;gap:11px;padding:9px 12px;border:1px solid var(--border);border-radius:9px;background:var(--card);width:100%}.switchrow .sw{width:38px;height:21px;border-radius:999px;background:var(--border);position:relative;flex:none;transition:background .15s}.switchrow[aria-pressed=true] .sw{background:var(--state-charging)}.switchrow .sw b{position:absolute;top:2.5px;left:2.5px;width:16px;height:16px;border-radius:50%;background:var(--card);display:block;transition:left .15s}.switchrow[aria-pressed=true] .sw b{left:19px}.switchrow .st{display:flex;flex-direction:column;min-width:0;text-align:left}.switchrow .st .l{font-size:13px;font-weight:500}.switchrow .st .s{font-size:11px;color:var(--muted-foreground)}.savebar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.btn.primary{background:var(--foreground);color:var(--background);border-color:var(--foreground)}.skel{display:block;height:12px;border-radius:5px;background:var(--muted);position:relative;overflow:hidden}@media (prefers-reduced-motion:no-preference){.skel:after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,color-mix(in oklch,var(--foreground) 7%,transparent),transparent);animation:skelshine 1.4s ease-in-out infinite}}@keyframes skelshine{to{transform:translateX(100%)}}.pager{display:flex;align-items:center;gap:10px;padding:10px 16px;border-top:1px solid var(--border);font-size:12.5px;color:var(--muted-foreground);flex-wrap:wrap}.pager .sp{margin-left:auto}.pager .btn[disabled]{opacity:.4;cursor:default}.pager .btn[disabled]:hover{background:var(--card)}.crumbs{display:flex;align-items:baseline;gap:8px;font-size:12.5px;color:var(--muted-foreground);margin-bottom:3px}.crumbs button{color:inherit;font-weight:500}.crumbs button:hover{color:var(--foreground);text-decoration:underline;text-underline-offset:3px}.crumbs b{color:var(--foreground);font-weight:600}.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%) translateY(8px);background:var(--foreground);color:var(--background);font-size:13px;padding:8px 16px;border-radius:999px;z-index:60;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}.toast.on{opacity:1;transform:translateX(-50%) translateY(0)}:root{--scrim:oklch(0.145 0 0/0.35);--band:color-mix(in oklch,var(--state-preparing) 9%,transparent)}h1,h2,h3,h4{text-wrap:balance}.sidebar{gap:16px}.side-brand{padding:2px 8px 0;flex-direction:column;align-items:flex-start;gap:4px}.side-brand img{height:44px;width:auto;display:block;margin-left:-4px}.side-brand small{font-size:9px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--muted-foreground);padding-left:2px}.logo-dark{display:none!important}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .logo-light{display:none!important}:root:not([data-theme=light]) .logo-dark{display:block!important}}:root[data-theme=dark] .logo-light{display:none!important}:root[data-theme=dark] .logo-dark{display:block!important}.ctx{display:flex;flex-direction:column;gap:6px;padding:0 2px}.ctx .lab{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-foreground);font-weight:600;padding-left:6px}.ctx select.input{font-weight:500}.side-foot{flex-direction:column;align-items:stretch;gap:10px}.side-foot .who{display:flex;align-items:center;gap:9px;min-width:0}.side-foot .who div{min-width:0;line-height:1.3}.side-foot .who b{display:block;color:var(--foreground);font-weight:500;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.themeseg{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--border);border-radius:8px;overflow:hidden}.themeseg button{padding:5px 2px;text-align:center;font-size:11px;color:var(--muted-foreground);display:inline-flex;justify-content:center;align-items:center;gap:4px;border-right:1px solid var(--border);min-width:0}.themeseg button:last-child{border-right:0}.themeseg button:hover{background:var(--muted)}.themeseg button[aria-pressed=true]{background:var(--foreground);color:var(--background)}.svcline{display:flex;align-items:center;gap:7px;font-size:11.5px}.main{padding-block:18px 40px;padding-left:max(22px,env(safe-area-inset-left,0px));padding-right:max(22px,env(safe-area-inset-right,0px))}.view{display:flex;flex-direction:column;gap:16px;max-width:1360px}.topbar{display:none}.mockbar{font-size:11.5px;color:var(--muted-foreground);border:1px dashed var(--border);border-radius:8px;padding:6px 11px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}.mockbar b{color:var(--foreground);font-weight:600}.role-tag{display:inline-flex;align-items:center;gap:6px}svg.i{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}.btn svg.i{width:14px;height:14px}.btn.danger{color:var(--state-faulted)}.btn.danger.primary{background:var(--state-faulted);border-color:var(--state-faulted);color:var(--card)}.iconbtn{width:30px;height:30px;border-radius:7px;border:1px solid var(--border);display:grid;place-items:center;background:var(--card)}.iconbtn:hover{background:var(--muted)}@media (max-width:900px){.app{grid-template-columns:1fr}.sidebar{position:fixed;inset:0 auto 0 0;width:min(280px,86vw);z-index:45;transform:translateX(-102%);transition:transform .22s ease;padding-top:calc(16px + env(safe-area-inset-top, 0px));padding-bottom:calc(16px + env(safe-area-inset-bottom, 0px));padding-left:max(12px,env(safe-area-inset-left,0px))}.sidebar.open{transform:translateX(0);box-shadow:var(--shadow-card)}.navscrim{position:fixed;inset:0;background:var(--scrim);z-index:44}.topbar{display:flex;align-items:center;gap:10px;position:-webkit-sticky;position:sticky;top:env(safe-area-inset-top,0);z-index:30;background:var(--card);border-bottom:1px solid var(--border);padding-block:9px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.topbar img{height:22px;width:auto}.topbar .yardname{margin-left:auto;font-size:12px;color:var(--muted-foreground);text-align:right;line-height:1.3}.main{padding-block:14px 40px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.appcol{display:flex;flex-direction:column;min-width:0;height:100dvh}}@media (min-width:901px){.appcol{display:contents}.navscrim{display:none}}@media (prefers-reduced-motion:reduce){.sidebar{transition:none}}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:14px;gap:14px}.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px}.grid21{grid-template-columns:minmax(0,2fr) minmax(0,1fr);grid-gap:14px}.grid21,.split{display:grid;gap:14px;align-items:start}.split{grid-template-columns:300px minmax(0,1fr);grid-gap:14px}@media (max-width:1180px){.grid21,.grid3{grid-template-columns:1fr}.grid4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:1060px){.split{grid-template-columns:1fr}}@media (max-width:520px){.grid4{grid-template-columns:1fr}}.row{align-items:center;gap:8px;flex-wrap:wrap}.row,.stack{display:flex}.stack{flex-direction:column;gap:10px;min-width:0}.spacer{margin-left:auto}.muted{color:var(--muted-foreground)}.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.disp{font-family:var(--font-display);font-weight:500;letter-spacing:-.01em}.sectlabel{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-foreground);font-weight:600;margin:0}.kpi .d .up{color:var(--state-available);font-weight:500}.kpi .d .down{color:var(--state-faulted);font-weight:500}.kpi.hero .v{font-size:32px}.delta-good{color:var(--state-available)}.delta-bad{color:var(--state-faulted)}.filters{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.pill em{font-style:normal;opacity:.65;margin-left:5px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);overflow-x:auto}.tabs button{padding:8px 12px;font-size:13px;color:var(--muted-foreground);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;font-weight:500}.tabs button:hover{color:var(--foreground)}.tabs button[aria-selected=true]{color:var(--foreground);border-bottom-color:var(--foreground)}.note{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--border);border-left:3px solid var(--brand);border-radius:8px;padding:10px 13px;background:var(--card);font-size:13px}.note.warn{border-left-color:var(--state-preparing)}.note.bad{border-left-color:var(--state-faulted)}.note b{font-weight:600}.note svg.i{margin-top:2px;color:var(--muted-foreground)}.lrows{display:flex;flex-direction:column}.lrow{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-gap:11px;gap:11px;align-items:center;padding:9px 0;border-bottom:1px dashed var(--border);font-size:13px}.lrow:last-child{border-bottom:0}.lrow .t{font-family:var(--font-mono);font-size:12.5px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:42px}.lrow b{font-weight:600;display:block;font-size:13px}.lrow small{color:var(--muted-foreground);font-size:11.5px;display:block}.sev{width:8px;height:8px;border-radius:50%;display:block}.sev.high{background:var(--state-faulted)}.sev.med{background:var(--state-preparing)}.sev.low{background:var(--state-offline)}.soc{display:flex;align-items:center;gap:8px;min-width:110px}.soc .bar{flex:1 1;height:6px;border-radius:4px;background:var(--muted);overflow:hidden}.soc .bar i{display:block;height:100%;border-radius:4px;background:var(--foreground);opacity:.8}.soc .bar i.lo{background:var(--state-preparing);opacity:1}.soc .bar i.crit{background:var(--state-faulted);opacity:1}.soc span{width:36px;text-align:right;font-size:12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.chgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));grid-gap:10px;gap:10px}.chg{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);padding:11px 12px;display:flex;flex-direction:column;gap:7px;width:100%;text-align:left;transition:border-color .15s}.chg:hover{border-color:var(--muted-foreground)}.chg .top{display:flex;align-items:center;gap:8px}.chg .top .cpid{font-size:12px}.chg .top .chip{margin-left:auto}.chg .bus{font-size:14px;font-weight:600}.chg .bus.none{font-weight:500}.chg .bus.none,.chg .meta{color:var(--muted-foreground)}.chg .meta{display:flex;justify-content:space-between;gap:6px;font-size:11.5px}.chg .kw{font-family:var(--font-display);font-size:18px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.chg .kw small{font-size:11px;color:var(--muted-foreground)}.chg.ovr{border-style:dashed}.ovrtag{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--state-reserved)}.gantt-wrap{overflow-x:auto}.gantt{min-width:820px;position:relative}.g-row{display:grid;grid-template-columns:170px minmax(0,1fr);align-items:center;height:26px}.g-row.click{cursor:pointer}.g-row.click:hover{background:var(--muted)}.g-lbl{font-size:12px;display:flex;gap:7px;align-items:baseline;padding-right:10px;white-space:nowrap;overflow:hidden}.g-lbl b{font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.g-lbl small{color:var(--muted-foreground);font-size:11px;overflow:hidden;text-overflow:ellipsis}.g-track{position:relative;height:100%}.g-park{top:11px;height:4px;border-radius:2px;background:var(--border)}.g-park,.g-seg{position:absolute}.g-seg{top:6px;height:14px;border-radius:3px;background:var(--state-charging)}.g-seg.forced{background:var(--state-reserved)}.g-dep{position:absolute;top:4px;width:2px;height:18px;background:var(--foreground);border-radius:1px}.g-row.miss .g-dep{background:var(--state-faulted)}.g-axis{display:grid;grid-template-columns:170px minmax(0,1fr);height:20px}.g-axis .g-track span{position:absolute;top:2px;font-size:10px;color:var(--muted-foreground);transform:translateX(-50%);font-family:var(--font-mono)}.g-overlay{left:170px;right:0;top:20px;pointer-events:none}.g-overlay,.g-overlay i{position:absolute;bottom:0}.g-overlay i{top:0}.g-now{position:absolute;top:0;bottom:0;border-left:1.5px dashed var(--foreground);opacity:.6}.chart{min-width:520px}.chart.sm{min-width:0}.chart .ln{fill:none;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}.chart .limit{stroke:var(--state-faulted);stroke-width:1.2;stroke-dasharray:5 4;fill:none}.chart text.limit-t{fill:var(--state-faulted);font-weight:600}.chart .nowl{stroke:var(--foreground);stroke-width:1;stroke-dasharray:2 3;opacity:.7}.chart text.now-t{fill:var(--foreground);font-weight:600}.chart .markl{stroke:var(--muted-foreground);stroke-width:1.5}.chart text.mark-t{fill:var(--muted-foreground);font-weight:600}.chart .band{fill:var(--band)}.legend i.ln{height:2px;width:14px;border-radius:1px}.legend i.dash{height:0;width:14px;border-top:2px dashed;background:none!important;border-radius:0}.chartbox{position:relative}.chart:focus{outline:none}.chart:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:4px}.chart .xhair{stroke:var(--muted-foreground);stroke-width:1;stroke-dasharray:3 3}.chart .hdot{stroke:var(--card);stroke-width:1.5}.chart g.off rect{opacity:.35}.charttip{position:absolute;left:0;top:0;z-index:5;pointer-events:none;background:var(--card);color:var(--foreground);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-card);padding:7px 10px;font-size:12px;line-height:1.35;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:120px;max-width:min(300px,calc(100% - 8px))}.charttip .th{font-weight:600;margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.charttip .tr{display:grid;grid-template-columns:12px minmax(0,1fr) auto;align-items:center;grid-gap:6px;gap:6px;color:var(--muted-foreground)}.charttip .tr span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.charttip .tr b{color:var(--foreground);font-weight:600;font-family:var(--font-mono);text-align:right;white-space:nowrap}.charttip i{width:8px;height:8px;border-radius:2px;display:block}.charttip i.dash{height:0;width:12px;border-top:2px dashed;background:none!important;border-radius:0}.chart-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.legend .legend-btn{display:inline-flex;align-items:center;gap:6px;background:none;border:0;padding:2px 4px;margin:-2px -4px;font:inherit;color:inherit;cursor:pointer;border-radius:4px}.legend .legend-btn:hover{color:var(--foreground)}.legend .legend-btn[aria-pressed=false]{opacity:.45;text-decoration:line-through}.heat .cell.on{outline:2px solid var(--foreground);outline-offset:1px}@media (prefers-reduced-motion:no-preference){.chart g rect,.legend .legend-btn{transition:opacity .12s ease}}.drawer{width:min(460px,94vw);padding-bottom:env(safe-area-inset-bottom,0)}.drawer>header{padding-top:calc(14px + env(safe-area-inset-top, 0px))}.drawer>header .hsub{font-size:12px;color:var(--muted-foreground);display:block}.drawer>footer{margin-top:auto;border-top:1px solid var(--border);padding:12px 18px;display:flex;gap:8px;flex-wrap:wrap}.actgrid{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.actgrid .btn{justify-content:flex-start}.modal{position:fixed;inset:0;display:grid;place-items:center;z-index:70;padding:16px}.modal .box{background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-card);width:min(440px,100%);padding:18px;display:flex;flex-direction:column;gap:12px;max-height:90dvh;overflow-y:auto}.modal .box h3{margin:0;font-family:var(--font-display);font-weight:500;font-size:18px}.modal .box p{margin:0;font-size:13px;color:var(--muted-foreground)}.modal .acts{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.modal .scrimx{position:fixed;inset:0;background:var(--scrim)}.modal .box{position:relative}.ctl{display:flex;flex-direction:column;gap:5px;padding:10px 0;border-bottom:1px dashed var(--border)}.ctl:last-child{border-bottom:0}.ctl .top{display:flex;justify-content:space-between;gap:10px;font-size:12.5px}.ctl .top label{color:var(--muted-foreground)}.ctl .top output{font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}input[type=range]{width:100%;accent-color:var(--foreground)}.seg.full{width:100%;display:grid;grid-auto-flow:column;grid-auto-columns:1fr}.seg.full button{justify-content:center;padding:7px 8px;font-size:12.5px}.weekgrid{display:grid;grid-template-columns:150px repeat(7,minmax(84px,1fr));border:1px solid var(--border);border-radius:10px;overflow:hidden;min-width:760px}.weekgrid>div{border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:7px 9px;font-size:12px;min-height:44px}.weekgrid .wh{background:var(--muted);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted-foreground);min-height:0}.weekgrid .wh.hol{color:var(--state-preparing)}.blk{display:block;border-radius:5px;padding:3px 6px;background:var(--state-charging-bg);color:var(--state-charging);font-size:11px;font-weight:500;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.35}.blk.res{background:var(--muted);color:var(--muted-foreground)}.blk.mnt{background:var(--state-faulted-bg);color:var(--state-faulted)}.blk.ext{background:var(--state-reserved-bg);color:var(--state-reserved)}.blk.split{background:var(--state-available-bg);color:var(--state-available)}td .sub{display:block;font-size:11.5px;color:var(--muted-foreground)}tr.sel td{background:var(--muted)}.check{width:15px;height:15px;accent-color:var(--foreground)}.themeseg button svg,.themeseg button svg.i{width:12px;height:12px}.chip.prio{background:var(--state-reserved-bg);color:var(--state-reserved)}.chg .top .chip.prio{margin-left:0}.splitbtn{display:inline-flex;align-items:stretch}.splitbtn>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.splitbtn>select.input{width:auto;border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px;font-size:13px}.arr-cards{display:none}@media (max-width:720px){.arr-table{display:none}.arr-cards{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:10px;background:var(--card)}}.arr-card{display:flex;flex-direction:column;gap:6px;padding:11px 13px;border-bottom:1px solid var(--border);text-align:left;width:100%;background:none;font-size:13px}.arr-card:last-child{border-bottom:0}.arr-card:hover{background:var(--muted)}.arr-card .top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.arr-card .top .chip:first-of-type{margin-left:auto}.arr-card .meta{display:flex;flex-wrap:wrap;gap:4px 14px;color:var(--muted-foreground);font-size:12px}.arr-card .meta b{color:var(--foreground);font-weight:500}.chg .top{flex-wrap:wrap;row-gap:4px}.chg .top .cpid{white-space:nowrap}