/* ===========================================================
   MANAM — Identidad: Glassmorphism Modern
   Vidrio translúcido + gradiente animado + tipografía geométrica
   =========================================================== */

/* Google Fonts: se movió a <link rel="stylesheet"> en layout-header.php y
   admin-header.php (perf — revisión 2026-07-13). Un @import de un dominio
   externo acá obliga a esperar a parsear este archivo entero antes de
   siquiera empezar a descargar la fuente. */
@import url('mn-tokens.css');
@import url('mn-components.css');

:root {
    /* ── Colores cliente — referencias a mn-tokens donde hay match exacto ── */
    --bg:        var(--mn-canvas);       /* #F8F6F2 */
    --bg-soft:   var(--mn-canvas-soft);  /* #FCFAF7 */
    --ink:       var(--mn-ink);          /* #0B1320 */
    --ink-soft:  var(--mn-ink-secondary);/* #4A5568 */
    --ink-mute:  #8A8F98;               /* ≈ --mn-ink-tertiary; leve diferencia — FASE C */
    --glass:     rgba(255,255,255,0.55);
    --glass-2:   rgba(255,255,255,0.30);
    --glass-border: rgba(255,255,255,0.65);
    --accent:    var(--mn-gold-500);     /* #C9963B */
    --accent-2:  #D4AF37;               /* ≈ --mn-gold-400; leve diferencia — FASE C */
    --crate:     #2F9E6E;               /* verde legacy — migrará a --mn-success-500 en FASE C */
    --danger:    #E0473E;               /* rojo legacy — migrará a --mn-danger-500 en FASE C */
    --line:      rgba(11,19,32,0.10);
    --white:     var(--mn-white);        /* #FFFFFF */

    /* color por defecto si una categoría no tiene uno propio asignado */
    --cat-color: var(--accent);

    /* ── Fuentes — referenciadas desde mn-tokens ── */
    --font-display: var(--mn-font-display);
    --font-body:    var(--mn-font-body);
    --font-mono:    var(--mn-font-mono);

    /* ── Easing — referenciado desde mn-tokens ── */
    --ease-soft: var(--mn-ease-soft);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
    margin: 0;
    font-family: var(--font-body);
    color: var(--ink);
    background: var(--bg);
    line-height: 1.6;
    position: relative;
}

a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }

h1, h2, h3, .display {
    font-family: var(--font-display);
    font-weight: 700;
    letter-spacing: -0.015em;
    margin: 0;
}

.container {
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 24px;
}

/* ---------- Fondo ambiente: gradiente mesh sutil en toda la página ---------- */
body::before {
    content: '';
    position: fixed;
    inset: 0;
    z-index: -1;
    background:
        radial-gradient(at 15% 20%, rgba(201,150,59,0.22) 0%, transparent 45%),
        radial-gradient(at 85% 15%, rgba(11,19,32,0.16) 0%, transparent 45%),
        radial-gradient(at 50% 90%, rgba(212,175,55,0.20) 0%, transparent 50%);
    filter: blur(40px) saturate(140%);
    animation: meshDrift 36s ease-in-out infinite;
}
@keyframes meshDrift {
    0%, 100% { transform: scale(1) rotate(0deg); }
    50%      { transform: scale(1.15) rotate(8deg); }
}
@media (prefers-reduced-motion: reduce) {
    body::before { animation: none; }
}

/* ---------- Botones ---------- */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 14px;
    padding: 13px 24px;
    border-radius: 999px;
    border: 2px solid transparent;
    cursor: pointer;
    transition: transform .2s var(--ease-soft), box-shadow .2s ease, background .15s ease;
}
.btn:active { transform: scale(.97); }
.btn-signal { background: var(--accent); color: var(--white); box-shadow: 0 8px 20px -6px rgba(201,150,59,0.55); }
.btn-signal:hover { box-shadow: 0 12px 26px -6px rgba(201,150,59,0.65); transform: translateY(-1px); }
.btn-outline { background: var(--glass); backdrop-filter: blur(12px); border-color: var(--glass-border); color: var(--ink); }
.btn-outline:hover { background: var(--white); }
.btn-block { width: 100%; }
.btn-sm { padding: 9px 16px; font-size: 12px; }
.btn[disabled] { opacity: .4; cursor: not-allowed; box-shadow: none; }
.btn-danger { background: var(--danger); color: var(--white); box-shadow: 0 8px 20px -6px rgba(224,71,62,0.45); }
.btn-danger:hover { box-shadow: 0 12px 26px -6px rgba(224,71,62,0.55); transform: translateY(-1px); }
.btn-ghost { background: transparent; border-color: var(--line); color: var(--ink-soft); }
.btn-ghost:hover { background: rgba(11,19,32,0.05); border-color: rgba(11,19,32,0.15); color: var(--ink); }
.btn-muted { background: rgba(11,19,32,0.06); color: var(--ink-soft); border-color: transparent; }
.btn-muted:hover { background: rgba(11,19,32,0.10); color: var(--ink); }

/* Efecto magnético: solo decorativo, nunca en botones de formulario */
.has-magnetic { display: inline-flex; position: relative; isolation: isolate; }
.magnetic-inner {
    display: inline-flex; align-items: center; justify-content: center; gap: inherit;
    will-change: transform;
    transition: transform .8s var(--ease-soft);
}

/* ---------- Header (nav de vidrio flotante) ---------- */
.site-header {
    position: sticky;
    top: 0;
    z-index: 96;
    padding: 14px 0 0;
}
.site-header .container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    background: var(--glass);
    backdrop-filter: blur(18px) saturate(160%);
    -webkit-backdrop-filter: blur(18px) saturate(160%);
    border: 1px solid var(--glass-border);
    border-radius: 20px;
    height: 68px;
    padding: 0 20px;
    box-shadow: 0 8px 30px -12px rgba(31,41,55,0.18);
}
.logo {
    display: flex;
    align-items: center;
}
.brand-main{width:104px;height:58px;padding:0;border-radius:0;background:transparent;overflow:visible;flex:none;box-shadow:none}
.brand-main picture{display:block;width:100%;height:100%}.brand-main img{width:100%;height:100%;object-fit:contain}
.logo span { color: var(--accent); }
.logo small {
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--ink-mute);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: normal;
}

.icono-categoria { width: 16px; height: 16px; flex-shrink: 0; color: var(--cat-color); }

.main-nav { display: flex; gap: 18px; flex-wrap: wrap; }
.main-nav a {
    position: relative;
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 14px;
    color: var(--ink-soft);
    padding: 4px 2px;
}
.main-nav a::after {
    content: '';
    position: absolute; left: 0; right: 0; bottom: -4px;
    height: 2px; border-radius: 2px;
    background: var(--cat-color, var(--accent));
    transform: scaleX(0); transform-origin: right;
    transition: transform .35s var(--ease-soft);
}
.main-nav a:hover::after, .main-nav a.activo::after { transform: scaleX(1); transform-origin: left; }
.main-nav a:hover { color: var(--ink); }

.header-actions { display: flex; align-items: center; gap: 14px; }
.cart-pill {
    position: relative;
    display: flex;
    align-items: center;
    gap: 6px;
    background: var(--ink);
    color: var(--white);
    font-weight: 600;
    font-size: 13px;
    padding: 9px 16px;
    border-radius: 999px;
}
.cart-pill .badge {
    background: var(--accent);
    color: var(--white);
    border-radius: 999px;
    min-width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-family: var(--font-mono);
}
.user-pill {
    font-family: var(--font-body);
    font-weight: 500;
    font-size: 13px;
    color: var(--ink-soft);
}

/* ---------- Menú mobile ---------- */
#nav-toggle { display: none; }
.nav-overlay { display: none; }

/* El link "Ingresar" del menu mobile (.nav-ingresar-mobile, en layout-header.php)
   solo debe verse dentro del menu hamburguesa (<=760px). Sin esta regla queda
   visible tambien en el nav de escritorio, duplicado con el "Ingresar" de
   .header-actions (revision UX 2026-07-13). */
@media (min-width: 761px) {
    .nav-ingresar-mobile { display: none; }
}

/* CTA "Quiero ser cliente" de .header-actions (revision UX 2026-07-13): en
   mobile el header ya esta apretado (logo + hamburguesa + carrito), asi que
   se oculta ahi y se ofrece la version equivalente dentro del menu hamburguesa
   (ver nav-ingresar-mobile arriba, que ahora incluye este mismo link). */
@media (max-width: 760px) {
    .nav-cta-cliente { display: none; }
}

/* ---------- Ruta de categorías ---------- */
.ruta-categorias { padding: 18px 0 0; }
.ruta-lista {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    padding-bottom: 4px;
}
.ruta-tag {
    flex: 0 0 auto;
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--glass);
    backdrop-filter: blur(12px);
    border: 1px solid var(--glass-border);
    border-radius: 999px;
    padding: 10px 18px;
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 13px;
    white-space: nowrap;
    transition: transform .2s var(--ease-soft), box-shadow .2s ease;
}
.ruta-tag:hover { transform: translateY(-2px); box-shadow: 0 10px 24px -10px rgba(31,41,55,0.3); }
.ruta-tag.activa { background: var(--ink); color: var(--white); }
.ruta-tag.activa .icono-categoria { color: var(--cat-color); }

/* ---------- Hero ---------- */
.hero {
    position: relative;
    padding: 72px 0 64px;
    overflow: hidden;
}
.hero-mesh {
    position: absolute;
    inset: -10%;
    z-index: 0;
    background:
        radial-gradient(circle 420px at 22% 30%, rgba(201,150,59,0.30) 0%, transparent 60%),
        radial-gradient(circle 520px at 78% 65%, rgba(11,19,32,0.35) 0%, transparent 60%);
    filter: blur(50px);
    pointer-events: none;
    transition: background .4s ease;
}
.hero .container { position: relative; z-index: 2; }
.hero-grid { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 40px; align-items: center; }
.hero-eyebrow {
    font-family: var(--font-mono);
    color: var(--accent);
    font-size: 13px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin-bottom: 16px;
    display: block;
}
.hero h1 {
    font-size: 50px;
    line-height: 1.05;
    margin-bottom: 18px;
    max-width: 560px;
}
.hero h1 span {
    background: linear-gradient(120deg, var(--accent), var(--accent-2));
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.hero p { font-size: 17px; color: var(--ink-soft); margin-bottom: 30px; max-width: 460px; }

/* Visual flotante del hero: stack de tarjetas de vidrio */
.hero-visual { position: relative; height: 320px; display: flex; align-items: center; justify-content: center; }
.floating-card {
    position: absolute;
    background: var(--glass);
    backdrop-filter: blur(16px) saturate(180%);
    border: 1px solid var(--glass-border);
    border-radius: 18px;
    padding: 18px 20px;
    box-shadow: 0 30px 60px -20px rgba(31,41,55,0.35);
    font-family: var(--font-body);
    animation: floatY 7s ease-in-out infinite;
}
.floating-card.card-a { width: 200px; top: 10%; left: 8%; animation-delay: 0s; }
.floating-card.card-b { width: 180px; top: 48%; right: 4%; animation-delay: 1.2s; }
.floating-card.card-c { width: 170px; bottom: 4%; left: 22%; animation-delay: 2.4s; }
.floating-card .fc-dot { width: 10px; height: 10px; border-radius: 50%; margin-bottom: 8px; }
.floating-card .fc-titulo { font-weight: 700; font-size: 14px; margin-bottom: 4px; }
.floating-card .fc-precio { font-family: var(--font-mono); font-size: 13px; color: var(--ink-soft); }
@keyframes floatY {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(-14px); }
}
@media (prefers-reduced-motion: reduce) {
    .floating-card { animation: none; }
}

/* ---------- Grilla de productos ---------- */
.section { padding: 56px 0; position: relative; }
.section-titulo {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin-bottom: 26px;
}
.section-titulo h2 { font-size: 28px; }
.section-titulo .ver-todo { font-family: var(--font-body); font-weight: 600; font-size: 13px; color: var(--accent); }

.grilla-productos {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr));
    gap: 22px;
}

/* --- Tarjeta de producto: vidrio translúcido con resplandor de categoría --- */
.tag-producto {
    background: rgba(255,255,255,.86);
    backdrop-filter: blur(16px) saturate(180%);
    -webkit-backdrop-filter: blur(16px) saturate(180%);
    border: 1px solid var(--glass-border);
    border-radius: 22px;
    padding: 0;
    position: relative;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    box-shadow: 0 14px 36px -22px rgba(31,41,55,0.38);
    transition: transform .25s var(--ease-soft), box-shadow .25s ease;
}
.tag-producto::before {
    content: '';
    position: absolute;
    top: -40%; left: -20%;
    width: 70%; height: 70%;
    background: var(--cat-color);
    opacity: .22;
    filter: blur(30px);
    border-radius: 50%;
    pointer-events: none;
}
.tag-producto:hover { transform: translateY(-6px); box-shadow: 0 24px 48px -20px rgba(31,41,55,0.38); }
.tag-imagen { width: 100%; height: 220px; overflow: hidden; position: relative; z-index: 1; background:#f4f2ec; }
.tag-imagen img { width: 100%; height: 100%; object-fit: cover; transition:transform .35s var(--ease-soft); }
.tag-producto:hover .tag-imagen img { transform:scale(1.035); }
.tag-imagen-placeholder { display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:linear-gradient(145deg,color-mix(in srgb,var(--cat-color) 15%,#fff),#f7f5ef);color:var(--cat-color); }
.tag-imagen-placeholder svg { width:70px;height:70px;fill:none;stroke:currentColor;stroke-width:2;opacity:.72; }
/* Texto del placeholder en --ink-soft, no --cat-color (revision a11y 2026-07-13):
   dorado sobre este fondo claro da ~2.46:1 incluso a opacidad 1, no pasa
   WCAG AA (4.5:1); --ink-soft da ~7:1. El icono SVG de arriba sigue en
   --cat-color para mantener el guiño de marca. */
.tag-imagen-placeholder span { font:700 11px var(--font-mono);letter-spacing:.2em;color:var(--ink-soft); }
.qv-trigger { display: flex; flex-direction:column; flex:1; position: relative; z-index: 1; }
.tag-producto-body { padding: 18px 18px 17px; display: flex; flex-direction: column; align-items:flex-start; gap: 12px; flex: 1; }
.tag-categoria {
    font-family: var(--font-mono);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--cat-color);border:1px solid currentColor;border-radius:999px;padding:4px 8px;
    font-weight: 600;
}
.tag-nombre {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 18px;
    line-height:1.25;
    min-height: 46px;
    margin:0;
    color: var(--ink);
}
.tag-marca { display:flex;align-items:baseline;gap:5px;color:var(--ink-soft);font-size:12px;line-height:1.4; }
.tag-marca span { color:var(--ink-mute); }
.tag-marca strong { font-weight:650;color:var(--ink-soft); }
.tag-stock { display:flex;align-items:center;gap:7px;font:600 11px var(--font-mono);color:var(--crate);margin-top:1px; }
.tag-stock.agotado { color:var(--danger); }
.tag-stock-punto { width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px color-mix(in srgb,currentColor 14%,transparent); }
.tag-precio {
    font-family: var(--font-mono);
    font-size: 20px;
    font-weight: 700;
    margin-top:auto;
    padding-top:4px;
}
.tag-sello {
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 2;
    font-family: var(--font-mono);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 4px 10px;
    background: rgba(47,158,110,0.16);
    color: var(--crate);
    border-radius: 999px;
    font-weight: 600;
    backdrop-filter: blur(6px);
}
.tag-sello.agotado { background: rgba(224,71,62,0.16); color: var(--danger); }
.tag-footer { display: flex;align-items:flex-end;gap:12px;position:relative;z-index:2;padding:16px 18px 18px;border-top:1px solid var(--line);background:rgba(255,255,255,.5); }
.tag-footer label { display:flex;flex-direction:column;gap:4px; }
.tag-footer label>span { font:600 9px var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-mute); }
.tag-footer input[type=number] {
    width: 62px;
    border: 1.5px solid var(--line);
    border-radius: 10px;
    padding: 8px 6px;
    font-family: var(--font-mono);
    text-align: center;
    background: rgba(255,255,255,0.6);
}
.tag-footer .btn { flex:1;min-height:39px; }

.tag-precio-revendedor {
    display: inline-block;
    font-family: var(--font-mono);
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--accent);
    background: rgba(201,150,59,0.12);
    padding: 2px 7px;
    border-radius: 999px;
    margin-top: 2px;
}

/* ---------- Tablas (carrito, cuenta, admin) ---------- */
.table-wrap { border-radius: 14px; overflow: hidden; border: 1px solid var(--line); background: rgba(255,255,255,0.85); }
.table-wrap table { margin: 0; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: 13px 12px; border-bottom: 1px solid var(--line); text-align: left; font-size: 14px; }
th { font-family: var(--font-mono); text-transform: uppercase; font-size: 11px; letter-spacing: 0.05em; color: var(--ink-mute); background: rgba(11,19,32,0.025); }
tbody tr:hover { background: rgba(201,150,59,0.04); transition: background .12s ease; }
tbody tr:last-child td { border-bottom: none; }

/* ---------- Formularios (tarjeta de vidrio) ---------- */
.form-card {
    background: var(--glass);
    backdrop-filter: blur(20px) saturate(180%);
    -webkit-backdrop-filter: blur(20px) saturate(180%);
    border: 1px solid var(--glass-border);
    border-radius: 22px;
    padding: 36px;
    max-width: 460px;
    margin: 0 auto;
    box-shadow: 0 20px 50px -20px rgba(31,41,55,0.25);
}
.form-card h2 { font-size: 23px; margin-bottom: 18px; }
.auth-brand{display:flex;flex-direction:column;align-items:center;gap:9px;margin:-12px auto 22px;text-align:center}.auth-brand img{display:block;width:100%;max-width:260px;height:auto;object-fit:contain;border-radius:0;background:transparent;padding:0}.auth-brand span{font:600 10px var(--font-mono);text-transform:uppercase;letter-spacing:.14em;color:var(--accent)}
.admin-login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--ink);padding:24px}.admin-login-page::before{opacity:.45}.admin-login-card{width:min(460px,100%);margin:0;background:rgba(255,255,255,.92)}
.campo { margin-bottom: 16px; }
.campo label {
    display: block;
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 12px;
    margin-bottom: 6px;
    color: var(--ink-soft);
}
.campo input, .campo select, .campo textarea {
    width: 100%;
    padding: 11px 14px;
    border: 1.5px solid var(--line);
    border-radius: 12px;
    font-family: var(--font-body);
    font-size: 14px;
    background: rgba(255,255,255,0.7);
}
.campo input:focus, .campo select:focus, .campo textarea:focus {
    outline: 2px solid var(--accent);
    border-color: var(--accent);
    background: var(--white);
}
.campo.has-error input,
.campo.has-error select,
.campo.has-error textarea { border-color: var(--danger); background: rgba(224,71,62,0.04); }
.campo.has-error input:focus,
.campo.has-error select:focus,
.campo.has-error textarea:focus { outline-color: var(--danger); border-color: var(--danger); background: var(--white); }
.campo-error-msg { display: block; font-size: 11px; color: var(--danger); margin-top: 5px; font-weight: 500; }
.campo input::placeholder, .campo textarea::placeholder { color: var(--ink-mute); font-weight: 400; }

