:root{--bg:#f6f3ee;--surface:#ffffff;--ink:#1d211f;--muted:#6a706c;--line:#e4dfd6;--brand:#1f3a2e;--brand-ink:#ffffff;--accent:#c8643b;--ok:#2e7d4f;--error:#b3261e;--error-bg:#fdecea;--test:#8a5a00;--test-bg:#fff4d6;--radius:14px;--shadow:0 6px 24px rgba(20,30,25,0.12)}@media (prefers-color-scheme:dark){:root{--bg:#121513;--surface:#1b1f1d;--ink:#eef0ee;--muted:#a3aaa6;--line:#2c322f;--brand:#8fc7a8;--brand-ink:#0f1a14;--accent:#e08a62;--ok:#7fd1a0;--error:#ff8a80;--error-bg:#3a1d1b;--test:#ffd27a;--test-bg:#3a2f14;--shadow:0 6px 24px rgba(0,0,0,0.5)}}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:64px}body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.4;-webkit-text-size-adjust:100%}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:not-allowed}h1,h2{margin:0;line-height:1.2}h1{font-size:1.6rem}h2{font-size:1.2rem}.shell{max-width:560px;margin:0 auto;padding:0 16px calc(24px + env(safe-area-inset-bottom))}.muted{color:var(--muted)}.small{font-size:.875rem}.center{text-align:center}.center-block{display:block;margin:12px auto 0}.venue-header{padding:20px 0 12px}.venue-header p{margin:4px 0 0}.brand{font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:6px}.fee-banner{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:10px;padding:10px 12px;font-size:.9rem;margin-bottom:8px}.cat-nav{position:-webkit-sticky;position:sticky;top:0;z-index:5;display:flex;gap:8px;overflow-x:auto;margin:0 -16px;padding:10px 16px;background:var(--bg);scrollbar-width:none}.cat-nav a{flex:none;padding:7px 14px;border-radius:999px;background:var(--surface);border:1px solid var(--line);color:var(--ink);text-decoration:none;font-size:.9rem;font-weight:600}.category{margin-top:12px}.category h2{margin:8px 0}.items{list-style:none;margin:0;padding:0;display:grid;grid-gap:8px;gap:8px}.item{width:100%;display:flex;gap:12px;align-items:center;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px;min-height:64px}.item:not(:disabled):active{transform:scale(.99)}.item-text{flex:1 1;min-width:0}.item-name{font-weight:650}.item-side{display:flex;align-items:center;gap:10px;flex:none}.price{font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.add-pill{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--brand);color:var(--brand-ink);font-weight:700;font-size:1.1rem}.item.sold-out{opacity:.55}.item.sold-out .item-name{text-decoration:line-through}.sold-out-tag{font-size:.8rem;font-weight:700;color:var(--error);border:1px solid;padding:2px 8px;border-radius:999px}.menu-spacer{height:96px}.cart-bar-wrap{position:fixed;left:0;right:0;bottom:0;z-index:10;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:linear-gradient(transparent,var(--bg) 35%)}.cart-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;max-width:528px;margin:0 auto;background:var(--brand);color:var(--brand-ink);border:0;border-radius:var(--radius);padding:16px 18px;font-weight:700;font-size:1.05rem;box-shadow:var(--shadow)}.cart-count{background:var(--brand-ink);color:var(--brand);border-radius:999px;min-width:28px;padding:2px 8px;text-align:center}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-top:8px}.panel h2{margin:8px 0 12px}.link-btn{background:none;border:0;padding:6px 0;color:var(--brand);font-weight:600}.cart-lines{list-style:none;margin:0;padding:0}.cart-line{display:flex;gap:12px;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line)}.cart-lines.compact .cart-line{padding:8px 0}.cart-line-main{min-width:0}.cart-line-name{font-weight:600}.mods{color:var(--muted);margin-top:2px}.cart-line-side{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.line-total{font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.stepper{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;overflow:hidden}.stepper button{width:40px;height:40px;border:0;background:transparent;font-size:1.15rem}.stepper button:disabled{opacity:.35}.stepper span{min-width:28px;text-align:center;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.table-field{margin:18px 0 8px}.table-field label{font-weight:700;font-size:1.05rem}.table-field p{margin:2px 0 8px}.table-input{width:100%;font-size:1.6rem;font-weight:700;text-align:center;letter-spacing:.05em;padding:12px;border-radius:12px;border:2px solid var(--line);background:var(--bg);color:var(--ink)}.table-input:focus{outline:none;border-color:var(--brand)}.table-input.invalid{border-color:var(--error)}.error{color:var(--error);background:var(--error-bg);padding:8px 10px;border-radius:8px;font-size:.9rem;margin:8px 0}.table-ok{color:var(--ok);margin:8px 0 0}.totals{margin:16px 0;padding:12px 0 0;border-top:1px solid var(--line)}.totals>div{display:flex;justify-content:space-between;padding:4px 0}.totals dt{color:var(--muted)}.totals dd{margin:0;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.totals .table-val{font-weight:700;color:var(--ink)}.totals .grand{border-top:1px solid var(--line);margin-top:6px;padding-top:10px;font-size:1.2rem;font-weight:800}.totals .grand dt{color:var(--ink)}.primary-btn{width:100%;min-height:54px;border:0;border-radius:var(--radius);background:var(--brand);color:var(--brand-ink);font-weight:700;font-size:1.05rem;padding:12px 16px}.primary-btn:disabled{opacity:.45}.primary-btn.test{background:var(--test);color:var(--test-bg)}.primary-btn.grow{flex:1 1;width:auto}.secondary-btn{width:100%;min-height:50px;border-radius:var(--radius);border:2px solid var(--brand);background:transparent;color:var(--brand);font-weight:700;margin-top:8px}.test-banner{background:var(--test-bg);color:var(--test);border:1px dashed;border-radius:10px;padding:10px 12px;font-size:.9rem}.done{text-align:center}.done .cart-lines,.done .totals{text-align:left}.done-icon{width:64px;height:64px;margin:16px auto 4px;border-radius:50%;display:grid;place-items:center;background:var(--ok);color:var(--surface);font-size:2rem;font-weight:800}.big-table{font-size:1.8rem;font-weight:800;margin:4px 0}.sheet-backdrop{position:fixed;inset:0;z-index:20;background:rgba(0,0,0,.45);display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-width:560px;max-height:88dvh;display:flex;flex-direction:column;background:var(--surface);border-radius:18px 18px 0 0;box-shadow:var(--shadow);animation:up .18s ease-out}@keyframes up{0%{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}@media (min-width:600px){.sheet-backdrop{align-items:center}.sheet{border-radius:18px}}.sheet-head{display:flex;justify-content:space-between;gap:12px;padding:18px 16px 8px}.sheet-head p{margin:4px 0 0}.close-btn{width:40px;height:40px;flex:none;border-radius:50%;border:1px solid var(--line);background:var(--bg);font-size:1.4rem;line-height:1}.sheet-body{overflow-y:auto;padding:0 16px}.mod-group{border:0;padding:0;margin:12px 0}.mod-group legend{font-weight:700;padding:0;margin-bottom:6px}.mod-option{display:flex;align-items:center;gap:12px;padding:12px 4px;border-bottom:1px solid var(--line);min-height:48px}.mod-option input{width:20px;height:20px;accent-color:var(--brand)}.mod-name{flex:1 1}.mod-price{color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.mod-option.disabled{opacity:.5}.mod-option.disabled .mod-name{text-decoration:line-through}.sheet-foot{display:flex;gap:12px;align-items:center;padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line)}.shell.narrow{max-width:440px}.shell.wide{max-width:1000px}.admin-head{justify-content:space-between;align-items:flex-start;margin-bottom:8px}.admin-head,.form{display:flex;gap:12px}.form,.form label{flex-direction:column}.form label{display:flex;gap:4px;font-weight:600;font-size:.95rem}.form input:not([type=checkbox]):not([type=hidden]),.form select{font:inherit;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);min-width:0}.form label.check{flex-direction:row;align-items:center;gap:8px;font-weight:500}.grid-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));align-items:end}.inline-form{flex-direction:row;flex-wrap:wrap;align-items:center;margin-top:10px}.inline-form>input:not([type=hidden]){flex:1 1 180px}.inline-form .full{flex-basis:100%}.small-btn{width:auto;padding:8px 14px;font-size:.9rem;min-height:0}.admin-table{width:100%;border-collapse:collapse}.admin-table td,.admin-table th{text-align:left;padding:8px 6px;border-bottom:1px solid var(--line);vertical-align:top}.admin-table{display:block;overflow-x:auto}.admin-category{border-top:1px solid var(--line);padding:12px 0}.admin-category h3{margin:0 0 8px;font-size:1.05rem}.admin-row{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.admin-item{padding:8px 0;border-bottom:1px dashed var(--line)}.admin-item.is-sold-out{opacity:.75}.item-form{flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px}.item-form>input:not([type=hidden]){flex:1 1 160px}.inline-form .price-input,.item-form .price-input{flex:0 0 90px;width:90px}.item-form .desc-input{flex:2 1 240px}.group-picks{border:0;padding:0;margin:0;display:flex;gap:10px;flex-wrap:wrap;align-items:center}.group-picks legend{float:left;margin-right:6px}.item-actions{display:flex;align-items:center;gap:10px;margin-top:6px;flex-wrap:wrap}.add-item{margin-top:10px}.option-row{padding:4px 0}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface)}.chip-x{background:none;border:0;color:var(--muted);font-size:1.1rem;cursor:pointer;padding:0 2px}.danger{color:var(--error)!important}.member-list{list-style:none;padding:0;margin:0 0 12px}.member-list li{padding:6px 0;border-bottom:1px solid var(--line)}.invite-link input{width:100%;font-family:ui-monospace,monospace;font-size:.8rem}.ticket-list{list-style:none;padding:0;margin:0;display:grid;grid-gap:10px;gap:10px}.ticket{display:flex;gap:12px;border:1px solid var(--line);border-radius:var(--radius);padding:12px;background:var(--surface)}.ticket-table{font-size:1.3rem;font-weight:800;min-width:92px;color:var(--brand)}.ticket-body ul{margin:6px 0;padding-left:18px}.status{margin-left:8px;font-size:.8rem;padding:2px 8px;border-radius:999px;background:var(--test-bg);color:var(--test)}.status-paid,.status-paid_test{background:rgba(46,125,79,.12);color:var(--ok)}.preview-banner{position:-webkit-sticky;position:sticky;top:0;z-index:20;text-align:center;font-size:.85rem;padding:8px 16px;background:var(--test-bg);color:var(--test);border-bottom:1px solid var(--line)}.themed{font-family:var(--font-body),system-ui,sans-serif}.themed .cart-bar,.themed .cat-tab,.themed .primary-btn,.themed h1,.themed h2,.themed h3{font-family:var(--font-heading),var(--font-body),system-ui,sans-serif}.themed .fee-banner{border-left-width:0;background:var(--surface);border-color:transparent;box-shadow:0 1px 0 var(--line)}.themed .add-pill{background:var(--accent);color:var(--accent-ink)}.venue-top{margin:0 -16px}.venue-cover{position:relative;height:168px;background:var(--hero);overflow:hidden}.cover-waves{position:absolute;inset:0;width:100%;height:100%}.cover-waves path{fill:none;stroke:rgba(255,255,255,.18);stroke-width:2}.venue-logo{position:absolute;left:16px;top:calc(20px + env(safe-area-inset-top));display:flex;flex-direction:column;align-items:center;justify-content:center;width:86px;height:70px;border-radius:14px;background:#fff;color:#14699f;box-shadow:0 4px 14px rgba(0,0,0,.18)}.venue-logo-text{font-family:var(--font-heading),sans-serif;font-weight:700;font-size:1.15rem;letter-spacing:.12em}.venue-logo-sub{font-size:.55rem;letter-spacing:.18em;text-transform:uppercase;color:#56707e}.venue-sheet{position:relative;margin-top:-28px;padding:22px 16px 10px;background:var(--bg);border-radius:22px 22px 0 0}.venue-sheet h1{font-size:1.75rem;font-weight:700}.venue-links{display:flex;flex-wrap:wrap;gap:6px 16px;margin:8px 0 4px;color:var(--brand);font-weight:700;font-size:.95rem}.venue-sheet p{margin:4px 0 0}.section-title{font-size:1.3rem;font-weight:700;margin:22px 0 12px}.art-sunrise{background:linear-gradient(135deg,#ffd8a8,#ff9f6e)}.art-honey{background:linear-gradient(135deg,#ffe9a8,#f5b84f)}.art-coffee{background:linear-gradient(135deg,#e9d3bd,#a77b5a)}.art-citrus{background:linear-gradient(135deg,#fff0a3,#8fd694)}.art-berry{background:linear-gradient(135deg,#ffc6d9,#c58ef0)}.art-grill{background:linear-gradient(135deg,#ffd3b0,#e0794f)}.art-sky{background:linear-gradient(135deg,#c9ecff,#7cc4f2)}.art-ocean{background:linear-gradient(135deg,#c9ecff,#2ea3f2)}@media (prefers-color-scheme:dark){.art-berry,.art-citrus,.art-coffee,.art-grill,.art-honey,.art-ocean,.art-sky,.art-sunrise{filter:saturate(.85) brightness(.8)}}.feature-strip{list-style:none;margin:0 -16px;padding:0 16px 4px;display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:16px;scrollbar-width:none}.feature-strip::-webkit-scrollbar{display:none}.feature-strip li{flex:none;scroll-snap-align:start}.feature-card{width:136px;display:flex;flex-direction:column;align-items:flex-start;gap:2px;background:none;border:0;padding:0;text-align:left}.feature-pic{position:relative;width:136px;height:136px;border-radius:14px;display:grid;place-items:center;margin-bottom:6px}.feature-icon{font-size:3.2rem;filter:drop-shadow(0 4px 6px rgba(0,0,0,.15))}.feature-badge{position:absolute;left:8px;bottom:8px;padding:2px 8px;border-radius:6px;background:rgba(255,255,255,.92);color:#a5361d;font-size:.75rem;font-weight:700}.feature-name{font-weight:700;font-size:1rem;color:var(--ink);line-height:1.25}.feature-price{color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.browse-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:18px;gap:18px}.browse-card{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:2px;background:none;border:0;padding:0;text-align:left}.browse-pic{width:100%;aspect-ratio:12/5;border-radius:14px;display:grid;place-items:center;margin-bottom:8px;overflow:hidden}.browse-icon{font-size:3.6rem;filter:drop-shadow(0 6px 8px rgba(0,0,0,.15))}.browse-card:active .browse-pic{transform:scale(.99)}.browse-name{font-family:var(--font-heading),var(--font-body),sans-serif;font-weight:700;font-size:1.1rem;color:var(--ink)}.browse-meta{font-size:.85rem;color:var(--muted)}.browse-card:focus-visible,.cat-back:focus-visible,.cat-tab:focus-visible,.feature-card:focus-visible,.menu-row:focus-visible{outline:3px solid var(--brand);outline-offset:3px;border-radius:14px}.cat-bar{position:-webkit-sticky;position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:8px;margin:0 -16px;padding:10px 16px;background:var(--bg);border-bottom:1px solid var(--line)}.cat-back{flex:none;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:1.1rem;font-weight:700}.cat-tabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}.cat-tabs::-webkit-scrollbar{display:none}.cat-tab{flex:none;padding:8px 14px;border-radius:999px;border:0;background:transparent;color:var(--muted);font-weight:700;font-size:.9rem;white-space:nowrap}.cat-tab.is-active{background:var(--ink);color:var(--bg)}.cat-banner{display:flex;align-items:center;gap:14px;padding:16px;border-radius:14px;margin:14px 0 6px;color:#10222c}.cat-banner h2{margin:0;font-size:1.35rem}.cat-banner-icon{font-size:2.4rem}.cat-banner-meta{font-size:.85rem;opacity:.8}.menu-rows{list-style:none;margin:0;padding:0}.menu-row{width:100%;display:flex;align-items:center;gap:14px;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:16px 0;color:var(--ink)}.menu-row-text{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:4px}.menu-row-name{font-weight:700;font-size:1.02rem}.menu-row-desc{color:var(--muted);font-size:.875rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.menu-row-price{font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.menu-row-pic{position:relative;flex:none;width:92px;height:92px;border-radius:12px;display:grid;place-items:center}.menu-row-icon{font-size:2.3rem}.menu-row-add{position:absolute;right:-6px;bottom:-6px;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--surface);color:var(--ink);font-weight:700;font-size:1.2rem;box-shadow:0 2px 8px rgba(0,0,0,.18)}.menu-row.sold-out{opacity:.5}.menu-row.sold-out .menu-row-price{color:var(--error)}.admin-item{display:flex;gap:12px;align-items:flex-start}.admin-item-main{flex:1 1;min-width:0}.admin-cat-title{gap:12px}.admin-cat-title,.photo-input{display:flex;align-items:center}.photo-input{flex-direction:column;gap:2px;flex:none;width:84px}.photo-input.is-category{flex-direction:row;width:auto;gap:8px}.photo-thumb{position:relative;width:72px;height:72px;border-radius:12px;overflow:hidden;padding:0;border:1px dashed var(--line);background:var(--bg);display:grid;place-items:center;font-size:1.4rem}.photo-input.is-category .photo-thumb{width:56px;height:56px}.photo-thumb img{width:100%;height:100%;object-fit:cover;display:block}.photo-busy{position:absolute;inset:0;display:grid;place-items:center;background:rgba(0,0,0,.5);color:#fff;font-size:.7rem;font-weight:700}.photo-actions{display:flex;flex-direction:column;align-items:center;gap:0;text-align:center}.photo-input.is-category .photo-actions{align-items:flex-start}.photo-actions .link-btn{padding:2px 0}.browse-pic,.feature-pic,.menu-row-pic{overflow:hidden}.menu-row-pic{overflow:visible}.pic-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}.browse-pic{position:relative}.feature-badge,.menu-row-add{z-index:1}.cat-banner.has-photo{background-size:cover;background-position:50%;color:#fff;min-height:110px;align-items:flex-end}.sheet-photo{display:block;flex:none;width:100%;max-height:32dvh;aspect-ratio:16/10;object-fit:cover;border-radius:18px 18px 0 0}.venue-logo.has-image{width:112px;height:88px;padding:8px 10px}.venue-logo.has-image img{width:100%;height:100%;object-fit:contain;display:block}.photo-note{text-align:center;font-size:.78rem;color:var(--muted);margin:18px 0 0}