.booking-stepper{--booking-accent: rgba(148, 163, 184, .8);--booking-accent-strong: rgba(148, 163, 184, .95);--booking-accent-soft: rgba(148, 163, 184, .18);--booking-accent-softer: rgba(148, 163, 184, .12);--booking-accent-solid: #94a3b8;--booking-accent-deep: #64748b;--booking-accent-text: #e2e8f0;min-height:100vh;background:radial-gradient(circle at top left,rgba(40,87,89,.24),transparent 34%),radial-gradient(circle at top right,rgba(40,87,89,.24),transparent 32%),linear-gradient(90deg,#08111f,#0f172a 46%,#111827);color:#f8fafc}.booking-shell{max-width:1180px;margin:0 auto;padding:28px 16px 40px;box-sizing:border-box}.booking-shell--centered{min-height:100vh;display:flex;align-items:center;justify-content:center}.booking-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px}.booking-hero__eyebrow,.booking-panel__eyebrow,.booking-sidebar-card__label,.booking-inline-card__label,.booking-helper-card__label{display:inline-block;text-transform:uppercase;letter-spacing:.12em;font-size:15px;color:var(--booking-accent-solid)}.booking-hero__title{margin:10px 0 8px;font-size:clamp(32px,5vw,52px);line-height:.98;max-width:12ch}.booking-hero__subtitle{margin:0;max-width:52ch;color:#cbd5e1;line-height:1.6}.booking-hero__status{margin-top:16px;display:inline-flex;align-items:center;gap:8px;max-width:min(100%,56ch);padding:10px 14px;border:1px solid rgba(148,163,184,.22);border-radius:16px;background:#0f172a6b;color:#e2e8f0;line-height:1.5;font-size:14px}.booking-ghost-button,.booking-secondary-button,.booking-primary-button{border-radius:999px;padding:12px 20px;font-size:15px;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,opacity .2s ease}.booking-ghost-button{border:1px solid rgba(148,163,184,.28);background:#0f172a73;color:#e2e8f0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.booking-ghost-button:hover,.booking-secondary-button:hover,.booking-primary-button:hover{transform:translateY(-1px)}.booking-progress{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:24px;min-width:0}.booking-progress__step{border:1px solid rgba(148,163,184,.18);background:#08101ec2;color:inherit;border-radius:24px;padding:14px;text-align:left;display:flex;gap:12px;align-items:flex-start;transition:border-color .2s ease,background .2s ease,transform .2s ease;min-width:0}.booking-progress__step:disabled{opacity:.52;cursor:not-allowed}.booking-progress__step:not(:disabled):hover{transform:translateY(-1px);border-color:#f8fafc33}.booking-progress__step.is-active{border-color:var(--booking-accent);background:linear-gradient(135deg,#94a3b833,#0f172ad9)}.booking-progress__step.is-completed{border-color:#38bdf875}.booking-progress__index{width:34px;height:34px;flex:0 0 34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#94a3b829;font-weight:700}.booking-progress__step.is-active .booking-progress__index,.booking-progress__step.is-completed .booking-progress__index{background:var(--booking-accent-strong);color:#0f172a}.booking-progress__meta{display:flex;flex-direction:column;gap:4px}.booking-progress__title{font-weight:700;font-size:14px}.booking-progress__caption{color:#94a3b8;font-size:12px}.booking-layout{min-width:0}.booking-panel,.booking-sidebar-card,.booking-hall-card{border:1px solid rgba(148,163,184,.16);background:#050c19bf;box-shadow:0 24px 70px #02061759;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.booking-panel,.booking-sidebar-card{border-radius:30px}.booking-panel{padding:24px;min-width:0}.booking-panel--loading{padding:32px;text-align:center}.booking-panel__header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:28px}.booking-panel__header h2{margin:10px 0 0;font-size:clamp(24px,3vw,34px)}.booking-panel__header p{margin:26px 0 0;max-width:22ch;color:#94a3b8;text-align:right;line-height:1.5}.booking-step-content{display:grid;gap:20px;min-width:0}.booking-choice-grid,.booking-form-grid,.booking-confirm-grid,.booking-stats,.booking-table-list{display:grid;gap:14px}.booking-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-choice{border-radius:24px;border:1px solid rgba(148,163,184,.22);padding:20px;background:linear-gradient(180deg,#0f172af5,#0f172ab8);color:inherit;text-align:left;display:grid;gap:8px;min-height:180px;cursor:pointer}.booking-choice.is-selected{border-color:var(--booking-accent);box-shadow:inset 0 0 0 1px #94a3b847}.booking-choice__icon{color:var(--booking-accent-solid);font-weight:700}.booking-choice strong,.booking-inline-card strong,.booking-helper-card strong,.booking-confirm-card strong,.booking-stat strong{font-size:20px}.booking-choice span,.booking-inline-card span,.booking-helper-card span,.booking-confirm-card small,.booking-stat span,.booking-sidebar-card p{color:#cbd5e1}.booking-inline-card,.booking-helper-card,.booking-stat,.booking-confirm-card{border-radius:22px;border:1px solid rgba(148,163,184,.14);background:#0f172a8a;padding:18px;display:grid;gap:8px}.booking-inline-card--accent{background:linear-gradient(135deg,var(--booking-accent-soft),rgba(15,23,42,.72))}.booking-inline-card__action{width:fit-content;border:1px solid rgba(148,163,184,.28);border-radius:999px;background:#0f172ac7;color:#f8fafc;padding:10px 14px;font:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:transform .2s ease,border-color .2s ease,opacity .2s ease}.booking-inline-card__action:hover:not(:disabled){transform:translateY(-1px);border-color:#f8fafc47}.booking-inline-card__action:disabled{opacity:.6;cursor:not-allowed}.booking-inline-card__hint{color:#94a3b8;line-height:1.5}.booking-helper-card--warning{background:linear-gradient(135deg,var(--booking-accent-softer),rgba(15,23,42,.74))}.booking-form-grid--double{grid-template-columns:minmax(0,1.2fr) minmax(220px,.8fr)}.booking-form-grid--triple{grid-template-columns:repeat(3,minmax(0,1fr))}.booking-field{display:grid;gap:10px}.booking-field span{font-size:14px;font-weight:600;color:#e2e8f0}.booking-field input,.booking-field select{width:100%;box-sizing:border-box;border-radius:18px;border:1px solid rgba(148,163,184,.26);background:#0f172ac7;color:#f8fafc;padding:14px 16px;font:inherit;outline:none}.booking-field input:focus,.booking-field select:focus{border-color:var(--booking-accent);box-shadow:0 0 0 3px #94a3b829}.booking-field select:disabled{opacity:.55}.booking-field em{font-style:normal;color:#fda4af;font-size:13px}.booking-calendar{border-radius:24px;border:1px solid rgba(148,163,184,.18);background:#0f172a94;padding:16px;display:grid;gap:12px}.booking-calendar__header{display:grid;grid-template-columns:40px minmax(0,1fr) 40px;align-items:center;gap:12px}.booking-calendar__heading{display:grid;gap:4px;text-align:center}.booking-calendar__heading strong{font-size:16px}.booking-calendar__heading span{color:#cbd5e1;font-size:13px}.booking-calendar__nav,.booking-calendar__day{border:1px solid rgba(148,163,184,.2);background:#0f172ac2;color:#f8fafc;font:inherit;outline:none;transition:border-color .2s ease,background-color .2s ease,transform .2s ease,box-shadow .2s ease}.booking-calendar__nav{width:40px;height:40px;border-radius:14px;display:grid;place-items:center;cursor:pointer}.booking-calendar__weekdays,.booking-calendar__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.booking-calendar__weekdays span{text-align:center;color:#94a3b8;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.booking-calendar__placeholder,.booking-calendar__day{aspect-ratio:1}.booking-calendar__day{border-radius:16px;min-height:48px;padding:0;display:grid;place-items:center;cursor:pointer}.booking-calendar__day-number{font-size:15px;font-weight:600}.booking-calendar__nav:hover:not(:disabled),.booking-calendar__day:hover:not(:disabled){border-color:var(--booking-accent);background:#1e293beb;transform:translateY(-1px)}.booking-calendar__nav:focus-visible,.booking-calendar__day:focus-visible{border-color:var(--booking-accent);box-shadow:0 0 0 3px #94a3b829}.booking-calendar__day.is-selected{border-color:var(--booking-accent-strong);background:linear-gradient(135deg,#94a3b852,#1e293bf0);box-shadow:inset 0 0 0 1px #f8fafc14}.booking-calendar__day.is-today:not(.is-selected){border-color:#94a3b885}.booking-calendar__nav:disabled,.booking-calendar__day:disabled{opacity:.35;cursor:not-allowed;transform:none}.booking-error-banner,.booking-empty-state{border-radius:20px;padding:14px 16px;border:1px solid rgba(248,113,113,.34);background:#7f1d1d29;color:#fecaca}.booking-empty-state{border-color:#94a3b82e;background:#0f172a7a;color:#cbd5e1}.booking-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.booking-hall-card{border-radius:28px;padding:18px}.booking-hall-scroll{width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.booking-hall-scroll::-webkit-scrollbar{height:6px}.booking-hall-scroll::-webkit-scrollbar-thumb{background:#94a3b847;border-radius:999px}.booking-hall-legend{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:16px;color:#cbd5e1;font-size:13px}.booking-hall-legend-item{display:inline-flex;align-items:center;gap:8px}.booking-hall-legend-dot{width:10px;height:10px;border-radius:50%}.booking-hall-legend-dot--available{background:#38bdf8}.booking-hall-legend-dot--selected{background:var(--booking-accent-solid)}.booking-hall-legend-dot--occupied{background:#7f1d1d}.booking-hall{position:relative;margin:0 auto;background:linear-gradient(180deg,#0f172a33,#0f172a99),repeating-linear-gradient(90deg,rgba(148,163,184,.03),rgba(148,163,184,.03) 24px,transparent 24px,transparent 48px),#111a2d;border-radius:24px;border:1px solid rgba(148,163,184,.2);overflow:hidden;flex-shrink:0}.booking-hall-table,.booking-hall-feature{position:absolute;display:flex;align-items:center;justify-content:center;font-weight:700;color:#f8fafc}.booking-hall-table{box-sizing:border-box;border:2px solid rgba(255,255,255,.12);box-shadow:0 10px 26px #02061752;transition:transform .2s ease,background .2s ease,border-color .2s ease;padding:2px 4px;text-align:center;line-height:1;font-size:12px}.booking-hall-table__capacity{display:inline-flex;align-items:flex-end;justify-content:center;gap:2px;white-space:nowrap}.booking-hall-table__capacity-value{font-size:1.15em;font-weight:800;font-variant-numeric:tabular-nums}.booking-hall-table__capacity-label{font-size:7px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;opacity:.9;transform:translateY(-1px)}.booking-hall-table--available{background:#0ea5e940;cursor:pointer}.booking-hall-table--available:hover{transform:scale(1.04)}.booking-hall-table--selected{background:#fefeff52;border-color:var(--booking-accent)}.booking-hall-table--occupied{background:#7f1d1de0}.booking-hall-feature{background:#0f766e3d;border:1px solid rgba(94,234,212,.16);font-size:10px}.booking-hall-feature--bar{left:2%;bottom:37%;width:13%;height:40%}.booking-hall-feature--center{left:65%;bottom:25%;width:33%;height:40%}.booking-hall-feature--entry-top,.booking-hall-feature--entry-bottom{left:35%;width:30%;height:19%;border-radius:40px}.booking-hall-feature--entry-top{bottom:90%;align-items:flex-end;padding-bottom:20px}.booking-hall-feature--entry-bottom{top:90%;align-items:flex-start;padding-top:20px}.booking-table-list{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.booking-table-pill{border-radius:18px;border:1px solid rgba(148,163,184,.18);background:#0f172a9e;color:inherit;padding:14px 16px;text-align:left;display:grid;gap:6px;cursor:pointer}.booking-table-pill.is-selected{border-color:var(--booking-accent);background:#94a3b829}.booking-guest-counter{display:grid;gap:20px}.booking-guest-counter__value{text-align:center;display:grid;gap:4px}.booking-guest-counter__value strong{font-size:clamp(52px,8vw,72px);line-height:.95}.booking-guest-counter input[type=range]{width:100%;appearance:none;height:8px;border-radius:999px;outline:none}.booking-guest-counter input[type=range]::-webkit-slider-thumb{appearance:none;width:24px;height:24px;border-radius:50%;background:#e2e8f0;border:4px solid var(--booking-accent-solid);box-shadow:0 6px 18px #0f172a61}.booking-guest-counter input[type=range]::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:#e2e8f0;border:4px solid var(--booking-accent-solid);box-shadow:0 6px 18px #0f172a61}.booking-counter-actions{display:flex;justify-content:center;gap:14px}.booking-counter-actions button{width:56px;height:56px;border-radius:18px;border:1px solid rgba(148,163,184,.24);background:#0f172acc;color:#f8fafc;font-size:28px;cursor:pointer}.booking-counter-actions button:disabled,.booking-secondary-button:disabled{opacity:.45;cursor:not-allowed}.booking-confirm-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:28px}.booking-secondary-button{border:1px solid rgba(148,163,184,.2);background:#0f172a8c;color:#e2e8f0}.booking-secondary-button--hidden{visibility:hidden;pointer-events:none}.booking-primary-button{border:none;background:linear-gradient(135deg,#94a3b8eb,#64748bf2);color:var(--booking-accent-text)}.booking-secondary-button,.booking-primary-button{width:100%}.booking-sidebar{display:grid;gap:16px;position:sticky;top:20px}.booking-sidebar-card{padding:20px}.booking-sidebar-card strong{display:block;margin:10px 0 6px;font-size:24px}.booking-summary{display:grid;gap:14px;margin:14px 0 0}.booking-summary div{display:grid;gap:4px}.booking-summary dt{color:#94a3b8;font-size:12px;text-transform:uppercase;letter-spacing:.08em}.booking-summary dd{margin:0;color:#f8fafc;line-height:1.5}@media(max-width:1024px){.booking-progress{grid-template-columns:repeat(3,minmax(0,1fr))}.booking-layout{grid-template-columns:minmax(0,1fr)}.booking-sidebar{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:840px){.booking-form-grid--double{grid-template-columns:minmax(0,1fr)}.booking-form-grid--triple{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-panel__header{flex-direction:column;margin-bottom:20px}.booking-panel__header p{margin-top:0;max-width:none;text-align:left}}@media(max-width:760px){.booking-shell{padding:18px 12px 28px}.booking-hero{flex-direction:column}.booking-progress{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(160px,1fr);overflow-x:auto;overflow-y:hidden;padding-bottom:6px;margin-bottom:18px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}.booking-progress::-webkit-scrollbar{height:6px}.booking-progress::-webkit-scrollbar-thumb{background:#94a3b847;border-radius:999px}.booking-progress__step{scroll-snap-align:start;min-height:72px}.booking-choice-grid,.booking-form-grid--double,.booking-form-grid--triple,.booking-stats,.booking-confirm-grid,.booking-sidebar{grid-template-columns:minmax(0,1fr)}.booking-panel{padding:18px 16px;border-radius:22px}.booking-choice{min-height:auto;padding:16px}.booking-hero__title{max-width:none;font-size:clamp(28px,9vw,38px)}.booking-hero__subtitle{font-size:14px;line-height:1.5}.booking-ghost-button{width:100%}.booking-hall-card{padding:14px}.booking-hall-legend{gap:10px;margin-bottom:12px;font-size:12px}.booking-hall-table{font-size:10px;padding:2px 3px}.booking-hall-feature{font-size:9px}.booking-guest-counter__value strong{font-size:clamp(42px,16vw,56px)}.booking-counter-actions button{width:48px;height:48px;font-size:24px}.booking-actions{margin-top:22px}.booking-secondary-button,.booking-primary-button{width:100%}}@media(max-width:480px){.booking-shell{padding:14px 10px 24px}.booking-hero{margin-bottom:18px}.booking-hero__eyebrow,.booking-panel__eyebrow,.booking-sidebar-card__label,.booking-inline-card__label,.booking-helper-card__label{font-size:11px;letter-spacing:.08em}.booking-panel{padding:14px;border-radius:18px}.booking-progress{grid-auto-columns:minmax(180px,1fr)}.booking-progress__step{padding:10px;border-radius:18px}.booking-progress__index{width:30px;height:30px;flex-basis:30px}.booking-progress__caption{display:none}.booking-step-content{gap:14px}.booking-inline-card,.booking-helper-card,.booking-stat,.booking-confirm-card{padding:14px;border-radius:16px}.booking-choice strong,.booking-inline-card strong,.booking-helper-card strong,.booking-confirm-card strong,.booking-stat strong{font-size:17px}.booking-field input,.booking-field select{padding:12px 14px;border-radius:14px}.booking-calendar{padding:14px;border-radius:18px}.booking-calendar__header{grid-template-columns:36px minmax(0,1fr) 36px;gap:10px}.booking-calendar__nav{width:36px;height:36px;border-radius:12px}.booking-calendar__weekdays,.booking-calendar__grid{gap:6px}.booking-calendar__weekdays span{font-size:11px}.booking-calendar__day{min-height:40px;border-radius:14px}.booking-calendar__day-number{font-size:14px}.booking-hall-card{padding:12px;border-radius:20px}.booking-actions{gap:10px}.booking-ghost-button,.booking-secondary-button,.booking-primary-button{padding:12px 14px;font-size:14px}}html,body{margin:0;padding:0;width:100%;height:100%;background:#0d1117;font-family:Roboto,sans-serif}#root{width:100%;max-width:none}.table{transition:transform .2s,background-color .2s}.table:hover{transform:scale(1.1);background-color:#3b82f6}
