.rsv{--rsv-ink:var(--color-ink);--rsv-soft:#eef3f8;--rsv-shine:#f7fafc;--rsv-pick:var(--color-brand-deep);--rsv-ok:var(--color-cta);max-width:36rem;min-height:100dvh;color:var(--color-text);align-content:start;gap:1.1rem;margin:0 auto;padding:clamp(1.75rem,5vw,3.25rem) 1rem 2.5rem;display:grid}[data-theme=dark] .rsv{--rsv-soft:var(--color-surface-2);--rsv-shine:#213441;--rsv-ok:var(--color-cta-ink)}body:has(.rsv){background:linear-gradient(180deg, var(--color-surface-2) 0, var(--color-surface) 22rem)}[data-theme=dark] body:has(.rsv){background:linear-gradient(180deg, var(--color-surface) 0, var(--color-paper) 22rem)}.rsv__head{gap:.35rem;padding:0 .25rem .4rem;display:grid}.rsv__eyebrow{font-size:var(--text-eyebrow);letter-spacing:.12em;text-transform:uppercase;color:var(--color-accent-deep);margin:0;font-weight:700}.rsv__name{font-family:var(--font-heading);color:var(--rsv-ink);text-wrap:balance;margin:0;font-size:clamp(1.9rem,1.4rem + 2.6vw,2.75rem);font-weight:750;line-height:1.08}.rsv__meta{color:var(--color-text-muted);font-size:var(--text-small);margin:0}.rsv__meta a{color:inherit;text-underline-offset:.18em}.rsv__greet{color:var(--rsv-ink);margin:.35rem 0 0;font-size:1.05rem}.rsv__note{border-left:3px solid var(--color-accent);background:color-mix(in srgb, var(--color-card) 70%, transparent);font-size:var(--text-small);white-space:pre-line;border-radius:0 8px 8px 0;margin:.5rem 0 0;padding:.7rem .9rem}.rsv__loading{text-align:center;color:var(--color-text-muted);padding:2rem 0}.rsv__card{background:var(--color-card);border-radius:var(--radius-card);box-shadow:var(--shadow-card);gap:.8rem;padding:clamp(1.1rem,3vw,1.6rem);display:grid}.rsv__label{font-family:var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);margin:.35rem 0 -.2rem;font-size:.78rem;font-weight:700}.rsv__label:first-child{margin-top:0}.rsv__party,.rsv__days{scroll-snap-type:x proximity;scrollbar-width:thin;gap:.5rem;margin:0 -.1rem;padding:.15rem .1rem .35rem;display:flex;overflow-x:auto}.rsv__chip{scroll-snap-align:start;border:1px solid var(--color-line);background:var(--color-card);min-width:2.9rem;min-height:2.9rem;color:var(--rsv-ink);font:inherit;font-variant-numeric:tabular-nums;cursor:pointer;transition:background var(--transition), border-color var(--transition), color var(--transition);border-radius:12px;flex:none;padding:.35rem .8rem;font-weight:600}.rsv__chip:hover{border-color:var(--color-heading-dark)}.rsv__chip[aria-pressed=true]{background:var(--rsv-pick);border-color:var(--rsv-pick);color:#fff}.rsv__chip:focus-visible,.rsv__cta:focus-visible,.rsv__button:focus-visible,.rsv__link:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.rsv__day{justify-items:center;gap:.05rem;min-width:3.9rem;padding:.45rem .55rem;line-height:1.15;display:grid}.rsv__day small{letter-spacing:.04em;text-transform:uppercase;opacity:.75;font-size:.72rem;font-weight:600}.rsv__day strong{font-size:1.15rem}.rsv__other-day{font-size:var(--text-small);color:var(--color-text-muted);align-items:center;gap:.6rem;display:flex}.rsv__date{font:inherit;border:1px solid var(--color-line);color:var(--color-text);background:var(--color-card);border-radius:8px;padding:.35rem .5rem}.rsv__times{gap:.9rem;min-height:3rem;display:grid}.rsv__group{gap:.45rem;display:grid}.rsv__group h3{font-size:var(--text-small);color:var(--color-text-muted);margin:0;font-weight:600}.rsv__grid{grid-template-columns:repeat(auto-fill,minmax(4.8rem,1fr));gap:.45rem;display:grid}.rsv__grid .rsv__chip{min-width:0}.rsv__notice,.rsv__hint{background:var(--rsv-soft);color:var(--rsv-ink);font-size:var(--text-small);border-radius:10px;margin:0;padding:.7rem .85rem}.rsv__skeleton{background:linear-gradient(90deg, var(--rsv-soft), var(--rsv-shine), var(--rsv-soft));background-size:200% 100%;border-radius:12px;height:2.9rem;animation:1.2s linear infinite rsv-shimmer}@keyframes rsv-shimmer{to{background-position:-200% 0}}.rsv__chosen{border-bottom:1px solid var(--color-line);justify-content:space-between;align-items:baseline;gap:.75rem;padding-bottom:.7rem;display:flex}.rsv__summary{font-family:var(--font-heading);color:var(--rsv-ink);margin:0;font-size:1.2rem;font-weight:700}.rsv__fields{gap:.75rem;display:grid}.rsv__field{font-size:var(--text-small);color:var(--rsv-ink);gap:.3rem;font-weight:600;display:grid}.rsv__field small{color:var(--color-text-muted);font-weight:400}.rsv__field input,.rsv__field textarea,.rsv__keep-url{font:inherit;border:1px solid var(--color-line);background:var(--color-field);width:100%;min-height:2.9rem;color:var(--color-text);border-radius:10px;padding:.6rem .75rem;font-size:1rem;font-weight:400}.rsv__field input:focus,.rsv__field textarea:focus{outline:2px solid var(--color-accent);outline-offset:1px;border-color:var(--color-accent)}.rsv__field [aria-invalid=true]{border-color:var(--color-danger)}.rsv__consent{font-size:var(--text-small);color:var(--color-text);align-items:flex-start;gap:.6rem;display:flex}.rsv__consent input{flex:none;width:1.15rem;height:1.15rem;margin-top:.15rem}.rsv__trap{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.rsv__error{background:var(--color-danger-soft);color:var(--color-danger-ink);font-size:var(--text-small);border-radius:10px;margin:0;padding:.7rem .85rem}.rsv__cta{background:var(--color-cta);color:#fff;min-height:3.25rem;font:inherit;cursor:pointer;transition:background var(--transition), transform var(--transition);border:0;border-radius:12px;font-size:1.05rem;font-weight:700}.rsv__cta:hover{background:var(--color-cta-dark)}.rsv__cta:active{transform:translateY(1px)}.rsv__cta[disabled]{opacity:.65;cursor:progress}.rsv__fine{color:var(--color-text-muted);text-align:center;margin:0;font-size:.82rem}.rsv__link{font:inherit;font-size:var(--text-small);color:var(--color-brand);text-underline-offset:.18em;cursor:pointer;background:0 0;border:0;justify-self:start;padding:0;font-weight:600;text-decoration:underline}.rsv__done,.rsv__manage,.rsv__missing{text-align:center;justify-items:center}.rsv__tick svg{width:3.5rem;height:3.5rem}.rsv__tick circle{fill:var(--color-success-soft);stroke:var(--rsv-ok);stroke-width:2px}.rsv__tick path{fill:none;stroke:var(--rsv-ok);stroke-width:3.5px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:30;stroke-dashoffset:30px;animation:rsv-draw .5s .15s var(--ease-out) forwards}@keyframes rsv-draw{to{stroke-dashoffset:0}}@media (prefers-reduced-motion:reduce){.rsv__tick path{stroke-dashoffset:0;animation:none}.rsv__skeleton{animation:none}}.rsv__done-title{font-family:var(--font-heading);color:var(--rsv-ink);text-wrap:balance;margin:0;font-size:clamp(1.5rem,1.2rem + 1.4vw,1.9rem)}.rsv__done-when{color:var(--rsv-ink);margin:0;font-size:1.1rem;font-weight:600}.rsv__facts{flex-wrap:wrap;justify-content:center;gap:.75rem 1.75rem;margin:.2rem 0;display:flex}.rsv__facts div{gap:.1rem;display:grid}.rsv__facts dt{letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);font-size:.72rem;font-weight:700}.rsv__facts dd{color:var(--rsv-ink);margin:0;font-weight:600}.rsv__code{font-family:var(--font-mono);letter-spacing:.12em}.rsv__done-mail{font-size:var(--text-small);color:var(--color-text-muted);margin:0}.rsv__keep{background:var(--rsv-soft);text-align:left;border-radius:12px;gap:.55rem;width:100%;padding:.9rem;display:grid}.rsv__keep p{font-size:var(--text-small);margin:0}.rsv__keep-url{font-family:var(--font-mono);min-height:2.5rem;font-size:.82rem}.rsv__actions{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.rsv__keep .rsv__actions{justify-content:flex-start}.rsv__button{border:1px solid var(--color-line);background:var(--color-card);min-height:2.6rem;color:var(--rsv-ink);font:inherit;font-size:var(--text-small);cursor:pointer;border-radius:10px;padding:.45rem 1rem;font-weight:600}.rsv__button:hover{border-color:var(--color-heading-dark)}.rsv__button--danger{color:var(--color-danger-ink);border-color:var(--color-danger-line)}.rsv__button--primary{background:var(--rsv-pick);border-color:var(--rsv-pick);color:#fff}.rsv__button--primary:hover{border-color:var(--rsv-ink)}.rsv__button:disabled{opacity:.55;cursor:default}.rsv__change{background:var(--rsv-soft);text-align:left;border-radius:12px;gap:.6rem;width:100%;padding:.9rem;display:grid}.rsv__change .rsv__notice,.rsv__change .rsv__hint{background:var(--color-card)}.rsv__change .rsv__actions{justify-content:flex-start}.rsv__change .rsv__button--primary{flex:auto}.rsv__manage>.rsv__actions{grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));width:100%;display:grid}.rsv__changed{font-size:var(--text-small);color:var(--color-success-ink);margin:0;font-weight:600}.rsv__confirm{background:color-mix(in srgb, var(--color-danger-soft) 55%, var(--color-card));border-radius:12px;gap:.6rem;width:100%;padding:.9rem;display:grid}.rsv__confirm p{font-size:var(--text-small);margin:0}.rsv__badge{border-radius:var(--radius-pill);background:var(--color-success-soft);color:var(--color-success-ink);letter-spacing:.04em;margin:0;padding:.25rem .75rem;font-size:.8rem;font-weight:700}.rsv__badge[data-tone=off]{background:var(--rsv-soft);color:var(--color-text-muted)}.rsv__foot{text-align:center;color:var(--color-text-muted);margin-top:.5rem;font-size:.8rem}.rsv__foot a{color:inherit}.rsv__done .rsv__link,.rsv__manage .rsv__link{justify-self:center}.rsv__wait-code{font-family:var(--font-mono);letter-spacing:.08em;color:var(--rsv-ink);font-variant-numeric:tabular-nums;margin:.25rem 0 0;font-size:clamp(3rem,2.2rem + 5vw,4.5rem);font-weight:700;line-height:1}.rsv__party .rsv__chip{min-width:2.9rem}.rsv__more{scroll-snap-align:start;color:var(--rsv-ink);flex:none;display:inline-flex;position:relative}.rsv__more select{appearance:none;text-align:center;padding-right:1.75rem}.rsv__more[data-picked=true]{color:#fff}.rsv__more[data-picked=true] select{background:var(--rsv-pick);border-color:var(--rsv-pick);color:#fff}.rsv__more select option{background:var(--color-card);color:var(--color-text)}.rsv__more:after{content:"";pointer-events:none;border-bottom:2px solid;border-right:2px solid;width:.4rem;height:.4rem;position:absolute;top:50%;right:.75rem;transform:translateY(-70%)rotate(45deg)}.rsv [hidden]{display:none!important}
