/* Bootstrap handles layout, spacing, typography, tables and controls.
   Only the custom data heatmap needs application-specific styling. */
.heatmap-chart{display:grid;grid-template-columns:76px minmax(0,1fr);gap:5px 10px;align-items:center;min-width:0;margin:1rem 0 .5rem}
.heatmap-axis-corner{font-size:.7rem;color:var(--bs-secondary-color);text-align:right}
.heatmap-x-axis{display:grid;grid-template-columns:repeat(24,minmax(0,1fr));gap:3px;min-width:0}
.heatmap-x-axis span{font-size:.65rem;color:var(--bs-secondary-color);white-space:nowrap;overflow:visible}
.heatmap-y-label{font-size:.75rem;color:var(--bs-secondary-color);text-align:right;white-space:nowrap}
.activity-matrix{display:grid;grid-template-columns:repeat(24,minmax(0,1fr));gap:3px;min-width:0}
.activity-cell{height:15px;border-radius:3px;min-width:0;cursor:help}
.activity-cell:focus-visible{outline:2px solid var(--bs-info);outline-offset:2px}
.heatmap-group{margin:1.25rem 0 1.75rem}
.heatmap-group h3{font-size:1rem;font-weight:600}
details>summary{cursor:pointer;font-weight:600;font-size:1.1rem}
th[tabindex]{cursor:pointer}
th[tabindex]:focus-visible{outline:2px solid var(--bs-primary)}
@media(max-width:575.98px){.heatmap-chart{grid-template-columns:53px minmax(0,1fr);column-gap:6px}.heatmap-x-axis,.activity-matrix{gap:2px}.heatmap-x-axis span{font-size:.55rem}.heatmap-x-axis span:nth-child(odd){visibility:hidden}.heatmap-y-label{font-size:.65rem}.activity-cell{height:11px}}

[data-bs-theme="dark"]{--heat-missing:#293242;--heat-zero:#19344a;--heat-low:#285a7c;--heat-medium:#3288a8;--heat-high:#4eb5bc;--heat-peak:#8ce1ce}
[data-bs-theme="light"]{--heat-missing:#e5e7eb;--heat-zero:#eaf4f8;--heat-low:#c4e3ed;--heat-medium:#87c6d8;--heat-high:#368ba9;--heat-peak:#124d70}

.brand-hero{background:radial-gradient(ellipse at 15% 40%,#154c77 0%,#0d1c32 50%,#070e1b 100%);min-height:225px;position:relative}
.brand-hero::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 35%,rgba(40,194,240,.08) 70%,transparent)}
.brand-hero-logo{filter:drop-shadow(0 0 22px rgba(35,198,250,.35));flex-shrink:0}
.brand-hero>div{position:relative;z-index:1}
@media(max-width:575.98px){.brand-hero{justify-content:center;text-align:center}.brand-hero-logo{width:88px;height:88px}}
