
:root{
  --bg:#f7f5fb; --card:#fff; --text:#221a2b; --muted:#746b7d;
  --primary:#5b2a86; --primary2:#7d4bb0; --border:#e7e0ee; --danger:#a62828;
}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text)}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.topbar{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:14px 22px;background:#ffffffec;backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}
.brand{display:flex;align-items:center;gap:12px}.brand small{display:block;color:var(--muted)}
.logo{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,var(--primary),var(--primary2));color:#fff;font-weight:900}
.actions,.row{display:flex;gap:10px;flex-wrap:wrap}
.primary,.ghost,.danger,.linkbtn{border:0;border-radius:12px;padding:11px 15px;font-weight:700;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
.primary{background:var(--primary);color:#fff}.ghost{background:#fff;border:1px solid var(--border);color:var(--text)}.danger{background:#fff0f0;color:var(--danger);border:1px solid #f1caca}
.hero{padding:56px 22px;background:linear-gradient(135deg,#efe5f9,#fff);display:flex;align-items:end;justify-content:space-between;gap:24px}
.hero h1{font-size:clamp(34px,6vw,66px);line-height:1.08;margin:10px 0 16px;max-width:760px;padding-bottom:.08em}
.hero p{font-size:18px;color:var(--muted);max-width:720px}.eyebrow{font-size:12px;font-weight:900;letter-spacing:.16em;color:var(--primary)}
.wa-link{background:#1f9d55;color:#fff;padding:13px 17px;border-radius:12px;text-decoration:none;font-weight:800;white-space:nowrap}
.container,.admin-container{max-width:1200px;margin:auto;padding:24px 18px 70px}
.toolbar{display:grid;grid-template-columns:2fr 1fr 1fr auto auto;gap:10px;background:#fff;padding:14px;border-radius:16px;border:1px solid var(--border)}
.toolbar input,.toolbar select,.form-grid input,.form-grid select,.form-grid textarea,#cartNote{width:100%;padding:12px;border:1px solid var(--border);border-radius:10px;background:#fff}
.check{display:flex;align-items:center;gap:7px;white-space:nowrap}.chips{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.chip{border:1px solid var(--border);background:#fff;padding:9px 13px;border-radius:999px}.chip.active{background:var(--primary);color:#fff}
.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.card{background:#fff;border:1px solid var(--border);border-radius:18px;overflow:hidden;display:flex;flex-direction:column}
.card-img{aspect-ratio:1/1;background:#eee center/cover no-repeat;position:relative}.badge{position:absolute;left:10px;top:10px;background:#fff;border-radius:999px;padding:6px 9px;font-size:12px;font-weight:900}.badge.offer{background:#fff0b8}.badge.out{background:#fde3e3}
.card-body{padding:14px}.card h3{margin:0 0 7px}.meta{font-size:13px;color:var(--muted)}.price{font-size:22px;font-weight:900;margin:10px 0}.old{text-decoration:line-through;color:var(--muted);font-size:14px;margin-left:6px}
.card-actions{display:flex;gap:8px}.card-actions button{flex:1}
.empty{padding:50px;text-align:center;color:var(--muted)}.hidden{display:none}
dialog{border:0;border-radius:20px;padding:22px;max-width:min(760px,92vw);width:100%;box-shadow:0 30px 90px #0003}dialog::backdrop{background:#1e1526aa}.close{float:right;border:0;background:#eee;width:38px;height:38px;border-radius:50%;font-size:23px}
.detail{display:grid;grid-template-columns:1fr 1fr;gap:22px}.detail-img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:16px;background:#eee}.option-row{display:flex;gap:8px;flex-wrap:wrap;margin:9px 0}.option{border:1px solid var(--border);padding:8px 10px;border-radius:10px;background:#fff}.option.selected{background:var(--primary);color:#fff}.full{width:100%}
.cart-item,.fav-item,.admin-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}.cart-total{font-size:18px;margin:18px 0}.admin-fab{position:fixed;right:20px;bottom:20px;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:#222;color:#fff;text-decoration:none;font-size:22px}
.admin-page{background:#f2eff6}.admin-card{background:#fff;border:1px solid var(--border);border-radius:18px;padding:20px;margin-bottom:18px}.admin-head{display:flex;justify-content:space-between;align-items:center;gap:20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid label{display:grid;gap:6px;font-weight:700}.span2{grid-column:1/-1}
.admin-item .thumb{width:58px;height:58px;border-radius:12px;background:#eee center/cover no-repeat}.admin-item-main{display:flex;align-items:center;gap:12px;flex:1}.admin-item-actions{display:flex;gap:7px}
@media(max-width:900px){.grid{grid-template-columns:repeat(2,1fr)}.toolbar{grid-template-columns:1fr 1fr}.hero{align-items:flex-start;flex-direction:column}.detail{grid-template-columns:1fr}}
@media(max-width:560px){.topbar{padding:12px}.brand small{display:none}.actions .ghost{display:none}.grid{grid-template-columns:1fr}.toolbar{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.span2{grid-column:auto}.admin-head{align-items:flex-start;flex-direction:column}}

.hint{color:var(--muted);font-weight:500;font-size:12px}
.image-preview-wrap{display:flex;justify-content:flex-start}
.image-preview{width:160px;height:160px;object-fit:cover;border-radius:14px;border:1px solid var(--border);background:#f3f0f6;display:none}

.logo img{width:100%;height:100%;object-fit:contain;border-radius:12px;display:none;background:#fff}
.logo.has-image{background:#fff;border:1px solid var(--border);padding:3px}.logo.has-image img{display:block}.logo.has-image span{display:none}
.logo-preview{width:110px;height:110px;object-fit:contain;border:1px solid var(--border);border-radius:16px;background:#fff;display:none}
.gallery-admin-preview{display:grid;grid-template-columns:repeat(auto-fill,minmax(95px,1fr));gap:10px}
.gallery-admin-item{position:relative}.gallery-admin-item img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:12px;border:1px solid var(--border)}
.gallery-admin-item button{position:absolute;right:5px;top:5px;border:0;background:#fff;color:#a62828;width:28px;height:28px;border-radius:50%;font-weight:900}
.gallery-wrap{display:grid;gap:10px}.detail-img{cursor:zoom-in}.detail-thumbs{display:flex;gap:8px;overflow:auto;padding-bottom:4px}
.detail-thumb{width:68px;height:68px;object-fit:cover;border:2px solid transparent;border-radius:10px;cursor:pointer;background:#eee}.detail-thumb.active{border-color:var(--primary)}

.hidden-count{display:none}
.actions button span:not(.hidden-count){
  margin-left:6px;min-width:22px;height:22px;padding:0 6px;border-radius:999px;
  display:inline-grid;place-items:center;font-size:12px;font-weight:900;
  background:#f1e9f8;color:var(--primary)
}
.actions .primary span:not(.hidden-count){background:#ffffff26;color:#fff}
.login-gate{position:fixed;inset:0;z-index:9999;background:rgba(25,16,34,.82);display:flex;align-items:center;justify-content:center;padding:20px}.login-gate.hidden{display:none}.login-card{width:min(420px,100%);background:#fff;border-radius:22px;padding:28px;box-shadow:0 24px 70px rgba(0,0,0,.3);display:grid;gap:14px}.login-card .logo{margin:auto}.login-card h2,.login-card p{text-align:center;margin:0}.login-card label{display:grid;gap:6px;font-weight:700}.login-card input{width:100%;box-sizing:border-box}.login-error{color:#b42318;min-height:1.2em;text-align:center}.sync-status{font-size:13px;opacity:.75;align-self:center}.sync-status.busy{opacity:1}.sync-status.ok{color:#177245}.sync-status.error{color:#b42318}.admin-page.locked main,.admin-page.locked header{filter:blur(2px);pointer-events:none}.gallery-admin-item .remote-mark{position:absolute;left:5px;bottom:5px;background:rgba(0,0,0,.65);color:#fff;font-size:10px;padding:2px 5px;border-radius:5px}

/* Catálogo Core v3 · más vida, color y calidez */
:root{
  --bg:#fff9fd;--card:#ffffff;--text:#28142f;--muted:#806b84;
  --primary:#7b2cbf;--primary2:#d62976;--accent:#27c2a2;--accent2:#ffb703;
  --border:#eadcf0;--danger:#b4234c;--shadow:0 14px 38px rgba(99,39,128,.10)
}
body{background:radial-gradient(circle at 10% 0%,#f7eaff 0,transparent 28%),radial-gradient(circle at 95% 20%,#e7fff8 0,transparent 24%),var(--bg)}
.topbar{background:rgba(255,255,255,.92);box-shadow:0 4px 22px rgba(79,27,101,.06)}
.logo{background:linear-gradient(135deg,var(--primary),var(--primary2) 60%,#ff5b9d)}
.primary{background:linear-gradient(135deg,var(--primary),var(--primary2));box-shadow:0 8px 18px rgba(123,44,191,.18);transition:.2s transform,.2s box-shadow}
.primary:hover{transform:translateY(-1px);box-shadow:0 11px 24px rgba(123,44,191,.24)}
.ghost{transition:.2s;border-color:#e5d4ed}.ghost:hover{border-color:#c59bd7;background:#fcf7ff}
.hero{position:relative;overflow:hidden;background:linear-gradient(120deg,#f3e7ff 0%,#fff4fa 48%,#eafff9 100%);border-bottom:1px solid #efdcf5}
.hero:before,.hero:after{content:"";position:absolute;border-radius:50%;filter:blur(2px);opacity:.55}.hero:before{width:180px;height:180px;background:#f7b8dc;right:8%;top:-85px}.hero:after{width:130px;height:130px;background:#a8f0de;right:28%;bottom:-85px}
.hero> *{position:relative;z-index:1}.hero h1{background:linear-gradient(90deg,#4a1c68,#9b2dbb,#d62976);-webkit-background-clip:text;background-clip:text;color:transparent}.eyebrow{color:#c02575}.wa-link{background:linear-gradient(135deg,#10a66a,#25c989);box-shadow:0 8px 20px rgba(16,166,106,.2)}
.toolbar,.card,.admin-card{box-shadow:var(--shadow)}
.toolbar{border:1px solid #eadcf0;background:rgba(255,255,255,.94)}
.toolbar input:focus,.toolbar select:focus,.form-grid input:focus,.form-grid textarea:focus,.form-grid select:focus,#cartNote:focus,.customer-grid input:focus{outline:3px solid rgba(123,44,191,.12);border-color:#b67bd0}
.chip{font-weight:700}.chip:nth-child(3n+2){border-color:#f3b7d1}.chip:nth-child(3n+3){border-color:#9fe0d1}.chip.active{background:linear-gradient(135deg,var(--primary),var(--primary2));border-color:transparent}
.card{border:1px solid #eadcf0;transition:.22s transform,.22s box-shadow}.card:hover{transform:translateY(-4px);box-shadow:0 18px 44px rgba(99,39,128,.16)}
.card-img{background-color:#f5eefa}.badge{box-shadow:0 5px 14px #0001}.badge.offer{background:#fff0a8;color:#725700}.badge.out{background:#ffe2ec;color:#9c2250}.badge.featured{background:#dff9f2;color:#13735d}
.price{color:#7b2cbf}.heart-btn{font-size:20px;color:#d62976}
.admin-page{background:linear-gradient(135deg,#f8efff,#fff8fb 55%,#effffb)}
.admin-card{border-top:4px solid transparent;border-image:linear-gradient(90deg,var(--primary),var(--primary2),var(--accent)) 1}
.stock-builder{border:1px dashed #cfaee0;background:linear-gradient(135deg,#fcf7ff,#f5fffc);padding:14px;border-radius:14px}.stock-builder-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.stock-builder-head small{display:block;color:var(--muted);font-weight:500;margin-top:3px}.variant-stock-rows{display:grid;gap:8px;margin-top:12px}.variant-stock-row{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border:1px solid var(--border);padding:10px 12px;border-radius:12px}.variant-stock-row label{display:flex;align-items:center;gap:8px;font-size:13px}.variant-stock-row input{width:86px}.variant-empty{color:var(--muted);padding:8px 0}
.optimized-mark{position:absolute;left:5px;bottom:5px;background:rgba(30,145,115,.9);color:#fff;font-size:10px;padding:2px 6px;border-radius:5px}
.orders-notice{background:#fff7d8;border:1px solid #f1d57a;color:#725b05;padding:12px 14px;border-radius:12px;margin:12px 0}.admin-orders{display:grid;gap:12px}.order-card{border:1px solid var(--border);border-left:5px solid #d79ce9;border-radius:14px;padding:14px;background:#fff}.order-card.confirmed{border-left-color:#2ebd91}.order-card.cancelled{border-left-color:#d66b8d;opacity:.76}.order-top,.order-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px}.order-status{padding:6px 9px;border-radius:999px;background:#f3e8fa;color:#6f2c91;font-weight:800;font-size:12px}.confirmed .order-status{background:#dcf7ef;color:#13735d}.cancelled .order-status{background:#ffe4ed;color:#9c2250}.order-items{padding:10px 0}.order-note{font-style:italic;color:var(--muted);padding:8px 0}.order-bottom{border-top:1px solid var(--border);padding-top:10px}
.customer-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}.customer-grid input{width:100%;padding:12px;border:1px solid var(--border);border-radius:10px}.order-hint{display:block;color:var(--muted);margin:8px 0 12px}.stock-choice-hint{min-height:22px;margin:9px 0;color:#7b2cbf;font-size:13px;font-weight:700}
@media(max-width:560px){.customer-grid{grid-template-columns:1fr}.stock-builder-head,.variant-stock-row,.order-top,.order-bottom{align-items:flex-start;flex-direction:column}.variant-stock-row label{width:100%;justify-content:space-between}}

/* v3.2 · Fotos completas en móvil + zoom y desplazamiento táctil */
.gallery-wrap{min-width:0}
.detail-img{
  object-fit:contain;
  object-position:center;
  background:#f5f2f6;
  touch-action:none;
  user-select:none;
  -webkit-user-drag:none;
}
.detail-img.is-zoomed{cursor:grab}
.detail-img.is-dragging{cursor:grabbing}
@media(max-width:560px){
  dialog{padding:16px;max-width:calc(100vw - 24px);max-height:92vh;overflow:auto}
  .detail-img{aspect-ratio:auto;height:auto;max-height:62vh;object-fit:contain}
}

/* MORA WOW · identidad propia */
:root{--bg:#fff8fb;--card:#fff;--text:#2d1d2e;--muted:#786775;--primary:#a72d76;--primary2:#6d3cc8;--border:#f0dce9}
.topbar{padding:16px max(22px,calc((100vw - 1240px)/2));background:#fffafced}
.logo{border-radius:50%;background:linear-gradient(135deg,#ff6f91,#a72d76 52%,#6d3cc8);font-family:Georgia,serif;font-size:24px;box-shadow:0 8px 22px #a72d7630}
.hero{min-height:410px;padding:70px max(22px,calc((100vw - 1200px)/2));background:radial-gradient(circle at 82% 28%,#c9fff0 0 11%,transparent 12%),radial-gradient(circle at 72% 68%,#ffd1df 0 17%,transparent 18%),linear-gradient(125deg,#fff2f7,#f4eaff 55%,#e7fff8);position:relative;overflow:hidden}
.hero:after{content:"MORA";position:absolute;right:3vw;bottom:-38px;font:900 clamp(100px,19vw,260px)/1 Georgia,serif;color:#9e3a7b0b;letter-spacing:-.08em;pointer-events:none}
.hero h1{font-family:Georgia,serif;max-width:720px;color:#51234d}.eyebrow{color:#a72d76}.hero-pills{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}.hero-pills span{font-size:11px;font-weight:900;letter-spacing:.08em;background:white;border:1px solid #eccfe1;border-radius:999px;padding:8px 11px}
.wa-link{background:#2e9d79;box-shadow:0 8px 20px #2e9d7930}
.toolbar{margin-top:-34px;position:relative;z-index:3;box-shadow:0 15px 40px #7b2d6810;border-radius:22px;padding:17px}
.grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.card{border-radius:24px;box-shadow:0 9px 28px #5423460c;transition:.22s transform,.22s box-shadow}.card:hover{transform:translateY(-5px);box-shadow:0 18px 38px #54234618}
.card-img{aspect-ratio:3/4;background-color:#f5edf3;background-size:cover}.card-body{padding:17px}.card h3{font-family:Georgia,serif;font-size:20px}.price{color:#79245d}
.badge{box-shadow:0 4px 14px #00000010}.badge.offer{background:#ffdf83}.badge.featured{background:#d7fff2}
.chip.active,.primary{background:linear-gradient(135deg,#a72d76,#6d3cc8)}
@media(max-width:900px){.grid{grid-template-columns:repeat(2,1fr)}.hero{min-height:360px}}
@media(max-width:520px){.grid{grid-template-columns:1fr 1fr;gap:10px}.card-body{padding:12px}.card h3{font-size:17px}.hero{padding-top:48px}.actions .ghost{display:none}}
