.booking-app{background:#eeeef0;padding:2.5rem 1rem 4rem}.booking-app .book-shell{background:#fff;border-radius:14px;box-shadow:0 24px 60px #020f4f24;display:grid;grid-template-columns:360px minmax(0,1fr);margin:0 auto;max-width:1080px;overflow:hidden}.booking-app .book-info{border-right:1px solid #ececf0;padding:2.5rem 2rem}.booking-app .book-host{align-items:center;color:#374151;display:flex;font-size:.95rem;gap:.65rem;margin-bottom:1.6rem}.booking-app .book-host img{border-radius:50%}.booking-app .book-info h1{color:var(--color-primary, #020F4F);font-size:1.55rem;line-height:1.15;margin:0 0 .9rem}.booking-app .book-pills{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.4rem}.booking-app .pill{align-items:center;background:#f4f5f6;border:1px solid #e7e8ea;border-radius:6px;color:#374151;display:inline-flex;font-size:.85rem;font-weight:600;gap:.4rem;padding:.4rem .6rem}.booking-app .book-services{display:grid;gap:.55rem;margin-bottom:1.6rem}.booking-app .booking-type-card{background:#fff;border:1px solid #d9dbdf;border-radius:8px;cursor:pointer;display:grid;gap:.15rem;padding:.7rem .85rem;text-align:left;transition:border-color .15s,box-shadow .15s}.booking-app .booking-type-card:hover{border-color:var(--color-primary, #020F4F)}.booking-app .booking-type-card.is-selected{border-color:var(--color-primary, #020F4F);box-shadow:0 0 0 3px #020f4f1f}.booking-app .booking-type-title{color:#111827;font-size:.92rem;font-weight:700}.booking-app .booking-type-meta{color:#6b7280;font-size:.82rem}.booking-app .book-steps{border-top:1px solid #ececf0;display:grid;gap:.9rem;list-style:none;margin:0;padding:1.4rem 0 0}.booking-app .book-steps li{color:#4b5563;display:grid;font-size:.86rem;gap:.15rem;line-height:1.45}.booking-app .book-steps strong{color:#111827;font-size:.9rem}.booking-app .book-status{color:#6b7280;font-size:.85rem;margin:1rem 0 0;min-height:1.2em}.booking-app .book-schedule{background:#eeeef0;display:flex;flex-direction:column;gap:1rem;padding:1.5rem}.booking-app .book-tabs{display:flex;gap:.4rem;list-style:none;margin:0;padding:0}.booking-app .book-tab{align-items:center;background:#fff;border-radius:8px;color:#6b7280;display:flex;flex:1 1 0;font-size:.82rem;font-weight:600;gap:.4rem;justify-content:center;padding:.55rem .5rem;text-align:center}.booking-app .book-tab span{align-items:center;background:#e7e8ea;border-radius:50%;display:inline-flex;flex:0 0 auto;font-size:.72rem;height:20px;justify-content:center;width:20px}.booking-app .book-tab.is-active{background:var(--color-primary, #020F4F);color:#fff}.booking-app .book-tab.is-active span{background:#ffffff40}.booking-app .book-tab.is-done{background:#eef6ee;color:#15803d}.booking-app .book-tab.is-done span{background:#bbf7d0;color:#15803d}.booking-app .book-tab.is-locked,.booking-app .book-tab.is-future{cursor:not-allowed;opacity:.55}.booking-app .book-panel{display:grid;gap:1rem}.booking-app .book-panel[hidden]{display:none}.booking-app .schedule-bar{align-items:center;background:#fff;border-radius:10px;color:#4b5563;display:flex;font-size:.85rem;gap:.5rem;padding:.7rem 1rem}.booking-app .schedule-grid{align-items:start;display:grid;gap:1rem;grid-template-columns:minmax(0,1fr) 220px}.booking-app .schedule-card{background:#fff;border-radius:10px;padding:1.15rem}.booking-app .panel-card h2{color:#111827;font-size:1.05rem;margin:0 0 .35rem}.booking-app .panel-hint{color:#6b7280;font-size:.85rem;line-height:1.5;margin:0 0 1.1rem}.booking-app .picked{background:#f4f5f6;border-radius:8px;color:#374151;font-size:.88rem;margin-bottom:1.1rem;padding:.6rem .75rem}.booking-app .calendar-head{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.booking-app .calendar-title{color:#111827;font-size:.95rem;font-weight:600}.booking-app .cal-nav{align-items:center;background:transparent;border:0;border-radius:6px;color:#6b7280;cursor:pointer;display:flex;font-size:1.3rem;height:30px;justify-content:center;line-height:1;width:30px}.booking-app .cal-nav:hover:not(:disabled){background:#f4f5f6;color:var(--color-primary, #020F4F)}.booking-app .cal-nav:disabled{color:#d1d5db;cursor:default}.booking-app .calendar-weekdays{color:#9ca3af;display:grid;font-size:.68rem;font-weight:600;gap:.25rem;grid-template-columns:repeat(7,1fr);letter-spacing:.06em;margin-bottom:.4rem;text-align:center;text-transform:uppercase}.booking-app .calendar-days{display:grid;gap:.25rem;grid-template-columns:repeat(7,1fr)}.booking-app .day{background:transparent;border:0;border-radius:8px;color:#111827;cursor:pointer;font:inherit;font-size:.93rem;height:42px}.booking-app .day.is-available{background:#646d7617;font-weight:600}.booking-app .day.is-available:hover{background:#020f4f1f}.booking-app .day.is-selected{background:var(--color-primary, #020F4F);color:#fff}.booking-app .day:disabled{color:#c8ccd2;cursor:default}.booking-app .day.is-empty{visibility:hidden}.booking-app .times-card h2{color:#111827;font-size:.95rem;margin:0 0 .8rem}.booking-app .times-list{max-height:420px;overflow:auto;padding-right:.15rem}.booking-app .times-hint{color:#9ca3af;font-size:.85rem;margin:0}.booking-app .time-btn{background:#646d7617;border:1px solid transparent;border-radius:8px;color:#111827;cursor:pointer;display:block;font:inherit;font-size:.92rem;font-weight:500;margin-bottom:.5rem;padding:.65rem .75rem;text-align:center;width:100%}.booking-app .time-btn:hover{border-color:var(--color-primary, #020F4F)}.booking-app .time-btn.is-selected{background:var(--color-primary, #020F4F);color:#fff}.booking-app .summary{display:grid;gap:.4rem;margin:.9rem 0 1rem}.booking-app .summary-row{align-items:baseline;background:#f4f5f6;border-radius:8px;display:flex;font-size:.88rem;gap:.5rem;padding:.55rem .75rem}.booking-app .summary-label{color:#6b7280;flex:0 0 auto}.booking-app .checkout-note{color:#6b7280;font-size:.86rem;line-height:1.5;margin:0 0 1rem}.booking-app .field{display:grid;gap:.35rem;margin-bottom:1rem}.booking-app .field-row{display:grid;gap:0 1rem;grid-template-columns:repeat(2,minmax(0,1fr))}.booking-app .field label{color:#111827;font-size:.9rem;font-weight:600}.booking-app .field input,.booking-app .field select,.booking-app .field textarea{background:#f1f2f3;border:1px solid transparent;border-radius:8px;box-sizing:border-box;color:#111827;font:inherit;min-height:44px;padding:.65rem .8rem;width:100%}.booking-app .field textarea{min-height:88px;resize:vertical}.booking-app .field input:focus,.booking-app .field select:focus,.booking-app .field textarea:focus{border-color:var(--color-primary, #020F4F);outline:none}.booking-app .dialog-error{color:#b91c1c;font-size:.85rem;margin:0 0 .8rem;min-height:1.1em}.booking-app .btn-primary{background:var(--color-secondary, #E29F17);border:0;border-radius:8px;color:#fff;cursor:pointer;font:inherit;font-size:1rem;font-weight:700;padding:.85rem 1rem;width:100%}.booking-app .btn-primary:hover{background:#c98a10}.booking-app .btn-primary:disabled{cursor:default;opacity:.6}.booking-app .confirmed-badge{align-items:center;background:#dcfce7;border-radius:50%;color:#15803d;display:flex;font-size:1.5rem;height:52px;justify-content:center;margin:1rem auto .8rem;width:52px}.booking-app .confirmed-title{color:#111827;font-size:1.2rem;margin:0 0 .5rem;text-align:center}.booking-app .confirmed-when{color:#111827;font-size:.95rem;font-weight:600;margin:0 0 .6rem;text-align:center}.booking-app .confirmed-note{color:#6b7280;font-size:.86rem;line-height:1.5;margin:0 0 1.2rem;text-align:center}@media (max-width: 900px){.booking-app{padding:1rem .75rem 3rem}.booking-app .book-shell{grid-template-columns:1fr}.booking-app .book-info{border-bottom:1px solid #ececf0;border-right:0;padding:1.5rem 1.25rem}.booking-app .schedule-grid{grid-template-columns:1fr}.booking-app .book-schedule{padding:1rem}.booking-app .times-list{max-height:none}.booking-app .book-tabs{display:grid;grid-template-columns:repeat(2,1fr)}.booking-app .field-row{grid-template-columns:1fr}}