/* ---------- Avisos / flash ---------- */
.aviso {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 13px 18px;
    border-radius: 14px;
    margin-bottom: 18px;
    font-size: 14px;
    font-weight: 500;
    border: 1px solid transparent;
    backdrop-filter: blur(10px);
    line-height: 1.5;
}
.aviso-info        { background: rgba(37,99,235,0.09);  color: #1d4ed8; border-color: rgba(37,99,235,0.18);  }
.aviso-exito       { background: rgba(47,158,110,0.10); color: #065f46; border-color: rgba(47,158,110,0.22); }
.aviso-error       { background: rgba(224,71,62,0.09);  color: #b91c1c; border-color: rgba(224,71,62,0.18);  }
.aviso-advertencia { background: rgba(217,119,6,0.09);  color: #92400e; border-color: rgba(217,119,6,0.18);  }

/* ---------- Footer ---------- */
.site-footer {
    margin-top: 56px;
    padding: 8px 0 28px;
}
.site-footer .container {
    background: var(--ink);
    color: #C8C3B4;
    border-radius: 24px;
    padding: 40px 36px 28px;
    font-size: 13px;
}
.footer-grid { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 28px; }
.footer-col { flex: 1; min-width: 220px; }
.newsletter-box input {
    padding: 11px 14px;
    border-radius: 999px 0 0 999px;
    border: none;
    font-family: var(--font-body);
    flex: 1;
    min-width: 0;
}
.newsletter-box form { display: flex; align-items: stretch; }
.newsletter-box button.mn-btn {
    border-radius: 0 999px 999px 0;
    height: auto;
    padding-top: 11px;
    padding-bottom: 11px;
}
.footer-bottom { margin-top: 24px; font-family: var(--font-mono); font-size: 11px; opacity: .55; }
.footer-brand-logo{display:block;width:180px;height:auto;max-height:130px;object-fit:contain;margin:0 0 12px;padding:0;border-radius:0;background:transparent}
.footer-contact-links{display:flex;flex-direction:column;align-items:flex-start;gap:5px;margin-top:12px}.footer-contact-links a{color:#fff;font-size:12px;opacity:.85}.footer-contact-links a:hover{color:var(--accent);opacity:1}
.footer-mapa { border-radius: 16px; overflow: hidden; border: 1px solid rgba(255,255,255,0.12); align-self: flex-start; }
.footer-mapa iframe { display: block; filter: saturate(0.9); }

/* ---------- Chatbot (widget 25% más grande) ---------- */
#chatbot-burbuja {
    position: fixed;
    bottom: 22px;
    right: 22px;
    width: 73px;
    height: 73px;
    border-radius: 50%;
    background: var(--accent);
    color: var(--white);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 33px;
    cursor: pointer;
    box-shadow: 0 10px 28px -8px rgba(201,150,59,0.6);
    z-index: 80;
    border: none;
}
#chatbot-ventana {
    position: fixed;
    bottom: 105px;
    right: 22px;
    width: 400px;
    max-height: 550px;
    background: var(--glass);
    backdrop-filter: blur(20px) saturate(180%);
    border: 1px solid var(--glass-border);
    border-radius: 24px;
    display: none;
    flex-direction: column;
    overflow: hidden;
    z-index: 80;
    box-shadow: 0 20px 50px -16px rgba(31,41,55,0.4);
}
#chatbot-ventana.abierto { display: flex; }
#chatbot-header {
    background: var(--ink);
    color: var(--white);
    padding: 17px 20px;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 19px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
#chatbot-mensajes {
    flex: 1;
    overflow-y: auto;
    padding: 15px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.msg { max-width: 85%; padding: 11px 16px; border-radius: 17px; font-size: 16px; line-height: 1.4; white-space: pre-line; }
.msg-bot { background: rgba(255,255,255,0.7); align-self: flex-start; }
.msg-user { background: var(--accent); color: var(--white); align-self: flex-end; }
#chatbot-form { display: flex; border-top: 1px solid var(--line); }
#chatbot-form input {
    flex: 1; border: none; padding: 15px; font-family: var(--font-body); font-size: 16px; background: transparent;
}
#chatbot-form button { border: none; background: var(--ink); color: var(--white); padding: 0 20px; font-size: 18px; cursor: pointer; }

.chatbot-resultados { display: flex; flex-direction: column; gap: 8px; background: transparent !important; padding: 0 !important; max-width: 100% !important; }
.chatbot-resultado-item {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 6px 10px;
    background: rgba(255,255,255,0.85);
    border-left: 3px solid var(--cat-color, var(--accent));
    border-radius: 10px;
    padding: 10px 12px;
    cursor: pointer;
    transition: background .15s ease;
}
.chatbot-resultado-item:hover { background: var(--white); }
.chatbot-resultado-nombre { font-weight: 700; font-size: 14px; color: var(--ink); flex: 1 0 100%; }
.chatbot-resultado-precio { font-family: var(--font-mono); font-weight: 600; font-size: 14px; }
.chatbot-resultado-reventa { font-family: var(--font-mono); font-size: 11px; color: var(--accent); }
.chatbot-resultado-estado { font-size: 11px; color: var(--ink-mute); flex: 1 0 100%; }


/* ---------- Quick view (ventana rápida de producto) ---------- */
#qv-overlay {
    position: fixed;
    inset: 0;
    background: rgba(31,41,55,0.45);
    backdrop-filter: blur(4px);
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 100;
    padding: 20px;
}
#qv-overlay.abierto { display: flex; }
#qv-modal {
    background: var(--glass);
    backdrop-filter: blur(24px) saturate(180%);
    border: 1px solid var(--glass-border);
    border-radius: 24px;
    max-width: 720px;
    width: 100%;
    max-height: 88vh;
    overflow-y: auto;
    position: relative;
    box-shadow: 0 30px 70px -20px rgba(0,0,0,0.45);
}
#qv-modal .qv-franja { height: 6px; background: var(--cat-color); border-radius: 24px 24px 0 0; }
#qv-cerrar {
    position: absolute;
    top: 16px;
    right: 16px;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--white);
    border: none;
    font-size: 18px;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(0,0,0,0.18);
    z-index: 5;
}
.qv-body { padding: 32px; display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.qv-categoria {
    font-family: var(--font-mono);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--cat-color);
    font-weight: 600;
    margin-bottom: 8px;
    display: block;
}
.qv-nombre { font-size: 26px; margin-bottom: 10px; }
.qv-marca { display:flex;align-items:baseline;gap:5px;margin:0 0 9px;color:var(--ink-soft);font-size:12px;line-height:1.4; }
.qv-marca span { color:var(--ink-mute); }
.qv-marca strong { font-weight:650; }
.qv-precio { font-family: var(--font-mono); font-size: 24px; font-weight: 600; margin-bottom: 14px; display:flex; align-items:baseline; flex-wrap:wrap; gap:8px; }
.precio-tachado { font-size: 16px; font-weight: 400; color: var(--ink-mute); text-decoration: line-through; }
.precio-oferta { color: var(--accent); }
.badge-oferta { font-size: 12px; font-weight: 700; background: rgba(201,150,59,.15); color: var(--accent); padding: 2px 8px; border-radius: 999px; align-self: center; }
.qv-descripcion { color: var(--ink-soft); margin-bottom: 20px; }
.qv-stock {
    display: inline-block;
    font-family: var(--font-mono);
    font-size: 12px;
    text-transform: uppercase;
    padding: 5px 12px;
    border-radius: 999px;
    background: rgba(47,158,110,0.14);
    color: var(--crate);
    margin-bottom: 18px;
    font-weight: 600;
}
.qv-stock.agotado { background: rgba(224,71,62,0.14); color: var(--danger); }
.qv-cantidad-wrap { display: flex; gap: 10px; align-items: center; }
.qv-cantidad-wrap input[type=number] {
    width: 70px; padding: 11px; border: 1.5px solid var(--line); border-radius: 12px; text-align: center; font-family: var(--font-mono); background: rgba(255,255,255,0.7);
}
.qv-img-placeholder {
    background: linear-gradient(135deg, rgba(255,255,255,0.6), rgba(255,255,255,0.2));
    backdrop-filter: blur(10px);
    border: 1px solid var(--glass-border);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-display);
    font-size: 56px;
    color: var(--cat-color);
    opacity: .6;
    min-height: 220px;
}
.qv-loading { padding: 60px; text-align: center; font-family: var(--font-mono); color: var(--ink-mute); }

/* ---------- Popup de promoción ---------- */
.promo-popup {
    position: fixed;
    bottom: 22px;
    left: 22px;
    width: 300px;
    display: flex;
    align-items: center;
    gap: 12px;
    background: var(--glass);
    backdrop-filter: blur(20px) saturate(180%);
    border: 1px solid var(--glass-border);
    border-radius: 18px;
    padding: 14px;
    box-shadow: 0 20px 50px -16px rgba(31,41,55,0.4);
    z-index: 79;
    opacity: 0;
    transform: translateY(24px) scale(.96);
    transition: opacity .4s var(--ease-soft), transform .4s var(--ease-soft);
    pointer-events: none;
}
.promo-popup.visible { opacity: 1; transform: translateY(0) scale(1); pointer-events: auto; }
.promo-popup.cerrando { opacity: 0; transform: translateY(12px) scale(.96); }
.promo-popup::before {
    content: '';
    position: absolute;
    top: -10%; left: -10%;
    width: 60%; height: 60%;
    background: var(--cat-color);
    opacity: .25;
    filter: blur(26px);
    border-radius: 50%;
    pointer-events: none;
}
.promo-img { width: 56px; height: 56px; border-radius: 14px; overflow: hidden; flex-shrink: 0; position: relative; z-index: 1; }
.promo-img img { width: 100%; height: 100%; object-fit: cover; }
.promo-img-placeholder {
    display: flex; align-items: center; justify-content: center;
    background: var(--cat-color); color: #fff;
    font-family: var(--font-display); font-weight: 700; font-size: 22px;
}
.promo-texto { display: flex; flex-direction: column; gap: 2px; position: relative; z-index: 1; min-width: 0; }
.promo-eyebrow {
    font-family: var(--font-mono); font-size: 10px; text-transform: uppercase;
    letter-spacing: 0.08em; color: var(--cat-color); font-weight: 600;
}
.promo-texto strong { font-family: var(--font-display); font-size: 14px; color: var(--ink); line-height: 1.25; }
.promo-sub { font-size: 12px; color: var(--ink-soft); }
#promo-cerrar {
    position: absolute;
    top: -8px; right: -8px;
    width: 26px; height: 26px;
    border-radius: 50%;
    background: var(--ink);
    color: #fff;
    border: none;
    font-size: 12px;
    cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    z-index: 2;
    box-shadow: 0 4px 10px rgba(0,0,0,0.25);
}
@media (max-width: 760px) {
    .promo-popup {
        left: auto;
        right: 14px;
        width: min(260px, calc(100vw - 28px));
        bottom: 14px;
        padding: 11px 12px;
        gap: 10px;
    }
    .promo-img { width: 44px; height: 44px; }
    .promo-texto strong { font-size: 13px; }
}
@media (prefers-reduced-motion: reduce) {
    .promo-popup { transition: opacity .3s ease; transform: none; }
}

/* ---------- Carrusel de productos (home) ---------- */
.carrusel-wrap { position: relative; display: flex; align-items: center; gap: 8px; }
.carrusel {
    display: flex;
    gap: 18px;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    scroll-behavior: smooth;
    padding: 4px 2px 14px;
    flex: 1;
    scrollbar-width: none;
    cursor: grab;
}
.carrusel::-webkit-scrollbar { display: none; }
.carrusel.arrastrando { cursor: grabbing; scroll-behavior: auto; user-select: none; }
.carrusel.arrastrando .tag-producto { pointer-events: none; }
.carrusel-item { flex: 0 0 240px; scroll-snap-align: start; }
.carrusel-item .tag-producto { height: 100%; }
.carrusel-flecha {
    flex-shrink: 0;
    width: 42px; height: 42px;
    border-radius: 50%;
    background: var(--white);
    border: 1px solid var(--line);
    font-size: 20px;
    cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 4px 12px rgba(11,19,32,0.1);
    color: var(--ink);
}
.carrusel-flecha:hover { background: var(--accent); color: #fff; border-color: var(--accent); }
@media (max-width: 760px) {
    .carrusel-flecha { display: none; }
}

/* ---------- Paginador ---------- */
.paginador {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    margin-top: 32px;
    flex-wrap: wrap;
}
.paginador-info {
    font-family: var(--font-mono);
    font-size: 12px;
    color: var(--ink-mute);
}

/* ---------- Scroll reveal ---------- */
[data-reveal] { opacity: 0; transform: translateY(18px); transition: opacity .6s var(--ease-soft), transform .6s var(--ease-soft); }
[data-reveal].is-revealed { opacity: 1; transform: translateY(0); }
@media (prefers-reduced-motion: reduce) {
    [data-reveal] { opacity: 1; transform: none; transition: none; }
}

/* ---------- Responsive ---------- */
@media (max-width: 760px) {
    .site-header { padding: 10px 0 0; }
    .site-header .container { height: 60px; padding: 0 14px; border-radius: 16px; }
    .brand-main{width:50px;height:50px;padding:0;border-radius:0;background:transparent}
    .header-actions { gap: 8px; }
    .user-pill { display: none; }

    #nav-toggle {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 38px;
        height: 38px;
        background: rgba(31,41,55,0.06);
        border: none;
        border-radius: 10px;
        color: var(--ink);
        font-size: 18px;
        cursor: pointer;
        order: -1;
    }

    .main-nav {
        position: fixed;
        top: 0;
        left: 0;
        width: 78%;
        max-width: 300px;
        height: 100vh;
        background: var(--bg-soft);
        backdrop-filter: blur(20px);
        flex-direction: column;
        align-items: stretch;
        gap: 4px;
        padding: 84px 20px 20px;
        transform: translateX(-105%);
        transition: transform .3s var(--ease-soft);
        z-index: 95;
        order: 0;
    }
    .main-nav.abierto { transform: translateX(0); }
    .main-nav a {
        border-radius: 12px;
        padding: 13px 14px;
        font-size: 15px;
        background: var(--white);
    }
    .main-nav a::after { display: none; }

    .nav-overlay {
        position: fixed;
        inset: 0;
        background: rgba(31,41,55,0.45);
        z-index: 90;
    }
    .nav-overlay.abierto { display: block; }

    .hero-grid { grid-template-columns: 1fr; }
    .hero-visual { height: 220px; margin-top: 12px; }
    .hero h1 { font-size: 36px; }
    #chatbot-ventana { width: calc(100vw - 32px); right: 16px; }
    .qv-body { grid-template-columns: 1fr; }
    .auth-brand img{width:min(220px,90%)}
}

