/* Loaded only for printing. Keep the selected offer and its full calculation. */
@page { size: A4; margin: 13mm; }

html.calculator-page { font-size: 10pt; }
body { margin: 0; background: white; color: #163b30; line-height: 1.4; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
[hidden] { display: none !important; }
header { height: auto; min-height: 0; padding: 0 0 5mm !important; margin: 0 0 5mm; border-bottom: 1px solid #bdcdb5; }
header .brand { width: 38mm; }
header .app-name { display: block; margin-left: auto; font-size: 10pt; }
.intro, .entry, .contact, footer, .skip, .header-actions, .language-picker,
.currency-note, .quote-actions, .offer-tabs, .quiet, .button, .install-dialog { display: none !important; }
.calculator-main, .workspace, body.presenting .workspace, .results, #output {
 display: block; width: auto; max-width: none; min-width: 0; margin: 0; padding: 0; border: 0; overflow: visible;
}
.result-heading { display: block; margin: 0 0 4mm; break-after: avoid; }
.result-heading h2 { font-size: 17pt; line-height: 1.2; }
.calculator-main .alternatives, .calculator-main .alternatives.is-comparing,
.calculator-main .alternatives:not(.is-comparing) {
 display: block; width: auto; max-width: none; margin: 0; break-inside: auto;
}
h2, h3, h4 { break-after: avoid; }
p { orphans: 3; widows: 3; }
.hint, .maintenance-note, .fine-print, .warranty-condition { font-size: 8.5pt; line-height: 1.4; margin: 3mm 0; }
p:empty { display: none; }
.group-result-notes, .custom-estimate-warning { padding: 3mm; margin: 0 0 4mm; font-size: 9pt; break-inside: avoid; }
.group-result-notes p + p { margin-top: 1mm; }

/* Use normal table flow so long calculations can continue across pages. */
.comparison-heading { margin: 0 0 3mm; break-after: avoid; }
.comparison-heading h3 { font-size: 13pt; margin: 0 0 1mm; }
.comparison-heading p { font-size: 9pt; margin: 0; }
.comparison-table-wrap, .assumption-table-wrap { overflow: visible; border-radius: 0; border: 0; }
.comparison-table, .assumption-table { display: table; width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 9pt; line-height: 1.35; }
.comparison-table colgroup { display: table-column-group; }
.comparison-label-col { width: 40%; }
.comparison-table thead, .assumption-table thead { display: table-header-group; position: static; width: auto; height: auto; clip-path: none; }
.comparison-table tbody, .assumption-table tbody { display: table-row-group; }
.comparison-table tr, .assumption-table tr { display: table-row; break-inside: avoid; }
.comparison-table th, .comparison-table td, .assumption-table th, .assumption-table td {
 display: table-cell; padding: 2mm 2.5mm; border: 1px solid #d3ddca; overflow-wrap: break-word;
}
.comparison-table thead th { padding: 2.5mm; }
.comparison-table .comparison-key-row td, .comparison-table .comparison-warranty td { font-size: 10pt; }
.comparison-option-name { font-size: 11pt; }
.comparison-table small { font-size: 8pt; line-height: 1.35; margin-top: 1mm; }
.recommendation-badge { font-size: 8pt; padding: 1mm 2mm; margin-top: 1mm; }
.comparison-table tfoot { display: none; }
.comparison-method { margin-top: 3mm; }

/* The recommendation immediately precedes the energy chart on screen and paper. */
.comparison-conclusion { break-inside: avoid; }
.offer-recommendation { padding: 3mm 4mm; margin: 4mm 0 3mm; border-radius: 2mm; border-left-width: 1mm; break-inside: avoid; }
.offer-recommendation .eyebrow { font-size: 8pt; margin: 0; }
.offer-recommendation h4 { font-size: 13pt; margin: 1mm 0; }
.offer-recommendation .recommendation-value { font-size: 11pt; margin: 1mm 0; }
#recommendation-detail { font-size: 9pt; line-height: 1.4; margin: 0; }
.comparison { padding: 3mm 4mm; margin: 0; border-radius: 2mm; break-inside: avoid; }
.comparison h3 { font-size: 12pt; margin: 0 0 2mm; }
.energy-row { margin: 2mm 0; }
.energy-label { font-size: 9pt; margin-bottom: 1mm; }
.bar-track, .bar { height: 2mm; border-radius: 1mm; }
#breakdown { margin: 2mm 0 0; }

/* Individual offers use the full page width, with no clipped flex containers. */
.option { display: block; overflow: visible; border-radius: 2mm; break-inside: auto; }
.option-top, .option-price, .option-saving, .option-facts > div, .offer-fixtures > p, .option-note { break-inside: avoid; }
.option-top { padding: 4mm 5mm; min-height: 0; }
.option-top h3 { font-size: 16pt; }
.option-top .eyebrow { font-size: 8pt; }
.warranty { font-size: 10pt; padding: 1mm 2mm; }
.option-top .warranty-condition { font-size: 8.5pt; margin-bottom: 0; }
.option-price { padding: 4mm 5mm; min-height: 0; }
.option-price > p { font-size: 10pt; }
.option-price > strong { font-size: 22pt; line-height: 1.3; }
.option-price small { font-size: 9pt; }
.option-price .estimate-terms { margin-bottom: 1mm; }
.installation-estimate { padding: 3mm; margin: 0 5mm 3mm; }
.installation-estimate dt, .installation-estimate dd, .installation-estimate p { font-size: 9pt; }
.option-saving { padding: 3mm 5mm; min-height: 0; }
.option-saving strong { font-size: 19pt; }
.option-saving p, .option-saving small, .option-saving span { font-size: 9pt; }
.option-facts { margin: 2mm 5mm 0; }
.option-facts > div { padding: 2mm 0; }
.option-facts dt, .option-facts dd, .option-facts .project-investment dd { font-size: 10pt; }
.option-facts .payback dd { font-size: 12pt; }
.project-investment small { font-size: 8.5pt; }
.offer-fixtures { padding: 3mm 5mm; margin-top: 3mm; }
.offer-fixture-total, .offer-fixtures dl { font-size: 9pt; }
.fixture-distribution summary { display: none; }
.offer-fixtures dl > div { margin: 1mm 0; break-inside: avoid; }
.option-note { padding: 3mm 5mm; font-size: 9pt; }
.control-value { padding: 3mm 4mm; margin: 3mm 0; break-inside: avoid; }
.control-value h3 { font-size: 12pt; }
.control-value p, .incremental-payback span { font-size: 9pt; }
.incremental-payback strong { font-size: 16pt; }

/* A separate calculation page keeps the assumptions and terms easy to find. */
.assumptions { display: block; break-before: page; break-inside: auto; border: 0; border-radius: 0; padding: 0; margin: 0; overflow: visible; }
.assumptions > summary { display: block; list-style: none; padding: 0 0 4mm; margin: 0 0 4mm; background: none; font-size: 15pt; font-weight: 700; break-after: avoid; }
.assumptions > summary::marker { content: ''; }
.assumptions > summary::-webkit-details-marker { display: none; }
.assumptions-body { display: block; padding: 0; }
.assumptions-body > * { margin: 0 0 5mm; }
.assumption-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 3mm; break-inside: avoid; }
.assumption-metrics > div { padding: 3mm; }
.assumption-metrics dt { font-size: 9pt; margin-bottom: 1mm; }
.assumption-metrics dd { font-size: 14pt; }
.assumption-metrics small { font-size: 8pt; margin-top: 1mm; }
.assumption-metrics dd.hours-by-group { font-size: 8pt; }
.hours-by-group strong { font-size: 9pt; }
.assumptions h3 { font-size: 11pt; margin: 0 0 2mm; }
.assumption-table thead th { font-size: 8pt; }
.assumption-table th:first-child { width: 29%; }
.assumption-table th:nth-child(2) { width: 10%; }
.assumption-table th:nth-child(3) { width: 27%; }
.assumption-table th:nth-child(4) { width: 15%; }
.assumption-table th:nth-child(5) { width: 19%; }
.assumption-table td::before { display: none; }
.assumption-rules { display: grid; grid-template-columns: 1fr 1fr; gap: 6mm; break-inside: auto; }
.assumption-rules > section, .assumption-explanation { break-inside: avoid; }
.assumption-rules dl, .assumption-explanation p { font-size: 9pt; line-height: 1.45; }
.assumption-sensors > div + div { margin-top: 2mm; }
#assumption-watts > div { padding: 1mm 0; }
.assumption-explanation { padding-top: 3mm; }
.fine-print { font-size: 8.5pt; break-inside: avoid; }
.solution-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:3mm;margin:3mm 0;break-inside:auto}.solution-card,.solution-cloud{padding:3mm;border:1px solid #a7bbae;border-radius:2mm}.solution-card h3{font-size:12pt;min-height:12mm;margin:2mm 0}.solution-card .eyebrow{font-size:8pt}.solution-reduction{padding-bottom:2mm}.solution-reduction strong{font-size:20pt}.solution-reduction span,.solution-metrics dt,.solution-subscription{font-size:8pt}.solution-metrics{display:block}.solution-metrics>div{padding-top:3mm}.solution-metrics dd,.solution-metrics .saving dd{font-size:12pt}.solution-subscription{margin-top:3mm;padding-top:2mm}.solution-comparison{margin:5mm 0}.solution-table-wrap{overflow:visible}.solution-table{min-width:0;width:100%;font-size:8pt}.solution-table th,.solution-table td{padding:2mm}.calculation-details{break-before:page;padding:0;border:0;margin:0}.calculation-details summary{list-style:none;font-size:14pt}#solution-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3mm}.solution-detail h4{font-size:11pt}.solution-detail dl>div{display:block;font-size:8pt;padding:2mm 0}.solution-detail dd{text-align:left;margin-top:1mm}#edit-inputs{display:none!important}

.solution-metrics .product-price dd{font-size:17pt}.solution-metrics .product-price dt{font-size:9pt}.solution-metrics .secondary-price{display:block;padding-top:2mm}.solution-metrics .secondary-price dd{text-align:left;font-size:9pt}.solution-benefits p,.solution-reduction span,.saving-info,.solution-costs{font-size:8pt}.solution-reduction strong{font-size:10pt}.solution-benefits{margin-top:3mm;padding-top:2mm}.result-fixture-summary{break-before:page}.fixture-summary-details .selected-fixture{break-inside:avoid}.fixture-summary-details .fixture-conditions{display:none}.solution-metrics .saving{margin-top:3mm}.solution-metrics .payback{padding-bottom:2mm}

.solution-heading{min-height:17mm;margin:2mm 0 3mm}.solution-card .solution-heading h3{min-height:0;font-size:12pt;margin:0 0 2mm}.solution-description{font-size:8pt;line-height:1.4;margin:0}.solution-trademark{font-size:.48em;line-height:0;vertical-align:super}

.price-focused .solution-metrics .saving{display:block;padding:2mm 0}.price-focused .solution-metrics .saving dt,.price-focused .solution-metrics .saving dd{font-size:9pt;text-align:left}.result-focus{font-size:9pt}

/* Let long offer cards continue on the next sheet instead of moving the entire
   comparison away from the first page. Flex columns otherwise resist print
   fragmentation when all calculation disclosures are expanded. */
html.calculator-page,body{height:auto;min-height:0;overflow:visible}
.calculator-main,.workspace,.results,#output{break-before:auto;break-inside:auto;page-break-before:auto;page-break-inside:auto}
.solution-grid{break-before:auto;break-inside:auto;page-break-before:auto;page-break-inside:auto;align-items:start}
.solution-card{display:block;break-inside:auto;page-break-inside:auto;min-height:0}
.solution-heading,.solution-metrics>div,.solution-benefits>p,.saving-info>summary{break-inside:avoid;page-break-inside:avoid}
.solution-heading{break-after:avoid}
.solution-card .saving-info p{orphans:2;widows:2}
