.thermal-calculator{gap:var(--space-6);display:grid}.thermal-card,.thermal-results,.thermal-note{border:1px solid var(--color-border);border-radius:var(--radius-medium);background:var(--color-surface)}.thermal-card,.thermal-results{padding:clamp(var(--space-4), 4vw, var(--space-8))}.thermal-card fieldset{border:0;min-width:0;margin:0;padding:0}.thermal-card legend,.thermal-section-title{margin-bottom:var(--space-4);padding:0;font-size:clamp(1.15rem,3vw,1.45rem);font-weight:800;line-height:1.25}.thermal-kicker{margin-bottom:var(--space-1);color:var(--color-primary);letter-spacing:.08em;text-transform:uppercase;font-size:.75rem;font-weight:800}.mode-switch,.scope-switch{gap:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-medium);padding:var(--space-2);background:var(--color-surface);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.mode-switch label,.scope-switch label{cursor:pointer}.mode-switch input,.scope-switch input{opacity:0;pointer-events:none;position:absolute}.mode-switch span,.scope-switch span{border-radius:var(--radius-small);min-height:3rem;padding:var(--space-2) var(--space-3);color:var(--color-muted);text-align:center;justify-content:center;align-items:center;font-weight:700;display:flex}.mode-switch input:checked+span,.scope-switch input:checked+span{background:var(--color-text);color:var(--color-surface)}.mode-switch input:focus-visible+span,.scope-switch input:focus-visible+span{outline:3px solid color-mix(in srgb, var(--color-primary) 45%, transparent);outline-offset:2px}.thermal-grid{gap:var(--space-4);display:grid}.thermal-grid+.thermal-grid,.thermal-card+.thermal-card{margin-top:var(--space-6)}.thermal-field label,.thermal-field__label{margin-bottom:var(--space-2);font-weight:700;display:block}.field-optional{color:var(--color-muted);font-size:.8em;font-weight:500}.thermal-field input,.thermal-field select{border:1px solid var(--color-border);border-radius:var(--radius-small);width:100%;min-height:3rem;padding:var(--space-3);background:var(--color-surface);color:var(--color-text);font:inherit}.thermal-field input:focus,.thermal-field select:focus,.thermal-button:focus-visible,.layer-action:focus-visible{border-color:var(--color-primary);outline:3px solid color-mix(in srgb, var(--color-primary) 24%, transparent);outline-offset:2px}.thermal-field input[aria-invalid=true],.thermal-field select[aria-invalid=true]{border-color:var(--color-danger)}.thermal-combobox{position:relative}.thermal-combobox__options{z-index:10;border:1px solid var(--color-border);border-radius:var(--radius-small);max-height:18rem;padding:var(--space-1);background:var(--color-surface);margin:0;list-style:none;position:absolute;top:calc(100% - 4.1rem);left:0;right:0;overflow-y:auto;box-shadow:0 12px 26px #00000024}.thermal-combobox__option{cursor:pointer;border-radius:calc(var(--radius-small) / 2);padding:var(--space-2)}.thermal-combobox__option:hover,.thermal-combobox__option[aria-selected=true]{background:var(--color-background)}.thermal-link-button{margin-top:var(--space-2);color:var(--color-primary);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-size:.875rem;text-decoration:underline}.thermal-link-button:focus-visible{outline:3px solid color-mix(in srgb, var(--color-primary) 24%, transparent);outline-offset:2px}.input-unit{border:1px solid var(--color-border);border-radius:var(--radius-small);grid-template-columns:minmax(0,1fr) auto;display:grid;overflow:hidden}.input-unit input{border:0;border-radius:0;min-width:0}.input-unit span{border-left:1px solid var(--color-border);min-width:3.75rem;padding-inline:var(--space-2);background:var(--color-background);color:var(--color-muted);white-space:nowrap;justify-content:center;align-items:center;font-size:.8rem;display:flex}.field-error{min-height:1.2rem;margin:var(--space-1) 0 0;color:var(--color-danger);font-size:.8rem}.field-hint{margin:var(--space-2) 0 0;color:var(--color-muted);font-size:.875rem}.inline-result{gap:var(--space-3);margin-top:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.inline-result div{border-radius:var(--radius-small);padding:var(--space-3);background:var(--color-background)}.inline-result span{color:var(--color-muted);font-size:.8rem;display:block}.inline-result strong{margin-top:var(--space-1);display:block}.layers-heading{justify-content:space-between;align-items:end;gap:var(--space-4);margin-bottom:var(--space-4);display:flex}.layers-heading p{color:var(--color-muted);margin:0}.layer-list{gap:var(--space-4);display:grid}.layer-card{border:1px solid var(--color-border);border-radius:var(--radius-medium);min-width:0;padding:var(--space-4);background:var(--color-background)}.layer-card__heading{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.layer-card__heading strong{font-size:1.05rem}.layer-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.layer-action,.thermal-button{border:1px solid var(--color-primary);border-radius:var(--radius-small);min-height:2.5rem;padding:var(--space-2) var(--space-3);background:var(--color-surface);color:var(--color-primary);font:inherit;cursor:pointer;font-weight:700}.layer-action[data-remove-layer]{border-color:var(--color-danger);color:var(--color-danger)}.layer-action:disabled{cursor:not-allowed;opacity:.45}.target-option{align-items:flex-start;gap:var(--space-2);margin-top:var(--space-4);font-weight:700;display:flex}.target-option input{width:1.1rem;height:1.1rem;margin-top:.2rem}.thermal-button--primary{background:var(--color-primary);width:100%;color:var(--color-on-primary);border:0}.thermal-button--primary:hover{background:var(--color-primary-hover)}.error-summary{border:1px solid color-mix(in srgb, var(--color-danger) 45%, var(--color-border));border-left:4px solid var(--color-danger);border-radius:var(--radius-small);padding:var(--space-4);background:var(--color-danger-surface);color:var(--color-danger-text)}.error-summary p,.error-summary ul{margin-bottom:0}.thermal-results{gap:var(--space-6);display:grid}.thermal-primary-result{border-radius:var(--radius-medium);padding:clamp(var(--space-4), 4vw, var(--space-6));background:var(--color-primary);color:var(--color-on-primary)}.thermal-primary-result span{font-size:.85rem;display:block}.thermal-primary-result strong{margin-top:var(--space-2);font-size:clamp(2.25rem,8vw,3.5rem);line-height:1.1;display:block}.thermal-primary-result small{margin-left:var(--space-2);white-space:nowrap;font-size:.42em;font-weight:650}.thermal-result-grid{gap:var(--space-3);display:grid}.thermal-result-item{border-bottom:1px solid var(--color-border);padding-block:var(--space-3)}.thermal-result-item dt{color:var(--color-muted)}.thermal-result-item dd{margin:var(--space-1) 0 0;font-size:1.05rem;font-weight:800}.status-panel,.thermal-note{padding:var(--space-4)}.status-panel{border-left:4px solid var(--color-primary);background:color-mix(in srgb, var(--color-primary) 8%, var(--color-surface))}.status-panel[data-tone=warning]{border-left-color:var(--color-warning-border);background:var(--color-warning-surface)}.status-panel p:last-child,.thermal-note p:last-child{margin-bottom:0}.layer-results{gap:var(--space-3);display:grid}.layer-result-card{border:1px solid var(--color-border);border-radius:var(--radius-small);padding:var(--space-4)}.layer-result-card dl{gap:var(--space-3);margin:var(--space-3) 0 0;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.layer-result-card dt{color:var(--color-muted);font-size:.8rem}.layer-result-card dd{margin:0;font-weight:700}.temperature-chart{border:1px solid var(--color-border);border-radius:var(--radius-medium);padding:var(--space-3);background:var(--color-background);overflow:hidden}.temperature-chart svg{width:100%;height:auto;display:block}.source-list{gap:var(--space-2);margin:0;display:grid}.source-list div{gap:var(--space-3);grid-template-columns:minmax(8rem,.4fr) minmax(0,1fr);display:grid}.source-list dt{color:var(--color-muted)}.source-list dd{overflow-wrap:anywhere;margin:0}.building-calculator,.building-calculator form,.building-editor-list,.building-surface-results{gap:var(--space-6);display:grid}.project-toolbar{gap:var(--space-4);display:grid}.project-toolbar__actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.project-toolbar__status{color:var(--color-muted);margin:0;font-weight:700}.project-toolbar__status[data-status=DIRTY],.project-toolbar__status[data-status=SAVING]{color:var(--color-warning)}.project-toolbar__status[data-status=ERROR],.project-toolbar__status[data-status=CONFLICT]{color:var(--color-danger)}.project-dialog{border:1px solid var(--color-border);border-radius:var(--radius-medium);background:var(--color-surface);width:min(42rem,100vw - 2rem);max-height:min(42rem,100vh - 2rem);color:var(--color-text);padding:0}.project-dialog::backdrop{background:#040c149e}.project-dialog__content{gap:var(--space-4);padding:var(--space-6);display:grid}.project-list{gap:var(--space-2);display:grid}.project-list__item{justify-content:space-between;align-items:center;gap:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-small);width:100%;padding:var(--space-3);background:var(--color-background);color:var(--color-text);font:inherit;text-align:left;cursor:pointer;display:flex}.project-list__item:hover,.project-list__item:focus-visible{border-color:var(--color-primary)}.project-list__item span{color:var(--color-muted);font-size:.85rem}.building-intro{gap:var(--space-6);display:grid}.building-intro p:last-child{color:var(--color-muted);margin-bottom:0}.building-editor-section .field-hint+.building-editor-list{margin-top:var(--space-4)}.building-editor-card,.building-surface-result,.building-secondary-result{border:1px solid var(--color-border);border-radius:var(--radius-medium);padding:var(--space-4);background:var(--color-background)}.building-editor-card__heading{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.building-total-grid{gap:var(--space-4);display:grid}.building-secondary-result{flex-direction:column;justify-content:center;display:flex}.building-secondary-result span,.thermal-primary-result small{color:inherit;opacity:.8}.building-total-grid .thermal-primary-result>strong>span{display:inline}.building-total-grid .thermal-primary-result small{margin-top:var(--space-2);display:block}.building-secondary-result strong{margin-top:var(--space-2);font-size:clamp(1.35rem,4vw,2rem)}.building-result-table-wrap{overflow-x:auto}.building-result-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.building-result-table th,.building-result-table td{border-bottom:1px solid var(--color-border);padding:var(--space-3);text-align:left;white-space:nowrap}.building-result-table th{color:var(--color-muted);font-size:.8rem}.building-surface-result{gap:var(--space-1);display:grid}.building-surface-result span,.building-surface-result small{color:var(--color-muted)}[hidden]{display:none!important}.material-directory-dialog{border:1px solid var(--color-border);border-radius:var(--radius-large);background:var(--color-surface);width:min(78rem,100vw - 2rem);max-height:min(90vh,56rem);color:var(--color-text);padding:0}.material-directory-dialog::backdrop{background:#040c14ad}.material-directory-dialog__content{gap:var(--space-4);padding:var(--space-6);display:grid}.material-directory-dialog__header,.material-directory-dialog__actions{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.material-directory-dialog__table-wrap{border:1px solid var(--color-border);border-radius:var(--radius-small);max-height:42vh;overflow:auto}.material-directory-table{border-collapse:collapse;width:100%;font-size:.9rem}.material-directory-table th,.material-directory-table td{border-bottom:1px solid var(--color-border);padding:var(--space-3);text-align:left;vertical-align:top}.material-directory-table th{background:var(--color-table);color:var(--color-text);position:sticky;top:0}.material-directory-table tr{cursor:pointer}.material-directory-table tr:hover,.material-directory-table tr[aria-selected=true]{background:var(--color-surface-secondary);outline:2px solid var(--color-primary);outline-offset:-2px}.material-directory-table small{color:var(--color-muted);margin-top:.2rem;display:block}.insulation-controls{margin-top:var(--space-3);align-items:end}@media (width<=42rem){.material-directory-dialog{width:calc(100vw - 1rem);max-height:calc(100vh - 1rem)}.material-directory-dialog__content{padding:var(--space-4)}.material-directory-dialog__table-wrap{max-height:55vh}}@media (width>=42rem){.thermal-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.thermal-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.thermal-result-grid,.building-intro,.building-total-grid,.project-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}.project-toolbar__actions,.project-toolbar__status,.project-toolbar>.thermal-link-button,.project-toolbar>.status-panel{grid-column:1/-1}}@media (width>=64rem){.thermal-calculator__workspace{align-items:start;gap:var(--space-6);grid-template-columns:minmax(0,1.08fr) minmax(22rem,.92fr);display:grid}.thermal-results{top:var(--space-4);position:sticky}}@media (width<=30rem){.mode-switch,.scope-switch{grid-template-columns:1fr}.layers-heading,.layer-card__heading{flex-direction:column;align-items:stretch}.layer-actions .layer-action{flex:1}.inline-result,.layer-result-card dl,.source-list div{grid-template-columns:1fr}}
