/* Calendar page — structural CSS ported from the real Calendar.html's
   inline <style> block. Per-quarter/day accent colors there were
   arbitrary hex values baked in at generation time; here they're
   index-based classes (.tag-0.. ) cycling a fixed palette instead of a
   color field on the schema, since a class's display color isn't
   something a teacher's course data needs to carry. */

.legend{display:flex;flex-wrap:wrap;gap:14px;margin:14px 0 6px;font-size:13.5px;color:var(--mute)}
.mgrid{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin:10px 0 6px}
.dow{font-size:11px;text-transform:uppercase;letter-spacing:.09em;color:var(--mute);font-weight:700;
     text-align:center;padding:4px 0}
.day{background:var(--card);border:1px solid var(--line);border-radius:8px;min-height:112px;padding:7px 9px 8px;
     display:flex;flex-direction:column;gap:2px;position:relative;overflow:hidden}
.day.pad{background:transparent;border:0;min-height:0}
.day .dnum{font-size:12px;font-weight:700;color:var(--mute);font-variant-numeric:tabular-nums}
.srow{display:flex;align-items:baseline;gap:5px;font-size:12.5px;line-height:1.5;flex-wrap:wrap}
.srow .tag{font-size:10px;font-weight:800;letter-spacing:.06em;color:#fff;
           border-radius:3px;padding:1px 4px;min-width:22px;text-align:center}
a.ln{border-bottom:1px solid var(--line);font-weight:700;font-variant-numeric:tabular-nums}
a.ln:hover{background:var(--tint)}
span.ln.todo{color:var(--warm);border-bottom:1px dashed var(--line);font-weight:700;font-variant-numeric:tabular-nums}
.day.hol{background:var(--hol-bg);border-color:var(--hol-line)}
.day.hol .sel{color:var(--hol-ink);font-weight:600;font-size:11px;margin-top:auto;padding-top:4px}
h2.mon{margin:34px 0 4px;font-size:19px;color:var(--accent);border-bottom:2px solid var(--line);padding-bottom:6px}
.qstrip{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}
.qcard{flex:1 1 190px;background:var(--card);border:1px solid var(--line);border-left:4px solid var(--accent);
       border-radius:0 8px 8px 0;padding:10px 14px}
.qcard .qn{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--mute);font-weight:700}
.qcard .qd{font-size:14px;font-weight:600;margin-top:2px}
.qcard .qm{font-size:12.5px;color:var(--mute)}
@media print{.day{min-height:96px;break-inside:avoid}h2.mon{page-break-after:avoid}.mgrid{gap:4px}}
@media(max-width:760px){.mgrid{grid-template-columns:1fr}.dow{display:none}}

/* class-color palette, cycled by class index (see render.js's classClass) */
.tag-0{background:#1f4e79}
.tag-1{background:#7a2e2e}
.tag-2{background:#2f6b46}
.tag-3{background:#8a5a13}
.tag-4{background:#5b3a8a}
.tag-5{background:#2e6b78}

html[data-theme="dark"] .day.hol{background:var(--hol-bg);border-color:var(--hol-line)}
html[data-theme="dark"] a.ln:hover{background:#31383f}
