/* School calendar (js/calendar.js) */
.cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.cal-wd { text-align: center; font-weight: 800; font-size: 11px; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); padding: 4px 0; }
.cal-cell { min-height: 76px; border: 1px solid var(--line); border-radius: 8px; padding: 4px; cursor: pointer; background: var(--panel); transition: box-shadow .1s ease; overflow: hidden; }
.cal-cell:hover { box-shadow: 0 2px 8px rgba(0,0,0,.08); }
.cal-empty { border: none; background: transparent; cursor: default; }
.cal-holiday { background: color-mix(in srgb, #d23b3b 7%, var(--panel)); }
.cal-dn { font-weight: 700; font-size: 12px; margin-bottom: 2px; }
.cal-ev { font-size: 10px; line-height: 1.25; border-left: 3px solid var(--c, #2e6fc4); background: color-mix(in srgb, var(--c) 12%, transparent); border-radius: 3px; padding: 1px 3px; margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cal-x { color: var(--bad); cursor: pointer; font-weight: 700; }
.cal-cell { user-select: none; }
.cal-sel { outline: 2px solid var(--brand); outline-offset: -2px; background: color-mix(in srgb, var(--brand) 12%, var(--panel)); }
.cal-span { border-left-width: 4px; font-weight: 600; }
.cal-rem { border-left-style: dashed; }
@media print { .cal-cell { min-height: 64px; } }
@media (max-width: 620px) { .cal-cell { min-height: 56px; } .cal-ev { font-size: 8px; } }
