*{box-sizing:border-box}:root{--volcyy-primary:#8b1a1a;--volcyy-primary-hover:#6b1515;--volcyy-primary-light:#8b1a1a14;--volcyy-text-dark:#1d1d1f;--volcyy-text-muted:#6e6e73;--volcyy-border:#e5e5e5;--focus-ring-color:#8b1a1a;--focus-ring-width:3px;--apple-font:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--heading-font:"Playfair Display",Georgia,serif}body,html{background-color:#f0eeec;height:100%;margin:0;padding:0;width:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#1d1d1f;color:var(--volcyy-text-dark);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-family:var(--apple-font);overflow-x:hidden}#root{background-color:#fff;box-shadow:0 0 80px #00000014;margin:0 auto;max-width:2560px;min-height:100vh;padding:0;width:100%}:focus-visible{outline:3px solid #8b1a1a;outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:2px}a:focus-visible,button:focus-visible{box-shadow:0 0 0 4px #8b1a1a1a;outline:3px solid #8b1a1a;outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:2px}.welcome-overlay{align-items:center;background:#0009;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:1000}.welcome-modal{background:#fff;border-radius:20px;box-shadow:0 24px 64px #00000038;max-width:400px;padding:40px 32px 36px;position:relative;text-align:center;width:100%}.welcome-modal__close{background:none;border:none;color:var(--volcyy-text-muted);cursor:pointer;font-size:1.6rem;line-height:1;padding:4px 8px;position:absolute;right:18px;top:14px}.welcome-modal__close:hover{color:var(--volcyy-text-dark)}.welcome-modal__logo{display:block;height:32px;margin:0 auto 20px;width:auto}.welcome-modal__title{color:var(--volcyy-text-dark);font-size:1.35rem;font-weight:700;margin:0 0 10px}.welcome-modal__sub{color:var(--volcyy-text-muted);font-size:.9rem;line-height:1.55;margin:0 0 28px}.welcome-modal__cta{background:var(--volcyy-primary);border:none;border-radius:12px;color:#fff;cursor:pointer;font-family:var(--apple-font);font-size:1rem;font-weight:700;padding:14px;transition:background .2s;width:100%}.welcome-modal__cta:hover{background:var(--volcyy-primary-hover)}.auth-overlay{align-items:center;background:#0000008c;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:1000}.auth-modal{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0003;max-width:420px;padding:40px 36px 36px;position:relative;width:100%}.auth-modal__close{background:none;border:none;color:var(--volcyy-text-muted);cursor:pointer;font-size:1.6rem;line-height:1;padding:4px 8px;position:absolute;right:18px;top:14px}.auth-modal__close:hover{color:var(--volcyy-text-dark)}.auth-modal__logo{display:block;height:36px;margin:0 auto 24px;width:auto}.auth-modal__heading{background:#fff5f0;border:1px solid #fcd5b8;border-radius:8px;color:var(--volcyy-primary);font-size:.9rem;font-weight:600;margin:0 0 20px;padding:9px 14px;text-align:center}.auth-modal__tabs{border-bottom:2px solid var(--volcyy-border);display:flex;margin-bottom:24px}.auth-modal__tabs button{background:none;border:none;border-bottom:2px solid #0000;color:var(--volcyy-text-muted);cursor:pointer;flex:1 1;font-family:var(--apple-font);font-size:.95rem;font-weight:500;margin-bottom:-2px;padding:10px;transition:color .2s,border-color .2s}.auth-modal__tabs button.active{border-bottom-color:var(--volcyy-primary);color:var(--volcyy-primary)}.auth-modal__google{align-items:center;background:#fff;border:1.5px solid var(--volcyy-border);border-radius:10px;color:var(--volcyy-text-dark);cursor:pointer;display:flex;font-family:var(--apple-font);font-size:.95rem;font-weight:500;gap:10px;justify-content:center;padding:12px;transition:background .2s,border-color .2s;width:100%}.auth-modal__google:hover{background:#f8f8f8;border-color:#bbb}.auth-modal__google:disabled{cursor:not-allowed;opacity:.6}.auth-modal__divider{align-items:center;color:var(--volcyy-text-muted);display:flex;font-size:.85rem;gap:12px;margin:20px 0}.auth-modal__divider:after,.auth-modal__divider:before{background:var(--volcyy-border);content:"";flex:1 1;height:1px}.auth-modal__field{margin-bottom:16px}.auth-modal__field label{color:var(--volcyy-text-dark);display:block;font-size:.85rem;font-weight:500;margin-bottom:6px}.auth-modal__field input{border:1.5px solid var(--volcyy-border);border-radius:10px;box-sizing:border-box;font-family:var(--apple-font);font-size:.95rem;outline:none;padding:11px 14px;transition:border-color .2s;width:100%}.auth-modal__field input:focus{border-color:var(--volcyy-primary)}.auth-modal__password-wrap{position:relative}.auth-modal__password-wrap input{padding-right:44px}.auth-modal__pw-toggle{align-items:center;background:none;border:none;color:var(--volcyy-text-muted);cursor:pointer;display:flex;justify-content:center;padding:6px;position:absolute;right:8px;top:50%;transform:translateY(-50%);transition:color .2s}.auth-modal__pw-toggle:hover{color:var(--volcyy-text-dark)}.auth-modal__error{background:#fff5f5;border:1px solid #fccaca;border-radius:8px;color:#c53030;font-size:.88rem;margin-bottom:14px;padding:10px 14px}.auth-modal__forgot-row{display:flex;justify-content:flex-end;margin-bottom:12px;margin-top:-4px}.auth-modal__forgot-btn{background:none;border:none;color:var(--volcyy-primary);cursor:pointer;font-family:var(--apple-font);font-size:.83rem;padding:0;text-decoration:underline;text-underline-offset:2px}.auth-modal__forgot-btn:hover{opacity:.75}.auth-modal__forgot-title{color:var(--volcyy-text-dark);font-size:1.2rem;font-weight:700;margin:0 0 8px;text-align:center}.auth-modal__forgot-desc{color:var(--volcyy-text-muted);font-size:.9rem;margin:0 0 24px;text-align:center}.auth-modal__success{background:#f0fff4;border:1px solid #9ae6b4;border-radius:8px;color:#276749;font-size:.88rem;margin-bottom:14px;padding:10px 14px}.auth-modal__back-link{background:none;border:none;color:var(--volcyy-text-muted);cursor:pointer;display:block;font-family:var(--apple-font);font-size:.88rem;margin-top:16px;text-align:center;width:100%}.auth-modal__back-link:hover{color:var(--volcyy-text-dark)}.auth-modal__submit{background:var(--volcyy-primary);border:none;border-radius:10px;color:#fff;cursor:pointer;font-family:var(--apple-font);font-size:1rem;font-weight:600;margin-top:4px;padding:13px;transition:background .2s;width:100%}.auth-modal__submit:hover{background:var(--volcyy-primary-hover)}.auth-modal__submit:disabled{cursor:not-allowed;opacity:.65}.navbar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff2;border-bottom:1px solid var(--volcyy-border);position:-webkit-sticky;position:sticky;top:0;z-index:100}.navbar__inner{align-items:center;display:flex;gap:32px;height:64px;margin:0 auto;max-width:1200px;padding:0 24px}.navbar__logo-link{align-items:center;display:flex;flex-shrink:0}.navbar__logo{height:36px;width:auto}.navbar__links{align-items:center;display:flex;flex:1 1;gap:4px}.navbar__links a{border-radius:8px;color:var(--volcyy-text-muted);font-family:var(--apple-font);font-size:.9rem;font-weight:500;padding:6px 12px;text-decoration:none;transition:color .2s,background .2s}.navbar__links a:hover{background:#f5f5f5;color:var(--volcyy-text-dark)}.navbar__links a.active{color:var(--volcyy-primary);font-weight:600}.navbar__links a.admin-link{color:#7c3aed}.navbar__links a.admin-link.active{background:#f5f3ff;color:#7c3aed}.navbar__actions{align-items:center;display:flex;flex-shrink:0;gap:8px}.navbar__settings{position:relative}.navbar__settings-btn{align-items:center;background:none;border:none;border-radius:8px;color:var(--volcyy-text-muted);cursor:pointer;display:flex;font-family:var(--apple-font);font-size:.9rem;font-weight:500;gap:4px;padding:6px 12px;transition:color .2s,background .2s}.navbar__settings-btn:hover{background:#f5f5f5;color:var(--volcyy-text-dark)}.navbar__dropdown{background:#fff;border:1px solid var(--volcyy-border);border-radius:12px;box-shadow:0 8px 32px #0000001f;min-width:180px;overflow:hidden;position:absolute;right:0;top:calc(100% + 8px)}.navbar__dropdown a{color:var(--volcyy-text-dark);display:block;font-family:var(--apple-font);font-size:.9rem;padding:11px 16px;text-decoration:none;transition:background .15s}.navbar__dropdown a:hover{background:#f8f8f8}.navbar__greeting{color:var(--volcyy-text-muted);font-size:.875rem;font-weight:500;white-space:nowrap}.navbar__btn{border:none;border-radius:980px;cursor:pointer;font-family:var(--apple-font);font-size:.9rem;font-weight:600;padding:8px 18px;transition:background .2s,color .2s}.navbar__btn--primary{background:var(--volcyy-primary);color:#fff}.navbar__btn--primary:hover{background:var(--volcyy-primary-hover)}.navbar__btn--outline{background:#0000;border:1.5px solid var(--volcyy-border);color:var(--volcyy-text-muted)}.navbar__btn--outline:hover{background:#f5f5f5}.navbar__mobile-toggle{background:none;border:none;cursor:pointer;display:none;flex-direction:column;gap:4px;margin-left:auto;padding:8px}.navbar__mobile-toggle span{background:var(--volcyy-text-dark);border-radius:2px;display:block;height:2px;width:22px}.navbar__mobile-menu{border-top:1px solid var(--volcyy-border);display:flex;flex-direction:column;gap:2px;padding:12px 24px 16px}.navbar__mobile-menu a,.navbar__mobile-menu button{background:none;border:none;color:var(--volcyy-text-dark);cursor:pointer;display:block;font-family:var(--apple-font);font-size:.95rem;font-weight:500;padding:10px 0;text-align:left;text-decoration:none;width:100%}.navbar__mobile-menu button.primary{color:var(--volcyy-primary);font-weight:600}.navbar__mobile-menu .navbar__greeting{color:var(--volcyy-text-dark);display:block;font-size:.95rem;padding:10px 0}.navbar__mobile-divider{background:var(--volcyy-border);height:1px;margin:4px 0}@media (max-width:768px){.navbar__actions,.navbar__links{display:none}.navbar__mobile-toggle{display:flex}.navbar__inner{gap:16px}}.footer{background:#1a0808;color:#ffffffb3;margin-top:auto;padding:56px 24px 24px}.footer__inner{display:flex;flex-wrap:wrap;gap:48px;margin:0 auto 40px;max-width:1200px}.footer__brand{flex:1 1;min-width:220px}.footer__logo{filter:brightness(0) invert(1);height:28px;margin-bottom:14px;width:auto}.footer__tagline{color:#ffffff80;font-size:.88rem;line-height:1.6;margin:0;max-width:240px}.footer__links{display:flex;flex-wrap:wrap;gap:48px}.footer__col{display:flex;flex-direction:column;gap:8px;min-width:120px}.footer__col h4{color:#fff6;font-family:var(--apple-font);font-size:.75rem;font-weight:700;letter-spacing:.12em;margin-bottom:4px;text-transform:uppercase}.footer__col a{color:#ffffffa6;font-size:.88rem;text-decoration:none;transition:color .2s}.footer__col a:hover{color:#fff}.footer__bottom{align-items:center;border-top:1px solid #ffffff14;color:#ffffff59;display:flex;flex-wrap:wrap;font-size:.82rem;gap:8px;justify-content:space-between;margin:0 auto;max-width:1200px;padding-top:20px}.footer__bottom a{color:#ffffff80;text-decoration:none}.footer__bottom a:hover{color:#fff}@media (max-width:600px){.footer__inner,.footer__links{gap:32px}.footer__bottom{align-items:flex-start;flex-direction:column}}.restaurant-card{background:#fff;border:1px solid var(--volcyy-border);border-radius:16px;cursor:pointer;overflow:hidden;padding:0;text-align:left;transition:transform .2s,box-shadow .2s;width:100%}.restaurant-card:hover{box-shadow:0 12px 32px #0000001a;transform:translateY(-3px)}.restaurant-card__img-wrap{background:#f5f5f5;height:180px;overflow:hidden;position:relative}.restaurant-card__img{height:100%;object-fit:cover;width:100%}.restaurant-card__img-placeholder{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.restaurant-card__featured{background:#1a1a1a;border-radius:980px;color:#d4af6a;font-family:var(--apple-font);font-size:.72rem;font-weight:700;left:12px;letter-spacing:.02em;padding:4px 10px;position:absolute;top:12px}.restaurant-card__badges{align-items:flex-end;display:flex;flex-direction:column;gap:6px;position:absolute;right:12px;top:12px}.restaurant-card__badge{background:var(--volcyy-primary);border-radius:980px;color:#fff;font-family:var(--apple-font);font-size:.78rem;font-weight:700;letter-spacing:.02em;padding:4px 10px}.restaurant-card__badge--black{background:#1a1a1a;color:#d4af6a}.restaurant-card__body{padding:16px}.restaurant-card__name{color:var(--volcyy-text-dark);font-family:var(--heading-font);font-size:1.1rem;font-weight:700;margin:0 0 4px}.restaurant-card__meta{color:var(--volcyy-primary);font-size:.85rem;font-weight:500;margin:0 0 4px}.restaurant-card__address{align-items:center;color:var(--volcyy-text-muted);display:flex;font-size:.82rem;gap:8px;margin:0}.restaurant-card__address>:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.restaurant-card__dist{background:var(--volcyy-primary-light);border-radius:980px;color:var(--volcyy-primary);flex-shrink:0;font-size:.75rem;font-weight:600;margin-left:auto;padding:2px 8px}.home-hero{background:linear-gradient(135deg,#8b1a1a,#6b1515);color:#fff;padding:40px 24px 32px;text-align:center}.home-hero__inner{margin:0 auto;max-width:700px}.home-hero__badge{background:#ffffff26;border:1px solid #ffffff4d;border-radius:980px;color:#fff;display:inline-block;font-size:.78rem;font-weight:600;letter-spacing:.15em;margin-bottom:24px;padding:6px 16px;text-transform:uppercase}.home-hero__title{font-family:var(--heading-font);font-size:clamp(2.2rem,5vw,3.6rem);font-weight:800;line-height:1.15;margin:0 0 20px}.home-hero__accent{color:#ffcece}.home-hero__sub{font-size:clamp(1rem,1.5vw,1.15rem);line-height:1.6;margin:0 auto;max-width:520px;opacity:.88}.home-listings{padding:48px 24px 80px}.home-listings__inner{margin:0 auto;max-width:1200px}.home-listings__controls{align-items:center;display:flex;flex-wrap:wrap;gap:16px;margin-bottom:32px}.home-listings__search-wrap{flex:1 1;min-width:240px;position:relative}.home-listings__search-icon{left:14px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.home-listings__search{border:1.5px solid var(--volcyy-border);border-radius:980px;box-sizing:border-box;font-family:var(--apple-font);font-size:.95rem;outline:none;padding:12px 16px 12px 42px;transition:border-color .2s;width:100%}.home-listings__search:focus{border-color:var(--volcyy-primary)}.home-location-bar{align-items:center;display:flex;flex-direction:row;flex-wrap:wrap;gap:12px;margin-bottom:16px}.home-location-bar__form{align-items:center;background:#fff;border:1.5px solid var(--volcyy-primary);border-radius:980px;display:flex;flex:1 1;gap:8px;max-width:640px;min-width:280px;padding:4px 4px 4px 16px}.home-location-bar__geo-btn{align-items:center;background:none;border:none;border-radius:50%;color:var(--volcyy-primary);cursor:pointer;display:flex;flex-shrink:0;height:32px;justify-content:center;transition:background .2s;width:32px}.home-location-bar__geo-btn:hover{background:#8b1a1a14}.home-location-bar__geo-btn:disabled{cursor:not-allowed;opacity:.6}.home-location-bar__geo-spinner{animation:home-geo-spin .7s linear infinite;border:2px solid #8b1a1a40;border-radius:50%;border-top:2px solid var(--volcyy-primary);height:15px;width:15px}@keyframes home-geo-spin{to{transform:rotate(1turn)}}.home-location-bar__icon{color:var(--volcyy-primary);flex-shrink:0}.home-location-bar__input{background:#0000;border:none;flex:1 1;font-family:var(--apple-font);font-size:.92rem;min-width:0;outline:none}.home-location-bar__btn{background:var(--volcyy-primary);border:none;border-radius:980px;color:#fff;cursor:pointer;flex-shrink:0;font-family:var(--apple-font);font-size:.88rem;font-weight:700;padding:10px 20px;transition:background .2s}.home-location-bar__btn:hover{background:var(--volcyy-primary-hover)}.home-location-bar__btn:disabled{cursor:not-allowed;opacity:.7}.home-location-bar__active{align-items:center;color:var(--volcyy-text-dark);display:flex;font-size:.85rem;gap:8px}.home-location-bar__clear{background:none;border:none;color:var(--volcyy-primary);cursor:pointer;font-family:var(--apple-font);font-size:.82rem;font-weight:600;padding:0;text-decoration:underline}.home-location-bar__error{color:#c53030;font-size:.85rem}.home-listings__grid,.home-listings__loading{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.restaurant-card--skeleton{pointer-events:none}.skeleton-block,.skeleton-line{animation:shimmer 1.4s infinite;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%}.skeleton-line{border-radius:4px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.home-listings__empty{color:var(--volcyy-text-muted);font-size:1.05rem;padding:80px 24px;text-align:center}@media (max-width:600px){.home-listings__controls{align-items:stretch;flex-direction:column}.home-location-bar__form{max-width:100%}}.hours-display{background:#fff;border:1px solid var(--volcyy-border);border-radius:12px;overflow:hidden}.hours-display__header{align-items:center;background:none;border:none;cursor:pointer;display:flex;font-family:var(--apple-font);gap:10px;padding:12px 16px;text-align:left;width:100%}.hours-display__indicator{border-radius:980px;flex-shrink:0;font-size:.78rem;font-weight:700;padding:3px 10px}.hours-display__indicator--open{background:#e8f5e9;color:#2e7d32}.hours-display__indicator--closed{background:#f0f0f0;color:var(--volcyy-text-muted)}.hours-display__today{color:var(--volcyy-text-dark);flex:1 1;font-size:.9rem}.hours-display__chevron{color:var(--volcyy-text-muted);font-size:.7rem}.hours-display__table{border-collapse:collapse;border-top:1px solid var(--volcyy-border);width:100%}.hours-display__table td{color:var(--volcyy-text-muted);font-size:.85rem;padding:8px 16px}.hours-display__table td:first-child{color:var(--volcyy-text-dark);font-weight:600}.hours-display__table td:last-child{text-align:right}.hours-display__row--today td{color:var(--volcyy-primary);font-weight:600}.restaurant-page{min-height:100vh}.restaurant-page--loading,.restaurant-page--not-found{align-items:center;display:flex;flex-direction:column;gap:16px;justify-content:center;min-height:60vh}.restaurant-page--not-found h1{font-family:var(--heading-font)}.restaurant-page--not-found button{background:var(--volcyy-primary);border:none;border-radius:8px;color:#fff;cursor:pointer;font-family:var(--apple-font);font-size:.95rem;padding:10px 20px}.spinner{animation:spin .8s linear infinite;border:3px solid var(--volcyy-primary-light);border-radius:50%;border-top-color:var(--volcyy-primary);height:36px;width:36px}@keyframes spin{to{transform:rotate(1turn)}}.restaurant-page__photo{background:#1a0a0a;border-radius:16px;height:280px;overflow:hidden;position:relative}.restaurant-page__photo-img{height:100%;object-fit:cover;object-position:center;width:100%}.restaurant-page__photo-placeholder{background:linear-gradient(135deg,#8b1a1a,#4a0e0e);height:100%;width:100%}.restaurant-page__back{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffe6;border:none;border-radius:980px;color:var(--volcyy-text-dark);cursor:pointer;font-family:var(--apple-font);font-size:.9rem;font-weight:600;left:20px;padding:8px 18px;position:absolute;top:20px;transition:background .2s}.restaurant-page__back:hover{background:#fff}.restaurant-page__body{grid-gap:28px;display:grid;gap:28px;grid-template-columns:1fr;margin:0 auto;max-width:1100px;padding:40px 24px 80px}@media (min-width:900px){.restaurant-page__body{align-items:start;grid-template-areas:"photo details" "actions actions";grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}.restaurant-page__photo{grid-area:photo;height:100%;min-height:420px}.restaurant-page__main{grid-area:details}.restaurant-page__actions{grid-area:actions}}.restaurant-page__header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:20px}.restaurant-page__cuisine{color:var(--volcyy-primary);display:inline-block;font-size:.82rem;font-weight:600;letter-spacing:.1em;margin-bottom:6px;text-transform:uppercase}.restaurant-page__name{color:var(--volcyy-text-dark);font-family:var(--heading-font);font-size:clamp(1.8rem,4vw,2.6rem);font-weight:800;margin:0 0 8px}.restaurant-page__address{align-items:flex-start;color:var(--volcyy-text-muted);display:flex;font-size:.95rem;gap:6px;margin:0}.restaurant-page__address svg{flex-shrink:0;margin-top:3px}.restaurant-page__discount-badges{display:flex;flex-shrink:0;gap:10px}.restaurant-page__discount-badge{align-items:center;background:var(--volcyy-primary);border-radius:16px;color:#fff;display:flex;flex-direction:column;flex-shrink:0;height:80px;justify-content:center;text-align:center;width:80px}.restaurant-page__discount-badge--black{background:#1a1a1a;color:#d4af6a}.restaurant-page__discount-badge span{font-size:1.8rem;font-weight:800;line-height:1}.restaurant-page__discount-badge small{font-size:.7rem;font-weight:600;letter-spacing:.08em;opacity:.9;text-transform:uppercase}.restaurant-page__description{color:var(--volcyy-text-muted);font-size:1rem;line-height:1.7;margin:0 0 24px}.restaurant-page__cards{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:36px}.restaurant-page__card{align-items:center;background:#f8f8f8;border:1px solid var(--volcyy-border);border-radius:12px;box-sizing:border-box;color:var(--volcyy-text-dark);display:flex;font-family:var(--apple-font);font-size:.88rem;gap:10px;padding:14px 16px;text-align:left;text-decoration:none;width:100%}.restaurant-page__card svg{color:var(--volcyy-text-muted);flex-shrink:0}.restaurant-page__card-text{min-width:0}a.restaurant-page__card:hover{background:#f0f0f0}.restaurant-page__card--action{border:none;color:var(--volcyy-primary);cursor:pointer;font-weight:600}.restaurant-page__card--action svg{color:var(--volcyy-primary)}.restaurant-page__card--action:hover{background:var(--volcyy-primary-light)}.restaurant-page__hours{margin-top:24px}.restaurant-page__hours-heading{color:var(--volcyy-text-dark);font-size:.95rem;font-weight:700;margin:0 0 10px}.restaurant-page__actions{display:flex;flex-wrap:wrap;gap:12px}.restaurant-page__redeem-note{color:var(--volcyy-text-muted);flex-basis:100%;font-size:.8rem;margin:0;text-align:center}.restaurant-page__btn{border:none;border-radius:12px;cursor:pointer;flex:1 1;font-family:var(--apple-font);font-size:1rem;font-weight:700;min-width:180px;padding:15px 24px;text-align:center;transition:background .2s,transform .1s}.restaurant-page__btn:active{transform:scale(.98)}.restaurant-page__btn--primary{background:var(--volcyy-primary);color:#fff}.restaurant-page__btn--primary:hover{background:var(--volcyy-primary-hover)}.restaurant-page__btn--secondary{background:#f5f5f5;color:var(--volcyy-text-dark)}.restaurant-page__btn--secondary:hover{background:#ebebeb}.restaurant-page__btn--ghost{background:#0000;border:1.5px solid var(--volcyy-border);color:var(--volcyy-text-muted)}.restaurant-page__btn--ghost:hover{background:#f8f8f8}.restaurant-page__sub-prompt{background:#fff9f9;border:1.5px solid #f5c0c0;border-radius:14px;margin-top:24px;padding:24px}.restaurant-page__sub-prompt p{color:var(--volcyy-text-dark);font-weight:500;margin:0 0 16px}.restaurant-page__sub-prompt-actions{display:flex;flex-wrap:wrap;gap:10px}@media (max-width:600px){.restaurant-page__photo{height:220px}.restaurant-page__discount-badge{height:64px;width:64px}.restaurant-page__discount-badge span{font-size:1.4rem}.restaurant-page__btn{min-width:100%}.restaurant-page__cards{grid-template-columns:1fr}}.card-page{background:#f8f5f5;min-height:100vh;padding:48px 24px 80px}.card-page--locked{align-items:center;display:flex;flex-direction:column;gap:16px;justify-content:center;min-height:60vh;text-align:center}.card-page--locked h2{font-family:var(--heading-font)}.card-page--locked button{background:var(--volcyy-primary);border:none;border-radius:8px;color:#fff;cursor:pointer;font-family:var(--apple-font);font-size:.95rem;font-weight:600;padding:10px 24px}.card-page__inner{margin:0 auto;max-width:680px}.card-page__title{color:var(--volcyy-text-dark);font-family:var(--heading-font);font-size:clamp(1.8rem,4vw,2.4rem);font-weight:800;margin:0 0 8px;text-align:center}.card-page__sub{color:var(--volcyy-text-muted);font-size:.95rem;line-height:1.6;margin:0 0 36px;text-align:center}.member-card{border-radius:24px;box-shadow:0 24px 64px #8b1a1a47;margin-bottom:32px;overflow:hidden;position:relative}.member-card--active{background:linear-gradient(140deg,#9b1f1f,#6b1111 55%,#4e0c0c);color:#fff}.member-card--inactive{background:linear-gradient(140deg,#5a5a5a,#3a3a3a 55%,#2a2a2a);box-shadow:0 24px 64px #00000038;color:#bbb}.member-card:after{background-image:var(--watermark);background-position:62% 50%;background-repeat:no-repeat;background-size:260px 260px;content:"";inset:0;opacity:.07;pointer-events:none;position:absolute}.member-card__header{align-items:flex-start;display:flex;justify-content:space-between;padding:28px 32px 12px}.member-card__logo{filter:brightness(0) invert(1);height:40px;width:auto}.member-card__since{align-items:flex-end;display:flex;flex-direction:column;gap:2px}.member-card__since-label{font-size:.75rem;font-weight:500;letter-spacing:.03em;opacity:.7}.member-card__since-value{font-size:1rem;font-weight:700;opacity:.95}.member-card__body{align-items:center;display:flex;gap:24px;justify-content:space-between;padding:20px 32px 32px}.member-card__info{flex:1 1}.member-card__label{font-size:.68rem;font-weight:700;letter-spacing:.14em;margin:20px 0 4px;opacity:.6;text-transform:uppercase}.member-card__label:first-child{margin-top:0}.member-card__value{font-size:1rem;font-weight:600;margin:0;opacity:.95}.member-card__name{font-size:1.35rem;font-weight:700}.member-card__id{font-family:Courier New,monospace;font-size:1rem;letter-spacing:.06em;word-spacing:.3em}.card-page__inactive-notice{background:#fff;border:1.5px solid var(--volcyy-border);border-radius:16px;padding:28px;text-align:center}.card-page__inactive-notice h3{color:var(--volcyy-text-dark);font-family:var(--heading-font);font-size:1.3rem;margin:0 0 8px}.card-page__inactive-notice p{color:var(--volcyy-text-muted);font-size:.95rem;line-height:1.6;margin:0 0 20px}.card-page__cta{background:var(--volcyy-primary);border:none;border-radius:980px;color:#fff;cursor:pointer;font-family:var(--apple-font);font-size:1rem;font-weight:700;padding:13px 28px;transition:background .2s}.card-page__cta:hover{background:var(--volcyy-primary-hover)}@media (max-width:520px){.member-card__header{padding:22px 20px 10px}.member-card__body{align-items:flex-start;flex-direction:column;padding:16px 20px 24px}.member-card__logo{height:32px}}.benefits-hero{background:linear-gradient(135deg,#8b1a1a,#6b1515);color:#fff;padding:80px 24px;text-align:center}.benefits-hero__inner{margin:0 auto;max-width:680px}.benefits-hero__title{font-family:var(--heading-font);font-size:clamp(2.4rem,5vw,3.8rem);font-weight:800;line-height:1.2;margin:0 0 20px}.benefits-hero__title span{color:#ffcece}.benefits-hero__sub{font-size:clamp(1rem,1.5vw,1.15rem);line-height:1.6;margin:0;opacity:.88}.benefits-pricing{background:#f8f5f5;padding:64px 24px}.benefits-pricing__inner{margin:0 auto;max-width:480px}.benefits-pricing__inner--grid{grid-gap:24px;align-items:stretch;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));max-width:920px}.benefits-pricing__card{background:#fff;border:2px solid #8b1a1a14;border-radius:24px;box-shadow:0 16px 60px #8b1a1a1f;display:flex;flex-direction:column;padding:44px;text-align:center}.benefits-pricing__card--black{background:linear-gradient(160deg,#1a1a1a,#000);border:2px solid #d4af6a;color:#fff}.benefits-pricing__card--black .benefits-pricing__list li,.benefits-pricing__card--black .benefits-pricing__note,.benefits-pricing__card--black .benefits-pricing__period{color:#ffffffbf}.benefits-pricing__card--black .benefits-pricing__amount{color:#d4af6a}.benefits-pricing__badge{background:var(--volcyy-primary-light);border-radius:980px;color:var(--volcyy-primary);display:inline-block;font-size:.78rem;font-weight:700;letter-spacing:.12em;margin-bottom:20px;padding:6px 16px;text-transform:uppercase}.benefits-pricing__badge--black{background:#d4af6a26;color:#d4af6a}.benefits-pricing__price{align-items:baseline;display:flex;gap:4px;justify-content:center;margin-bottom:8px}.benefits-pricing__amount--original{align-self:center;color:var(--volcyy-text-muted);font-size:1.5rem;font-weight:500;text-decoration:line-through}.benefits-pricing__amount{color:var(--volcyy-primary);font-family:var(--heading-font);font-size:4rem;font-weight:800;line-height:1}.benefits-pricing__period{color:var(--volcyy-text-muted);font-size:1.2rem;font-weight:500}.benefits-pricing__note{color:var(--volcyy-text-muted);font-size:.9rem;margin:0 0 28px}.benefits-pricing__list{display:flex;flex-direction:column;gap:10px;list-style:none;margin:0 0 32px;padding:0;text-align:left}.benefits-pricing__list li{align-items:center;color:var(--volcyy-text-dark);display:flex;font-size:.95rem;gap:8px}.benefits-pricing__cta{background:var(--volcyy-primary);border:none;border-radius:14px;color:#fff;cursor:pointer;font-family:var(--apple-font);font-size:1.05rem;font-weight:700;margin-top:auto;padding:16px;transition:background .2s;width:100%}.benefits-pricing__cta:hover{background:var(--volcyy-primary-hover)}.benefits-pricing__cta--black{background:#d4af6a;color:#1a1a1a}.benefits-pricing__cta--black:hover{background:#c49f5a}.benefits-pricing__coming-soon{color:var(--volcyy-text-muted);font-size:.82rem;font-style:italic;margin-top:14px}.benefits-perks{padding:80px 24px}.benefits-perks__inner{margin:0 auto;max-width:1100px}.benefits-perks__heading{color:var(--volcyy-text-dark);font-family:var(--heading-font);font-size:clamp(1.8rem,3.5vw,2.6rem);font-weight:800;margin:0 0 48px;text-align:center}.benefits-perks__grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.benefits-perk{background:#fff;border:1px solid var(--volcyy-border);border-radius:16px;padding:28px}.benefits-perk__icon{display:block;font-size:2rem;margin-bottom:14px}.benefits-perk__title{color:var(--volcyy-text-dark);font-family:var(--heading-font);font-size:1.15rem;font-weight:700;margin:0 0 8px}.benefits-perk__desc{color:var(--volcyy-text-muted);font-size:.92rem;line-height:1.6;margin:0}.benefits-cta{background:linear-gradient(135deg,#8b1a1a,#6b1515);color:#fff;padding:80px 24px;text-align:center}.benefits-cta__inner{margin:0 auto;max-width:600px}.benefits-cta h2{font-family:var(--heading-font);font-size:clamp(1.8rem,3.5vw,2.4rem);font-weight:800;margin:0 0 14px}.benefits-cta p{font-size:1.05rem;line-height:1.6;margin:0 0 28px;opacity:.88}.benefits-cta__btn{background:#fff;border:none;border-radius:980px;color:var(--volcyy-primary);cursor:pointer;font-family:var(--apple-font);font-size:1.05rem;font-weight:700;padding:16px 36px;transition:transform .2s,box-shadow .2s}.benefits-cta__btn:hover{box-shadow:0 8px 24px #0003;transform:translateY(-2px)}.contact-page{background:#f8f5f5;min-height:100vh;padding:64px 24px 100px}.contact-page__inner{margin:0 auto;max-width:1000px}.contact-page__header{margin-bottom:56px;text-align:center}.contact-page__title{color:var(--volcyy-text-dark);font-family:var(--heading-font);font-size:clamp(2rem,4vw,3rem);font-weight:800;margin:0 0 12px}.contact-page__sub{color:var(--volcyy-text-muted);font-size:1.05rem;line-height:1.6;margin:0}.contact-page__grid{grid-gap:32px;align-items:start;display:grid;gap:32px;grid-template-columns:1fr 2fr}.contact-page__info{display:flex;flex-direction:column;gap:20px}.contact-info-item{align-items:flex-start;background:#fff;border:1px solid var(--volcyy-border);border-radius:14px;display:flex;gap:14px;padding:20px}.contact-info-item__icon{font-size:1.4rem;margin-top:2px}.contact-info-item h3{color:var(--volcyy-text-muted);font-family:var(--apple-font);font-size:.85rem;font-weight:700;letter-spacing:.08em;margin:0 0 4px;text-transform:uppercase}.contact-info-item a,.contact-info-item p{color:var(--volcyy-text-dark);font-size:.95rem;font-weight:500;margin:0;text-decoration:none}.contact-info-item a:hover{color:var(--volcyy-primary)}.contact-page__form-wrap{background:#fff;border:1px solid var(--volcyy-border);border-radius:20px;padding:36px}.contact-form{display:flex;flex-direction:column;gap:20px}.contact-form__field{display:flex;flex-direction:column;gap:6px}.contact-form__field label{color:var(--volcyy-text-dark);font-size:.88rem;font-weight:600}.contact-form__field input,.contact-form__field select,.contact-form__field textarea{background:#fff;border:1.5px solid var(--volcyy-border);border-radius:10px;font-family:var(--apple-font);font-size:.95rem;outline:none;padding:12px 16px;resize:vertical;transition:border-color .2s}.contact-form__field input:focus,.contact-form__field select:focus,.contact-form__field textarea:focus{border-color:var(--volcyy-primary)}.contact-form__error{color:#c53030;font-size:.82rem;font-weight:500}.contact-form__send-error{background:#fff5f5;border:1px solid #fccaca;border-radius:8px;color:#c53030;font-size:.88rem;margin:0;padding:12px 14px}.contact-form__send-error a{color:#c53030}.contact-form__submit{align-self:flex-start;background:var(--volcyy-primary);border:none;border-radius:12px;color:#fff;cursor:pointer;font-family:var(--apple-font);font-size:1rem;font-weight:700;min-width:160px;padding:15px;transition:background .2s}.contact-form__submit:hover{background:var(--volcyy-primary-hover)}.contact-form__submit:disabled{cursor:not-allowed;opacity:.65}.contact-page__success{align-items:center;display:flex;flex-direction:column;gap:10px;padding:20px;text-align:center}.contact-page__success span{font-size:3rem}.contact-page__success h3{color:var(--volcyy-text-dark);font-family:var(--heading-font);font-size:1.6rem;margin:0}.contact-page__success p{color:var(--volcyy-text-muted);font-size:.95rem;line-height:1.6;margin:0}.contact-page__success button{background:none;border:1.5px solid var(--volcyy-border);border-radius:8px;color:var(--volcyy-text-muted);cursor:pointer;font-family:var(--apple-font);font-size:.9rem;font-weight:500;margin-top:8px;padding:10px 20px;transition:background .2s}.contact-page__success button:hover{background:#f8f8f8}@media (max-width:768px){.contact-page__grid{grid-template-columns:1fr}.contact-page__form-wrap{padding:24px}}.legal-page{background:#fff;min-height:100vh;padding:64px 24px 100px}.legal-page__inner{margin:0 auto;max-width:760px}.legal-page__title{color:var(--volcyy-text-dark);font-family:var(--heading-font);font-size:clamp(2rem,4vw,2.8rem);font-weight:800;margin:0 0 6px}.legal-page__date{color:var(--volcyy-text-muted);font-size:.88rem;margin:0 0 48px}.legal-section{margin-bottom:36px}.legal-section h2{color:var(--volcyy-text-dark);font-family:var(--heading-font);font-size:1.2rem;font-weight:700;margin:0 0 10px}.legal-section p{color:var(--volcyy-text-muted);font-size:.97rem;line-height:1.75;margin:0}.legal-section a{color:var(--volcyy-primary);text-decoration:none}.legal-section a:hover{text-decoration:underline}.sub-page{background:#f8f5f5;min-height:100vh;padding:64px 24px 100px}.sub-page--locked{align-items:center;display:flex;flex-direction:column;gap:16px;justify-content:center;min-height:60vh;text-align:center}.sub-page--locked h2{font-family:var(--heading-font)}.sub-page--locked button{background:var(--volcyy-primary);border:none;border-radius:8px;color:#fff;cursor:pointer;font-family:var(--apple-font);font-size:.95rem;font-weight:600;padding:10px 24px}.sub-page__inner{margin:0 auto;max-width:580px}.sub-page__title{color:var(--volcyy-text-dark);font-family:var(--heading-font);font-size:clamp(2rem,4vw,2.8rem);font-weight:800;margin:0 0 36px}.sub-page__status-card{background:#fff;border:1.5px solid var(--volcyy-border);border-radius:16px;display:flex;flex-direction:column;gap:16px;margin-bottom:24px;padding:28px}.sub-page__status-row{align-items:center;display:flex;font-size:.95rem;justify-content:space-between}.sub-page__status-label{color:var(--volcyy-text-muted);font-weight:500}.sub-page__status-value{color:var(--volcyy-text-dark);font-weight:600}.sub-page__original-price{color:var(--volcyy-text-muted);font-size:.85em;font-weight:400;margin-left:4px;text-decoration:line-through}.sub-page__status-value.active{color:#166534}.sub-page__status-value.inactive{color:#991b1b}.sub-page__member-id{font-family:Courier New,monospace;font-size:.9rem;letter-spacing:.04em}.sub-page__inactive-cta{background:#fff;border:1.5px solid var(--volcyy-border);border-radius:14px;margin-bottom:24px;padding:24px;text-align:center}.sub-page__inactive-cta p{color:var(--volcyy-text-muted);margin:0 0 16px}.sub-page__join-btn{background:var(--volcyy-primary);border:none;border-radius:980px;color:#fff;cursor:pointer;font-family:var(--apple-font);font-size:.95rem;font-weight:700;padding:12px 28px;transition:background .2s}.sub-page__join-btn:hover{background:var(--volcyy-primary-hover)}.sub-page__cancel-btn{background:#0000;border:1.5px solid #e5e5e5;border-radius:10px;color:#9b1c1c;cursor:pointer;font-family:var(--apple-font);font-size:.9rem;padding:12px 24px;transition:background .2s}.sub-page__cancel-btn:hover{background:#fff5f5}.sub-page__confirm{background:#fff5f5;border:1.5px solid #fccaca;border-radius:14px;padding:28px}.sub-page__confirm h3{color:var(--volcyy-text-dark);font-family:var(--heading-font);font-size:1.3rem;margin:0 0 8px}.sub-page__confirm p{color:var(--volcyy-text-muted);font-size:.95rem;line-height:1.6;margin:0 0 20px}.sub-page__confirm-actions{display:flex;flex-wrap:wrap;gap:12px}.sub-page__confirm-yes{background:#9b1c1c;border:none;border-radius:10px;color:#fff;cursor:pointer;font-family:var(--apple-font);font-size:.9rem;font-weight:600;padding:11px 20px;transition:background .2s}.sub-page__confirm-yes:hover{background:#7f1d1d}.sub-page__confirm-yes:disabled{cursor:not-allowed;opacity:.65}.sub-page__confirm-no{background:#fff;border:1.5px solid var(--volcyy-border);border-radius:10px;color:var(--volcyy-text-dark);cursor:pointer;font-family:var(--apple-font);font-size:.9rem;font-weight:600;padding:11px 20px;transition:background .2s}.sub-page__confirm-no:hover{background:#f8f8f8}.sub-page__confirm-no:disabled{cursor:not-allowed;opacity:.65}.sub-page__done{align-items:center;background:#fff;border:1.5px solid var(--volcyy-border);border-radius:16px;display:flex;flex-direction:column;gap:12px;padding:40px;text-align:center}.sub-page__done span{font-size:2.5rem}.sub-page__done h3{color:var(--volcyy-text-dark);font-family:var(--heading-font);font-size:1.5rem;margin:0}.sub-page__done p{color:var(--volcyy-text-muted);font-size:.95rem;line-height:1.6;margin:0;max-width:360px}.sub-page__done button{background:var(--volcyy-primary);border:none;border-radius:10px;color:#fff;cursor:pointer;font-family:var(--apple-font);font-size:.95rem;font-weight:600;margin-top:8px;padding:12px 28px;transition:background .2s}.sub-page__done button:hover{background:var(--volcyy-primary-hover)}.sub-page__admin-toggle{background:#faf5ff;border:1.5px dashed #a78bfa;border-radius:14px;margin-top:32px;padding:20px 24px}.sub-page__admin-label{color:#7c3aed;font-size:.78rem;font-weight:700;letter-spacing:.1em;margin:0 0 14px;text-transform:uppercase}.sub-page__admin-row{align-items:center;color:var(--volcyy-text-dark);display:flex;flex-wrap:wrap;font-size:.92rem;gap:16px;justify-content:space-between}.sub-page__toggle-btn{border:none;border-radius:8px;cursor:pointer;font-family:var(--apple-font);font-size:.88rem;font-weight:700;padding:9px 20px;transition:background .2s;white-space:nowrap}.sub-page__toggle-btn--on{background:#166534;color:#fff}.sub-page__toggle-btn--on:hover{background:#14532d}.sub-page__toggle-btn--off{background:#991b1b;color:#fff}.sub-page__toggle-btn--off:hover{background:#7f1d1d}.sub-page__toggle-btn:disabled{cursor:not-allowed;opacity:.6}.checkout-page{min-height:70vh;padding:48px 16px 80px}.checkout-card{background:#fff;border:1px solid var(--volcyy-border);border-radius:16px;box-shadow:0 12px 40px #00000014;margin:40px auto 0;max-width:460px;padding:40px 32px;text-align:center}.checkout-card__check{display:block;font-size:2.5rem;margin-bottom:12px}.checkout-card .spinner{animation:checkout-spin .8s linear infinite;border:3px solid var(--volcyy-primary-light);border-radius:50%;border-top-color:var(--volcyy-primary);height:36px;margin:0 auto 18px;width:36px}@keyframes checkout-spin{to{transform:rotate(1turn)}}.checkout-card__title{color:var(--volcyy-text-dark);font-size:1.4rem;font-weight:700;margin:0 0 10px}.checkout-card__desc{color:var(--volcyy-text-muted);font-size:.92rem;line-height:1.55;margin:0 0 24px}.checkout-card__btn{background:var(--volcyy-primary);border:none;border-radius:10px;color:#fff;cursor:pointer;font-family:var(--apple-font);font-size:1rem;font-weight:600;padding:13px;transition:background .2s;width:100%}.checkout-card__btn:hover{background:var(--volcyy-primary-hover)}.hours-editor{display:flex;flex-direction:column;gap:10px}.hours-editor__toggle{align-items:center;color:var(--volcyy-text-dark);cursor:pointer;display:flex;font-size:.85rem;gap:8px;margin-bottom:4px}.hours-editor__row{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.hours-editor__day-label{color:var(--volcyy-text-dark);flex-shrink:0;font-size:.85rem;width:90px}.hours-editor__closed{align-items:center;color:var(--volcyy-text-muted);cursor:pointer;display:flex;font-size:.82rem;gap:6px}.hours-editor__row input[type=time]{border:1px solid var(--volcyy-border);border-radius:8px;font-family:var(--apple-font);font-size:.85rem;padding:6px 8px}.hours-editor__to{color:var(--volcyy-text-muted);font-size:.82rem}.hours-editor__copy-btn{align-self:flex-start;background:none;border:1px solid var(--volcyy-border);border-radius:8px;color:var(--volcyy-primary);cursor:pointer;font-size:.8rem;margin-top:6px;padding:6px 12px}.hours-editor__copy-btn:hover{background:var(--volcyy-primary-light)}.admin-page{background:#f8f5f5;min-height:100vh;padding:48px 24px 100px}.admin-page__inner{margin:0 auto;max-width:1000px}.admin-page__empty,.admin-page__loading{color:var(--volcyy-text-muted);font-size:.95rem;padding:60px;text-align:center}.admin-dashboard__stats{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));margin-bottom:36px}.admin-dashboard__stat{background:#fff;border:1px solid var(--volcyy-border);border-radius:14px;padding:18px;text-align:center}.admin-dashboard__stat-value{color:var(--volcyy-text-dark);display:block;font-family:var(--heading-font);font-size:1.8rem;font-weight:800}.admin-dashboard__stat-label{color:var(--volcyy-text-muted);display:block;font-size:.78rem;margin-top:4px}.admin-dashboard__section-heading{color:var(--volcyy-text-dark);font-family:var(--heading-font);font-size:1.15rem;font-weight:700;margin:0 0 14px}.admin-dashboard__redemption-table{background:#fff;border:1px solid var(--volcyy-border);border-radius:14px;overflow:hidden}.admin-dashboard__redemption-row{grid-gap:12px;border-bottom:1px solid var(--volcyy-border);color:var(--volcyy-text-dark);display:grid;font-size:.9rem;gap:12px;grid-template-columns:1fr auto;padding:12px 18px}.admin-dashboard__redemption-row:last-child{border-bottom:none}.admin-dashboard__redemption-row--head{background:#faf7f7;color:var(--volcyy-text-muted);font-size:.78rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.admin-header{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:36px}.admin-header__title{color:var(--volcyy-text-dark);font-family:var(--heading-font);font-size:clamp(1.8rem,3.5vw,2.4rem);font-weight:800;margin:0 0 4px}.admin-header__sub{color:var(--volcyy-text-muted);font-size:.9rem;margin:0}.admin-header__btns{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.admin-header__toggle-label{align-items:center;color:var(--volcyy-text-dark);cursor:pointer;display:flex;font-size:.85rem;gap:6px;white-space:nowrap}.admin-seed-btn{background:#f5f5f5;border:1.5px solid var(--volcyy-border);border-radius:10px;color:var(--volcyy-text-muted);cursor:pointer;font-family:var(--apple-font);font-size:.88rem;font-weight:600;padding:12px 18px;transition:background .2s,color .2s}.admin-seed-btn:hover{background:#ebebeb;color:var(--volcyy-text-dark)}.admin-seed-btn:disabled{cursor:not-allowed;opacity:.55}.admin-add-btn{background:var(--volcyy-primary);border:none;border-radius:10px;color:#fff;cursor:pointer;font-family:var(--apple-font);font-size:.95rem;font-weight:700;padding:12px 22px;transition:background .2s}.admin-add-btn:hover{background:var(--volcyy-primary-hover)}.admin-bulk-panel{background:#fffbe6;border:1.5px solid #f0d060;border-radius:12px;font-size:.85rem;margin-bottom:24px;padding:16px 20px}.admin-bulk-panel p{color:var(--volcyy-text-dark);margin:0 0 10px}.admin-bulk-panel__failures{color:#a6791f;font-size:.82rem;margin:0 0 12px;padding-left:20px}.admin-tabs{border-bottom:2px solid var(--volcyy-border);display:flex;gap:4px;margin-bottom:28px}.admin-tabs__btn{background:none;border:none;border-bottom:2px solid #0000;color:var(--volcyy-text-muted);cursor:pointer;font-family:var(--apple-font);font-size:.95rem;font-weight:600;margin-bottom:-2px;padding:10px 18px;transition:color .2s,border-color .2s}.admin-tabs__btn.active{border-bottom-color:var(--volcyy-primary);color:var(--volcyy-primary)}.admin-users{background:#fff;border:1px solid var(--volcyy-border);border-radius:14px;overflow:hidden}.admin-users__row{grid-gap:12px;align-items:center;border-bottom:1px solid var(--volcyy-border);color:var(--volcyy-text-dark);display:grid;font-size:.88rem;gap:12px;grid-template-columns:1.3fr 1.8fr 1fr .9fr auto;padding:14px 18px}.admin-users__row--selectable{grid-template-columns:auto 1.3fr 1.8fr 1fr .9fr auto}.admin-users__row:last-child{border-bottom:none}.admin-users__row--head{background:#faf7f7;color:var(--volcyy-text-muted);font-size:.78rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.admin-users__name{font-weight:600}.admin-users__email,.admin-users__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-users__status{border-radius:980px;display:inline-block;font-size:.78rem;font-weight:700;padding:3px 10px}.admin-users__status--active{background:#e8f5e9;color:#2e7d32}.admin-users__status--inactive{background:#f0f0f0;color:var(--volcyy-text-muted)}.admin-users__toggle{background:#fff;border:1.5px solid var(--volcyy-border);border-radius:8px;cursor:pointer;font-family:var(--apple-font);font-size:.85rem;font-weight:600;padding:8px 16px;transition:background .2s,color .2s,border-color .2s}.admin-users__toggle--on{background:var(--volcyy-primary);border-color:var(--volcyy-primary);color:#fff}.admin-users__toggle--on:hover{background:var(--volcyy-primary-hover)}.admin-users__toggle--off{border-color:#fccaca;color:#c53030}.admin-users__toggle--off:hover{background:#fff5f5}.admin-users__toggle:disabled{cursor:not-allowed;opacity:.6}.admin-form{background:#fff;border:1.5px solid var(--volcyy-border);border-radius:18px;margin-bottom:36px;padding:32px}.admin-form__heading{color:var(--volcyy-text-dark);font-family:var(--heading-font);font-size:1.4rem;font-weight:700;margin:0 0 24px}.admin-form__grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr;margin-bottom:24px}.admin-form__field{display:flex;flex-direction:column;gap:6px}.admin-form__field--full{grid-column:1/-1}.admin-form__field label{color:var(--volcyy-text-dark);font-size:.85rem;font-weight:600}.admin-form__hint{color:var(--volcyy-text-muted);font-size:.8rem;font-weight:400}.admin-form__field input,.admin-form__field textarea{border:1.5px solid var(--volcyy-border);border-radius:10px;font-family:var(--apple-font);font-size:.95rem;outline:none;padding:11px 14px;resize:vertical;transition:border-color .2s}.admin-form__field input:focus,.admin-form__field textarea:focus{border-color:var(--volcyy-primary)}.admin-form__image-row{align-items:center;display:flex;flex-wrap:wrap;gap:16px}.admin-form__img-preview{border:1px solid var(--volcyy-border);border-radius:10px;height:80px;object-fit:cover;width:80px}.admin-form__upload-btn{background:#f5f5f5;border:1.5px solid var(--volcyy-border);border-radius:8px;color:var(--volcyy-text-dark);cursor:pointer;display:inline-block;font-family:var(--apple-font);font-size:.88rem;font-weight:600;padding:9px 18px;transition:background .2s}.admin-form__upload-btn:hover{background:#ebebeb}.admin-form__remove-img{background:none;border:none;color:#c53030;cursor:pointer;font-family:var(--apple-font);font-size:.85rem;margin-left:8px;text-decoration:underline}.admin-form__geocode-row{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.admin-form__verify-btn{background:#fff;border:1.5px solid var(--volcyy-primary);border-radius:8px;color:var(--volcyy-primary);cursor:pointer;flex-shrink:0;font-family:var(--apple-font);font-size:.85rem;font-weight:700;padding:9px 16px;transition:background .2s}.admin-form__verify-btn:hover{background:var(--volcyy-primary-light)}.admin-form__verify-btn:disabled{cursor:not-allowed;opacity:.6}.admin-form__geo-result{color:var(--volcyy-text-muted);font-size:.82rem}.admin-form__geo-result--ok{color:#2e7d32}.admin-form__geo-result--error{color:#c53030}.admin-form__status-hint{margin:-8px 0 16px}.admin-form__actions{display:flex;gap:12px}.admin-form__save-btn{background:var(--volcyy-primary);border:none;border-radius:10px;color:#fff;cursor:pointer;font-family:var(--apple-font);font-size:.95rem;font-weight:700;padding:12px 28px;transition:background .2s}.admin-form__save-btn:hover{background:var(--volcyy-primary-hover)}.admin-form__save-btn:disabled{cursor:not-allowed;opacity:.65}.admin-form__cancel-btn{background:#f5f5f5;border:none;border-radius:10px;color:var(--volcyy-text-muted);cursor:pointer;font-family:var(--apple-font);font-size:.95rem;font-weight:600;padding:12px 24px;transition:background .2s}.admin-form__cancel-btn:hover{background:#ebebeb}.admin-list{display:flex;flex-direction:column;gap:12px}.admin-list__item{align-items:center;background:#fff;border:1px solid var(--volcyy-border);border-radius:14px;display:flex;gap:16px;padding:16px}.admin-list__drag-handle{color:var(--volcyy-text-muted);cursor:grab;flex-shrink:0;font-size:1.1rem;-webkit-user-select:none;user-select:none}.admin-list__drag-handle:active{cursor:grabbing}.admin-list__checkbox{accent-color:var(--volcyy-primary);cursor:pointer;flex-shrink:0;height:16px;width:16px}.admin-list__star-btn{background:none;border:none;color:#ccc;cursor:pointer;flex-shrink:0;font-size:1.4rem;line-height:1;padding:4px}.admin-list__star-btn--on,.admin-list__star-btn:hover{color:#d4af6a}.admin-list__star-btn:disabled{cursor:not-allowed;opacity:.6}.admin-list__img{border-radius:10px;flex-shrink:0;height:72px;object-fit:cover;width:72px}.admin-list__img,.admin-list__img--placeholder{background:#f0f0f0}.admin-list__info{flex:1 1;min-width:0}.admin-list__name{align-items:center;color:var(--volcyy-text-dark);display:flex;font-family:var(--heading-font);font-size:1.05rem;font-weight:700;gap:8px;margin:0 0 4px}.admin-list__meta{color:var(--volcyy-text-muted);font-size:.85rem;margin:0 0 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-list__discount-row{display:flex;gap:6px;margin:0}.admin-list__discount{background:var(--volcyy-primary-light);border-radius:980px;color:var(--volcyy-primary);display:inline-block;font-size:.78rem;font-weight:700;padding:3px 10px}.admin-list__discount--none{background:#f0f0f0;color:#888}.admin-list__discount--black{background:#1a1a1a;color:#d4af6a}.admin-list__status-pill{background:#f0f0f0;border-radius:980px;color:var(--volcyy-text-muted);display:inline-block;font-size:.68rem;font-weight:700;letter-spacing:.04em;padding:2px 8px;text-transform:uppercase}.admin-list__status-pill--hidden{background:#fff4e0;color:#b26a00}.admin-list__status-pill--banned{background:#fde8e8;color:#c53030}.admin-list__status-pill--featured{background:#fbf3e2;color:#a6791f}.admin-list__btns{display:flex;flex-shrink:0;gap:8px}.admin-list__edit-btn{background:#fff;border:1.5px solid var(--volcyy-border);border-radius:8px;color:var(--volcyy-text-dark);cursor:pointer;font-family:var(--apple-font);font-size:.85rem;font-weight:600;padding:8px 16px;transition:background .2s}.admin-list__edit-btn:hover{background:#f5f5f5}.admin-list__status-btn{background:#fff;border:1.5px solid var(--volcyy-border);border-radius:8px;color:var(--volcyy-text-dark);cursor:pointer;font-family:var(--apple-font);font-size:.85rem;font-weight:600;padding:8px 16px;transition:background .2s}.admin-list__status-btn:hover{background:#f5f5f5}.admin-list__status-btn:disabled{cursor:not-allowed;opacity:.6}.admin-list__status-btn--ban{border-color:#fccaca;color:#c53030}.admin-list__status-btn--ban:hover{background:#fff5f5}.admin-list__delete-btn{background:#fff;border:1.5px solid #fccaca;border-radius:8px;color:#c53030;cursor:pointer;font-family:var(--apple-font);font-size:.85rem;font-weight:600;padding:8px 16px;transition:background .2s}.admin-list__delete-btn:hover{background:#fff5f5}.admin-delete-modal{align-items:center;background:#00000080;display:flex;inset:0;justify-content:center;padding:24px;position:fixed;z-index:1000}.admin-delete-modal__inner{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0003;max-width:380px;padding:32px;text-align:center;width:100%}.admin-delete-modal__inner h3{color:var(--volcyy-text-dark);font-family:var(--heading-font);font-size:1.3rem;margin:0 0 8px}.admin-delete-modal__inner p{color:var(--volcyy-text-muted);font-size:.9rem;margin:0 0 20px}.admin-delete-modal__reason{border:1.5px solid var(--volcyy-border);border-radius:10px;box-sizing:border-box;font-family:var(--apple-font);font-size:.88rem;margin-bottom:16px;padding:10px 12px;resize:vertical;width:100%}.admin-delete-modal__actions{display:flex;gap:10px;justify-content:center}.admin-delete-modal__confirm{background:#9b1c1c;border:none;border-radius:10px;color:#fff;cursor:pointer;font-family:var(--apple-font);font-size:.9rem;font-weight:700;padding:11px 24px}.admin-delete-modal__confirm:hover{background:#7f1d1d}.admin-delete-modal__cancel{background:#f5f5f5;border:none;border-radius:10px;color:var(--volcyy-text-dark);cursor:pointer;font-family:var(--apple-font);font-size:.9rem;font-weight:600;padding:11px 24px}.admin-delete-modal__cancel:hover{background:#ebebeb}@media (max-width:600px){.admin-form__grid{grid-template-columns:1fr}.admin-list__item{flex-wrap:wrap}.admin-list__btns{justify-content:flex-end;width:100%}.admin-users__row--head{display:none}.admin-users__row{gap:6px 12px;grid-template-columns:1fr auto;padding:16px 18px}.admin-users__row>span[data-label]{display:flex;gap:12px;grid-column:1/-1;justify-content:space-between}.admin-users__row>span[data-label]:before{color:var(--volcyy-text-muted);content:attr(data-label);font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.admin-users__row>span:last-child{grid-column:1/-1}.admin-users__toggle{width:100%}}.reset-page{align-items:center;display:flex;justify-content:center;min-height:70vh;padding:40px 16px}.reset-card{background:#fff;border:1px solid var(--volcyy-border);border-radius:16px;box-shadow:0 12px 40px #00000014;max-width:420px;padding:40px 32px;text-align:center;width:100%}.reset-card__logo{display:block;height:36px;margin:0 auto 24px;width:auto}.reset-card__check{display:block;font-size:2.5rem;margin-bottom:12px}.reset-card__title{color:var(--volcyy-text-dark);font-size:1.4rem;font-weight:700;margin:0 0 10px}.reset-card__desc{color:var(--volcyy-text-muted);font-size:.92rem;line-height:1.55;margin:0 0 24px}.reset-card__status{color:var(--volcyy-text-muted);font-size:.95rem;padding:20px 0}.reset-card__field{margin-bottom:16px;text-align:left}.reset-card__field label{color:var(--volcyy-text-dark);display:block;font-size:.85rem;font-weight:500;margin-bottom:6px}.reset-card__field input{border:1.5px solid var(--volcyy-border);border-radius:10px;box-sizing:border-box;font-family:var(--apple-font);font-size:.95rem;outline:none;padding:11px 14px;transition:border-color .2s;width:100%}.reset-card__field input:focus{border-color:var(--volcyy-primary)}.reset-card__password-wrap{position:relative}.reset-card__password-wrap input{padding-right:44px}.reset-card__pw-toggle{align-items:center;background:none;border:none;color:var(--volcyy-text-muted);cursor:pointer;display:flex;justify-content:center;padding:6px;position:absolute;right:8px;top:50%;transform:translateY(-50%);transition:color .2s}.reset-card__pw-toggle:hover{color:var(--volcyy-text-dark)}.reset-card__error{background:#fff5f5;border:1px solid #fccaca;border-radius:8px;color:#c53030;font-size:.88rem;margin-bottom:14px;padding:10px 14px;text-align:left}.reset-card__btn{background:var(--volcyy-primary);border:none;border-radius:10px;color:#fff;cursor:pointer;font-family:var(--apple-font);font-size:1rem;font-weight:600;margin-top:4px;padding:13px;transition:background .2s;width:100%}.reset-card__btn:hover{background:var(--volcyy-primary-hover)}.reset-card__btn:disabled{cursor:not-allowed;opacity:.65}.business-hero{background:linear-gradient(135deg,#8b1a1a,#6b1515);color:#fff;padding:80px 24px;text-align:center}.business-hero__inner{margin:0 auto;max-width:680px}.business-hero__title{font-family:var(--heading-font);font-size:clamp(2.2rem,5vw,3.4rem);font-weight:800;line-height:1.2;margin:0 0 20px}.business-hero__title span{color:#ffcece}.business-hero__sub{font-size:clamp(1rem,1.5vw,1.1rem);line-height:1.6;margin:0 0 32px;opacity:.88}.business-hero__cta{background:#fff;border:none;border-radius:980px;color:var(--volcyy-primary);cursor:pointer;font-family:var(--apple-font);font-size:1.05rem;font-weight:700;padding:16px 36px;transition:transform .2s,box-shadow .2s}.business-hero__cta:hover{box-shadow:0 8px 24px #0003;transform:translateY(-2px)}.business-perks{padding:72px 24px}.business-perks__inner{margin:0 auto;max-width:1000px}.business-perks__grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.business-perk{background:#fff;border:1px solid var(--volcyy-border);border-radius:16px;padding:28px;text-align:center}.business-perk__icon{display:block;font-size:2rem;margin-bottom:14px}.business-perk__title{color:var(--volcyy-text-dark);font-family:var(--heading-font);font-size:1.05rem;font-weight:700;margin:0 0 8px}.business-perk__desc{color:var(--volcyy-text-muted);font-size:.88rem;line-height:1.5;margin:0}.business-how{background:#f8f5f5;padding:72px 24px}.business-how__inner{margin:0 auto;max-width:640px}.business-how h2{color:var(--volcyy-text-dark);font-family:var(--heading-font);font-size:clamp(1.6rem,3vw,2.2rem);font-weight:800;margin:0 0 28px;text-align:center}.business-how__list{color:var(--volcyy-text-dark);display:flex;flex-direction:column;font-size:.95rem;gap:14px;line-height:1.6;padding-left:24px}.onboarding-page{background:#f8f5f5;min-height:100vh;padding:48px 24px 100px}.onboarding-page__inner{margin:0 auto;max-width:760px}.onboarding-page__title{color:var(--volcyy-text-dark);font-family:var(--heading-font);font-size:clamp(1.8rem,3.5vw,2.4rem);font-weight:800;margin:0 0 8px}.onboarding-page__sub{color:var(--volcyy-text-muted);font-size:.92rem;line-height:1.6;margin:0 0 28px}.onboarding-form{background:#fff;border:1.5px solid var(--volcyy-border);border-radius:18px;padding:32px}.onboarding-form__grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr;margin-bottom:24px}.onboarding-form__field{display:flex;flex-direction:column;gap:6px}.onboarding-form__field--full{grid-column:1/-1}.onboarding-form__field label{color:var(--volcyy-text-dark);font-size:.85rem;font-weight:600}.onboarding-form__hint{color:var(--volcyy-text-muted);font-size:.8rem;font-weight:400}.onboarding-form__field input,.onboarding-form__field textarea{border:1.5px solid var(--volcyy-border);border-radius:10px;font-family:var(--apple-font);font-size:.95rem;outline:none;padding:11px 14px;resize:vertical;transition:border-color .2s}.onboarding-form__field input:focus,.onboarding-form__field textarea:focus{border-color:var(--volcyy-primary)}.onboarding-form__image-row{align-items:center;display:flex;flex-wrap:wrap;gap:16px}.onboarding-form__img-preview{border:1px solid var(--volcyy-border);border-radius:10px;height:80px;object-fit:cover;width:80px}.onboarding-form__upload-btn{background:#f5f5f5;border:1.5px solid var(--volcyy-border);border-radius:8px;color:var(--volcyy-text-dark);cursor:pointer;display:inline-block;font-family:var(--apple-font);font-size:.88rem;font-weight:600;padding:9px 18px}.onboarding-form__upload-btn:hover{background:#ebebeb}.onboarding-form__error{color:#c53030;font-size:.88rem;margin:0 0 16px}.onboarding-form__submit-btn{background:var(--volcyy-primary);border:none;border-radius:10px;color:#fff;cursor:pointer;font-family:var(--apple-font);font-size:.95rem;font-weight:700;padding:13px 28px;transition:background .2s}.onboarding-form__submit-btn:hover{background:var(--volcyy-primary-hover)}.onboarding-form__submit-btn:disabled{cursor:not-allowed;opacity:.65}@media (max-width:600px){.onboarding-form__grid{grid-template-columns:1fr}}.business-dashboard{background:#f8f5f5;min-height:100vh;padding:48px 24px 100px}.business-dashboard--loading{align-items:center;display:flex;justify-content:center}.business-dashboard__inner{margin:0 auto;max-width:760px}.business-dashboard__title{color:var(--volcyy-text-dark);font-family:var(--heading-font);font-size:clamp(1.8rem,3.5vw,2.4rem);font-weight:800;margin:0 0 8px}.business-dashboard__redemption-count{color:var(--volcyy-text-muted);font-size:.88rem;margin:0 0 20px}.business-dashboard__cta{background:var(--volcyy-primary);border-radius:10px;color:#fff;display:inline-block;font-weight:700;margin-top:16px;padding:12px 24px;text-decoration:none}.business-dashboard__banner{border-radius:12px;font-size:.9rem;line-height:1.5;margin-bottom:24px;padding:14px 18px}.business-dashboard__banner--pending{background:#fff4e0;color:#b26a00}.business-dashboard__banner--rejected{background:#fde8e8;color:#c53030}.business-dashboard__banner--rejected p{font-weight:400;margin:6px 0 0}.business-dashboard__banner--active{background:#e8f5e9;color:#2e7d32}.business-dashboard__banner--banned{background:#2d2d2d;color:#fff}.business-dashboard__form{background:#fff;border:1.5px solid var(--volcyy-border);border-radius:18px;padding:32px}.business-dashboard__grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr;margin-bottom:24px}.business-dashboard__field{display:flex;flex-direction:column;gap:6px}.business-dashboard__field--full{grid-column:1/-1}.business-dashboard__field label{color:var(--volcyy-text-dark);font-size:.85rem;font-weight:600}.business-dashboard__hint{color:var(--volcyy-text-muted);font-size:.78rem;font-weight:400}.business-dashboard__field input,.business-dashboard__field textarea{border:1.5px solid var(--volcyy-border);border-radius:10px;font-family:var(--apple-font);font-size:.95rem;outline:none;padding:11px 14px;resize:vertical;transition:border-color .2s}.business-dashboard__field input:focus,.business-dashboard__field textarea:focus{border-color:var(--volcyy-primary)}.business-dashboard__image-row{align-items:center;display:flex;flex-wrap:wrap;gap:16px}.business-dashboard__img-preview{border:1px solid var(--volcyy-border);border-radius:10px;height:80px;object-fit:cover;width:80px}.business-dashboard__upload-btn{background:#f5f5f5;border:1.5px solid var(--volcyy-border);border-radius:8px;color:var(--volcyy-text-dark);cursor:pointer;display:inline-block;font-family:var(--apple-font);font-size:.88rem;font-weight:600;padding:9px 18px}.business-dashboard__upload-btn:hover{background:#ebebeb}.business-dashboard__error{color:#c53030;font-size:.88rem;margin:0 0 16px}.business-dashboard__saved{color:#2e7d32;font-size:.88rem;margin:0 0 16px}.business-dashboard__save-btn{background:var(--volcyy-primary);border:none;border-radius:10px;color:#fff;cursor:pointer;font-family:var(--apple-font);font-size:.95rem;font-weight:700;padding:13px 28px;transition:background .2s}.business-dashboard__save-btn:hover{background:var(--volcyy-primary-hover)}.business-dashboard__save-btn:disabled{cursor:not-allowed;opacity:.65}@media (max-width:600px){.business-dashboard__grid{grid-template-columns:1fr}}.ad-gate-overlay{align-items:center;background:#000000b3;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:1000}.ad-gate-modal{background:#fff;border-radius:20px;box-shadow:0 24px 64px #0000004d;max-width:380px;padding:40px 32px 32px;text-align:center;width:100%}.ad-gate-modal__logo{display:block;height:32px;margin:0 auto 20px;width:auto}.ad-gate-modal__ad-placeholder{align-items:center;background:#f0f0f0;border-radius:14px;color:var(--volcyy-text-muted);display:flex;font-size:1.4rem;font-weight:700;height:180px;justify-content:center;letter-spacing:.08em;margin-bottom:18px}.ad-gate-modal__text{color:var(--volcyy-text-dark);font-size:.95rem;margin:0 0 10px}.ad-gate-modal__hint{color:var(--volcyy-text-muted);font-size:.8rem;margin:0 0 20px}.ad-gate-modal__cancel{background:none;border:none;color:var(--volcyy-text-muted);cursor:pointer;font-family:var(--apple-font);font-size:.85rem;text-decoration:underline}.redeem-page{align-items:center;display:flex;flex-direction:column;min-height:80vh;padding:48px 24px 80px}.redeem-page--center{align-items:center;gap:16px;justify-content:center;text-align:center}.redeem-page__inner{align-items:center;display:flex;flex-direction:column;max-width:420px;width:100%}.redeem-page__restaurant{color:var(--volcyy-text-dark);font-family:var(--heading-font);font-size:1.4rem;font-weight:700;margin:0 0 24px;text-align:center}.redeem-page__status{align-items:center;display:flex;flex-direction:column;gap:14px;padding:40px 0;text-align:center}.redeem-page__error{color:#c53030}.redeem-page__btn{background:var(--volcyy-primary);border:none;border-radius:10px;color:#fff;cursor:pointer;font-family:var(--apple-font);font-size:.95rem;font-weight:700;padding:12px 28px}.redeem-page__btn:hover{background:var(--volcyy-primary-hover)}.redeem-page__btn--ghost{background:none;color:var(--volcyy-text-muted);font-weight:600;text-decoration:underline}.redemption-card{background:#fff;border:2px solid var(--volcyy-border);border-radius:22px;box-shadow:0 16px 48px #0000001f;padding:32px 28px;position:relative;text-align:center;width:100%}.redemption-card--black{background:linear-gradient(160deg,#1a1a1a,#000);border-color:#d4af6a;color:#fff}.redemption-card__badge{background:#d4af6a;border-radius:980px;color:#1a1a1a;display:inline-block;font-size:.7rem;font-weight:800;letter-spacing:.1em;margin-bottom:14px;padding:4px 12px}.redemption-card__greeting{font-size:1rem;font-weight:600;margin:0 0 20px}.redemption-card__qr-wrap{align-items:center;display:flex;height:200px;justify-content:center;margin:0 auto 20px;position:relative;width:200px}.redemption-card__qr-glow{animation:redemption-pulse 1.8s ease-in-out infinite;border:3px solid var(--volcyy-primary);border-radius:20px;inset:-8px;position:absolute}.redemption-card--black .redemption-card__qr-glow{border-color:#d4af6a}@keyframes redemption-pulse{0%,to{opacity:.35;transform:scale(1)}50%{opacity:1;transform:scale(1.04)}}.redemption-card__qr-box{background:#fff;border-radius:14px;padding:14px;position:relative}.redemption-card__discount{font-size:1.6rem;font-weight:800;margin:0 0 6px}.redemption-card__timer{font-feature-settings:"tnum";color:var(--volcyy-text-muted);font-size:1.1rem;font-variant-numeric:tabular-nums;font-weight:700;margin:0 0 14px}.redemption-card--black .redemption-card__timer{color:#ffffffbf}.redemption-card__timer--soon{color:#c53030}.redemption-card--black .redemption-card__timer--soon{color:#ff6b6b}.redemption-card__hint{color:var(--volcyy-text-muted);font-size:.82rem;margin:0}.redemption-card--black .redemption-card__hint{color:#fff9}.scan-page{align-items:center;display:flex;flex-direction:column;min-height:80vh;padding:48px 24px 80px}.scan-page--center{align-items:center;gap:12px;justify-content:center;text-align:center}.scan-page__inner{align-items:center;display:flex;flex-direction:column;gap:20px;max-width:420px;width:100%}.scan-page__title{color:var(--volcyy-text-dark);font-family:var(--heading-font);font-size:1.4rem;font-weight:700;margin:0}.scan-page__start-btn{background:var(--volcyy-primary);border:none;border-radius:10px;color:#fff;cursor:pointer;font-family:var(--apple-font);font-size:.95rem;font-weight:700;padding:13px 28px}.scan-page__start-btn:hover{background:var(--volcyy-primary-hover)}.scan-page__camera{border:1px solid var(--volcyy-border);border-radius:16px;overflow:hidden;width:100%}.scan-page__camera--hidden{display:none}.scan-page__result{align-items:center;border-radius:16px;display:flex;flex-direction:column;gap:8px;padding:28px;text-align:center;width:100%}.scan-page__result--ok{background:#e8f5e9}.scan-page__result--error{background:#fde8e8}.scan-page__result-icon{font-size:2rem;font-weight:800}.scan-page__result--ok .scan-page__result-icon{color:#2e7d32}.scan-page__result--error .scan-page__result-icon{color:#c53030}.scan-page__result h2{font-size:1.15rem;margin:0}.scan-page__result p{color:var(--volcyy-text-muted);font-size:.9rem;margin:0 0 12px}h1,h2,h3,h4,h5,h6{line-height:1.2;margin:0}p{margin:0}button,input,select,textarea{font-family:inherit}img{display:block;max-width:100%}
/*# sourceMappingURL=main.45a20416.css.map*/