:root{--hexpos:#db2777;--hexpos-hover:#be185d;--hexpos-soft:#fbcfe8;--hexpos-faint:#fdf2f8;--hexpos-focus-ring:0 0 0 3px #db277724;--neutral-50:#f9fafb;--neutral-100:#f3f4f6;--neutral-200:#e5e7eb;--neutral-400:#9ca3af;--neutral-500:#6b7280;--neutral-700:#374151;--ink:#111827;--radius:12px}*{box-sizing:border-box}body{color:var(--ink);background:var(--neutral-50);margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.45}main{max-width:34rem;margin:0 auto;padding:1rem 1rem 6rem}h1{margin:.25rem 0 1rem;font-size:1.4rem}h2{margin:1.5rem 0 .5rem;font-size:1.05rem}h3{margin:0 0 .15rem;font-size:.95rem}button{font:inherit;border-radius:var(--radius);background:var(--hexpos);color:#fff;cursor:pointer;border:1.5px solid #0000;min-height:44px;padding:.6rem 1rem}button:hover:not(:disabled){background:var(--hexpos-hover)}button:disabled{opacity:.5;cursor:default}button.secondary{color:var(--ink);border-color:var(--neutral-200);background:#fff}button.quiet{color:var(--hexpos);background:0 0;border:none;min-height:auto;padding:.2rem .35rem;text-decoration:underline}input,textarea,select{font:inherit;border:1.5px solid var(--neutral-200);border-radius:var(--radius);width:100%;min-height:44px;color:var(--ink);background:#fff;padding:.55rem .7rem}input::placeholder,textarea::placeholder{color:var(--neutral-400);opacity:1}:focus-visible{border-color:var(--hexpos);box-shadow:var(--hexpos-focus-ring);outline:none}label{color:var(--neutral-700);margin-bottom:.75rem;font-size:.85rem;display:block}label input[type=checkbox]{width:auto;min-height:auto;margin-right:.5rem}.card{border:1px solid var(--neutral-200);border-radius:var(--radius);background:#fff;margin-bottom:.6rem;padding:.75rem}.row{align-items:center;gap:.75rem;display:flex}.grow{flex:1;min-width:0}.muted{color:var(--neutral-500);font-size:.85rem}.price{font-variant-numeric:tabular-nums;white-space:nowrap}.option-group{border-top:1px solid var(--neutral-200);margin-top:.6rem;padding-top:.6rem}.option-group>.muted{margin:0 0 .35rem}.option-group>.muted:last-child{margin:.35rem 0 0}.option-row{margin-bottom:.25rem}.option-row>span[data-testid^=option-count-]{text-align:center;font-variant-numeric:tabular-nums;min-width:1.5rem}.option-row button{min-width:2.75rem;min-height:2.75rem}.group-card>summary{cursor:pointer;align-items:center;gap:.5rem;min-height:44px;list-style:none;display:flex}.group-card>summary::-webkit-details-marker{display:none}.group-card>summary:after{content:"";border-right:2px solid var(--neutral-500);border-bottom:2px solid var(--neutral-500);flex:none;width:.5rem;height:.5rem;transform:rotate(45deg)translate(-.15rem,-.15rem)}.group-card[open]>summary:after{transform:rotate(-135deg)translate(-.15rem,-.15rem)}.group-card>.card{border:none;border-radius:0;margin-bottom:0;padding:.5rem 0 0}.group-card>.card+.card{border-top:1px solid var(--neutral-200)}.badge{background:var(--hexpos-faint);color:var(--hexpos-hover);border:1px solid var(--hexpos-soft);border-radius:999px;padding:.1rem .4rem;font-size:.7rem;font-weight:600;display:inline-block}.join-code{letter-spacing:.35em;text-indent:.35em;text-align:center;color:var(--hexpos);margin:.5rem 0;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:2.6rem}.cart-bar{border-top:1px solid var(--neutral-200);padding:.75rem 1rem;padding-bottom:max(.75rem, env(safe-area-inset-bottom));background:#fff;align-items:center;gap:.75rem;display:flex;position:fixed;bottom:0;left:0;right:0}.cart-bar .grow{font-weight:600}.lang{justify-content:flex-end;gap:.25rem;margin-bottom:.5rem;display:flex}.lang button{min-height:32px;color:var(--neutral-500);border-color:var(--neutral-200);background:#fff;padding:.2rem .6rem;font-size:.85rem}.lang button[aria-pressed=true]{background:var(--hexpos-faint);color:var(--hexpos-hover);border-color:var(--hexpos-soft)}[role=alert]{color:#b91c1c}.login{flex-direction:column;justify-content:center;align-items:center;gap:2rem;min-height:100dvh;padding:2.5rem 1rem;display:flex}.login-head{text-align:center}.login-lockup{width:auto;height:36px;margin:0 auto .5rem;display:block}.login-subtitle{color:var(--neutral-500);margin:0;font-size:.875rem}.login-card{border:1px solid var(--neutral-200);border-radius:var(--radius);background:#fff;width:100%;max-width:24rem;padding:1.5rem;box-shadow:0 1px 2px #1118270d}.login-card form{flex-direction:column;gap:1rem;display:flex}.login-card label{flex-direction:column;gap:.375rem;font-size:.875rem;font-weight:500;display:flex}.login-card input{font:inherit;border:1px solid var(--neutral-200);color:var(--ink);background:#fff;border-radius:8px;padding:.625rem .75rem}.login-card input:focus-visible{border-color:var(--hexpos);box-shadow:var(--hexpos-focus-ring);outline:none}.login-card button{font:inherit;background:var(--hexpos);color:#fff;cursor:pointer;border:0;border-radius:8px;padding:.625rem 1rem;font-weight:600}.login-card button:hover:not(:disabled){background:var(--hexpos-hover)}.login-card button:disabled{opacity:.6;cursor:default}.login-error{color:#b91c1c;margin:0;font-size:.875rem}.login-language{font:inherit;color:var(--hexpos);cursor:pointer;background:0 0;border:0;padding:0;font-size:.875rem;font-weight:500}.login-language:hover{text-decoration:underline}.active-person{align-items:center;gap:.5rem;display:flex}.active-person-name{font-weight:600}.active-person .device-name{margin-right:auto;font-size:.8rem}.staff-head{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.person-overlay{z-index:50;background:#0f172a8c;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.person-panel{border-radius:var(--radius);background:#fff;width:100%;max-width:26rem;max-height:100%;padding:1rem 1.25rem 1.25rem;overflow-y:auto}.person-panel h2{margin-top:.5rem}.person-grid{gap:.5rem;margin-bottom:.75rem;display:grid}.person-grid button{min-height:56px;font-size:1.05rem}.pin-dots{gap:.75rem;margin:.75rem 0;display:flex}.pin-dots span{background:var(--neutral-200);border-radius:999px;width:.75rem;height:.75rem}.pin-dots span.on{background:var(--ink)}.pin-grid{grid-template-columns:repeat(3,1fr);gap:.5rem;display:grid}.pin-grid button{min-height:56px;font-size:1.15rem}.person-panel>button.quiet,.pin-pad>button.quiet{min-height:44px;padding:.6rem 1rem}@keyframes person-shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}.pin-pad.shake{animation:.18s ease-in-out 2 person-shake}@media (prefers-reduced-motion:reduce){.pin-pad.shake{animation:none}}
