:root{color-scheme:dark;--bg:#07182b;--surface:#102b45;--surface2:#123650;--line:#345067;--text:#f0f8fd;--muted:#b2c9d7;--cyan:#56d6d2;--gold:#f6c667;--danger:#ffbdad;font-family:system-ui,"Noto Sans Myanmar Web",sans-serif;font-size:16px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 86% 4%,#184965 0,transparent 31rem),var(--bg);color:var(--text);line-height:1.5}button,input,select{font:inherit}button,select{cursor:pointer}a{color:#9ee9e5}a:hover{color:#fff}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.site-header{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px clamp(18px,4vw,64px);border-bottom:1px solid #244157;background:#081c30dd}.brand{display:flex;align-items:center;gap:13px}.brand-mark{width:44px;height:44px;display:grid;place-items:center;background:#184263;border:1px solid #69d9d2;border-radius:13px;color:#f9faf9;font-size:19px;font-weight:800;letter-spacing:-2px}.brand-mark span{color:var(--gold);font-size:12px;align-self:start;letter-spacing:0}.brand strong{display:block;font-size:1rem;line-height:1.25}.brand small{display:block;color:var(--muted);font-size:.78rem}.header-actions{display:flex;align-items:center;gap:20px}.private-pill,.eyebrow{font-size:.72rem;letter-spacing:.12em;font-weight:800;color:var(--cyan)}.language{display:flex;border:1px solid #43667a;border-radius:10px;padding:3px}.language button{background:none;color:var(--muted);border:0;border-radius:7px;padding:7px 12px;font-size:.84rem}.language button.active{background:#28627b;color:#fff}
main{max-width:1600px;margin:auto;padding:0 clamp(18px,4vw,64px) 36px}.page-intro{display:flex;justify-content:space-between;align-items:end;gap:24px;padding:30px 0 26px}.eyebrow{margin:0 0 8px}.page-intro h1{font-size:clamp(1.8rem,3vw,2.7rem);letter-spacing:-.035em;line-height:1.18;margin:0 0 9px}.page-intro p:not(.eyebrow){color:var(--muted);max-width:780px;margin:0}.source-tag{border-left:2px solid var(--gold);padding-left:18px;min-width:190px}.source-tag span,.source-tag small{display:block;color:var(--muted);font-size:.78rem}.source-tag strong{font-size:1.02rem}
.workspace{display:grid;grid-template-columns:minmax(440px,520px) minmax(0,1fr);gap:20px;align-items:start}.panel,.detail-card,.resource-panel{border:1px solid var(--line);background:linear-gradient(145deg,#112c46,#0c253e);border-radius:19px;box-shadow:0 12px 32px #03121f3b}.input-panel{padding:24px}.panel-heading,.results-title,.resource-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.panel-heading>div,.results-title>div{display:flex;align-items:center;gap:11px}.step{display:inline-grid;place-items:center;border:1px solid #3f8b9a;background:#173f58;color:var(--cyan);font-size:.72rem;font-weight:800;width:31px;height:31px;border-radius:9px;flex:none}h2{font-size:1.14rem;letter-spacing:-.01em;margin:0}.live-label{font-size:.72rem;color:var(--cyan)}form{margin-top:22px}label{display:block;font-size:.84rem;font-weight:650;color:#d8e9ee;margin:18px 0 8px}.input-unit{position:relative}.input-unit input,select{width:100%;height:46px;border:1px solid #527083;border-radius:9px;background:#0a2137;color:#fff;padding:0 12px}.input-unit input{padding-right:82px}.input-unit span{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:.73rem;color:var(--muted);pointer-events:none}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.section-divider{display:flex;align-items:center;gap:10px;margin:24px 0 4px;color:var(--cyan);font-size:.78rem;font-weight:750;text-transform:uppercase;letter-spacing:.05em}.section-divider:after{content:"";height:1px;flex:1;background:var(--line)}.form-note{color:var(--muted);font-size:.78rem;margin:20px 0 0}
.results{min-width:0}.results-title{margin:3px 0 15px}.annual-chip{background:#183d54;color:#cde8ed;border:1px solid #34657a;border-radius:999px;padding:7px 11px;font-size:.76rem}.hero-result{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(115deg,#137077,#145264 63%,#19425e);border:1px solid #45ada9;border-radius:18px;padding:20px 25px;min-height:155px;overflow:hidden}.hero-result span,.metric span{display:block;color:#d6f0f0;font-size:.82rem;font-weight:650}.hero-result strong{display:block;font-size:clamp(2.5rem,5vw,4.25rem);line-height:1.1;letter-spacing:-.05em;margin:5px 0}.hero-result small{color:#e0f4f2}.sun-glyph{font-size:5rem;line-height:1;color:#ffdc91;text-shadow:0 0 60px #f8cd6680}.metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-top:13px}.metric{min-height:133px;padding:17px 19px;border-radius:15px;border:1px solid var(--line);background:#12304a}.metric strong{display:block;font-size:1.6rem;line-height:1.25;margin:9px 0 5px}.metric small{display:block;color:var(--muted);font-size:.77rem}.insight{margin:13px 0;padding:12px 15px;border-left:3px solid var(--gold);background:#2c3c46;border-radius:0 10px 10px 0;color:#f2e6c7;font-size:.84rem}.season-card{background:#102c45;border:1px solid var(--line);border-radius:16px;padding:19px 20px}.season-head{display:flex;justify-content:space-between;align-items:start;gap:20px}.season-head h3{margin:0;font-size:1rem}.season-head p{font-size:.76rem;color:var(--muted);margin:3px 0 0}.legend{display:flex;gap:6px;align-items:center;white-space:nowrap;font-size:.72rem;color:var(--muted)}.legend i{width:9px;height:9px;border-radius:2px;background:#4dd0c8}.legend b{width:11px;border-top:2px dashed var(--gold);margin-left:6px}.month-bars{height:145px;display:grid;grid-template-columns:repeat(12,1fr);gap:8px;margin-top:16px}.month-item{min-width:0;text-align:center;display:flex;flex-direction:column;justify-content:end;gap:5px}.bar-space{height:108px;position:relative;display:flex;align-items:end;border-bottom:1px solid #577186}.bar{background:linear-gradient(#69e3c7,#2b9faa);width:100%;min-height:2px;border-radius:5px 5px 0 0}.demand-line{position:absolute;left:-3px;right:-3px;border-top:2px dashed var(--gold);z-index:2}.month-item span{font-size:.7rem;color:var(--muted)}.season-summary{font-size:.8rem;color:var(--muted);border-top:1px solid var(--line);padding-top:10px;margin-top:12px}.validation{background:#5b302f;color:#fff;border:1px solid #ca746e;border-radius:12px;padding:15px;margin-bottom:14px}
.detail-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:20px;margin-top:22px}.detail-card{padding:23px}.detail-card h2{margin:12px 0 4px}.detail-card>p{color:var(--muted);margin:0 0 16px;font-size:.85rem}.equipment-row{display:grid;grid-template-columns:125px 1fr;gap:16px;border-top:1px solid var(--line);padding:13px 0}.equipment-row strong{color:var(--cyan);font-size:.82rem}.equipment-row div{color:#d6e4ec;font-size:.83rem}.formula-row{border-top:1px solid var(--line);padding:13px 0}.formula-row strong{display:block;font-size:.83rem;color:var(--cyan)}.formula-row div{font-size:.83rem;color:#d6e4ec;margin-top:3px}.callout{margin-top:12px;border:1px solid #7b6840;background:#283942;padding:14px;border-radius:10px;color:#f2e7cb;font-size:.8rem}.resource-panel{margin-top:22px;padding:22px}.resource-heading{align-items:end}.resource-heading h2{margin:9px 0 3px}.resource-heading p{font-size:.83rem;color:var(--muted);margin:0}.resource-heading a{font-size:.8rem;white-space:nowrap}.table-scroll{overflow:auto;margin-top:18px;border:1px solid var(--line);border-radius:10px}table{border-collapse:collapse;width:100%;min-width:1030px;font-variant-numeric:tabular-nums}th,td{padding:9px 8px;text-align:right;border-bottom:1px solid #2b4860;font-size:.76rem;white-space:nowrap}th{position:sticky;top:0;background:#183c56;color:#d6eff2;font-weight:700}td:first-child,th:first-child{text-align:left;position:sticky;left:0;background:#102d47;z-index:1}th:first-child{z-index:2;background:#183c56}tr:last-child td{border-bottom:0}tr.selected td{background:#1c5264;color:#fff;font-weight:650}tr.selected td:first-child{background:#1c5264}.resource-foot{color:var(--muted);font-size:.77rem;margin:12px 0 0}footer{display:flex;flex-wrap:wrap;gap:12px 25px;border-top:1px solid var(--line);margin-top:30px;padding-top:18px;color:var(--muted);font-size:.76rem}footer a{margin-left:auto}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.spec-note{font-size:.82rem;color:#d9d4b6;margin:8px 0 0}.auto-control{display:flex;align-items:end}.subtle-button{min-height:46px;width:100%;padding:8px 12px;border:1px solid #4e7885;border-radius:9px;background:#153d55;color:#d8f7f4;font-size:.82rem}.subtle-button:hover{background:#20566d}.equipment-planner{margin-top:26px}.planner-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:14px}.planner-head .eyebrow{margin:0 0 4px}.planner-head h2{font-size:1.35rem}.planner-head p:last-child{margin:0;max-width:550px;color:var(--muted);font-size:.86rem}.planner-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.planner-side{display:grid;gap:14px;align-content:start;min-width:0}.planner-card{min-width:0;padding:20px;border:1px solid var(--line);border-radius:17px;background:#102e49}.planner-card-head{display:flex;gap:10px;align-items:center}.planner-card h3{font-size:1.04rem;margin:0}.planner-card input{width:100%;height:46px;border:1px solid #527083;border-radius:9px;background:#0a2137;color:#fff;padding:0 12px}.planner-card label{font-size:.83rem}.selection-result{margin-top:17px;padding:12px;border-radius:10px;background:#19465c;color:#e3f7f3;font-size:.84rem;line-height:1.55;overflow-wrap:anywhere}.cable-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.card-note,.catalog-note{color:var(--muted);font-size:.8rem;line-height:1.55}.card-note{margin:13px 0 0}.catalog-note{margin:12px 2px 0}.catalog-note a{font-weight:600}#battery-card[hidden]{display:none}
.tech-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:14px}.tech-grid>div{min-width:0}.tech-grid input{width:100%;height:44px;border:1px solid #527083;border-radius:9px;background:#0a2137;color:#fff;padding:0 10px}.tech-grid label{font-size:.82rem;line-height:1.4;min-height:2.7em;display:flex;align-items:end}.tech-fields{margin-top:10px;padding:0 0 10px;border-bottom:1px solid var(--line)}.tech-fields .form-note{margin:12px 0 0}.string-check{white-space:pre-line;margin-top:12px;padding:13px;border:1px solid #477d82;background:#163f4f;border-radius:10px;color:#d9f6f1;font-size:.84rem;line-height:1.6}.string-check.needs-review{border-color:#b79754;background:#443d34;color:#fff0ca}
[lang=my] body{line-height:1.7}[lang=my] .page-intro h1{line-height:1.45}[lang=my] label{line-height:1.6}

@media(max-width:1050px){.workspace{grid-template-columns:1fr}.season-head{display:block}.legend{margin-top:9px}.metric strong{font-size:1.35rem}.source-tag{display:none}}
@media(max-width:800px){.planner-grid,.detail-grid{grid-template-columns:1fr}.page-intro{padding:25px 0 20px}.input-panel{padding:20px}.results-title{margin-top:6px}.detail-grid{gap:14px}}
@media(max-width:560px){.site-header{align-items:flex-start}.private-pill{display:none}.header-actions{margin-left:auto}.brand strong{font-size:.85rem}.brand small{font-size:.7rem}.brand-mark{width:36px;height:36px}.language button{padding:5px 7px;font-size:.72rem}.page-intro h1{font-size:1.75rem}.page-intro p:not(.eyebrow){font-size:.9rem}.metric-grid{gap:9px}.metric{padding:13px;min-height:128px}.metric strong{font-size:1.25rem}.metric small{font-size:.69rem}.annual-chip{font-size:.65rem}.month-bars{gap:4px}.month-item span{font-size:.6rem}.season-card{padding:15px}.resource-heading{display:block}.resource-heading a{display:inline-block;margin-top:8px}.equipment-row{grid-template-columns:1fr;gap:3px}footer a{margin-left:0}}
.resource-controls{display:flex;align-items:center;gap:12px;margin-top:18px}.resource-controls label{margin:0;font-size:.84rem;white-space:nowrap}.resource-controls select{width:min(290px,100%);height:40px}.resource-controls+.table-scroll{margin-top:12px}
@media(max-width:560px){.resource-controls{align-items:stretch;flex-direction:column;gap:6px}.resource-controls select{width:100%}}
@media(max-width:390px){.two-fields{grid-template-columns:1fr}.header-actions{align-self:center}.brand small{display:none}.hero-result{min-height:132px}.sun-glyph{font-size:3.6rem}}
@media(max-width:650px){.planner-head{display:block}.planner-head p:last-child{margin-top:7px}.planner-card{padding:17px}}
@media(max-width:430px){.tech-grid{grid-template-columns:1fr}.tech-grid label{min-height:0}}
.results{container-type:inline-size}.circuit-layout{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:14px;margin-top:14px;align-items:stretch}.circuit-card,.future-slot{border:1px solid var(--line);border-radius:16px;background:#12304a}.circuit-card{min-width:0;padding:20px}.circuit-head{display:flex;justify-content:space-between;gap:12px;align-items:start}.circuit-head .eyebrow{margin:0 0 5px}.circuit-head h3{margin:0;font-size:1.05rem}.circuit-badge{flex:none;border-radius:999px;padding:5px 9px;background:#26534b;color:#c8f5e7;font-size:.72rem;font-weight:750}.circuit-badge.needs-review{background:#684231;color:#ffe7bd}.circuit-badge.partial{background:#48566a;color:#e4ecf8}.circuit-intro,.circuit-foot{font-size:.78rem;color:var(--muted);line-height:1.55}.circuit-intro{margin:10px 0 0}.topology-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 11px}.topology-controls>div{min-width:0}.topology-controls label{font-size:.77rem;min-height:2.7em;display:flex;align-items:end;line-height:1.35}.topology-controls input{width:100%;height:44px;border:1px solid #527083;border-radius:9px;background:#0a2137;color:#fff;padding:0 11px}.topology-controls button{grid-column:1/-1;margin-top:11px}.topology-diagram{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin:16px 0;padding:12px;border-radius:10px;background:#0b263d;color:#e6f9f5;font-size:.79rem}.topology-diagram strong{color:var(--gold)}.circuit-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.circuit-metrics>div{min-width:0;border:1px solid #345770;border-radius:9px;background:#0d2941;padding:10px}.circuit-metrics span{display:block;color:var(--muted);font-size:.72rem;line-height:1.35}.circuit-metrics strong{display:block;margin-top:4px;font-size:1.07rem;overflow-wrap:anywhere}.circuit-notes{margin-top:12px;padding:12px;border-left:3px solid #55bfa9;background:#193c4d;border-radius:0 8px 8px 0;color:#e6f6f2;font-size:.78rem;line-height:1.5}.circuit-notes.needs-review{border-left-color:#f2bb70;background:#443b38;color:#fff1d7}.circuit-foot{margin:12px 0 0}.future-stack{display:grid;grid-template-rows:repeat(3,minmax(0,1fr));gap:12px;min-width:0}.future-slot{min-height:130px;padding:18px;display:flex;flex-direction:column;justify-content:center;gap:4px;border-style:dashed;background:#102a42}.future-slot span{color:var(--cyan);font-size:.67rem;letter-spacing:.13em;font-weight:800}.future-slot strong{font-size:.96rem}.future-slot small{color:var(--muted);font-size:.76rem}.future-ad{background:#1c3043}.future-ad span{color:var(--gold)}
@container(max-width:760px){.circuit-layout{grid-template-columns:1fr}.future-slot{min-height:105px}}
@media(max-width:440px){.topology-controls,.circuit-metrics{grid-template-columns:1fr}.topology-controls label{min-height:0}.circuit-head{display:block}.circuit-badge{display:inline-block;margin-top:9px}}
.validation{display:flex;align-items:center;justify-content:space-between;gap:16px;line-height:1.5}.validation[hidden]{display:none}.validation button{flex:none;border:1px solid #f1b996;border-radius:9px;background:#703a31;color:#fff;padding:8px 13px;font-weight:700}.validation button:hover{background:#8a493b}.results-stale .hero-result,.results-stale .metric-grid,.results-stale .season-card,.results-stale .circuit-metrics,.results-stale .topology-diagram{opacity:.68}@media(max-width:560px){.validation{align-items:stretch;flex-direction:column}.validation button{align-self:flex-start}}
.field-error{margin:10px 0 0;color:#ffe3cb;font-size:.78rem;line-height:1.5}.field-error[hidden]{display:none}.topology-controls input.field-invalid{border-color:#f4ab83;box-shadow:0 0 0 1px #f4ab83}
.input-column{display:grid;gap:14px;align-content:start;min-width:0}.circuit-config-card{padding:20px;min-width:0}.circuit-config-card .topology-diagram{margin-bottom:0}.circuit-card h3{font-size:1.04rem;margin:0 0 13px}.location-row{display:grid;grid-template-columns:minmax(120px,.95fr) minmax(0,2.05fr);gap:10px}.location-row>div{min-width:0}.location-row label{white-space:nowrap}.location-row select,.coordinate-fields input{min-width:0}.coordinate-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 46px;gap:8px;min-width:0}.coordinate-fields>div{min-width:0}#city-field[hidden],.coordinate-fields[hidden],.coordinate-status[hidden]{display:none}.coordinate-fields input{width:100%;height:46px;border:1px solid #527083;border-radius:9px;background:#0a2137;color:#fff;padding:0 8px;font-size:.88rem}.map-button{align-self:end;width:46px;height:46px;display:grid;place-items:center;border:1px solid #61b7bd;border-radius:9px;background:#164a5c;color:#bff9ee}.map-button:hover{background:#226978}.map-button svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}.coordinate-status{color:var(--muted);font-size:.77rem;line-height:1.5;margin:9px 0 0}.coordinate-status.error{color:#ffdbc2}.coordinate-status.success{color:#b8eee3}@media(max-width:520px){.location-row{grid-template-columns:1fr}.coordinate-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 46px}}
.map-dialog{width:min(900px,calc(100vw - 28px));max-height:calc(100dvh - 30px);padding:22px;border:1px solid #5b8798;border-radius:18px;background:#102b45;color:var(--text);box-shadow:0 28px 80px #000a;overflow:auto}.map-dialog::backdrop{background:#03111edb}.map-dialog-head,.map-dialog-foot{display:flex;align-items:center;justify-content:space-between;gap:16px}.map-dialog-head h2{font-size:1.3rem}.map-dialog-head .eyebrow{margin:0 0 3px}.map-dialog p:not(.eyebrow){font-size:.84rem;color:var(--muted);margin:9px 0 15px}.map-close{flex:none;width:38px;height:38px;border:1px solid #527083;border-radius:9px;background:#173d55;color:#fff;font-size:1.45rem;line-height:1}.location-map{height:min(52vh,480px);min-height:300px;border:1px solid #7296a3;border-radius:11px;overflow:hidden;background:#dce9ea}.map-dialog-foot{margin-top:14px}.map-dialog-foot span{font-size:.88rem;color:#d1ede9;font-variant-numeric:tabular-nums}.map-dialog-foot .subtle-button{width:auto;min-width:160px}.map-dialog-foot .subtle-button:disabled{opacity:.55;cursor:not-allowed}.map-dialog .leaflet-container{font-family:Inter,system-ui,sans-serif}.map-dialog .leaflet-control-attribution{color:#242a30}.map-dialog .leaflet-control-attribution a{color:#175572}@media(max-width:520px){.map-dialog{padding:15px}.location-map{height:52vh;min-height:270px}.map-dialog-foot{align-items:stretch;flex-direction:column}.map-dialog-foot .subtle-button{width:100%}}
.location-map,.map-dialog .leaflet-container{background:#cee4eb}
.guide-logo{width:48px;height:48px;object-fit:contain;flex:none}.guide-link{color:#f5c977;text-decoration:none;font-weight:700;white-space:nowrap}.guide-link:hover{text-decoration:underline}.header-actions{flex-wrap:wrap;justify-content:flex-end}@media(max-width:700px){.guide-link{order:3;width:100%;text-align:right}.guide-logo{width:38px;height:38px}.site-header{align-items:center}}

/* Shared guide header and logo dialog. The sizing workspace keeps its controls and results. */
@font-face{font-family:"Noto Sans Myanmar Web";src:url("../fonts/noto-sans-myanmar-all-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
.topbar{position:sticky;top:0;z-index:1000;display:flex;align-items:center;gap:30px;padding:13px max(24px,calc((100vw - 1240px)/2));background:rgba(7,25,42,.96);color:#fff;box-shadow:0 8px 24px #07192a22;font-family:"Noto Sans Myanmar Web","DejaVu Sans",Arial,sans-serif;line-height:1.55}
.topbar .brand{display:flex;align-items:center;gap:10px;border:0;background:transparent;color:#fff;font:inherit;font-weight:800;white-space:nowrap;cursor:pointer;text-align:left}
.topbar .brand-logo{width:46px;height:46px;object-fit:contain;filter:drop-shadow(0 3px 8px #0008)}
.topbar nav{display:flex;gap:12px;margin-left:auto}
.topbar nav a{color:#c9d7e3;text-decoration:none;font-size:.82rem;white-space:nowrap;font-weight:400}
.topbar nav a:hover{color:#fff}
.topbar nav a.active{color:#f5b63a;font-weight:800}
.topbar .language{display:inline-block;border:1px solid #557086;border-radius:999px;background:transparent;color:#fff;padding:8px 14px;font:inherit;cursor:pointer;white-space:nowrap}
.about-dialog{--ink:#102238;--navy:#07192a;--muted:#587086;--line:#ced9e4;--cyan:#22b8cf;--sun:#f5b63a;--green:#37c77f;width:min(850px,calc(100% - 32px));max-width:none;padding:0;border:0;border-radius:22px;background:#fff;color:var(--ink);box-shadow:0 32px 90px #0008;font-family:"Noto Sans Myanmar Web","DejaVu Sans",Arial,sans-serif;line-height:1.55}
.about-dialog::backdrop{background:#03101dcc;backdrop-filter:blur(5px)}
.about-dialog>.about-content{display:grid;grid-template-columns:minmax(250px,.8fr) minmax(340px,1.2fr);gap:34px;align-items:center;padding:42px}
.about-content>img{display:block;width:100%;max-width:340px;height:auto;margin:auto;filter:drop-shadow(0 15px 24px #0b5e8530)}
.about-content h2{margin:.05em 0 .35em;font-size:clamp(2rem,5vw,3.4rem);line-height:1}
.about-content>div>p:not(.about-eyebrow):not(.about-note){color:var(--muted)}
.about-eyebrow{margin:0 0 8px;color:var(--cyan);font-size:.78rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.dialog-close{position:absolute;top:14px;right:16px;display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--ink);font:inherit;font-size:1.6rem;line-height:1;cursor:pointer}
.dialog-close:hover{background:#edf5f8}
.about-highlights{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:24px 0}
.about-highlights span{display:grid;gap:3px;padding:14px;border-left:4px solid var(--cyan);background:#edf6f9}
.about-highlights span:nth-child(2){border-color:var(--sun)}
.about-highlights span:nth-child(3){border-color:var(--green)}
.about-highlights b{font-size:1.05rem}.about-highlights small{color:var(--muted);font-size:.74rem}
.about-note{padding-top:16px;border-top:1px solid var(--line);color:var(--muted);font-size:.82rem}
.about-close-button{padding:10px 22px;border:0;border-radius:9px;background:var(--navy);color:#fff;font:inherit;font-weight:800;cursor:pointer}
@media(max-width:900px){.topbar nav{display:none}}
@media(max-width:720px){.about-dialog>.about-content{grid-template-columns:1fr;padding:38px 24px 28px}.about-content>img{max-width:230px}.about-highlights{grid-template-columns:1fr}.topbar .brand-logo{width:42px;height:42px}}
@media(max-width:580px){.topbar .brand span{display:none}}
.map-legend{display:flex;flex-wrap:wrap;gap:7px 17px;margin:-5px 0 11px;color:#d8e8ea;font-size:.77rem}.map-legend>span{display:inline-flex;align-items:center;gap:7px}.map-legend i{display:inline-block;flex:none}.legend-city,.legend-capital{width:11px;height:11px;border-radius:50%;border:1px solid #173e48}.legend-city{background:#39d5c1}.legend-capital{background:#f5c977}.legend-river{width:18px;border-top:3px solid #328bb1}.map-dialog .leaflet-tooltip.map-capital-label{background:#fff4d9;border:1px solid #ac8851;border-radius:5px;color:#4a3320;font-size:.72rem;font-weight:700;padding:2px 5px;box-shadow:0 1px 4px #14364844}.map-dialog .leaflet-tooltip.map-point-label{background:#103d4b;border:1px solid #4db8ae;border-radius:5px;color:#fff;font-size:.78rem;font-weight:700}.river-name{color:#12688e;font-size:.75rem;font-weight:800;text-align:center;white-space:nowrap;text-shadow:0 1px #e6f3f5,1px 0 #e6f3f5,-1px 0 #e6f3f5;pointer-events:none}@media(max-width:520px){.map-legend{gap:5px 12px;font-size:.7rem}.map-dialog .leaflet-tooltip.map-capital-label{font-size:.65rem}}

/* Keep panel quantity and string topology in one compact input block. */
.array-layout{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.array-layout .circuit-head{align-items:center}
.array-layout .circuit-head h3{font-size:1rem}
.array-layout .circuit-intro{margin:5px 0 0}
.array-layout-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:11px}
.array-layout-fields>div{min-width:0}
.array-layout-fields label{display:flex;align-items:end;min-height:2.65em;margin:0 0 6px;font-size:.76rem;line-height:1.3}
.array-layout-fields input{width:100%;height:42px;border:1px solid #527083;border-radius:9px;background:#0a2137;color:#fff;padding:0 10px}
.array-layout-fields .input-unit input{padding-right:52px}
.array-layout-fields .input-unit span{right:9px}
.array-layout-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:9px}
.array-layout-actions .subtle-button{min-height:40px;padding:6px 10px}
.array-layout .topology-diagram{margin:10px 0 0;padding:9px 11px}
.array-layout .form-note{margin:10px 0 0;line-height:1.4}
.array-layout-fields input.field-invalid{border-color:#f4ab83;box-shadow:0 0 0 1px #f4ab83}
@media(max-width:440px){.array-layout-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.array-layout-fields>div:first-child{grid-column:1/-1}.array-layout-fields label{min-height:0}}

.system-panel-row{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:12px}
.system-panel-row>div{min-width:0}
.system-panel-row label{min-height:2.6em;display:flex;align-items:end;line-height:1.3}
.system-panel-row select{min-width:0;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:440px){.system-panel-row{grid-template-columns:1fr}.system-panel-row label{min-height:0}}

.recharge-option{display:flex;align-items:center;gap:9px;margin:12px 0 0;color:#d8e9ee;font-size:.79rem;line-height:1.4;cursor:pointer}
.recharge-option input{width:17px;height:17px;flex:none;margin:0;accent-color:#56d6d2;cursor:pointer}
.pv-design-basis{display:block;max-width:680px;margin-top:7px;font-size:.76rem;line-height:1.45;color:#d3f0ec}

.diagram-trigger{width:100%;min-height:39px;margin-top:8px;padding:7px 12px;border:1px solid #58b9b7;border-radius:9px;background:#16465a;color:#d8fbf5;font-size:.82rem;font-weight:700;cursor:pointer}
.diagram-trigger:hover{background:#205d6d}
.diagram-dialog{width:min(1200px,calc(100vw - 28px));max-height:calc(100dvh - 28px);padding:22px;border:1px solid #5b8798;border-radius:18px;background:#102b45;color:var(--text);box-shadow:0 28px 80px #000a;overflow:auto}
.diagram-dialog::backdrop{background:#03111ee0}
.diagram-dialog-head,.diagram-actions{display:flex;align-items:center;justify-content:space-between;gap:15px}
.diagram-dialog-head h2{font-size:1.2rem}
.diagram-dialog-head .eyebrow{margin:0 0 3px}
.diagram-dialog>p:not(.eyebrow){font-size:.82rem;color:var(--muted);margin:9px 0 13px}
.diagram-status{border-left:3px solid var(--gold);padding:8px 11px;background:#3d3a34;color:#fff0ca!important;border-radius:0 7px 7px 0}
.diagram-status[hidden]{display:none}
.diagram-view{min-height:240px;max-height:min(65vh,720px);overflow:auto;border:1px solid #4e7885;border-radius:11px;background:#091e32}
.diagram-view svg{display:block;max-width:none;height:auto}
@media(min-width:1200px){.diagram-view svg{width:100%;max-width:100%}}
.diagram-actions{margin-top:13px;color:var(--muted);font-size:.77rem}
.diagram-actions>div{display:flex;gap:9px}
.diagram-actions .subtle-button{display:inline-flex;align-items:center;justify-content:center;width:auto;min-width:126px;min-height:40px;text-decoration:none;cursor:pointer}
.diagram-actions .subtle-button[aria-disabled="true"],.diagram-open-links a[aria-disabled="true"]{opacity:.5;pointer-events:none;cursor:not-allowed}
.diagram-open-links{margin:8px 0 0!important;font-size:.75rem!important;color:var(--muted)}
.diagram-open-links a{color:#9de2de}
@media(max-width:600px){.diagram-dialog{padding:15px}.diagram-actions{align-items:stretch;flex-direction:column}.diagram-actions>div{display:grid;grid-template-columns:1fr 1fr}.diagram-actions .subtle-button{min-width:0}}

.equipment-stages{display:grid;gap:18px}.equipment-stage{display:grid;grid-template-columns:minmax(440px,520px) minmax(0,1fr);gap:20px;align-items:stretch}.stage-input{align-self:stretch}.stage-output{min-width:0;padding:20px;border:1px solid var(--line);border-radius:17px;background:#102e49}.stage-output-head{display:flex;justify-content:space-between;align-items:start;gap:12px}.stage-output-head .eyebrow{margin:0 0 4px}.stage-output-head h3{margin:0;font-size:1.06rem}.stage-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:17px}.stage-metrics>div{min-width:0;padding:12px;border:1px solid #345770;border-radius:10px;background:#0d2941}.stage-metrics span{display:block;color:var(--muted);font-size:.76rem;line-height:1.35}.stage-metrics strong{display:block;margin-top:5px;font-size:1.14rem;line-height:1.25;overflow-wrap:anywhere}.stage-output .selection-result{margin-top:12px}.stage-output .string-check{margin-top:10px}.stage-diagram-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:16px 0 8px;font-size:.84rem}.stage-diagram-head span{font-size:.74rem;color:var(--muted)}.stage-diagram-preview{min-height:160px;overflow:hidden;border:1px solid #4e7885;border-radius:11px;background:#091e32}.stage-diagram-preview svg{display:block;width:100%;height:auto}.stage-output .diagram-trigger{margin-top:9px}.stage-output .diagram-trigger:disabled{opacity:.5;cursor:not-allowed}.stage-input-context{font-size:.83rem;color:var(--muted);margin:11px 0 2px}.stage-input .card-note{margin-top:16px}.cable-card{min-width:0}.cable-layout{display:grid;grid-template-columns:minmax(440px,520px) minmax(0,1fr);gap:20px}.cable-output{align-self:start}.cable-output .selection-result{margin-top:18px}.stage-output.is-stale{opacity:.68}
@media(max-width:1200px){.stage-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1050px){.equipment-stage,.cable-layout{grid-template-columns:1fr}.stage-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.cable-output .selection-result{margin-top:0}}
@media(max-width:650px){.stage-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.stage-output{padding:17px}.stage-diagram-head{align-items:start;flex-direction:column}}
@media(max-width:430px){.stage-metrics strong{font-size:1rem}.stage-output-head{flex-wrap:wrap}}

/* Equipment steps use the same calculated-result/placeholder ratio as the panel circuit. */
.stage-result-layout{min-width:0;display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:14px;align-items:stretch}.stage-result-layout .stage-output{min-width:0}.stage-result-layout .stage-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.stage-result-layout .future-slot{min-height:118px;padding:14px}.stage-result-layout .future-slot strong{font-size:.9rem;line-height:1.35}.stage-result-layout .future-slot small{font-size:.74rem;line-height:1.5}.system-actions{display:flex;gap:12px;flex-wrap:wrap;margin:17px 0 4px}.system-actions .diagram-trigger{flex:1 1 260px;margin:0;min-height:48px}.stage-output .card-note{margin:12px 0 0}
.protection-items{display:flex;flex-direction:column;gap:4px;margin-top:10px;padding:10px 12px;border:1px solid #345770;border-radius:9px;background:#0d2941;font-size:.8rem;line-height:1.5}.protection-items span{color:var(--muted)}.stage-input .field-invalid{border-color:#e6a25c}
@media(max-width:850px){.stage-result-layout{grid-template-columns:1fr}.stage-result-layout .future-stack{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:auto}.stage-result-layout .future-slot{min-height:110px}}
@media(max-width:650px){.stage-result-layout .future-stack{grid-template-columns:1fr}.system-actions{display:grid;grid-template-columns:1fr}.stage-result-layout .stage-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
.bom-dialog{width:min(1080px,calc(100vw - 28px))}.bom-dialog-head{display:flex;align-items:start;justify-content:space-between;gap:18px}.bom-dialog-head h2{font-size:1.25rem;margin:0}.bom-dialog-head .eyebrow{margin:0 0 4px}.bom-intro{font-size:.84rem;color:var(--muted);margin:10px 0 15px}.bom-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.bom-toolbar label{margin:0;display:flex;align-items:center;gap:10px}.bom-toolbar select{width:auto;min-width:120px}.bom-summary{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:10px 15px;border:1px solid #397582;border-radius:10px;background:#174355}.bom-summary strong{font-size:1.45rem}.bom-summary small{color:var(--muted);font-size:.78rem}.bom-table-wrap{overflow:auto;margin-top:14px;border:1px solid var(--line);border-radius:11px}.bom-table{width:100%;min-width:720px;font-variant-numeric:tabular-nums}.bom-table th,.bom-table td{text-align:left;font-size:.82rem;padding:10px;border-bottom:1px solid #284b61}.bom-table th{position:static;background:#183c56}.bom-table td:first-child,.bom-table th:first-child{position:static;background:transparent}.bom-table td:nth-child(3),.bom-table td:nth-child(5),.bom-table td:nth-child(6){text-align:right}.bom-table td:nth-child(2){min-width:240px;color:#c8dce5}.bom-table td:nth-child(5){min-width:150px}.bom-table input{width:100%;min-width:100px;height:38px;padding:5px 8px;text-align:right;border:1px solid #527083;border-radius:7px;background:#0a2137;color:#fff}.bom-table .bom-allowance td{background:#142e44}.bom-table .bom-subtotal td{background:#19465c;font-weight:750}.bom-table td:last-child{font-weight:650;white-space:nowrap}.bom-note{font-size:.78rem;color:var(--muted);line-height:1.5;margin:12px 0}.bom-export{display:flex;gap:10px;flex-wrap:wrap}.bom-export a{width:auto;min-width:150px;min-height:42px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.bom-export a[aria-disabled="true"]{pointer-events:none;opacity:.55}
@media(max-width:650px){.bom-dialog{padding:15px}.bom-toolbar{align-items:stretch;flex-direction:column}.bom-export{display:grid;grid-template-columns:1fr 1fr}.bom-export a{min-width:0}}
.bom-dialog{width:min(1240px,calc(100vw - 28px))}.bom-table{min-width:1050px}.bom-table th:first-child{background:#183c56}.bom-table th:first-child,.bom-table td:first-child{text-align:center;width:82px}.bom-table td:nth-child(2){min-width:140px;color:#e6f3f6}.bom-table td:nth-child(3){min-width:260px;color:#c8dce5}.bom-table td:nth-child(4),.bom-table td:nth-child(5),.bom-table td:nth-child(7),.bom-table td:nth-child(8){text-align:right}.bom-table td:nth-child(5){min-width:115px}.bom-table td:nth-child(7){min-width:140px}.bom-table input[type="checkbox"]{display:inline-block;width:18px;min-width:18px;height:18px;padding:0;margin:0;accent-color:#56d6d2;cursor:pointer}.bom-table input[type="number"]{min-width:90px}.bom-table input[aria-invalid="true"]{border-color:#efb87c}.bom-table tr.bom-excluded td{opacity:.6}.bom-table tr.bom-excluded td:first-child{opacity:1}
