/* Ergänzung zum bestehenden Rebstöckel-Design; keine Änderung an Geschäftslogik */
:root { --rb-green:#20543e; --rb-green-hover:#153f2d; --rb-border:#dce8df; --rb-muted:#61756b; }
main button, main input[type="submit"], main input[type="button"] { border-radius:10px; transition:background .16s ease,transform .16s ease,box-shadow .16s ease; cursor:pointer; font-weight:650; }
main button:hover, main input[type="submit"]:hover { transform:translateY(-1px); box-shadow:0 4px 12px rgba(22,62,42,.12); }
.rb-offer-actions { margin-top:24px; padding:24px; border:1px solid var(--rb-border); border-radius:18px; background:#fff; box-shadow:0 6px 24px rgba(30,65,45,.055); }
.rb-offer-actions h3 { margin:0 0 6px; color:#244d3b; }
.rb-hint { color:var(--rb-muted); font-size:.91rem; line-height:1.5; }
.rb-offer-actions textarea { width:100%; box-sizing:border-box; margin:14px 0 16px; padding:16px 18px; border:1px solid #d4e1d8; border-radius:12px; background:#fcfefd; line-height:1.65; font-size:14px; color:#24352c; }
.rb-action-row { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:8px 0 12px; }
.rb-action-row-secondary { padding-top:14px; border-top:1px solid #e6eee8; }
main .rb-btn, main a.rb-btn, main button.rb-btn { display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box; gap:8px; min-height:43px; padding:11px 17px; border-radius:10px; border:1px solid transparent; font:650 14px/1.35 inherit; font-family:inherit; font-size:14px; font-weight:650; line-height:1.35; text-align:center; text-decoration:none; cursor:pointer; transition:background .16s ease,box-shadow .16s ease,transform .16s ease; }
main .rb-btn:hover { text-decoration:none; transform:translateY(-1px); box-shadow:0 5px 15px rgba(19,64,40,.13); }
main .rb-btn-primary { background:var(--rb-green); color:white; border-color:var(--rb-green); }
main .rb-btn-primary:hover { background:var(--rb-green-hover); color:white; }
main .rb-btn-soft { background:#edf4ef; color:#234e39; border-color:#d5e4da; }
main .rb-btn-soft:hover { background:#e0ece4; color:#183e2b; }
main .rb-btn-whatsapp { background:#1d9d60; color:white; border-color:#1d9d60; }
main .rb-btn-whatsapp:hover { background:#14804d; color:white; }
main .rb-btn-small { min-height:34px; padding:7px 12px; font-size:13px; }
main .rb-btn:focus-visible { outline:3px solid #8bc4a3; outline-offset:3px; }
@media(max-width:640px){ .rb-offer-actions { padding:15px; } .rb-action-row .rb-btn { width:100%; } }
@media print { .rb-action-row, .rb-hint, .rb-offer-actions > p:has(.rb-btn) { display:none !important; } .rb-offer-actions { border:0;box-shadow:none;padding:0; } }

/* Kalender: Wochentag über dem Datum, Wochenenden leicht abgesetzt */
.booking-calendar th.rb-calendar-day { min-width: 36px; padding: 7px 4px; text-align: center; vertical-align: middle; }
.booking-calendar .rb-calendar-weekday { display: block; font-size: 11px; font-weight: 600; opacity: .75; line-height: 1.35; }
.booking-calendar .rb-calendar-date { display: block; font-size: 14px; font-weight: 700; line-height: 1.4; }
.booking-calendar th.rb-calendar-weekend { background-color: #e9f0ed; }

/* Kalender: Kalenderwochen und Monatsdruck */
.booking-calendar .rb-calendar-kw { background:#dfeae3; color:#254e3a; text-align:center; border-bottom:2px solid #b5ccbb; font-weight:750; font-size:12px; letter-spacing:.02em; }
.rb-calendar-toolbar { display:flex; gap:9px; align-items:center; flex-wrap:wrap; margin:12px 0; }
.rb-calendar-help { color:#5b6e62; font-size:13px; margin:8px 0 14px; }
.rb-calendar-scroll { max-width:100%; }
@page { size:A3 landscape; margin:10mm; }
@media print {
 html,body { background:#fff !important; color:#111 !important; margin:0 !important; padding:0 !important; }
 main { width:100% !important; max-width:none !important; display:block !important; margin:0 !important; padding:0 !important; box-shadow:none !important; border:0 !important; }
 main > header, .app-nav, .rb-calendar-toolbar, .rb-calendar-help { display:none !important; }
 .workspace { display:block !important; margin:0 !important; padding:0 !important; width:100% !important; max-width:none !important; box-shadow:none !important; border:0 !important; }
 .rb-calendar-title { margin:0 0 8mm !important; font-size:19pt !important; color:#111 !important; }
 .rb-calendar-scroll, .scroll { overflow:visible !important; max-height:none !important; width:100% !important; }
 .booking-calendar { width:100% !important; table-layout:fixed !important; border-collapse:collapse !important; font-size:8pt !important; }
 .booking-calendar th,.booking-calendar td { border:1px solid #aeb8b1 !important; padding:4px 2px !important; min-width:0 !important; overflow-wrap:anywhere !important; white-space:normal !important; }
 .booking-calendar .rb-room-heading, .booking-calendar tr > th:first-child { width:17mm !important; }
 .booking-calendar th.rb-calendar-day { min-width:0 !important; padding:4px 1px !important; }
 .booking-calendar .rb-calendar-weekday { font-size:7pt !important; }
 .booking-calendar .rb-calendar-date { font-size:9pt !important; }
 .booking-calendar td.reservation a { color:#111 !important; text-decoration:none !important; }
 .booking-calendar thead { display:table-header-group; }
 .booking-calendar tr { break-inside:avoid; }
 .rb-calendar-legend { margin-top:5mm !important; font-size:9pt !important; }
 * { -webkit-print-color-adjust:exact !important; print-color-adjust:exact !important; }
}

/* Individuelle Kalenderfarben und Urlaub */
.booking-calendar td.rb-color-cell {position:relative;}
.booking-calendar .rb-color-edit {position:absolute;right:2px;top:2px;width:23px;height:23px;min-width:0;padding:0;border:1px solid #ffffffa0;border-radius:6px;background:#ffffffdd;color:#223;cursor:pointer;font-size:12px;line-height:20px;}
.rb-color-form {display:none;align-items:end;gap:12px;flex-wrap:wrap;margin:14px 0;padding:14px;background:#edf5ef;border:1px solid #c8dcd0;border-radius:12px;}
.rb-color-form.is-visible {display:flex;}
.rb-color-form label {margin:0;min-width:190px;}
.rb-color-form input[type=color] {height:40px;max-width:90px;padding:2px;}
.booking-calendar td.rb-vacation {background:#d6c7eb !important;color:#432b5c !important;text-align:center;font-weight:700;border:1px solid #c4b0df;white-space:nowrap;}
.rb-vacation-key {background:#d6c7eb;color:#432b5c;padding:4px 9px;border-radius:5px;}
.rb-closure-form {display:flex;gap:12px;flex-wrap:wrap;align-items:end;margin:20px 0;}
.rb-closure-form label {min-width:175px;flex:1;}
@media print {.rb-color-edit,.rb-color-form {display:none !important;} .booking-calendar td.rb-vacation {-webkit-print-color-adjust:exact;print-color-adjust:exact;} }

/* Personalabwesenheiten – getrennt von Zimmersperren */
.rb-staff-form {display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;padding:16px;background:#f2f7f3;border:1px solid #d9e7de;border-radius:14px;margin-bottom:22px;}
.rb-staff-form label {margin:0;}.rb-staff-notes,.rb-staff-actions {grid-column:1/-1;}.rb-staff-actions {display:flex;gap:10px;flex-wrap:wrap;}
.rb-staff-month {display:flex;align-items:end;flex-wrap:wrap;gap:10px;margin:12px 0;}.rb-staff-month label {margin:0;}
.rb-staff-calendar {border:1px solid #d5e2da;border-radius:12px;overflow:hidden;margin-bottom:22px;}.rb-staff-calendar-head {background:#24583d;color:white;padding:12px 16px;font-weight:700;}
.rb-staff-weekdays,.rb-staff-days {display:grid;grid-template-columns:repeat(7,minmax(0,1fr));}.rb-staff-weekdays span {background:#e8f0eb;text-align:center;padding:8px 2px;font-weight:700;}
.rb-staff-day {min-height:84px;border-top:1px solid #e3e9e4;border-right:1px solid #e3e9e4;padding:5px;min-width:0;}.rb-staff-day strong {display:block;margin-bottom:4px;}.rb-staff-empty {background:#f7f9f7;}.rb-staff-chip {display:block;border-radius:5px;padding:3px 5px;margin:3px 0;font-size:11px;overflow-wrap:anywhere;}.rb-staff-holiday {background:#e3d8f4;color:#49316b;}.rb-staff-sick {background:#f9dcd8;color:#813b30;}.rb-staff-other {background:#dceaf5;color:#28516d;}
@media(max-width:650px){.rb-staff-day {min-height:62px;padding:2px;}.rb-staff-chip {font-size:9px;padding:2px;}.rb-staff-weekdays span {font-size:12px;}}

/* Personal direkt im Zimmerbelegungsplan */
.booking-calendar .rb-staff-divider th{background:#e9f2ed;color:#24563d;text-align:left;padding:12px 15px;font-weight:700;border-top:3px solid #93b8a3}
.rb-staff-manage{float:right;color:#24563d;font-size:13px;text-decoration:underline}
.booking-calendar .rb-staff-row>th{background:#f3f7f4;color:#24563d;white-space:nowrap}
.booking-calendar .rb-staff-available{background:#fafcfb;color:#c2cfc6;text-align:center}
.booking-calendar .rb-staff-absence{text-align:center;font-weight:650;white-space:nowrap;padding:5px 3px}
.booking-calendar .rb-staff-absence a{color:inherit;text-decoration:none}
.booking-calendar .rb-staff-holiday{background:#d9c5ee;color:#46305c}
.booking-calendar .rb-staff-sick{background:#f4c6ca;color:#6d2932}
.booking-calendar .rb-staff-other{background:#f9e6b6;color:#634c15}
@media print{.rb-staff-manage{display:none}}

/* Personalzeilen: identische Tagesspalten, klarer Name und Legende unter dem Kalender */
.booking-calendar .rb-staff-row > th { min-width:135px; max-width:165px; width:155px; box-sizing:border-box; padding:5px 7px; vertical-align:middle; white-space:normal !important; overflow:hidden; text-align:left; }
.booking-calendar .rb-staff-person { display:block; max-width:100%; overflow-wrap:anywhere; word-break:normal; white-space:normal; line-height:1.25; font-size:12px; }
.booking-calendar .rb-staff-row > td { box-sizing:border-box; min-width:0; padding:6px 1px; text-align:center; vertical-align:middle; }
.booking-calendar .rb-staff-absence { font-size:11px; font-weight:800; border-left:1px solid rgba(50,50,50,.16); border-right:1px solid rgba(50,50,50,.16); }
.booking-calendar .rb-staff-absence a { display:block; text-decoration:none; color:inherit; line-height:1.5; }
.booking-calendar .rb-staff-absence a:hover { text-decoration:underline; }
.rb-staff-calendar-footer { display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between; align-items:center; margin:14px 0 20px; }
.rb-staff-key { display:flex; flex-wrap:wrap; gap:7px; align-items:center; font-size:12px; color:#415a4c; }
.rb-staff-key-holiday,.rb-staff-key-sick,.rb-staff-key-other { border-radius:5px; padding:4px 6px; }
.rb-staff-key-holiday {background:#d9c5ee;color:#46305c;}
.rb-staff-key-sick {background:#f4c6ca;color:#6d2932;}
.rb-staff-key-other {background:#f9e6b6;color:#634c15;}
@media print { .rb-staff-footer-button {display:none !important;} .booking-calendar .rb-staff-row > th {width:17mm !important;min-width:0 !important;max-width:none !important;} .booking-calendar .rb-staff-person {font-size:7pt !important;} .booking-calendar .rb-staff-row > td {padding:2px 0 !important;} .rb-staff-key {font-size:8pt !important;} }

/* Personal: eigene Zeile pro Person, klare Tageswerte */
.booking-calendar .rb-staff-role{display:block;font-size:10px;color:#657b6e;font-weight:400;overflow-wrap:anywhere;margin-top:2px}
.booking-calendar .rb-staff-work{background:#d8eddf;color:#185b37;text-align:center;font-size:10px;font-weight:700;padding:2px 0;white-space:nowrap}
.booking-calendar .rb-staff-work a,.booking-calendar .rb-staff-available a{color:inherit;text-decoration:none;display:block}
.booking-calendar .rb-staff-work:hover{background:#bce0c8}
@media print{.booking-calendar .rb-staff-work{print-color-adjust:exact;-webkit-print-color-adjust:exact}}

/* Unverbindliche Angebote: weiße Zellen mit gut lesbarer schwarzer Schrift. */
.booking-calendar td.rb-offer-day { background:#fff !important; color:#111 !important; text-align:center; padding:3px 2px; border:1px solid #c0cdc4; }
.booking-calendar td.rb-offer-day a { display:block; color:#111 !important; font-size:10px; font-weight:700; text-decoration:none; overflow-wrap:anywhere; line-height:1.3; }
.booking-calendar td.rb-offer-day:hover { background:#f4f6f4 !important; }
.rb-offer-legend { display:inline-block; background:#fff; border:1px solid #bdc8c0; color:#111; border-radius:5px; padding:5px 8px; font-weight:650; }
@media print { .booking-calendar td.rb-offer-day { background:#fff !important; color:#111 !important; } .booking-calendar td.rb-offer-day a {color:#111 !important;} }

/* Angebotsname auch auf schmalen Kalendern sichtbar halten */
.booking-calendar td.rb-offer-day { background:#fff !important; color:#111 !important; vertical-align:middle; min-width:0; }
.booking-calendar td.rb-offer-day a { display:block !important; color:#111 !important; -webkit-text-fill-color:#111 !important; font-weight:800 !important; font-size:11px !important; white-space:normal !important; overflow-wrap:anywhere; line-height:1.3; text-align:center; text-decoration:none !important; }

/* Rebstöckel Kalenderfarben – einheitliche Buchungsarten, Stand 09.11.2026 */
.booking-calendar td.reservation.direct:not([style*="background-color"]) {background:#185C3B !important;color:#fff !important;}
.booking-calendar td.reservation.direct:not([style*="background-color"]) a {color:#fff !important;-webkit-text-fill-color:#fff !important;}
.booking-calendar td.reservation.online:not([style*="background-color"]) {background:#F4D35E !important;color:#222 !important;}
.booking-calendar td.reservation.online:not([style*="background-color"]) a {color:#222 !important;-webkit-text-fill-color:#222 !important;}
.booking-calendar td.rb-offer-day {background:#F6C5C9 !important;color:#32171C !important;vertical-align:middle !important;}
.booking-calendar td.rb-offer-day a {display:block !important;color:#32171C !important;-webkit-text-fill-color:#32171C !important;font-size:12px !important;font-weight:800 !important;line-height:1.35 !important;text-align:center !important;white-space:normal !important;overflow-wrap:anywhere !important;opacity:1 !important;visibility:visible !important;}
.booking-calendar td.rb-offer-day:hover {background:#F2AFB5 !important;}
.rb-calendar-legend .legend-direct {background:#185C3B !important;color:#fff !important;border:1px solid #185C3B !important;}
.rb-calendar-legend .legend-online {background:#F4D35E !important;color:#222 !important;border:1px solid #D4AF37 !important;}
.rb-calendar-legend .rb-offer-legend {background:#F6C5C9 !important;color:#32171C !important;border:1px solid #D99CA3 !important;}
.type-pill.direct {background:#185C3B !important;color:#fff !important;}
.type-pill.online {background:#F4D35E !important;color:#222 !important;}
@media print {
 .booking-calendar td.rb-offer-day {background:#F6C5C9 !important;}
 .booking-calendar td.rb-offer-day a {color:#32171C !important;-webkit-text-fill-color:#32171C !important;}
 .booking-calendar td.reservation.direct:not([style*="background-color"]) a {color:#fff !important;-webkit-text-fill-color:#fff !important;}
}
