:root{--bg:#faf7f2;--bg-elevated:#fff;--surface:#fff;--surface-sunken:#f2ede5;--text:#191512;--text-muted:#7d7267;--text-faint:#a89d92;--accent:#c1552a;--accent-hover:#a9451f;--accent-soft:#fbeee7;--accent-text:#fff;--success:#2f7d4f;--warning:#b47b1e;--danger:#b83232;--border:#19151217;--border-strong:#19151229;--shadow-sm:0 1px 2px #1915120d, 0 1px 3px #1915120a;--shadow-md:0 4px 16px #19151214;--shadow-lg:0 -8px 40px #19151224;--radius-sm:10px;--radius:16px;--radius-lg:24px;--sheet-max:560px}@media (prefers-color-scheme:dark){:root{--bg:#131110;--bg-elevated:#1c1918;--surface:#201d1b;--surface-sunken:#171514;--text:#f4efe9;--text-muted:#a49a91;--text-faint:#7a7168;--accent:#e0703f;--accent-hover:#ef8253;--accent-soft:#2c211c;--accent-text:#17110e;--success:#5cb37e;--warning:#d9a94b;--danger:#e56a6a;--border:#f4efe91a;--border-strong:#f4efe92e;--shadow-sm:0 1px 2px #0006;--shadow-md:0 4px 16px #00000073;--shadow-lg:0 -8px 40px #0009}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Inter,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.45}body{padding-bottom:env(safe-area-inset-bottom)}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}input,textarea{font:inherit;color:inherit}a{color:inherit;text-decoration:none}::-webkit-scrollbar{width:0;height:0}h1,h2,h3{letter-spacing:-.02em;margin:0;font-weight:650}h1{font-size:26px;line-height:1.15}h2{font-size:20px;line-height:1.2}h3{font-size:16px;line-height:1.25}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.tabular{font-variant-numeric:tabular-nums}.shell{max-width:var(--sheet-max);background:var(--bg);min-height:100dvh;margin:0 auto;position:relative}.pad{padding-inline:16px}.venue-bar{z-index:30;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:saturate(180%)blur(16px);backdrop-filter:saturate(180%)blur(16px);border-bottom:1px solid var(--border);position:sticky;top:0}.venue-bar__row{align-items:center;gap:12px;padding:12px 16px 10px;display:flex}.venue-bar__mark{background:var(--accent);width:38px;height:38px;color:var(--accent-text);letter-spacing:-.03em;border-radius:11px;flex:none;place-items:center;font-size:17px;font-weight:700;display:grid}.venue-bar__name{letter-spacing:-.01em;font-size:15px;font-weight:600}.venue-bar__meta{color:var(--text-muted);font-size:12.5px}.venue-bar__guests{margin-left:auto;display:flex}.avatar{color:#fff;border:2px solid var(--bg);border-radius:50%;place-items:center;width:26px;height:26px;margin-left:-8px;font-size:11px;font-weight:650;display:grid}.catbar{scrollbar-width:none;scroll-snap-type:x proximity;gap:6px;padding:8px 16px 10px;display:flex;overflow-x:auto}.catbar__item{color:var(--text-muted);background:var(--surface-sunken);white-space:nowrap;scroll-snap-align:start;border-radius:999px;flex:none;padding:7px 14px;font-size:14px;font-weight:520;transition:color .18s,background .18s}.catbar__item[data-active=true]{background:var(--text);color:var(--bg);font-weight:580}.banners{scroll-snap-type:x mandatory;gap:10px;padding:4px 16px 16px;display:flex;overflow-x:auto}.banner{border-radius:var(--radius);color:#fff;scroll-snap-align:start;text-align:left;width:74%;max-width:300px;min-height:96px;box-shadow:var(--shadow-sm);flex-direction:column;flex:none;justify-content:flex-end;padding:16px;display:flex;position:relative;overflow:hidden}.banner:after{content:"";pointer-events:none;background:linear-gradient(160deg,#ffffff38,#0000 55%);position:absolute;inset:0}.banner__title{letter-spacing:-.02em;font-size:17px;font-weight:650}.banner__sub{opacity:.9;margin-top:2px;font-size:13px}.section{padding-top:8px;scroll-margin-top:108px}.section__head{align-items:baseline;gap:8px;padding:14px 16px 10px;display:flex}.section__desc{color:var(--text-muted);padding:0 16px 10px;font-size:13px}.grid{grid-template-columns:repeat(2,1fr);gap:12px;padding:0 16px;display:grid}.card{text-align:left;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);will-change:transform;flex-direction:column;transition:transform .16s cubic-bezier(.2,0,.2,1),box-shadow .16s;display:flex;overflow:hidden}.card:active{transform:scale(.975)}.card[data-out=true]{opacity:.55}.thumb{aspect-ratio:4/3;background-position:50%;background-size:cover;place-items:center;font-size:40px;display:grid;position:relative}.thumb__stop{color:#fff;text-align:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b8;border-radius:8px;padding:4px 8px;font-size:11px;font-weight:550;position:absolute;inset:auto 8px 8px}.card__body{flex-direction:column;flex:1;gap:4px;padding:10px 12px 12px;display:flex}.card__name{letter-spacing:-.01em;font-size:14.5px;font-weight:560;line-height:1.25}.card__meta{color:var(--text-faint);font-size:12px}.card__foot{justify-content:space-between;align-items:center;margin-top:auto;padding-top:8px;display:flex}.card__price{letter-spacing:-.01em;font-size:15px;font-weight:640}.plus{background:var(--accent-soft);width:30px;height:30px;color:var(--accent);border-radius:9px;flex:none;place-items:center;font-size:19px;font-weight:500;line-height:1;display:grid}.plus[data-count]:after{content:attr(data-count);background:var(--accent);color:var(--accent-text);border-radius:9px;place-items:center;min-width:17px;height:17px;padding:0 4px;font-size:10.5px;font-weight:700;display:grid;position:absolute;transform:translate(14px,-14px)}.tags{flex-wrap:wrap;gap:4px;display:flex}.tag{letter-spacing:.01em;color:#fff;white-space:nowrap;border-radius:6px;padding:2.5px 6px;font-size:10.5px;font-weight:600}.btn{letter-spacing:-.01em;border-radius:14px;justify-content:center;align-items:center;gap:8px;width:100%;padding:14px 20px;font-size:15.5px;font-weight:600;transition:transform .12s,background .16s,opacity .16s;display:inline-flex}.btn:active{transform:scale(.985)}.btn:disabled{opacity:.45;cursor:default;transform:none}.btn--primary{background:var(--accent);color:var(--accent-text)}.btn--primary:hover:not(:disabled){background:var(--accent-hover)}.btn--ghost{background:var(--surface-sunken);color:var(--text)}.btn--quiet{color:var(--text-muted);background:0 0;padding:10px;font-size:14px;font-weight:520}.btn--sm{border-radius:11px;width:auto;padding:9px 14px;font-size:14px}.fab-wrap{z-index:40;padding:12px 16px calc(12px + env(safe-area-inset-bottom));pointer-events:none;background:linear-gradient(to top, var(--bg) 45%, transparent);justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.fab{pointer-events:auto;width:100%;max-width:calc(var(--sheet-max) - 32px);background:var(--accent);color:var(--accent-text);border-radius:16px;align-items:center;gap:12px;padding:13px 16px;font-weight:600;transition:transform .14s;display:flex;box-shadow:0 8px 28px #c1552a59}.fab:active{transform:scale(.98)}.fab__count{font-variant-numeric:tabular-nums;background:#ffffff38;border-radius:8px;padding:3px 8px;font-size:13px}.fab__total{font-variant-numeric:tabular-nums;margin-left:auto}.scrim{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:50;background:#0a08076b;position:fixed;inset:0}.sheet{z-index:51;max-width:var(--sheet-max);background:var(--bg-elevated);max-height:92dvh;box-shadow:var(--shadow-lg);border-radius:24px 24px 0 0;flex-direction:column;margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0;overflow:hidden}.sheet__grip{background:var(--border-strong);border-radius:2px;flex:none;width:36px;height:4px;margin:8px auto 0}.sheet__scroll{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;overflow-y:auto}.sheet__foot{padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--bg-elevated);flex:none}.hero{aspect-ratio:16/10;background-position:50%;background-size:cover;place-items:center;font-size:76px;display:grid}.modgroup{border-top:1px solid var(--border);padding:16px 16px 4px}.modgroup__head{align-items:baseline;gap:8px;margin-bottom:10px;display:flex}.modgroup__hint{color:var(--text-faint);margin-left:auto;font-size:12px}.modgroup__req{color:var(--accent);background:var(--accent-soft);border-radius:5px;padding:2px 6px;font-size:11px;font-weight:600}.opt{text-align:left;border:1px solid #0000;border-radius:12px;align-items:center;gap:12px;width:100%;margin-bottom:4px;padding:11px 12px;transition:background .14s;display:flex}.opt[data-selected=true]{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 30%, transparent)}.opt[data-disabled=true]{opacity:.4}.opt__name{font-size:14.5px}.opt__price{color:var(--text-muted);font-variant-numeric:tabular-nums;margin-left:auto;font-size:13.5px}.mark{border:1.5px solid var(--border-strong);border-radius:50%;flex:none;place-items:center;width:20px;height:20px;transition:background .14s,border-color .14s;display:grid}.mark[data-square=true]{border-radius:6px}.mark[data-on=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.stepper{background:var(--surface-sunken);border-radius:12px;align-items:center;gap:2px;padding:3px;display:inline-flex}.stepper button{width:32px;height:32px;color:var(--text);border-radius:9px;place-items:center;font-size:17px;transition:background .14s;display:grid}.stepper button:active{background:var(--border)}.stepper button:disabled{opacity:.3}.stepper__value{text-align:center;font-variant-numeric:tabular-nums;min-width:26px;font-weight:600}.cart-block{padding:4px 16px 12px}.cart-block__title{letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint);align-items:center;gap:8px;padding:16px 0 8px;font-size:12.5px;font-weight:650;display:flex}.line{border-bottom:1px solid var(--border);gap:12px;padding:10px 0;display:flex}.line:last-child{border-bottom:none}.line__thumb{background:var(--surface-sunken);background-size:cover;border-radius:11px;flex:none;place-items:center;width:48px;height:48px;font-size:22px;display:grid}.line__name{font-size:14.5px;font-weight:540;line-height:1.3}.line__mods{color:var(--text-muted);margin-top:2px;font-size:12px}.line__comment{color:var(--warning);margin-top:2px;font-size:12px}.line__price{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:14px;font-weight:600}.line__who{color:var(--text-faint);align-items:center;gap:4px;font-size:11px;display:inline-flex}.line__dot{border-radius:50%;width:7px;height:7px;display:inline-block}.batch{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:10px;padding:12px 14px}.batch__head{align-items:center;gap:8px;margin-bottom:6px;display:flex}.batch__num{font-size:13px;font-weight:620}.batch__time{color:var(--text-faint);font-size:12px}.batch__total{font-variant-numeric:tabular-nums;margin-left:auto;font-size:14px;font-weight:620}.status{border-radius:7px;align-items:center;gap:5px;padding:3px 8px;font-size:11.5px;font-weight:600;display:inline-flex}.status[data-kind=pending_confirmation]{background:color-mix(in srgb, var(--warning) 16%, transparent);color:var(--warning)}.status[data-kind=sending]{background:var(--surface-sunken);color:var(--text-muted)}.status[data-kind=accepted]{background:color-mix(in srgb, var(--success) 15%, transparent);color:var(--success)}.status[data-kind=cooking]{background:color-mix(in srgb, var(--accent) 15%, transparent);color:var(--accent)}.status[data-kind=served]{background:var(--surface-sunken);color:var(--text-muted)}.status[data-kind=rejected],.status[data-kind=failed]{background:color-mix(in srgb, var(--danger) 15%, transparent);color:var(--danger)}.totals{padding:12px 16px 4px}.totals__row{color:var(--text-muted);justify-content:space-between;padding:4px 0;font-size:14px;display:flex}.totals__row--main{color:var(--text);border-top:1px solid var(--border);letter-spacing:-.01em;margin-top:6px;padding-top:10px;font-size:17px;font-weight:680}.totals__note{color:var(--text-faint);padding-top:8px;font-size:11.5px;line-height:1.4}.toast{z-index:70;background:var(--text);color:var(--bg);box-shadow:var(--shadow-md);text-align:center;border-radius:12px;max-width:calc(100% - 32px);padding:11px 16px;font-size:14px;font-weight:520;position:fixed;bottom:96px;left:50%;transform:translate(-50%)}.notice{background:color-mix(in srgb, var(--warning) 12%, transparent);color:var(--warning);border-radius:12px;margin:12px 16px;padding:12px 14px;font-size:13px;line-height:1.4}.center-state{text-align:center;place-content:center;gap:12px;min-height:100dvh;padding:32px;display:grid}.skeleton{background:linear-gradient(90deg, var(--surface-sunken) 25%, var(--border) 37%, var(--surface-sunken) 63%);border-radius:var(--radius);background-size:400% 100%;animation:1.4s infinite shimmer}@keyframes shimmer{0%{background-position:100%}to{background-position:0}}.spin{animation:.9s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.login{flex-direction:column;justify-content:center;min-height:100dvh;padding:24px 0;display:flex}.login__head{text-align:center;justify-items:center;padding:0 24px 28px;display:grid}.login__dots{justify-content:center;gap:14px;display:flex}.login__dot{border:1.5px solid var(--border-strong);border-radius:50%;width:13px;height:13px;transition:background .14s,border-color .14s,transform .14s}.login__dot[data-on=true]{background:var(--text);border-color:var(--text);transform:scale(1.06)}.login__dot[data-error=true]{border-color:var(--danger)}.login__dot[data-on=true][data-error=true]{background:var(--danger)}.login__error{text-align:center;color:var(--danger);min-height:20px;padding:12px 24px 4px;font-size:13.5px}.keypad{grid-template-columns:repeat(3,1fr);gap:12px;width:100%;max-width:340px;margin:0 auto;padding:8px 32px 24px;display:grid}.keypad__key{aspect-ratio:1.5;background:var(--surface);border:1px solid var(--border);font-variant-numeric:tabular-nums;border-radius:16px;font-size:24px;font-weight:500;transition:transform .1s,background .14s}.keypad__key:active{background:var(--surface-sunken);transform:scale(.95)}.keypad__key:disabled{opacity:.5}.keypad__key[data-kind=clear],.keypad__key[data-kind=back]{color:var(--text-muted);background:0 0;border-color:#0000;font-size:20px}.admin-bar{border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--bg) 90%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:20;align-items:center;gap:12px;padding:16px;display:flex;position:sticky;top:0}.admin-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-align:left;width:100%;margin-bottom:10px;padding:16px;display:block}.chip{background:var(--surface-sunken);color:var(--text-muted);border-radius:7px;align-items:center;gap:5px;padding:3px 8px;font-size:11.5px;font-weight:600;display:inline-flex}.chip[data-tone=accent]{background:var(--accent-soft);color:var(--accent)}.chip[data-tone=ok]{background:color-mix(in srgb, var(--success) 15%, transparent);color:var(--success)}.switch{background:var(--surface-sunken);border-radius:11px;gap:2px;padding:3px;display:inline-flex}.switch button{color:var(--text-muted);border-radius:9px;padding:7px 12px;font-size:13px;font-weight:550;transition:background .16s,color .16s}.switch button[data-on=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.qr-grid{grid-template-columns:repeat(2,1fr);gap:10mm;padding:16px;display:grid}.qr-card{border:1px dashed var(--border-strong);text-align:center;color:#191512;break-inside:avoid;background:#fff;border-radius:12px;justify-items:center;gap:8px;padding:14px 12px 16px;display:grid}.qr-card__brand{letter-spacing:.06em;text-transform:uppercase;font-size:15px;font-weight:700}.qr-card__lead{color:#7d7267;margin-top:-4px;font-size:12px}.qr-card__code{width:100%;max-width:150px}.qr-card__code svg{width:100%;height:auto;display:block}.qr-card__table{font-size:17px;font-weight:650}.qr-card__hall{color:#7d7267;margin-top:-6px;font-size:11.5px}.qr-card__hint{color:#a89d92;font-size:10.5px}@media print{@page{size:A4;margin:12mm}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html,body{color:#191512!important;background:#fff!important}.no-print{display:none!important}.shell{max-width:none}.qr-grid{grid-template-columns:repeat(2,1fr);gap:8mm;padding:0}.qr-card{page-break-inside:avoid;border-color:#cfc7bd}}:root{--chart-1:#c1552a;--chart-2:#2f6fb5;--chart-grid:#19151212}@media (prefers-color-scheme:dark){:root{--chart-1:#e0703f;--chart-2:#4d94e8;--chart-grid:#f4efe917}}.tiles{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px}.tile__label{color:var(--text-muted);font-size:12px}.tile__value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:4px;font-size:26px;font-weight:680;line-height:1.1}.tile__hint{color:var(--text-faint);margin-top:4px;font-size:11.5px}.chart{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 14px 12px;position:relative}.chart__head{align-items:baseline;gap:10px;margin-bottom:14px;display:flex}.legend{flex-wrap:wrap;gap:12px;display:flex}.legend__item{color:var(--text-muted);align-items:center;gap:6px;font-size:12px;display:inline-flex}.legend__swatch{border-radius:3px;width:9px;height:9px}.chart__plot{height:150px;position:relative}.chart__grid{flex-direction:column;justify-content:space-between;display:flex;position:absolute;inset:0}.chart__gridline{border-top:1px solid var(--chart-grid)}.chart__bars{align-items:flex-end;gap:3px;display:flex;position:absolute;inset:0}.chart__col{background:0 0;border-radius:4px 4px 0 0;flex-direction:column;flex:1;justify-content:flex-end;min-width:0;height:100%;padding:0;display:flex}.chart__col:hover .chart__seg,.chart__col:focus-visible .chart__seg{filter:brightness(1.12)}.chart__seg{width:100%;min-height:0}.chart__seg+.chart__seg{margin-top:2px}.chart__seg--top{border-radius:4px 4px 0 0}.chart__seg--bottom{border-radius:0 0 2px 2px}.chart__axis{color:var(--text-faint);gap:3px;margin-top:8px;font-size:10.5px;display:flex}.chart__axis span{text-align:center;flex:1;min-width:0;overflow:hidden}.chart__yhint{color:var(--text-faint);font-variant-numeric:tabular-nums;font-size:10.5px;position:absolute;top:44px;right:14px}.chart__tip{z-index:5;background:var(--text);color:var(--bg);pointer-events:none;white-space:nowrap;box-shadow:var(--shadow-md);border-radius:10px;padding:8px 10px;font-size:12px;line-height:1.4;position:absolute;transform:translate(-50%,-100%)}.rank{align-items:center;gap:10px;padding:7px 0;display:flex}.rank__name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:14px;overflow:hidden}.rank__bar{background:var(--chart-1);border-radius:3px;flex:none;height:6px}.rank__value{font-variant-numeric:tabular-nums;color:var(--text-muted);text-align:right;min-width:32px;font-size:13px}.data-table{border-collapse:collapse;width:100%;font-size:13px}.data-table th,.data-table td{text-align:right;border-bottom:1px solid var(--border);padding:7px 6px}.data-table th:first-child,.data-table td:first-child{text-align:left}.data-table th{color:var(--text-faint);text-transform:uppercase;letter-spacing:.03em;font-size:11.5px;font-weight:600}.data-table td{font-variant-numeric:tabular-nums}
