.booking-shell{max-width:1120px;margin:auto;padding:48px 24px}.booking-heading{max-width:760px}.booking-heading h1{font-size:clamp(2.5rem,6vw,4.4rem);line-height:1.06;margin:12px 0 20px}.booking-heading>p:last-child{font-size:1.15rem;max-width:60ch}.booking-steps{display:flex;list-style:none;gap:32px;padding:24px 0;margin:24px 0;border-block:1px solid var(--line);color:var(--muted)}.booking-steps li{display:flex;align-items:center;gap:9px}.booking-steps b{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;border:1px solid var(--line);font-size:.8rem}.booking-steps [aria-current]{font-weight:700;color:var(--forest)}.booking-steps [aria-current] b{background:var(--forest);color:white}.booking-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:28px;align-items:start}.booking-card{border:1px solid var(--line);border-radius:16px;padding:28px;background:#fff}.booking-card h2{font-size:1.55rem;line-height:1.25;margin:0 0 14px}.booking-card>p{color:var(--muted)}.term-options{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:22px 0}.term-options legend{font:inherit;font-weight:650;font-size:.95rem}.term-options label{position:relative}.term-options input{position:absolute;opacity:0;width:1px!important;height:1px}.term-options span{border:1px solid #a4b3a7;border-radius:9px;padding:14px 10px;cursor:pointer}.term-options strong,.term-options small{display:block}.term-options small{font-size:.875rem;margin-top:4px;font-weight:400}.term-options input:checked+span{background:#edf3e8;border:2px solid var(--forest);padding:13px 9px}.term-options input:focus-visible+span{outline:3px solid var(--wood);outline-offset:3px}.booking-card .vendor-form-grid{gap:14px}.booking-card .field-note{margin-top:16px}.period-preview{font-weight:650;min-height:28px;margin:22px 0}.schedule-card{background:var(--paper);position:sticky;top:24px}.schedule-card .button{width:100%;margin:24px 0 0}.schedule-card .mini-eyebrow{margin:0 0 10px}.empty-state{padding:28px 0;color:var(--muted);line-height:1.7}.booking-total{display:flex;justify-content:space-between;gap:16px;align-items:baseline;border-top:1px solid var(--line);padding-top:20px;margin-top:24px}.booking-total strong{font-size:2rem;color:var(--forest)}.booking-example{font-size:.95rem;margin-top:24px;padding:18px 0;color:var(--muted)}.booking-help{margin-top:48px;border-top:1px solid var(--line);padding-top:24px}.booking-help span{display:block;margin:8px 0}.booking-help p{font-size:.9rem;color:var(--muted)}.period-row{border-top:1px solid var(--line);padding:18px 0;display:grid;grid-template-columns:1fr auto;gap:8px}.period-row p{margin:4px 0;font-size:.95rem}.text-button{border:0;background:none;color:var(--forest);text-decoration:underline;font:inherit;cursor:pointer;padding:4px 0}.period-row button{font-size:.875rem;text-align:left;justify-self:start}.account-actions{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0}.status-badge{display:inline-block;background:#edf3e8;padding:4px 10px;border-radius:20px;font-size:.8rem;font-weight:700}.booking-record{border-top:1px solid var(--line);padding:22px 0}.booking-record h3{font-size:1.15rem;margin:10px 0}.booking-record p{margin:8px 0}.account-heading{display:flex;justify-content:space-between;align-items:start;gap:20px}.account-heading h1,#details-view h1,#review-view h1{font-size:clamp(2rem,5vw,3rem);margin-bottom:20px}.narrow-card{max-width:720px}.auth-form{max-width:480px}.auth-form button{margin-top:20px}.booking-site button:disabled{cursor:not-allowed}.notice{background:var(--paper);padding:16px 20px;border-left:3px solid var(--forest);margin:20px 0}.booking-site [role=alert]{color:#923526}.review-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.review-grid dl{margin:0}.review-grid dt{font-weight:700}.review-grid dd{margin:0 0 16px;white-space:pre-wrap}.agreement-current{padding:20px;background:#edf3e8;border-radius:12px}.small-copy{font-size:.9rem;color:var(--muted)}.booking-record ul{padding-left:22px}.booking-site .agreement-reader h2{font-size:1.4rem}.booking-site .agreement-reader h3{font-size:1.1rem}.owner-booking-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:780px){.booking-layout,.review-grid{grid-template-columns:1fr}.schedule-card{position:static}.booking-shell{padding:32px 20px}.booking-steps{gap:16px;font-size:.85rem}.booking-steps b{display:none}.booking-card{padding:22px}.booking-heading h1{font-size:2.65rem}}@media(max-width:420px){.term-options{gap:6px}.term-options span{padding:12px 7px}.term-options input:checked+span{padding:11px 6px}.term-options small{font-size:.8rem}.booking-card .vendor-form-grid,.owner-booking-grid{grid-template-columns:1fr}}
.booking-calendar{margin:32px 0;padding:28px;border:1px solid var(--line);border-radius:16px;background:white}.calendar-heading{display:flex;justify-content:space-between;align-items:start;gap:24px}.calendar-heading h2{font-size:1.6rem;margin:0 0 12px}.calendar-heading p{max-width:62ch}.calendar-heading label{min-width:140px;font-size:.875rem}.calendar-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 24px;margin:24px 0}.calendar-month{width:100%;border-collapse:separate;border-spacing:3px;table-layout:fixed}.calendar-month caption{text-align:left;font-weight:750;padding-bottom:12px}.calendar-month th{font-size:.75rem;color:var(--muted);font-weight:500}.calendar-month abbr{text-decoration:none}.calendar-month td{text-align:center;border-radius:4px;padding:0;height:32px}.calendar-month button,.calendar-month td>span{display:block;width:100%;height:32px;padding:3px;border:0;border-radius:4px;background:transparent;color:inherit;font:inherit;font-size:.85rem}.calendar-month button{cursor:pointer}.calendar-month button:disabled{opacity:.3;cursor:default}.calendar-month button:focus-visible{outline:3px solid var(--wood);outline-offset:2px}.calendar-month .cal-planned,.calendar-month .cal-requested,.calendar-month .cal-action_needed{background:#e7ecdb}.calendar-month .cal-confirmed{background:var(--forest);color:white}.calendar-month .cal-ready_to_pay{background:#f9e9b6}.calendar-month .cal-preview{box-shadow:inset 0 0 0 2px #b78349;background:#fff3df}.calendar-month .cal-today button,.calendar-month .cal-today span{text-decoration:underline;font-weight:800}.calendar-controls{display:flex;gap:24px;justify-content:space-between;margin:12px 0}.calendar-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:.8rem}.calendar-legend span{padding:5px 9px;border-radius:4px}.legend-planned{background:#e7ecdb}.legend-preview{border:2px solid #b78349}.legend-confirmed{background:var(--forest);color:white}.legend-ready{background:#f9e9b6}.notice p{margin:10px 0 0}@media(max-width:950px){.calendar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:580px){.booking-calendar{padding:20px}.calendar-grid{grid-template-columns:1fr}.calendar-heading{display:block}.calendar-heading label{margin-top:20px;max-width:200px}.calendar-month td,.calendar-month button,.calendar-month td>span{height:40px}.calendar-month button{font-size:1rem}}
