:root{--paper:#ece9e4;--paper-edge:#dcd8d1;--paper-ink:#17181a;--paper-faint:#8b8880;--shell-top:#3d4348;--shell:#2f3439;--shell-lo:#1f2327;--shell-seam:#14171a;--bezel:#474d53;--bezel-hi:#5a6167;--mouth:#0a0b0c;--shell-ink:#b9bfc4;--shell-ink-dim:#7e858b;--steel:#9aa0a4;--steel-lo:#61666a;--accent:#a7d8bd;--accent-deep:#3fa776;--accent-amber:#e4761f;--accent-lo:#b4571200;--amber:#ffd9a8;--ok:#ffd9a8;--warn:#d9483b;--tuck:.5rem;--printer-radius:1.15rem;--printer-inset:.75rem;--mono:ui-monospace, "SF Mono", "Roboto Mono", Menlo, monospace;--page-ink:#e8e6e2;--page-dim:#8a8f95;--page-display:"Georgia", "Iowan Old Style", "Palatino Linotype", "Book Antiqua", serif;--page-sans:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Inter, Helvetica, Arial, sans-serif;--hand:"Caveat", "Segoe Script", "Bradley Hand", cursive;--receipt-width:22rem;--stock-inset:2.6rem}*{box-sizing:border-box}body{min-height:100vh;color:var(--page-ink);font-family:var(--page-sans);background:radial-gradient(120% 90% at 50% 12%,#23262a 0%,#191b1e 45%,#131518 100%);margin:0}.wheel{background:var(--shell-lo);border-radius:.75rem;grid-template-columns:1fr 1fr;gap:.5rem;padding:.5rem;display:grid;box-shadow:inset 0 2px 6px #00000080}.wheel[data-disabled=true]{opacity:.4;pointer-events:none}.wheel__col{scroll-snap-type:y mandatory;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;height:8.5rem;margin:0;padding:0;list-style:none;overflow-y:auto;-webkit-mask-image:linear-gradient(#0000,#000 25% 75%,#0000);mask-image:linear-gradient(#0000,#000 25% 75%,#0000)}.wheel__col::-webkit-scrollbar{display:none}.wheel__col:focus-visible{outline:2px solid var(--accent);border-radius:.5rem}.wheel__opt{scroll-snap-align:center;text-align:center;color:var(--shell-ink-dim);cursor:pointer;letter-spacing:.04em;padding:.45rem .6rem;font-size:.8rem}.wheel__opt[aria-selected=true]{color:var(--paper);background:#ffffff0f;border-radius:.4rem}.wheel__empty{text-align:center;color:var(--shell-ink-dim);letter-spacing:.04em;grid-column:1/-1;margin:0;padding:1rem .5rem;font-size:.8rem}@media (prefers-reduced-motion:reduce){.wheel__col{scroll-behavior:auto}}.wheel__opt[data-taken=true]{color:var(--shell-ink-dim,#7e858b);opacity:.45;cursor:not-allowed;text-decoration:line-through;text-decoration-thickness:1px}.wheel__opt[data-taken=true]:hover{background:0 0}@media (pointer:coarse){.wheel__opt{justify-content:center;align-items:center;min-height:44px;display:flex}}.splitflap{color:var(--flap-ink,inherit);background:#000;border-radius:2px;gap:1px;display:flex;box-shadow:inset 0 1px 3px #000000e6}.splitflap__cell{text-align:center;background:linear-gradient(var(--flap-hi,#4a4239) 0 50%, var(--flap-lo,#38322b) 50% 100%);min-width:0;color:var(--flap-ink,var(--paper,#f4f1ea));font-variant-numeric:tabular-nums;border-radius:2px;flex:1 1 0;padding:.3em 0;position:relative;box-shadow:inset 0 1px #ffffff12,0 1px 1px #0009}.splitflap__cell:after{content:"";background:#000000b3;height:1px;position:absolute;top:50%;left:0;right:0;box-shadow:0 1px #ffffff0d}.splitflap__cell:not([data-settled]){color:#fff2df;background:linear-gradient(#5a5047 0 50%,#423a32 50% 100%);transform:scaleY(1.04)}@media (prefers-reduced-motion:reduce){.splitflap__cell:not([data-settled]){color:var(--flap-ink,var(--paper,#f4f1ea));background:linear-gradient(var(--flap-hi,#4a4239) 0 50%, var(--flap-lo,#38322b) 50% 100%);transform:none}}.readout{isolation:isolate;--flap-hi:#23211f;--flap-lo:#131211;--flap-ink:#f2e6d0;background:#08080a;border:1px solid #000;border-radius:.4rem;margin-top:.6rem;padding:.45rem;position:relative;overflow:hidden;box-shadow:inset 0 2px 8px #000000f2,0 1px #ffffff12,0 0 20px -6px #ffd6aa29}.readout__glass{pointer-events:none;z-index:2;background:linear-gradient(178deg,#ffffff14 0 12%,#0000 12%);position:absolute;inset:0}.readout__board{z-index:1;gap:1px;display:grid;position:relative}.readout__row{letter-spacing:0;width:100%;font-size:clamp(.62rem,3.4vw,.95rem)}.readout__row--fault{color:var(--accent);--flap-ink:#ffb27a}.readout__row--confirmed{color:var(--ok);--flap-ink:#9be3bd}.confirmed{text-align:center;color:var(--shell-ink);flex-direction:column;align-items:center;padding:2.4rem 1.5rem 2rem;display:flex}.confirmed__mark{margin-bottom:1.1rem;line-height:0}.confirmed__ring,.confirmed__tick{fill:none;stroke-linecap:round;stroke-linejoin:round}.confirmed__ring{stroke:color-mix(in srgb, var(--accent) 55%, transparent);stroke-width:2px;stroke-dasharray:150.8;stroke-dashoffset:150.8px;animation:.52s cubic-bezier(.2,.8,.3,1) forwards confirmed-ring}.confirmed__tick{stroke:var(--accent);stroke-width:3px;stroke-dasharray:36;stroke-dashoffset:36px;animation:.34s cubic-bezier(.2,.8,.3,1) .32s forwards confirmed-tick}@keyframes confirmed-ring{to{stroke-dashoffset:0}}@keyframes confirmed-tick{to{stroke-dashoffset:0}}.confirmed__title{letter-spacing:-.01em;color:var(--shell-ink);margin:0;font-size:1.45rem}.confirmed__when{font-family:var(--mono);letter-spacing:.04em;color:var(--accent);margin:.35rem 0 0;font-size:.92rem}.confirmed__ref{font-family:var(--mono);letter-spacing:.12em;color:var(--shell-ink-dim);margin:.5rem 0 0;font-size:.62rem}.confirmed__actions{flex-wrap:wrap;justify-content:center;gap:.6rem;width:100%;margin-top:1.6rem;display:flex}.confirmed__action{border:1px solid color-mix(in srgb, var(--shell-ink) 28%, transparent);min-width:11rem;color:var(--shell-ink);letter-spacing:.02em;background:0 0;border-radius:.55rem;flex:auto;padding:.8rem 1.1rem;font-size:.82rem;text-decoration:none;transition:border-color .16s,background .16s}.confirmed__action--primary{background:var(--accent);border-color:var(--accent);color:#0d1410;font-weight:600}.confirmed__action:hover{border-color:color-mix(in srgb, var(--shell-ink) 55%, transparent)}.confirmed__action--primary:hover{background:color-mix(in srgb, var(--accent) 88%, #fff)}.confirmed__action:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (pointer:coarse){.confirmed__action{place-items:center;min-height:48px;display:grid}}@media (prefers-reduced-motion:reduce){.confirmed__ring,.confirmed__tick{stroke-dashoffset:0;animation:none}.confirmed__action{transition:none}}.slide{margin-top:1.1rem}.slide__track{border:1px solid color-mix(in srgb, var(--shell-ink) 24%, transparent);background:color-mix(in srgb, var(--shell-ink) 6%, transparent);justify-content:space-between;align-items:center;height:2.9rem;padding:0 .55rem;display:flex;position:relative;overflow:hidden}.slide__end{font-family:var(--mono);letter-spacing:.16em;color:var(--shell-ink-dim);-webkit-user-select:none;user-select:none;pointer-events:none;font-size:.6rem;transition:color .16s}.slide__knob{--knob-w:44%;width:var(--knob-w);left:calc((100% - var(--knob-w)) * (.5 + var(--slide-offset,0) * .5));font-family:var(--mono);letter-spacing:.18em;background:var(--accent);color:#0d1410;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border:0;border-radius:0;place-items:center;font-size:.72rem;transition:left .22s cubic-bezier(.2,.85,.3,1);display:grid;position:absolute;top:.3rem;bottom:.3rem;box-shadow:inset 0 1px #ffffff40,0 2px 5px -2px #00000080}.slide__knob[data-dragging=true]{cursor:grabbing;transition:none}.slide__knob:focus-visible{outline:2px solid var(--accent);outline-offset:2px}:is(.slide__track:has(.slide__knob[style*="--slide-offset: 1"]) .slide__end--confirm,.slide__track:has(.slide__knob[style*="--slide-offset: -1"]) .slide__end--cancel){color:var(--shell-ink)}.slide[data-busy=true] .slide__knob{cursor:default;opacity:.75}.slide__hint{text-align:center;font-family:var(--mono);letter-spacing:.1em;color:var(--shell-ink-dim);margin:.45rem 0 0;font-size:.58rem}@media (pointer:coarse){.slide__track{height:52px}.slide__knob{font-size:.76rem;top:.35rem;bottom:.35rem}}@media (prefers-reduced-motion:reduce){.slide__knob,.slide__end{transition:none}}.bookform{font-family:var(--mono);letter-spacing:.03em;color:var(--shell-ink);flex-direction:column;margin:.2rem 0 0;font-size:.78rem;display:flex}.bookform__label{color:var(--shell-ink-dim);letter-spacing:.18em;margin:.75rem 0 .1rem;font-size:.62rem}.bookform__label:first-child{margin-top:.2rem}.bookform__input{font-family:var(--mono);letter-spacing:.02em;color:var(--shell-ink);border:0;border-bottom:1px solid color-mix(in srgb, var(--shell-ink) 26%, transparent);background:0 0;border-radius:0;outline:none;padding:.3rem .1rem .25rem;font-size:.82rem}.bookform__input:focus{border-bottom-style:solid;border-bottom-color:var(--shell-ink);background:color-mix(in srgb, var(--shell-ink) 7%, transparent)}.bookform__input::placeholder{color:var(--shell-ink-dim)}.bookform__input--area{resize:vertical;border:1px solid color-mix(in srgb, var(--shell-ink) 22%, transparent);min-height:3.2rem;padding:.4rem .45rem}.bookform__input--area:focus{border-style:solid}.bookform__error{text-align:center;color:var(--accent);letter-spacing:.06em;margin:.8rem 0 0;font-weight:700}.bookform__actions{gap:.5rem;margin-top:1.1rem;display:flex}.bookform__back,.bookform__submit{font-family:var(--mono);letter-spacing:.18em;cursor:pointer;border:1px solid color-mix(in srgb, var(--shell-ink) 30%, transparent);border-radius:0;flex:1;padding:.6rem;font-size:.74rem}.bookform__back{color:var(--shell-ink);background:0 0}.bookform__submit{background:var(--accent);color:#0d1410}.bookform__back:disabled,.bookform__submit:disabled{opacity:.4;cursor:not-allowed}@media (pointer:coarse){.bookform__input{min-height:44px;font-size:16px}.bookform__input--area{min-height:5rem}.bookform__submit{min-height:48px}}.bookform__input--sign{font-family:var(--hand);letter-spacing:.01em;color:var(--shell-ink);caret-color:var(--accent);padding-top:.1rem;padding-bottom:.05rem;font-size:1.45rem;line-height:1}@media (pointer:coarse){.bookform__input--sign{font-size:1.5rem}}.panel{color:var(--shell-ink);padding:1.6rem 1.4rem 1.5rem;animation:.28s cubic-bezier(.2,.8,.3,1) both panel-in}@keyframes panel-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.panel__summary{border-bottom:1px solid color-mix(in srgb, var(--shell-ink) 16%, transparent);margin:0 0 1.4rem;padding:0 0 1.2rem}.panel__row{justify-content:space-between;align-items:baseline;gap:1rem;padding:.3rem 0;display:flex}.panel__label{font-family:var(--mono);letter-spacing:.16em;color:var(--shell-ink-dim);font-size:.62rem}.panel__value{font-family:var(--mono);letter-spacing:.02em;color:var(--shell-ink);text-align:right;margin:0;font-size:.86rem}.panel__row:first-child .panel__value{color:var(--accent)}.printer{width:100%;max-width:calc(var(--receipt-width) + 2rem);--mouth-h:calc(.3rem + .6rem + 2px);font-family:var(--mono);color:var(--paper-ink);grid-template-columns:minmax(0,1fr);justify-items:stretch;margin:4rem auto;display:grid;position:relative}.printer__body{z-index:2;width:100%;padding:var(--printer-inset) var(--printer-inset) 0;border-radius:.3rem .3rem var(--printer-radius) var(--printer-radius);background:linear-gradient(180deg, var(--shell-top) 0, var(--shell) 3px, var(--shell) 62%, var(--shell-lo) 100%);border:1px solid var(--shell-seam);grid-area:2/1;position:relative;box-shadow:inset 0 1px #ffffff29,inset 1px 0 #ffffff0d,inset -1px 0 #ffffff0d,inset 0 -2px 3px #00000080,0 2px 3px #00000080,0 18px 30px -14px #000c,0 34px 60px -30px #000000e6}.printer__seam{border-top:1px solid var(--shell-seam);height:0;margin:.55rem -.75rem 0;position:relative;box-shadow:0 1px #ffffff12}.printer__tiers{grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:.6rem;display:grid}.printer__tier{font-family:var(--mono);letter-spacing:.08em;color:var(--shell-ink-dim);cursor:pointer;background:#ffffff0a;border:1px solid #00000080;border-radius:.5rem;padding:.65rem .4rem;font-size:.72rem;box-shadow:inset 0 1px #ffffff1a,inset 0 -2px 3px #00000059,0 1px #ffffff0d}.printer__tier[aria-pressed=true]{background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 88%, #fff) 0, var(--accent) 3px, color-mix(in srgb, var(--accent) 88%, #000) 100%);color:#0d1410;border-color:color-mix(in srgb, var(--accent) 60%, #000);box-shadow:inset 0 1px 0 #ffffff4d, 0 0 14px -2px color-mix(in srgb, var(--accent) 55%, transparent)}.printer__go{width:100%;font-family:var(--mono);letter-spacing:.2em;cursor:pointer;border:1px solid color-mix(in srgb, var(--accent) 55%, #000);background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 85%, #fff) 0, var(--accent) 4px, color-mix(in srgb, var(--accent) 82%, #000) 100%);color:#0d1410;box-shadow:inset 0 1px 0 #ffffff59, inset 0 -2px 4px #0000004d, 0 2px 0 color-mix(in srgb, var(--accent) 45%, #000), 0 6px 16px -6px color-mix(in srgb, var(--accent) 50%, transparent);border-radius:.5rem;margin:.6rem 0 .75rem;padding:.85rem;font-size:.78rem;font-weight:600;display:block}.printer__go:active:not(:disabled){box-shadow:inset 0 2px 5px #0006, 0 0 0 color-mix(in srgb, var(--accent) 45%, #000);transform:translateY(2px)}.printer__go:disabled{cursor:not-allowed;color:#6a7076;background:linear-gradient(#383d42 0,#2b2f34 100%);border-color:#00000080;box-shadow:inset 0 1px #ffffff0d,inset 0 -2px 3px #0000004d}.printer__body:before{content:"";border-radius:inherit;pointer-events:none;opacity:.3;mix-blend-mode:multiply;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/></filter><rect width='180' height='180' filter='url(%23n)' opacity='0.55'/></svg>");background-size:180px 180px;position:absolute;inset:0}.printer__body:after{content:"";border-radius:inherit;z-index:3;pointer-events:none;opacity:0;background:#060709b8;transition:opacity .26s;position:absolute;inset:0}.printer[data-printing=true] .printer__body:after{opacity:1}@media (prefers-reduced-motion:reduce){.printer__body:after{transition:none}}.printer__panel{z-index:4;background:var(--shell-lo);border:1px solid var(--shell-seam);border-radius:var(--printer-radius);grid-area:2/1;align-self:start;width:100%;animation:.32s cubic-bezier(.2,.8,.3,1) both printer-panel-in;position:relative;box-shadow:0 18px 40px -20px #000000e6}@keyframes printer-panel-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.printer__panel{animation:none}}.landing{--page-rule:#343a41;max-width:46rem;font-family:var(--page-sans);color:var(--page-ink);margin:0 auto;padding:3.5rem 1.5rem 4rem}.landing__head{margin-bottom:2.75rem}.landing__name{font-family:var(--page-display);letter-spacing:-.03em;margin:0;font-size:clamp(2.1rem,7.5vw,3.25rem);font-weight:500;line-height:1}.landing__tag{text-wrap:balance;letter-spacing:-.01em;max-width:34ch;color:var(--page-ink);margin:1.1rem 0 0;font-size:clamp(1.1rem,2.2vw,1.3rem);font-weight:400;line-height:1.4}.landing__tabs{border-bottom:1px solid var(--page-rule);gap:1.75rem;margin-bottom:2.25rem;display:flex}.landing__tab{appearance:none;min-height:44px;font:inherit;letter-spacing:-.005em;color:var(--page-dim);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:0 0 .7rem;font-size:1rem;font-weight:600;transition:color .12s,border-color .12s}@media (prefers-reduced-motion:reduce){.landing__tab{transition:none}}.landing__tab:hover{color:var(--page-ink)}.landing__tab[aria-selected=true]{color:var(--page-ink);border-bottom-color:var(--accent)}.landing__tab:focus-visible{outline:2px solid var(--page-ink);outline-offset:4px;border-radius:2px}.landing__panel:focus{outline:none}.landing__panel:focus-visible{outline:2px solid var(--page-rule);outline-offset:8px}.landing__section{margin-bottom:3.75rem}.landing__title{border-bottom:1px solid var(--page-rule);letter-spacing:.02em;color:var(--page-dim);margin:0 0 1rem;padding-bottom:.6rem;font-size:.8rem;font-weight:600}.landing__list{margin:0;padding:0;list-style:none}.landing__list--terse{flex-wrap:wrap;gap:.4rem 1.5rem;display:flex}.landing__list--terse .landing__item{align-items:baseline;gap:.5rem;padding:.25rem 0;display:flex}.landing__list--terse .landing__item-name:after{content:"—";color:var(--page-rule);margin-left:.5rem}.landing__item{grid-template-columns:minmax(7rem,10rem) 1fr;align-items:baseline;gap:.25rem 1.5rem;padding:.5rem 0;display:grid}.landing__item-name{letter-spacing:-.005em;font-size:1rem;font-weight:600}.landing__item-line{color:var(--page-dim);font-size:.875rem;line-height:1.55}@media (width<=38rem){.landing__item{grid-template-columns:1fr;gap:.2rem}}.landing__section--booking,.landing__machine{margin-top:0}.landing__foot{border-top:1px solid var(--page-rule);letter-spacing:.01em;color:var(--page-dim);margin-top:4rem;padding-top:1.25rem;font-size:.8rem}.admin{max-width:40rem;font-family:var(--page-sans);color:var(--page-ink);margin:0 auto;padding:2rem 1rem 7rem}.admin__head{margin-bottom:2rem}.admin__title{margin:0;font-size:1.5rem;font-weight:600}.admin__note{color:var(--page-dim);margin:.5rem 0 0;font-size:.875rem}.admin__row{border-top:1px solid #343a41;padding:1rem 0}.admin__label{letter-spacing:.02em;color:var(--page-dim);margin-bottom:.4rem;font-size:.7rem;display:block}.admin__input{width:100%;min-height:44px;color:var(--page-ink);font:inherit;background:#101215;border:1px solid #343a41;border-radius:6px;margin-bottom:.5rem;padding:.7rem .75rem;font-size:16px;line-height:1.4;display:block}.admin__input:focus-visible{outline:2px solid var(--page-ink);outline-offset:2px}.admin__input--name{font-weight:600}.admin__input--line{resize:vertical}.admin__bar{padding:.75rem 1rem;padding-bottom:calc(.75rem + env(safe-area-inset-bottom,0px));background:#16181b;border-top:1px solid #343a41;justify-content:space-between;align-items:center;gap:1rem;margin:0 -1rem;display:flex;position:sticky;bottom:0}.admin__count{color:var(--page-dim);font-size:.8rem}.admin__save{min-height:44px;font:inherit;color:#101215;background:var(--page-ink);cursor:pointer;border:0;border-radius:6px;padding:0 1.25rem;font-size:1rem;font-weight:600}.admin__save:disabled{opacity:.45;cursor:default}
