:root{color-scheme:light dark;--bg:#fbf6ef;--surface:#ffffff;--surface-2:#f5ece1;--border:#e6d6c2;--text:#1c1814;--muted:#6b6056;--brand:#e85b1f;--brand-strong:#c44613;--brand-soft:#fce0d3;--accent:#167f7f;--accent-soft:#d6ecec;--ok:#2d8e44;--ok-soft:#d8efdf;--warn:#b0701a;--warn-soft:#f3e5cb;--danger:#c73a3a;--danger-soft:#f6dada;--radius:10px;--radius-sm:6px;--shadow-sm:0 1px 2px rgba(36,22,12,.06),0 1px 1px rgba(36,22,12,.04);--shadow-md:0 4px 14px rgba(36,22,12,.08);--tap:44px;--max-content:760px;--max-form:480px}@media (prefers-color-scheme:dark){:root{--bg:#181310;--surface:#221a14;--surface-2:#2a2118;--border:#3a2d22;--text:#f4ebde;--muted:#b3a392;--brand:#ff7a3f;--brand-strong:#ff9869;--brand-soft:#4a2515;--accent:#3eb1b1;--accent-soft:#173d3d;--ok-soft:#1d3a24;--warn-soft:#3e2f12;--danger-soft:#3e1717;--shadow-sm:0 1px 2px rgba(0,0,0,.35);--shadow-md:0 4px 18px rgba(0,0,0,.45)}}*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0}body{min-height:100vh;min-width:320px;background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif;font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3{margin:0 0 .4em;line-height:1.2;font-weight:600;letter-spacing:-.01em}h1{font-size:1.6rem}h2{font-size:1.2rem}h3{font-size:1.05rem}p{margin:0 0 1rem}a{color:var(--brand-strong);text-decoration:none}a:hover{text-decoration:underline}a:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:2px}hr{border:0;border-top:1px solid var(--border);margin:1.5rem 0}main{display:block;max-width:var(--max-content);margin:0 auto;padding:1.25rem 1rem 3rem}.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 1rem;background:var(--surface);border-bottom:1px solid var(--border);-webkit-backdrop-filter:saturate(150%) blur(6px);backdrop-filter:saturate(150%) blur(6px)}.brand{font-weight:700;font-size:1rem;color:var(--text);letter-spacing:-.01em}.brand:hover{text-decoration:none;color:var(--brand-strong)}.admin-link{font-size:.82rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.card-list{list-style:none;padding:0;margin:0;display:grid;grid-gap:.6rem;gap:.6rem}.card-list li{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:transform .08s ease,box-shadow .15s ease,border-color .15s ease}.card-list .card-row,.card-list a{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:1rem;min-height:var(--tap);color:var(--text);font-weight:500}.card-list a:hover{text-decoration:none}.card-list li:hover{box-shadow:var(--shadow-md);border-color:var(--brand)}.card-list a:after{content:"›";color:var(--muted);font-size:1.2rem}.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));grid-gap:.5rem;gap:.5rem;list-style:none;padding:0;margin:0 0 1.5rem}.slot-grid li{padding:.65rem .5rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);text-align:center;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:500;font-size:.95rem}.slot-grid li.is-available{color:var(--brand-strong);border-color:var(--brand-soft);background:var(--brand-soft)}.slot-grid li.is-taken{text-decoration:line-through}.slot-grid li.is-past,.slot-grid li.is-taken{color:var(--muted);background:var(--surface-2)}.slot-grid li.is-past{opacity:.7}.slot-grid .slot-status{display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;font-weight:500;margin-top:.15rem}form{max-width:var(--max-form);display:grid;grid-gap:.9rem;gap:.9rem}form.full-width{max-width:none}form p{margin:0}label{display:grid;grid-gap:.3rem;gap:.3rem;font-size:.9rem;color:var(--muted);font-weight:500}input[type=date],input[type=email],input[type=number],input[type=password],input[type=tel],input[type=text],input[type=time],select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.65rem .8rem;min-height:var(--tap);width:100%;transition:border-color .12s ease,box-shadow .12s ease}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}input[type=checkbox],input[type=radio]{width:1.15em;height:1.15em;accent-color:var(--brand);margin:0 .35rem 0 0;vertical-align:middle}.radio-list{display:grid;grid-gap:.4rem;gap:.4rem;padding:0;margin:0;list-style:none}.radio-list label{display:flex;align-items:center;flex-direction:row;background:var(--surface);border:1px solid var(--border);padding:.6rem .8rem;border-radius:var(--radius-sm);cursor:pointer;min-height:var(--tap);font-weight:500;color:var(--text)}.radio-list label:hover{border-color:var(--brand)}.radio-list input[type=radio]{margin-right:.6rem}.checkbox-row{display:flex;align-items:center;gap:.5rem;font-weight:500;color:var(--text)}.btn,button{font:inherit;font-weight:600;background:var(--brand);color:#fff;border:1px solid var(--brand-strong);border-radius:var(--radius-sm);padding:.7rem 1.1rem;min-height:var(--tap);cursor:pointer;transition:background .12s ease,transform .05s ease;letter-spacing:.01em}.btn:hover,button:hover{background:var(--brand-strong)}button:focus-visible{outline:2px solid var(--brand-strong);outline-offset:2px}button:active{transform:translateY(1px)}button[disabled]{opacity:.55;cursor:not-allowed}button.secondary{background:var(--surface);color:var(--text);border-color:var(--border)}button.secondary:hover{background:var(--surface-2)}button.danger{background:var(--danger);border-color:var(--danger)}button.danger:hover{background:#a02f2f;border-color:#a02f2f}button.ghost{background:transparent;border-color:transparent;color:var(--muted);padding:.4rem .6rem;min-height:0}button.ghost:hover{color:var(--text);background:var(--surface-2)}.alert,[role=alert]{background:var(--danger-soft);border:1px solid var(--danger);color:var(--danger);border-radius:var(--radius-sm);padding:.65rem .8rem;font-size:.92rem}.alert-info{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.alert-ok{background:var(--ok-soft);border-color:var(--ok);color:var(--ok)}.error{display:block;font-size:.82rem;color:var(--danger);margin-top:.2rem;font-weight:500}.empty-state{text-align:center;padding:1.8rem 1rem;color:var(--muted);background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius)}.admin-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 1rem;background:var(--surface-2);border-bottom:1px solid var(--border)}.admin-bar nav{display:flex;gap:1rem;flex-wrap:wrap}.admin-bar nav a{color:var(--text);font-weight:500;font-size:.92rem;padding:.3rem .15rem}.admin-bar nav a:hover{color:var(--brand-strong);text-decoration:none}.admin-bar form{display:inline;margin:0}.admin-bar button{padding:.45rem .9rem;min-height:0;font-size:.85rem}.booking-list{display:grid;grid-gap:.6rem;gap:.6rem;list-style:none;padding:0;margin:0 0 1.5rem}.booking-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.85rem 1rem;display:grid;grid-gap:.5rem;gap:.5rem;box-shadow:var(--shadow-sm)}.booking-row .row-head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;flex-wrap:wrap}.booking-row .time{font-size:1.15rem;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--brand-strong)}.booking-row .name{color:var(--text);font-weight:500}.booking-row .meta{display:flex;gap:.8rem;flex-wrap:wrap;font-size:.88rem;color:var(--muted)}.booking-row .meta a{color:var(--accent)}.booking-row .actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.25rem}.booking-row .actions form{display:inline;margin:0}.booking-row .actions button{font-size:.85rem;padding:.45rem .8rem;min-height:0}.pill{display:inline-flex;align-items:center;gap:.2rem;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:.18rem .55rem;border-radius:999px;background:var(--surface-2);color:var(--muted)}.pill.member{background:var(--accent-soft);color:var(--accent)}.pill.paid{background:var(--ok-soft);color:var(--ok)}.pill.attended{background:var(--brand-soft);color:var(--brand-strong)}.day-list{display:grid;grid-gap:.5rem;gap:.5rem;list-style:none;padding:0;margin:0 0 1.5rem}.day-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.8rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:.8rem;flex-wrap:wrap}.day-row .day-label{font-weight:500}.day-row .day-window{color:var(--muted);font-size:.9rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.success-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow-md);text-align:center}.success-card .check{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:999px;background:var(--ok-soft);color:var(--ok);font-size:1.6rem;font-weight:700;margin-bottom:.8rem}.success-card h1{color:var(--ok)}.success-card .slot-summary{background:var(--brand-soft);color:var(--brand-strong);border-radius:var(--radius-sm);padding:.8rem 1rem;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin:1rem 0}.muted,.subtle{color:var(--muted)}.subtle{font-size:.9rem}.center{text-align:center}.stack>*+*{margin-top:1rem}.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}