:root{--ink:#14212b;--muted:#5c6b76;--line:#d5dde3;--paper:#f3f6f8;--paper-2:#e8eef2;--accent:#0f766e;--accent-soft:#d7efeb;--danger:#b42318;--shadow:0 18px 40px #14212b14;--font-display:"Fraunces", Georgia, serif;--font-body:"Manrope", "Avenir Next", sans-serif}*{box-sizing:border-box}body{min-height:100vh;font-family:var(--font-body);color:var(--ink);background:radial-gradient(ellipse 80% 50% at 10% -10%, #cfe8e4 0%, transparent 55%), radial-gradient(ellipse 70% 45% at 100% 0%, #d9e4f0 0%, transparent 50%), linear-gradient(180deg, var(--paper) 0%, var(--paper-2) 100%);background-attachment:fixed;margin:0}#root{min-height:100vh}.shell{width:min(44rem,100% - 2rem);margin:0 auto;padding:2.5rem 0 5rem}.brand{animation:.7s both rise}.brand h1{font-family:var(--font-display);letter-spacing:-.03em;margin:0;font-size:clamp(3rem,10vw,4.5rem);font-weight:600;line-height:.95}.brand p{max-width:22rem;color:var(--muted);margin:.85rem 0 0;font-size:1.05rem;line-height:1.45}.panel{box-shadow:var(--shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffb8;border:1px solid #d5dde3e6;margin-top:2rem;padding:1.25rem 1.35rem 1.4rem;animation:.75s 80ms both rise}.panel+.panel{animation-delay:.16s}.panel h2{font-family:var(--font-display);margin:0 0 .35rem;font-size:1.35rem;font-weight:500}.panel-lead{color:var(--muted);margin:0 0 1rem;font-size:.92rem}label.field{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);flex-direction:column;gap:.4rem;margin:0;font-size:.8rem;font-weight:600;display:flex}select{border:1px solid var(--line);width:100%;color:var(--ink);font:inherit;text-transform:none;letter-spacing:0;background:#fff;border-radius:.35rem;padding:.7rem .8rem;font-size:1rem;font-weight:500}select:focus{outline:2px solid color-mix(in srgb, var(--accent) 45%, white);outline-offset:1px}.list{margin:0;padding:0;list-style:none}.row{border-top:1px solid var(--line);grid-template-columns:1fr auto;align-items:center;gap:.25rem 1rem;padding:1rem 0;animation:.55s both rise;display:grid}.row:first-of-type{border-top:none;padding-top:.25rem}.row strong{font-size:1.05rem;font-weight:600}.row .meta{color:var(--muted);grid-column:1;font-size:.9rem;line-height:1.35}.row button{grid-area:1/2/span 2}button{font:inherit;cursor:pointer;border-radius:.35rem;padding:.55rem .95rem;font-size:.92rem;font-weight:600;transition:transform .15s,background .15s,color .15s}button:disabled{cursor:not-allowed;opacity:.45}button.primary{border:1px solid var(--ink);background:var(--ink);color:#f8fafc}button.primary:hover:not(:disabled){background:var(--accent);border-color:var(--accent);transform:translateY(-1px)}button.ghost{border:1px solid var(--line);color:var(--ink);background:0 0}button.ghost:hover:not(:disabled){border-color:var(--ink);transform:translateY(-1px)}.status{letter-spacing:.02em;text-transform:uppercase;border-radius:.25rem;margin-left:.35rem;padding:.1rem .4rem;font-size:.75rem;font-weight:600;display:inline-block}.status.booked{background:var(--accent-soft);color:var(--accent)}.status.waitlisted{color:#6b5b3e;background:#ebe7df}.empty{color:var(--muted);margin:0}.error{border-left:3px solid var(--danger);color:var(--danger);background:#fef3f2;margin:1rem 0 0;padding:.75rem .9rem;animation:.4s both rise}@keyframes rise{0%{opacity:0;transform:translateY(.6rem)}to{opacity:1;transform:translateY(0)}}@media (width<=520px){.shell{width:min(100% - 1.25rem,44rem);padding-top:1.5rem}.row{grid-template-columns:1fr}.row button{grid-area:auto/1;justify-self:start;margin-top:.45rem}}
