/* Conteúdo mobile centralizado; fundo e barras ocupam toda a tela. */
body{width:100%;min-height:100dvh;margin:0;background:#fff}
html{background:#f1f2f3}
.shop-header{padding:0 15px 11px;background:#161b23}
.header-line{height:50px;gap:14px;max-width:450px;margin-inline:auto}
.header-search{max-width:450px;margin-inline:auto}
.icon-button{padding:4px 0;line-height:1}
.header-spacer{flex:1}
.header-count{background:#4d9a6b;border-radius:5px;padding:4px 11px;letter-spacing:.3px}
.header-search{height:38px;display:flex;align-items:center;gap:10px;padding:0 12px;border:1px solid #454d5a;border-radius:8px;background:#2d3544;color:#a6afbb}
.header-search svg{width:18px;height:18px;flex-shrink:0}
.header-search input{min-height:0;height:34px;padding:0;border:0;background:transparent;color:#fff;outline-offset:1px;font-size:14px}
.header-search input::placeholder{font-size:14px;color:#a6afbb}
.stepbar{height:33px;padding:0 16px;letter-spacing:.7px;font-size:10px}
.stepbar>span+span{font-size:10px;letter-spacing:0}
progress{height:2px}
.product-image{height:clamp(230px,calc(100dvh - 425px),355px);padding:25px 20px 12px}
.tag{background:#397fc3;color:#fff;padding:4px 6px;font-size:9px;letter-spacing:.3px;top:12px}
.product-info{padding:14px 16px 22px}
.product-info h1{font-size:19px;line-height:1.4;letter-spacing:-.3px;margin:0 0 10px;min-height:53px}
.opinion-line{display:flex;align-items:center;gap:10px;margin-bottom:7px;font-size:12px;color:#38658b}
.opinion-line>span:first-child{color:#e59a2c;font-size:21px;font-weight:700;letter-spacing:-1px;line-height:1}
.product-price{font-size:25px;line-height:1.15;letter-spacing:-.7px;display:block;margin-bottom:7px}
.research-note{display:flex;align-items:center;gap:10px;font-size:12px}
.research-note small{font-size:11px;color:#6a717a}
.vote-panel{padding:13px 16px 12px}
.vote-panel>p{margin-bottom:10px;font-size:10px;letter-spacing:.4px}
.vote-buttons{gap:10px}
.vote-buttons button{min-height:50px;padding:13px 6px;font-size:15px;border-radius:8px}
.like{background:#4c985b}.dislike{background:#c6372e}
.vote-panel .text-button{padding-top:10px;font-size:10px}
#quiz-main{padding-bottom:76px}
.footnote{font-size:9px;line-height:1.5;padding:10px 15px;color:#848b94}
.bottom-nav{left:0;right:0;transform:none;width:100%;height:calc(61px + env(safe-area-inset-bottom));padding:6px 3px calc(5px + env(safe-area-inset-bottom));gap:0;justify-content:center}
.bottom-nav button{flex:0 1 96px;font-size:9px;gap:5px;min-height:44px;color:#606872}
.bottom-nav svg{height:20px;width:20px;stroke-width:1.7}
.bottom-nav .active{color:#c08a38}
.bottom-nav button:disabled,.shop-header button:disabled{opacity:1;cursor:default}
.header-search input:disabled{opacity:1;cursor:default;-webkit-text-fill-color:#a6afbb}
.form-card{padding:20px 21px 16px}
.complete-icon{width:39px;height:39px;font-size:23px;margin-bottom:12px}
.form-card .eyebrow{font-size:9px;letter-spacing:1.2px;margin-bottom:7px}
.form-card h1{font-size:25px;line-height:1.15;letter-spacing:-.8px;margin-bottom:8px}
.form-card>.muted{margin:0 0 15px;font-size:13px;line-height:1.45}
.form-card label:not(.consent){margin:12px 0 6px;font-size:12px}
.form-card input:not([type=checkbox]){font-size:16px;min-height:44px;padding:11px 12px}
.form-card input::placeholder{font-size:12px}
.consent{font-size:10px;line-height:1.55;margin:16px 0 9px;gap:8px}
.consent input{width:18px;height:18px;margin-top:1px}
.privacy-note{font-size:10px;line-height:1.5;margin:8px 0}
.secure-note{font-size:9px;margin:9px 0 0}
.error:empty{display:none}
.form-card .primary{background:#4c985b;min-height:47px;padding:13px 15px;font-size:14px;margin-top:12px}
.form-card .text-button{font-size:11px;padding-top:12px}
.registration-mode .footnote{padding-top:0}
.toast{top:106px;max-width:calc(100% - 30px);font-size:12px}
.success{min-height:410px;padding-top:36px}
.points-balance{background:#4b9869;color:#fff;border-radius:6px;padding:4px 10px;text-align:right;min-width:112px;line-height:1.15}
.points-balance small{display:block;font-size:7px;letter-spacing:.8px;line-height:1.4}
.points-balance strong{font-size:17px;font-variant-numeric:tabular-nums}
.points-unit{font-size:11px;font-weight:500}
.sound-toggle{display:grid;place-items:center;width:34px;height:34px;padding:6px;border:0;background:none;color:#d8dee5;border-radius:5px}
.sound-toggle svg{width:20px;height:20px}.muted-sound .sound-waves{display:none}.muted-sound{opacity:.55}
.final-points{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;margin:0 0 12px;border:1px solid #dcebdc;background:#f2f8f2;border-radius:6px;color:#458257;font-size:10px}
.final-points strong{font-size:13px}
.reward-overlay{position:fixed;inset:0;z-index:30;background:#101b22a3;display:grid;place-items:center;padding:24px;backdrop-filter:blur(3px)}
.reward-card{width:100%;max-width:340px;text-align:center;border-radius:17px;background:#fff;box-shadow:0 20px 80px #0003;overflow:hidden;padding:0 22px 20px}
.reward-eyebrow{margin:0 -22px 21px;padding:13px;background:#f1f7ed;color:#508158;font-size:10px;font-weight:700;letter-spacing:1.4px}
.reward-check{width:53px;height:53px;display:grid;place-items:center;margin:0 auto 16px;border:1px solid #d3e9d7;background:#eef8ef;border-radius:50%;color:#459959;font-size:31px}
.reward-verified{font-size:9px;letter-spacing:1.4px;color:#51885f;font-weight:700;margin:0 0 8px}
.reward-card h2{font-size:25px;letter-spacing:-.7px;margin:0 0 20px}
.reward-earned{display:block;background:#eff8ef;border:1px solid #dbeedc;border-radius:9px;color:#3d9551;font-size:43px;letter-spacing:-1.2px;padding:16px 8px;font-variant-numeric:tabular-nums}
.reward-earned span{font-size:18px;letter-spacing:0}
.reward-total{font-size:13px;color:#6c7672;margin:17px 0 7px}.reward-total b{color:#305d3d}
.reward-disclaimer{font-size:9px;color:#89948c;margin:0;line-height:1.5}
@media(prefers-reduced-motion:no-preference){.reward-card{animation:reward-appear .25s ease-out}.reward-earned{animation:points-pop .35s ease-out}@keyframes reward-appear{from{opacity:0;transform:translateY(14px) scale(.96)}to{opacity:1;transform:none}}@keyframes points-pop{from{transform:scale(.9)}to{transform:scale(1)}}}
@media(max-height:720px){.product-image{height:clamp(190px,calc(100dvh - 420px),260px)}.product-info{padding-top:8px;padding-bottom:14px}.form-card{padding-top:15px}.form-card>.complete-icon{display:none}}

/* A imagem ocupa apenas a altura restante; os botões ficam sempre à vista. */
.quiz-mode #quiz-main{height:calc(100dvh - 99px - 61px - env(safe-area-inset-bottom));min-height:420px;padding-bottom:0;display:flex;flex-direction:column}
.quiz-mode .product-card{flex:1;min-height:0;display:flex;flex-direction:column}
.quiz-mode .stepbar{flex:0 0 33px}
.quiz-mode progress{flex:0 0 2px}
.quiz-mode .product-image{flex:1;min-height:64px;height:auto;grid-template-rows:minmax(0,1fr);padding:14px 20px 8px}
.quiz-mode .product-image img{max-height:100%;max-width:100%}
.quiz-mode .product-info{flex:none;padding:10px 16px 13px}
.quiz-mode .product-info h1{min-height:0;font-size:18px;line-height:1.3;margin-bottom:8px}
.quiz-mode .vote-panel{flex:none;padding:10px 16px}
.quiz-mode .vote-panel>p{margin-bottom:8px}
.quiz-mode .vote-buttons button{min-height:46px;padding:11px 6px}
.quiz-mode .footnote{flex:none;margin:0;padding:6px 12px;font-size:8px;line-height:1.4}
@media(max-height:700px){.quiz-mode .product-info h1{font-size:16px}.quiz-mode .product-info{padding-top:7px;padding-bottom:9px}.quiz-mode .product-price{font-size:22px}.quiz-mode .opinion-line{margin-bottom:5px}.quiz-mode .research-note{font-size:10px;gap:7px}.quiz-mode .research-note small{font-size:10px}}
.quiz-mode #quiz-main{min-height:360px}
