* { box-sizing: border-box; }
:root { --team: #145a3a; --accent: #bcd038; }
.team-azul { --team: #075ea8; --accent: #72d6ff; }
.team-verde { --team: #145a3a; --accent: #bcd038; }
body { margin: 0; min-height: 100vh; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: #fff; background: #07150f; }
.page { min-height: 100vh; display: grid; grid-template-rows: auto 1fr auto; position: relative; overflow: hidden; background: radial-gradient(circle at 82% 15%, color-mix(in srgb, var(--accent) 38%, transparent), transparent 35%), linear-gradient(145deg, var(--team), #07150f 78%); }
.page::before { content: ""; position: absolute; width: 24rem; height: 24rem; border: 1px solid rgba(255,255,255,.16); border-radius: 50%; right: -10rem; top: 28%; box-shadow: 0 0 0 4rem rgba(255,255,255,.025), 0 0 0 9rem rgba(255,255,255,.018); }
header, main, footer { position: relative; z-index: 1; width: min(100% - 2rem, 68rem); margin-inline: auto; }
header { display: flex; align-items: center; justify-content: space-between; padding: 1.25rem 0; }
header img { width: 7rem; height: auto; }
.badge { border: 1px solid rgba(255,255,255,.25); border-radius: 999px; padding: .55rem .8rem; font-size: .72rem; font-weight: 800; letter-spacing: .12em; }
main { display: grid; align-content: center; gap: 2rem; padding: 2rem 0 4rem; }
.eyebrow { margin:0 0 .9rem; color:var(--accent); font-size:.8rem; font-weight:900; line-height:1.5; letter-spacing:.18em; text-transform:uppercase; }
h1 { max-width: 780px; margin: 0; font-size: clamp(3.4rem, 12vw, 8.5rem); line-height: .82; letter-spacing: -.07em; text-transform: uppercase; }
.message { max-width: 38rem; margin: 1.5rem 0 0; font-size: clamp(1.08rem, 3vw, 1.45rem); line-height: 1.5; color: rgba(255,255,255,.78); }
.scoreboard { width: min(100%, 38rem); padding: 1.25rem; border: 1px solid rgba(255,255,255,.18); border-radius: 1.5rem; background: rgba(7,21,15,.38); backdrop-filter: blur(14px); }
.scoreboard-head { display: flex; justify-content: space-between; gap: 1rem; align-items: end; margin-bottom: .9rem; }
.scoreboard small { display: block; margin-bottom: .2rem; color: rgba(255,255,255,.62); font-size: .69rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.scoreboard strong { font-size: 1.7rem; }
.scoreboard-head > strong { color: var(--accent); }
.bar { display: block; width: 100%; height: .65rem; overflow: hidden; border: 0; border-radius: 999px; background: rgba(255,255,255,.13); }
.bar::-webkit-progress-bar { border-radius: inherit; background: rgba(255,255,255,.13); }
.bar::-webkit-progress-value { border-radius: inherit; background: var(--accent); }
.bar::-moz-progress-bar { border-radius: inherit; background: var(--accent); }
.score-detail { display: flex; justify-content: space-between; margin-top: .75rem; font-size: .82rem; color: rgba(255,255,255,.68); }
footer { display: flex; justify-content: space-between; gap: 1rem; padding: 1.25rem 0; border-top: 1px solid rgba(255,255,255,.12); color: rgba(255,255,255,.58); font-size: .75rem; }
@media (max-width: 560px) { header img { width: 5.7rem; } footer { flex-direction: column; } .scoreboard { border-radius: 1.2rem; } }

/* Portal de participantes e lojas parceiras */
.portal-body { --team:#145a3a; --accent:#bcd038; min-height: 100vh; color: #fff; background: #07150f; }
.portal-body.team-azul { --team:#075ea8; --accent:#72d6ff; }
.portal-body.team-verde { --team:#145a3a; --accent:#bcd038; }
.portal-page { position: relative; min-height: 100vh; overflow: hidden; background: radial-gradient(circle at 85% 8%, color-mix(in srgb,var(--accent) 32%,transparent),transparent 28rem), linear-gradient(145deg,var(--team),#07150f 76%); }
.portal-page::before { content:""; position:fixed; z-index:0; top:18rem; right:-14rem; width:30rem; height:30rem; border:1px solid rgba(255,255,255,.11); border-radius:50%; box-shadow:0 0 0 5rem rgba(255,255,255,.018),0 0 0 11rem rgba(255,255,255,.012); pointer-events:none; }
.portal-header,.portal-page main,.portal-footer,.portal-alert { position:relative; z-index:1; width:min(calc(100% - 2rem),74rem); margin-inline:auto; }
.portal-header { display:flex; padding:1.15rem 0; align-items:center; justify-content:space-between; gap:1rem; }
.portal-header img { display:block; width:7.2rem; height:auto; }
.portal-header-actions { display:flex; align-items:center; gap:.75rem; }
.portal-header-actions form { margin:0; }
.link-button { border:0; padding:.55rem .75rem; background:transparent; color:#fff; cursor:pointer; font:750 .76rem inherit; }
.portal-alert { display:grid; margin-block:.5rem 1rem; padding:.85rem 1rem; grid-template-columns:auto 1fr; gap:.3rem .75rem; border:1px solid rgba(255,255,255,.2); border-radius:1rem; background:rgba(7,21,15,.58); backdrop-filter:blur(16px); }
.portal-alert strong { color:var(--accent); }
.portal-alert-error strong { color:#ffb8ae; }
.portal-alert span { color:rgba(255,255,255,.82); }
.auth-shell { display:grid!important; min-height:calc(100vh - 9rem); padding:2.5rem 0 5rem!important; grid-template-columns:minmax(0,1fr) minmax(22rem,31rem); align-items:center!important; gap:clamp(2.5rem,7vw,7rem)!important; }
.auth-intro h1 { max-width:48rem; font-size:clamp(3.8rem,9vw,7.8rem); }
.auth-benefits { display:grid; max-width:36rem; margin-top:2.2rem; gap:.6rem; }
.auth-benefits span { display:flex; padding:.75rem 0; align-items:center; gap:.8rem; border-bottom:1px solid rgba(255,255,255,.13); color:rgba(255,255,255,.82); }
.auth-benefits b { color:var(--accent); font-size:.72rem; letter-spacing:.08em; }
.auth-panel { padding:clamp(1.4rem,4vw,2.2rem); border:1px solid rgba(255,255,255,.7); border-radius:2rem; background:rgba(255,255,255,.94); color:#14241b; box-shadow:0 30px 90px rgba(0,0,0,.24); backdrop-filter:blur(24px); }
.auth-tabs { display:grid; margin-bottom:2rem; padding:.25rem; grid-template-columns:1fr 1fr; border-radius:.9rem; background:#eaf0ec; }
.auth-tabs a { padding:.72rem .5rem; border-radius:.72rem; color:#65736b; font-size:.78rem; font-weight:800; text-align:center; }
.auth-tabs a.is-active { background:#fff; color:#14241b; box-shadow:0 5px 15px rgba(13,42,27,.08); }
.auth-heading { margin-bottom:1.4rem; }
.auth-heading .eyebrow,.partner-card .eyebrow,.portal-section-heading .eyebrow,.partner-welcome .eyebrow { color:#497a61; }
.auth-heading h2,.partner-card h2,.portal-section-heading h2 { margin:.15rem 0 .7rem; color:#14241b; font-size:clamp(1.65rem,4vw,2.4rem); line-height:1.16; letter-spacing:-.04em; }
.auth-heading p { margin:0; color:#69766f; line-height:1.65; }
.portal-form { display:grid; gap:1rem; }
.portal-form label,.partner-card label { display:grid; gap:.45rem; color:#2c4135; font-size:.75rem; font-weight:800; line-height:1.45; }
.portal-form input,.partner-card input,.partner-card select,.partner-card textarea { width:100%; border:1px solid #ccd8d1; border-radius:.85rem; padding:.78rem .9rem; outline:0; background:#fff; color:#14241b; font:inherit; }
.portal-form input:focus,.partner-card input:focus,.partner-card select:focus,.partner-card textarea:focus { border-color:#568a70; box-shadow:0 0 0 3px rgba(86,138,112,.14); }
.portal-form small,.partner-card small { color:#758078; font-size:.66rem; font-weight:500; }
.consent-field { display:grid!important; grid-template-columns:auto 1fr; align-items:start; gap:.65rem!important; font-weight:500!important; line-height:1.45; }
.consent-field input { width:auto; margin-top:.18rem; }
.portal-button,.secondary-button { border:0; border-radius:.9rem; padding:.88rem 1rem; cursor:pointer; font:850 .78rem inherit; }
.portal-button { background:var(--team); color:#fff; box-shadow:0 9px 24px color-mix(in srgb,var(--team) 25%,transparent); }
.portal-button:hover { filter:brightness(1.08); }
.secondary-button { border:1px solid #c8d5ce; background:#fff; color:#284535; }
.partner-access-link { display:block; margin-top:1.25rem; color:#426e58; font-size:.76rem; font-weight:800; text-align:center; }
.member-shell { display:block!important; padding:3.5rem 0 6rem!important; }
.member-hero { display:grid; margin-bottom:5rem; grid-template-columns:minmax(0,1.2fr) minmax(20rem,.8fr); align-items:end; gap:3rem; }
.member-hero h1 { font-size:clamp(3.5rem,8vw,7.2rem); }
.member-hero .scoreboard { justify-self:end; }
.offers-section { scroll-margin-top:1rem; }
.portal-section-heading { display:flex; margin-bottom:1.4rem; align-items:flex-end; justify-content:space-between; gap:1rem; }
.portal-section-heading h2 { color:#fff; font-size:clamp(2rem,5vw,3.6rem); }
.portal-section-heading > span { padding:.55rem .8rem; border:1px solid rgba(255,255,255,.18); border-radius:99px; color:rgba(255,255,255,.72); font-size:.72rem; }
.nearby-toolbar { display:flex; margin:-.2rem 0 1.2rem; padding:1rem 1.1rem; align-items:center; justify-content:space-between; gap:1rem; border:1px solid rgba(255,255,255,.18); border-radius:1rem; background:rgba(7,21,15,.3); }
.nearby-toolbar strong,.nearby-toolbar span { display:block; }
.nearby-toolbar strong { font-size:.9rem; }
.nearby-toolbar span { margin-top:.2rem; color:rgba(255,255,255,.64); font-size:.7rem; }
.nearby-button,.location-button { border:1px solid color-mix(in srgb,var(--accent) 65%,#fff); border-radius:.8rem; padding:.72rem .9rem; background:var(--accent); color:#173624; cursor:pointer; font:850 .72rem inherit; }
.nearby-button:disabled,.location-button:disabled { cursor:wait; opacity:.65; }
.voucher-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.voucher-card { overflow:hidden; border:1px solid rgba(255,255,255,.72); border-radius:1.6rem; background:rgba(255,255,255,.95); color:#14241b; box-shadow:0 20px 50px rgba(0,0,0,.14); }
.voucher-card > img,.voucher-placeholder { display:block; width:100%; height:15rem; object-fit:cover; }
.voucher-placeholder { display:grid; place-items:center; background:linear-gradient(135deg,var(--accent),#fff); color:var(--team); font-size:5rem; font-weight:950; }
.voucher-card-body { padding:1.2rem; }
.voucher-partner { display:flex; margin-bottom:1.1rem; align-items:center; gap:.55rem; color:#5f6f66; }
.voucher-partner > span { display:grid; width:2rem; height:2rem; place-items:center; border-radius:.65rem; background:#e5eee9; color:#28533c; font-size:.66rem; font-weight:900; }
.voucher-partner small { font-weight:750; }
.voucher-location { display:grid; margin:-.35rem 0 .9rem; gap:.18rem; }
.voucher-location span { overflow:hidden; color:#52645a; font-size:.68rem; font-weight:780; text-overflow:ellipsis; white-space:nowrap; }
.voucher-location strong { color:#2f7250; font-size:.7rem; }
.discount-label { display:inline-block; padding:.38rem .6rem; border-radius:.55rem; background:color-mix(in srgb,var(--accent) 55%,#fff); color:#173624; font-size:.74rem; }
.voucher-card h3 { margin:.7rem 0 .2rem; font-size:1.45rem; letter-spacing:-.035em; }
.voucher-card p { color:#647169; line-height:1.5; }
.voucher-card .product-name { margin:.25rem 0; color:#263e31; font-weight:800; }
.voucher-validity { display:block; margin:1rem 0; color:#738079; }
.voucher-card form { margin-top:1rem; }
.voucher-card .portal-button { width:100%; }
.issued-code { margin-top:1rem; padding:.85rem; border:1px dashed #7da48f; border-radius:.9rem; background:#edf5f0; text-align:center; }
.issued-code small,.issued-code strong { display:block; }
.issued-code small { color:#688076; font-size:.62rem; font-weight:850; letter-spacing:.1em; }
.issued-code strong { margin-top:.25rem; color:#1d5334; font-size:1.2rem; letter-spacing:.08em; }
.issued-code.is-used { border-color:#c9cfcc; background:#f1f2f1; }
.issued-code.is-used strong { color:#7a817d; text-decoration:line-through; }
.voucher-card details { margin-top:.9rem; color:#657169; font-size:.75rem; }
.voucher-card summary { cursor:pointer; font-weight:800; }
.empty-offers { grid-column:1/-1; padding:2.5rem; border:1px dashed rgba(255,255,255,.25); border-radius:1.3rem; color:rgba(255,255,255,.8); text-align:center; }
.empty-offers p { margin:.35rem 0 0; color:inherit; }
.portal-footer { display:flex; padding:1.25rem 0; align-items:center; justify-content:space-between; gap:1rem; border-top:1px solid rgba(255,255,255,.12); color:rgba(255,255,255,.58); font-size:.75rem; }
.portal-footer a { color:rgba(255,255,255,.8); }

/* Abertura compartilhada dos QR Codes dos times */
.qr-welcome { display:block!important; width:min(calc(100% - 2rem),64rem)!important; padding:clamp(2.2rem,7vw,5.5rem) 0 4rem!important; text-align:center; }
.qr-welcome-copy { width:min(100%,58rem); margin-inline:auto; }
.qr-welcome-logo { display:block; width:clamp(9rem,24vw,13rem); height:auto; margin:0 auto 1.35rem; }
.qr-welcome-copy .eyebrow { margin:.85rem 0 .75rem; }
.qr-welcome-copy h1 { max-width:52rem; margin-inline:auto; font-size:clamp(2.55rem,7vw,5.2rem); line-height:.96; letter-spacing:-.055em; text-transform:none; }
.qr-welcome-text { display:grid; max-width:47rem; margin:1.35rem auto 0; gap:.7rem; color:rgba(255,255,255,.8); font-size:clamp(.95rem,2vw,1.08rem); line-height:1.68; }
.qr-welcome-text p { margin:0; }
.qr-welcome-text strong { color:#fff; }
.qr-welcome-actions { display:flex; margin-top:2rem; justify-content:center; flex-wrap:wrap; gap:.8rem; }
.qr-welcome-actions .partner-primary-action,.qr-welcome-actions .partner-secondary-action { min-width:12rem; }
.qr-welcome-partners { margin-top:clamp(3.5rem,8vw,6rem); padding-top:clamp(2.2rem,5vw,3.5rem); border-top:1px solid rgba(255,255,255,.14); }
.qr-welcome-partners-heading small { color:var(--accent); font-size:.68rem; font-weight:900; letter-spacing:.16em; }
.qr-welcome-partners-heading h2 { margin:.45rem 0 0; font-size:clamp(1.9rem,5vw,3.2rem); line-height:1.05; letter-spacing:-.045em; }
.qr-welcome-partners-heading p { margin:.65rem 0 0; color:rgba(255,255,255,.64); font-size:.84rem; }
.qr-welcome-partner-grid { display:grid; margin-top:1.7rem; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.85rem; }
@media (min-width:980px) { .qr-welcome-partner-grid { grid-template-columns:repeat(4,minmax(0,1fr)); } }
.qr-welcome-partner-card { display:grid; min-width:0; padding:.35rem; gap:.55rem; border:0; border-radius:0; background:transparent; color:#fff; box-shadow:none; text-decoration:none; transition:transform .18s ease,opacity .18s ease; }
a.qr-welcome-partner-card:hover { transform:translateY(-3px); opacity:.88; }
.qr-welcome-partner-logo { display:grid; width:100%; min-height:7.5rem; padding:.4rem; place-items:center; overflow:visible; border-radius:0; background:transparent !important; }
.qr-welcome-partner-logo img { display:block; width:auto; max-width:100%; height:auto; max-height:7.5rem; object-fit:contain; }
.qr-welcome-partner-logo strong { color:var(--team); font-size:1.7rem; letter-spacing:-.04em; }
.qr-welcome-partner-name { overflow-wrap:anywhere; color:#fff; font-size:.95rem; line-height:1.35; }
.qr-welcome-partner-card small { color:var(--accent); font-size:.66rem; font-weight:850; }
.qr-welcome-partner-card.is-static small { color:rgba(255,255,255,.55); }
.qr-welcome .empty-partners { border-color:rgba(255,255,255,.24); background:rgba(255,255,255,.08); color:rgba(255,255,255,.76); }
.qr-team-badge { display:inline-flex; padding:.42rem .72rem; align-items:center; border:1px solid color-mix(in srgb,var(--accent) 60%,#fff); border-radius:999px; background:color-mix(in srgb,var(--team) 72%,transparent); color:#fff; font-size:.62rem; font-weight:950; letter-spacing:.12em; box-shadow:0 7px 22px rgba(0,0,0,.16); }
.qr-team-message { max-width:43rem; margin:.85rem auto 0; color:rgba(255,255,255,.72); font-size:.78rem; line-height:1.55; }
.qr-team-message strong { color:var(--accent); }
.qr-locked-benefits { display:grid; max-width:54rem; margin:1.55rem auto 0; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.65rem; }
.qr-locked-benefits article { display:grid; min-width:0; padding:.85rem .9rem; grid-template-columns:2.6rem minmax(0,1fr) auto; align-items:center; gap:.7rem; border:1px solid rgba(255,255,255,.17); border-radius:1rem; background:rgba(5,22,14,.3); text-align:left; backdrop-filter:blur(12px); }
.qr-locked-benefits article>span { display:grid; width:2.6rem; height:2.6rem; place-items:center; border-radius:.75rem; background:color-mix(in srgb,var(--accent) 22%,transparent); color:var(--accent); font-size:1.15rem; font-weight:950; }
.qr-locked-benefits article div,.qr-locked-benefits small,.qr-locked-benefits strong { display:block; min-width:0; }
.qr-locked-benefits small { color:var(--accent); font-size:.5rem; font-weight:950; letter-spacing:.1em; }
.qr-locked-benefits strong { margin-top:.16rem; overflow-wrap:anywhere; color:#fff; font-size:.76rem; }
.qr-locked-benefits article>b { opacity:.65; font-size:.74rem; }
.qr-welcome-actions .qr-register-primary { min-width:min(100%,21rem); padding:1.05rem 1.55rem; font-size:.88rem; box-shadow:0 16px 38px color-mix(in srgb,var(--accent) 20%,rgba(0,0,0,.35)); }
.qr-registration-note { max-width:42rem; margin:.85rem auto 0; color:rgba(255,255,255,.62); font-size:.66rem; line-height:1.5; }
.qr-access-steps { display:grid; max-width:52rem; margin:2.15rem auto 0; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.65rem; text-align:left; }
.qr-access-steps>span { position:relative; display:grid; min-height:6.3rem; padding:1rem 1rem 1rem 3.55rem; align-content:center; border-top:1px solid rgba(255,255,255,.2); }
.qr-access-steps b { position:absolute; top:1rem; left:.5rem; display:grid; width:2.25rem; height:2.25rem; place-items:center; border-radius:50%; background:var(--accent); color:#17351f; font-size:.72rem; }
.qr-access-steps strong,.qr-access-steps small { display:block; }
.qr-access-steps strong { color:#fff; font-size:.78rem; }
.qr-access-steps small { margin-top:.3rem; color:rgba(255,255,255,.62); font-size:.66rem; line-height:1.45; }

/* Painel da loja */
.partner-body { --team:#143d2a; --accent:#ddfb78; }
.partner-landing { display:grid!important; min-height:100vh; padding:clamp(2rem,6vw,5rem) 0!important; place-items:center; text-align:center; }
.partner-landing-card { width:min(100%,58rem); }
.partner-landing-logo { display:block; width:clamp(9rem,24vw,14rem); height:auto; margin:0 auto 2rem; }
.partner-landing-card h1 { max-width:54rem; margin-inline:auto; font-size:clamp(2.7rem,8vw,6rem); line-height:.95; letter-spacing:-.06em; text-transform:none; }
.partner-landing-card > p:not(.eyebrow) { max-width:42rem; margin:1.35rem auto 0; color:rgba(255,255,255,.78); font-size:clamp(1rem,2.3vw,1.25rem); line-height:1.7; }
.partner-landing-actions { display:flex; margin-top:2rem; justify-content:center; flex-wrap:wrap; gap:.8rem; }
.partner-primary-action,.partner-secondary-action { min-width:11.5rem; border-radius:999px; padding:1rem 1.4rem; cursor:pointer; font:850 .82rem inherit; }
.partner-primary-action { border:1px solid var(--accent); background:var(--accent); color:#17351f; box-shadow:0 14px 34px rgba(0,0,0,.2); }
.partner-secondary-action { border:1px solid rgba(255,255,255,.38); background:rgba(255,255,255,.08); color:#fff; backdrop-filter:blur(12px); }
.partner-landing-flow { display:grid; max-width:48rem; margin:3rem auto 0; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.6rem; }
.partner-landing-flow span { display:flex; min-height:4.3rem; padding:.85rem; align-items:center; gap:.65rem; border:1px solid rgba(255,255,255,.14); border-radius:1rem; background:rgba(7,21,15,.25); color:rgba(255,255,255,.78); font-size:.76rem; text-align:left; }
.partner-landing-flow b { color:var(--accent); font-size:.66rem; letter-spacing:.08em; }
.partner-auth-dialog { width:min(calc(100% - 1.5rem),42rem); max-height:min(90vh,52rem); margin:auto; padding:clamp(1.4rem,4vw,2.2rem); overflow:auto; border:1px solid rgba(255,255,255,.8); border-radius:1.7rem; background:#f8fbf9; color:#14241b; box-shadow:0 32px 100px rgba(0,0,0,.45); }
.partner-auth-dialog::backdrop { background:rgba(2,13,8,.76); backdrop-filter:blur(8px); }
.partner-login-dialog { width:min(calc(100% - 1.5rem),31rem); }
.partner-dialog-close { position:absolute; top:.85rem; right:.9rem; width:2.4rem; height:2.4rem; border:1px solid #d7e0db; border-radius:50%; background:#fff; color:#385346; cursor:pointer; font-size:1.35rem; line-height:1; }
.partner-auth-dialog .auth-heading { padding-right:2.5rem; }
.partner-auth-dialog[open] { animation:partner-dialog-in .2s ease-out; }
@keyframes partner-dialog-in { from { opacity:0; transform:translateY(12px) scale(.98); } to { opacity:1; transform:none; } }
.partner-auth-shell { grid-template-columns:minmax(0,1fr) minmax(23rem,32rem); }
.team-shortcuts { display:flex; margin-top:1.5rem; gap:.6rem; }
.team-shortcuts a { padding:.65rem .9rem; border:1px solid rgba(255,255,255,.2); border-radius:.8rem; color:#fff; font-size:.75rem; font-weight:800; }
.partner-dashboard { display:block!important; padding:3rem 0 6rem!important; }
.partner-welcome { display:flex; margin-bottom:2.5rem; align-items:flex-end; justify-content:space-between; gap:2rem; }
.partner-welcome h1 { font-size:clamp(2.8rem,7vw,5.5rem); text-transform:none; }
.partner-welcome p { max-width:35rem; color:rgba(255,255,255,.72); }
.partner-metrics { display:grid; grid-template-columns:repeat(4,1fr); gap:.6rem; }
.partner-metrics span { min-width:8.3rem; padding:1rem; border:1px solid rgba(255,255,255,.17); border-radius:1rem; background:rgba(7,21,15,.32); }
.partner-metrics small,.partner-metrics strong { display:block; }
.partner-metrics small { color:rgba(255,255,255,.6); font-size:.58rem; font-weight:850; letter-spacing:.08em; }
.partner-metrics strong { margin-top:.25rem; color:var(--accent); font-size:1.7rem; }
.partner-tools-grid { display:grid; margin-bottom:4rem; grid-template-columns:minmax(0,1.35fr) minmax(19rem,.65fr); align-items:start; gap:1rem; }
.partner-card { padding:clamp(1.3rem,3vw,2rem); border:1px solid rgba(255,255,255,.75); border-radius:1.6rem; background:rgba(255,255,255,.95); color:#14241b; box-shadow:0 22px 60px rgba(0,0,0,.15); }
.partner-unit-grid { display:grid; margin-bottom:1rem; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; }
.partner-unit-card { display:grid; min-width:0; padding:1rem; grid-template-columns:2.7rem minmax(0,1fr); gap:.85rem; border:1px solid rgba(255,255,255,.72); border-radius:1.1rem; background:rgba(255,255,255,.95); color:#14241b; }
.partner-unit-card > span { display:grid; width:2.7rem; height:2.7rem; place-items:center; border-radius:.85rem; background:#e4f0e9; color:#28543c; font-weight:900; }
.partner-unit-card strong,.partner-unit-card small { display:block; overflow-wrap:anywhere; }
.partner-unit-card small { margin:.18rem 0 .35rem; color:#4f735f; font-size:.65rem; font-weight:850; }
.partner-unit-card p { margin:0; color:#6a7770; font-size:.72rem; line-height:1.5; }
.partner-add-unit { margin-top:1rem; }
.partner-add-unit > summary { cursor:pointer; color:#2c5940; font-weight:850; list-style-position:inside; }
.partner-add-unit[open] > summary { margin-bottom:1.2rem; }
.portal-button:disabled { opacity:.55; cursor:not-allowed; box-shadow:none; }
.location-fields { display:grid; margin:.3rem 0; padding:1rem; gap:.85rem; border:1px solid #d2ddd6; border-radius:1rem; }
.location-fields legend { padding:0 .45rem; color:#365643; font-size:.7rem; font-weight:850; }
.location-status { margin:0; color:#6f7d75; font-size:.68rem; line-height:1.45; }
.store-location-card { display:grid; margin-bottom:1rem; grid-template-columns:minmax(15rem,.55fr) minmax(0,1.45fr); align-items:start; gap:1.5rem; scroll-margin-top:1rem; }
.store-location-card.needs-location { border-color:#efc58d; background:#fff9ef; }
.store-location-copy h2 { margin:.15rem 0 .45rem; color:#14241b; font-size:clamp(1.6rem,4vw,2.6rem); overflow-wrap:anywhere; }
.store-location-copy > p:last-child { margin:0; color:#65736b; line-height:1.5; }
.store-location-form { display:grid; gap:.8rem; }
.store-location-form label { display:grid; gap:.35rem; color:#2c4135; font-size:.72rem; font-weight:800; }
.store-location-form input { width:100%; border:1px solid #ccd8d1; border-radius:.8rem; padding:.72rem .8rem; outline:0; background:#fff; color:#14241b; font:inherit; }
.store-location-form input:focus { border-color:#568a70; box-shadow:0 0 0 3px rgba(86,138,112,.14); }
.location-actions { display:flex; align-items:center; justify-content:flex-end; gap:.6rem; }
.partner-offer-form { display:grid; gap:1rem; }
.partner-card .portal-section-heading { margin:0; }
.partner-card .portal-section-heading h2 { color:#14241b; }
.form-two { display:grid; grid-template-columns:1fr 1fr; gap:.8rem; }
.partner-side-tools { display:grid; gap:1rem; }
.validate-card p { color:#69766f; line-height:1.5; }
.validate-card label { margin:1rem 0; }
.validate-card .portal-button { width:100%; }
.partner-help ol { display:grid; margin:1rem 0 0; padding-left:1.2rem; gap:.65rem; color:#5f6e66; }
.partner-list-section { margin-bottom:4rem; scroll-margin-top:1rem; }
.partner-voucher-list { display:grid; gap:.65rem; }
.partner-voucher-row { display:grid; padding:.75rem; grid-template-columns:7.5rem 1fr auto; align-items:center; gap:1rem; border:1px solid rgba(255,255,255,.7); border-radius:1.2rem; background:rgba(255,255,255,.94); color:#14241b; }
.partner-voucher-row img,.mini-placeholder { width:7.5rem; height:5.5rem; border-radius:.8rem; object-fit:cover; }
.mini-placeholder { display:grid; place-items:center; background:#e7f1eb; color:#326247; font-size:2rem; font-weight:900; }
.partner-voucher-row h3 { margin:.25rem 0; }
.partner-voucher-row p,.partner-voucher-row small { margin:0; color:#647169; }
.partner-voucher-row form { margin:0; }
.status-dot { display:inline-flex; align-items:center; gap:.35rem; color:#8a6b48; font-size:.65rem; font-weight:850; }
.status-dot::before { content:""; width:.45rem; height:.45rem; border-radius:50%; background:#d29b5b; }
.status-dot.is-active { color:#3d7653; }
.status-dot.is-active::before { background:#63b67d; }
.claims-table { overflow:hidden; border:1px solid rgba(255,255,255,.72); border-radius:1.2rem; background:rgba(255,255,255,.94); color:#14241b; }
.claims-table > div:not(.empty-offers) { display:grid; padding:.9rem 1rem; grid-template-columns:9rem 1fr 10rem 6rem; align-items:center; gap:.8rem; border-bottom:1px solid #e4ebe7; }
.claims-table > div:last-child { border-bottom:0; }
.claims-table span,.claims-table small { color:#6c7972; }
.claims-table b { padding:.35rem .5rem; border-radius:.5rem; background:#e9f3ed; color:#38714d; font-size:.65rem; text-align:center; }
.claims-table b.is-used { background:#eceeed; color:#777e7a; }
.claims-table .empty-offers { color:#657169; }

@media (max-width:900px) {
  .auth-shell,.member-hero,.partner-tools-grid { grid-template-columns:1fr; }
  .auth-shell { padding-top:1.5rem!important; }
  .auth-intro h1 { font-size:clamp(3.7rem,15vw,6.5rem); }
  .auth-panel { max-width:38rem; width:100%; justify-self:center; }
  .member-hero .scoreboard { justify-self:start; }
  .voucher-grid { grid-template-columns:1fr 1fr; }
  .partner-welcome { align-items:flex-start; flex-direction:column; }
  .store-location-card { grid-template-columns:1fr; }
  .partner-metrics { width:100%; }
  .partner-metrics span { min-width:0; }
  .claims-table > div:not(.empty-offers) { grid-template-columns:8rem 1fr 6rem; }
  .claims-table small { display:none; }
}
@media (max-width:620px) {
  .partner-landing { width:min(calc(100% - 1.3rem),74rem)!important; padding:2rem 0 3rem!important; }
  .partner-landing-logo { margin-bottom:1.5rem; }
  .partner-landing-actions { display:grid; grid-template-columns:1fr; }
  .partner-primary-action,.partner-secondary-action { width:100%; }
  .partner-landing-flow { grid-template-columns:1fr; margin-top:2rem; }
  .portal-header img { width:5.8rem; }
  .portal-header .badge { display:none; }
  .portal-alert { grid-template-columns:1fr; }
  .auth-shell,.member-shell,.partner-dashboard { padding-bottom:3.5rem!important; }
  .auth-panel { padding:1.35rem; border-radius:1.4rem; }
  .auth-intro h1,.member-hero h1 { font-size:clamp(3.2rem,18vw,5.2rem); }
  .voucher-grid { grid-template-columns:1fr; }
  .nearby-toolbar { align-items:stretch; flex-direction:column; }
  .nearby-button { width:100%; }
  .portal-section-heading { align-items:flex-start; flex-direction:column; }
  .form-two { grid-template-columns:1fr; }
  .partner-metrics { grid-template-columns:1fr 1fr; }
  .partner-unit-grid { grid-template-columns:1fr; }
  .partner-voucher-row { grid-template-columns:5rem 1fr; }
  .location-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:stretch; }
  .location-actions > * { width:100%; min-width:0; }
  .partner-voucher-row img,.mini-placeholder { width:5rem; height:5rem; }
  .partner-voucher-row form { grid-column:1/-1; }
  .partner-voucher-row .secondary-button { width:100%; }
  .claims-table > div:not(.empty-offers) { grid-template-columns:1fr auto; }
  .claims-table span { grid-column:1/-1; }
  .portal-footer { align-items:flex-start; flex-direction:column; }
}

/* Experiência simples e focada em vouchers após o login */
.member-view { color:#17231d; background:#f4f6f8; }
.member-view .portal-page { min-height:100vh; overflow:visible; background:radial-gradient(circle at 4% 8%,rgba(188,208,255,.32) 0 5.5rem,transparent 5.65rem),radial-gradient(circle at 98% 32%,rgba(225,196,255,.3) 0 8rem,transparent 8.15rem),#f7f8fa; }
.member-view .portal-page::before { top:-9rem; right:-10rem; width:28rem; height:28rem; border:5rem solid rgba(255,255,255,.64); box-shadow:none; }
.member-view .portal-header,.member-view .portal-page main,.member-view .portal-alert { width:min(calc(100% - 2rem),46rem); }
.member-header { padding:1.15rem 0 .8rem; }
.member-header form { margin:0; }
.member-brand { display:flex; align-items:center; gap:.72rem; color:#17231d; }
.member-brand img { width:2.8rem; height:2.8rem; border-radius:50%; object-fit:cover; box-shadow:0 8px 20px rgba(21,45,33,.15); }
.member-brand span,.member-brand small,.member-brand strong { display:block; }
.member-brand small { color:#6f7b75; font-size:.62rem; font-weight:850; letter-spacing:.11em; text-transform:uppercase; }
.member-brand strong { margin-top:.08rem; font-size:.92rem; }
.member-logout { border:1px solid #d9dfdc; border-radius:999px; padding:.58rem .85rem; background:rgba(255,255,255,.8); color:#44534b; cursor:pointer; font:800 .7rem inherit; }
.member-view .portal-alert { color:#213229; border-color:#dce4df; background:rgba(255,255,255,.94); box-shadow:0 12px 30px rgba(30,50,40,.08); }
.member-view .portal-alert strong { color:var(--team); }
.member-view .portal-alert-error strong { color:#a33a30; }
.member-view .portal-alert span { color:#617068; }
.member-view .member-shell { display:block!important; padding:2.4rem 0 5rem!important; }
.member-voucher-heading { margin-bottom:2rem; }
.member-voucher-heading .eyebrow { margin-bottom:.65rem; color:var(--team); font-size:.66rem; }
.member-voucher-heading h1 { max-width:none; color:#17231d; font-size:clamp(2.55rem,9vw,4.4rem); line-height:1; letter-spacing:-.055em; text-transform:none; }
.member-voucher-heading > p:last-child { margin:.75rem 0 0; color:#6b7871; font-size:.93rem; }
.team-partners-section { margin-bottom:3rem; }
.team-partner-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.1rem; }
.team-partner-card { display:grid; min-width:0; min-height:7.3rem; padding:1rem; grid-template-columns:7rem minmax(0,1fr); align-items:center; gap:1.1rem; border:1px solid #e0e6e3; border-radius:1.25rem; background:rgba(255,255,255,.9); box-shadow:0 12px 28px rgba(28,48,38,.07); }
.team-partner-card[href] { color:inherit; text-decoration:none; transition:transform .18s ease,box-shadow .18s ease; }
.team-partner-card[href]:hover { transform:translateY(-2px); box-shadow:0 17px 35px rgba(28,48,38,.12); }
.team-partner-logo { display:grid; width:7rem; height:5.25rem; padding:.6rem; place-items:center; overflow:hidden; border-radius:.9rem; background:transparent !important; }
.team-partner-logo img { display:block; width:100%; height:100%; object-fit:contain; }
.team-partner-logo strong { color:var(--team); font-size:1.45rem; letter-spacing:-.04em; }
.team-partner-card h2 { margin:0; overflow-wrap:anywhere; color:#1c2e25; font-size:1.05rem; line-height:1.32; }
.team-partner-card p { margin:.48rem 0 0; overflow-wrap:anywhere; color:#6a7770; font-size:.72rem; line-height:1.58; }
.team-partner-link { display:inline-block; margin-top:.5rem; color:var(--team); font-size:.68rem; font-weight:850; }
.guest-partner-showcase h1 { display:grid; max-width:38rem; margin:0 0 1.55rem; gap:.2em; font-size:clamp(2.75rem,7vw,4.8rem); line-height:1.08; letter-spacing:-.055em; text-transform:none; }
.guest-partner-showcase h1 span { display:block; line-height:1.08; }
.guest-partner-showcase .message { margin:0; line-height:1.7; }
.guest-partner-grid { max-width:42rem; margin-top:2rem; }
.guest-partner-grid .team-partner-card { grid-template-columns:5.25rem minmax(0,1fr); padding:.75rem; }
.guest-partner-grid .team-partner-logo { width:5.25rem; height:4.35rem; }
.empty-partners { grid-column:1/-1; padding:2rem; border:1px dashed #ced8d3; border-radius:1.2rem; background:rgba(255,255,255,.68); color:#53635b; text-align:center; }
.empty-partners p { margin:.35rem 0 0; font-size:.76rem; }
.voucher-section-heading { display:flex; margin-bottom:1rem; align-items:flex-end; justify-content:space-between; gap:1rem; }
.voucher-section-heading small { color:var(--team); font-size:.61rem; font-weight:900; letter-spacing:.11em; }
.voucher-section-heading h2 { margin:.2rem 0 0; color:#1b2b23; font-size:clamp(1.65rem,5vw,2.35rem); letter-spacing:-.04em; }
.voucher-section-heading > span { padding:.5rem .7rem; border:1px solid #d8dfdc; border-radius:999px; background:#fff; color:#65736c; font-size:.66rem; font-weight:800; }
.voucher-toolbar { display:flex; margin-bottom:.45rem; align-items:center; justify-content:space-between; gap:1rem; }
.voucher-toolbar > strong { color:#46564e; font-size:.72rem; letter-spacing:.03em; }
.member-view .nearby-button { border:1px solid color-mix(in srgb,var(--team) 20%,#dfe5e2); border-radius:999px; padding:.67rem .85rem; background:#fff; color:var(--team); box-shadow:0 6px 18px rgba(26,48,37,.07); }
.nearby-status { margin:0 0 1.25rem; color:#879089; font-size:.66rem; line-height:1.4; }
.member-view .voucher-grid { display:grid; grid-template-columns:1fr; gap:1.1rem; }
.voucher-ticket { --ticket-a:#c998e4; --ticket-b:#75bdf5; --ticket-ink:#142331; position:relative; display:grid; min-height:18rem; grid-template-columns:4.25rem minmax(0,1fr); overflow:hidden; border:0; border-radius:1.35rem; background:linear-gradient(125deg,var(--ticket-a),var(--ticket-b)); color:var(--ticket-ink); box-shadow:0 18px 36px rgba(37,51,65,.16); }
.ticket-tone-2 { --ticket-a:#ffca79; --ticket-b:#ff7e9a; --ticket-ink:#402522; }
.ticket-tone-3 { --ticket-a:#63b8f3; --ticket-b:#40dfc0; --ticket-ink:#123b44; }
.ticket-tone-4 { --ticket-a:#c6e89d; --ticket-b:#72d9d9; --ticket-ink:#173f38; }
.voucher-ticket::before,.voucher-ticket::after { content:""; position:absolute; z-index:3; top:50%; width:1.7rem; height:1.7rem; border-radius:50%; background:#f7f8fa; transform:translateY(-50%); }
.voucher-ticket::before { left:-.85rem; }
.voucher-ticket::after { right:-.85rem; }
.voucher-ticket-stub { display:grid; place-items:center; border-right:1px dashed rgba(255,255,255,.58); background:rgba(255,255,255,.14); }
.voucher-ticket-stub span { color:rgba(255,255,255,.94); font-size:.72rem; font-weight:900; letter-spacing:.17em; writing-mode:vertical-rl; transform:rotate(180deg); }
.voucher-ticket .voucher-card-body { display:flex; min-width:0; padding:1.25rem 1.35rem; flex-direction:column; }
.voucher-ticket-top { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }
.voucher-ticket-top > div { min-width:0; }
.voucher-ticket-top > div > span { display:block; max-width:21rem; margin-top:.25rem; overflow:hidden; font-size:.72rem; font-weight:800; text-overflow:ellipsis; white-space:nowrap; }
.voucher-ticket .discount-label { display:block; padding:0; background:transparent; color:#fff; font-size:clamp(2.55rem,9vw,4.6rem); font-weight:950; line-height:.9; letter-spacing:-.065em; text-shadow:0 4px 10px rgba(32,43,54,.18); }
.voucher-product-thumb,.voucher-product-mark { flex:0 0 auto; width:4.35rem; height:4.35rem; border:2px solid rgba(255,255,255,.7); border-radius:1rem; box-shadow:0 8px 18px rgba(37,48,58,.15); }
.voucher-product-thumb { object-fit:cover; }
.voucher-product-mark { display:grid; place-items:center; background:rgba(255,255,255,.3); color:#fff; font-size:2rem; font-weight:950; }
.voucher-ticket h3 { margin:.85rem 0 .12rem; color:var(--ticket-ink); font-size:1.18rem; line-height:1.15; }
.voucher-ticket .product-name { margin:0; color:color-mix(in srgb,var(--ticket-ink) 76%,transparent); font-size:.75rem; }
.voucher-ticket .voucher-location { display:flex; margin:.7rem 0 0; align-items:center; justify-content:space-between; gap:.7rem; }
.voucher-ticket .voucher-location span { color:color-mix(in srgb,var(--ticket-ink) 75%,transparent); font-size:.65rem; }
.voucher-ticket .voucher-location strong { flex:0 0 auto; color:var(--ticket-ink); font-size:.66rem; }
.voucher-ticket .voucher-validity { margin:.45rem 0 0; color:color-mix(in srgb,var(--ticket-ink) 68%,transparent); font-size:.63rem; }
.voucher-ticket form { margin-top:auto; padding-top:.85rem; }
.voucher-ticket .portal-button { width:100%; border:1px solid rgba(255,255,255,.65); border-radius:.75rem; padding:.75rem; background:rgba(255,255,255,.86); color:var(--ticket-ink); box-shadow:0 7px 18px rgba(39,52,62,.12); }
.voucher-ticket .issued-code { margin-top:auto; padding:.65rem .8rem; border-color:rgba(29,52,42,.35); background:rgba(255,255,255,.48); }
.voucher-ticket .issued-code small { color:color-mix(in srgb,var(--ticket-ink) 72%,transparent); }
.voucher-ticket .issued-code strong { color:var(--ticket-ink); font-size:.95rem; }
.voucher-barcode { display:block; width:8rem; height:1.45rem; margin:.42rem auto .2rem; background:repeating-linear-gradient(90deg,var(--ticket-ink) 0 2px,transparent 2px 4px,var(--ticket-ink) 4px 5px,transparent 5px 8px); opacity:.9; }
.voucher-ticket details { margin-top:.7rem; color:color-mix(in srgb,var(--ticket-ink) 77%,transparent); }
.voucher-ticket summary { width:max-content; color:var(--ticket-ink); font-size:.67rem; text-decoration:underline; text-underline-offset:3px; }
.voucher-ticket details p { margin:.5rem 0 0; color:inherit; font-size:.69rem; line-height:1.4; }
.member-view .empty-offers { border-color:#d2dad6; background:rgba(255,255,255,.72); color:#58675f; }

@media (max-width:620px) {
  .qr-welcome { width:min(calc(100% - 1.3rem),64rem)!important; padding-top:2rem!important; }
  .qr-welcome-logo { margin-bottom:1.5rem; }
  .qr-welcome-actions { display:grid; grid-template-columns:1fr; }
  .qr-welcome-actions .partner-primary-action,.qr-welcome-actions .partner-secondary-action { width:100%; }
  .qr-locked-benefits { grid-template-columns:1fr; }
  .qr-access-steps { grid-template-columns:1fr; gap:.2rem; }
  .qr-access-steps>span { min-height:4.9rem; }
  .qr-welcome-partner-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .qr-welcome-partner-logo { min-height:6.5rem; height:auto; }
  .qr-welcome-partner-logo img { max-height:6.5rem; }
  .member-view .portal-header,.member-view .portal-page main,.member-view .portal-alert { width:min(calc(100% - 1.3rem),46rem); }
  .member-view .member-shell { padding-top:1.65rem!important; }
  .member-voucher-heading { margin-bottom:1.45rem; }
  .team-partner-grid { grid-template-columns:1fr; }
  .team-partner-card { min-height:6.5rem; grid-template-columns:5.25rem minmax(0,1fr); padding:.9rem; gap:.9rem; }
  .team-partner-logo { width:5.25rem; height:4.5rem; }
  .voucher-section-heading { align-items:flex-start; flex-direction:column; }
  .voucher-toolbar { align-items:flex-start; flex-direction:column; gap:.7rem; }
  .member-view .nearby-button { width:auto; }
  .voucher-ticket { min-height:17rem; grid-template-columns:3.25rem minmax(0,1fr); border-radius:1.15rem; }
  .voucher-ticket .voucher-card-body { padding:1rem 1.05rem; }
  .voucher-ticket-stub span { font-size:.62rem; }
  .voucher-product-thumb,.voucher-product-mark { width:3.65rem; height:3.65rem; border-radius:.85rem; }
  .voucher-ticket .discount-label { font-size:clamp(2.35rem,14vw,3.7rem); }
  .voucher-ticket .voucher-location { align-items:flex-start; flex-direction:column; gap:.18rem; }
}

@media (max-width:390px) {
  .qr-welcome-copy h1 { font-size:clamp(2.25rem,11vw,3rem); }
  .qr-welcome-text { font-size:.94rem; }
  .qr-welcome-partner-grid { grid-template-columns:1fr; }
  .guest-partner-showcase h1 { margin-bottom:1.25rem; gap:.24em; font-size:2.45rem; line-height:1.12; }
  .guest-partner-showcase h1 span { line-height:1.12; }
  .guest-partner-showcase .message { font-size:.98rem; }
  .team-partner-card,.guest-partner-grid .team-partner-card { grid-template-columns:1fr; align-items:start; }
  .team-partner-logo,.guest-partner-grid .team-partner-logo { width:100%; height:5.5rem; }
  .auth-tabs a { padding:.78rem .35rem; line-height:1.35; }
  .auth-heading { margin-bottom:1.65rem; }
}

/* Descoberta de lojas por localizacao antes da exibicao dos vouchers. */
.store-discovery { scroll-margin-top:1rem; }
.location-permission-card { display:grid; padding:clamp(1.35rem,4vw,2rem); grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:1.1rem; border:1px solid #dfe6e2; border-radius:1.5rem; background:#fff; box-shadow:0 18px 45px rgba(29,52,41,.09); }
.location-permission-icon { display:grid; width:3.7rem; height:3.7rem; place-items:center; border-radius:1.15rem; background:color-mix(in srgb,var(--team) 14%,#fff); color:var(--team); font-size:2rem; font-weight:900; }
.location-permission-card small { color:var(--team); font-size:.62rem; font-weight:900; letter-spacing:.12em; }
.location-permission-card h2 { margin:.28rem 0 .35rem; color:#182b21; font-size:clamp(1.45rem,5vw,2.25rem); letter-spacing:-.04em; }
.location-permission-card p { margin:0; color:#68766f; font-size:.78rem; line-height:1.55; }
.location-permission-card > .portal-button { width:auto; min-width:10rem; }
.location-permission-status { grid-column:2/-1; color:#9b433a!important; font-weight:750; }
.store-results-note { margin:-.35rem 0 1rem; color:#7b8781; font-size:.7rem; }
.store-choice-list { display:grid; gap:.75rem; }
.store-choice-card { display:grid; width:100%; padding:1rem; grid-template-columns:3rem minmax(0,1fr) auto; align-items:center; gap:.9rem; border:1px solid #dce4e0; border-radius:1.15rem; background:#fff; color:#182b21; cursor:pointer; text-align:left; box-shadow:0 8px 24px rgba(28,49,39,.055); transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease; }
.store-choice-card:hover { transform:translateY(-2px); border-color:color-mix(in srgb,var(--team) 45%,#dce4e0); box-shadow:0 14px 30px rgba(28,49,39,.1); }
.store-choice-mark { display:grid; width:3rem; height:3rem; place-items:center; border-radius:.9rem; background:var(--team); color:#fff; font-size:.76rem; font-weight:950; }
.store-choice-copy,.store-choice-copy small,.store-choice-copy strong,.store-choice-copy > span,.store-choice-meta,.store-choice-meta b,.store-choice-meta small { display:block; }
.store-choice-copy { min-width:0; }
.store-choice-copy small { color:var(--team); font-size:.54rem; font-weight:900; letter-spacing:.11em; }
.store-choice-copy strong { margin:.2rem 0; overflow-wrap:anywhere; font-size:.92rem; }
.store-choice-copy > span { overflow:hidden; color:#6f7c75; font-size:.68rem; text-overflow:ellipsis; white-space:nowrap; }
.store-choice-meta { text-align:right; }
.store-choice-meta b { color:var(--team); font-size:.72rem; }
.store-choice-meta small { margin-top:.3rem; color:#7d8983; font-size:.62rem; }
.store-voucher-panel { scroll-margin-top:1rem; }
.store-back-button { margin:0 0 1rem; padding:.55rem 0; border:0; background:none; color:var(--team); cursor:pointer; font:850 .72rem inherit; }
.selected-store-heading { margin-bottom:1rem; padding:1.15rem 1.25rem; border:1px solid #dce4e0; border-radius:1.2rem; background:#fff; }
.selected-store-heading small { color:var(--team); font-size:.58rem; font-weight:900; letter-spacing:.11em; }
.selected-store-heading h2 { margin:.25rem 0; color:#1a2d23; font-size:1.55rem; letter-spacing:-.04em; }
.selected-store-heading p { margin:0; color:#6d7973; font-size:.72rem; line-height:1.5; }
.selected-store-heading strong { display:block; margin-top:.7rem; color:var(--team); font-size:.7rem; }
@media(max-width:620px) {
  .location-permission-card { grid-template-columns:auto minmax(0,1fr); }
  .location-permission-card > .portal-button,.location-permission-status { grid-column:1/-1; width:100%; }
  .store-choice-card { grid-template-columns:2.65rem minmax(0,1fr); }
  .store-choice-mark { width:2.65rem; height:2.65rem; }
  .store-choice-meta { grid-column:2; display:flex; align-items:center; justify-content:space-between; gap:.6rem; text-align:left; }
  .store-choice-meta small { margin:0; }
}
