:root{--bg:#f9fafb;--surface:#ffffff;--line:#f3f4f6;--line-strong:#e5e7eb;--text:#111827;--muted:#4b5563;--accent:#c8553d;--accent-strong:#a8412e;--accent-soft:#fee2e2;--warn:#ea580c;--danger:#dc2626;--success:#0f766e;--success-soft:#ccfbf1;--shadow:0 1px 3px rgba(0,0,0,0.05),0 10px 20px -5px rgba(0,0,0,0.03)}*{box-sizing:border-box}body,html{margin:0;min-height:100%;background:var(--bg);color:var(--text)}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body,button,input,select,textarea{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;letter-spacing:0}a{color:inherit;text-decoration:none}.button,button{align-items:center;background:var(--accent);border:1px solid var(--accent);border-radius:8px;color:#ffffff;cursor:pointer;display:inline-flex;font-size:.94rem;font-weight:700;gap:.5rem;justify-content:center;min-height:42px;padding:.62rem .9rem}.button.secondary,button.secondary{background:var(--surface);border-color:var(--line-strong);color:var(--text)}.button.success,button.success{background:var(--success);border-color:var(--success)}.button.danger,button.danger{background:var(--danger);border-color:var(--danger)}button:disabled{cursor:not-allowed;opacity:.55}input,select,textarea{background:#ffffff;border:1px solid #d1d5db;border-radius:8px;color:var(--text);font-size:1rem;min-height:42px;padding:.62rem .72rem;width:100%;transition:all .2s cubic-bezier(.4,0,.2,1)}input:focus,select:focus,textarea:focus{background:#ffffff!important;border-color:var(--local-brand-color,var(--accent))!important;outline:none!important;box-shadow:0 0 0 4px var(--local-brand-color-alpha,rgba(200,85,61,.12))!important}textarea{line-height:1.45;resize:vertical}label{color:var(--muted);display:grid;font-size:.82rem;font-weight:700;grid-gap:.35rem;gap:.35rem}table{border-collapse:collapse;width:100%}td,th{border-bottom:1px solid var(--line);padding:.85rem .75rem;text-align:left;vertical-align:middle}th{color:var(--muted);font-size:.75rem;text-transform:uppercase}.app-frame{--accent:var(--local-brand-color,#c8553d);--accent-strong:var(--local-brand-color,#a8412e);--accent-soft:var(--local-brand-color-alpha,#f4ded8);grid-template-columns:236px minmax(0,1fr)}.admin-frame,.app-frame{background:var(--bg);background-image:none;display:grid;min-height:100vh}.admin-frame{grid-template-columns:260px minmax(0,1fr)}.sidebar{background:#171717;background-image:none}.admin-rail,.sidebar{color:var(--surface);display:flex;flex-direction:column;gap:1rem;padding:1.25rem}.admin-rail{background:var(--text);background-image:none}.brand{align-items:center;display:flex;gap:.7rem;font-size:1.05rem;font-weight:800;min-height:40px}.brand-mark{align-items:center;background:var(--accent);border-radius:8px;box-shadow:0 8px 18px rgba(200,85,61,.22);color:var(--surface);display:inline-flex;font-weight:900;height:34px;justify-content:center;width:34px}.brand-logo-frame{background:var(--line);border:1px solid var(--line-strong);border-radius:8px;box-shadow:0 4px 10px rgba(0,0,0,.05);display:inline-block;flex:0 0 auto;height:34px;overflow:hidden;width:34px}.brand-logo-image{display:block;height:100%;object-fit:cover;transform:scale(2.15);transform-origin:50% 55%;width:100%}.nav-list{display:grid;grid-gap:.2rem;gap:.2rem}.nav-link{align-items:center;border-radius:8px;color:rgba(255,255,255,.72);display:flex;gap:.65rem;min-height:40px;padding:.55rem .65rem}.nav-link:hover{background:rgba(255,255,255,.08);color:var(--surface)}.nav-link.active{background:rgba(255,255,255,.1);border-left:3px solid rgba(255,255,255,.9);color:var(--surface);font-weight:700;padding-left:calc(.65rem - 3px)}.admin-tabs{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:8px;display:inline-flex;gap:.25rem;margin-bottom:1rem;padding:.25rem}.admin-tab{background:transparent;border-color:transparent;color:var(--muted);min-height:38px;padding:.5rem .75rem}.admin-tab:hover{background:var(--line);color:var(--text)}.admin-tab.active{background:var(--text);border-color:var(--text);color:var(--surface)}.sidebar-footer{display:grid;grid-gap:.5rem;gap:.5rem;margin-top:auto}.sidebar-app-promo{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:.75rem;margin-top:.5rem}.sidebar-app-promo-title{color:rgba(255,255,255,.5);font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem}.sidebar-app-promo-links{display:flex;flex-direction:column;gap:.45rem}.sidebar-app-link{display:flex;height:32px;border-radius:5px;overflow:hidden;transition:transform .15s ease,opacity .15s ease;position:relative}.sidebar-app-link:hover:not(.disabled){transform:translateY(-.5px);opacity:.95}.sidebar-app-link.disabled{opacity:.28;cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;user-select:none}.sidebar-coming-soon-tag{position:absolute;top:50%;right:6px;transform:translateY(-50%);background:#ffffff;color:#171717;font-size:.52rem;font-weight:900;padding:.05rem .25rem;border-radius:2px;letter-spacing:.03em;text-transform:uppercase;pointer-events:none}.logout-button{align-items:center;background:transparent;border:1px solid rgba(255,255,255,.16);border-radius:8px;color:rgba(255,255,255,.78);display:flex;font-size:.94rem;font-weight:700;gap:.65rem;justify-content:flex-start;min-height:40px;padding:.55rem .65rem;width:100%}.logout-button:hover{background:rgba(255,255,255,.08);color:var(--surface)}.main{background:#ffffff;background-image:none;min-width:0;padding:1.4rem}.topbar{align-items:center;display:flex;gap:1rem;justify-content:space-between;margin-bottom:1.1rem}.eyebrow{color:var(--muted);font-size:.78rem;font-weight:800;text-transform:uppercase}.page-title{font-size:1.65rem;line-height:1.1;margin:.1rem 0 0}.panel{background:var(--surface);background-image:none;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);overflow:hidden}.panel-header{align-items:center;border-bottom:1px solid var(--line);display:flex;gap:.8rem;justify-content:space-between;padding:1rem}.panel-title{font-size:1rem;font-weight:800;margin:0}.panel-body{padding:1rem}.grid{display:grid;grid-gap:1rem;gap:1rem}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.dashboard-analytics{display:grid;grid-gap:1rem;gap:1rem}.dashboard-metrics-toolbar{align-items:end;background:var(--surface);border:1px solid var(--line-strong);border-radius:12px;box-shadow:var(--shadow);display:grid;grid-gap:.9rem;gap:.9rem;grid-template-columns:auto minmax(340px,1fr) minmax(190px,230px);padding:.85rem}.dashboard-metrics-toolbar-heading{align-items:center;display:flex;gap:.65rem;min-height:42px;white-space:nowrap}.dashboard-metrics-toolbar-heading>div{display:grid;grid-gap:.1rem;gap:.1rem}.dashboard-metrics-toolbar-heading strong{font-size:.9rem}.dashboard-metrics-toolbar-heading span:not(.dashboard-metrics-toolbar-icon){color:var(--muted);font-size:.76rem;font-weight:650}.dashboard-metrics-toolbar-icon{align-items:center;background:var(--accent-soft);border-radius:9px;color:var(--accent);display:inline-flex;height:36px;justify-content:center;width:36px}.dashboard-period-tabs{background:#f4f6f8;border:1px solid var(--line-strong);border-radius:11px;display:grid;grid-gap:.2rem;gap:.2rem;grid-template-columns:repeat(5,minmax(0,1fr));padding:.22rem}.dashboard-period-tabs button{background:transparent;border-color:transparent;border-radius:8px;color:var(--muted);font-size:.78rem;min-height:36px;min-width:0;overflow:hidden;padding:.45rem .35rem;text-overflow:ellipsis;white-space:nowrap}.dashboard-period-tabs button:hover:not(:disabled):not(.active){background:rgba(255,255,255,.72);color:var(--text)}.dashboard-period-tabs button.active{background:var(--accent);border-color:var(--accent);box-shadow:0 4px 10px var(--local-brand-color-alpha,rgba(200,85,61,.18));color:#ffffff}.dashboard-period-picker{min-width:0}.dashboard-period-picker.range{grid-column:1/-1}.dashboard-period-picker label{gap:.25rem}.dashboard-period-picker label>span{font-size:.72rem}.dashboard-period-picker input{min-height:38px;padding-bottom:.45rem;padding-top:.45rem}.dashboard-range-fields{align-items:end;display:grid;grid-gap:.65rem;gap:.65rem;grid-template-columns:repeat(2,minmax(0,1fr)) auto;margin-left:auto;max-width:620px}.dashboard-range-apply{min-height:38px;padding-bottom:.45rem;padding-top:.45rem}.dashboard-period-all-time{align-items:center;color:var(--muted);display:flex;font-size:.82rem;font-weight:700;min-height:38px}.dashboard-period-spinner{animation:spin .8s linear infinite}.metric{background:var(--surface);background-image:none;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);display:grid;grid-gap:.45rem;gap:.45rem;min-height:116px;padding:1rem}.metric span{color:var(--muted);font-size:.78rem;font-weight:800;text-transform:uppercase}.metric strong{font-size:1.9rem;line-height:1}.table-wrap{overflow-x:auto}.badge{align-items:center;border-radius:999px;display:inline-flex;font-size:.78rem;font-weight:800;min-height:28px;padding:.25rem .6rem}.badge.green{background:var(--success-soft);color:var(--success)}.badge.amber{background:#fef3c7;color:#b45309}.badge.gray{background:var(--line);color:var(--muted)}.badge.red{background:#fee2e2;color:#b91c1c}.customer-wallet-status{align-items:center;display:inline-flex;min-height:22px}.customer-joined-at{white-space:nowrap}.customer-wallet-marks{align-items:center;display:inline-flex;gap:.4rem}.customer-wallet-logo{display:block;object-fit:contain}.customer-wallet-logo.apple{height:21px;width:18px}.customer-wallet-logo.google{height:20px;width:20px}.progress-track{background:var(--line);border-radius:999px;height:10px;overflow:hidden;width:140px}.progress-fill{background:var(--accent);height:100%}.mobile-page{align-items:center;background:var(--bg);display:grid;min-height:100vh;padding:1rem}.phone-shell{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:0 20px 60px rgba(0,0,0,.08);margin:0 auto;max-width:420px;overflow:hidden;width:100%}.join-cover{color:#ffffff;display:grid;grid-gap:.4rem;gap:.4rem;min-height:160px;padding:1.25rem}.join-cover h1{font-size:1.65rem;line-height:1.1;margin:0}.form-stack{display:grid;grid-gap:.85rem;gap:.85rem}.wallet-buttons{display:grid;grid-gap:.65rem;gap:.65rem;margin-top:1rem}.wallet-card{color:#ffffff;display:grid;grid-gap:1.1rem;gap:1.1rem;min-height:420px;padding:1.2rem}.wallet-card h1,.wallet-card p{margin:0}.qr-box{border-radius:8px;min-height:220px;width:220px}.qr-box,.qr-preview{align-items:center;background:#ffffff;display:grid;justify-content:center;margin:0 auto;padding:1rem}.qr-preview{border:1px solid var(--line);border-radius:8px;max-width:340px}.qr-preview img{display:block;height:auto;max-width:100%}.activity-row{align-items:center;display:flex;gap:.75rem;justify-content:space-between;padding:.7rem 0}.activity-row+.activity-row{border-top:1px solid var(--line)}.muted{color:var(--muted)}.inline-actions{display:flex;flex-wrap:wrap;gap:.55rem}.wallet-campaign-form{display:grid;grid-gap:.85rem;gap:.85rem}.campaign-count{color:var(--muted);font-size:.78rem;font-weight:700;margin-top:-.5rem;text-align:right}.campaign-audience{border:0;display:grid;grid-gap:.45rem;gap:.45rem;margin:0;padding:0}.campaign-audience legend{color:var(--muted);font-size:.82rem;font-weight:700;padding:0}.campaign-segmented{background:#f8fafc;border:1px solid var(--line-strong);border-radius:8px;display:grid;grid-gap:.25rem;gap:.25rem;grid-template-columns:repeat(2,minmax(0,1fr));padding:.25rem}.campaign-segmented button{background:transparent;border-color:transparent;color:var(--muted);min-width:0;padding-left:.65rem;padding-right:.65rem}.campaign-segmented button.active{background:var(--surface);border-color:var(--line-strong);color:var(--text);box-shadow:0 1px 3px rgba(17,24,39,.06)}.campaign-picker{border-top:1px solid var(--line);display:grid;grid-gap:.75rem;gap:.75rem;padding-top:.9rem}.campaign-search{position:relative}.campaign-search svg{color:var(--muted);left:.78rem;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.campaign-search input{padding-left:2.3rem}.campaign-selected-count{color:var(--muted);font-size:.82rem;font-weight:800}.campaign-customer-list{border:1px solid var(--line);border-radius:8px;display:grid;max-height:310px;overflow:auto}.campaign-customer-option{align-items:center;color:var(--text);display:flex;gap:.7rem;padding:.7rem .8rem}.campaign-customer-option+.campaign-customer-option{border-top:1px solid var(--line)}.campaign-customer-option input{flex:0 0 auto;min-height:18px;width:18px}.campaign-customer-option span{display:grid;grid-gap:.15rem;gap:.15rem;min-width:0}.campaign-customer-option small{color:var(--muted);font-size:.8rem}.campaign-alert{border-radius:8px;font-size:.9rem;font-weight:700;padding:.7rem .85rem}.campaign-alert.error{background:#fee2e2;color:#991b1b}.campaign-alert.success{background:var(--success-soft);color:var(--success)}.campaign-submit{width:-moz-fit-content;width:fit-content}.campaign-table-body{max-width:260px}.campaign-channel-cell{display:grid;grid-gap:.18rem;gap:.18rem;min-width:128px}.auth-page{align-items:center;background:var(--bg);display:grid;min-height:100vh;padding:1.5rem}.auth-shell{display:grid;grid-gap:1.5rem;gap:1.5rem;margin:0 auto;max-width:980px;width:100%}.auth-brand{width:-moz-fit-content;width:fit-content}.auth-title{font-size:clamp(2rem,5vw,3.35rem);line-height:1.02;margin:.25rem 0 .75rem;max-width:720px}.auth-copy{color:var(--muted);font-size:1.05rem;line-height:1.55;margin:0;max-width:580px}.auth-panel{align-self:start;max-width:760px}.auth-tabs{background:#ffffff;border-bottom:1px solid var(--line);display:grid;grid-gap:.4rem;gap:.4rem;grid-template-columns:repeat(2,minmax(0,1fr));padding:.5rem}.auth-tab{align-items:center;background:transparent;border:1px solid transparent;color:var(--text);min-height:42px}.auth-tab.active{background:var(--accent);border-color:var(--accent);color:#ffffff}.auth-form-note{font-size:.92rem;line-height:1.45;margin:.4rem 0 0}.auth-section-title{color:var(--accent-strong);font-size:.78rem;font-weight:800;margin:.2rem 0 -.25rem;text-transform:uppercase}.auth-loading{padding:1.25rem}.auth-panel .panel-header{padding:0 0 .4rem}.auth-panel form.panel-body{padding:1.25rem}@media (max-width:900px){.admin-frame,.app-frame{grid-template-columns:1fr}.sidebar{position:static}.nav-list{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.grid.four,.grid.two{grid-template-columns:1fr}.dashboard-metrics-toolbar{align-items:stretch;grid-template-columns:1fr}.dashboard-period-picker.range{grid-column:auto}}@media (max-width:560px){.main{padding:.9rem}.topbar{align-items:flex-start;flex-direction:column}td,th{padding:.7rem .55rem}.dashboard-metrics-toolbar{gap:.7rem;padding:.7rem}.dashboard-period-tabs button{font-size:.7rem;padding-left:.15rem;padding-right:.15rem}.dashboard-range-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-range-apply{grid-column:1/-1}}.search-form{margin-bottom:1.25rem;background:var(--surface);padding:1rem;border-radius:8px;border:1px solid var(--line)}.search-input-wrap{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.search-input{max-width:320px;flex:1 1}.search-btn{min-height:42px}.clear-search{font-size:.9rem;color:var(--accent);font-weight:700;text-decoration:underline;cursor:pointer;padding:.5rem .75rem;border-radius:6px;transition:all .2s ease}.clear-search:hover{color:var(--accent-strong);background:var(--accent-soft);text-decoration:none}.pagination{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1rem;border-top:1px solid var(--line);background:var(--surface);gap:1rem;flex-wrap:wrap}.pagination-buttons{display:flex;gap:.55rem}.pagination-info{font-size:.88rem;color:var(--muted);font-weight:700}.pagination .disabled{pointer-events:none;opacity:.45}.filter-badge{cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);border:1px solid transparent;-webkit-user-select:none;-moz-user-select:none;user-select:none}.filter-badge:hover{transform:translateY(-1px);background:var(--line-strong);color:var(--text)}.filter-badge.active{background:var(--accent)!important;color:#ffffff!important;border-color:var(--accent)!important;box-shadow:0 4px 10px rgba(200,85,61,.2)}.logo-upload-zone{border:2px dashed var(--line-strong);border-radius:12px;padding:1.5rem;text-align:center;background:#ffffff;cursor:pointer;transition:all .2s ease-in-out;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;min-height:140px}.logo-upload-zone:hover{border-color:var(--accent);background:rgba(200,85,61,.02)}.logo-upload-zone input[type=file]{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.logo-preview-container{display:flex;align-items:center;gap:1rem;width:100%}.logo-thumbnail{width:64px;height:64px;border-radius:8px;object-fit:cover;border:1px solid var(--line);box-shadow:0 4px 12px rgba(0,0,0,.06)}.logo-details{text-align:left;flex:1 1}.logo-details strong{display:block;font-size:.9rem;color:var(--text)}.logo-details span{font-size:.78rem;color:var(--muted)}.upload-spinner{width:24px;height:24px;border:3px solid rgba(200,85,61,.2);border-top:3px solid var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.preview-panel{background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);overflow:hidden;height:100%}.preview-header,.preview-panel{display:flex;flex-direction:column}.preview-header{background:#ffffff;border-bottom:1px solid var(--line);padding:1rem;gap:.75rem}.preview-header-title{font-size:.82rem;font-weight:800;text-transform:uppercase;color:var(--muted);letter-spacing:.05em}.preview-tabs{display:flex;background:var(--bg);border-radius:8px;padding:.25rem;gap:.25rem}.preview-tab{flex:1 1;border:none;background:transparent;color:var(--muted);font-size:.85rem;font-weight:700;padding:.5rem;border-radius:6px;cursor:pointer;transition:all .15s ease;min-height:auto}.preview-tab:hover{color:var(--text);background:rgba(0,0,0,.04)}.preview-tab.active{background:#ffffff;color:var(--text);box-shadow:0 2px 6px rgba(0,0,0,.06)}.preview-viewport{flex:1 1;padding:2rem 1rem;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 50%,#ffffff 0,var(--bg) 100%);min-height:520px}.apple-pass-card{width:320px;border-radius:16px;box-shadow:0 15px 35px rgba(0,0,0,.16),0 3px 10px rgba(0,0,0,.08);color:#ffffff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;overflow:hidden;position:relative}.apple-pass-card:after{content:"";position:absolute;top:0;left:0;right:0;height:45%;background:linear-gradient(180deg,rgba(255,255,255,.1),rgba(255,255,255,0));pointer-events:none}.apple-pass-header{padding:.9rem 1.1rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.12)}.apple-pass-logo{display:flex;align-items:center;gap:.5rem}.apple-pass-logo-img{width:26px;height:26px;border-radius:5px;background:#ffffff;object-fit:cover;box-shadow:0 1px 3px rgba(0,0,0,.15)}.apple-pass-logo-text{font-weight:700;font-size:.85rem;letter-spacing:-.01em;opacity:.95}.apple-pass-header-right{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;opacity:.75}.apple-pass-body{padding:1.2rem 1.1rem;display:flex;flex-direction:column;gap:1.1rem}.apple-pass-primary-row{display:flex;justify-content:space-between;align-items:flex-end}.apple-pass-label{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;opacity:.7;margin-bottom:.15rem}.apple-pass-value-large{font-size:1.55rem;font-weight:700;line-height:1}.apple-pass-value-medium{font-size:1.1rem;font-weight:700;line-height:1.1}.apple-pass-secondary-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr) minmax(0,.8fr);grid-gap:.75rem;gap:.75rem}.apple-pass-qr-section{display:flex;flex-direction:column;align-items:center;justify-content:center;background:rgba(255,255,255,.06);border-radius:12px;padding:1rem .5rem;margin-top:.5rem;border:1px solid rgba(255,255,255,.08)}.apple-pass-qr-bg{background:#ffffff;padding:.65rem;border-radius:8px;box-shadow:0 4px 15px rgba(0,0,0,.1);display:inline-block}.apple-pass-qr-img{display:block;background:white}.apple-pass-footer-text{font-size:.68rem;opacity:.7;margin-top:.65rem;text-align:center;font-weight:500}.google-pass-card{width:320px;border-radius:16px;box-shadow:0 10px 30px rgba(0,0,0,.12),0 1px 5px rgba(0,0,0,.05);color:#ffffff;font-family:Google Sans,Roboto,Arial,sans-serif;overflow:hidden}.google-pass-header{padding:1.1rem 1.25rem;display:flex;align-items:center;gap:.75rem}.google-pass-logo{width:32px;height:32px;border-radius:50%;background:#ffffff;object-fit:cover;border:1px solid rgba(255,255,255,.2)}.google-pass-title-group{display:flex;flex-direction:column;min-width:0}.google-pass-issuer{font-size:.75rem;font-weight:500;opacity:.82}.google-pass-issuer,.google-pass-program{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.google-pass-program{font-size:1rem;font-weight:700;letter-spacing:-.01em}.google-pass-divider{height:1px;background:rgba(255,255,255,.15);margin:0 1.25rem}.google-pass-details{padding:1.1rem 1.25rem;display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,.7fr);grid-gap:.85rem;gap:.85rem}.google-pass-label{font-size:.72rem;opacity:.7;text-transform:uppercase;letter-spacing:.04em;font-weight:700;margin-bottom:.15rem}.google-pass-value{font-size:.92rem;font-weight:700}.google-pass-stamp-progress{font-size:.78rem;line-height:1.5;overflow-wrap:anywhere}.google-pass-qr-area{background:#ffffff;color:var(--text);padding:1.35rem 1.25rem 1.1rem;display:flex;flex-direction:column;align-items:center;gap:.55rem;border-top:1px solid rgba(0,0,0,.05)}.google-pass-qr-wrapper{background:#ffffff;padding:.5rem;border:1px solid var(--line);border-radius:12px;display:inline-block}.google-pass-barcode-lbl{font-size:.78rem;font-weight:600;color:var(--muted);text-align:center}.google-pass-info{background:#ffffff;color:var(--text);padding:0 1.25rem 1.25rem}.google-pass-info-row{border-top:1px solid var(--line);padding:.8rem 0}.google-pass-info-label{color:var(--muted);font-size:.68rem;font-weight:700;letter-spacing:.04em;margin-bottom:.2rem;text-transform:uppercase}.google-pass-info-value{font-size:.84rem;font-weight:600;line-height:1.4;overflow-wrap:anywhere}.google-wallet-badge{display:inline-flex;align-items:center;gap:.35rem;background:#1f1f1f;color:#ffffff;padding:.4rem .85rem;border-radius:20px;font-size:.72rem;font-weight:700;box-shadow:0 2px 5px rgba(0,0,0,.1);margin-top:.2rem}.mock-phone{width:320px;height:500px;background:var(--surface);border:8px solid var(--text);border-radius:32px;box-shadow:0 20px 45px rgba(0,0,0,.12);overflow-y:auto;position:relative;display:flex;flex-direction:column}.mock-phone::-webkit-scrollbar{display:none}.mock-phone-notch{position:absolute;top:0;left:50%;transform:translateX(-50%);width:110px;height:18px;background:var(--text);border-bottom-left-radius:12px;border-bottom-right-radius:12px;z-index:10}.mock-phone-content{flex:1 1;display:flex;flex-direction:column}.mock-phone .join-cover{padding-top:2rem;min-height:140px}.join-logo-frame{width:96px;height:96px;border-radius:20px;overflow:hidden;background:#ffffff;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(0,0,0,.12);margin-bottom:.75rem;border:2px solid rgba(255,255,255,.95);flex-shrink:0}.join-logo{width:100%;height:100%;object-fit:cover}.onboarding-form-body label{color:#374151!important;font-weight:600;font-size:.85rem;margin-bottom:.2rem}.onboarding-form-body input{border:1px solid rgba(0,0,0,.08)!important;border-radius:10px!important;color:#111827!important;background-color:#ffffff!important;font-size:.95rem!important;padding:.75rem 1rem!important;min-height:46px!important;transition:all .2s cubic-bezier(.4,0,.2,1)!important}.onboarding-form-body input:focus{background-color:#ffffff!important;border-color:var(--local-brand-color,var(--accent))!important;box-shadow:0 0 0 4px var(--local-brand-color-alpha,rgba(200,85,61,.08))!important;outline:none!important}.onboarding-form-body .country-select-menu{bottom:calc(100% + .4rem);top:auto}.onboarding-form-body .muted{color:#6b7280!important;font-size:.85rem;line-height:1.45}.join-rewards-btn{width:100%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;border-radius:10px!important;min-height:46px!important;font-size:1rem!important;font-weight:700!important;transition:all .2s cubic-bezier(.4,0,.2,1)!important}.join-rewards-btn:hover:not(:disabled){transform:translateY(-1.5px)!important;filter:brightness(1.04)!important}.join-rewards-btn:active:not(:disabled){transform:translateY(.5px)!important}.apple-wallet-button,.google-wallet-button{background-color:#000000!important;color:#ffffff!important;border:1px solid rgba(255,255,255,.15)!important;border-radius:9999px!important;padding:.75rem 1.5rem!important;min-height:48px!important;height:48px!important;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif!important;font-weight:600!important;font-size:.95rem!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:.65rem!important;width:100%!important;cursor:pointer!important;box-shadow:0 4px 12px rgba(0,0,0,.15)!important;transition:all .2s cubic-bezier(.4,0,.2,1)!important;text-decoration:none!important}.google-wallet-button{border:1px solid #747775!important}.apple-wallet-button .wallet-btn-icon,.google-wallet-button .wallet-btn-icon{width:24px!important;height:auto!important;flex-shrink:0!important;display:block!important}.apple-wallet-button:hover,.google-wallet-button:hover{background-color:#111111!important;transform:translateY(-2px)!important;box-shadow:0 8px 20px rgba(0,0,0,.25)!important;border-color:rgba(255,255,255,.3)!important}.google-wallet-button:hover{border-color:#8e918f!important}.apple-wallet-button:active,.google-wallet-button:active{transform:translateY(.5px)!important;box-shadow:0 2px 6px rgba(0,0,0,.15)!important}@keyframes cardSlideIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes stepFadeIn{0%{opacity:0;transform:scale(.99) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.auth-page-premium{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f8fafc;padding:2.5rem 1.5rem}.auth-card-minimal{background:#ffffff;border:1px solid var(--line-strong);border-radius:16px;box-shadow:0 12px 34px rgba(0,0,0,.03),0 1px 3px rgba(0,0,0,.01);width:100%;max-width:460px;padding:2.75rem 2.25rem;display:flex;flex-direction:column;gap:1.75rem;animation:cardSlideIn .45s cubic-bezier(.16,1,.3,1) both;transition:all .25s cubic-bezier(.4,0,.2,1)}.auth-card-minimal:hover{box-shadow:0 16px 40px rgba(0,0,0,.04),0 2px 4px rgba(0,0,0,.01)}.auth-logo-header{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.45rem;margin-bottom:.15rem}.auth-brand-logo-link{display:inline-block;padding:0;margin:0;background:transparent;border:none;transition:transform .25s cubic-bezier(.16,1,.3,1)}.auth-brand-logo-link:hover{transform:scale(1.05)}.auth-brand-logo-img{display:block;height:auto;width:72px}.auth-brand-text{font-family:Iowan Old Style,Apple Garamond,Georgia,Times New Roman,ui-serif,serif;font-size:1.45rem;font-weight:700;letter-spacing:-.02em;color:var(--text);margin-top:.15rem}.auth-form-anim{animation:stepFadeIn .32s cubic-bezier(.16,1,.3,1) both}.auth-tabs-premium{display:flex;background:#f1f5f9;border-radius:10px;padding:.25rem;gap:.15rem;border:1px solid rgba(0,0,0,.01)}.auth-tab-premium{flex:1 1;border:none;background:transparent;color:#64748b;font-weight:700;font-size:.88rem;padding:.55rem;border-radius:8px;cursor:pointer;min-height:auto;transition:all .15s ease}.auth-tab-premium:hover:not(.active){color:#334155;background:rgba(0,0,0,.02)}.auth-tab-premium.active{background:#ffffff;color:#0f172a;box-shadow:0 2px 6px rgba(0,0,0,.04),0 1px 2px rgba(0,0,0,.01)}.wizard-progress-bar{display:flex;gap:.4rem;margin-bottom:.25rem}.wizard-step-segment{height:3px;flex:1 1;background:#e2e8f0;border-radius:4px;transition:all .3s ease}.wizard-step-segment.active{background:var(--accent)}.wizard-step-segment.completed{background:var(--accent-strong);opacity:.85}.wizard-step-title{font-size:.72rem;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.05em;text-align:center}.wizard-step-action-row{align-items:center;display:flex;gap:.75rem;justify-content:space-between}.wizard-section-title{color:var(--text);font-size:1rem;font-weight:800;line-height:1.2;margin:0}.wizard-do-later{background:#ffffff!important;border:1px solid var(--line-strong)!important;color:var(--muted)!important;flex:0 0 auto;font-size:.84rem;min-height:36px;padding:.45rem .7rem;white-space:nowrap}.wizard-do-later:hover:not(:disabled){background:#f8fafc!important;color:var(--text)!important}.wizard-navigation{display:flex;gap:.75rem;margin-top:1.25rem}.wizard-btn-prev{background:#ffffff!important;border:1px solid var(--line-strong)!important;color:var(--text)!important;flex:1 1}.wizard-btn-prev:hover{background:#f8fafc!important;border-color:#cbd5e1!important}.wizard-btn-next{flex:2 1}.auth-forgot-header{display:flex;align-items:center}.btn-back-link{display:inline-flex;align-items:center;gap:.5rem;background:transparent;border:none;color:var(--accent);font-weight:700;font-size:.9rem;padding:.25rem 0;cursor:pointer;transition:all .15s ease}.btn-back-link:hover{color:var(--accent-strong);transform:translateX(-2px)}.forgot-password-link{background:transparent;border:none;color:var(--accent);font-size:.82rem;font-weight:700;padding:0;cursor:pointer;display:inline-block;min-height:auto}.forgot-password-link:hover{color:var(--accent-strong);text-decoration:underline}.label-row-premium{display:flex;justify-content:space-between;align-items:center;margin-bottom:.35rem}.label-row-premium label{margin-bottom:0}@media (max-width:480px){.wizard-step-action-row{align-items:stretch;flex-direction:column}.wizard-do-later{width:100%}}.topbar-actions{align-items:center;display:flex;gap:.6rem}.notification-bell{align-items:center;background:#fff;border:1px solid var(--line-strong);border-radius:10px;color:var(--muted);display:inline-flex;height:42px;justify-content:center;position:relative;width:42px}.notification-bell:hover{border-color:var(--accent);color:var(--accent)}.notification-bell>span{align-items:center;background:#dc2626;border:2px solid #fff;border-radius:999px;color:#fff;display:inline-flex;font-size:.62rem;font-weight:800;height:20px;justify-content:center;min-width:20px;padding-inline:.2rem;position:absolute;right:-7px;top:-7px}.notification-center{margin:0 auto;max-width:860px}.notification-center .panel-header{align-items:center}.notification-center .panel-header p{margin:.3rem 0 0}.notification-center .inline-actions button{align-items:center;display:inline-flex;gap:.4rem}.notification-list{display:grid}.notification-row{align-items:center;background:#fff;border:0;border-bottom:1px solid var(--line);border-radius:0;box-shadow:none;color:var(--text);display:grid;grid-gap:.8rem;gap:.8rem;grid-template-columns:auto minmax(0,1fr) auto auto;min-height:82px;padding:.9rem 1.1rem;text-align:left}.notification-row:last-child{border-bottom:0}.notification-row.unread{background:color-mix(in srgb,var(--accent-soft) 38%,#fff)}.notification-row:hover{background:#f8fafc}.notification-icon{align-items:center;background:var(--accent-soft);border-radius:10px;color:var(--accent);display:inline-flex;height:42px;justify-content:center;width:42px}.notification-row>span:nth-child(2){display:grid;grid-gap:.25rem;gap:.25rem}.notification-row small{color:var(--muted);display:-webkit-box;font-weight:500;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.notification-row time{color:var(--muted);font-size:.75rem}.notification-row i{background:var(--accent);border-radius:50%;height:8px;width:8px}.notification-empty{align-items:center;color:var(--muted);display:grid;grid-gap:.5rem;gap:.5rem;justify-items:center;padding:3rem 1rem;text-align:center}.notification-empty strong{color:var(--text)}.notification-empty p{margin:0}.danger-outline{color:#b91c1c}.danger-button{align-items:center;background:#b91c1c;border-color:#b91c1c;color:#fff;display:inline-flex;gap:.4rem;justify-content:center}.danger-button:hover:not(:disabled){background:#991b1b}.settings-hub{display:grid;grid-gap:1rem;gap:1rem;margin:0 auto;max-width:900px}.settings-link-grid{display:grid;grid-gap:.75rem;gap:.75rem;grid-template-columns:repeat(3,minmax(0,1fr))}.settings-link-card{background:#fff;border:1px solid var(--line);border-radius:13px;display:grid;grid-gap:.35rem;gap:.35rem;min-height:145px;padding:1rem;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.settings-link-card:hover{border-color:var(--accent);box-shadow:0 8px 24px rgba(15,23,42,.08);transform:translateY(-2px)}.settings-link-card>span{align-items:center;background:var(--accent-soft);border-radius:10px;color:var(--accent);display:inline-flex;height:40px;justify-content:center;margin-bottom:.2rem;width:40px}.settings-link-card small{color:var(--muted);line-height:1.4}.danger-zone .panel-header>svg,.support-card .panel-header>svg{color:var(--muted)}.support-actions{display:flex;flex-wrap:wrap;gap:.65rem}.danger-zone{border-color:#fecaca}.danger-zone .panel-header{background:#fffafa}.danger-zone .panel-header>svg{color:#b91c1c}.danger-zone-body{align-items:center;display:flex;gap:1rem;justify-content:space-between}.danger-zone-body p{margin:0;max-width:620px}@media (max-width:760px){.settings-link-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.danger-zone-body,.notification-center .panel-header{align-items:stretch;flex-direction:column}.notification-row{grid-template-columns:auto minmax(0,1fr) auto}.notification-row time{grid-column:2}}@media (max-width:480px){.settings-link-grid{grid-template-columns:1fr}.topbar-actions{align-self:flex-start}}.auth-alert-premium{display:flex;gap:.75rem;padding:.85rem 1rem;border-radius:8px;font-size:.85rem;line-height:1.45;font-weight:600;margin-top:.25rem}.auth-alert-premium.success{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.auth-alert-premium.error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.form-group-premium{display:flex;flex-direction:column;gap:.35rem}.country-select{flex:0 0 112px;position:relative}.country-select-trigger{align-items:center;background:#ffffff;border:1px solid #d1d5db;border-radius:10px;color:#111827;cursor:pointer;display:flex;font-size:.95rem;font-weight:700;gap:.45rem;height:100%;justify-content:space-between;min-height:46px;padding:0 .75rem;width:100%}.country-select-trigger:hover{border-color:#9ca3af}.country-select-trigger:focus-visible{border-color:var(--accent);box-shadow:0 0 0 4px rgba(15,118,110,.12);outline:none}.country-select-chevron{color:#4b5563;flex:0 0 auto}.country-select-menu{background:#ffffff;border:1px solid #d1d5db;border-radius:8px;box-shadow:0 18px 42px rgba(15,23,42,.14);display:grid;left:0;max-height:260px;min-width:260px;overflow-y:auto;padding:.35rem;position:absolute;top:calc(100% + .4rem);z-index:30}.country-select-option{align-items:center;background:transparent;border:0;border-radius:6px;color:#111827;cursor:pointer;display:grid;font-size:.92rem;font-weight:700;grid-gap:.45rem;gap:.45rem;grid-template-columns:auto minmax(0,1fr) auto;min-height:40px;padding:.45rem .55rem;text-align:left}.country-select-option:hover,.country-select-option[aria-selected=true]{background:#f3f4f6}.country-select-option-flag,.country-select-option-prefix{white-space:nowrap}.country-select-option-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.form-section-title-premium{color:var(--text);font-size:.8rem;font-weight:800;letter-spacing:.05em;margin:1.25rem 0 .5rem;text-transform:uppercase;border-bottom:1px solid var(--line);padding-bottom:.4rem}.form-section-title-premium:first-of-type{margin-top:.25rem}@media (max-width:480px){.auth-card-minimal{padding:2rem 1.5rem;box-shadow:none;border:none;background:transparent}.auth-page-premium{background:#ffffff;padding:1rem}}.button-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.35);border-top-color:currentcolor;border-radius:50%;animation:spin .8s linear infinite;display:inline-block;flex-shrink:0}.button-spinner.dark{border:2px solid rgba(0,0,0,.1);border-top:2px solid var(--accent)}.tour-spinner{width:48px;height:48px;border:4px solid rgba(255,255,255,.1);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto}.tour-spinner-wrap{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);color:#ffffff;text-align:center;z-index:100001}.tour-backdrop-blur{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(15,23,42,.65);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:99997;transition:all .3s ease}.tour-card{background:#ffffff;border:1px solid var(--line-strong);border-radius:8px;box-shadow:var(--shadow);padding:1.25rem;width:350px;color:#1e293b;display:flex;flex-direction:column;gap:.85rem}.tour-card.center-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:100000;animation:none;max-width:460px;width:90%;padding:1.5rem}.tour-welcome-badge{font-size:.72rem;font-weight:800;letter-spacing:.08em;color:#0f766e;background:#ccfbf1;padding:.35rem .85rem;border-radius:999px;text-transform:uppercase;width:-moz-fit-content;width:fit-content;margin:0 auto}.tour-welcome-title{font-size:1.25rem;font-weight:800;color:#0f172a;text-align:center;margin:.25rem 0 0}.tour-pricing-note{font-size:.85rem;color:#64748b;text-align:center;line-height:1.5;margin:0}.tour-benefit-list{display:flex;flex-direction:column;gap:.5rem;margin:.35rem 0;font-size:.82rem;color:#334155}.tour-benefit-item{display:flex;gap:.5rem;align-items:center}.tour-benefit-item strong{color:#0f172a}.tour-benefit-check{color:var(--accent);font-weight:900;font-size:1rem}.onboarding-container{display:flex;flex-direction:column;gap:1rem;max-width:980px;margin:.5rem 0 2rem}.onboarding-welcome-card{background:var(--surface);border:1px solid var(--line-strong);border-radius:8px;box-shadow:var(--shadow);color:var(--text);padding:1.15rem 1.25rem}.onboarding-welcome-title{font-size:1.2rem;font-weight:800;margin:0 0 .35rem}.onboarding-welcome-desc{color:var(--muted);font-size:.94rem;margin:0;line-height:1.5;max-width:680px}.onboarding-steps{display:flex;flex-direction:column;gap:.85rem}.onboarding-step-card{background:var(--surface);border:1px solid var(--line-strong);border-radius:8px;box-shadow:0 1px 2px rgba(15,23,42,.04);display:grid;grid-template-columns:42px minmax(0,1fr) auto;grid-gap:1rem;gap:1rem;align-items:center;padding:1.1rem 1.15rem;transition:border-color .18s ease,box-shadow .18s ease}.onboarding-step-card:hover{border-color:var(--local-brand-color,var(--accent));box-shadow:0 2px 8px rgba(15,23,42,.06)}.onboarding-step-card.completed{border-color:var(--success);background:#fafffe}.onboarding-step-number-circle{width:42px;height:42px;border-radius:8px;background:var(--line);color:var(--muted);font-weight:800;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.onboarding-step-card:hover .onboarding-step-number-circle{background:var(--local-brand-color-alpha,var(--accent-soft));color:var(--local-brand-color,var(--accent))}.onboarding-step-card.completed .onboarding-step-number-circle{background:var(--success-soft);color:var(--success)}.onboarding-step-info{display:flex;flex-direction:column;gap:.35rem}.onboarding-step-title{font-size:1rem;font-weight:800;margin:0;color:var(--text);display:flex;align-items:center;gap:.5rem}.onboarding-step-desc{font-size:.88rem;color:var(--muted);line-height:1.5;margin:0}.onboarding-step-action{flex-shrink:0}.onboarding-step-action .button{min-height:40px;font-size:.88rem;white-space:nowrap}@media (max-width:768px){.onboarding-step-card{grid-template-columns:42px minmax(0,1fr);gap:1rem;text-align:left}.onboarding-step-action{grid-column:1/-1;width:100%}.onboarding-step-action .button{width:100%}}.first-customer-invite{max-width:720px;margin:0 auto;text-align:center}.first-customer-invite .panel-body{display:flex;flex-direction:column;align-items:center;gap:.85rem;padding:2.5rem}.first-customer-invite-icon{width:58px;height:58px;display:grid;place-items:center;border-radius:18px;color:var(--local-brand-color,var(--accent));background:var(--local-brand-color-alpha,var(--accent-soft))}.first-customer-invite h2,.first-customer-joined h2,.first-customer-qr-modal h2{margin:0}.first-customer-invite>.panel-body>p:not(.eyebrow):not(.first-customer-invite-feedback){max-width:520px;margin:0;color:var(--muted)}.first-customer-invite-actions{display:flex;justify-content:center;gap:.75rem;width:100%;margin-top:.45rem}.first-customer-invite-actions button{min-width:190px}.first-customer-invite-feedback{margin:0;color:var(--muted);font-size:.86rem}.first-customer-customize-link{display:inline-flex;align-items:center;gap:.35rem;color:var(--muted);font-size:.86rem;font-weight:700}.first-customer-qr-backdrop{z-index:110000}.first-customer-qr-modal{position:relative;width:min(92vw,440px);padding:2rem;border-radius:24px;background:#ffffff;text-align:center;box-shadow:0 28px 80px rgba(15,23,42,.28)}.first-customer-qr-modal img{display:block;width:min(100%,320px);height:auto;margin:1.25rem auto}.first-customer-qr-modal p:last-child{margin:0;color:var(--muted)}.first-customer-qr-close{position:absolute;top:1rem;right:1rem}.first-customer-joined .panel-body{display:flex;align-items:center;gap:1rem}.first-customer-joined .panel-body>svg{flex:0 0 auto;color:var(--success)}.first-customer-joined .panel-body>div{flex:1 1}.first-customer-joined p{margin:.25rem 0 0;color:var(--muted)}@media (max-width:640px){.first-customer-invite .panel-body{padding:1.5rem}.first-customer-invite-actions{flex-direction:column}.first-customer-invite-actions button{width:100%}.first-customer-joined .panel-body{align-items:flex-start;flex-wrap:wrap}.first-customer-joined .button{width:100%}}.loyalty-builder{display:grid;grid-gap:0;gap:0;margin:0 auto;max-width:1120px;padding-bottom:88px}.loyalty-hero{border-bottom:1px solid var(--line-strong);padding:.5rem 0 2.5rem}.loyalty-hero-grid{align-items:center;display:grid;grid-gap:clamp(2rem,6vw,5rem);gap:clamp(2rem,6vw,5rem);grid-template-columns:minmax(0,1.2fr) minmax(340px,.8fr)}.loyalty-hero-grid h2{font-size:clamp(1.75rem,3vw,2.45rem);letter-spacing:-.035em;line-height:1.08;margin:.45rem 0 .8rem;max-width:620px}.loyalty-hero-grid>div:first-child .muted{line-height:1.6;margin:0;max-width:620px}.loyalty-toggle-grid{display:grid;border-top:1px solid var(--line-strong)}.program-toggle{align-items:center;border-bottom:1px solid var(--line-strong);cursor:pointer;display:flex;justify-content:space-between;min-height:74px;padding:.85rem 0;position:relative;transition:color .16s ease}.program-toggle:hover strong{color:var(--accent-strong)}.program-toggle:focus-within{outline:3px solid var(--accent-soft);outline-offset:4px}.loyalty-mode-card span:last-child,.program-toggle-copy{display:grid;grid-gap:.25rem;gap:.25rem}.loyalty-mode-card strong,.program-toggle strong{color:var(--text);font-size:.95rem}.loyalty-mode-card small,.program-toggle small{color:var(--muted);font-weight:500;line-height:1.35}.program-toggle input{height:1px;opacity:0;pointer-events:none;position:absolute;width:1px}.program-toggle-switch{background:#d1d5db;border-radius:999px;display:inline-flex;flex:0 0 auto;height:24px;padding:3px;transition:background .16s ease;width:42px}.program-toggle-switch>span{background:#fff;border-radius:50%;box-shadow:0 1px 4px rgba(15,23,42,.24);display:block;height:18px;transform:translateX(0);transition:transform .16s ease;width:18px}.program-toggle.selected .program-toggle-switch{background:var(--accent)}.program-toggle.selected .program-toggle-switch>span{transform:translateX(18px)}.loyalty-section{border-bottom:1px solid var(--line-strong);display:grid;grid-gap:clamp(2rem,5vw,4.5rem);gap:clamp(2rem,5vw,4.5rem);grid-template-columns:minmax(190px,.34fr) minmax(0,1fr);padding:clamp(2rem,5vw,3.5rem) 0}.loyalty-section-header{align-self:start;display:block}.loyalty-section-header h2{font-size:1.05rem;letter-spacing:-.01em;margin:.4rem 0 0}.loyalty-section-header .muted{line-height:1.55;margin:.35rem 0 0}.loyalty-section-meta{color:var(--muted);display:inline-block;font-size:.75rem;font-weight:700;margin-top:.9rem}.loyalty-section-body{display:grid;grid-gap:1.25rem;gap:1.25rem;min-width:0}.loyalty-field{align-items:center;border-bottom:1px solid var(--line);display:grid;grid-gap:1rem;gap:1rem;grid-template-columns:minmax(0,1fr) minmax(150px,190px);max-width:none;padding:0 0 1.25rem}.loyalty-field>span{color:var(--text);font-size:.86rem}.loyalty-resource-list{display:grid;grid-gap:0;gap:0;border-top:1px solid var(--line-strong)}.loyalty-resource{align-items:center;border-bottom:1px solid var(--line);display:grid;grid-gap:.85rem;gap:.85rem;grid-template-areas:"grip copy actions";grid-template-columns:20px minmax(140px,1fr) auto;min-height:72px;padding:.85rem .25rem;transition:background .14s ease}.loyalty-resource.with-image{grid-template-areas:"grip image copy actions";grid-template-columns:20px 46px minmax(140px,1fr) auto}.loyalty-resource:hover{background:color-mix(in srgb,var(--accent-soft) 22%,transparent)}.loyalty-resource.inactive,.loyalty-resource.inactive .resource-copy strong,.resource-grip{color:var(--muted)}.resource-grip{cursor:-webkit-grab;cursor:grab;grid-area:grip;opacity:.6}.resource-image{align-items:center;background:var(--accent-soft);border-radius:12px;color:var(--accent);display:inline-flex;grid-area:image;height:46px;justify-content:center;overflow:hidden;width:46px}.resource-image img{height:100%;object-fit:cover;width:100%}.resource-copy{display:grid;grid-gap:.2rem;gap:.2rem;grid-area:copy;min-width:0}.resource-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.resource-copy small{color:var(--muted)}.resource-actions{align-items:center;display:flex;gap:.25rem;grid-area:actions}.resource-order-actions{align-items:center;border-right:1px solid var(--line-strong);display:inline-flex;margin-right:.15rem;padding-right:.4rem}.icon-button,.link-button{align-items:center;background:transparent;border:0;box-shadow:none;color:var(--muted);display:inline-flex;justify-content:center;min-height:34px;padding:.4rem}.link-button{font-size:.78rem;padding-inline:.55rem}.icon-button:hover:not(:disabled),.link-button:hover:not(:disabled){background:var(--line);color:var(--text)}.resource-toggle{background:transparent;border:0;box-shadow:none;color:var(--muted);font-size:.78rem;min-height:34px;padding:.4rem .55rem}.resource-toggle:hover:not(:disabled){background:var(--line);color:var(--text)}.resource-toggle.activate{color:var(--accent-strong)}.icon-button.danger,.link-button.danger{color:var(--danger)}button.loyalty-add-button{background:transparent;border:0;color:var(--accent-strong);justify-self:start;min-height:36px;padding:.35rem 0}button.loyalty-add-button:hover:not(:disabled){background:transparent;color:var(--accent)}.loyalty-add-button,.loyalty-empty button,.loyalty-journey-add button,.loyalty-print-row .button,.reward-file-button{align-items:center;display:inline-flex;gap:.4rem;justify-content:center}.loyalty-empty{align-items:center;background:#fafafa;border:1px dashed var(--line-strong);border-radius:14px;color:var(--muted);display:grid;justify-items:center;padding:2rem 1rem;text-align:center}.loyalty-empty strong{color:var(--text)}.loyalty-empty p{margin:0}.loyalty-mode-grid{border-top:1px solid var(--line-strong);display:grid}.loyalty-mode-card{align-items:flex-start;background:transparent;border:0;border-bottom:1px solid var(--line-strong);border-radius:0;box-shadow:none;color:var(--text);display:grid;grid-gap:.75rem;gap:.75rem;grid-template-columns:auto minmax(0,1fr);min-height:88px;padding:1rem .25rem;text-align:left;width:100%}.loyalty-mode-card.selected{background:transparent;border-color:var(--line-strong);box-shadow:none}.loyalty-mode-card.selected strong,.loyalty-mode-card:hover:not(:disabled) strong{color:var(--accent-strong)}.mode-radio{align-items:center;border:2px solid var(--line-strong);border-radius:50%;display:inline-flex;height:22px;justify-content:center;width:22px}.selected .mode-radio{background:var(--accent);border-color:var(--accent);color:#fff}.loyalty-impact,.loyalty-note{border-left:3px solid var(--accent);color:var(--text);font-size:.86rem;line-height:1.5;padding:.35rem 0 .35rem .9rem}.loyalty-impact{border-left-color:var(--warn)}.loyalty-print-row{align-items:center;border-top:1px solid var(--line-strong);display:flex;gap:1rem;justify-content:space-between;padding-top:1.25rem}.loyalty-print-row p{margin:.3rem 0 0}.button.disabled{opacity:.46;pointer-events:none}.loyalty-journey-add{display:grid;grid-gap:.6rem;gap:.6rem;grid-template-columns:minmax(0,1fr) auto}.journey-preview{align-items:center;background:linear-gradient(135deg,#171717,#343434);border-radius:16px;color:#fff;display:flex;gap:1rem;padding:1rem}.journey-preview-icon{align-items:center;background:rgba(255,255,255,.12);border-radius:12px;display:inline-flex;height:58px;justify-content:center;overflow:hidden;width:58px}.journey-preview-icon img{height:100%;object-fit:cover;width:100%}.journey-preview div:last-child{display:grid;grid-gap:.2rem;gap:.2rem}.journey-preview .eyebrow,.journey-preview p{color:rgba(255,255,255,.7);margin:0}.loyalty-feedback,.loyalty-operation{align-items:center;border-radius:10px;display:flex;gap:.55rem;padding:.8rem 1rem}.loyalty-feedback.error{background:#fef2f2;color:#b91c1c}.loyalty-feedback.success{background:var(--success-soft);color:#166534}.loyalty-operation{background:#f8fafc;color:var(--muted)}.spinner{animation:loyalty-spin .8s linear infinite;border-radius:50%;border:2px solid var(--line-strong);border-top-color:var(--accent);height:18px;width:18px}@keyframes loyalty-spin{to{transform:rotate(1turn)}}.loyalty-save-bar{align-items:center;background:rgba(255,255,255,.96);border-top:1px solid var(--line-strong);bottom:0;box-shadow:0 -10px 30px rgba(15,23,42,.08);display:flex;font-size:.86rem;font-weight:700;gap:1rem;justify-content:space-between;padding:.85rem 0;position:-webkit-sticky;position:sticky;z-index:20}.modal-backdrop{align-items:center;background:rgba(15,23,42,.54);display:flex;inset:0;justify-content:center;padding:1rem;position:fixed;z-index:100}.editor-modal{background:#fff;border-radius:16px;box-shadow:0 24px 80px rgba(15,23,42,.3);max-height:calc(100vh - 2rem);max-width:520px;overflow:auto;width:100%}.editor-modal header{align-items:center;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;padding:1rem 1.2rem}.editor-modal h2{font-size:1.1rem;margin:0}.editor-modal-body{display:grid;grid-gap:1rem;gap:1rem;padding:1.2rem}.editor-modal-actions{border-top:1px solid var(--line);display:flex;gap:.6rem;justify-content:flex-end;margin-inline:-1.2rem;padding:1rem 1.2rem 0}.reward-editor-image{align-items:center;background:#fafafa;border:1px dashed var(--line-strong);border-radius:12px;display:grid;grid-gap:1rem;gap:1rem;grid-template-columns:84px minmax(0,1fr);padding:.8rem}.reward-editor-image>img,.reward-editor-image>svg{align-items:center;background:var(--accent-soft);border-radius:10px;color:var(--accent);display:flex;height:84px;justify-content:center;object-fit:cover;width:84px}.reward-editor-image>div{align-items:flex-start;display:flex;flex-direction:column;gap:.45rem}.reward-file-button{cursor:pointer}.reward-file-button input{display:none}.reward-editor-image small{color:var(--muted)}@media (max-width:1100px){.loyalty-hero-grid{align-items:start;grid-template-columns:1fr}}@media (max-width:760px){.loyalty-section{gap:1.5rem;grid-template-columns:1fr}.loyalty-resource{align-items:center;grid-template-areas:"grip copy" ". actions";grid-template-columns:20px minmax(0,1fr);padding-block:1rem}.loyalty-resource.with-image{grid-template-areas:"grip image copy" ". . actions";grid-template-columns:20px 46px minmax(0,1fr)}.resource-actions{justify-content:flex-end;margin-top:.25rem}.loyalty-field{align-items:stretch;grid-template-columns:1fr}.loyalty-print-row,.loyalty-save-bar{align-items:stretch;flex-direction:column}.loyalty-print-row .button,.loyalty-save-bar button{flex:1 1}.loyalty-journey-add{grid-template-columns:1fr}}.customer-open-button{font-size:.78rem;min-height:32px;white-space:nowrap}.customer-detail-layout{display:grid;grid-gap:1rem;gap:1rem;margin:0 auto;max-width:1040px}.customer-profile-card .panel-body{display:grid;grid-gap:1.2rem;gap:1.2rem}.customer-profile-heading{align-items:center;display:flex;gap:1rem}.customer-profile-heading h2{font-size:clamp(1.3rem,3vw,1.8rem);margin:.2rem 0}.customer-avatar{align-items:center;background:var(--accent);border-radius:16px;color:#fff;display:inline-flex;flex:0 0 auto;font-size:1.5rem;font-weight:900;height:64px;justify-content:center;width:64px}.customer-profile-meta{align-items:center;color:var(--muted);display:flex;flex-wrap:wrap;font-size:.84rem;gap:.75rem 1rem}.customer-profile-meta>span{align-items:center;display:inline-flex;gap:.35rem}.customer-stat-grid{display:grid;grid-gap:.75rem;gap:.75rem;grid-template-columns:repeat(4,minmax(0,1fr))}.customer-profile-actions{display:flex;flex-wrap:wrap;gap:.6rem}.action-primary-grid button,.action-undo,.customer-profile-actions button,.manual-action-links button{align-items:center;display:inline-flex;gap:.45rem;justify-content:center}.customer-action-header{align-items:center}.action-program,.customer-action-body{display:grid;grid-gap:1rem;gap:1rem}.action-segments{background:#f1f5f9;border-radius:12px;display:grid;grid-gap:.3rem;gap:.3rem;grid-template-columns:repeat(2,minmax(0,1fr));padding:.3rem}.action-segments button{align-items:center;background:transparent;border:0;box-shadow:none;color:var(--muted);display:inline-flex;gap:.4rem;justify-content:center;min-height:42px}.action-segments button.selected{background:#fff;box-shadow:0 2px 8px rgba(15,23,42,.08);color:var(--accent)}.action-segments.compact{max-width:420px}.action-balance-row{align-items:center;display:flex;justify-content:space-between}.action-balance-row>div{display:grid;grid-gap:.15rem;gap:.15rem}.action-balance-row span{color:var(--muted);font-size:.8rem}.action-balance-row strong{font-size:1.35rem}.action-primary-grid{display:grid;grid-gap:.75rem;gap:.75rem;grid-template-columns:repeat(2,minmax(0,1fr))}.points-add-panel,.reward-picker{display:grid;grid-gap:1rem;gap:1rem}.preset-award-row{align-items:end;display:grid;grid-gap:.65rem;gap:.65rem;grid-template-columns:minmax(180px,1fr) 100px auto}.preset-award-row button{align-items:center;display:inline-flex;gap:.4rem;justify-content:center;min-height:44px}.manual-action-links{display:flex;flex-wrap:wrap;gap:.6rem}.reward-quick-grid{display:grid;grid-gap:.75rem;gap:.75rem;grid-template-columns:repeat(3,minmax(0,1fr))}.reward-action-card,.reward-view-all{align-items:center;background:#fff;border:1px solid var(--line-strong);border-radius:13px;box-shadow:none;color:var(--text);display:grid;grid-gap:.75rem;gap:.75rem;grid-template-columns:auto minmax(0,1fr);min-height:78px;padding:.7rem;text-align:left}.reward-action-card:hover:not(:disabled),.reward-view-all:hover:not(:disabled){border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.reward-action-card>span:last-child,.reward-view-all{display:grid;grid-gap:.2rem;gap:.2rem}.reward-action-card small,.reward-view-all small{color:var(--muted)}.reward-action-image{background:var(--accent-soft);border-radius:10px;height:52px;object-fit:cover;width:52px}.reward-action-image.placeholder{align-items:center;color:var(--accent);display:inline-flex;justify-content:center}.reward-view-all{justify-content:center;text-align:center}.action-empty{background:#fafafa;border:1px dashed var(--line-strong);border-radius:12px;color:var(--muted);gap:.6rem;justify-content:center;padding:1.2rem}.action-empty,.action-error{align-items:center;display:flex}.action-error{background:#fef2f2;border-radius:10px;color:#b91c1c;gap:.75rem;justify-content:space-between;padding:.75rem .9rem}.action-error .secondary{flex:0 0 auto}.reward-confirm-modal .editor-modal-body{text-align:center}.reward-confirm-modal .reward-action-image{height:120px;margin:auto;width:120px}.rewards-all-modal{max-width:680px}.rewards-all-list{display:grid;grid-gap:.7rem;gap:.7rem;grid-template-columns:repeat(2,minmax(0,1fr))}.reissue-result{display:grid;grid-gap:.8rem;gap:.8rem;justify-items:center;text-align:center}.reissue-result>img{height:auto;max-width:240px;width:100%}.customer-history-panel .panel-header>svg{color:var(--muted)}.customer-history-panel .panel-body{padding-block:0}.customer-history-row{align-items:center;border-bottom:1px solid var(--line);display:grid;grid-gap:.75rem;gap:.75rem;grid-template-columns:auto minmax(0,1fr) auto;min-height:74px;padding-block:.75rem}.customer-history-row:last-child{border-bottom:0}.history-icon{align-items:center;background:var(--accent-soft);border-radius:9px;color:var(--accent);display:inline-flex;height:36px;justify-content:center;width:36px}.customer-history-row p{margin:.2rem 0 0}.customer-history-row time{color:var(--muted);font-size:.78rem;text-align:right}@media (max-width:760px){.action-primary-grid,.customer-stat-grid,.reward-quick-grid,.rewards-all-list{grid-template-columns:repeat(2,minmax(0,1fr))}.preset-award-row{grid-template-columns:minmax(0,1fr) 90px}.preset-award-row button{grid-column:1/-1}.customer-history-row{grid-template-columns:auto minmax(0,1fr)}.customer-history-row time{grid-column:2;text-align:left}}@media (max-width:480px){.customer-profile-heading{align-items:flex-start}.action-primary-grid,.customer-stat-grid,.reward-quick-grid,.rewards-all-list{grid-template-columns:1fr}.customer-action-header{align-items:stretch;flex-direction:column}}