/* ============================================================
   calendar.css — Monats-/Wochen-/Listenansicht des Kalenders,
   Kalender-Legende, sowie die Abwesenheiten-Anzeige, die auf der
   Kalenderseite lebt. Setzt auf app.css auf.
   ============================================================ */

/* Kalender */
.cal{display:grid;grid-template-columns:repeat(7,1fr);border:1px solid var(--gray-200);border-radius:6px;overflow:hidden;background:var(--white)}
.cal .dow{font-size:12px;font-weight:600;color:var(--sage-700);background:var(--sage-50);padding:var(--s2);border-bottom:1px solid var(--gray-300);border-right:1px solid var(--gray-200)}
.cal .cell{min-height:96px;padding:var(--s2);border-right:1px solid var(--gray-200);border-bottom:1px solid var(--gray-200);transition:background-color .12s ease}
.cal .cell:hover{background:var(--gray-50)}
.cal .cell .d{font-family:var(--mono);font-size:12px;color:var(--gray-500)}
.cal .ev{font-size:12px;margin-top:4px;padding:2px 4px;border:1px solid var(--gray-200);border-radius:4px;transition:box-shadow .12s ease}
.cal .ev.task:hover{box-shadow:0 1px 4px rgba(20,24,28,.15)}
/* Kalender (Aufgaben) */
.calnav{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.cal .ev.task{cursor:pointer}
.cal .ev.overdue{background:var(--terracotta-fill);border-color:var(--terracotta-fill);color:var(--terracotta-text)}
.cal .ev{border-left-width:3px;border-left-style:solid}
.cal .ev.ev-aufgabe{border-left-color:var(--origin-aufgabe)}
.cal .ev.ev-beitrag{border-left-color:var(--origin-beitrag)}
.cal .ev.ev-trend{border-left-color:var(--origin-trend)}
.cal .ev.ev-wettbewerb{border-left-color:var(--origin-wettbewerb)}
.cal .ev.ev-termin{border-left-color:var(--_farbe,var(--origin-termin))}
.cal .ev.ev-feiertag{border-left-color:var(--origin-feiertag)}
.cal .ev.ev-abwesenheit{border-left-color:var(--origin-abwesenheit)}
.cal .ev.ev-abwesenheit.ho{border-left-style:dashed;background:var(--gray-50)}
.cal .ev.ev-projekt{border-left-color:var(--origin-projekt)}
.aw-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--gray-100);cursor:pointer}
.aw-row:last-child{border-bottom:0}
.aw-row:hover{background:var(--gray-100)}
.aw-row .bar{width:4px;align-self:stretch;border-radius:2px;background:var(--origin-abwesenheit);flex-shrink:0}
.aw-row .bar.ho{background:repeating-linear-gradient(-45deg,var(--origin-abwesenheit),var(--origin-abwesenheit) 3px,var(--gray-200) 3px,var(--gray-200) 6px)}
.aw-vertretung-box{background:var(--warning-fill);border:1px solid var(--warning-fill);border-radius:4px;padding:12px;margin-top:8px}
.aw-vertretung-box h4{margin:0 0 8px;font-size:13px;font-weight:600;color:var(--warning-text)}
.cal.week{grid-template-columns:repeat(7,1fr)}
.cal.week .cell{min-height:260px;overflow-y:auto}
.cal-list-group{margin-bottom:20px}
.cal-list-group h3{font-size:13px;font-weight:600;color:var(--gray-700);margin:0 0 8px;padding-bottom:6px;border-bottom:1px solid var(--gray-200)}
.cal-list-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--gray-100);cursor:pointer}
.cal-list-row:last-child{border-bottom:0}
.cal-list-row .bar{width:4px;align-self:stretch;border-radius:2px;flex-shrink:0}
.cal-list-row .time{font-family:var(--mono);font-size:12px;color:var(--gray-500);min-width:44px}
