:root{
  --bg:#f5f6f8; --panel:#ffffff; --ink:#111827; --muted:#6b7280;
  --teal:#0f766e; --teal-d:#115e59; --line:#e9ebef;
  --on-teal:#ffffff;   /* texto SOBRE el acento; en oscuro (acento claro) se invierte */
  --ok:#16a34a; --warn:#d97706; --bad:#dc2626;
  --shadow:0 1px 2px rgba(16,24,40,.05),0 10px 30px rgba(16,24,40,.06);
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  background:var(--bg);color:var(--ink);
}
button{font:inherit;cursor:pointer;border:0;border-radius:8px}
input{font:inherit}
.error{color:var(--bad);font-size:.9rem;margin:.4rem 0 0}
[hidden]{display:none !important}

/* ===== Login ===== */
.login{min-height:100vh;display:grid;place-items:center;padding:1rem;
  background:linear-gradient(135deg,#0f766e,#155e75)}
.login-card{background:var(--panel);padding:2rem;border-radius:16px;
  box-shadow:var(--shadow);width:min(360px,100%);display:flex;flex-direction:column;gap:.85rem}
.login-card h1{margin:0;color:var(--teal);font-size:1.7rem}
.login-card .sub{margin:0 0 .5rem;color:var(--muted)}
.login-card label{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;color:var(--muted)}
.login-card input{padding:.7rem;border:1px solid var(--line);border-radius:8px;font-size:1rem}
.login-card button{background:var(--teal);color:var(--on-teal);padding:.8rem;font-size:1rem;font-weight:600}
.login-card button:hover{background:var(--teal-d)}

/* ===== Topbar ===== */
.caja{min-height:100vh;display:flex;flex-direction:column}
.topbar{display:flex;justify-content:space-between;align-items:center;
  background:var(--teal);color:var(--on-teal);padding:.6rem 1rem}
/* Bloque de marca en la topbar: logo arriba, nombre de la empresa debajo. Todo clickeable → Inicio. */
.marca{display:flex;flex-direction:column;align-items:center;gap:.2rem;cursor:pointer;line-height:1.05;max-width:170px}
.logo-top{height:36px;width:36px;object-fit:cover;border-radius:9px;background:rgba(255,255,255,.15);transition:transform .12s}
.marca:hover .logo-top{transform:scale(1.08)}
.marca-nombre{font-weight:700;font-size:.9rem;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}
/* Selector de cliente (opcional) en el modal de cobro */
.cobro-cliente{display:block;margin:.5rem 0;font-size:.9rem;color:var(--muted)}
.cobro-cliente select{display:block;width:100%;margin-top:.25rem;padding:.45rem;border-radius:8px;font-size:1rem}
/* Estado vacío (estilo Treinta): centrado, ícono suave, título + subtítulo */
.estado-vacio{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;
  text-align:center;color:var(--muted);padding:1.8rem 1rem}
.estado-vacio .ev-ico{font-size:2.1rem;line-height:1;opacity:.9;margin-bottom:.15rem}
.estado-vacio .ev-tit{font-weight:600;color:var(--ink);font-size:.98rem}
.estado-vacio .ev-sub{font-size:.85rem;max-width:36ch;line-height:1.35}
.estado-vacio .ev-cta{margin-top:.6rem}
/* dentro del ticket (carrito) va más compacto */
.carrito .estado-vacio{padding:1.2rem .5rem}
.estado{display:flex;align-items:center;gap:.7rem}
.pill{font-size:.78rem;padding:.2rem .55rem;border-radius:999px;background:rgba(255,255,255,.15)}
.pill.online{color:#bbf7d0}.pill.offline{color:#fecaca;background:rgba(220,38,38,.35)}
.pill.pendientes{background:var(--warn);color:#3b2300;font-weight:600}
.usuario{font-size:.85rem;opacity:.9}
.link{background:transparent;color:var(--on-teal);text-decoration:underline;opacity:.9}

/* ===== Layout ===== */
.layout{flex:1;display:grid;grid-template-columns:1fr 420px;gap:1rem;padding:1rem;max-width:1200px;margin:0 auto;width:100%}
@media(max-width:820px){.layout{grid-template-columns:1fr}}

.col-izq{display:flex;flex-direction:column;gap:1rem;min-width:0}
.escaner{display:flex;gap:.5rem}
.escaner input{flex:1;padding:.85rem 1rem;border:2px solid var(--teal);border-radius:10px;font-size:1.1rem}
.escaner button{background:var(--teal);color:var(--on-teal);padding:0 1.3rem;font-weight:600}
.escaner button:hover{background:var(--teal-d)}
.escaner-msg{margin:0;padding:.6rem .8rem;border-radius:8px;font-size:.9rem}
.escaner-msg.ok{background:#dcfce7;color:#166534}
.escaner-msg.bad{background:#fee2e2;color:#991b1b}

.catalogo{background:var(--panel);border-radius:12px;box-shadow:var(--shadow);padding:1rem;display:flex;flex-direction:column;gap:.7rem;flex:1}
.filtro{padding:.6rem .8rem;border:1px solid var(--line);border-radius:8px}
.lista-catalogo{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem;overflow:auto;align-content:start}
.prod-btn{background:#f8fafc;color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:.7rem;text-align:left;display:flex;flex-direction:column;gap:.2rem}
.prod-btn:hover{border-color:var(--teal);background:#f0fdfa}
.prod-btn .n{font-weight:600;font-size:.9rem;line-height:1.15}
.prod-btn .p{color:var(--teal);font-weight:700}
.prod-btn .s{font-size:.72rem;color:var(--muted)}
.prod-btn .s.low{color:var(--bad)}

/* ===== Ticket ===== */
.col-der{min-width:0}
.ticket{background:var(--panel);border-radius:12px;box-shadow:var(--shadow);padding:1rem;display:flex;flex-direction:column;gap:.8rem;position:sticky;top:1rem}
.carrito{width:100%;border-collapse:collapse;font-size:.9rem}
.carrito th{text-align:left;color:var(--muted);font-weight:600;border-bottom:2px solid var(--line);padding:.4rem .3rem;font-size:.78rem;text-transform:uppercase;letter-spacing:.03em}
.carrito td{padding:.45rem .3rem;border-bottom:1px solid var(--line);vertical-align:middle}
.carrito .num{text-align:right}
.carrito .vacio td{text-align:center;color:var(--muted);padding:2rem 0}
.cant-ctrl{display:inline-flex;align-items:center;gap:.3rem}
.cant-ctrl button{width:26px;height:26px;background:#f1f5f9;font-weight:700;line-height:1}
.cant-ctrl button:hover{background:var(--line)}
.cant-ctrl span{min-width:2ch;text-align:center}
.quitar{background:transparent;color:var(--bad);font-size:1.1rem;padding:0 .2rem}

.total-box{display:flex;justify-content:space-between;align-items:baseline;border-top:2px dashed var(--line);padding-top:.7rem}
.total-box>span:first-child{font-size:1rem;color:var(--muted)}
.total-monto{font-size:1.9rem;font-weight:800;color:var(--teal)}
.acciones{display:flex;gap:.6rem}
.acciones button{flex:1;padding:.85rem;font-weight:700}
/* En el ticket de la caja son 5 botones: los secundarios van 2×2 (targets
 * táctiles cómodos, sin texto apretado) y Cobrar SIEMPRE a lo ancho. */
.ticket .acciones{flex-wrap:wrap}
.ticket .acciones button{flex:1 1 40%;min-width:0;white-space:nowrap}
.ticket .acciones .primario{flex:1 1 100%;padding:1rem}
.primario{background:var(--teal);color:var(--on-teal)}.primario:hover{background:var(--teal-d)}
.primario:disabled,.secundario:disabled{opacity:.45;cursor:not-allowed}
.secundario{background:#f1f5f9;color:var(--ink)}.secundario:hover{background:var(--line)}

/* ===== Modal ===== */
.modal{position:fixed;inset:0;background:rgba(15,23,42,.5);display:grid;place-items:center;padding:1rem;z-index:50}
.modal-card{background:var(--panel);border-radius:16px;padding:1.5rem;width:min(380px,100%);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:.85rem;
  max-height:calc(100vh - 2rem);overflow-y:auto} /* nunca se sale de la pantalla */
/* Modal de cobro más ancho: caben métodos, cliente y crédito sin desbordarse */
#modal-cobro .modal-card{width:min(540px,100%)}
@media(min-width:600px){#modal-cobro .metodos{grid-template-columns:repeat(4,1fr)}}
.cliente-row{display:flex;gap:.4rem;margin-top:.25rem}
.cliente-row select{flex:1;margin-top:0 !important}
.cliente-row button{flex:none;white-space:nowrap;padding:.3rem .7rem;font-size:.85rem}
.modal-card h2{margin:0;color:var(--teal)}
.cobro-total{font-size:1rem;color:var(--muted)}.cobro-total strong{font-size:1.6rem;color:var(--ink);display:block}
.modal-card label{display:flex;flex-direction:column;gap:.3rem;color:var(--muted);font-size:.85rem}
.modal-card input{padding:.8rem;border:2px solid var(--teal);border-radius:10px;font-size:1.4rem;text-align:right}
.cobro-cambio{display:flex;justify-content:space-between;align-items:baseline;background:#f0fdfa;padding:.7rem .9rem;border-radius:10px}
.cobro-cambio strong{font-size:1.5rem;color:var(--teal)}

/* ===== Toast ===== */
.toast{position:fixed;left:50%;bottom:1.5rem;transform:translateX(-50%);
  background:var(--ink);color:var(--bg);padding:.8rem 1.2rem;border-radius:10px;
  box-shadow:var(--shadow);z-index:60;max-width:90vw;font-size:.92rem;white-space:pre-line}
.toast.ok{background:var(--ok)}.toast.warn{background:var(--warn)}

/* ===== Modo oscuro ===== */
[data-theme="dark"]{
  --bg:#0b1120; --panel:#141d33; --ink:#e6e9ef; --muted:#9aa5b8; --line:#232f47;
  --teal:#2dd4bf; --teal-d:#14b8a6;
  --on-teal:#08201d;                          /* acento claro -> texto oscuro */
  --ok:#4ade80; --warn:#fbbf24; --bad:#f87171; /* semánticos más brillantes p/fondo oscuro */
  --shadow:0 1px 3px rgba(0,0,0,.4),0 8px 24px rgba(0,0,0,.35);
  color-scheme:dark;                           /* widgets nativos (select, date) en oscuro */
}
/* Inputs/selects de CUALQUIER panel en oscuro (antes solo modales/filtros -> quedaban blancos) */
[data-theme="dark"] input,[data-theme="dark"] select,[data-theme="dark"] textarea{
  background:#0b1220;color:#e5e7eb;border-color:#232f47}
/* Un select SIN borde propio lo pinta el navegador como widget nativo (ignora el
 * background) -> borde explícito para que respete el tema, igual que #rep-dias. */
.panel select,.cobro-cliente select{border:1px solid var(--line);background:var(--panel);color:var(--ink)}
.panel select{padding:.5rem .7rem;border-radius:8px;font:inherit}
[data-theme="dark"] .prod-btn{background:#0f1a30}
[data-theme="dark"] .prod-btn:hover{background:#13233f}
[data-theme="dark"] .cant-ctrl button{background:#1e293b;color:#e5e7eb}
[data-theme="dark"] .secundario{background:#1e293b;color:#e5e7eb}
[data-theme="dark"] .secundario:hover{background:#334155}
[data-theme="dark"] .filtro,[data-theme="dark"] .escaner input,
[data-theme="dark"] .modal-card input,[data-theme="dark"] .modal-card select{background:#0b1220;color:#e5e7eb}
[data-theme="dark"] .cobro-cambio{background:#0f1a30}

/* ===== Elementos nuevos (corte, fiados, fiar, pie) ===== */
.modal-card.ancho{width:min(560px,100%)}
.corte-body{display:flex;flex-direction:column;gap:.4rem;font-size:.95rem}
.corte-row{display:flex;justify-content:space-between;padding:.35rem 0;border-bottom:1px solid var(--line)}
.corte-row.big{font-size:1.2rem;font-weight:800;color:var(--teal);border:0}
.corte-row .lbl{color:var(--muted)}
.fiar-toggle{display:flex;align-items:center;gap:.5rem;flex-direction:row !important;color:var(--ink);font-size:.95rem;cursor:pointer;margin-top:.3rem}
.fiar-toggle input{width:auto}
#fiar-box{display:flex;flex-direction:column;gap:.5rem;border-top:1px dashed var(--line);padding-top:.6rem}
.fiados-acciones{display:flex;justify-content:flex-end;margin-bottom:.4rem}
.fiados-lista{display:flex;flex-direction:column;gap:.4rem;max-height:50vh;overflow:auto}
.fiado-item{display:flex;justify-content:space-between;align-items:center;gap:.6rem;padding:.6rem .7rem;background:var(--bg);border:1px solid var(--line);border-radius:10px}
.fiado-item .info b{display:block}
.fiado-item .info span{font-size:.8rem;color:var(--muted)}
.fiado-item .saldo{font-weight:800;color:var(--bad)}
.fiado-item .saldo.cero{color:var(--ok)}
/* ===== Gestor de productos ===== */
#prod-form{display:flex;flex-direction:column;gap:.5rem}
#prod-form label{display:flex;flex-direction:column;gap:.25rem;font-size:.82rem;color:var(--muted)}
#prod-form input{padding:.6rem;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink)}
.prod-form-fila{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}
.prod-item{display:flex;align-items:center;gap:.6rem;padding:.55rem .7rem;background:var(--bg);border:1px solid var(--line);border-radius:10px}
.prod-item .info{flex:1 1 auto;min-width:0}
.prod-item .info b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.prod-item .info span{font-size:.78rem;color:var(--muted)}
.prod-item .precio{flex:0 0 auto;font-weight:700;color:var(--teal);min-width:8ch;text-align:right}
.prod-item .st{flex:0 0 auto;font-size:.75rem;color:var(--muted);min-width:7ch;text-align:right}
.prod-item .st.low{color:var(--bad)}
.prod-item button{flex:0 0 auto;padding:.3rem .6rem;font-size:.8rem}
/* Generador de código de barras en la ficha */
.codigo-row{display:flex;gap:.4rem;align-items:stretch}
.codigo-row input{flex:1 1 auto;min-width:0}
.codigo-row button{flex:0 0 auto;white-space:nowrap;padding:.3rem .7rem;font-size:.85rem}
.barcode-box{display:flex;flex-direction:column;align-items:center;gap:.5rem;margin:.2rem 0 .6rem;padding:.7rem;background:#fff;border:1px solid var(--line);border-radius:10px}
.barcode-box svg{max-width:100%;height:auto}
/* Paleta de color de marca (Ajustes) */
.paleta{display:flex;flex-wrap:wrap;gap:.55rem}
.swatch{width:36px;height:36px;border-radius:50%;background:var(--c);border:2px solid var(--line);cursor:pointer;padding:0}
.swatch:hover{transform:scale(1.08)}
.swatch.sel{box-shadow:0 0 0 2px var(--panel),0 0 0 4px var(--c)}
.prod-grupo{position:sticky;top:0;z-index:1;margin:.6rem 0 .15rem;padding:.3rem .2rem;font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:var(--panel);border-bottom:2px solid var(--line)}
.prod-grupo:first-child{margin-top:0}
[data-theme="dark"] #prod-form input{background:#0b1220}
.prod-preview-resumen{font-size:.95rem;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:.7rem .9rem;margin:0 0 .6rem}
.prod-preview-resumen b{color:var(--teal)}
.prod-preview-tabla{max-height:42vh;overflow:auto;border:1px solid var(--line);border-radius:10px}
.prod-preview-tabla table{width:100%;border-collapse:collapse;font-size:.85rem}
.prod-preview-tabla th{position:sticky;top:0;background:var(--panel);text-align:left;color:var(--muted);font-size:.72rem;text-transform:uppercase;padding:.4rem .5rem;border-bottom:1px solid var(--line)}
.prod-preview-tabla td{padding:.35rem .5rem;border-bottom:1px solid var(--line)}
.prod-preview-tabla td.num{text-align:right}

.secundario.peligro{background:transparent;color:var(--bad);border:1px solid var(--bad)}
.secundario.peligro:hover{background:var(--bad);color:#fff}

/* ===== Reportes ===== */
.rep-sub{font-size:.85rem;color:var(--muted);margin:.8rem 0 .4rem;text-transform:uppercase;letter-spacing:.03em}
.rep-diario{display:flex;flex-direction:column;gap:.3rem}
.rep-bar-row{display:grid;grid-template-columns:64px 1fr 90px;align-items:center;gap:.5rem;font-size:.82rem;cursor:pointer;border-radius:6px}
.rep-bar-row:hover{background:var(--bg)}
.rep-bar-row .d{color:var(--muted)}
.rep-bar-track{display:block;background:var(--bg);border-radius:6px;height:18px;overflow:hidden}
.rep-bar-fill{display:block;background:var(--teal);height:100%;border-radius:6px;min-width:2px}
.rep-bar-row .v{text-align:right;font-weight:600}
.rep-top{display:flex;flex-direction:column;gap:.3rem}
.rep-top-row{display:grid;grid-template-columns:1fr auto auto;gap:.7rem;align-items:center;padding:.4rem .6rem;background:var(--bg);border:1px solid var(--line);border-radius:8px;font-size:.88rem}
.rep-top-row .cant{color:var(--muted);font-size:.8rem}
.rep-top-row .imp{font-weight:700;color:var(--teal);min-width:6ch;text-align:right}
.rep-ventas{display:flex;flex-direction:column;gap:.3rem;max-height:420px;overflow-y:auto}
.rep-venta-row{display:grid;grid-template-columns:86px 1fr 1fr auto auto 80px;gap:.6rem;align-items:center;padding:.45rem .6rem;background:var(--bg);border:1px solid var(--line);border-radius:8px;font-size:.85rem;cursor:pointer}
.rep-venta-row:hover{border-color:var(--teal)}
.rep-venta-row .fh{color:var(--muted);font-variant-numeric:tabular-nums}
.rep-venta-row .cli{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rep-venta-row .caj{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rep-venta-row .fp,.rep-venta-row .cant{color:var(--muted);font-size:.78rem}
.rep-venta-row .imp{font-weight:700;color:var(--teal);text-align:right}
.rep-venta-det{padding:.3rem .6rem .3rem 1.4rem;display:flex;flex-direction:column;gap:.25rem}
@media (max-width:640px){.rep-venta-row{grid-template-columns:74px 1fr auto 72px}.rep-venta-row .caj,.rep-venta-row .fp{display:none}}

/* ===== Ajustes (Telegram) ===== */
.ajustes-ayuda{font-size:.82rem;color:var(--muted);margin:0 0 .3rem;line-height:1.45}
.ajustes-estado{font-size:.85rem;margin:.2rem 0;font-weight:600}
.ajustes-estado.on{color:var(--ok)}.ajustes-estado.off{color:var(--muted)}
#modal-ajustes label{display:flex;flex-direction:column;gap:.25rem;font-size:.82rem;color:var(--muted)}
#modal-ajustes input{padding:.6rem;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink)}
[data-theme="dark"] #modal-ajustes input{background:#0b1220}

.pie-marca{text-align:center;font-size:.78rem;color:var(--muted);margin:.2rem 0 0}
.pie-marca a{color:var(--muted);text-decoration:none}
.pie-marca a:hover{color:var(--teal)}
.link{background:transparent;border:0;cursor:pointer;font:inherit}

/* ============================================================
   Shell con menú lateral + secciones (rediseño dashboard)
   ============================================================ */
.app{min-height:100vh;display:flex;flex-direction:column}
.cuerpo{flex:1;display:flex;min-height:0}
.solo-movil{display:none}

.sidebar{width:184px;background:var(--panel);border-right:1px solid var(--line);
  padding:.6rem;display:flex;flex-direction:column;gap:.25rem;flex-shrink:0}
.nav-item{display:flex;align-items:center;gap:.6rem;padding:.7rem .8rem;border-radius:10px;
  background:transparent;color:var(--ink);text-align:left;font-size:.95rem;font-weight:500;width:100%}
.nav-item:hover{background:var(--bg)}
.nav-item.activo{background:var(--teal);color:var(--on-teal)}

.contenido{flex:1;overflow:auto;padding:1.2rem;min-width:0;background:var(--bg)}
.vista-titulo{font-size:1.5rem;margin:0 0 1rem}
.vista-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}
.vista-head .vista-titulo{margin:0}
.vista-acciones{display:flex;gap:.5rem;flex-wrap:wrap}

/* KPIs del inicio */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1.2rem}
.kpi{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:1.1rem 1.2rem;
  display:flex;flex-direction:column;gap:.15rem;box-shadow:var(--shadow)}
.kpi-lbl{color:var(--muted);font-size:.82rem}
.kpi-val{font-size:1.8rem;font-weight:800;color:var(--teal);line-height:1.1}
.kpi-sub{color:var(--muted);font-size:.76rem}
.kpi.alerta .kpi-val{color:var(--warn)}
.inicio-cols{display:grid;grid-template-columns:1fr 1fr;gap:1rem}

.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;
  padding:1rem 1.2rem;box-shadow:var(--shadow);margin-bottom:1rem}
.panel-tit{margin:0 0 .7rem;font-size:1rem;color:var(--ink)}
/* Encabezado de grupo en Ajustes */
.ajustes-grupo{margin:1.8rem 0 .7rem;padding-bottom:.4rem;border-bottom:1px solid var(--line);
  font-size:.78rem;font-weight:700;letter-spacing:.7px;text-transform:uppercase;color:var(--teal);
  display:flex;align-items:center;gap:.5rem}
.ajustes-grupo:first-of-type{margin-top:.2rem}

/* Caja dentro de su vista (ocupa todo) */
#vista-caja{height:100%}
#vista-caja .layout{max-width:none;padding:0;margin:0;height:100%}

/* Inventario: barra + tabla */
.inv-barra{display:flex;gap:.8rem;align-items:center;margin-bottom:.8rem;flex-wrap:wrap}
.inv-barra .filtro{flex:1;min-width:200px}
.chk{display:flex;align-items:center;gap:.4rem;font-size:.88rem;color:var(--muted);white-space:nowrap}
.prod-tabla{display:flex;flex-direction:column;gap:.4rem}

/* Editor de producto a pantalla completa */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;max-width:720px;margin-bottom:.6rem}
.form-grid label{display:flex;flex-direction:column;gap:.3rem;font-size:.84rem;color:var(--muted)}
.form-grid input{padding:.65rem;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink);font-size:1rem}
[data-theme="dark"] .form-grid input{background:#0b1220}
#vista-ajustes .form-grid{max-width:560px}

/* Móvil: menú lateral como cajón */
@media(max-width:820px){
  .solo-movil{display:inline-block}
  .sidebar{position:fixed;top:0;left:0;bottom:0;z-index:40;transform:translateX(-100%);
    transition:transform .2s;width:230px;padding-top:3.6rem}
  .sidebar.abierto{transform:none;box-shadow:0 0 0 100vmax rgba(0,0,0,.45)}
  .inicio-cols{grid-template-columns:1fr}
  #vista-caja .layout{grid-template-columns:1fr}
  .contenido{padding:.8rem}
}

/* ===== Fase B: formas de pago + descuentos ===== */
.metodos{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
.metodo{padding:.6rem;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);font-weight:600;font-size:.9rem}
.metodo:hover{border-color:var(--teal)}
.metodo.activo{background:var(--teal);color:var(--on-teal);border-color:var(--teal)}
.pago-panel{display:flex;flex-direction:column;gap:.6rem}
.pago-nota{margin:0;color:var(--muted);background:var(--bg);border-radius:10px;padding:.8rem;text-align:center;font-size:.95rem}
#pago-mixto label{flex-direction:row !important;align-items:center;justify-content:space-between;gap:.6rem}
#pago-mixto input{max-width:55%;font-size:1.1rem}

/* Totales del ticket */
.totales{display:flex;flex-direction:column;gap:.2rem;font-size:.9rem;color:var(--muted)}
.tot-row{display:flex;justify-content:space-between}
.tot-row .desc{color:var(--bad);font-weight:600}
.imp-btn{background:transparent;color:inherit;font:inherit;padding:0;text-decoration:underline dotted;text-underline-offset:2px}
.imp-btn:hover{color:var(--teal)}
.lin-desc{display:block;font-size:.72rem;color:var(--bad)}
[data-theme="dark"] .metodo{background:#0b1220}

/* ===== Fase C: cajeros (acciones) ===== */
.fiado-item .acts{display:flex;gap:.3rem;flex-wrap:wrap;align-items:center}
.fiado-item .acts button{padding:.35rem .6rem;font-size:.78rem;flex:none}

/* ===== Fase D: selector de periodo en reportes ===== */
#rep-dias,#rep-fecha{padding:.5rem .7rem;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink);font:inherit}
[data-theme="dark"] #rep-dias,[data-theme="dark"] #rep-fecha{background:#0b1220}
#rep-dias:disabled{opacity:.45}

/* ===== Fase E: selects de filtro ===== */
#prod-depto-filtro{padding:.5rem .7rem;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink);font:inherit}
[data-theme="dark"] #prod-depto-filtro{background:#0b1220}

/* ===== Fase H: Treinta parity ===== */

/* Thumbnail en el catálogo de la caja */
.prod-btn{position:relative;overflow:hidden}
.prod-btn.con-foto{padding-right:62px}   /* reserva la franja derecha: el texto nunca pasa bajo la foto */
.prod-thumb{position:absolute;top:8px;right:8px;width:46px;height:46px;object-fit:cover;border-radius:8px;border:1px solid var(--line);background:#fff}

/* Foto upload en el editor de productos */
.foto-upload-box{margin:.8rem 0 .4rem;display:flex;flex-direction:column;gap:.4rem}
.foto-preview{min-height:36px;display:flex;align-items:center}
.foto-upload-acciones{display:flex;gap:.5rem;align-items:center}
.btn-fake{display:inline-flex;align-items:center;justify-content:center;padding:.45rem .9rem;
  border-radius:8px;font-size:.88rem;font-weight:600;cursor:pointer;text-decoration:none;
  border:1px solid var(--line);background:var(--panel);color:var(--ink)}
.btn-fake:hover{border-color:var(--teal);color:var(--teal)}

/* Share bar (post-venta) */
.share-bar{position:fixed;bottom:0;left:0;right:0;z-index:60;
  background:#1e3a5f;color:#fff;display:flex;align-items:center;gap:.8rem;
  padding:.7rem 1rem;flex-wrap:wrap;box-shadow:0 -2px 12px rgba(0,0,0,.25)}
.share-bar #share-msg{flex:1;font-size:.9rem;font-weight:500}
.wa-pill{display:inline-flex;align-items:center;gap:.35rem;background:#25d366;color:#fff;
  padding:.45rem 1rem;border-radius:999px;font-weight:700;font-size:.88rem;
  text-decoration:none;white-space:nowrap}
.wa-pill:hover{background:#1ebe5d}
.share-cerrar{background:transparent;border:none;color:#fff;font-size:1.1rem;cursor:pointer;padding:.2rem .4rem;flex-none}

/* Slug prefix en ajustes */
.slug-prefix{font-size:.78rem;color:var(--muted);white-space:nowrap;padding-right:.1rem}

/* Tabs de departamento en el catálogo de la caja */
.depto-tabs-wrap{display:flex;align-items:center;gap:.2rem}
.depto-tabs{display:flex;gap:.3rem;overflow-x:auto;padding:.3rem 0 .2rem;flex-wrap:nowrap;scroll-behavior:smooth}
.depto-tabs::-webkit-scrollbar{height:3px}
.depto-tab{padding:.28rem .7rem;border-radius:999px;font-size:.76rem;font-weight:600;
  border:1.5px solid var(--line);background:var(--bg);color:var(--ink);cursor:pointer;white-space:nowrap}
.depto-tab.activo{background:var(--teal);color:var(--on-teal);border-color:var(--teal)}
.depto-tab:hover:not(.activo){border-color:var(--teal);color:var(--teal)}
.depto-scroll-btn{flex:0 0 auto;width:1.6rem;height:1.6rem;border-radius:50%;border:1.5px solid var(--line);
  background:var(--bg);color:var(--teal);font-size:1rem;line-height:1;cursor:pointer;display:flex;
  align-items:center;justify-content:center;padding:0}
.depto-scroll-btn:hover{border-color:var(--teal)}
.depto-scroll-btn[hidden]{display:none}

/* Link button inline */
.link-btn{background:transparent;border:none;color:var(--teal);cursor:pointer;font:inherit;text-decoration:underline;padding:0}

/* ===== Multisucursal (Fase 1) ===== */
.sucursal-sel-box{margin-left:.3rem}
.sucursal-sel-box select{font-size:.8rem;padding:.25rem .5rem;border-radius:8px;
  border:1px solid rgba(255,255,255,.4);background:rgba(255,255,255,.14);color:var(--on-teal);max-width:38vw}
.sucursal-sel-box select option{color:#0f172a}
/* En oscuro la topbar es acento CLARO: los pills necesitan tinta oscura, no clara */
[data-theme="dark"] .pill{background:rgba(0,0,0,.16)}
[data-theme="dark"] .pill.online{color:#064e3b}
[data-theme="dark"] .pill.offline{color:#7f1d1d;background:rgba(127,29,29,.25)}
[data-theme="dark"] .sucursal-sel-box select{border-color:rgba(0,0,0,.35);background:rgba(0,0,0,.12)}

#rep-sucursal{padding:.5rem .7rem;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink);font:inherit}
[data-theme="dark"] #rep-sucursal{background:#0b1220}

.tablero-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}
.tablero-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:1rem 1.2rem;box-shadow:var(--shadow)}
.tablero-card h4{margin:0 0 .6rem;font-size:1.02rem;display:flex;align-items:baseline;gap:.4rem;flex-wrap:wrap}
.tablero-card .principal-tag{font-size:.7rem;color:var(--muted);font-weight:400}
.tablero-card .fila{display:flex;justify-content:space-between;padding:.28rem 0;font-size:.9rem;border-bottom:1px solid var(--line)}
.tablero-card .fila:last-child{border-bottom:0}
.tablero-card .fila .lbl{color:var(--muted)}
.tablero-card .alerta{color:var(--bad);font-weight:700}
