
.cal-grid .cal-day {
  min-height: 44px; padding: 6px 4px; border: 1px solid rgba(255,255,255,.08);
  font: 450 11px/1 var(--font); color: var(--fg-3);
  display: flex; flex-direction: column; gap: 4px;
}
.cal-grid .cal-day.wd { min-height: auto; border: 0; color: var(--fg-4); font-size: 10px; letter-spacing: .08em; }
.cal-grid .cal-day.empty { border: 0; }
.cal-grid .cal-day .dots { display: flex; flex-wrap: wrap; gap: 3px; }
.cal-grid .cal-day .dot {
  width: 6px; height: 6px; border-radius: 50%; background: rgba(255,255,255,.35);
}
.cal-grid .cal-day .dot.paid { background: #fff; box-shadow: 0 0 6px rgba(255,255,255,.55); }
.cal-grid .cal-day .dot.unpaid, .cal-grid .cal-day .dot.event { background: #6aa8ff; box-shadow: 0 0 6px rgba(106,168,255,.45); }
.cal-grid .cal-day .dot.overdue { background: #ff7a7a; box-shadow: 0 0 6px rgba(255,122,122,.45); }
.cal-grid .cal-day .dot.none, .cal-grid .cal-day .dot.free { background: rgba(255,255,255,.22); }
.cal-grid .cal-day .dot.travel { background: #b28cff; box-shadow: 0 0 6px rgba(178,140,255,.45); }
.cal-grid .cal-day .dot.other { background: #ff9ad4; }
.cal-grid .cal-day.busy { background: rgba(255,255,255,.03); }
.heat-strip { display: flex; gap: 3px; }
.heat-strip i { flex: 1; height: 18px; background: #fff; border-radius: 0; }
.g-row.st-paid .nm { text-shadow: 0 0 12px rgba(255,255,255,.35); }
.g-row.st-unpaid .meta { color: #9ec1ff; }
.g-row.st-overdue .meta { color: #ff9a9a; }