/* Accesibilidad: foco visible */
.checkout-page{max-width:1180px}.checkout-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:26px}.checkout-heading h1{font-size:32px;margin:3px 0}.checkout-heading p{color:var(--ink-soft)}.checkout-eyebrow{font:700 10px var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--accent)}.checkout-total-top{text-align:right}.checkout-total-top span{display:block;font:600 10px var(--font-mono);text-transform:uppercase;color:var(--ink-mute)}.checkout-total-top strong{font:700 28px var(--font-mono)}.checkout-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(340px,.75fr);gap:22px;align-items:start}.checkout-main,.checkout-side{display:grid;gap:18px}.checkout-side{position:sticky;top:22px}.checkout-card{background:rgba(255,255,255,.88);border:1px solid var(--glass-border);border-radius:20px;padding:22px;box-shadow:0 16px 38px -28px rgba(31,41,55,.42)}.checkout-card-title{display:flex;align-items:center;gap:11px;margin-bottom:18px}.checkout-card-title>span{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:var(--ink);color:#fff;font:700 11px var(--font-mono);flex:none}.checkout-card-title h2{font-size:17px;margin:0}.checkout-card-title p{font-size:12px;color:var(--ink-mute);margin:2px 0 0}.checkout-items{display:grid;gap:0}.checkout-item{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px}.checkout-item>span{color:var(--ink-soft)}.checkout-item>strong{white-space:nowrap}.checkout-total{display:flex;justify-content:space-between;align-items:center;margin-top:16px;padding:16px;border-radius:14px;background:var(--ink);color:#fff}.checkout-total strong{font:700 22px var(--font-mono)}.checkout-field{margin:0}.checkout-field small{display:block;margin-top:6px;color:var(--ink-mute);font-size:11px}.payment-options{display:grid;gap:10px}.payment-option{cursor:pointer}.payment-option>input{position:absolute;opacity:0;pointer-events:none}.payment-option-box{display:grid;grid-template-columns:42px 1fr 18px;align-items:center;gap:11px;padding:14px;border:1.5px solid var(--line);border-radius:14px;background:#fff;transition:.18s ease}.payment-option:hover .payment-option-box{border-color:var(--accent)}.payment-option input:checked+.payment-option-box{border-color:var(--accent);box-shadow:0 0 0 3px rgba(201,150,59,.13);background:rgba(201,150,59,.05)}.payment-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:var(--bg-soft);font:700 18px var(--font-mono)}.payment-option-box strong,.payment-option-box small{display:block}.payment-option-box strong{font-size:14px}.payment-option-box small{margin-top:3px;color:var(--ink-mute);font-size:11px;line-height:1.35}.payment-option-box i{width:16px;height:16px;border:1.5px solid var(--line);border-radius:50%}.payment-option input:checked+.payment-option-box i{border:5px solid var(--accent)}.checkout-transfer[hidden]{display:none}.bank-details{display:grid;gap:0;margin:0 0 18px;border:1px solid var(--line);border-radius:14px;overflow:hidden}.bank-details div{display:grid;grid-template-columns:110px 1fr;gap:12px;padding:10px 12px;border-bottom:1px solid var(--line)}.bank-details div:last-child{border:0}.bank-details dt{font:600 10px var(--font-mono);text-transform:uppercase;color:var(--ink-mute)}.bank-details dd{margin:0;font-size:13px;font-weight:600;overflow-wrap:anywhere}.send-later{display:flex;align-items:flex-start;gap:10px;margin-top:14px;padding:12px;border-radius:12px;background:var(--bg-soft);cursor:pointer}.send-later input{margin-top:3px}.send-later strong,.send-later small{display:block}.send-later small{color:var(--ink-mute);font-size:11px;margin-top:2px}.checkout-submit{width:100%;padding:15px;display:flex;flex-direction:column;align-items:center}.checkout-submit span{font-weight:700}.checkout-submit small{font-size:10px;opacity:.8;margin-top:2px}.checkout-security{text-align:center;color:var(--ink-mute);font-size:11px}

.account-orders{display:grid;gap:16px;margin-top:14px}.account-order{background:rgba(255,255,255,.86);border:1px solid var(--glass-border);border-radius:18px;padding:20px;box-shadow:0 14px 34px -28px rgba(31,41,55,.45)}.account-order-head{display:flex;justify-content:space-between;gap:16px;align-items:start;padding-bottom:15px;border-bottom:1px solid var(--line)}.account-order-head>div{display:flex;flex-direction:column;gap:3px}.account-order-head span{color:var(--ink-mute);font-size:11px}.account-order-total{font:700 19px var(--font-mono)}.account-order-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:16px 0}.account-order-meta>div{display:flex;flex-direction:column;gap:5px}.account-order-meta span{font:600 9px var(--font-mono);text-transform:uppercase;color:var(--ink-mute)}.account-order-meta strong{font-size:13px}.payment-status{display:inline-flex!important;align-items:center;width:max-content;padding:5px 9px;border-radius:999px;background:rgba(100,116,139,.12);color:var(--ink-soft)}.payment-status-comprobante_recibido{background:rgba(201,150,59,.15);color:#80601e}.payment-status-pago_confirmado{background:rgba(47,158,110,.14);color:var(--crate)}.payment-status-rechazado{background:rgba(224,71,62,.13);color:var(--danger)}.account-payment-message{display:flex;flex-direction:column;gap:3px;padding:12px 14px;background:var(--bg-soft);border-radius:12px;font-size:12px}.account-payment-message span{color:var(--ink-soft)}.account-upload{display:flex;gap:12px;align-items:end;margin-top:14px}.account-upload label{flex:1}.account-upload label>span,.account-upload small{display:block}.account-upload label>span{font-weight:600;font-size:12px;margin-bottom:5px}.account-upload small{color:var(--ink-mute);font-size:10px;margin-top:4px}

.admin-order-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;margin-bottom:18px;box-shadow:0 15px 35px -30px rgba(31,41,55,.5)}.admin-order-head{display:flex;justify-content:space-between;gap:18px;padding-bottom:16px;border-bottom:1px solid var(--line)}.admin-order-number{font:700 11px var(--font-mono);text-transform:uppercase;color:var(--accent)}.admin-order-head h3{font-size:19px;margin:4px 0}.admin-order-head p{font-size:12px;color:var(--ink-mute)}.admin-order-total{text-align:right}.admin-order-total span,.admin-order-total small{display:block}.admin-order-total span{font:600 9px var(--font-mono);text-transform:uppercase;color:var(--ink-mute)}.admin-order-total strong{font:700 22px var(--font-mono)}.admin-order-total small{color:var(--ink-mute);margin-top:4px}.admin-order-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:16px 0}.admin-order-facts>div{display:flex;flex-direction:column;align-items:flex-start;gap:5px}.admin-order-facts span{font:600 9px var(--font-mono);text-transform:uppercase;color:var(--ink-mute)}.admin-order-facts strong{font-size:12px}.order-status{padding:5px 9px;border-radius:999px;background:rgba(31,41,55,.08)}.admin-receipt-actions{display:flex;gap:8px;margin-bottom:14px}.admin-order-items{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px 0}.admin-order-items summary{cursor:pointer;font-weight:650;font-size:13px}.admin-order-items ul{list-style:none;margin:10px 0 0;padding:0}.admin-order-items li{display:flex;justify-content:space-between;gap:12px;padding:7px 0;font-size:12px;color:var(--ink-soft)}.admin-customer-note{margin-top:14px;padding:12px 14px;border-left:3px solid var(--accent);background:rgba(201,150,59,.07);font-size:12px}.admin-customer-note p{margin:4px 0 0}.admin-order-actions{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:14px;margin-top:16px}.admin-order-form{display:grid;grid-template-columns:190px minmax(220px,1fr) auto;gap:10px;align-items:end}.admin-payment-form{display:grid;grid-template-columns:1fr;gap:0;padding-left:14px;border-left:1px solid var(--line)}.admin-order-form .campo,.admin-payment-form .campo{margin-bottom:0}.receipt-modal[hidden]{display:none}.receipt-modal{position:fixed;inset:0;z-index:200;background:rgba(11,19,32,.72);display:grid;place-items:center;padding:24px}.receipt-modal-dialog{position:relative;max-width:min(900px,92vw);max-height:90vh}.receipt-modal img{display:block;max-width:100%;max-height:86vh;border-radius:12px;background:#fff}.receipt-modal-close{position:absolute;right:-12px;top:-12px;width:38px;height:38px;border:0;border-radius:50%;background:#fff;font-size:24px;cursor:pointer;box-shadow:0 6px 20px rgba(0,0,0,.3)}

a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible {
    outline: 3px solid var(--accent);
    outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
    * { scroll-behavior: auto !important; }
}

@media(max-width:900px){.checkout-layout{grid-template-columns:1fr}.checkout-side{position:static}.admin-order-facts{grid-template-columns:repeat(2,1fr)}.admin-order-actions{grid-template-columns:1fr}.admin-payment-form{padding:14px 0 0;border-left:0;border-top:1px solid var(--line)}.admin-order-form{grid-template-columns:1fr}.account-order-meta{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.checkout-heading{align-items:flex-start}.checkout-total-top{display:none}.checkout-card{padding:17px}.checkout-item{font-size:12px}.bank-details div{grid-template-columns:1fr;gap:3px}.account-order-head,.admin-order-head{flex-direction:column}.account-order-total,.admin-order-total{text-align:left}.account-order-meta,.admin-order-facts{grid-template-columns:1fr}.account-upload{align-items:stretch;flex-direction:column}.admin-order-items li{flex-direction:column}.admin-main{padding:18px}.checkout-heading h1{font-size:27px}}

/* ================================================================
   MANAM Design System · Fase UX-1
   Badges de estado, documentos, checkout mejorado
   ================================================================ */

/* --- Badges de estado (reutilizables en toda la app) ----------- */
.manam-badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    font-family: var(--font-mono);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    white-space: nowrap;
    line-height: 1.4;
}

/* Estados del pedido */
.manam-badge-recibido          { background: rgba(59,130,246,0.12);  color: #1d4ed8; }
.manam-badge-en_revision       { background: rgba(201,150,59,0.15);  color: #92610f; }
.manam-badge-confirmado        { background: rgba(34,197,94,0.12);   color: #15803d; }
.manam-badge-preparado         { background: rgba(139,92,246,0.14);  color: #6d28d9; }
.manam-badge-enviado           { background: rgba(6,182,212,0.13);   color: #0e7490; }
.manam-badge-recibido_cliente  { background: rgba(21,128,61,0.18);   color: #14532d; }
.manam-badge-entregado         { background: rgba(21,128,61,0.18);   color: #14532d; } /* legacy */
.manam-badge-cancelado         { background: rgba(224,71,62,0.12);   color: #b91c1c; }

/* Estados del pago */
.manam-badge-pendiente            { background: rgba(201,150,59,0.12); color: #92610f; }
.manam-badge-comprobante_recibido { background: rgba(59,130,246,0.12); color: #1e40af; }
.manam-badge-pago_confirmado      { background: rgba(47,158,110,0.14); color: #065f46; }
.manam-badge-rechazado            { background: rgba(224,71,62,0.13);  color: #b91c1c; }

/* --- Checkout: cabecera de card sin numeración ----------- */
.checkout-card-header {
    margin-bottom: 18px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--line);
}
.checkout-card-header h2 { font-size: 17px; margin: 0 0 3px; }
.checkout-card-header p  { font-size: 12px; color: var(--ink-mute); margin: 0; }
.checkout-card-eyebrow {
    display: block;
    font: 700 9px var(--font-mono);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--accent);
    margin-bottom: 4px;
}

/* Mensaje de pago en efectivo */
.checkout-cash-info {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 16px;
    background: rgba(47,158,110,0.07);
    border: 1px solid rgba(47,158,110,0.20);
    border-radius: 14px;
    font-size: 13px;
    color: #065f46;
}
.checkout-cash-info svg { flex-shrink: 0; margin-top: 1px; }

/* --- Mi Cuenta: tarjetas de pedido mejoradas ------------ */
.account-order-id {
    font: 700 15px var(--font-display);
    color: var(--ink);
}
.account-order-date {
    font-size: 12px;
    color: var(--ink-mute);
    margin-top: 2px;
}
.account-order-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 12px 0;
}
.account-order-detail {
    border-top: 1px solid var(--line);
    padding-top: 14px;
    margin-top: 14px;
}
.account-order-detail table { font-size: 13px; }
.account-order-detail th { font: 600 9px var(--font-mono); text-transform: uppercase; color: var(--ink-mute); padding: 6px 8px; }
.account-order-detail td { padding: 8px; }
.account-order-detail .td-right { text-align: right; font-family: var(--font-mono); font-weight: 600; }
.account-order-detail .detail-total { font: 700 15px var(--font-mono); text-align: right; padding: 10px 8px 0; border-top: 1px solid var(--line); }
.account-order-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 14px;
}
.account-order-notas {
    margin-top: 10px;
    padding: 10px 12px;
    background: var(--bg-soft);
    border-radius: 10px;
    font-size: 12px;
    color: var(--ink-soft);
}
.account-order-notas strong { display: block; font-size: 10px; text-transform: uppercase; font-family: var(--font-mono); color: var(--ink-mute); margin-bottom: 3px; }

/* --- Admin: mejoras de tarjeta de pedido ------------ */
.admin-order-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 10px 0 14px;
}
.admin-order-doc-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 14px;
    padding: 10px 14px;
    background: var(--bg-soft);
    border-radius: 12px;
}
.admin-order-items-table { width:100%; border-collapse:collapse; font-size:12px; margin-top:10px; }
.admin-order-items-table th { font:600 9px var(--font-mono); text-transform:uppercase; color:var(--ink-mute); padding:6px 8px; text-align:left; border-bottom:1px solid var(--line); }
.admin-order-items-table td { padding:8px; border-bottom:1px solid var(--line); }
.admin-order-items-table tr:last-child td { border:none; }
.admin-order-items-table .td-mono { font-family:var(--font-mono); font-size:11px; color:var(--ink-mute); }
.admin-order-items-table .td-right { text-align:right; font-family:var(--font-mono); font-weight:600; }

/* --- Historial de eventos del pedido (admin) --------- */
.pedido-eventos { list-style: none; margin: 10px 0 0; padding: 0; display: flex; flex-direction: column; gap: 0; }
.pedido-evento { display: flex; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--line); font-size: 12px; }
.pedido-evento:last-child { border: none; }
.pedido-evento-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--accent); margin-top: 3px; flex-shrink: 0; }
.pedido-evento-desc { color: var(--ink); line-height: 1.4; }
.pedido-evento-meta { color: var(--ink-mute); font-size: 11px; margin-top: 2px; }

/* --- Documentos imprimibles (confirmación, orden interna) --- */
.doc-wrap {
    max-width: 780px;
    margin: 32px auto;
    padding: 0 24px 60px;
}
.doc-print-bar {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-bottom: 24px;
}
.doc-page {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 48px;
    box-shadow: 0 16px 48px -20px rgba(31,41,55,0.18);
}
.doc-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 32px;
    padding-bottom: 24px;
    border-bottom: 2px solid var(--accent);
}
.doc-header-meta { text-align: right; }
.doc-tipo-label {
    font: 700 10px var(--font-mono);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--ink-mute);
    display: block;
    margin-bottom: 4px;
}
.doc-numero {
    font: 700 28px var(--font-mono);
    color: var(--ink);
    display: block;
}
.doc-fecha { font-size: 13px; color: var(--ink-soft); margin-top: 4px; }
.doc-section { margin-bottom: 24px; }
.doc-section-title {
    font: 700 9px var(--font-mono);
    text-transform: uppercase;
    letter-spacing: 0.09em;
    color: var(--accent);
    border-bottom: 1px solid rgba(201,150,59,0.25);
    padding-bottom: 6px;
    margin-bottom: 12px;
    display: block;
}
.doc-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.doc-field { display: flex; flex-direction: column; gap: 3px; }
.doc-field dt {
    font: 600 9px var(--font-mono);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--ink-mute);
}
.doc-field dd { font-size: 14px; margin: 0; color: var(--ink); }
.doc-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.doc-table th {
    background: rgba(11,19,32,0.04);
    padding: 9px 10px;
    text-align: left;
    font: 600 9px var(--font-mono);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--ink-mute);
    border-bottom: 1px solid var(--line);
}
.doc-table td { padding: 10px; border-bottom: 1px solid var(--line); }
.doc-table tr:last-child td { border-bottom: none; }
.doc-table .td-right { text-align: right; font-family: var(--font-mono); font-weight: 600; }
.doc-table .td-mono { font-family: var(--font-mono); font-size: 11px; color: var(--ink-mute); }
.doc-total-box {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 24px;
    padding: 16px 10px;
    border-top: 2px solid var(--ink);
    margin-top: 4px;
}
.doc-total-label { font-weight: 700; font-size: 15px; }
.doc-total-amount { font: 700 26px var(--font-mono); color: var(--ink); }
.doc-disclaimer {
    font-size: 11px;
    color: var(--ink-mute);
    border-top: 1px solid var(--line);
    padding-top: 18px;
    margin-top: 28px;
    line-height: 1.6;
}
.doc-badge { display: inline-block; padding: 3px 9px; border-radius: 999px; font: 600 10px var(--font-mono); text-transform: uppercase; }

