.login-container{display:flex;justify-content:center;align-items:center;min-height:50vh;padding:20px}.login-box{background-color:#fff;border-radius:16px;box-shadow:0 4px 12px #0000001a;width:100%;max-width:360px;padding:30px}.login-title{text-align:center;font-size:1.8rem;font-weight:600;margin-bottom:20px;color:#333}.form-label{display:block;margin-bottom:15px}.form-label span{display:block;font-size:.9rem;color:#555;margin-bottom:5px}.form-input,.form-select{box-sizing:border-box;font-size:1.25rem;width:100%;padding:10px 12px;border:1px solid #ccc;border-radius:6px;transition:border-color .4s;margin-bottom:4px}.form-input:focus,.form-select:focus{border-color:#4f46e5;outline:none}.submit-btn:hover{background-color:#7b74ca}.row{display:flex;justify-content:space-between;margin-top:15px}.link{color:#4f46e5;text-decoration:none;font-size:.9rem;font-weight:500}.error-message{background-color:#fdefec;border:1px solid #b91026;padding:10px;border-radius:6px;margin-bottom:15px;font-size:.9rem;color:#ff4949;text-align:center}.qrgen-container{display:flex;flex-direction:column;justify-content:flex-start;align-items:center;text-align:center;padding:2rem;background-color:#f8fafc;min-height:100vh;box-sizing:border-box}.qrgen-container h1{color:#0f172a;margin-bottom:.5rem}.qrgen-container p{color:#475569;margin-bottom:1.5rem;max-width:500px}.input-area{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:2rem}input{width:260px;padding:10px;border-radius:6px;border:1px solid #cbd5e1;font-size:16px;outline:none;transition:border-color .2s}input:focus{border-color:#2563eb}.btn{background-color:#2563eb;color:#fff;border:none;padding:10px 16px;border-radius:6px;cursor:pointer;font-size:15px;transition:background .3s}.btn:hover{background-color:#1e40af}.qr-display{display:flex;flex-direction:column;justify-content:center;align-items:center;background:#fff;padding:1.5rem;border-radius:10px;box-shadow:0 2px 8px #0000001a;max-width:320px;margin:0 auto}.qr-display img{width:200px;height:200px;object-fit:contain;margin-bottom:1rem}.download-btn{background-color:#059669;color:#fff;border:none;padding:10px 16px;border-radius:6px;cursor:pointer;font-size:15px;display:inline-flex;justify-content:center;align-items:center;transition:background-color .3s}.download-btn:hover{background-color:#047857}.home-container{font-family:Poppins,sans-serif;background-color:#f8fafc;min-height:100vh}.carousel{position:relative;width:100%;height:350px;overflow:hidden}.carousel-image{width:100%;height:350px;object-fit:cover;transition:opacity .5s ease-in-out;border-bottom:3px solid #1e293b}.carousel-dots{position:absolute;bottom:15px;left:50%;transform:translate(-50%);display:flex;gap:10px}.dot{width:12px;height:12px;background-color:#ccc;border-radius:50%;cursor:pointer;transition:.3s}.dot.active{background-color:#1e293b}.section-title{text-align:center;margin-top:40px;font-size:1.8rem;color:#1e293b}.promo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;padding:30px}.promo-card{background-color:#fff;border-radius:12px;overflow:hidden;box-shadow:0 4px 10px #0000001a;transition:transform .3s}.promo-card:hover{transform:translateY(-5px)}.promo-info{padding:15px}.promo-info h3{margin-bottom:8px;color:#0f172a}.promo-info p{font-size:.9rem;color:#475569;margin-bottom:10px}.promo-btn{background:linear-gradient(135deg,#ff8a00,#e52e71);border:none;color:#fff;padding:8px 14px;border-radius:8px;cursor:pointer;font-weight:700;transition:transform .2s,opacity .3s}.promo-btn:hover{transform:scale(1.05);opacity:.9}.promo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-top:1.5rem}.promo-card{background:#fff;border-radius:16px;box-shadow:0 3px 10px #0000001a;overflow:hidden;transition:transform .3s ease}.promo-card:hover{transform:translateY(-4px)}.promo-image{width:100%;height:180px;object-fit:cover}.promo-info{padding:1rem;text-align:center}.promo-header{display:flex;align-items:center;justify-content:center;gap:.6rem;margin-bottom:.5rem}.business-logo{width:40px;height:40px;border-radius:50%;object-fit:cover;border:2px solid #eee}.btn-apply{margin-top:.8rem;background-color:#ff5a1f;color:#fff;border:none;padding:.6rem 1.2rem;border-radius:8px;cursor:pointer;font-weight:500;transition:background .3s}.btn-apply:hover{background-color:#e14d18}.visitas-container{display:flex;flex-direction:column;gap:30px;padding:20px;font-family:Poppins,sans-serif;background-color:#f8fafc}.tabla-negocio{position:relative;border-radius:12px;overflow:hidden;box-shadow:0 4px 10px #00000026}.tabla-negocio:before{content:"";position:absolute;inset:0;background-image:url(https://images.unsplash.com/photo-1517248135467-4c7edcad34c4?auto=format&fit=crop&w=1200&q=80);background-size:cover;background-position:center;opacity:.15;z-index:0}.titulo-negocio{position:relative;background-color:#1e293be6;color:#fff;padding:12px 20px;font-size:1.2rem;margin:0;z-index:1;display:flex;align-items:center;gap:10px}.logo-negocio{width:100px;height:100px;border-radius:10%;object-fit:cover;border:2px solid white}.tabla-visitas{position:relative;width:100%;border-collapse:collapse;background-color:#ffffffd9;z-index:1}.tabla-visitas th,.tabla-visitas td{padding:10px 14px;text-align:left;border-bottom:1px solid #e2e8f0}.tabla-visitas th{background-color:#f1f5f9cc;color:#1e293b;font-weight:700}.tabla-visitas tr:hover{background-color:#f9fafbcc}.visitas-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.5rem;padding:2rem}.loading,.no-visits{text-align:center;padding:3rem;color:#555}.no-visits h2{font-size:1.5rem;margin-bottom:.5rem}.card-negocio{border-radius:16px;overflow:hidden;box-shadow:0 4px 12px #0000001a;background-color:#fd9d0d;transition:transform .3s ease}.card-negocio:hover{transform:translateY(-5px)}.card-header{position:relative;height:130px}.overlay{background:#00000073;color:#fff;position:absolute;bottom:0;width:100%;padding:1rem;text-align:center}.titulo-negocio{font-size:1.4rem;font-weight:700;margin:0}.visitas-count{font-size:1rem;opacity:.9}.card-body{padding:1rem}.tabla-visitas{width:100%;border-collapse:collapse;font-size:.95rem}.tabla-visitas th{background-color:#f4f4f4;text-align:left;padding:.6rem;border-bottom:1px solid #ddd}.tabla-visitas td{padding:.6rem;border-bottom:1px solid #eee}.tabla-visitas tr:hover{background-color:#9fbdff}.visit-card{width:340px;margin:30px auto;padding:20px;background:linear-gradient(135deg,#fffdf7,#f9f5e9);border-radius:16px;border:2px dashed #e0d6b0;box-shadow:0 4px 12px #00000026;text-align:center;font-family:Poppins,sans-serif;position:relative;overflow:hidden}.visit-card:before,.visit-card:after{content:"";position:absolute;width:28px;height:28px;background:#f0eee8;border-radius:50%;top:50%;transform:translateY(-50%);box-shadow:inset 0 0 5px #0003}.visit-card:before{left:-15px}.visit-card:after{right:-15px}.business-image{width:100px;height:100px;object-fit:cover;border-radius:50%;border:3px solid #f1d76e;margin-bottom:8px;background:#fff}.product-image{width:100%;height:150px;object-fit:cover;border-radius:12px;margin-bottom:12px}.business-title{margin-top:0;margin-bottom:10px;font-size:1.4rem;color:#444}.product-section{display:flex;flex-direction:column;align-items:center;margin-bottom:10px}.product-title{font-size:1.2rem;font-weight:600;color:#333}.info-section{text-align:left;margin-top:10px;font-size:.95rem;color:#555}.info-section p{margin:4px 0}.punch-card{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin:18px 0 25px}.punch-hole{width:30px;height:30px;border-radius:50%;border:2px dashed #b0a48f;background:#fff;transition:all .3s ease-in-out;box-shadow:inset 0 0 3px #0000001a}.punch-hole.filled{background:radial-gradient(circle at center,#e8b923 40%,#fdd835 90%);border:2px solid #caa400;box-shadow:0 0 8px #ffd90080;transform:scale(1.05)}.redeem-button{background:#b4b4b4;border:none;padding:10px 18px;border-radius:12px;color:#fff;font-size:1rem;cursor:not-allowed;transition:all .3s ease}.redeem-button.active{background:#4caf50;cursor:pointer;box-shadow:0 4px 10px #4caf5066}.redeem-button.active:hover{transform:translateY(-2px)}.back-button{margin-top:12px;background:transparent;border:1px solid #ccc;color:#555;padding:6px 12px;border-radius:8px;cursor:pointer}.back-button:hover{background:#eee}.qr-section{margin-top:20px;padding:15px;background:#fffaf0;border:2px dashed #f1d76e;border-radius:12px;box-shadow:0 2px 6px #0000001a;display:inline-block;text-align:center;animation:fadeIn .4s ease-in-out}.qr-section h3{font-size:1rem;color:#444;margin-bottom:12px}.qr-section canvas{border-radius:8px;padding:8px;background:#fff;box-shadow:0 0 8px #0000001a}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.navbar{display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:#0f172a;color:#fff;padding:1rem 0;gap:.8rem}.navbar-right{display:flex;justify-content:flex-end;width:100%}.logout-btn{background-color:#ef4444;border:none;padding:8px 14px;color:#fff;cursor:pointer;border-radius:6px;font-weight:700;transition:background .3s,transform .2s;align:l}.logout-btn:hover{background-color:#dc2626;transform:scale(1.05)}.navbar-center{display:flex;justify-content:center;gap:20px;flex-wrap:wrap}.navbar-center a{color:#fff;text-decoration:none;padding:8px 12px;border-radius:6px;transition:background .3s}.navbar-center a:hover{background-color:#1e293b;cursor:pointer}.register-container{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:20px}.register-box{background-color:#fff;border-radius:16px;box-shadow:0 4px 12px #0000001a;width:100%;max-width:400px;padding:30px}.register-title{text-align:center;font-size:1.8rem;font-weight:600;margin-bottom:20px;color:#333}.form-label{display:block;margin-bottom:1px}.form-label span{display:block;font-size:.9rem;color:#555;margin-bottom:2px}.form-input{width:100%;padding:10px 8px;border:1px solid #ccc;border-radius:6px;font-size:1rem;transition:border-color .2s}.input-error{border-color:#e11d48}.error-text{color:#e11d48;font-size:20px;margin-top:5px;text-align:center}.submit-btn{width:100%;padding:10px 12px;background-color:#00964b;color:#fff;font-size:1rem;font-weight:500;border:none;border-radius:8px;cursor:pointer;transition:background-color .2s}.submit-btn:disabled{background-color:#9ca3af;cursor:not-allowed}body{font-family:Arial,sans-serif;background-color:#f3f4f6;margin:0;padding:0}.verification-container{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:20px}.verification-box{background-color:#fff;border-radius:16px;box-shadow:0 4px 12px #0000001a;width:100%;max-width:400px;padding:30px;text-align:center}.verification-title{font-size:1.8rem;font-weight:600;margin-bottom:10px;color:#333}.verification-subtitle{font-size:.95rem;color:#555;margin-bottom:20px}.form-label{display:block;margin-bottom:20px;text-align:left}.form-input{width:100%;padding:10px 12px;border:1px solid #ccc;border-radius:6px;font-size:1rem;transition:border-color .2s}.form-input:focus{border-color:#4f46e5;outline:none}.error-text{color:#e11d48;font-size:.9rem;margin-bottom:10px}.success-box{background-color:#ecfdf5;border:1px solid #10b981;color:#065f46;padding:10px;border-radius:6px;margin-bottom:15px;font-size:.9rem}.submit-btn{width:100%;padding:10px 12px;background-color:#4f46e5;color:#fff;font-size:1rem;font-weight:500;border:none;border-radius:8px;cursor:pointer;transition:background-color .2s}.submit-btn:hover{background-color:#4338ca}.footer-text{text-align:center;font-size:.9rem;color:#555;margin-top:20px}.link{color:#4f46e5;text-decoration:none;font-weight:500}.link:hover{text-decoration:underline}
