:root{--bg:#f4f5f7;--card:#fff;--line:#d9dde3;--text:#17191c;--muted:#667085}
*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg);color:var(--text)}
header{position:sticky;top:0;z-index:20;background:#fff;border-bottom:1px solid var(--line);padding:14px 18px}.header-row{max-width:1700px;margin:auto;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
h1{font-size:1.25rem;margin:0}.brand{display:flex;align-items:center;gap:12px;margin-right:auto;min-width:0}.brand-logo{width:54px;height:54px;object-fit:contain;flex:0 0 auto}button,select,input,textarea{font:inherit}button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:8px 11px;cursor:pointer}.primary{background:#17191c!important;color:#fff}.danger{color:#a40000}.week-label{font-weight:700}
main{padding:18px;max-width:1700px;margin:auto}.filters,.admin-nav{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}.filters select,input,select,textarea{padding:9px;border:1px solid var(--line);border-radius:8px;background:#fff}
.schedule{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:12px}.grid{display:grid;min-width:1200px}.cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:8px;min-height:70px}.dayhead,.resourcehead{font-weight:700;background:#fff}.resourcehead{position:sticky;left:0;z-index:5}.corner{position:sticky;left:0;z-index:8;background:#fff}.venue-row{background:#eceff2;padding:7px 10px;font-weight:800;border-bottom:1px solid var(--line)}.booking{border-left:4px solid #555;background:#f3f3f3;border-radius:7px;padding:6px;margin:3px 0;font-size:.88rem}.small,.meta,.empty{color:var(--muted);font-size:.85rem}
.admin-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px;max-width:1100px;margin:18px auto}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.form-grid label{display:flex;flex-direction:column;gap:5px}.wide{grid-column:1/-1}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;margin-top:18px}th,td{text-align:left;padding:9px;border-bottom:1px solid var(--line);vertical-align:top}.hidden{display:none!important}
.resource-picker{border:1px solid var(--line);border-radius:10px;background:#fafafa;max-height:340px;overflow:auto;padding:6px}.picker-group{padding:7px 8px;border-bottom:1px solid #e6e8ec}.picker-group:last-child{border-bottom:0}.picker-title{font-weight:750;margin-bottom:4px}.check-row{display:flex!important;flex-direction:row!important;align-items:center;gap:8px!important;padding:4px 2px;cursor:pointer}.check-row input{width:18px;height:18px;margin:0}
@media(max-width:700px){.form-grid{grid-template-columns:1fr}.wide{grid-column:auto}main{padding:10px}}
.status-message{margin:12px 0 4px;padding:12px 14px;border-radius:10px;border:1px solid var(--line);display:flex;flex-direction:column;gap:4px}.status-message.conflict{background:#fff3cd;border-color:#e2b93b;color:#5d4700}.status-message.error{background:#fdecec;border-color:#e0a1a1;color:#7a1111}.status-message.success{background:#ecf7ee;border-color:#9bc8a3;color:#1d5b2a}.login-msg{color:#a40000;font-weight:600}.admin-card#login{max-width:520px}.admin-card#login .form-grid{grid-template-columns:1fr}.admin-card#login button{min-width:110px}@media(max-width:700px){.brand-logo{width:42px;height:42px}.brand h1{font-size:1.05rem}}@media print{.brand-logo{width:42px;height:42px}}

.required-mark{font-weight:800;color:#a40000}

.booking-title{font-size:.82rem;margin-top:2px;color:var(--text)}


/* V2.5 – ruhige Spartenfarben, angelehnt an den bisherigen Excel-Plan */
.booking{
  border-left:4px solid #8a8f98;
  background:#f5f6f7;
  border-radius:7px;
  padding:8px 9px;
  margin:3px 0;
}
.booking strong{display:block;line-height:1.25}
.booking-title{font-size:.82rem;margin-top:3px;color:#4b5563}
.sport-icon{
  display:inline-block;
  width:1.25em;
  margin-right:.28em;
  text-align:center;
  font-size:.9em;
  opacity:.82;
}

/* Turnen – Salbei */
.sport-turnen{background:#eef3df;border-left-color:#899b5b}
/* Handball – Lavendel */
.sport-handball{background:#eee9f3;border-left-color:#88769d}
/* Fußball – Sand/Olive */
.sport-fussball{background:#f2efdf;border-left-color:#9a8d5b}
/* Tischtennis – Eisblau */
.sport-tischtennis{background:#e5f1f5;border-left-color:#6695a6}
/* Volleyball – Stahlblau */
.sport-volleyball{background:#e5edf5;border-left-color:#6d88a6}
/* Taekwondo – Apricot */
.sport-taekwondo{background:#f8eadc;border-left-color:#bd865c}
/* Basketball – Terrakotta */
.sport-basketball{background:#f6e3d8;border-left-color:#b8643d}
/* Lossesterne – Altrosa */
.sport-lossesterne{background:#f5e4e5;border-left-color:#b97b80}
/* Extern – neutrales Grau */
.sport-extern{background:#eeeeed;border-left-color:#777b80}

@media print{
  .booking{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}


/* V3.0 Kalenderlogik */
.viewbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.segmented{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:#fff}
.segmented button{border:0;border-radius:0;border-right:1px solid var(--line)}
.segmented button:last-child{border-right:0}
.legend-note{font-size:.82rem;color:var(--muted);margin:0 0 12px}
.holiday-head{background:#f8eded!important}
.holiday-label{display:block;margin-top:3px;font-size:.72rem;font-weight:600;color:#9b5e62}
.holiday-cell{background:#fffafa}
.free-slot{background:#edf4eb;border-left:4px solid #738d6a;border-radius:7px;padding:7px 8px;margin:3px 0;font-size:.86rem}
.free-slot strong{display:block}.free-slot span{font-size:.78rem;color:var(--muted)}
.booking-single{outline:1px dashed rgba(40,40,40,.35);outline-offset:-2px}
.single-badge{display:inline-block;margin-top:4px;padding:1px 5px;border-radius:10px;background:rgba(255,255,255,.6);font-size:.68rem;font-weight:700;color:#555}
.check-card{display:flex!important;flex-direction:row!important;align-items:flex-start;gap:9px!important;border:1px solid var(--line);border-radius:9px;padding:9px;background:#fafafa}
.check-card input{width:18px;height:18px;margin-top:2px}
.check-card span{display:flex;flex-direction:column;gap:2px}.check-card small{color:var(--muted);font-size:.78rem}

/* V3.2.8 – endgültig ohne Sport-Icons */
.sport-icon,.sport-glyph,.sport-inline-icon,.sport-line-icon,.icon-sprite{display:none!important}

/* V3.3 – Schließtage und Sperrzeiten */
.closure-cell{background:#f7f5f4}
.closure-block{
  background:repeating-linear-gradient(135deg,#ece8e6,#ece8e6 7px,#f6f3f2 7px,#f6f3f2 14px);
  border-left:4px solid #7e716b;
  border-radius:7px;
  padding:7px 8px;
  margin:3px 0;
  font-size:.82rem;
  color:#4e4744;
}
.closure-block strong{display:block;color:#3e3936}


/* V3.4 – Monatsansicht */
.month-wrap{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:auto}
.month-grid{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));min-width:1080px}
.month-weekday{padding:9px;text-align:center;font-weight:800;background:#eef0f3;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.month-day{min-height:150px;padding:7px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}
.month-outside{background:#f7f7f7}
.month-holiday{background:#fff7f7}
.month-date{font-weight:800;font-size:.9rem;margin-bottom:6px;display:flex;align-items:flex-start;justify-content:space-between;gap:5px}
.month-date span{font-size:.65rem;color:#9b5e62;font-weight:650;text-align:right}
.month-events{display:flex;flex-direction:column;gap:4px}
.month-booking,.month-closure{padding:5px 6px;border-radius:6px;font-size:.72rem;line-height:1.2}
.month-booking{background:#f1f2f4;border-left:3px solid #7f8791}
.month-booking strong,.month-booking span,.month-closure strong,.month-closure span{display:block}
.month-booking span{color:#5e6670;margin-top:1px}
.month-resource{font-weight:700!important;color:#434950!important}
.month-single{outline:1px dashed rgba(50,50,50,.35);outline-offset:-2px}
.month-closure{background:repeating-linear-gradient(135deg,#ece8e6,#ece8e6 6px,#f6f3f2 6px,#f6f3f2 12px);border-left:3px solid #7e716b;color:#4e4744}
.month-free{color:#a1a5aa;font-size:.72rem}
.month-empty{padding:30px;display:flex;flex-direction:column;gap:6px;align-items:center;justify-content:center;color:#667085;min-height:260px}
.month-empty strong{color:#30343a;font-size:1rem}

/* V3.4.1 – Monatsansicht Hotfix */
.month-empty span{display:block;text-align:center;max-width:620px}

/* V3.4.4 – Monatsansicht Feinschliff */
.month-heading{position:sticky;left:0;display:flex;align-items:baseline;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line);background:#fff}
.month-heading strong{font-size:1.05rem;text-transform:capitalize}
.month-heading span{font-size:.82rem;color:#667085}
.month-free{display:none!important}
.month-booking.sport-fussball{background:#f2eedc;border-left-color:#a89455}
.month-booking.sport-handball{background:#eee8f2;border-left-color:#8f75a7}
.month-booking.sport-turnen{background:#edf3dc;border-left-color:#8fa45b}
.month-booking.sport-basketball{background:#f5e8df;border-left-color:#b47b5b}
.month-booking.sport-volleyball{background:#e4f0ee;border-left-color:#66998f}
.month-booking.sport-tischtennis{background:#e7edf4;border-left-color:#708ba6}
.month-booking.sport-taekwondo{background:#f2e5e5;border-left-color:#a56c6c}
.month-booking.sport-lossesterne{background:#f3e8ef;border-left-color:#a57b99}
.month-booking.sport-extern{background:#eeeeee;border-left-color:#8c8c8c}
.month-booking.sport-geschaeftsstelle{background:#e8ecef;border-left-color:#6f7d87}
.month-single{outline:1.5px dashed #5f6670!important;outline-offset:-3px!important}
.month-single-label{display:inline-block!important;width:max-content;margin-top:3px!important;padding:1px 4px;border:1px solid currentColor;border-radius:4px;font-size:.62rem;font-weight:700;color:#5d6269!important;background:rgba(255,255,255,.55)}
@media print{.month-heading{position:static}}

/* V3.4.5 – Monatsüberschrift klarer abgesetzt */
.month-heading{
  display:flex;
  align-items:center;
  gap:9px;
  padding:14px 16px 12px;
  background:#f8f9fb;
}
.month-heading strong{
  font-size:1.12rem;
  font-weight:800;
  letter-spacing:.01em;
}
.month-heading-sep{
  color:#9aa1aa!important;
  font-weight:700;
}
.month-heading-location{
  font-size:.9rem!important;
  color:#4f5965!important;
  font-weight:650;
}

/* V3.4.6 – Monatskopf als eigener, klar sichtbarer Bereich */
.month-wrap .month-heading{
  display:block!important;
  position:sticky!important;
  left:0!important;
  padding:16px 18px 14px!important;
  margin:0!important;
  background:#f6f7f9!important;
  border-bottom:1px solid var(--line)!important;
  line-height:1.2!important;
}
.month-wrap .month-heading-month{
  display:block!important;
  margin:0 0 5px 0!important;
  padding:0!important;
  font-size:1.35rem!important;
  font-weight:800!important;
  color:#17191c!important;
  text-transform:capitalize!important;
  letter-spacing:.01em!important;
}
.month-wrap .month-heading-location{
  display:block!important;
  margin:0!important;
  padding:0!important;
  font-size:.95rem!important;
  font-weight:650!important;
  color:#59616b!important;
}
.month-wrap .month-grid{
  border-top:0!important;
}
@media print{
  .month-wrap .month-heading{position:static!important}
}

/* V3.4.7 – Zeitspannen in Monatsbelegungen */
.month-booking strong{white-space:normal}

/* V3.6 – differenzierte Extern-Farben + Tennis */
.sport-extern{background:#eeeeed;border-left-color:#777b80}
.sport-extern-lg{background:#d8dde2;border-left-color:#68737d}
.sport-extern-schule{background:#f2f3f4;border-left-color:#a1a7ad}
.sport-tennis{background:#e3f0e5;border-left-color:#6f9875}

/* V3.6 – Verwaltung: Kontrollstatus + Sortierung */
.sort-head{border:0;background:transparent;padding:0;font:inherit;font-weight:700;cursor:pointer}
.sort-head:hover{text-decoration:underline}
.series-tools{display:flex;gap:12px;align-items:end;margin:0 0 10px}
.series-tools label{max-width:220px}
.confirm-toggle{width:30px;height:30px;border-radius:50%;padding:0;font-weight:900;font-size:1.05rem}
.confirm-toggle.is-confirmed{background:#e4f3e8;border-color:#6d9d78;color:#246b35}
.series-confirmed{background:#fbfefb}

/* V3.6.1 – temporärer Prüfmodus direkt im Plan */
.reviewbar{display:flex;align-items:center;gap:10px;margin:0 0 10px}
#reviewControls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.review-label{font-size:.82rem;font-weight:700;color:#3c6847}
.booking-head{display:flex;align-items:flex-start;gap:5px}
.booking-head strong{flex:1}
.plan-check{
  flex:none;
  width:22px;height:22px;min-width:22px;
  border-radius:50%;padding:0;margin:-2px 0 0 -1px;
  font-weight:900;font-size:.85rem;line-height:1;
  background:#fff;border:1px solid #9da4aa;color:#737a80;
}
.plan-check.checked{background:#dff2e4;border-color:#61a170;color:#236c36}
.plan-check-readonly{
  display:inline-flex;align-items:center;justify-content:center;
  flex:none;width:18px;height:18px;border-radius:50%;
  background:#dff2e4;color:#236c36;font-weight:900;font-size:.72rem;
}
.booking-confirmed{box-shadow:inset 0 0 0 1px rgba(65,130,78,.12)}
.month-check{width:18px;height:18px;min-width:18px;font-size:.7rem;margin-top:-1px}

/* V3.6.2 – Prüfmodus unübersehbar in der Kopfzeile */
.review-header-btn{
  border-color:#70a97c!important;
  background:#e5f3e8!important;
  color:#245f31!important;
  font-weight:800!important;
}
.review-header-controls{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  padding-left:4px;
}
.review-header-controls.hidden{display:none!important}
.review-header-controls .review-label{
  color:#28653a;
  font-weight:800;
  font-size:.82rem;
}

/* V3.6.3 – Prüfstatus wird in der Admin-Maske gesetzt */
.confirmed-card{border-color:#b8d8bf!important;background:#f3faf4!important}
.confirmed-card input:checked + span strong{color:#216b34}
.confirmed-dot,.unconfirmed-dot{display:inline-flex;align-items:center;justify-content:center;width:25px;height:25px;border-radius:50%;font-weight:900}
.confirmed-dot{background:#dff2e4;color:#236c36}.unconfirmed-dot{background:#f0f1f2;color:#8a9096}
.confirmed-filterbar{display:flex;align-items:center;gap:9px;margin:0 0 10px;font-size:.82rem;color:#667085}
.confirmed-filterbar>span{font-weight:700}
.confirmed-badge{display:inline-flex;align-items:center;flex:none;padding:2px 5px;border-radius:5px;background:#dff2e4;color:#206633;font-size:.62rem;font-weight:900;white-space:nowrap}
.month-confirmed-badge{width:17px;height:17px;padding:0;justify-content:center;border-radius:50%;font-size:.65rem}
.booking-confirmed{box-shadow:inset 0 0 0 2px rgba(68,139,82,.24)!important}

/* V3.6.5 – Prüfkennzeichnung in eigener Zeile */
.confirmed-row{display:block;width:100%;margin:0 0 4px 0;line-height:1}
.confirmed-row .confirmed-badge{display:inline-flex;max-width:100%}
.booking-confirmed .booking-head{width:100%}

/* V3.6.6 – robuster Prüfstatus */
.status-cell{white-space:nowrap}
.confirmed-list-badge{display:inline-flex;align-items:center;padding:3px 7px;border-radius:999px;background:#dff2e4;color:#206633;font-size:.68rem;font-weight:900}
.unconfirmed-list-badge{color:#a0a5aa;font-weight:700}

/* V3.7.1 – Reparatur: anklickbare Karten behalten ihre vollständige Kartenfläche */
.booking{display:block;width:100%;}
/* V3.7 – ruhigere Belegungskarten, Mehrfachbelegung und Direktbearbeitung */
.booking-time{display:block;line-height:1.2;margin-bottom:2px}
.booking-time strong{display:block;font-weight:800;white-space:nowrap}
.booking-main{display:block;font-weight:800;line-height:1.25;color:var(--text)}
.booking-editable{text-decoration:none;color:inherit;cursor:pointer;position:relative}
.booking-editable:visited{color:inherit}
@media (hover:hover) and (pointer:fine){
  .booking-editable:hover{box-shadow:inset 0 0 0 2px rgba(64,78,92,.22)}
}
.booking-editable:focus-visible{outline:2px solid #536579;outline-offset:2px}
.field-strip{display:flex;align-items:center;gap:4px;margin-top:5px;font-size:.68rem;font-weight:800;color:#747b83;line-height:1}
.field-pill{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 4px;border:1px solid #bcc2c8;border-radius:4px;background:rgba(255,255,255,.52)}
.field-pill.active{background:#59636d;border-color:#59636d;color:#fff}
.field-sep{opacity:.5}
.month-time-row{display:flex;align-items:center;gap:4px;line-height:1.15}
.month-time-row strong{display:block;white-space:nowrap}
.month-booking-main{display:block;margin-top:2px;line-height:1.15}
.month-booking.booking-editable{display:block}
.month-booking .field-strip{margin-top:3px;font-size:.62rem;gap:3px}
.month-booking .field-pill{min-width:15px;height:15px;padding:0 3px;border-radius:3px}


/* V3.7.2: Prüfstatus direkt in der Liste schaltbar */
.confirm-toggle{white-space:nowrap;border:1px solid #c8cdd2;background:#fff;color:#5c6670;border-radius:999px;padding:.25rem .5rem;font-size:.78rem;line-height:1.2;cursor:pointer}
.confirm-toggle:hover{background:#f3f5f6}
.confirm-toggle.is-confirmed{border-color:#8fb89a;background:#edf7ef;color:#246536;font-weight:700}
.calendar-edit-context .calendar-back-btn{margin-left:0;margin-right:.15rem}
.calendar-edit-context .calendar-back-btn+strong{margin-left:.15rem}

/* v3.7.3: Rueckweg aus Kalender + kompakter Pruefstatus */
.calendar-return-bar{max-width:1100px;margin:12px auto -6px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 12px;border:1px solid #cfd6dd;border-radius:10px;background:#f7f9fa}
.calendar-return-bar .calendar-back-btn{font-weight:700;background:#fff}
.calendar-return-bar span{color:#5c6670;font-size:.9rem}
.status-head,.status-cell{width:72px;min-width:72px;text-align:center!important;white-space:nowrap}
.status-cell .confirm-toggle{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border-radius:50%;font-size:1rem;font-weight:800;line-height:1}
.status-cell .confirm-toggle.is-confirmed{background:#e5f3e8;border-color:#74a982;color:#246536}
.status-cell .confirm-toggle:not(.is-confirmed){background:#fff;color:#858c93}
@media(max-width:700px){.status-head,.status-cell{width:58px;min-width:58px}.status-head{font-size:.72rem}.calendar-return-bar{margin-top:8px}}


/* V3.8 – Saison-Sichtbarkeit, Kalendernavigation, Vergleich, Freie Zeiten */
.booking-offseason,.month-booking.booking-offseason{opacity:.48!important;outline:2px dashed #8f969d!important;outline-offset:-3px!important;box-shadow:none!important;filter:saturate(.55)}
.booking-offseason:hover{opacity:.72!important}
.offseason-label{display:inline-block!important;width:max-content;margin-top:4px;padding:1px 5px;border:1px dashed #8b9299;border-radius:4px;font-size:.62rem;font-weight:750;color:#6d747c!important;background:rgba(255,255,255,.5)}
.sport-freie-zeiten{background:#dfff63!important;border-left-color:#76a900!important}
.month-booking.sport-freie-zeiten{background:#dfff63!important;border-left-color:#76a900!important}
.calendar-nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 12px}.calendar-nav label{display:flex;align-items:center;gap:7px;font-size:.86rem;font-weight:700}.calendar-nav input{padding:7px 9px}.nav-sep{width:1px;height:30px;background:var(--line);margin:0 3px}.nav-label{font-weight:700}
.year-wrap{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px}.year-heading{display:flex;align-items:baseline;gap:10px;margin-bottom:14px}.year-heading strong{font-size:1.5rem}.year-heading span{color:var(--muted)}.year-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.year-month{text-align:left;padding:18px;border-radius:10px;background:#fafbfc}.year-month strong,.year-month span{display:block}.year-month strong{font-size:1rem}.year-month span{font-size:.78rem;color:var(--muted);margin-top:3px}.year-month.is-current{border-color:#687783;background:#eef1f4}
.compare-wrap{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px}.compare-head{display:flex;align-items:end;gap:18px;flex-wrap:wrap;margin-bottom:12px}.compare-head label{display:flex;flex-direction:column;gap:5px;font-weight:700}.compare-head>div{display:flex;flex-direction:column;gap:2px}.compare-picker{display:flex;gap:8px;overflow:auto;padding:3px 0 12px}.compare-picker-group{min-width:210px;border:1px solid var(--line);border-radius:9px;padding:9px;background:#fafafa}.compare-picker-group>strong{display:block;margin-bottom:5px}.compare-picker-group label{display:flex;align-items:center;gap:7px;padding:3px 0;font-size:.86rem}.compare-picker-group input{width:17px;height:17px}.compare-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}.compare-column{border:1px solid var(--line);border-radius:10px;overflow:hidden;min-width:0}.compare-column>header{position:static;background:#eef0f3;border-bottom:1px solid var(--line);padding:9px}.compare-column>header strong,.compare-column>header span{display:block}.compare-column>header span{font-size:.8rem;color:var(--muted);margin-top:2px}.compare-column>div{padding:7px}.compare-empty{padding:28px;text-align:center;color:var(--muted);grid-column:1/-1}
.last-venue-banner td{background:#edf2f5!important;color:#3d4a56;font-size:.82rem;border-top:2px solid #9aa7b2}.last-venue-divider td{background:#f5f6f7!important;color:#7a828a;font-size:.75rem;font-weight:700}.last-venue-row td:first-child{border-left:3px solid #8294a3}
@media(max-width:800px){.year-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.nav-sep{display:none}.compare-grid{grid-template-columns:1fr}}
@media(max-width:420px){.year-grid{grid-template-columns:1fr}}
\n\n/* V3.8.1 – freie Zeiten automatisch, zuletzt bearbeiteter Standort, Saison-Symbole */
.free-filter-option{background:#dfff63;font-weight:800}
.free-slot.free-highlight{background:#dfff63!important;border:1px solid #8abf14!important;border-left:5px solid #76a900!important;border-radius:7px;padding:7px 8px;margin:4px 0;color:#243000!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.25)}
.free-slot.free-highlight strong,.free-slot.free-highlight span{display:block;color:#243000!important}.free-slot.free-highlight span{font-size:.72rem;font-weight:800;margin-top:2px}
.booking,.month-booking{position:relative;overflow:hidden}
.booking.season-summer::after,.month-booking.season-summer::after,.booking.season-winter::after,.month-booking.season-winter::after{position:absolute;right:4px;top:-5px;z-index:0;font-size:2.4rem;line-height:1;opacity:.10;pointer-events:none;filter:grayscale(.15)}
.booking.season-summer::after,.month-booking.season-summer::after{content:'☀'}
.booking.season-winter::after,.month-booking.season-winter::after{content:'☃'}
.booking.season-summer>*,.booking.season-winter>*,.month-booking.season-summer>*,.month-booking.season-winter>*{position:relative;z-index:1}
.booking-offseason.season-summer::after,.booking-offseason.season-winter::after,.month-booking.booking-offseason.season-summer::after,.month-booking.booking-offseason.season-winter::after{opacity:.13}


/* V3.8.2 – Freie Zeiten im Plan immer sichtbar; Saison-Wasserzeichen kräftiger */
.booking.season-summer::after,.month-booking.season-summer::after,.booking.season-winter::after,.month-booking.season-winter::after{font-size:2.75rem;opacity:.22;top:-3px;right:5px;filter:none}
.booking-offseason.season-summer::after,.booking-offseason.season-winter::after,.month-booking.booking-offseason.season-summer::after,.month-booking.booking-offseason.season-winter::after{opacity:.30}

/* V3.8.3 – 15-Minuten-Eingabe, Tagesgliederung, klarere Farben */
.time-parts{display:grid;grid-template-columns:minmax(72px,1fr) auto minmax(72px,1fr);gap:.4rem;align-items:center;margin-top:.28rem}.time-parts>span{font-weight:800;color:var(--muted);text-align:center}.time-parts select{width:100%;min-width:0}.field-error{display:block;margin-top:.35rem;padding:.45rem .55rem;border-radius:.45rem;background:#fdecec;border:1px solid #e0a1a1;color:#7a1111;font-size:.78rem;line-height:1.3}.field-invalid .time-parts select{border-color:#c85858!important;box-shadow:0 0 0 2px rgba(200,88,88,.10)}
.day-timeline{display:flex;flex-direction:column;gap:0}.daypart-band{position:relative;min-height:36px;padding:15px 0 4px;border-top:1px dashed rgba(80,90,100,.18)}.daypart-band:first-child{border-top:0;padding-top:4px}.daypart-label{position:absolute;left:2px;right:2px;top:2px;display:flex;justify-content:space-between;gap:5px;pointer-events:none;color:#8a9299;font-size:.56rem;line-height:1;text-transform:uppercase;letter-spacing:.035em}.daypart-label small{font-size:.54rem;text-transform:none;letter-spacing:0;color:#a1a7ad}.daypart-band:first-child .daypart-label{display:none}.daypart-items{display:flex;flex-direction:column;gap:4px;min-width:0}.daypart-0{min-height:42px}.daypart-1{min-height:38px;background:rgba(245,247,248,.22)}.daypart-2{min-height:46px}.daypart-3{min-height:44px;background:rgba(245,247,248,.28)}.daypart-items>.booking,.daypart-items>.free-slot,.daypart-items>.closure-block{margin-top:0;margin-bottom:0}.weekend-free-note{display:block;margin:8px 4px;color:#7b8085;font-size:.73rem;line-height:1.3;text-align:center}.weekend-free-note small{font-size:.68rem;color:#9aa0a6}

/* Hausfarben deutlicher voneinander getrennt, aber weiterhin gedeckt */
.sport-turnen{background:#e8f1d1!important;border-left-color:#758f39!important}
.sport-handball{background:#eee4f5!important;border-left-color:#7c5c96!important}
.sport-fussball{background:#f3e8c8!important;border-left-color:#a38632!important}
.sport-tischtennis{background:#dff1f3!important;border-left-color:#438f9c!important}
.sport-volleyball{background:#dde9f6!important;border-left-color:#527da9!important}
.sport-taekwondo{background:#f8e2ce!important;border-left-color:#b96f38!important}
.sport-basketball{background:#f3d9cc!important;border-left-color:#ad5635!important}
.sport-lossesterne{background:#f3dce2!important;border-left-color:#aa6576!important}
.sport-rehasport{background:#e2eee6!important;border-left-color:#4f8564!important}
.sport-tanzen{background:#f1e0ef!important;border-left-color:#9a5b91!important}
.sport-tennis{background:#fff1b8!important;border-left-color:#c79b16!important}

/* Externe Nutzer bewusst als eigene, klar unterscheidbare Gruppen */
.sport-schule,.sport-extern-schule{background:#e5edf3!important;border-left-color:#6f8ca0!important}
.sport-lg-vhs,.sport-extern-lg{background:#eee8dd!important;border-left-color:#9a815f!important}
.sport-schuetzen{background:#ece6f0!important;border-left-color:#806e8e!important}
.sport-sonstige,.sport-extern{background:#ececec!important;border-left-color:#74787d!important}

/* V3.8.4 – echte proportionale Zeitachse 08:00–22:00 */
.proportional-timeline{position:relative;min-height:420px;overflow:hidden;background:linear-gradient(to bottom,rgba(248,249,250,.18),rgba(248,249,250,.18))}
.proportional-timeline .timeline-mark{position:absolute;left:0;right:0;height:0;border-top:1px dashed rgba(80,90,100,.18);z-index:0;pointer-events:none;color:#9299a0;font-size:.55rem;text-transform:uppercase;letter-spacing:.035em}
.proportional-timeline .timeline-mark span{position:absolute;left:2px;top:2px;background:rgba(255,255,255,.72);padding-right:4px}
.proportional-timeline .timeline-mark small{position:absolute;right:2px;top:2px;font-size:.53rem;color:#a0a6ac;background:rgba(255,255,255,.72);padding-left:4px;text-transform:none;letter-spacing:0}
.proportional-timeline .timeline-entry{position:absolute;left:0;right:0;z-index:1;min-height:22px;padding:2px 0;overflow:hidden}
.proportional-timeline .timeline-entry>.booking,.proportional-timeline .timeline-entry>.free-slot,.proportional-timeline .timeline-entry>.closure-block{height:100%;margin:0;overflow:hidden;display:block}
.proportional-timeline .timeline-entry>.booking{padding-top:6px;padding-bottom:5px}
.proportional-timeline .timeline-entry>.free-slot{padding-top:5px;padding-bottom:4px}
.proportional-timeline .timeline-entry>.closure-block{padding-top:5px;padding-bottom:4px}
/* Alte Band-Darstellung wird in der proportionalen Achse nicht mehr verwendet. */

/* V3.8.5 – Statistik */
.statistics-page .stats-main{max-width:1280px;margin:0 auto;padding:18px 20px 32px}.stats-header-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.stats-header-actions a{text-decoration:none}.stats-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.75fr);gap:18px;align-items:start;margin-bottom:18px}.stats-intro h2,.stats-table-head h2{margin:0 0 4px}.stats-intro p,.stats-table-head p{margin:0;color:var(--muted)}.stats-note{padding:12px 14px;border:1px solid #d7dde2;border-radius:10px;background:#f7f9fa;color:#43505b;line-height:1.42}.stats-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 18px}.stats-card{border:1px solid #d7dde2;border-radius:11px;padding:14px 15px;background:#fff}.stats-card span,.stats-card small{display:block;color:var(--muted)}.stats-card strong{display:block;font-size:1.65rem;line-height:1.15;margin:4px 0}.stats-table-card{border:1px solid #d7dde2;border-radius:12px;background:#fff;overflow:hidden}.stats-table-head{display:flex;justify-content:space-between;gap:18px;align-items:end;padding:15px 16px 12px;border-bottom:1px solid #e2e6e9}.stats-legend{white-space:nowrap;color:var(--muted);font-size:.88rem}.stats-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin:0 4px 0 10px}.stats-dot.all{background:#78838d}.stats-dot.summer{background:#d9a72e}.stats-dot.winter{background:#7e9eb7}.stats-table{width:100%;border-collapse:collapse}.stats-table th,.stats-table td{padding:11px 12px;border-bottom:1px solid #e6eaed;text-align:right;vertical-align:top}.stats-table thead th{background:#f5f7f8;font-size:.82rem;color:#4c5963}.stats-table th:first-child,.stats-table td:first-child{text-align:left}.stats-table tbody th{font-weight:750}.stats-table td strong{display:block;font-size:1rem}.stats-table td small{display:block;color:#8a9299;font-size:.72rem;margin-top:2px}.stats-table .stats-emphasis{background:#f7faf6}.stats-table tfoot th,.stats-table tfoot td{font-weight:800;background:#eef2f4;border-bottom:0;border-top:2px solid #c8d0d6}.stats-footnote{margin-top:14px;padding:11px 13px;border-left:4px solid #88939c;background:#f7f9fa;color:#53606a;font-size:.88rem;line-height:1.42}@media(max-width:850px){.stats-intro{grid-template-columns:1fr}.stats-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-table-head{display:block}.stats-legend{margin-top:10px;white-space:normal}}@media(max-width:520px){.statistics-page .stats-main{padding:12px}.stats-summary{grid-template-columns:1fr}.stats-table{min-width:760px}}
@media print{.statistics-page header .stats-header-actions{display:none!important}.statistics-page header{padding:0 0 10px!important}.statistics-page .stats-main{max-width:none;padding:0}.statistics-page .stats-summary{grid-template-columns:repeat(4,1fr);gap:7px}.statistics-page .stats-card{padding:8px 9px}.statistics-page .stats-card strong{font-size:1.25rem}.statistics-page .stats-table-card{border-color:#aaa}.statistics-page .stats-table th,.statistics-page .stats-table td{padding:6px 7px;font-size:10pt}.statistics-page .stats-table td small{font-size:8pt}.statistics-page .stats-footnote{font-size:8.5pt}.statistics-page .stats-intro{margin-bottom:10px}.statistics-page .stats-note{padding:8px 9px;font-size:9pt}@page{size:A4 landscape;margin:10mm}}


/* V3.8.6 – gemeinsame Zeitachse / ruhigere Farblogik */
.grid .timeline-cell{padding:0!important;min-height:0!important;position:relative;background-color:#fff}
.grid .timeline-cell.holiday-cell{background-color:#fff9fa}
.proportional-timeline{min-height:0!important;width:100%;border-radius:0;background:
  linear-gradient(to bottom,transparent 0,transparent calc(32.14% - 1px),rgba(92,103,112,.055) 32.14%,transparent calc(32.14% + 1px)),
  linear-gradient(to bottom,transparent 0,transparent calc(57.14% - 1px),rgba(92,103,112,.055) 57.14%,transparent calc(57.14% + 1px)),
  linear-gradient(to bottom,transparent 0,transparent calc(78.57% - 1px),rgba(92,103,112,.055) 78.57%,transparent calc(78.57% + 1px));
}
.proportional-timeline .timeline-entry{left:5px;right:5px;padding:2px 0;box-sizing:border-box}
.proportional-timeline .timeline-mark span,.proportional-timeline .timeline-mark small{z-index:3}
/* Turnen erdig; Grün ist semantisch für freie Zeit reserviert. */
.sport-turnen,.month-booking.sport-turnen{background:#f0dfcf!important;border-left-color:#9a6541!important}
.free-slot.free-highlight,.free-slot{background:#dff2d8!important;border:1px solid #91bd82!important;border-left:5px solid #62a34f!important;color:#234b28!important;box-shadow:none!important}
.free-slot.free-highlight strong,.free-slot.free-highlight span,.free-slot strong,.free-slot span{color:#234b28!important}
.free-filter-option{background:#dff2d8!important;color:#234b28!important}
@media print{.grid .timeline-cell{padding:0!important}.proportional-timeline .timeline-entry{left:3px;right:3px}}

/* V3.8.6 – Protokoll */
.audit-list{display:flex;flex-direction:column;gap:8px}.audit-item{display:grid;grid-template-columns:minmax(145px,.35fr) minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid #dce1e5;border-radius:9px;padding:10px 12px;background:#fff}.audit-meta{font-size:.78rem;color:var(--muted)}.audit-main strong{display:block}.audit-main span{display:block;font-size:.82rem;color:#65717a;margin-top:2px}.audit-undone{opacity:.55;background:#f5f6f7}.audit-badge{display:inline-block;padding:2px 6px;border-radius:999px;background:#eef1f3;font-size:.68rem;font-weight:800;text-transform:uppercase;margin-right:5px}.audit-actions button{white-space:nowrap}@media(max-width:700px){.audit-item{grid-template-columns:1fr}.audit-actions{justify-self:start}}
/* Statistikspalten gleichmäßig und präsentationsfest */
.stats-table{table-layout:fixed}.stats-table th:first-child,.stats-table td:first-child{width:24%}.stats-table th:not(:first-child),.stats-table td:not(:first-child){width:15.2%}

/* V3.8.7 – Präsentationsansicht: konsequente Zeitspalten + Wochenstatistik */
.proportional-timeline{position:relative!important;display:block!important}
.timeline-empty{position:absolute;left:8px;right:8px;top:50%;transform:translateY(-50%);text-align:center;color:#9aa1a7;font-size:.76rem;line-height:1.35;z-index:0}
.timeline-empty .weekend-free-note{margin:0;display:inline-block}
.grid .timeline-cell>.empty,.grid .timeline-cell>.weekend-free-note{display:none!important}

/* Tabellen-/Spaltenbild bewusst auf die drei relevanten Präsentationswerte reduziert. */
.stats-intro-compact{grid-template-columns:minmax(0,1.1fr) minmax(300px,.7fr)}
.stats-summary-presentation{grid-template-columns:repeat(3,minmax(0,1fr));max-width:900px}
.stats-card-summer{border-top:4px solid #d5a12d}.stats-card-winter{border-top:4px solid #7899b4}
.stats-week-table{table-layout:fixed}
.stats-week-table th:first-child,.stats-week-table td:first-child{width:34%}
.stats-week-table th:not(:first-child),.stats-week-table td:not(:first-child){width:22%}
.stats-week-table thead th{text-align:center;vertical-align:bottom;padding-top:13px;padding-bottom:13px}
.stats-week-table thead th:first-child{text-align:left}
.stats-week-table thead small{font-size:.69rem;font-weight:600;color:#7c8790}
.stats-week-table tbody th{font-size:1rem}
.stats-week-table td{text-align:center!important;vertical-align:middle;padding-top:12px;padding-bottom:12px}
.stats-week-table td strong{font-size:1.15rem}
.stats-week-table .stats-season.summer{background:#fffaf0}
.stats-week-table .stats-season.winter{background:#f5f9fc}
.stats-week-table .stats-difference{background:#fafbfb}
.stats-week-table .stats-difference.is-plus strong{color:#456d49}
.stats-week-table .stats-difference.is-minus strong{color:#8a5c4d}
.stats-week-table .stats-difference.is-even strong{color:#7b858c}
@media(max-width:850px){.stats-intro-compact{grid-template-columns:1fr}.stats-summary-presentation{grid-template-columns:1fr 1fr}.stats-week-table{min-width:650px}}
@media(max-width:520px){.stats-summary-presentation{grid-template-columns:1fr}}
@media print{
  .stats-summary-presentation{grid-template-columns:repeat(3,1fr);max-width:none}
  .stats-week-table th,.stats-week-table td{font-size:10.5pt!important;padding:7px 8px!important}
  .stats-week-table td strong{font-size:12pt}
  .stats-table-head p,.stats-footnote,.stats-note{font-size:9pt}
}


/* V3.8.8 – Präsentationsfix: reine Zeitachse ohne Tagesabschnitt-Beschriftungen */
/* Alte Vormittag/Nachmittag-Bandlogik vollständig neutralisieren. */
.daypart-band,.daypart-label,.daypart-items{background:none!important}
.proportional-timeline{
  background:#fff!important;
  overflow:hidden!important;
}
.proportional-timeline .timeline-mark{
  border-top:1px solid rgba(90,100,110,.12)!important;
  color:transparent!important;
  z-index:0!important;
}
.proportional-timeline .timeline-mark span{display:none!important}
.proportional-timeline .timeline-mark small{
  right:4px!important;
  top:2px!important;
  padding:0 2px!important;
  background:rgba(255,255,255,.88)!important;
  color:#a5acb2!important;
  font-size:.50rem!important;
  font-weight:500!important;
}

/* Karten dürfen ihre reale Zeitspanne niemals verlassen. */
.proportional-timeline .timeline-entry{
  min-height:0!important;
  padding:1px 0!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
}
.proportional-timeline .timeline-entry>.booking,
.proportional-timeline .timeline-entry>.free-slot,
.proportional-timeline .timeline-entry>.closure-block{
  box-sizing:border-box!important;
  min-height:0!important;
  height:100%!important;
  max-height:100%!important;
  overflow:hidden!important;
  margin:0!important;
}
.proportional-timeline .timeline-entry>.booking{
  padding:4px 7px!important;
  line-height:1.12!important;
}
.proportional-timeline .timeline-entry>.free-slot,
.proportional-timeline .timeline-entry>.closure-block{
  padding:3px 7px!important;
  line-height:1.1!important;
}

/* Je kürzer der Termin, desto reduzierter die Beschriftung. */
.timeline-entry.duration-medium .booking .booking-title,
.timeline-entry.duration-medium .booking .meta,
.timeline-entry.duration-medium .booking .single-badge{display:none!important}
.timeline-entry.duration-short .booking .confirmed-row,
.timeline-entry.duration-short .booking .booking-title,
.timeline-entry.duration-short .booking .meta,
.timeline-entry.duration-short .booking .single-badge,
.timeline-entry.duration-short .booking .field-strip{display:none!important}
.timeline-entry.duration-short .booking .booking-main{font-size:.78rem!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.timeline-entry.duration-short .booking .booking-time{font-size:.73rem!important;white-space:nowrap}
.timeline-entry.duration-short .free-slot span,
.timeline-entry.duration-short .closure-block div{display:none!important}
.timeline-entry.duration-short .free-slot strong,
.timeline-entry.duration-short .closure-block strong{font-size:.70rem!important;white-space:nowrap}
.timeline-entry.duration-tiny .booking>*,
.timeline-entry.duration-tiny .free-slot>*,
.timeline-entry.duration-tiny .closure-block>*{display:none!important}
.timeline-entry.duration-tiny .booking,
.timeline-entry.duration-tiny .free-slot,
.timeline-entry.duration-tiny .closure-block{padding:0!important}

/* Die Zeit gehört zur Karte, nicht als großflächige Hintergrundbeschriftung. */
.booking-time{margin:0 0 2px!important}
.booking-main{line-height:1.13!important}
.booking-title,.booking .meta{line-height:1.12!important}

@media print{
  .proportional-timeline .timeline-mark small{font-size:6pt!important}
}
\n\n/* V3.8.9 – Präsentationsmodus: klare Vereinsbelegung */\n/* Keine Hintergrund-Uhrzeiten oder Tagesabschnitte mehr. */\n.proportional-timeline .timeline-mark{display:none!important}\n\n/* Schulnutzung blockiert weiterhin die Halle, tritt optisch aber stark zurück. */\n.proportional-timeline .booking-school{\n  background:#f3f5f6!important;\n  border-color:#cfd6da!important;\n  border-left:3px solid #aeb8bd!important;\n  color:#69747a!important;\n  box-shadow:none!important;\n  opacity:.58!important;\n}\n.proportional-timeline .booking-school .confirmed-row,\n.proportional-timeline .booking-school .booking-title,\n.proportional-timeline .booking-school .meta,\n.proportional-timeline .booking-school .field-strip,\n.proportional-timeline .booking-school .single-badge{display:none!important}\n.proportional-timeline .booking-school .booking-main{font-weight:600!important;font-size:.76rem!important}\n.proportional-timeline .booking-school .booking-time{font-size:.70rem!important}\n\n/* Freie Zeit ist semantisch immer grün. */\n.proportional-timeline .free-slot,\n.proportional-timeline .free-highlight{\n  background:#dff0d2!important;\n  border:1px solid #86b56b!important;\n  border-left:4px solid #6da64e!important;\n  color:#28551f!important;\n}\n
/* V3.9.0 – Präsentationsstand: kompakte, chronologische Wochenkarten */
/* Keine proportionale Zeitachse mehr: alle Einträge haben eine robuste Inhalts-Höhe. */
.timeline-cell{padding:5px!important;vertical-align:top!important}
.compact-timeline{display:flex!important;flex-direction:column!important;gap:5px!important;min-height:54px!important;background:transparent!important;position:relative!important;overflow:visible!important}
.compact-timeline .timeline-entry{position:static!important;display:block!important;height:auto!important;min-height:0!important;left:auto!important;right:auto!important;top:auto!important;padding:0!important;overflow:visible!important}
.compact-timeline .timeline-entry>.booking,
.compact-timeline .timeline-entry>.free-slot,
.compact-timeline .timeline-entry>.closure-block{height:auto!important;min-height:0!important;margin:0!important;overflow:hidden!important;box-sizing:border-box!important}
.compact-timeline .booking{padding:7px 8px!important;border-left-width:5px!important;line-height:1.18!important}
.compact-timeline .booking-time{font-size:.76rem!important;margin:0 0 2px!important}
.compact-timeline .booking-main{font-size:.82rem!important;font-weight:800!important;line-height:1.15!important}
.compact-timeline .booking-title{font-size:.72rem!important;line-height:1.15!important;margin-top:2px!important}
.compact-timeline .meta{font-size:.68rem!important;margin-top:2px!important}
.compact-timeline .confirmed-row{margin-bottom:3px!important}
.compact-timeline .confirmed-badge{font-size:.60rem!important;padding:1px 4px!important}
.compact-timeline .field-strip{margin-top:4px!important}

/* Regelmäßige Schule: technisch belegt, visuell nur ein ruhiger Hinweis. */
.compact-timeline .booking-school:not(.booking-special-block){
  background:#f2f4f5!important;border:1px solid #d6dadd!important;border-left:4px solid #a8b0b5!important;
  color:#667078!important;box-shadow:none!important;opacity:1!important;padding:5px 7px!important;
}
.compact-timeline .booking-school:not(.booking-special-block) .confirmed-row,
.compact-timeline .booking-school:not(.booking-special-block) .booking-title,
.compact-timeline .booking-school:not(.booking-special-block) .meta,
.compact-timeline .booking-school:not(.booking-special-block) .field-strip,
.compact-timeline .booking-school:not(.booking-special-block) .single-badge{display:none!important}
.compact-timeline .booking-school:not(.booking-special-block) .booking-time{display:inline!important;font-size:.68rem!important;font-weight:700!important;margin-right:5px!important}
.compact-timeline .booking-school:not(.booking-special-block) .booking-main{display:inline!important;font-size:.70rem!important;font-weight:650!important}

/* Sondersperrung / einmalige Schulbelegung: bewusst kräftiges Warnrot. */
.compact-timeline .booking-special-block,
.compact-timeline .closure-block{
  background:#f7d6d6!important;border:1px solid #c93838!important;border-left:6px solid #b51f28!important;
  color:#74151b!important;box-shadow:none!important;opacity:1!important;
}
.compact-timeline .booking-special-block .booking-main,
.compact-timeline .booking-special-block .booking-time,
.compact-timeline .booking-special-block .booking-title,
.compact-timeline .closure-block strong{color:#74151b!important}

/* Klare Spartenabstände – Grün bleibt ausschließlich für freie Zeit reserviert. */
.sport-turnen,.month-booking.sport-turnen{background:#f1ddc8!important;border-left-color:#a45f2f!important}
.sport-lossesterne,.month-booking.sport-lossesterne{background:#f3d7df!important;border-left-color:#a93858!important}
.sport-tanzen,.month-booking.sport-tanzen{background:#e8ddf3!important;border-left-color:#74469a!important}
.compact-timeline .free-slot,.compact-timeline .free-highlight{
  background:#dcefd4!important;border:1px solid #79aa68!important;border-left:5px solid #4f913d!important;
  color:#234f20!important;padding:6px 8px!important;box-shadow:none!important;
}
.compact-timeline .free-slot strong,.compact-timeline .free-slot span{color:#234f20!important}

/* Saisonhinweise bleiben sichtbar, überlagern sich aber nicht mehr. */
.compact-timeline .booking-offseason{opacity:.68!important;border-style:dashed!important}
.compact-timeline .season-summer::after,.compact-timeline .season-winter::after{pointer-events:none}

@media print{
  .compact-timeline{gap:3px!important;min-height:0!important}
  .compact-timeline .booking{padding:5px 6px!important}
}

/* V3.9.2 – Geschäftsstelle Am Stechkopf 7: unbelegt = geschlossen, nicht „freie Zeit“. */
.compact-timeline .closed-slot{
  background:#f6dddd!important;
  border:1px solid #c44b4b!important;
  border-left:5px solid #aa232a!important;
  border-radius:7px!important;
  color:#73171c!important;
  padding:6px 8px!important;
  box-shadow:none!important;
}
.compact-timeline .closed-slot strong,
.compact-timeline .closed-slot span{display:block;color:#73171c!important}
.compact-timeline .closed-slot span{font-size:.72rem;font-weight:800;margin-top:2px}
