/* Reservation-specific layout ownership. Shared admin/page skins stay outside
   this surface; intrinsic controls and contained brand assets support tenants. */
.reserve-page {
  --reserve-bg:#090e10; --reserve-surface:rgba(24,33,36,.86);
  --reserve-field:rgba(255,255,255,.045); --reserve-ink:#f2f3ef;
  --reserve-muted:#a7b3b5; --reserve-line:rgba(189,217,220,.16);
  --reserve-accent:#78d0d8; --reserve-accent-ink:#0d272b;
  --sdp-primary:var(--reserve-accent); --sdp-primary-hover:#9ae1e7;
  --sdp-bg:#182124; --sdp-text:var(--reserve-ink); --sdp-text-muted:var(--reserve-muted);
  --sdp-border:var(--reserve-line);
  min-height:100svh !important; margin:0; font-size:16px !important;
  color:var(--reserve-ink) !important; line-height:1.65;
  background:radial-gradient(ellipse at 90% 0%,rgba(67,135,143,.12),transparent 55%),var(--reserve-bg) !important;
}
html[data-theme='light'] .reserve-page {
  --reserve-bg:#f3f2ed; --reserve-surface:rgba(255,255,255,.82);
  --reserve-field:#f3f5f3; --reserve-ink:#20292b; --reserve-muted:#58676a;
  --reserve-line:rgba(25,57,61,.15); --reserve-accent:#236b74; --reserve-accent-ink:#fff;
  --sdp-bg:#fff; --sdp-primary-hover:#174f56;
}
.reserve-page *, .reserve-page *::before, .reserve-page *::after { box-sizing:border-box; }
.reserve-page [hidden] { display:none !important; }
.reserve-page .reserve-wrap { width:100%; max-width:1100px; margin:0 auto; padding:28px clamp(16px,4vw,44px) max(40px,env(safe-area-inset-bottom)); }
.reserve-page .reserve-topbar { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:38px; }
.reserve-page .reserve-logo { display:grid; flex:none; place-items:center; width:122px; height:44px; }
.reserve-page .reserve-logo img { grid-area:1/1; display:block; width:100% !important; height:100% !important; max-width:100%; object-fit:contain !important; }
.reserve-page .reserve-logo__light { visibility:hidden; }
html[data-theme='light'] .reserve-page .reserve-logo__light { visibility:visible; }
html[data-theme='light'] .reserve-page .reserve-logo__dark { visibility:hidden; }
.reserve-page .reserve-back { text-decoration:none; font-size:13px; color:var(--reserve-muted); padding:10px 16px; border:1px solid var(--reserve-line); border-radius:999px; min-height:44px; display:inline-flex; align-items:center; }
.reserve-page .reserve-brand { text-align:start; margin-bottom:28px; }
.reserve-page .reserve-brand h1 { margin:0 0 8px; font-size:clamp(30px,4vw,42px); font-weight:750; line-height:1.35; letter-spacing:-.03em; }
.reserve-page .reserve-brand p { margin:0; color:var(--reserve-muted); font-size:15px; overflow-wrap:anywhere; }
.reserve-page .reserve-form-layout { display:grid; grid-template-columns:minmax(0,1.12fr) minmax(0,1fr); gap:24px; align-items:start; }
.reserve-page .reserve-section, .reserve-page .reserve-done {
  min-width:0; padding:28px; border:1px solid var(--reserve-line); border-radius:28px;
  background:var(--reserve-surface); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 20px 50px rgba(0,14,18,.09);
}
.reserve-page .reserve-section-heading { display:flex; align-items:flex-start; gap:12px; margin-bottom:24px; }
.reserve-page .reserve-section-heading > div { min-width:0; }
.reserve-page .reserve-step { display:grid; place-items:center; flex:none; width:38px; height:38px; border-radius:13px; border:1px solid var(--reserve-line); color:var(--reserve-accent); background:var(--reserve-field); font-size:16px; font-variant-numeric:tabular-nums; }
.reserve-page .reserve-section-heading h2 { font-size:18px; margin:0 0 3px; font-weight:700; line-height:1.6; }
.reserve-page .reserve-section-heading p { font-size:12px; color:var(--reserve-muted); margin:0; line-height:1.8; }
.reserve-page .field { min-width:0; margin:0 0 18px; }
.reserve-page .field label, .reserve-page .field-group-label { display:block; color:var(--reserve-muted); font-size:13px; font-weight:550; margin:0 0 7px; }
.reserve-page .field input, .reserve-page .field select, .reserve-page .field textarea {
  display:block; width:100% !important; max-width:100% !important; min-width:0 !important;
  min-height:52px; height:auto; margin:0; padding:12px 14px; border-radius:14px;
  border:1px solid var(--reserve-line); background:var(--reserve-field); color:var(--reserve-ink);
  font:inherit; font-size:16px !important; line-height:1.5;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035);
  transition:border-color .2s,background .2s;
}
.reserve-page .field textarea { resize:vertical; min-height:96px; }
.reserve-page .field input::placeholder { color:var(--reserve-muted); opacity:.85; }
.reserve-page select { color-scheme:dark; }
html[data-theme='light'] .reserve-page select { color-scheme:light; }
.reserve-page .grid-2 { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.reserve-page .shamsi-date-trigger-wrapper { display:block; width:100%; max-width:100%; min-width:0; }
.reserve-page .shamsi-date-trigger-wrapper input { padding-inline-end:14px; padding-right:44px; font-variant-numeric:tabular-nums; }
.reserve-page .slot-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin:0; max-height:330px; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; padding:3px; scroll-padding:3px; }
.reserve-page .slot-grid > .hint { grid-column:1/-1; padding:20px 8px; text-align:center; color:var(--reserve-muted); font-size:13px; }
.reserve-page .slot-btn { appearance:none; min-width:0; min-height:46px; padding:10px 4px; border:1px solid var(--reserve-line); border-radius:13px; color:var(--reserve-ink); background:var(--reserve-field); font:inherit; font-size:14px; line-height:1.4; font-weight:600; font-variant-numeric:tabular-nums; direction:ltr; cursor:pointer; transition:background .18s,border-color .18s,transform .18s; }
.reserve-page .slot-btn.is-on { background:var(--reserve-accent); color:var(--reserve-accent-ink); border-color:transparent; box-shadow:0 3px 12px rgba(15,110,120,.13); }
.reserve-page .slot-btn:disabled { opacity:.38; cursor:not-allowed; text-decoration:line-through; }
.reserve-page #submit, .reserve-page .reserve-done .btn { width:100%; min-height:54px; border:1px solid transparent; border-radius:999px; padding:13px 20px; font:inherit; font-size:16px; font-weight:700; cursor:pointer; color:var(--reserve-accent-ink); background:var(--reserve-accent); box-shadow:inset 0 1px 0 rgba(255,255,255,.25); transition:opacity .2s,transform .2s; }
.reserve-page #submit:disabled { opacity:.55; cursor:wait; }
.reserve-page .reserve-submit-hint { font-size:12px; color:var(--reserve-muted); text-align:center; margin:12px 0 0; }
.reserve-page .msg { font-size:13px; margin:14px 0 0; overflow-wrap:anywhere; }
.reserve-page .msg:empty { display:none; }
.reserve-page .msg.error { color:#f4a4a4; }
html[data-theme='light'] .reserve-page .msg.error { color:#a62929; }
.reserve-page .reserve-done { max-width:560px; margin:auto; text-align:center; padding:40px 28px; }
.reserve-page .reserve-done .code { color:var(--reserve-accent); font-size:32px; font-weight:750; direction:ltr; font-variant-numeric:tabular-nums; margin:16px 0; }
.reserve-page .reserve-done .hint { color:var(--reserve-muted); }
.reserve-page .shamsi-datepicker-popover { max-width:calc(100vw - 24px); }
.reserve-page :is(a,button,input,select,textarea):focus-visible { outline:2px solid var(--reserve-accent); outline-offset:3px; }
.reserve-page .reserve-skip { position:fixed; top:8px; inset-inline-start:16px; z-index:100; transform:translateY(-150%); background:var(--reserve-ink); color:var(--reserve-bg); border-radius:12px; padding:12px 18px; }
.reserve-page .reserve-skip:focus { transform:none; }
@media (hover:hover) {
  .reserve-page .slot-btn:hover:not(:disabled):not(.is-on), .reserve-page .reserve-back:hover { border-color:var(--reserve-accent); }
  .reserve-page #submit:hover:not(:disabled) { opacity:.9; }
}
.reserve-page :is(.slot-btn,#submit):active:not(:disabled) { transform:scale(.98); }
@media (max-width:860px) {
  .reserve-page .reserve-wrap { max-width:640px; padding-top:20px; }
  .reserve-page .reserve-form-layout { grid-template-columns:minmax(0,1fr); gap:18px; }
  .reserve-page .reserve-topbar { margin-bottom:24px; }
  .reserve-page .reserve-section { padding:24px; }
  .reserve-page .slot-grid { max-height:none; overflow:visible; }
}
@media (max-width:380px) {
  .reserve-page .reserve-wrap { padding-inline:12px; }
  .reserve-page .reserve-section { padding:20px 16px; border-radius:24px; }
  .reserve-page .grid-2 { grid-template-columns:minmax(0,1fr); gap:0; }
  .reserve-page .slot-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .reserve-page .reserve-logo { width:106px; }
}
@media (prefers-reduced-motion:reduce) { .reserve-page * { transition:none !important; } }
@media (prefers-reduced-transparency:reduce) {
  .reserve-page { --reserve-surface:#182124; }
  html[data-theme='light'] .reserve-page { --reserve-surface:#fff; }
  .reserve-page .reserve-section { backdrop-filter:none; -webkit-backdrop-filter:none; }
}

.reserve-page .shamsi-date-icon { top:50%; transform:translateY(-50%); }

.reserve-page #submit::after { border-radius:inherit; }
