*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!visible{visibility:visible!important}.visible{visibility:visible}.fixed{position:fixed}.flex{display:flex}.table{display:table}.border{border-width:1px}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=Sora:wght@500;600;700&display=swap");:root{--app-bg:#eef2eb;--surface:rgba(255,255,255,0.78);--surface-strong:#ffffff;--surface-border:#cad8d3;--text-color:#133632;--muted-text:#5f7b78;--brand:#1f7a73;--brand-strong:#125f58;--body-font:"IBM Plex Sans",sans-serif;--heading-font:"Sora",sans-serif}*{box-sizing:border-box}body,html{margin:0;min-height:100%}body{font-family:var(--body-font);color:var(--text-color);background:radial-gradient(circle at 15% 15%,rgba(30,129,118,.15),transparent 30%),radial-gradient(circle at 88% 4%,rgba(232,187,89,.18),transparent 35%),linear-gradient(180deg,#f5f7f1 0,var(--app-bg) 100%);line-height:1.45}.app-shell{min-height:100vh}.page-content{width:min(1600px,calc(100% - 3rem));margin:1.5rem auto 2.5rem}.navbar{justify-content:space-between;width:min(1400px,calc(100% - 4rem));margin:1.25rem auto 0;padding:.8rem 1rem;border:1px solid var(--surface-border);border-radius:14px;background:var(--surface);backdrop-filter:blur(8px)}.navbar,.navbar__brand{display:flex;align-items:center}.navbar__brand{gap:.8rem}.navbar__badge{width:2rem;height:2rem;border-radius:.55rem;display:inline-flex;align-items:center;justify-content:center;color:#f8f6f1;background:linear-gradient(135deg,#104842,#1f7a73);font-weight:700;font-size:.85rem}.navbar__eyebrow{margin:0;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-text)}.navbar__title{margin:0;font-size:1.06rem;line-height:1.2}.navbar__links{display:flex;align-items:center;gap:.55rem}.nav-link{text-decoration:none;color:var(--text-color);border:1px solid transparent;padding:.5rem .85rem;border-radius:10px;font-size:.9rem;transition:all .2s ease}.nav-link:hover{border-color:var(--surface-border);background:#ffffff}.nav-link--active{border-color:var(--brand);background:#dbf0ed;color:#0d4c47}.home-page{border:1px solid var(--surface-border);border-radius:18px;background:var(--surface);padding:3.5rem;min-height:50vh;display:grid;align-content:center;gap:1.1rem}.home-page__eyebrow{margin:0;font-size:.78rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted-text)}.home-page h2{margin:0;font-family:var(--heading-font);font-size:clamp(2rem,3.2vw,3rem);line-height:1.05;color:#0f3b36}.home-page__lead{margin:0;font-size:1rem;max-width:58ch;color:#254844}.home-page__actions{margin-top:.5rem}.primary-button{display:inline-flex;align-items:center;gap:.45rem;text-decoration:none;border:1px solid #13554f;background:linear-gradient(135deg,#13554f,#1f7a73);color:#f7faf9;border-radius:11px;padding:.75rem 1.15rem;font-weight:600;transition:transform .2s ease,box-shadow .2s ease}.primary-button:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(19,85,79,.25)}.solar-page{display:grid;gap:.95rem}.solar-page__brief{border:1px solid var(--surface-border);border-radius:16px;background:linear-gradient(130deg,rgba(255,255,255,.88),rgba(245,250,248,.92));padding:1rem 1.15rem;box-shadow:0 12px 26px rgba(12,62,56,.08)}.solar-page__eyebrow{margin:0;font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;color:#517673;font-weight:600}.solar-page__title{margin:.3rem 0 0;font-family:var(--heading-font);font-size:clamp(1.45rem,1.65vw,2.05rem);color:#0f3a35}.solar-page__subtitle{margin:.4rem 0 0;font-size:.92rem;color:#355c58;max-width:90ch}.solar-page__meta{margin-top:.8rem;display:flex;flex-wrap:wrap;gap:.45rem}.solar-page__meta-item{border:1px solid #cfe0dd;border-radius:999px;padding:.24rem .65rem;font-size:.76rem;color:#335754;background:#f4faf8}.search-box{border:1px solid var(--surface-border);border-radius:14px;background:var(--surface);padding:.8rem 1rem}.search-box__label{margin:0 0 .3rem;color:var(--muted-text);font-size:.76rem;letter-spacing:.08em;text-transform:uppercase}.search-box__input{width:100%;border:1px solid #bad0cb;border-radius:10px;font-size:.95rem;padding:.66rem .75rem;color:#173b37;background:#fdfefe}.search-box__input:focus-visible{outline:2px solid #5ba49d;border-color:#5ba49d}.search-box__input:disabled{color:#78918d;background:#f2f6f5}.search-box__note{margin:.45rem 0 0;font-size:.8rem;color:#5f7b78}.solar-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(420px,.72fr);gap:1rem;min-height:78vh}.analysis-panel,.map-panel{border:1px solid var(--surface-border);border-radius:16px;background:var(--surface-strong);box-shadow:0 14px 32px rgba(12,62,56,.08)}.map-panel{padding:1rem}.map-panel__surface{background:linear-gradient(160deg,#d5ece8,#e6ece6 46%,#f0efea);border:1px solid #c6d8d5;border-radius:12px;height:100%;padding:1rem;display:grid;grid-template-rows:auto auto 1fr;gap:.8rem}.map-panel h2{margin:0;font-size:1.05rem}.map-panel p{margin:0;color:#3c5c59;font-size:.95rem}.map-grid{border-radius:10px;border:1px dashed #84a8a3;background-image:linear-gradient(90deg,rgba(29,94,88,.14) 1px,transparent 0),linear-gradient(180deg,rgba(29,94,88,.14) 1px,transparent 0);background-size:30px 30px;min-height:320px}.solar-map-canvas{width:100%;height:clamp(540px,74vh,860px);border-radius:10px;overflow:hidden}.map-status{display:grid;place-items:center;min-height:180px;border-radius:10px;border:1px dashed #84a8a3;color:#365956;background:#edf5f3;text-align:center;padding:.8rem}.map-status--warning{border-style:solid;border-color:#d09d3a;background:#fff4d9;color:#69480a}.map-status--error{border-style:solid;border-color:#d28787;background:#fbe7e7;color:#5f1f1f}.analysis-panel{padding:.95rem;display:flex;flex-direction:column;gap:.8rem;max-height:calc(100vh - 180px);overflow-y:auto}.analysis-panel__stack{display:grid;gap:.65rem;margin-top:.2rem}.analysis-panel__header h3{margin:0;font-size:1.14rem;font-family:var(--heading-font);color:#133d38}.analysis-panel__header p{margin:.4rem 0 0;color:#4f6e6b;font-size:.92rem}.layer-controls{margin-top:1rem;border:1px solid #d0e0dc;border-radius:12px;padding:.8rem;background:#f4f8f6}.layer-controls__header h4{margin:0;font-size:.98rem}.layer-controls__header p{margin:.2rem 0 0;color:#527470;font-size:.82rem}.layer-controls__group{margin-top:.75rem;display:grid;gap:.55rem}.layer-toggle{display:flex;align-items:center;gap:.45rem;color:#1d4641;font-size:.88rem}.layer-toggle input{accent-color:#1f7a73}.layer-toggle--disabled{opacity:.55}.layer-range-field,.layer-select-field{display:grid;gap:.3rem;font-size:.83rem;color:#3e5f5b}.layer-range-field input[type=range],.layer-select-field select{width:100%}.layer-select-field select{border:1px solid #bfd3ce;border-radius:8px;font-size:.85rem;color:#214844;background:#fbfdfc;padding:.45rem .5rem}.layer-controls__legend{margin:.75rem 0 0;font-size:.76rem;line-height:1.45;color:#527470}.scan-controls{margin-top:.8rem;border:1px solid #d0e0dc;border-radius:12px;background:#f7fbfa;padding:.75rem}.scan-button{width:100%;border:1px solid #115d55;background:linear-gradient(135deg,#12675f,#1f7a73);color:#f7faf9;border-radius:9px;padding:.58rem .8rem;font-weight:700;font-size:.88rem;cursor:pointer}.scan-button:disabled{cursor:not-allowed;opacity:.55}.scan-controls__note{margin:.45rem 0 0;color:#527470;font-size:.79rem;line-height:1.4}.panel-planner{border:1px solid #d0e0dc;border-radius:10px;padding:.7rem;background:#eff7f5}.panel-planner__label{display:flex;justify-content:space-between;align-items:center;gap:.7rem;font-size:.84rem;color:#2a4e4a}.panel-planner__label strong{color:#1a433e;font-size:.9rem}.panel-planner input[type=range]{width:100%;margin-top:.6rem;accent-color:#3c7fd8}.panel-planner__energy{margin:.55rem 0 0;color:#2f5d58;font-size:.8rem}.analysis-card-grid{margin-top:1rem;display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.analysis-card{border:1px solid #d8e6e3;border-radius:12px;padding:.75rem;background:#fbfcfb}.analysis-card__label{margin:0;color:#4d6c69;font-size:.8rem}.analysis-card__value{margin:.25rem 0 0;font-weight:700;color:#173b37}.analysis-card__value--wrap{line-height:1.35;word-break:break-word}.analysis-card--full{grid-column:1/-1}.energy-forecast,.result-cards{margin-top:1rem}.energy-forecast__table-wrap{margin-top:.85rem;overflow-x:auto;border:1px solid #d8e6e3;border-radius:10px;background:#f8fbfa}.energy-forecast__table{width:100%;border-collapse:collapse;font-size:.82rem;min-width:430px}.energy-forecast__table td,.energy-forecast__table th{text-align:left;padding:.55rem .65rem;border-bottom:1px solid #e2eeeb}.energy-forecast__table th{color:#365956;font-weight:700;background:#edf5f3}.energy-forecast__table tbody tr:last-child td{border-bottom:none}.result-cards__header h4{margin:0;font-size:1rem}.result-cards__header p{margin:.2rem 0 0;font-size:.82rem;color:#4f6e6b}.analysis-inline-note{margin-top:.75rem;border:1px solid #c6d8d5;border-radius:9px;background:#f0f6f4;color:#2f5853;font-size:.84rem;padding:.6rem .7rem}.analysis-inline-note--warning{border-color:#d09d3a;background:#fff4d9;color:#69480a}.analysis-inline-note--error{border-color:#d28787;background:#fbe7e7;color:#5f1f1f}.analysis-tabs{margin-top:.2rem;display:flex;gap:.5rem;border-bottom:1px solid #d7e4e1;padding-bottom:.35rem;flex-wrap:wrap;position:sticky;top:0;background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(255,255,255,.93));z-index:3}.analysis-tab{display:inline-flex;align-items:center;border:1px solid #d4e3df;background:#f5faf8;border-radius:999px;padding:.52rem .85rem;color:#496d69;font-size:.84rem;font-weight:600;cursor:pointer;transition:all .18s ease}.analysis-tab:hover{color:#214b47;background:#eaf6f3;border-color:#bad6d0}.analysis-tab--active{color:#ffffff;background:linear-gradient(135deg,var(--brand-strong),var(--brand));border-color:var(--brand-strong);box-shadow:0 8px 18px rgba(17,95,85,.25)}.analysis-tab:focus-visible{outline:2px solid #65a9a2;outline-offset:2px}.offgrid-panel{margin-top:1rem}.offgrid-panel__table-wrap{margin-top:.85rem;overflow-x:auto;border:1px solid #d8e6e3;border-radius:10px;background:#f8fbfa}.offgrid-panel__table{width:100%;border-collapse:collapse;font-size:.82rem;min-width:480px}.offgrid-panel__table td,.offgrid-panel__table th{text-align:left;padding:.55rem .65rem;border-bottom:1px solid #e2eeeb}.offgrid-panel__table th{color:#365956;font-weight:700;background:#edf5f3}.offgrid-panel__table tbody tr:last-child td{border-bottom:none}.system-planning-panel{margin-top:1rem}.system-planning-selector{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;margin-top:.9rem}.system-planning-selector__button{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;border:1px solid #cdded9;border-radius:14px;background:#f7fbfa;padding:.85rem .95rem;text-align:left;cursor:pointer;transition:all .18s ease}.system-planning-selector__button:hover{border-color:#9fc6bf;background:#eef7f5}.system-planning-selector__button--active{border-color:#145f58;background:linear-gradient(135deg,rgba(20,95,88,.08),rgba(31,122,115,.12));box-shadow:0 8px 18px rgba(17,95,85,.12)}.system-planning-selector__button:focus-visible{outline:2px solid #65a9a2;outline-offset:2px}.system-planning-selector__title{font-size:.94rem;font-weight:700;color:#113f3a}.system-planning-selector__subtitle{font-size:.77rem;color:#587471}.financial-panel{margin-top:1rem}.financial-panel__table-wrap{margin-top:.85rem;overflow-x:auto;border:1px solid #d8e6e3;border-radius:10px;background:#f8fbfa}.financial-panel__table{width:100%;border-collapse:collapse;font-size:.82rem;min-width:600px}.financial-panel__table td,.financial-panel__table th{text-align:left;padding:.55rem .65rem;border-bottom:1px solid #e2eeeb}.financial-panel__table th{color:#365956;font-weight:700;background:#edf5f3}.financial-panel__table tbody tr:last-child td{border-bottom:none}.climate-panel,.radiation-panel,.terrain-panel{margin-top:1rem}.climate-panel__table-wrap,.radiation-panel__table-wrap,.terrain-panel__table-wrap{margin-top:.85rem;overflow-x:auto;border:1px solid #d8e6e3;border-radius:10px;background:#f8fbfa}.climate-panel__table,.radiation-panel__table,.terrain-panel__table{width:100%;border-collapse:collapse;font-size:.82rem;min-width:560px}.climate-panel__table td,.climate-panel__table th,.radiation-panel__table td,.radiation-panel__table th,.terrain-panel__table td,.terrain-panel__table th{text-align:left;padding:.55rem .65rem;border-bottom:1px solid #e2eeeb}.climate-panel__table th,.radiation-panel__table th,.terrain-panel__table th{color:#365956;font-weight:700;background:#edf5f3}.climate-panel__table tbody tr:last-child td,.radiation-panel__table tbody tr:last-child td,.terrain-panel__table tbody tr:last-child td{border-bottom:none}.analysis-mini-chart{margin-top:.9rem;border:1px solid #d7e6e2;border-radius:10px;background:#f6faf8;padding:.75rem}.analysis-mini-chart h5{margin:0;font-size:.86rem;color:#2b4f4b}.analysis-mini-chart__rows{margin-top:.55rem;display:grid;gap:.42rem}.analysis-mini-chart__row{display:grid;grid-template-columns:56px minmax(0,1fr) 100px;align-items:center;gap:.45rem}.analysis-mini-chart__label,.analysis-mini-chart__value{font-size:.76rem;color:#345753}.analysis-mini-chart__bar-track{height:8px;border-radius:999px;background:#dbeae6;overflow:hidden}.analysis-mini-chart__bar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#19716a,#33a79e)}@media (max-width:1080px){.navbar,.page-content{width:min(1600px,calc(100% - 1.25rem))}.navbar{flex-direction:column;align-items:flex-start;gap:.8rem}.solar-layout{grid-template-columns:1fr}.analysis-panel{max-height:none;overflow-y:visible}.analysis-tabs{position:static;padding-bottom:0}.system-planning-selector{grid-template-columns:1fr}.analysis-mini-chart__row{grid-template-columns:52px minmax(0,1fr) 88px}.solar-map-canvas{height:clamp(420px,62vh,620px)}.analysis-card-grid{grid-template-columns:1fr}.home-page{padding:2rem 1.25rem}}