@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&display=swap";:root{--font-sans:"Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;--bg-app:220 14% 96%;--bg-card:0 0% 100%;--bg-header:0 0% 100%;--bg-input:220 10% 98%;--border-color:220 15% 90%;--text-primary:220 20% 12%;--text-secondary:220 10% 35%;--text-muted:220 8% 55%;--primary:38 92% 50%;--primary-hover:38 92% 42%;--primary-glow:38 92% 50% / .12;--success:142 70% 35%;--success-glow:142 70% 35% / .12;--danger:350 80% 50%;--danger-glow:350 80% 50% / .12;--transition-fast:.15s ease;--transition-normal:.25s cubic-bezier(.4, 0, .2, 1);--shadow-sm:0 1px 3px #0000000d, 0 1px 2px #00000008;--shadow-md:0 4px 12px #0000000d, 0 2px 4px #00000008;--shadow-lg:0 12px 24px #00000014, 0 4px 8px #0000000a;--shadow-glow:0 0 15px #fb960026}*{box-sizing:border-box;margin:0;padding:0}body{background-color:hsl(var(--bg-app));color:hsl(var(--text-primary));font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;overflow-x:hidden}button,input,select,textarea{color:inherit;font-family:inherit}.app-header{z-index:100;background-color:hsla(var(--bg-header) / .9);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid hsl(var(--border-color));box-shadow:var(--shadow-sm);transition:var(--transition-normal);padding:.75rem 1.5rem;position:sticky;top:0}.header-container{justify-content:space-between;align-items:center;gap:1.5rem;max-width:1400px;margin:0 auto;display:flex}.logo-section{color:hsl(var(--text-primary));cursor:pointer;align-items:center;gap:.5rem;font-size:1.5rem;font-weight:800;text-decoration:none;display:flex}.logo-section span{color:hsl(var(--primary));text-shadow:var(--shadow-glow)}.search-section{flex:1;max-width:600px;position:relative}.search-input{border:1px solid hsl(var(--border-color));background-color:hsl(var(--bg-input));width:100%;color:hsl(var(--text-primary));transition:var(--transition-normal);border-radius:50px;outline:none;padding:.65rem 1rem .65rem 2.75rem;font-size:.95rem}.search-input:focus{border-color:hsl(var(--primary));box-shadow:0 0 0 3px hsla(var(--primary) / .15);background-color:#fff}.search-icon{color:hsl(var(--text-muted));pointer-events:none;position:absolute;top:50%;left:1rem;transform:translateY(-50%)}.nav-actions{align-items:center;gap:1.25rem;display:flex}.points-badge{background:linear-gradient(135deg, hsla(var(--primary) / .1), hsla(var(--primary) / .03));border:1px solid hsla(var(--primary) / .3);color:hsl(var(--primary-hover));box-shadow:var(--shadow-sm);border-radius:20px;align-items:center;gap:.4rem;padding:.4rem .8rem;font-size:.85rem;font-weight:600;display:flex}.btn-icon{color:hsl(var(--text-secondary));cursor:pointer;transition:var(--transition-fast);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:.5rem;display:flex;position:relative}.btn-icon:hover{background-color:hsl(var(--bg-input));color:hsl(var(--text-primary))}.btn-badge{background-color:hsl(var(--primary));color:#000;width:18px;height:18px;box-shadow:var(--shadow-sm);border-radius:50%;justify-content:center;align-items:center;font-size:.7rem;font-weight:800;display:flex;position:absolute;top:-2px;right:-2px}.user-profile-btn{background-color:hsl(var(--bg-input));border:1px solid hsl(var(--border-color));cursor:pointer;transition:var(--transition-fast);border-radius:30px;align-items:center;gap:.5rem;padding:.45rem 1rem;font-weight:500;display:flex}.user-profile-btn:hover{border-color:hsla(var(--text-primary) / .15);background-color:#fff}.categories-bar{white-space:nowrap;scrollbar-width:none;align-items:center;gap:.75rem;max-width:1400px;margin:1rem auto 0;padding:0 1.5rem;display:flex;overflow-x:auto}.categories-bar::-webkit-scrollbar{display:none}.category-pill{background-color:hsl(var(--bg-card));border:1px solid hsl(var(--border-color));color:hsl(var(--text-secondary));cursor:pointer;transition:var(--transition-fast);border-radius:20px;padding:.45rem 1rem;font-size:.85rem;font-weight:500}.category-pill:hover,.category-pill.active{background-color:hsl(var(--primary));border-color:hsl(var(--primary));color:#000;box-shadow:var(--shadow-glow);font-weight:600}.main-container{max-width:1400px;margin:1.5rem auto 3rem;padding:0 1.5rem}.hero-banner{box-shadow:var(--shadow-sm);background:linear-gradient(135deg,#fffbeb 0%,#fef3c7 100%);border:1px solid #fde68a;border-radius:16px;justify-content:space-between;align-items:center;margin-bottom:2rem;padding:2.5rem;display:flex;position:relative;overflow:hidden}.hero-banner:before{content:"";background:radial-gradient(circle, hsla(var(--primary) / .15) 0%, transparent 70%);pointer-events:none;border-radius:50%;width:500px;height:500px;position:absolute;top:-50%;right:-20%}.hero-content{z-index:1;max-width:600px}.hero-tag{color:hsl(var(--primary-hover));text-transform:uppercase;letter-spacing:1.5px;margin-bottom:.5rem;font-size:.8rem;font-weight:700;display:inline-block}.hero-content h1{color:#0f172a;margin-bottom:1rem;font-size:2.25rem;font-weight:800;line-height:1.2}.hero-content p{color:#475569;margin-bottom:1.5rem;font-size:1rem}.section-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.section-title{font-size:1.35rem;font-weight:700}.products-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.5rem;display:grid}.product-card{background-color:hsl(var(--bg-card));border:1px solid hsl(var(--border-color));height:100%;transition:transform var(--transition-normal), border-color var(--transition-normal), box-shadow var(--transition-normal);box-shadow:var(--shadow-sm);border-radius:14px;flex-direction:column;display:flex;position:relative;overflow:hidden}.product-card:hover{border-color:hsla(var(--primary) / .5);box-shadow:var(--shadow-md), var(--shadow-glow);transform:translateY(-5px)}.product-badge-discount{background-color:hsl(var(--primary));color:#000;z-index:2;box-shadow:var(--shadow-sm);border-radius:6px;padding:.25rem .5rem;font-size:.75rem;font-weight:800;position:absolute;top:12px;left:12px}.product-badge-points{background-color:hsl(var(--bg-app));border:1px solid hsla(var(--primary) / .3);color:hsl(var(--primary-hover));z-index:2;border-radius:6px;padding:.25rem .5rem;font-size:.7rem;font-weight:700;position:absolute;top:12px;right:12px}.product-image-container{border-bottom:1px solid hsl(var(--border-color));background-color:#f8fafc;justify-content:center;align-items:center;height:200px;display:flex;position:relative;overflow:hidden}.product-image{object-fit:cover;max-width:100%;max-height:100%;transition:transform var(--transition-normal)}.product-card:hover .product-image{transform:scale(1.05)}.product-placeholder-image{color:hsl(var(--text-muted));flex-direction:column;align-items:center;gap:.5rem;font-size:.8rem;display:flex}.product-info{flex-direction:column;flex:1;padding:1.25rem;display:flex}.product-category-text{color:hsl(var(--primary-hover));text-transform:uppercase;margin-bottom:.4rem;font-size:.75rem;font-weight:600}.product-name{color:hsl(var(--text-primary));-webkit-line-clamp:2;-webkit-box-orient:vertical;height:2.8rem;margin-bottom:.5rem;font-size:1.05rem;font-weight:600;line-height:1.4;display:-webkit-box;overflow:hidden}.product-rating{color:#fbbe24;align-items:center;gap:.25rem;margin-bottom:.8rem;font-size:.8rem;display:flex}.product-rating span{color:hsl(var(--text-muted));margin-left:.25rem}.product-pricing{align-items:baseline;gap:.5rem;margin-top:auto;margin-bottom:1rem;display:flex}.product-original-price{color:hsl(var(--text-muted));font-size:.85rem;text-decoration:line-through}.product-price{color:hsl(var(--text-primary));font-size:1.3rem;font-weight:700}.product-stock-warning{color:hsl(var(--danger));margin-bottom:.5rem;font-size:.75rem}.product-card-actions{grid-template-columns:1fr;gap:.5rem;display:grid}.btn{cursor:pointer;transition:var(--transition-fast);border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:.5rem;padding:.6rem 1.2rem;font-size:.9rem;font-weight:600;display:inline-flex}.btn-primary{background-color:hsl(var(--primary));color:#000}.btn-primary:hover{background-color:hsl(var(--primary-hover));box-shadow:0 0 12px hsla(var(--primary) / .25)}.btn-primary:disabled{color:#94a3b8;cursor:not-allowed;box-shadow:none;background-color:#e2e8f0}.btn-secondary{color:#1e293b;background-color:#f1f5f9;border-color:#e2e8f0}.btn-secondary:hover{background-color:#e2e8f0}.btn-outline{color:hsl(var(--text-primary));border-color:hsl(var(--border-color));background-color:#0000}.btn-outline:hover{background-color:hsl(var(--bg-input));border-color:hsla(var(--text-primary) / .15)}.btn-outline:disabled{color:hsl(var(--text-muted));border-color:hsl(var(--border-color));cursor:not-allowed}.btn-danger{background-color:hsla(var(--danger) / .1);color:hsl(var(--danger));border-color:hsla(var(--danger) / .2)}.btn-danger:hover{background-color:hsl(var(--danger));color:#fff}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:200;background-color:#0f172a66;justify-content:center;align-items:center;padding:1.5rem;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.modal-content{background-color:hsl(var(--bg-card));border:1px solid hsl(var(--border-color));width:100%;max-width:600px;box-shadow:var(--shadow-lg);border-radius:16px;animation:.3s cubic-bezier(.34,1.56,.64,1) scaleIn;overflow:hidden}.modal-header{border-bottom:1px solid hsl(var(--border-color));justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.modal-title{font-size:1.2rem;font-weight:700}.modal-body{max-height:75vh;padding:1.5rem;overflow-y:auto}.modal-footer{border-top:1px solid hsl(var(--border-color));justify-content:flex-end;gap:.75rem;padding:1.25rem 1.5rem;display:flex}.drawer-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;background-color:#0f172a4d;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer-content{background-color:hsl(var(--bg-card));border-left:1px solid hsl(var(--border-color));width:100%;max-width:450px;height:100%;box-shadow:var(--shadow-lg);flex-direction:column;animation:.3s cubic-bezier(.16,1,.3,1) slideInRight;display:flex}.drawer-header{border-bottom:1px solid hsl(var(--border-color));justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.drawer-body{flex:1;padding:1.5rem;overflow-y:auto}.drawer-footer{border-top:1px solid hsl(var(--border-color));background-color:hsl(var(--bg-input));padding:1.5rem}.form-group{margin-bottom:1.25rem}.form-label{color:hsl(var(--text-secondary));margin-bottom:.5rem;font-size:.85rem;font-weight:600;display:block}.form-control{border:1px solid hsl(var(--border-color));background-color:hsl(var(--bg-input));width:100%;color:hsl(var(--text-primary));transition:var(--transition-fast);border-radius:8px;outline:none;padding:.7rem 1rem;font-size:.95rem}.form-control:focus{border-color:hsl(var(--primary));box-shadow:0 0 0 3px hsla(var(--primary) / .1);background-color:#fff}.form-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23475569'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'/%3E%3C/svg%3E");background-position:right 1rem center;background-repeat:no-repeat;background-size:1rem}.form-row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.cart-item{border-bottom:1px solid hsl(var(--border-color));gap:1rem;margin-bottom:1.25rem;padding-bottom:1.25rem;display:flex}.cart-item-img{border:1px solid hsl(var(--border-color));background-color:#f8fafc;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:80px;height:80px;display:flex;overflow:hidden}.cart-item-img img{object-fit:cover;max-width:100%;max-height:100%}.cart-item-info{flex-direction:column;flex:1;display:flex}.cart-item-name{margin-bottom:.25rem;font-size:.95rem;font-weight:600;line-height:1.3}.cart-item-price{color:hsl(var(--text-primary));margin-bottom:.5rem;font-size:.95rem;font-weight:700}.cart-item-actions{justify-content:space-between;align-items:center;margin-top:auto;display:flex}.quantity-selector{border:1px solid hsl(var(--border-color));background-color:#fff;border-radius:6px;align-items:center;display:flex;overflow:hidden}.quantity-btn{cursor:pointer;width:28px;height:28px;transition:var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;font-weight:700;display:flex}.quantity-btn:hover{background-color:hsl(var(--bg-input))}.quantity-value{text-align:center;width:32px;font-size:.85rem;font-weight:600}.admin-layout{grid-template-columns:240px 1fr;gap:2rem;display:grid}.admin-sidebar{background-color:hsl(var(--bg-card));border:1px solid hsl(var(--border-color));height:fit-content;box-shadow:var(--shadow-sm);border-radius:12px;padding:1.25rem}.admin-sidebar-title{color:hsl(var(--text-muted));text-transform:uppercase;letter-spacing:1px;margin-bottom:1rem;padding-left:.5rem;font-size:.75rem;font-weight:700}.admin-menu-item{color:hsl(var(--text-secondary));cursor:pointer;transition:var(--transition-fast);text-align:left;border-radius:8px;align-items:center;gap:.75rem;width:100%;margin-bottom:.25rem;padding:.7rem 1rem;font-weight:500;display:flex}.admin-menu-item:hover,.admin-menu-item.active{background-color:hsla(var(--primary) / .1);color:hsl(var(--primary-hover));border-color:#0000;font-weight:600}.admin-panel-card{background-color:hsl(var(--bg-card));border:1px solid hsl(var(--border-color));box-shadow:var(--shadow-sm);border-radius:12px;margin-bottom:1.5rem;padding:1.5rem}.admin-table-container{overflow-x:auto}.admin-table{border-collapse:collapse;text-align:left;width:100%;font-size:.9rem}.admin-table th{border-bottom:2px solid hsl(var(--border-color));color:hsl(var(--text-secondary));padding:1rem;font-weight:600}.admin-table td{border-bottom:1px solid hsl(var(--border-color));vertical-align:middle;padding:1rem}.status-badge{text-transform:uppercase;border-radius:4px;padding:.25rem .5rem;font-size:.75rem;font-weight:700;display:inline-flex}.status-badge.activo{background-color:hsla(var(--success) / .12);color:hsl(var(--success))}.status-badge.inactivo{background-color:hsla(var(--danger) / .12);color:hsl(var(--danger))}.image-preview-admin{border:1px solid hsl(var(--border-color));background-color:#f8fafc;border-radius:6px;justify-content:center;align-items:center;width:50px;height:50px;display:flex;overflow:hidden}.image-preview-admin img{object-fit:cover;max-width:100%;max-height:100%}.file-upload-zone{border:2px dashed hsl(var(--border-color));text-align:center;background-color:hsl(var(--bg-input));cursor:pointer;transition:var(--transition-fast);border-radius:8px;margin-bottom:1rem;padding:1.5rem}.file-upload-zone:hover{border-color:hsl(var(--primary));background-color:#fff}.file-upload-zone p{color:hsl(var(--text-secondary));font-size:.85rem}.points-summary-card{background:linear-gradient(135deg, hsla(var(--primary) / .12) 0%, hsla(var(--success) / .05) 100%);border:1px solid hsla(var(--primary) / .2);border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:2rem;padding:2rem;display:flex}.points-number{color:hsl(var(--primary-hover));text-shadow:var(--shadow-glow);font-size:3rem;font-weight:800;line-height:1}.points-tier{color:hsl(var(--text-primary));margin-top:.25rem;font-size:1.1rem;font-weight:700}.order-history-card{border:1px solid hsl(var(--border-color));background-color:hsl(var(--bg-card));box-shadow:var(--shadow-sm);border-radius:12px;margin-bottom:1rem;padding:1.25rem}.order-history-header{border-bottom:1px solid hsl(var(--border-color));color:hsl(var(--text-secondary));justify-content:space-between;margin-bottom:.75rem;padding-bottom:.75rem;font-size:.85rem;display:flex}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}@media (width<=900px){.admin-layout{grid-template-columns:1fr}}@media (width<=768px){.header-container{flex-direction:column;align-items:stretch;gap:.75rem}.search-section{max-width:100%}.nav-actions{justify-content:space-between}.hero-banner{text-align:center;flex-direction:column;padding:1.5rem}}
