/* Anfragekalender (kalender.js), Vorschau 05 */
.cal { position: absolute; z-index: 80; width: 640px; background: #fff; border-radius: 22px; padding: 18px 20px 16px; box-shadow: 0 24px 60px rgba(12,47,64,.22); border: 1px solid var(--sand-2); color: var(--sea-deep); font: 500 14px/1.4 var(--sans); }
.cal-h { display: flex; align-items: center; gap: 12px; }
.cal-h b { flex: 1; text-align: center; font-size: 14px; }
.cal .nav { width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--sand-2); background: #fff; font-size: 20px; line-height: 1; color: var(--sea-deep); cursor: pointer; }
.cal .nav:disabled { opacity: .3; cursor: default; }
.cal-ms { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; margin-top: 10px; }
.cal-t { text-align: center; font: 500 18px/1.2 var(--serif); margin-bottom: 8px; }
.cal-g { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px 0; }
.cal-wd { text-align: center; font-size: 11px; font-weight: 700; color: var(--muted); padding: 4px 0; }
.cal-g button { height: 38px; border: 0; background: none; font: 600 14px/1 var(--sans); color: var(--sea-deep); cursor: pointer; border-radius: 10px; position: relative; }
.cal-g button:not(:disabled):hover { background: var(--turq-soft); }
.cal-g button:disabled { cursor: default; }
.cal-g button.past { color: #c9d1d5; text-decoration: line-through; text-decoration-color: rgba(123,141,150,.4); }
.cal-g button.no { color: #b6c1c6; }
/* Belegt (Belegungskalender, Boss 11.10.2026) */
.cal-g button.busy, .sw.busy { color: #9aa7ae; background: #e9edef; text-decoration: line-through; text-decoration-color: rgba(123,141,150,.6); }
.cal-g button.busy { border-radius: 0; }
/* Wechseltage halb eingefärbt: Anreisetag einer Buchung unten rechts (Nachmittag), Abreisetag oben links (Vormittag) */
.cal-g button.ci:not(.a):not(.b):not(.in), .sw.ci { background: linear-gradient(135deg, transparent 50%, #e9edef 50%); border-radius: 0; }
.cal-g button.co:not(.a):not(.b):not(.in), .sw.co { background: linear-gradient(135deg, #e9edef 50%, transparent 50%); border-radius: 0; }
.cal-g button.ci:disabled { color: #9aa7ae; }
.sw.ci, .sw.co { border: 1px solid #e3e8ea; }
.sw.co { margin-left: -4px; }
/* Optionen (Development 13.10.2026): sperren wie Buchungen, aber eigene Farbe (warmes Sandgelb) */
.cal-g button.busy.opt, .sw.busy.opt { color: #a8925a; background: #f5e9c6; text-decoration-color: rgba(168,146,90,.6); }
.cal-g button.ci.opt-ci:not(.a):not(.b):not(.in) { background: linear-gradient(135deg, transparent 50%, #f5e9c6 50%); }
.cal-g button.co.opt-co:not(.a):not(.b):not(.in) { background: linear-gradient(135deg, #f5e9c6 50%, transparent 50%); }
.cal-g button.ci.opt-ci:disabled { color: #a8925a; }
/* Vorlauftage: schraffiert, nicht wählbar */
.cal-g button.lead, .sw.lead { color: var(--sun); background: repeating-linear-gradient(135deg, rgba(233,137,95,.16) 0 4px, rgba(233,137,95,.04) 4px 8px); }
.cal-g button.today::after { content: ""; position: absolute; left: 50%; bottom: 5px; width: 4px; height: 4px; margin-left: -2px; border-radius: 50%; background: currentColor; }
.cal-g button.in { background: var(--turq-soft); border-radius: 0; }
.cal-g button.a, .cal-g button.b { background: var(--turq); color: #fff; }
.cal-g button.a:not(.b) { border-radius: 10px 0 0 10px; }
.cal-g button.b:not(.a) { border-radius: 0 10px 10px 0; }
.cal-g button.a.b { border-radius: 10px; }
.cal-n { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--sand-2); font-size: 12.5px; color: var(--text); }
.cal-n span { display: inline-flex; align-items: center; gap: 7px; }
.sw { display: inline-block; width: 18px; height: 14px; border-radius: 4px; }
.cal-f { display: flex; justify-content: space-between; align-items: center; margin-top: 12px; }
.cal-f .reset { border: 0; background: none; font: 700 14px/1 var(--sans); color: var(--muted); cursor: pointer; text-decoration: underline; }
.cal-f .btn { height: 42px; padding: 0 22px; font-size: 14px; }
[data-cal] { cursor: pointer; }
@media (max-width: 720px) { .cal { width: 340px; } .cal-ms { grid-template-columns: 1fr; } }
.cal.sheet { position: fixed; left: 0; right: 0; bottom: 0; top: auto; width: auto; border-radius: 22px 22px 0 0; padding-bottom: 22px; max-height: 88vh; overflow-y: auto; }
[hidden] { display: none !important; }
