@font-face{font-family:DM Sans;font-style:italic;font-weight:100 1000;font-display:swap;src:url(../../../fonts/dmsans-22033153.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:italic;font-weight:100 1000;font-display:swap;src:url(../../../fonts/dmsans-16e131a9.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(../../../fonts/dmsans-34c73ecb.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(../../../fonts/dmsans-1c49a6eb.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Instrument Serif";font-style:italic;font-weight:400;font-display:swap;src:url(../../../fonts/instrumentserif-7f73269f.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Instrument Serif";font-style:italic;font-weight:400;font-display:swap;src:url(../../../fonts/instrumentserif-253e49fe.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Instrument Serif";font-style:normal;font-weight:400;font-display:swap;src:url(../../../fonts/instrumentserif-73b57d12.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Instrument Serif";font-style:normal;font-weight:400;font-display:swap;src:url(../../../fonts/instrumentserif-d65c2644.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../../../fonts/jetbrainsmono-d2761cb6.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../../../fonts/jetbrainsmono-028edbf5.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../../../fonts/jetbrainsmono-db1e2067.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../../../fonts/jetbrainsmono-acf87d86.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../../../fonts/jetbrainsmono-c8b23d7b.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../../../fonts/jetbrainsmono-0a7197f9.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../../../fonts/jetbrainsmono-d2761cb6.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../../../fonts/jetbrainsmono-028edbf5.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../../../fonts/jetbrainsmono-db1e2067.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../../../fonts/jetbrainsmono-acf87d86.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../../../fonts/jetbrainsmono-c8b23d7b.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../../../fonts/jetbrainsmono-0a7197f9.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../../../fonts/jetbrainsmono-d2761cb6.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../../../fonts/jetbrainsmono-028edbf5.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../../../fonts/jetbrainsmono-db1e2067.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../../../fonts/jetbrainsmono-acf87d86.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../../../fonts/jetbrainsmono-c8b23d7b.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../../../fonts/jetbrainsmono-0a7197f9.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--color-solar: #F59E0B;--color-conventional: #52525B;--color-compromised: #7C3AED;--color-compromised-glow: rgba(124, 58, 237, .45);--color-impact-neg: #1D4ED8;--color-impact-mid: #F1F5F9;--color-impact-pos: #B91C1C;--color-branch-norm: #94A3B8;--color-branch-high: #F59E0B;--color-branch-critical: #B91C1C;--color-bus-stroke: #1F2937}:root{--font-display: "Instrument Serif", Georgia, "Times New Roman", serif;--font-body: "DM Sans", system-ui, -apple-system, sans-serif;--font-data: "JetBrains Mono", "Courier New", monospace;--type-hero: 2.5rem;--type-headline: 1.5rem;--type-subhead: .8125rem;--type-body: .875rem;--type-caption: .75rem;--type-data: .8125rem;--type-data-sm: .6875rem;--ink: #1B1D21;--ink-soft: #2E3138;--slate: #4A4E57;--iron: #6E7380;--graphite: #9CA1AB;--ash: #C8CCD4;--text-muted: #5B6069;--smoke: #E8EAEF;--paper: #F4F5F7;--white: #FFFFFF;--signal: #22c55e;--signal-light: #4ade80;--signal-muted: #166534;--signal-glow: rgba(34, 197, 94, .4);--status-danger: #C53030;--status-warn: #D4962B;--status-safe: #2E855A;--status-info: #2B6CB0;--voltage-under-2: #1d4ed8;--voltage-under-1: #3b82f6;--voltage-nominal: #4b5563;--voltage-over-1: #f59e0b;--voltage-over-2: #ef4444;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 24px;--space-2xl: 32px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .12);--shadow-panel: 0 4px 20px rgba(0, 0, 0, .08);--ease-out: cubic-bezier(.25, .1, .25, 1);--ease-in: cubic-bezier(.55, 0, 1, .45);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--duration-fast: .15s;--duration-normal: .2s;--duration-slow: .3s;--panel-bg: rgba(255, 255, 255, .92);--panel-blur: blur(8px)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;width:100%;overflow:hidden}body{font-family:var(--font-body);font-size:var(--type-body);line-height:1.5;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--status-info);text-decoration:none}a:hover{color:var(--ink)}button{font-family:inherit;cursor:pointer;border:none;background:none}input,select{font-family:inherit}button,input,select,.mode-btn,.panel-header{touch-action:manipulation}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.animate-in{animation:fade-up var(--duration-slow) var(--ease-out) both}.animate-in--delay-1{animation-delay:.1s}.animate-in--delay-2{animation-delay:.2s}.animate-in--delay-3{animation-delay:.3s}.animate-in--delay-4{animation-delay:.4s}@keyframes spin{to{transform:rotate(360deg)}}@keyframes slide-in-right{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@keyframes value-flash{0%{background:transparent}20%{background:#22c55e26}to{background:transparent}}.value-updated{animation:value-flash .4s var(--ease-out)}.map-revealing .map-wrapper{animation:map-bloom .7s var(--ease-out) both}@keyframes map-bloom{0%{filter:brightness(1.4) saturate(.4)}to{filter:brightness(1) saturate(1)}}@keyframes grid-breathe{0%,to{opacity:.3}50%{opacity:.7}}@keyframes bar-shimmer{0%{background-position:-100% 0}to{background-position:200% 0}}@keyframes screen-flash{0%{opacity:1}to{opacity:0}}@keyframes header-energy{0%{background-position:0% 0}to{background-position:200% 0}}@keyframes blink{50%{opacity:.5}}@keyframes pulse-ring{0%{transform:scale(1);opacity:.6}to{transform:scale(2.5);opacity:0}}.panel{background:var(--panel-bg);backdrop-filter:var(--panel-blur);-webkit-backdrop-filter:var(--panel-blur);border:1px solid var(--ash);border-radius:var(--radius-lg);box-shadow:var(--shadow-panel);transition:max-height var(--duration-normal) var(--ease-out)}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-lg);border-left:3px solid var(--signal)}.panel-title{font-family:var(--font-body);font-size:var(--type-subhead);font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--slate)}.panel-toggle{width:20px;height:20px;display:flex;align-items:center;justify-content:center;color:var(--graphite);transition:transform var(--duration-fast) var(--ease-out)}.panel-toggle.collapsed{transform:rotate(-90deg)}.panel-body{padding:0 var(--space-lg) var(--space-lg);overflow:hidden;transition:max-height var(--duration-normal) var(--ease-out),padding var(--duration-normal) var(--ease-out)}.panel-body.collapsed{max-height:0;padding-top:0;padding-bottom:0;overflow:hidden}.panel--slide-right{animation:slide-in-right .35s var(--ease-spring) both}.stat-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid var(--smoke)}.stat-row:last-child{border-bottom:none}.stat-row{transition:background var(--duration-fast) var(--ease-out)}.stat-row:hover{background:#22c55e08}.stat-row__label{font-size:var(--type-body);color:var(--iron)}.stat-row__value{font-family:var(--font-data);font-size:var(--type-data);font-weight:500;color:var(--ink);font-variant-numeric:tabular-nums}.hero-stat{display:flex;flex-direction:column;background:var(--smoke);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md)}.hero-stat__value{font-family:var(--font-data);font-size:var(--type-hero);font-weight:600;color:var(--signal);text-shadow:0 0 20px rgba(34,197,94,.15);letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1.1}.hero-stat__label{font-size:.625rem;color:var(--iron);text-transform:uppercase;letter-spacing:.05em;margin-top:2px}.mode-btn{font-size:var(--type-caption);text-transform:uppercase;letter-spacing:.04em;padding:4px 12px;border-radius:var(--radius-sm);border:1px solid var(--ash);color:var(--graphite);background:transparent;transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),transform .25s var(--ease-spring),box-shadow var(--duration-normal) var(--ease-out)}.mode-btn:hover{background:var(--ink-soft);color:var(--white);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.mode-btn:active{transform:translateY(0) scale(.96);transition-duration:60ms}.mode-btn.active{background:var(--signal);color:var(--white);font-weight:600;border-color:var(--signal);box-shadow:0 2px 12px var(--signal-glow),0 0 24px #22c55e1f}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--ash);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--graphite)}.maplibregl-ctrl-attrib{display:none!important}.maplibregl-ctrl-group{border:1px solid var(--ash)!important;border-radius:var(--radius-md)!important;overflow:hidden;box-shadow:var(--shadow-md)!important}.maplibregl-ctrl-group button{background:var(--white)!important;color:var(--slate)!important;border:none!important;width:32px!important;height:32px!important}.maplibregl-ctrl-group button+button{border-top:1px solid var(--smoke)!important}.maplibregl-ctrl-group button:hover{background:var(--paper)!important}.maplibregl-popup-content{background:var(--ink)!important;color:var(--white)!important;border:1px solid var(--slate)!important;border-radius:6px!important;box-shadow:0 4px 12px #00000040!important;padding:var(--space-sm) var(--space-md)!important;font-family:var(--font-body)!important}.maplibregl-popup-tip{border-top-color:var(--ink)!important}.maplibregl-popup-close-button{color:var(--graphite)!important;font-size:16px!important}.maplibregl-popup-close-button:hover{color:var(--white)!important}@media(max-width:768px){:root{--type-body: 1rem;--type-caption: .8125rem;--type-data: .875rem;--type-data-sm: .75rem}input,select,textarea{font-size:16px}}@media(prefers-reduced-motion:reduce){.animate-in,.panel--slide-right{animation-duration:.01ms!important;animation-delay:0ms!important}.map-revealing .map-wrapper{animation:none!important}*{transition-duration:.01ms!important;animation-duration:.01ms!important}}.panel{contain:layout style}:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--signal);outline-offset:2px;border-radius:var(--radius-sm)}@media(prefers-reduced-motion:no-preference){:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{transition:outline-offset .12s var(--ease-out)}}.gate-backdrop.svelte-1vviwqr{position:fixed;inset:0;background:var(--ink);z-index:9999;display:flex;align-items:center;justify-content:center}.gate-card.svelte-1vviwqr{background:var(--ink-soft, #1a1f2b);border:1px solid var(--slate);border-radius:var(--radius-lg);box-shadow:0 16px 48px #0009;padding:var(--space-2xl) var(--space-2xl);width:calc(100% - 32px);max-width:380px;display:flex;flex-direction:column;gap:var(--space-md);animation:fade-up var(--duration-slow) var(--ease-out) both}.gate-card.shake.svelte-1vviwqr{animation:svelte-1vviwqr-gate-shake .32s var(--ease-out) both}.gate-title.svelte-1vviwqr{font-family:var(--font-display);font-size:1.7rem;font-weight:400;color:var(--paper);margin:0;letter-spacing:-.01em}.gate-subtitle.svelte-1vviwqr{font-family:var(--font-body);font-size:var(--type-caption);color:var(--iron);margin:0 0 var(--space-md);line-height:1.4}.gate-label.svelte-1vviwqr{font-family:var(--font-body);font-size:var(--type-data-sm);color:var(--graphite);letter-spacing:.04em;text-transform:uppercase;margin-bottom:-4px}.gate-card.svelte-1vviwqr input[type=password]:where(.svelte-1vviwqr){font-family:var(--font-body);font-size:var(--type-body);color:var(--paper);background:var(--ink);border:1px solid var(--slate);border-radius:var(--radius-sm);padding:10px 12px;outline:none;transition:border-color var(--duration-fast) var(--ease-out)}.gate-card.svelte-1vviwqr input[type=password]:where(.svelte-1vviwqr):focus{border-color:var(--signal)}.gate-card.svelte-1vviwqr input[type=password][aria-invalid=true]:where(.svelte-1vviwqr){border-color:#dc2626}.gate-error.svelte-1vviwqr{font-family:var(--font-body);font-size:var(--type-caption);color:#f87171;margin:-4px 0 0}.gate-submit.svelte-1vviwqr{padding:10px 20px;font-family:var(--font-body);font-size:var(--type-body);font-weight:600;color:var(--ink);background:var(--signal);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:filter var(--duration-fast) var(--ease-out)}.gate-submit.svelte-1vviwqr:hover:not(:disabled){filter:brightness(1.15)}.gate-submit.svelte-1vviwqr:disabled{opacity:.5;cursor:not-allowed}.gate-foot.svelte-1vviwqr{font-family:var(--font-body);font-size:var(--type-data-sm);color:var(--graphite);margin:var(--space-sm) 0 0;text-align:center;letter-spacing:.02em}@keyframes svelte-1vviwqr-gate-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.app-shell.svelte-12qhfyh{width:100vw;height:100dvh;overflow:hidden;display:flex;flex-direction:column;background:var(--ink);color:var(--paper)}
