.calendar-shell{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(240px,.8fr);gap:26px;align-items:start;margin:26px 0 38px}.calendar-panel,.time-panel{min-width:0;border:1px solid #304142;border-radius:22px;background:linear-gradient(145deg,#1c2a2bd9,#111c1ed9);padding:24px;box-shadow:0 18px 60px #0002}.calendar-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:20px}.calendar-head h3{margin:0;font-size:18px;color:#ecede7}.calendar-head button{padding:9px 12px;background:transparent;color:#a2c4b8;border:1px solid #304142;border-radius:9px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.weekday{text-align:center;font-size:11px;color:#a9b7b2;padding:8px 0}.calendar-day{position:relative;aspect-ratio:1;padding:0!important;min-width:0;border:1px solid transparent;border-radius:12px;background:#162123;color:#a9b7b2;text-align:center!important;transition:transform .25s,background .25s,box-shadow .25s}.calendar-day:disabled{opacity:.3;cursor:default}.calendar-day.available{background:#a2c4b817;border-color:#a2c4b840;color:#d9eee4}.calendar-day.available:after{content:'';position:absolute;bottom:6px;inset-inline-start:calc(50% - 2px);width:4px;height:4px;border-radius:50%;background:#a2c4b8;box-shadow:0 0 8px #a2c4b8}.calendar-day.booked{border-bottom-color:#d4b08a}.calendar-day[aria-current=date]{outline:1px dashed #a2c4b860;outline-offset:-4px}.calendar-day[aria-pressed=true]{background:#a2c4b8;color:#102021;border-color:#d4e6de;box-shadow:0 0 26px #a2c4b84a;transform:translateY(-2px)}.calendar-day:not(:disabled):hover{transform:translateY(-3px);box-shadow:0 5px 22px #a2c4b82a}.calendar-legend{font-size:12px;margin:18px 0 0;line-height:1.8;color:#a9b7b2}.time-panel h3{margin-top:0;color:#d4b08a}.time-options{display:flex;flex-wrap:wrap;gap:10px}.time-options button{background:#182426;color:#ecede7;border:1px solid #304142;padding:12px 16px;border-radius:12px;transition:transform .25s,box-shadow .25s}.time-options button[aria-pressed=true],.time-options button.open{border-color:#a2c4b8;box-shadow:0 0 24px #a2c4b82a;background:#a2c4b820}.time-options button:hover:not(:disabled){transform:translateY(-3px)}.time-options button:disabled{opacity:.4;cursor:default}.time-options a{display:block;width:100%;padding:10px;color:#d4b08a}.service-summary{display:flex;justify-content:space-between;gap:28px;align-items:center;border-bottom:1px solid #304142;padding:15px 0 30px}.service-summary h2{font-size:24px;margin:0}.service-summary p{margin-bottom:0}.service-summary .price{white-space:nowrap}.calendar-intro{text-align:center;margin-bottom:32px}.topbar{flex-wrap:wrap}.time-hint{font-size:13px;color:#a9b7b2;line-height:1.8}.calendar-panel,.time-panel,#form{animation:calendar-enter .45s ease both}@keyframes calendar-enter{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:none}}@media(max-width:760px){.calendar-shell{grid-template-columns:1fr;gap:16px}.calendar-panel,.time-panel{padding:18px}.service-summary{align-items:start;flex-direction:column;gap:10px}.calendar-head h3{font-size:16px}.calendar-grid{gap:5px}.calendar-head button{padding:8px;font-size:12px}.calendar-day{border-radius:9px}.time-options button{width:auto!important}}@media(prefers-reduced-motion:reduce){.calendar-panel,.time-panel,#form{animation:none}.calendar-day,.time-options button{transition:none;transform:none!important}}

#times{max-height:480px;overflow:auto;align-content:start;padding:5px}.time-options button{animation:calendar-enter .3s ease both}.calendar-day.available:not([aria-pressed=true]){animation:calendar-glow 4s ease-in-out infinite}@keyframes calendar-glow{50%{box-shadow:inset 0 0 15px #a2c4b815}}@media(max-width:760px){#times{max-height:350px}}@media(prefers-reduced-motion:reduce){.calendar-day.available,.time-options button{animation:none!important}}

.calendar-grid{animation:calendar-enter .3s ease both}@media(prefers-reduced-motion:reduce){.calendar-grid{animation:none}}
.trap{left:auto;inset-inline-start:0;top:0;width:1px;height:1px;padding:0;border:0;clip-path:inset(50%);overflow:hidden;white-space:nowrap}.fields{align-items:start}.fields input,.fields textarea{min-width:0}.time-panel{min-height:190px}
