.calc-intro { padding:60px 0 32px; background:linear-gradient(120deg,#eef5f8,#fff); }
.calc-intro h1 { font-size:clamp(2.2rem,4.8vw,3.8rem); line-height:1.08; max-width:920px; }
.calc-intro .lead { font-size:1.15rem; max-width:760px; color:var(--muted); margin:20px 0; }
.calc-breadcrumb { font-size:.85rem; margin-bottom:24px; }
.calc-breadcrumb a,.calculator a:not(.button) { color:var(--blue); text-decoration:underline; text-underline-offset:3px; }
.calculator { padding:30px 0 64px; }
.calculator [hidden] { display:none !important; }
.calculator h2 { font-size:clamp(1.6rem,3vw,2.15rem); line-height:1.2; }
.calculator h3 { font-size:1.15rem; }
.calc-panel { padding:26px; border:1px solid var(--line); background:white; margin-bottom:24px; }
.calc-context { background:var(--soft); }
.calc-context-grid { display:grid; grid-template-columns:minmax(220px,.7fr) 1.3fr; gap:32px; align-items:center; margin-top:18px; }
.calc-help { font-size:.88rem; color:var(--muted); margin:8px 0 0; }
.calculator label { display:grid; gap:7px; font-size:.9rem; font-weight:600; }
.calculator input,.calculator select { font:inherit; color:var(--ink); min-width:0; width:100%; padding:10px; min-height:44px; border:1px solid #a6bbc6; border-radius:3px; background:#fff; }
.calculator input:focus-visible,.calculator select:focus-visible,.calculator button:focus-visible,.calculator summary:focus-visible { outline:3px solid #95c4d8; outline-offset:3px; }
.calculator input[aria-invalid="true"] { border-color:#a32e27; }
.calculator input[type="range"] { padding:8px 0; border:0; accent-color:var(--blue); background:transparent; }
.calc-cases { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.calc-case { min-width:0; border-top:4px solid var(--blue); }
.calc-case.case-b { border-top-color:#b46a20; }
.calc-case-header { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:24px; }
.calc-case-header h2 { font-size:1.6rem; }
.calc-secondary { font:inherit; background:white; border:1px solid #a6bbc6; color:var(--blue-dark); padding:9px 12px; min-height:44px; cursor:pointer; border-radius:3px; }
.calc-secondary:hover { background:var(--soft); }
.calc-fuel-row { display:grid; grid-template-columns:minmax(0,1fr) 86px 44px; gap:10px; padding-bottom:16px; margin-bottom:16px; border-bottom:1px solid var(--line); align-items:end; }
.calc-remove { padding:0; font-size:1.35rem; }
.calc-bio { grid-column:1 / -1; padding:12px; background:#fbf6ec; }
.calc-bio label { grid-template-columns:minmax(0,1fr) 105px; align-items:center; font-weight:400; }
.calc-bio p { font-size:.8rem; margin:6px 0 0; color:#745126; }
.calc-mix-total { font-size:.85rem; margin:12px 0 24px; }
.calc-gas { margin:20px 0; }
.calc-hybrid { margin-top:24px; padding-top:20px; border-top:1px solid var(--line); }
.calc-hybrid-control { display:grid; grid-template-columns:minmax(0,1fr) 86px; gap:18px; align-items:center; margin-top:8px; }
.calc-hybrid-control label { font-weight:400; }
.calculator details { margin-top:20px; }
.calculator summary { cursor:pointer; font-weight:600; color:var(--blue-dark); padding:8px 0; }
.calc-assumptions { display:grid; grid-template-columns:1fr 1fr; gap:16px; padding-top:12px; }
.calc-assumptions label { font-size:.82rem; font-weight:400; }
.calc-error { padding:16px 20px; border-left:4px solid #a32e27; background:#fff0ed; color:#80251e; margin:0 0 24px; }
.calc-status { min-height:24px; font-size:.9rem; color:var(--muted); margin:0 0 12px; }
.calc-results { scroll-margin-top:95px; }
.calc-result-heading { display:flex; gap:20px; align-items:center; justify-content:space-between; margin:16px 0 24px; }
.calc-summary-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.calc-summary { padding:22px 26px; background:var(--soft); border-left:4px solid var(--blue); }
.calc-summary.case-b { border-left-color:#b46a20; background:#fcf7f0; }
.calc-value { font-size:2.2rem; line-height:1.2; margin:10px 0 4px; font-variant-numeric:tabular-nums; }
.calc-unit { font-size:.9rem; color:var(--muted); }
.calc-summary p:last-child { font-size:.9rem; }
.calc-chart-panel { margin-top:24px; }
#calc-chart { overflow-x:auto; }
.calc-chart { width:100%; min-width:560px; height:auto; display:block; }
.calc-legend { display:flex; flex-wrap:wrap; gap:14px 28px; font-size:.85rem; margin:16px 0; }
.calc-legend span::before { content:""; display:inline-block; vertical-align:middle; width:28px; border-top:3px solid var(--blue); margin-right:8px; }
.calc-legend .legend-b::before { border-top:3px dashed #b46a20; }
.calc-legend .legend-target::before { border-color:#667980; }
.calc-table-wrap { overflow-x:auto; margin-top:18px; }
.calc-table { border-collapse:collapse; width:100%; font-size:.9rem; font-variant-numeric:tabular-nums; }
.calc-table caption { text-align:left; padding:0 0 12px; color:var(--muted); }
.calc-table th,.calc-table td { padding:12px; border-bottom:1px solid var(--line); text-align:right; }
.calc-table th { background:var(--soft); font-weight:600; }
.calc-table th:first-child,.calc-table td:first-child { text-align:left; }
.calc-table .case-b-head { background:#fcf1e1; }
.calc-table small { display:block; color:var(--muted); font-weight:400; white-space:nowrap; }
.calc-table .deficit { color:#9b3428; }
.calc-table .surplus { color:#23634d; }
.calc-year-table { min-width:680px; }
.calc-energy-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:20px; }
.calc-energy { min-width:0; }
.calc-energy .calc-table { font-size:.84rem; }
.calc-energy .calc-table th,.calc-energy .calc-table td { padding:10px 6px; }
.calc-energy .calc-table td:first-child { width:54%; }
.calc-note { padding:16px 20px; background:#fbf6ec; color:#69502d; font-size:.9rem; margin:20px 0; }
.calc-method { line-height:1.7; }
.calc-method h3 { margin-top:20px; }
.calc-method code { font-size:.88em; overflow-wrap:anywhere; }
.calc-method li { margin:8px 0; }
.calc-method-table { min-width:620px; }
.calc-cta { background:var(--blue-dark); color:white; padding:32px; display:flex; align-items:center; justify-content:space-between; gap:30px; }
.calc-cta h2 { color:white; }
.calc-cta p { max-width:650px; color:#deedf3; }
.calc-cta .button { background:white; color:var(--blue-dark); flex-shrink:0; }
.calc-helper { display:flex; align-items:end; gap:12px; max-width:600px; margin-top:12px; }
.calc-helper label { flex:1; }
.calc-helper .button { flex-shrink:0; }
.calc-loading { padding:30px; background:var(--soft); }
@media (max-width:760px) {
  .calc-cases,.calc-context-grid,.calc-energy-grid { grid-template-columns:1fr; }
  .calc-intro { padding:32px 0 20px; }
  .calc-panel { padding:20px 16px; }
  .calc-summary-grid { gap:12px; }
  .calc-summary { padding:16px 12px; }
  .calc-value { font-size:1.8rem; }
  .calc-cta { flex-direction:column; align-items:start; padding:26px 20px; }
  .calc-result-heading { align-items:start; }
  .calc-result-heading h2 { font-size:1.6rem; }
  .calc-helper { flex-direction:column; align-items:stretch; }
}
@media print {
  .site-header,.site-footer,.calc-context,.calc-cases,.calc-cta,.cookie-banner,.contact-dialog,.calc-secondary,.calc-status,.calc-loading { display:none !important; }
  .calculator,.calc-intro { padding:12px 0; }
  .calc-panel { break-inside:avoid; padding:12px; }
  .calc-table-wrap { overflow:visible; }
  .calc-table { min-width:0; font-size:9pt; }
  .calc-summary-grid,.calc-energy-grid { grid-template-columns:1fr 1fr; }
  .calc-chart { max-height:230px; min-width:0; }
  .container { width:100%; }
}
