.booking-page,.booking-dialog{--bk-bg:#f6f5ef;--bk-card:#fff;--bk-ink:#172019;--bk-muted:#58615b;--bk-line:#cbd1ca;--bk-accent:#d6f55f;color:var(--bk-ink);background:var(--bk-bg);font-family:Inter,system-ui,sans-serif;font-size:16px;line-height:1.5;color-scheme:light}
.booking-page{margin:0}.booking-shell{max-width:720px;padding:28px 18px 60px;margin:auto}.booking-shell h1{font-size:clamp(28px,6vw,44px);line-height:1.1;overflow-wrap:anywhere}.booking-dialog{width:min(940px,calc(100vw - 24px));max-height:92dvh;box-sizing:border-box;border:1px solid var(--bk-line);border-radius:22px;padding:22px}.booking-dialog::backdrop{background:#0009}.booking-dialog header{display:flex;justify-content:space-between;align-items:center;gap:12px}.booking-dialog h2{font-size:26px;margin:0}.booking-dialog button,.booking-page button,.booking-page input,.booking-page select,.booking-page textarea,.booking-dialog input,.booking-dialog select,.booking-dialog textarea{font:inherit;box-sizing:border-box;max-width:100%}.booking-dialog button,.booking-page button,.booking-link{min-height:46px;border:1px solid var(--bk-line,#77806c);border-radius:12px;padding:10px 15px;background:var(--bk-card,#fff);color:var(--bk-ink,#172019);cursor:pointer;text-decoration:none}.booking-dialog button.primary,.booking-page button.primary{background:var(--bk-accent);color:#172019;font-weight:750}.booking-dialog button:disabled,.booking-page button:disabled{opacity:.55;cursor:wait}.booking-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.booking-grid label,.booking-settings label{display:flex;flex-direction:column;gap:5px;font-weight:650;min-width:0}.booking-grid input,.booking-grid select,.booking-grid textarea,.booking-settings input{width:100%;min-width:0;padding:12px;border:1px solid var(--bk-line);border-radius:10px;background:var(--bk-card);color:var(--bk-ink)}.booking-checks,.booking-actions,.booking-tabs{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0;align-items:center}.booking-checks label{display:flex;align-items:center;gap:8px}.booking-checks input{width:20px;height:20px}.booking-tabs button[aria-pressed=true]{background:var(--bk-accent);color:#172019}.booking-card{border:1px solid var(--bk-line);background:var(--bk-card);border-radius:16px;padding:18px;margin:14px 0;overflow-wrap:anywhere}.booking-card h3{margin:0 0 6px;font-size:21px}.booking-card p{margin:8px 0}.booking-muted{color:var(--bk-muted)}.booking-error{color:#ad2929;white-space:pre-line;margin:12px 0}.booking-status{font-size:24px;font-weight:750}.booking-hours{display:grid;grid-template-columns:70px 1fr 1fr;gap:8px;margin:8px 0;align-items:center}.booking-settings{margin-top:18px}.booking-settings summary{cursor:pointer;font-size:20px;font-weight:700}.booking-hp{position:absolute;left:-10000px}.booking-link{display:inline-flex;margin:8px 0;font-weight:700}.booking-dialog small{display:block}.booking-status-link{display:block;word-break:break-all}.booking-dialog :focus-visible,.booking-page :focus-visible{outline:3px solid #718734;outline-offset:3px}
@media(max-width:580px){.booking-grid{grid-template-columns:1fr}.booking-dialog{padding:16px}.booking-dialog h2{font-size:23px}.booking-actions button{flex:1 1 auto}.booking-hours{grid-template-columns:52px 1fr 1fr;gap:5px}}
@media(prefers-color-scheme:dark){.booking-page,.booking-dialog{--bk-bg:#131914;--bk-card:#202821;--bk-ink:#eff4ed;--bk-muted:#b2c0b4;--bk-line:#49574b;color-scheme:dark}.booking-error{color:#ffaaa4}}
[data-theme="light"] .booking-dialog{--bk-bg:#f6f5ef;--bk-card:#fff;--bk-ink:#172019;--bk-muted:#58615b;--bk-line:#cbd1ca;color-scheme:light}
[data-theme="dark"] .booking-dialog{--bk-bg:#131914;--bk-card:#202821;--bk-ink:#eff4ed;--bk-muted:#b2c0b4;--bk-line:#49574b;color-scheme:dark}

.booking-history{white-space:pre-line}
.booking-flow{padding:12px;border-radius:12px;background:var(--bk-card);color:var(--bk-muted);font-size:14px}
.booking-status-label{display:inline-block;border:1px solid var(--bk-line);border-radius:8px;padding:4px 9px;font-size:13px;font-weight:750}
.booking-status-label[data-status=confirmed],.booking-status-label[data-status=seated]{border-color:#71904d}
.booking-attention{border-left:3px solid #c68a30;padding:8px 12px;background:var(--bk-bg)}
.booking-empty{padding:20px;border:1px dashed var(--bk-line);border-radius:14px;color:var(--bk-muted)}
.booking-settings .booking-hours{grid-template-columns:minmax(130px,1fr) minmax(0,1fr) minmax(0,1fr)}
.booking-settings .booking-hours label,.booking-settings .booking-schedule-toggle{display:flex;flex-direction:row;align-items:center;gap:8px}
.booking-settings input[type=checkbox]{width:20px;height:20px;flex-shrink:0}
.booking-settings select{font:inherit;padding:12px;border:1px solid var(--bk-line);border-radius:10px;background:var(--bk-card);color:var(--bk-ink);width:100%;box-sizing:border-box}
.booking-settings details{margin:20px 0}.booking-settings details>.booking-grid{margin-top:14px}
.booking-capacity label{display:grid;gap:6px;max-width:100%}.booking-capacity input{font:inherit;padding:10px;width:120px;max-width:100%;background:var(--bk-card);color:var(--bk-ink);border:1px solid var(--bk-line);border-radius:8px}
@media(max-width:580px){.booking-settings .booking-hours{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.booking-settings .booking-hours label{grid-column:1/-1}}

/* Booking filters live outside .booking-grid; scope them explicitly so dashboard themes cannot turn the select into a blank white strip. */
.booking-service-filter{display:grid;gap:7px;margin:14px 0;font-size:12px;font-weight:750}
.booking-service-filter select,.booking-dialog>label>select[data-filter]{
  width:100%;box-sizing:border-box;padding:11px 12px;border:1px solid var(--bk-line);border-radius:10px;
  background:var(--bk-card);color:var(--bk-ink);font:inherit
}

.booking-service-static{
  width:max-content;max-width:100%;grid-template-columns:auto auto;align-items:center;gap:9px;
  padding:8px 11px;border:1px solid var(--bk-line);border-radius:999px;background:var(--bk-card)
}
.booking-service-static span{color:var(--bk-muted);font-size:11px;font-weight:700}
.booking-service-static strong{color:var(--bk-ink);font-size:12px;font-weight:850}

/* Bochka public booking */
.booking-page-bochka{
  --bk-bg:#100c09;--bk-card:#1a130e;--bk-ink:#f7ead4;--bk-muted:#b8aa96;--bk-line:#4a3829;--bk-accent:#d6a54d;
  min-height:100vh;color-scheme:dark;
  background:
    radial-gradient(circle at 76% 0,rgba(110,75,36,.19),transparent 32rem),
    linear-gradient(180deg,#120d09 0,#0d0a08 100%);
}
.booking-page-bochka .booking-shell{max-width:820px;padding:28px 18px 64px}
.booking-bochka-head{padding:6px 2px 24px;border-bottom:1px solid #3e2e22;margin-bottom:22px}
.booking-back{display:inline-flex;color:#c7b79f;text-decoration:none;font-size:12px;font-weight:700;margin-bottom:24px}
.booking-back:hover{color:#f7ead4}
.booking-bochka-brand{font-family:Georgia,'Times New Roman',serif;font-size:clamp(34px,7vw,58px);font-weight:700;line-height:.9;letter-spacing:.06em;text-transform:uppercase;color:#e2b65f;text-shadow:0 2px 24px rgba(214,165,77,.12)}
.booking-bochka-kicker{margin-top:16px;font-size:10px;font-weight:850;letter-spacing:.16em;color:#a99578}
.booking-bochka-head h1{font-size:clamp(34px,7vw,54px);line-height:.98;letter-spacing:-.035em;margin:8px 0 12px;color:#fff7e9;max-width:12ch}
.booking-bochka-head p{margin:0;max-width:620px;color:#b9aa96;font-size:14px;line-height:1.55}

.booking-page-bochka .booking-time-note{margin:0 0 14px;color:#aa9a85;font-size:12px}
.booking-page-bochka .booking-request{
  border:1px solid #3e2e22;background:rgba(24,17,12,.86);border-radius:22px;padding:22px;
  box-shadow:0 24px 70px rgba(0,0,0,.20)
}
.booking-page-bochka .booking-grid{gap:12px}
.booking-page-bochka .booking-grid label,.booking-page-bochka .booking-request>label{margin:0;color:#d8cab6;font-size:11px;letter-spacing:.02em}
.booking-page-bochka .booking-grid input,.booking-page-bochka .booking-grid select,.booking-page-bochka .booking-grid textarea{
  min-height:48px;border-color:#514030;background:#120e0b;color:#fff5e6;border-radius:12px;padding:12px 13px
}
.booking-page-bochka .booking-grid textarea{min-height:84px}
.booking-page-bochka .booking-grid input:focus,.booking-page-bochka .booking-grid select:focus,.booking-page-bochka .booking-grid textarea:focus{
  border-color:#b88942;box-shadow:0 0 0 3px rgba(214,165,77,.10);outline:0
}
.booking-page-bochka .booking-checks{margin:12px 0}
.booking-page-bochka .booking-checks label{margin:0;padding:9px 11px;border:1px solid #473629;border-radius:12px;background:#15100c;color:#d8cab6;font-size:12px}
.booking-page-bochka .booking-checks input{accent-color:#d6a54d}
.booking-page-bochka .booking-actions{margin:18px 0 0;align-items:stretch}
.booking-page-bochka .booking-actions button{
  border-color:#5a4632;background:#16100c;color:#f4e6d2;font-weight:800
}
.booking-page-bochka .booking-actions button.primary{
  order:1;min-height:52px;background:#d6a54d;color:#211507;border-color:#e1b258;box-shadow:0 10px 24px rgba(214,165,77,.13)
}
.booking-page-bochka .booking-actions [data-check]{order:0;min-height:50px;background:#21170f;border-color:#765833;color:#f5e6cf}
.booking-page-bochka .booking-actions [data-wait]{order:2;background:transparent;color:#d5c3aa}
.booking-page-bochka .booking-actions [data-wait][hidden]{display:none}
.booking-page-bochka .booking-alternatives{margin-top:14px;display:grid;gap:8px;color:#d7c7b1;font-size:13px}
.booking-page-bochka .booking-alternatives p{margin:0;padding:12px 13px;border:1px solid #4a3828;border-radius:12px;background:#120e0b}
.booking-page-bochka .booking-alternatives button{min-height:42px;border-color:#5e4934;background:#1b140e;color:#f7ead4}
.booking-page-bochka .booking-error{color:#ffb2a8}
.booking-page-bochka .booking-card{border-color:#443327;background:#18110d}
.booking-page-bochka .booking-status-link{color:#e7b95e}
.booking-page-bochka .booking-status{color:#e5b65d}

@media(min-width:581px){
  .booking-page-bochka .booking-request-billiards .booking-grid:first-of-type{grid-template-columns:minmax(0,1.35fr) minmax(150px,.65fr)}
  .booking-page-bochka .booking-request-billiards .booking-actions{display:grid;grid-template-columns:1fr 1fr}
  .booking-page-bochka .booking-request-billiards .booking-actions .primary{grid-column:1/-1}
}
@media(max-width:580px){
  .booking-page-bochka .booking-shell{padding:18px 14px 48px}
  .booking-bochka-head{padding-bottom:20px;margin-bottom:18px}
  .booking-back{margin-bottom:18px}
  .booking-bochka-head h1{font-size:38px}
  .booking-page-bochka .booking-request{padding:16px;border-radius:18px}
  .booking-page-bochka .booking-actions{display:grid}
  .booking-page-bochka .booking-actions button{width:100%}
}

/* Dashboard modal: keep the service filter compact and theme-safe in both owner themes. */
.booking-dialog .booking-service-filter,.booking-dialog>label:has(>select[data-filter]){margin:12px 0 10px}
.booking-dialog select[data-filter]{display:block;width:100%;min-height:44px;background:var(--bk-card)!important;color:var(--bk-ink)!important;border:1px solid var(--bk-line)!important}


/* Staff booking modal: compact, touch-safe and contained on small screens. */
body.staff-body .booking-dialog{
  width:min(680px,calc(100vw - 12px));
  max-height:calc(100dvh - 12px);
  overflow:auto;
  overscroll-behavior:contain;
  padding:18px;
  border-radius:20px;
  font-size:15px;
}

body.staff-body .booking-dialog header{
  align-items:flex-start;
}

body.staff-body .booking-dialog h2{
  min-width:0;
  font-size:24px;
  line-height:1.05;
  overflow-wrap:anywhere;
}

body.staff-body .booking-dialog [data-close]{
  width:44px;
  min-width:44px;
  height:44px;
  min-height:44px;
  flex:0 0 44px;
  padding:0;
  display:grid;
  place-items:center;
  font-size:21px;
}

body.staff-body .booking-dialog>.booking-actions{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
  margin:14px 0;
}

body.staff-body .booking-dialog>.booking-actions .primary{
  grid-column:1/-1;
}

body.staff-body .booking-dialog .booking-dialog-link{
  min-height:46px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0;
  text-align:center;
}

body.staff-body .booking-dialog .booking-tabs{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
  margin:12px 0;
}

body.staff-body .booking-dialog .booking-tabs button{
  min-width:0;
  padding-left:9px;
  padding-right:9px;
}

body.staff-body .booking-dialog .booking-muted{
  font-size:12px;
  line-height:1.4;
  overflow-wrap:anywhere;
}

body.staff-body .booking-dialog [data-close] .staff-ui-icon{
  width:20px;
  height:20px;
}

body.staff-body .booking-dialog .booking-card p,
body.staff-body .booking-dialog .booking-card h3,
body.staff-body .booking-dialog .booking-history{
  overflow-wrap:anywhere;
}

body.staff-body .booking-dialog select,
body.staff-body .booking-dialog input,
body.staff-body .booking-dialog textarea{
  min-height:46px;
}

body.staff-body .booking-dialog .booking-card{
  padding:15px;
  margin:10px 0;
}

body.staff-body .booking-dialog .booking-card h3{
  font-size:18px;
  line-height:1.15;
}

body.staff-body .booking-dialog .booking-card .booking-actions{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
  margin:12px 0;
}

body.staff-body .booking-dialog .booking-card .booking-actions button{
  min-width:0;
  min-height:46px;
  padding:9px 10px;
  line-height:1.15;
}

@media(max-width:620px){
  body.staff-body .booking-dialog{
    position:fixed;
    inset:auto 0 max(6px,env(safe-area-inset-bottom)) 0;
    width:calc(100vw - 12px);
    max-width:none;
    max-height:88dvh;
    margin:auto 6px;
    padding:16px 14px calc(14px + env(safe-area-inset-bottom));
    border-radius:24px 24px 18px 18px;
  }

  body.staff-body .booking-dialog header{
    position:sticky;
    top:-16px;
    z-index:2;
    margin:-6px 0 4px;
    padding:12px 0 8px;
    background:var(--bk-bg);
  }
}

@media(max-width:390px){
  body.staff-body .booking-dialog{
    padding-left:12px;
    padding-right:12px;
    border-radius:22px 22px 16px 16px;
    font-size:14px;
  }

  body.staff-body .booking-dialog h2{
    font-size:21px;
  }

  body.staff-body .booking-dialog>.booking-actions,
  body.staff-body .booking-dialog .booking-tabs,
  body.staff-body .booking-dialog .booking-card .booking-actions{
    gap:6px;
  }

  body.staff-body .booking-dialog .booking-card{
    padding:13px;
    border-radius:14px;
  }

  body.staff-body .booking-dialog .booking-card .booking-actions{
    grid-template-columns:1fr;
  }

  body.staff-body .booking-dialog .booking-card .booking-actions button{
    width:100%;
    min-height:48px;
  }
}


/* Moskva public booking */
.booking-page-moskva{
  --bk-bg:#07100d;--bk-card:#0e1915;--bk-ink:#f2eee4;--bk-muted:#98a89f;--bk-line:#294638;--bk-accent:#c7a86a;
  min-height:100vh;color-scheme:dark;
  background:
    radial-gradient(circle at 88% 2%,rgba(38,116,84,.20),transparent 30rem),
    radial-gradient(circle at 5% 38%,rgba(199,168,106,.07),transparent 26rem),
    linear-gradient(180deg,#07100d,#050b09);
}
.booking-page-moskva .booking-shell{max-width:820px;padding:28px 18px 64px}
.booking-moskva-head{padding:6px 2px 24px;border-bottom:1px solid rgba(199,168,106,.22);margin-bottom:22px;position:relative}
.booking-moskva-head::after{content:"";position:absolute;width:132px;height:132px;right:2px;top:8px;border-radius:50%;border:1px solid rgba(199,168,106,.10);background:radial-gradient(circle at 38% 38%,rgba(199,168,106,.38) 0 7%,transparent 8%),radial-gradient(circle at 62% 58%,rgba(38,124,91,.55) 0 13%,transparent 14%);pointer-events:none}
.booking-page-moskva .booking-back{color:#91a69a;position:relative;z-index:1}
.booking-page-moskva .booking-back:hover{color:#f3eee3}
.booking-moskva-kicker{font-size:9px;font-weight:900;letter-spacing:.17em;color:#c7a86a;position:relative;z-index:1}
.booking-moskva-brand{font-family:Georgia,'Times New Roman',serif;font-size:clamp(42px,8vw,70px);font-weight:700;line-height:.86;letter-spacing:-.04em;color:#f4efe5;margin:11px 0 13px;position:relative;z-index:1}
.booking-moskva-service{font-size:9px;font-weight:850;letter-spacing:.16em;color:#6f8e7e;position:relative;z-index:1}
.booking-moskva-head h1{font-size:clamp(34px,7vw,54px);line-height:.98;letter-spacing:-.035em;margin:8px 0 12px;color:#fffaf0;max-width:12ch;position:relative;z-index:1}
.booking-moskva-head p{margin:0;max-width:620px;color:#96a79e;font-size:14px;line-height:1.55;position:relative;z-index:1}
.booking-page-moskva .booking-time-note{margin:0 0 14px;color:#82978c;font-size:12px}
.booking-page-moskva .booking-request{border:1px solid #294638;background:rgba(11,24,19,.90);border-radius:22px;padding:22px;box-shadow:0 24px 70px rgba(0,0,0,.22)}
.booking-page-moskva .booking-grid{gap:12px}
.booking-page-moskva .booking-grid label,.booking-page-moskva .booking-request>label{margin:0;color:#cad4ce;font-size:11px;letter-spacing:.02em}
.booking-page-moskva .booking-grid input,.booking-page-moskva .booking-grid select,.booking-page-moskva .booking-grid textarea{min-height:48px;border-color:#315644;background:#08110e;color:#f6f3eb;border-radius:12px;padding:12px 13px}
.booking-page-moskva .booking-grid textarea{min-height:84px}
.booking-page-moskva .booking-grid input:focus,.booking-page-moskva .booking-grid select:focus,.booking-page-moskva .booking-grid textarea:focus{border-color:#8d7a4e;box-shadow:0 0 0 3px rgba(199,168,106,.10);outline:0}
.booking-page-moskva .booking-checks label{margin:0;padding:9px 11px;border:1px solid #294638;border-radius:12px;background:#0a1612;color:#c8d2cc;font-size:12px}
.booking-page-moskva .booking-checks input{accent-color:#c7a86a}
.booking-page-moskva .booking-actions button{border-color:#315242;background:#0b1713;color:#e8eee9;font-weight:800}
.booking-page-moskva .booking-actions button.primary{order:1;min-height:52px;background:#c7a86a;color:#10140f;border-color:#d8bc7f;box-shadow:0 10px 24px rgba(199,168,106,.12)}
.booking-page-moskva .booking-actions [data-check]{order:0;min-height:50px;background:#123226;border-color:#356b54;color:#edf3ef}
.booking-page-moskva .booking-actions [data-wait]{order:2;background:transparent;color:#a8b6ae}
.booking-page-moskva .booking-alternatives{margin-top:14px;display:grid;gap:8px;color:#c8d2cc;font-size:13px}
.booking-page-moskva .booking-alternatives p{margin:0;padding:12px 13px;border:1px solid #294638;border-radius:12px;background:#08110e}
.booking-page-moskva .booking-alternatives button{min-height:42px;border-color:#315242;background:#0d1b16;color:#f0eee8}
.booking-page-moskva .booking-error{color:#ffb2a8}
.booking-page-moskva .booking-card{border-color:#294638;background:#0b1713}
.booking-page-moskva .booking-status-link,.booking-page-moskva .booking-status{color:#d0b377}
.booking-page-moskva :focus-visible{outline-color:#d8bc7f}
@media(min-width:581px){
  .booking-page-moskva .booking-request-billiards .booking-grid:first-of-type{grid-template-columns:minmax(0,1.35fr) minmax(150px,.65fr)}
  .booking-page-moskva .booking-request-billiards .booking-actions{display:grid;grid-template-columns:1fr 1fr}
  .booking-page-moskva .booking-request-billiards .booking-actions .primary{grid-column:1/-1}
}
@media(max-width:580px){
  .booking-page-moskva .booking-shell{padding:18px 14px 48px}
  .booking-moskva-head{padding-bottom:20px;margin-bottom:18px}
  .booking-moskva-head::after{width:94px;height:94px}
  .booking-moskva-head h1{font-size:38px}
  .booking-moskva-brand{font-size:50px}
  .booking-page-moskva .booking-request{padding:16px;border-radius:18px}
  .booking-page-moskva .booking-actions{display:grid}
  .booking-page-moskva .booking-actions button{width:100%}
}


/* Zero-training booking cards: one obvious next step for staff. */
.booking-card-staff .booking-next-action{
  width:100%;
  min-height:52px;
  justify-content:center;
  margin:14px 0 10px;
  font-size:14px;
  font-weight:850;
}
.booking-card-staff .booking-contact{
  font-weight:750;
}
.booking-more{
  margin-top:8px;
  border-top:1px solid var(--bk-line);
  padding-top:10px;
}
.booking-more summary{
  cursor:pointer;
  width:max-content;
  max-width:100%;
  color:var(--bk-muted);
  font-size:12px;
  font-weight:800;
  list-style:none;
}
.booking-more summary::-webkit-details-marker{display:none}
.booking-more summary::after{content:" ↓";opacity:.65}
.booking-more[open] summary::after{content:" ↑"}
.booking-secondary-actions{
  margin:10px 0 0;
}
.booking-secondary-actions button{
  background:transparent;
}
@media(max-width:580px){
  .booking-card-staff .booking-next-action{min-height:56px}
  .booking-secondary-actions{display:grid;grid-template-columns:1fr 1fr}
  .booking-secondary-actions button{width:100%}
}


/* Zero-training public booking wizard */
.booking-wizard-source-hidden{display:none!important}
.booking-wizard-progress{
  display:grid;
  grid-template-columns:auto 1fr auto 1fr auto;
  gap:9px;
  align-items:center;
  margin:18px 0 26px;
}
.booking-wizard-progress>i{
  height:2px;
  background:var(--bk-line);
  border-radius:999px;
}
.booking-wizard-progress>span{
  display:grid;
  grid-template-columns:30px auto;
  grid-template-rows:auto auto;
  gap:0 8px;
  align-items:center;
  color:var(--bk-muted);
}
.booking-wizard-progress>span>b{
  grid-row:1/3;
  width:30px;height:30px;
  display:grid;place-items:center;
  border:1px solid var(--bk-line);
  border-radius:50%;
  background:var(--bk-card);
  font-size:12px;
}
.booking-wizard-progress>span>small{
  font-size:10px;
  font-weight:800;
}
.booking-wizard-progress>span.active,
.booking-wizard-progress>span.done{color:var(--bk-ink)}
.booking-wizard-progress>span.active>b{
  background:var(--bk-accent);
  border-color:var(--bk-accent);
  color:#172019;
}
.booking-wizard-progress>span.done>b{
  background:var(--bk-ink);
  border-color:var(--bk-ink);
  color:var(--bk-bg);
}
.booking-wizard-step{display:grid;gap:16px}
.booking-step-head{display:grid;gap:5px}
.booking-step-head>small{
  font-size:10px;
  font-weight:850;
  letter-spacing:.12em;
  color:var(--bk-muted);
}
.booking-step-head h2{
  margin:0;
  font-size:clamp(25px,5vw,38px);
  line-height:1.04;
}
.booking-step-head p{margin:0;color:var(--bk-muted)}
.booking-wizard-body{display:grid;gap:14px}
.booking-service-choices{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px!important;
  margin:0!important;
}
.booking-service-choice{
  position:relative;
  display:grid!important;
  gap:4px!important;
  min-height:76px;
  align-content:center;
  padding:13px 14px;
  border:1px solid var(--bk-line);
  border-radius:15px;
  background:var(--bk-card);
  cursor:pointer;
}
.booking-service-choice input{
  position:absolute;
  inset:0;
  opacity:0;
  width:100%!important;
  height:100%!important;
  cursor:pointer;
}
.booking-service-choice span{
  position:relative;
  z-index:1;
  font-size:16px;
  font-weight:850;
  pointer-events:none;
}
.booking-service-choice small{
  position:relative;
  z-index:1;
  color:var(--bk-muted);
  font-size:11px;
  pointer-events:none;
}
.booking-service-choice.selected{
  border-color:var(--bk-accent);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--bk-accent) 18%,transparent);
}
.booking-service-choice.selected:after{
  content:"✓";
  position:absolute;
  right:12px;
  top:12px;
  width:24px;height:24px;
  display:grid;place-items:center;
  border-radius:50%;
  background:var(--bk-accent);
  color:#172019;
  font-size:12px;
  font-weight:900;
}
.booking-service-choice.static{cursor:default}
.booking-step-fields{margin:0}
.booking-step-fields .booking-wide{grid-column:1/-1}
.booking-flex-time{
  border:1px solid var(--bk-line);
  border-radius:13px;
  padding:11px 13px;
  background:var(--bk-card);
}
.booking-flex-time summary{
  cursor:pointer;
  color:var(--bk-muted);
  font-size:12px;
  font-weight:800;
}
.booking-flex-time label{
  display:grid;
  gap:6px;
  margin-top:12px;
  font-weight:650;
}
.booking-flex-time input{
  width:100%;
  box-sizing:border-box;
  padding:12px;
  border:1px solid var(--bk-line);
  border-radius:10px;
  background:var(--bk-card);
  color:var(--bk-ink);
}
.booking-availability-result{
  min-height:0;
  margin:0;
  padding:0;
  color:var(--bk-ink);
  font-weight:700;
}
.booking-availability-result:empty{display:none}
.booking-availability-result:not(:empty){
  padding:13px 14px;
  border:1px solid var(--bk-line);
  border-radius:13px;
  background:var(--bk-card);
}
.booking-availability-result p{
  margin:7px 0 0;
  color:var(--bk-muted);
  font-weight:500;
}
.booking-alternative-time{
  margin:9px 7px 0 0;
}
.booking-checking{color:var(--bk-muted)}
.booking-wizard-actions{
  justify-content:space-between;
  margin:4px 0 0;
}
.booking-wizard-actions .primary{
  min-height:48px;
  padding-inline:18px;
}
.booking-consent{
  margin:0!important;
  padding:12px 13px;
  border:1px solid var(--bk-line);
  border-radius:13px;
  background:var(--bk-card);
}
.booking-consent label{
  margin:0;
  line-height:1.4;
}
@media(max-width:580px){
  .booking-wizard-progress{grid-template-columns:auto 1fr auto 1fr auto;gap:5px}
  .booking-wizard-progress>span{grid-template-columns:28px}
  .booking-wizard-progress>span>b{width:28px;height:28px}
  .booking-wizard-progress>span>small{display:none}
  .booking-service-choices{grid-template-columns:1fr}
  .booking-wizard-actions{display:grid;grid-template-columns:1fr}
  .booking-wizard-actions>*{width:100%}
  .booking-wizard-actions>span{display:none}
}

.booking-confirm-panel{
  display:grid;
  gap:8px;
  padding:4px 0;
}
.booking-confirm-panel>small{
  color:var(--bk-muted);
  font-size:10px;
  font-weight:850;
  letter-spacing:.12em;
}
.booking-confirm-panel h3{
  margin:0;
  font-size:24px;
  line-height:1.1;
}
.booking-confirm-panel p{
  margin:0;
  color:var(--bk-muted);
  line-height:1.5;
}

/* Standalone booking page does not load app.css. */
.booking-page .hidden,.booking-dialog .hidden{display:none!important}

.booking-event-context{margin:0 0 18px;padding:18px;border:1px solid rgba(127,127,127,.24);border-radius:18px;background:rgba(127,127,127,.06)}
.booking-event-context small{display:block;font-size:12px;font-weight:850;letter-spacing:.12em;opacity:.72}
.booking-event-context h2{margin:7px 0 8px;font-size:clamp(24px,5vw,36px);line-height:1}
.booking-event-context p{margin:0;opacity:.76}.booking-event-label{padding:8px 10px;border-radius:10px;background:rgba(127,127,127,.08)}


/* BrauHaus public table booking */
.booking-page-brauhaus{
  --bk-bg:#0d0906;--bk-card:#17100b;--bk-ink:#f7ead5;--bk-muted:#aa9780;--bk-line:#4c3521;--bk-accent:#e8aa3c;
  min-height:100vh;color-scheme:dark;
  background:radial-gradient(circle at 90% 0%,rgba(184,117,28,.16),transparent 30rem),linear-gradient(180deg,#100a06,#090604);
}
.booking-page-brauhaus .booking-shell{max-width:820px;padding:28px 18px 64px}
.booking-brauhaus-head{padding:6px 2px 24px;border-bottom:1px solid rgba(232,170,60,.22);margin-bottom:22px}
.booking-page-brauhaus .booking-back{color:#bca78d}
.booking-brauhaus-kicker,.booking-brauhaus-service{font-size:10px;font-weight:900;letter-spacing:.16em;color:#e8aa3c}
.booking-brauhaus-brand{font-family:Georgia,'Times New Roman',serif;font-size:clamp(46px,8vw,72px);font-weight:700;line-height:.9;letter-spacing:-.05em;color:#fff2dc;margin:10px 0 13px}
.booking-brauhaus-head h1{font-size:clamp(34px,7vw,54px);line-height:.98;letter-spacing:-.035em;margin:8px 0 12px;color:#fff6e8}
.booking-brauhaus-head p{margin:0;max-width:620px;color:#b8a48c;font-size:14px;line-height:1.55}
.booking-page-brauhaus .booking-request{border:1px solid #4c3521;background:rgba(23,16,11,.94);border-radius:22px;padding:22px;box-shadow:0 24px 70px rgba(0,0,0,.24)}
.booking-page-brauhaus input,.booking-page-brauhaus select,.booking-page-brauhaus textarea{border-color:#503a27!important;background:#100b08!important;color:#f8ead6!important;border-radius:12px!important}
.booking-page-brauhaus .booking-actions button{border-color:#5c422b;background:#1b120c;color:#f5e7d2;font-weight:800}
.booking-page-brauhaus .booking-actions button.primary{background:#e8aa3c;color:#241507;border-color:#efba5d}
.booking-page-brauhaus .booking-service-choice.selected{border-color:#e8aa3c}
.booking-page-brauhaus .booking-service-choice.selected:after{background:#e8aa3c;color:#241507}
.booking-page-brauhaus .booking-status-link,.booking-page-brauhaus .booking-status{color:#edb95c}
@media(max-width:580px){
  .booking-page-brauhaus .booking-shell{padding:18px 14px 48px}
  .booking-brauhaus-brand{font-size:52px}
  .booking-brauhaus-head h1{font-size:38px}
  .booking-page-brauhaus .booking-request{padding:16px;border-radius:18px}
}
.booking-dialog>.booking-error:empty{display:none}
.booking-intro{font-size:13px;margin:10px 0}
.booking-flow{font-size:12px;padding:8px 10px;margin:10px 0}
@media(max-width:580px){
 .booking-dialog .booking-toolbar{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}
 .booking-toolbar button,.booking-toolbar .booking-link{width:100%;margin:0;padding:9px;font-size:13px;min-height:44px;justify-content:center;text-align:center}
 .booking-dialog .booking-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}
 .booking-dialog .booking-tabs button{font-size:13px;padding:8px;min-height:40px}
 .booking-dialog h2{font-size:22px}
 .booking-service-static{margin:8px 0;padding:5px 9px}
}
