.heat-app{max-width:1480px;margin:24px auto;padding:0 24px 40px;color:#182b42}.heat-app *{box-sizing:border-box}.heat-app .hero{position:relative}.badge{display:inline-block;background:#ffffff20;border:1px solid #ffffff40;padding:5px 12px;border-radius:20px;font-size:12px;margin-top:12px}.toolbar{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin:18px 0}.heat-app button,.file-button{font:inherit;font-size:13px;font-weight:600;border:1px solid #c9d7e6;background:white;color:#203e63;padding:9px 13px;border-radius:8px;cursor:pointer}.heat-app button:hover,.file-button:hover{background:#edf4fc;border-color:#6f98c6}.heat-app button:focus-visible,.heat-app input:focus-visible,.heat-app select:focus-visible,summary:focus-visible{outline:3px solid #61a5ee;outline-offset:2px}.heat-app button:disabled{opacity:.5;cursor:not-allowed}.heat-app button.danger{color:#ad2536}.quiet{background:#f7f9fc!important}.file-button input{display:none}#saveStatus{font-size:12px;color:#5f7086;margin-left:auto}.heat-app .card{padding:22px;margin:0 0 18px;border-radius:14px}.heat-app h2{font-size:19px;margin:0 0 16px}.heat-app h3{font-size:16px;margin:20px 0 10px}.fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}.field{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#4c6078;min-width:0}.field input,.field select{font:inherit;font-size:14px;color:#172f4d;width:100%;padding:9px;border:1px solid #cbd6e3;border-radius:7px;background:#fff;min-width:0}.field input:invalid{border-color:#b91c1c}.hint{font-size:12px;line-height:1.6;color:#63748a;margin:10px 0 0}.workbench{display:grid;grid-template-columns:245px minmax(0,1fr);gap:18px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.section-heading h2{margin:0}.section-heading .hint{margin:0}.actions{display:flex;gap:7px}.rooms-panel{align-self:start;position:sticky;top:12px}.room-button{display:block;text-align:left;width:100%;margin:7px 0;overflow-wrap:anywhere}.room-button small{display:block;margin-top:4px;color:#63748a;font-weight:400}.room-button.active{background:#eaf3ff;border-color:#78a7dc;box-shadow:inset 3px 0 #2869b2}.tabs{display:flex;gap:4px;margin:22px 0 18px;border-bottom:1px solid #e3e9f0;flex-wrap:wrap}.heat-app .tabs button{border:0;border-radius:6px 6px 0 0;padding:11px 12px;background:transparent;font-size:12px}.tabs [aria-selected=true]{background:#eaf3ff!important;box-shadow:inset 0 -3px #2869b2}.source-row{background:#f8fafc;border:1px solid #e1e8f1;border-radius:9px;padding:14px;margin:12px 0}.row-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;font-size:13px;font-weight:600}.row-heading button{font-size:11px;padding:4px 9px}.source-row .fields{grid-template-columns:repeat(auto-fit,minmax(135px,1fr))}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 18px}.metric{padding:19px 20px;background:#fff;border:1px solid #dde7f1;border-radius:12px}.metric.primary{background:#173d66;color:white;border-color:#173d66}.metric span{font-size:12px;display:block;opacity:.85}.metric strong{font-size:28px;display:block;letter-spacing:-.7px;margin:9px 0}.metric small{font-size:11px;opacity:.8}.balance{margin-top:24px;padding-top:20px;border-top:1px solid #e1e8ef}.balance-head{display:flex;gap:20px;flex-wrap:wrap}.balance-head strong{font-size:24px;display:block}.balance-head span{font-size:12px;color:#61758c}.heat-app table{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}.heat-app th{background:#edf3fa;text-align:left;color:#405671;font-weight:600}.heat-app th,.heat-app td{padding:10px;border-bottom:1px solid #e3e9f1}.heat-app td.num{text-align:right;font-variant-numeric:tabular-nums}.heat-app tr.peak-row{background:#eff8f4}.table-wrap{overflow:auto;margin-top:14px;max-width:100%}.chart-legend{display:flex;gap:22px;font-size:12px;flex-wrap:wrap}.chart-legend span:before{content:'';display:inline-block;width:15px;height:4px;background:#2869b2;margin-right:6px;vertical-align:middle}.chart-legend span:last-child:before{background:#de9225}.chart-svg{width:100%;height:220px;display:block}.chart-svg text{font:11px system-ui;fill:#64758a}.heat-app details{border-top:1px solid #e1e8ef;margin-top:14px;padding-top:14px}.heat-app summary{cursor:pointer;font-size:14px;font-weight:600}.methodology p{font-size:13px;line-height:1.65}.heat-app a{color:#216bb9}.heat-app footer{font-size:12px;color:#64748b;text-align:center;margin-top:22px}#notice:empty{display:none}#notice,#error{padding:14px 18px;border-radius:9px;margin:12px 0;background:#fff5dc;color:#78570e;font-size:13px}#error{background:#fff0f0;color:#972836}.empty{padding:18px;background:#f6f9fc;border:1px dashed #bccddd;border-radius:9px;font-size:13px;color:#63748a}#printDetails{display:none}.warnings{font-size:12px;color:#966309;background:#fff8e9;padding:10px;border-radius:7px;margin-top:12px}
.heat-app .hero .tvik-logo{color:white}.file-button{position:relative}.file-button input{display:block;position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}.file-button:focus-within{outline:3px solid #61a5ee;outline-offset:2px}
/* Keep controls on the same baseline even when labels wrap. */
.field{justify-content:flex-end}.field>span{line-height:17px;min-height:34px;display:flex;align-items:flex-end}.field input,.field select{height:42px;flex-shrink:0;margin-top:auto}
.source-row .window-fields{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.window-options{margin-top:22px;border-top:1px solid #dae4ee}.window-option{padding:16px 0;border-bottom:1px solid #dae4ee}.window-option:last-child{border-bottom:0;padding-bottom:0}
.option-toggle{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600;color:#294564;cursor:pointer}.option-toggle input{appearance:auto;width:18px;height:18px;accent-color:#2869b2;flex:0 0 18px;margin:0}.option-off{font-size:12px;color:#728197;margin:6px 0 0 28px}.option-body{margin-top:14px}.source-row .option-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;max-width:680px}.shade-method{max-width:680px;margin-bottom:16px}.window-row .hint{max-width:740px}
@media(max-width:1050px){.source-row .window-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1050px){.workbench{grid-template-columns:200px minmax(0,1fr)}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.heat-app{padding:0 14px}}
@media(max-width:700px){.workbench{display:block}.rooms-panel{position:static}.heat-app{margin-top:12px;padding:0 10px}.heat-app .card{padding:16px}.heat-app .hero{padding:22px 18px}.heat-app h1{font-size:28px}.metrics{gap:8px}.metric{padding:14px}.metric strong{font-size:23px}.fields{grid-template-columns:repeat(2,minmax(0,1fr))}.section-heading{flex-wrap:wrap}.actions button{font-size:12px;padding:7px}.toolbar{gap:6px}.toolbar button,.file-button{font-size:12px}#saveStatus{width:100%;margin:0}.chart-svg{height:170px}.heat-app .tabs button{padding:10px 8px}.room-button{display:inline-block;width:auto;min-width:130px;margin:4px}.source-row .fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media print{@page{size:A4 landscape;margin:12mm}.heat-app{max-width:none;margin:0;padding:0}.toolbar,.workbench,.project-card,#notice,#error,#saveStatus,footer,.badge{display:none!important}.hero{background:white!important;color:#15395f!important;padding:0!important;box-shadow:none!important}.hero h1{font-size:23px}.hero .lead{font-size:12px}.hero .tvik-logo{color:#15395f!important}.heat-app .card{box-shadow:none;padding:10px 0;border:0;margin:10px 0}.metric{padding:10px;border:1px solid #999!important;background:white!important;color:#182b42!important}.metrics{grid-template-columns:repeat(4,1fr);margin-top:15px}.metric strong{font-size:20px}.table-wrap{overflow:visible}.heat-app table{white-space:normal;font-size:10px}.heat-app th,.heat-app td{padding:6px}.heat-app tr{break-inside:avoid}.heat-app h2{break-after:avoid;font-size:16px}.heat-app details{display:block}.heat-app details>p{display:block!important}.heat-app summary{font-size:12px}#printDetails{display:block;page-break-before:always}#printDetails .room-print{break-before:page}.chart-svg{height:150px}.methodology{break-before:page}.sources{overflow-wrap:anywhere}}