@media print {
    .doc-print-bar, .site-header, .site-footer, #chatbot-burbuja { display: none !important; }
    body::before { display: none; }
    body { background: #fff; }
    .doc-page { border: none; border-radius: 0; box-shadow: none; padding: 0; }
    .doc-wrap { margin: 0; padding: 0; max-width: 100%; }
    a { color: inherit; text-decoration: none; }
}

@media (max-width: 600px) {
    .doc-header { flex-direction: column; gap: 16px; }
    .doc-header-meta { text-align: left; }
    .doc-grid-2 { grid-template-columns: 1fr; }
    .doc-page { padding: 24px; }
    .doc-wrap { padding: 0 12px 40px; }
}

/* ================================================================
   Fase Operativa: Notificaciones · Tracking · Kanban
   ================================================================ */

/* --- Campanita de notificaciones (header) ------------------- */
.notif-pill {
    position: relative;
    display: flex;
    align-items: center;
    gap: 5px;
    font-family: var(--font-body);
    font-weight: 500;
    font-size: 13px;
    color: var(--ink-soft);
    padding: 4px 6px;
}
.notif-count {
    background: var(--danger);
    color: #fff;
    border-radius: 999px;
    min-width: 18px;
    height: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-family: var(--font-mono);
    font-weight: 700;
    line-height: 1;
}

/* --- Sección notificaciones (cuenta.php) -------------------- */
.notif-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 12px;
}
.notif-item {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 12px 14px;
    border-radius: 12px;
    background: rgba(255,255,255,0.86);
    border: 1px solid var(--glass-border);
    font-size: 13px;
    transition: opacity .3s ease;
}
.notif-item.leida {
    background: rgba(255,255,255,0.5);
    opacity: 0.75;
}
.notif-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--accent);
    flex-shrink: 0;
    margin-top: 5px;
}
.notif-item.leida .notif-dot { background: var(--line); }
.notif-body { flex: 1; }
.notif-titulo { font-weight: 650; color: var(--ink); }
.notif-msg { color: var(--ink-soft); margin-top: 2px; }
.notif-fecha { font: 11px var(--font-mono); color: var(--ink-mute); margin-top: 3px; }

/* --- Tracking de pedido (cliente) --------------------------- */
.pedido-tracking-wrap {
    margin: 14px 0 8px;
}
.pedido-tracking {
    display: flex;
    align-items: center;
}
.t-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    position: relative;
}
.t-dot {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    border: 2px solid var(--line);
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 700;
    color: transparent;
    flex-shrink: 0;
    transition: background .2s ease, border-color .2s ease;
}
.t-step.done .t-dot {
    background: var(--crate);
    border-color: var(--crate);
    color: #fff;
}
.t-step.current .t-dot {
    background: var(--accent);
    border-color: var(--accent);
    color: #fff;
    box-shadow: 0 0 0 5px rgba(201,150,59,0.15);
}
.t-step.cancelled .t-dot {
    background: var(--danger);
    border-color: var(--danger);
    color: #fff;
}
.t-label {
    font: 600 9px var(--font-mono);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--ink-mute);
    text-align: center;
    max-width: 56px;
    line-height: 1.3;
}
.t-step.done .t-label { color: var(--crate); }
.t-step.current .t-label { color: var(--accent); font-weight: 700; }
.t-step.cancelled .t-label { color: var(--danger); }
.t-line {
    flex: 1;
    height: 2px;
    background: var(--line);
    margin: 0 2px;
    margin-bottom: 22px; /* align with dot center */
}
.t-line.done { background: var(--crate); }
.t-cancelled-msg {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    background: rgba(224,71,62,0.07);
    border-radius: 10px;
    font-size: 12px;
    color: var(--danger);
    font-weight: 600;
    margin-top: 8px;
}

/* --- Tablero Kanban (admin/operaciones.php) ----------------- */
.kanban-page-wrap {
    padding-bottom: 24px;
}
.kanban-scroll {
    display: flex;
    gap: 14px;
    overflow-x: auto;
    padding-bottom: 12px;
    align-items: flex-start;
    scrollbar-width: thin;
}
.kanban-scroll::-webkit-scrollbar { height: 6px; }
.kanban-scroll::-webkit-scrollbar-thumb { background: var(--line); border-radius: 3px; }
.kanban-col {
    flex: 0 0 268px;
    background: rgba(11,19,32,0.04);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 14px;
    min-height: 120px;
}
.kanban-col-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
    gap: 8px;
}
.kanban-col-title {
    font: 700 11px var(--font-mono);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--ink-soft);
}
.kanban-col-count {
    background: var(--ink);
    color: #fff;
    border-radius: 999px;
    min-width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-family: var(--font-mono);
    font-weight: 700;
}
.kanban-empty {
    font-size: 12px;
    color: var(--ink-mute);
    text-align: center;
    padding: 16px 0;
    font-family: var(--font-mono);
}
.kanban-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 14px;
    margin-bottom: 10px;
    box-shadow: 0 4px 14px -8px rgba(31,41,55,0.22);
    transition: box-shadow .2s ease;
}
.kanban-card:last-child { margin-bottom: 0; }
.kanban-card:hover { box-shadow: 0 8px 24px -8px rgba(31,41,55,0.3); }
.kanban-card-num {
    font: 700 10px var(--font-mono);
    text-transform: uppercase;
    color: var(--accent);
    margin-bottom: 4px;
    display: block;
}
.kanban-card-cliente {
    font-weight: 650;
    font-size: 13px;
    color: var(--ink);
    line-height: 1.3;
    margin-bottom: 2px;
}
.kanban-card-meta {
    font-size: 11px;
    color: var(--ink-mute);
    margin-bottom: 8px;
    line-height: 1.5;
}
.kanban-card-total {
    font: 700 15px var(--font-mono);
    color: var(--ink);
    margin-bottom: 4px;
}
.kanban-card-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-bottom: 10px;
}
.kanban-card-actions {
    display: flex;
    flex-direction: column;
    gap: 5px;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid var(--line);
}
.kanban-card-actions .btn {
    justify-content: center;
}
.kanban-terminados {
    margin-top: 32px;
    border-top: 2px dashed var(--line);
    padding-top: 20px;
}
.kanban-terminados-titulo {
    font: 700 11px var(--font-mono);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--ink-mute);
    margin-bottom: 12px;
}
.kanban-terminados-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 10px;
}

@media (max-width: 900px) {
    .kanban-scroll { flex-direction: column; }
    .kanban-col { flex: none; width: 100%; }
    .kanban-terminados-grid { grid-template-columns: 1fr; }
}

/* ================================================================
   UX-2: Toast notificaciones · Botón confirmar recibido
   ================================================================ */

/* --- Toast (aparece desde la esquina inferior derecha) --------- */
#notif-toast-container {
    position: fixed;
    bottom: 24px;
    right: 24px;
    z-index: 9999;
    display: flex;
    flex-direction: column-reverse;
    gap: 8px;
    pointer-events: none;
    max-width: 340px;
}
.notif-toast {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 13px 16px;
    background: var(--ink);
    color: #fff;
    border-radius: 14px;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.45;
    box-shadow: 0 10px 30px -6px rgba(11,19,32,0.42);
    opacity: 0;
    transform: translateX(20px);
    transition: opacity 0.35s var(--ease-soft), transform 0.35s var(--ease-soft);
    pointer-events: auto;
}
.notif-toast.show {
    opacity: 1;
    transform: translateX(0);
}
.notif-toast-icon {
    flex-shrink: 0;
    margin-top: 1px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    color: rgba(255,255,255,0.80);
}
.notif-toast-icon svg { width: 16px; height: 16px; flex-shrink: 0; }
.notif-toast-body { flex: 1; }
.notif-toast-titulo {
    font-weight: 700;
    font-size: 13px;
    display: block;
}
.notif-toast-msg {
    font-size: 11px;
    opacity: 0.75;
    display: block;
    margin-top: 2px;
}
@media (max-width: 600px) {
    #notif-toast-container { left: 16px; right: 16px; max-width: none; bottom: 16px; }
}

/* --- Botón confirmar recibido (cuenta.php) --------------------- */
.confirm-recibido-wrap {
    margin-top: 12px;
    padding: 14px 16px;
    background: rgba(6,182,212,0.07);
    border: 1px solid rgba(6,182,212,0.25);
    border-radius: 14px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    justify-content: space-between;
}
.confirm-recibido-text {
    font-size: 13px;
    color: var(--ink-soft);
}
.confirm-recibido-text strong {
    display: block;
    color: #0e7490;
    font-weight: 700;
    margin-bottom: 2px;
}
.btn-confirmar-recibido {
    padding: 9px 18px;
    border-radius: 999px;
    background: #0e7490;
    color: #fff;
    font: 700 12px var(--font-mono);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    border: none;
    cursor: pointer;
    transition: background 0.18s ease, transform 0.15s ease;
    flex-shrink: 0;
}
.btn-confirmar-recibido:hover {
    background: #0c6378;
    transform: translateY(-1px);
}

