/* Solar calculator, with support for embedded and standalone layouts. */
.solar-studio { background:#f1f4ec; }
[data-solar-app] { --sp-line:#dce3d6; --sp-muted:#62705f; color:#17201a; font:400 15px/1.6 var(--font-body,'Segoe UI',sans-serif); }
[data-solar-app] * { box-sizing:border-box; min-width:0; }
[data-solar-app] button { cursor:pointer; }
[data-solar-app] button:disabled { cursor:not-allowed; opacity:.5; }
[data-solar-app] button, [data-solar-app] input, [data-solar-app] select { font:inherit; }
[data-solar-app] a { text-underline-offset:3px; }
[data-solar-app] a:hover { text-decoration:underline; }
[data-solar-app] svg { width:20px; height:20px; flex-shrink:0; }
[data-solar-app] ul { list-style:disc; padding-left:20px; }
[data-solar-app] li+li { margin-top:7px; }
.sp-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:25px; margin-bottom:27px; }
.sp-kicker { display:block; font-size:11px; font-weight:750; letter-spacing:.13em; }
.sp-heading .sp-kicker { color:#476c20; margin-bottom:14px; }
.sp-heading :is(h1,h2) { font-size:clamp(32px,3.7vw,49px); font-weight:600; letter-spacing:-.055em; line-height:1.15; margin:0 0 14px; }
.sp-heading p { color:var(--sp-muted); font-size:16px; }
.sp-expand { font-size:13px; font-weight:650; white-space:nowrap; border-bottom:1px solid #7a9471; padding:8px 0; }
.sp-meta { display:flex; gap:10px 30px; flex-wrap:wrap; font-size:12px; color:var(--sp-muted); padding:16px 0; border-top:1px solid var(--sp-line); }
.sp-meta b { color:#263b25; }
.sp-topbar { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:12px 0; }
.sp-tabs { display:flex; gap:5px; padding:5px; background:#e3e9dc; border-radius:5px; }
.sp-tabs button { min-height:44px; padding:10px 20px; background:none; border:0; border-radius:3px; font-size:14px; font-weight:650; color:#52604c; }
.sp-tabs button[aria-pressed="true"] { color:white; background:#17251b; box-shadow:0 2px 5px #17201a12; }
.sp-worksheet { font-size:13px; font-weight:650; }
.sp-price-note { max-width:960px; color:var(--sp-muted); font-size:13px; margin:8px 0 26px; }
.sp-info { padding:14px 18px; margin:15px 0; background:#e7efda; border-left:3px solid #66892d; font-size:13px; }
.sp-presets { display:flex; align-items:center; flex-wrap:wrap; gap:14px; margin-bottom:24px; }
.sp-presets>span { font-size:10px; font-weight:750; letter-spacing:.1em; }
.sp-presets>div { display:flex; gap:7px; flex-wrap:wrap; }
.sp-presets button { background:white; border:1px solid #d3dccb; min-height:40px; padding:7px 12px; border-radius:3px; font-size:13px; font-weight:600; transition:background .15s,border-color .15s; }
.sp-presets button:hover { background:#e3f1cd; border-color:#779c4a; }
.sp-presets button[aria-pressed="true"] { background:#d8edb5; border-color:#698c37; }
.sp-presets .sp-reset { margin-left:auto; background:transparent; border-color:transparent; text-decoration:underline; font-weight:400; }
.sp-workspace { display:grid; grid-template-columns:minmax(0,1fr) 375px; gap:24px; align-items:start; }
.sp-controls { display:grid; gap:18px; }
.sp-card { background:#fff; border:1px solid var(--sp-line); border-radius:5px; padding:27px; box-shadow:0 3px 10px #17201a03; }
.sp-card-title { display:flex; align-items:center; gap:13px; margin-bottom:23px; }
.sp-card-title>span { display:grid; place-items:center; height:30px; width:30px; border-radius:50%; background:#edf3e5; color:#4f692b; font-size:11px; font-weight:700; }
.sp-card-title :is(h2,h3) { font-size:20px; font-weight:650; letter-spacing:-.03em; margin:0; }
.sp-mode-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-bottom:21px; }
.sp-mode-options button { text-align:left; padding:14px 12px; border:1px solid var(--sp-line); background:#fff; color:#2f3f2b; border-radius:3px; }
.sp-mode-options button[aria-pressed="true"] { border-color:#547b2d; box-shadow:inset 0 0 0 1px #547b2d; background:#f1f8e8; }
.sp-mode-options strong { display:block; font-size:14px; margin-bottom:5px; }
.sp-mode-options small { display:block; color:var(--sp-muted); font-size:11px; line-height:1.5; }
.sp-two { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:18px 0; }
.sp-field { display:flex; flex-direction:column; gap:7px; }
.sp-field>span { font-size:12px; font-weight:650; line-height:1.55; }
.sp-field input,.sp-field select { display:block; width:100%; min-height:45px; padding:10px 12px; background:#fff; color:#17201a; border:1px solid #cdd7c7; border-radius:3px; font-size:14px; line-height:1.4; }
.sp-field select { text-overflow:ellipsis; padding-right:28px; }
.sp-field input:focus,.sp-field select:focus { border-color:#578626; outline:2px solid #9ed64355; outline-offset:1px; }
.sp-field input[aria-invalid="true"] { border-color:#b34b33; background:#fff9f5; }
.sp-field small { font-size:11px; line-height:1.55; color:var(--sp-muted); }
.sp-check { display:flex; align-items:flex-start; gap:10px; font-size:13px; font-weight:500; margin:17px 0; }
.sp-check input { width:18px; height:18px; flex:0 0 18px; margin:2px 0 0; accent-color:#477223; }
.sp-check small { display:block; font-size:11px; font-weight:400; color:var(--sp-muted); line-height:1.5; margin-top:3px; }
.sp-import-toggle { border-top:1px solid #e7ebe3; padding-top:17px; margin-bottom:0; }
.sp-picker { display:grid; grid-template-columns:150px minmax(0,1fr); gap:14px; }
.sp-selected-info { border-left:2px solid #b6cd9f; padding:12px 15px; background:#f6f8f3; margin:13px 0 18px; font-size:12px; color:var(--sp-muted); overflow-wrap:anywhere; }
.sp-selected-info>div { display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:7px; }
.sp-selected-info strong { color:#21341b; font-size:18px; font-weight:700; }
.sp-selected-info strong small { font-size:11px; font-weight:400; }
.sp-selected-info p { margin:5px 0; }
.sp-selected-info a,.sp-details a,.sp-source a { color:#416725; text-decoration:underline; }
.sp-selected-info summary { margin-top:10px; font-size:11px; cursor:pointer; color:#3a5030; }
.sp-selected-info ul { margin:10px 0; }
.sp-badge { display:inline-block; font-size:10px; font-weight:650; line-height:1.4; border-radius:3px; padding:4px 7px; background:#eeeae0; color:#635337; }
.sp-badge-verified { background:#e0edce; color:#345621; }
.sp-divider { height:1px; background:#e3e9dc; margin:25px 0; }
.sp-hint { color:var(--sp-muted); font-size:12px; line-height:1.7; margin:10px 0; }
.sp-allowance-row { display:grid; grid-template-columns:minmax(0,1fr) 150px; align-items:center; gap:16px; padding:14px 0; border-bottom:1px solid #edf0e9; }
.sp-allowance-row .sp-check { margin:10px 0; }
.sp-allowance-row .sp-field { gap:4px; }
.sp-allowance-row .sp-field>span { font-size:11px; color:var(--sp-muted); font-weight:400; }
.sp-details { border:1px solid var(--sp-line); padding:14px 16px; border-radius:3px; margin:18px 0 0; font-size:12px; }
.sp-details summary { cursor:pointer; font-weight:650; font-size:13px; }
.sp-details summary span { float:right; font-size:17px; line-height:1.2; }
.sp-extra-add { display:flex; align-items:flex-end; gap:8px; margin:16px 0; }
.sp-extra-add>.sp-field { flex:1; }
.sp-extra-row { display:grid; grid-template-columns:minmax(0,1fr) 70px 30px; gap:12px; align-items:center; border-top:1px solid var(--sp-line); padding:12px 0; }
.sp-extra-row strong { display:block; font-size:12px; font-weight:500; }
.sp-extra-row small { display:block; font-size:11px; color:var(--sp-muted); }
.sp-extra-row button { background:transparent; border:0; color:#755341; font-size:23px; min-height:44px; }
.sp-summary { position:sticky; top:103px; border:1px solid #d6decf; border-radius:5px; background:white; overflow:hidden; box-shadow:0 12px 35px #14261b08; }
.sp-summary-top { position:relative; padding:27px; background:#17271d; color:#fff; overflow:hidden; }
.sp-summary-top::after { content:''; position:absolute; width:170px; height:170px; border-radius:50%; border:1px solid #d4e4c515; right:-55px; top:-70px; box-shadow:0 0 0 30px #d4e4c508,0 0 0 60px #d4e4c505; pointer-events:none; }
.sp-summary-top .sp-kicker { color:#b5d77b; font-size:10px; margin-bottom:26px; }
.sp-total-label { color:#c5d4bd; font-size:12px; margin-bottom:3px; }
#sp-total { display:block; font:600 39px/1.25 var(--font-heading,'Segoe UI',sans-serif); letter-spacing:-.04em; overflow-wrap:anywhere; }
#sp-summary-spec { font-size:12px; color:#c9d7c0; margin:11px 0 0; }
.sp-summary-body { padding:0 23px 20px; }
#sp-cost-lines { max-height:360px; overflow:auto; scrollbar-width:thin; padding-right:5px; }
.sp-cost-line { display:flex; justify-content:space-between; align-items:baseline; gap:14px; padding:14px 0; border-bottom:1px solid #edf0e9; font-size:12px; }
.sp-cost-line span { display:block; font-weight:600; }
.sp-cost-line small { display:block; font-size:10px; color:var(--sp-muted); line-height:1.55; margin-top:3px; }
.sp-cost-line>strong { flex-shrink:0; white-space:nowrap; font-size:13px; font-variant-numeric:tabular-nums; }
.sp-summary-split { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px 14px; font-size:11px; padding:18px 0; }
.sp-summary-split span { color:var(--sp-muted); }
.sp-summary-split strong { font-size:12px; text-align:right; }
.sp-button { display:inline-flex; justify-content:center; align-items:center; gap:10px; min-height:45px; padding:12px 17px; border:1px solid #a4d35e; border-radius:3px; background:#b3df72; color:#1b3016; font-size:13px!important; font-weight:650!important; line-height:1.4!important; transition:background .15s; }
.sp-button:hover { background:#c3eb8a; }
.sp-button-outline { background:white; border-color:#d0dbca; color:#34432c; }
.sp-button-outline:hover { background:#f0f5e9; }
.sp-button-small { padding:10px 13px; white-space:nowrap; }
.sp-estimate-actions>.sp-button { width:100%; justify-content:space-between; }
.sp-estimate-actions>div { display:flex; gap:9px; margin-top:10px; }
.sp-estimate-actions>div button { flex:1; padding:10px 8px; font-size:11px!important; }
.sp-summary-body>.sp-hint { font-size:10px; margin:15px 0 0; }
.sp-errors { padding:14px; color:#883b23; background:#fff0e6; margin-top:18px; font-size:12px; }
.sp-errors strong { display:block; margin-bottom:8px; }
.sp-outcomes { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; background:#dce3d6; border:1px solid #dce3d6; margin:25px 0; border-radius:4px; overflow:hidden; }
.sp-outcomes>div { padding:23px; background:#eaf0e1; }
.sp-outcomes span { display:block; font-size:12px; color:#526345; }
.sp-outcomes strong { display:block; font:650 24px/1.3 var(--font-heading,'Segoe UI',sans-serif); letter-spacing:-.04em; margin:9px 0 6px; }
.sp-outcomes small { font-size:11px; color:#69735f; }
.sp-review { background:white; border:1px solid var(--sp-line); padding:20px 25px; border-radius:4px; }
.sp-review:empty { display:none; }
.sp-review summary { cursor:pointer; font-size:14px; font-weight:650; }
.sp-review ul { color:var(--sp-muted); font-size:12px; margin:16px 0 0; }
.sp-footnote { margin-top:18px; }
.sp-announcement { position:fixed; bottom:22px; left:50%; transform:translateX(-50%); z-index:110; width:max-content; max-width:min(620px,calc(100vw - 40px)); font-size:13px; font-weight:500; margin:0; padding:15px 20px; color:#fff; background:#243b27; box-shadow:0 6px 30px #15261430; border-radius:4px; }
.sp-announcement:empty { display:none; }
.sp-catalog-filters { display:grid; grid-template-columns:2fr 1fr 1.3fr; gap:16px; margin:25px 0 12px; }
.sp-catalog-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin:20px 0 32px; align-items:start; }
.sp-price-card { background:white; border:1px solid var(--sp-line); padding:23px; border-radius:5px; overflow-wrap:anywhere; }
.sp-price-card>div:first-child { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-bottom:20px; }
.sp-category { font-size:10px; text-transform:uppercase; letter-spacing:.08em; color:#6a7860; }
.sp-price-card h3 { font-size:23px; font-weight:650; margin:0 0 3px; }
.sp-model-name { font-size:13px; line-height:1.6; min-height:42px; }
.sp-spec { font-size:11px; color:var(--sp-muted); margin:12px 0; }
.sp-card-price { display:block; font-size:26px; font-weight:650; letter-spacing:-.04em; line-height:1.3; }
.sp-card-price small { font-size:11px; font-weight:400; letter-spacing:0; }
.sp-availability { font-size:11px; color:var(--sp-muted); margin:10px 0; }
.sp-source { font-size:12px; margin:12px 0; }
.sp-price-card details { border-top:1px solid #e8ede2; padding-top:12px; font-size:12px; color:var(--sp-muted); }
.sp-price-card summary { cursor:pointer; font-size:11px; color:#4c6340; }
.sp-price-card details ul { margin:12px 0; }
.sp-price-card details p { margin:10px 0; }
.sp-price-card>.sp-button { width:100%; justify-content:space-between; margin-top:18px; }
.sp-methodology { background:#e7eddc; padding:25px 30px; border-radius:4px; }
.sp-methodology h3 { font-size:20px; font-weight:600; margin:0 0 14px; }
.sp-methodology p { color:var(--sp-muted); font-size:13px; max-width:950px; margin:10px 0; }
.sp-empty { grid-column:1/-1; padding:40px; border:1px dashed #b9c5af; }
.sp-standalone { background:#f1f4ec; }
.sp-standalone-header { background:white; border-bottom:1px solid #dce3d6; }
.sp-standalone-header .container { display:flex; align-items:center; justify-content:space-between; min-height:88px; gap:20px; }
.sp-standalone-nav { display:flex; align-items:center; gap:24px; }
.sp-standalone-header .sp-home-link { display:inline-flex; align-items:center; min-height:40px; font-size:13px; font-weight:600; }
.sp-help-link { display:inline-flex; align-items:center; justify-content:center; min-height:40px; padding:9px 14px; border:1px solid #cfddc0; border-radius:3px; color:#24441c; background:#edf5e3; font-size:13px; font-weight:650; white-space:nowrap; }
.sp-help-link:hover { background:#dfeecb; }
.sp-standalone-nav a:focus-visible { outline:2px solid #578626; outline-offset:4px; }
.sp-standalone-main { padding:60px 0; }
.sp-standalone-footer { padding:22px 0; border-top:1px solid #dce3d6; font-size:12px; color:#65715e; }
.sp-standalone-footer .container { display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; }
#solar-print { display:none; }
.sp-mobile-estimate { display:none; }
.sp-summary { scroll-margin-top:95px; }
@media(max-width:900px) {
  .sp-mobile-estimate { position:sticky; top:80px; z-index:10; display:flex; justify-content:space-between; align-items:center; gap:15px; background:#213822; color:#fff; padding:12px 17px; margin:0 0 18px; border-radius:4px; box-shadow:0 4px 14px #14241316; }
  .sp-mobile-estimate span { display:block; font-size:10px; color:#d0dfc6; }
  .sp-mobile-estimate strong { display:block; font-size:23px; font-weight:650; line-height:1.3; }
  .sp-mobile-estimate button { border:1px solid #90aa79; background:transparent; color:#eef6e8; padding:9px 11px; font-size:11px; min-height:40px; border-radius:3px; }
  [data-standalone] .sp-mobile-estimate { top:12px; }
}
@media(min-width:901px) and (max-height:900px) { .sp-summary { top:92px; } #sp-cost-lines { max-height:clamp(80px,calc(100dvh - 620px),280px); } .sp-summary-top { padding:22px; } .sp-summary-top .sp-kicker { margin-bottom:17px; } }
@media(min-width:901px) and (max-height:650px) { .sp-summary { position:static; } #sp-cost-lines { max-height:none; } }
@media(max-width:1100px) { .sp-workspace { grid-template-columns:minmax(0,1fr) 330px; gap:18px; } .sp-card { padding:22px; } .sp-mode-options small { font-size:10px; } .sp-picker { grid-template-columns:1fr; gap:12px; } .sp-catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:900px) { .sp-workspace { grid-template-columns:1fr; } .sp-summary { position:static; } #sp-cost-lines { max-height:none; } .sp-picker { grid-template-columns:150px minmax(0,1fr); } .sp-summary-top { padding:28px; } .sp-summary-top .sp-kicker { margin-bottom:18px; } .sp-summary-body { padding:0 28px 24px; } .sp-cost-line small,.sp-summary-body>.sp-hint { font-size:12px; } .sp-summary-split { font-size:13px; } .sp-summary-split strong { font-size:14px; } .sp-topbar { align-items:flex-start; flex-direction:column; gap:14px; } .sp-outcomes { grid-template-columns:repeat(2,minmax(0,1fr)); } .sp-heading { display:block; } .sp-expand { display:inline-block; margin-top:18px; } }
@media(max-width:600px) { .solar-studio.section { padding:60px 0; } .solar-studio>.container,.sp-standalone .container { width:calc(100% - 32px); } .sp-heading :is(h1,h2) { font-size:34px; } .sp-heading p { font-size:14px; } .sp-meta { gap:8px 19px; font-size:11px; } .sp-tabs { width:100%; } .sp-tabs button { flex:1; padding:10px; font-size:12px; } .sp-topbar { gap:12px; } .sp-price-note { font-size:12px; } .sp-presets { gap:10px; } .sp-presets>div { gap:6px; } .sp-presets button { min-height:39px; font-size:12px; padding:7px 10px; } .sp-card { padding:20px 16px; } .sp-card-title :is(h2,h3) { font-size:18px; } .sp-mode-options { gap:6px; } .sp-mode-options button { padding:12px 8px; } .sp-mode-options strong { font-size:12px; } .sp-mode-options small { font-size:10px; } .sp-two,.sp-picker { grid-template-columns:1fr; gap:16px; } .sp-field input,.sp-field select { font-size:16px; } .sp-field>span { font-size:12px; } .sp-allowance-row { grid-template-columns:minmax(0,1fr) 105px; gap:10px; } .sp-check { font-size:12px; } .sp-extra-add { flex-direction:column; align-items:stretch; } .sp-extra-row { grid-template-columns:minmax(0,1fr) 60px 25px; gap:6px; } .sp-outcomes>div { padding:18px 15px; } .sp-outcomes strong { font-size:21px; overflow-wrap:anywhere; } .sp-outcomes small { font-size:10px; } .sp-summary-top { padding:23px; } .sp-summary-body { padding:0 20px 23px; } .sp-catalog-filters { grid-template-columns:1fr; } .sp-catalog-grid { grid-template-columns:1fr; } .sp-model-name { min-height:0; } .sp-review { padding:18px; } .sp-methodology { padding:22px; } .sp-standalone-main { padding:35px 0; } .sp-standalone-header .container { min-height:96px; gap:12px; padding-block:10px; } .sp-standalone-nav { flex-direction:column; align-items:flex-end; gap:2px; } .sp-standalone-header .sp-home-link { min-height:30px; font-size:11px; } .sp-help-link { min-height:38px; padding:8px 12px; font-size:12px; } }
@media(prefers-reduced-motion:reduce) { [data-solar-app] * { scroll-behavior:auto!important; transition:none!important; } }
@media print {
  body.solar-printing>*:not(#solar-print) { display:none!important; }
  body.solar-printing { background:#fff!important; color:#111!important; font:9.5pt/1.4 Arial,sans-serif!important; margin:0; }
  body.solar-printing #solar-print { display:block!important; width:100%; padding:0; }
  #solar-print header { display:flex; justify-content:space-between; border-bottom:2px solid #253c25; padding-bottom:10px; margin-bottom:18px; }
  #solar-print h1 { font:700 23pt/1.3 Arial,sans-serif; letter-spacing:-.03em; margin:0 0 10px; }
  #solar-print h2 { font:700 13pt/1.3 Arial,sans-serif; margin:22px 0 10px; letter-spacing:0; }
  #solar-print p { margin:10px 0; }
  #solar-print table { width:100%; border-collapse:collapse; font-size:9pt; margin:18px 0; }
  #solar-print th,#solar-print td { padding:7px 6px; border-bottom:1px solid #ddd; text-align:right; vertical-align:top; }
  #solar-print th:first-child,#solar-print td:first-child { text-align:left; }
  #solar-print td:first-child { width:50%; }
  #solar-print td small { display:block; color:#555; font-size:7pt; overflow-wrap:anywhere; }
  #solar-print tr { break-inside:avoid; }
  #solar-print thead { display:table-header-group; }
  #solar-print tfoot { display:table-row-group; font-size:12pt; }
  #solar-print ul { list-style:disc; padding-left:20px; margin:16px 0; }
  #solar-print footer { border-top:1px solid #bbb; margin-top:25px; padding-top:12px; font-size:9pt; }
  @page { size:A4; margin:14mm; }
}

.sp-workspace-label { font-size:15px; font-weight:650; color:#263b25; }
