.booking-flow{padding:48px 0 80px;background:#f7faf8;min-height:70vh}.booking-container{max-width:1120px}.flow-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 24px}.flow-steps span{background:#fff;border:1px solid #e5ebe7;border-radius:14px;padding:13px;text-align:center;color:#758078}.flow-steps .active{background:color-mix(in srgb,var(--primary) 10%,#fff);border-color:color-mix(in srgb,var(--primary) 35%,#fff);color:var(--primary);font-weight:800}.booking-shell{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:24px;align-items:start}.booking-form-card,.booking-summary{background:#fff;border:1px solid #e5ebe7;border-radius:22px;padding:26px;box-shadow:0 12px 35px rgba(25,65,39,.06)}.booking-form-card h1{font-size:26px;margin:0 0 8px}.booking-date-list{display:grid;gap:10px;margin:24px 0}.booking-date-choice{display:flex;align-items:center;gap:12px;border:1px solid #dde7e0;border-radius:16px;padding:14px;cursor:pointer}.booking-date-choice:has(input:checked){border-color:var(--primary);background:#f0faf4}.booking-date-choice.soldout{opacity:.5;cursor:not-allowed}.booking-date-choice span{display:flex;flex-direction:column;gap:3px}.booking-date-choice small{color:#77817b}.people-grid,.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0}.booking-flow label>span{display:block;font-size:13px;font-weight:700;margin-bottom:7px}.booking-flow input,.booking-flow textarea,.booking-flow select{width:100%;border:1px solid #dfe7e2;border-radius:12px;padding:12px 13px;font:inherit;background:#fff}.booking-summary{position:sticky;top:100px}.booking-summary h3{margin-top:0}.booking-summary>div{display:flex;justify-content:space-between;gap:15px;padding:12px 0;border-bottom:1px solid #eef2ef}.booking-summary small{display:block;line-height:1.8;color:#6f7972;margin-top:15px}.summary-total{font-size:17px;color:var(--primary)}.passenger-card{border:1px solid #e1e9e4;border-radius:16px;padding:18px;margin:18px 0}.passenger-card legend{padding:0 8px;font-weight:800;color:var(--primary)}.booking-code{display:inline-flex;background:#edf8f1;color:var(--primary);padding:8px 12px;border-radius:10px;margin-bottom:14px}.passenger-review-list{display:grid;gap:8px;margin-bottom:24px}.passenger-review-list>div{display:flex;justify-content:space-between;background:#f7faf8;border-radius:12px;padding:12px}.payment-placeholder{display:flex;flex-direction:column;gap:6px;background:#fff8e8;border:1px solid #f5dfaa;border-radius:14px;padding:16px;margin:22px 0}.disabled{opacity:.55;pointer-events:none}.user-booking-list{display:grid;gap:16px}.user-booking-card{display:grid;grid-template-columns:180px 1fr;background:#fff;border:1px solid #e2eae5;border-radius:20px;overflow:hidden}.user-booking-card>img{width:100%;height:100%;min-height:180px;object-fit:cover}.user-booking-body{padding:20px}.booking-row,.booking-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.booking-actions{justify-content:flex-start;margin-top:18px}.booking-actions form{margin:0}.booking-status{font-size:12px;padding:6px 9px;border-radius:999px;background:#eef2ef}.status-pending_payment{background:#fff4d8;color:#9b6900}.status-paid,.status-confirmed{background:#eaf8ef;color:#168446}.status-cancelled,.status-expired{background:#feecec;color:#bd3131}.btn-danger{background:#d94747!important;border-color:#d94747!important;color:#fff!important}.alert{border-radius:14px;padding:13px 16px;margin-bottom:18px}.alert-success{background:#eaf8ef;color:#167c43}.alert-error{background:#feecec;color:#a72c2c}@media(max-width:800px){.booking-shell{grid-template-columns:1fr}.booking-summary{position:static}.flow-steps{grid-template-columns:1fr}.people-grid,.form-grid{grid-template-columns:1fr}.user-booking-card{grid-template-columns:1fr}.user-booking-card>img{height:200px}.booking-row{align-items:flex-start;flex-direction:column}}
