:root{
  --bg:#ffffff;
  --bg-soft:#faf8f4;
  --surface:#ffffff;
  --surface-2:#f6f2ea;
  --ink:#1c1a17;
  --ink-dim:#7a7267;
  --line:#eae4d6;
  --gold:#b8874a;
  --gold-bright:#d3a869;
  --gold-shadow:#8a611f;
  --wine:#a23b3b;
  --wine-bright:#c24b4b;
  --shadow-card:0 2px 10px rgba(28,26,23,.06);
  --shadow-lift:0 18px 40px rgba(28,26,23,.14);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--bg); color:var(--ink); font-family:'Poppins',sans-serif; font-weight:400; line-height:1.5; -webkit-font-smoothing:antialiased;}
h1,h2,h3,h4,.serif{font-family:'Poppins',sans-serif;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
button{font-family:inherit; cursor:pointer; border:none;}
::selection{background:var(--gold); color:#fff;}

/* ---------- 3D buttons ---------- */
.btn3d{position:relative; border:none; cursor:pointer; font-family:'Poppins',sans-serif; font-weight:600; letter-spacing:.07em; text-transform:uppercase; transition:transform .12s ease, box-shadow .12s ease, background .18s ease; border-radius:3px;}
.btn3d-gold{background:var(--gold); color:#fff; box-shadow:0 4px 0 var(--gold-shadow), 0 9px 18px rgba(184,135,74,.28);}
.btn3d-gold:hover{background:var(--gold-bright); transform:translateY(-2px); box-shadow:0 6px 0 var(--gold-shadow), 0 14px 24px rgba(184,135,74,.32);}
.btn3d-gold:active{transform:translateY(3px); box-shadow:0 1px 0 var(--gold-shadow), 0 3px 8px rgba(184,135,74,.25);}
.btn3d-dark{background:var(--ink); color:#fff; box-shadow:0 4px 0 #000, 0 9px 18px rgba(0,0,0,.2);}
.btn3d-dark:hover{background:#332f29; transform:translateY(-2px); box-shadow:0 6px 0 #000, 0 14px 22px rgba(0,0,0,.25);}
.btn3d-dark:active{transform:translateY(3px); box-shadow:0 1px 0 #000, 0 3px 8px rgba(0,0,0,.18);}
.btn3d-ghost{background:#fff; color:var(--ink); border:1px solid var(--line); box-shadow:0 4px 0 var(--line), 0 8px 16px rgba(28,26,23,.08);}
.btn3d-ghost:hover{border-color:var(--gold); color:var(--gold); transform:translateY(-2px); box-shadow:0 6px 0 var(--line), 0 12px 20px rgba(28,26,23,.1);}
.btn3d-ghost:active{transform:translateY(3px); box-shadow:0 1px 0 var(--line);}
.btn3d-danger{background:var(--wine-bright); color:#fff; box-shadow:0 4px 0 #7a2733, 0 9px 18px rgba(194,75,75,.3);}
.btn3d-danger:hover{background:#d15a5a; transform:translateY(-2px); box-shadow:0 6px 0 #7a2733, 0 14px 22px rgba(194,75,75,.34);}
.btn3d-danger:active{transform:translateY(3px); box-shadow:0 1px 0 #7a2733;}
.btn3d-sm{padding:9px 16px; font-size:11px;}
.btn3d-md{padding:13px 22px; font-size:12px;}
.btn3d-lg{padding:16px 28px; font-size:13px;}
.btn3d-full{width:100%;}

.eyebrow{font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:var(--gold); font-weight:600;}

/* ---------- Top strip ---------- */
.topstrip{background:var(--ink); overflow:hidden; white-space:nowrap; font-size:12px; letter-spacing:.08em; color:#f3ead9;}
.topstrip .track{display:inline-block; padding:9px 0; animation:scroll-left 26s linear infinite;}
.topstrip span{padding:0 2.5rem; position:relative;}
.topstrip span::after{content:"◆"; color:var(--gold); margin-left:2.5rem; font-size:8px; position:relative; top:-2px;}
@keyframes scroll-left{from{transform:translateX(0);} to{transform:translateX(-50%);}}

/* ---------- Header ---------- */
header{position:sticky; top:0; z-index:40; background:rgba(255,255,255,.94); backdrop-filter:blur(10px); border-bottom:1px solid var(--line);}
.header-inner{max-width:1280px; margin:0 auto; padding:18px 28px; display:flex; align-items:center; gap:28px;}
.logo{font-family:'Poppins',sans-serif; font-weight:700; font-size:27px; letter-spacing:.02em; white-space:nowrap; color:var(--ink);}
.logo span{color:var(--gold);}
.logo small{font-family:'Poppins',sans-serif; font-size:9px; letter-spacing:.3em; color:var(--ink-dim); display:block; text-transform:uppercase; font-weight:500; margin-top:2px;}

.search{flex:1; max-width:520px; position:relative; display:flex; align-items:center; border:1px solid var(--line); border-radius:3px; background:var(--surface-2);}
.search input{flex:1; background:transparent; border:none; outline:none; color:var(--ink); font-family:'Poppins',sans-serif; font-size:14px; padding:11px 14px;}
.search input::placeholder{color:var(--ink-dim);}
.search button{background:none; color:var(--gold); padding:0 14px; font-size:16px;}

.head-actions{display:flex; align-items:center; gap:20px; margin-left:auto;}
.icon-btn{position:relative; display:flex; flex-direction:column; align-items:center; gap:3px; font-size:10px; letter-spacing:.05em; color:var(--ink-dim); background:none;}
.icon-btn .glyph{font-size:19px; color:var(--ink); transition:.15s;}
.icon-btn:hover .glyph{color:var(--gold); transform:translateY(-2px);}
.cart-count{position:absolute; top:-6px; right:-10px; background:var(--wine-bright); color:#fff; font-size:10px; font-weight:700; border-radius:50%; width:17px; height:17px; display:flex; align-items:center; justify-content:center;}

nav.catnav{border-top:1px solid var(--line); background:var(--bg-soft);}
.catnav-inner{max-width:1280px; margin:0 auto; padding:0 28px; display:flex; gap:30px; overflow-x:auto;}
.catnav-inner a{font-size:12.5px; letter-spacing:.06em; text-transform:uppercase; padding:12px 0; color:var(--ink-dim); white-space:nowrap; border-bottom:2px solid transparent; font-weight:500;}
.catnav-inner a:hover, .catnav-inner a.active{color:var(--gold); border-color:var(--gold);}

/* ---------- Hero ---------- */
.hero{max-width:1280px; margin:36px auto 0; padding:0 28px;}
.hero-banner{position:relative; overflow:hidden; border-radius:10px; background-size:cover; background-position:center; padding:80px 70px; display:grid; grid-template-columns:1fr; align-items:center; box-shadow:var(--shadow-lift); background-color:var(--bg-soft); aspect-ratio:2.3/1;}
.hero-banner .scrim{position:absolute; inset:0;}
.hero-banner > *:not(.scrim){position:relative; z-index:1;}
.hero-eyebrow{font-size:12px; letter-spacing:.3em; color:var(--gold); text-transform:uppercase; margin-bottom:18px; font-weight:600;}
.hero-banner.has-photo .hero-eyebrow{color:var(--gold-bright);}
.hero h1{font-size:54px; font-weight:600; line-height:1.05; color:var(--ink);}
.hero h1 em{font-style:italic; color:var(--gold); font-weight:500;}
.hero-banner.has-photo h1{color:#fff; text-shadow:0 2px 14px rgba(0,0,0,.35);}
.hero-banner.has-photo h1 em{color:var(--gold-bright);}
.hero p{margin-top:18px; color:var(--ink-dim); max-width:420px; font-size:15.5px;}
.hero-banner.has-photo p{color:#f0ece2;}
.hero-cta{margin-top:30px; display:inline-flex;}
.hero-pyramid{position:relative; justify-self:center; width:230px;}
.pyr-tier{border:1px solid var(--line); background:#fff; padding:14px 16px; text-align:center; margin:0 auto 10px; box-shadow:var(--shadow-card); border-radius:3px;}
.pyr-tier .pt-label{font-size:9px; letter-spacing:.2em; color:var(--gold); text-transform:uppercase; font-weight:600;}
.pyr-tier .pt-val{font-family:'Poppins',sans-serif; font-size:17px; margin-top:4px;}
.pyr-tier.salida{width:100%;}
.pyr-tier.corazon{width:82%;}
.pyr-tier.fondo{width:64%; margin-bottom:0;}

/* ---------- Category rail ---------- */
.cat-rail{max-width:1280px; margin:56px auto 0; padding:0 28px;}
.cat-rail h2{font-size:26px; font-weight:600; margin-bottom:22px;}
.cat-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); gap:18px;}
.cat-card{text-align:center; border:1px solid var(--line); background:#fff; padding:22px 10px; transition:.25s; border-radius:10px; box-shadow:0 3px 14px rgba(28,26,23,.08);}
.cat-card:hover{border-color:var(--line); transform:translateY(-4px); box-shadow:0 18px 32px rgba(28,26,23,.14);}
.cat-card .ci{font-size:26px; margin-bottom:10px; display:block;}
.cat-card .cn{font-size:11.5px; letter-spacing:.05em; color:var(--ink-dim); text-transform:uppercase; font-weight:500;}

/* ---------- Products ---------- */
.products-section{max-width:1280px; margin:60px auto 0; padding:0 28px;}
.section-head{display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:26px; gap:20px; flex-wrap:wrap;}
.section-head h2{font-size:30px; font-weight:600;}
.section-head p{color:var(--ink-dim); font-size:13.5px; margin-top:4px;}
#productCount{color:var(--gold); font-weight:600;}

.grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:22px;}
.card{background:#fff; border:1px solid var(--line); border-radius:10px; display:flex; flex-direction:column; position:relative; transition:.25s ease; cursor:pointer; box-shadow:0 3px 14px rgba(28,26,23,.08); overflow:hidden;}
.card:hover{border-color:var(--line); transform:translateY(-4px); box-shadow:0 20px 36px rgba(28,26,23,.16);}
.card-img{position:relative; aspect-ratio:4/5; overflow:hidden; background:var(--surface-2);}
.card-img img{width:100%; height:100%; object-fit:contain; padding:10px; transition:transform .3s ease;}
.card:hover .card-img img{transform:scale(1.04);}
.badge{position:absolute; top:12px; left:12px; background:var(--wine-bright); color:#fff; font-size:10.5px; font-weight:700; letter-spacing:.04em; padding:5px 10px; border-radius:2px;}
.badge.top{background:var(--gold); color:#fff; left:auto; right:12px; top:12px;}
.card-body{padding:16px 16px 18px; display:flex; flex-direction:column; gap:8px; flex:1;}
.card-vendor{font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); font-weight:600;}
.card-title{font-family:'Poppins',sans-serif; font-size:18px; font-weight:600; line-height:1.25; min-height:44px;}
.card-stars{color:#d0d0d0; font-size:12px; letter-spacing:1px; margin-top:-2px;}
.card-stars .filled{color:#d4a017;}
.card-stars-count{color:var(--ink-dim); font-size:10.5px; letter-spacing:0; margin-left:3px;}
.card-price{display:flex; align-items:baseline; gap:9px; margin-top:auto; flex-wrap:wrap;}
.price-now{font-family:'Poppins',sans-serif; font-size:23px; font-weight:800; color:var(--gold);}
.price-was{font-size:13px; color:var(--ink-dim); text-decoration:line-through;}
.price-tax{font-size:10px; color:var(--ink-dim);}
.add-btn{margin-top:10px;}

/* ---------- Footer ---------- */
footer{margin-top:90px; border-top:1px solid var(--line); background:var(--bg-soft);}
.foot-inner{max-width:1280px; margin:0 auto; padding:50px 28px 26px; display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:36px;}
.foot-inner h4{font-size:12.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); margin-bottom:14px; font-weight:700;}
.foot-inner p, .foot-inner a{font-size:13px; color:var(--ink-dim); display:block; margin-bottom:8px;}
.foot-inner a:hover{color:var(--gold);}
.foot-bottom{border-top:1px solid var(--line); padding:18px 28px; max-width:1280px; margin:0 auto; font-size:11.5px; color:var(--ink-dim); display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;}

/* ---------- Cart drawer ---------- */
.overlay{position:fixed; inset:0; background:rgba(28,26,23,.45); backdrop-filter:blur(2px); opacity:0; pointer-events:none; transition:.25s; z-index:60;}
.overlay.show{opacity:1; pointer-events:auto;}
.drawer{position:fixed; top:0; right:0; height:100%; width:420px; max-width:92vw; background:#fff; border-left:1px solid var(--line); transform:translateX(100%); transition:.3s ease; z-index:70; display:flex; flex-direction:column; box-shadow:-10px 0 40px rgba(0,0,0,.15);}
.drawer.show{transform:translateX(0);}
.drawer-head{padding:22px 24px; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; align-items:center;}
.drawer-head h3{font-size:22px; font-weight:600;}
.close-x{background:none; color:var(--ink-dim); font-size:22px; line-height:1;}
.close-x:hover{color:var(--gold);}
.drawer-items{flex:1; overflow-y:auto; padding:10px 24px;}
.cart-empty{color:var(--ink-dim); font-size:13.5px; padding:40px 0; text-align:center;}
.cart-row{display:flex; gap:14px; padding:16px 0; border-bottom:1px solid var(--line);}
.cart-row img{width:64px; height:80px; object-fit:cover; background:var(--surface-2); border-radius:3px;}
.cart-row .ci-title{font-size:14px; font-family:'Poppins',sans-serif; font-weight:600; line-height:1.25;}
.cart-row .ci-price{color:var(--gold-shadow); font-size:13.5px; margin-top:4px; font-weight:600;}
.qty-ctrl{display:flex; align-items:center; gap:10px; margin-top:8px;}
.qty-ctrl button{width:24px; height:24px; border:1px solid var(--line); background:#fff; color:var(--ink); font-size:13px; border-radius:3px; box-shadow:0 2px 0 var(--line);}
.qty-ctrl button:hover{border-color:var(--gold); color:var(--gold); transform:translateY(-1px);}
.ci-remove{margin-left:auto; font-size:11px; color:var(--wine-bright); align-self:flex-start; font-weight:600;}
.drawer-foot{padding:20px 24px 26px; border-top:1px solid var(--line);}
.subtotal-row{display:flex; justify-content:space-between; font-size:15px; margin-bottom:14px;}
.subtotal-row b{font-family:'Poppins',sans-serif; font-size:21px; color:var(--gold); font-weight:800;}
.checkout-note{font-size:11px; color:var(--ink-dim); text-align:center; margin-top:10px;}

/* ---------- Modal ---------- */
.modal{position:fixed; inset:0; z-index:80; display:none; align-items:center; justify-content:center; padding:24px;}
.modal.show{display:flex;}
.modal-back{position:absolute; inset:0; background:rgba(28,26,23,.55); backdrop-filter:blur(3px);}
.modal-box{position:relative; background:#fff; border:1px solid var(--line); border-radius:6px; max-width:900px; width:100%; max-height:88vh; overflow-y:auto; box-shadow:var(--shadow-lift);}
.modal-box.narrow{max-width:480px;}
.modal-close{position:absolute; top:16px; right:16px; z-index:5; background:#fff; border:1px solid var(--line); color:var(--ink); width:32px; height:32px; font-size:16px; border-radius:50%; box-shadow:0 3px 0 var(--line);}
.modal-close:hover{border-color:var(--gold); color:var(--gold); transform:translateY(-1px);}

.pd-grid{display:grid; grid-template-columns:1fr 1fr;}
.pd-img{background:var(--surface-2); aspect-ratio:4/5; overflow:hidden;}
.pd-img img{width:100%; height:100%; object-fit:cover;}
.pd-info{padding:40px; display:flex; flex-direction:column;}
.pd-vendor{font-size:11px; letter-spacing:.16em; color:var(--gold); text-transform:uppercase; margin-bottom:10px; font-weight:600;}
.pd-title{font-family:'Poppins',sans-serif; font-size:30px; font-weight:600; line-height:1.15; margin-bottom:14px;}
.pd-price{display:flex; align-items:baseline; gap:12px; margin-bottom:6px; flex-wrap:wrap;}
.pd-price .now{font-family:'Poppins',sans-serif; font-size:30px; color:var(--gold); font-weight:800;}
.pd-price .was{font-size:15px; color:var(--ink-dim); text-decoration:line-through;}
.pd-tax{font-size:11px; color:var(--ink-dim); margin-bottom:16px;}
.pd-desc{font-size:13.5px; color:var(--ink-dim); line-height:1.7; margin-bottom:20px; max-height:180px; overflow-y:auto; padding-right:6px;}
.pd-pyramid{display:flex; gap:10px; margin-bottom:24px;}
.pd-pyramid .pt{flex:1; border:1px solid var(--line); background:var(--surface-2); padding:10px 8px; text-align:center; border-radius:3px;}
.pd-pyramid .pt .lbl{font-size:9px; letter-spacing:.14em; color:var(--gold); text-transform:uppercase; font-weight:600;}
.pd-pyramid .pt .val{font-size:11.5px; margin-top:5px; color:var(--ink-dim); line-height:1.4;}
.pd-qty{display:flex; align-items:center; gap:16px; margin-bottom:16px;}
.pd-qty .qty-ctrl button{width:30px; height:30px;}
.pd-add{margin-top:auto;}

/* ---------- Checkout ---------- */
.co-box{padding:36px;}
.co-box h3{font-size:26px; font-weight:600; margin-bottom:6px;}
.co-box .sub{font-size:12.5px; color:var(--ink-dim); margin-bottom:24px;}
.field{margin-bottom:14px;}
.field label{font-size:11px; letter-spacing:.06em; color:var(--gold); text-transform:uppercase; display:block; margin-bottom:6px; font-weight:600;}
.field input{width:100%; padding:12px 13px; background:var(--surface-2); border:1px solid var(--line); border-radius:3px; color:var(--ink); font-family:'Poppins',sans-serif; font-size:13.5px; outline:none;}
.field input:focus{border-color:var(--gold); background:#fff;}
.field-row{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
.co-total{display:flex; justify-content:space-between; padding:14px 0; border-top:1px solid var(--line); margin:16px 0 20px; font-size:15px;}
.co-total b{color:var(--gold); font-family:'Poppins',sans-serif; font-size:21px; font-weight:800;}
.co-demo{margin-top:16px; padding:12px 14px; background:var(--surface-2); border:1px dashed var(--line); font-size:11.5px; color:var(--ink-dim); line-height:1.6; border-radius:3px;}
.co-success{text-align:center; padding:20px 0;}
.co-success .ok{width:60px; height:60px; border-radius:50%; border:1px solid var(--gold); display:flex; align-items:center; justify-content:center; margin:0 auto 18px; font-size:26px; color:var(--gold);}

.toast{position:fixed; bottom:24px; left:50%; transform:translateX(-50%) translateY(20px); background:var(--ink); color:#fff; padding:13px 26px; font-size:13px; font-weight:600; z-index:90; opacity:0; pointer-events:none; transition:.25s; box-shadow:var(--shadow-lift); border-radius:4px;}
.toast.show{opacity:1; transform:translateX(-50%) translateY(0);}

@media(max-width:780px){
  .header-inner{flex-wrap:wrap; padding:9px 14px; gap:10px;}
  .logo{font-size:19px;}
  .logo small{display:none;}
  .search{order:3; max-width:100%; width:100%; margin-top:2px;}
  .search input{padding:8px 12px; font-size:12.5px;}
  .search button{font-size:14px; padding:0 10px;}
  .head-actions{gap:12px;}
  .icon-btn{flex-direction:row; gap:4px; font-size:0;}
  .icon-btn .glyph{font-size:17px;}
  .cart-count{top:-5px; right:-8px; width:14px; height:14px; font-size:8.5px;}
  .catnav-inner{gap:18px;}
  .catnav-inner a{padding:8px 0; font-size:11px;}
  .topstrip{font-size:10px;}
  .topstrip .track{padding:5px 0;}

  .hero-banner{grid-template-columns:1fr; padding:44px 26px; text-align:center; aspect-ratio:4/3;}
  .hero h1{font-size:36px;}
  .hero p{margin-left:auto; margin-right:auto;}
  .hero-pyramid{margin-top:20px;}
  .foot-inner{grid-template-columns:1fr 1fr;}
  .pd-grid{grid-template-columns:1fr;}
  .products-section, .cat-rail, .hero{padding:0 18px;}

  /* Catálogo en móvil: fila horizontal (foto pequeña izq + datos der), como Electro Depot */
  .grid{grid-template-columns:1fr; gap:12px;}
  .card{flex-direction:row; align-items:stretch; box-shadow:0 2px 10px rgba(28,26,23,.08);}
  .card-img{width:110px; flex-shrink:0; aspect-ratio:auto; height:auto;}
  .badge{font-size:8.5px; padding:3px 6px; top:6px; left:6px;}
  .badge.top{right:6px; top:6px; left:auto;}
  .card-body{padding:10px 12px; gap:4px; flex:1; min-width:0;}
  .card-vendor{font-size:9px;}
  .card-title{font-size:13.5px; min-height:0; line-height:1.25; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;}
  .card-price{margin-top:4px;}
  .price-now{font-size:18px;}
  .price-was{font-size:11px;}
  .add-btn{padding:8px; font-size:9.5px; margin-top:8px; width:auto; align-self:flex-start; padding-left:14px; padding-right:14px;}
  .section-head h2{font-size:22px;}
  .cat-grid{grid-template-columns:repeat(4, 1fr); gap:10px;}
  .cat-card{padding:12px 4px;}
  .cat-card .ci{font-size:19px; margin-bottom:5px;}
  .cat-card .cn{font-size:9px;}
}

/* ================= ADMIN ================= */
.admin-body{background:var(--bg-soft); min-height:100vh;}
.admin-shell{display:grid; grid-template-columns:230px 1fr; min-height:100vh;}
.admin-side{background:var(--ink); color:#f3ead9; padding:26px 0; position:sticky; top:0; height:100vh; overflow-y:auto;}
.admin-side .as-logo{padding:0 22px 22px; font-family:'Poppins',sans-serif; font-size:20px; font-weight:700; border-bottom:1px solid rgba(255,255,255,.12); margin-bottom:12px;}
.admin-side .as-logo span{color:var(--gold-bright); display:block; font-family:'Poppins',sans-serif; font-size:9px; letter-spacing:.2em; text-transform:uppercase; margin-top:3px; font-weight:500;}
.admin-tab{display:flex; align-items:center; gap:11px; padding:13px 22px; font-size:13px; color:#cfc4ac; letter-spacing:.02em; border-left:3px solid transparent; transition:.15s; width:100%; background:none; text-align:left; cursor:pointer; border:none; font-family:'Poppins',sans-serif;}
.admin-tab .ic{font-size:15px; width:18px; text-align:center;}
.admin-tab:hover{background:rgba(255,255,255,.06); color:#fff;}
.admin-tab.active{background:rgba(255,255,255,.08); color:#fff; border-color:var(--gold-bright);}
.admin-tab-parent{justify-content:flex-start; border-left:3px solid transparent;}
.admin-tab-parent .chev{margin-left:auto; font-size:10px; opacity:.6;}
.admin-subgroup{max-height:0; overflow:hidden; transition:max-height .2s ease;}
.admin-subgroup.open{max-height:200px;}
.admin-subtab{display:block; padding:10px 22px 10px 51px; font-size:12.5px; color:#a89b83; text-decoration:none; border-left:3px solid transparent; transition:.15s;}
.admin-subtab:hover{color:#fff; background:rgba(255,255,255,.04);}
.admin-subtab.active{color:var(--gold-bright); font-weight:600; border-color:var(--gold-bright);}
.admin-side .logout-link{margin-top:20px; display:block; padding:13px 22px; font-size:12px; color:#e2a5a5; letter-spacing:.05em; text-transform:uppercase;}
.admin-side .logout-link:hover{color:#fff;}
.admin-main{padding:34px 44px 60px;}
.admin-main h3{font-size:26px; font-weight:600; margin-bottom:6px;}
.admin-main .amsub{font-size:12.5px; color:var(--ink-dim); margin-bottom:26px; max-width:640px;}
.am-row{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
.am-field{margin-bottom:16px;}
.am-field label{font-size:11px; letter-spacing:.06em; color:var(--ink); text-transform:uppercase; display:block; margin-bottom:7px; font-weight:600;}
.am-field .hint{font-size:11px; color:var(--ink-dim); margin-top:5px; font-weight:400; text-transform:none; letter-spacing:0;}
.am-field input[type=text], .am-field input[type=number], .am-field input[type=url], .am-field input[type=password]{
  width:100%; padding:11px 12px; background:#fff; border:1px solid var(--line); border-radius:3px; color:var(--ink); font-family:'Poppins',sans-serif; font-size:13.5px; outline:none; max-width:460px;
}
.am-field input:focus{border-color:var(--gold);}
.swatches{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:14px;}
.swatch{width:34px; height:34px; border-radius:50%; border:2px solid #fff; box-shadow:0 0 0 1px var(--line), 0 3px 8px rgba(0,0,0,.15); cursor:pointer; transition:.15s;}
.swatch:hover{transform:scale(1.12);}
.swatch.active{box-shadow:0 0 0 2px var(--ink);}
.color-input-row{display:flex; align-items:center; gap:12px; margin-bottom:18px;}
.color-input-row input[type=color]{width:52px; height:38px; border:1px solid var(--line); border-radius:4px; cursor:pointer; background:none;}
.toggle-row{display:flex; align-items:center; gap:12px; margin-bottom:16px; padding:12px 14px; background:#fff; border-radius:4px; border:1px solid var(--line); max-width:460px;}
.toggle-row input{width:17px; height:17px; accent-color:var(--gold);}
.toggle-row label{font-size:13px; font-weight:500;}
.drop{border:1.5px dashed var(--line); padding:34px 20px; text-align:center; background:#fff; transition:.2s; cursor:pointer; border-radius:4px; max-width:460px;}

.image-preview-grid{display:flex; flex-wrap:wrap; gap:10px; max-width:640px;}
.image-preview-grid img{width:80px; height:100px; object-fit:cover; border-radius:5px; border:1px solid var(--line); box-shadow:0 2px 8px rgba(28,26,23,.08);}
.preview-limit-note{width:100%; font-size:11.5px; color:var(--wine-bright); font-weight:600; margin-top:4px;}
.drop:hover, .drop.drag{border-color:var(--gold); background:#fdf9f2;}
.drop .di{font-size:28px; margin-bottom:8px; color:var(--gold);}
.drop p{font-size:13px; color:var(--ink-dim);}
.drop small{color:var(--gold); text-decoration:underline;}
.imp-status{margin-top:14px; font-size:12.5px; color:var(--ink-dim); min-height:18px;}
.imp-status.ok{color:var(--gold-shadow); font-weight:600;}
.imp-status.error{color:var(--wine-bright); font-weight:600;}
.imp-actions{display:flex; gap:10px; margin-top:18px;}
.banner-preview{border:1px solid var(--line); border-radius:4px; padding:18px; background:#fff; margin-top:6px; font-size:12px; color:var(--ink-dim); max-width:460px;}
table.orders-table{width:100%; border-collapse:collapse; font-size:13px; background:#fff; border:1px solid var(--line); border-radius:4px; overflow:hidden;}
table.orders-table th{text-align:left; padding:13px 12px; background:var(--ink); font-size:10.5px; letter-spacing:.06em; text-transform:uppercase; color:#f3ead9; border-bottom:none; font-weight:700;}

/* ---------- Inventario: cabecera negra + barra de edición por lote ---------- */
.inventory-table thead th{background:var(--ink); color:#f3ead9; border-bottom:none; padding:13px 12px;}
.inventory-table .th-photo{text-align:center;}
.inventory-table .td-photo{text-align:center;}
.inventory-table .td-photo img{width:40px; height:50px; object-fit:cover; border-radius:3px; border:1px solid var(--line);}
.inventory-table td, .inventory-table th{vertical-align:middle;}
.bulk-stock-bar{display:flex; align-items:center; gap:10px; flex-wrap:wrap; background:#fff; border:1px solid var(--line); border-radius:6px; padding:14px 16px; margin-bottom:16px; box-shadow:0 2px 10px rgba(28,26,23,.06);}
.bulk-stock-label{font-size:12.5px; font-weight:700; color:var(--ink); margin-right:4px;}
.bulk-stock-bar input[type=number]{padding:8px 10px; border:1px solid var(--line); border-radius:4px; font-family:'Poppins',sans-serif; font-size:13px;}
.bulk-stock-count{margin-left:auto; font-size:12px; color:var(--ink-dim); font-weight:600;}
table.orders-table td{padding:12px; border-bottom:1px solid var(--line); vertical-align:top;}
table.orders-table tr:last-child td{border-bottom:none;}
table.orders-table tr:hover td{background:var(--surface-2);}
.order-status{display:inline-block; padding:4px 10px; background:#e9f5ea; color:#2e7d32; font-size:10.5px; font-weight:700; border-radius:20px; letter-spacing:.03em;}

.order-filter-tabs{display:flex; gap:4px; margin-bottom:18px; border-bottom:1px solid var(--line);}

.config-subnav{display:flex; gap:4px; margin-bottom:24px; border-bottom:1px solid var(--line); flex-wrap:wrap;}
.config-subnav a{padding:10px 16px; font-size:13px; color:var(--ink-dim); text-decoration:none; border-bottom:2px solid transparent; font-weight:500; white-space:nowrap;}
.config-subnav a:hover{color:var(--ink);}
.config-subnav a.active{color:var(--gold); border-color:var(--gold); font-weight:700;}

.iva-mode-row{display:flex; gap:12px; flex-wrap:wrap;}
.iva-mode-btn{cursor:pointer;}
.iva-mode-btn input{display:none;}
.iva-mode-btn .btn3d{display:flex; flex-direction:column; align-items:flex-start; gap:3px; text-align:left; min-width:200px;}
.iva-mode-btn .btn3d small{font-size:10px; font-weight:400; text-transform:none; letter-spacing:0; opacity:.8;}
.iva-mode-btn.active .btn3d{background:var(--gold); color:#fff; box-shadow:0 4px 0 var(--gold-shadow), 0 9px 18px rgba(184,135,74,.28);}
.order-filter-tabs a{padding:10px 16px; font-size:13px; color:var(--ink-dim); text-decoration:none; border-bottom:2px solid transparent; font-weight:500;}
.order-filter-tabs a:hover{color:var(--ink);}
.order-filter-tabs a.active{color:var(--gold); border-color:var(--gold); font-weight:700;}
.order-row{cursor:pointer;}
.order-row:hover td{background:var(--surface-2);}
.status-pill{display:inline-block; padding:4px 10px; font-size:11px; font-weight:700; border-radius:20px; white-space:nowrap;}
.status-ok{background:#e9f5ea; color:#2e7d32;}
.status-warn{background:#fdf1de; color:#a3691a;}
.status-neutral{background:#eef0f5; color:#4a5568;}
.status-cancelled{background:#fbe9e9; color:#a23b3b;}
.orders-empty{text-align:center; padding:60px 20px; color:var(--ink-dim); font-size:13.5px; background:#fff; border:1px solid var(--line); border-radius:4px;}
.orders-empty .oe-ic{font-size:34px; margin-bottom:14px; color:var(--line);}
.order-items-mini{font-size:11.5px; color:var(--ink-dim); margin-top:4px;}

.review-edit-form{padding:6px 0;}
.review-edit-row{display:flex; gap:8px; margin-bottom:6px;}
.review-edit-row input{flex:1; padding:8px 10px; border:1px solid var(--line); border-radius:4px; font-family:'Poppins',sans-serif; font-size:12.5px;}
.review-edit-row select{padding:8px 10px; border:1px solid var(--line); border-radius:4px; font-family:'Poppins',sans-serif; font-size:12.5px; color:var(--gold);}
.review-edit-form textarea{width:100%; padding:9px 10px; border:1px solid var(--line); border-radius:4px; font-family:'Poppins',sans-serif; font-size:12.5px; resize:vertical;}

/* ---------- Inicio: tarjetas de estadísticas y gráfico ---------- */
.stat-cards{display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:16px; margin-bottom:30px;}
.stat-card{background:#fff; border:1px solid var(--line); border-radius:8px; padding:20px; box-shadow:0 3px 14px rgba(28,26,23,.06);}
.sc-label{font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-dim); font-weight:600; margin-bottom:8px;}
.sc-value{font-size:28px; font-weight:800; color:var(--ink);}
.sc-sub{font-size:11.5px; color:var(--gold); margin-top:4px; font-weight:600;}
.chart-box{background:#fff; border:1px solid var(--line); border-radius:8px; padding:24px; margin-bottom:10px; box-shadow:0 3px 14px rgba(28,26,23,.06);}
.chart-title{font-size:13px; font-weight:700; color:var(--ink-dim); margin-bottom:18px;}
.chart-bars{display:flex; align-items:flex-end; gap:6px; height:160px;}
.chart-col{flex:1; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; height:100%;}
.chart-bar{width:100%; max-width:26px; background:var(--gold); border-radius:3px 3px 0 0; min-height:2px; transition:.2s;}
.chart-bar:hover{background:var(--gold-bright);}
.chart-label{font-size:9.5px; color:var(--ink-dim); margin-top:8px; white-space:nowrap;}
@media(max-width:780px){
  .chart-bars{height:120px;}
  .chart-label{display:none;}
}
.flash{padding:12px 16px; border-radius:4px; font-size:13px; margin-bottom:20px; max-width:640px;}
.flash.ok{background:#e9f5ea; color:#2e7d32; border:1px solid #bfe3c3;}
.flash.error{background:#fbe9e9; color:#a23b3b; border:1px solid #f0c2c2;}

/* ---------- Login page ---------- */
.login-wrap{min-height:100vh; display:flex; align-items:center; justify-content:center; background:var(--bg-soft); padding:20px;}
.login-card{background:#fff; border:1px solid var(--line); border-radius:6px; padding:44px 40px; max-width:380px; width:100%; box-shadow:var(--shadow-lift);}
.login-card .ll-logo{font-family:'Poppins',sans-serif; font-weight:700; font-size:26px; text-align:center; margin-bottom:4px;}
.login-card .ll-logo span{color:var(--gold);}
.login-card .ll-sub{text-align:center; font-size:11px; letter-spacing:.15em; text-transform:uppercase; color:var(--ink-dim); margin-bottom:30px;}
.login-card .field{margin-bottom:16px;}
.login-card .field label{font-size:11px; letter-spacing:.06em; color:var(--gold); text-transform:uppercase; display:block; margin-bottom:6px; font-weight:600;}
.login-card .field input{width:100%; padding:13px; background:var(--surface-2); border:1px solid var(--line); border-radius:3px; font-size:14px; outline:none;}
.login-card .field input:focus{border-color:var(--gold); background:#fff;}
.login-error{background:#fbe9e9; color:#a23b3b; border:1px solid #f0c2c2; padding:11px 14px; border-radius:4px; font-size:12.5px; margin-bottom:18px;}
.login-hint{margin-top:22px; text-align:center; font-size:11px; color:var(--ink-dim); line-height:1.6;}

@media(max-width:900px){
  .admin-shell{grid-template-columns:1fr;}
  .admin-side{position:static; height:auto; display:flex; overflow-x:auto; padding:14px 10px;}
  .admin-side .as-logo{display:none;}
  .admin-tab{white-space:nowrap; border-left:none; border-bottom:3px solid transparent;}
  .admin-tab.active{border-color:var(--gold-bright);}
  .admin-main{padding:26px 20px 50px;}
  .am-row{grid-template-columns:1fr;}
}