/* --- Acento de columna kanban por estado ----------------------- */
.kanban-col[data-estado="recibido"]         .kanban-col-title { color: #1d4ed8; }
.kanban-col[data-estado="en_revision"]      .kanban-col-title { color: #92610f; }
.kanban-col[data-estado="confirmado"]       .kanban-col-title { color: #15803d; }
.kanban-col[data-estado="preparado"]        .kanban-col-title { color: #6d28d9; }
.kanban-col[data-estado="enviado"]          .kanban-col-title { color: #0e7490; }

/* --- Botón "Marcar como leídas" en notificaciones -------------- */
.notif-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}
.notif-header h3 {
    font-size: 17px;
    font-family: var(--font-display);
    margin: 0;
}
.notif-vacia {
    color: var(--ink-mute);
    font-size: 13px;
    padding: 12px 0;
}

/* ============================================================
   UX-3: Dropdown campanita
   ============================================================ */
.notif-btn-wrap {
    position: relative;
    display: inline-flex;
}
.notif-pill-btn {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    display: inline-flex;
    align-items: center;
}
.notif-dropdown {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    width: 340px;
    max-height: 480px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 18px;
    box-shadow: 0 24px 56px -12px rgba(11,19,32,.28);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    z-index: 600;
    opacity: 0;
    transform: translateY(-8px) scale(0.97);
    pointer-events: none;
    transition: opacity .18s ease, transform .18s ease;
}
.notif-dropdown.open {
    opacity: 1;
    transform: translateY(0) scale(1);
    pointer-events: auto;
}
.notif-dropdown-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 16px 12px;
    border-bottom: 1px solid var(--line);
    flex-shrink: 0;
}
.notif-dropdown-head span {
    font: 700 14px var(--font-display);
    color: var(--ink);
}
.notif-dropdown-marcar {
    font: 600 11px var(--font-mono);
    color: var(--accent);
    background: none;
    border: none;
    cursor: pointer;
    padding: 4px 8px;
    border-radius: 6px;
    transition: background .15s;
}
.notif-dropdown-marcar:hover { background: rgba(201,150,59,.1); }
.notif-dropdown-scroll {
    overflow-y: auto;
    flex: 1;
}
.notif-dropdown-item {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    padding: 11px 16px;
    cursor: pointer;
    border-bottom: 1px solid rgba(11,19,32,.05);
    transition: background .12s;
    text-decoration: none;
    color: inherit;
}
.notif-dropdown-item:hover { background: var(--bg); }
.notif-dropdown-item.unread { background: rgba(201,150,59,.04); }
.notif-dropdown-unread-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--accent);
    flex-shrink: 0;
    margin-top: 5px;
}
.notif-dropdown-icon {
    flex-shrink: 0;
    margin-top: 1px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    color: var(--accent);
}
.notif-dropdown-icon svg { width: 16px; height: 16px; flex-shrink: 0; }
.notif-dropdown-body { flex: 1; min-width: 0; }
.notif-dropdown-titulo {
    font: 600 12px var(--font-body);
    color: var(--ink);
    line-height: 1.4;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.notif-dropdown-msg {
    font-size: 11px;
    color: var(--ink-soft);
    margin-top: 2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.notif-dropdown-time {
    font: 10px var(--font-mono);
    color: var(--ink-mute);
    margin-top: 3px;
}
.notif-dropdown-vacia {
    padding: 28px 16px;
    text-align: center;
    color: var(--ink-mute);
    font-size: 13px;
}
.notif-dropdown-foot {
    padding: 10px 16px;
    border-top: 1px solid var(--line);
    flex-shrink: 0;
    text-align: center;
}
.notif-dropdown-foot a {
    font: 600 12px var(--font-mono);
    color: var(--ink-soft);
    text-decoration: none;
    transition: color .15s;
}
.notif-dropdown-foot a:hover { color: var(--accent); }

/* ============================================================
   UX-3: Tabs de Mi Cuenta
   ============================================================ */
.cuenta-tabs-nav {
    display: flex;
    border-bottom: 2px solid var(--line);
    margin: 24px 0 0;
    gap: 0;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}
.cuenta-tabs-nav::-webkit-scrollbar { display: none; }
.cuenta-tab-btn {
    padding: 10px 20px 13px;
    font: 600 14px var(--font-body);
    color: var(--ink-soft);
    cursor: pointer;
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    white-space: nowrap;
    display: flex;
    align-items: center;
    gap: 7px;
    transition: color .15s;
}
.cuenta-tab-btn:hover { color: var(--ink); }
.cuenta-tab-btn.activo {
    color: var(--accent);
    border-bottom-color: var(--accent);
}
.cuenta-tab-badge {
    background: var(--danger);
    color: #fff;
    border-radius: 999px;
    min-width: 16px;
    height: 16px;
    font: 700 9px var(--font-mono);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 4px;
}
.cuenta-tab-panel { display: none; padding-top: 20px; }
.cuenta-tab-panel.activo { display: block; }

/* ============================================================
   UX-3: Filtros de pedidos
   ============================================================ */
.pedidos-filtros {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    align-items: flex-end;
    padding: 14px 16px;
    background: rgba(255,255,255,.7);
    border: 1px solid var(--glass-border);
    border-radius: 14px;
    margin-bottom: 16px;
    backdrop-filter: blur(6px);
}
.pedidos-filtros .campo {
    margin: 0;
    min-width: 120px;
}
.pedidos-filtros label {
    font: 600 9px var(--font-mono);
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--ink-mute);
}
.pedidos-filtros select,
.pedidos-filtros input[type="date"] {
    font-size: 12px;
    padding: 6px 10px;
    border-radius: 8px;
    height: 34px;
}
.pedidos-filtros-actions {
    display: flex;
    gap: 6px;
    align-items: flex-end;
    padding-bottom: 0;
}
.pedidos-filtros-results {
    font: 11px var(--font-mono);
    color: var(--ink-mute);
    padding: 4px 0;
    text-align: right;
}

/* ============================================================
   UX-3: Filtros de notificaciones
   ============================================================ */
.notif-filtros {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-bottom: 14px;
}
.notif-filtro-chip {
    padding: 5px 13px;
    border-radius: 999px;
    font: 600 11px var(--font-mono);
    cursor: pointer;
    background: rgba(11,19,32,.06);
    color: var(--ink-soft);
    border: none;
    transition: background .15s, color .15s;
}
.notif-filtro-chip:hover { background: rgba(11,19,32,.1); }
.notif-filtro-chip.activo { background: var(--ink); color: #fff; }

/* ============================================================
   UX-3: Tarjetas de pedido mejoradas
   ============================================================ */
.account-order-actions-row {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid var(--line);
}
.btn-repetir-pedido {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 7px 14px;
    border-radius: 999px;
    font: 600 11px var(--font-mono);
    background: rgba(201,150,59,.1);
    color: var(--accent);
    border: 1px solid rgba(201,150,59,.25);
    cursor: pointer;
    transition: background .15s, border-color .15s;
    text-transform: uppercase;
    letter-spacing: .03em;
    text-decoration: none;
}
.btn-repetir-pedido:hover {
    background: rgba(201,150,59,.18);
    border-color: rgba(201,150,59,.5);
}

/* --- Sección de empresa en Mi Cuenta ------------------------ */
.cuenta-empresa-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 12px;
    margin-top: 12px;
}
.cuenta-empresa-campo {
    background: rgba(255,255,255,.7);
    border: 1px solid var(--glass-border);
    border-radius: 12px;
    padding: 12px 14px;
}
.cuenta-empresa-label {
    font: 600 9px var(--font-mono);
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--ink-mute);
    margin-bottom: 4px;
}
.cuenta-empresa-valor {
    font-size: 14px;
    color: var(--ink);
    font-weight: 500;
}

/* ---------- Contacto ---------- */
.contact-page{max-width:1100px}.contact-heading{max-width:720px;margin-bottom:28px}.contact-heading>span{font:700 10px var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--accent)}.contact-heading h1{font-size:34px;margin:5px 0 8px}.contact-heading p{color:var(--ink-soft);font-size:16px}.contact-layout{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);gap:22px;align-items:start}.contact-info-card,.contact-form-card{border:1px solid var(--glass-border);border-radius:22px;box-shadow:0 20px 48px -34px rgba(31,41,55,.48)}.contact-info-card{background:var(--ink);color:#fff;padding:28px}.contact-info-card>img{display:block;width:100%;max-width:240px;height:auto;object-fit:contain;margin:0 auto 24px}.contact-info-card h2,.contact-form-card h2{font-size:21px}.contact-info-card>p{color:#C8C3B4;font-size:13px;margin:7px 0 20px}.contact-socials{display:grid;gap:10px}.contact-socials a{display:flex;flex-direction:column;gap:2px;padding:13px 14px;border:1px solid rgba(255,255,255,.13);border-radius:13px;background:rgba(255,255,255,.06);transition:.18s ease}.contact-socials a:hover{border-color:var(--accent);transform:translateY(-1px)}.contact-socials span{font:600 9px var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--accent)}.contact-socials strong{font-size:12px;overflow-wrap:anywhere}.contact-form-card{background:rgba(255,255,255,.88);padding:28px}.contact-form-card>p{color:var(--ink-mute);font-size:13px;margin:6px 0 20px}.contact-fields{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.contact-message{grid-column:1/-1}.contact-submit{min-width:190px}.contact-honeypot{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important}

@media (max-width: 600px) {
    .notif-dropdown { width: calc(100vw - 32px); right: -8px; }
    .cuenta-tab-btn { padding: 9px 14px 12px; font-size: 13px; }
    .pedidos-filtros { padding: 10px 12px; }
    .pedidos-filtros .campo { min-width: 100px; }
    .contact-heading h1{font-size:29px}.contact-fields{grid-template-columns:1fr}.contact-message{grid-column:auto}.contact-info-card,.contact-form-card{padding:20px}.contact-submit{width:100%}
}

/* ===== Módulo de Favoritos ===== */

/* Botón corazón en tarjeta de catálogo */
.btn-favorito {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 1.5px solid var(--line);
    background: rgba(255,255,255,0.7);
    cursor: pointer;
    flex-shrink: 0;
    align-self: flex-end;
    padding: 0;
    color: var(--ink-mute);
    transition: border-color .18s, background .18s, color .18s;
    text-decoration: none;
}
.btn-favorito svg {
    width: 16px;
    height: 16px;
    stroke: currentColor;
    fill: none;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
    pointer-events: none;
    transition: fill .18s, stroke .18s;
}
.btn-favorito:hover {
    border-color: rgba(201,150,59,.55);
    color: var(--accent);
    background: rgba(201,150,59,.08);
}
.btn-favorito.activo {
    border-color: var(--accent);
    background: rgba(201,150,59,.10);
    color: var(--accent);
}
.btn-favorito.activo svg {
    fill: var(--accent);
    stroke: var(--accent);
}

/* Variante de texto para la página de detalle de producto */
.btn-favorito-lg {
    width: auto;
    border-radius: 999px;
    padding: 0 18px;
    gap: 8px;
    height: 42px;
    font: 600 13px var(--font-body);
    letter-spacing: .01em;
}
.btn-favorito-lg svg {
    width: 15px;
    height: 15px;
    flex-shrink: 0;
}

/* Estado vacío de la página Mis Favoritos */
.favoritos-vacio {
    background: rgba(255,255,255,.86);
    backdrop-filter: blur(16px) saturate(180%);
    -webkit-backdrop-filter: blur(16px) saturate(180%);
    border: 1px solid var(--glass-border);
    border-radius: 22px;
    padding: 56px 40px;
    text-align: center;
    max-width: 480px;
    margin: 40px auto;
    box-shadow: 0 14px 36px -22px rgba(31,41,55,.22);
}
.favoritos-vacio-icon { margin-bottom: 18px; }
.favoritos-vacio h3 {
    font-size: 20px;
    margin: 0 0 10px;
    color: var(--ink);
}
.favoritos-vacio p {
    color: var(--ink-soft);
    margin: 0 0 28px;
    font-size: 15px;
    line-height: 1.6;
}

@media (max-width: 480px) {
    .favoritos-vacio { padding: 40px 24px; }
}

@media (max-width: 800px) {
    .contact-layout{grid-template-columns:1fr}.contact-info-card>img{max-width:210px}
}

/* ---------- Contacto unificado + footer corporativo ---------- */
.contact-card{display:grid;grid-template-columns:minmax(270px,.72fr) minmax(0,1.28fr);overflow:hidden;background:rgba(255,255,255,.9);border:1px solid var(--glass-border);border-radius:24px;box-shadow:0 22px 55px -38px rgba(11,19,32,.5)}
.contact-info-panel{padding:34px;border-right:1px solid var(--line);background:linear-gradient(145deg,rgba(248,246,242,.95),rgba(255,255,255,.76));color:var(--ink)}
.contact-info-panel>img{display:block;width:100%;max-width:220px;height:auto;object-fit:contain;margin:0 0 26px}
.contact-info-panel h2,.contact-form-panel h2{font-size:21px;color:var(--ink)}
.contact-info-panel>p{max-width:320px;margin:7px 0 22px;color:var(--ink-soft);font-size:13px}
.contact-form-panel{padding:34px;background:transparent}
.contact-form-panel>p{margin:6px 0 20px;color:var(--ink-mute);font-size:13px}
.contact-socials,.footer-contact-links{display:grid;gap:9px}
.manam-contact-link{display:flex;align-items:center;gap:12px;min-width:0;padding:12px 13px;border:1px solid rgba(201,150,59,.35);border-radius:13px;background:rgba(7,19,34,.035);color:var(--ink);font-family:var(--font-body);transition:background .18s ease,border-color .18s ease,transform .18s ease}
.manam-contact-link:hover{background:rgba(201,150,59,.1);border-color:var(--accent);transform:translateY(-1px)}
.contact-socials .manam-contact-link:not(.manam-contact-link-icon){flex-direction:row;align-items:center;padding:12px 13px;border-color:rgba(201,150,59,.35);background:rgba(7,19,34,.035)}.contact-socials .manam-contact-link:not(.manam-contact-link-icon):hover{background:rgba(201,150,59,.1);border-color:var(--accent)}.contact-socials .manam-contact-link>span{font:inherit;text-transform:none;letter-spacing:normal;color:inherit}
.manam-contact-icon{width:24px;height:24px;flex:0 0 24px;color:var(--accent)}
.manam-contact-link>span{display:flex;flex-direction:column;min-width:0;line-height:1.35}.manam-contact-link strong{font-size:13px;color:var(--ink)}.manam-contact-link small{font-size:11px;color:var(--ink-mute);overflow-wrap:anywhere}
.site-footer .container{background:var(--ink);padding:40px 36px 28px}
.footer-grid{display:grid;grid-template-columns:minmax(220px,.9fr) minmax(280px,1.2fr) minmax(260px,1fr);gap:30px;align-items:start}
.footer-col{min-width:0}.footer-brand{display:flex;flex-direction:column;align-items:flex-start;gap:16px}.footer-brand>p,.footer-brand .footer-bottom{margin:0}.footer-address{max-width:280px}.footer-brand .footer-bottom{margin-top:2px;line-height:1.5}.footer-mapa{width:100%;min-width:0;align-self:center}.footer-mapa iframe{width:100%;height:210px}.newsletter-box{align-self:start}
.footer-contact-links{margin-top:16px}.footer-contact-links .manam-contact-link{padding:9px 10px;border-color:rgba(201,150,59,.28);background:rgba(255,255,255,.045);color:#fff;opacity:1}.footer-contact-links .manam-contact-link:hover{background:rgba(201,150,59,.12);border-color:var(--accent)}.footer-contact-links .manam-contact-link strong{font-size:11px;color:#fff}.footer-contact-links .manam-contact-link small{font-size:9px;color:#C8C3B4}.footer-contact-links .manam-contact-icon{width:19px;height:19px;flex-basis:19px}
.newsletter-box form{width:100%}.newsletter-box input{min-width:0;flex:1}.newsletter-box button{white-space:nowrap}

@media(max-width:980px){.footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.newsletter-box{grid-column:1/-1}.newsletter-box form{max-width:560px}}
@media(max-width:800px){.contact-card{grid-template-columns:1fr}.contact-info-panel{border-right:0;border-bottom:1px solid var(--line);padding:26px}.contact-info-panel>img{max-width:190px;margin-bottom:20px}.contact-form-panel{padding:26px}}
@media(max-width:600px){.contact-info-panel,.contact-form-panel{padding:20px}.footer-grid{grid-template-columns:1fr;gap:26px}.footer-brand{align-items:center;text-align:center}.footer-brand-logo{margin-left:auto;margin-right:auto}.footer-socials{justify-content:center}.newsletter-box{grid-column:auto}.site-footer .container{padding:30px 22px 24px}.footer-mapa iframe{height:220px}.newsletter-box form{flex-direction:column;gap:8px}.newsletter-box input,.newsletter-box button{width:100%;border-radius:999px}.footer-contact-links{max-width:none}}

/* ---------- Identidad continua: header, contacto y footer ---------- */
.site-header .container{background:var(--ink);border-color:rgba(255,255,255,.1);box-shadow:0 14px 32px -20px rgba(7,19,34,.75)}
.main-nav a{color:rgba(255,255,255,.88)}.main-nav a:hover,.main-nav a.activo{color:var(--accent)}.main-nav a::after{background:var(--accent)}
.site-header .user-pill{color:rgba(255,255,255,.86)}.site-header .user-pill:hover{color:var(--accent)}
.site-header .cart-pill{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.13)}.site-header .cart-pill:hover{border-color:var(--accent)}
.contact-info-panel{background:var(--ink);color:#fff;border-right-color:rgba(255,255,255,.08);text-align:center}
.contact-info-panel h2{color:#fff;text-align:center}.contact-info-panel>p{color:#C8C3B4;margin-left:auto;margin-right:auto;text-align:center}.contact-info-panel>img{max-width:210px;margin-left:auto;margin-right:auto}.contact-info-panel .contact-socials .manam-contact-link:not(.manam-contact-link-icon){flex-direction:row;align-items:center;padding:11px 12px;border-color:rgba(201,150,59,.3);background:rgba(255,255,255,.045);color:#fff}.contact-info-panel .contact-socials .manam-contact-link:not(.manam-contact-link-icon):hover{background:rgba(201,150,59,.12);border-color:var(--accent)}
.contact-socials,.footer-contact-links{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:12px}.footer-socials{justify-content:flex-start;gap:14px;margin:0}
.manam-contact-link.manam-contact-link-icon{display:grid;place-items:center;width:48px;height:48px;min-width:48px;padding:0;border-radius:12px;border:1px solid rgba(201,150,59,.3);background:rgba(255,255,255,.045);color:var(--accent)}
.manam-contact-link.manam-contact-link-icon:hover{background:rgba(201,150,59,.14);border-color:var(--accent);transform:translateY(-2px)}.manam-contact-link-icon .manam-contact-icon{width:30px;height:30px;flex:none;color:var(--accent)}
.footer-socials .manam-contact-link-icon{width:44px;height:44px;min-width:44px}.footer-socials .manam-contact-icon{width:26px;height:26px}

@media(max-width:760px){.site-header #nav-toggle{background:rgba(255,255,255,.08);color:#fff}.site-header #nav-toggle:hover{color:var(--accent)}.main-nav{background:var(--ink)}.main-nav a{background:transparent;color:#fff;border-bottom:1px solid rgba(255,255,255,.08)}.main-nav a:hover,.main-nav a.activo{background:rgba(201,150,59,.1);color:var(--accent)}}
@media(max-width:800px){.contact-info-panel{border-bottom-color:rgba(255,255,255,.08)}}
@media(max-width:600px){.footer-socials{justify-content:center}}

/* ---------- Asistente MANAM: capa visual y UX local ---------- */
#chatbot-ventana{width:380px;max-width:calc(100vw - 24px);max-height:min(640px,calc(100vh - 125px));background:#F8F6F2;border:1px solid rgba(201,150,59,.25);border-radius:24px;backdrop-filter:none;box-shadow:0 26px 65px -24px rgba(7,19,34,.58);transform-origin:bottom right}
#chatbot-ventana.abierto{display:flex;animation:chatbotEntrada .18s ease-out both}
@keyframes chatbotEntrada{from{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}
#chatbot-header{padding:16px 17px;background:var(--ink);gap:12px;align-items:flex-start}
.chatbot-header-copy{display:flex;flex:1;min-width:0;flex-direction:column;line-height:1.25}.chatbot-header-copy strong{font:700 17px var(--font-display);color:#fff}.chatbot-header-copy span{margin-top:3px;font:500 10px var(--font-body);color:rgba(255,255,255,.72)}.chatbot-header-copy small{display:flex;align-items:center;gap:5px;margin-top:7px;font:600 9px var(--font-mono);color:#DDB96E}.chatbot-header-copy small i{width:6px;height:6px;border-radius:50%;background:#DDB96E;box-shadow:0 0 0 3px rgba(221,185,110,.12)}
.chatbot-header-actions{display:flex;align-items:center;gap:6px}.chatbot-header-actions button{border:0;background:transparent;color:#fff;cursor:pointer;transition:color .15s ease,background .15s ease}.chatbot-header-actions button:hover{color:var(--accent)}#chatbot-limpiar{max-width:62px;padding:4px;font:600 8px/1.25 var(--font-mono);text-transform:uppercase;text-align:right}#chatbot-cerrar{display:grid;place-items:center;width:30px;height:30px;padding:0;border-radius:50%;font-size:17px}#chatbot-cerrar:hover{background:rgba(201,150,59,.12)}
#chatbot-mensajes{padding:16px 14px;background:#F8F6F2;gap:11px}
.chatbot-message-row{display:flex;align-items:flex-end;gap:8px;max-width:94%;align-self:flex-start}.chatbot-avatar{width:34px;height:34px;flex:0 0 34px;border-radius:10px;object-fit:contain;box-shadow:0 4px 12px -7px rgba(7,19,34,.65)}
.msg{font-size:13px;line-height:1.5;padding:11px 13px;border-radius:16px;white-space:pre-line}.chatbot-message-row .msg{max-width:100%}.msg-bot{background:#FFFDF8;color:var(--ink);border:1px solid rgba(11,19,32,.09);border-bottom-left-radius:5px}.msg-user{max-width:82%;background:var(--accent);color:#fff;border-bottom-right-radius:5px;box-shadow:0 7px 18px -12px rgba(201,150,59,.8)}
.chatbot-sugerencias{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 3px 42px}.chatbot-sugerencias button{padding:7px 10px;border:1px solid rgba(201,150,59,.35);border-radius:999px;background:#fff;color:var(--ink);font:600 10px var(--font-body);cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .15s ease}.chatbot-sugerencias button:hover{background:rgba(201,150,59,.1);border-color:var(--accent);transform:translateY(-1px)}
#chatbot-form{background:#fff;border-top:1px solid rgba(11,19,32,.09);padding:8px}#chatbot-form input{min-width:0;padding:11px 12px;font-size:13px;background:#F8F6F2;border-radius:13px 0 0 13px}#chatbot-form button{padding:0 17px;background:var(--ink);color:#fff;border-radius:0 13px 13px 0;transition:color .15s ease}#chatbot-form button:hover{color:var(--accent)}
.chatbot-resultados{margin-left:42px;width:calc(100% - 42px)}.chatbot-resultado-item{display:grid;grid-template-columns:1fr auto;gap:5px 10px;padding:11px 12px;background:#fff;border:1px solid rgba(11,19,32,.08);border-left:3px solid var(--cat-color,var(--accent));border-radius:12px}.chatbot-resultado-item:hover{background:#FFFDF8;border-color:rgba(201,150,59,.3)}.chatbot-resultado-imagen{grid-row:1/4;width:46px;height:46px;object-fit:cover;border-radius:8px}.chatbot-resultado-nombre{grid-column:1/-1;font-size:12px}.chatbot-resultado-precio{font-size:12px}.chatbot-resultado-reventa{font-size:9px}.chatbot-resultado-estado{grid-column:1/-1;font-size:10px}
.chatbot-whatsapp-cta{align-self:flex-start;margin-left:42px;display:inline-flex;align-items:center;justify-content:center;padding:8px 12px;border:1px solid rgba(201,150,59,.4);border-radius:999px;background:var(--ink);color:#fff;font:600 10px var(--font-body);transition:color .15s ease,border-color .15s ease,transform .15s ease}.chatbot-whatsapp-cta:hover{color:var(--accent);border-color:var(--accent);transform:translateY(-1px)}

@media(max-width:600px){#chatbot-ventana{right:12px;bottom:92px;width:calc(100vw - 24px);max-width:none;max-height:calc(100vh - 112px)}#chatbot-burbuja{right:12px;bottom:12px}.chatbot-header-copy strong{font-size:16px}.chatbot-sugerencias{margin-left:0}.chatbot-resultados{margin-left:0;width:100%}.chatbot-whatsapp-cta{margin-left:0}}
@media(prefers-reduced-motion:reduce){#chatbot-ventana.abierto{animation:none}}

/* Ajustes de flujo del asistente: contenido desplazable y cards completas. */
#chatbot-mensajes{
    flex:1 1 auto;
    min-height:0;
    overflow-y:auto;
    padding-bottom:90px;
    overscroll-behavior:contain;
    scroll-behavior:smooth;
}
#chatbot-form{
    position:relative;
    z-index:2;
    flex:0 0 auto;
}
.chatbot-resultados{
    box-sizing:border-box;
    flex:0 0 auto;
    overflow:visible;
    padding-bottom:8px!important;
}
.chatbot-resultado-item{
    display:grid;
    flex:0 0 auto!important;
    min-width:0;
    width:100%;
    box-sizing:border-box;
    margin:5px 0;
    grid-template-columns:minmax(0,1fr) auto;
}
.chatbot-resultado-nombre{
    overflow-wrap:anywhere;
}

/* ============================================================
   FASE COMERCIAL — Ofertas, Destacados, Stock, Dashboard
   ============================================================ */

/* --- Tarjeta de producto: modificadores de estado --- */
.tag-producto-oferta { box-shadow: 0 8px 28px -16px rgba(201,150,59,.38); }
.tag-producto-oferta::before { opacity: .55; }
.tag-producto-destacado { box-shadow: 0 8px 28px -16px rgba(201,150,59,.28); }

/* --- Badges sobre la imagen (top-left) --- */
.tag-oferta-badge,
.tag-destacado-badge {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 3;
    padding: 3px 9px;
    border-radius: 999px;
    font: 700 9px var(--font-mono);
    text-transform: uppercase;
    letter-spacing: .07em;
    pointer-events: none;
}
.tag-oferta-badge {
    background: var(--accent);
    color: #fff;
    box-shadow: 0 4px 10px -4px rgba(201,150,59,.6);
}
.tag-destacado-badge {
    background: var(--ink);
    color: #fff;
    box-shadow: 0 4px 10px -4px rgba(11,19,32,.4);
    top: 10px;
    left: auto;
    right: 10px;
}
/* Reposition when both badges present: oferta left, destacado top-right */
.tag-producto-oferta .tag-destacado-badge { top: 38px; right: 10px; left: auto; }

/* --- Precio con tachado (oferta) --- */
.tag-precio-wrap {
    display: flex;
    align-items: baseline;
    gap: 8px;
    flex-wrap: wrap;
}
.tag-precio-original {
    font-family: var(--font-mono);
    font-size: 12px;
    color: var(--ink-mute);
    text-decoration: line-through;
}
.tag-precio-oferta-valor {
    color: var(--accent);
}

/* --- Bajo stock --- */
.tag-stock.bajo-stock { color: #B45309; }
.tag-sello.bajo-stock {
    background: rgba(180,83,9,.12);
    color: #B45309;
}

/* --- Dashboard strip (index.php para usuarios logueados) --- */
.dashboard-strip {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    margin-bottom: 8px;
}
.dashboard-widget {
    flex: 1;
    min-width: 180px;
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px 18px;
    background: rgba(255,255,255,.86);
    backdrop-filter: blur(12px) saturate(160%);
    -webkit-backdrop-filter: blur(12px) saturate(160%);
    border: 1px solid var(--glass-border);
    border-radius: 16px;
    color: var(--ink);
    text-decoration: none;
    transition: transform .18s var(--ease-soft), box-shadow .18s var(--ease-soft), border-color .18s;
    box-shadow: 0 6px 20px -12px rgba(11,19,32,.18);
}
.dashboard-widget:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 34px -18px rgba(11,19,32,.26);
    border-color: rgba(201,150,59,.45);
}
.dashboard-widget-icon {
    font-size: 24px;
    line-height: 1;
    flex-shrink: 0;
}
.dashboard-widget-body { flex: 1; min-width: 0; }
.dashboard-widget-titulo {
    font: 600 9px var(--font-mono);
    text-transform: uppercase;
    letter-spacing: .07em;
    color: var(--ink-mute);
    margin-bottom: 3px;
}
.dashboard-widget-dato {
    font: 700 15px var(--font-display);
    color: var(--ink);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.dashboard-widget-sub {
    font-size: 11px;
    color: var(--ink-soft);
    margin-top: 2px;
}
.dashboard-widget-arrow {
    font-size: 18px;
    color: var(--ink-mute);
    flex-shrink: 0;
    transition: color .15s, transform .15s;
}
.dashboard-widget:hover .dashboard-widget-arrow {
    color: var(--accent);
    transform: translateX(2px);
}

@media (max-width: 600px) {
    .dashboard-strip { gap: 10px; }
    .dashboard-widget { min-width: 0; padding: 13px 14px; }
    .dashboard-widget-dato { font-size: 13px; }
}

/* --- Paginación (cuenta.php y otras listas) --- */
.paginacion {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid var(--line);
    flex-wrap: wrap;
}
.paginacion-info {
    font: 500 12px var(--font-mono);
    color: var(--ink-mute);
    text-align: center;
}

/* --- WhatsApp button en pedidos --- */
.btn-wa-pedido {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 14px;
    border: 1px solid rgba(37,211,102,.45);
    border-radius: 999px;
    background: rgba(37,211,102,.07);
    color: #1A7A3C;
    font: 600 12px var(--font-body);
    text-decoration: none;
    transition: background .15s, border-color .15s, transform .15s;
    cursor: pointer;
    white-space: nowrap;
}
.btn-wa-pedido:hover {
    background: rgba(37,211,102,.14);
    border-color: rgba(37,211,102,.7);
    transform: translateY(-1px);
}

/* --- Tabla de reportes (admin/reportes.php) --- */
.reporte-tabla {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}
.reporte-tabla th {
    padding: 9px 12px;
    background: var(--ink);
    color: #fff;
    text-align: left;
    font: 600 10px var(--font-mono);
    text-transform: uppercase;
    letter-spacing: .05em;
    white-space: nowrap;
}
.reporte-tabla td {
    padding: 9px 12px;
    border-bottom: 1px solid var(--line);
    vertical-align: middle;
}
.reporte-tabla tbody tr:hover { background: rgba(201,150,59,.04); }
.reporte-tabla tbody tr:last-child td { border-bottom: none; }

/* ================================================================
   MANAM Design System — Fase 3: Base Visual Global
   Skeleton loader · Empty states · Utilidades
   ================================================================ */

/* ---------- Skeleton loading ---------- */
@keyframes shimmer {
    0%   { background-position: -800px 0; }
    100% { background-position:  800px 0; }
}
.skeleton {
    display: block;
    background: linear-gradient(90deg,
        rgba(11,19,32,0.06) 25%,
        rgba(11,19,32,0.10) 50%,
        rgba(11,19,32,0.06) 75%
    );
    background-size: 1600px 100%;
    animation: shimmer 1.6s ease-in-out infinite;
    border-radius: 8px;
}
.skeleton-card {
    background: rgba(255,255,255,0.86);
    border: 1px solid var(--glass-border);
    border-radius: 22px;
    overflow: hidden;
    padding: 0;
}
.skeleton-img  { height: 220px; border-radius: 0; }
.skeleton-text { height: 13px; margin: 16px 18px 6px; }
.skeleton-text.short { width: 55%; }
.skeleton-text.xs { height: 10px; width: 35%; }
.skeleton-btn  { height: 39px; border-radius: 999px; margin: 12px 18px 18px; }
@media (prefers-reduced-motion: reduce) { .skeleton { animation: none; } }

/* ---------- Empty state ---------- */
.empty-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 56px 24px;
    text-align: center;
    gap: 14px;
}
.empty-state-icon {
    width: 56px;
    height: 56px;
    color: var(--ink-mute);
    opacity: 0.40;
    flex-shrink: 0;
}
.empty-state-title {
    font-family: var(--font-display);
    font-size: 20px;
    font-weight: 700;
    color: var(--ink);
    margin: 0;
}
.empty-state-desc {
    font-size: 14px;
    color: var(--ink-soft);
    max-width: 300px;
    margin: 0;
    line-height: 1.55;
}

/* ---------- Utilidades de layout ---------- */
.gap-sm  { gap: 8px; }
.gap-md  { gap: 16px; }
.gap-lg  { gap: 24px; }
.mt-0 { margin-top: 0; }
.text-mute { color: var(--ink-mute); }
.text-soft { color: var(--ink-soft); }
.text-accent { color: var(--accent); }
.text-danger { color: var(--danger); }
.text-success { color: var(--crate); }
.font-mono { font-family: var(--font-mono); }
.font-display { font-family: var(--font-display); }

/* ============================================================
   CARRITO — Layout de dos columnas + tarjetas de ítem
   ============================================================ */
.carrito-layout {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 24px;
    align-items: start;
}

/* --- Lista de ítems --- */
.carrito-items {
    display: flex;
    flex-direction: column;
    gap: 0;
    background: rgba(255,255,255,0.85);
    border: 1px solid var(--line);
    border-radius: 18px;
    overflow: hidden;
    backdrop-filter: blur(12px);
}

.carrito-item {
    display: grid;
    grid-template-columns: 64px 1fr auto auto auto;
    gap: 16px;
    align-items: center;
    padding: 16px 20px;
    border-bottom: 1px solid var(--line);
    transition: background .12s ease;
}

.carrito-item:last-of-type { border-bottom: none; }
.carrito-item:hover { background: rgba(201,150,59,0.03); }

/* Imagen del ítem */
.carrito-item-img {
    width: 64px;
    height: 64px;
    border-radius: 12px;
    overflow: hidden;
    background: var(--bg-soft);
    border: 1px solid var(--line);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.carrito-item-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.carrito-item-img svg {
    width: 32px;
    height: 32px;
    opacity: .35;
}

/* Info del producto */
.carrito-item-info { min-width: 0; }

.carrito-item-nombre {
    font-weight: 600;
    font-size: 14px;
    color: var(--ink);
    line-height: 1.3;
    margin-bottom: 3px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.carrito-item-sku {
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--ink-mute);
    margin-bottom: 3px;
}

.carrito-item-precio-unit {
    font-size: 12px;
    color: var(--ink-soft);
}

/* Input de cantidad */
.carrito-item-cantidad { text-align: center; }

.carrito-qty-label {
    display: block;
    font-family: var(--font-mono);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--ink-mute);
    margin-bottom: 5px;
}

.carrito-qty-wrap input[type="number"] {
    width: 70px;
    padding: 8px 10px;
    border: 1.5px solid var(--line);
    border-radius: 10px;
    font-family: var(--font-mono);
    font-size: 14px;
    font-weight: 600;
    text-align: center;
    color: var(--ink);
    background: var(--white);
    -moz-appearance: textfield;
    transition: border-color .15s, box-shadow .15s;
}

.carrito-qty-wrap input[type="number"]::-webkit-inner-spin-button,
.carrito-qty-wrap input[type="number"]::-webkit-outer-spin-button { -webkit-appearance: none; }

.carrito-qty-wrap input[type="number"]:focus {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px rgba(201,150,59,.12);
}

/* Subtotal por ítem */
.carrito-item-subtotal { text-align: right; min-width: 90px; }

.carrito-item-subtotal-label {
    display: block;
    font-family: var(--font-mono);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--ink-mute);
    margin-bottom: 3px;
}

.carrito-item-subtotal-valor {
    font-family: var(--font-mono);
    font-weight: 700;
    font-size: 15px;
    color: var(--ink);
}

/* Botón eliminar */
.carrito-item-remove { flex-shrink: 0; }

.carrito-btn-remove {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border: 1.5px solid var(--line);
    border-radius: 8px;
    background: transparent;
    color: var(--ink-mute);
    cursor: pointer;
    transition: border-color .15s, color .15s, background .15s;
}

.carrito-btn-remove:hover {
    border-color: var(--danger);
    color: var(--danger);
    background: rgba(224,71,62,.05);
}

/* Fila de actualizar */
.carrito-update-row {
    padding: 12px 20px;
    border-top: 1px solid var(--line);
    background: rgba(11,19,32,.025);
}

/* --- Resumen (sidebar derecho) --- */
.carrito-summary {
    background: rgba(255,255,255,0.92);
    border: 1px solid var(--line);
    border-radius: 18px;
    overflow: hidden;
    backdrop-filter: blur(12px);
    position: sticky;
    top: 90px;
}

.carrito-summary-head {
    padding: 18px 22px 14px;
    border-bottom: 1px solid var(--line);
}

.carrito-summary-head h3 {
    margin: 0;
    font-size: 15px;
    font-weight: 700;
    color: var(--ink);
}

.carrito-summary-body {
    padding: 16px 22px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.carrito-summary-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 14px;
    color: var(--ink-soft);
}

.carrito-summary-row-mute { color: var(--ink-mute); font-size: 13px; }

.carrito-summary-total {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 12px;
    margin-top: 4px;
    border-top: 1.5px solid var(--line);
    font-size: 17px;
    font-weight: 700;
    font-family: var(--font-mono);
    color: var(--ink);
}

.carrito-summary-footer {
    padding: 16px 22px 20px;
}

/* --- Empty state del carrito --- */
.carrito-vacio {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 72px 24px;
    gap: 12px;
}

.carrito-vacio-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 96px;
    height: 96px;
    border-radius: 50%;
    background: rgba(11,19,32,0.04);
    border: 1px solid var(--line);
    margin-bottom: 8px;
}

.carrito-vacio h3 {
    font-size: 22px;
    font-weight: 700;
    color: var(--ink);
    margin: 0;
}

/* ================================================================
   SPRINT 1 — Customer Journey
   Breadcrumb · Producto · Catálogo · Carrito · Checkout · Confirmación
   ================================================================ */

/* --- Breadcrumb --- */
.mn-breadcrumb {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: var(--ink-mute);
    margin-bottom: 22px;
    flex-wrap: wrap;
}
.mn-breadcrumb a {
    color: var(--ink-soft);
    font-weight: 500;
    transition: color .15s;
}
.mn-breadcrumb a:hover { color: var(--accent); }
.mn-breadcrumb__sep { opacity: .4; user-select: none; }
.mn-breadcrumb__current { color: var(--ink); font-weight: 600; }

/* --- Dashboard: icono SVG en widgets --- */
.dashboard-widget-icon {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: rgba(201,150,59,.1);
    border: 1px solid rgba(201,150,59,.22);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--accent);
    flex-shrink: 0;
    font-size: 24px; /* fallback si se usa emoji */
}

/* --- Catálogo: barra de controles --- */
.catalogo-search-form {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 18px;
    flex-wrap: wrap;
}
.catalogo-search-wrap {
    position: relative;
    flex: 1;
    min-width: 200px;
}
.catalogo-search-icon {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--ink-mute);
    display: flex;
    pointer-events: none;
}
.catalogo-search-input {
    width: 100%;
    padding: 10px 12px 10px 38px;
    border: 1.5px solid var(--line);
    border-radius: 12px;
    font-family: var(--font-body);
    font-size: 14px;
    color: var(--ink);
    background: rgba(255,255,255,.8);
    transition: border-color .15s, box-shadow .15s;
}
.catalogo-search-input:focus {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px rgba(201,150,59,.1);
    background: #fff;
}
.catalogo-search-input::placeholder { color: var(--ink-mute); }

.catalogo-controls {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 20px;
}
.catalogo-count {
    font: 500 12px var(--font-mono);
    color: var(--ink-mute);
}
.catalogo-sort {
    display: flex;
    align-items: center;
    gap: 8px;
}
.catalogo-sort-label {
    font: 600 10px var(--font-mono);
    color: var(--ink-mute);
    text-transform: uppercase;
    letter-spacing: .05em;
    white-space: nowrap;
}
.catalogo-sort-select {
    padding: 7px 28px 7px 10px;
    border: 1.5px solid var(--line);
    border-radius: 10px;
    font-family: var(--font-body);
    font-size: 13px;
    color: var(--ink);
    background: rgba(255,255,255,.8) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%234B5563' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 9px center;
    -webkit-appearance: none;
    appearance: none;
    cursor: pointer;
    transition: border-color .15s;
}
.catalogo-sort-select:focus { outline: none; border-color: var(--accent); }

.catalogo-filtros { margin-bottom: 18px; }

/* Alias para grilla (index.php usa productos-grid) */
.productos-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr));
    gap: 22px;
}

/* --- Página de detalle de producto --- */
.producto-page { max-width: 1100px; }
.producto-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: start;
}
.producto-imagen-wrap {
    border-radius: 20px;
    overflow: hidden;
    background: rgba(255,255,255,.88);
    border: 1px solid var(--glass-border);
    box-shadow: 0 14px 40px -22px rgba(31,41,55,.3);
    position: sticky;
    top: 90px;
}
.producto-imagen-wrap img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; }
.producto-imagen-placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    aspect-ratio: 4/3;
    background: linear-gradient(145deg, rgba(201,150,59,.1), #f7f5ef);
    color: var(--cat-color, var(--accent));
}
.producto-imagen-placeholder svg { width: 80px; height: 80px; fill: none; stroke: currentColor; stroke-width: 1.5; opacity: .6; }
/* Texto en --ink-soft, no heredado de --cat-color (mismo fix a11y que
   .tag-imagen-placeholder, 2026-07-13): dorado sobre este fondo da ~2.5:1,
   no pasa WCAG AA; --ink-soft da ~7:1. El icono arriba sigue en --cat-color. */
.producto-imagen-placeholder span { font: 700 12px var(--font-mono); letter-spacing: .2em; color: var(--ink-soft); margin-top: 8px; }
.producto-imagen-color-bar { height: 6px; background: var(--cat-color, var(--accent)); }

.producto-info { display: flex; flex-direction: column; gap: 20px; }
.producto-categoria-tag {
    font: 600 10px var(--font-mono);
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--cat-color, var(--accent));
    border: 1px solid currentColor;
    border-radius: 999px;
    padding: 4px 10px;
    display: inline-block;
    margin-bottom: 6px;
}
.producto-nombre {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 30px;
    line-height: 1.15;
    margin: 0 0 6px;
    color: var(--ink);
}
.producto-marca-info { font-size: 13px; color: var(--ink-soft); }
.producto-marca-info span { color: var(--ink-mute); }
.producto-precio-wrap { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin-top: 4px; }
.producto-precio { font: 700 32px var(--font-mono); color: var(--ink); }
.producto-precio-original { font: 400 18px var(--font-mono); color: var(--ink-mute); text-decoration: line-through; }
.producto-precio-oferta { color: var(--accent); }
.producto-badge-oferta { background: rgba(201,150,59,.14); color: var(--accent); font: 700 11px var(--font-mono); text-transform: uppercase; padding: 4px 10px; border-radius: 999px; align-self: center; }

.producto-stock {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font: 600 11px var(--font-mono);
    text-transform: uppercase;
    letter-spacing: .04em;
    padding: 6px 12px;
    border-radius: 999px;
}
.producto-stock--disponible { background: rgba(47,158,110,.1); color: #15803d; }
.producto-stock--bajo { background: rgba(180,83,9,.1); color: #B45309; }
.producto-stock--agotado { background: rgba(224,71,62,.1); color: #b91c1c; }
.producto-stock-dot { width: 7px; height: 7px; border-radius: 50%; background: currentColor; }

.producto-specs {
    background: rgba(255,255,255,.7);
    border: 1px solid var(--line);
    border-radius: 14px;
    overflow: hidden;
}
.producto-specs-row {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: 12px;
    padding: 10px 14px;
    border-bottom: 1px solid var(--line);
    font-size: 13px;
    align-items: center;
}
.producto-specs-row:last-child { border-bottom: none; }
.producto-specs-key { font: 600 10px var(--font-mono); text-transform: uppercase; letter-spacing: .05em; color: var(--ink-mute); }
.producto-specs-val { color: var(--ink); font-weight: 500; }

.producto-descripcion {
    font-size: 14px;
    line-height: 1.65;
    color: var(--ink-soft);
    padding: 14px 16px;
    background: rgba(255,255,255,.5);
    border-radius: 12px;
    border: 1px solid var(--line);
}

.producto-acciones { display: flex; flex-direction: column; gap: 12px; }
.producto-qty-row { display: flex; align-items: center; gap: 10px; }
.producto-qty-label { font: 600 10px var(--font-mono); text-transform: uppercase; letter-spacing: .06em; color: var(--ink-mute); white-space: nowrap; }
.producto-qty-input {
    width: 80px;
    padding: 10px;
    border: 1.5px solid var(--line);
    border-radius: 12px;
    font: 600 15px var(--font-mono);
    text-align: center;
    color: var(--ink);
    background: rgba(255,255,255,.8);
    -moz-appearance: textfield;
    transition: border-color .15s;
}
.producto-qty-input::-webkit-inner-spin-button,
.producto-qty-input::-webkit-outer-spin-button { -webkit-appearance: none; }
.producto-qty-input:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(201,150,59,.1); }

@media (max-width: 900px) {
    .producto-layout { grid-template-columns: 1fr; }
    .producto-imagen-wrap { position: static; }
    .producto-nombre { font-size: 24px; }
    .producto-precio { font-size: 26px; }
}

/* --- Carrito: trust signal y AJAX states --- */
.carrito-trust {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    background: rgba(47,158,110,.06);
    border: 1px solid rgba(47,158,110,.18);
    border-radius: 10px;
    font-size: 12px;
    color: #15803d;
    margin-bottom: 14px;
}
.carrito-trust svg { flex-shrink: 0; }
.carrito-item--updating { opacity: .55; pointer-events: none; transition: opacity .2s; }
.carrito-qty-wrap input[type="number"].is-changed { border-color: var(--accent); box-shadow: 0 0 0 2px rgba(201,150,59,.12); }

/* --- Checkout: submit y seguridad --- */
.checkout-security {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    color: var(--ink-mute);
    font-size: 11px;
    padding: 8px;
    text-align: center;
}
.checkout-security svg { color: #15803d; flex-shrink: 0; }

/* --- Confirmación: mini header de navegación --- */
.confirm-page-header {
    background: var(--ink);
    padding: 14px 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}
.confirm-page-logo {
    display: flex;
    align-items: center;
}
.confirm-page-logo img { height: 40px; width: auto; object-fit: contain; }
.confirm-page-logo span { font: 700 16px var(--font-display); color: #fff; }
.confirm-page-nav {
    display: flex;
    gap: 16px;
    align-items: center;
    flex-wrap: wrap;
}
.confirm-page-nav a {
    font: 500 13px var(--font-body);
    color: rgba(255,255,255,.75);
    transition: color .15s;
}
.confirm-page-nav a:hover { color: var(--accent); }

/* --- Confirmación: bloque de éxito --- */
.confirm-success-wrap {
    margin: 24px 24px 0;
}
.confirm-success-hero {
    text-align: center;
    padding: 32px 24px 28px;
    background: rgba(47,158,110,.06);
    border: 1px solid rgba(47,158,110,.18);
    border-radius: 18px;
    margin-bottom: 24px;
}
.confirm-success-icon {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: rgba(47,158,110,.12);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 16px;
    color: #15803d;
}
.confirm-order-number { font: 700 28px var(--font-mono); color: var(--ink); margin: 0 0 8px; }
.confirm-success-msg { font-size: 15px; color: var(--ink-soft); margin: 0 0 16px; }
.confirm-success-status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font: 600 11px var(--font-mono);
    text-transform: uppercase;
    letter-spacing: .05em;
    padding: 5px 12px;
    border-radius: 999px;
    background: rgba(59,130,246,.1);
    color: #1d4ed8;
}

/* --- Confirmación: timeline "¿Qué pasa ahora?" --- */
.confirm-timeline-wrap {
    padding: 0 0 24px;
}
.confirm-timeline-title {
    font: 700 11px var(--font-mono);
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--ink-mute);
    margin-bottom: 18px;
    display: block;
}
.confirm-timeline {
    display: flex;
    align-items: flex-start;
    gap: 0;
    position: relative;
}
.confirm-tl-step {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    position: relative;
    min-width: 0;
}
.confirm-tl-step + .confirm-tl-step::before {
    content: '';
    position: absolute;
    top: 18px;
    right: 50%;
    width: 100%;
    height: 2px;
    background: var(--line);
    z-index: 0;
}
.confirm-tl-step.done + .confirm-tl-step::before { background: var(--accent); }
.confirm-tl-dot {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 2px solid var(--line);
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    z-index: 1;
    flex-shrink: 0;
    color: var(--ink-mute);
    transition: border-color .2s, background .2s;
}
.confirm-tl-step.done .confirm-tl-dot { border-color: var(--accent); background: var(--accent); color: #fff; }
.confirm-tl-step.current .confirm-tl-dot { border-color: var(--accent); background: rgba(201,150,59,.1); color: var(--accent); box-shadow: 0 0 0 4px rgba(201,150,59,.12); }
.confirm-tl-label {
    font: 600 10px var(--font-mono);
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--ink-mute);
    text-align: center;
    max-width: 72px;
    line-height: 1.3;
}
.confirm-tl-step.done .confirm-tl-label { color: var(--accent); }
.confirm-tl-step.current .confirm-tl-label { color: var(--ink); font-weight: 700; }

/* --- Confirmación: acciones post-compra --- */
.confirm-action-bar {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    padding: 18px 0;
    border-top: 1px solid var(--line);
    margin-bottom: 8px;
}

@media (max-width: 600px) {
    .confirm-page-header { flex-direction: column; align-items: flex-start; gap: 10px; }
    .confirm-success-icon { width: 52px; height: 52px; }
    .confirm-order-number { font-size: 22px; }
    .confirm-tl-dot { width: 28px; height: 28px; }
    .confirm-tl-label { max-width: 54px; font-size: 9px; }
    .confirm-action-bar { flex-direction: column; }
    .confirm-success-wrap { margin: 16px 16px 0; }
    .doc-wrap { padding: 0 16px 40px; }
}

/* --- Producto: tarjeta botón en catálogo mejorado --- */
.tag-footer .mn-btn { flex: 1; min-height: 38px; }

/* --- Mobile: carrito responsive mejoras --- */
@media (max-width: 760px) {
    .carrito-layout { grid-template-columns: 1fr; }
    .carrito-summary { position: static; }
    .carrito-item { grid-template-columns: 56px 1fr; grid-template-rows: auto auto auto; gap: 10px 14px; }
    .carrito-item-cantidad { grid-column: 1 / 2; grid-row: 2; }
    .carrito-item-subtotal { grid-column: 2 / 3; grid-row: 2; align-self: center; }
    .carrito-item-remove { grid-column: 2 / 3; grid-row: 1; text-align: right; }
    .carrito-item-img { grid-row: 1 / 3; }
    .carrito-item-info { grid-column: 2 / 3; }
    .carrito-item-nombre { font-size: 13px; }
}

@media (max-width: 600px) {
    .catalogo-controls { flex-direction: column; align-items: flex-start; }
    .producto-layout { gap: 24px; }
}

.carrito-vacio p {
    font-size: 14px;
    color: var(--ink-soft);
    max-width: 300px;
    margin: 0;
    line-height: 1.55;
}

/* --- Responsive del carrito --- */
@media (max-width: 900px) {
    .carrito-layout {
        grid-template-columns: 1fr;
    }
    .carrito-summary { position: static; }
    .carrito-item {
        grid-template-columns: 56px 1fr auto;
        grid-template-rows: auto auto;
        gap: 10px 12px;
    }
    .carrito-item-img { width: 56px; height: 56px; }
    .carrito-item-info { grid-column: 2 / 4; }
    .carrito-item-cantidad { grid-row: 2; grid-column: 2; }
    .carrito-item-subtotal { grid-row: 2; grid-column: 3; }
    .carrito-item-remove { grid-row: 1; grid-column: 3; justify-self: end; }
}

@media (max-width: 480px) {
    .carrito-item {
        grid-template-columns: 48px 1fr auto;
        padding: 14px 16px;
    }
    .carrito-item-img { width: 48px; height: 48px; }
}

/* ================================================================
   HITO 3 Sprint 1 — Home + navegación pública enterprise
   ================================================================ */

/* Utilidades de layout */
.section--slim { padding-top: 28px; }
.cta-center { text-align: center; margin-top: 36px; }

/* Footer: reemplaza inline styles */
.footer-tagline        { max-width: 260px; margin: 0; }
.footer-newsletter-title {
    color: var(--white);
    font-family: var(--font-display);
    text-transform: uppercase;
    display: block;
    margin-bottom: 8px;
}
.footer-newsletter-desc { max-width: 240px; margin: 0; }
.footer-newsletter-msg  { margin: 8px 0 0; font-family: var(--font-mono); font-size: 12px; }

/* Footer address — flex para alinear icono SVG */
.footer-address { display: flex; align-items: flex-start; gap: 6px; }
.footer-address svg { flex-shrink: 0; margin-top: 2px; opacity: .75; }

/* Chatbot burbuja — SVG reemplaza emoji (resetea font-size) */
#chatbot-burbuja { font-size: 0; line-height: 1; }

/* B2B Trust Strip — para visitantes no logueados */
.b2b-trust-strip {
    padding: 32px 0;
    border-top: 1px solid var(--line);
}
.b2b-trust-items {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 28px;
}
.b2b-trust-item {
    display: flex;
    align-items: flex-start;
    gap: 14px;
}
.b2b-trust-item-icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: rgba(201,150,59,0.10);
    display: grid;
    place-items: center;
    color: var(--accent);
    flex-shrink: 0;
}
.b2b-trust-item-body strong {
    display: block;
    font-size: 13px;
    font-weight: 700;
    color: var(--ink);
    margin-bottom: 3px;
    line-height: 1.3;
}
.b2b-trust-item-body span {
    font-size: 12px;
    color: var(--ink-mute);
    line-height: 1.45;
}
@media (max-width: 900px) {
    .b2b-trust-items { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 500px) {
    .b2b-trust-items { grid-template-columns: 1fr; gap: 18px; }
    .b2b-trust-strip { padding: 24px 0; }
}

/* Prueba social — franja "Ya confían en nosotros" (roadmap comercial
   2026-07-13). Mismo lenguaje visual que .b2b-trust-strip; solo se muestra
   cuando $clientes_confian trae datos reales (ver index.php). */
.social-proof-strip {
    padding: 32px 0;
    border-top: 1px solid var(--line);
    text-align: center;
}
.social-proof-eyebrow {
    display: block;
    font-family: var(--font-mono);
    font-size: 12px;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--ink-mute);
    margin-bottom: 20px;
}
.social-proof-items {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 24px;
}
.social-proof-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    text-align: left;
    padding: 16px;
    border-radius: 14px;
    background: var(--surface-2, rgba(11,19,32,0.02));
}
.social-proof-item-icon {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: rgba(201,150,59,0.10);
    display: grid;
    place-items: center;
    color: var(--accent);
    flex-shrink: 0;
}
.social-proof-item-body strong {
    display: block;
    font-size: 13px;
    font-weight: 700;
    color: var(--ink);
    line-height: 1.3;
}
.social-proof-item-body span {
    display: block;
    font-size: 12px;
    color: var(--ink-mute);
    margin-top: 2px;
}
.social-proof-item-body p {
    font-size: 12.5px;
    color: var(--ink-soft);
    font-style: italic;
    margin: 6px 0 0;
    line-height: 1.5;
}
@media (max-width: 500px) {
    .social-proof-items { grid-template-columns: 1fr; }
    .social-proof-strip { padding: 24px 0; }
}

/* ================================================================
   HITO 3 Sprint 2 — Catálogo + experiencia de producto B2B
   ================================================================ */

/* Section header: título + subtítulo + link de sección */
.section-titulo__group { display: flex; flex-direction: column; gap: 3px; }
.section-titulo__sub {
    font-size: 13px;
    color: var(--ink-mute);
    margin: 0;
    font-weight: 400;
}
.section-titulo__link {
    font: 600 12px var(--font-body);
    color: var(--accent);
    align-self: center;
    white-space: nowrap;
    text-decoration: none;
    transition: opacity .15s;
}
.section-titulo__link:hover { opacity: .75; }

/* Tarjeta producto: SKU visible para B2B */
.tag-sku {
    font: 500 9px var(--font-mono);
    color: var(--ink-mute);
    letter-spacing: .07em;
    text-transform: uppercase;
    margin-top: -4px;
}

/* Tarjeta producto: presentación/unidad */
.tag-presentacion {
    font-size: 11px;
    color: var(--ink-soft);
    background: rgba(31,41,55,.06);
    border-radius: 6px;
    padding: 2px 8px;
    display: inline-block;
    font-family: var(--font-mono);
}

/* Producto detalle: trust strip comercial B2B */
.producto-trust {
    display: flex;
    flex-direction: column;
    gap: 9px;
    padding: 14px 16px;
    background: rgba(255,255,255,.55);
    border: 1px solid var(--line);
    border-radius: 14px;
}
.producto-trust-item {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 12px;
    color: var(--ink-soft);
    line-height: 1.35;
}
.producto-trust-item svg { color: var(--accent); flex-shrink: 0; }

/* Producto detalle: sin descripción */
.producto-descripcion--vacia {
    font-size: 13px;
    color: var(--ink-mute);
    font-style: italic;
    padding: 12px 0;
}

/* ================================================================
   HITO 3 Sprint 3 — Mi Cuenta + Pedidos + Favoritos
   ================================================================ */

/* Banners de estado de cuenta (email_pendiente, bloqueado, etc.) */
.cuenta-aviso-wrap { padding-top: 18px; }
.cuenta-aviso-form { margin-top: 12px; }

/* Header de cuenta: nombre empresa + datos */
.cuenta-header { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 4px; }
.cuenta-header h2 { font-size: 28px; }
.cuenta-header-meta { color: var(--ink-soft); margin-bottom: 4px; }
.cuenta-header-badge { display: inline-block; margin-top: 4px; }

/* Tab badge variante muted (conteo de pedidos) */
.cuenta-tab-badge--muted { background: var(--ink-mute) !important; }

/* Estado vacío de pedidos en Mi Cuenta */
.cuenta-pedidos-empty { margin-top: 12px; color: var(--ink-soft); }
.cuenta-pedidos-empty__link { color: var(--accent); font-weight: 600; text-decoration: none; }
.cuenta-pedidos-empty__link:hover { text-decoration: underline; }

/* Badge de método de pago (transferencia / efectivo) */
.cuenta-badge-metodo { background: rgba(11,19,32,.06); color: var(--ink-soft); }

/* Tabla de detalle de pedido: override inline styles */
.pedido-detail-summary { cursor: pointer; font-weight: 650; font-size: 13px; padding: 4px 0; }
.pedido-detail-table { width: 100%; margin-top: 10px; }
.account-order-detail th { border-bottom: 1px solid var(--line); }
.account-order-detail td { border-bottom: 1px solid var(--line); }
.account-order-detail .col-right  { text-align: right;  font-family: var(--font-mono); }
.account-order-detail .col-center { text-align: center; font-family: var(--font-mono); }
.account-order-detail .col-price  { font-size: 12px; }
.account-order-detail .col-subtotal { font-weight: 600; }
.account-order-detail tfoot td { border-top: 2px solid var(--ink); border-bottom: 0; padding: 10px 8px; }
.account-order-detail .total-label { text-align: right; font-weight: 700; }
.account-order-detail .total-valor { font: 700 16px var(--font-mono); text-align: right; }

/* Sección de recompra rápida dentro del detalle */
.pedido-recompra-wrap  { margin-top: 12px; padding-top: 10px; border-top: 1px dashed var(--line); display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.pedido-recompra-label { font-size: 12px; color: var(--ink-mute); }

/* Formulario sin margen extra */
.form-inline { margin: 0; }

/* WhatsApp icon dentro del botón: sin inline size */
.btn-wa-pedido svg { width: 13px; height: 13px; fill: currentColor; flex-shrink: 0; }

/* Formulario de subida de comprobante */
.cuenta-comprobante-form  { display: flex; gap: 8px; align-items: flex-start; flex-wrap: wrap; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line); }
.cuenta-comprobante-label { display: flex; flex-direction: column; gap: 4px; }
.cuenta-comprobante-text  { font-weight: 600; font-size: 12px; color: var(--ink-soft); }
.cuenta-comprobante-hint  { color: var(--ink-mute); font-size: 10px; display: block; margin-top: 2px; }

/* Badge de no-leídas en el h3 de notificaciones */
.notif-count-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; padding: 0 4px; border-radius: 999px; background: var(--danger); color: #fff; font: 700 10px var(--font-mono); vertical-align: middle; margin-left: 6px; }

/* Link "Ver pedido" dentro de cada notificación */
.notif-ver-pedido { font: 600 11px var(--font-mono); color: var(--accent); flex-shrink: 0; white-space: nowrap; text-decoration: none; transition: opacity .15s; }
.notif-ver-pedido:hover { opacity: .75; }

/* Tab Empresa: header, desc, card de lista */
.empresa-header { font: 700 17px var(--font-display); margin-bottom: 4px; }
.empresa-desc   { font-size: 13px; color: var(--ink-mute); margin-bottom: 14px; }
.empresa-lista-card  { margin-bottom: 18px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 10px; background: rgba(201,150,59,.06); display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.empresa-lista-body  { display: flex; flex-direction: column; }
.empresa-lista-title { font-size: 13px; font-weight: 650; color: var(--ink); }
.empresa-lista-sub   { font-size: 12px; color: var(--ink-mute); margin-top: 2px; }

/* favoritos.php: header, meta, actions row */
.favoritos-header      { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 6px; }
.favoritos-meta        { color: var(--ink-soft); margin-bottom: 28px; font-size: 15px; }
.favoritos-actions     { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin-bottom: 28px; }
.favoritos-actions__msg { display: none; font: 600 12px var(--font-mono); color: var(--crate); letter-spacing: .02em; }

/* ============================================================
   CATÁLOGO — Búsqueda, filtros, estados vacíos (Fase 3 B3)
   ============================================================ */

.catalogo-search-form {
    display: flex;
    gap: 10px;
    max-width: 480px;
    margin-bottom: 20px;
    align-items: center;
}

.catalogo-search-wrap {
    position: relative;
    flex: 1;
}

.catalogo-search-icon {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--ink-mute);
    display: flex;
    pointer-events: none;
}

.catalogo-search-input {
    width: 100%;
    padding: 11px 14px 11px 42px;
    border: 1.5px solid var(--line);
    border-radius: 999px;
    font-family: var(--font-body);
    font-size: 14px;
    color: var(--ink);
    background: rgba(255,255,255,0.75);
    backdrop-filter: blur(8px);
    transition: border-color .15s, box-shadow .15s;
    outline: none;
    -webkit-appearance: none;
}

.catalogo-search-input::placeholder { color: var(--ink-mute); }

.catalogo-search-input:focus {
    border-color: var(--accent);
    box-shadow: 0 0 0 3px rgba(201,150,59,.12);
    background: rgba(255,255,255,0.95);
}

.catalogo-filtros { margin-bottom: 24px; }

/* Catalog empty state */
.catalogo-vacio {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 72px 24px;
    gap: 14px;
}

.catalogo-vacio-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: rgba(11,19,32,0.04);
    border: 1px solid var(--line);
    color: var(--ink-mute);
    margin-bottom: 4px;
    flex-shrink: 0;
}

