/* Report: one opening score over photography, then open sections. */
.reading{padding-bottom:var(--space-7)}
#report>:not(.report-hero,.bleed,.report-nav),#emptyReport{width:min(100% - 2*var(--page-gutter),var(--page-width));margin-inline:auto}
#emptyReport{padding-block:var(--section-gap)}
#emptyReport p{margin:0 0 var(--space-6);font-size:var(--text-lead);color:var(--muted)}

/* Opening */
.report-hero{position:relative;isolation:isolate;display:flex;align-items:flex-end;min-height:100dvh;padding:calc(var(--header-height) + var(--space-6)) var(--page-gutter) clamp(2.5rem,6vw,5rem);overflow:clip;background:var(--color-night);view-timeline:--hero block;view-timeline-inset:0;--score-color:var(--color-inverse)}
.report-hero::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#0b16134d,transparent 22%,#0b161366 48%,#0b1613e6)}
.report-hero-media{position:absolute;inset:0;z-index:-1;animation:hero-arrive 1.8s var(--ease-out) both}
.report-hero-media img{width:100%;height:100%;object-fit:cover}
.report-hero-copy{width:100%;max-width:var(--page-width);margin-inline:auto}
.report-hero-copy>*{animation:copy-arrive 1.1s var(--ease-out) both}
.report-hero-copy>:nth-child(2){animation-delay:.14s}
.report-hero-copy>:nth-child(3){animation-delay:.24s}
.report-hero-copy>:nth-child(4){animation-delay:.34s}
@media(prefers-reduced-motion:no-preference){@supports (animation-timeline:view()){.report-hero-media img{animation:hero-drift linear both;animation-timeline:--hero;animation-range:exit 0% exit 100%}}}
.reading-title{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:var(--space-2) var(--space-5);margin-bottom:var(--space-6)}
.reading-eyebrow{display:block;font-size:var(--text-small);font-weight:500}
.report-title{margin:var(--space-1) 0 0;font-size:clamp(1.25rem,2.2vw,1.75rem);font-weight:500;letter-spacing:-.02em;line-height:1.2}
.subtle-link{font-size:var(--text-small);text-decoration:underline;text-underline-offset:4px;opacity:.85;transition:opacity var(--duration-fast) var(--ease-out)}
.subtle-link:hover{opacity:1}
.recommendation-scoreline{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-3) clamp(1.5rem,4vw,3.5rem)}
.score-number{display:flex;align-items:baseline;gap:.4rem}
.score-number strong{font-size:clamp(6rem,19vw,15rem);font-weight:600;letter-spacing:-.06em;line-height:.86;font-variant-numeric:tabular-nums;color:var(--score-color)}
.score-number span{font-size:var(--text-lead);color:var(--muted)}
.recommendation-heading{flex:1 1 20rem;min-width:0;padding-bottom:.4rem}
.recommendation-heading h2{margin:0;font-size:clamp(1.5rem,3.2vw,2.75rem);font-weight:600;letter-spacing:-.03em;line-height:1.08;text-transform:lowercase;text-wrap:balance}
.recommendation-heading h2::first-letter{text-transform:uppercase}
.recommendation-heading>span{display:block;margin-top:var(--space-2);font-size:var(--text-small);color:var(--muted)}
.report-hero .score-meter{color:var(--score-color)}
#recommendationReason{max-width:48ch;margin:0;font-size:var(--text-lead);line-height:1.35;letter-spacing:-.015em;text-wrap:pretty}
.recommendation-high{--score-color:var(--color-accent-bright)}
.recommendation-consider{--score-color:var(--color-sun)}
.recommendation-low{--score-color:#ffb595}

/* Why this score */
.score-detail{padding-block:var(--section-gap) var(--space-7);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-6) clamp(2.5rem,7vw,7rem)}
.reading-conclusion{margin:0;font-size:clamp(1.5rem,3vw,2.5rem);font-weight:500;letter-spacing:-.03em;line-height:1.15;text-wrap:pretty}
.score-reasons{margin:0;padding:0;list-style:none;font-size:var(--text-body);line-height:1.55;color:var(--muted)}
.score-reasons li{padding-block:var(--space-4);border-top:1px solid var(--line)}
.recommendation-rules{margin-top:var(--space-4);border-top:1px solid var(--line);padding-top:var(--space-4)}
.recommendation-rules summary{cursor:pointer;font-weight:500}
.recommendation-rules .score-reasons{margin-top:var(--space-3);font-size:var(--text-small)}
.recommendation-limit{margin:var(--space-5) 0 0;font-size:var(--text-small);color:var(--muted)}

