:root{--bg: #fbf8f6;--bg-2: #fdeee7;--surface: #ffffff;--surface-2: #f7f2ef;--surface-3: #efe7e1;--line: #ede4dd;--line-strong: #dccfc6;--ink: #241f22;--ink-muted: #6f6862;--ink-dim: #a89e97;--accent: #f04e5e;--accent-hi: #ff6373;--accent-soft: rgba(240, 78, 94, .1);--amber: #f59e0b;--amber-soft: rgba(245, 158, 11, .14);--mint: #2fa84f;--mint-soft: rgba(47, 168, 79, .12);--err: #e5484d;--err-soft: rgba(229, 72, 77, .1);--radius: 14px;--radius-sm: 10px;--shadow: 0 1px 2px rgba(31, 26, 24, .05), 0 12px 30px -22px rgba(31, 26, 24, .4);--glow: none;--display: "Figtree", -apple-system, "Segoe UI", system-ui, sans-serif;--body: "Figtree", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--board: var(--display);--card: var(--surface);--ok: var(--mint);--ok-soft: var(--mint-soft);--warn: var(--amber);--warn-soft: var(--amber-soft)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:var(--body);color:var(--ink);background:radial-gradient(1000px 460px at 88% -14%,var(--bg-2),transparent 60%),var(--bg);background-attachment:fixed;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3{font-family:var(--display);letter-spacing:-.02em;text-wrap:balance}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.tnum{font-variant-numeric:tabular-nums}.topbar{display:flex;align-items:center;gap:12px;padding:14px 20px;background:#fffdfbd1;-webkit-backdrop-filter:saturate(140%) blur(12px);backdrop-filter:saturate(140%) blur(12px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.topbar .brand{font-family:var(--display);font-weight:700;letter-spacing:-.02em;color:var(--ink);font-size:1.1rem}.topbar .brand:before{content:"◐ ";color:var(--accent)}.topbar .spacer{flex:1}.topbar .who{color:var(--ink-muted);font-size:.82rem}.page{max-width:720px;margin:0 auto;padding:22px 16px calc(96px + env(safe-area-inset-bottom))}.page-center{min-height:60vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px}.page h1{font-size:1.7rem;font-weight:700;margin:0 0 4px}.page h2{font-size:1.2rem;font-weight:600;margin:26px 0 10px}.subtitle{color:var(--ink-muted);margin:0 0 20px;max-width:52ch}.muted{color:var(--ink-muted)}.eyebrow{font-family:var(--display);text-transform:uppercase;letter-spacing:.14em;font-size:.7rem;font-weight:600;color:var(--ink-dim)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}.card+.card{margin-top:14px}button{font:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 18px;border-radius:999px;border:1px solid transparent;background:var(--accent);color:#fff;font-weight:700;letter-spacing:-.01em;cursor:pointer;transition:transform .06s ease,filter .15s ease,background .15s ease}.btn:hover{filter:brightness(1.06)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed;filter:none}.btn.secondary{background:var(--surface-2);color:var(--ink);border-color:var(--line-strong)}.btn.danger{background:transparent;color:var(--err);border-color:var(--err)}.btn.ghost{background:transparent;color:var(--ink-muted);border-color:var(--line)}.btn.block{width:100%}.btn.big{padding:16px 22px;font-size:1.05rem;border-radius:var(--radius)}.btn.sm{padding:7px 13px;font-size:.85rem}.actions-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.chip-row{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 16px}.chip-btn{padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink-muted);font-size:.85rem;font-weight:600;cursor:pointer;transition:color .15s,border-color .15s,background .15s}.chip-btn:hover{color:var(--ink);border-color:var(--line-strong)}.chip-btn.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-hi)}.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px 4px 8px;border-radius:999px;font-size:.74rem;font-weight:700;text-transform:capitalize;border:1px solid var(--line-strong);color:var(--ink-muted);background:var(--surface-2);white-space:nowrap}.chip:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.chip.live{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.chip.upcoming{color:var(--ink-muted);border-color:var(--line-strong);background:var(--surface-3)}.chip.ended{color:var(--ink-dim)}.chip.canceled{color:var(--err);border-color:var(--err);background:var(--err-soft)}.banner{border-radius:var(--radius-sm);padding:12px 14px;font-size:.92rem;margin:12px 0;border:1px solid transparent}.banner.error{background:var(--err-soft);border-color:#e5484d59;color:#b42318}.banner.warning{background:var(--amber-soft);border-color:#f59e0b66;color:#8a5a06}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label{font-size:.86rem;font-weight:600;color:var(--ink-muted)}.field .hint{font-weight:400;color:var(--ink-dim)}input,select,textarea{font:inherit;color:var(--ink);background:var(--surface-2);border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:11px 13px;width:100%;transition:border-color .15s,box-shadow .15s}textarea{resize:vertical;min-height:72px}input::placeholder,textarea::placeholder{color:var(--ink-dim)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}input.invalid{border-color:var(--err)}.field-error{color:var(--err);font-size:.82rem}.form-row{display:flex;gap:12px;flex-wrap:wrap}.form-row .field{flex:1;min-width:140px}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(4,1fr);gap:2px;padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:#fffdfbe6;-webkit-backdrop-filter:saturate(140%) blur(14px);backdrop-filter:saturate(140%) blur(14px);border-top:1px solid var(--line)}.tab{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 0;border:none;background:none;color:var(--ink-dim);font-size:.68rem;font-weight:600;letter-spacing:.02em;cursor:pointer;text-decoration:none}.tab .tab-ico{font-size:1.25rem;line-height:1}.tab.active{color:var(--ink)}.tab.active .tab-ico{color:var(--accent)}.tab.center .tab-ico{margin-top:-18px;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:#fff;box-shadow:0 6px 16px -6px var(--accent-soft),0 4px 12px -4px #f04e5e80}.tab.center{color:var(--ink-muted)}.hero{border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);padding:22px;position:relative;overflow:hidden}.hero.idle{padding:30px 22px}.hero.live{border-color:var(--line);border-top:3px solid var(--accent);border-radius:3px 3px var(--radius) var(--radius);background:linear-gradient(180deg,var(--accent-soft),transparent 42%),var(--surface)}.hero.ending{border-color:var(--line);border-top:3px solid var(--amber);border-radius:3px 3px var(--radius) var(--radius);background:linear-gradient(180deg,var(--amber-soft),transparent 42%),var(--surface)}.hero-top{display:flex;align-items:center;gap:8px;font-family:var(--display);text-transform:uppercase;letter-spacing:.16em;font-size:.72rem;font-weight:600;color:var(--accent)}.hero.ending .hero-top{color:var(--amber)}.live-dot{width:9px;height:9px;border-radius:50%;background:currentColor;box-shadow:0 0 0 0 currentColor;animation:pulse 1.9s ease-out infinite}@keyframes pulse{0%{box-shadow:0 0 #f04e5e80}70%{box-shadow:0 0 0 9px #f04e5e00}to{box-shadow:0 0 #f04e5e00}}.hero-venue{font-family:var(--display);font-weight:700;font-size:1.9rem;letter-spacing:-.03em;margin:10px 0 2px;line-height:1.05}.hero-deal{color:var(--ink-muted);font-size:1rem}.hero-count{font-family:var(--board);font-variant-numeric:tabular-nums;font-weight:800;font-size:3.2rem;letter-spacing:-.02em;margin:14px 0 2px;color:var(--accent)}.hero.ending .hero-count{color:var(--amber)}.hero-count-label{font-size:.78rem;color:var(--ink-dim);text-transform:uppercase;letter-spacing:.12em}.fill{margin-top:18px}.fill-head{display:flex;justify-content:space-between;align-items:baseline;font-size:.82rem;color:var(--ink-muted);margin-bottom:6px}.fill-head b{color:var(--ink);font-family:var(--display);font-variant-numeric:tabular-nums}.fill-track{height:12px;border-radius:999px;background:var(--surface-3);overflow:hidden;border:1px solid var(--line)}.fill-bar{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--amber));transition:width .6s cubic-bezier(.2,.8,.2,1)}.tiles{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:16px 0}.tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}.tile-label{font-size:.76rem;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.06em}.tile-value{font-family:var(--board);font-weight:800;font-size:1.9rem;font-variant-numeric:tabular-nums;letter-spacing:-.02em;margin-top:4px;color:var(--ink)}.tile-delta{font-size:.78rem;font-weight:600}.tile-delta.up{color:var(--mint)}.tile-delta.down{color:var(--ink-dim)}.tile-spark{display:block;width:100%;height:26px;margin-top:8px;overflow:visible}.offer-row{display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"disc meta status" "actions actions actions";gap:10px 14px;align-items:center}.offer-row .discount{grid-area:disc;font-family:var(--display);font-weight:700;font-size:1.5rem;letter-spacing:-.03em;color:var(--ink)}.offer-row .meta{grid-area:meta;min-width:0}.offer-row .meta .window{font-size:.92rem}.offer-row .meta .cap{font-size:.8rem;color:var(--ink-muted)}.offer-row .chip{grid-area:status;justify-self:end}.offer-row .actions{grid-area:actions;display:flex;gap:8px;border-top:1px solid var(--line);padding-top:12px;margin-top:2px}.offer-row .actions .btn{flex:1}.stats-header{display:flex;gap:20px;flex-wrap:wrap;margin-bottom:12px}.stat .label{font-size:.78rem;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.06em}.stat .value{font-family:var(--display);font-weight:700;font-size:1.5rem;font-variant-numeric:tabular-nums}.funnel{display:flex;flex-direction:column;gap:10px}.funnel-step{display:grid;grid-template-columns:120px 1fr auto;gap:12px;align-items:center}.funnel-step .name{font-size:.88rem;color:var(--ink-muted)}.funnel-step .bar{height:12px;border-radius:999px;background:var(--surface-3);overflow:hidden}.funnel-step .bar>span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--amber))}.funnel-step .num{font-family:var(--display);font-variant-numeric:tabular-nums;font-weight:700;min-width:40px;text-align:right}.code-input{font-family:var(--display);font-size:2.6rem;font-weight:700;letter-spacing:.16em;text-align:center;text-transform:uppercase;min-height:82px;font-variant-numeric:tabular-nums;background:var(--surface-2)}.stepper{display:flex;align-items:center;gap:16px;justify-content:center}.stepper button{width:62px;height:62px;border-radius:50%;border:1px solid var(--line-strong);background:var(--surface-2);color:var(--ink);font-size:1.8rem;font-weight:700;cursor:pointer}.stepper button:disabled{opacity:.4}.stepper .count{font-family:var(--display);font-size:1.8rem;font-weight:700;min-width:40px;text-align:center;font-variant-numeric:tabular-nums}.redeem-state{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;padding:28px}.redeem-state .icon{width:108px;height:108px;border-radius:50%;display:grid;place-items:center;font-size:3.4rem;margin-bottom:6px}.redeem-state h2{font-size:2rem;margin:0}.redeem-state.success{background:radial-gradient(120% 90% at 50% 0%,var(--mint-soft),var(--bg) 70%)}.redeem-state.success .icon{background:var(--mint-soft);color:var(--mint);border:2px solid var(--mint)}.redeem-state.error{background:radial-gradient(120% 90% at 50% 0%,var(--err-soft),var(--bg) 70%)}.redeem-state.error .icon{background:var(--err-soft);color:var(--err);border:2px solid var(--err)}.biz-card{display:flex;align-items:center;gap:14px;cursor:pointer;transition:border-color .15s,transform .06s}.biz-card:hover{border-color:var(--line-strong)}.biz-card:active{transform:translateY(1px)}.biz-card .info{flex:1;min-width:0}.biz-card .name{font-family:var(--display);font-weight:700;font-size:1.1rem}.biz-card .addr{color:var(--ink-muted);font-size:.86rem}.biz-card .counts{display:flex;flex-direction:column;align-items:flex-end;gap:4px;font-size:.82rem;color:var(--ink-muted);font-variant-numeric:tabular-nums}.member-list{list-style:none;margin:0;padding:0}.member-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 2px;border-bottom:1px solid var(--line)}.member-row:last-child{border-bottom:none}.member-info{display:flex;align-items:center;gap:10px;min-width:0}.member-email{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.role-badge{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:2px 8px;border-radius:999px;flex:none}.role-badge.owner{background:var(--accent-soft);color:var(--accent-hi)}.role-badge.staff{background:var(--surface-3);color:var(--ink-muted)}.dup-list{display:flex;flex-direction:column;gap:8px;margin:12px 0}.dup-item{border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 12px;background:var(--surface-2)}.dup-item .name{font-weight:600}.dup-item .addr{color:var(--ink-muted);font-size:.85rem}.login-box{width:100%;max-width:400px}@keyframes pop{0%{transform:scale(.96);opacity:.6}60%{transform:scale(1.02)}to{transform:scale(1);opacity:1}}.pop{animation:pop .4s cubic-bezier(.2,.8,.2,1)}.tmpl-list{display:flex;flex-direction:column;gap:8px}.tmpl{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2)}.tmpl-label{font-weight:700}.tmpl-meta{font-size:.85rem;color:var(--ink-muted)}.tmpl-actions{display:flex;align-items:center;gap:8px}.icon-btn{border:none;background:none;color:var(--ink-dim);cursor:pointer;font-size:.9rem;padding:6px 8px;border-radius:8px;line-height:1}.icon-btn:hover{color:var(--err);background:var(--err-soft)}.tmpl-form{margin-top:12px;padding-top:12px;border-top:1px dashed var(--line-strong)}.toggle-row{display:flex!important;flex-direction:row!important;align-items:center;gap:10px;font-weight:500!important;color:var(--ink)!important;cursor:pointer}.toggle-row input{width:auto;accent-color:var(--accent);transform:scale(1.2)}.collab-item{margin-top:12px}.collab-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.collab-name{font-family:var(--display);font-weight:700;font-size:1.05rem}.collab-dist{color:var(--ink-muted);font-size:.85rem;flex:none}.collab-cats{color:var(--ink-muted);font-size:.82rem;text-transform:capitalize;margin-top:2px}.collab-desc{margin:8px 0 10px;color:var(--ink-soft, var(--ink))}.collab-contact{display:flex;flex-wrap:wrap;gap:14px;align-items:center;font-size:.9rem}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.grow-callout{display:block;text-decoration:none;color:inherit;border-color:var(--accent);background:var(--accent-soft)}.grow-callout:hover{background:#f04e5e29}.grow-callout-title{font-weight:700;color:var(--accent);margin-bottom:4px}.grow-callout-body{color:var(--ink-muted);font-size:.94rem;line-height:1.4}.grow-page .link-row{display:flex;gap:8px;align-items:stretch}.grow-page .link-row input{flex:1;min-width:0}.grow-page .link-row .btn{white-space:nowrap}.print-card{max-width:360px;margin:8px auto 0;padding:28px 24px;text-align:center;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);box-shadow:var(--shadow)}.print-head{font-family:var(--display);font-weight:800;font-size:1.35rem;color:var(--accent);letter-spacing:-.01em}.print-name{font-weight:700;font-size:1.05rem;color:var(--ink);margin:4px 0 18px}.qr-img{width:240px;height:240px;display:block;margin:0 auto;image-rendering:pixelated}.qr-img.placeholder{background:var(--surface-3);border-radius:var(--radius-sm)}.print-foot{margin-top:16px;font-weight:600;color:var(--ink-muted)}@media print{.topbar,.tabbar{display:none!important}body{background:#fff}.grow-page>*:not(.print-card){display:none!important}.print-card{box-shadow:none;border:2px solid #000;max-width:460px;margin:0 auto}.print-head{color:#000}}.auth-links{display:flex;justify-content:space-between;gap:12px;margin-top:14px}.auth-alt{margin-top:12px;padding-top:12px;border-top:1px solid var(--line);text-align:center}.linkish{background:none;border:none;padding:0;color:var(--accent);font:inherit;font-size:.9rem;cursor:pointer}.linkish:hover{text-decoration:underline}.section-h{font-size:1.05rem;margin:22px 0 8px}.profile-page .field textarea{width:100%;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink);font:inherit;padding:10px 12px;resize:vertical}.completeness{margin-top:8px}.completeness-head{display:flex;justify-content:space-between;align-items:baseline}.completeness-track{height:8px;background:var(--surface-3);border-radius:999px;overflow:hidden;margin:10px 0 12px}.completeness-bar{height:100%;background:var(--accent);border-radius:999px;transition:width .3s ease}.completeness-checks{display:flex;flex-wrap:wrap;gap:8px 16px}.check{font-size:.86rem;color:var(--ink-dim)}.check.done{color:var(--mint)}.media-row{display:flex;gap:24px;flex-wrap:wrap}.logo-slot{display:flex;flex-direction:column;align-items:center;gap:8px}.logo-img{width:104px;height:104px;border-radius:16px;object-fit:cover;border:1px solid var(--line);background:var(--surface-2)}.logo-img.placeholder{display:grid;place-items:center;color:var(--ink-dim);font-size:.8rem}.file-btn{cursor:pointer}.photos-slot{flex:1;min-width:220px}.photos-grid{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:6px}.photo-thumb{position:relative;width:92px;height:92px}.photo-thumb img{width:100%;height:100%;object-fit:cover;border-radius:12px;border:1px solid var(--line)}.photo-remove{position:absolute;top:-8px;right:-8px;width:22px;height:22px;border-radius:50%;border:none;background:var(--ink);color:var(--surface);font-size:15px;line-height:1;cursor:pointer}.photo-add{width:92px;height:92px;border:1px dashed var(--line-strong);border-radius:12px;display:grid;place-items:center;font-size:26px;color:var(--ink-dim);cursor:pointer}.photo-add:hover{border-color:var(--accent);color:var(--accent)}.hours-list{display:flex;flex-direction:column}.hours-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.hours-row:last-child{border-bottom:none}.hours-day{display:flex;align-items:center;gap:10px;font-size:.95rem}.hours-row.closed .hours-day{color:var(--ink-muted)}.hours-times{display:flex;align-items:center;gap:8px}.hours-times input[type=time]{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink);padding:6px 8px;font:inherit}.hours-times span,.hours-closed-label{color:var(--ink-dim);font-size:.85rem}.profile-save{margin-top:20px;position:sticky;bottom:12px}.place-search{position:relative}.place-search input{width:100%}.place-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:20;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow);overflow:hidden;max-height:300px;overflow-y:auto}.place-item{display:flex;flex-direction:column;gap:1px;width:100%;text-align:left;background:none;border:none;border-bottom:1px solid var(--line);padding:10px 14px;cursor:pointer;font:inherit;color:var(--ink)}.place-item:last-child{border-bottom:none}.place-item:hover{background:var(--surface-2)}.place-item.muted{color:var(--ink-muted);cursor:default;font-size:.9rem}.place-item.muted:hover{background:none}.place-primary{font-weight:600;font-size:.95rem}.place-secondary{color:var(--ink-muted);font-size:.85rem}
