:root{--bg: #ebebeb;--surface: #ffffff;--text: #383838;--muted: #8a8a8a;--accent: #22362a;--accent-text: #ffffff;--op-refund: #3d7a55;--op-cancelled: #9a5b3d;--separator: rgba(56, 56, 56, .12);--radius: 16px;--gap: 12px;color-scheme:light}*,*:before,*:after{box-sizing:border-box}body{margin:0;padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom));background:var(--bg);color:var(--text);font:16px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}#app,.brand,.tabs{max-width:560px;margin-left:auto;margin-right:auto}.stack{display:flex;flex-direction:column;gap:var(--gap)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.brand{margin-bottom:16px;text-align:center}.wordmark{margin:0;font-size:22px;font-weight:600;letter-spacing:.28em;text-indent:.28em;color:var(--text)}.brand-sub{margin:4px 0 0;font-size:13px;letter-spacing:.04em;color:var(--muted)}.tabs{display:flex;gap:4px;padding:4px;margin-bottom:var(--gap);background:var(--surface);border:1px solid var(--separator);border-radius:12px;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity}.tabs::-webkit-scrollbar{display:none}.tab{flex:1 0 auto;scroll-snap-align:center;padding:9px 10px;border:none;border-radius:9px;background:transparent;color:var(--muted);font:inherit;font-weight:600;font-size:15px;cursor:pointer}.tabs-dense .tab{padding:9px 8px;font-size:14px}.tab-active{background:var(--accent);color:var(--accent-text)}.card{background:var(--surface);border-radius:var(--radius);padding:16px;border:1px solid var(--separator)}.card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}h2{margin:0;font-size:16px;font-weight:600}.label{margin:0;color:var(--muted);font-size:14px}.balance-card{text-align:center;padding:24px 16px}.balance{margin:6px 0 0;font-size:40px;font-weight:700;line-height:1.1;letter-spacing:-.02em;color:var(--accent);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.balance-unit{font-size:16px;font-weight:500;color:var(--muted)}.hint{margin:10px 0 0;color:var(--muted);font-size:13px}.badge{background:transparent;background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent);border-radius:999px;padding:3px 10px;font-size:13px;font-weight:600;white-space:nowrap}.visits{list-style:none;margin:0;padding:0}.visit{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--separator)}.visit:last-child{border-bottom:none}.visit:first-child{padding-top:8px}.visit-day+.visit-day{margin-top:18px}.visit-date{font-weight:500;margin:0;font-size:15px}.visit-op-kind{font-weight:500}.visit-sums{font-size:15px;font-variant-numeric:tabular-nums;white-space:nowrap}.op-earned{color:var(--accent)}.op-refund{color:var(--op-refund)}.op-spent{color:var(--text)}.op-cancelled{color:var(--op-cancelled)}.empty,.notice p{margin:8px 0 0;color:var(--muted);font-size:14px}.chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chip{flex:0 0 auto;padding:8px 14px;border:1px solid var(--separator);border-radius:999px;background:var(--surface);color:var(--text);font:inherit;font-size:14px;font-weight:600;white-space:nowrap;cursor:pointer}.chip-active{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.search{width:100%;padding:12px 14px;border:1px solid var(--separator);border-radius:12px;background:var(--surface);color:var(--text);font:inherit;font-size:15px;-webkit-appearance:none}.search::placeholder{color:var(--muted)}.dishes{list-style:none;margin:0;padding:0;display:grid;gap:var(--gap)}.dish-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:4px;flex-wrap:wrap}.stars{display:flex;gap:1px}.star{padding:2px 1px;border:none;background:transparent;color:var(--separator);font-size:17px;line-height:1;cursor:pointer;min-width:26px;min-height:26px}.star-on{color:var(--accent)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(88px,1fr));gap:8px;margin-top:10px}.stat{padding:10px 12px;border:1px solid var(--separator);border-radius:12px}.stat-value{margin:0;font-size:22px;font-weight:600;line-height:1.15;overflow-wrap:anywhere}.stat-label{margin:2px 0 0;font-size:12px;color:var(--muted)}.info-row{display:flex;gap:12px;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--separator);font-size:14px}.info-row:last-of-type{border-bottom:none}.info-label{color:var(--muted);flex:0 0 auto}.info-value{text-align:right;overflow-wrap:anywhere}.info-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.dish{display:flex;gap:12px;align-items:stretch;background:var(--surface);border:1px solid var(--separator);border-radius:var(--radius);overflow:hidden}.dish-photo{flex:0 0 96px;width:96px;align-self:stretch;min-height:96px;object-fit:cover;background:var(--separator)}.dish-photo-empty{background:var(--separator)}.dish-body{display:flex;flex-direction:column;justify-content:center;gap:3px;padding:12px 14px 12px 0;min-width:0}.dish-name{margin:0;font-size:14px;font-weight:600;line-height:1.3;overflow-wrap:anywhere}.dish-meta{margin:0;font-size:12px;color:var(--muted)}.dish-price{margin:2px 0 0;font-size:15px;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums}.btn{display:block;width:100%;padding:14px 16px;border:none;border-radius:12px;background:var(--accent);color:var(--accent-text);font:inherit;font-weight:600;text-align:center;text-decoration:none;cursor:pointer}.btn-sm{width:auto;flex:1 1 auto;padding:10px 12px;font-size:14px;border-radius:10px}.btn:active{opacity:.75}.notice{text-align:center}.notice .btn{margin-top:16px}.onboarding-progress{margin:0;font-size:13px;letter-spacing:.04em;color:var(--muted);text-transform:uppercase}.notice.stack{text-align:left}.notice.stack .btn{margin-top:0}.btn-link{background:transparent;color:var(--accent);border:1px solid var(--separator)}.onboarding-error{margin:0;font-size:14px;color:#b3261e}.skeleton{background:var(--separator);background:color-mix(in srgb,var(--muted) 22%,transparent);border-radius:8px;animation:pulse 1.4s ease-in-out infinite}.skeleton-label{height:14px;width:140px;margin:0 auto 12px}.skeleton-value{height:40px;width:180px;margin:0 auto}.skeleton-row{height:18px;margin:12px 0}.skeleton-row:nth-child(2){width:85%}.skeleton-row:nth-child(3){width:70%}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}@media(prefers-reduced-motion:reduce){.skeleton{animation:none}}.qr{margin-top:16px}.qr .btn{margin:0 auto;width:auto;padding:10px 18px;font-size:15px}.qr-code{display:block;width:100%;max-width:240px;height:auto;margin:14px auto 0;border-radius:8px}.qr .hint{margin-top:10px}.guest-name{margin:4px 0 0;font-size:22px;font-weight:600;overflow-wrap:anywhere}.guest-balance-label{margin-top:16px}.card .guest-name,.card .balance+.guest-stale{text-align:left}.guest-stale{color:var(--op-cancelled)}.calc{margin-top:20px;padding-top:16px;border-top:1px solid var(--separator)}.calc-field{display:block}.calc-field .label{display:block;margin-bottom:6px}.calc-field .search{font-size:16px}.calc-slider{width:100%;margin:18px 0 0;accent-color:var(--accent)}.calc-result{margin:10px 0 0;font-size:17px;font-variant-numeric:tabular-nums}.calc-place{margin-top:18px;padding-top:16px;border-top:1px solid var(--separator)}.calc-place .chips{margin-top:8px}.calc-table{margin-top:14px}select.search{appearance:auto;-webkit-appearance:auto;font-size:16px}.calc-place .btn{margin-top:16px}.btn:disabled{opacity:.5;cursor:default}.calc-error{color:#b3261e}.calc-done{margin-top:20px;padding-top:16px;border-top:1px solid var(--separator)}.staff .btn,.invite{margin-top:14px}.invite-text{margin:0 0 10px;padding:10px 12px;border-radius:10px;background:var(--bg);color:var(--muted);font-size:13px;overflow-wrap:anywhere}.staff-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--separator)}.staff-row:last-child{border-bottom:none;padding-bottom:0}.staff-row .btn{flex:0 0 auto}.staff-name{font-size:15px;overflow-wrap:anywhere}.staff-fired .staff-name{color:var(--muted)}.staff-mark{font-size:13px}
