:root{--brand-900: #0b3d28;--brand-800: #0e5a3a;--accent: #0a7c42;--accent-hover: #086637;--accent-tint: #e7f4ec;--accent-on-dark: #7fbfa0;--amber: #e8590c;--amber-ink: #a8410a;--amber-tint: #fff2e8;--gold: #f0c96b;--ink: #15211c;--ink-2: #4d5f56;--ink-3: #79887f;--surface: #ffffff;--surface-2: #f7f9f8;--canvas: #f1f4f2;--line: #e7ebe9;--line-strong: #d7dedb;--on-dark-soft: rgba(255, 255, 255, .76);--line-on-dark: rgba(255, 255, 255, .15);--red: #b3261e;--red-tint: #fdecea;--red-line: rgba(179, 38, 30, .22);--veg: #128a3f;--nonveg: #b3261e;--r-xs: 8px;--r-sm: 12px;--r-md: 16px;--r-lg: 22px;--r-xl: 28px;--r-pill: 999px;--sh-1: 0 1px 2px rgba(16, 32, 25, .05);--sh-2: 0 2px 6px rgba(16, 32, 25, .05), 0 10px 24px rgba(16, 32, 25, .06);--sh-3: 0 10px 34px rgba(16, 32, 25, .16);--sh-up: 0 -4px 20px rgba(16, 32, 25, .1);--pad: 16px;--shell: 1120px;--shell-narrow: 560px;--appbar-h: 56px;--tabbar-h: 62px;--sp-1: 8px;--sp-2: 12px;--sp-3: 16px;--sp-4: 24px;--sp-5: 32px;--sp-6: 44px;--font: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--ease: cubic-bezier(.22, .61, .36, 1);font-synthesis:none;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}*{box-sizing:border-box}*{font-feature-settings:"kern" 1,"liga" 1}html,body{height:100%}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--canvas);color:var(--ink);font-family:var(--font);font-size:15px;line-height:1.45;overflow-x:hidden}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}#root{min-height:100vh;display:flex;flex-direction:column}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:var(--r-xs)}h1,h2,h3,h4{font-family:var(--font);margin:0 0 .4em;color:var(--ink);letter-spacing:-.02em;line-height:1.15}h1{font-size:24px;font-weight:800}h2{font-size:19px;font-weight:800}h3{font-size:17px;font-weight:700}h4{font-size:15px;font-weight:700}@media (min-width: 720px){h1{font-size:30px}h2{font-size:22px}}p{margin:0 0 1em}.muted{color:var(--ink-2);font-size:13.5px}.center{text-align:center}.spacer{height:8px}.spacer-lg{height:24px}.stack{display:flex;flex-direction:column;gap:12px}.stack-lg{display:flex;flex-direction:column;gap:20px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.app-main{flex:1;width:100%;padding-bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 8px)}@media (min-width: 900px){.app-main{padding-bottom:40px}}.app-main-flat{padding-bottom:32px}.page{width:100%;max-width:var(--shell);margin:0 auto;padding:var(--sp-3) var(--pad) var(--sp-5)}.page-narrow{max-width:var(--shell-narrow)}.page-admin{max-width:1000px}.page-flush{padding-top:0}.bleed{margin-inline:calc(-1 * var(--pad));padding-inline:var(--pad)}.appbar{position:sticky;top:0;z-index:40;background:var(--surface);border-bottom:1px solid var(--line)}.appbar-inner{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;max-width:var(--shell);margin:0 auto;min-height:var(--appbar-h);padding:8px var(--pad)}.appbar-brand{display:inline-flex;align-items:center;gap:8px;min-width:0}.appbar-mark{width:26px;height:26px;display:block;flex-shrink:0}.appbar-name{font-size:15px;font-weight:800;letter-spacing:-.02em;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.appbar-name span{color:var(--accent)}.appbar-right{display:flex;align-items:center;gap:6px;flex-shrink:0}.mainnav{position:fixed;left:0;right:0;bottom:0;z-index:45;display:flex;background:var(--surface);border-top:1px solid var(--line);box-shadow:var(--sh-up);padding-bottom:env(safe-area-inset-bottom)}.mainnav-item{flex:1 1 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:var(--tabbar-h);padding:8px 4px;color:var(--ink-2);font-size:11px;font-weight:700;letter-spacing:-.01em;text-decoration:none}.mainnav-item:hover{color:var(--ink)}.mainnav-item.active{color:var(--accent)}.mainnav-item:focus-visible{outline-offset:-3px}.mainnav-item svg{width:24px;height:24px;display:block}.mainnav-icon{display:flex;align-items:center;justify-content:center;width:52px;height:28px;border-radius:var(--r-pill);transition:background .18s var(--ease)}.mainnav-item.active .mainnav-icon{background:var(--accent-tint)}@media (min-width: 900px){.mainnav{position:static;background:none;border-top:none;box-shadow:none;padding-bottom:0;gap:4px}.mainnav-item{flex:0 0 auto;flex-direction:row;gap:8px;min-height:44px;padding:9px 14px;border-radius:var(--r-pill);font-size:14px}.mainnav-item:hover{background:var(--surface-2)}.mainnav-item.active{background:var(--accent-tint);color:var(--accent-hover)}.mainnav-item svg{width:20px;height:20px}.mainnav-icon{width:auto;height:auto;background:none!important}}.lang-toggle{display:inline-flex;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-pill);padding:2px}.lang-toggle button{border:none;background:none;border-radius:var(--r-pill);color:var(--ink-2);font-family:var(--font);font-weight:700;font-size:12px;letter-spacing:.02em;padding:8px 10px;min-width:38px;min-height:40px;cursor:pointer}.lang-toggle button.active{background:var(--ink);color:#fff}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:50px;padding:13px 20px;font-family:var(--font);font-size:15px;font-weight:800;letter-spacing:-.01em;border-radius:var(--r-sm);border:1.5px solid transparent;cursor:pointer;text-decoration:none;transition:background .15s var(--ease),border-color .15s var(--ease),color .15s var(--ease),transform .1s var(--ease)}.btn:active:not(:disabled){transform:scale(.985)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff;box-shadow:var(--sh-1)}.btn-primary:hover:not(:disabled){background:var(--accent-hover);color:#fff}.btn-secondary{background:var(--surface);color:var(--ink);border-color:var(--line-strong)}.btn-secondary:hover:not(:disabled){border-color:var(--ink);color:var(--ink)}.btn-ghost{background:transparent;color:var(--ink-2);border-color:transparent}.btn-ghost:hover:not(:disabled){background:var(--surface-2);color:var(--ink)}.btn-sm{min-height:44px;padding:9px 16px;font-size:13.5px;width:auto}.btn-auto{width:auto}.icon-btn{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border:1px solid var(--line);background:var(--surface);border-radius:var(--r-pill);font-size:20px;line-height:1;color:var(--ink);cursor:pointer}.icon-btn:hover{border-color:var(--ink)}.icon-btn svg{width:20px;height:20px}.link-toggle{background:none;border:none;padding:8px 0;min-height:44px;font-family:var(--font);font-size:14px;font-weight:700;color:var(--accent);cursor:pointer;text-align:left}.link-toggle:hover{color:var(--accent-hover)}.card{background:var(--surface);border-radius:var(--r-md);box-shadow:var(--sh-1);border:1px solid var(--line);padding:var(--sp-3)}.chip-row{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:2px 0 10px}.chip-row::-webkit-scrollbar{display:none}.chip-row-wrap{flex-wrap:wrap;overflow:visible}.chip{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;white-space:nowrap;padding:9px 14px;min-height:44px;border:1px solid var(--line-strong);border-radius:var(--r-pill);background:var(--surface);box-shadow:var(--sh-1);font-family:var(--font);font-size:13.5px;font-weight:700;letter-spacing:-.01em;color:var(--ink);cursor:pointer}.chip:hover{border-color:var(--ink-3)}.chip.active{background:var(--accent-tint);border-color:var(--accent);color:var(--accent-hover)}.chip svg{width:16px;height:16px;flex-shrink:0}.chip-count{font-size:12px;font-weight:700;color:var(--ink-2)}.chip.active .chip-count{color:var(--accent-hover)}.searchbar-sticky{position:sticky;top:var(--appbar-h);z-index:30;background:var(--canvas);padding-top:10px;padding-bottom:6px}.searchbar{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-sm);box-shadow:var(--sh-1);padding:0 12px;min-height:50px}.searchbar:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint)}.searchbar svg{width:20px;height:20px;color:var(--ink-2);flex-shrink:0}.searchbar input{flex:1;min-width:0;border:none;outline:none;background:none;font-family:var(--font);font-size:16px;font-weight:600;color:var(--ink);padding:12px 0}.searchbar input::placeholder{color:var(--ink-2);font-weight:500}.searchbar-clear{border:none;background:none;cursor:pointer;min-width:40px;min-height:40px;color:var(--ink-2);font-size:18px;border-radius:var(--r-pill)}.searchbar-clear:hover{background:var(--surface-2);color:var(--ink)}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:13px;font-weight:700;color:var(--ink);letter-spacing:-.01em}.field-hint{color:var(--ink-2);font-size:12.5px}.input,select.input,textarea.input{width:100%;padding:14px;font-size:16px;font-family:var(--font);font-weight:600;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface);color:var(--ink)}.input::placeholder{font-weight:500;color:var(--ink-2)}.input:focus,select.input:focus,textarea.input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint)}textarea.input{resize:vertical;min-height:84px}.checkbox-row{display:flex;align-items:flex-start;gap:10px;font-size:14px;color:var(--ink-2);line-height:1.4}.checkbox-row input{margin-top:3px;width:20px;height:20px;flex-shrink:0;accent-color:var(--accent)}.code-input-row{display:flex;gap:8px;justify-content:center}.code-digit{width:44px;height:56px;text-align:center;font-size:22px;font-weight:800;border:1.5px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface);font-family:var(--font);color:var(--ink)}.code-digit:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint)}.otp-input{letter-spacing:6px;text-align:center;font-size:22px;font-weight:800;text-transform:uppercase}.field>.stepper{align-self:flex-start}.stepper{display:inline-flex;align-items:center;border:1.5px solid var(--accent);border-radius:var(--r-sm);background:var(--surface);overflow:hidden}.stepper button{width:44px;height:44px;border:none;background:var(--surface);font-size:20px;font-weight:800;color:var(--accent);cursor:pointer;font-family:var(--font)}.stepper button:hover:not(:disabled){background:var(--accent-tint)}.stepper button:disabled{opacity:.35;cursor:not-allowed}.stepper button:focus-visible{outline-offset:-3px}.stepper-value{width:34px;text-align:center;font-weight:800;font-size:15px;color:var(--accent-hover);font-variant-numeric:tabular-nums}.error-box{background:var(--red-tint);color:var(--red);border:1px solid var(--red-line);border-radius:var(--r-sm);padding:13px 14px;font-size:14px;font-weight:600}.notice-box{background:var(--accent-tint);color:var(--accent-hover);border:1px solid rgba(10,124,66,.22);border-radius:var(--r-sm);padding:13px 14px;font-size:14px;font-weight:600}.loading-block{padding:40px 0;text-align:center;color:var(--ink-2)}.empty-state{text-align:center;padding:var(--sp-4) var(--sp-2)}.empty-state p{color:var(--ink-2)}.badge{display:inline-block;padding:4px 10px;border-radius:var(--r-pill);font-size:11.5px;font-weight:800;letter-spacing:.01em}.badge-active{background:var(--accent-tint);color:var(--accent-hover)}.badge-draft{background:var(--surface-2);color:var(--ink-2)}.badge-killed{background:var(--red-tint);color:var(--red)}.campaign-eyebrow{font-size:13px;font-weight:800;letter-spacing:.02em;color:var(--accent-hover)}.perk-badge{display:flex;flex-direction:column;gap:2px;background:var(--amber-tint);border-radius:var(--r-sm);padding:12px 14px}.perk-badge-name{font-weight:800;font-size:14.5px;color:var(--amber-ink)}.perk-badge-desc{font-size:13px;color:var(--ink-2)}.cap-bar{display:flex;align-items:center;gap:8px;margin-top:6px}.cap-bar-track{flex:1;height:6px;border-radius:var(--r-pill);background:var(--surface-2);overflow:hidden}.cap-bar-fill{height:100%;border-radius:var(--r-pill);background:var(--accent)}.cap-bar-label{font-size:11.5px;color:var(--ink-2);white-space:nowrap;font-variant-numeric:tabular-nums}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,#e9edeb 25%,#f6f8f7 37%,#e9edeb 63%);background-size:400% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:var(--r-sm)}@media (prefers-reduced-motion: reduce){.skeleton{animation:none;background:#e9edeb}}@media (prefers-reduced-motion: reduce){.sheet,.sheet-backdrop{animation:none}}.skeleton-card{height:250px;border-radius:var(--r-md)}.skeleton-row{height:92px;border-radius:var(--r-md)}.sections{display:flex;flex-direction:column;gap:var(--sp-5)}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:var(--sp-2)}.section-head h2{margin:0}.section-link{font-size:13.5px;font-weight:800;color:var(--accent);white-space:nowrap;display:inline-flex;align-items:center;min-height:44px}.section-note{color:var(--ink-2);font-size:13px;margin:-6px 0 12px}.section-title{font-size:13px;font-weight:800;letter-spacing:.02em;text-transform:uppercase;color:var(--ink-2);margin:24px 0 10px}.section-title:first-child{margin-top:0}.tile-strip{display:flex;gap:14px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:6px}.tile-strip::-webkit-scrollbar{display:none}.tile{flex:0 0 auto;width:84px;border:none;background:none;padding:0;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:8px;font-family:var(--font)}.tile-disc{width:74px;height:74px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:var(--sh-2);color:#fff;transition:transform .18s var(--ease);background:linear-gradient(150deg,var(--tile-a, #0a7c42),var(--tile-b, #0b3d28))}.tile:hover .tile-disc{transform:translateY(-2px) scale(1.03)}.tile-disc svg{width:38px;height:38px}.tile.active .tile-disc{box-shadow:0 0 0 3px var(--surface),0 0 0 6px var(--accent)}.tile-label{font-size:12px;font-weight:700;line-height:1.25;color:var(--ink);text-align:center;letter-spacing:-.01em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tile.active .tile-label{color:var(--accent-hover)}.venue-grid{display:grid;grid-template-columns:1fr;gap:var(--sp-3)}@media (min-width: 620px){.venue-grid{grid-template-columns:repeat(auto-fill,minmax(290px,1fr))}}.venue-rail{display:grid;grid-auto-flow:column;grid-auto-columns:78%;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:8px}.venue-rail::-webkit-scrollbar{display:none}.venue-rail>*{scroll-snap-align:start}@media (min-width: 620px){.venue-rail{grid-auto-columns:320px}}.vcard{display:flex;flex-direction:column;background:var(--surface);border-radius:var(--r-md);box-shadow:var(--sh-2);overflow:hidden;color:inherit;text-decoration:none;height:100%}.vcard:hover{color:inherit}.vcard-link{display:block;color:inherit;text-decoration:none}.vcard-link:hover{color:inherit}.vcard-media{position:relative;aspect-ratio:16 / 10;background:var(--surface-2);overflow:hidden}.vcard-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s var(--ease)}.vcard:hover .vcard-media img{transform:scale(1.05)}.vcard-media-fallback{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:radial-gradient(120% 100% at 20% 0%,rgba(255,255,255,.14),transparent 60%),linear-gradient(150deg,var(--brand-800),var(--brand-900));color:#fff}.vcard-monogram{font-size:40px;font-weight:800;letter-spacing:-.04em;line-height:1;color:#ffffffeb}.vcard-monogram-sub{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-on-dark);max-width:80%;text-align:center}.vcard-scrim{position:absolute;left:0;right:0;bottom:0;padding:26px 12px 10px;background:linear-gradient(to top,#09140fdb,#09140f00);display:flex;align-items:flex-end;justify-content:space-between;gap:8px;pointer-events:none}.vcard-offer{font-size:14px;font-weight:800;letter-spacing:-.02em;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.4)}.vcard-flag{position:absolute;top:10px;left:10px;display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:var(--r-pill);background:var(--amber);color:#fff;font-size:11px;font-weight:800;letter-spacing:.02em;text-transform:uppercase;box-shadow:var(--sh-1)}.vcard-body{padding:12px 14px 14px;display:flex;flex-direction:column;gap:5px}.vcard-toprow{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.vcard-name{font-size:17px;font-weight:800;letter-spacing:-.02em;line-height:1.2;color:var(--ink);min-width:0}.vcard-meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:13.5px;font-weight:600;color:var(--ink-2)}.vcard-address{font-size:13px;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dot{width:3px;height:3px;border-radius:50%;background:var(--ink-3);flex-shrink:0}.vcard-actions{display:flex;gap:8px;padding:0 14px 14px;margin-top:auto}.vcard-actions .btn{flex:1;width:auto;min-height:44px;padding:10px 12px;font-size:13.5px}.rating-pill{display:inline-flex;align-items:center;gap:3px;flex-shrink:0;padding:3px 7px;border-radius:var(--r-xs);background:var(--accent);color:#fff;font-size:12.5px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.3}.rating-pill svg{width:11px;height:11px}.rating-pill-count{font-size:12.5px;color:var(--ink-2);font-weight:700}.rating-none{display:inline-flex;align-items:center;padding:3px 8px;border-radius:var(--r-xs);background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2);font-size:12px;font-weight:700}.venue-list{display:flex;flex-direction:column;gap:8px}.venue-row{display:flex;gap:12px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--sh-1);padding:10px;text-decoration:none;color:inherit;min-height:76px}.venue-row:hover{color:inherit;border-color:var(--line-strong)}.venue-thumb{width:60px;height:60px;border-radius:var(--r-sm);object-fit:cover;background:var(--surface-2);flex-shrink:0}.venue-thumb-fallback{width:60px;height:60px;border-radius:var(--r-sm);background:linear-gradient(150deg,var(--brand-800),var(--brand-900));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:22px;flex-shrink:0}.venue-row-body{min-width:0;flex:1}.venue-name{font-weight:800;font-size:15px;letter-spacing:-.01em}.venue-address{color:var(--ink-2);font-size:13px;margin-top:2px}.venue-cuisine{color:var(--accent);font-size:12.5px;font-weight:700;margin-top:2px;display:block}.wallet-strip{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);background:radial-gradient(120% 140% at 100% 0%,rgba(127,191,160,.22),transparent 60%),linear-gradient(140deg,var(--brand-800),var(--brand-900));color:#fff;border-radius:var(--r-lg);box-shadow:var(--sh-2);padding:16px 18px;text-decoration:none;min-height:92px}.wallet-strip:hover{color:#fff}.wallet-strip-label{display:block;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--on-dark-soft);margin-bottom:3px}.wallet-strip-amount{display:block;font-size:34px;font-weight:800;letter-spacing:-.03em;line-height:1.05;color:var(--gold);font-variant-numeric:tabular-nums}.wallet-strip-sub{display:block;margin-top:5px;font-size:13px;color:var(--on-dark-soft)}.wallet-strip-chevron{color:var(--on-dark-soft);flex-shrink:0;display:flex}.wallet-strip-chevron svg{width:22px;height:22px}.wallet-strip .skeleton{height:36px;width:150px;background:#ffffff29;animation:none}.promo{position:relative;overflow:hidden;border-radius:var(--r-lg);background:radial-gradient(120% 130% at 100% 0%,rgba(232,89,12,.28),transparent 55%),linear-gradient(140deg,var(--brand-800),var(--brand-900));color:#fff;padding:22px 20px;box-shadow:var(--sh-2)}.promo h1{color:#fff;font-size:27px;margin-bottom:8px}@media (min-width: 720px){.promo h1{font-size:36px}}.promo p{color:var(--on-dark-soft);font-size:14px;margin-bottom:16px;max-width:46ch}.promo-actions{display:flex;flex-wrap:wrap;gap:10px}.promo-actions .btn{flex:1 1 100%;width:auto}@media (min-width: 480px){.promo-actions .btn{flex:1 1 160px}}.promo .btn-secondary{background:#ffffff14;color:#fff;border-color:var(--line-on-dark)}.promo .btn-secondary:hover{background:#ffffff29;border-color:#fff;color:#fff}.promo-foot{margin:14px 0 0;font-size:12.5px;color:var(--accent-on-dark);font-weight:700}.usual{display:flex;gap:12px;align-items:center;background:var(--surface);border-radius:var(--r-md);border:1px solid var(--line);box-shadow:var(--sh-1);padding:12px}.usual-body{min-width:0;flex:1}.usual-name{font-weight:800;font-size:16px;letter-spacing:-.01em}.usual-meta{color:var(--ink-2);font-size:13px;margin-top:2px}.usual-actions{display:flex;gap:8px;margin-top:10px}.usual-actions .btn{flex:1;width:auto;min-height:46px}.geo-prompt{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:var(--amber-tint);border:1px solid rgba(232,89,12,.2);border-radius:var(--r-md);padding:12px 14px;font-size:14px;font-weight:600;color:var(--amber-ink);margin-bottom:12px}.geo-prompt .btn{width:auto;flex:0 0 auto}.vd-hero{position:relative;margin-inline:calc(-1 * var(--pad));width:calc(100% + 2 * var(--pad));aspect-ratio:16 / 9;max-height:300px;background:var(--surface-2);overflow:hidden}.vd-hero img{width:100%;height:100%;object-fit:cover;display:block}.vd-hero-fallback{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:radial-gradient(120% 100% at 20% 0%,rgba(255,255,255,.14),transparent 60%),linear-gradient(150deg,var(--brand-800),var(--brand-900));color:#fff}.vd-hero-fallback .vcard-monogram{font-size:56px}.vd-back{position:absolute;top:12px;left:calc(var(--pad) + 2px);display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--r-pill);background:#fffffff0;border:none;box-shadow:var(--sh-2);color:var(--ink);cursor:pointer}.vd-back svg{width:22px;height:22px}.vd-head{position:relative;z-index:1;margin-top:-22px;background:var(--surface);border-radius:var(--r-lg) var(--r-lg) 0 0;box-shadow:0 -8px 24px #1020190f;padding:16px 16px 14px;margin-inline:calc(-1 * var(--pad))}.vd-head h1{margin-bottom:6px}.vd-metarow{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:13.5px;font-weight:600;color:var(--ink-2)}.vd-offer{display:flex;align-items:center;gap:8px;margin-top:12px;padding:10px 12px;border-radius:var(--r-sm);background:var(--amber-tint);border:1px dashed rgba(232,89,12,.35);color:var(--amber-ink);font-size:13.5px;font-weight:700}.vd-offer svg{width:18px;height:18px;flex-shrink:0}.ballot-suggest-field{position:relative}.ballot-suggest-list{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:5;margin:0;padding:6px;list-style:none;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-sm);box-shadow:var(--sh-2);max-height:240px;overflow-y:auto}.ballot-suggest-list li{display:block}.ballot-suggest-list button{display:flex;align-items:baseline;justify-content:space-between;gap:10px;width:100%;min-height:44px;padding:8px 10px;border:none;border-radius:var(--r-xs);background:none;font-family:var(--font);text-align:left;cursor:pointer}.ballot-suggest-list button:hover,.ballot-suggest-list button:focus-visible{background:var(--surface-2)}.ballot-suggest-name{font-size:14px;font-weight:700;color:var(--ink)}.ballot-suggest-area{font-size:12px;color:var(--ink-2);white-space:nowrap}.timepicker{display:flex;flex-direction:column;gap:2px}.timepicker.is-busy{opacity:.55;transition:opacity .12s var(--ease)}.timepicker.is-busy .chip{pointer-events:none}.shift-head{display:flex;align-items:baseline;gap:8px;margin-bottom:2px}.shift-name{font-size:14px;font-weight:800;letter-spacing:-.01em;color:var(--ink)}.shift-hours{font-size:12.5px;font-weight:600;color:var(--ink-2);font-variant-numeric:tabular-nums}.time-scroll{position:relative}.time-scroll:after{content:"";position:absolute;top:0;right:0;bottom:10px;width:32px;pointer-events:none;background:linear-gradient(to right,transparent,var(--canvas))}.time-scroll .chip-row{scroll-snap-type:x proximity;padding-right:28px}.time-scroll .chip{scroll-snap-align:start;font-variant-numeric:tabular-nums}.card .time-scroll:after{background:linear-gradient(to right,transparent,var(--surface))}.seg{display:flex;gap:4px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-pill);padding:4px;margin:14px 0 16px}.seg-btn{flex:1;min-height:46px;border:none;background:none;border-radius:var(--r-pill);font-family:var(--font);font-size:14.5px;font-weight:800;letter-spacing:-.01em;color:var(--ink-2);cursor:pointer}.seg-btn.active{background:var(--accent);color:#fff;box-shadow:var(--sh-1)}.seg-btn:focus-visible{outline-offset:-3px}.tabs{display:flex;gap:4px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-pill);padding:4px;margin-bottom:16px}.tab-btn{flex:1;min-height:46px;border:none;background:none;border-radius:var(--r-pill);font-family:var(--font);font-size:14px;font-weight:800;color:var(--ink-2);cursor:pointer}.tab-btn.active{background:var(--accent);color:#fff}.vd-grid{display:grid;grid-template-columns:1fr;gap:var(--sp-4);align-items:start}@media (min-width: 900px){.vd-grid{grid-template-columns:minmax(0,1fr) minmax(330px,400px);gap:var(--sp-5)}.vd-booking{grid-column:2;grid-row:1;position:sticky;top:calc(var(--appbar-h) + 16px)}.vd-aside{grid-column:1;grid-row:1}}.menu-nav{position:sticky;top:var(--appbar-h);z-index:25;background:var(--canvas);padding-top:8px;margin-bottom:4px}.menu-nav-inner{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:10px}.menu-nav-inner::-webkit-scrollbar{display:none}.menu-section{scroll-margin-top:calc(var(--appbar-h) + 70px)}.menu-section-head{display:flex;align-items:baseline;gap:8px;margin:var(--sp-4) 0 var(--sp-2)}.menu-section-title{font-size:18px;font-weight:800;letter-spacing:-.02em;margin:0}.menu-section-count{font-size:13px;font-weight:700;color:var(--ink-2)}.menu-section:first-of-type .menu-section-head{margin-top:var(--sp-2)}.menu-section-toggle{display:flex;align-items:center;gap:10px;width:100%;min-height:56px;padding:14px;margin-top:10px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--sh-1);font-family:var(--font);font-size:16px;font-weight:800;letter-spacing:-.02em;color:var(--ink);text-align:left;cursor:pointer}.menu-section-toggle:hover{border-color:var(--line-strong)}.menu-section-toggle>span:first-child{flex:1;min-width:0}.menu-section-caret{flex-shrink:0;width:9px;height:9px;border-right:2px solid var(--ink-2);border-bottom:2px solid var(--ink-2);transform:rotate(45deg) translate(-2px,-2px);transition:transform .2s var(--ease)}.menu-section-caret.open{transform:rotate(-135deg) translate(-2px,-2px)}.menu-section-toggle[aria-expanded=true]{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-color:transparent}.menu-section-toggle[aria-expanded=true]+.menu-list{border-top-left-radius:0;border-top-right-radius:0}.menu-list{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--sh-1);overflow:hidden}@media (min-width: 900px){.menu-two-col{display:grid;grid-template-columns:1fr 1fr}.menu-two-col>.menu-item:nth-child(-n+2){border-top:none}.menu-two-col>.menu-item:nth-child(odd){border-right:1px solid var(--line)}}.menu-item{display:flex;gap:12px;align-items:flex-start;padding:14px}.menu-item+.menu-item{border-top:1px solid var(--line)}.menu-item-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}.menu-item-name{font-weight:700;font-size:15px;line-height:1.3;letter-spacing:-.01em}.menu-item-desc{color:var(--ink-2);font-size:13px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.menu-item-price{font-weight:800;font-size:14.5px;white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--ink)}.menu-item-allergens{color:var(--ink-2);font-size:12px}.diet-mark{width:15px;height:15px;border-radius:3px;border:1.5px solid var(--nonveg);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.diet-mark:after{content:"";width:7px;height:7px;border-radius:50%;background:var(--nonveg)}.diet-mark.veg{border-color:var(--veg)}.diet-mark.veg:after{background:var(--veg)}.menu-badges{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.badge-diet{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:var(--r-pill);font-size:11px;font-weight:800;letter-spacing:.01em;background:var(--accent-tint);color:var(--accent-hover)}.badge-popular{background:var(--amber-tint);color:var(--amber-ink)}.badge-spice{background:var(--red-tint);color:var(--red)}.add-btn{min-width:96px;min-height:44px;padding:10px 12px;border:1.5px solid var(--accent);border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--sh-1);color:var(--accent);font-family:var(--font);font-size:12.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;cursor:pointer}.add-btn:hover{background:var(--accent-tint)}.add-btn:active{transform:scale(.97)}.menu-item-side{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex-shrink:0}.menu-item-photo{position:relative;width:104px;flex-shrink:0;height:122px}.menu-item-thumb{width:104px;height:104px;border-radius:var(--r-sm);object-fit:cover;display:block;background:var(--surface-2)}.menu-item-thumb-fallback{width:104px;height:104px;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;background:linear-gradient(150deg,var(--accent-tint),#dbe9e1);color:var(--accent-hover);font-size:30px;font-weight:800}.menu-item-photo .add-btn,.menu-item-photo .stepper{position:absolute;bottom:0;left:50%;transform:translate(-50%);min-width:96px;min-height:40px;box-shadow:var(--sh-2)}.menu-item-photo .stepper button{width:38px;height:38px}.menu-item-photo .stepper{background:var(--surface)}.menu-item-photo .add-btn:active{transform:translate(-50%) scale(.97)}.menu-search{margin-bottom:10px}.menu-fab{position:fixed;left:50%;transform:translate(-50%);bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 14px);z-index:43;display:inline-flex;align-items:center;gap:8px;min-height:46px;padding:11px 18px;border:none;border-radius:var(--r-pill);background:var(--ink);color:#fff;box-shadow:var(--sh-3);font-family:var(--font);font-size:14px;font-weight:800;cursor:pointer;transition:bottom .2s var(--ease)}.menu-fab svg{width:18px;height:18px}.menu-fab-raised{bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 82px)}@media (min-width: 900px){.menu-fab{bottom:20px}.menu-fab-raised{bottom:88px}}.menu-index{display:flex;flex-direction:column}.menu-index-row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:52px;padding:12px 4px;border:none;border-bottom:1px solid var(--line);background:none;font-family:var(--font);font-size:15px;font-weight:700;color:var(--ink);text-align:left;cursor:pointer}.menu-index-row:hover,.menu-index-row.active{color:var(--accent)}.menu-index-count{color:var(--ink-2);font-size:13px;font-weight:700}.cartbar{position:fixed;left:0;right:0;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom));z-index:44;background:var(--accent);box-shadow:var(--sh-3);padding:10px var(--pad)}@media (min-width: 900px){.cartbar{bottom:0;padding-bottom:calc(10px + env(safe-area-inset-bottom))}}.cartbar-inner{max-width:var(--shell);margin:0 auto;display:flex;align-items:center;gap:12px}.cartbar-summary{color:#fff;font-size:13px;font-weight:700;flex:1;min-width:0}.cartbar-total{display:block;font-weight:800;font-size:17px;color:#fff;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.cartbar .btn{width:auto;flex:0 0 auto;background:#fff;color:var(--accent-hover);border-color:#fff}.cartbar .btn:hover{background:#fff;color:var(--accent-hover)}.cart-spacer{height:84px}@keyframes sheet-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes sheet-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#09140f80;border:none;padding:0;margin:0;width:100%;cursor:pointer;animation:sheet-backdrop-in .18s var(--ease)}.sheet{animation:sheet-in .22s var(--ease);position:fixed;left:0;right:0;bottom:0;z-index:61;background:var(--surface);color:var(--ink);border-radius:var(--r-xl) var(--r-xl) 0 0;max-height:88vh;overflow-y:auto;padding:8px var(--pad) calc(24px + env(safe-area-inset-bottom));box-shadow:var(--sh-3)}@media (min-width: 720px){.sheet{left:auto;right:24px;bottom:24px;width:420px;border-radius:var(--r-xl);max-height:80vh}}.sheet-grab{width:40px;height:4px;border-radius:999px;background:var(--line-strong);margin:6px auto 10px}.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.sheet-head h2{margin:0;font-size:19px}.cart-line{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}.cart-line-body{flex:1;min-width:0}.cart-line-name{font-weight:700;font-size:14.5px}.cart-line-price{color:var(--ink-2);font-size:12.5px;margin-top:2px;font-variant-numeric:tabular-nums}.cart-line .stepper{flex:0 0 auto}.cart-line-amount{font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:14.5px;min-width:74px;text-align:right}.cart-total-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:14px 0 4px;font-size:16px;font-weight:800}.cart-total-row span:last-child{font-variant-numeric:tabular-nums}.cart-credit-note{display:flex;align-items:center;gap:8px;background:var(--accent-tint);color:var(--accent-hover);border-radius:var(--r-sm);padding:11px 12px;font-size:13.5px;font-weight:700;margin:10px 0 4px}.cart-credit-note svg{width:18px;height:18px;flex-shrink:0}.money-card{background:radial-gradient(120% 140% at 100% 0%,rgba(127,191,160,.24),transparent 60%),linear-gradient(140deg,var(--brand-800),var(--brand-900));color:#fff;border-radius:var(--r-lg);box-shadow:var(--sh-2);padding:24px 20px 22px;text-align:center}.money-card-label{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--on-dark-soft)}.money-card-amount{display:block;margin:8px 0 6px;font-size:46px;font-weight:800;letter-spacing:-.04em;line-height:1;color:var(--gold);font-variant-numeric:tabular-nums}.money-card-sub{font-size:13.5px;color:var(--on-dark-soft)}.ledger{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--sh-1);padding:4px 14px}.ledger-row{display:flex;justify-content:space-between;align-items:flex-start;padding:13px 0;border-bottom:1px solid var(--line);gap:12px}.ledger-row:last-child{border-bottom:none}.ledger-label{font-weight:700;font-size:14px}.ledger-meta{color:var(--ink-2);font-size:12px;margin-top:2px}.ledger-amount{font-weight:800;font-size:15px;white-space:nowrap;font-variant-numeric:tabular-nums}.ledger-amount.credit{color:var(--accent)}.ledger-amount.debit{color:var(--ink-2)}.join-cta{display:flex;align-items:center;gap:12px;background:radial-gradient(120% 140% at 100% 0%,rgba(232,89,12,.3),transparent 55%),linear-gradient(140deg,var(--brand-800),var(--brand-900));color:#fff;border-radius:var(--r-md);box-shadow:var(--sh-2);padding:16px;text-decoration:none;min-height:72px}.join-cta:hover{color:#fff}.join-cta-body{flex:1;min-width:0}.join-cta-label{font-weight:800;font-size:15px;letter-spacing:-.01em}.join-cta small{display:block;font-weight:500;font-size:12.5px;color:var(--on-dark-soft);margin-top:3px}.join-cta-arrow{flex-shrink:0;display:flex;color:var(--on-dark-soft)}.join-cta-arrow svg{width:22px;height:22px}.stars{display:inline-flex;gap:2px;vertical-align:middle;line-height:1}.star{width:1em;height:1em;display:block}.star-on{color:var(--amber)}.star-off{color:var(--line-strong)}.reviews-trust{font-size:13px;color:var(--ink-2);margin:-4px 0 14px}.review-list{display:flex;flex-direction:column;gap:10px}.review{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--sh-1);padding:14px}.review-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}.review-author{font-weight:800;font-size:14px}.review-date{color:var(--ink-2);font-size:12px}.review-body{font-size:14.5px;margin:0}.review-reply{margin:12px 0 0 12px;border-left:3px solid var(--accent);background:var(--accent-tint);border-radius:0 var(--r-sm) var(--r-sm) 0;padding:10px 12px}.review-reply-label{font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--accent-hover);display:block;margin-bottom:4px}.review-reply p{margin:0;font-size:13.5px;color:var(--ink)}.star-picker{display:flex;justify-content:center;gap:6px}.star-picker button{width:56px;height:56px;border:none;background:none;cursor:pointer;font-size:40px;line-height:1;padding:0;color:var(--line-strong)}.star-picker button[data-on=true]{color:var(--amber)}@media (max-width: 380px){.star-picker button{width:48px;height:48px;font-size:34px}}.review-form-reveal{margin-top:var(--sp-3)}.brand-bar{display:flex;background:var(--brand-900);border-bottom:1px solid var(--line-on-dark)}.brand-bar-inner{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;max-width:var(--shell);margin:0 auto;padding:12px var(--pad)}.brand-mark{width:24px;height:24px;display:block;filter:brightness(0) invert(1)}.brand-name{font-weight:800;font-size:14px;color:#fff;letter-spacing:-.01em}.brand-link{display:flex;align-items:center;gap:9px;text-decoration:none}.nav-links{display:flex;align-items:center;gap:14px}.nav-links a{font-size:13px;font-weight:700;color:var(--on-dark-soft)}.nav-links a:hover{color:#fff}table.admin-table{width:100%;border-collapse:collapse;font-size:14px}table.admin-table th,table.admin-table td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line);white-space:nowrap}table.admin-table th{color:var(--ink-2);font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:.03em}.table-scroll{overflow-x:auto}.ballot{--b-bg: #0b120f;--b-surface: #141d19;--b-ink: #eef3f0;--b-ink-soft: #9db0a6;--b-accent: #34c980;--b-accent-ink: #06170f;--b-line: rgba(238, 243, 240, .12);min-height:100vh;background:var(--b-bg);color:var(--b-ink);padding:0 var(--pad) 64px}.ballot-header{max-width:var(--shell-narrow);margin:0 auto;padding:18px 0 8px}.ballot-brand{display:inline-flex;align-items:center;gap:9px;text-decoration:none}.ballot-brand-mark{width:24px;height:24px;filter:brightness(0) invert(1);opacity:.92}.ballot-brand-name{font-size:14px;font-weight:700;letter-spacing:-.01em;color:var(--b-ink)}.ballot-eyebrow{max-width:var(--shell-narrow);width:fit-content;margin:18px auto 0;display:flex;align-items:center;justify-content:center;gap:8px;padding:6px 12px;border-radius:var(--r-pill);background:#34c9801f;border:1px solid rgba(52,201,128,.28);color:var(--b-accent);font-size:12px;font-weight:700;letter-spacing:.02em}.ballot-hero{max-width:var(--shell-narrow);margin:18px auto 0}.ballot-hero h1{color:var(--b-ink);font-size:30px;line-height:1.12;text-wrap:balance;margin-bottom:10px}.ballot-hero p{color:var(--b-ink-soft);font-size:15px;line-height:1.55;margin:0}.ballot-steps{max-width:var(--shell-narrow);margin:28px auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.ballot-step{background:var(--b-surface);border:1px solid var(--b-line);border-radius:var(--r-md);padding:18px 14px;display:flex;flex-direction:column;align-items:center;text-align:center}.ballot-step-num{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--b-accent);color:var(--b-accent-ink);font-size:12px;font-weight:800;margin-bottom:8px}.ballot-step h2{color:var(--b-ink);font-size:14px;margin:0 0 3px}.ballot-step p{color:var(--b-ink-soft);font-size:12.5px;line-height:1.4;margin:0}@media (max-width: 520px){.ballot-steps{grid-template-columns:1fr}}.ballot-board{max-width:var(--shell-narrow);margin:32px auto 0}.ballot-board-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.ballot-board-head h2{color:var(--b-ink);font-size:18px;margin:0}.ballot-board-note{color:var(--b-ink-soft);font-size:12.5px;margin:3px 0 0}.ballot-total-stat{color:var(--b-accent);font-size:12.5px;font-weight:700;margin:8px 0 0}.ballot-board .btn-secondary{background:transparent;color:var(--b-ink);border-color:var(--b-line)}.ballot-board .btn-secondary:hover{border-color:var(--b-ink-soft)}.ballot-board .link-toggle{color:var(--b-accent);margin-top:6px}.ballot-board .link-toggle:hover{color:var(--b-ink)}.ballot-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}@keyframes ballot-row-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.ballot-row{display:flex;align-items:center;gap:14px;background:var(--b-surface);border:1px solid var(--b-line);border-radius:var(--r-md);padding:14px;animation:ballot-row-in .32s var(--ease) backwards;animation-delay:calc(var(--i, 0) * 45ms)}@media (prefers-reduced-motion: reduce){.ballot-row{animation:none}}.ballot-row-main{flex:1;min-width:0}.ballot-row-top{display:flex;align-items:center;gap:8px;margin-bottom:6px}.ballot-rank{color:var(--b-ink-soft);font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}.ballot-row-name{color:var(--b-ink);font-size:15.5px;font-weight:700;letter-spacing:-.01em}.ballot-badge{padding:2px 8px;border-radius:var(--r-pill);background:#34c98029;color:var(--b-accent);font-size:10.5px;font-weight:800;letter-spacing:.03em;text-transform:uppercase}.ballot-progress-row{display:flex;justify-content:space-between;gap:10px;margin-bottom:6px}.ballot-votes{color:var(--b-ink);font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}.ballot-remaining{color:var(--b-ink-soft);font-size:12px}.ballot-progress-track{height:6px;border-radius:999px;background:#eef3f01a;overflow:hidden}.ballot-progress-fill{height:100%;border-radius:999px;background:var(--b-accent);transition:width .4s var(--ease)}@media (prefers-reduced-motion: reduce){.ballot-progress-fill{transition:none}}.ballot-vote-btn{min-height:44px;padding:10px 18px;font-size:13.5px;flex-shrink:0}.ballot .empty-state{background:var(--b-surface);border:1px dashed var(--b-line);border-radius:var(--r-md)}.ballot .empty-state p:first-child{color:var(--b-ink);font-weight:700}.ballot .skeleton-row{background:var(--b-surface)}