.catalogo-vacio-titulo {
    font-size: 20px;
    font-weight: 700;
    color: var(--ink);
    margin: 0;
    font-family: var(--font-display);
}

.catalogo-vacio-desc {
    font-size: 14px;
    color: var(--ink-soft);
    max-width: 320px;
    margin: 0;
    line-height: 1.55;
}

/* Quantity input in product card — focus enhancement */
.tag-qty-input:focus {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px rgba(201,150,59,.12);
}

.tag-qty-input::-webkit-inner-spin-button,
.tag-qty-input::-webkit-outer-spin-button { -webkit-appearance: none; }
.tag-qty-input { -moz-appearance: textfield; }

/* Agregar button — icon support */
.btn-agregar-carrito { gap: 6px; }

/* Destacado badge — inline icon */
.tag-destacado-badge { display: inline-flex; align-items: center; gap: 4px; }
.tag-destacado-badge svg { flex-shrink: 0; }

@media (max-width: 600px) {
    .catalogo-search-form { max-width: 100%; }
}

/* ============================================================
   SPRINT 2 — Customer Area
   ============================================================ */

/* Notification icon (SVG inline) */
.notif-icon {
    display: inline-block;
    vertical-align: middle;
    margin-right: 6px;
    flex-shrink: 0;
    color: var(--ink-mute);
}
.notif-titulo {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
}

