:root{--paper:#F1F4EF;--surface:#FAFBF8;--ink:#0F2219;--muted:#586960;--line:#C9D3CB;--spruce:#1D5C46;--on-spruce:#F4F8F4;--tint:#E3EDE5;--offpeak:#DDE9DF;--peak:#EFE2BD;--amber:#A8690A;--booked:#E4E9E4;--flag:#B0372A;--focus:#1D5C46;--display:"Bricolage Grotesque","Avenir Next","Segoe UI",system-ui,sans-serif;--body:"Hanken Grotesk",system-ui,-apple-system,"Segoe UI",sans-serif}@media (prefers-color-scheme:dark){:root{--paper:#0D1611;--surface:#142019;--ink:#E6EEE7;--muted:#95A69B;--line:#2A3B31;--spruce:#5FBE95;--on-spruce:#0A1610;--tint:#1B2F25;--offpeak:#1B2E24;--peak:#3A3018;--amber:#E0A23A;--booked:#18231C;--flag:#E5705F;--focus:#5FBE95}}*{box-sizing:border-box}body,html{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.45 var(--body)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--spruce);text-decoration:none}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}h1,h2,h3{font-family:var(--display);letter-spacing:-.02em;margin:0}.wrap{max-width:640px;margin:0 auto;padding:0 18px 120px}.top{display:flex;justify-content:space-between;align-items:center;padding:16px 0}.brand{font:700 22px/1 var(--display);letter-spacing:-.02em;color:var(--ink)}.pill{border:1px solid var(--line);border-radius:999px;padding:7px 14px;font-weight:600;font-size:14px}.list,.pill{background:var(--surface)}.list{border:1px solid var(--line);border-radius:14px;overflow:hidden}.row{display:flex;gap:12px;align-items:center;width:100%;padding:14px;text-align:left;background:none;border:0;border-top:1px solid var(--line);min-height:58px}.row:first-child{border-top:0}.row:disabled{opacity:.5;cursor:not-allowed}.rm{flex:1 1;min-width:0;display:flex;flex-direction:column}.rt{font:600 17px/1.25 var(--display)}.rs{font-size:14px;color:var(--muted)}.rp{text-align:right;font:600 16px/1.2 var(--display);white-space:nowrap}.rp small{display:block;font:400 12px var(--body);color:var(--muted)}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{padding:10px 16px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font-weight:600}.chip[aria-pressed=true]{background:var(--spruce);border-color:var(--spruce);color:var(--on-spruce)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));grid-gap:6px;gap:6px}.slot{padding:9px 2px 8px;border-radius:9px;border:0;text-align:center;display:flex;flex-direction:column;gap:1px;line-height:1.2}.slot .t{font:600 15px var(--display)}.slot .p{font-size:13px;color:var(--muted)}.slot.p-off{background:var(--offpeak)}.slot.p-hi{background:var(--peak);box-shadow:inset 0 3px 0 var(--amber)}.slot.sel{background:var(--spruce);color:var(--on-spruce)}.slot:disabled{cursor:not-allowed;background:var(--booked);color:var(--muted)}.cta{border:0;background:var(--spruce);color:var(--on-spruce);font-weight:600;padding:13px 20px;border-radius:12px;min-height:46px}.cta:disabled{opacity:.4;cursor:not-allowed}.cta.full{width:100%;margin-top:12px}.ghost{border:1px solid var(--line);background:none;border-radius:12px;padding:12px 18px;font-weight:600;min-height:46px}.card{border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:16px}.muted{color:var(--muted)}.field{display:flex;flex-direction:column;gap:4px;font-size:14px}.field input,.field select,.field textarea{padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--paper);font-size:15px}.sticky-bar-spacer{height:0}.sticky-bar{position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--surface);border-top:1px solid var(--line);box-shadow:0 -8px 24px -12px rgba(0,0,0,.25);padding:12px 18px calc(12px + env(safe-area-inset-bottom, 0px))}.sticky-bar-inner{max-width:640px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px}.slot .left{font-size:11px;font-weight:600;color:var(--amber)}.slot.sel .left{color:inherit;opacity:.85}@keyframes skel-pulse{0%,to{opacity:.55}50%{opacity:1}}.skel{background:var(--line);border-radius:8px;animation:skel-pulse 1.3s ease-in-out infinite}.skel-row{height:56px;border-radius:14px;margin-bottom:1px}.skel-slot{height:52px;border-radius:9px}.empty-state{text-align:center;padding:32px 16px;border:1px dashed var(--line);border-radius:14px;background:var(--surface)}.empty-state .glyph{font-size:28px;display:block;margin-bottom:8px}.empty-state p{margin:0}.empty-state .sub{color:var(--muted);font-size:13px;margin-top:4px}