*,*::before,*::after{box-sizing:border-box}
:root{--bp-dark:#2b2b2b;--bp-dark2:#1f1f1f;--bp-red:#8c1b1b;--bp-red2:#6f1414;--bp-bg:#f5f5f5;--bp-card:#fff;--bp-text:#111;--bp-muted:#666;--bp-border:#d6d6d6}

body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;margin:0;background:var(--bp-bg);color:#111}
header{background:linear-gradient(180deg,var(--bp-dark),var(--bp-dark2));color:#fff;padding:16px}

/* Sticky admin page headers */
.admin-sticky-header{
  position:sticky;
  top:0;
  z-index:100;
  padding:0;
  box-shadow:0 2px 8px rgba(0,0,0,.18);
}
.admin-header-inner{
  min-height:72px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.admin-header-back{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:9px 13px;
  border:1px solid rgba(255,255,255,.35);
  border-radius:10px;
  color:#fff;
  text-decoration:none;
  font-weight:700;
  white-space:nowrap;
}
.admin-header-back:hover{background:rgba(255,255,255,.12)}
.container{max-width:980px;margin:0 auto;padding:16px}
.card{background:#fff;color:#111;border-radius:12px;padding:16px;margin:12px 0;box-shadow:0 1px 4px rgba(0,0,0,.08)}
.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px}
label{font-size:13px;color:#333;display:block;margin-bottom:6px}
input,select,textarea{width:100%;padding:10px;border:1px solid var(--bp-border);border-radius:10px;font-size:14px}
input[type="checkbox"],input[type="radio"]{width:auto;padding:0;}

button{background:var(--bp-red);color:#fff;border:0;border-radius:12px;padding:12px 16px;font-size:15px;cursor:pointer}button:hover{background:var(--bp-red2)}

button.secondary{background:#e9eef1;color:var(--bp-dark)}
.small{font-size:12px;color:#555}
.tiny{font-size:12px;color:#6a6a6a}
.warn{background:#fff3cd;border:1px solid #ffeeba;color:#856404;padding:10px;border-radius:10px;margin-top:8px;font-size:14px}


/* Checkbox rows: keep native checkbox look, but improve alignment/click area */
.checkline{display:flex;align-items:center;gap:10px;margin:10px 0;cursor:pointer}
.checkline input{margin:0;flex:0 0 auto}
.checkline span{display:block;line-height:1.35}
.checkline input[type="checkbox"]{width:auto;height:auto;margin:0}
.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.room{display:flex;gap:14px;align-items:flex-start}
.room img{width:110px;height:75px;border-radius:10px;object-fit:cover;background:#e8e8e8}
hr{border:0;border-top:1px solid #eee;margin:16px 0}
.badge{display:inline-block;padding:4px 8px;border-radius:999px;background:#eef3f6;color:var(--bp-dark);font-size:12px}
table{width:100%;border-collapse:collapse}
th,td{padding:8px;border-bottom:1px solid #eee;text-align:left;font-size:14px}

.grid>div{padding-bottom:8px}
.table-scroll{overflow-x:auto}
td.cell{min-width:110px;vertical-align:top}
.cell .mini{display:flex;gap:6px;align-items:center;justify-content:center;flex-direction:column}
.cell input[type=number]{width:80px}

/* Stepper */
.stepper{
  display:flex;
  align-items:center;
  gap:10px;
}

/* nicer + / - buttons */
.stepper-btn{
  width:48px;
  height:48px;
  border-radius:999px;
  border:2px solid #c7d8ff;
  background:#f3f7ff;
  color:#1f53ff;
  font-size:28px;
  line-height:1;
  padding:0;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  user-select:none;
}
.stepper-btn:active{transform:translateY(1px)}

/* centered value field */
.stepper-input{
  width:70px;
  height:48px;
  border-radius:14px;
  border:2px solid #e1e1e1;
  background:#fff;
  text-align:center;
  font-weight:700;
  font-size:18px;
  padding:0 6px;
}

/* hide number spinners (we have + / -) */
.stepper-input::-webkit-outer-spin-button,
.stepper-input::-webkit-inner-spin-button{
  -webkit-appearance:none;
  margin:0;
}
.stepper-input{ -moz-appearance:textfield; }

/* Extras area */
.extras{background:#f8fafc;border:1px solid #e6edf3;border-radius:12px;padding:12px;margin-top:6px}
.extrasgrid{display:grid;grid-template-columns:repeat(12,1fr);gap:10px;align-items:end}

/* Admin matrix (booking-like) */
.matrix{border-collapse:separate;border-spacing:0}
.matrix th,.matrix td{border-bottom:1px solid #eee}
.matrix thead th{position:sticky;top:0;background:#fff;z-index:5}
.matrix .firstcol{position:sticky;left:0;background:#fff;z-index:6;min-width:180px}
.matrix td.weekend, .matrix th.weekend{background:#fafafa}
.matrix td.weekstart, .matrix th.weekstart{border-left:2px solid #dfe6ea}
.matrix td.zero{background:#ffecec}

/* Booking-like room cards */
.roomrow{display:grid;grid-template-columns:120px 1fr;gap:16px;align-items:start}
.roomthumb{width:110px;height:80px;border-radius:14px;background:#e9eef1;border:1px solid #d6dfe5;overflow:hidden}
.roomthumb img{width:100%;height:100%;object-fit:cover;display:block}

/* Combined admin cells */
.cellstack{display:flex;flex-direction:column;gap:6px;align-items:center;justify-content:center}
.cell-inv{width:84px}
.cell-rate{width:90px}

/* Wider layout (use more page width like Booking) */
.container.wide{max-width:1240px}

/* Matrix visual tuning */
.table-scroll{overflow-x:auto}
.matrix th,.matrix td{padding:10px 10px}
.matrix thead th{box-shadow:0 1px 0 rgba(0,0,0,.06)}
.matrix td{background:#fff}
.matrix td:hover{background:#f6fbff}
.matrix td.weekend, .matrix th.weekend{background:#f7f7f7}
.matrix td.weekstart, .matrix th.weekstart{border-left:3px solid #d3dde3}
.matrix td.zero{background:#ffecec}
.matrix .firstcol{box-shadow:1px 0 0 rgba(0,0,0,.06)}

/* Inputs inside matrix */
.cellstack{gap:8px}
.cell-inv{height:40px;border-radius:12px}
.cell-rate{height:40px;border-radius:12px}

/* Subtle booking-like accent for save button already uses primary */

/* Booking-like search bar */
.bookingbar{display:grid;grid-template-columns:1.1fr 1.1fr .7fr .7fr 1fr auto;gap:12px;align-items:end}
@media (max-width: 980px){
  .bookingbar{grid-template-columns:1fr 1fr; align-items:stretch}
}
.bookingbar .field label{margin:0 0 6px 0}
.bookingbar button{height:46px; padding:0 18px; border-radius:14px}

/* Room cards */
.roomcard{display:grid;grid-template-columns:120px 1fr auto;gap:16px;align-items:center;padding:16px;border:1px solid #eef2f4;border-radius:18px}
.roomcard + .roomcard{margin-top:12px}
.roomcard h3{margin:0;font-size:18px}
.roommeta{color:var(--bp-red);font-size:13px;margin-top:2px}
.priceblock{display:flex;flex-direction:column;align-items:flex-end;gap:4px;min-width:150px}
.priceblock .price{font-size:22px;font-weight:800;color:var(--bp-dark)}
.priceblock .per{font-size:12px;color:var(--bp-muted)}
.roomactions{display:flex;justify-content:flex-end}
.roomactions .stepper{justify-content:flex-end}
@media (max-width: 980px){
  .roomcard{grid-template-columns:120px 1fr}
  .priceblock{align-items:flex-start}
}

/* Full width admin pages */
.container.wide.full{max-width:none;width:95%}

/* Highlight today's column (booking-like subtle) */
.matrix td.today, .matrix th.today{background:#eef7ff}
.matrix td.today.weekend, .matrix th.today.weekend{background:#e8f3ff}

/* Slightly stronger weekend separation */
.matrix th.weekend{font-weight:700}

/* Make controls area not too wide and aligned */
.card .row{gap:12px}

/* Bookingbar compact */
.bookingbar input, .bookingbar select{height:46px;border-radius:14px}

/* iOS Safari: date inputs tend to render taller/wider; force compact, non-overlapping layout */
@supports (-webkit-touch-callout: none) {
  .bookingbar--search .field{min-width:0;}
  .bookingbar--search input, .bookingbar--search select{min-width:0;width:100%;box-sizing:border-box;}
  .bookingbar--search input[type="date"]{
    -webkit-appearance:none;
    appearance:none;
    height:46px;            /* keep consistent with other inputs */
    padding:0 14px;
    line-height:46px;
    text-align:center;
  }
}

/* Force availability to use almost full viewport width */
body .container.wide.full{max-width:none !important; width:95vw !important; margin-left:auto; margin-right:auto;}
body .container.wide.full .card{width:100%}

/* Booking-like grid interactions */
.matrix td{transition:background .12s ease}
.matrix tr:hover td{background:#f6fbff}
.matrix tr:hover td.firstcol{background:#fff}
.matrix td:hover{background:#eaf5ff !important}
.matrix td.zero{background:#ffecec !important}
.matrix td.zero input{opacity:.85}
.matrix td.zero::after{content:"";position:absolute;inset:0;border:1px solid rgba(180,0,0,.18);border-radius:12px;pointer-events:none}
.matrix td{position:relative}
.matrix thead th{background:#fff}
.matrix .firstcol{background:#fff}

.cell-inv,.cell-rate{font-weight:600}
.cell-rate{text-align:right}
.cell-inv{text-align:center}

/* Availability page: truly full width */
.availability-page .container{max-width:none !important; width:95vw !important; margin-left:auto; margin-right:auto;}
.availability-page .card{width:100% !important}
.availability-page header .container{width:95vw !important; max-width:none !important}


/* --- Booking frontend layout (step-based) --- */
.booking-layout{
  display:grid;
  grid-template-columns: 1fr 360px;
  gap:18px;
  align-items:start;
  margin-bottom:40px;
}
.booking-main{display:flex;flex-direction:column;gap:18px}
.booking-side{position:sticky; top:18px}
.booking-summary__title{font-weight:800;font-size:16px;margin-bottom:10px}
.booking-summary__row{display:flex;justify-content:space-between;gap:10px;margin:6px 0}
.sum-items{display:flex;flex-direction:column;gap:8px;margin:10px 0}
.sum-item{display:flex;justify-content:space-between;gap:10px}
.sum-item__left{flex:1;min-width:0}
.sum-item__right{white-space:nowrap;font-weight:700}
.sum-total{margin-top:10px}
.sum-total .total{font-size:20px;font-weight:900;margin-top:4px}
.tiny{font-size:12px;color:#627178}
.h2{font-size:18px;font-weight:900}
.booking-search{margin-bottom:18px}
.bookingbar--search{
  display:grid;
  grid-template-columns: repeat(5, minmax(0,1fr));
  gap:12px;
  align-items:end;
}
.bookingbar--search .bookingbar__actions{display:flex;justify-content:flex-start}
.booking-step__head{
  display:flex;justify-content:space-between;gap:14px;align-items:flex-start;flex-wrap:wrap;
}
.ratebox{min-width:220px;max-width:520px;width:100%;margin-top:12px}
.ratebox label{margin-bottom:6px}
.roomcards{display:flex;flex-direction:column;gap:12px;margin-top:14px}
.roomcard{
  display:grid;
  grid-template-columns: 110px 1fr;
  gap:14px;
  border:1px solid rgba(0,0,0,0.06);
  border-radius:14px;
  padding:12px;
  background:#fff;
}
.roomcard__img img{
  width:110px;height:90px;object-fit:cover;border-radius:12px;
  background:#e6eaee;
}
.roomcard.is-unavailable{opacity:.72;}
.roomcard.is-unavailable .roomcard__img img{filter:grayscale(1);}
.avail-note{margin-top:6px; display:inline-block; font-weight:800; padding:4px 8px; border-radius:10px; background:rgba(255,193,7,.25); color:#2b2b2b;}
body.dark .avail-note{background:rgba(255,193,7,.20); color:#f2f2f2;}
.stepper.stepper--disabled .stepper-btn,
.stepper.stepper--disabled .stepper-input{opacity:.55; cursor:not-allowed;}
.stepper.stepper--disabled .stepper-btn{pointer-events:none;}
.roomcard__title{font-weight:900;font-size:16px}
.roomcard__top{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:start}
.roomcard__top > div:first-child{min-width:0}
.roomcard__price{text-align:right;white-space:nowrap}

.roomcard__price{text-align:right}
.roomcard__price .price{display:flex;align-items:baseline;justify-content:flex-end;gap:8px}
.roomcard__price .price-new{font-size:18px;font-weight:900;line-height:1.05}
.roomcard__price .price-old{display:none;font-size:13px;font-weight:600;line-height:1.05;text-decoration:line-through;color:#b02a37;opacity:.95}

/* When "Garantiert" is selected: show both prices (Flex crossed out + new price) */
html.tariff-nonref .roomcard__price .price-old{display:inline-flex}
.roomcard__bottom{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:10px}
.booking-step__foot{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;margin-top:14px}
.btn-primary{
  background:#0b3a4a;
  color:#fff;
  border:none;
  padding:12px 16px;
  border-radius:12px;
  font-weight:800;
  cursor:pointer;
}
.btn-primary[disabled]{opacity:.45;cursor:not-allowed}
.btn-link{
  background:transparent;border:none;color:#0b3a4a;font-weight:800;cursor:pointer;padding:8px 10px;border-radius:10px;
}
.btn-link:hover{background:rgba(11,58,74,.08)}
.booking-step--hidden{display:none}

/* Responsive */
@media (max-width: 980px){
  .booking-layout{grid-template-columns:1fr}
  .booking-side{position:static}
  .bookingbar--search{grid-template-columns: repeat(2, minmax(0,1fr));}
  .bookingbar--search .bookingbar__actions{grid-column:span 2}
}
@media (max-width: 560px){
  .roomcard{grid-template-columns:1fr}
  .roomcard__img img{width:100%;height:140px}
  /* keep price on the top right even on small screens */
  .roomcard__top{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:start}
  .roomcard__top > div:first-child{min-width:0}
  .roomcard__price{text-align:right;white-space:nowrap}
}

.roomcard__price{text-align:right;white-space:nowrap}
}
  .roomcard__img img{width:100%;height:140px}
  .roomcard__top{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:start}
  .roomcard__price{text-align:right;white-space:nowrap}
}

/* Booking-style topbar */
.topbar{background:var(--bp-dark);color:#fff;padding:18px 0}
.topbar-inner{display:flex;align-items:center;justify-content:space-between}
.topbar-title{font-weight:800;font-size:20px;letter-spacing:.2px}
.topbar-badge{background:#fff;color:var(--bp-dark);text-decoration:none;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:700}
main{background:var(--bp-dark);min-height:calc(100vh - 64px);padding:28px 0}

/* Extras + invoice sections */
.extras input[disabled]{opacity:.6; cursor:not-allowed}
.invoicebox{padding-top:4px}

.sum-breakdown{margin-left:24px;margin-top:2px;font-size:12px;color:#6b7280;line-height:1.25}

/* ---- Mobile layout fixes (Guest step) ----
   Keep important rows in 2-column layout on phones (iPhone Safari):
   - Vorname + Nachname stay side-by-side
   - Frühstück + Hunde stay side-by-side
   We avoid oversizing checkboxes; instead we enlarge the clickable label area.
*/

/* Shared checkbox row style (used by DSGVO + per-room checkboxes) */
.checkline{
  display:flex;
  align-items:center;
  gap:10px;
  padding:8px 0;
}
.checkline input[type="checkbox"]{margin:0;}

@media (max-width: 760px){
  /* Keep 12-col grids so 6/6 spans remain two columns */
  .guest-grid, .roomextras-grid{grid-template-columns:repeat(12, minmax(0,1fr)) !important;}

  /* Prevent iOS flex/grid min-content quirks causing overflow */
  .guest-grid > div, .roomextras-grid > div{min-width:0;}

  /* Bigger tap targets without huge checkbox squares */
  .checkline{padding:12px 0;}
  .checkline span{line-height:1.3;}
}

/* ---- Make per-room Breakfast / Extra Bed more noticeable (safe UI bump) ----
   Guests sometimes overlook these two checkboxes.
   We keep the overall layout, but give the two "extra-big" blocks a subtle
   card/pill background, stronger typography and a clear checked state.
*/
.roomextras-grid .extra-big{
  border:1px solid rgba(0,0,0,0.10);
  background: rgba(0,0,0,0.03);
  border-radius:14px;
  padding:10px 12px;
}
.roomextras-grid .extra-big:hover{
  border-color: rgba(0,0,0,0.16);
}
.roomextras-grid .extra-big .checkline{
  padding:0;
  gap:12px;
}
.roomextras-grid .extra-big .checkline span{
  font-weight:800;
  letter-spacing:.1px;
}
.roomextras-grid .extra-big input[type="checkbox"]{
  transform: scale(1.15);
  transform-origin:left center;
}
.roomextras-grid .extra-big.is-checked{
  border-color: rgba(11,58,74,.35);
  background: rgba(11,58,74,.08);
}
.roomextras-grid .extra-big.is-checked .checkline span{
  color: var(--bp-dark);
}
.roomextras-grid .extra-big .tiny{margin-top:6px;}

@media (max-width: 760px){
  .roomextras-grid .extra-big{
    padding:12px 12px;
  }
  .roomextras-grid .extra-big input[type="checkbox"]{transform: scale(1.22);}
}


/* Room Unit Cards (Guest step) */
.roomunit-card{
  border:1px solid rgba(11,58,74,.16);
  box-shadow:0 2px 14px rgba(0,0,0,.08);
  position:relative;
  overflow:hidden;
}

/* Personen + Hunde row: keep the INPUTS aligned on iPhone Safari.
   Safari wraps "Personen in diesem Zimmer" into two lines, while "Hunde" stays one line.
   By reserving two-line height for BOTH labels, the inputs stay on the same baseline. */
.ru-persons-dogs label{
  display:block;
  line-height:1.2;
  min-height:2.4em; /* roughly 2 lines */
}
.roomunit-card::before{
  content:"";
  position:absolute;
  left:0; top:0; bottom:0;
  width:4px;
  background:#0b3a4a;
}
.roomunit-card{
  padding-left:16px; /* space for accent bar */
}
.roomunit-card:hover{
  border-color: rgba(11,58,74,.26);
  box-shadow:0 6px 18px rgba(0,0,0,.10);
}

/* Room Unit Cards – stronger separation (override) */
.roomunit-card{
  border:2px solid rgba(11,58,74,.22);
  box-shadow:0 4px 18px rgba(0,0,0,.10);
}
.roomunit-card:hover{
  border-color: rgba(11,58,74,.32);
  box-shadow:0 8px 22px rgba(0,0,0,.12);
}
.roomunit-card::before{
  width:5px;
}

/* Tighter spacing between Early/Late checkboxes inside room cards */
.roomunit-card .checkline.checkline--tight{
  padding:4px 0;
  margin:0;
}


/* Room Unit Cards – spacing + separation tweaks */
.roomunit-card{
  border-color: rgba(11,58,74,.28);
  box-shadow:0 6px 22px rgba(0,0,0,.12);
}
.roomunit-card:hover{
  border-color: rgba(11,58,74,.36);
  box-shadow:0 10px 26px rgba(0,0,0,.14);
}
/* Reduce spacing between check-in/out lines inside room cards */
.roomunit-card .checkline{ margin:6px 0; }
.roomunit-card .checkline + .checkline{ margin-top:2px; }

/* Room unit cards – tighter spacing for check-in/out lines */
.roomunit-card .checkline{
  margin:4px 0;
  padding:4px 0;
}
.roomunit-card .checkline + .checkline{
  margin-top:2px;
}


/* NONREF / Garantiert Promo */
.ratepromo{
  margin-top:10px;
  padding:10px 12px;
  border:1px solid rgba(0,0,0,0.08);
  border-radius:14px;
  background: rgba(0,0,0,0.03);
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:10px;
}
.ratepromo__text{
  font-size:14px;
  line-height:1.35;
}
.ratepromo__btn{
  border:1px solid rgba(0,0,0,0.12);
  background:#fff;
  color:var(--bp-dark);
  border-radius:999px;
  padding:8px 12px;
  font-weight:700;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:8px;
  white-space:nowrap;
}
.ratepromo__btn:hover{
  background:var(--bp-dark);
  border-color:var(--bp-dark);
  color:#fff;
}
.ratepromo__btn:hover{ filter: brightness(0.98); }
@media (max-width: 600px){
  .ratepromo__btn{ width:100%; justify-content:center; }
}
.save-badge{
  display:none;
  align-self:flex-start;
  font-size:12px;
  font-weight:800;
  padding:3px 8px;
  border-radius:999px;
  border:1px solid rgba(0,0,0,0.12);
  background: rgba(0,0,0,0.03);
  margin-bottom:6px;
}
.tariff-nonref .save-badge{ display:inline-flex; }

/* =====================================
   Stepper Buttons – Homepage Style
   neutral + hellblau beim Hover
===================================== */

.stepper-btn{
  background:#f3f5f8;
  border:2px solid #cfd7e6;
  color:#2f5fd7;
  transition:all .18s ease;
}

/* Hover = hellblau */
.stepper-btn:hover{
  background:#e8f1ff;
  border-color:#9ec3ff;
  color:#2f5fd7;
}

/* Klickgefühl */
.stepper-btn:active{
  background:#dbe9ff;
  transform:scale(0.96);
}

/* Zahlungsart im letzten Buchungsschritt */
.payment-choice-box{
  margin-top:8px;
  padding:16px;
  border:1px solid rgba(0,0,0,.10);
  border-radius:16px;
  background:rgba(0,0,0,.025);
}
.payment-choice-option{
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:14px;
  margin-top:10px;
  border:2px solid rgba(0,0,0,.10);
  border-radius:14px;
  background:#fff;
  cursor:pointer;
}
.payment-choice-option:hover{
  border-color:var(--bp-dark);
}
.payment-choice-option:has(input:checked){
  border-color:var(--bp-dark);
  box-shadow:0 0 0 1px var(--bp-dark);
}
.payment-choice-option input{
  width:auto;
  margin-top:3px;
}
.payment-choice-option.is-disabled{
  opacity:.55;
  cursor:not-allowed;
}
@media (max-width:600px){
  .payment-choice-box{ padding:12px; }
  .payment-choice-option{ padding:12px; }
}

/* Verbesserte Tarif-Promo am Anfang der Zimmerauswahl */
.ratepromo.is-active{
  border-color:rgba(11,58,74,.28);
  background:rgba(11,58,74,.06);
}
.ratepromo__btn:disabled{
  opacity:.5;
  cursor:not-allowed;
}

/* Moderne Auswahl der Zahlungsart */
.payment-choice-box{
  margin-top:10px;
  padding:20px;
  border:1px solid rgba(0,0,0,.09);
  border-radius:20px;
  background:linear-gradient(180deg, rgba(0,0,0,.018), rgba(0,0,0,.035));
}
.payment-choice-head{margin-bottom:14px}
.payment-choice-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
}
.payment-choice-option{
  position:relative;
  display:grid;
  grid-template-columns:46px minmax(0,1fr) 24px;
  align-items:start;
  gap:12px;
  min-height:150px;
  margin:0;
  padding:18px;
  border:2px solid rgba(11,58,74,.14);
  border-radius:18px;
  background:#fff;
  cursor:pointer;
  transition:border-color .16s ease, box-shadow .16s ease, transform .16s ease, background .16s ease;
}
.payment-choice-option:hover{
  border-color:rgba(11,58,74,.42);
  transform:translateY(-1px);
}
.payment-choice-option input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.payment-choice-option:has(input:checked){
  border-color:var(--bp-dark);
  box-shadow:0 0 0 2px rgba(11,58,74,.10);
  background:rgba(11,58,74,.035);
}
.payment-choice-icon{
  width:42px;
  height:42px;
  border-radius:13px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#eef3f5;
  color:var(--bp-dark);
  font-size:20px;
  font-weight:900;
}
.payment-choice-icon--paypal{
  background:#eef4ff;
  color:#173f8f;
}
.payment-choice-content{display:flex;flex-direction:column;gap:5px;min-width:0}
.payment-choice-title{font-size:17px;font-weight:900;color:var(--bp-dark)}
.payment-choice-tariff{font-size:13px;font-weight:800;color:#4e6068}
.payment-choice-badge{
  align-self:flex-start;
  display:inline-flex;
  padding:4px 9px;
  border-radius:999px;
  background:var(--bp-dark);
  color:#fff;
  font-size:12px;
  font-weight:900;
  margin-bottom:2px;
}
.payment-choice-check{
  width:22px;
  height:22px;
  border-radius:999px;
  border:2px solid #c9d2d6;
  color:transparent;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:13px;
  font-weight:900;
  margin-top:2px;
}
.payment-choice-option:has(input:checked) .payment-choice-check{
  border-color:var(--bp-dark);
  background:var(--bp-dark);
  color:#fff;
}
.payment-choice-option.is-disabled{
  opacity:.5;
  cursor:not-allowed;
  transform:none;
}
@media (max-width:760px){
  .payment-choice-grid{grid-template-columns:1fr}
  .payment-choice-option{min-height:0}
}
@media (max-width:480px){
  .payment-choice-box{padding:14px}
  .payment-choice-option{grid-template-columns:40px minmax(0,1fr) 22px;padding:14px}
  .payment-choice-icon{width:38px;height:38px}
}

/* Dynamische Altersabfrage für Kinder */
.child-age-fields{
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:12px;
  padding:14px;
  border:1px solid #e1e5e8;
  border-radius:14px;
  background:#f7f8f9;
}
.child-age-fields label{margin:0;font-weight:600;}
.child-age-fields select{margin-top:6px;}
@media (max-width:640px){
  .child-age-fields{grid-template-columns:repeat(2,minmax(0,1fr));}
}

/* --- Admin dashboard --- */
:root{
  --dashboard-online:#b63737;
  --dashboard-flex:#1f6676;
}
.dashboard-grid{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:16px;
  margin-bottom:28px;
}
.dashboard-card{
  grid-column:span 6;
  border:1px solid #eef1f3;
}
.dashboard-chart-card{
  grid-column:span 12;
}
.dashboard-eyebrow{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:#6b747a;
  font-weight:800;
  margin-bottom:4px;
}
.dashboard-card__top{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:flex-start;
  margin-bottom:14px;
}
.dashboard-card h2{
  margin:0;
  font-size:32px;
  line-height:1.1;
}
.dashboard-subtitle{
  color:#637179;
  margin-top:6px;
}
.dashboard-highlight{
  background:linear-gradient(135deg,#fff5f5,#fff);
  color:var(--bp-red2);
  border:1px solid rgba(140,27,27,.14);
  border-radius:16px;
  padding:14px 16px;
  font-size:26px;
  font-weight:900;
  white-space:nowrap;
}
.dashboard-kpis{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:18px 0;
}
.dashboard-kpi{
  background:#f8fafb;
  border:1px solid #edf1f3;
  border-radius:14px;
  padding:14px;
}
.dashboard-kpi__label{
  display:block;
  color:#5d6a71;
  font-size:13px;
  margin-bottom:6px;
}
.dashboard-kpi strong{
  font-size:24px;
  line-height:1;
}
.dashboard-meta-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px 14px;
  padding-top:8px;
  border-top:1px solid #eef1f3;
}
.dashboard-meta-grid div{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:4px 0;
}
.dashboard-meta-grid span{
  color:#5d6a71;
}
.dashboard-meta-grid strong{
  font-weight:800;
}
.dashboard-chart-layout{
  display:grid;
  grid-template-columns:280px 1fr;
  gap:24px;
  align-items:center;
  margin-top:18px;
}
.dashboard-pie-wrap{
  display:flex;
  justify-content:center;
}
.dashboard-pie{
  width:220px;
  height:220px;
  border-radius:50%;
  display:grid;
  place-items:center;
  position:relative;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.04);
}
.dashboard-pie::before{
  content:"";
  width:130px;
  height:130px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 0 0 1px #edf1f3;
}
.dashboard-pie__center{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  text-align:center;
  padding:0 20px;
}
.dashboard-pie__center strong{
  font-size:16px;
  line-height:1.1;
  font-variant-numeric:tabular-nums;
  overflow-wrap:anywhere;
}
.dashboard-pie__amount{
  letter-spacing:-0.02em;
}
.dashboard-pie__currency{
  font-size:20px;
  font-weight:800;
  line-height:1;
  color:#24353d;
  margin-top:2px;
}
.dashboard-pie__center span{
  font-size:12px;
  color:#6a757b;
  margin-top:4px;
}
.dashboard-legend{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.dashboard-legend__item{
  display:flex;
  align-items:flex-start;
  gap:12px;
  background:#f8fafb;
  border:1px solid #edf1f3;
  border-radius:14px;
  padding:14px;
}
.dashboard-legend__swatch{
  width:14px;
  height:14px;
  border-radius:4px;
  margin-top:4px;
  flex:0 0 auto;
}
.dashboard-legend__swatch--online{background:var(--dashboard-online)}
.dashboard-legend__swatch--flex{background:var(--dashboard-flex)}
.dashboard-note{
  color:#5d6a71;
  font-size:13px;
  line-height:1.5;
  padding:2px 2px 0 2px;
}
@media (max-width: 980px){
  .dashboard-card,.dashboard-chart-card{grid-column:span 12}
  .dashboard-card__top{flex-direction:column}
  .dashboard-highlight{font-size:22px}
  .dashboard-chart-layout{grid-template-columns:1fr}
}
@media (max-width: 640px){
  .dashboard-kpis,.dashboard-meta-grid{grid-template-columns:1fr}
  .dashboard-card h2{font-size:26px}
  .dashboard-pie{width:190px;height:190px}
  .dashboard-pie::before{width:100px;height:100px}
}

/* Operational overview on admin dashboard */
.dashboard-operations{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  margin:16px 0;
}
.dashboard-operation{
  margin:0;
  display:flex;
  align-items:center;
  gap:13px;
  min-height:104px;
  border:1px solid #edf1f3;
}
.dashboard-operation__icon{
  width:46px;
  height:46px;
  border-radius:14px;
  background:#eef3f5;
  color:#203038;
  display:grid;
  place-items:center;
  font-size:22px;
  font-weight:900;
  flex:0 0 auto;
}
.dashboard-operation span{
  display:block;
  color:#5d6a71;
  font-size:13px;
  margin-bottom:5px;
}
.dashboard-operation strong{
  display:block;
  font-size:30px;
  line-height:1;
}
.dashboard-operation--attention .dashboard-operation__icon{
  background:#fff3e4;
  color:#8a4d00;
}
.dashboard-operation--payment .dashboard-operation__icon{
  background:#f7eeee;
  color:var(--dashboard-online);
}
@media (max-width: 980px){
  .dashboard-operations{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dashboard-operation--chart{grid-column:span 2}
}
@media (max-width: 560px){
  .dashboard-operations{grid-template-columns:1fr}
  .dashboard-operation--chart{grid-column:span 1}
}

/* Revenue chart replaces the removed occupancy indicator */
.dashboard-operation--chart{
  grid-column:span 4;
  display:block;
  min-height:auto;
  padding:22px;
}
.dashboard-operation-chart__head h2{
  margin:0;
  font-size:28px;
  line-height:1.15;
}
.dashboard-chart-layout--compact{
  grid-template-columns:250px 1fr;
  margin-top:16px;
}
.dashboard-operation--chart .dashboard-pie{
  width:200px;
  height:200px;
}
.dashboard-operation--chart .dashboard-pie::before{
  width:122px;
  height:122px;
}
@media (max-width: 980px){
  .dashboard-operation--chart{grid-column:span 2}
  .dashboard-chart-layout--compact{grid-template-columns:1fr}
}
@media (max-width: 560px){
  .dashboard-operation--chart{grid-column:span 1}
  .dashboard-operation-chart__head h2{font-size:24px}
}


/* Dashboard/availability header fixes */
.dashboard-operation--chart .dashboard-pie__center{
  padding:0 16px;
}
.dashboard-operation--chart .dashboard-pie__center strong{
  font-size:13px;
  line-height:1.05;
  white-space:nowrap;
  overflow-wrap:normal;
  letter-spacing:-0.03em;
}
.dashboard-operation--chart .dashboard-pie__currency{
  font-size:17px;
  margin-top:2px;
}
.availability-page .admin-sticky-header .container{
  width:95vw !important;
  max-width:none !important;
}


/* Wider, less cramped booking overview */
.bookings-page{
  max-width:none !important;
  width:96vw !important;
}
.bookings-page .card{
  padding:20px;
}
.bookings-table-scroll{
  overflow-x:auto;
}
.bookings-table{
  min-width:1120px;
  table-layout:auto;
}
.bookings-table th,
.bookings-table td{
  padding:12px 14px;
  vertical-align:middle;
}
.bookings-table th:nth-child(3),
.bookings-table td:nth-child(3){min-width:210px;}
.bookings-table th:nth-child(4),
.bookings-table td:nth-child(4){min-width:170px;}
.bookings-table th:nth-child(5),
.bookings-table td:nth-child(5){min-width:190px;}
.bookings-table th:nth-child(6),
.bookings-table td:nth-child(6){min-width:90px;}
.bookings-table th:nth-child(7),
.bookings-table td:nth-child(7){min-width:110px;}
.bookings-table th:nth-child(8),
.bookings-table td:nth-child(8){min-width:110px;white-space:nowrap;}
@media (max-width:700px){
  .bookings-page{width:100% !important;padding-left:10px;padding-right:10px;}
  .bookings-page .card{padding:12px;}
}

/* Test-E-Mails in den Einstellungen */
.mail-test-panel{padding:16px;border:1px solid #e2e7ea;border-radius:14px;background:#f8fafb}
.mail-test-panel h3{margin:0 0 6px}
.mail-test-buttons{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.mail-test-buttons button{padding:10px 13px}
.mail-test-modal[hidden]{display:none}
.mail-test-modal{position:fixed;inset:0;z-index:300;background:rgba(0,0,0,.48);display:flex;align-items:center;justify-content:center;padding:20px}
.mail-test-dialog{width:min(520px,100%);background:#fff;border-radius:16px;padding:20px;box-shadow:0 18px 50px rgba(0,0,0,.25)}
.mail-test-dialog h3{margin:0 0 6px}
.mail-test-result{min-height:20px;margin-top:12px;font-size:14px;font-weight:700}
.mail-test-result.is-ok{color:#176b2c}.mail-test-result.is-error{color:#a00020}


/* DKEDV branding in admin headers */
.admin-header-brand{
  display:flex;
  align-items:center;
  gap:18px;
  min-width:0;
}
.admin-header-title{
  font-weight:700;
  white-space:nowrap;
}
.dkedv-admin-logo{
  display:inline-flex;
  align-items:center;
  gap:9px;
  color:#fff;
  text-decoration:none;
  flex:0 0 auto;
}
.dkedv-admin-logo__mark{
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  border:2px solid rgba(255,255,255,.88);
  border-radius:10px;
  font-size:15px;
  font-weight:900;
  letter-spacing:-.04em;
}
.dkedv-admin-logo__text{
  display:flex;
  flex-direction:column;
  line-height:1.05;
}
.dkedv-admin-logo__text strong{
  font-size:15px;
  letter-spacing:.08em;
}
.dkedv-admin-logo__text small{
  margin-top:4px;
  font-size:7px;
  letter-spacing:.08em;
  color:rgba(255,255,255,.72);
  white-space:nowrap;
}
.dkedv-admin-logo:hover{opacity:.86}
@media (max-width:760px){
  .admin-header-brand{gap:10px}
  .dkedv-admin-logo__text{display:none}
  .admin-header-title{white-space:normal;font-size:14px}
  .dkedv-admin-logo__mark{width:36px;height:36px}
}

/* Booking detail / amendment offer */
.booking-edit-page .admin-header-inner{width:95vw;max-width:none}
.booking-edit-container{max-width:1180px}
.booking-edit-card{padding:22px}
.admin-header-title{font-weight:800;color:#fff;white-space:nowrap}
.booking-edit-price-label{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:10px 0;max-width:520px}
.booking-edit-money-input{display:flex;align-items:center;gap:8px;max-width:220px}
.booking-edit-money-input input{font-weight:800;text-align:right}
.booking-edit-money-input span{font-weight:800}
.change-offer-box{margin-top:18px;padding:16px;border:1px solid #e2e7ea;border-radius:14px;background:#f8fafb}
.change-offer-box textarea{margin-top:7px;background:#fff}
.change-offer-actions{margin-top:12px}
.change-offer-send{background:#0f4c5c}
.change-offer-send:hover{background:#0b3b48}
.change-offer-status{margin-top:16px;padding:12px 14px;border-radius:12px;background:#fff3cd;border:1px solid #ffe3a3;color:#704b00;font-weight:700}
.booking-edit-page .edit-grid input,
.booking-edit-page .edit-grid select{width:100%;padding:10px;border:1px solid #e5e7eb;border-radius:10px}
@media(max-width:700px){
  .booking-edit-page .admin-header-title{display:none}
  .booking-edit-container{width:100%;padding:10px}
  .booking-edit-card{padding:14px}
  .booking-edit-page .edit-grid{grid-template-columns:1fr!important}
  .booking-edit-price-label{align-items:flex-start;flex-direction:column}
}


/* Centered hotel name in admin headers */
.admin-header-inner{position:relative;}
.admin-header-hotel{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  max-width:min(38vw,420px);
  padding:9px 20px;
  border-radius:999px;
  background:#fff;
  color:var(--bp-dark);
  text-decoration:none;
  font-weight:800;
  font-size:16px;
  line-height:1.1;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  box-shadow:0 1px 2px rgba(0,0,0,.08);
}
.admin-header-hotel:hover{background:#f3f3f3;}
@media (max-width: 760px){
  .admin-header-title{display:none;}
  .admin-header-hotel{max-width:42vw;padding:8px 12px;font-size:13px;}
  .dkedv-admin-logo__text{display:none;}
}
@media (max-width: 480px){
  .admin-header-hotel{max-width:38vw;font-size:12px;padding:7px 10px;}
}

/* Booking edit: clean amendment/extras layout */
.booking-edit-container{max-width:1180px}
.booking-edit-card{padding:24px}
.booking-edit-extras-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px 16px;
  margin-top:14px;
  align-items:end;
}
.booking-edit-field{
  display:flex;
  flex-direction:column;
  gap:7px;
  margin:0;
  min-width:0;
  font-size:13px;
  color:#333;
}
.booking-edit-field input,
.booking-edit-field select{
  width:100%;
  min-height:44px;
}
.booking-edit-check{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:44px;
  margin:0;
  padding:10px 12px;
  border:1px solid #e1e6e9;
  border-radius:10px;
  background:#f8fafb;
  cursor:pointer;
}
.booking-edit-check input[type="checkbox"]{
  width:18px;
  height:18px;
  margin:0;
  flex:0 0 auto;
}
.booking-edit-check span{
  line-height:1.25;
}
.booking-edit-page .room-card{
  padding:18px;
  border-radius:14px;
}
.booking-edit-page .room-title{font-size:16px}
.booking-edit-page .change-offer-box{
  margin-top:16px;
  padding:18px;
  border:1px solid #dfe5e8;
  border-radius:14px;
  background:#f8fafb;
}
.booking-edit-page .change-offer-box textarea{
  margin-top:8px;
  min-height:110px;
}
@media (max-width:720px){
  .booking-edit-card{padding:16px}
  .booking-edit-extras-grid{grid-template-columns:1fr}
}

/* Booking edit: reveal amendment controls only on demand */
.booking-edit-page .booking-edit-change-panel{display:none}
.booking-edit-page.booking-edit-is-changing .booking-edit-change-panel{display:block}
.booking-edit-page.booking-edit-is-changing .booking-edit-extras-grid.booking-edit-change-panel{display:grid}
.booking-edit-roomtype-field{grid-column:1 / -1}
.booking-edit-roomtype-field select{width:100%}

/* Booking edit: editable travel dates */
.booking-edit-date-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:10px 0 12px}
.booking-edit-page.booking-edit-is-changing .booking-edit-date-grid{display:grid}
.booking-edit-date-grid label{font-weight:600}
.booking-edit-date-grid input{margin-top:6px}
.booking-edit-reception-message{background:#f8fafb;border:1px solid #e2e8ec;border-radius:14px;padding:14px}
@media(max-width:640px){.booking-edit-date-grid{grid-template-columns:1fr}}


/* Ruhige, nicht klickbare Statusanzeige im Adminbereich */
.admin-status-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:30px;
  padding:5px 12px;
  border-radius:999px;
  border:1px solid transparent;
  font-size:13px;
  font-weight:800;
  line-height:1.15;
  white-space:nowrap;
  cursor:default;
  user-select:none;
}
.admin-status-pill--confirmed{
  color:#315f45;
  background:#e9f2ec;
  border-color:#cbded1;
}
.admin-status-pill--declined{
  color:#7a3f3f;
  background:#f5eaea;
  border-color:#e5caca;
}
.admin-status-pill--cancelled{
  color:#596268;
  background:#edf0f2;
  border-color:#d8dde0;
}
.admin-status-pill--pending{
  color:#735d24;
  background:#f6f0df;
  border-color:#e8d9ad;
}
.admin-status-pill--neutral{
  color:#4f5d64;
  background:#eef2f4;
  border-color:#d8e0e4;
}
.booking-edit-status-row{
  display:flex;
  align-items:center;
  gap:9px;
  flex-wrap:wrap;
}

/* Guest self-service booking editor */
.manage-edit-launch{margin:24px 0 10px}
.manage-edit-form{
  margin-top:14px;
  padding:20px;
  border:1px solid #dfe5e8;
  border-radius:16px;
  background:#f8fafb;
}
.manage-edit-form[hidden]{display:none!important}
.manage-edit-form h2{margin:0 0 14px;font-size:22px}
.manage-edit-form h2:not(:first-of-type){margin-top:26px;padding-top:20px;border-top:1px solid #e1e6e9}
.manage-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.manage-form-grid label{margin:0;font-weight:700;color:#2c373c}
.manage-form-grid input,.manage-form-grid select,.manage-form-grid textarea{margin-top:6px;background:#fff}
.manage-span-2{grid-column:span 2}
.manage-room-edit-list{display:flex;flex-direction:column;gap:14px;margin-top:16px}
.manage-room-edit{padding:16px;border:1px solid #d9e1e5;border-left:5px solid #397c46;border-radius:13px;background:#fff}
.manage-room-edit h3{margin:0 0 13px;font-size:18px}
.manage-check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}
.manage-check-grid label{display:flex;gap:9px;align-items:center;padding:10px 12px;border:1px solid #e2e7e9;border-radius:10px;background:#fafbfb;cursor:pointer}
.manage-check-grid input{margin:0;width:auto}
.manage-edit-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.manage-edit-note{margin:8px 0 0;color:#5d6970}
.manage-edit-restriction{margin-top:18px;padding:12px 14px;border-left:4px solid #b38a2d;border-radius:8px;background:#fff7e5;color:#644d19}
.manage-success{margin:0 0 14px;padding:11px 13px;border-left:4px solid #397c46;border-radius:8px;background:#edf7ef;color:#275b31}
@media(max-width:700px){
  .manage-form-grid{grid-template-columns:1fr}
  .manage-span-2{grid-column:span 1}
  .manage-check-grid{grid-template-columns:1fr}
  .manage-edit-form{padding:14px}
}

/* Booking edit: ruhiger Bearbeitungsmodus im Stil der Gast-Verwaltung */
.booking-edit-page.booking-edit-is-changing .booking-edit-card{
  background:#fff;
}
.booking-edit-section{
  margin:16px 0;
  padding:18px;
  border:1px solid #d9e1e5;
  border-radius:14px;
  background:#f8fafb;
}
.booking-edit-section-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:15px;
}
.booking-edit-section-head h2{
  margin:2px 0 0;
  font-size:21px;
  line-height:1.2;
}
.booking-edit-section-kicker{
  display:block;
  font-size:11px;
  line-height:1.2;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:#69767c;
  font-weight:800;
}
.booking-edit-section-note{
  color:#637178;
  font-size:12px;
  text-align:right;
  max-width:230px;
}
.booking-edit-current-guest{
  margin:0 0 14px;
}
.booking-edit-form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.booking-edit-form-grid label,
.booking-edit-section label{
  margin:0;
  font-weight:700;
  color:#2c373c;
}
.booking-edit-form-grid input,
.booking-edit-section input,
.booking-edit-section select,
.booking-edit-section textarea{
  margin-top:6px;
  background:#fff;
  border:1px solid #d7e0e4;
  border-radius:10px;
}
.booking-edit-span-2{
  grid-column:span 2;
}
.booking-edit-summary-box{
  margin:18px 0;
  padding:16px 18px;
  border:1px solid #e0e6e9;
  border-radius:13px;
  background:#fff;
}
.booking-edit-travel-section{
  margin-top:16px;
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.booking-edit-travel-section .booking-edit-section-head{
  grid-column:1 / -1;
}
.booking-edit-price-label{
  padding:12px 14px;
  border:1px solid #e0e6e9;
  border-radius:11px;
  background:#fafbfb;
}
.booking-edit-reception-message{
  margin:16px 0;
  padding:18px;
  border:1px solid #d9e1e5;
  border-left:5px solid #397c46;
  border-radius:14px;
  background:#fff;
}
.booking-edit-reception-message textarea{
  width:100%;
  padding:12px;
  border:1px solid #d7e0e4;
  border-radius:10px;
  background:#fff;
}
.booking-edit-help{
  color:#5d6970;
  line-height:1.45;
  margin:0 0 11px;
}
.booking-edit-save-status{
  margin-top:7px;
  color:#2f6b2f;
  font-weight:700;
}
.booking-edit-rooms-head{
  margin:22px 0 12px;
}
.booking-edit-room-card{
  padding:18px;
  border:1px solid #d9e1e5;
  border-left:5px solid #397c46;
  border-radius:14px;
  background:#fff;
  margin-bottom:14px;
}
.booking-edit-room-card .room-title{
  font-size:18px;
  margin-bottom:4px;
}
.booking-edit-room-card .room-cat{
  color:#4c5c63;
  margin-bottom:8px;
}
.booking-edit-extras-grid{
  margin-top:16px;
  padding-top:16px;
  border-top:1px solid #e3e8ea;
}
.booking-edit-check{
  background:#fafbfb;
  border-color:#e1e7e9;
  min-height:48px;
}
.booking-edit-page .change-offer-box{
  border-left:5px solid #0d5968;
  background:#f7fafb;
}
.booking-edit-page .change-offer-actions{
  margin-top:14px;
}
.booking-edit-page.booking-edit-is-changing #booking-change-toggle{
  background:#dfe7ea;
  color:#26353b;
}
@media(max-width:760px){
  .booking-edit-form-grid,
  .booking-edit-travel-section{
    grid-template-columns:1fr;
  }
  .booking-edit-span-2,
  .booking-edit-travel-section .booking-edit-section-head{
    grid-column:span 1;
  }
  .booking-edit-section-head{
    flex-direction:column;
    gap:5px;
  }
  .booking-edit-section-note{
    text-align:left;
    max-width:none;
  }
  .booking-edit-section,
  .booking-edit-reception-message,
  .booking-edit-room-card{
    padding:14px;
  }
}

/* Live price feedback in admin booking edit */
#booking-price-status.is-error{
  color:#8a3535;
  font-weight:700;
}

/* Fixed travel dates in admin booking editor */
.booking-edit-fixed-date{
  display:flex;
  flex-direction:column;
  gap:7px;
  padding:13px 15px;
  border:1px solid #d7dfe3;
  border-radius:12px;
  background:#fff;
}
.booking-edit-fixed-date span{
  font-size:16px;
  font-weight:700;
  color:#26353b;
}
.booking-edit-money-input input[readonly]{
  background:#f4f7f8;
  cursor:default;
}

.booking-edit-total-lines{
  display:flex;
  flex-direction:column;
  gap:6px;
  margin-top:10px;
}

/* Combined price and extras summary in booking edit */
.booking-edit-combined-summary{margin-top:18px;border:1px solid #dbe4e8;border-left:4px solid #0f6372;border-radius:14px;background:#f8fafb;padding:18px}
.booking-edit-summary-prices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}
.booking-edit-summary-prices>div{display:flex;flex-direction:column;gap:5px;padding:14px;border:1px solid #e1e7ea;border-radius:12px;background:#fff}
.booking-edit-summary-prices span{color:#596970;font-size:13px}
.booking-edit-summary-prices strong{font-size:20px;color:#172126}
.booking-edit-summary-prices .booking-edit-summary-grand{border-color:rgba(140,27,27,.22);background:#fff8f8}
.booking-edit-summary-prices .booking-edit-summary-grand strong{color:var(--bp-red2)}
.booking-edit-summary-extras{margin-top:16px;padding-top:14px;border-top:1px solid #dfe6e9}
.booking-edit-summary-extras h3{margin:0 0 10px;font-size:16px}
.booking-edit-summary-extras-list{display:grid;gap:10px}
.booking-edit-summary-extra-group{padding:11px 13px;border-radius:11px;background:#fff;border:1px solid #e2e8eb}
.booking-edit-summary-extra-group strong{display:block;margin-bottom:5px}
.booking-edit-summary-extra-group ul{margin:0;padding-left:20px;color:#405159}
.booking-edit-summary-empty{color:#64737a;font-size:14px;padding:5px 0}
.booking-edit-travel-summary{margin-bottom:16px}
@media(max-width:760px){.booking-edit-summary-prices{grid-template-columns:1fr}}


/* Current booking overview and edit-mode communication visibility */
.booking-edit-current-overview{
  margin:18px 0 12px;
  padding:18px;
  border:1px solid #dce4e8;
  border-left:4px solid #2f7d43;
  border-radius:14px;
  background:#fff;
}
.booking-edit-current-overview .booking-edit-rooms-head{
  margin:0 0 12px;
}
.booking-edit-current-extras{
  padding-top:12px;
  border-top:1px solid #e6ebee;
}
.booking-edit-current-extras h3{
  margin:0 0 8px;
  font-size:16px;
}
.booking-edit-current-extras ul{
  margin:0;
  padding-left:20px;
}
.booking-edit-current-extras li{
  margin:7px 0;
  line-height:1.45;
}
.booking-edit-page.booking-edit-is-changing .booking-edit-default-only{
  display:none !important;
}

/* Booking edit: price details in default view */
.booking-edit-current-room-price{
  margin-top:6px;
  font-size:14px;
  color:#39464d;
}
.booking-edit-default-summary{
  margin:14px 0;
  padding:18px;
  border:1px solid #d8e0e5;
  border-left:4px solid #2f6f3e;
  border-radius:12px;
  background:#fff;
}
.booking-edit-reception-message-bottom{
  margin:14px 0;
}

/* Booking action result page */
.booking-action-page{
  min-height:100vh;
  background:#f3f5f6;
}
.booking-action-container{
  max-width:820px;
  padding-top:56px;
  padding-bottom:56px;
}
.booking-action-result{
  margin:0;
  padding:42px;
  text-align:center;
  border:1px solid #e0e5e8;
}
.booking-action-result__icon{
  width:72px;
  height:72px;
  margin:0 auto 18px;
  display:grid;
  place-items:center;
  border-radius:50%;
  font-size:40px;
  font-weight:800;
  line-height:1;
}
.booking-action-result--confirmed .booking-action-result__icon{
  color:#2f6840;
  background:#e9f2ec;
  border:1px solid #cbded0;
}
.booking-action-result--declined .booking-action-result__icon{
  color:#8d3434;
  background:#f7eaea;
  border:1px solid #e8caca;
}
.booking-action-result__eyebrow{
  color:#68757b;
  font-size:12px;
  font-weight:800;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.booking-action-result h1{
  margin:7px 0 10px;
  font-size:34px;
  line-height:1.15;
}
.booking-action-result__message{
  max-width:620px;
  margin:0 auto 26px;
  color:#536168;
  font-size:17px;
  line-height:1.55;
}
.booking-action-result__details{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  max-width:620px;
  margin:0 auto 28px;
  text-align:left;
}
.booking-action-result__details>div{
  padding:13px 15px;
  border:1px solid #e1e6e9;
  border-radius:12px;
  background:#f9fafb;
}
.booking-action-result__details span{
  display:block;
  margin-bottom:4px;
  color:#66747b;
  font-size:12px;
}
.booking-action-result__details strong{
  color:#19252a;
  font-size:15px;
}
.booking-action-result--confirmed .booking-action-status{color:#2f6840}
.booking-action-result--declined .booking-action-status{color:#8d3434}
.booking-action-result__actions{
  display:flex;
  justify-content:center;
  gap:12px;
  flex-wrap:wrap;
}
.booking-action-primary,
.booking-action-secondary{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:11px 20px;
  border-radius:12px;
  text-decoration:none;
  font-weight:800;
}
.booking-action-primary{
  color:#fff;
  background:var(--bp-red);
}
.booking-action-primary:hover{background:var(--bp-red2)}
.booking-action-secondary{
  color:#20343d;
  background:#e8eef1;
  border:1px solid #d9e2e6;
}
.booking-action-secondary:hover{background:#dde6ea}
@media(max-width:640px){
  .booking-action-container{padding-top:28px;padding-bottom:28px}
  .booking-action-result{padding:28px 18px}
  .booking-action-result h1{font-size:28px}
  .booking-action-result__details{grid-template-columns:1fr}
  .booking-action-result__actions{flex-direction:column}
  .booking-action-primary,.booking-action-secondary{width:100%}
}

/* =========================================================
   Modern admin shell – inspired by the demo dashboard
   ========================================================= */
body.admin-modern{background:#f4f7f8;color:#18242b}
.admin-modern .admin-sticky-header{
  left:236px;width:calc(100% - 236px);height:72px;background:#fff;color:#17212a;
  border-bottom:1px solid #e3e9ec;box-shadow:none;z-index:80
}
.admin-modern .admin-header-inner{height:72px;max-width:none;padding:0 28px}
.admin-modern .dkedv-admin-logo{display:none}
.admin-modern .admin-header-title{font-size:19px;color:#14222c;font-weight:800}
.admin-modern .admin-header-hotel{background:transparent;color:#13202a;font-size:22px;padding:0;border-radius:0;box-shadow:none}
.admin-modern .admin-header-back{background:#f0f4f6;color:#263942;border:1px solid #dce5e9;border-radius:10px;padding:10px 15px}
.admin-modern>.container,.admin-modern>.bookings-page{margin-left:236px;width:calc(100% - 236px);max-width:none;padding-left:28px;padding-right:28px}
.admin-modern>.container:first-of-type{padding-top:24px}
.admin-sidebar{position:fixed;inset:0 auto 0 0;width:236px;background:linear-gradient(180deg,#162738,#102132);color:#eaf1f4;z-index:100;display:flex;flex-direction:column}
.admin-sidebar__brand{height:72px;padding:13px 18px;display:flex;align-items:center;gap:11px;border-bottom:1px solid rgba(255,255,255,.08)}
.admin-sidebar__mark{display:grid;place-items:center;width:39px;height:39px;border:2px solid rgba(255,255,255,.85);border-radius:11px;font-weight:900}
.admin-sidebar__brand strong{display:block;font-size:14px;letter-spacing:.05em}.admin-sidebar__brand small{display:block;color:#9fb0bc;font-size:10px;margin-top:2px}
.admin-sidebar__nav{display:flex;flex-direction:column;gap:5px;padding:20px 12px}
.admin-sidebar__link{min-height:44px;display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:10px;color:#dfe8ed;text-decoration:none;font-weight:650;font-size:14px}
.admin-sidebar__link:hover{background:rgba(255,255,255,.07);color:#fff}
.admin-sidebar__link.is-active{background:rgba(42,157,91,.18);color:#64d391}
.admin-sidebar__icon{width:22px;text-align:center;font-size:18px}
.admin-sidebar__link--placeholder{opacity:.48;cursor:not-allowed}.admin-sidebar__link--placeholder small{margin-left:auto;font-size:9px;text-transform:uppercase;letter-spacing:.06em}
.admin-sidebar__footer{margin-top:auto;padding:18px;color:#9fb0bc;border-top:1px solid rgba(255,255,255,.08)}.admin-sidebar__footer span,.admin-sidebar__footer small{display:block}.admin-sidebar__footer small{margin-top:3px;font-size:10px}
.admin-modern .card{border:1px solid #e2e8eb;border-radius:15px;box-shadow:0 2px 7px rgba(24,43,56,.05)}
.admin-modern button,.admin-modern .btn{border-radius:9px}
.admin-dashboard-welcome{display:flex;justify-content:space-between;align-items:end;margin:0 0 18px}.admin-dashboard-welcome h1{margin:0;font-size:28px}.admin-dashboard-welcome p{margin:5px 0 0;color:#66767e}
.admin-dashboard-recent{margin-top:18px}.admin-dashboard-recent__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.admin-dashboard-recent__head h2{margin:0;font-size:19px}.admin-dashboard-recent__head a{text-decoration:none;font-weight:700;color:#247248}
.admin-dashboard-recent table{width:100%;border-collapse:collapse}.admin-dashboard-recent th{font-size:12px;color:#687880;text-align:left;padding:11px 10px;border-bottom:1px solid #e3e9ec}.admin-dashboard-recent td{padding:12px 10px;border-bottom:1px solid #edf1f3;font-size:14px}.admin-dashboard-recent tr:last-child td{border-bottom:0}
.admin-dashboard-recent__open{display:inline-flex;padding:6px 10px;border-radius:8px;background:#eef3f5;color:#224352;text-decoration:none;font-weight:700;font-size:12px}
.admin-modern .dashboard-operations{gap:14px}.admin-modern .dashboard-operation{min-height:124px}.admin-modern .dashboard-operation__icon{background:#edf4f1;color:#247248}
.admin-modern .dashboard-operation--attention .dashboard-operation__icon{background:#fff2dc;color:#9a6413}.admin-modern .dashboard-operation--payment .dashboard-operation__icon{background:#f8eaea;color:#9a3535}
.admin-modern .dashboard-operation--chart{margin-top:0}
.admin-modern .settings-grid label{background:#fff}.admin-modern .section{border-top:1px solid #e4eaed}
.admin-feature-settings{padding:16px;border:1px solid #dfe7ea;border-radius:13px;background:#f8fafb}.admin-feature-settings label{display:flex!important;align-items:center;gap:10px;background:transparent!important}.admin-feature-settings input{width:auto!important}
@media(max-width:900px){
 .admin-sidebar{width:74px}.admin-sidebar__brand div,.admin-sidebar__link>span:not(.admin-sidebar__icon),.admin-sidebar__link small,.admin-sidebar__footer{display:none}.admin-sidebar__brand{justify-content:center;padding:12px}.admin-sidebar__link{justify-content:center}.admin-modern .admin-sticky-header{left:74px;width:calc(100% - 74px)}.admin-modern>.container,.admin-modern>.bookings-page{margin-left:74px;width:calc(100% - 74px)}
}
@media(max-width:620px){
 .admin-sidebar{display:none}.admin-modern .admin-sticky-header{left:0;width:100%}.admin-modern>.container,.admin-modern>.bookings-page{margin-left:0;width:100%;padding-left:12px;padding-right:12px}.admin-modern .admin-header-hotel{font-size:15px}.admin-modern .admin-header-title{font-size:15px}
}


/* =========================================================
   Responsive admin content corrections
   ========================================================= */
.admin-modern,
.admin-modern *{box-sizing:border-box}
.admin-modern{overflow-x:hidden}

/* The work area always starts after the fixed sidebar and consumes only
   the actually available viewport width. Older 95/96vw rules are reset. */
.admin-modern > .container,
.admin-modern > .bookings-page,
.availability-page.admin-modern > .container,
.admin-modern .container.wide.full{
  width:calc(100% - 236px) !important;
  max-width:none !important;
  margin-left:236px !important;
  margin-right:0 !important;
  padding-left:28px;
  padding-right:28px;
}

.admin-modern .admin-sticky-header .admin-header-inner{
  width:100% !important;
  margin:0 !important;
  padding-left:28px;
  padding-right:28px;
}

/* Tables may scroll inside their card, but never enlarge or move the page. */
.admin-modern .card{max-width:100%;min-width:0}
.admin-modern .table-scroll,
.admin-modern .bookings-table-scroll{
  display:block;
  width:100%;
  max-width:100%;
  min-width:0;
  overflow-x:auto;
  overscroll-behavior-x:contain;
}
.bookings-page{width:calc(100% - 236px) !important}
.bookings-page .bookings-table{width:100%;min-width:1080px}
.availability-page .matrix{width:max-content;min-width:100%}
.availability-page .card{overflow:hidden}

.admin-header-back--compact{
  padding:7px 11px !important;
  min-height:auto;
  font-size:13px;
  line-height:1.2;
  white-space:nowrap;
}

@media(max-width:900px){
  .admin-modern > .container,
  .admin-modern > .bookings-page,
  .availability-page.admin-modern > .container,
  .admin-modern .container.wide.full{
    width:calc(100% - 74px) !important;
    margin-left:74px !important;
    padding-left:18px;
    padding-right:18px;
  }
  .bookings-page{width:calc(100% - 74px) !important}
}

@media(max-width:620px){
  .admin-modern > .container,
  .admin-modern > .bookings-page,
  .availability-page.admin-modern > .container,
  .admin-modern .container.wide.full{
    width:100% !important;
    margin-left:0 !important;
    padding-left:12px;
    padding-right:12px;
  }
  .bookings-page{width:100% !important}
  .admin-modern .admin-sticky-header .admin-header-inner{padding-left:12px;padding-right:12px}
  .admin-header-back--compact{padding:6px 9px !important;font-size:12px}
}


/* Final admin shell refinements */
.admin-sidebar__footer{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.admin-sidebar__logout{
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
  min-height:42px;
  padding:9px 11px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:10px;
  color:#e7eef2;
  background:rgba(255,255,255,.055);
  text-decoration:none;
  font-weight:750;
  font-size:14px;
}
.admin-sidebar__logout:hover{
  color:#fff;
  background:rgba(255,255,255,.1);
}
.admin-sidebar__logout-icon{
  width:20px;
  text-align:center;
  font-size:17px;
}
.admin-sidebar__footer-brand>span,
.admin-sidebar__footer-brand>small{display:block}
.admin-sidebar__footer-brand>small{margin-top:3px;font-size:10px}

/* Make the reservations table use the available card width instead of
   forcing the whole admin work area wider than the viewport. */
.bookings-page{
  min-width:0 !important;
  overflow:hidden;
}
.bookings-page .card{
  width:100%;
  min-width:0;
  overflow:hidden;
}
.bookings-page .bookings-table-scroll{
  width:100%;
  max-width:100%;
  overflow-x:auto;
}
.bookings-page .bookings-table{
  width:100%;
  min-width:940px;
  table-layout:auto;
}
.bookings-page .bookings-table th,
.bookings-page .bookings-table td{
  padding-left:8px;
  padding-right:8px;
}
.bookings-page .bookings-table th:nth-child(1),
.bookings-page .bookings-table td:nth-child(1){width:34px}
.bookings-page .bookings-table th:nth-child(2),
.bookings-page .bookings-table td:nth-child(2){width:46px}
.bookings-page .bookings-table th:nth-child(6),
.bookings-page .bookings-table td:nth-child(6){width:82px}
.bookings-page .bookings-table th:nth-child(7),
.bookings-page .bookings-table td:nth-child(7){width:118px}
.bookings-page .bookings-table th:nth-child(8),
.bookings-page .bookings-table td:nth-child(8){width:92px;white-space:nowrap}
.bookings-page .bookings-table th:last-child,
.bookings-page .bookings-table td:last-child{width:112px;white-space:nowrap}

@media(max-width:900px){
  .admin-sidebar__footer{padding:12px 9px}
  .admin-sidebar__logout{justify-content:center;padding:9px}
  .admin-sidebar__logout span:not(.admin-sidebar__logout-icon),
  .admin-sidebar__footer-brand{display:none}
}


/* Booking edit: compact answer shortcut in the sticky header */
.admin-header-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:9px;
  min-width:0;
}
.admin-header-answer{
  appearance:none;
  border:1px solid #cfe1d5;
  border-radius:10px;
  background:#e6f2ea;
  color:#24623a;
  padding:7px 11px;
  min-height:auto;
  font:inherit;
  font-size:13px;
  line-height:1.2;
  font-weight:700;
  white-space:nowrap;
  cursor:pointer;
}
.admin-header-answer:hover{
  background:#dcece2;
  border-color:#bdd6c5;
}
#booking-answer-actions:focus{
  outline:2px solid rgba(47,111,62,.25);
  outline-offset:6px;
  border-radius:10px;
}
@media(max-width:720px){
  .admin-header-answer{padding:6px 8px;font-size:12px}
}
@media(max-width:560px){
  .admin-header-answer{max-width:122px;white-space:normal;text-align:center}
}


/* Admin header cleanup: sidebar already identifies the current page. */
.admin-modern .admin-header-brand{
  min-width:1px;
  width:1px;
  overflow:hidden;
}
.admin-modern .admin-header-hotel{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  max-width:min(48vw,520px);
  padding:9px 24px;
  border:1px solid #d7e2dc;
  border-radius:999px;
  background:#f3f7f5;
  color:#182c24;
  font-size:19px;
  font-weight:850;
  line-height:1.1;
  box-shadow:0 2px 7px rgba(21,52,38,.08);
  transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease;
}
.admin-modern .admin-header-hotel:hover{
  background:#eaf3ee;
  border-color:#bfd3c7;
  box-shadow:0 4px 11px rgba(21,52,38,.12);
  transform:translate(-50%,-50%) translateY(-1px);
}
@media(max-width:900px){
  .admin-modern .admin-header-hotel{max-width:62vw;font-size:17px;padding:8px 18px}
}
@media(max-width:620px){
  .admin-modern .admin-header-hotel{max-width:78vw;font-size:15px;padding:8px 14px}
}


/* Final header centering and reservations table fit */
.admin-modern .admin-sticky-header .admin-header-inner,
.admin-modern .admin-sticky-header .container.wide.full,
.admin-modern .admin-sticky-header .container.wide{
  position:relative;
  width:100% !important;
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
}
.admin-modern .admin-sticky-header .admin-header-hotel{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
}

/* Reservations should adapt to the card width without horizontal scrolling. */
.bookings-page .bookings-table-scroll{
  overflow-x:hidden;
}
.bookings-page .bookings-table{
  width:100%;
  min-width:0 !important;
  table-layout:fixed;
}
.bookings-page .bookings-table th,
.bookings-page .bookings-table td{
  min-width:0 !important;
  padding-left:7px;
  padding-right:7px;
  overflow:hidden;
  text-overflow:ellipsis;
}
.bookings-page .bookings-table th:nth-child(1),
.bookings-page .bookings-table td:nth-child(1){width:32px}
.bookings-page .bookings-table th:nth-child(2),
.bookings-page .bookings-table td:nth-child(2){width:44px}
.bookings-page .bookings-table th:nth-child(3),
.bookings-page .bookings-table td:nth-child(3){width:17%}
.bookings-page .bookings-table th:nth-child(4),
.bookings-page .bookings-table td:nth-child(4){width:15%}
.bookings-page .bookings-table th:nth-child(5),
.bookings-page .bookings-table td:nth-child(5){width:18%}
.bookings-page .bookings-table th:nth-child(6),
.bookings-page .bookings-table td:nth-child(6){width:72px}
.bookings-page .bookings-table th:nth-child(7),
.bookings-page .bookings-table td:nth-child(7){width:112px}
.bookings-page .bookings-table th:nth-child(8),
.bookings-page .bookings-table td:nth-child(8){width:86px;white-space:nowrap}
.bookings-page .bookings-table th:last-child,
.bookings-page .bookings-table td:last-child{width:104px;white-space:nowrap;overflow:visible}
.bookings-page .booking-created span,
.bookings-page .booking-period span{display:block;white-space:nowrap}
.bookings-page .booking-created span+span{color:#718089;font-size:12px;margin-top:2px}
.bookings-page .booking-period__checkout{margin-top:2px}
.bookings-page .bookings-table td:nth-child(3){white-space:normal;overflow-wrap:anywhere}
.bookings-page .bookings-table td:last-child .btn{padding-left:8px;padding-right:8px}

@media(max-width:1100px){
  .bookings-page .bookings-table th,
  .bookings-page .bookings-table td{padding-left:5px;padding-right:5px;font-size:13px}
  .bookings-page .bookings-table th:nth-child(3),
  .bookings-page .bookings-table td:nth-child(3){width:15%}
  .bookings-page .bookings-table th:nth-child(4),
  .bookings-page .bookings-table td:nth-child(4){width:14%}
  .bookings-page .bookings-table th:nth-child(5),
  .bookings-page .bookings-table td:nth-child(5){width:17%}
  .bookings-page .bookings-table th:nth-child(7),
  .bookings-page .bookings-table td:nth-child(7){width:104px}
  .bookings-page .bookings-table th:last-child,
  .bookings-page .bookings-table td:last-child{width:96px}
  .bookings-page .admin-status-pill{padding-left:9px;padding-right:9px;font-size:12px}
}


/* Sidebar: notification badge and DKEDV footer link */
.admin-sidebar__badge{
  margin-left:auto;
  min-width:20px;
  height:20px;
  padding:0 6px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#c83c45;
  color:#fff;
  font-size:11px;
  line-height:1;
  font-weight:800;
  box-shadow:0 0 0 2px rgba(255,255,255,.08);
}
.admin-sidebar__footer-brand{
  display:block;
  margin-top:14px;
  color:#9fb0bc;
  text-decoration:none;
  border-radius:8px;
  transition:color .18s ease, background .18s ease;
}
.admin-sidebar__footer-brand:hover{
  color:#fff;
}
.admin-sidebar__footer-brand:focus-visible{
  outline:2px solid #64d391;
  outline-offset:4px;
}
@media (max-width:1100px){
  .admin-sidebar__badge{
    position:absolute;
    top:5px;
    right:5px;
    min-width:17px;
    height:17px;
    padding:0 4px;
    font-size:9px;
  }
  .admin-sidebar__link{position:relative}
}

/* ==========================================================
   Modern public booking flow
   Scoped to booking/index.php via body.booking-public
   ========================================================== */
body.booking-public{
  --booking-bg:#eef3f5;
  --booking-ink:#14242d;
  --booking-muted:#687b86;
  --booking-line:#dfe8ec;
  --booking-accent:#9b1c1f;
  --booking-accent-dark:#7d1417;
  --booking-teal:#0f5a65;
  background:
    radial-gradient(circle at 12% 0%,rgba(15,90,101,.09),transparent 31rem),
    linear-gradient(180deg,#f8fafb 0,#eef3f5 34rem,#eef3f5 100%);
  color:var(--booking-ink);
  min-height:100vh;
}
.booking-public main{padding:28px 0 60px}
.booking-public .container{max-width:1220px;width:calc(100% - 40px)}

.booking-public-header{
  position:relative;
  padding:0;
  min-height:116px;
  display:flex;
  align-items:center;
  background:
    radial-gradient(circle at 76% 0%,rgba(255,255,255,.12),transparent 26rem),
    linear-gradient(135deg,#112836 0%,#172f3e 52%,#10232f 100%);
  box-shadow:0 12px 35px rgba(14,32,43,.18);
  overflow:hidden;
}
.booking-public-header:after{
  content:"";position:absolute;inset:auto -8% -78px 38%;height:150px;
  border-radius:50%;background:rgba(255,255,255,.035);transform:rotate(-6deg);pointer-events:none
}
.booking-public .topbar-inner{min-height:116px;position:relative;z-index:1;gap:24px}
.booking-brand{display:flex;align-items:center;gap:15px;text-decoration:none;color:#fff;min-width:0}
.booking-brand__logo{width:58px;height:58px;border-radius:16px;background:#fff;display:grid;place-items:center;padding:7px;box-shadow:0 8px 24px rgba(0,0,0,.22);flex:0 0 auto}
.booking-brand__logo img{display:block;max-width:100%;max-height:100%;object-fit:contain}
.booking-brand__copy{display:flex;flex-direction:column;gap:3px;min-width:0}
.booking-brand__eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:11px;font-weight:800;color:#9fc0ca}
.booking-public .topbar-title{font-size:27px;line-height:1.15;font-weight:850;letter-spacing:-.025em}
.booking-public .topbar-badge{
  padding:11px 18px;border:1px solid rgba(255,255,255,.7);background:rgba(255,255,255,.96);
  color:#152832;box-shadow:0 8px 22px rgba(0,0,0,.15);font-size:14px;transition:.18s ease
}
.booking-public .topbar-badge:hover{transform:translateY(-1px);box-shadow:0 11px 25px rgba(0,0,0,.2)}

.booking-public .card{
  border:1px solid rgba(204,218,224,.9);border-radius:22px;
  box-shadow:0 14px 38px rgba(25,51,64,.08);padding:24px;background:rgba(255,255,255,.97)
}
.booking-public .booking-search{margin:-2px 0 24px;padding:24px 26px 26px}
.booking-search__intro{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:0 0 19px}
.booking-kicker{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.14em;font-weight:850;color:var(--booking-teal);margin-bottom:4px}
.booking-search__title{font-size:22px;font-weight:820;letter-spacing:-.02em}
.booking-search__secure{font-size:12px;font-weight:750;color:#3d6a61;background:#eaf4ef;border:1px solid #d4e9df;padding:7px 10px;border-radius:999px;white-space:nowrap}
.booking-public .bookingbar--search{display:grid;grid-template-columns:1.05fr 1.05fr .9fr .9fr .9fr auto;gap:12px;align-items:end}
.booking-public .bookingbar label{font-size:12px;font-weight:750;color:#425963;margin:0 0 7px}
.booking-public input,.booking-public select,.booking-public textarea{
  border:1px solid #d7e1e5;border-radius:12px;background:#fbfcfd;color:#152832;
  box-shadow:0 1px 2px rgba(14,37,48,.03);transition:border-color .16s,box-shadow .16s,background .16s
}
.booking-public input:focus,.booking-public select:focus,.booking-public textarea:focus{
  outline:none;border-color:#79aab4;background:#fff;box-shadow:0 0 0 4px rgba(15,90,101,.10)
}
.booking-public .bookingbar--search input,.booking-public .bookingbar--search select{height:50px;padding:0 13px}
.booking-public .bookingbar__actions{align-self:end}
.booking-public button,.booking-public .btn-primary{border-radius:12px;font-weight:800;transition:transform .14s ease,box-shadow .14s ease,filter .14s ease}
.booking-public button:hover:not(:disabled),.booking-public .btn-primary:hover:not(:disabled){transform:translateY(-1px)}
.booking-public #searchBtn,.booking-public .btn-primary{
  min-height:50px;padding:0 22px;border:0;background:linear-gradient(135deg,#a51e22,#861519);color:#fff;
  box-shadow:0 8px 18px rgba(139,24,28,.20)
}
.booking-public #searchBtn:hover,.booking-public .btn-primary:hover{box-shadow:0 11px 22px rgba(139,24,28,.27)}

.booking-public .booking-layout{grid-template-columns:minmax(0,1fr) 350px;gap:24px;align-items:start}
.booking-public .booking-main{min-width:0}
.booking-public .booking-step{padding:26px}
.booking-public .booking-step__head{padding-bottom:17px;border-bottom:1px solid var(--booking-line);margin-bottom:18px}
.booking-public .booking-step .h2{font-size:25px;line-height:1.15;letter-spacing:-.025em;color:#14242d}
.booking-public .small{color:var(--booking-muted)}

.booking-public .ratebox{margin:0 0 18px}
.booking-public .ratepromo{
  border:1px solid #dce6ea;border-radius:16px;padding:17px 18px;background:linear-gradient(135deg,#f7fafb,#f2f6f7);
  box-shadow:inset 4px 0 0 #7aa8b1;display:flex;align-items:center;justify-content:space-between;gap:16px
}
.booking-public .ratepromo.is-active{box-shadow:inset 4px 0 0 #a51e22;background:linear-gradient(135deg,#fff8f8,#f8f3f3)}
.booking-public .ratepromo__text{line-height:1.5;color:#273c46}
.booking-public .ratepromo__btn{border:1px solid #cbd8dd;background:#fff;color:#1c3440;padding:10px 15px;border-radius:11px;box-shadow:0 4px 12px rgba(28,52,64,.07);white-space:nowrap}

.booking-public .roomcards{gap:14px}
.booking-public .roomcard{
  grid-template-columns:154px minmax(0,1fr);gap:20px;padding:16px;border:1px solid #dfe8ec;border-radius:18px;
  background:#fff;box-shadow:0 7px 20px rgba(28,55,68,.055);transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease
}
.booking-public .roomcard:hover:not(.is-unavailable){transform:translateY(-2px);border-color:#c5d9df;box-shadow:0 12px 26px rgba(28,55,68,.10)}
.booking-public .roomcard__img{height:122px;border-radius:13px;overflow:hidden;background:#edf2f4}
.booking-public .roomcard__img img{width:100%;height:100%;object-fit:cover;transition:transform .25s ease}
.booking-public .roomcard:hover .roomcard__img img{transform:scale(1.025)}
.booking-public .roomcard__body{min-width:0;display:flex;flex-direction:column;justify-content:space-between}
.booking-public .roomcard__title{font-size:19px;letter-spacing:-.015em;color:#172a34}
.booking-public .roomcard__price{padding-left:14px}
.booking-public .roomcard__price .price-new{font-size:22px;color:#132a35}
.booking-public .roomcard__bottom{padding-top:12px;border-top:1px solid #edf1f3}
.booking-public .stepper{display:grid;grid-template-columns:44px 64px 44px;gap:7px;align-items:center}
.booking-public .stepper-btn{width:44px;height:44px;padding:0;border-radius:12px;border:1px solid #cad9df;background:#f4f8fa;color:#285c70;font-size:22px;box-shadow:none}
.booking-public .stepper-input{height:44px;text-align:center;font-weight:850;padding:0;border-radius:12px;background:#fff}
.booking-public .avail-note{border-radius:9px;padding:7px 10px;margin-top:7px;background:#fff3cf;color:#70590b;font-weight:700;font-size:12px}
.booking-public .booking-step__foot{display:flex;align-items:center;justify-content:space-between;gap:15px;padding-top:20px;margin-top:18px;border-top:1px solid var(--booking-line)}

.booking-public .booking-side{position:sticky;top:22px}
.booking-public .booking-summary{padding:22px;border-top:5px solid var(--booking-teal)}
.booking-public .booking-summary__title{font-size:20px;color:#152832;margin-bottom:16px}
.booking-public .booking-summary__row{padding:8px 0;border-bottom:1px solid #edf1f3;margin:0;align-items:flex-start}
.booking-public .booking-summary__row:last-of-type{border-bottom:0}
.booking-public .sum-total{background:linear-gradient(135deg,#eef6f7,#f7fafb);border:1px solid #dce9ec;border-radius:14px;padding:15px;margin-top:14px}
.booking-public .sum-total .price{font-size:26px;color:#112e39}

.booking-public .guest-grid{gap:14px!important}
.booking-public .invoicebox,.booking-public .payment-choice-box,.booking-public .room-guests{border-radius:16px;border-color:#dfe8ec;background:#f8fafb}
.booking-public .payment-choice-option{border-radius:16px;border-color:#d9e4e8;box-shadow:0 5px 16px rgba(27,52,64,.04)}
.booking-public .payment-choice-option:has(input:checked){border-color:#678f98;box-shadow:0 0 0 3px rgba(15,90,101,.10)}
.booking-public .checkline{padding:14px 16px;border:1px solid #dfe8ec;border-radius:14px;background:#f8fafb}

@media(max-width:1080px){
  .booking-public .bookingbar--search{grid-template-columns:repeat(3,minmax(0,1fr))}
  .booking-public .bookingbar__actions{grid-column:auto}
  .booking-public .booking-layout{grid-template-columns:minmax(0,1fr) 300px;gap:18px}
}
@media(max-width:860px){
  .booking-public .container{width:calc(100% - 24px)}
  .booking-public .booking-layout{grid-template-columns:1fr}
  .booking-public .booking-side{position:static;order:-1}
  .booking-public .booking-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}
  .booking-public .booking-summary__title,.booking-public .booking-summary hr,.booking-public .sum-items,.booking-public .sum-total{grid-column:1/-1}
}
@media(max-width:680px){
  .booking-public-header,.booking-public .topbar-inner{min-height:92px}
  .booking-brand__logo{width:48px;height:48px;border-radius:13px}
  .booking-brand__eyebrow{display:none}
  .booking-public .topbar-title{font-size:20px}
  .booking-public .topbar-badge{font-size:12px;padding:8px 11px;max-width:42%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .booking-public main{padding-top:16px}
  .booking-public .card,.booking-public .booking-step{padding:17px;border-radius:17px}
  .booking-search__intro{align-items:flex-start}.booking-search__secure{display:none}
  .booking-search__title{font-size:19px}
  .booking-public .bookingbar--search{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .booking-public .bookingbar__actions{grid-column:1/-1}.booking-public #searchBtn{width:100%}
  .booking-public .roomcard{grid-template-columns:104px minmax(0,1fr);gap:13px;padding:12px}
  .booking-public .roomcard__img{height:105px}
  .booking-public .roomcard__title{font-size:16px}
  .booking-public .roomcard__price .price-new{font-size:18px}
  .booking-public .roomcard__bottom{flex-wrap:wrap}
  .booking-public .stepper{margin-left:auto}
  .booking-public .ratepromo{align-items:stretch;flex-direction:column}.booking-public .ratepromo__btn{width:100%;justify-content:center}
  .booking-public .booking-summary{display:block}
}
@media(max-width:430px){
  .booking-public .container{width:calc(100% - 16px)}
  .booking-public .bookingbar--search{grid-template-columns:1fr}
  .booking-public .roomcard{grid-template-columns:1fr}
  .booking-public .roomcard__img{height:170px}
  .booking-public .roomcard__top{grid-template-columns:1fr auto}
}

/* Tarifwechsel auf der öffentlichen Buchungsseite linksbündig halten */
.booking-public .ratepromo{
  align-items:flex-start;
}
.booking-public .ratepromo__btn{
  align-self:flex-start;
}
@media (max-width: 720px){
  .booking-public .ratepromo__btn{
    width:auto;
    justify-content:flex-start;
  }
}


/* Unified admin top bar and user profile */
.admin-topbar{left:264px!important;width:calc(100% - 264px)!important;background:#fff!important;border-bottom:1px solid #e3e8ec!important;box-shadow:none!important}
.admin-topbar__inner{height:86px;min-height:86px;position:relative;display:grid;grid-template-columns:minmax(180px,1fr) auto minmax(250px,1fr);align-items:center;gap:24px;padding:0 32px;box-sizing:border-box}
.admin-topbar__actions{display:flex;align-items:center;gap:10px;min-width:0;justify-self:start}
.admin-topbar__hotel{grid-column:2;text-align:center;text-decoration:none;color:#112132;display:flex;flex-direction:column;align-items:center;line-height:1.1;white-space:nowrap}
.admin-topbar__hotel strong{font-size:25px;font-weight:800;letter-spacing:-.02em}
.admin-topbar__hotel span{margin-top:6px;font-size:14px;font-weight:500;color:#718092;letter-spacing:.01em}
.admin-user-menu{grid-column:3;justify-self:end;position:relative;z-index:20}
.admin-user-menu summary{list-style:none;display:flex;align-items:center;gap:12px;cursor:pointer;padding:8px 10px;border-radius:14px;transition:background .2s ease}
.admin-user-menu summary::-webkit-details-marker{display:none}
.admin-user-menu summary:hover,.admin-user-menu[open] summary{background:#f2f6f4}
.admin-user-menu__text{display:flex;flex-direction:column;text-align:right;line-height:1.25}
.admin-user-menu__text strong{font-size:14px;color:#172334}
.admin-user-menu__text small{font-size:12px;color:#718092;margin-top:2px}
.admin-user-menu__avatar,.admin-user-preview__avatar{width:42px;height:42px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#277a45;color:#fff;font-weight:800;font-size:14px;box-shadow:0 3px 10px rgba(39,122,69,.18)}
.admin-user-menu__chevron{font-size:17px;color:#405163}
.admin-user-menu__panel{position:absolute;right:0;top:calc(100% + 8px);width:245px;padding:16px;background:#fff;border:1px solid #dfe6e9;border-radius:14px;box-shadow:0 16px 40px rgba(23,35,52,.15);display:flex;flex-direction:column;gap:5px}
.admin-user-menu__panel strong{font-size:15px}.admin-user-menu__panel span,.admin-user-menu__panel small{color:#718092}
.admin-user-menu__panel a{margin-top:8px;padding:9px 10px;border-radius:8px;background:#f1f5f6;color:#153a48;text-decoration:none;font-weight:700;font-size:13px}
.admin-user-menu__panel .admin-user-menu__logout{background:#f9eaea;color:#9c2424}
.admin-sidebar__link--settings{margin-top:10px;border-top:1px solid rgba(255,255,255,.08);border-radius:0!important;padding-top:20px!important}
.admin-user-settings{scroll-margin-top:110px}
.settings-section-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:18px}
.settings-section-heading h2{margin:2px 0 4px}.settings-eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.12em;font-weight:800;color:#527080}
.admin-user-preview{display:flex;align-items:center;gap:12px;padding:12px 16px;border:1px solid #dfe6e9;border-radius:14px;background:#f7faf9;min-width:220px}
.admin-user-preview div{display:flex;flex-direction:column}.admin-user-preview small{color:#718092;margin-top:2px}

@media(max-width:1180px){
  .admin-topbar{left:258px!important;width:calc(100% - 258px)!important}
  .admin-topbar__inner{grid-template-columns:minmax(130px,.7fr) auto minmax(210px,.7fr);padding:0 22px;gap:14px}
  .admin-topbar__hotel strong{font-size:22px}
  .admin-user-menu__text{display:none}
}
@media(max-width:820px){
  .admin-topbar{left:0!important;width:100%!important}
  .admin-topbar__inner{height:72px;min-height:72px;grid-template-columns:1fr auto 1fr;padding:0 14px}
  .admin-topbar__hotel strong{font-size:18px}.admin-topbar__hotel span{font-size:11px;margin-top:4px}
  .admin-user-menu__avatar{width:36px;height:36px}.admin-user-menu__chevron{display:none}
  .admin-user-menu summary{padding:4px}
  .settings-section-heading{align-items:flex-start;flex-direction:column}.admin-user-preview{width:100%;box-sizing:border-box}
}

/* Mehrbenutzer-Verwaltung */
.admin-user-block{margin-top:18px;padding:18px;border:1px solid #dfe7ec;border-radius:18px;background:#fbfcfd}
.admin-user-block>h3{margin:0 0 14px}
.admin-user-add{background:#f4f9f7;border-color:#d2e7dc}
.admin-users-list{display:grid;gap:14px}
.admin-user-card{padding:16px;border:1px solid #dce5ea;border-radius:16px;background:#fff}
.admin-user-card.is-current{border-color:#a9d0ba;box-shadow:0 0 0 3px rgba(46,125,82,.07)}
.admin-user-card__heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid #edf1f3}
.admin-user-card__heading strong,.admin-user-card__heading small{display:block}
.admin-user-card__heading small{margin-top:2px;color:#70808a}
.admin-user-state{display:inline-flex;align-items:center;min-height:28px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:800}
.admin-user-state.is-active{background:#e6f3eb;color:#28623d;border:1px solid #c9e1d2}
.admin-user-state.is-inactive{background:#edf0f2;color:#66727a;border:1px solid #d8dfe3}
.admin-user-active{display:flex!important;align-items:center;gap:9px;align-self:end;min-height:46px}
.admin-user-active input{width:auto!important;margin:0}
.admin-user-card__actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;align-self:end;flex-wrap:wrap}
button.danger-outline{background:#fff5f5;color:#9a2323;border:1px solid #e8bcbc;box-shadow:none}
button.danger-outline:hover{background:#fce9e9}
@media(max-width:750px){.admin-user-card__heading{align-items:center}.admin-user-card__actions{justify-content:flex-start}}


/* Availability 2026 refresh */
.availability-page .availability-intro{display:flex;justify-content:space-between;align-items:flex-end;margin:0 0 18px;padding:2px 2px 12px;border-bottom:1px solid #e5ebee}
.availability-page .availability-eyebrow{font-size:11px;letter-spacing:.14em;font-weight:800;color:#647782;margin-bottom:5px}
.availability-page .availability-intro h1{font-size:25px;line-height:1.15;margin:0;color:#132636}
.availability-page .availability-intro p{margin:6px 0 0;color:#6b7c86;font-size:14px}
.availability-page .availability-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:16px 18px;margin:0 0 14px;background:#f7f9fa;border:1px solid #e0e7ea;border-radius:15px}
.availability-page .availability-filter-form{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin:0}
.availability-page .availability-toolbar-actions{display:flex;gap:10px;align-items:flex-end}
.availability-page .availability-period-nav{display:flex;gap:9px;margin-left:auto;align-self:flex-end}
.availability-page .availability-nav-btn{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:12px;background:#fff;border:1px solid #d8e1e5;color:#263b47;text-decoration:none;font-weight:800;box-shadow:0 3px 10px rgba(22,42,55,.06);transition:.15s ease}
.availability-page .availability-nav-btn:hover{transform:translateY(-1px);border-color:#a9bbc4;background:#f1f6f7}
.availability-page details.card{border-radius:14px!important;border-color:#e0e7ea!important;box-shadow:none!important;background:#fbfcfc}
.availability-page .table-scroll{border:1px solid #e1e7ea;border-radius:15px;background:#fff}
.availability-page .matrix{border-spacing:0;background:#fff}
.availability-page .matrix th,.availability-page .matrix td{padding:8px 8px}
.availability-page .matrix thead th{height:48px;color:#233743;font-size:13px;background:#fbfcfc}
.availability-page .matrix .firstcol{min-width:132px!important;width:132px!important;max-width:132px;padding-left:14px;padding-right:10px}
.availability-page .matrix td.firstcol b{font-size:14px;color:#152b37}
.availability-page .matrix td.firstcol .small{font-size:11px;line-height:1.25;margin-top:3px}
.availability-page .cellstack{min-width:112px}
.availability-page .celllabel{font-size:12px;color:#60727c}
.availability-page .cell-inv,.availability-page .cell-rate{border-radius:11px!important;min-height:42px!important;font-weight:700;background:#fff}
.availability-page .celldivider{opacity:.45}
.availability-page .matrix tr:hover td.firstcol{background:#f8fbfc!important}
.room-category-toggle{display:flex!important;align-items:flex-start;gap:10px;background:#f5f9f7!important;border:1px solid #dce9e1!important;border-radius:12px;padding:12px!important}
.room-category-toggle input{width:auto!important;margin-top:3px}
.room-category-toggle span{display:flex;flex-direction:column;gap:3px}
.room-category-toggle small{color:#6a7b74;font-weight:400;line-height:1.35}
@media(max-width:900px){
 .availability-page .availability-toolbar{align-items:stretch;flex-direction:column}
 .availability-page .availability-period-nav{margin-left:0;align-self:flex-end}
}
@media(max-width:620px){
 .availability-page .availability-filter-form{display:grid;grid-template-columns:1fr 1fr;width:100%}
 .availability-page .availability-toolbar-actions{grid-column:1/-1}
 .availability-page .availability-toolbar-actions button{flex:1}
}

/* Settings: sticky category shortcuts and global save action */
.settings-shortcut-bar{
  position:sticky;
  top:78px;
  z-index:35;
  display:flex;
  align-items:center;
  gap:14px;
  margin:-2px 0 24px;
  padding:12px;
  border:1px solid #dce5e9;
  border-radius:16px;
  background:rgba(255,255,255,.96);
  box-shadow:0 8px 24px rgba(18,43,56,.10);
  backdrop-filter:blur(12px);
}
.settings-shortcut-links{
  display:flex;
  align-items:center;
  gap:7px;
  min-width:0;
  flex:1 1 auto;
  overflow-x:auto;
  scrollbar-width:thin;
  padding-bottom:1px;
}
.settings-shortcut-links a{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  min-height:36px;
  padding:7px 12px;
  border:1px solid #dbe4e8;
  border-radius:999px;
  background:#f5f8f9;
  color:#233b48;
  font-size:13px;
  font-weight:700;
  text-decoration:none;
  white-space:nowrap;
  transition:background .18s ease,border-color .18s ease,transform .18s ease;
}
.settings-shortcut-links a:hover,
.settings-shortcut-links a:focus-visible{
  background:#eaf4ef;
  border-color:#bdd9ca;
  color:#17653e;
  transform:translateY(-1px);
}
.settings-sticky-save{
  flex:0 0 auto;
  min-height:40px;
  padding:9px 16px;
  white-space:nowrap;
}
.settings-anchor-section{
  scroll-margin-top:160px;
}
@media(max-width:900px){
  .settings-shortcut-bar{top:70px;align-items:stretch;gap:10px;padding:10px}
  .settings-sticky-save{padding-inline:13px}
}
@media(max-width:620px){
  .settings-shortcut-bar{flex-wrap:wrap}
  .settings-shortcut-links{width:100%;order:1}
  .settings-sticky-save{width:100%;order:2}
  .settings-anchor-section{scroll-margin-top:205px}
}

/* Availability: intro headline removed, toolbar starts directly at card top */
.availability-page .card > .availability-toolbar:first-of-type{
  margin-top:0;
}

/* Admin calendar: operational arrivals/departures view */
.hotel-calendar-page{padding-bottom:42px}
.hotel-calendar-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:8px 0 18px}
.hotel-calendar-heading h1{margin:3px 0 4px;font-size:32px;color:#122431}
.hotel-calendar-heading p{margin:0;color:#6b7e8a}
.hotel-calendar-eyebrow{font-size:12px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:#287c62}
.hotel-calendar-toolbar{display:flex;align-items:center;gap:8px}
.hotel-calendar-nav-btn,.hotel-calendar-today{display:inline-flex;align-items:center;justify-content:center;height:42px;border:1px solid #d5e0e5;border-radius:10px;background:#fff;color:#173442;text-decoration:none;font-weight:750;box-shadow:0 3px 10px rgba(19,46,59,.05)}
.hotel-calendar-nav-btn{width:42px;font-size:27px;line-height:1}.hotel-calendar-today{padding:0 16px;font-size:14px}
.hotel-calendar-nav-btn:hover,.hotel-calendar-today:hover{background:#eff7f3;border-color:#b9d5c7;color:#17623f}
.hotel-calendar-summary{display:grid;grid-template-columns:repeat(3,minmax(135px,180px)) minmax(330px,1fr);gap:12px;margin-bottom:16px}
.hotel-calendar-summary__item,.hotel-calendar-summary__future{padding:16px 18px;min-height:86px}
.hotel-calendar-summary__item span,.hotel-calendar-summary__future>span{display:block;color:#71838d;font-size:12px;font-weight:750;text-transform:uppercase;letter-spacing:.05em}
.hotel-calendar-summary__item strong{display:block;margin-top:6px;font-size:28px;color:#173442}
.hotel-calendar-summary__future{border:1px dashed #cbd9df;border-radius:14px;background:#f8fafb}
.hotel-calendar-summary__future div{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}
.hotel-calendar-summary__future div span{padding:5px 9px;border-radius:999px;background:#eaf0f3;color:#61747e;font-size:11px;font-weight:750}
.hotel-calendar-shell{padding:0;overflow:hidden}
.hotel-calendar-titlebar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 20px;border-bottom:1px solid #dce5e9;background:#fbfcfd}
.hotel-calendar-titlebar>div:first-child{display:flex;align-items:baseline;gap:9px}.hotel-calendar-titlebar span{font-size:22px;font-weight:800;color:#183746}.hotel-calendar-titlebar strong{font-size:16px;color:#6d7f89}
.hotel-calendar-legend{display:flex;align-items:center;gap:18px}.hotel-calendar-legend span{display:inline-flex;align-items:center;gap:7px;font-size:12px!important;color:#536873!important}.hotel-calendar-legend i{width:10px;height:10px;border-radius:50%}.hotel-calendar-legend i.is-arrival{background:#21865c}.hotel-calendar-legend i.is-departure{background:#b66c1e}
.hotel-calendar-scroll{overflow-x:auto}
.hotel-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(145px,1fr));min-width:1015px}
.hotel-calendar-grid--weekdays{border-bottom:1px solid #dce5e9;background:#f3f7f8}.hotel-calendar-grid--weekdays div{padding:10px 12px;border-right:1px solid #e1e8eb;color:#667985;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.hotel-calendar-grid--weekdays div:last-child{border-right:0}
.hotel-calendar-day{min-height:152px;padding:9px;border-right:1px solid #e1e8eb;border-bottom:1px solid #e1e8eb;background:#fff}.hotel-calendar-day:nth-child(7n){border-right:0}.hotel-calendar-day.is-outside{background:#f7f9fa}.hotel-calendar-day.is-outside>*{opacity:.56}.hotel-calendar-day.is-today{background:#f1f8f4;box-shadow:inset 0 0 0 2px #61a987}
.hotel-calendar-day>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.hotel-calendar-day time{display:inline-flex;align-items:center;justify-content:center;width:27px;height:27px;border-radius:8px;color:#314b58;font-size:13px;font-weight:800}.hotel-calendar-day.is-today time{background:#247b58;color:#fff}.hotel-calendar-day>header span{font-size:10px;font-weight:800;color:#247b58;text-transform:uppercase;letter-spacing:.05em}
.hotel-calendar-events{display:flex;flex-direction:column;gap:6px}.hotel-calendar-event{display:flex;align-items:center;gap:7px;min-width:0;padding:7px 8px;border:1px solid transparent;border-radius:8px;text-decoration:none;transition:transform .15s ease,box-shadow .15s ease}.hotel-calendar-event:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(20,50,62,.12)}.hotel-calendar-event.is-arrival{background:#e8f5ee;border-color:#c9e5d6;color:#185c3f}.hotel-calendar-event.is-departure{background:#fff2e5;border-color:#f0d5b7;color:#7b4615}
.hotel-calendar-event__icon{flex:0 0 auto;font-size:14px}.hotel-calendar-event__body{min-width:0;display:block}.hotel-calendar-event__body strong,.hotel-calendar-event__body small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hotel-calendar-event__body strong{font-size:12px}.hotel-calendar-event__body small{margin-top:2px;font-size:10px;opacity:.78}.hotel-calendar-event__status{flex:0 0 auto;width:7px;height:7px;margin-left:auto;border-radius:50%;background:#8798a1}.hotel-calendar-event__status.is-confirmed{background:#21865c}.hotel-calendar-event__status.is-new,.hotel-calendar-event__status.is-pending{background:#d18a22}
.hotel-calendar-empty{display:block;padding:9px 2px;color:#a0adb4;font-size:10px}
@media(max-width:1250px){.hotel-calendar-summary{grid-template-columns:repeat(3,1fr)}.hotel-calendar-summary__future{grid-column:1/-1}}
@media(max-width:760px){.hotel-calendar-heading{align-items:flex-start;flex-direction:column}.hotel-calendar-summary{grid-template-columns:repeat(3,1fr)}.hotel-calendar-summary__item{padding:13px 10px}.hotel-calendar-summary__item strong{font-size:23px}.hotel-calendar-summary__item span{font-size:10px}.hotel-calendar-titlebar{align-items:flex-start;flex-direction:column}.hotel-calendar-grid{grid-template-columns:repeat(7,minmax(132px,1fr));min-width:924px}}

/* Calendar readability refresh: compact daily movement totals */
.hotel-calendar-summary{grid-template-columns:repeat(3,minmax(160px,1fr));max-width:760px}
.hotel-calendar-summary__item{background:#fff;border:1px solid #d9e4e8;color:#173442;box-shadow:0 6px 18px rgba(18,43,56,.07)}
.hotel-calendar-summary__item span{color:#536b77}
.hotel-calendar-grid--weekdays{background:#edf3f5}
.hotel-calendar-grid--weekdays div{color:#354e5b;border-color:#d4e0e5}
.hotel-calendar-day{background:#fff;border-color:#dbe5e9}
.hotel-calendar-day.is-outside{background:#eef2f4}
.hotel-calendar-day.is-outside>*{opacity:.78}
.hotel-calendar-day time{color:#1f3d4b;background:#f0f5f7}
.hotel-calendar-day.is-outside time{color:#667d88;background:#e1e8eb}
.hotel-calendar-empty{color:#71858f;font-size:16px;text-align:center;padding-top:18px}
.hotel-calendar-events--counts{display:grid;grid-template-columns:1fr;gap:7px}
.hotel-calendar-count{display:grid;grid-template-columns:20px 28px 1fr;align-items:center;gap:5px;padding:9px 10px;border-radius:9px;text-decoration:none;border:1px solid;box-shadow:0 2px 7px rgba(24,48,60,.04)}
.hotel-calendar-count strong{font-size:18px;line-height:1}.hotel-calendar-count small{font-size:11px;font-weight:750}
.hotel-calendar-count.is-arrival{background:#e9f6ef;border-color:#b9dfca;color:#155e3e}
.hotel-calendar-count.is-departure{background:#fff3e7;border-color:#ebc89f;color:#79430f}
.hotel-calendar-count:hover{filter:brightness(.98);transform:translateY(-1px)}
@media(max-width:760px){.hotel-calendar-summary{grid-template-columns:repeat(3,minmax(130px,1fr));max-width:none}}

/* Settings: navigation switches */
.admin-feature-settings label{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid #dfe7ea;border-radius:11px;background:#f8fafb;font-weight:700}
.admin-feature-settings label input{width:auto;margin:0}
.admin-feature-settings label small{margin-left:auto;color:#71828b;font-weight:600}
.admin-feature-settings label.is-required{background:#eef4f1;color:#345648}
.admin-feature-settings label.is-required input{opacity:.65}
.room-count-settings{padding:16px;border:1px solid #dfe8eb;border-radius:13px;background:#f8fafb}

/* Room management / occupancy timeline */
.room-management-page{padding-bottom:44px}
.room-management-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;margin:8px 0 18px}
.room-management-heading h1{margin:3px 0 4px;font-size:32px;color:#122431}
.room-management-heading p{margin:0;color:#637985}
.room-plan-message{padding:12px 15px;border-radius:10px;font-weight:700}.room-plan-message.is-ok{background:#e8f5ee;color:#17613f}.room-plan-message.is-error{background:#fff0f0;color:#8d1f22}
.room-plan-empty{text-align:center;padding:38px}.room-plan-empty h2{margin-top:0}.room-plan-empty .btn-primary{display:inline-flex;margin-top:12px;text-decoration:none}
.room-plan-shell{padding:0;overflow:hidden}
.room-plan-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 18px;border-bottom:1px solid #dce5e9;background:#f8fafb}
.room-plan-toolbar>div{display:flex;flex-direction:column;gap:3px}.room-plan-toolbar strong{color:#173442}.room-plan-toolbar span{font-size:12px;color:#6d7f89}
.room-plan-scroll{overflow:auto;max-width:100%}
.room-plan-grid{display:grid;grid-template-columns:220px repeat(var(--room-days),minmax(112px,1fr));min-width:1788px}
.room-plan-corner,.room-plan-date{position:sticky;top:0;z-index:4;background:#eaf1f3;border-right:1px solid #d5e0e4;border-bottom:1px solid #d5e0e4;padding:11px 10px;color:#294653;font-size:12px;font-weight:800}
.room-plan-corner{left:0;z-index:6;display:flex;align-items:center}
.room-plan-date{text-align:center}.room-plan-date strong,.room-plan-date span{display:block}.room-plan-date span{margin-top:2px;font-size:10px;color:#687d87;text-transform:uppercase}.room-plan-date.is-weekend{background:#e5edf0}
.room-plan-room{position:sticky;left:0;z-index:3;padding:9px 11px;background:#fff;border-right:1px solid #d5e0e4;border-bottom:1px solid #e0e7ea}
.room-plan-room input{height:36px;padding:7px 9px;border-radius:8px;font-weight:750}.room-plan-room small{display:block;margin-top:4px;color:#6f828c;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.room-plan-cell{min-height:62px;padding:6px;border-right:1px solid #e0e7ea;border-bottom:1px solid #e0e7ea;background:#fff;display:flex;align-items:stretch}.room-plan-cell.is-weekend{background:#f6f8f9}
.room-plan-cell a{display:flex;align-items:center;width:100%;padding:7px 8px;border:1px solid #b9d8c8;border-radius:8px;background:#e8f4ed;color:#175a3c;text-decoration:none;font-size:11px;font-weight:750;overflow:hidden}.room-plan-cell a span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room-plan-cell a:hover{background:#dceee4}
.room-plan-free{margin:auto;color:#a0adb3;font-size:10px}
@media(max-width:900px){.room-management-heading{align-items:flex-start;flex-direction:column}.room-plan-toolbar{align-items:stretch;flex-direction:column}.room-plan-toolbar button{width:100%}}

/* Calendar and room plan: bright surfaces and continuous overnight bars */
body.admin-modern:has(.hotel-calendar-page),
body.admin-modern:has(.room-management-page){background:#f6faf8!important;color:#173442!important}
.hotel-calendar-page,.room-management-page{background:transparent!important;color:#173442!important}
.hotel-calendar-heading h1,.room-management-heading h1{color:#102f3c!important}
.hotel-calendar-heading p,.room-management-heading p{color:#59717c!important}
.hotel-calendar-shell,.room-plan-shell{background:#fff!important}
.hotel-calendar-titlebar,.room-plan-toolbar{background:#ffffff!important}
.hotel-calendar-grid--weekdays{background:#eaf5f0!important}
.hotel-calendar-grid--weekdays div{color:#294d43!important;border-color:#d2e4dc!important}
.hotel-calendar-day{background:#ffffff!important;border-color:#dbe8e2!important}
.hotel-calendar-day.is-outside{background:#f3faf6!important}
.hotel-calendar-day.is-outside>*{opacity:.72!important}
.hotel-calendar-day.is-today{background:#edf8f2!important;box-shadow:inset 0 0 0 2px #69a98c!important}
.hotel-calendar-day time{background:#e8f3ee!important;color:#244b3e!important}
.hotel-calendar-day.is-outside time{background:#dfece6!important;color:#627b71!important}
.hotel-calendar-empty{color:#8aa096!important}

.room-plan-grid{display:block;min-width:1788px;--room-label:220px;--room-day:112px}
.room-plan-header,.room-plan-row{display:grid;grid-template-columns:var(--room-label) repeat(var(--room-days),var(--room-day));min-width:1788px}
.room-plan-header{position:sticky;top:0;z-index:8}
.room-plan-row{position:relative;min-height:64px;background:#fff}
.room-plan-corner,.room-plan-date{background:#eaf5f0!important;color:#294d43!important;border-color:#d2e4dc!important}
.room-plan-date.is-weekend{background:#e2f0e9!important}
.room-plan-room{z-index:6;background:#fff!important;border-color:#dbe8e2!important}
.room-plan-cell{min-height:64px;padding:0;background:#fff!important;border-color:#dbe8e2!important;position:relative}
.room-plan-cell.is-weekend{background:#f3faf6!important}
.room-plan-free{color:#9aada5!important;font-size:10px}
.room-plan-booking{position:absolute;z-index:4;top:13px;left:calc(var(--room-label) + (var(--bar-start) * var(--room-day)));width:calc(var(--bar-width) * var(--room-day));height:38px;display:flex;align-items:center;padding:0 12px;border:1px solid #9fcfb8;border-radius:9px;background:#dff2e8;color:#155b3e;text-decoration:none;font-size:11px;font-weight:800;box-shadow:0 2px 6px rgba(25,84,61,.10);overflow:hidden}
.room-plan-booking .room-guest-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.room-plan-booking:hover{background:#d2ebdf;border-color:#77b99a;z-index:5}
.room-plan-booking::before,.room-plan-booking::after{content:"";position:absolute;top:0;bottom:0;width:8px;pointer-events:none}
.room-plan-booking::before{left:0;background:linear-gradient(90deg,rgba(21,91,62,.12),transparent)}
.room-plan-booking::after{right:0;background:linear-gradient(270deg,rgba(21,91,62,.12),transparent)}

/* Room plan: hide unused rooms by default and allow a local toggle */
.room-plan-toolbar-actions{display:flex!important;align-items:center;flex-direction:row!important;gap:10px}
.room-plan-sort-number{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 14px;border:1px solid #b8ccc3;border-radius:10px;background:#f7faf9;color:#245b48;text-decoration:none;font-weight:800;white-space:nowrap;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}
.room-plan-sort-number:hover{background:#e8f3ed;border-color:#91b3a4}
.room-plan-sort-number.is-active{background:#e4f2eb;border-color:#79a892;box-shadow:inset 0 0 0 1px rgba(23,107,83,.08)}
.room-plan-sort-number.is-disabled{background:#f1f3f2;border-color:#d8dfdc;color:#9aa5a1;cursor:not-allowed}
.room-plan-toggle-free{border:1px solid #b8ccc3;background:#f4f9f6;color:#245b48}
.room-plan-toggle-free:hover{background:#e8f3ed;border-color:#91b3a4}
.room-plan-shell .room-plan-row.is-free-room{display:none}
.room-plan-shell.show-free-rooms .room-plan-row.is-free-room{display:grid}
@media(max-width:900px){.room-plan-toolbar-actions{align-items:stretch!important;flex-direction:column!important}.room-plan-toolbar-actions button,.room-plan-toolbar-actions .room-plan-sort-number{width:100%}}

/* Calendar: calm, light day surfaces without dark header blocks */
.hotel-calendar-grid--weekdays{background:#edf6f3!important}
.hotel-calendar-grid--weekdays div{background:#edf6f3!important;color:#36564c!important;border-color:#d6e5df!important}
.hotel-calendar-day{background:#fff!important;border-color:#dce8e3!important}
.hotel-calendar-day>header{margin:-9px -9px 9px!important;padding:10px 11px!important;min-height:48px!important;background:#f2f7f5!important;border-bottom:1px solid #dce8e3!important;color:#24463c!important}
.hotel-calendar-day:nth-child(7n+6)>header,.hotel-calendar-day:nth-child(7n)>header{background:#eef5f8!important}
.hotel-calendar-day.is-outside{background:#fafcfb!important}
.hotel-calendar-day.is-outside>header{background:#f6f8f7!important}
.hotel-calendar-day.is-today{background:#f5fbf8!important;box-shadow:inset 0 0 0 2px #76ad96!important}
.hotel-calendar-day time{background:#fff!important;color:#264c40!important;border:1px solid #cfe0d8!important;box-shadow:none!important}
.hotel-calendar-day.is-outside time{background:#fafcfa!important;color:#789087!important;border-color:#dde8e3!important}
.hotel-calendar-day.is-today time{background:#2f8062!important;color:#fff!important;border-color:#2f8062!important}

/* Room plan interaction menu, unit status and reservation overlay */
.room-plan-booking{border-style:solid;cursor:pointer;text-align:left;font-family:inherit}
.room-plan-booking .room-state-icon{display:none;flex:0 0 auto;margin-right:7px;width:18px;height:18px;border-radius:50%;align-items:center;justify-content:center;font-style:normal;font-size:12px;font-weight:900}
.room-plan-booking.is-checked-in{background:#d9f2e4;border-color:#75bd96;color:#0f633d}
.room-plan-booking.is-checked-in .room-state-icon{display:inline-flex;background:#178451;color:#fff}
.room-plan-booking.is-checked-in .room-state-icon::before{content:"✓"}
.room-plan-booking.is-checked-out{background:#e7eaec;border-color:#b8c0c5;color:#4f5c63}
.room-plan-booking.is-checked-out .room-state-icon{display:inline-flex;background:#6e7b82;color:#fff}
.room-plan-booking.is-checked-out .room-state-icon::before{content:"×";font-size:15px}
.room-plan-booking.is-checked-out::before,.room-plan-booking.is-checked-out::after{display:none}
.room-action-popover{position:fixed;z-index:10020;width:245px;padding:10px;background:#fff;border:1px solid #ccdcd5;border-radius:12px;box-shadow:0 14px 38px rgba(16,45,55,.22)}
.room-action-popover>strong{display:block;padding:5px 8px 9px;color:#173f32;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.room-action-list{display:grid;gap:3px}.room-action-list button{width:100%;padding:10px 11px;border:0;border-radius:8px;background:transparent;color:#25443a;text-align:left;font:inherit;font-weight:700;cursor:pointer}.room-action-list button:hover{background:#edf6f2;color:#12613e}
.room-modal[hidden],.room-action-popover[hidden]{display:none!important}.room-modal{position:fixed;inset:0;z-index:10030;display:flex;align-items:center;justify-content:center;padding:24px}.room-modal-backdrop{position:absolute;inset:0;background:rgba(14,35,43,.48);backdrop-filter:blur(2px)}
.room-modal-dialog{position:relative;width:min(1120px,96vw);height:min(850px,92vh);display:flex;flex-direction:column;background:#fff;border-radius:16px;box-shadow:0 24px 70px rgba(0,0,0,.28);overflow:hidden}.room-modal-dialog>header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid #dbe7e1;background:#f7fbf9}.room-modal-dialog h2{margin:0;font-size:19px;color:#173d31}.room-modal-dialog>header button{width:38px;height:38px;border:0;border-radius:9px;background:#e9f2ee;color:#24483c;font-size:26px;line-height:1;cursor:pointer}.room-modal-dialog>header button:hover{background:#dceae4}
#room-modal-body{flex:1;min-height:0;overflow:auto}.room-booking-frame{display:block;width:100%;height:100%;border:0;background:#fff}.room-action-form{display:grid;gap:15px;max-width:520px;padding:24px}.room-action-form label{display:grid;gap:6px;color:#24483c;font-weight:750}.room-action-form input{height:44px;padding:9px 11px;border:1px solid #c9d8d1;border-radius:9px;font:inherit}.room-action-form>div{display:flex;justify-content:flex-end;gap:9px;margin-top:4px}.room-action-form button{padding:10px 15px;border:1px solid #bfd0c8;border-radius:9px;background:#f4f8f6;color:#25483c;font:inherit;font-weight:750;cursor:pointer}.room-action-form button[type=submit]{background:#1f7655;border-color:#1f7655;color:#fff}.room-action-note{margin:0;padding:11px 13px;border-radius:9px;background:#fff8e9;color:#73521c;font-size:13px}
@media(max-width:700px){.room-modal{padding:8px}.room-modal-dialog{width:100%;height:96vh;border-radius:12px}.room-action-popover{width:220px}}


/* Room plan additions: payment badge, ECI/LCO blocks and cancellation */
.room-paid-badge{
  flex:0 0 auto;
  margin-left:auto;
  padding:3px 7px;
  border:1px solid #9dbbb0;
  border-radius:999px;
  background:#f8fbfa;
  color:#31584b;
  font-size:9px;
  font-weight:850;
  letter-spacing:.02em;
}
.room-plan-booking.is-checked-in .room-paid-badge,
.room-plan-booking.is-checked-out .room-paid-badge{
  background:#fff;
}
.room-plan-extra{
  position:absolute;
  z-index:3;
  top:13px;
  left:calc(var(--room-label) + (var(--bar-start) * var(--room-day)));
  width:calc(var(--bar-width) * var(--room-day));
  height:38px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:7px;
  font-size:10px;
  font-weight:900;
  letter-spacing:.05em;
  pointer-events:none;
}
.room-plan-extra--eci{
  background:#e8f2fb;
  border:1px solid #adcbe3;
  color:#295b7d;
}
.room-plan-extra--lco{
  background:#f4ecfb;
  border:1px solid #cdb5e1;
  color:#674783;
}
.room-action-list button.is-danger{color:#9b2424}
.room-action-list button.is-danger:hover{background:#fff0f0;color:#811b1b}
.room-action-form .room-radio{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:12px 13px;
  border:1px solid #d3dfd9;
  border-radius:10px;
  background:#f9fbfa;
  font-weight:650;
}
.room-action-form .room-radio input{
  width:auto;
  height:auto;
  margin-top:3px;
}
.room-action-form button.is-danger,
.room-action-form button[type=submit].is-danger{
  background:#9c1d1d;
  border-color:#9c1d1d;
  color:#fff;
}


/* Guest booking management: compact metadata, status badge and aligned primary actions */
.manage-booking-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.manage-meta-separator{color:#8b969c}
.manage-cancel-deadline{margin:10px 0 18px;padding:10px 14px;background:#eef6ff;border-left:4px solid #2b7cff;color:#1a3d6d;border-radius:6px;font-size:14px}
.manage-primary-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:24px 0 10px}
.manage-primary-actions form{margin:0}
.manage-primary-actions button{min-height:42px;margin:0}
.manage-cancel-button{background:#a51f1f!important;border-color:#a51f1f!important;color:#fff!important}
.manage-cancel-button:hover{background:#8f1919!important;border-color:#8f1919!important}
.manage-cancel-unavailable{margin-top:18px;padding:10px 14px;background:#fff4f4;border-left:4px solid #c62828;color:#7a1c1c;border-radius:6px;font-size:14px}
@media(max-width:560px){.manage-primary-actions{align-items:stretch;flex-direction:column}.manage-primary-actions button,.manage-primary-actions form{width:100%}.manage-primary-actions form button{width:100%}}


/* Manage page: primary actions directly below cancellation notice */
.manage-cancel-deadline + .manage-primary-actions{margin-top:10px;margin-bottom:20px}

/* Room plan: uniform visual separation between every adjacent timeline block. */
.room-plan-booking,
.room-plan-extra{
  left:calc(var(--room-label) + (var(--bar-start) * var(--room-day)) + 3px);
  width:calc((var(--bar-width) * var(--room-day)) - 6px);
}
.manage-room-cancel-inline{float:right;margin:-4px -4px 0 10px;text-decoration:none!important}
.manage-room-cancel-x{width:30px!important;height:30px!important;min-height:30px!important;padding:0!important;border:0!important;border-radius:50%!important;background:#b42323!important;color:#fff!important;font-size:21px!important;font-weight:800!important;line-height:28px!important;cursor:pointer;box-shadow:none!important}
.manage-room-cancel-x:hover{background:#8f1717!important}
.manage-room-cancel-success{margin:0 0 16px;padding:12px 14px;border:1px solid #a8d6ba;border-left:4px solid #27844e;border-radius:8px;background:#edf8f1;color:#155b36;font-weight:700}

/* Neue, noch unbestätigte Reservierungen im Zimmerplan */
.room-plan-booking.is-new:not(.is-checked-in):not(.is-checked-out){
  background-color:#e8f4ee;
  background-image:repeating-linear-gradient(135deg,rgba(31,125,83,.13) 0,rgba(31,125,83,.13) 7px,rgba(255,255,255,.42) 7px,rgba(255,255,255,.42) 14px);
  border-color:#86bea4;
}
.room-plan-booking.is-new:not(.is-checked-in):not(.is-checked-out):hover{
  background-color:#dcefe5;
}
.room-action-list .room-new-action{font-weight:800;color:#14643f;background:#edf7f2}
.room-action-list .room-new-action:hover{background:#dff1e7;color:#0d5434}
.room-action-list .room-new-action.is-danger{color:#9b2424;background:#fff4f4}

/* Kalender: Tageswert oben, Zeitraum darunter und belegte Zimmer je Tag */
.hotel-calendar-summary__item{position:relative;min-height:132px}
.hotel-calendar-summary__item>strong{display:inline-block;margin-right:7px}
.hotel-calendar-summary__item>small{color:#71838d;font-size:12px;font-weight:700}
.hotel-calendar-summary__period{display:flex;align-items:baseline;gap:7px;margin-top:12px;padding-top:10px;border-top:1px solid #e3ecef}
.hotel-calendar-summary__period b{font-size:18px;color:#244755}
.hotel-calendar-summary__period em{font-style:normal;font-size:11px;color:#71838d;font-weight:650}
.hotel-calendar-count.is-occupied{background:#eef4fb;border-color:#c8d9e9;color:#315d7a}
@media(max-width:760px){.hotel-calendar-summary__item{min-height:120px}.hotel-calendar-summary__period{align-items:flex-start;flex-direction:column;gap:2px}}

/* Current-day emphasis in the room plan: stays inside the grid and below booking bars. */
.room-plan-date.is-today{position:relative;background:#dff1e8!important;box-shadow:inset 2px 0 0 #2f8062,inset -2px 0 0 #2f8062,inset 0 2px 0 #2f8062!important;z-index:5}
.room-plan-cell.is-today{position:relative;background:#f4fbf7!important;box-shadow:inset 2px 0 0 #2f8062,inset -2px 0 0 #2f8062;z-index:0}
.room-plan-row:last-child .room-plan-cell.is-today{box-shadow:inset 2px 0 0 #2f8062,inset -2px 0 0 #2f8062,inset 0 -2px 0 #2f8062}
.room-plan-booking,.room-plan-extra{z-index:3}

/* Manual reservations and room blocks */
.bookings-page-actions{display:flex;justify-content:flex-end}.manual-booking-container{max-width:1050px}.manual-booking-card{padding:24px}.manual-booking-title h1{margin:4px 0 6px}.manual-booking-title p{margin:0 0 22px;color:#607886}.manual-booking-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.manual-booking-grid label{display:flex;flex-direction:column;gap:6px;font-weight:700;color:#173e49}.manual-booking-grid input,.manual-booking-grid select{width:100%;box-sizing:border-box}.manual-booking-actions{display:flex;justify-content:flex-end;margin-top:20px}.manual-booking-page.is-embedded{background:#f7fbf9}.manual-booking-page.is-embedded .manual-booking-container{margin:0;max-width:none;padding:18px}.room-plan-free-action{border:0;background:transparent;color:#93aaa5;font:inherit;cursor:pointer;padding:8px}.room-plan-free-action:hover{color:#167a52;text-decoration:underline}.room-free-popover{position:fixed;z-index:1200;min-width:210px;padding:14px;background:#fff;border:1px solid #d5e3df;border-radius:12px;box-shadow:0 16px 40px rgba(16,50,58,.2)}.room-free-popover strong{display:block;margin-bottom:8px}.room-plan-block{position:absolute;left:calc(var(--room-label) + var(--bar-start) * var(--room-day) + 3px);width:calc(var(--bar-width) * var(--room-day) - 6px);top:14px;height:38px;display:flex;align-items:center;padding:0 12px;box-sizing:border-box;border-radius:9px;background:#d9dde0;border:1px solid #adb5bb;color:#465159;font-weight:800;font-size:12px;z-index:3;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.room-booking-frame{width:100%;height:min(78vh,850px);border:0;background:#fff}@media(max-width:760px){.manual-booking-grid{grid-template-columns:1fr}}
.room-plan-block{cursor:pointer;text-align:left;font-family:inherit;appearance:none;-webkit-appearance:none}
.room-plan-block:hover{filter:brightness(.98);box-shadow:0 3px 10px rgba(38,55,61,.14)}

/* Zimmerverwaltung: kompakter Kopf ohne Titeltext */
.room-management-heading--toolbar-only{justify-content:flex-end;align-items:center;margin-top:0}

/* Room plan inline period navigation and half-day free action */
.room-plan-period{display:flex!important;flex-direction:column!important;gap:3px!important}
.room-plan-period-line{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.room-plan-inline-nav{display:flex;align-items:center;gap:6px}
.room-plan-inline-nav .hotel-calendar-nav-btn,.room-plan-inline-nav .hotel-calendar-today{min-height:34px;padding:6px 11px}
.room-plan-half-free{position:absolute;right:5px;top:50%;transform:translateY(-50%);z-index:7;width:26px;height:26px;border:1px solid #8ebda8;border-radius:50%;background:#f7fcf9;color:#176b49;font-size:20px;line-height:1;font-weight:800;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px rgba(25,84,61,.12)}
.room-plan-half-free:hover{background:#e3f3eb;border-color:#5a9f7e}
@media(max-width:900px){.room-plan-period-line{align-items:flex-start;flex-direction:column}.room-plan-inline-nav{width:auto}.room-plan-inline-nav a{width:auto!important}}

/* Dezente Aktion für eine freie zweite Tageshälfte: optisch wie der Text „frei“. */
.room-plan-half-free{
    right:8px;
    width:auto;
    min-width:18px;
    height:auto;
    padding:5px 3px;
    border:0;
    border-radius:0;
    background:transparent;
    color:#9aada5;
    font-size:13px;
    line-height:1;
    font-weight:600;
    box-shadow:none;
}
.room-plan-half-free:hover,
.room-plan-half-free:focus-visible{
    background:transparent;
    border-color:transparent;
    color:#167a52;
    text-decoration:underline;
    box-shadow:none;
    outline:none;
}
.manual-booking-container{max-width:1320px}.manual-booking-page.is-embedded .manual-booking-container{padding:12px}.manual-booking-card{padding:24px 28px}.manual-booking-section-title{margin:24px 0 12px;padding-top:18px;border-top:1px solid #dce7e2;font-size:18px;color:#173e49}.manual-booking-section-title:first-of-type{margin-top:8px}.manual-span-2{grid-column:span 2}.manual-check{min-height:46px;display:flex!important;flex-direction:row!important;align-items:center;gap:9px!important;padding:10px 12px;border:1px solid #d7e2dd;border-radius:9px;background:#f8fbfa}.manual-check input{width:auto!important}.manual-capacity-hint{margin:12px 0 0;color:#607886;font-size:13px}.manual-booking-grid small{font-weight:500;color:#698078}.room-modal-dialog:has(.room-booking-frame[src*="booking-new.php"]){width:min(1380px,98vw)}
@media(max-width:760px){.manual-span-2{grid-column:auto}.manual-booking-card{padding:18px}}
/* Manual booking overlay: use the complete iframe width. */
.manual-booking-page.is-embedded .manual-booking-container,
.manual-booking-page.is-embedded main.container{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:10px!important;
  box-sizing:border-box;
}
.manual-booking-page.is-embedded .manual-booking-card{width:100%;max-width:none;box-sizing:border-box}
.room-modal-dialog:has(.room-booking-frame[src*="booking-new.php"]){width:min(1500px,99vw)}

/* Guest master picker for manual reservations */
.manual-section-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:18px}.manual-section-heading .manual-booking-section-title{margin:0}.manual-guest-select-btn{background:#eef6f2!important;color:#165b43!important;border:1px solid #c8ded4!important;padding:9px 13px!important}.manual-guest-modal{position:fixed;inset:0;z-index:10050;background:rgba(8,28,34,.42);display:flex;align-items:center;justify-content:center;padding:24px}.manual-guest-modal[hidden]{display:none}.manual-guest-dialog{width:min(760px,96vw);max-height:82vh;overflow:auto;background:#fff;border-radius:16px;box-shadow:0 24px 70px rgba(0,0,0,.25)}.manual-guest-dialog-head{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid #dce7e8;font-size:18px}.manual-guest-dialog-head button{background:#edf5f1;color:#174b3b;border:0;border-radius:9px;font-size:24px;line-height:1;padding:7px 11px}.manual-guest-search{display:flex;gap:10px;padding:16px 20px}.manual-guest-search input{flex:1}.manual-guest-results{padding:0 20px 20px;display:grid;gap:8px}.manual-guest-row{text-align:left;background:#f8fbfa!important;color:#173b43!important;border:1px solid #d7e4e4!important;border-radius:11px!important;padding:12px 14px!important}.manual-guest-row:hover{background:#edf6f2!important}.manual-guest-row strong,.manual-guest-row small{display:block}.manual-guest-row small{margin-top:3px;color:#6c8088;font-weight:400}.is-embedded .manual-booking-container{max-width:none!important;width:100%!important;padding-left:14px!important;padding-right:14px!important}.is-embedded .manual-booking-card{width:100%!important;max-width:none!important}@media(max-width:700px){.manual-section-heading{align-items:stretch;flex-direction:column}.manual-guest-search{flex-direction:column}}

.room-plan-half-free-before{left:5px;right:auto}

/* Kalender: Urlaube und freie Kalendereinträge */
.hotel-calendar-add{display:inline-flex;align-items:center;justify-content:center;height:42px;padding:0 16px;border:0;border-radius:10px;background:#176b53;color:#fff;font-weight:800;cursor:pointer;box-shadow:0 3px 10px rgba(19,46,59,.08)}
.hotel-calendar-add:hover{background:#125640}.calendar-feedback{margin:0 0 14px;padding:12px 15px;border-radius:10px;font-weight:700}.calendar-feedback.ok{background:#e8f6ee;color:#175d43}.calendar-feedback.err{background:#fff0f0;color:#8a1717}
.calendar-add-panel{margin-bottom:16px;padding:20px}.calendar-add-panel[hidden]{display:none}.calendar-add-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:15px}.calendar-add-head h2{margin:0 0 4px}.calendar-add-head p{margin:0;color:#657b83}.calendar-close{width:38px;height:38px;padding:0;border:0;border-radius:9px;background:#eef5f2;color:#173a31;font-size:25px;cursor:pointer}.calendar-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.calendar-form-grid label{font-weight:750}.calendar-form-grid input,.calendar-form-grid select,.calendar-form-grid textarea{width:100%;margin-top:6px}.calendar-form-full{grid-column:1/-1}.calendar-form-actions{display:flex;gap:9px;margin-top:15px}.calendar-form-actions .secondary{background:#e9efec;color:#173a31}
.hotel-calendar-legend i.is-leave-approved{background:#287b58}.hotel-calendar-legend i.is-leave-pending{border:1px solid #a77914;background:repeating-linear-gradient(135deg,#f1c865 0,#f1c865 3px,#fff3ce 3px,#fff3ce 6px)}.hotel-calendar-legend i.is-calendar-entry{background:#526c99}
.calendar-leave{display:grid;grid-template-columns:16px minmax(0,1fr);grid-template-rows:auto auto;column-gap:6px;padding:6px 7px;border:1px solid;border-radius:8px;overflow:hidden}.calendar-leave>span{grid-row:1/3;align-self:center}.calendar-leave b,.calendar-leave small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-leave b{font-size:11px}.calendar-leave small{font-size:9px;font-weight:750}.calendar-leave.is-approved{background:#e5f4eb;border-color:#add8c0;color:#15593b}.calendar-leave.is-pending{background:repeating-linear-gradient(135deg,#fff8df 0,#fff8df 6px,#f5df9e 6px,#f5df9e 10px);border-color:#dfbf65;color:#6e520d}.calendar-leave.is-unpaid{background:#eef0f2;border-color:#c3c9ce;color:#465158}.hotel-calendar-legend i.is-leave-unpaid{background:#9aa2a8}
.calendar-custom-event{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:6px 7px;border:1px solid #cbd7eb;border-radius:8px;background:#eef3fb;color:#2b4f78}.calendar-custom-event>div{min-width:0}.calendar-custom-event b,.calendar-custom-event small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-custom-event b{font-size:11px}.calendar-custom-event small{font-size:9px}.calendar-custom-event form{flex:0 0 auto}.calendar-custom-event button{width:22px;height:22px;padding:0;border:0;border-radius:6px;background:transparent;color:#7a2940;font-size:17px;cursor:pointer}.calendar-custom-event button:hover{background:#fff}
.hotel-calendar-day{min-height:185px}.hotel-calendar-events--counts{gap:5px}.hotel-calendar-count{padding:6px 8px}.hotel-calendar-count strong{font-size:15px}
@media(max-width:760px){.hotel-calendar-toolbar{flex-wrap:wrap}.calendar-form-grid{grid-template-columns:1fr}.calendar-form-full{grid-column:auto}}


/* Mitarbeiterstatus auf der Übersichtsseite */
.dashboard-operation--staff{align-items:flex-start;padding-top:20px;padding-bottom:20px;min-height:138px}
.dashboard-staff-card{min-width:0;flex:1;display:flex;flex-direction:column}
.dashboard-staff-card>span{margin-bottom:7px}
.dashboard-staff-shift+ .dashboard-staff-shift{margin-top:12px;padding-top:12px;border-top:1px solid #e4ece8}
.dashboard-operation .dashboard-staff-shift strong{font-size:18px;line-height:1.25;margin:0 0 4px}
.dashboard-operation .dashboard-staff-time{display:block;color:#5d6f69;font-size:16px;line-height:1.4;margin:0 0 10px;font-weight:650}
.dashboard-staff-names{font-size:20px;line-height:1.4;font-weight:750;color:#17313a}
.dashboard-staff-departments{display:flex;flex-direction:column;align-items:stretch;gap:8px;margin-top:2px;width:100%}
.dashboard-staff-pill{display:block;width:100%;box-sizing:border-box;padding:10px 13px;border-radius:18px;background:var(--staff-pill-color,#eef3f1);border:1px solid color-mix(in srgb,var(--staff-pill-color,#eef3f1) 62%,#82928c);color:#17313a;font-size:15px;line-height:1.4;font-weight:650;box-shadow:inset 0 0 0 1px rgba(255,255,255,.45)}
.dashboard-staff-pill__label{font-weight:800}
.dashboard-staff-pill__value{font-weight:700}
.dashboard-staff-empty{font-size:15px;line-height:1.45;color:#687873;margin-top:7px}

/* V5.8be – Dienstplan-Einträge im Kalender mit Abteilungsfarben */
.calendar-schedule-entry{display:flex;flex-direction:column;align-items:stretch;gap:5px;padding:6px;border:1px solid #cbdad4;border-radius:9px;background:#f8fbfa;color:#17313a;min-width:0}
.calendar-schedule-entry__title{display:block;font-size:10px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.calendar-schedule-entry__people{display:flex;flex-direction:column;gap:4px;min-width:0}
.calendar-schedule-person{display:block;min-width:0;padding:4px 6px;border-radius:7px;background:var(--calendar-person-color,#eef3f1);border:1px solid color-mix(in srgb,var(--calendar-person-color,#eef3f1) 64%,#82928c);font-size:9px;line-height:1.2;font-weight:750;color:#17313a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:inset 0 0 0 1px rgba(255,255,255,.4)}
.hotel-calendar-legend i.is-schedule-entry{background:#3f8d70}

/* V5.8EA Geburtstage in Kalenderansichten */
.calendar-birthday{display:flex;align-items:center;gap:7px;padding:6px 7px;border:1px solid #e7c77c;border-radius:8px;background:#fff3d8;color:#694d16}.calendar-birthday>span{font-size:15px;line-height:1}.calendar-birthday>div{min-width:0}.calendar-birthday b,.calendar-birthday small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-birthday b{font-size:11px}.calendar-birthday small{font-size:9px}.hotel-calendar-legend .is-birthday-entry{background:#e7c77c}

/* =========================================================
   V10.62 – mobile Admin-Navigation
   ========================================================= */
.admin-mobile-menu-button{
  display:none;
  width:42px;
  height:42px;
  padding:10px;
  border:1px solid #dce5e9;
  border-radius:11px;
  background:#f4f7f8;
  color:#17313a;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:4px;
  cursor:pointer;
}
.admin-mobile-menu-button span{
  display:block;
  width:19px;
  height:2px;
  border-radius:2px;
  background:currentColor;
}
.admin-mobile-nav-backdrop{display:none}

@media(max-width:820px){
  .admin-mobile-menu-button{display:inline-flex}
  .admin-topbar__actions{min-width:42px}
  .admin-sidebar{
    display:flex!important;
    width:min(286px,84vw)!important;
    transform:translateX(-105%);
    transition:transform .22s ease;
    box-shadow:12px 0 34px rgba(10,25,36,.24);
    z-index:220!important;
  }
  .admin-sidebar__brand{justify-content:flex-start!important;padding:13px 18px!important}
  .admin-sidebar__brand div{display:block!important}
  .admin-sidebar__nav{overflow-y:auto;-webkit-overflow-scrolling:touch}
  .admin-sidebar__link{justify-content:flex-start!important}
  .admin-sidebar__link>span:not(.admin-sidebar__icon){display:inline!important}
  .admin-sidebar__link small{display:block!important}
  .admin-sidebar__footer{display:block!important}
  .admin-mobile-nav-backdrop{
    display:block;
    position:fixed;
    inset:0;
    background:rgba(10,24,34,.42);
    opacity:0;
    visibility:hidden;
    transition:opacity .22s ease,visibility .22s ease;
    z-index:210;
  }
  body.admin-mobile-nav-open{overflow:hidden}
  body.admin-mobile-nav-open .admin-sidebar{transform:translateX(0)}
  body.admin-mobile-nav-open .admin-mobile-nav-backdrop{opacity:1;visibility:visible}
}

@media(max-width:430px){
  .admin-topbar__inner{padding:0 10px!important;gap:8px!important}
  .admin-topbar__hotel strong{font-size:16px!important}
  .admin-topbar__hotel span{font-size:10px!important}
  .admin-mobile-menu-button{width:40px;height:40px}
}

/* V10.69 Feiertage in Kalenderansichten */
.calendar-holiday{display:flex;align-items:center;gap:7px;padding:6px 7px;border:1px solid #e3c16c;border-radius:8px;background:#fff4d3;color:#664913}.calendar-holiday>span{font-size:14px;line-height:1}.calendar-holiday>div{min-width:0}.calendar-holiday b,.calendar-holiday small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-holiday b{font-size:11px}.calendar-holiday small{font-size:9px}.hotel-calendar-legend .is-holiday-entry{background:#e3c16c}

.calendar-leave.is-sick-approved{background:#fff1a8;border-color:#dfc153;color:#5f4b00}.calendar-leave.is-sick-pending{background:repeating-linear-gradient(135deg,#fff6bd 0,#fff6bd 6px,#ead06f 6px,#ead06f 10px);border-color:#caae43;color:#5f4b00}.calendar-leave.is-flex-approved{background:#e5f4eb;border-color:#add8c0;color:#15593b}
