/* ========================================================================
   SOKO TEAM – Öffentliche Terminbuchung V12
   Eigenständige Buchungsoberfläche, visuell an public-core.css / Portal-Tokens
   angelehnt. public-core.css wird vor dieser Datei geladen.
   ======================================================================== */
:root{
  --booking-gold:var(--pp-gold,var(--portal-gold,#c6a570));
  --booking-gold-soft:var(--pp-gold-soft,var(--portal-gold-soft,#dec89d));
  --booking-gold-deep:var(--pp-gold-deep,var(--portal-gold-deep,#a88246));
  --booking-gold-wash:rgba(198,165,112,.14);

  --booking-navy:var(--pp-navy,var(--portal-navy,#0b2c41));
  --booking-navy-deep:var(--pp-navy-deep,var(--portal-navy-deep,#061b2a));
  --booking-navy-soft:#12364b;

  --booking-surface:var(--pp-surface,var(--portal-surface,#fffdf8));
  --booking-bg:var(--pp-bg,var(--portal-bg,#fbf9f6));
  --booking-warm:var(--pp-warm,var(--portal-panel-warm,#f5efe5));
  --booking-text:var(--pp-text,var(--portal-text,#0b2c41));
  --booking-muted:var(--pp-muted,var(--portal-muted,rgba(11,44,65,.66)));
  --booking-line:var(--pp-line,var(--portal-line,rgba(11,44,65,.11)));

  --booking-radius:22px;
  --booking-radius-sm:14px;
  --booking-font:var(--pp-font,var(--portal-font,"Manrope","Inter",ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif));
  --booking-panel-bg:
    radial-gradient(circle at 78% 10%, rgba(255,255,255,.05), transparent 17rem),
    radial-gradient(circle at 14% 100%, rgba(0,0,0,.34), transparent 28rem),
    linear-gradient(180deg, var(--booking-navy) 0%, #08283c 48%, var(--booking-navy-deep) 100%);
  --booking-panel-grid:
    linear-gradient(118deg, transparent 8%, rgba(255,255,255,.04) 38%, transparent 64%),
    linear-gradient(90deg, rgba(255,255,255,.014) 1px, transparent 1px),
    linear-gradient(180deg, rgba(255,255,255,.012) 1px, transparent 1px);
  --booking-button-bg:linear-gradient(135deg,#d8bc82 0%,var(--booking-gold) 100%);
  --booking-shadow:0 30px 90px rgba(3,17,27,.34);
  --booking-card-shadow:0 18px 46px rgba(11,44,65,.08);
}

*{box-sizing:border-box;}
html{min-height:100%;background:var(--booking-navy-deep);}
body.booking-shell{
  min-height:100vh;
  margin:0;
  font-family:var(--booking-font);
  color:var(--booking-text);
  background:var(--booking-panel-bg);
  -webkit-font-smoothing:antialiased;
  text-rendering:geometricPrecision;
  line-height:1.55;
}
body.booking-shell::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-1;
  background:var(--booking-panel-grid);
  background-size:auto,56px 56px,56px 56px;
  opacity:.42;
  pointer-events:none;
}
body.booking-shell::after{
  content:"";
  position:fixed;
  inset:auto -12rem -14rem auto;
  width:40rem;
  height:40rem;
  z-index:-1;
  background:radial-gradient(circle,rgba(0,0,0,.28),transparent 68%);
  pointer-events:none;
}
button,input,textarea,select{font:inherit;}
button{cursor:pointer;}
a{color:inherit;}
[hidden]{display:none!important;}

.booking-brand{
  position:fixed;
  z-index:30;
  top:clamp(18px,3vw,34px);
  left:clamp(18px,3vw,42px);
}
.booking-brand__link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:clamp(70px,8vw,118px);
  min-height:54px;
  color:var(--booking-gold-soft);
  text-decoration:none;
}
.booking-brand__logo{
  width:100%;
  max-height:74px;
  object-fit:contain;
  object-position:left center;
  filter:drop-shadow(0 12px 26px rgba(0,0,0,.22));
}
.booking-brand__fallback{
  display:none;
  width:48px;
  height:54px;
  border:2px solid currentColor;
  border-radius:6px 6px 20px 6px;
  position:relative;
  filter:drop-shadow(0 12px 26px rgba(0,0,0,.22));
}
.booking-brand__fallback::before{
  content:"";
  position:absolute;
  inset:9px 9px 9px 9px;
  border:2px solid currentColor;
  border-left:0;
  border-bottom:0;
  border-radius:0 4px 14px 0;
}
.booking-brand__link.has-logo-fallback .booking-brand__fallback{display:block;}

.booking-page{
  min-height:calc(100vh - 56px);
  display:grid;
  place-items:center;
  padding:clamp(96px,10vw,134px) clamp(18px,5vw,72px) 46px;
}
.booking-card{
  position:relative;
  width:min(1340px,100%);
  min-height:650px;
  padding:clamp(32px,3vw,44px) clamp(26px,3.4vw,46px) clamp(32px,3.4vw,48px);
  border:1px solid rgba(255,255,255,.56);
  border-radius:26px;
  background:
    radial-gradient(circle at 100% 0%, rgba(198,165,112,.075), transparent 22rem),
    linear-gradient(180deg,rgba(255,253,248,.99),rgba(255,253,248,.955));
  box-shadow:var(--booking-shadow);
  backdrop-filter:blur(16px);
}
.booking-card--message{
  min-height:auto;
  width:min(760px,100%);
}
.booking-message h1{
  margin:0;
  color:var(--booking-text);
  font-size:clamp(2rem,4vw,3.1rem);
  line-height:1.04;
  letter-spacing:-.05em;
  font-weight:650;
}
.booking-message p:not(.booking-kicker){
  max-width:60ch;
  color:var(--booking-muted);
  font-size:1.05rem;
  line-height:1.65;
}
.booking-kicker{
  margin:0 0 .55rem;
  color:var(--booking-gold-deep);
  font-size:.76rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-weight:900;
}
.booking-profile-badge{
  position:absolute;
  z-index:5;
  top:-64px;
  left:-34px;
  width:190px;
  height:190px;
  border-radius:999px;
  display:grid;
  place-items:center;
  overflow:hidden;
  padding:7px;
  background:linear-gradient(135deg,var(--booking-gold-soft),var(--booking-gold));
  border:7px solid var(--booking-surface);
  box-shadow:0 24px 64px rgba(0,0,0,.24);
  color:var(--booking-navy);
}
.booking-profile-badge img{
  position:absolute;
  inset:7px;
  width:calc(100% - 14px);
  height:calc(100% - 14px);
  display:block;
  object-fit:cover;
  object-position:center center;
  border-radius:inherit;
  z-index:2;
}
.booking-profile-initials{
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  border-radius:inherit;
  background:linear-gradient(135deg,rgba(255,253,248,.86),rgba(245,239,229,.92));
  color:var(--booking-navy);
  font-size:3rem;
  font-weight:900;
  letter-spacing:-.04em;
}
.booking-card__header{
  min-height:86px;
  padding-left:clamp(138px,13vw,174px);
  display:flex;
  align-items:center;
}
.booking-card__header h1{
  margin:0;
  color:var(--booking-text);
  font-size:clamp(2rem,3.1vw,3rem);
  line-height:1.02;
  letter-spacing:-.055em;
  font-weight:640;
}
.booking-card__header p{
  margin:.45rem 0 0;
  color:var(--booking-gold-deep);
  font-size:1.02rem;
  font-weight:800;
}
.booking-layout{
  display:grid;
  grid-template-columns:minmax(260px,.98fr) minmax(340px,1.08fr) minmax(280px,.9fr);
  gap:0;
  margin-top:clamp(24px,2.6vw,34px);
}
.booking-panel{
  min-width:0;
  padding:clamp(12px,1.5vw,18px) clamp(20px,2.5vw,38px) 12px;
}
.booking-panel + .booking-panel{border-left:1px solid var(--booking-line);}
.booking-section-title{
  margin:0 0 1.35rem;
  color:rgba(11,44,65,.56);
  font-size:.76rem;
  font-weight:900;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.booking-type-list{display:grid;gap:.82rem;}
.booking-type-card{
  width:100%;
  min-height:84px;
  display:grid;
  grid-template-columns:50px minmax(0,1fr) 28px;
  align-items:center;
  gap:.92rem;
  padding:.9rem 1rem;
  border:1px solid rgba(11,44,65,.10);
  border-radius:16px;
  background:rgba(255,255,255,.72);
  color:var(--booking-text);
  text-align:left;
  box-shadow:0 10px 28px rgba(11,44,65,.045);
  transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,background .16s ease;
}
.booking-type-card:hover{
  transform:translateY(-1px);
  border-color:rgba(198,165,112,.46);
  background:rgba(255,253,248,.96);
  box-shadow:0 16px 34px rgba(11,44,65,.08);
}
.booking-type-card.is-selected{
  border-color:rgba(198,165,112,.72);
  background:linear-gradient(180deg,rgba(198,165,112,.13),rgba(255,253,248,.96));
}
.booking-type-card__icon{
  width:50px;
  height:50px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:var(--booking-button-bg);
  color:var(--booking-navy);
  box-shadow:0 12px 28px rgba(198,165,112,.22);
}
.booking-type-card__icon svg{width:24px;height:24px;display:block;}
.booking-type-card__body strong{
  display:block;
  color:var(--booking-text);
  font-size:1.08rem;
  line-height:1.22;
  letter-spacing:-.022em;
  font-weight:900;
}
.booking-type-card__body small{
  display:block;
  margin-top:.32rem;
  color:var(--booking-muted);
  font-size:.9rem;
  line-height:1.35;
}
.booking-type-card__check{
  width:27px;
  height:27px;
  display:grid;
  place-items:center;
  border-radius:999px;
  color:var(--booking-navy);
  background:var(--booking-gold);
  opacity:0;
  transform:scale(.82);
  transition:opacity .16s ease,transform .16s ease;
  font-weight:900;
}
.booking-type-card.is-selected .booking-type-card__check{opacity:1;transform:scale(1);}

.booking-calendar-toolbar{
  display:grid;
  grid-template-columns:42px 1fr 42px;
  align-items:center;
  gap:.65rem;
  margin-bottom:1rem;
}
.booking-calendar-toolbar strong{
  text-align:center;
  color:var(--booking-text);
  font-size:1.12rem;
  font-weight:900;
}
.booking-icon-button{
  width:42px;
  height:42px;
  border:1px solid rgba(11,44,65,.10);
  border-radius:999px;
  background:#fff;
  color:var(--booking-text);
  font-size:1.8rem;
  line-height:1;
  box-shadow:0 8px 18px rgba(11,44,65,.045);
}
.booking-icon-button:hover{border-color:rgba(198,165,112,.48);background:rgba(198,165,112,.10);}
.booking-calendar-weekdays,
.booking-calendar-grid{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:.42rem;
}
.booking-calendar-weekdays{
  margin-bottom:.5rem;
  color:rgba(11,44,65,.46);
  font-size:.72rem;
  font-weight:900;
  text-align:center;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.booking-calendar-day{
  position:relative;
  min-height:46px;
  border:1px solid transparent;
  border-radius:999px;
  background:transparent;
  color:rgba(11,44,65,.34);
  font-weight:850;
}
.booking-calendar-day:not(:disabled):hover{
  border-color:rgba(198,165,112,.48);
  background:rgba(198,165,112,.10);
  color:var(--booking-text);
}
.booking-calendar-day--blank{min-height:46px;}
.booking-calendar-day.is-unavailable{opacity:.55;cursor:not-allowed;}
.booking-calendar-day.is-available{
  color:var(--booking-text);
  background:rgba(198,165,112,.13);
  border-color:rgba(198,165,112,.26);
}
.booking-calendar-day.is-available::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:6px;
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--booking-gold-deep);
  transform:translateX(-50%);
}
.booking-calendar-day.is-selected{
  color:var(--booking-navy);
  background:var(--booking-button-bg);
  border-color:rgba(198,165,112,.86);
  box-shadow:0 12px 24px rgba(198,165,112,.22);
}
.booking-calendar-day.is-selected::after{background:var(--booking-navy);}
.booking-calendar-day.is-loading{opacity:.35;}
.booking-calendar-note{
  display:flex;
  gap:.55rem;
  align-items:flex-start;
  margin:1.1rem 0 0;
  color:rgba(11,44,65,.55);
  font-size:.9rem;
  line-height:1.5;
}
.booking-calendar-note span{color:var(--booking-gold-deep);}

.booking-timezone-label{display:grid;gap:.42rem;margin-bottom:1.1rem;}
.booking-timezone-label span{
  color:rgba(11,44,65,.56);
  font-size:.74rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:900;
}
.booking-timezone-label select{
  width:100%;
  min-height:46px;
  padding:.65rem .82rem;
  border:1px solid rgba(11,44,65,.13);
  border-radius:14px;
  background:#fff;
  color:var(--booking-text);
  outline:none;
  box-shadow:0 10px 26px rgba(11,44,65,.04);
}
.booking-timezone-label select:focus{
  border-color:rgba(198,165,112,.72);
  box-shadow:0 0 0 3px rgba(198,165,112,.14),0 10px 26px rgba(11,44,65,.04);
}
.booking-times-date{
  margin:0 0 .75rem;
  color:var(--booking-text);
  font-size:1.05rem;
  font-weight:900;
  letter-spacing:-.015em;
}
.booking-times-status{
  color:var(--booking-muted);
  font-size:.95rem;
  line-height:1.55;
}
.booking-times-list{
  display:grid;
  gap:.66rem;
  max-height:min(360px, calc(100svh - 430px));
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  padding-right:.34rem;
  scrollbar-width:thin;
  scrollbar-color:rgba(198,165,112,.62) rgba(11,44,65,.06);
}
.booking-times-list::-webkit-scrollbar{width:8px;}
.booking-times-list::-webkit-scrollbar-track{background:rgba(11,44,65,.05);border-radius:999px;}
.booking-times-list::-webkit-scrollbar-thumb{background:rgba(198,165,112,.62);border-radius:999px;}
.booking-times-list::-webkit-scrollbar-thumb:hover{background:rgba(168,130,70,.78);}
.booking-time-button{
  min-height:46px;
  border:1px solid rgba(198,165,112,.56);
  border-radius:14px;
  background:#fff;
  color:var(--booking-navy);
  font-weight:900;
  box-shadow:0 8px 20px rgba(11,44,65,.035);
  transition:transform .16s ease,background .16s ease,box-shadow .16s ease;
}
.booking-time-button:hover,
.booking-time-button:focus-visible{
  transform:translateY(-1px);
  background:var(--booking-button-bg);
  box-shadow:0 14px 32px rgba(198,165,112,.22);
  outline:none;
}
.booking-security-note{
  display:flex;
  gap:.5rem;
  align-items:flex-start;
  margin:1.1rem 0 0;
  color:rgba(11,44,65,.46);
  font-size:.86rem;
  line-height:1.45;
}
.booking-security-note span{color:var(--booking-gold-deep);}

.booking-modal{
  position:fixed;
  inset:0;
  z-index:100;
  display:grid;
  place-items:center;
  padding:clamp(16px,3vw,32px);
}
.booking-modal__backdrop{
  position:absolute;
  inset:0;
  background:rgba(6,27,42,.62);
  backdrop-filter:blur(7px);
}
.booking-modal__panel{
  position:relative;
  z-index:1;
  width:min(700px,100%);
  max-height:calc(100svh - 32px);
  overflow:auto;
  padding:clamp(1.15rem,3vw,2rem);
  border:1px solid rgba(11,44,65,.10);
  border-radius:24px;
  background:linear-gradient(180deg,var(--booking-surface) 0%,var(--booking-bg) 100%);
  box-shadow:0 28px 88px rgba(6,27,42,.28);
}
.booking-modal__close{
  position:absolute;
  top:12px;
  right:12px;
  width:42px;
  height:42px;
  border:1px solid rgba(11,44,65,.12);
  border-radius:999px;
  background:#fff;
  color:var(--booking-text);
  font-size:1.55rem;
  line-height:1;
}
.booking-modal h2{
  margin:0 2.6rem .75rem 0;
  color:var(--booking-text);
  font-size:clamp(1.8rem,3vw,2.65rem);
  line-height:1.04;
  letter-spacing:-.052em;
  font-weight:650;
}
.booking-selected-slot{
  margin:0 0 1.2rem;
  padding:.85rem 1rem;
  border:1px solid rgba(198,165,112,.30);
  border-radius:16px;
  background:rgba(198,165,112,.11);
  color:var(--booking-text);
  font-weight:800;
}
.booking-create-form{display:grid;gap:.9rem;}
.booking-create-form label{display:grid;gap:.4rem;}
.booking-create-form label span,
.booking-reminders legend{
  color:rgba(11,44,65,.58);
  font-size:.76rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:900;
}
.booking-create-form input:not([type="checkbox"]),
.booking-create-form textarea{
  width:100%;
  border:1px solid rgba(11,44,65,.14);
  border-radius:16px;
  padding:.85rem .95rem;
  background:#fff;
  color:var(--booking-text);
  outline:none;
  resize:vertical;
}
.booking-create-form input:focus,
.booking-create-form textarea:focus{
  border-color:rgba(198,165,112,.72);
  box-shadow:0 0 0 3px rgba(198,165,112,.14);
}
.booking-reminders{
  margin:.15rem 0;
  padding:.9rem;
  border:1px solid rgba(11,44,65,.10);
  border-radius:16px;
  background:rgba(255,255,255,.55);
}
.booking-reminders p{margin:.25rem 0 .75rem;color:var(--booking-muted);font-size:.9rem;}
.booking-reminder-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;}
.booking-checkbox{display:flex!important;gap:.72rem;align-items:flex-start;}
.booking-checkbox input{width:18px;height:18px;margin-top:.18rem;accent-color:var(--booking-gold);flex:0 0 auto;}
.booking-checkbox span{
  color:rgba(11,44,65,.68)!important;
  font-size:.94rem!important;
  line-height:1.48!important;
  text-transform:none!important;
  letter-spacing:0!important;
  font-weight:600!important;
}
.booking-checkbox--compact{
  min-height:40px;
  align-items:center;
  padding:.52rem .62rem;
  border:1px solid rgba(11,44,65,.09);
  border-radius:12px;
  background:#fff;
}
.booking-checkbox--compact input{margin-top:0;}
.booking-form-status{min-height:1.4em;color:var(--booking-gold-deep);font-weight:800;}
.booking-modal__actions{display:flex;gap:.72rem;justify-content:flex-end;flex-wrap:wrap;margin-top:.35rem;}
.booking-button{
  min-height:48px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:0;
  border-radius:14px;
  padding:.78rem 1.12rem;
  font-weight:900;
  text-decoration:none;
}
.booking-button--primary{
  background:var(--booking-button-bg);
  color:var(--booking-navy);
  box-shadow:0 16px 42px rgba(198,165,112,.18);
}
.booking-button--secondary{
  background:#fff;
  color:var(--booking-text);
  border:1px solid rgba(11,44,65,.12);
}
.booking-button:disabled{opacity:.55;cursor:wait;}
.booking-success{
  display:grid;
  gap:.75rem;
  color:var(--booking-muted);
}
.booking-success h2{margin:0;color:var(--booking-text);}
.booking-success p{margin:0;}
body.booking-modal-open{overflow:hidden;}

.booking-footer{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:.8rem;
  flex-wrap:wrap;
  padding:0 clamp(18px,4vw,48px) 24px;
  color:rgba(255,253,248,.58);
  font-size:.88rem;
}
.booking-footer a{color:rgba(255,253,248,.74);text-decoration:none;}
.booking-footer a:hover{color:#fffdf8;text-decoration:underline;}

@media(max-width:1180px){
  .booking-card{width:min(980px,100%);}
  .booking-layout{grid-template-columns:1fr;gap:0;}
  .booking-panel{padding:1.25rem 0;}
  .booking-panel + .booking-panel{border-left:0;border-top:1px solid var(--booking-line);}
  .booking-times-list{max-height:min(360px, 44svh);grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media(max-width:760px){
  .booking-brand{position:absolute;top:16px;left:18px;}
  .booking-brand__link{width:82px;min-height:48px;}
  .booking-page{padding:92px 14px 26px;place-items:start center;}
  .booking-card{min-height:auto;border-radius:22px;padding:104px 18px 22px;}
  .booking-profile-badge{top:-44px;left:50%;transform:translateX(-50%);width:140px;height:140px;border-width:6px;}
  .booking-profile-initials{font-size:2.15rem;}
  .booking-card__header{padding-left:0;justify-content:center;text-align:center;min-height:auto;}
  .booking-card__header h1{font-size:clamp(1.85rem,8.4vw,2.5rem);}
  .booking-panel{padding:1.05rem 0;}
  .booking-section-title{margin-bottom:.85rem;}
  .booking-type-card{grid-template-columns:44px 1fr 25px;min-height:76px;padding:.78rem;}
  .booking-type-card__icon{width:44px;height:44px;}
  .booking-type-card__icon svg{width:22px;height:22px;}
  .booking-calendar-day{min-height:40px;font-size:.92rem;}
  .booking-times-list{max-height:min(320px, 40svh);grid-template-columns:repeat(2,minmax(0,1fr));}
  .booking-reminder-options{grid-template-columns:1fr;}
  .booking-modal{align-items:end;padding:10px;}
  .booking-modal__panel{width:100%;border-radius:22px;max-height:calc(100svh - 20px);padding:1rem;}
  .booking-modal__actions{display:grid;grid-template-columns:1fr;}
  .booking-button{width:100%;}
}
@media(max-width:430px){
  .booking-times-list{max-height:280px;grid-template-columns:1fr;}
  .booking-calendar-weekdays,.booking-calendar-grid{gap:.25rem;}
  .booking-calendar-day{min-height:36px;}
}

/* ========================================================================
   V14 – stabile Buchungskachel + kompaktere Uhrzeiten
   ------------------------------------------------------------------------
   Die Hauptkachel soll beim Laden der Uhrzeiten nicht springen. Auf Desktop
   bekommt sie deshalb eine feste Arbeitshöhe; die Listen scrollen intern.
   ======================================================================== */
.booking-times-status:empty{display:none;}

.booking-times-list{
  scrollbar-gutter:stable;
  align-content:start;
}

.booking-times-list::-webkit-scrollbar,
.booking-type-list::-webkit-scrollbar{width:8px;}
.booking-times-list::-webkit-scrollbar-track,
.booking-type-list::-webkit-scrollbar-track{background:transparent;}
.booking-times-list::-webkit-scrollbar-thumb,
.booking-type-list::-webkit-scrollbar-thumb{background:rgba(11,44,65,.18);border-radius:999px;}

@media (min-width:1181px){
  .booking-card:not(.booking-card--message){
    height:clamp(650px,72svh,760px);
    min-height:0;
    display:flex;
    flex-direction:column;
  }

  .booking-card__header{
    flex:0 0 auto;
  }

  .booking-layout{
    flex:1 1 auto;
    min-height:0;
    margin-top:clamp(18px,2vw,26px);
  }

  .booking-panel{
    min-height:0;
    display:flex;
    flex-direction:column;
    padding-block:clamp(10px,1.25vw,15px) 8px;
  }

  .booking-section-title{
    flex:0 0 auto;
    margin-bottom:.95rem;
  }

  .booking-type-list{
    min-height:0;
    overflow:auto;
    padding-right:.18rem;
  }

  .booking-calendar-toolbar{
    flex:0 0 auto;
    margin-bottom:.72rem;
  }

  .booking-calendar-weekdays{
    flex:0 0 auto;
    margin-bottom:.38rem;
  }

  .booking-calendar-grid{
    flex:0 0 auto;
  }

  .booking-calendar-day,
  .booking-calendar-day--blank{
    min-height:42px;
  }

  .booking-calendar-note{
    flex:0 0 auto;
    margin-top:.82rem;
    font-size:.84rem;
    line-height:1.42;
  }

  .booking-timezone-label{
    flex:0 0 auto;
    margin-bottom:.68rem;
    gap:.32rem;
  }

  .booking-timezone-label select{
    min-height:42px;
    padding:.54rem .72rem;
  }

  .booking-times-date{
    flex:0 0 auto;
    margin:0 0 .42rem;
    font-size:.98rem;
    line-height:1.25;
  }

  .booking-times-status{
    flex:0 0 auto;
    font-size:.9rem;
    line-height:1.38;
  }

  .booking-times-list{
    flex:1 1 auto;
    min-height:0;
    max-height:none !important;
    overflow:auto;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.42rem;
    padding:.08rem .2rem .08rem 0;
  }

  .booking-time-button{
    min-height:36px;
    border-radius:11px;
    padding:.38rem .5rem;
    font-size:.94rem;
    box-shadow:none;
  }

  .booking-security-note{
    flex:0 0 auto;
    margin:.62rem 0 0;
    font-size:.8rem;
    line-height:1.35;
  }
}

@media (max-width:1180px){
  .booking-times-list{
    min-height:190px;
    overflow:auto;
    gap:.42rem;
  }

  .booking-time-button{
    min-height:38px;
    border-radius:12px;
    padding:.42rem .55rem;
    box-shadow:none;
  }

  .booking-timezone-label{margin-bottom:.75rem;}
  .booking-times-date{margin-bottom:.48rem;}
  .booking-security-note{margin-top:.75rem;}
}

@media (max-width:760px){
  .booking-times-list{
    min-height:170px;
  }
}

@media (max-width:430px){
  .booking-times-list{
    min-height:150px;
  }
}

/* ========================================================================
   V15 – stabile Desktop-Höhe, Zeitzone unter Kalender, kompakte Slots
   ------------------------------------------------------------------------
   Ziel: Die weiße Hauptkachel bleibt beim Datumsklick stabil. Die rechte
   Spalte wächst nicht mehr; nur die Uhrzeitenliste scrollt intern.
   ======================================================================== */

.booking-calendar-bottom{
  display:grid;
  gap:.58rem;
  margin-top:clamp(.75rem,1.4vw,1rem);
}

.booking-timezone-label--calendar{
  margin:0;
}

.booking-timezone-label--calendar select{
  min-height:38px;
  padding:.48rem .7rem;
  border-radius:12px;
  box-shadow:none;
}

.booking-timezone-label--calendar span{
  font-size:.69rem;
}

@media (min-width:1181px){
  body.booking-shell{
    overflow:hidden;
  }

  .booking-page{
    min-height:0;
    height:calc(100svh - 44px);
    place-items:start center;
    padding:clamp(82px,8.5svh,104px) clamp(18px,5vw,72px) 18px;
    overflow:hidden;
  }

  .booking-footer{
    min-height:44px;
    padding:0 clamp(18px,4vw,48px) 12px;
  }

  .booking-card:not(.booking-card--message){
    height:clamp(550px, calc(100svh - 230px), 660px) !important;
    min-height:0 !important;
    max-height:660px;
    display:flex !important;
    flex-direction:column;
    overflow:hidden;
    padding-top:clamp(26px,2.2vw,34px);
    padding-bottom:clamp(24px,2.2vw,34px);
  }

  .booking-profile-badge{
    width:168px;
    height:168px;
    top:-52px;
    left:-25px;
  }

  .booking-card__header{
    min-height:68px;
    padding-left:clamp(120px,11vw,152px);
  }

  .booking-card__header h1{
    font-size:clamp(1.95rem,2.65vw,2.72rem);
  }

  .booking-card__header p{
    margin-top:.28rem;
    font-size:.94rem;
  }

  .booking-layout{
    flex:1 1 auto;
    min-height:0;
    height:auto;
    grid-template-columns:minmax(250px,.98fr) minmax(330px,1.08fr) minmax(260px,.82fr);
    margin-top:clamp(14px,1.6vw,20px) !important;
  }

  .booking-panel{
    min-height:0;
    height:100%;
    overflow:hidden;
    padding:clamp(8px,1vw,12px) clamp(18px,2.2vw,32px) 6px;
  }

  .booking-section-title{
    margin-bottom:.72rem !important;
    font-size:.7rem;
    letter-spacing:.10em;
  }

  .booking-type-list{
    gap:.55rem;
  }

  .booking-type-card{
    min-height:68px;
    grid-template-columns:42px minmax(0,1fr) 24px;
    gap:.68rem;
    padding:.64rem .72rem;
    border-radius:13px;
  }

  .booking-type-card__icon{
    width:42px;
    height:42px;
  }

  .booking-type-card__icon svg{
    width:20px;
    height:20px;
  }

  .booking-type-card__body strong{
    font-size:.98rem;
    line-height:1.16;
  }

  .booking-type-card__body small{
    margin-top:.18rem;
    font-size:.82rem;
    line-height:1.28;
  }

  .booking-type-card__check{
    width:23px;
    height:23px;
    font-size:.82rem;
  }

  .booking-calendar-toolbar{
    margin-bottom:.52rem !important;
  }

  .booking-calendar-toolbar strong{
    font-size:1.02rem;
  }

  .booking-icon-button{
    width:36px;
    height:36px;
    font-size:1.55rem;
  }

  .booking-calendar-weekdays,
  .booking-calendar-grid{
    gap:.30rem;
  }

  .booking-calendar-weekdays{
    margin-bottom:.30rem !important;
    font-size:.68rem;
  }

  .booking-calendar-day,
  .booking-calendar-day--blank{
    min-height:36px !important;
    font-size:.9rem;
  }

  .booking-calendar-day.is-available::after{
    bottom:4px;
    width:4px;
    height:4px;
  }

  .booking-calendar-note{
    margin:0 !important;
    font-size:.78rem;
    line-height:1.34;
  }

  .booking-panel--calendar{
    display:flex;
    flex-direction:column;
  }

  .booking-panel--calendar .booking-calendar-grid{
    flex:0 0 auto;
  }

  .booking-panel--calendar .booking-calendar-bottom{
    flex:0 0 auto;
    margin-top:auto;
  }

  .booking-panel--times{
    display:flex;
    flex-direction:column;
  }

  .booking-panel--times .booking-section-title{
    flex:0 0 auto;
  }

  .booking-times-date{
    flex:0 0 auto;
    margin:0 0 .34rem !important;
    font-size:.95rem;
    line-height:1.18;
  }

  .booking-times-status{
    flex:0 0 auto;
    margin:0 0 .2rem;
    font-size:.84rem;
    line-height:1.3;
  }

  .booking-times-list{
    flex:1 1 auto;
    min-height:0 !important;
    max-height:none !important;
    overflow-y:auto !important;
    overflow-x:hidden;
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.30rem !important;
    padding:.04rem .2rem .04rem 0;
    align-content:start;
  }

  .booking-time-button{
    min-height:31px !important;
    border-radius:9px !important;
    padding:.26rem .38rem !important;
    font-size:.88rem !important;
    line-height:1.1 !important;
    box-shadow:none !important;
  }

  .booking-security-note{
    flex:0 0 auto;
    margin:.48rem 0 0 !important;
    font-size:.76rem;
    line-height:1.24;
  }
}

@media (max-width:1180px){
  .booking-calendar-bottom{
    margin-top:.9rem;
  }

  .booking-time-button{
    min-height:36px !important;
    padding:.34rem .5rem !important;
  }
}


/* ========================================================================
   V16 – Desktop: Kachel optisch zentrieren + Profilbild wieder frei überlappen
   ------------------------------------------------------------------------
   Die Hauptkachel bleibt stabil, wird im sichtbaren Bereich ruhiger gesetzt
   und das Profilbild wird nicht mehr von der Kartenkante abgeschnitten.
   ======================================================================== */
@media (min-width:1181px){
  .booking-page{
    place-items:center;
    padding-top:clamp(96px, 9.5svh, 126px) !important;
    padding-bottom:clamp(18px, 3svh, 34px) !important;
  }

  .booking-card:not(.booking-card--message){
    overflow:visible !important;
    height:clamp(550px, calc(100svh - 245px), 650px) !important;
    max-height:650px !important;
  }

  .booking-profile-badge{
    top:-58px !important;
    left:-30px !important;
    width:172px !important;
    height:172px !important;
  }

  .booking-layout,
  .booking-panel,
  .booking-panel--times,
  .booking-panel--calendar{
    min-height:0;
  }

  .booking-panel--times{
    overflow:hidden;
  }

  .booking-times-list{
    overflow-y:auto !important;
    max-height:none !important;
  }
}

/* ========================================================================
   V17 – Uhrzeiten in dynamische Bereiche splitten + mehr Platz rechts
   ------------------------------------------------------------------------
   Die rechte Spalte zeigt bei vielen Slots zwei chronologische Zeitbereiche.
   Das Datum oberhalb der Uhrzeiten entfällt, weil der gewählte Tag bereits
   im Kalender markiert ist.
   ======================================================================== */
.booking-times-date{
  display:none !important;
}

.booking-times-list.is-grouped{
  align-items:start;
}

.booking-time-group{
  min-width:0;
  display:flex;
  flex-direction:column;
  min-height:0;
}

.booking-time-group__title{
  margin:0 0 .32rem;
  padding:.18rem .2rem;
  color:var(--booking-gold-deep);
  font-size:.70rem;
  line-height:1.15;
  font-weight:950;
  letter-spacing:.08em;
  text-transform:uppercase;
  white-space:nowrap;
}

.booking-time-group__slots{
  display:grid;
  gap:.28rem;
  min-width:0;
}

@media (min-width:1181px){
  .booking-layout{
    grid-template-columns:minmax(250px,.92fr) minmax(275px,.82fr) minmax(430px,1.35fr) !important;
    overflow:hidden;
  }

  .booking-panel--times{
    padding-left:clamp(18px,1.55vw,24px) !important;
    padding-right:clamp(18px,1.8vw,28px) !important;
  }

  .booking-panel--calendar{
    padding-inline:clamp(16px,1.65vw,26px) !important;
  }

  .booking-times-list{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:.36rem .46rem !important;
  }

  .booking-times-list.is-grouped{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:.52rem !important;
  }

  .booking-time-group__slots{
    gap:.27rem !important;
  }

  .booking-time-button{
    min-height:29px !important;
    padding:.18rem .28rem !important;
    border-radius:8px !important;
    font-size:.83rem !important;
    line-height:1.05 !important;
  }

  .booking-times-status{
    margin-bottom:.18rem !important;
  }

  .booking-security-note{
    margin-top:.36rem !important;
  }
}

@media (max-width:760px){
  .booking-times-date{
    display:none !important;
  }

  .booking-times-list.is-grouped{
    grid-template-columns:1fr !important;
  }
}


/* ========================================================================
   V19 – Feinschliff Startseite: gleichmäßige Spalten + kompakter Times-Bereich
   ------------------------------------------------------------------------
   Drei gleich breite Hauptbereiche, keine Sicherheitsnotiz unter den Zeiten,
   zentrierte Zeitbereich-Überschriften und mehr nutzbare Höhe für Slots.
   ======================================================================== */
.booking-security-note{
  display:none !important;
}

.booking-time-group__title{
  text-align:center;
}

@media (min-width:1181px){
  .booking-layout{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  }

  .booking-panel--calendar,
  .booking-panel--times,
  .booking-panel--types{
    padding-left:clamp(18px,1.85vw,30px) !important;
    padding-right:clamp(18px,1.85vw,30px) !important;
  }

  .booking-times-list{
    padding-bottom:.1rem !important;
  }

  .booking-times-list.is-grouped{
    gap:.5rem !important;
  }

  .booking-time-group__title{
    margin-bottom:.22rem !important;
    padding:.08rem .2rem .12rem !important;
    font-size:.68rem !important;
    letter-spacing:.075em !important;
    text-align:center !important;
  }

  .booking-time-group__slots{
    gap:.22rem !important;
  }

  .booking-time-button{
    min-height:28px !important;
    padding:.16rem .28rem !important;
  }
}

/* ========================================================================
   V20 – kompaktes Buchungs-Popup + getrennte CRM-Namensfelder
   ------------------------------------------------------------------------
   Desktop: breiteres Modal, zweispaltige Stammdaten, kompakte Erinnerungen.
   Bei kleineren Viewports scrollt nur der innere Formularbereich, damit die
   runden Modal-Ecken sichtbar bleiben.
   ======================================================================== */
.booking-modal{
  padding:clamp(12px,2vw,24px);
}

.booking-modal__panel{
  width:min(980px, calc(100vw - 32px)) !important;
  max-height:calc(100svh - 32px) !important;
  overflow:hidden !important;
  display:flex;
  flex-direction:column;
  padding:clamp(1rem,1.8vw,1.45rem) !important;
  border-radius:24px;
}

.booking-modal__close{
  top:14px;
  right:14px;
  width:38px;
  height:38px;
  font-size:1.35rem;
  z-index:3;
}

.booking-modal .booking-kicker{
  margin-bottom:.28rem;
  font-size:.70rem;
}

.booking-modal h2{
  margin:0 3rem .6rem 0 !important;
  font-size:clamp(1.75rem,2.7vw,2.35rem) !important;
  line-height:1.02;
}

.booking-selected-slot{
  margin:0 0 .8rem !important;
  padding:.62rem .78rem !important;
  border-radius:14px !important;
  font-size:.96rem;
  line-height:1.35;
}

.booking-create-form{
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  padding:0 .18rem .05rem 0;
  display:grid;
  gap:.72rem !important;
  scrollbar-gutter:stable;
  scrollbar-width:thin;
  scrollbar-color:rgba(198,165,112,.62) rgba(11,44,65,.05);
}

.booking-create-form::-webkit-scrollbar{width:8px;}
.booking-create-form::-webkit-scrollbar-track{background:rgba(11,44,65,.05);border-radius:999px;}
.booking-create-form::-webkit-scrollbar-thumb{background:rgba(198,165,112,.62);border-radius:999px;}

.booking-form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.62rem .75rem;
}

.booking-field,
.booking-create-form label{
  min-width:0;
}

.booking-field--full{
  grid-column:1 / -1;
}

.booking-create-form label span,
.booking-reminders legend{
  font-size:.69rem !important;
  letter-spacing:.075em !important;
}

.booking-create-form input:not([type="checkbox"]),
.booking-create-form textarea{
  min-height:42px;
  border-radius:13px !important;
  padding:.58rem .72rem !important;
  font-size:.94rem;
}

.booking-create-form textarea{
  min-height:86px;
  max-height:126px;
}

.booking-reminders{
  margin:0 !important;
  padding:.72rem !important;
  border-radius:14px !important;
}

.booking-reminders p{
  margin:.12rem 0 .55rem !important;
  font-size:.82rem !important;
  line-height:1.35;
}

.booking-reminder-options{
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:.42rem !important;
}

.booking-checkbox{
  gap:.48rem !important;
}

.booking-checkbox input{
  width:16px !important;
  height:16px !important;
}

.booking-checkbox--compact{
  min-height:34px !important;
  padding:.34rem .48rem !important;
  border-radius:10px !important;
}

.booking-checkbox--compact span{
  font-size:.86rem !important;
  line-height:1.2 !important;
}

.booking-checkbox--privacy{
  align-items:flex-start;
  padding:.15rem 0 0;
}

.booking-checkbox--privacy span{
  font-size:.84rem !important;
  line-height:1.38 !important;
}

.booking-form-status{
  min-height:1.1em;
  font-size:.9rem;
  line-height:1.35;
}

.booking-modal__actions{
  margin-top:.05rem !important;
  gap:.58rem !important;
}

.booking-button{
  min-height:42px !important;
  padding:.62rem .95rem !important;
  border-radius:12px !important;
  font-size:.94rem;
}

.booking-success{
  overflow:auto;
  min-height:0;
}

@media (min-width:761px){
  .booking-modal__actions{
    position:sticky;
    bottom:0;
    z-index:2;
    padding-top:.35rem;
    background:linear-gradient(180deg,rgba(251,249,246,0),var(--booking-bg) 38%);
  }
}

@media (max-width:760px){
  .booking-modal{
    align-items:end;
    padding:8px;
  }

  .booking-modal__panel{
    width:100% !important;
    max-height:calc(100svh - 16px) !important;
    border-radius:22px !important;
    padding:1rem !important;
  }

  .booking-form-grid,
  .booking-reminder-options{
    grid-template-columns:1fr !important;
  }

  .booking-create-form textarea{
    min-height:92px;
  }
}

/* ========================================================================
   V23 – Erfolgsansicht im Buchungs-Popup bereinigt
   ------------------------------------------------------------------------
   Nach erfolgreicher Buchung werden der ursprüngliche Modal-Kopf und die
   Slot-Zusammenfassung ausgeblendet. Die Bestätigung zeigt nur noch den
   eigentlichen Buchungsstatus, Terminzeit und optional die gewählten
   Erinnerungen.
   ======================================================================== */
.booking-modal.is-success .booking-modal__panel > .booking-kicker,
.booking-modal.is-success .booking-modal__panel > #bookingModalTitle,
.booking-modal.is-success .booking-modal__panel > .booking-selected-slot{
  display:none !important;
}

.booking-modal.is-success .booking-modal__panel{
  width:min(760px, calc(100vw - 32px)) !important;
}

.booking-modal.is-success .booking-create-form{
  overflow:visible;
  padding:0;
}

.booking-success{
  display:grid;
  gap:.78rem;
  padding:.18rem 0 0;
  overflow:visible;
}

.booking-success__kicker{
  margin:0;
  color:var(--booking-gold-deep);
  font-size:.72rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-weight:950;
}

.booking-success h2{
  margin:0 !important;
  color:var(--booking-text);
  font-size:clamp(2rem,3.8vw,3rem) !important;
  line-height:1.02;
  letter-spacing:-.055em;
}

.booking-success__text,
.booking-success__muted{
  margin:0;
  color:var(--booking-muted);
  font-size:1rem;
  line-height:1.58;
}

.booking-success__summary{
  display:grid;
  gap:.22rem;
  padding:.9rem 1rem;
  border:1px solid rgba(198,165,112,.34);
  border-radius:14px;
  background:rgba(198,165,112,.10);
  color:var(--booking-text);
}

.booking-success__summary strong{
  font-size:1.12rem;
  line-height:1.25;
}

.booking-success__summary span{
  color:var(--booking-muted);
}

.booking-success .booking-button{
  width:100%;
  margin-top:.25rem;
}

/* --------------------------------------------------------------------------
   Step 25 – Termin verwalten / Stornieren / Umplanen
   -------------------------------------------------------------------------- */
.booking-manage-shell .booking-page{
  align-items:center;
}

.booking-manage-card{
  width:min(1180px, calc(100vw - clamp(32px, 6vw, 96px)));
  margin:clamp(70px, 8vh, 104px) auto clamp(28px, 4vh, 52px);
  padding:clamp(24px, 3vw, 38px);
  border-radius:28px;
  background:rgba(255,253,248,.96);
  border:1px solid rgba(255,255,255,.62);
  box-shadow:0 34px 100px rgba(0,0,0,.24);
  color:var(--pp-text, #0b2c41);
}

.booking-manage-message{
  max-width:680px;
  margin-inline:auto;
  text-align:center;
  padding:clamp(28px, 5vw, 58px) 0;
}

.booking-manage-message h1,
.booking-manage-head h1{
  margin:.25rem 0 .6rem;
  color:var(--pp-navy, #0b2c41);
  font-size:clamp(2rem, 4vw, 3.3rem);
  line-height:1;
  letter-spacing:-.055em;
  font-weight:650;
}

.booking-manage-message p,
.booking-manage-head p{
  margin:0;
  color:var(--pp-muted, rgba(11,44,65,.66));
  line-height:1.65;
}

.booking-manage-head{
  max-width:820px;
  margin:0 0 1.35rem;
}

.booking-manage-grid{
  display:grid;
  grid-template-columns:minmax(270px,.72fr) minmax(0,1.28fr);
  gap:clamp(18px,2.4vw,30px);
  align-items:start;
}

.booking-manage-summary,
.booking-manage-reschedule{
  border:1px solid rgba(11,44,65,.09);
  border-radius:22px;
  background:#fff;
  box-shadow:0 18px 44px rgba(11,44,65,.065);
}

.booking-manage-summary{
  padding:clamp(18px,2vw,24px);
}

.booking-manage-summary h2,
.booking-manage-reschedule h2{
  margin:0;
  color:var(--pp-navy, #0b2c41);
  font-size:1.25rem;
  letter-spacing:-.025em;
}

.booking-manage-summary dl{
  display:grid;
  gap:0;
  margin:1rem 0 0;
  border:1px solid rgba(11,44,65,.075);
  border-radius:16px;
  overflow:hidden;
  background:#fbf9f6;
}

.booking-manage-summary dl div{
  display:grid;
  grid-template-columns:98px minmax(0,1fr);
  gap:.85rem;
  padding:.82rem .95rem;
  border-bottom:1px solid rgba(11,44,65,.07);
}

.booking-manage-summary dl div:last-child{border-bottom:0;}
.booking-manage-summary dt{
  color:rgba(11,44,65,.52);
  font-size:.72rem;
  letter-spacing:.11em;
  text-transform:uppercase;
  font-weight:900;
}
.booking-manage-summary dd{
  margin:0;
  color:var(--pp-navy,#0b2c41);
  font-weight:780;
  line-height:1.35;
}

.booking-manage-hint{
  margin:1rem 0 0;
  color:var(--pp-muted, rgba(11,44,65,.66));
  font-size:.94rem;
  line-height:1.55;
}

.booking-manage-cancel-form{
  display:grid;
  gap:.75rem;
  margin-top:1rem;
}

.booking-manage-cancel-form label{
  display:grid;
  gap:.35rem;
}

.booking-manage-cancel-form label span{
  color:rgba(11,44,65,.58);
  font-size:.72rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-weight:900;
}

.booking-manage-cancel-form textarea{
  width:100%;
  resize:vertical;
  min-height:74px;
  border:1px solid rgba(11,44,65,.13);
  border-radius:14px;
  padding:.72rem .82rem;
  background:#fff;
  color:var(--pp-text,#0b2c41);
  outline:none;
}

.booking-manage-cancel-form textarea:focus{
  border-color:rgba(198,165,112,.78);
  box-shadow:0 0 0 3px rgba(198,165,112,.14);
}

.booking-manage-status{
  margin:1rem 0 0;
  padding:.82rem .95rem;
  border-radius:15px;
  background:rgba(171,28,53,.08);
  border:1px solid rgba(171,28,53,.18);
  color:#8f1730;
  font-weight:800;
  line-height:1.45;
}

.booking-manage-status.is-success{
  background:rgba(31,122,83,.10);
  border-color:rgba(31,122,83,.18);
  color:#145c3d;
}

.booking-manage-reschedule{
  padding:clamp(18px,2vw,24px);
}

.booking-manage-reschedule__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:1rem;
}

.booking-timezone-control--manage{
  min-width:min(310px,100%);
  margin:0;
}

.booking-manage-reschedule-grid{
  display:grid;
  grid-template-columns:minmax(300px,1fr) minmax(260px,1fr);
  gap:1rem;
  align-items:start;
}

.booking-manage-calendar,
.booking-manage-times{
  min-width:0;
}

.booking-times-list--manage{
  max-height:340px;
}

.booking-times-list--manage.is-grouped{
  grid-template-columns:repeat(2,minmax(0,1fr));
}

@media(max-width:980px){
  .booking-manage-card{
    width:min(calc(100% - 28px), 720px);
    margin-top:72px;
    padding:18px;
    border-radius:22px;
  }
  .booking-manage-grid,
  .booking-manage-reschedule-grid{
    grid-template-columns:1fr;
  }
  .booking-manage-reschedule__head{
    display:grid;
  }
  .booking-timezone-control--manage{
    min-width:0;
  }
}

@media(max-width:620px){
  .booking-manage-card{
    width:100%;
    min-height:100svh;
    margin:0;
    border-radius:0;
    padding:82px 16px 28px;
  }
  .booking-manage-summary dl div{
    grid-template-columns:1fr;
    gap:.2rem;
  }
  .booking-times-list--manage.is-grouped{
    grid-template-columns:1fr;
  }
}

/* --------------------------------------------------------------------------
   Step 26 – Manage-Seite Feinschliff
   -------------------------------------------------------------------------- */
.booking-manage-shell .booking-page{
  align-items:flex-start;
  padding-top:0;
}

.booking-manage-card{
  margin-top:clamp(42px,5.2vh,72px) !important;
  margin-bottom:clamp(22px,3vh,38px) !important;
  padding:clamp(20px,2.4vw,32px) !important;
}

.booking-manage-head{
  margin-bottom:clamp(.9rem,1.6vw,1.15rem) !important;
}

.booking-manage-head h1{
  font-size:clamp(2rem,3.5vw,3rem) !important;
}

.booking-manage-grid{
  grid-template-columns:minmax(270px,.7fr) minmax(0,1.3fr) !important;
}

.booking-manage-summary__top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
}

.booking-manage-cancel-top{
  min-height:38px;
  padding:.58rem .82rem;
  white-space:nowrap;
}

.booking-manage-summary dl{
  margin-top:.85rem !important;
}

.booking-manage-summary dl div{
  padding:.68rem .82rem !important;
}

.booking-manage-hint{
  font-size:.88rem !important;
  margin-top:.78rem !important;
}

.booking-manage-reschedule-grid{
  grid-template-columns:minmax(270px,.94fr) minmax(300px,1.06fr) !important;
  gap:.9rem !important;
}

.booking-manage-times{
  display:flex;
  flex-direction:column;
  min-height:0;
}

.booking-times-list--manage{
  max-height:300px !important;
  overflow:auto;
  padding-right:.28rem;
}

.booking-manage-reschedule-confirm{
  margin-top:.72rem;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:.65rem;
  align-items:center;
  padding:.72rem;
  border:1px solid rgba(198,165,112,.34);
  border-radius:14px;
  background:rgba(198,165,112,.10);
}

.booking-manage-reschedule-confirm[hidden]{display:none !important;}

.booking-manage-reschedule-confirm span{
  color:var(--pp-navy,#0b2c41);
  font-weight:850;
  line-height:1.35;
}

.booking-manage-reschedule-confirm .booking-button{
  min-height:38px;
  padding:.58rem .85rem;
  white-space:nowrap;
}

.booking-time-button.is-selected{
  background:linear-gradient(135deg,#d8bc82 0%,var(--pp-gold,#c6a570) 100%);
  border-color:rgba(168,130,70,.62);
  color:var(--pp-navy,#0b2c41);
  box-shadow:0 12px 28px rgba(198,165,112,.18);
}

.booking-manage-cancel-panel{
  margin-top:clamp(14px,1.8vw,22px);
  padding:clamp(16px,2vw,22px);
  border:1px solid rgba(11,44,65,.09);
  border-radius:22px;
  background:#fff;
  box-shadow:0 18px 44px rgba(11,44,65,.055);
  display:grid;
  gap:.85rem;
}

.booking-manage-cancel-panel[hidden]{display:none !important;}

.booking-manage-cancel-panel h2{
  margin:.15rem 0 .25rem;
  color:var(--pp-navy,#0b2c41);
  font-size:1.25rem;
  letter-spacing:-.025em;
}

.booking-manage-cancel-panel p:not(.booking-kicker){
  margin:0;
  color:var(--pp-muted,rgba(11,44,65,.66));
}

.booking-manage-cancel-panel label{
  display:grid;
  gap:.35rem;
}

.booking-manage-cancel-panel label span{
  color:rgba(11,44,65,.58);
  font-size:.72rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-weight:900;
}

.booking-manage-cancel-panel textarea{
  width:100%;
  min-height:86px;
  resize:vertical;
  border:1px solid rgba(11,44,65,.13);
  border-radius:14px;
  padding:.72rem .82rem;
  background:#fff;
  color:var(--pp-text,#0b2c41);
  outline:none;
}

.booking-manage-cancel-panel textarea:focus{
  border-color:rgba(198,165,112,.78);
  box-shadow:0 0 0 3px rgba(198,165,112,.14);
}

.booking-manage-cancel-actions{
  display:flex;
  justify-content:flex-end;
  gap:.7rem;
  flex-wrap:wrap;
}

.booking-manage-cancel-actions .booking-button{
  min-height:42px;
}

@media(max-width:980px){
  .booking-manage-grid,
  .booking-manage-reschedule-grid{
    grid-template-columns:1fr !important;
  }
  .booking-manage-card{
    margin-top:70px !important;
  }
  .booking-manage-reschedule-confirm{
    grid-template-columns:1fr;
  }
  .booking-manage-reschedule-confirm .booking-button,
  .booking-manage-cancel-actions .booking-button{
    width:100%;
  }
}

@media(max-width:620px){
  .booking-manage-summary__top{
    display:grid;
  }
  .booking-manage-cancel-top{
    width:100%;
  }
}


/* --------------------------------------------------------------------------
   Step 33 – Terminverwaltung: Stornierung als kompaktes Popup + Favicon-Stand
   -------------------------------------------------------------------------- */
.booking-cancel-modal{
  align-items:center;
  padding:clamp(16px,3vw,34px);
}

.booking-cancel-modal__panel{
  width:min(640px,100%);
  max-height:calc(100svh - 48px);
  overflow:auto;
  padding:clamp(1.25rem,2.8vw,2rem);
  border-radius:24px;
}

.booking-cancel-modal__panel h2{
  margin:.15rem 0 .55rem;
  color:var(--booking-text,var(--pp-navy,#0b2c41));
  font-size:clamp(1.85rem,3vw,2.55rem);
  line-height:1.04;
  letter-spacing:-.052em;
  font-weight:750;
}

.booking-cancel-modal__text{
  margin:0 0 1rem;
  color:var(--booking-muted,var(--pp-muted,rgba(11,44,65,.66)));
  line-height:1.6;
}

.booking-cancel-modal__panel label{
  display:grid;
  gap:.4rem;
}

.booking-cancel-modal__panel label span{
  color:rgba(11,44,65,.58);
  font-size:.74rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-weight:900;
}

.booking-cancel-modal__panel textarea{
  width:100%;
  min-height:112px;
  resize:vertical;
  border:1px solid rgba(11,44,65,.14);
  border-radius:16px;
  padding:.86rem .95rem;
  background:#fff;
  color:var(--booking-text,var(--pp-text,#0b2c41));
  outline:none;
}

.booking-cancel-modal__panel textarea:focus{
  border-color:rgba(198,165,112,.78);
  box-shadow:0 0 0 3px rgba(198,165,112,.14);
}

.booking-cancel-modal .booking-manage-cancel-actions{
  margin-top:1rem;
}

@media(max-width:620px){
  .booking-cancel-modal{
    align-items:end;
    padding:10px;
  }

  .booking-cancel-modal__panel{
    width:100%;
    max-height:calc(100svh - 20px);
    border-radius:22px;
  }
}
