.schedule-layout{display:grid;grid-template-columns:minmax(300px,390px) 1fr;gap:24px;align-items:start}.calendar-card,.client-calendar-shell{background:var(--card);border:1px solid var(--line);border-radius:24px;padding:22px;box-shadow:0 12px 34px rgba(40,28,15,.06)}.calendar-card{position:sticky;top:98px}.calendar-toolbar{display:grid;grid-template-columns:42px 1fr 42px;align-items:center;gap:8px;margin-bottom:18px}.calendar-toolbar strong{text-align:center;font:22px Georgia,serif;text-transform:capitalize}.calendar-toolbar a,.calendar-toolbar button{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--ink);font-size:28px;text-decoration:none;cursor:pointer}.calendar-week,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.calendar-week{margin-bottom:7px}.calendar-week span{text-align:center;color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.06em}.calendar-day{position:relative;min-height:48px;border:1px solid transparent;border-radius:12px;background:#f8f3eb;color:var(--ink);text-decoration:none;display:grid;place-items:center;font-weight:800;font:15px Inter,sans-serif;cursor:pointer}.calendar-day small{position:absolute;right:4px;bottom:4px;display:grid;place-items:center;min-width:17px;height:17px;padding:0 4px;border-radius:99px;background:var(--gold);color:#17120d;font-size:9px}.calendar-day.has-events,.calendar-day.available{background:#fff3dc;border-color:#e6c38d}.calendar-day.today{box-shadow:inset 0 0 0 1px var(--gold)}.calendar-day.selected{background:var(--ink)!important;color:#fff;border-color:var(--ink)}.calendar-day.selected small{background:var(--gold2)}.calendar-day.full,.calendar-day.closed,.calendar-day.past{background:#eee9e1;color:#aaa39a;cursor:not-allowed}.calendar-day:disabled{border:0}.calendar-blank{min-height:48px}.calendar-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px;color:var(--muted);font-size:11px}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px}.dot-gold,.dot-available{background:var(--gold)}.dot-dark{background:var(--ink)}.dot-full{background:#bbb3a9}.day-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.day-heading h2{font:38px Georgia,serif;margin:6px 0}.appointment-list{display:grid;gap:12px}.appointment-card{display:grid;grid-template-columns:90px 1fr auto;align-items:center;gap:18px;padding:20px;background:#fff;border:1px solid var(--line);border-radius:20px}.appointment-time{border-right:1px solid var(--line);display:flex;flex-direction:column}.appointment-time strong{font:28px Georgia,serif}.appointment-time span{color:var(--muted);font-size:12px}.appointment-main h3{font:25px Georgia,serif;margin:7px 0 3px}.appointment-main p,.appointment-main small{margin:0;color:var(--muted)}.booking-form{max-width:980px}.booking-step{display:flex;align-items:center;gap:13px;margin:34px 0 16px}.booking-step>span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--ink);color:#fff;font-weight:900}.booking-step strong,.booking-step small{display:block}.booking-step small{color:var(--muted);margin-top:2px}.service-choices{grid-template-columns:repeat(3,1fr)}.service-choices .choice:has(input:checked){border-color:var(--gold);background:#fff6e7;box-shadow:0 0 0 2px rgba(199,154,86,.18)}.client-calendar-shell{max-width:620px}.client-calendar-shell .calendar-grid{min-height:330px}.calendar-help{grid-column:1/-1;align-self:center;text-align:center;color:var(--muted);padding:50px 10px}.calendar-grid.loading{opacity:.55;pointer-events:none}.time-slots{display:flex;flex-wrap:wrap;gap:10px;min-height:52px}.time-slot{border:1px solid var(--line);border-radius:12px;background:#fff;padding:12px 17px;font-weight:800;color:var(--ink);cursor:pointer}.time-slot:hover,.time-slot.selected{background:var(--ink);color:#fff;border-color:var(--ink)}.booking-summary{margin-top:30px}.booking-submit:disabled{opacity:.45;cursor:not-allowed}@media(max-width:850px){.schedule-layout{grid-template-columns:1fr}.calendar-card{position:static}.service-choices{grid-template-columns:1fr 1fr}}@media(max-width:560px){.service-choices{grid-template-columns:1fr}.calendar-card,.client-calendar-shell{padding:14px;border-radius:18px}.calendar-day,.calendar-blank{min-height:42px}.appointment-card{grid-template-columns:62px 1fr}.appointment-card>.btn{grid-column:1/-1}.appointment-time strong{font-size:23px}}
