.catalogo-layout { max-width:1360px; margin:32px auto 54px; padding:0 28px; display:grid; grid-template-columns:260px 1fr; gap:30px; align-items:start; }
.contenido-catalogo { min-width:0; }
.sidebar { background:#fff; border:1px solid var(--borde); border-radius:var(--radio); padding:22px; position:sticky; top:150px; }
.sidebar-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:18px; }
.sidebar h3 { font:800 20px Manrope,sans-serif; }
.filter-close { display:none; border:0; background:none; font-size:24px; }
.categoria-btn,.subcategoria-btn { width:100%; border:0; background:transparent; text-align:left; padding:10px 12px; border-radius:9px; color:var(--texto); cursor:pointer; transition:.15s; }
.categoria-btn { font-weight:700; }
.categoria-btn:hover,.categoria-btn.activa,.subcategoria-btn:hover,.subcategoria-btn.activa { color:var(--vino); background:#f8edf0; }
.lista-subcategorias { border-top:1px solid var(--borde); margin-top:14px; padding-top:14px; }
.lista-subcategorias h4 { font-size:13px; text-transform:uppercase; letter-spacing:.7px; margin:0 0 7px 10px; color:#83777c; }
.filter-price { border-top:1px solid var(--borde); margin-top:18px; padding-top:18px; }
.filter-price label { display:block; font-weight:700; margin-bottom:10px; }
.price-fields { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.price-fields input { width:100%; border:1px solid var(--borde); border-radius:9px; padding:10px; }
.catalogo-header { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:22px; }
.catalogo-header h1 { font:800 clamp(29px,3vw,40px) Manrope,sans-serif; letter-spacing:-1px; }
.catalogo-header p { color:var(--texto); }
.catalogo-tools { display:flex; gap:10px; }
.catalogo-tools select,.filter-open { height:44px; border:1px solid var(--borde); border-radius:10px; padding:0 13px; background:#fff; color:var(--tinta); }
.filter-open { display:none; cursor:pointer; font-weight:700; }
.filtro-activo { display:inline-flex; align-items:center; gap:7px; border:0; border-radius:99px; padding:8px 12px; background:#f4e5e9; color:var(--vino); margin-bottom:18px; font-weight:700; cursor:pointer; }
.subcategory-showcase { margin:-2px 0 28px; animation:subcategoriasEntrada .28s ease; }
.subcategory-showcase-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
.subcategory-showcase-header h2 { font:800 20px Manrope,sans-serif; }
.subcategory-scroll-actions { display:flex; gap:7px; }
.subcategory-scroll-actions button { width:36px; height:36px; border:1px solid var(--borde); border-radius:50%; background:#fff; cursor:pointer; font-size:20px; }
.subcategory-scroll { display:flex; gap:12px; overflow-x:auto; padding:2px 2px 10px; scroll-behavior:smooth; scrollbar-width:thin; scrollbar-color:#d6cdd0 transparent; }
.subcategory-card { flex:0 0 150px; min-height:92px; border:1px solid var(--borde); border-radius:15px; padding:16px; background:linear-gradient(145deg,#fff,#f8edef); color:var(--tinta); text-align:left; cursor:pointer; transition:.2s; }
.subcategory-card:nth-child(3n+2) { background:linear-gradient(145deg,#fff,#edf5f3); }
.subcategory-card:nth-child(3n+3) { background:linear-gradient(145deg,#fff,#f7f1e5); }
.subcategory-card:hover,.subcategory-card.activa { transform:translateY(-3px); border-color:#c98a9a; box-shadow:0 8px 20px rgba(55,20,29,.09); }
.subcategory-card span { display:block; font-size:22px; margin-bottom:9px; }
.subcategory-card strong { font-size:13px; line-height:1.2; }
.subcategory-card-image { flex:0 0 170px; min-height:218px; padding:0; overflow:hidden; background:#fff!important; }
.subcategory-card-image img { width:100%; height:170px; object-fit:cover; display:block; }
.subcategory-card-image strong { display:block; padding:12px 13px 14px; font-size:14px; }
.catalog-breadcrumb { display:flex; align-items:center; gap:8px; margin-bottom:11px; color:#796d71; font-size:13px; }
.catalog-breadcrumb button { border:0; background:transparent; color:var(--vino); cursor:pointer; font-weight:700; }
.active-path { display:flex; align-items:center; flex-wrap:wrap; gap:7px; margin-bottom:18px; color:#675d61; font-size:13px; }
.active-path button { width:28px; height:28px; border:0; border-radius:50%; background:#f2e7ea; color:var(--vino); cursor:pointer; }
.filter-level-title { margin-top:18px!important; padding-top:15px; border-top:1px solid var(--borde); }
.catalog-pagination { display:grid; place-items:center; gap:10px; min-height:74px; margin-top:28px; text-align:center; }
.catalog-pagination .btn-secundario { min-width:210px; background:#fff; }
.catalog-pagination .btn-secundario:disabled { opacity:.62; cursor:wait; transform:none; }
.catalog-pagination p { min-height:20px; color:var(--texto); font-size:13px; }
@keyframes subcategoriasEntrada { from{opacity:0;transform:translateY(-8px)} to{opacity:1;transform:none} }

/* Catálogo amplio con filtros bajo demanda */
.catalogo-layout { grid-template-columns:1fr; }
.sidebar { display:none; position:fixed; inset:0 auto 0 0; width:min(330px,88vw); z-index:2000; border-radius:0; overflow:auto; top:0; box-shadow:15px 0 40px rgba(30,14,19,.2); }
.sidebar.abierto { display:block; }
.filter-close,.filter-open { display:block; }
.grid-productos { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.producto-card { min-width:0; display:flex; flex-direction:column; background:#fff; border-radius:16px; overflow:hidden; border:1px solid var(--borde); position:relative; transition:transform .2s,box-shadow .2s,border-color .2s; }
.producto-card:hover { transform:translateY(-4px); box-shadow:var(--sombra); }
.producto-media { display:block; overflow:hidden; background:#eee; aspect-ratio:1/1; }
.producto-card img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .35s; }
.producto-card:hover .producto-media img { transform:scale(1.035); }
.producto-info { display:flex; flex:1; flex-direction:column; padding:17px; }
.producto-categoria { color:#897d81; text-transform:uppercase; letter-spacing:.7px; font-size:11px; font-weight:800; }
.producto-link { text-decoration:none; }
.producto-info h3 { font-size:16px; line-height:1.35; margin:5px 0 9px; min-height:43px; }
.precio { color:var(--vino); font:800 23px Manrope,sans-serif; margin-bottom:6px; }
.estado { font-size:12px; font-weight:700; margin-bottom:13px; }
.disponible { color:#11844d; }.agotado { color:#a52b36; }
.producto-info .btn-whatsapp { margin-top:auto; }
.btn-whatsapp { min-height:46px; display:flex; align-items:center; justify-content:center; text-align:center; background:var(--verde); color:#fff; text-decoration:none; border:0; padding:11px 13px; border-radius:11px; font-weight:800; cursor:pointer; transition:background .18s,transform .18s,box-shadow .18s; }
.btn-whatsapp:hover { background:#118f54; }
.btn-whatsapp:active { transform:scale(.98); }
.btn-agotado { background:#aca5a7!important; cursor:not-allowed; }
.btn-seleccion-pendiente { background:#70676a!important; cursor:not-allowed; }
.product-badges { position:absolute; top:12px; left:12px; right:12px; z-index:4; display:flex; flex-wrap:wrap; gap:5px; pointer-events:none; }
.badge-producto { padding:7px 10px; border-radius:99px; color:#fff; font-size:11px; font-weight:800; box-shadow:0 4px 12px rgba(0,0,0,.17); }
.badge-unica { background:var(--vino); }.badge-agotado { background:#585154; }.badge-oferta { background:#b51d3b; }.badge-novedad { background:#187a50; }.badge-destacado { background:#8a5a11; }
.product-price-row { display:flex; align-items:baseline; flex-wrap:wrap; gap:7px; margin-bottom:6px; }.product-price-row .precio { margin-bottom:0; }.precio-anterior { color:#777; font-size:14px; }

.breadcrumb { max-width:1200px; margin:26px auto 0; padding:0 24px; color:#766c70; font-size:13px; }
.breadcrumb a { text-decoration:none; }
.producto-detalle { max-width:1200px; margin:22px auto 60px; padding:0 24px; display:grid; grid-template-columns:1.03fr .97fr; gap:48px; position:relative; }
.producto-imagen { min-width:0; }
.galeria-principal { position:relative; overflow:hidden; border-radius:20px; background:#fff; touch-action:pan-y; }
.imagen-principal { display:block; width:100%; aspect-ratio:1/1; object-fit:contain; border-radius:20px; background:#fff; border:1px solid var(--borde); cursor:zoom-in; user-select:none; -webkit-user-drag:none; will-change:transform; }
.galeria-nav { position:absolute; top:50%; width:46px; height:46px; transform:translateY(-50%); border:1px solid rgba(111,13,37,.15); border-radius:50%; background:rgba(255,255,255,.92); color:var(--vino); box-shadow:0 5px 20px rgba(36,24,28,.16); font-size:31px; line-height:1; cursor:pointer; z-index:3; transition:transform .18s,background .18s; }
.galeria-nav:hover { background:#fff; transform:translateY(-50%) scale(1.06); }.galeria-nav:focus-visible { outline:3px solid rgba(111,13,37,.28); outline-offset:2px; }
.galeria-nav:disabled,.visor-nav:disabled { opacity:.18; pointer-events:none; }
.galeria-prev { left:14px; }.galeria-next { right:14px; }
.galeria-ayuda { position:absolute; left:50%; bottom:13px; display:flex; align-items:center; gap:8px; transform:translateX(-50%); z-index:2; pointer-events:none; }
.galeria-contador,.galeria-gesto { padding:7px 10px; border-radius:99px; background:rgba(32,24,27,.76); color:#fff; font-size:11px; font-weight:800; white-space:nowrap; backdrop-filter:blur(5px); }
.galeria-gesto { display:none; font-weight:600; }
.galeria-miniaturas { display:flex; gap:10px; margin-top:13px; padding:2px 1px 6px; overflow-x:auto; scrollbar-width:thin; scroll-snap-type:x proximity; }
.miniatura { width:78px; height:78px; object-fit:cover; border:2px solid transparent; border-radius:10px; cursor:pointer; flex:0 0 auto; scroll-snap-align:start; background:#fff; }
.miniatura.activa,.miniatura:hover { border-color:var(--vino); }
.producto-info-detalle { padding-top:10px; }
.producto-eyebrow { color:var(--vino); text-transform:uppercase; letter-spacing:1px; font-size:12px; font-weight:800; }
.producto-info-detalle h1 { font:800 clamp(31px,3.5vw,44px)/1.12 Manrope,sans-serif; letter-spacing:-1.3px; margin:8px 0; }
.precio-grande { color:var(--vino); font:800 36px Manrope,sans-serif; margin:16px 0; }
.detail-price-row { display:flex; align-items:baseline; flex-wrap:wrap; gap:12px; margin:16px 0; }.detail-price-row .precio-grande { margin:0; }.detail-price-row .precio-anterior { font-size:18px; }
.detail-commercial-badges { display:flex; flex-wrap:wrap; gap:7px; margin:10px 0; }.detail-commercial-badges .badge-producto { box-shadow:none; }
.product-variants { margin:20px 0; padding:18px; border:1px solid #e0d5d2; border-radius:14px; background:#fff; }.product-variants h3 { margin-bottom:11px; font-size:17px; }.variant-options { display:flex; flex-wrap:wrap; gap:8px; }.variant-option { padding:10px 12px; border:1px solid #d7cfcc; border-radius:10px; background:#fff; color:var(--tinta); text-align:left; cursor:pointer; }.variant-option:hover,.variant-option.seleccionada { border-color:var(--vino); background:#f8ecef; box-shadow:0 0 0 2px #f1dce2; }.variant-option:disabled { opacity:.5; cursor:not-allowed; box-shadow:none; }.variant-option strong,.variant-option small { display:block; }.variant-option small { margin-top:3px; color:var(--texto); }.product-variants > p { margin-top:10px; color:var(--texto); font-size:12px; }
.ficha-producto { border:1px solid var(--borde); border-radius:14px; padding:8px 18px; margin:20px 0; background:#fff; }
.fila-ficha { display:flex; justify-content:space-between; gap:24px; padding:11px 0; border-bottom:1px solid var(--borde); font-size:14px; }
.fila-ficha:last-child { border:0; }.fila-ficha span { color:var(--texto); }.fila-ficha strong { text-align:right; }
.descripcion { margin-top:24px; padding:22px; border:1px solid var(--borde); border-radius:16px; background:#fff; }.descripcion > h3 { margin-bottom:14px; }.descripcion-contenido { color:var(--texto); font-size:15px; line-height:1.75; overflow-wrap:anywhere; }.descripcion-contenido p,.descripcion-contenido div { margin:0 0 13px; }.descripcion-contenido h3,.descripcion-contenido h4 { margin:20px 0 8px; color:var(--tinta); line-height:1.35; }.descripcion-contenido ul,.descripcion-contenido ol { margin:10px 0 15px; padding-left:25px; }.descripcion-contenido li { margin:5px 0; }.descripcion-contenido blockquote { margin:14px 0; padding:10px 15px; border-left:4px solid var(--vino); background:#faf3f5; }
.purchase-box { margin:18px 0 20px; padding:18px; border-radius:16px; background:#effaf4; border:1px solid #c7e8d5; box-shadow:0 8px 22px rgba(18,112,66,.08); }
.purchase-box > p { font-size:13px; color:#346048; margin-bottom:12px; }
.btn-whatsapp.grande { width:100%; padding:16px; font-size:16px; }
.product-guarantees { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:14px; font-size:11px; color:var(--texto); text-align:center; }
.product-guarantees span { padding:9px 5px; background:#fff; border-radius:9px; }

.admin-layout { max-width:1260px; margin:40px auto; padding:0 24px; }.admin-intro { margin-bottom:26px; }.admin-intro h1 { font:800 38px Manrope,sans-serif; }.admin-intro p { color:var(--texto); }
.admin-layout [hidden] { display:none!important; }
.admin-tabs { display:flex; gap:10px; position:sticky; top:0; z-index:20; background:#f8f5f3; padding:12px 0; margin-bottom:18px; scroll-margin-top:12px; }
body:has(.admin-layout) .header { position:relative; }
.admin-tabs button { flex:1; min-height:48px; border:1px solid var(--vino); border-radius:12px; background:#fff; color:var(--vino); font-family:inherit; font-size:16px; font-weight:700; cursor:pointer; }
.admin-tabs button[aria-pressed="true"] { background:var(--vino); color:#fff; }
.admin-tabs button:focus-visible { outline:3px solid #c88b21; outline-offset:3px; }
.barcode-duplicate { margin-top:10px; padding:14px; border:1px solid #b77a21; border-radius:10px; background:#fff6e6; color:#633d08; }
.barcode-duplicate p { margin:0 0 8px; }
.admin-login { width:min(470px,100%); margin:68px auto 90px; padding:38px; border:1px solid var(--borde); border-radius:22px; background:#fff; box-shadow:var(--sombra); text-align:center; }
.admin-login-icon { width:58px; height:58px; display:grid; place-items:center; margin:0 auto 17px; border-radius:17px; background:#f5e8ec; font-size:25px; }
.admin-eyebrow { color:var(--vino)!important; text-transform:uppercase; letter-spacing:1px; font-size:12px!important; font-weight:800; }
.admin-login h1 { margin:5px 0 8px; font:800 31px Manrope,sans-serif; }
.admin-login > p:not(.admin-eyebrow) { color:var(--texto); }
.admin-login-form { display:grid; gap:9px; margin-top:26px; text-align:left; }
.admin-login-form label { margin-top:7px; font-size:14px; font-weight:700; }
.admin-login-form input { width:100%; height:48px; padding:0 14px; border:1px solid #d8d3cf; border-radius:10px; outline:none; }
.admin-login-form input:focus { border-color:var(--vino); box-shadow:0 0 0 3px #f5e8eb; }
.admin-login-form .btn-principal { width:100%; margin-top:13px; }
.admin-login-status { min-height:21px; margin-top:15px; color:#921d32; font-size:13px; font-weight:700; }
.admin-back-link { display:inline-block; margin-top:14px; color:var(--vino); font-size:14px; font-weight:800; text-decoration:none; }
.admin-session { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:26px; padding:12px 15px; border:1px solid #dfd9d5; border-radius:12px; background:#fff; color:var(--texto); font-size:13px; }
.admin-session strong { color:var(--tinta); }
.admin-session .btn-secundario { padding:9px 14px; white-space:nowrap; }
.admin-session-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:9px; }
.form-admin { background:#fff; padding:28px; border-radius:var(--radio); border:1px solid var(--borde); display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.campo { min-width:0; }.campo.full,.form-admin button[type=submit] { grid-column:1/-1; }.campo label { display:block; margin-bottom:7px; font-weight:700; font-size:14px; }.campo input,.campo select,.campo textarea { width:100%; padding:12px; border:1px solid #d8d3cf; border-radius:10px; outline:none; }.campo input:focus,.campo select:focus,.campo textarea:focus { border-color:var(--vino); box-shadow:0 0 0 3px #f5e8eb; }
.campo-ayuda { display:block; margin-top:7px; color:var(--texto); font-size:12px; }
.input-action { display:flex; gap:8px; }.input-action input { min-width:0; }.btn-inline { flex:none; padding:0 14px; border:1px solid #d8c2c8; border-radius:10px; background:#f8eef1; color:var(--vino); font-weight:800; cursor:pointer; }.btn-inline:hover { background:#f0dfe4; }
.product-flags { border:1px solid var(--borde); border-radius:12px; padding:15px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.product-flags legend { padding:0 6px; color:var(--vino); font-weight:800; }
.product-flags label { display:flex; align-items:flex-start; gap:9px; min-height:68px; margin:0; padding:12px; border-radius:10px; background:#faf7f5; cursor:pointer; }
.product-flags input { width:auto; margin-top:3px; accent-color:var(--vino); }
.product-flags span,.product-flags small { display:block; }.product-flags small { margin-top:3px; color:var(--texto); font-weight:400; line-height:1.35; }
.rich-editor { overflow:hidden; border:1px solid #d8d3cf; border-radius:12px; background:#fff; transition:border-color .15s,box-shadow .15s; }
.rich-editor:focus-within { border-color:var(--vino); box-shadow:0 0 0 3px #f5e8eb; }
.rich-toolbar { display:flex; align-items:center; flex-wrap:wrap; gap:4px; padding:8px; border-bottom:1px solid #e3ddda; background:#f8f6f5; }
.rich-toolbar select { width:auto; min-width:105px; height:34px; padding:0 8px; border:1px solid #d8d3cf; border-radius:7px; background:#fff; }
.rich-toolbar button { width:34px; height:34px; display:grid; place-items:center; padding:0; border:1px solid transparent; border-radius:7px; background:transparent; color:#332a2d; font:700 15px Arial,sans-serif; cursor:pointer; }
.rich-toolbar button:hover,.rich-toolbar button:focus-visible { border-color:#d8c2c8; background:#fff; color:var(--vino); }
.rich-toolbar button[aria-label="Alinear a la derecha"] { transform:scaleX(-1); }
.rich-toolbar .toolbar-preview { width:auto; display:flex; gap:6px; margin-left:auto; padding:0 10px; border-color:#dbcbd0; background:#fff; color:var(--vino); font-family:'DM Sans',sans-serif; font-size:12px; }
.toolbar-separator { width:1px; height:24px; margin:0 3px; background:#ddd4d1; }
.rich-editor-area { min-height:190px; max-height:480px; overflow:auto; padding:18px; outline:none; color:var(--tinta); line-height:1.65; }
.rich-editor-area:empty::before { content:attr(data-placeholder); color:#978d90; pointer-events:none; }
.rich-editor-area p,.rich-editor-area div { margin:0 0 10px; }.rich-editor-area ul,.rich-editor-area ol { padding-left:26px; }.rich-editor-area h3,.rich-editor-area h4 { margin:14px 0 7px; }
.rich-preview { min-height:190px; max-height:480px; overflow:auto; padding:22px; background:#fff; }
.category-guide { display:flex; flex-direction:column; gap:4px; padding:14px 16px; border:1px solid #ead9b8; border-radius:11px; background:#fff8e8; color:#65480d; }
.category-guide span { font-size:13px; color:#765d2a; }
.category-guide-actions { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-top:8px; }
.category-guide-actions .btn-inline { min-height:40px; background:#fff; color:var(--vino); }
.category-guide-actions small { color:#765d2a; font-size:12px; }
.upload-progress { margin-top:14px; padding:13px 14px; border:1px solid #e2d8d5; border-radius:11px; background:#faf8f7; }.upload-progress > div { display:flex; justify-content:space-between; gap:14px; margin-bottom:8px; font-size:13px; }.upload-progress strong { color:var(--vino); }.upload-progress progress { width:100%; height:10px; border:0; border-radius:99px; overflow:hidden; accent-color:var(--vino); }.upload-progress progress::-webkit-progress-bar { background:#e6dfdc; }.upload-progress progress::-webkit-progress-value { background:linear-gradient(90deg,var(--vino),#b51d3b); }
.variants-toggle { display:flex; align-items:flex-start; gap:10px; padding:14px 16px; border:1px solid #dfd7d3; border-radius:11px; background:#faf8f7; cursor:pointer; }.variants-toggle input { width:auto; margin-top:3px; accent-color:var(--vino); }.variants-toggle span,.variants-toggle small { display:block; }.variants-toggle small { margin-top:3px; color:var(--texto); font-weight:400; }
.variants-manager { padding:16px; border:1px solid #dbcbd0; border-radius:12px; background:#fcf9fa; }.variants-heading { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-bottom:12px; }.variants-heading small { display:block; margin-top:3px; color:var(--texto); }.variant-list { display:grid; gap:9px; }.variant-row { display:grid; grid-template-columns:1fr 1fr 1fr 100px 42px; gap:8px; align-items:end; padding:11px; border:1px solid #e4ddda; border-radius:10px; background:#fff; }.variant-field label { display:block; margin-bottom:5px; color:var(--texto); font-size:11px; font-weight:800; }.variant-field input { width:100%; min-width:0; padding:10px; border:1px solid #d8d3cf; border-radius:8px; }.variant-remove { width:42px; height:42px; border:1px solid #ebcbd1; border-radius:9px; background:#fff1f3; color:#9d2137; font-size:18px; cursor:pointer; }.variant-total { margin-top:12px; padding-top:11px; border-top:1px solid #e1d9d6; text-align:right; }.variant-total strong { color:var(--vino); font-size:20px; }
.admin-form-actions { grid-column:1/-1; display:flex; gap:12px; align-items:center; }
.admin-form-actions [hidden] { display:none!important; }
.admin-form-actions .btn-principal,.admin-form-actions .btn-secundario { min-width:190px; }
.admin-status { margin-top:16px; padding:13px 16px; border:1px solid #cde7d8; border-radius:11px; background:#eef9f3; color:#17663e; font-weight:700; }
.admin-status.error { border-color:#eccbd1; background:#fff1f3; color:#921d32; }
.admin-status.info { border-color:#ead9b8; background:#fff8e8; color:#76530e; }
.admin-divider { margin:50px 0 20px; border:0; border-top:1px solid var(--borde); }.inventory-heading { display:flex; justify-content:space-between; align-items:end; gap:24px; }
.inventory-count { display:inline-grid; place-items:center; min-width:31px; height:31px; margin-left:7px; padding:0 9px; border-radius:99px; background:#f1e4e8; color:var(--vino); font:800 14px 'DM Sans',sans-serif; vertical-align:3px; }
.inventory-search { width:min(520px,100%); font-size:13px; font-weight:700; }
.inventory-search > label { display:block; margin-bottom:6px; }
.inventory-search input { width:100%; height:44px; padding:0 14px; border:1px solid #d8d3cf; border-radius:10px; background:#fff; outline:none; }
.inventory-search input:focus { border-color:var(--vino); box-shadow:0 0 0 3px #f5e8eb; }
.barcode-field { padding:16px; border:1px solid #ded4d7; border-radius:12px; background:#fcf9fa; }
.barcode-scan-button { min-height:44px; display:inline-flex; align-items:center; justify-content:center; gap:7px; white-space:nowrap; }
.barcode-scan-button span { font-size:20px; line-height:1; }
.barcode-dialog { width:min(580px,calc(100% - 28px)); max-height:calc(100dvh - 28px); margin:auto; padding:0; overflow:auto; border:0; border-radius:20px; background:#fff; color:var(--tinta); box-shadow:0 24px 70px rgba(24,10,15,.38); }
.barcode-dialog::backdrop { background:rgba(28,18,21,.78); backdrop-filter:blur(3px); }
.barcode-dialog-header { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding:22px 22px 16px; }
.barcode-dialog-header h2 { margin-top:4px; font:800 24px Manrope,sans-serif; }
.barcode-close { width:42px; height:42px; flex:none; border:1px solid #dfd5d8; border-radius:50%; background:#fff; color:var(--vino); font-size:27px; cursor:pointer; }
.barcode-camera { position:relative; width:calc(100% - 44px); aspect-ratio:4/3; margin:0 22px; overflow:hidden; border-radius:15px; background:#171214; }
.barcode-camera video { width:100%; height:100%; display:block; object-fit:cover; }
.barcode-guide { position:absolute; inset:0; display:grid; place-items:center; pointer-events:none; }
.barcode-guide::before { content:""; width:min(82%,420px); height:42%; border:3px solid rgba(255,255,255,.92); border-radius:12px; box-shadow:0 0 0 999px rgba(0,0,0,.24); }
.barcode-guide span { position:absolute; width:min(75%,380px); height:2px; background:#e62d52; box-shadow:0 0 10px rgba(230,45,82,.85); animation:barcodeScanLine 1.8s ease-in-out infinite alternate; }
.barcode-status { margin:16px 22px 5px; color:var(--vino); font-weight:800; text-align:center; }
.barcode-status.error { color:#a52b36; }
.barcode-help { margin:0 22px 16px; color:var(--texto); font-size:12px; text-align:center; }
.barcode-dialog > .btn-secundario { width:calc(100% - 44px); margin:0 22px 22px; }
@keyframes barcodeScanLine { from { transform:translateY(-58px); } to { transform:translateY(58px); } }
#lista-admin { display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:20px; margin-top:20px; }.btn-editar,.btn-duplicar,.btn-visibilidad,.btn-eliminar { width:100%; margin-top:8px; padding:11px 12px; border-radius:10px; font-weight:800; cursor:pointer; }.btn-duplicar { background:#f7eef1; color:var(--vino); border:1px solid #dcc5cc; }.btn-visibilidad { background:#fff; color:#3f393b; border:1px solid #d7d0cd; }.btn-eliminar { background:#a52b36; }
#lista-admin .producto-card { display:flex; flex-direction:column; min-width:0; }
#lista-admin .producto-card > img { width:100%; height:220px; aspect-ratio:auto; object-fit:cover; flex:none; background:#f0ece9; }
#lista-admin .producto-card .producto-info { display:flex; flex:1; flex-direction:column; padding:17px; }
#lista-admin .producto-card .producto-info h3 { min-height:auto; margin-bottom:8px; }
#lista-admin .producto-card .btn-editar { margin-top:auto; }
#lista-admin .producto-card .btn-eliminar { flex:none; }
#lista-admin .producto-card .producto-meta { color:var(--texto); font-size:13px; }
#lista-admin .producto-card .producto-codigo { margin-top:2px; color:#83777c; font-size:12px; }
#lista-admin .producto-card button:disabled,.form-admin button:disabled { opacity:.58; cursor:wait; transform:none; }
#lista-admin .admin-empty { grid-column:1/-1; padding:42px 24px; border:1px dashed #d7d0ca; border-radius:16px; background:#fff; text-align:center; color:var(--texto); }

.visor-imagen { position:fixed; inset:0; width:100%; height:100%; background:rgba(0,0,0,.94); display:none; z-index:9999; overflow:hidden; overscroll-behavior:contain; }.visor-imagen.activo{display:block}.visor-imagen img{position:absolute;top:50%;left:50%;z-index:1;width:auto;height:auto;max-width:calc(100vw - 130px);max-height:88vh;object-fit:contain;border-radius:12px;transition:transform .12s;cursor:zoom-in;user-select:none;-webkit-user-drag:none;touch-action:none;will-change:transform}.cerrar-visor,.visor-nav{position:absolute;color:#fff;cursor:pointer;z-index:3}.cerrar-visor{right:18px;top:18px;width:48px;height:48px;border:1px solid rgba(255,255,255,.25);border-radius:50%;background:rgba(30,24,27,.58);font-size:29px;backdrop-filter:blur(5px)}.visor-nav{top:50%;transform:translateY(-50%);width:44px;height:72px;border:0;background:transparent;border-radius:8px;font-size:42px;line-height:1;text-shadow:0 2px 9px rgba(0,0,0,.95);filter:drop-shadow(0 1px 2px rgba(0,0,0,.8));transition:transform .16s,color .16s}.visor-nav:hover,.visor-nav:focus-visible{color:#ffd57a;transform:translateY(-50%) scale(1.08);outline:0}.visor-prev{left:12px}.visor-next{right:12px}.visor-contador{position:absolute;top:22px;left:50%;transform:translateX(-50%);padding:8px 13px;border-radius:99px;background:rgba(255,255,255,.14);color:#fff;font-size:13px;font-weight:800;z-index:3}.visor-ayuda{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);padding:8px 12px;border-radius:99px;background:rgba(30,24,27,.72);color:#fff;font-size:12px;white-space:nowrap;z-index:3}
.skeleton { background:linear-gradient(90deg,#ebe8e6 25%,#f5f3f2 45%,#ebe8e6 65%); background-size:300% 100%; animation:shimmer 1.3s infinite; border-radius:8px; }.skeleton-card{min-height:390px}.skeleton-imagen{height:240px}.skeleton-titulo{height:20px;margin:18px}.skeleton-precio{height:24px;width:45%;margin:18px}.skeleton-estado{height:14px;width:35%;margin:18px}.skeleton-boton{height:42px;margin:18px}.skeleton-producto{display:grid;grid-template-columns:1fr 1fr;gap:50px;width:100%}.skeleton-imagen-grande{aspect-ratio:1}.skeleton-miniaturas{display:flex;gap:10px;margin-top:15px}.skeleton-miniatura{width:70px;height:70px}.skeleton-nombre-producto{height:48px;width:80%;margin-bottom:20px}.skeleton-precio-producto{height:34px;width:35%;margin-bottom:30px}.skeleton-ficha{display:grid;gap:14px}.skeleton-fila{height:22px}.skeleton-descripcion{height:20px;margin-top:30px}.skeleton-descripcion-corta{height:20px;width:70%;margin-top:10px}.skeleton-boton-producto{height:55px;margin-top:30px}.producto-detalle.cargando>.producto-imagen,.producto-detalle.cargando>.producto-info-detalle{display:none}.producto-detalle:not(.cargando)>.skeleton-producto{display:none}@keyframes shimmer{to{background-position:-300% 0}}

@media(max-width:980px){.catalogo-layout{grid-template-columns:1fr}.sidebar{display:none;position:fixed;inset:0 15% 0 0;z-index:2000;border-radius:0;overflow:auto;top:0}.sidebar.abierto{display:block}.filter-close,.filter-open{display:block}.producto-detalle{grid-template-columns:1fr;max-width:700px}.skeleton-producto{grid-template-columns:1fr}.catalogo-header{align-items:flex-start}.form-admin{grid-template-columns:1fr}.campo.full,.form-admin button[type=submit]{grid-column:auto}.product-flags{grid-template-columns:1fr}.variant-row{grid-template-columns:1fr 1fr}.variant-remove{width:100%;grid-column:1/-1}.variants-heading{align-items:stretch;flex-direction:column}.variants-heading .btn-inline{min-height:42px}}
@media(max-width:1180px) and (min-width:721px){.grid-productos{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){.catalogo-layout{padding:0 14px;margin:24px auto}.catalogo-header{display:block}.catalogo-tools{margin-top:14px}.grid-productos{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.producto-info{padding:13px}.producto-info h3{font-size:14px}.precio{font-size:19px}.btn-whatsapp{font-size:12px;padding:10px 6px}.breadcrumb{margin-top:16px;padding:0 15px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.producto-detalle{padding:0 12px;margin:14px auto 42px;gap:20px}.producto-info-detalle{padding-top:0}.producto-info-detalle h1{font-size:27px;letter-spacing:-.7px}.precio-grande{font-size:29px}.galeria-principal,.imagen-principal{border-radius:14px}.galeria-nav{width:43px;height:43px;font-size:29px}.galeria-prev{left:8px}.galeria-next{right:8px}.galeria-ayuda{bottom:9px}.galeria-contador{padding:6px 9px}.galeria-gesto{display:inline-block;padding:6px 9px}.galeria-miniaturas{gap:8px;margin-top:9px}.miniatura{width:64px;height:64px;border-radius:9px}.purchase-box{margin:14px 0 16px;padding:14px}.btn-whatsapp.grande{min-height:52px}.ficha-producto{margin:16px 0;padding:6px 14px}.descripcion{margin-top:16px;padding:17px}.product-guarantees{grid-template-columns:1fr}.fila-ficha{align-items:flex-start}.visor-imagen img{max-width:calc(100vw - 24px);max-width:calc(100dvw - 24px);max-height:calc(100vh - 170px);max-height:calc(100dvh - 170px);border-radius:10px}.cerrar-visor{top:max(12px,env(safe-area-inset-top));right:12px;width:46px;height:46px}.visor-nav{width:46px;height:46px;font-size:29px}.visor-prev{left:8px}.visor-next{right:8px}.visor-contador{top:max(16px,env(safe-area-inset-top))}.visor-ayuda{bottom:max(18px,env(safe-area-inset-bottom));font-size:11px}.admin-layout{padding:0 14px}.admin-login{margin:28px auto 60px;padding:27px 20px}.admin-session{align-items:flex-start;flex-direction:column}.admin-session-actions{width:100%;flex-direction:column}.admin-session .btn-secundario{width:100%}.form-admin{padding:18px}.rich-toolbar{gap:2px}.rich-toolbar button{width:32px}.rich-toolbar .toolbar-preview{width:100%;justify-content:center;margin:5px 0 0}.rich-editor-area,.rich-preview{min-height:220px}.inventory-heading{align-items:stretch;flex-direction:column}.inventory-search{width:100%}.inventory-search .input-action,.barcode-field .input-action{align-items:stretch;flex-direction:column}.barcode-scan-button{width:100%;min-height:48px}.barcode-dialog{width:calc(100% - 18px);max-height:calc(100dvh - 18px);border-radius:16px}.barcode-dialog-header{padding:17px 16px 13px}.barcode-dialog-header h2{font-size:21px}.barcode-camera{width:calc(100% - 32px);margin:0 16px;aspect-ratio:3/4}.barcode-status{margin:14px 16px 5px}.barcode-help{margin:0 16px 14px}.barcode-dialog>.btn-secundario{width:calc(100% - 32px);margin:0 16px 16px}.admin-form-actions{flex-direction:column}.admin-form-actions .btn-principal,.admin-form-actions .btn-secundario{width:100%}}
