/* Modul kalender: Wochenraster, Monat, Liste, Wiedervorlagen.
   Positionen kommen über Klassen (r-s = Startzeile, r-d = Dauer in Viertelstunden, sp-<Spuren>-<Nr>), nie über style=. */
.kal-leiste { display: flex; flex-wrap: wrap; gap: .75rem 1rem; align-items: center; margin-bottom: 1rem; }
.kal-leiste .filter { margin-bottom: 0; }
.kal-titel { margin: 0; flex: 1 1 12rem; font-size: 1.375rem; }

.art-kundentermin { --farbe: #8e0038; }
.art-telefonat { --farbe: #00838f; }
.art-intern { --farbe: #1565c0; }
.art-aussentermin { --farbe: #2f7a5c; }
.art-sonstiges { --farbe: #546e7a; }
.art-belegt { --farbe: #84747a; }
.art-wv { --farbe: #b45f06; }

.ev {
  display: flex; gap: .375rem; align-items: baseline; width: 100%; min-width: 0; min-height: 1.5rem; margin: 0; padding: .125rem .375rem;
  background: color-mix(in srgb, var(--farbe, var(--blau)) 12%, #fff); color: var(--tinte);
  border: 0; border-left: 4px solid var(--farbe, var(--blau)); border-radius: 2px;
  font: inherit; font-size: .875rem; line-height: 1.25; text-align: left; text-decoration: none; overflow: hidden;
}
.ev:hover { background: color-mix(in srgb, var(--farbe, var(--blau)) 22%, #fff); }
.ev-zeit { flex: none; font-weight: 600; }
.ev-titel { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ev-belegt { background: #eceaeb; color: var(--leise); border-left-style: dashed; }
.ev-wv { --farbe: #b45f06; }
.ft { color: #a3122e; font-weight: 600; margin: 0; font-size: .8125rem; }

/* Woche */
.woche-rolle { overflow-x: auto; border: 1px solid var(--linie); background: var(--hemd); }
.woche { display: grid; grid-template-columns: 3.25rem repeat(7, minmax(6.5rem, 1fr)); min-width: 50rem; }
.woche-kopf { padding: .375rem .25rem; text-align: center; border-left: 1px solid var(--linie); border-bottom: 1px solid var(--linie); line-height: 1.2; }
.woche-kopf small, .woche-kopf strong { display: block; }
.woche-kopf.heute { border-bottom: 3px solid var(--bordeaux); color: var(--bordeaux); }
.woche-kopf.feiertag { background: #fbe9ee; }
.woche-label { display: flex; align-items: center; justify-content: flex-end; padding-right: .25rem; border-bottom: 1px solid var(--linie); }
.woche-ganztag { display: grid; gap: 2px; align-content: start; min-height: 1.75rem; padding: 2px; border-left: 1px solid var(--linie); border-bottom: 1px solid var(--linie); }
.woche-stunden, .woche-tag { display: grid; grid-template-rows: repeat(52, 1.25rem); }
.woche-stunden { grid-template-columns: 1fr; justify-items: end; padding-right: .25rem; font-size: .8125rem; color: var(--leise); }
.woche-stunden span { align-self: start; transform: translateY(-.5em); }
.woche-tag {
  grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 0 1px; position: relative; border-left: 1px solid var(--linie);
  background-image: repeating-linear-gradient(to bottom, var(--linie) 0 1px, transparent 1px 5rem);
}
.woche-tag.heute { background-color: #fdf8f0; }
.woche-tag .ev { flex-direction: column; gap: 0; align-self: stretch; padding: .125rem .25rem; border-radius: 2px; }
.woche-tag .ev-titel { white-space: normal; }

/* Monat */
.monat { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border-top: 1px solid var(--linie); border-left: 1px solid var(--linie); background: var(--hemd); }
.monat-kopf { padding: .25rem; text-align: center; font-weight: 600; border-right: 1px solid var(--linie); border-bottom: 1px solid var(--linie); }
.monat-tag { display: grid; gap: 2px; align-content: start; min-width: 0; min-height: 6.5rem; padding: .25rem; border-right: 1px solid var(--linie); border-bottom: 1px solid var(--linie); }
.monat-tag.fremd { background: #f7f2f3; color: var(--leise); }
.monat-tag.feiertag { background: #fbe9ee; }
.monat-tag.heute .monat-zahl { background: var(--bordeaux); color: #fff; }
.monat-zahl { justify-self: start; min-width: 1.75rem; height: 1.75rem; padding: 0 .375rem; background: none; border: 0; border-radius: 2px; font-weight: 600; }
.monat-tag .mehr { justify-self: start; min-height: 1.5rem; font-size: .8125rem; }
.monat-tag .ev-zeit { display: none; }

/* Liste (auch Handy) */
.agenda { display: grid; gap: 1rem; }
.agenda-tag { display: grid; gap: 4px; padding: .75rem; background: var(--hemd); border: 1px solid var(--linie); }
.agenda-tag.heute { border-top: 4px solid var(--bordeaux); }
.agenda-tag h2 { margin: 0 0 .25rem; font-size: 1.125rem; }
.agenda-tag .ev { min-height: 2.25rem; align-items: center; font-size: 1rem; }

.legende { display: flex; flex-wrap: wrap; gap: .25rem 1rem; margin-top: .75rem; color: var(--leise); font-size: .875rem; }
.legende span { display: inline-flex; gap: .375rem; align-items: center; }
.legende i { width: .75rem; height: .75rem; background: var(--farbe); }

/* Termin-Dialog */
.termin-daten { display: grid; grid-template-columns: max-content 1fr; gap: .25rem 1rem; margin: .75rem 0 0; }
.termin-daten dt { font-weight: 600; }
.termin-daten dd { margin: 0; }
.teilnehmer { display: grid; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); gap: 0 .75rem; }
.konflikt { margin: 0; }
.abstand-oben { margin-top: 1rem; }

/* Wiedervorlagen: nutzt die Listenstile der Aufgaben (aufgabe, haken-knopf, ueberfaellig) */

/* Erzeugt: Zeilen und Spuren des Wochenrasters (Viertelstunden ab 07:00) */
.r-s0 { grid-row-start: 1; }
.r-s1 { grid-row-start: 2; }
.r-s2 { grid-row-start: 3; }
.r-s3 { grid-row-start: 4; }
.r-s4 { grid-row-start: 5; }
.r-s5 { grid-row-start: 6; }
.r-s6 { grid-row-start: 7; }
.r-s7 { grid-row-start: 8; }
.r-s8 { grid-row-start: 9; }
.r-s9 { grid-row-start: 10; }
.r-s10 { grid-row-start: 11; }
.r-s11 { grid-row-start: 12; }
.r-s12 { grid-row-start: 13; }
.r-s13 { grid-row-start: 14; }
.r-s14 { grid-row-start: 15; }
.r-s15 { grid-row-start: 16; }
.r-s16 { grid-row-start: 17; }
.r-s17 { grid-row-start: 18; }
.r-s18 { grid-row-start: 19; }
.r-s19 { grid-row-start: 20; }
.r-s20 { grid-row-start: 21; }
.r-s21 { grid-row-start: 22; }
.r-s22 { grid-row-start: 23; }
.r-s23 { grid-row-start: 24; }
.r-s24 { grid-row-start: 25; }
.r-s25 { grid-row-start: 26; }
.r-s26 { grid-row-start: 27; }
.r-s27 { grid-row-start: 28; }
.r-s28 { grid-row-start: 29; }
.r-s29 { grid-row-start: 30; }
.r-s30 { grid-row-start: 31; }
.r-s31 { grid-row-start: 32; }
.r-s32 { grid-row-start: 33; }
.r-s33 { grid-row-start: 34; }
.r-s34 { grid-row-start: 35; }
.r-s35 { grid-row-start: 36; }
.r-s36 { grid-row-start: 37; }
.r-s37 { grid-row-start: 38; }
.r-s38 { grid-row-start: 39; }
.r-s39 { grid-row-start: 40; }
.r-s40 { grid-row-start: 41; }
.r-s41 { grid-row-start: 42; }
.r-s42 { grid-row-start: 43; }
.r-s43 { grid-row-start: 44; }
.r-s44 { grid-row-start: 45; }
.r-s45 { grid-row-start: 46; }
.r-s46 { grid-row-start: 47; }
.r-s47 { grid-row-start: 48; }
.r-s48 { grid-row-start: 49; }
.r-s49 { grid-row-start: 50; }
.r-s50 { grid-row-start: 51; }
.r-s51 { grid-row-start: 52; }
.r-d1 { grid-row-end: span 1; }
.r-d2 { grid-row-end: span 2; }
.r-d3 { grid-row-end: span 3; }
.r-d4 { grid-row-end: span 4; }
.r-d5 { grid-row-end: span 5; }
.r-d6 { grid-row-end: span 6; }
.r-d7 { grid-row-end: span 7; }
.r-d8 { grid-row-end: span 8; }
.r-d9 { grid-row-end: span 9; }
.r-d10 { grid-row-end: span 10; }
.r-d11 { grid-row-end: span 11; }
.r-d12 { grid-row-end: span 12; }
.r-d13 { grid-row-end: span 13; }
.r-d14 { grid-row-end: span 14; }
.r-d15 { grid-row-end: span 15; }
.r-d16 { grid-row-end: span 16; }
.r-d17 { grid-row-end: span 17; }
.r-d18 { grid-row-end: span 18; }
.r-d19 { grid-row-end: span 19; }
.r-d20 { grid-row-end: span 20; }
.r-d21 { grid-row-end: span 21; }
.r-d22 { grid-row-end: span 22; }
.r-d23 { grid-row-end: span 23; }
.r-d24 { grid-row-end: span 24; }
.r-d25 { grid-row-end: span 25; }
.r-d26 { grid-row-end: span 26; }
.r-d27 { grid-row-end: span 27; }
.r-d28 { grid-row-end: span 28; }
.r-d29 { grid-row-end: span 29; }
.r-d30 { grid-row-end: span 30; }
.r-d31 { grid-row-end: span 31; }
.r-d32 { grid-row-end: span 32; }
.r-d33 { grid-row-end: span 33; }
.r-d34 { grid-row-end: span 34; }
.r-d35 { grid-row-end: span 35; }
.r-d36 { grid-row-end: span 36; }
.r-d37 { grid-row-end: span 37; }
.r-d38 { grid-row-end: span 38; }
.r-d39 { grid-row-end: span 39; }
.r-d40 { grid-row-end: span 40; }
.r-d41 { grid-row-end: span 41; }
.r-d42 { grid-row-end: span 42; }
.r-d43 { grid-row-end: span 43; }
.r-d44 { grid-row-end: span 44; }
.r-d45 { grid-row-end: span 45; }
.r-d46 { grid-row-end: span 46; }
.r-d47 { grid-row-end: span 47; }
.r-d48 { grid-row-end: span 48; }
.r-d49 { grid-row-end: span 49; }
.r-d50 { grid-row-end: span 50; }
.r-d51 { grid-row-end: span 51; }
.r-d52 { grid-row-end: span 52; }
.sp-1-0 { grid-column: 1 / span 12; }
.sp-2-0 { grid-column: 1 / span 6; }
.sp-2-1 { grid-column: 7 / span 6; }
.sp-3-0 { grid-column: 1 / span 4; }
.sp-3-1 { grid-column: 5 / span 4; }
.sp-3-2 { grid-column: 9 / span 4; }
.sp-4-0 { grid-column: 1 / span 3; }
.sp-4-1 { grid-column: 4 / span 3; }
.sp-4-2 { grid-column: 7 / span 3; }
.sp-4-3 { grid-column: 10 / span 3; }
.woche-stunden span { grid-column: 1; }