/* Favorite empty-state CTA align */
.favoritos-vacio .mn-empty__actions { margin-top: 20px; }

/* Account order action row — consistent mn-btn spacing */
.account-order-actions-row {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid var(--line);
}

/* Password form: show/hide toggle */
.field-password-wrap {
    position: relative;
}
.field-password-toggle {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    padding: 4px;
    cursor: pointer;
    color: var(--ink-mute);
    display: flex;
    align-items: center;
    transition: color .15s;
}
.field-password-toggle:hover { color: var(--ink); }

@media (max-width: 600px) {
    .account-order-actions-row { flex-direction: column; align-items: stretch; }
    .account-order-actions-row > * { width: 100%; text-align: center; justify-content: center; }
}

/* ============================================================
   SPRINT 5 — Enterprise Polish
   ============================================================ */

/* --- Skeleton loaders ---------------------------------------- */
@keyframes mn-skeleton-wave {
    0%   { background-position: -200% center; }
    100% { background-position:  200% center; }
}
.mn-skeleton {
    background: linear-gradient(90deg, var(--line) 25%, rgba(255,255,255,.6) 50%, var(--line) 75%);
    background-size: 200% 100%;
    animation: mn-skeleton-wave 1.4s ease infinite;
    border-radius: 6px;
    display: block;
}
.mn-skeleton--text  { height: 14px; width: 60%; }
.mn-skeleton--title { height: 22px; width: 80%; }
.mn-skeleton--btn   { height: 38px; width: 140px; }
.mn-skeleton--img   { width: 100%; aspect-ratio: 4/3; border-radius: 12px; }