/* Section navigation */
.report-nav{position:sticky;top:var(--header-height);z-index:var(--layer-subnav);display:flex;gap:clamp(1rem,3vw,2.25rem);padding:var(--space-3) max(var(--page-gutter),calc((100% - var(--page-width))/2));overflow-x:auto;scrollbar-width:none;background:#f6f7f4d9;backdrop-filter:blur(20px) saturate(1.5);-webkit-backdrop-filter:blur(20px) saturate(1.5);box-shadow:0 1px 0 #0e1b1712;font-size:var(--text-caption);white-space:nowrap}
.report-nav::-webkit-scrollbar{display:none}
.report-nav a{display:inline-flex;align-items:center;min-height:32px;color:var(--muted);transition:color var(--duration-fast) var(--ease-out)}
.report-nav a:hover{color:var(--ink)}

/* Sections */
.reading-block{padding-block:var(--section-gap);border-top:1px solid var(--line);scroll-margin-top:calc(var(--header-height) + 3.5rem)}
.bleed+.reading-block,.report-nav+.reading-block{border-top:0}
.block-heading{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:var(--space-2) var(--space-5);margin-bottom:var(--space-7)}
.reading-block>.block-heading h2,.reading-block>summary{margin:0;font-size:var(--text-section);font-weight:600;letter-spacing:-.035em;line-height:1.05;text-wrap:balance}
.block-heading>span{font-size:var(--text-small);color:var(--muted)}
.section-number{display:block;margin-bottom:var(--space-2);font-size:var(--text-small);font-weight:500;letter-spacing:0;color:var(--color-accent);font-variant-numeric:tabular-nums}
.reading h3{margin:var(--space-7) 0 var(--space-3);font-size:clamp(1.25rem,2vw,1.625rem);font-weight:600;letter-spacing:-.02em;line-height:1.2}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:var(--space-6) clamp(1.5rem,4vw,3.5rem);margin:0}
.facts>div{min-width:0;padding-top:var(--space-4);border-top:1px solid var(--line)}
.facts dt{margin-bottom:var(--space-2);font-size:var(--text-small);line-height:1.4;color:var(--muted)}
.facts dd{margin:0;font-size:clamp(1.375rem,2.3vw,2rem);font-weight:600;letter-spacing:-.03em;line-height:1.1;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.compact-facts{margin-top:var(--space-5)}
.compact-facts dd{font-size:clamp(1.25rem,2vw,1.625rem)}
.period-dates{display:block;margin-top:var(--space-2);font-size:var(--text-small);color:var(--muted)}
.reading-note{max-width:64ch;margin:var(--space-5) 0 0;font-size:var(--text-small);line-height:1.6;color:var(--muted)}
.reading-note a,.reading-block a:not(.ui-button){color:var(--color-accent);text-decoration:underline;text-underline-offset:3px}
.reading-list{max-width:64ch;margin:0;padding:0;list-style:none;font-size:var(--text-body);color:var(--muted)}
.reading-list li{padding-block:var(--space-3);border-top:1px solid var(--line)}
.reading-footer{margin-block:var(--space-6) 0;font-size:var(--text-caption);color:var(--muted)}
.receipt-subsection{margin-top:var(--space-8)}
.receipt-subsection h3{margin-top:0}
.history-section{margin-top:var(--space-8)}
.history-section .block-heading{margin-bottom:var(--space-3)}
.history-section .block-heading h2{margin:0;font-size:clamp(1.5rem,3vw,2.5rem);font-weight:600;letter-spacing:-.03em}
.reading details{color:var(--ink)}
.reading details>summary{cursor:pointer;font-weight:500}
#historyDetails{margin-top:var(--space-5)}

/* Tables and evidence */
.table-scroll{overflow-x:auto;margin:var(--space-5) 0}
.reading table{width:100%;border-collapse:collapse;font-size:var(--text-small);font-variant-numeric:tabular-nums}
.reading th,.reading td{padding:var(--space-3) var(--space-4) var(--space-3) 0;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}
.reading th{font-size:var(--text-caption);font-weight:500;color:var(--muted)}
.reading caption{padding-bottom:var(--space-3);text-align:left;font-weight:500}
.evidence{display:grid;grid-template-columns:8rem minmax(0,1fr);gap:var(--space-3) var(--space-5);margin-top:var(--space-5);font-size:var(--text-small)}
.evidence dt{color:var(--muted)}
.evidence dd{margin:0;overflow-wrap:anywhere}

/* Reading audit */
.audit-checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,17rem),1fr));gap:0 clamp(1.5rem,4vw,3.5rem);margin:var(--space-5) 0 0;padding:0;list-style:none}
.audit-checks li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-1) var(--space-3);padding-block:var(--space-4);border-top:1px solid var(--line);font-size:var(--text-small);line-height:1.5;color:var(--muted)}
.audit-checks li::before{content:'';grid-row:span 2;width:8px;height:8px;margin-top:.45rem;border-radius:50%;background:var(--color-accent)}
.audit-checks strong{font-weight:500;color:var(--ink)}
.audit-checks .audit-review::before{background:var(--color-warning)}
.audit-checks .audit-missing::before{background:#aeb8b2}

/* Tariffs */
.tariff-help{margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--line)}
.energy-demand,.charge-glossary,.charge-impact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-5) clamp(1.5rem,4vw,3.5rem);margin:var(--space-5) 0}
.energy-demand h3{margin:0 0 var(--space-2);font-size:var(--text-body)}
.energy-demand p,.charge-glossary p,.charge-impact-grid p{margin:0;font-size:var(--text-small);line-height:1.6;color:var(--muted)}
.charge-glossary strong,.charge-impact-grid strong{font-weight:600;color:var(--ink)}
.charge-impact-grid p{display:grid;gap:var(--space-1)}
.solar-charge-guide{margin-block:var(--space-7);padding:clamp(1.5rem,4vw,3rem);border-radius:var(--radius-panel);background:var(--color-soft)}
.solar-charge-guide h3{margin:0 0 var(--space-4)}
.definition-term{position:relative;display:inline-block;text-decoration:underline dotted;text-decoration-color:var(--color-accent);text-decoration-thickness:2px;text-underline-offset:.15em;cursor:help}
.definition-term:hover::after,.definition-term:focus::after{content:attr(data-tooltip);position:absolute;z-index:var(--layer-subnav);left:0;bottom:calc(100% + .6rem);width:min(19rem,72vw);padding:var(--space-3) var(--space-4);border-radius:var(--radius-control);background:var(--color-night);color:var(--color-inverse);font-size:var(--text-small);font-weight:400;letter-spacing:0;line-height:1.5;white-space:normal}

