#rbsp-app{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:#fff}
.rbsp-wrap{position:relative;max-width:1200px;margin:0 auto;padding:12px}
.rbsp-shell{background:#111827;border:1px solid rgba(255,255,255,.08);border-radius:24px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.35)}
.rbsp-header{display:flex;justify-content:space-between;gap:16px;padding:20px;border-bottom:1px solid rgba(255,255,255,.08);flex-wrap:wrap}
.rbsp-header h2{margin:0;font-size:28px;line-height:1.1;color:#fff}.rbsp-header p{margin:6px 0 0;color:#9ca3af}
.rbsp-controls{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.rbsp-controls input,.rbsp-controls select{background:#030712;border:1px solid rgba(255,255,255,.12);color:#fff;border-radius:14px;padding:10px 12px}
.rbsp-legend{display:flex;gap:18px;flex-wrap:wrap;padding:12px 20px;border-bottom:1px solid rgba(255,255,255,.08);color:#d1d5db}.rbsp-legend span{display:flex;align-items:center;gap:8px;font-size:14px}.rbsp-legend i{display:inline-block;width:12px;height:12px;border-radius:4px}.rbsp-legend .available{background:#34d399}.rbsp-legend .occupied{background:#4b5563}.rbsp-legend .reserved{background:#fb7185}.rbsp-legend .selected{background:#38bdf8}
.rbsp-map-scroll{overflow-x:auto;overflow-y:hidden;padding:14px;background:#0b0f19}.rbsp-map{position:relative;aspect-ratio:10/11;min-width:760px;max-width:980px;margin:0 auto;background:#060606}
.sea{position:absolute;top:0;bottom:0;width:13%;background:#fb923c}.sea.left{left:0}.sea.right{right:0}.sea-label.top{position:absolute;left:45%;top:8px;font-size:34px;letter-spacing:.2em;color:rgba(0,0,0,.8)}
.zone-label{position:absolute;font-size:50px;letter-spacing:.15em;color:rgba(0,0,0,.8)}.zone-label.left{left:3.3%;top:15%;transform:rotate(-90deg)}.zone-label.right{right:1.5%;bottom:18%;transform:rotate(-90deg)}
.fixture{position:absolute;display:flex;align-items:center;justify-content:center;background:#d1d5db;color:#111827;border:1px solid rgba(0,0,0,.15);border-radius:18px;font-size:12px;font-weight:600;text-align:center;padding:4px}
.rbsp-table{position:absolute;border:1px solid rgba(0,0,0,.25);border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;cursor:pointer;box-shadow:0 10px 20px rgba(0,0,0,.25);transition:.2s;font-size:12px;padding:2px}.rbsp-table strong{font-size:16px;line-height:1}.rbsp-table small{text-transform:capitalize;opacity:.85;font-size:10px}.rbsp-table:hover{transform:scale(1.03)}
.rbsp-table.gold{background:#fbbf24;color:#111827}.rbsp-table.yellow{background:#fde68a;color:#111827}.rbsp-table.green{background:#a3e635;color:#111827}.rbsp-table.cyan{background:#67e8f9;color:#111827}.rbsp-table.lavender{background:#c7d2fe;color:#111827}.rbsp-table.purple{background:#ddd6fe;color:#111827}
.rbsp-table.occupied{background:#374151!important;color:#fff;cursor:not-allowed}.rbsp-table.reserved{background:#fb7185!important;color:#fff;cursor:not-allowed}.rbsp-table.selected{background:#38bdf8!important;color:#082f49;box-shadow:0 0 0 4px #bae6fd}
.rbsp-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);opacity:0;pointer-events:none;transition:.2s;z-index:9998}.rbsp-overlay.show{opacity:1;pointer-events:auto}
.rbsp-drawer{position:fixed;right:16px;top:16px;bottom:16px;width:420px;max-width:calc(100vw - 24px);background:#111827;border:1px solid rgba(255,255,255,.08);border-radius:28px;transform:translateX(110%);transition:.25s;z-index:9999;box-shadow:0 20px 60px rgba(0,0,0,.45);overflow:auto}.rbsp-drawer.open{transform:translateX(0)}
.rbsp-drawer-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 18px 14px;border-bottom:1px solid rgba(255,255,255,.08)}.rbsp-drawer-head h3{margin:0;font-size:24px}.rbsp-drawer-head p{margin:6px 0 0;color:#9ca3af;font-size:14px}
.rbsp-btn{border:0;border-radius:16px;padding:12px 14px;font-weight:700;cursor:pointer}.rbsp-btn.primary{width:100%;background:#38bdf8;color:#082f49}.rbsp-btn.primary[disabled]{opacity:.45;cursor:not-allowed}.rbsp-btn.ghost{background:#1f2937;color:#fff}.rbsp-btn.icon{padding:8px 12px;background:#1f2937;color:#fff;font-size:22px;line-height:1}
.rbsp-summary-box,.rbsp-grid,.rbsp-total,.rbsp-empty{padding:16px 18px}.rbsp-summary-box{display:flex;justify-content:space-between;gap:16px;background:rgba(56,189,248,.12);border:1px solid rgba(56,189,248,.25);margin:16px 18px 0;border-radius:18px}.rbsp-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.rbsp-grid label span{display:block;margin:0 0 8px;color:#d1d5db;font-size:14px}.rbsp-grid label input,.rbsp-grid label select{width:100%;background:#030712;border:1px solid rgba(255,255,255,.12);color:#fff;border-radius:14px;padding:12px}
.rbsp-total{padding-top:4px}.rbsp-total div{display:flex;justify-content:space-between;align-items:center;font-size:18px}.rbsp-total strong{font-size:22px}.rbsp-error{color:#fecaca;background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.25);border-radius:14px;padding:10px 12px;margin:12px 0 0}.rbsp-info{color:#bae6fd;background:rgba(56,189,248,.12);border:1px solid rgba(56,189,248,.2);border-radius:14px;padding:10px 12px;margin:12px 0 0}.rbsp-empty{color:#9ca3af}.rbsp-loading{padding:24px;background:#111827;border-radius:18px;color:#fff}
@media (max-width: 900px){.rbsp-header h2{font-size:22px}.rbsp-drawer{left:0;right:0;top:auto;bottom:0;width:auto;max-width:none;max-height:88vh;border-radius:28px 28px 0 0;transform:translateY(105%)}.rbsp-drawer.open{transform:translateY(0)}.rbsp-grid{grid-template-columns:1fr}.zone-label{font-size:32px}.sea-label.top{font-size:22px}}

/* Zone booking UI */
.rbsp-zone-layout{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:18px;align-items:start}
.rbsp-zone-main,.rbsp-booking-sidebar{background:#111827;border:1px solid rgba(255,255,255,.08);border-radius:24px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.35)}
.rbsp-zone-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:18px;background:#0b0f19}
.rbsp-zone-card{border:1px solid rgba(255,255,255,.12);background:#030712;color:#fff;border-radius:20px;padding:16px;text-align:left;cursor:pointer;transition:.2s}
.rbsp-zone-card:hover{transform:translateY(-2px);border-color:rgba(56,189,248,.55)}
.rbsp-zone-card.selected{border-color:#38bdf8;box-shadow:0 0 0 3px rgba(56,189,248,.25)}
.rbsp-zone-card.soldout{opacity:.45;cursor:not-allowed}
.rbsp-zone-top{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:14px}
.rbsp-zone-top strong{font-size:22px;letter-spacing:.04em}
.rbsp-zone-top span{font-size:13px;color:#bae6fd;background:rgba(56,189,248,.12);border:1px solid rgba(56,189,248,.22);padding:4px 8px;border-radius:999px}
.rbsp-zone-price{display:grid;gap:6px;color:#d1d5db;margin-bottom:12px}
.rbsp-zone-price b{color:#fff}
.rbsp-zone-card small{color:#9ca3af}
.rbsp-booking-sidebar{position:sticky;top:18px;padding-bottom:18px}
.rbsp-booking-sidebar h3{margin:0;padding:18px;border-bottom:1px solid rgba(255,255,255,.08);font-size:24px}
.rbsp-booking-sidebar .rbsp-btn.primary{margin:0 18px;width:calc(100% - 36px)}
@media (max-width: 980px){
  .rbsp-zone-layout{grid-template-columns:1fr}
  .rbsp-booking-sidebar{position:relative;top:auto}
}
@media (max-width: 640px){
  .rbsp-zone-grid{grid-template-columns:1fr}
}
.rbsp-grid-full{grid-column:1 / -1}.rbsp-grid label textarea{width:100%;background:#030712;border:1px solid rgba(255,255,255,.12);color:#fff;border-radius:14px;padding:12px;resize:vertical;font-family:inherit}

/* Loading skeleton */
.rbsp-zone-skeleton-card,.rbsp-skeleton-box,.rbsp-skeleton-input,.rbsp-skeleton-button{position:relative;overflow:hidden;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.08);border-radius:20px}
.rbsp-zone-skeleton-card{min-height:158px;padding:16px}
.rbsp-skeleton-row{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:22px}
.rbsp-skeleton-line{position:relative;overflow:hidden;height:14px;width:100%;border-radius:999px;background:rgba(255,255,255,.1)}
.rbsp-skeleton-line.rbsp-skeleton-title{width:42%;height:24px}.rbsp-skeleton-line.rbsp-skeleton-pill{width:82px;height:26px}.rbsp-skeleton-line.short{width:62%;margin-top:12px}.rbsp-skeleton-line.mini{width:38%;height:12px;margin-top:18px}
.rbsp-skeleton-input{height:45px;border-radius:14px}.rbsp-skeleton-input.tall{height:86px}.rbsp-skeleton-button{height:48px;margin:0 18px;border-radius:16px}.rbsp-skeleton-box{height:58px;margin:16px 18px 0}
.rbsp-zone-skeleton-card::after,.rbsp-skeleton-line::after,.rbsp-skeleton-box::after,.rbsp-skeleton-input::after,.rbsp-skeleton-button::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.16),transparent);animation:rbsp-shimmer 1.25s infinite}
.rbsp-zone-card.is-refreshing{opacity:.62;cursor:wait}.rbsp-zone-main.is-loading .rbsp-zone-grid{pointer-events:none}.rbsp-controls input:disabled,.rbsp-controls select:disabled,.rbsp-btn[disabled]{cursor:not-allowed}
@keyframes rbsp-shimmer{100%{transform:translateX(100%)}}
@media (prefers-reduced-motion: reduce){.rbsp-zone-skeleton-card::after,.rbsp-skeleton-line::after,.rbsp-skeleton-box::after,.rbsp-skeleton-input::after,.rbsp-skeleton-button::after{animation:none}}

/* UX refresh: booking page */
.rbsp-zone-layout{gap:22px}
.rbsp-zone-main,.rbsp-booking-sidebar{background:linear-gradient(180deg,#111827,#0b1220);border-color:rgba(148,163,184,.18)}
.rbsp-header{padding:22px;background:radial-gradient(circle at top left,rgba(56,189,248,.18),transparent 38%)}
.rbsp-header h2{font-size:30px;font-weight:800;letter-spacing:-.03em}.rbsp-header p{max-width:680px;line-height:1.55}
.rbsp-controls{background:rgba(3,7,18,.58);border:1px solid rgba(255,255,255,.08);border-radius:18px;padding:8px}.rbsp-controls input,.rbsp-controls select{min-height:44px}.rbsp-controls .rbsp-btn{min-height:44px}
.rbsp-section-label{display:flex;align-items:center;gap:9px;padding:16px 18px 0;color:#cbd5e1;font-weight:800;font-size:14px}.rbsp-section-label span{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:999px;background:#38bdf8;color:#082f49;font-weight:900}.rbsp-section-label.sidebar-label{padding:16px 18px;border-bottom:1px solid rgba(255,255,255,.08)}
.rbsp-zone-grid{padding-top:14px}.rbsp-zone-card{min-height:154px;background:linear-gradient(180deg,rgba(15,23,42,.96),rgba(2,6,23,.96));border-color:rgba(148,163,184,.2);box-shadow:0 14px 35px rgba(0,0,0,.22)}.rbsp-zone-card:hover{box-shadow:0 18px 42px rgba(14,165,233,.16)}.rbsp-zone-card.selected{background:linear-gradient(180deg,rgba(8,47,73,.98),rgba(2,6,23,.98))}.rbsp-zone-top strong{font-size:24px}.rbsp-zone-price{grid-template-columns:1fr 1fr;gap:10px}.rbsp-zone-price div{background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:10px}.rbsp-zone-price b{display:block;font-size:18px;margin-top:3px}
.rbsp-booking-sidebar{overflow:hidden}.rbsp-booking-sidebar h3{font-weight:850;letter-spacing:-.02em}.rbsp-summary-box{background:linear-gradient(135deg,rgba(56,189,248,.18),rgba(34,197,94,.10));border-color:rgba(56,189,248,.3)}.rbsp-grid{gap:14px}.rbsp-grid label span{font-weight:750;color:#e5e7eb}.rbsp-grid label input,.rbsp-grid label select,.rbsp-grid label textarea{min-height:46px;font-size:16px;outline:none}.rbsp-grid label input:focus,.rbsp-grid label select:focus,.rbsp-grid label textarea:focus,.rbsp-controls input:focus,.rbsp-controls select:focus{border-color:#38bdf8;box-shadow:0 0 0 3px rgba(56,189,248,.18)}.rbsp-total strong{color:#fff}.rbsp-info{color:#dbeafe;background:rgba(37,99,235,.16);border-color:rgba(96,165,250,.28)}.rbsp-btn.primary{min-height:52px;font-size:16px;background:linear-gradient(135deg,#38bdf8,#22c55e);color:#031827;box-shadow:0 14px 35px rgba(34,197,94,.18)}

@media (max-width: 760px){
  #rbsp-app{background:#020617;color:#fff}
  .rbsp-wrap{padding:0;max-width:none}
  .rbsp-zone-layout{display:flex;flex-direction:column;gap:12px}
  .rbsp-zone-main,.rbsp-booking-sidebar{border-radius:0;border-left:0;border-right:0;box-shadow:none}
  .rbsp-header{padding:18px 14px}.rbsp-header h2{font-size:24px}.rbsp-header p{font-size:13px;line-height:1.45}
  .rbsp-controls{width:100%;display:grid;grid-template-columns:1fr 104px;gap:8px;padding:8px;border-radius:16px}.rbsp-controls input{grid-column:1 / -1;width:100%;box-sizing:border-box}.rbsp-controls select,.rbsp-controls button{width:100%}
  .rbsp-section-label{padding:14px 14px 0}.rbsp-section-label.sidebar-label{padding:14px}
  .rbsp-zone-grid{display:flex;overflow-x:auto;gap:12px;padding:12px 14px 16px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.rbsp-zone-card{min-width:82%;scroll-snap-align:start;min-height:168px;padding:15px}.rbsp-zone-card:hover{transform:none}.rbsp-zone-top{align-items:flex-start}.rbsp-zone-top strong{font-size:22px}.rbsp-zone-top span{white-space:nowrap}.rbsp-zone-price{grid-template-columns:1fr 1fr}
  .rbsp-booking-sidebar{position:relative;top:auto;padding-bottom:92px}.rbsp-booking-sidebar h3{font-size:22px;padding:16px 14px}.rbsp-summary-box{margin:14px;padding:14px;display:grid;grid-template-columns:1fr 1fr}.rbsp-grid{grid-template-columns:1fr;padding:14px}.rbsp-grid label input,.rbsp-grid label select,.rbsp-grid label textarea{width:100%;box-sizing:border-box}.rbsp-total{padding:4px 14px 14px}.rbsp-total div{font-size:16px}.rbsp-total strong{font-size:24px}.rbsp-booking-sidebar .rbsp-btn.primary{position:fixed;left:12px;right:12px;bottom:12px;width:auto;margin:0;z-index:30;border-radius:18px;box-shadow:0 18px 45px rgba(0,0,0,.45)}
}

/* Mobile overflow hardening */
#rbsp-app,
#rbsp-app *{
  box-sizing:border-box;
}
#rbsp-app{
  width:100%;
  max-width:100%;
  overflow-x:hidden;
}
.rbsp-wrap,
.rbsp-shell,
.rbsp-zone-layout,
.rbsp-zone-main,
.rbsp-booking-sidebar{
  max-width:100%;
}
@media (max-width:760px){
  .rbsp-zone-grid{
    display:grid;
    grid-template-columns:1fr;
    overflow-x:hidden;
    gap:12px;
    padding:12px 14px 16px;
    scroll-snap-type:none;
  }
  .rbsp-zone-card{
    width:100%;
    min-width:0;
    max-width:100%;
    scroll-snap-align:none;
  }
  .rbsp-zone-price{
    grid-template-columns:1fr;
  }
  .rbsp-controls{
    grid-template-columns:1fr;
  }
  .rbsp-controls input,
  .rbsp-controls select,
  .rbsp-controls button,
  .rbsp-grid label input,
  .rbsp-grid label select,
  .rbsp-grid label textarea{
    min-width:0;
    max-width:100%;
  }
  .rbsp-booking-sidebar .rbsp-btn.primary{
    max-width:calc(100vw - 24px);
  }
}


/* Payment success modal */
.rbsp-modal-backdrop{position:fixed;inset:0;z-index:99999;background:rgba(2,6,23,.72);display:flex;align-items:center;justify-content:center;padding:18px;backdrop-filter:blur(6px)}
.rbsp-confirm-modal{position:relative;width:min(540px,100%);max-height:calc(100vh - 36px);overflow:auto;background:#fff;color:#111827;border-radius:26px;padding:24px;box-shadow:0 28px 80px rgba(0,0,0,.45)}
.rbsp-modal-close{position:absolute;right:14px;top:12px;border:0;background:#f3f4f6;color:#111827;border-radius:999px;width:34px;height:34px;font-size:24px;line-height:1;cursor:pointer}
.rbsp-confirm-icon{width:58px;height:58px;border-radius:999px;background:#22c55e;color:#052e16;display:flex;align-items:center;justify-content:center;font-size:34px;font-weight:900;margin-bottom:14px}
.rbsp-confirm-modal h3{margin:0 38px 6px 0;font-size:26px;letter-spacing:-.03em;color:#111827}.rbsp-confirm-sub{margin:0 0 14px;color:#4b5563}.rbsp-confirm-code{display:inline-flex;background:#eff6ff;border:1px solid #bfdbfe;color:#1e3a8a;border-radius:999px;padding:8px 12px;font-weight:900;margin:4px 0 16px}.rbsp-confirm-list{display:grid;gap:0;margin:0 0 18px;border:1px solid #e5e7eb;border-radius:18px;overflow:hidden}.rbsp-confirm-list div{display:grid;grid-template-columns:140px 1fr;gap:12px;padding:11px 13px;border-bottom:1px solid #e5e7eb}.rbsp-confirm-list div:last-child{border-bottom:0}.rbsp-confirm-list dt{color:#6b7280;font-weight:700}.rbsp-confirm-list dd{margin:0;color:#111827;font-weight:750;word-break:break-word}.rbsp-confirm-modal .rbsp-btn.primary{width:100%;margin:0;position:static;max-width:none}
@media(max-width:640px){.rbsp-modal-backdrop{align-items:flex-end;padding:0}.rbsp-confirm-modal{width:100%;max-height:92vh;border-radius:26px 26px 0 0;padding:20px 16px 16px}.rbsp-confirm-modal h3{font-size:23px}.rbsp-confirm-list div{grid-template-columns:1fr;gap:3px}.rbsp-confirm-modal .rbsp-btn.primary{min-height:52px}}

/* Mobile selected-zone scroll focus */
.rbsp-focus-pulse{animation:rbsp-focus-pulse .85s ease-out}
@keyframes rbsp-focus-pulse{0%{box-shadow:0 0 0 0 rgba(56,189,248,.42)}100%{box-shadow:0 0 0 16px rgba(56,189,248,0)}}
@media (prefers-reduced-motion: reduce){.rbsp-focus-pulse{animation:none}}


/* Corporate Identity variables */
#rbsp-app{
  --rbsp-ci-background:#F2F0E4;
  --rbsp-ci-primary:#F28705;
  --rbsp-ci-secondary:#F25C05;
  --rbsp-ci-accent:#F24405;
  --rbsp-ci-text-dark:#0A0A0A;
}
#rbsp-app{background:var(--rbsp-ci-background);color:var(--rbsp-ci-text-dark)}
.rbsp-zone-main,.rbsp-booking-sidebar,.rbsp-shell{background:var(--rbsp-ci-text-dark)!important;border-color:rgba(242,240,228,.18)}
.rbsp-header{background:linear-gradient(135deg,var(--rbsp-ci-text-dark),rgba(10,10,10,.92))!important}
.rbsp-header h2,.rbsp-booking-sidebar h3,.rbsp-zone-top strong,.rbsp-total strong{color:#fff}
.rbsp-header p,.rbsp-zone-card small,.rbsp-empty{color:rgba(242,240,228,.72)}
.rbsp-zone-grid{background:rgba(10,10,10,.96)}
.rbsp-zone-card{background:linear-gradient(180deg,rgba(10,10,10,.98),rgba(10,10,10,.92));border-color:rgba(242,135,5,.25);color:#fff}
.rbsp-zone-card:hover{border-color:var(--rbsp-ci-primary);box-shadow:0 18px 42px rgba(242,135,5,.18)}
.rbsp-zone-card.selected{border-color:var(--rbsp-ci-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--rbsp-ci-primary) 35%, transparent);background:linear-gradient(180deg,rgba(242,92,5,.20),rgba(10,10,10,.98))}
.rbsp-zone-top span{color:var(--rbsp-ci-background);background:rgba(242,135,5,.18);border-color:rgba(242,135,5,.38)}
.rbsp-section-label{color:var(--rbsp-ci-background)}
.rbsp-section-label span{background:var(--rbsp-ci-primary);color:var(--rbsp-ci-text-dark)}
.rbsp-btn.primary{background:linear-gradient(135deg,var(--rbsp-ci-primary),var(--rbsp-ci-accent))!important;color:var(--rbsp-ci-text-dark)!important;box-shadow:0 14px 35px rgba(242,68,5,.22)}
.rbsp-btn.ghost{background:rgba(242,240,228,.10);color:var(--rbsp-ci-background)}
.rbsp-controls{background:rgba(10,10,10,.72);border-color:rgba(242,240,228,.16)}
.rbsp-controls input,.rbsp-controls select,.rbsp-grid label input,.rbsp-grid label select,.rbsp-grid label textarea{background:rgba(10,10,10,.92);border-color:rgba(242,240,228,.18);color:#fff}
.rbsp-controls input:focus,.rbsp-controls select:focus,.rbsp-grid label input:focus,.rbsp-grid label select:focus,.rbsp-grid label textarea:focus{border-color:var(--rbsp-ci-primary);box-shadow:0 0 0 3px rgba(242,135,5,.22)}
.rbsp-summary-box{background:linear-gradient(135deg,rgba(242,135,5,.18),rgba(242,68,5,.10));border-color:rgba(242,135,5,.34)}
.rbsp-info{color:var(--rbsp-ci-background);background:rgba(242,135,5,.13);border-color:rgba(242,135,5,.28)}
.rbsp-error{color:#fff;background:rgba(242,68,5,.18);border-color:rgba(242,68,5,.36)}
.rbsp-confirm-icon{background:var(--rbsp-ci-primary);color:var(--rbsp-ci-text-dark)}
.rbsp-confirm-code{background:var(--rbsp-ci-background);border-color:rgba(242,135,5,.35);color:var(--rbsp-ci-text-dark)}
@media(max-width:760px){#rbsp-app{background:var(--rbsp-ci-background)}}


/* UI field normalization */
.rbsp-booking-form select,
.rbsp-booking-form input,
.rbsp-booking-form textarea{
  height:56px!important;
  min-height:56px!important;
  border-radius:14px;
  padding:0 16px;
  box-sizing:border-box;
  font-size:16px;
  color:#ffffff!important;
  background:#111827!important;
  border:1px solid rgba(255,255,255,.12)!important;
  appearance:none;
}

.rbsp-booking-form select option{
  color:#ffffff;
  background:#111827;
}

.rbsp-booking-form label{
  display:flex;
  flex-direction:column;
  gap:8px;
}

.rbsp-booking-form .rbsp-grid{
  align-items:stretch;
}


/* v0.9.17 restaurant hours + time carousel */
.rbsp-controls-stack{align-items:stretch;min-width:min(100%,560px)}
.rbsp-controls-stack input[type="date"]{flex:0 0 170px}
.rbsp-time-carousel-wrap{display:flex;align-items:center;gap:8px;min-width:0;flex:1}
.rbsp-time-carousel{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:none;max-width:100%;padding:2px}
.rbsp-time-carousel::-webkit-scrollbar{display:none}
.rbsp-time-chip{border:1px solid rgba(242,240,228,.18);background:rgba(10,10,10,.92);color:#fff;border-radius:999px;min-height:44px;min-width:84px;padding:0 16px;font-weight:800;cursor:pointer;scroll-snap-align:center;transition:.18s ease;white-space:nowrap}
.rbsp-time-chip:hover{border-color:var(--rbsp-ci-primary);transform:translateY(-1px)}
.rbsp-time-chip.active{background:var(--rbsp-ci-primary);border-color:var(--rbsp-ci-primary);color:#0A0A0A;box-shadow:0 10px 24px rgba(242,135,5,.22)}
.rbsp-time-chip:disabled,.rbsp-time-nav:disabled{opacity:.5;cursor:not-allowed;transform:none}
.rbsp-time-nav{border:1px solid rgba(242,240,228,.18);background:rgba(10,10,10,.9);color:#fff;border-radius:999px;width:42px;height:42px;display:flex;align-items:center;justify-content:center;font-size:26px;line-height:1;cursor:pointer;flex:0 0 42px}
.rbsp-time-nav:hover{border-color:var(--rbsp-ci-primary);color:var(--rbsp-ci-primary)}
@media(max-width:760px){
  .rbsp-controls-stack{grid-template-columns:1fr!important;width:100%;padding:10px;gap:10px}
  .rbsp-controls-stack input[type="date"]{grid-column:1;width:100%;flex:auto;min-height:46px}
  .rbsp-time-carousel-wrap{width:100%;min-width:0}
  .rbsp-time-carousel{flex:1;max-width:calc(100vw - 112px)}
  .rbsp-time-chip{min-width:78px;min-height:42px;padding:0 14px}
  .rbsp-time-nav{width:38px;height:38px;flex-basis:38px}
}

/* v0.9.24 payment method selector + Stripe card element */
.rbsp-payment-methods{display:flex;flex-direction:column;gap:10px}
.rbsp-payment-methods>span{font-size:14px;color:rgba(255,255,255,.82);font-weight:700}
.rbsp-payment-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.rbsp-payment-option{display:flex;align-items:center;gap:8px;min-height:50px;padding:12px 14px;border:1px solid rgba(242,240,228,.16);border-radius:14px;background:rgba(10,10,10,.74);color:#fff;cursor:pointer;transition:.18s ease}
.rbsp-payment-option input{accent-color:var(--rbsp-ci-primary)}
.rbsp-payment-option.active{border-color:var(--rbsp-ci-primary);box-shadow:0 0 0 2px rgba(242,135,5,.18);background:rgba(242,135,5,.14)}
.rbsp-card-element{min-height:50px;padding:15px 14px;border:1px solid rgba(242,240,228,.18);border-radius:14px;background:rgba(10,10,10,.92)}
.rbsp-card-note{margin:0;color:rgba(255,255,255,.68);font-size:12px;line-height:1.5}
@media(max-width:760px){.rbsp-payment-options{grid-template-columns:1fr}.rbsp-payment-option{min-height:48px}}


/* v0.9.29 booking price text + child age note */
.rbsp-summary-box,
.rbsp-summary-box div,
.rbsp-total,
.rbsp-total span,
.rbsp-total strong{
  color:#ffffff!important;
}
.rbsp-child-age-note{
  display:block;
  margin-top:8px;
  color:rgba(255,255,255,.72);
  font-size:12px;
  line-height:1.45;
}
.rbsp-grid label:has(#rbsp-child){
  justify-content:flex-start;
}

/* v1.0.0 responsive refinement */
html:has(#rbsp-app), body:has(#rbsp-app){overflow-x:hidden;}
#rbsp-app{isolation:isolate;}
.rbsp-wrap{width:100%;}
.rbsp-zone-layout{width:100%;}
.rbsp-zone-main,.rbsp-booking-sidebar{min-width:0;}
.rbsp-zone-card,.rbsp-booking-sidebar,.rbsp-zone-main{overflow-wrap:anywhere;}
.rbsp-header{align-items:flex-start;}
.rbsp-header > div:first-child{min-width:0;}
.rbsp-controls-stack{width:100%;}
.rbsp-section-label{padding:14px 18px 0;margin:0;color:#fff;font-weight:800;gap:10px;}
.rbsp-section-label span{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;font-size:14px;}
.rbsp-booking-sidebar .sidebar-label{padding:18px 18px 0;}
.rbsp-booking-sidebar h3{padding-top:12px;}
.rbsp-grid label span{font-weight:750;}
.rbsp-grid label input,.rbsp-grid label select,.rbsp-grid label textarea{font-size:16px;line-height:1.2;outline:none;}
.rbsp-grid label textarea{min-height:96px;padding-top:14px;padding-bottom:14px;line-height:1.45;}
.rbsp-payment-option strong{min-width:0;line-height:1.25;}
.rbsp-time-empty{display:flex;align-items:center;min-height:42px;color:rgba(255,255,255,.72);font-weight:700;}

@media (max-width:1100px){
  .rbsp-zone-layout{grid-template-columns:minmax(0,1fr) 360px;gap:16px;}
  .rbsp-zone-grid{gap:12px;padding:16px;}
  .rbsp-zone-card{padding:14px;}
  .rbsp-zone-top strong{font-size:20px;}
}

@media (max-width:900px){
  .rbsp-wrap{padding:10px;}
  .rbsp-zone-layout{display:flex;flex-direction:column;gap:14px;}
  .rbsp-booking-sidebar{position:static;width:100%;border-radius:22px;}
  .rbsp-zone-main{border-radius:22px;}
  .rbsp-header{display:grid;grid-template-columns:1fr;gap:14px;padding:18px;}
  .rbsp-header h2{font-size:26px;line-height:1.08;}
  .rbsp-header p{font-size:14px;line-height:1.5;}
  .rbsp-controls{width:100%;}
  .rbsp-controls-stack{display:grid;grid-template-columns:1fr!important;gap:10px;}
  .rbsp-controls-stack input[type="date"]{width:100%;min-width:0;}
  .rbsp-time-carousel-wrap{display:grid;grid-template-columns:40px minmax(0,1fr) 40px;width:100%;gap:8px;}
  .rbsp-time-carousel{max-width:100%!important;width:100%;}
  .rbsp-time-nav{width:40px;height:40px;flex:0 0 40px;}
  .rbsp-zone-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:14px;}
  .rbsp-booking-sidebar .rbsp-btn.primary{position:sticky;bottom:10px;left:auto;right:auto;width:calc(100% - 28px);max-width:none;margin:12px 14px 0;z-index:5;min-height:54px;}
  .rbsp-total{padding-bottom:4px;}
}

@media (max-width:640px){
  .rbsp-wrap{padding:0;background:var(--rbsp-ci-background);}
  .rbsp-zone-layout{gap:10px;}
  .rbsp-zone-main,.rbsp-booking-sidebar{border-left:0;border-right:0;border-radius:0;box-shadow:none;}
  .rbsp-header{padding:16px 14px 14px;border-bottom:1px solid rgba(255,255,255,.08);}
  .rbsp-header h2{font-size:23px;letter-spacing:-.035em;}
  .rbsp-header p{font-size:13px;margin-top:7px;}
  .rbsp-controls{border-radius:16px;padding:8px;background:rgba(10,10,10,.68);}
  .rbsp-controls input{height:46px;min-height:46px;border-radius:12px;font-size:15px;}
  .rbsp-time-carousel-wrap{grid-template-columns:36px minmax(0,1fr) 36px;gap:6px;}
  .rbsp-time-nav{width:36px;height:36px;flex-basis:36px;font-size:22px;}
  .rbsp-time-chip{min-width:72px;min-height:38px;padding:0 12px;font-size:14px;}
  .rbsp-section-label{padding:12px 14px 0;font-size:14px;}
  .rbsp-section-label span{width:24px;height:24px;font-size:12px;}
  .rbsp-zone-grid{grid-template-columns:1fr!important;padding:12px 14px 14px;gap:10px;}
  .rbsp-zone-card{border-radius:18px;padding:14px;}
  .rbsp-zone-top{align-items:flex-start;margin-bottom:12px;}
  .rbsp-zone-top strong{font-size:19px;line-height:1.1;}
  .rbsp-zone-top span{font-size:12px;white-space:nowrap;}
  .rbsp-zone-price{grid-template-columns:1fr 1fr;gap:8px;font-size:13px;}
  .rbsp-zone-card small{font-size:12px;line-height:1.4;}
  .rbsp-booking-sidebar .sidebar-label{padding:14px 14px 0;}
  .rbsp-booking-sidebar h3{font-size:20px;padding:12px 14px;border-bottom:0;}
  .rbsp-summary-box{margin:0 14px 12px;padding:12px;gap:10px;border-radius:16px;font-size:13px;}
  .rbsp-grid{display:grid;grid-template-columns:1fr!important;gap:10px;padding:0 14px 12px;}
  .rbsp-grid label{gap:6px;}
  .rbsp-grid label span,.rbsp-payment-methods>span{font-size:13px;}
  .rbsp-grid label input,.rbsp-grid label select{height:50px!important;min-height:50px!important;border-radius:13px;padding:0 14px;font-size:16px;}
  .rbsp-grid label textarea{min-height:90px!important;border-radius:13px;padding:12px 14px;font-size:16px;}
  .rbsp-payment-options{grid-template-columns:1fr!important;gap:8px;}
  .rbsp-payment-option{min-height:46px;padding:10px 12px;border-radius:13px;}
  .rbsp-card-note,.rbsp-child-age-note{font-size:12px;line-height:1.45;}
  .rbsp-total{padding:0 14px 10px;}
  .rbsp-total div{font-size:16px;}
  .rbsp-total strong{font-size:21px;}
  .rbsp-info,.rbsp-error{font-size:13px;line-height:1.45;border-radius:13px;padding:10px;margin-top:10px;}
  .rbsp-booking-sidebar .rbsp-btn.primary{width:calc(100% - 28px);margin:8px 14px 14px;min-height:52px;border-radius:16px;font-size:15px;}
  .rbsp-empty{padding:14px;font-size:14px;}
  .rbsp-confirm-modal{padding-bottom:calc(16px + env(safe-area-inset-bottom));}
}

@media (max-width:380px){
  .rbsp-header h2{font-size:21px;}
  .rbsp-zone-price{grid-template-columns:1fr;}
  .rbsp-summary-box{display:grid;grid-template-columns:1fr;}
  .rbsp-time-chip{min-width:68px;padding:0 10px;}
}

/* v1.0.0 validation hardening: keep payment button visibly inactive until booking form is complete. */
.rbsp-btn.primary.is-disabled,
.rbsp-btn.primary:disabled,
.rbsp-btn.primary[aria-disabled="true"]{
  opacity:.45!important;
  cursor:not-allowed!important;
  filter:grayscale(.2);
  box-shadow:none!important;
}
.rbsp-btn.primary.is-disabled:hover,
.rbsp-btn.primary:disabled:hover{
  transform:none!important;
}


/* Free booking display for zone cards and booking header */
.rbsp-zone-price.is-free-booking {
  display: block;
}
.rbsp-zone-free-booking {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 5px 10px;
  border-radius: 999px;
  background: #dcfce7;
  color: #166534;
  font-weight: 700;
  line-height: 1;
}
.rbsp-header-free-badge {
  display: inline-flex;
  align-items: center;
  margin-left: 8px;
  padding: 5px 9px;
  border-radius: 999px;
  background: #dcfce7;
  color: #166534;
  font-size: 12px;
  font-weight: 700;
  vertical-align: middle;
  white-space: nowrap;
}
@media (max-width: 640px) {
  .rbsp-header-free-badge {
    margin: 8px 0 0;
    width: fit-content;
  }
}