/* --- Page transitions (fade in on load) ---------------------- */
@keyframes mn-page-in {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0); }
}
.section, .hero {
    animation: mn-page-in .35s ease both;
}
.section:nth-child(2) { animation-delay: .05s; }
.section:nth-child(3) { animation-delay: .10s; }
.section:nth-child(4) { animation-delay: .15s; }
@media (prefers-reduced-motion: reduce) {
    .section, .hero { animation: none; }
}

/* --- Button loading state ------------------------------------ */
.mn-btn.is-loading {
    pointer-events: none;
    opacity: .7;
    position: relative;
}
.mn-btn.is-loading::after {
    content: '';
    position: absolute;
    right: 14px;
    top: 50%;
    width: 14px;
    height: 14px;
    margin-top: -7px;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: mn-spin .6s linear infinite;
}
@keyframes mn-spin {
    to { transform: rotate(360deg); }
}

/* --- Input focus enhancement (ring) -------------------------- */
.mn-field__input:focus,
.catalogo-search-input:focus,
.campo input:focus:not([type="file"]),
.campo select:focus,
.campo textarea:focus {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px rgba(201,150,59,.12);
    transition: border-color .15s, box-shadow .15s;
}

/* --- Card hover lift (producto, account-order, checkout-card) */
.tag-producto {
    transition: transform .2s ease, box-shadow .2s ease;
}
.tag-producto:hover {
    transform: translateY(-2px);
    box-shadow: 0 20px 48px -24px rgba(31,41,55,.32);
}

.account-order {
    transition: box-shadow .2s ease;
}
.account-order:hover {
    box-shadow: 0 20px 48px -24px rgba(31,41,55,.38);
}

/* --- Back to top (scroll helper) ----------------------------- */
.mn-back-top {
    position: fixed;
    bottom: 24px;
    right: 24px;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: var(--ink);
    color: #fff;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 6px 20px rgba(11,19,32,.35);
    opacity: 0;
    transform: translateY(12px);
    transition: opacity .25s, transform .25s;
    z-index: var(--mn-z-dropdown, 20);
}
.mn-back-top.visible {
    opacity: 1;
    transform: translateY(0);
}
.mn-back-top:hover {
    background: var(--accent);
}
@media (max-width: 600px) {
    .mn-back-top { bottom: 72px; right: 16px; width: 38px; height: 38px; }
}

/* --- Keyboard navigation focus ring (enhanced) --------------- */
:focus-visible {
    outline: 2.5px solid var(--accent);
    outline-offset: 3px;
}

/* --- Link transitions ---------------------------------------- */
a {
    transition: color .15s;
}

/* --- Table row hover ----------------------------------------- */
.mn-table tbody tr {
    transition: background .15s;
}
.mn-table tbody tr:hover {
    background: rgba(201,150,59,.04);
}

/* --- mn-btn press state -------------------------------------- */
.mn-btn:active {
    transform: scale(.98);
    transition: transform .08s;
}

/* --- Image lazy load fade ------------------------------------ */
img {
    transition: opacity .3s ease;
}
img[loading="lazy"] {
    opacity: 0;
}
img[loading="lazy"].loaded {
    opacity: 1;
}
