:root{--teal: #2ba3b3;--teal-dark: #1f8090;--teal-soft: #e8f5f7;--teal-line: #b8dfe5;--coral: #f26b5b;--coral-dark: #d9533f;--ink: #0f2530;--ink-soft: #3d5561;--muted: #5b6b7a;--faint: #8fa3ad;--line: #e2ecef;--line-strong: #c7d9de;--surface: #f7fbfc;--white: #ffffff;--ok: #1e8e5a;--ok-soft: #e7f6ee;--warn: #9a6a00;--warn-soft: #fdf3dd;--danger: #c23b2c;--danger-soft: #fdecea;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-num: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--step--1: .8125rem;--step-0: .9375rem;--step-1: 1.0625rem;--step-2: 1.25rem;--step-3: 1.5rem;--step-4: 1.875rem;--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.5rem;--sp-6: 2rem;--sp-7: 3rem;--r-sm: 8px;--r-md: 12px;--r-lg: 18px;--r-pill: 999px;--shadow-sm: 0 1px 2px rgba(15, 37, 48, .06);--shadow-md: 0 4px 16px rgba(15, 37, 48, .08);--shadow-lg: 0 12px 32px rgba(15, 37, 48, .12);--ring: 0 0 0 3px rgba(43, 163, 179, .35);--content: 640px}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font);font-size:var(--step-0);line-height:1.6;color:var(--ink);background:var(--surface);-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;line-height:1.25;letter-spacing:-.015em;text-wrap:balance}p{margin:0}button{font:inherit;color:inherit}:focus-visible{outline:none;box-shadow:var(--ring);border-radius:var(--r-sm)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.page{min-height:100dvh;display:flex;flex-direction:column}.topbar{background:var(--white);border-bottom:1px solid var(--line);padding:var(--sp-3) var(--sp-4)}.topbar__inner{max-width:var(--content);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4)}.brand{display:inline-flex;align-items:center;text-decoration:none;line-height:0}.brand__logo{width:84px;height:auto;display:block}.topbar__help{font-size:var(--step--1);color:var(--teal-dark);text-decoration:none;font-weight:600;white-space:nowrap}.topbar__help:hover{text-decoration:underline}.main{flex:1;width:100%;max-width:var(--content);margin:0 auto;padding:var(--sp-5) var(--sp-4) var(--sp-7)}.footer{border-top:1px solid var(--line);padding:var(--sp-5) var(--sp-4);text-align:center;font-size:var(--step--1);color:var(--faint)}.footer a{color:var(--muted)}.steps{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-5);padding:0;list-style:none}.steps__item{flex:1;height:4px;border-radius:var(--r-pill);background:var(--line);transition:background .25s ease}.steps__item[data-state=done]{background:var(--teal-line)}.steps__item[data-state=current]{background:var(--teal)}.steps__label{font-size:var(--step--1);color:var(--muted);margin-bottom:var(--sp-2);display:flex;justify-content:space-between;gap:var(--sp-3)}.steps__count{font-variant-numeric:tabular-nums;color:var(--faint)}.step{display:none}.step[data-active]{display:block;animation:stepIn .28s ease both}@keyframes stepIn{0%{opacity:0;transform:translateY(6px)}}.step__head{margin-bottom:var(--sp-4)}.step__title{font-size:var(--step-3);font-weight:800}.step__hint{margin-top:var(--sp-2);color:var(--muted)}.options{display:grid;gap:var(--sp-3)}.option{position:relative;display:block;background:var(--white);border:1.5px solid var(--line);border-radius:var(--r-lg);padding:var(--sp-4);cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.option:hover{border-color:var(--teal-line)}.option:has(input:checked){border-color:var(--teal);box-shadow:0 0 0 1px var(--teal)}.option:has(input:focus-visible){box-shadow:var(--ring)}.option input{position:absolute;opacity:0;pointer-events:none}.option__title{font-weight:700;font-size:var(--step-1);display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3)}.option__price{font-size:var(--step-0);font-weight:700;color:var(--teal-dark);font-variant-numeric:tabular-nums;white-space:nowrap}.option__desc{margin-top:var(--sp-2);color:var(--muted);font-size:var(--step-0)}.option__meta{margin-top:var(--sp-3);display:flex;flex-wrap:wrap;gap:var(--sp-2)}.tag{font-size:var(--step--1);color:var(--ink-soft);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pill);padding:.15rem .6rem}.cal{background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--sp-4)}.cal__nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-4);gap:var(--sp-3)}.cal__month{font-weight:700;font-size:var(--step-1)}.cal__month:first-letter{text-transform:uppercase}.cal__arrow{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line-strong);background:var(--white);border-radius:var(--r-sm);cursor:pointer;color:var(--ink-soft)}.cal__arrow:hover:not(:disabled){border-color:var(--teal);color:var(--teal-dark)}.cal__arrow:disabled{opacity:.35;cursor:not-allowed}.cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal__dow{text-align:center;font-size:var(--step--1);color:var(--faint);font-weight:600;padding-bottom:var(--sp-2)}.cal__day{aspect-ratio:1;border:1px solid transparent;background:transparent;border-radius:var(--r-sm);cursor:pointer;font-variant-numeric:tabular-nums;font-size:var(--step-0);color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:0;transition:background .12s ease,border-color .12s ease}.cal__day--empty{cursor:default}.cal__day[data-available=yes]{background:var(--teal-soft);border-color:var(--teal-line);font-weight:600}.cal__day[data-available=yes]:after{content:"";width:4px;height:4px;border-radius:50%;background:var(--teal)}.cal__day[data-available=no]{color:var(--faint);cursor:not-allowed;text-decoration:line-through;text-decoration-thickness:1px}.cal__day[aria-pressed=true]{background:var(--teal);border-color:var(--teal-dark);color:var(--white);font-weight:700}.cal__day[aria-pressed=true]:after{background:var(--white)}.cal__legend{display:flex;flex-wrap:wrap;gap:var(--sp-4);margin-top:var(--sp-4);padding-top:var(--sp-3);border-top:1px solid var(--line);font-size:var(--step--1);color:var(--muted)}.cal__legend span{display:inline-flex;align-items:center;gap:var(--sp-2)}.dot{width:6px;height:6px;border-radius:50%;background:var(--teal)}.strike{text-decoration:line-through;color:var(--faint)}.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(122px,1fr));gap:var(--sp-2)}.slot{border:1.5px solid var(--line-strong);background:var(--white);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-2);cursor:pointer;text-align:center;font-variant-numeric:tabular-nums;transition:border-color .12s ease,background .12s ease}.slot__time{font-weight:700;font-size:var(--step-1);display:block}.slot__range{font-size:var(--step--1);color:var(--muted);display:block;margin-top:1px}.slot:hover:not(:disabled){border-color:var(--teal)}.slot[aria-pressed=true]{background:var(--coral);border-color:var(--coral-dark);color:var(--white)}.slot[aria-pressed=true] .slot__range{color:#ffffffe6}.slot:disabled{cursor:not-allowed;background:var(--surface);border-color:var(--line);border-style:dashed;color:var(--faint)}.slot:disabled .slot__time{text-decoration:line-through;font-weight:600}.slot__why{font-size:.6875rem;color:var(--faint);display:block;margin-top:2px}.field{margin-bottom:var(--sp-4)}.field__label{display:block;font-weight:600;font-size:var(--step-0);margin-bottom:var(--sp-2)}.field__opt{font-weight:400;color:var(--faint);font-size:var(--step--1)}.field__input,.field__select,.field__textarea{width:100%;font:inherit;color:var(--ink);background:var(--white);border:1.5px solid var(--line-strong);border-radius:var(--r-md);padding:.7rem .85rem;transition:border-color .15s ease}.field__textarea{min-height:84px;resize:vertical}.field__input:hover,.field__select:hover,.field__textarea:hover{border-color:var(--faint)}.field__input:focus,.field__select:focus,.field__textarea:focus{outline:none;border-color:var(--teal);box-shadow:var(--ring)}.field__input[aria-invalid=true],.field__select[aria-invalid=true],.field__textarea[aria-invalid=true]{border-color:var(--danger)}.field__error{display:none;margin-top:var(--sp-2);font-size:var(--step--1);color:var(--danger);font-weight:500}.field__error[data-shown]{display:block}.field__hint{margin-top:var(--sp-2);font-size:var(--step--1);color:var(--muted)}.check{display:flex;gap:var(--sp-3);align-items:flex-start;padding:var(--sp-3);border:1.5px solid var(--line);border-radius:var(--r-md);background:var(--white);margin-bottom:var(--sp-3);cursor:pointer}.check:has(input:focus-visible){box-shadow:var(--ring)}.check input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--teal);flex-shrink:0}.check__text{font-size:var(--step-0);line-height:1.5}.check[data-invalid]{border-color:var(--danger);background:var(--danger-soft)}.summary{background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}.summary__row{display:flex;gap:var(--sp-4);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--line);font-size:var(--step-0)}.summary__row:last-child{border-bottom:0}.summary__key{color:var(--muted);min-width:104px;flex-shrink:0}.summary__val{font-weight:600;overflow-wrap:anywhere}.notice{border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);font-size:var(--step-0);margin-bottom:var(--sp-4);border:1px solid}.notice--info{background:var(--teal-soft);border-color:var(--teal-line);color:var(--ink-soft)}.notice--ok{background:var(--ok-soft);border-color:#b6e0c9;color:#14603c}.notice--warn{background:var(--warn-soft);border-color:#ecd9a4;color:var(--warn)}.notice--error{background:var(--danger-soft);border-color:#f3c4be;color:var(--danger)}.notice__title{font-weight:700;margin-bottom:var(--sp-1)}.notice__alts{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-3)}.notice__alt{background:var(--white);border:1.5px solid var(--teal);color:var(--teal-dark);border-radius:var(--r-pill);padding:.3rem .8rem;font-weight:700;font-size:var(--step--1);cursor:pointer;font-variant-numeric:tabular-nums}.notice__alt:hover{background:var(--teal);color:var(--white)}.actions{display:flex;gap:var(--sp-3);margin-top:var(--sp-5)}.btn{border:1.5px solid transparent;border-radius:var(--r-md);padding:.8rem 1.4rem;font-weight:700;font-size:var(--step-0);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);text-decoration:none;transition:background .15s ease,border-color .15s ease}.btn--primary{background:var(--teal);color:var(--white);flex:1}.btn--primary:hover:not(:disabled){background:var(--teal-dark)}.btn--ghost{background:var(--white);border-color:var(--line-strong);color:var(--ink-soft)}.btn--ghost:hover:not(:disabled){border-color:var(--faint)}.btn--danger{background:var(--white);border-color:var(--danger);color:var(--danger)}.btn--danger:hover:not(:disabled){background:var(--danger);color:var(--white)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn__spin{width:15px;height:15px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite;display:none}.btn[data-loading] .btn__spin{display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.loading{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-6) var(--sp-4);color:var(--muted);justify-content:center}.loading:before{content:"";width:18px;height:18px;border:2px solid var(--teal-line);border-top-color:var(--teal);border-radius:50%;animation:spin .7s linear infinite}.empty{text-align:center;padding:var(--sp-6) var(--sp-4);color:var(--muted);background:var(--white);border:1px dashed var(--line-strong);border-radius:var(--r-lg)}.empty__title{font-weight:700;color:var(--ink);margin-bottom:var(--sp-2)}.done{text-align:center;padding:var(--sp-6) var(--sp-4)}.done__mark{width:62px;height:62px;margin:0 auto var(--sp-4);border-radius:50%;background:var(--ok-soft);color:var(--ok);display:grid;place-items:center;font-size:30px;animation:pop .4s cubic-bezier(.2,.9,.3,1.4) both}@keyframes pop{0%{transform:scale(.6);opacity:0}}.done__title{font-size:var(--step-3);font-weight:800;margin-bottom:var(--sp-3)}.done__code{display:inline-block;font-family:var(--font-num);font-size:var(--step-1);letter-spacing:.06em;background:var(--surface);border:1px dashed var(--line-strong);border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-4);margin:var(--sp-4) 0}@media(min-width:720px){.main{padding-top:var(--sp-6)}.step__title{font-size:var(--step-4)}}
