:root { --heat-accent: #c0392b; }
body { background: #f6f7f9; }
.heat-sidebar { min-height: 100%; }
.heat-sidebar .nav-link { color: #333; border-radius: .375rem; }
.heat-sidebar .nav-link:hover { background: #e9ecef; }
.heat-sidebar .nav-link.active { background: var(--heat-accent); color: #fff; }
.heat-sidebar-aside { background: #fff; border-right: 1px solid #dee2e6; }
.heat-card { background: #fff; border: 1px solid #dee2e6; border-radius: .5rem; }
.heat-temp { font-size: 2rem; font-weight: 300; line-height: 1; }
.heat-cal { table-layout: fixed; }
.heat-cal th, .heat-cal td { vertical-align: top; }
.heat-cal .today { background: #fff8e1; }
.heat-occ { border-left: 4px solid #0d6efd; background: #eef4ff; padding: .25rem .4rem; margin-bottom: .3rem; border-radius: .25rem; font-size: .85rem; }
.heat-occ.event { border-left-color: #198754; background: #ebf7f0; }
.heat-occ.moved { border-left-style: dashed; }
.heat-occ .lead { color: #6c757d; font-size: .75rem; }
.heat-status-dot { display: inline-block; width: .7rem; height: .7rem; border-radius: 50%; }
.weekday-picker .btn { min-width: 3rem; }
.heat-site-box { background: #fff4f2; border: 1px solid #f1c4bd; border-left: 4px solid var(--heat-accent); border-radius: .5rem; padding: .6rem .75rem; }
.heat-site-label { font-size: .7rem; text-transform: uppercase; letter-spacing: .04em; color: var(--heat-accent); font-weight: 600; }
.heat-site-name { font-size: 1.1rem; font-weight: 600; }
.heat-site-badge { background: var(--heat-accent); color: #fff; font-weight: 500; }
.heat-status-dot-lg { width: 1rem; height: 1rem; }