/* Location */
.location-name{max-width:40ch;margin:0 0 var(--space-5);font-size:var(--text-lead);line-height:1.3;letter-spacing:-.015em}
#locationMap{width:100%;height:clamp(20rem,46vw,34rem);border-radius:var(--radius-panel);background:var(--color-soft)}
.map-tools{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3) var(--space-4);margin-bottom:var(--space-5)}
#mapStatus{font-size:var(--text-small);color:var(--muted)}
.coordinate-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-3);margin-top:var(--space-5)}
.coordinate-form label{display:grid;gap:var(--space-1);font-size:var(--text-small)}
.coordinate-form .ui-input{width:11rem}
.leaflet-container{z-index:var(--layer-content);font-family:var(--font);color:var(--color-ink)}
.leaflet-bar a{color:var(--color-ink)!important}
.leaflet-control-attribution a{color:var(--color-accent)!important}

@media(max-width:760px){
.report-hero{min-height:100dvh}
.score-detail{grid-template-columns:minmax(0,1fr)}
.energy-demand,.charge-glossary,.charge-impact-grid{grid-template-columns:minmax(0,1fr)}
.evidence{grid-template-columns:6rem minmax(0,1fr)}
.coordinate-form{display:grid;grid-template-columns:1fr 1fr}
.coordinate-form .ui-input{width:100%}
.coordinate-form .ui-button{grid-column:1/-1;justify-self:start}
.history-section .block-heading,.block-heading{margin-bottom:var(--space-5)}
}
