.reserve{padding:24px 20px;border:1px solid var(--line);border-radius:12px;background:#fff}
.reserve *{box-sizing:border-box}
.reserve button,.reserve input,.reserve select{font:inherit}
.reserve button{cursor:pointer}
.reserve button:focus-visible,.reserve input:focus-visible,.reserve select:focus-visible{outline:3px solid #ee9300;outline-offset:2px}
.reserve[hidden],.reserve [hidden]{display:none!important}
.reserve-title{margin:0 0 18px;font-size:19px;font-weight:700}
.reserve-step{margin:0 0 10px;font-size:14px;font-weight:700}
.reserve-days{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}
.reserve-day{min-height:68px;padding:6px 2px;border:1px solid #cbd3df;border-radius:8px;background:#fff;color:#25354c;text-align:center;line-height:1.3}
.reserve-day small{display:block;color:#66758a;font-size:11px}
.reserve-day strong{display:block;margin-top:3px;font-size:20px}
.reserve-day[aria-pressed=true]{border:2px solid #19396b;background:#eef4ff}
.reserve-day:disabled{opacity:.45;cursor:default}
.reserve-more{display:inline-block;margin:12px 0 0;padding:7px 0;border:0;background:none;color:#19467f;font-size:13px;font-weight:700;text-decoration:underline;text-underline-offset:3px}
.reserve-time{margin-top:23px}
.reserve-select{display:block;width:100%;max-width:240px;min-height:45px;margin:9px 0 13px;padding:8px 34px 8px 11px;border:1px solid #aebdd2;border-radius:7px;background:#fff;color:#25354c;font-size:14px}
.reserve-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.reserve-slot{min-height:48px;border:1px solid #b6c9e4;border-radius:7px;background:#f6f9ff;color:#19396b;font-size:15px;font-weight:700}
.reserve-slot:hover,.reserve-day:hover:not(:disabled){border-color:#19396b}
.reserve-msg{margin:10px 0 0;color:#697480;font-size:13px;line-height:1.6}
.reserve-error{color:#af2424}
.reserve-back{margin:0 0 13px;padding:4px 0;border:0;background:none;color:#19467f;font-size:13px;font-weight:700;text-decoration:underline}
.reserve-selected{margin:0 0 20px;padding:13px;border:1px solid #b6c9e4;border-radius:8px;background:#f3f7fd;color:#19396b;font-weight:700}
.reserve-field{display:block;margin:0 0 16px;font-size:13px;font-weight:700}
.reserve-field input{display:block;width:100%;min-height:50px;margin-top:6px;padding:10px 12px;border:1px solid #bac4d2;border-radius:7px;background:#fff;color:#2b2a29;font-size:16px}
.reserve-submit{width:100%;min-height:54px;border:0;border-radius:4px;background:#19396b;color:#fff;font-size:15px;font-weight:700}
.reserve-submit:disabled{opacity:.55;cursor:wait}
.reserve-privacy{margin:10px 0 0;color:#697480;font-size:11px;text-align:center}
.reserve-privacy a{color:#19467f}
.reserve-dialog{width:min(400px,calc(100vw - 28px));max-height:calc(100vh - 30px);padding:20px;border:1px solid #cbd3df;border-radius:12px;background:#fff;box-shadow:0 20px 60px #12234244;color:#2b2a29}
.reserve-dialog::backdrop{background:#0e1a31a8}
.reserve-dialog-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.reserve-dialog-head strong{font-size:17px}
.reserve-dialog-head button,.reserve-month-nav button{border:0;background:none;color:#19467f;font-size:23px}
.reserve-month-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.reserve-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;text-align:center}
.reserve-calendar b{padding:7px 0;color:#66758a;font-size:11px}
.reserve-calendar button{aspect-ratio:1;border:0;border-radius:50%;background:#fff;color:#25354c;font-size:13px}
.reserve-calendar button:hover:not(:disabled),.reserve-calendar button[aria-pressed=true]{background:#19396b;color:#fff}
.reserve-calendar button:disabled{color:#b8c0cb;cursor:default}
@media(max-width:520px){.reserve{padding:20px 15px}.reserve-days{gap:4px}.reserve-day{min-height:62px}.reserve-day strong{font-size:17px}.reserve-slots{grid-template-columns:repeat(2,1fr)}}
