:root{--ink: #131e2a;--body: #3b455b;--white: #ffffff;--purple: #5b58d1;--purple-med: #bebbec;--purple-light: #f0efff;--green: #a8f4a5;--grey-light: #f3f2f7;--grey-med: #bec2d0;--hairline: #e6e6ee;--phase-1: #5b58d1;--phase-2: #2f9e63;--phase-3: #3e8ed0;--amber: #e0a83c;--led-yellow: #f2c53d;--font-display: degular-display, "Bricolage Grotesque", Manrope, system-ui, sans-serif;--font-body: Manrope, system-ui, sans-serif;--shadow-card: 0 2px 6px rgba(19, 30, 42, .06), 0 12px 32px rgba(19, 30, 42, .08);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 20px;--maxw: 1280px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font-body);color:var(--ink);background:var(--white);line-height:1.3;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);font-weight:700;line-height:.95;margin:0}p{color:var(--body);line-height:1.3;margin:0}.container{max-width:var(--maxw);margin:0 auto;padding:0 24px}.eyebrow{font-size:.8rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--purple)}.site-header{border-bottom:1px solid var(--hairline);background:var(--white)}.site-header .container{display:flex;align-items:center;justify-content:space-between;padding-top:16px;padding-bottom:16px}.site-header img{height:28px;display:block}.demo-chip{font-size:.78rem;font-weight:600;color:var(--purple);background:var(--purple-light);border-radius:999px;padding:6px 14px}.hero{padding:64px 0 48px}.hero-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:8px 48px;align-items:start}.hero-text,.hero-controls,.stale-banner,.hero .disclaimer{grid-column:1}.hero-3d{grid-column:2;grid-row:1 / span 4;align-self:center;text-align:center}.hero-3d model-viewer{width:100%;height:400px;background:transparent;--poster-color: transparent}.hero-3d-hint{font-size:.8rem;color:var(--grey-med);font-weight:600;margin-top:4px}@media(max-width:900px){.hero-grid{grid-template-columns:1fr}.hero-text,.hero-controls,.stale-banner,.hero .disclaimer{grid-column:1}.hero-3d{grid-column:1;grid-row:2}.hero-3d model-viewer{height:300px}}.hero h1{font-size:clamp(2.4rem,6vw,4rem);margin:16px 0 20px}.hero .lead{max-width:56ch;font-size:1.06rem}.hero-controls{display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px;margin-top:32px}.control-group{display:flex;flex-direction:column;gap:6px}.control-label{font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--grey-med)}.seg-toggle{display:inline-flex;background:var(--grey-light);border-radius:999px;padding:4px;gap:2px}.seg-toggle button{font:inherit;font-size:.9rem;font-weight:600;color:var(--body);background:transparent;border:0;border-radius:999px;padding:9px 18px;cursor:pointer;transition:background .25s ease,color .25s ease,box-shadow .25s ease}.seg-toggle button[aria-pressed=true]{background:var(--white);color:var(--ink);box-shadow:0 1px 4px #131e2a24}.product-note{font-size:.85rem;color:var(--body);flex-basis:100%}.api-tools{display:inline-flex;align-items:center;gap:14px}.api-tools[hidden]{display:none}.api-status{font-size:.85rem;font-weight:600;color:var(--phase-2)}.api-status.err{color:#b3453f}.copy-api{font:inherit;font-size:.85rem;font-weight:700;color:var(--purple);background:transparent;border:1.5px solid var(--purple-med);border-radius:999px;padding:7px 16px;cursor:pointer;transition:background .2s ease,border-color .2s ease}.copy-api:hover{background:var(--purple-light);border-color:var(--purple)}.disclaimer{margin-top:24px;max-width:62ch;font-size:.85rem;color:var(--grey-med)}.fuse-stepper{display:inline-flex;align-items:center;gap:8px}.fuse-stepper .step{width:26px;height:26px;border:0;border-radius:50%;background:var(--grey-light);color:var(--body);font-size:1rem;font-weight:700;line-height:1;cursor:pointer;transition:background .2s ease,color .2s ease}.fuse-stepper .step:hover{background:var(--purple-light);color:var(--purple)}.fuse-input{font-family:inherit;font-weight:inherit;font-size:inherit;color:inherit;background:transparent;border:0;border-bottom:1.5px dashed transparent;width:3ch;text-align:right;padding:0;transition:border-color .2s ease}.fuse-input:hover:not(:read-only){border-bottom-color:var(--grey-med)}.fuse-input:focus{outline:none;border-bottom-color:var(--purple)}.fuse-unit{margin-left:2px}.main-card .fuse .fuse-input{font-family:var(--font-display);width:3.2ch}.live-indicator{display:inline-flex;align-items:center;gap:10px;font-size:.9rem;font-weight:600;color:var(--body)}.live-dot{width:10px;height:10px;border-radius:50%;background:var(--green);box-shadow:0 0 #a8f4a5b3}.live-dot.pulse{animation:live-pulse 1.2s ease-out}@keyframes live-pulse{0%{box-shadow:0 0 #a8f4a5cc}to{box-shadow:0 0 0 12px #a8f4a500}}.stale-banner{display:none;align-items:center;gap:10px;margin-top:20px;padding:10px 16px;border-radius:var(--radius-md);background:#fdf6e3;border:1px solid #f0dfae;color:#8a6d1d;font-size:.9rem;font-weight:600}.stale-banner.visible{display:inline-flex}.viz{background-color:var(--grey-light);background-image:radial-gradient(rgba(59,69,91,.13) 1px,transparent 1px);background-size:18px 18px;padding:48px 0 72px}.viz-canvas{position:relative}#flow-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3}#flow-overlay .drop.active{animation:drop-dash .9s linear infinite}@keyframes drop-dash{to{stroke-dashoffset:-10}}.viz-hint{text-align:center;font-size:.9rem;font-weight:600;color:var(--body);margin-bottom:24px}.single-phase [data-phase="2"],.single-phase [data-phase="3"]{display:none}.main-card{position:relative;z-index:2;background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:24px 28px;display:flex;flex-wrap:wrap;gap:24px 48px;align-items:center;justify-content:space-between;max-width:720px;margin:0 auto 96px}.main-card .label{font-size:.8rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--purple);margin-bottom:6px}.main-card .fuse{font-family:var(--font-display);font-size:2rem;font-weight:700}.main-card .network{font-size:.85rem;color:var(--body);margin-top:4px}.big-kw{font-family:var(--font-display);font-size:2.6rem;font-weight:700;color:var(--purple);white-space:nowrap}.big-kw small{font-size:1.2rem;font-weight:600}.phase-gauges{display:flex;gap:18px}.gauge{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:.78rem;font-weight:600;color:var(--body)}.gauge .bar{width:18px;height:72px;border-radius:9px;background:var(--grey-light);display:flex;align-items:flex-end;overflow:hidden}.gauge .fill{width:100%;border-radius:9px;height:0%;transition:height .8s cubic-bezier(.22,1,.36,1)}.gauge[data-phase="1"] .fill{background:var(--phase-1)}.gauge[data-phase="2"] .fill{background:var(--phase-2)}.gauge[data-phase="3"] .fill{background:var(--phase-3)}.gauge .value{font-variant-numeric:tabular-nums}.circuits-grid{position:relative;z-index:2;display:grid;grid-template-columns:1fr;gap:28px;align-items:start}.circuit-card{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:20px 24px}.circuit-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-bottom:14px;border-bottom:1px solid var(--hairline)}.circuit-title{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.fuse-node{display:inline-flex;color:var(--purple)}.circuit-head-right{display:flex;align-items:center;gap:12px}.remove-circuit{width:26px;height:26px;border:0;border-radius:50%;background:var(--grey-light);color:var(--grey-med);font-size:1.05rem;font-weight:700;line-height:1;cursor:pointer;transition:background .2s ease,color .2s ease}.remove-circuit:hover{background:#fdecec;color:#b3453f}.add-circuit{display:block;width:100%;margin-top:28px;padding:16px;font:inherit;font-size:.95rem;font-weight:700;color:var(--purple);background:transparent;border:2px dashed var(--purple-med);border-radius:var(--radius-lg);cursor:pointer;transition:background .2s ease,border-color .2s ease}.add-circuit:hover{background:var(--purple-light);border-color:var(--purple)}.circuit-name{font-family:var(--font-display);font-size:1.15rem;font-weight:700}.circuit-fuse{font-size:.85rem;font-weight:600;color:var(--body);background:var(--grey-light);padding:3px 10px;border-radius:999px}.circuit-kw{font-weight:800;color:var(--purple);font-variant-numeric:tabular-nums}.queue-chip{display:none;font-size:.78rem;font-weight:700;color:#8a6d1d;background:#fdf3d7;border-radius:999px;padding:3px 10px}.queue-chip.visible{display:inline-block}.circuit-phases{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:14px 0 4px}.mini-phase{font-size:.72rem;font-weight:600;color:var(--body)}.mini-phase .track{display:flex;height:6px;border-radius:3px;background:var(--grey-light);overflow:hidden;margin-top:4px}.mini-phase .fill-ext{height:100%;width:0%;background:var(--grey-med);opacity:.65;transition:width .8s cubic-bezier(.22,1,.36,1)}.external-load{display:flex;align-items:center;gap:10px}.external-load .ext-label{font-size:.8rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--body)}.solar-load{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.solar-load .solar-label{font-size:.8rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#2f9e63}.solar-mode button[aria-pressed=true]{background:var(--green);color:var(--ink)}.solar-note{margin:6px 0 0;font-size:.85rem;font-weight:600;color:#2f9e63}.mini-phase .fill{height:100%;width:0%;border-radius:3px;transition:width .8s cubic-bezier(.22,1,.36,1)}.mini-phase[data-phase="1"] .fill{background:var(--phase-1)}.mini-phase[data-phase="2"] .fill{background:var(--phase-2)}.mini-phase[data-phase="3"] .fill{background:var(--phase-3)}.mini-phase .label-row{display:flex;justify-content:space-between;font-variant-numeric:tabular-nums}.charger-row{display:flex;flex-wrap:wrap;gap:20px 12px;padding-top:26px;justify-content:flex-start}.charger{--phase-color: var(--grey-med);position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;width:128px;padding:8px 4px 10px;border-radius:var(--radius-md);cursor:pointer;transition:background .4s ease,transform .25s ease,box-shadow .25s ease}.remove-charger{position:absolute;top:2px;right:2px;z-index:6;width:20px;height:20px;border:0;border-radius:50%;background:var(--grey-light);color:var(--grey-med);font-size:.85rem;font-weight:700;line-height:1;cursor:pointer;opacity:.7;transition:background .2s ease,color .2s ease,opacity .2s ease}.remove-charger:hover{opacity:1;background:#fdecec;color:#b3453f}body.no-sim .remove-charger{display:none}.add-charger{align-self:stretch;min-height:150px;width:96px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font:inherit;font-size:.8rem;font-weight:700;color:var(--purple);background:transparent;border:2px dashed var(--purple-med);border-radius:var(--radius-md);cursor:pointer;transition:background .2s ease,border-color .2s ease}.add-charger span{font-size:1.5rem;line-height:1}.add-charger:hover{background:var(--purple-light);border-color:var(--purple)}.charger:hover{transform:translateY(-3px);background:var(--grey-light)}.charger:focus-visible{outline:2px solid var(--purple);outline-offset:2px}.charger:active{transform:translateY(-1px)}.charger.rotated{animation:rotated-flash 1.6s ease}@keyframes rotated-flash{0%,to{background:transparent}25%{background:var(--purple-light)}}.charger-3d-slot{position:relative;width:116px;height:116px}.charger-fallback{width:100%;height:100%;object-fit:contain;display:block}body.has-3d .charger-fallback{display:none}.charger3d-canvas{position:fixed;inset:0;width:100vw;height:100vh;pointer-events:none;z-index:3}.car-svg{width:116px;height:76px;display:block;overflow:visible;margin-top:-4px}.car-group{transform:translate(150px);opacity:0;transition:transform .9s cubic-bezier(.22,1,.36,1),opacity .5s ease}.charger.occupied .car-group{transform:translate(0);opacity:1}.cable-path{stroke-dashoffset:100;opacity:0;transition:stroke-dashoffset .6s ease .15s,opacity .2s ease .6s}.charger.occupied .cable-path{opacity:1;transition:stroke-dashoffset .7s ease .75s,opacity .2s ease .7s}.charger.occupied .cable-path{stroke-dashoffset:0;transition:stroke-dashoffset .7s ease .75s}.cable-flow{stroke:var(--phase-color);transition:opacity .4s ease}.charger:not([data-status=CHARGING]) .cable-flow{opacity:0}.charger[data-status=CHARGING].occupied .cable-flow{opacity:1;animation:cable-flow 1.1s linear infinite}@keyframes cable-flow{to{stroke-dashoffset:-24}}.port-light{fill:var(--grey-med);transition:fill .4s ease}.charger[data-status=CHARGING] .port-light{fill:var(--green)}.charger[data-status=WAITING] .port-light{fill:var(--led-yellow)}.charger-kw{font-weight:800;font-size:1.02rem;color:var(--ink);font-variant-numeric:tabular-nums}.charger[data-status=CHARGING] .charger-kw{color:var(--purple)}.charger-meta{display:flex;align-items:center;gap:6px;font-size:.78rem;font-weight:600;color:var(--body);font-variant-numeric:tabular-nums}.phase-chip{color:var(--phase-color);background:color-mix(in srgb,var(--phase-color) 13%,transparent);border-radius:999px;padding:2px 9px;font-weight:700;transition:background .4s ease,color .4s ease}.phase-chip.tri{color:var(--body);background:linear-gradient(90deg,color-mix(in srgb,var(--phase-1) 16%,transparent),color-mix(in srgb,var(--phase-2) 16%,transparent),color-mix(in srgb,var(--phase-3) 16%,transparent))}.car-phase-toggle{display:none;background:var(--grey-light);border-radius:999px;padding:2px;gap:2px}body.tn3:not(.no-sim) .car-phase-toggle{display:inline-flex}.car-phase-toggle button{font:inherit;font-size:.68rem;font-weight:700;color:var(--body);background:transparent;border:0;border-radius:999px;padding:3px 9px;cursor:pointer;transition:background .2s ease,color .2s ease,box-shadow .2s ease}.car-phase-toggle button[aria-pressed=true]{background:var(--white);color:var(--ink);box-shadow:0 1px 3px #131e2a24}.charger.rotated .phase-chip{animation:chip-pop .7s ease}@keyframes chip-pop{0%,to{transform:scale(1)}40%{transform:scale(1.25)}}.charger-name{font-size:.75rem;font-weight:600;color:var(--grey-med)}.charger .status-text{font-size:.75rem;font-weight:600;color:var(--body)}.charger[data-status=WAITING] .status-text{color:#8a6d1d}.site-footer{background:var(--ink);color:var(--white);padding:48px 0}.site-footer .container{display:flex;flex-wrap:wrap;gap:24px;align-items:center;justify-content:space-between}.site-footer img{height:24px;display:block}.site-footer p{color:var(--grey-med);font-size:.9rem}.site-footer a{color:var(--purple-med);font-weight:600;text-decoration:none}.site-footer a:hover{text-decoration:underline}.wallmount-warn{font-size:.75rem;font-weight:700;color:#8a6d1d;background:#fdf3d7;border-radius:999px;padding:3px 10px;white-space:nowrap}.recommend-btn,.rp-apply{font:inherit;font-size:.9rem;font-weight:700;color:var(--purple);background:var(--purple-light);border:0;border-radius:999px;padding:9px 18px;cursor:pointer;transition:background .2s ease,color .2s ease}.recommend-btn:hover,.rp-apply:hover{background:var(--purple);color:var(--white)}.recommend-panel{margin-top:20px;padding:16px 20px;background:var(--purple-light);border-radius:var(--radius-md)}.rp-controls{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px}.rp-field{display:inline-flex;align-items:center;gap:8px;font-size:.85rem;font-weight:600;color:var(--body)}.rp-field .circuit-fuse,.recommend-panel .seg-toggle{background:var(--white)}.rp-apply{background:var(--purple);color:var(--white)}.rp-apply:hover{background:var(--ink)}.rp-result{margin-top:10px;font-size:.88rem;color:var(--body);max-width:70ch}.rp-result:empty{display:none}.facility-head{flex-basis:100%;text-align:center;padding-bottom:6px;border-bottom:1px solid var(--hairline)}.facility-name{font-size:1.2rem;margin:0}.facility-sub{font-size:.8rem;color:var(--grey-med);font-weight:600;margin-top:2px}.line-currents{display:flex;gap:8px;font-size:.68rem;font-weight:600;color:var(--grey-med);font-variant-numeric:tabular-nums}.line-currents b{font-weight:700}.lc.on[data-line="1"]{color:var(--phase-1)}.lc.on[data-line="2"]{color:var(--phase-2)}.lc.on[data-line="3"]{color:var(--phase-3)}@media(max-width:720px){.hero{padding:40px 0 32px}.main-card{margin-bottom:64px;padding:20px;gap:16px 24px}.big-kw{font-size:2rem}.circuit-card{padding:16px}.charger{width:104px}.charger-3d-slot{width:100px;height:100px}.car-svg{width:100px;height:66px}}@media(prefers-reduced-motion:reduce){.cable-flow,.car-group,.gauge .fill,.mini-phase .fill{animation:none!important;transition:none!important}}
