/* Compact workspace; original palette, type, and paper surfaces. */
.dashboard [hidden] { display: none !important; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.dashboard button,.dashboard input { font:inherit; }
.dashboard button { cursor:pointer; }
.dashboard button:disabled { cursor:wait; opacity:.6; }
.dashboard :focus-visible { outline:3px solid var(--red-deep); outline-offset:4px; }
.dash-header { max-width:1120px; width:calc(100% - 48px); margin:auto; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:17px 0; border-bottom:2px solid var(--ink); }
.dashboard .brand-copy small { font-size:.75rem; letter-spacing:.07em; }
.header-actions { display:flex; align-items:center; gap:24px; font-size:.875rem; font-weight:700; }
.header-actions a { text-underline-offset:4px; }
.header-actions button { border:1px solid var(--ink); border-radius:6px; padding:7px 14px; background:var(--paper); color:var(--ink); }
.dash-main { width:min(1120px,calc(100% - 48px)); margin:30px auto 54px; }
.location-topline { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:18px; }
.dashboard .dash-kicker { margin:0 0 5px; color:var(--red-deep); font-size:.875rem; font-weight:800; text-transform:uppercase; letter-spacing:.12em; }
.dashboard h1 { margin:0; font:700 clamp(1.75rem,3.5vw,2.6rem)/1.12 Georgia,serif; letter-spacing:-.025em; }
.dashboard .muted { margin:7px 0 0; font-size:.875rem; color:#46616a; }
.location-form { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; margin-bottom:12px; }
.dashboard .search-control { position:relative; }
.dashboard input[type=search] { width:100%; min-width:0; height:48px; padding:10px 16px; border:2px solid var(--ink); border-radius:8px; color:var(--ink); background:var(--paper); box-shadow:none; }
.device-button { padding:8px 16px; background:var(--paper); border:2px solid var(--ink); border-radius:8px; color:var(--ink); font-weight:700 !important; }
.device-button span { margin-right:6px; font-size:1.25rem; }
.dash-suggestions { position:absolute; z-index:40; top:calc(100% + 5px); width:100%; max-height:290px; overflow:auto; background:var(--paper); border:2px solid var(--ink); border-radius:8px; box-shadow:4px 5px 0 var(--line); }
.dash-suggestions button { display:block; width:100%; text-align:left; padding:12px 15px; color:var(--ink); background:transparent; border:0; border-bottom:1px solid var(--line); }
.dash-suggestions button:hover,.dash-suggestions button[aria-selected=true] { background:var(--blue-light); }
.dash-suggestions strong,.dash-suggestions small { display:block; }
.dash-suggestions small { font-size:.875rem; }
.dash-status { margin:9px 0 14px; font-size:.875rem; min-height:1.3em; color:#46616a; }
.dash-status.error,.chart-status.error { color:var(--red-deep); }
.totals-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.total-card { position:relative; border:2px solid var(--ink); border-radius:11px; padding:22px 25px 19px; background:var(--paper); box-shadow:5px 5px 0 var(--line); overflow:hidden; }
.total-card::before { content:''; position:absolute; height:5px; top:0; left:0; right:0; background:var(--red); }
.day-card::before { background:var(--blue); }.week-card::before { background:var(--mustard); }
.dashboard .total-card h2 { font:700 1rem/1.3 'Trebuchet MS',sans-serif; margin:0 0 13px; letter-spacing:0; }
.stat-number { display:flex; align-items:baseline; gap:7px; font-family:Georgia,serif; font-size:clamp(2.4rem,5vw,3.6rem); font-weight:700; line-height:1; font-variant-numeric:tabular-nums; letter-spacing:-.035em; }
.stat-number .unit { font-size:1rem; font-family:'Trebuchet MS',sans-serif; font-weight:400; letter-spacing:0; }
.total-card p { margin:15px 0 0; font-size:.875rem; color:#46616a; }
.reading-meta { display:flex; flex-wrap:wrap; justify-content:space-between; gap:6px 20px; margin:18px 0 8px; font-size:.875rem; }
.reading-meta p { margin:0; color:#46616a; }.reading-meta a { font-weight:700; text-underline-offset:4px; }
.source-details { font-size:.875rem; color:#46616a; }.source-details summary { cursor:pointer; padding:7px 0; width:fit-content; }.source-details p { max-width:900px; line-height:1.6; }
.chart-panel { margin-top:26px; background:var(--paper); border:2px solid var(--ink); border-radius:12px; padding:26px 30px; box-shadow:5px 5px 0 var(--line); }
#report-details { content-visibility:auto; contain-intrinsic-size:auto 900px; }
.panel-heading { display:flex; align-items:center; justify-content:space-between; gap:18px; }
.dashboard .panel-heading h2 { margin:0; font:700 clamp(1.45rem,3vw,1.9rem)/1.2 Georgia,serif; letter-spacing:-.02em; }
.year-stamp { padding:6px 12px; border:1px solid var(--ink); background:var(--cream); border-radius:5px; font-size:.875rem; font-weight:800; }
.comparison-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:24px; padding-bottom:20px; border-bottom:1px solid var(--line); gap:18px; }
.comparison-stats div+div { border-left:1px solid var(--line); padding-left:24px; }
.comparison-stats span { display:block; color:#46616a; font-size:.875rem; margin-bottom:6px; }
.comparison-stats strong { font:700 clamp(1.3rem,2.4vw,1.8rem)/1.2 Georgia,serif; font-variant-numeric:tabular-nums; }
.chart-legend { display:flex; flex-wrap:wrap; gap:12px 24px; font-size:.875rem; margin:22px 0 0; }.chart-legend span { display:inline-flex; align-items:center; gap:8px; }.chart-legend i { width:28px; border-top:3px solid var(--blue); display:inline-block; }.chart-legend .normal-key { border-top-color:var(--red-deep); border-top-style:dashed; }
.chart-status { margin:22px 0; min-height:110px; display:flex; align-items:center; color:#46616a; }
.line-chart { margin-top:14px; }.line-chart svg { display:block; width:100%; height:auto; overflow:visible; }.line-chart text { font-family:'Trebuchet MS',sans-serif; fill:#46616a; font-size:15px; }
.line-chart .plot-grid { stroke:#173f4f; stroke-opacity:.13; }.line-chart .actual-line { fill:none; stroke:var(--blue); stroke-width:3; stroke-linejoin:round; stroke-linecap:round; vector-effect:non-scaling-stroke; }.line-chart .normal-line { fill:none; stroke:var(--red-deep); stroke-width:2.5; stroke-dasharray:7 5; vector-effect:non-scaling-stroke; }.line-chart .plot-fill { fill:var(--blue-light); opacity:.32; }
.chart-footnote { font-size:.875rem; line-height:1.6; color:#46616a; margin-bottom:0; }.chart-inspection { min-height:1.5em; font-size:.875rem; margin:7px 0; font-variant-numeric:tabular-nums; }
.chart-date-control { display:flex; align-items:center; gap:18px; margin:10px 0 16px; font-size:.875rem; }.chart-date-control input { flex:1; min-width:0; accent-color:var(--blue); }
.text-button { padding:8px 0; border:0; background:transparent; color:var(--ink); font-size:.875rem !important; font-weight:700 !important; text-decoration:underline; text-underline-offset:4px; }
.history-panel { scroll-margin-top:20px; }.history-form { display:grid; grid-template-columns:1fr 1fr auto; gap:14px; align-items:end; margin-top:24px; }.history-form label { display:block; font-size:.875rem; font-weight:700; margin-bottom:6px; }.history-form input { width:100%; min-width:0; height:46px; border:1px solid var(--ink); border-radius:6px; padding:8px 12px; color:var(--ink); background:var(--white); }
.primary-button { min-height:46px; padding:10px 20px; border:2px solid var(--ink); border-radius:6px; background:var(--red-deep); color:var(--white); font-weight:700 !important; box-shadow:3px 3px 0 var(--mustard); }.primary-button:hover { background:var(--ink); }
.history-reading { display:flex; align-items:baseline; gap:16px; flex-wrap:wrap; margin:24px 0 0; }.history-reading strong { font:700 2rem Georgia,serif; }.history-reading span { color:#46616a; font-size:.875rem; }
.table-scroll { overflow:auto; max-height:320px; }.dashboard table { width:100%; border-collapse:collapse; text-align:left; font-size:.875rem; }.dashboard th,.dashboard td { padding:9px 12px; border-bottom:1px solid var(--line); }.dashboard caption { text-align:left; padding:12px; }
.dashboard footer.dash-footer { display:flex; flex-wrap:wrap; justify-content:center; gap:18px 35px; padding:25px 24px; }.dashboard .dash-footer nav { display:flex; font-size:.875rem; }.dashboard .dash-footer p { width:100%; text-align:center; font:400 .875rem 'Trebuchet MS',sans-serif; color:#dbd9ca; }
@media(max-width:640px) {
 .dash-header,.dash-main { width:calc(100% - 28px); }.dash-header { padding:12px 0; gap:10px; }.dash-header .brand { gap:8px; }.dash-header .brand-copy small { font-size:.75rem; letter-spacing:0; }.header-actions { gap:10px; }.header-actions a:not(.language-link) { display:none; }.header-actions .language-link { display:inline; font-size:.72rem; }.header-actions button { padding:7px 10px; font-size:.875rem; }.dash-main { margin-top:22px; }
 .location-topline { align-items:start; }.location-topline .text-button { max-width:75px; text-align:right; }.location-form { grid-template-columns:1fr; gap:9px; }.device-button { min-height:42px; padding:7px 12px; }.totals-grid { gap:9px; }.total-card { padding:16px 10px 12px; border-radius:7px; box-shadow:3px 3px 0 var(--line); }.dashboard .total-card h2 { min-height:2.5em; margin-bottom:8px; font-size:.875rem; }.stat-number { flex-wrap:wrap; gap:2px 4px; font-size:clamp(1.55rem,6.7vw,2.5rem); }.stat-number .unit { font-size:.875rem; }.total-card p { font-size:.875rem; margin-top:11px; line-height:1.35; }.reading-meta { margin-top:15px; }
 .chart-panel { padding:20px 15px; margin-top:22px; }.comparison-stats { gap:9px; }.comparison-stats div+div { padding-left:10px; }.comparison-stats strong { font-size:1.2rem; }.history-form { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:12px; }.history-form .primary-button { grid-column:1/-1; }.history-form input { padding:7px; }.chart-date-control { flex-wrap:wrap; gap:6px; }.chart-date-control input { flex-basis:100%; }
}
@media(max-width:340px) { .totals-grid { grid-template-columns:1fr; }.dashboard .total-card h2 { min-height:0; } }

.report-links { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 12px 24px; padding-left: 20px; line-height: 1.7; }

/* Original animated hero, scaled into the location heading. */
.location-identity { display:flex; align-items:center; gap:20px; min-width:0; flex:1; }
.location-copy { min-width:0; }
.location-art { position:relative; width:116px; height:104px; flex:0 0 116px; pointer-events:none; }
.location-art .weather-illustration { position:absolute; width:440px; height:410px; min-height:0; margin:0; top:0; left:0; transform:scale(.25); transform-origin:top left; }
.location-art .sunburst { right:8%; width:280px; height:280px; }
.location-art .cloud-front { left:24px; }
.location-art .gauge { right:40px; }
.location-art .burst-label { display:none; }
@media(max-width:640px) {
 .location-identity { gap:10px; }
 .location-art { width:76px; height:72px; flex-basis:76px; }
 .location-art .weather-illustration { transform:scale(.17); }
 .location-topline .text-button { flex-shrink:0; }
}
@media(max-width:380px) {
 .location-topline { flex-wrap:wrap; gap:6px; }
 .location-topline .text-button { margin-left:auto; max-width:none; }
}
