*{margin:0;padding:0;box-sizing:border-box}:root{--cor-primaria: #1B3E92;--cor-primaria-light: #2B5EA2;--cor-primaria-dark: #0B2E72;--cor-secundaria: #F15A24;--cor-secundaria-light: #FF7A4A;--cor-destaque: #8CC63F;--cor-destaque-light: #A8D96A;--cor-fundo: #F8F9FA;--cor-fundo-card: #FFFFFF;--cor-texto: #1A1A2E;--cor-texto-secundario: #6B7280;--cor-branco: #FFFFFF;--cor-cinza-claro: #E5E7EB;--cor-cinza-medio: #9CA3AF;--cor-sucesso: #10B981;--cor-erro: #EF4444;--cor-aviso: #F59E0B;--gradiente-primario: linear-gradient(135deg, #1B3E92 0%, #2B5EA2 100%);--gradiente-secundario: linear-gradient(135deg, #F15A24 0%, #FF7A4A 100%);--gradiente-premium: linear-gradient(135deg, #1B3E92 0%, #8CC63F 100%);--fonte-titulo: "Montserrat", sans-serif;--fonte-corpo: "Open Sans", sans-serif;--espacamento-xs: 4px;--espacamento-sm: 8px;--espacamento-md: 16px;--espacamento-lg: 24px;--espacamento-xl: 32px;--espacamento-xxl: 48px;--raio-borda: 12px;--raio-borda-lg: 20px;--raio-borda-xl: 24px;--sombra-sm: 0 1px 2px rgba(0,0,0,.05);--sombra-md: 0 4px 6px -1px rgba(0,0,0,.1), 0 2px 4px -1px rgba(0,0,0,.06);--sombra-lg: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -2px rgba(0,0,0,.05);--sombra-xl: 0 20px 25px -5px rgba(0,0,0,.1), 0 10px 10px -5px rgba(0,0,0,.04);--sombra-card: 0 2px 8px rgba(26, 62, 96, .08)}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--fonte-corpo);background-color:var(--cor-fundo);color:var(--cor-texto);line-height:1.6;min-height:100vh}#root{min-height:100vh}.loading-container{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;gap:var(--espacamento-md)}.loading-container p{color:var(--cor-cinza-medio);font-size:14px}.container{max-width:480px;margin:0 auto;padding:var(--espacamento-md);min-height:100vh}.app{min-height:100vh;padding-bottom:90px}.main-content{padding-top:70px}.header{background:#fff;padding:var(--espacamento-md) var(--espacamento-md);text-align:center;position:fixed;top:0;left:0;right:0;z-index:100;box-shadow:0 2px 8px #0000001a;display:flex;flex-direction:column;align-items:center}.header-logo{color:var(--cor-primaria);font-family:var(--fonte-titulo);font-size:24px;font-weight:800;letter-spacing:.5px}.header-subtitle{color:var(--cor-texto-secundario);font-size:13px;font-weight:500;margin-top:4px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px var(--espacamento-lg);border:none;border-radius:var(--raio-borda);font-family:var(--fonte-corpo);font-size:15px;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);text-decoration:none;width:100%;margin-bottom:var(--espacamento-md);box-shadow:var(--sombra-sm)}.btn-primary{background:var(--gradiente-secundario);color:var(--cor-branco)}.btn-primary:hover{transform:translateY(-2px);box-shadow:var(--sombra-lg);filter:brightness(1.1)}.btn-secondary{background:var(--gradiente-primario);color:var(--cor-branco)}.btn-secondary:hover{transform:translateY(-2px);box-shadow:var(--sombra-lg)}.btn-outline{background:var(--cor-branco);border:2px solid var(--cor-primaria);color:var(--cor-primaria)}.btn-outline:hover{background:var(--cor-primaria);color:var(--cor-branco);transform:translateY(-2px)}.btn-success{background:linear-gradient(135deg,#10b981,#34d399);color:var(--cor-branco)}.btn-sm{padding:10px var(--espacamento-md);font-size:13px}.form-group{margin-bottom:var(--espacamento-lg)}.form-label{display:block;font-weight:600;margin-bottom:6px;color:var(--cor-primaria);font-size:14px}.form-input{width:100%;padding:14px var(--espacamento-md);border:2px solid var(--cor-cinza-claro);border-radius:var(--raio-borda);font-family:var(--fonte-corpo);font-size:15px;transition:all .3s ease;background:var(--cor-branco)}.form-input:focus{outline:none;border-color:var(--cor-primaria);box-shadow:0 0 0 3px #1a3e601a}.form-input.error{border-color:var(--cor-erro)}.form-hint{font-size:12px;color:var(--cor-cinza-medio);margin-top:6px}.form-error{font-size:12px;color:var(--cor-erro);margin-top:6px}.form-check{display:flex;align-items:flex-start;margin-bottom:var(--espacamento-md)}.form-check-input{margin-right:var(--espacamento-sm);margin-top:3px;width:20px;height:20px;accent-color:var(--cor-primaria)}.form-check-label{font-size:14px;line-height:1.5;color:var(--cor-texto-secundario)}.card{background:#fffffff2;border-radius:var(--raio-borda-lg);padding:var(--espacamento-lg);margin-bottom:var(--espacamento-md);box-shadow:var(--sombra-card);transition:all .3s ease;border:1px solid rgba(0,0,0,.04)}.card:hover{box-shadow:var(--sombra-lg);transform:translateY(-2px)}.card-premium{background:var(--gradiente-primario);color:var(--cor-branco);position:relative;overflow:hidden}.card-points{background:var(--gradiente-premium);color:var(--cor-branco);text-align:center;padding:var(--espacamento-xl)}.card-points .points-value{font-size:56px;font-weight:800;margin:var(--espacamento-md) 0;text-shadow:2px 2px 4px rgba(0,0,0,.2)}.card-points .points-label{font-size:14px;opacity:.9;text-transform:uppercase;letter-spacing:1px}.badge{display:inline-flex;align-items:center;gap:4px;padding:6px 14px;border-radius:20px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.badge-pendente{background:#f59e0b26;color:var(--cor-aviso)}.badge-validada{background:#10b98126;color:var(--cor-sucesso)}.badge-cancelada{background:#6b728026;color:var(--cor-cinza-medio)}.list-item{background:var(--cor-branco);border-radius:var(--raio-borda);padding:var(--espacamento-md);margin-bottom:var(--espacamento-sm);display:flex;justify-content:space-between;align-items:center;box-shadow:var(--sombra-sm);transition:all .2s ease;border:1px solid rgba(0,0,0,.04)}.list-item:hover{box-shadow:var(--sombra-md);transform:translate(4px)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:var(--cor-branco);display:flex;justify-content:space-around;padding:8px 0 12px;box-shadow:0 -4px 20px #00000014;z-index:100;border-top:1px solid rgba(0,0,0,.05)}.bottom-nav-item{display:flex;flex-direction:column;align-items:center;text-decoration:none;color:var(--cor-cinza-medio);font-size:11px;font-weight:500;padding:6px 16px;transition:all .3s ease;position:relative}.bottom-nav-item svg{width:24px;height:24px;margin-bottom:4px;transition:all .3s ease;stroke-width:1.8}.bottom-nav-item.active{color:var(--cor-primaria)}.bottom-nav-item.active svg{stroke:var(--cor-primaria);fill:#1a3e601a;transform:scale(1.1)}.bottom-nav-item.active:after{content:"";position:absolute;bottom:-4px;width:4px;height:4px;background:var(--cor-primaria);border-radius:50%}.dashboard-header{text-align:center;padding:var(--espacamento-xl) 0}.dashboard-avatar{width:80px;height:80px;border-radius:50%;background:var(--gradiente-primario);color:var(--cor-branco);display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:700;margin:0 auto var(--espacamento-md);box-shadow:var(--sombra-lg)}.dashboard-name{font-size:20px;font-weight:700;margin-bottom:4px;color:var(--cor-texto)}.dashboard-info{font-size:14px;color:var(--cor-texto-secundario)}.dashboard-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--espacamento-md);margin-bottom:var(--espacamento-lg)}.stat-card{background:var(--cor-branco);border-radius:var(--raio-borda-lg);padding:var(--espacamento-lg);text-align:center;box-shadow:var(--sombra-card);transition:all .3s ease;border:1px solid rgba(0,0,0,.04)}.stat-card:hover{box-shadow:var(--sombra-lg);transform:translateY(-4px)}.stat-number{font-size:28px;font-weight:800;color:var(--cor-primaria);font-family:var(--fonte-titulo)}.stat-label{font-size:12px;color:var(--cor-texto-secundario);margin-top:4px;font-weight:500}.indication-card{background:var(--cor-branco);border-radius:var(--raio-borda-lg);padding:var(--espacamento-lg);margin-bottom:var(--espacamento-md);box-shadow:var(--sombra-card);border-left:4px solid var(--cor-primaria);transition:all .3s ease}.indication-card:hover{box-shadow:var(--sombra-lg);transform:translate(4px)}.profile-header{text-align:center;padding:var(--espacamento-xl) 0}.profile-avatar{width:100px;height:100px;border-radius:50%;background:var(--gradiente-primario);color:var(--cor-branco);display:flex;align-items:center;justify-content:center;font-size:40px;font-weight:700;margin:0 auto var(--espacamento-md);box-shadow:var(--sombra-xl);position:relative}.profile-avatar:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:50%;border:3px solid var(--cor-destaque)}.store-card{border-left:4px solid var(--cor-destaque);cursor:pointer}.store-card:hover{border-left-color:var(--cor-secundaria)}.store-distance{color:var(--cor-destaque);font-weight:600;font-size:14px}.spinner{width:40px;height:40px;border:4px solid var(--cor-cinza-claro);border-top-color:var(--cor-primaria);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toast{position:fixed;bottom:100px;left:50%;transform:translate(-50%) translateY(100px);background:var(--cor-texto);color:var(--cor-branco);padding:var(--espacamento-md) var(--espacamento-lg);border-radius:var(--raio-borda);font-size:14px;z-index:1000;opacity:0;transition:all .3s ease;box-shadow:var(--sombra-xl);min-width:280px;text-align:center}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}.toast.success{background:var(--cor-sucesso)}.toast.error{background:var(--cor-erro)}.lgpd-banner{background:linear-gradient(135deg,#1a3e600d,#8cc63f0d);border:2px solid var(--cor-primaria);border-radius:var(--raio-borda-lg);padding:var(--espacamento-lg);margin-bottom:var(--espacamento-lg)}.lgpd-text{font-size:14px;line-height:1.6;margin-bottom:var(--espacamento-md);color:var(--cor-texto-secundario)}.lgpd-text a{color:var(--cor-primaria);text-decoration:underline;font-weight:600}#map{z-index:1;border-radius:var(--raio-borda-lg)}.qr-container{background:var(--cor-branco);padding:var(--espacamento-xl);border-radius:var(--raio-borda-lg);text-align:center;margin:var(--espacamento-lg) 0;box-shadow:var(--sombra-lg)}.qr-code{width:220px;height:220px;margin:0 auto var(--espacamento-md);background:var(--cor-fundo);display:flex;align-items:center;justify-content:center;border-radius:var(--raio-borda);border:3px solid var(--cor-primaria)}.rewards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--espacamento-md);margin-bottom:var(--espacamento-lg)}.reward-card{background:var(--cor-branco);border-radius:var(--raio-borda-lg);padding:var(--espacamento-md);text-align:center;box-shadow:var(--sombra-card);transition:all .3s ease;border:1px solid rgba(0,0,0,.04)}.reward-card:hover{box-shadow:var(--sombra-lg);transform:translateY(-4px)}.reward-icon{width:60px;height:60px;background:var(--gradiente-primario);border-radius:var(--raio-borda);display:flex;align-items:center;justify-content:center;margin:0 auto var(--espacamento-sm);color:var(--cor-branco);font-size:24px}.progress-bar{width:100%;height:8px;background:var(--cor-cinza-claro);border-radius:4px;overflow:hidden;margin-top:8px}.progress-bar-fill{height:100%;background:var(--gradiente-premium);border-radius:4px;transition:width .5s ease}.auth-container{display:flex;flex-direction:column;justify-content:center;min-height:100vh;padding:var(--espacamento-lg);background:linear-gradient(180deg,#000000b3,#000000d9),url(/pintorPintamundi.webp) no-repeat center center;background-size:cover}.auth-logo{text-align:center;margin-bottom:var(--espacamento-xl)}.auth-logo-icon{width:100px;height:100px;background:var(--gradiente-primario);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto var(--espacamento-md);box-shadow:var(--sombra-xl);font-size:48px;font-weight:800;color:var(--cor-branco)}.auth-links{text-align:center;margin-top:var(--espacamento-lg)}.auth-links a{color:var(--cor-primaria);text-decoration:none;font-weight:600;border-bottom:2px solid transparent;transition:border-color .3s ease}.auth-links a:hover{border-bottom-color:var(--cor-primaria)}@media (min-width: 768px){.container{max-width:600px}.dashboard-stats{grid-template-columns:repeat(4,1fr)}}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.mt-1{margin-top:var(--espacamento-sm)}.mt-2{margin-top:var(--espacamento-md)}.mt-3{margin-top:var(--espacamento-lg)}.mb-1{margin-bottom:var(--espacamento-sm)}.mb-2{margin-bottom:var(--espacamento-md)}.mb-3{margin-bottom:var(--espacamento-lg)}.hidden{display:none!important}
