.report-shell { padding-top: 26px; }
.report-heading { display:flex; align-items:end; justify-content:space-between; gap:22px; margin-bottom:20px; }
.report-heading h1 { font-size:clamp(2rem,4vw,3rem); letter-spacing:-.04em; margin:8px 0 4px; }
.report-heading p { margin:3px 0; color:var(--muted); }
.report-heading .as-of { color:var(--green); font-weight:700; }
.back { color:var(--brand-ink); font-weight:700; text-underline-offset:3px; }
.report-actions { display:flex; gap:8px; }
.report-actions button { min-height:44px; border:1px solid var(--line); border-radius:5px; background:var(--paper); color:var(--ink); padding:8px 16px; font-weight:700; white-space:nowrap; transition:background-color 140ms ease, border-color 140ms ease, transform 100ms ease; }
.report-actions button:active { transform:scale(0.98); }
.report-shell button:focus-visible,.report-shell a:focus-visible,.report-shell [tabindex]:focus-visible { outline:3px solid var(--focus); outline-offset:2px; }
.date-selector-bar { background:var(--paper); border:1px solid var(--line); border-radius:8px; padding:12px 16px; margin-bottom:20px; }
.date-selector-inner { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.date-selector-label { font-weight:700; font-size:.9rem; color:var(--muted); white-space:nowrap; }
.date-selector-tabs { display:flex; gap:8px; flex-wrap:wrap; }
.date-tab { background:transparent; border:1px solid var(--line); border-radius:6px; padding:6px 14px; font-weight:600; font-size:.9rem; color:var(--ink); cursor:pointer; transition:background-color 140ms ease, color 140ms ease, border-color 140ms ease; }
.date-tab:hover { background:var(--line); }
.date-tab.is-active { background:var(--brand-ink, #272721); color:#ffffff; border-color:var(--brand-ink, #272721); }
.day-empty-notice { background:var(--amberbg, #fbece5); border:1px solid var(--amber, #873e22); border-radius:8px; padding:14px 18px; margin-bottom:20px; color:var(--amber, #873e22); font-weight:600; font-size:.92rem; }
.day-empty-notice[hidden] { display:none !important; }
.kpi-subline { font-size:.88rem; color:var(--muted); margin-top:6px; font-weight:600; white-space:normal; overflow-wrap:anywhere; }
.kpi-subline strong, .main-kpi .kpi-subline strong { font-size:inherit; color:var(--ink); font-weight:700; }
.dispatch { display:grid; grid-template-columns:minmax(0,1.8fr) repeat(3,minmax(0,1fr)); background:var(--paper); border:1px solid var(--line); border-radius:8px; margin-bottom:20px; }
.dispatch > div { min-width:0; padding:16px 20px; border-right:1px solid var(--line); }
.dispatch > div:last-child { border:0; }
.dispatch span { display:block; color:var(--muted); font-size:.88rem; font-weight:700; }
.dispatch strong { font-variant-numeric:tabular-nums; }
.main-kpi div { font-size:1.1rem; white-space:nowrap; }
.main-kpi strong { font-size:clamp(2.6rem,5vw,4rem); letter-spacing:-.04em; color:var(--ink); }
.minor-kpi strong { display:block; font-size:1.45rem; margin:10px 0 0; }
.minor-kpi small { color:var(--muted); }
.report-panel { min-width:0; background:var(--paper); border:1px solid var(--line); border-radius:8px; padding:20px; margin-bottom:20px; overflow:hidden; break-inside:avoid; }
.report-panel h2 { font-size:1.25rem; margin:0 0 3px; }
.report-panel .note { font-size:.85rem; color:var(--muted); margin:0 0 14px; }
.report-grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:20px; align-items:start; }
.report-grid .report-panel { margin:0; }
#heatmap-section { grid-column:span 12; }
#top-section { grid-column:span 12; }
#all-sold-section { grid-column:span 12; }
#family-section { grid-column:span 4; }
#gauge-section { grid-column:span 3; }
#projection-section { grid-column:span 5; }
.chart { width:100%; max-width:100%; height:300px; }
.chart.hourly { height:380px; min-width:720px; }
.hourly-scroll { max-width:100%; overflow-x:auto; }
.chart.donut { height:230px; }
.heat-scroll { overflow-x:auto; max-width:100%; }
.heatmap { min-width:560px; }
.scroll-hint { font-size:.8rem; color:var(--muted); }
.table-wrap { max-width:100%; overflow-x:auto; }
.report-shell table { width:100%; border-collapse:collapse; font-size:.87rem; font-variant-numeric:tabular-nums; }
.report-shell table caption { text-align:left; font-weight:700; padding:8px 0; }
.report-shell td,.report-shell th { border-bottom:1px solid var(--line); padding:8px 6px; text-align:right; white-space:nowrap; }
.report-shell th:first-child { text-align:left; }
.ranking,.breakdown,.projections { list-style:none; padding:0; margin:0; }
.ranking li { padding:9px 0; border-bottom:1px solid var(--line); }
.rank-row { display:flex; gap:10px; align-items:center; }
.rank-row span { min-width:0; overflow-wrap:anywhere; }
.rank-row span:not(.rank-num) { flex:1; text-align:left; }
.rank-row b { margin-left:auto; white-space:nowrap; text-align:right; font-size:.85rem; }
.rank-row small,.projections small { display:block; color:var(--muted); font-size:.75rem; }
.rank-bar { display:block; height:5px; border-radius:2px; margin-top:8px; background:var(--deep); }
.rank-num { flex:0 0 auto; min-width:2rem; font-variant-numeric:tabular-nums; font-weight:700; color:var(--muted); font-size:.85rem; text-align:right; }
.ranking-wrap { max-height:520px; overflow-y:auto; border-radius:4px; }
.ranking-wrap:focus-visible { outline:2px solid var(--deep); outline-offset:2px; }
.sold-summary { display:flex; flex-wrap:wrap; gap:8px 24px; padding:10px 0; font-variant-numeric:tabular-nums; }
.sold-summary-header { border-bottom:1px solid var(--line); margin-bottom:4px; }
.sold-summary-footer { border-top:1px solid var(--line); margin-top:4px; }
.summary-item { display:flex; align-items:baseline; gap:6px; }
.summary-label { color:var(--muted); font-size:.8rem; }
.summary-item strong { font-size:.95rem; }
.breakdown li { display:flex; justify-content:space-between; gap:12px; padding:7px 0; border-bottom:1px solid var(--line); }
.breakdown b { white-space:nowrap; font-variant-numeric:tabular-nums; }
.gauge-value { font-size:2.4rem; font-weight:750; font-variant-numeric:tabular-nums; }
progress { display:block; width:100%; height:18px; accent-color:var(--green); }
.warning { color:var(--red); font-weight:700; }
.projections li { padding:12px 0; border-bottom:1px solid var(--line); }
.projections b { display:block; color:var(--amber); font-variant-numeric:tabular-nums; }
.report-footer { color:var(--muted); font-size:.82rem; margin-top:24px; border-top:1px solid var(--line); padding-top:14px; }
@media(max-width:979px) { .report-grid { display:block; } .report-grid .report-panel { margin-bottom:20px; } }
@media(max-width:700px) { .dispatch { grid-template-columns:repeat(2,minmax(0,1fr)); } .main-kpi { grid-column:span 2; } .dispatch > div:nth-child(2) { border-top:1px solid var(--line); } .dispatch > div:nth-child(3),.dispatch > div:nth-child(4) { border-top:1px solid var(--line); } .report-heading { align-items:start; flex-wrap:wrap; } }
@media(max-width:600px) { .report-shell { padding:18px 16px 50px; } .report-panel { padding:16px; } .chart.hourly { height:300px; } .rank-row { align-items:start; } .rank-row b { white-space:normal; text-align:right; } .minor-kpi strong { font-size:1.2rem; } .report-actions { width:100%; } .report-actions button { flex:1; } }
@media(max-width:370px) { .dispatch > div { padding:12px; } .minor-kpi strong { font-size:1.05rem; } }
@media(prefers-reduced-motion:reduce) { .rank-bar { transition:none; } .report-actions button:active { transform:none; } }
@media print { .top,.report-actions,.back,.chart-fail,.scroll-hint { display:none !important; } body { background:white; } .report-shell { padding:0; } .report-grid { display:block; } .report-panel { border:0; border-bottom:1px solid #999; border-radius:0; break-inside:auto; } .ranking-wrap { max-height:none; overflow:visible; } .heat-scroll,.hourly-scroll,.table-wrap { overflow:visible; } .chart.heatmap,.chart.hourly { min-width:0; } @page { size:A4 portrait; margin:13mm; } }
