/* ============================================================
   TECHÉRP — Design System v2
   Un solo archivo, sin duplicados, sin !important innecesarios
============================================================ */

/* ── Variables ─────────────────────────────────────────── */
:root {
  /* Colores base */
  --bg:       #080d18;
  --bg2:      #0f1624;
  --bg3:      #16203a;
  --bg4:      #1e2a44;

  /* Bordes */
  --border:   rgba(148,163,184,.10);
  --border2:  rgba(148,163,184,.18);

  /* Texto */
  --text:     #f0f4ff;
  --text2:    #9aaac4;
  --text3:    #5f718f;

  /* Acento */
  --accent:      #4f8ef7;
  --accent2:     #3a74e0;
  --accent-bg:   rgba(79,142,247,.12);
  --accent-glow: rgba(79,142,247,.22);

  /* Semánticos */
  --green:      #22c55e;
  --green-bg:   rgba(34,197,94,.12);
  --red:        #ef4444;
  --red-bg:     rgba(239,68,68,.12);
  --amber:      #f59e0b;
  --amber-bg:   rgba(245,158,11,.12);
  --purple:     #a78bfa;
  --purple-bg:  rgba(167,139,250,.12);
  --teal:       #2dd4bf;
  --teal-bg:    rgba(45,212,191,.12);

  /* Geometría */
  --radius:    14px;
  --radius-sm:  8px;
  --radius-xs:  6px;
  --sidebar:  260px;
  --topbar:    68px;
  --pad:       28px;
}


html[data-theme="light"] {
  --bg: #f2f5fa;
  --bg2: #ffffff;
  --bg3: #e7edf7;
  --bg4: #d4ddef;
  --border: rgba(0, 0, 0, .15);
  --border2: rgba(0, 0, 0, .24);
  --text: #0f172a;
  --text2: #334155;
  --text3: #64748b;
  --accent: #2563eb;
  --accent2: #1d4ed8;
  --accent-bg: rgba(37,99,235,.10);
  --accent-glow: rgba(37,99,235,.18);
  --green-bg: rgba(34,197,94,.14);
  --red-bg: rgba(239,68,68,.10);
  --amber-bg: rgba(245,158,11,.12);
  --purple-bg: rgba(167,139,250,.12);
  --teal-bg: rgba(45,212,191,.12);
}

/* ── Reset ─────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 14px; }
body {
  font-family: -apple-system, 'Segoe UI', sans-serif;
  background: var(--bg);
  color: var(--text);
  min-height: 100vh;
  display: flex;
  background-image:
    radial-gradient(circle at 85% 0%,   rgba(59,130,246,.07), transparent 30%),
    radial-gradient(circle at 10% 100%, rgba(99,102,241,.06), transparent 30%);
}

/* ============================================================
   LOGIN
============================================================ */
#login-screen {
  position: fixed; inset: 0;
  background:
    radial-gradient(circle at 50% 0%, rgba(79,142,247,.07), transparent 34%),
    var(--bg);
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px;
}
#login-screen.hidden { display: none; }

.login-box {
  width: min(100%, 348px);
  padding: 30px 32px 28px;
  border: 1px solid var(--border2);
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(255,255,255,.025), rgba(255,255,255,0)), var(--bg2);
  box-shadow: 0 18px 46px rgba(0,0,0,.34);
}
.login-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-bottom: 26px;
}
.login-logo-icon {
  width: 42px;
  height: 42px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(79,142,247,.30);
  border-radius: 13px;
  background: linear-gradient(135deg, rgba(79,142,247,.30), rgba(79,142,247,.10));
  font-size: 21px;
}
.login-logo-text { font-size: 20px; font-weight: 800; line-height:1.05; letter-spacing: -.02em; }
.login-logo-sub  { margin-top:3px; font-size: 10px; color: var(--text3); text-transform: uppercase; letter-spacing: .13em; }
.login-title  { font-size: 17px; font-weight: 800; margin-bottom: 5px; }
.login-sub    { font-size: 12px; line-height:1.35; color: var(--text3); margin-bottom: 22px; }
.login-group  { display: flex; flex-direction: column; gap: 5px; margin-bottom: 13px; }
.login-group label { font-size: 10.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; color: var(--text3); }
.login-group input {
  width:100%;
  min-height: 40px;
  height: 40px;
  padding: 9px 12px;
  border: 1px solid var(--border2);
  border-radius: 10px;
  background: var(--bg3);
  color: var(--text);
  font-size: 13px;
  outline: none;
  transition: border-color .15s, box-shadow .15s;
}
.login-group input:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--accent-glow);
}
.btn-login {
  width: 100%;
  min-height: 42px;
  margin-top: 8px;
  padding: 10px 12px;
  border: none;
  border-radius: 10px;
  background: var(--accent);
  color: #fff;
  font-size: 13.5px;
  font-weight: 800;
  cursor: pointer;
  transition: background .15s, box-shadow .15s, transform .15s;
  box-shadow: 0 8px 22px rgba(79,142,247,.22);
}
.btn-login:hover    { background: var(--accent2); transform: translateY(-1px); }
.btn-login:disabled { opacity: .6; cursor: not-allowed; transform:none; }
#login-error {
  display: none;
  margin-bottom: 13px;
  padding: 9px 11px;
  border: 1px solid rgba(239,68,68,.25);
  border-radius: 10px;
  background: var(--red-bg);
  color: var(--red);
  font-size: 12px;
  line-height:1.35;
}
.login-default-hint {
  margin-top: 18px;
  padding: 10px 12px;
  border-radius: 10px;
  background: var(--bg3);
  color: var(--text3);
  font-size: 11px;
  text-align: center;
  line-height: 1.45;
}
.login-default-hint strong { color: var(--text2); }
@media (max-width: 520px){
  #login-screen { align-items:flex-start; padding:28px 14px; }
  .login-box { width:100%; padding:26px 20px 22px; border-radius:16px; }
  .login-logo { margin-bottom:22px; }
}

/* ============================================================
   SIDEBAR
============================================================ */
#sidebar {
  width: var(--sidebar);
  background: linear-gradient(180deg, #0d1525 0%, #0a1020 100%);
  border-right: 1px solid var(--border);
  display: flex; flex-direction: column;
  position: fixed; top: 0; left: 0; height: 100vh;
  z-index: 100;
  box-shadow: 1px 0 0 rgba(255,255,255,.03), 12px 0 32px rgba(0,0,0,.18);
}

.sidebar-logo {
  padding: 22px 20px 18px;
  border-bottom: 1px solid var(--border);
  display: flex; align-items: center; gap: 12px;
}
.logo-icon {
  width: 40px; height: 40px; flex-shrink: 0;
  background: linear-gradient(135deg, rgba(79,142,247,.28), rgba(79,142,247,.08));
  border: 1px solid rgba(79,142,247,.26);
  border-radius: 13px;
  display: flex; align-items: center; justify-content: center;
  font-size: 18px;
  box-shadow: 0 8px 20px rgba(0,0,0,.20);
}
.logo-text { font-size: 16px; font-weight: 800; letter-spacing: -.02em; color: #f8fafc; line-height: 1.2; }
.logo-sub  { font-size: 10px; color: var(--text3); letter-spacing: .14em; text-transform: uppercase; }

.sidebar-nav { flex: 1; padding: 16px 12px 18px; overflow-y: auto; }
.sidebar-nav::-webkit-scrollbar { width: 4px; }
.sidebar-nav::-webkit-scrollbar-thumb { background: var(--bg4); border-radius: 4px; }

.nav-section  { margin-bottom: 18px; }
.nav-label    { font-size: 10px; color: var(--text3); text-transform: uppercase; letter-spacing: .16em; padding: 0 10px 8px; display: block; }

.nav-item {
  display: flex; align-items: center; gap: 11px;
  min-height: 44px; padding: 0 12px;
  border-radius: 12px; margin-bottom: 3px;
  cursor: pointer; color: var(--text2);
  border: 1px solid transparent;
  font-size: 13.5px; font-weight: 500;
  transition: background .14s, color .14s, border-color .14s;
  user-select: none; text-decoration: none;
}
.nav-item:visited { color: var(--text2); }
.nav-item:hover, .nav-item:focus { text-decoration: none; }
.nav-item:hover {
  background: rgba(255,255,255,.04);
  border-color: rgba(255,255,255,.05);
  color: var(--text);
}
.nav-item.active {
  background: linear-gradient(180deg, rgba(79,142,247,.20), rgba(79,142,247,.12));
  border-color: rgba(79,142,247,.28);
  color: #ddeaff;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
}
.nav-item.hidden-nav { display: none; }

.nav-icon {
  width: 28px; height: 28px; flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 9px; background: rgba(255,255,255,.04);
  font-size: 15px;
  transition: background .14s;
}
.nav-item.active .nav-icon { background: rgba(79,142,247,.20); }

.nav-badge {
  margin-left: auto;
  min-width: 22px; height: 22px; padding: 0 7px;
  border-radius: 999px;
  display: inline-flex; align-items: center; justify-content: center;
  background: rgba(239,68,68,.16); color: #fca5a5;
  border: 1px solid rgba(248,113,113,.18);
  font-size: 10px; font-weight: 700;
}

.sidebar-footer {
  padding: 14px;
  border-top: 1px solid var(--border);
}
.user-card {
  display: flex; align-items: center; gap: 10px;
  padding: 11px 12px;
  background: rgba(255,255,255,.03);
  border: 1px solid var(--border);
  border-radius: 14px;
}
.avatar {
  width: 36px; height: 36px; flex-shrink: 0;
  border-radius: 11px;
  background: linear-gradient(135deg, rgba(79,142,247,.28), rgba(79,142,247,.10));
  color: #ddeaff; font-size: 13px; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
}
.user-card-info { flex: 1; min-width: 0; }
.sidebar-user-name { font-size: 13px; font-weight: 700; color: #eef4ff; line-height: 1.2; }
.sidebar-user-role { margin-top: 3px; }

.btn-logout {
  width: 100%; margin-top: 10px;
  min-height: 40px;
  background: rgba(255,255,255,.025);
  border: 1px solid var(--border);
  border-radius: 10px;
  color: var(--text2); font-size: 12px; font-weight: 600;
  cursor: pointer;
  transition: background .15s, color .15s;
}
.btn-logout:hover { background: rgba(255,255,255,.05); color: var(--text); }

/* ── Rol badge ─────────────────────────────────────────── */
.rol-badge {
  display: inline-block; padding: 2px 8px;
  border-radius: 999px; font-size: 10px; font-weight: 700;
}
.rol-badge.admin    { background: var(--accent-bg); color: var(--accent); }
.rol-badge.vendedor { background: var(--green-bg);  color: var(--green); }

/* ============================================================
   MAIN LAYOUT
============================================================ */
#main {
  margin-left: var(--sidebar);
  flex: 1; display: flex; flex-direction: column;
  min-height: 100vh;
  min-width: 0;
}

.topbar {
  position: sticky; top: 0; z-index: 40;
  min-height: var(--topbar);
  padding: 0 var(--pad);
  display: flex; align-items: center; justify-content: space-between;
  background: rgba(8,13,24,.80);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--border);
}
.topbar-left { display: flex; align-items: center; gap: 12px; min-width: 0; }
.page-heading { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.page-kicker { display: none; }
.page-title  { font-size: 20px; font-weight: 800; letter-spacing: -.02em; color: #f8fafc; line-height: 1.2; }
.page-sub    { font-size: 12px; color: var(--text3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.topbar-right { display: flex; align-items: center; gap: 10px; }
 .notif-wrap { position: relative; }
.notif-btn {
  position: relative;
  min-height: 34px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.03);
  color: var(--text2);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  transition: transform .15s, background .15s, border-color .15s, color .15s;
}
.notif-btn:hover,
.notif-btn.active {
  transform: translateY(-1px);
  border-color: var(--border2);
  background: rgba(255,255,255,.06);
  color: var(--text);
}
.notif-btn-icon { font-size: 14px; line-height: 1; }
.notif-btn-label { font-size: 12px; font-weight: 600; }
.notif-badge {
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  border-radius: 999px;
  background: rgba(239,68,68,.16);
  border: 1px solid rgba(248,113,113,.24);
  color: #fecaca;
  font-size: 11px;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.notif-badge.hidden { display: none; }
.notif-dropdown {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  width: min(420px, calc(100vw - 32px));
  background: rgba(10,15,27,.98);
  border: 1px solid var(--border2);
  border-radius: 18px;
  box-shadow: 0 24px 60px rgba(2,6,23,.42);
  overflow: hidden;
  display: none;
  z-index: 50;
  backdrop-filter: blur(16px);
}
.notif-dropdown.open { display: block; }
.notif-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  border-bottom: 1px solid var(--border);
  background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,0));
}
.notif-head-copy { min-width: 0; }
.notif-title { font-size: 15px; font-weight: 800; color: var(--text); }
.notif-sub { font-size: 12px; color: var(--muted); margin-top: 2px; }
.notif-refresh {
  min-height: 32px;
  padding: 0 11px;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.03);
  color: var(--text2);
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
  transition: background .15s, border-color .15s, transform .15s;
}
.notif-refresh:hover { background: rgba(255,255,255,.06); border-color: var(--border2); transform: translateY(-1px); }
.notif-list { max-height: 420px; overflow: auto; padding: 12px; display: grid; gap: 10px; }
.notif-empty {
  padding: 22px 16px;
  border: 1px dashed var(--border);
  border-radius: 14px;
  text-align: center;
  color: var(--muted);
  font-size: 13px;
  background: rgba(255,255,255,.02);
}
.notif-item {
  padding: 14px;
  border: 1px solid rgba(245,158,11,.16);
  border-radius: 14px;
  background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
  display: grid;
  gap: 9px;
}
.notif-item-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}
.notif-item-title { font-size: 13px; font-weight: 800; color: var(--text); }
.notif-item-time { font-size: 11px; color: var(--muted); white-space: nowrap; }
.notif-item-body { font-size: 13px; color: var(--text2); line-height: 1.5; }
.notif-item-actions { display: flex; justify-content: flex-end; }
.notif-mark-read {
  padding: 7px 10px;
  border-radius: 10px;
  border: 1px solid rgba(125,178,255,.22);
  background: rgba(59,130,246,.10);
  color: #bfdbfe;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}
.notif-mark-read:hover { background: rgba(59,130,246,.16); }
.notif-suggestion {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 8px;
  border-radius: 999px;
  background: rgba(245,158,11,.12);
  color: #fcd34d;
  font-size: 11px;
  font-weight: 700;
}
html[data-theme="light"] .notif-btn,
html[data-theme="light"] .notif-refresh,
html[data-theme="light"] .notif-item { background: rgba(255,255,255,.94); }
html[data-theme="light"] .notif-dropdown {
  background: rgba(255,255,255,.98);
  box-shadow: 0 24px 60px rgba(15,23,42,.12);
}
@media (max-width: 900px) {
  .notif-dropdown { right: -36px; }
}
@media (max-width: 640px) {
  .notif-btn-label { display: none; }
  .notif-wrap { position: static; }
  .notif-dropdown { position: fixed; top: 76px; right: 12px; left: 12px; width: auto; }
}

.topbar-theme-pill {
  display: inline-flex; align-items: center; gap: 8px;
  min-height: 34px; padding: 0 12px; border-radius: 999px;
  background: rgba(255,255,255,.03); border: 1px solid var(--border);
  color: var(--text2); font-size: 12px; cursor: pointer;
  transition: transform .15s, background .15s, border-color .15s;
}
.topbar-theme-pill:hover { background: rgba(255,255,255,.06); border-color: var(--border2); transform: translateY(-1px); }
.topbar-theme-pill span:first-child { font-size: 14px; }

.topbar-status-pill,
.topbar-date-pill {
  display: inline-flex; align-items: center; gap: 8px;
  min-height: 34px; padding: 0 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.03);
  border: 1px solid var(--border);
  color: var(--text2); font-size: 12px;
}
.conn-dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--green);
  box-shadow: 0 0 0 3px rgba(34,197,94,.15);
}

#error-banner {
  display: none;
  background: var(--red-bg); border: 1px solid rgba(239,68,68,.25);
  color: var(--red); padding: 10px 20px; font-size: 13px; text-align: center;
}

/* LOADING */
#loading-overlay {
  position: fixed; inset: 0;
  background: var(--bg); z-index: 999;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 16px;
}
.spinner {
  width: 36px; height: 36px;
  border: 3px solid var(--bg3);
  border-top-color: var(--accent);
  border-radius: 50%;
  animation: spin .7s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }
#loading-msg { font-size: 13px; color: var(--text3); }

/* ============================================================
   CONTENT & PAGES
============================================================ */
.content { padding: 24px var(--pad) 32px; flex: 1; min-width: 0; }
.page        { display: none; min-width: 0; }
.page.active { display: block; }

/* ============================================================
   BOTONES
============================================================ */
.btn {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 14px;
  border-radius: var(--radius-sm);
  font-size: 13px; font-weight: 500;
  cursor: pointer;
  border: 1px solid var(--border2);
  background: var(--bg3); color: var(--text);
  transition: background .14s, border-color .14s, box-shadow .14s;
  white-space: nowrap;
}
.btn:hover    { background: var(--bg4); }
.btn-primary  {
  background: var(--accent); border-color: var(--accent); color: #fff;
  box-shadow: 0 6px 18px rgba(79,142,247,.22);
}
.btn-primary:hover { background: var(--accent2); box-shadow: 0 8px 22px rgba(79,142,247,.30); }
.btn-green    { background: var(--green-bg);  border-color: rgba(34,197,94,.28);  color: var(--green);  font-weight: 600; }
.btn-red      { background: var(--red-bg);    border-color: rgba(239,68,68,.28);  color: var(--red);    font-weight: 600; }
.btn.btn-xs   { padding: 5px 10px; font-size: 11.5px; }

/* ============================================================
   FORMULARIOS
============================================================ */
label {
  font-size: 11px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .08em;
  color: var(--text3);
}
input, select, textarea {
  background: rgba(255,255,255,.03);
  border: 1px solid var(--border2);
  border-radius: var(--radius-sm);
  color: var(--text);
  padding: 9px 12px; font-size: 13px;
  outline: none; width: 100%;
  font-family: inherit;
  transition: border-color .15s, box-shadow .15s;
}
input:focus, select:focus, textarea:focus {
  border-color: rgba(79,142,247,.50);
  box-shadow: 0 0 0 4px rgba(79,142,247,.12);
}
input[readonly] { opacity: .75; cursor: default; }
select option   { background: var(--bg3); }
textarea        { resize: vertical; min-height: 70px; }

.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.form-group { display: flex; flex-direction: column; gap: 6px; }
.form-group.full { grid-column: 1 / -1; }

.search-box {
  display: flex; align-items: center; gap: 8px;
  background: rgba(255,255,255,.03);
  border: 1px solid var(--border2);
  border-radius: var(--radius-sm);
  padding: 7px 12px;
}
.search-box input { background: none; border: none; padding: 0; box-shadow: none; width: auto; flex: 1; }
.search-box input:focus { box-shadow: none; }

/* ============================================================
   CARDS
============================================================ */
.card {
  background: linear-gradient(180deg, rgba(20,30,52,.96), rgba(15,22,42,.92));
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 20px;
  box-shadow: 0 10px 28px rgba(0,0,0,.16);
  position: relative; overflow: hidden;
}
.card::before {
  content: '';
  position: absolute; left: 20px; right: 20px; top: 0;
  height: 1px;
  background: linear-gradient(90deg, rgba(79,142,247,.35), rgba(255,255,255,0));
}
.card-header {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; flex-wrap: wrap;
  margin-bottom: 16px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--border);
}
.card-title    { font-size: 14px; font-weight: 700; color: var(--text); }
.card-subtitle { font-size: 12px; color: var(--text3); margin-top: 3px; }

/* ============================================================
   STATS / KPIs
============================================================ */
.stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 14px;
  margin-bottom: 20px;
}
.stat-card {
  background: linear-gradient(180deg, rgba(20,30,52,.96), rgba(15,22,42,.92));
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 20px 58px 20px 22px;
  position: relative; overflow: hidden;
  box-shadow: 0 10px 26px rgba(0,0,0,.16);
}
.stat-card::before {
  content: ''; position: absolute;
  top: 0; left: 0; right: 0; height: 2px;
}
.stat-card.blue::before   { background: var(--accent); }
.stat-card.green::before  { background: var(--green); }
.stat-card.amber::before  { background: var(--amber); }
.stat-card.purple::before { background: var(--purple); }
.stat-card.teal::before   { background: var(--teal); }
.stat-card.red::before    { background: var(--red); }
.stat-label  { font-size: 10.5px; color: var(--text3); text-transform: uppercase; letter-spacing: .09em; margin-bottom: 10px; }
.stat-value  { font-size: 26px; font-weight: 800; margin-bottom: 4px; letter-spacing: -.02em; }
.stat-change { font-size: 12px; color: var(--text2); }
.stat-change.up { color: var(--green); }
.stat-icon   {
  position: absolute;
  top: 13px;
  right: 13px;
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(148,163,184,.14);
  border-radius: 12px;
  background: rgba(255,255,255,.055);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
  font-size: 18px;
  line-height: 1;
  opacity: .95;
}

.kpi-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; margin-bottom: 18px; }
.kpi-tile  { background: var(--bg2); border: 1px solid var(--border); border-radius: 12px; padding: 14px 16px; min-height: 86px; }
.kpi-tile .label { font-size: 10.5px; color: var(--text3); text-transform: uppercase; letter-spacing: .08em; margin-bottom: 8px; }
.kpi-tile .value { font-size: 22px; font-weight: 700; }
.kpi-tile .hint  { font-size: 12px; color: var(--text2); margin-top: 4px; }

/* ============================================================
   TABLAS
============================================================ */
.table-wrap {
  overflow-x: auto;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: rgba(255,255,255,.01);
}
table  { width: 100%; border-collapse: collapse; }
thead  { }
th {
  text-align: left;
  font-size: 10.5px; color: var(--text3);
  text-transform: uppercase; letter-spacing: .09em;
  padding: 12px 14px;
  background: rgba(8,12,22,.60);
  border-bottom: 1px solid var(--border);
  position: sticky; top: 0; z-index: 2;
  backdrop-filter: blur(8px);
}
td {
  padding: 12px 14px;
  border-bottom: 1px solid var(--border);
  font-size: 13px; color: var(--text2);
  vertical-align: middle;
}
tr:last-child td { border-bottom: none; }
tbody tr:hover td { background: rgba(79,142,247,.05); }
tbody tr:nth-child(even) td { background: rgba(255,255,255,.013); }
tbody tr:nth-child(even):hover td { background: rgba(79,142,247,.05); }
td.text-main { color: var(--text); font-weight: 600; }

.row-actions { display: flex; justify-content: flex-end; gap: 6px; flex-wrap: wrap; }
.cell-title  { display: flex; flex-direction: column; gap: 3px; }
.cell-title strong { color: var(--text); font-size: 13px; }
.cell-title small  { color: var(--text3); font-size: 11px; }

/* ============================================================
   BADGES
============================================================ */
.badge {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 3px 9px; border-radius: 999px;
  font-size: 11px; font-weight: 700; letter-spacing: .01em;
}
.badge-green  { background: var(--green-bg);  color: var(--green); }
.badge-red    { background: var(--red-bg);    color: var(--red); }
.badge-amber  { background: var(--amber-bg);  color: var(--amber); }
.badge-blue   { background: var(--accent-bg); color: var(--accent); }
.badge-purple { background: var(--purple-bg); color: var(--purple); }
.badge-gray   { background: var(--bg4);       color: var(--text2); }

/* ============================================================
   MODALES
============================================================ */
.modal-overlay {
  position: fixed; inset: 0;
  background: rgba(0,0,0,.65);
  z-index: 200;
  display: none; align-items: center; justify-content: center;
  backdrop-filter: blur(4px);
}
.modal-overlay.open { display: flex; }
.modal {
  background: linear-gradient(180deg, rgba(20,30,52,.98), rgba(12,18,36,.96));
  border: 1px solid var(--border2);
  border-radius: 20px; padding: 28px;
  width: 100%; max-width: 560px; max-height: 90vh; overflow-y: auto;
  box-shadow: 0 28px 70px rgba(0,0,0,.45);
}
.modal-header {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 22px; padding-bottom: 16px;
  border-bottom: 1px solid var(--border);
}
.modal-title { font-size: 16px; font-weight: 700; }
.modal-close { background: none; border: none; color: var(--text3); font-size: 20px; cursor: pointer; padding: 4px; border-radius: 6px; }
.modal-close:hover { color: var(--text); background: var(--bg3); }
.modal-footer {
  display: flex; justify-content: flex-end; gap: 8px;
  margin-top: 22px; padding-top: 18px;
  border-top: 1px solid var(--border);
}

/* ============================================================
   TOAST
============================================================ */
#toast {
  position: fixed; bottom: 24px; right: 24px;
  background: var(--bg3); border: 1px solid var(--border2);
  border-radius: var(--radius);
  padding: 12px 16px;
  font-size: 13px; color: var(--text);
  z-index: 300; opacity: 0;
  transition: opacity .3s;
  display: flex; align-items: center; gap: 10px;
  max-width: 300px;
  box-shadow: 0 16px 36px rgba(0,0,0,.30);
}
#toast.show { opacity: 1; }



/* ============================================================
   ERROR MODAL GLOBAL
============================================================ */
.error-modal-backdrop {
  position: fixed;
  inset: 0;
  display: none !important;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(2, 6, 23, .62);
  backdrop-filter: blur(5px);
  z-index: 2147483647;
}
.error-modal-backdrop.show { display: flex !important; }
.error-modal-card {
  width: min(720px, 96vw);
  max-height: min(78vh, 720px);
  display: flex;
  flex-direction: column;
  background: var(--bg2);
  color: var(--text);
  border: 1px solid rgba(239,68,68,.32);
  border-radius: 18px;
  box-shadow: 0 28px 90px rgba(0,0,0,.45);
  overflow: hidden;
}
.error-modal-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  padding: 18px 20px 14px;
  border-bottom: 1px solid var(--border);
  background: linear-gradient(135deg, rgba(239,68,68,.12), rgba(239,68,68,.02));
}
.error-modal-title { font-size: 16px; font-weight: 800; color: var(--red); }
.error-modal-subtitle { margin-top: 4px; font-size: 12px; color: var(--text2); line-height: 1.45; }
.error-modal-close {
  width: 34px; height: 34px;
  display: grid; place-items: center;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--bg3);
  color: var(--text2);
  cursor: pointer;
}
.error-modal-close:hover { color: var(--text); border-color: rgba(239,68,68,.35); }
.error-modal-msg {
  margin: 0;
  padding: 18px 20px;
  white-space: pre-wrap;
  word-break: break-word;
  overflow: auto;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 12px;
  line-height: 1.55;
  color: var(--text);
  background: rgba(15,23,42,.16);
}
.error-modal-footer {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding: 14px 20px;
  border-top: 1px solid var(--border);
  background: var(--bg2);
}

/* ============================================================
   HEROES & PANELS
============================================================ */
.page-hero {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: 16px; margin-bottom: 20px; flex-wrap: wrap;
}
.hero-title     { font-size: 22px; font-weight: 800; letter-spacing: -.02em; margin-bottom: 6px; }
.hero-subtitle  { font-size: 13px; color: var(--text2); max-width: 720px; line-height: 1.5; }
.hero-actions   { display: flex; gap: 8px; flex-wrap: wrap; }
.hero-metrics   { display: flex; gap: 10px; flex-wrap: wrap; }
.hero-metric    {
  display: flex; align-items: center; gap: 8px;
  padding: 8px 12px; border-radius: 999px;
  background: var(--bg2); border: 1px solid var(--border);
  font-size: 12px; color: var(--text2);
}
.hero-metric strong { color: var(--text); }

.hero-panel {
  margin-bottom: 22px;
  padding: 24px 26px;
  border-radius: 22px;
  border: 1px solid rgba(96,165,250,.12);
  background: radial-gradient(circle at right top, rgba(14,165,233,.08), transparent 28%),
              linear-gradient(135deg, rgba(17,24,39,.94), rgba(12,18,36,.90));
  box-shadow: 0 16px 40px rgba(0,0,0,.24);
}

/* ============================================================
   GRIDS & LAYOUT HELPERS
============================================================ */
.grid-2 { display: grid; grid-template-columns: 1fr 1fr;         gap: 18px; margin-bottom: 18px; }
.grid-3 { display: grid; grid-template-columns: 1fr 1fr 1fr;     gap: 18px; margin-bottom: 18px; }
.stack  { display: grid; gap: 16px; }
.module-shell { display: grid; gap: 16px; }
.section-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.toolbar-group   { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.report-grid     { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.panel-soft      {
  background: linear-gradient(180deg, rgba(255,255,255,.025), rgba(255,255,255,.008));
  border: 1px solid var(--border); border-radius: 14px; padding: 18px;
}

/* ============================================================
   INSIGHT / FINANCIAL LISTS
============================================================ */
.insight-list { display: grid; gap: 10px; }
.insight-item {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; padding: 11px 0;
  border-bottom: 1px solid var(--border);
}
.insight-item:last-child  { border-bottom: none; padding-bottom: 0; }
.insight-item:first-child { padding-top: 0; }
.mini-bar { height: 5px; border-radius: 999px; background: var(--bg4); overflow: hidden; min-width: 80px; }
.mini-bar > span { display: block; height: 100%; border-radius: 999px; background: var(--accent); }
.fin-list { display: grid; gap: 10px; }
.fin-item {
  display: flex; justify-content: space-between; align-items: center;
  padding: 11px 14px;
  background: var(--bg3); border: 1px solid var(--border);
  border-radius: 10px;
}
.fin-item span:first-child { font-size: 13px; color: var(--text2); }
.fin-item strong { font-size: 14px; }

/* ============================================================
   DASHBOARD - CHART
============================================================ */
.chart-area { height: 120px; display: flex; align-items: flex-end; gap: 6px; padding: 0 4px; }
.chart-col { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 4px; }
.chart-bar-wrap  { flex: 1; display: flex; align-items: flex-end; width: 100%; }
.chart-bar-inner { width: 100%; border-radius: 4px 4px 0 0; transition: height .5s; cursor: pointer; }
.chart-bar-inner:hover { filter: brightness(1.3); }
.chart-label { font-size: 10px; color: var(--text3); }

/* ============================================================
   TIMELINE
============================================================ */
.timeline { position: relative; padding-left: 20px; }
.timeline::before { content: ''; position: absolute; left: 7px; top: 0; bottom: 0; width: 1px; background: var(--border); }
.timeline-item { position: relative; margin-bottom: 16px; }
.timeline-dot  { position: absolute; left: -16px; width: 10px; height: 10px; border-radius: 50%; background: var(--accent); top: 3px; }
.timeline-dot.green { background: var(--green); }
.timeline-dot.amber { background: var(--amber); }
.timeline-time { font-size: 11px; color: var(--text3); margin-bottom: 2px; }
.timeline-text { font-size: 13px; color: var(--text2); }

/* ============================================================
   TABS
============================================================ */
.tabs {
  display: flex; gap: 6px; flex-wrap: wrap;
  border-bottom: none; margin-bottom: 18px;
}
.tab {
  padding: 8px 14px; font-size: 13px; color: var(--text3);
  cursor: pointer;
  border: 1px solid var(--border); border-radius: 999px;
  background: rgba(255,255,255,.015);
  transition: all .15s;
}
.tab:hover { color: var(--text2); border-color: var(--border2); }
.tab.active {
  background: var(--accent-bg); border-color: rgba(79,142,247,.28);
  color: var(--accent);
}

/* ============================================================
   EMPTY STATE
============================================================ */
.empty-state {
  text-align: center; padding: 40px 20px;
  border: 1px dashed var(--border2);
  border-radius: 14px;
  background: rgba(255,255,255,.015);
}
.empty-icon { font-size: 36px; margin-bottom: 12px; opacity: .4; }
.empty-text { font-size: 14px; color: var(--text2); }
.empty-sub  { font-size: 12px; color: var(--text3); margin-top: 6px; }

/* ============================================================
   PROGRESS
============================================================ */
.progress-bar  { background: var(--bg4); border-radius: 4px; height: 6px; overflow: hidden; }
.progress-fill { height: 100%; border-radius: 4px; }

/* ============================================================
   NUEVA VENTA
============================================================ */
.pos-prod-card {
  background: var(--bg2); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 14px 10px;
  cursor: pointer; transition: all .12s; text-align: center;
  user-select: none;
}
.pos-prod-card:hover { border-color: var(--accent); background: var(--bg3); transform: translateY(-1px); }
.pos-prod-card.in-cart { border-color: var(--green); background: var(--green-bg); }
.pos-prod-emoji  { font-size: 28px; margin-bottom: 8px; }
.pos-prod-nombre { font-size: 12px; font-weight: 600; color: var(--text); margin-bottom: 4px; line-height: 1.3; }
.pos-prod-precio { font-size: 13px; font-weight: 700; color: var(--accent); margin-bottom: 4px; }
.pos-prod-stock  { font-size: 11px; color: var(--text3); }
.pos-prod-stock.low { color: var(--amber); }


.pos-qty-btn:hover { background: var(--bg4); }



/* Pagos container rows */


/* Confirmar venta button */

#btn-pos-confirmar:hover    { background: #16a34a; }
#btn-pos-confirmar:disabled { opacity: .6; cursor: not-allowed; }

/* Dropdowns del buscador */
#nv-cliente-dropdown,


/* ============================================================
   IMPORTAR — compacto 100%
============================================================ */
#page-importar.active {
  display: block;
}
#page-importar .page-hero {
  padding: 10px 12px;
  margin-bottom: 8px;
}
#page-importar .hero-title {
  font-size: 22px;
  line-height: 1.05;
}
#page-importar .hero-subtitle {
  font-size: 12px;
  margin-top: 3px;
}
.imp-wrap {
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  gap: 8px;
}
.imp-card-section,
.imp-stepper-card {
  margin-bottom: 0;
}
#page-importar .card,
.imp-card-section {
  padding: 12px 13px;
  border-radius: 16px;
}
#page-importar .card-header {
  margin-bottom: 9px;
  gap: 10px;
  align-items: center;
}
#page-importar .card-title {
  font-size: 14px;
  line-height: 1.2;
}
#page-importar .card-subtitle {
  font-size: 11.5px;
  line-height: 1.35;
  margin-top: 2px;
}
.imp-card-header-tight,
.imp-card-header-compact {
  margin-bottom: 6px !important;
}
.imp-file-input {
  display: none;
}
.imp-stepper {
  display: grid;
  grid-template-columns: repeat(5, minmax(0,1fr));
  gap: 6px;
  margin-top: 8px;
}
.imp-step-item {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  padding: 8px 9px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: rgba(255,255,255,.02);
}
.imp-step-bullet {
  width: 24px;
  height: 24px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--bg3);
  border: 1px solid var(--border2);
  color: var(--text2);
  font-size: 11px;
  font-weight: 800;
  flex: 0 0 auto;
}
.imp-step-copy {
  min-width: 0;
}
.imp-step-title {
  font-size: 11.5px;
  font-weight: 800;
  color: var(--text);
  line-height: 1.15;
}
.imp-step-hint {
  font-size: 10.5px;
  color: var(--text3);
  margin-top: 1px;
  line-height: 1.25;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.imp-step-item.is-active {
  border-color: rgba(79,142,247,.34);
  background: linear-gradient(180deg, rgba(79,142,247,.10), rgba(79,142,247,.04));
}
.imp-step-item.is-active .imp-step-bullet {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
  box-shadow: 0 6px 14px rgba(79,142,247,.20);
}
.imp-step-item.is-done .imp-step-bullet {
  background: var(--green-bg);
  border-color: rgba(34,197,94,.28);
  color: var(--green);
}
.imp-type-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 8px;
}
.imp-type-card {
  min-height: 94px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  text-align: left;
  padding: 12px 13px;
  white-space: normal;
  border-radius: 14px;
}
.imp-type-icon {
  font-size: 22px;
  margin-bottom: 6px;
}
.imp-type-title {
  font-size: 13.5px;
  font-weight: 800;
  color: var(--text);
  margin-bottom: 3px;
}
.imp-type-desc {
  font-size: 11.3px;
  color: var(--text3);
  line-height: 1.35;
}
.imp-header-actions {
  display: flex;
  align-items: center;
  gap: 7px;
  flex-wrap: wrap;
}
.imp-header-actions .btn,
.imp-actions-row .btn,
.imp-result-actions .btn {
  height: 34px;
  padding: 0 13px;
  font-size: 12px;
}
.imp-upload-card {
  padding-bottom: 12px;
}
.imp-upload-grid {
  display: grid;
  grid-template-columns: minmax(0,1.55fr) minmax(250px,.8fr);
  gap: 10px;
  align-items: start;
}
.imp-dropzone,
.imp-dropzone-compact {
  min-height: 132px;
  padding: 14px 14px;
  border: 2px dashed var(--border2);
  border-radius: 16px;
  text-align: center;
  cursor: pointer;
  transition: border-color .15s, background .15s, transform .15s;
  background: linear-gradient(180deg, rgba(79,142,247,.04), rgba(255,255,255,.015));
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.imp-dropzone:hover,
.imp-dropzone.is-dragover,
#imp-dropzone.drag-over {
  border-color: var(--accent);
  background: var(--accent-bg);
  transform: translateY(-1px);
}
.imp-dropzone-icon {
  font-size: 28px;
  margin-bottom: 6px;
}
.imp-file-label,
.imp-file-name {
  font-size: 12px;
  line-height: 1.25;
}
.imp-file-label {
  color: var(--text2);
  margin-bottom: 4px;
}
.imp-file-name {
  font-weight: 800;
  color: var(--text);
  margin-bottom: 3px;
}
.imp-file-meta {
  font-size: 11px;
  color: var(--text3);
}
.imp-side-panel {
  display: grid;
  gap: 8px;
}
.imp-side-card,
.imp-side-card-compact {
  padding: 10px 11px;
  border-radius: 13px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.03);
}
.imp-side-title {
  font-size: 12px;
  font-weight: 800;
  color: var(--text);
  margin-bottom: 6px;
}
.imp-side-list {
  display: grid;
  gap: 6px;
  font-size: 11.5px;
  color: var(--text2);
  line-height: 1.42;
}
.imp-inline-note,
.imp-inline-note-tight {
  padding: 7px 9px;
  border-radius: 11px;
  background: rgba(255,255,255,.03);
  border: 1px solid var(--border);
  font-size: 11.3px;
  color: var(--text2);
  line-height: 1.35;
}
.imp-note-mt {
  margin-top: 8px;
}
.imp-note-mb {
  margin-bottom: 8px;
}
.imp-summary-strip {
  display: grid;
  gap: 7px;
  margin-bottom: 7px;
}
.imp-summary-strip-3 {
  grid-template-columns: repeat(3, minmax(0,1fr));
}
.imp-summary-mini {
  padding: 8px 10px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: rgba(255,255,255,.03);
}
.imp-summary-mini span {
  display: block;
  font-size: 10.8px;
  color: var(--text3);
  margin-bottom: 3px;
}
.imp-summary-mini strong {
  font-size: 13px;
  color: var(--text);
}
.imp-table-compact {
  max-height: 292px;
  overflow: auto;
}
.imp-table-compact table th,
.imp-table-compact table td,
.imp-preview-wrap table th,
.imp-preview-wrap table td,
.imp-analysis-preview .table-wrap table td,
.imp-analysis-preview .table-wrap table th {
  padding-top: 7px;
  padding-bottom: 7px;
  font-size: 11.5px;
  line-height: 1.35;
}
.imp-map-select {
  width: 100%;
  height: 34px;
  font-size: 12px;
}
.imp-status-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 78px;
  padding: 4px 9px;
  border-radius: 999px;
  font-size: 10.5px;
  font-weight: 800;
  border: 1px solid var(--border2);
}
.imp-status-pill.ok { background: var(--green-bg); color: var(--green); border-color: rgba(34,197,94,.22); }
.imp-status-pill.warn { background: var(--amber-bg); color: var(--amber); border-color: rgba(245,158,11,.22); }
.imp-status-pill.idle { background: var(--bg3); color: var(--text2); }
.imp-actions-row,
.imp-result-actions {
  margin-top: 9px;
  display: flex;
  justify-content: flex-end;
  gap: 7px;
  flex-wrap: wrap;
}
.imp-actions-row-upload {
  justify-content: flex-start;
  margin-top: 8px;
}
.imp-preview-grid {
  display: grid;
  grid-template-columns: minmax(0,1.45fr) minmax(275px,.75fr);
  gap: 10px;
  align-items: start;
}
.imp-section-head,
.imp-section-head-compact {
  margin-bottom: 6px;
}
.imp-preview-wrap {
  max-height: 260px;
  overflow: auto;
}
.imp-preview-wrap table {
  table-layout: auto;
  min-width: 100%;
}
.imp-preview-wrap table th,
.imp-preview-wrap table td {
  white-space: normal;
  vertical-align: top;
}
.imp-analysis-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 7px;
  margin-top: 0;
}
.mini-stat {
  padding: 8px 9px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: rgba(255,255,255,.03);
}
.mini-stat-label {
  font-size: 10.8px;
  color: var(--text3);
  margin-bottom: 3px;
}
.mini-stat-value {
  font-size: 17px;
  font-weight: 800;
  color: var(--text);
  line-height: 1.1;
}
.mini-stat-value.is-error {
  color: var(--red);
}
.imp-callouts {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
  margin-top: 8px;
}
.imp-callout,
.imp-callout-compact {
  margin-top: 8px;
  padding: 9px 10px;
  border-radius: 12px;
  border: 1px solid var(--border);
  background: var(--bg3);
  font-size: 11.5px;
  color: var(--text2);
  line-height: 1.45;
}
.imp-callout-title {
  font-size: 11.5px;
  font-weight: 800;
  margin-bottom: 5px;
  color: var(--text);
}
.imp-callout-warn { background: var(--amber-bg); border-color: rgba(245,158,11,.22); }
.imp-callout-warn .imp-callout-title { color: var(--amber); }
.imp-callout-error { background: var(--red-bg); border-color: rgba(239,68,68,.22); }
.imp-callout-error .imp-callout-title { color: var(--red); }
.imp-callout-more { margin-top: 5px; color: var(--text3); }
.imp-analysis-preview,
.imp-analisis-resumen {
  margin-top: 9px;
}
.imp-result-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 8px;
}
.imp-result-stat {
  padding: 10px 11px;
  border-radius: 13px;
  border: 1px solid var(--border);
}
.imp-result-stat.success { background: var(--green-bg); border-color: rgba(34,197,94,.22); }
.imp-result-stat.info { background: var(--accent-bg); border-color: rgba(79,142,247,.22); }
.imp-result-stat.neutral { background: var(--bg3); }
.imp-result-label {
  font-size: 10.5px;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--text3);
  margin-bottom: 4px;
}
.imp-result-value {
  font-size: 24px;
  font-weight: 800;
  color: var(--text);
  line-height: 1.05;
}
.imp-result-file {
  font-size: 12px;
  font-weight: 700;
  color: var(--text);
  line-height: 1.35;
  word-break: break-word;
}
.imp-error-raw {
  display: block;
  margin-top: 6px;
  font-family: monospace;
  white-space: pre-wrap;
  word-break: break-all;
}
html[data-theme="light"] .imp-dropzone {
  background: linear-gradient(180deg, rgba(37,99,235,.05), rgba(255,255,255,.85));
}
html[data-theme="light"] .imp-step-item,
html[data-theme="light"] .imp-inline-note {
  background: #fff;
}
html[data-theme="light"] .imp-status-pill.idle {
  background: var(--bg3);
}
@media (max-width: 980px) {
  .imp-stepper { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 820px) {
  .imp-type-grid,
  .imp-analysis-grid,
  .imp-result-grid,
  .imp-summary-strip-3 { grid-template-columns: 1fr 1fr; }
  .imp-upload-grid,
  .imp-preview-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .imp-wrap { max-width: 100%; }
  .imp-stepper,
  .imp-type-grid,
  .imp-analysis-grid,
  .imp-result-grid,
  .imp-summary-strip-3 { grid-template-columns: 1fr; }
  .imp-header-actions,
  .imp-actions-row,
  .imp-result-actions { width: 100%; justify-content: flex-start; }
  .imp-dropzone-compact { min-height: 126px; padding: 14px 12px; }
}

/* ── Tablas estandarizadas y redimensionables ───────────────────── */
.table-shell-card,
#page-ventas .card,
#page-compras .card,
#page-inventario .card {
  min-width: 0;
}

.table-toolbar-stack {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 10px;
}

#page-ventas > .card,
#page-compras > .card,
#page-inventario > .card,
#page-inventario #inv-lista > .card,
#page-inventario #inv-ubic > .card {
  overflow: hidden;
}

#page-ventas .table-resizable-wrap,
#page-compras .table-resizable-wrap,
#page-inventario .table-resizable-wrap {
  overflow-x: auto;
  overflow-y: hidden;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

#page-ventas .table-resizable,
#page-compras .table-resizable,
#page-inventario .table-resizable {
  table-layout: fixed;
  width: max-content;
  min-width: 100%;
  max-width: none;
}

#page-ventas .table-resizable thead th,
#page-compras .table-resizable thead th,
#page-inventario .table-resizable thead th {
  position: sticky;
  top: 0;
  z-index: 3;
  background: rgba(8,12,22,.90);
  backdrop-filter: blur(8px);
}

#page-ventas .table-resizable th,
#page-compras .table-resizable th,
#page-inventario .table-resizable th {
  position: relative;
  overflow: visible;
}

#page-ventas .table-resizable th .th-label,
#page-compras .table-resizable th .th-label,
#page-inventario .table-resizable th .th-label {
  display: block;
  padding-right: 18px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 10px;
  letter-spacing: .06em;
}

#page-ventas .table-resizable td,
#page-compras .table-resizable td,
#page-inventario .table-resizable td {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 12px;
  padding: 10px 12px;
}

#page-inventario .table-resizable td:nth-child(2),
#page-compras .table-resizable td:nth-child(3) {
  white-space: normal;
}

#page-inventario #inv-kpi-mini,
#page-inventario #inv-ubic-resumen,
#page-inventario #inv-history-summary {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin: 0 0 12px;
}

#page-inventario .tabs {
  margin-bottom: 14px;
}

#page-inventario .tab {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
}

#page-inventario .card-header .search-box,
#page-compras .card-header .search-box,
#page-ventas .card-header .search-box {
  min-height: 40px;
}

.col-resize-handle {
  position: absolute;
  top: 0;
  right: -7px;
  width: 14px;
  height: 100%;
  cursor: col-resize;
  user-select: none;
  z-index: 10;
  touch-action: none;
}
.col-resize-handle::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 14px;
  transform: translateX(-50%);
}
.col-resize-handle::after {
  content: "";
  position: absolute;
  top: 18%;
  bottom: 18%;
  left: 6px;
  width: 2px;
  border-radius: 2px;
  background: rgba(143,190,255,.78);
  box-shadow: 0 0 0 1px rgba(143,190,255,.18);
  transition: background .15s, box-shadow .15s, opacity .15s;
  opacity: .95;
}
#page-ventas .table-resizable th:hover .col-resize-handle::after,
#page-ventas .table-resizable th.is-resizing .col-resize-handle::after,
#page-compras .table-resizable th:hover .col-resize-handle::after,
#page-compras .table-resizable th.is-resizing .col-resize-handle::after,
#page-inventario .table-resizable th:hover .col-resize-handle::after,
#page-inventario .table-resizable th.is-resizing .col-resize-handle::after {
  background: rgba(190,220,255,.98);
  box-shadow: 0 0 0 1px rgba(160,210,255,.40), 0 0 10px rgba(120,180,255,.28);
}
#page-ventas .table-resizable th.is-resizing,
#page-compras .table-resizable th.is-resizing,
#page-inventario .table-resizable th.is-resizing {
  z-index: 7;
}
/* Evitar layout shift por scrollbar en el body */
html {
  scrollbar-gutter: stable;
}


/* ===== Ajuste fino tablas compactas + inventario toolbar (2026-04-20b) ===== */
#page-inventario .inv-toolbar{
  align-items: stretch;
  gap: 10px;
}
#page-inventario .toolbar-row{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  width:100%;
  min-width:0;
}
#page-inventario .toolbar-row-main{
  flex:0 0 auto;
}
#page-inventario .toolbar-row-actions{
  justify-content:flex-end;
}
#page-inventario .inv-search-box{
  width:min(340px,100%);
  min-width:260px;
  flex:1 1 320px;
}
#page-inventario .inv-filter-select{
  width:auto !important;
  min-width:170px;
  flex:0 0 170px;
}
#page-inventario .inv-filter-stock{
  min-width:210px;
  flex-basis:210px;
}

#page-ventas .table-resizable-wrap,
#page-compras .table-resizable-wrap,
#page-inventario .table-resizable-wrap{
  overflow-x:auto;
  overflow-y:hidden;
  max-width:100%;
  scrollbar-width:thin;
}

#page-ventas .table-resizable,
#page-compras .table-resizable,
#page-inventario .table-resizable{
  table-layout:fixed;
  width:max-content;
  min-width:100%;
}

#page-ventas .table-resizable thead th,
#page-compras .table-resizable thead th,
#page-inventario .table-resizable thead th{
  padding: 11px 10px;
}

#page-ventas .table-resizable th .th-label,
#page-compras .table-resizable th .th-label,
#page-inventario .table-resizable th .th-label{
  padding-right:16px;
  font-size:9.5px;
  letter-spacing:.05em;
  line-height:1.15;
  white-space:normal;
}

#page-ventas .table-resizable td,
#page-compras .table-resizable td,
#page-inventario .table-resizable td{
  font-size:11.5px;
  padding:8px 10px;
  line-height:1.25;
}

#page-ventas .table-resizable td .muted,
#page-compras .table-resizable td .muted,
#page-inventario .table-resizable td .muted{
  font-size:11px;
}

#page-ventas .table-resizable .badge,
#page-compras .table-resizable .badge,
#page-inventario .table-resizable .badge{
  font-size:10.5px;
  padding:4px 10px;
}

#page-ventas .table-resizable td:nth-child(2),
#page-compras .table-resizable td:nth-child(3),
#page-inventario .table-resizable td:nth-child(2){
  white-space:normal;
}

@media (max-width: 1200px){
  #page-inventario .inv-search-box{
    min-width:220px;
    flex-basis:260px;
  }
  #page-inventario .inv-filter-select{
    min-width:150px;
    flex-basis:150px;
  }
  #page-inventario .inv-filter-stock{
    min-width:180px;
    flex-basis:180px;
  }
}


#cfg-permisos-wrap{display:grid;gap:14px}
.perm-role-card{border:1px solid var(--border);border-radius:18px;padding:16px;background:linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,.01));}
.perm-role-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--border)}
.perm-role-title{font-weight:800;font-size:18px;color:var(--text1)}
.perm-role-sub{font-size:12px;color:var(--text3);max-width:720px}
.perm-group{padding:10px 0;border-bottom:1px dashed var(--border)}
.perm-group:last-child{border-bottom:none;padding-bottom:0}
.perm-group-title{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--text2);margin-bottom:10px}
.perm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px 12px}
.perm-check{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:var(--text2);padding:8px 10px;border:1px solid var(--border);border-radius:12px;background:rgba(255,255,255,.02)}
.perm-check input{margin-top:2px}
.perm-check.is-disabled{opacity:.8}

/* ── Inventario chips de filtro ──────────────────────────── */
.inv-chip {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  border: 1px solid var(--border2);
  color: var(--text2);
  background: var(--bg3);
  transition: background .15s, color .15s, border-color .15s;
  white-space: nowrap;
  user-select: none;
}
.inv-chip:hover { background: var(--bg4, var(--bg2)); color: var(--text); }
.inv-chip.inv-chip-active {
  background: var(--accent);
  color: #fff;
  border-color: var(--accent);
}

/* ── Inventario toolbar compacto ─────────────────────────── */
.inv-toolbar-compact {
  padding: 10px 14px;
  border-bottom: 1px solid var(--border);
}
.inv-toolbar-row {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.inv-search-compact {
  flex: 1;
  min-width: 180px;
  max-width: 280px;
}
.inv-search-compact input {
  font-size: 13px;
}
.inv-select-compact {
  font-size: 12px;
  padding: 6px 8px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border2);
  background: var(--bg3);
  color: var(--text2);
  height: 34px;
  min-width: 110px;
  max-width: 160px;
}
.inv-chips-row {
  display: flex;
  gap: 5px;
  align-items: center;
  flex-wrap: wrap;
  flex: 1;
}
.inv-chips-row .inv-chip {
  padding: 3px 9px;
  font-size: 11.5px;
}
.inv-toolbar-actions {
  display: flex;
  gap: 5px;
  flex-shrink: 0;
}
.inv-toolbar-actions .btn {
  padding: 6px 12px;
  font-size: 12px;
  white-space: nowrap;
}

/* ── Paginación universal ─────────────────────────────────── */
.pag-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 14px;
  border-top: 1px solid var(--border);
  flex-wrap: wrap;
  gap: 8px;
}
.pag-info {
  font-size: 12px;
  color: var(--text3);
  white-space: nowrap;
}
.pag-controls {
  display: flex;
  align-items: center;
  gap: 3px;
  flex-wrap: wrap;
}
.pag-btn {
  min-width: 32px;
  height: 32px;
  padding: 0 8px;
  border: 1px solid var(--border2);
  border-radius: 6px;
  background: var(--bg3);
  color: var(--text2);
  font-size: 13px;
  cursor: pointer;
  transition: background .12s, color .12s;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.pag-btn:hover:not(:disabled) { background: var(--bg4, var(--bg2)); color: var(--text); }
.pag-btn:disabled { opacity: .35; cursor: default; }
.pag-btn.pag-active { background: var(--accent); color: #fff; border-color: var(--accent); font-weight: 700; }
.pag-btn.pag-nav { font-size: 11px; }
.pag-ellipsis { font-size: 13px; color: var(--text3); padding: 0 4px; line-height: 32px; }
.pag-per-page {
  height: 32px;
  padding: 0 6px;
  border-radius: 6px;
  border: 1px solid var(--border2);
  background: var(--bg3);
  color: var(--text2);
  font-size: 12px;
  cursor: pointer;
  margin-left: 6px;
}

/* ── Reportes ────────────────────────────────────────────── */
.rep-header {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 12px 16px;
  margin-bottom: 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.rep-period-bar {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.rep-fp { font-size: 12px !important; padding: 5px 10px !important; }
.rep-fp-active {
  background: var(--accent-bg) !important;
  color: var(--accent) !important;
  border-color: rgba(79,142,247,.3) !important;
}
.fin-list { display: flex; flex-direction: column; gap: 0; }
.fin-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 0;
  border-bottom: 1px solid var(--border);
  font-size: 13px;
  gap: 12px;
}
.fin-item:last-child { border-bottom: none; }
.fin-item > span { color: var(--text2); min-width: 0; }
.fin-item > strong { flex-shrink: 0; }

/* ============================================================
   PASADA VISUAL GENERAL — 2026-04-26b
   Correcciones de alineación, paddings y módulos corridos
============================================================ */
:root {
  --muted: var(--text3);
  --text1: var(--text);
  --border1: var(--border);
}

html, body { width: 100%; max-width: 100%; overflow-x: hidden; }
#main, .content, .page, .card, .table-shell-card { min-width: 0; }
.content { width: 100%; max-width: 100%; }
.text-muted { color: var(--text3); }

/* Espaciado consistente entre módulos */
.page > .card,
.page > .stats-grid,
.page > .kpi-strip,
.page > .grid-2,
.page > .grid-3,
.page > .module-shell,
.page > .hero-panel,
.page > .report-grid { margin-bottom: 16px; }
.page > *:last-child { margin-bottom: 0; }

/* Headers y toolbars: evitan elementos corridos fuera de caja */
.card-header,
.section-toolbar,
.toolbar-row,
.toolbar-group,
.hero-metrics,
.hero-actions {
  min-width: 0;
}
.toolbar-row,
.toolbar-group {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.card-header > *,
.section-toolbar > *,
.toolbar-row > *,
.toolbar-group > * { min-width: 0; }
.card-header .search-box,
.section-toolbar .search-box,
.toolbar-row .search-box { flex: 1 1 240px; max-width: 100%; }
.card-header select,
.section-toolbar select,
.toolbar-row select { max-width: 100%; }

/* Tablas: más prolijas, sin empujar el layout general */
.table-wrap {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-x: auto;
  overflow-y: hidden;
}
.table-wrap table { min-width: 100%; }
th, td { overflow-wrap: anywhere; }
.row-actions { min-width: max-content; }

/* Cards internas demasiado apretadas */
.panel-soft,
.crm-panel-card,
.crm-auto-card { min-width: 0; }
.crm-panel-card .card-header,
.crm-auto-card .card-header { padding-bottom: 10px; margin-bottom: 12px; }

/* Inventario: la barra de filtros queda dentro de la card */
#page-inventario .inv-toolbar-compact {
  margin: -20px -20px 14px;
  padding: 12px 16px;
  background: rgba(255,255,255,.018);
}
#page-inventario .inv-toolbar-row { width: 100%; min-width: 0; }
#page-inventario .inv-search-compact { flex: 1 1 240px; max-width: none; }
#page-inventario .inv-select-compact { flex: 0 1 150px; }
#page-inventario .inv-chips-row { flex: 2 1 360px; min-width: 220px; }
#page-inventario .inv-toolbar-actions { margin-left: auto; }
#page-inventario #inv-kpi-mini { padding: 0 0 2px; }

/* Caja / Gastos: filtros más balanceados */
#page-caja .grid-2,
#page-gastos .grid-2 { align-items: start; }
#page-caja .toolbar-group,
#page-gastos .toolbar-group { width: 100%; }
#page-caja .toolbar-group > div,
#page-gastos .toolbar-group > div { min-width: min(100%, 170px); }

/* Reportes: barra de fechas sin desbordes */
#page-reportes .card > div[style*="display:flex"] { min-width: 0; }
#page-reportes .card input[type="date"] { flex: 0 1 130px; }

/* Topbar: evita que la derecha empuje el título */
.topbar-left { flex: 1 1 auto; overflow: hidden; }
.topbar-right { flex: 0 0 auto; min-width: 0; }

@media (max-width: 1280px) {
  :root { --pad: 22px; }
  .card { padding: 18px; }
  .stat-card { padding: 18px; }
  .stats-grid { grid-template-columns: repeat(auto-fit, minmax(155px, 1fr)); }
}

@media (max-width: 980px) {
  .content { padding-top: 18px; }
  .topbar { gap: 12px; }
  .topbar-right { flex-wrap: wrap; justify-content: flex-end; }
  #page-inventario .inv-toolbar-actions { margin-left: 0; }
  #page-inventario .inv-chips-row { flex-basis: 100%; }
  #page-nueva-venta > div:first-child #btn-pos-confirmar { width: 100%; margin-left: 0; }
}

@media (max-width: 760px) {
  :root { --pad: 12px; --topbar: 64px; }
  .content { padding: 14px var(--pad) 24px; }
  .card, .stat-card { border-radius: 14px; padding: 14px; }
  .card-header { margin-bottom: 12px; padding-bottom: 12px; }
  .hero-metric { width: 100%; justify-content: flex-start; }
  .stats-grid { grid-template-columns: 1fr; gap: 10px; }
  .topbar-status-pill { display: none; }
  .table-wrap { border-radius: 12px; }
  th, td { padding: 9px 10px; }
}

/* ============================================================
   DASHBOARD — visual compacta 100% zoom 20260607
   Objetivo: menos altura, mejor lectura y menos scroll sin agregar bloques.
============================================================ */
#page-dashboard {
  --dash-gap: 8px;
  --dash-card-bg: linear-gradient(180deg, rgba(19,29,50,.98), rgba(13,20,37,.96));
  --dash-soft-bg: rgba(255,255,255,.035);
  --dash-soft-border: rgba(148,163,184,.12);
}

#page-dashboard .stats-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: var(--dash-gap);
  margin-bottom: var(--dash-gap);
}

#page-dashboard .stat-card {
  min-height: 82px;
  padding: 11px 48px 10px 14px;
  border-radius: 13px;
  background: var(--dash-card-bg);
  border-color: var(--dash-soft-border);
  box-shadow: 0 9px 20px rgba(0,0,0,.13);
}

#page-dashboard .stat-card::before { height: 2px; opacity:.9; }
#page-dashboard .stat-card::after {
  content:'';
  position:absolute;
  inset:0;
  pointer-events:none;
  background: radial-gradient(circle at 92% 18%, rgba(255,255,255,.05), transparent 27%);
}

#page-dashboard .stat-label {
  max-width:100%;
  margin-bottom:7px;
  overflow:hidden;
  color:var(--text3);
  font-size:9.5px;
  line-height:1.1;
  letter-spacing:.11em;
  text-overflow:ellipsis;
  white-space:nowrap;
}

#page-dashboard .stat-value {
  max-width:100%;
  margin-bottom:5px;
  overflow:hidden;
  color:var(--text);
  font-size:clamp(19px, 1.45vw, 24px);
  line-height:.98;
  letter-spacing:-.05em;
  text-overflow:ellipsis;
  white-space:nowrap;
}

#page-dashboard .stat-change {
  max-width:100%;
  overflow:hidden;
  font-size:10.5px;
  line-height:1.15;
  text-overflow:ellipsis;
  white-space:nowrap;
}

#page-dashboard .stats-grid .stat-card .stat-icon {
  top: 12px !important;
  right: 12px !important;
  width: 30px !important;
  height: 30px !important;
  font-size: 16px !important;
  border-radius: 10px !important;
}

#page-dashboard .grid-2 {
  gap: var(--dash-gap);
  margin-bottom: var(--dash-gap);
}

#page-dashboard .dashboard-main-grid { grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr); }
#page-dashboard .dashboard-secondary-grid { grid-template-columns:minmax(0,1.03fr) minmax(0,.97fr) minmax(0,.97fr); }

#page-dashboard .card {
  min-width:0;
  padding:11px 13px 13px;
  border-radius:13px;
  background:var(--dash-card-bg);
  border-color:var(--dash-soft-border);
  box-shadow:0 9px 20px rgba(0,0,0,.13);
}

#page-dashboard .card::before {
  left:13px;
  right:13px;
  background:linear-gradient(90deg, rgba(79,142,247,.25), rgba(255,255,255,0));
}

#page-dashboard .card-header {
  min-height:30px;
  gap:8px;
  margin-bottom:8px;
  padding-bottom:7px;
}

#page-dashboard .card-kicker {
  margin-bottom:1px;
  color:var(--accent);
  font-size:9px;
  font-weight:800;
  letter-spacing:.12em;
}

#page-dashboard .card-title {
  font-size:12.8px;
  line-height:1.15;
  letter-spacing:-.01em;
}

#page-dashboard .card-header .btn {
  min-height:27px;
  padding:4px 8px;
  border-radius:9px;
  font-size:10.8px;
}

#page-dashboard .chart-area {
  height:108px;
  display:flex;
  align-items:stretch;
  gap:clamp(5px, .8vw, 9px);
  overflow:hidden;
  padding:3px 0 0;
}

#page-dashboard .chart-area-compact { height:84px; }

#page-dashboard .chart-col {
  flex:1 1 0;
  min-width:0;
  height:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-end;
  gap:3px;
}

#page-dashboard .chart-value {
  width:100%;
  min-height:14px;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  overflow:hidden;
  color:#b9d8ff;
  font-size:8.8px;
  font-weight:750;
  line-height:1;
  letter-spacing:-.4px;
  text-align:center;
  text-overflow:ellipsis;
  white-space:nowrap;
}

#page-dashboard .chart-bar-wrap {
  width:clamp(21px, 54%, 42px);
  max-width:42px;
  min-height:48px;
  display:flex;
  align-items:flex-end;
  padding:2px;
  border:1px solid rgba(255,255,255,.075);
  border-radius:8px;
  background:linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.025));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}

#page-dashboard .chart-area-compact .chart-bar-wrap {
  width:clamp(20px, 54%, 39px);
  max-width:39px;
  min-height:38px;
}

#page-dashboard .chart-bar-inner {
  width:100%;
  min-height:4px;
  border-radius:5px 5px 3px 3px;
  background:linear-gradient(180deg, #5f99ff 0%, rgba(95,153,255,.62) 100%);
  box-shadow:0 7px 12px rgba(15,86,210,.16);
  transition:height .35s ease, filter .18s ease;
}
#page-dashboard .chart-bar-inner:hover { filter:brightness(1.12); }
#page-dashboard .chart-col.is-current .chart-value,
#page-dashboard .chart-col.is-current .chart-label { color:var(--accent); font-weight:800; }
#page-dashboard .chart-col.is-current .chart-bar-wrap { border-color:rgba(34,197,94,.20); background:linear-gradient(180deg, rgba(34,197,94,.11), rgba(34,197,94,.035)); }
#page-dashboard .chart-col.is-current .chart-bar-inner { background:linear-gradient(180deg, #35d678 0%, rgba(53,214,120,.64) 100%); box-shadow:0 7px 12px rgba(34,197,94,.14); }

#page-dashboard .chart-label {
  width:100%;
  min-height:12px;
  overflow:hidden;
  color:var(--text3);
  font-size:9.5px;
  line-height:1.08;
  text-align:center;
  text-overflow:ellipsis;
  text-transform:capitalize;
  white-space:nowrap;
}

#page-dashboard .dash-bar-h-5 { height:5%; }
#page-dashboard .dash-bar-h-10 { height:10%; }
#page-dashboard .dash-bar-h-15 { height:15%; }
#page-dashboard .dash-bar-h-20 { height:20%; }
#page-dashboard .dash-bar-h-25 { height:25%; }
#page-dashboard .dash-bar-h-30 { height:30%; }
#page-dashboard .dash-bar-h-35 { height:35%; }
#page-dashboard .dash-bar-h-40 { height:40%; }
#page-dashboard .dash-bar-h-45 { height:45%; }
#page-dashboard .dash-bar-h-50 { height:50%; }
#page-dashboard .dash-bar-h-55 { height:55%; }
#page-dashboard .dash-bar-h-60 { height:60%; }
#page-dashboard .dash-bar-h-65 { height:65%; }
#page-dashboard .dash-bar-h-70 { height:70%; }
#page-dashboard .dash-bar-h-75 { height:75%; }
#page-dashboard .dash-bar-h-80 { height:80%; }
#page-dashboard .dash-bar-h-85 { height:85%; }
#page-dashboard .dash-bar-h-90 { height:90%; }
#page-dashboard .dash-bar-h-95 { height:95%; }
#page-dashboard .dash-bar-h-100 { height:100%; }

#page-dashboard .dashboard-monthly-card .badge {
  max-width:130px;
  overflow:hidden;
  padding:3px 8px;
  font-size:9.8px;
  text-overflow:ellipsis;
  white-space:nowrap;
}

#page-dashboard .table-wrap {
  max-width:100%;
  border-radius:11px;
  background:rgba(255,255,255,.018);
}
#page-dashboard #dash-recent-sales { min-width:0; }
#page-dashboard #dash-recent-sales th,
#page-dashboard #dash-recent-sales td {
  padding:6px 8px;
  font-size:11.2px;
  line-height:1.18;
  white-space:nowrap;
}
#page-dashboard #dash-recent-sales th {
  color:var(--text3);
  font-size:9px;
  letter-spacing:.08em;
}
#page-dashboard #dash-recent-sales th:first-child,
#page-dashboard #dash-recent-sales td:first-child { min-width:118px; white-space:normal; }
#page-dashboard #dash-recent-sales .badge { padding:2px 6px; font-size:9.6px; }
#page-dashboard .dash-sale-date { color:var(--text3); font-size:10.8px; }
#page-dashboard .dash-sale-total { text-align:right; font-weight:800; }

#page-dashboard .stack-list,
#page-dashboard .timeline-modern {
  max-height:118px;
  overflow:auto;
  padding-right:2px;
}

#page-dashboard .stack-item {
  gap:9px;
  padding:7px 8px;
  border:1px solid var(--dash-soft-border);
  border-radius:10px;
  background:var(--dash-soft-bg);
}
#page-dashboard .stack-item-title { font-size:11.5px; line-height:1.2; }
#page-dashboard .stack-item-sub { margin-top:2px; color:var(--text3); font-size:10.5px; }

#page-dashboard .timeline { padding-left:15px; }
#page-dashboard .timeline::before { left:5px; background:linear-gradient(180deg, rgba(79,142,247,.22), var(--border)); }
#page-dashboard .timeline-item { margin-bottom:8px; }
#page-dashboard .timeline-item:last-child { margin-bottom:0; }
#page-dashboard .timeline-dot {
  left:-14px;
  width:8px;
  height:8px;
  border:2px solid rgba(15,22,42,.95);
}
#page-dashboard .timeline-time {
  margin-bottom:2px;
  color:var(--accent);
  font-size:9.8px;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
}
#page-dashboard .timeline-text { color:var(--text2); font-size:11.4px; line-height:1.25; }
#page-dashboard .timeline-subtext { margin-top:2px; color:var(--text3); font-size:10.2px; }

#page-dashboard .empty-state {
  min-height:86px;
  display:grid;
  align-content:center;
  padding:14px 12px;
  border-radius:10px;
  background:rgba(255,255,255,.02);
}

html[data-theme="light"] #page-dashboard {
  --dash-card-bg:linear-gradient(180deg, #ffffff, #f6f8fc);
  --dash-soft-bg:rgba(37,99,235,.035);
  --dash-soft-border:rgba(15,23,42,.12);
}
html[data-theme="light"] #page-dashboard .stat-card,
html[data-theme="light"] #page-dashboard .card { box-shadow:0 8px 18px rgba(15,23,42,.065); }
html[data-theme="light"] #page-dashboard .stat-card::after { background:radial-gradient(circle at 92% 18%, rgba(37,99,235,.06), transparent 30%); }
html[data-theme="light"] #page-dashboard .chart-value { color:#1f4f95; }
html[data-theme="light"] #page-dashboard .timeline-dot { border-color:#fff; }
html[data-theme="light"] #page-dashboard .chart-bar-wrap,
html[data-theme="light"] #page-dashboard .chart-area-compact .chart-bar-wrap {
  border-color:rgba(15,23,42,.10);
  background:linear-gradient(180deg, rgba(226,233,245,.94), rgba(241,245,252,.96));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.72);
}

@media (max-width:1320px){
  #page-dashboard .stats-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
  #page-dashboard .dashboard-secondary-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:980px){
  #page-dashboard .stats-grid,
  #page-dashboard .dashboard-secondary-grid,
  #page-dashboard .dashboard-main-grid{grid-template-columns:1fr;}
}
@media (max-width:760px){
  #page-dashboard .stat-card{padding-right:44px;}
  #page-dashboard .chart-area{height:100px;gap:5px;}
  #page-dashboard .chart-area-compact{height:78px;}
  #page-dashboard .chart-bar-wrap,
  #page-dashboard .chart-area-compact .chart-bar-wrap{width:clamp(20px,70%,38px);}
  #page-dashboard .chart-value{font-size:8.4px;letter-spacing:-.5px;}
}

/* ============================================================
   NUEVA VENTA — visual compacta 100% zoom 20260607
   Mantiene IDs/lógica; compacta campos, botones y tarjetas.
============================================================ */
#page-nueva-venta .card::before { display:none; }
#page-nueva-venta .card { border-radius:13px; }
#page-nueva-venta label {
  font-size:9.8px;
  line-height:1.12;
  letter-spacing:.055em;
  color:var(--text3);
}
#page-nueva-venta input:not([type=hidden]):not([type=checkbox]),
#page-nueva-venta select,
#page-nueva-venta textarea,
#page-nueva-venta .btn { min-height:34px; }
#page-nueva-venta input:not([type=hidden]):not([type=checkbox]),
#page-nueva-venta select,
#page-nueva-venta textarea {
  width:100%;
  min-width:0;
  padding-top:5px;
  padding-bottom:5px;
  font-size:12.5px;
}
#page-nueva-venta input:not([type=hidden]):not([type=checkbox]),
#page-nueva-venta select { height:34px; }
#page-nueva-venta textarea { min-height:46px; resize:vertical; line-height:1.25; }
#page-nueva-venta .form-group { min-width:0; gap:3px; }
#page-nueva-venta .nv-hidden-js,
#page-nueva-venta .nv-hidden-static { display:none !important; }

#page-nueva-venta .nv-page-head-clean {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:9px;
  margin-bottom:8px;
}
#page-nueva-venta .nv-page-head-left {
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
}
#page-nueva-venta .nv-back-btn { padding:6px 10px; min-height:32px; font-size:12px; }
#page-nueva-venta .nv-numero-label { font-size:11px; color:var(--text3); white-space:nowrap; }
#page-nueva-venta #btn-pos-confirmar {
  min-width:190px;
  height:36px;
  padding:0 28px;
  border:0;
  border-radius:10px;
  background:#16a34a;
  color:#fff;
  font-size:13px;
  font-weight:800;
  white-space:nowrap;
  cursor:pointer;
  letter-spacing:.01em;
}
#page-nueva-venta #btn-pos-confirmar.nv-confirm-reserva { background:#d97706; }

#page-nueva-venta .nv-datos-card {
  margin-bottom:8px;
  padding:9px 12px;
  overflow:visible;
}
#page-nueva-venta .nv-section-title {
  margin-bottom:7px;
  font-size:13px;
  line-height:1.15;
}
#page-nueva-venta .nv-datos-grid-clean {
  display:grid;
  width:100%;
  grid-template-columns:
    minmax(300px, 1.35fr)
    minmax(250px, 1.05fr)
    minmax(160px, .72fr)
    minmax(132px, .55fr);
  gap:7px;
  align-items:start;
}
#page-nueva-venta .nv-notas-generales {
  margin-top:7px;
}
#page-nueva-venta .nv-notas-generales textarea {
  display:block;
  height:46px;
}
#page-nueva-venta .nv-client-picker {
  display:grid;
  grid-template-columns:minmax(0,1fr) 34px 34px;
  gap:5px;
  align-items:center;
}
#page-nueva-venta .nv-field-inner,
#page-nueva-venta .nv-search-inner,
#page-nueva-venta .nv-prod-search-group { position:relative; }
#page-nueva-venta .nv-input-with-icon { padding-right:27px; }
#page-nueva-venta .nv-input-icon {
  position:absolute;
  right:9px;
  top:50%;
  transform:translateY(-50%);
  color:var(--text3);
  font-size:10px;
  pointer-events:none;
}
#page-nueva-venta .nv-client-add-btn,
#page-nueva-venta .nv-client-info-btn {
  width:34px;
  height:34px;
  min-height:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0;
  border:1px solid var(--border2);
  border-radius:10px;
  background:var(--bg3);
  color:var(--text2);
  cursor:pointer;
  font-weight:800;
  flex-shrink:0;
}
#page-nueva-venta .nv-client-add-btn { font-size:15px; }
#page-nueva-venta .nv-client-info-btn { font-size:12px; }
#page-nueva-venta .nv-client-info-btn.nv-is-disabled { opacity:.4; pointer-events:none; }
#page-nueva-venta .nv-required-mark { color:var(--red); }
#page-nueva-venta .nv-selected-client {
  min-height:12px;
  margin-top:1px;
  color:var(--green);
  font-size:10.3px;
  line-height:1.2;
}

#page-nueva-venta .nv-cobro-simple {
  display:grid;
  grid-template-columns:minmax(0,1fr) 96px;
  gap:6px;
  align-items:center;
  width:100%;
}
#page-nueva-venta .nv-cobro-select,
#page-nueva-venta .nv-mixto-compact { grid-column:1 / 2; }
#page-nueva-venta .nv-mixto-btn {
  grid-column:2 / 3;
  width:96px;
  height:34px;
  min-height:34px;
  margin:0;
  padding:0 8px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--border2);
  border-radius:10px;
  background:var(--bg3);
  color:var(--text2);
  cursor:pointer;
  font-size:11px;
  font-weight:800;
  white-space:nowrap;
}
#page-nueva-venta .nv-mixto-btn.active { color:var(--accent); border-color:rgba(59,130,246,.34); background:rgba(59,130,246,.09); }
#page-nueva-venta .nv-cobro-hint,
#page-nueva-venta .nv-estado-help {
  min-height:11px;
  margin-top:2px;
  color:var(--text3);
  font-size:10.2px;
  line-height:1.2;
}
#page-nueva-venta .nv-cobro-hint { min-height:12px; }
#page-nueva-venta .nv-pagos-quick { display:none; }
#page-nueva-venta .nv-full-select { width:100%; }
#page-nueva-venta .nv-dropdown {
  position:absolute;
  top:calc(100% + 3px);
  left:0;
  right:0;
  z-index:50;
  max-height:178px;
  overflow-y:auto;
  border:1px solid var(--border2);
  border-radius:11px;
  background:var(--bg2);
  box-shadow:0 14px 34px rgba(0,0,0,.32);
}
#page-nueva-venta .nv-dropdown > div { transition:background .1s; }
#page-nueva-venta .nv-client-opt { padding:7px 11px; border-bottom:1px solid var(--border); cursor:pointer; font-size:12px; }
#page-nueva-venta .nv-client-opt:hover { background:var(--bg3); }
#page-nueva-venta .nv-client-opt-name { color:var(--text); font-weight:600; }
#page-nueva-venta .nv-client-opt-meta { margin-top:1px; color:var(--text3); font-size:10.4px; }
#page-nueva-venta .nv-dropdown-empty,
#page-nueva-venta .nv-dropdown-error { padding:8px 11px; font-size:11.3px; color:var(--text3); }
#page-nueva-venta .nv-dropdown-error { color:var(--red); }

#page-nueva-venta .nv-add-card-clean { margin-bottom:8px; padding:10px 12px; }
#page-nueva-venta .nv-add-grid-clean {
  display:grid;
  grid-template-columns:minmax(300px,1fr) 74px 116px 72px 96px 96px;
  gap:6px;
  align-items:end;
}
#page-nueva-venta .nv-prod-search-input { font-size:12.8px; }
#page-nueva-venta .nv-label-spacer { visibility:hidden; }
#page-nueva-venta .nv-full-input { width:100%; }
#page-nueva-venta .nv-add-btn {
  width:96px;
  height:34px;
  padding:0 9px;
  font-size:12px;
  white-space:nowrap;
}
#page-nueva-venta .nv-comment-grid-clean {
  display:grid;
  grid-template-columns:1fr;
  gap:6px;
  margin-top:6px;
}
#page-nueva-venta .nv-label-note { color:var(--text3); }
#page-nueva-venta .nv-prod-info {
  margin-top:7px;
  padding:7px 10px;
  display:flex;
  gap:12px;
  align-items:center;
  border:1px solid rgba(79,142,247,.18);
  border-radius:10px;
  background:linear-gradient(135deg, rgba(79,142,247,.06), rgba(79,142,247,.02));
  font-size:11px;
}
#page-nueva-venta .nv-prod-info-emoji { font-size:20px; }
#page-nueva-venta .nv-prod-info-main { flex:1; min-width:0; }
#page-nueva-venta .nv-prod-info-name { color:var(--text); font-weight:700; }
#page-nueva-venta .nv-prod-info-stock { margin-top:1px; font-size:10.3px; }
#page-nueva-venta .nv-prod-info-stock.ok { color:var(--green); }
#page-nueva-venta .nv-prod-info-stock.low { color:var(--amber); font-weight:700; }
#page-nueva-venta .nv-prod-info-stock.out { color:var(--red); font-weight:800; }
#page-nueva-venta .nv-prod-info-meta,
#page-nueva-venta .nv-prod-info-base { margin-top:1px; color:var(--text3); font-size:10.3px; }
#page-nueva-venta .nv-prod-info-recargo { color:var(--amber); }
#page-nueva-venta .nv-prod-info-pricebox { flex-shrink:0; text-align:right; }
#page-nueva-venta .nv-prod-info-price { color:var(--accent); font-size:14px; font-weight:800; }

#page-nueva-venta .nv-items-card-clean { padding:10px 12px; }
#page-nueva-venta .nv-items-head-clean {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:7px;
}
#page-nueva-venta .nv-items-title-wrap { color:var(--text); font-size:12px; font-weight:800; }
#page-nueva-venta .nv-items-count { color:var(--text3); font-size:11px; font-weight:400; }
#page-nueva-venta #nv-items-table th,
#page-nueva-venta #nv-items-table td {
  padding:5px 7px;
  font-size:11.3px;
  line-height:1.18;
}
#page-nueva-venta #nv-items-table th { font-size:9.5px; }
#page-nueva-venta #nv-items-table th:nth-child(3),
#page-nueva-venta #nv-items-table td:nth-child(3) { width:62px; text-align:center; }
#page-nueva-venta #nv-items-table th:nth-child(4),
#page-nueva-venta #nv-items-table td:nth-child(4) { width:104px; text-align:right; }
#page-nueva-venta #nv-items-table th:nth-child(5),
#page-nueva-venta #nv-items-table td:nth-child(5) { width:58px; text-align:center; }
#page-nueva-venta #nv-items-table th:nth-child(6),
#page-nueva-venta #nv-items-table td:nth-child(6) { width:78px; text-align:center; }
#page-nueva-venta #nv-items-table th:nth-child(7),
#page-nueva-venta #nv-items-table td:nth-child(7) { width:94px; }
#page-nueva-venta #nv-items-table th:nth-child(8),
#page-nueva-venta #nv-items-table td:nth-child(8) { width:104px; text-align:right; }
#page-nueva-venta #nv-items-table th:nth-child(9),
#page-nueva-venta #nv-items-table td:nth-child(9) { width:32px; }
#page-nueva-venta #nv-items-table td:first-child .nv-item-main { gap:7px; }
#page-nueva-venta #nv-items-table td:first-child .nv-item-icon { width:28px; height:28px; border-radius:8px; font-size:15px; }
#page-nueva-venta #nv-items-table td:first-child .nv-item-title { line-height:1.15; }
#page-nueva-venta #nv-items-table td:first-child .nv-item-sub { margin-top:2px; gap:4px; font-size:10px; }
#page-nueva-venta #nv-items-table td:first-child .nv-item-sub .chip { padding:1px 5px; }
#page-nueva-venta .nv-remove-item { padding:3px 6px; font-size:13px; border-radius:8px; }

#page-nueva-venta .nv-qty-control .pos-qty-btn {
  width:20px;
  min-width:20px;
  height:24px;
  min-height:24px;
  padding:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:7px;
  font-size:13px;
  line-height:1;
}
#page-nueva-venta #nv-items-table tbody tr {
  height:44px;
}
#page-nueva-venta #nv-items-table td:nth-child(2) {
  color:var(--text2);
}
#page-nueva-venta .nv-items-card-clean .table-scroll {
  overflow-x:auto;
}
#page-nueva-venta .nv-items-empty-clean {
  min-height:70px;
  padding:12px;
  border:0;
  background:none;
}
#page-nueva-venta .nv-items-empty-clean .empty-icon { font-size:22px; margin-bottom:4px; }
#page-nueva-venta .nv-items-empty-clean .empty-text { font-size:11.5px; }

#page-nueva-venta .nv-totals-bar {
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin-top:7px;
  padding-top:8px;
  border-top:1px solid var(--border);
}
#page-nueva-venta .nv-total-mini,
#page-nueva-venta .nv-total-final-inline {
  display:flex;
  align-items:center;
  gap:6px;
  color:var(--text2);
  font-size:11.8px;
}
#page-nueva-venta .nv-total-final-inline { gap:8px; }
#page-nueva-venta .nv-total-label {
  color:var(--text2);
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.05em;
}
#page-nueva-venta #nv-subtotal { color:var(--text); }
#page-nueva-venta .nv-desc-global-input {
  width:42px !important;
  height:24px !important;
  min-height:24px !important;
  padding:2px 4px;
  font-size:11px;
  text-align:center;
}
#page-nueva-venta .nv-percent-label { color:var(--text3); font-size:10.2px; }
#page-nueva-venta #pos-desc-monto { color:var(--amber); }
#page-nueva-venta #pos-total {
  color:var(--accent);
  font-size:22px;
  font-weight:900;
  letter-spacing:-.02em;
}
#page-nueva-venta #nv-items-tbody input,
#page-nueva-venta #pos-desc-global { height:auto; min-height:unset; }

#nv-prod-portal {
  position:fixed;
  display:none;
  z-index:12000;
  min-width:380px;
  max-width:min(720px,calc(100vw - 24px));
  max-height:280px;
  overflow:auto;
  padding:5px;
  border:1px solid var(--border2);
  border-radius:12px;
  background:var(--bg2);
  box-shadow:0 22px 54px rgba(0,0,0,.34);
}
#nv-prod-portal .nv-prod-opt{display:flex;align-items:center;gap:9px;padding:7px 9px;border-radius:9px;cursor:pointer;border:1px solid transparent}
#nv-prod-portal .nv-prod-opt:hover,#nv-prod-portal .nv-prod-opt.active{background:var(--bg3);border-color:var(--border2)}
#nv-prod-portal .nv-prod-emoji{font-size:18px;flex-shrink:0}
#nv-prod-portal .nv-prod-name{font-size:12px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#nv-prod-portal .nv-prod-meta{font-size:10.3px;color:var(--text3);margin-top:1px}
#nv-prod-portal .nv-prod-price{font-size:12.5px;font-weight:800;color:var(--accent);flex-shrink:0;text-align:right}
#nv-prod-portal .nv-prod-stock{display:inline-block;margin-left:5px;padding:1px 6px;border-radius:999px;font-size:9.5px;font-weight:700;background:rgba(79,142,247,.12);color:var(--accent)}
#nv-prod-portal .nv-prod-stock.low{background:rgba(245,158,11,.14);color:var(--amber)}
#nv-prod-portal .nv-prod-stock.out{background:rgba(239,68,68,.12);color:var(--red)}
.nv-pay-quick{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:6px}
.nv-pay-chip{padding:5px 8px;border-radius:999px;border:1px solid var(--border2);background:var(--bg3);color:var(--text2);font-size:10.5px;font-weight:700;cursor:pointer;transition:.18s ease}
.nv-pay-chip:hover{border-color:rgba(79,142,247,.35);color:var(--text)}
.nv-pay-chip.active{background:rgba(79,142,247,.14);border-color:rgba(79,142,247,.38);color:var(--accent)}
.nv-pay-chip.mix{color:var(--amber)}
.nv-pay-summary{font-size:10.3px;color:var(--text3);text-align:right;line-height:1.2}
.nv-pay-summary strong{color:var(--text)}
html[data-theme="light"] #nv-prod-portal{background:#fff;border-color:rgba(15,23,42,.1);box-shadow:0 24px 50px rgba(15,23,42,.17)}
html[data-theme="light"] #nv-prod-portal .nv-prod-opt:hover,html[data-theme="light"] #nv-prod-portal .nv-prod-opt.active{background:rgba(37,99,235,.08);border-color:rgba(37,99,235,.12)}
html[data-theme="light"] .comp-prod-portal{background:#fff;border-color:rgba(15,23,42,.1);box-shadow:0 24px 50px rgba(15,23,42,.17)}
html[data-theme="light"] .comp-prod-result:hover,html[data-theme="light"] .comp-prod-result.active{background:rgba(37,99,235,.08);border-color:rgba(37,99,235,.12)}
html[data-theme="light"] .nv-pay-chip{background:linear-gradient(180deg,#fff,#f3f7ff)}
html[data-theme="light"] .nv-pay-chip.active{background:rgba(37,99,235,.1);color:#1d4ed8;border-color:rgba(37,99,235,.25)}

@media (max-width:1500px){
  #page-nueva-venta .nv-datos-grid-clean{grid-template-columns:minmax(285px,1.32fr) minmax(235px,1.05fr) minmax(150px,.7fr) minmax(128px,.55fr)}
}
@media (max-width:1240px){
  #page-nueva-venta .nv-datos-grid-clean{grid-template-columns:repeat(2,minmax(0,1fr))}
  #page-nueva-venta .nv-add-grid-clean{grid-template-columns:minmax(260px,1fr) 74px 116px 72px 96px 96px}
}
@media (max-width:980px){
  #page-nueva-venta .nv-page-head-clean{align-items:stretch;flex-direction:column}
  #page-nueva-venta #btn-pos-confirmar{width:100%}
  #page-nueva-venta .nv-add-grid-clean{grid-template-columns:repeat(2,minmax(0,1fr))}
  #page-nueva-venta .nv-add-btn{width:100%}
}
@media (max-width:640px){
  #page-nueva-venta .nv-datos-grid-clean,
  #page-nueva-venta .nv-add-grid-clean{grid-template-columns:1fr}
  #page-nueva-venta .nv-page-head-left{flex-wrap:wrap}
}

/* ESCÁNER STOCK — visual compacto 100% · ajuste alineación 20260611 */
#page-stock-scanner .scan-wrap {
  display:flex;
  flex-direction:column;
  gap:10px;
  max-width:100%;
}
#page-stock-scanner .scan-hero {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  padding:12px 14px;
}
#page-stock-scanner .scan-hero .card-title {
  font-size:15px;
  line-height:1.15;
}
#page-stock-scanner .scan-hero .card-subtitle {
  margin-top:2px;
  font-size:11.5px;
  line-height:1.25;
}
#page-stock-scanner .scan-hero-actions {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
#page-stock-scanner .scan-route-pill,
#page-stock-scanner .scan-total-pill {
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:30px;
  padding:6px 10px;
  border:1px solid var(--border2);
  border-radius:999px;
  background:rgba(79,142,247,.09);
  color:var(--text2);
  font-size:11.2px;
  font-weight:750;
  white-space:nowrap;
}
#page-stock-scanner .scan-route-pill strong {
  color:var(--accent);
  font-size:13px;
  line-height:1;
}
#page-stock-scanner .scan-total-pill {
  background:var(--bg3);
  color:var(--text);
}
#page-stock-scanner .scan-route-pill.warn {
  border-color:rgba(239,68,68,.36);
  background:var(--red-bg);
  color:var(--red);
}
#page-stock-scanner .scan-route-pill.warn strong { color:var(--red); }
#page-stock-scanner .scan-grid {
  display:grid;
  grid-template-columns:minmax(0,1fr) 300px;
  gap:10px;
  align-items:start;
}
#page-stock-scanner .scan-grid.scan-grid-no-side { grid-template-columns:minmax(0,1fr); }
#page-stock-scanner .scan-main-card {
  position:relative;
  overflow:hidden;
  padding:12px 14px;
}
#page-stock-scanner .scan-main-card::before {
  content:'';
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:3px;
  background:var(--accent);
}
#page-stock-scanner .scan-route {
  display:grid;
  grid-template-columns:minmax(180px,1fr) 38px minmax(180px,1fr);
  gap:8px;
  align-items:end;
}
#page-stock-scanner label {
  display:block;
  margin:0 0 4px;
  font-size:10.2px;
  line-height:1.15;
  font-weight:800;
  color:var(--text3);
  letter-spacing:.055em;
  text-transform:uppercase;
}
#page-stock-scanner input,
#page-stock-scanner select {
  min-height:34px;
  height:34px;
  padding:6px 10px;
  border-radius:10px;
  font-size:12px;
}
#page-stock-scanner .scan-route > .btn {
  width:38px;
  min-width:38px;
  height:34px;
  min-height:34px;
  padding:0;
  border-radius:10px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:16px;
  line-height:1;
  text-align:center;
}
#page-stock-scanner .scan-toolbar {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:9px 0;
}
#page-stock-scanner .scan-toolbar .btn,
#page-stock-scanner .scan-card-headline .btn,
#page-stock-scanner .scan-token-inline .btn {
  min-height:30px;
  height:30px;
  padding:5px 9px;
  border-radius:9px;
  font-size:11.2px;
}
#page-stock-scanner .scan-input-wrap {
  padding:9px;
  border:1px solid var(--border);
  border-radius:13px;
  background:var(--bg2);
}
#page-stock-scanner .scan-input-wrap label {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
#page-stock-scanner .scan-input-wrap label::after {
  content:'F2 para enfocar';
  font-size:9.8px;
  font-weight:800;
  color:var(--text3);
  letter-spacing:0;
  text-transform:none;
}
#page-stock-scanner #scan-input {
  height:36px;
  min-height:36px;
  font-size:13px;
  font-weight:700;
}
#page-stock-scanner .scan-input-wrap {
  position:relative;
}
#page-stock-scanner .scan-search-results {
  position:absolute;
  left:9px;
  right:9px;
  top:68px;
  z-index:40;
  max-height:260px;
  overflow:auto;
  padding:6px;
  border:1px solid var(--border2);
  border-radius:12px;
  background:var(--bg2);
  box-shadow:0 16px 34px rgba(0,0,0,.28);
}
#page-stock-scanner .scan-search-item {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  width:100%;
  min-height:42px;
  padding:8px 9px;
  border:0;
  border-radius:10px;
  background:transparent;
  color:var(--text);
  text-align:left;
  cursor:pointer;
}
#page-stock-scanner .scan-search-item:hover,
#page-stock-scanner .scan-search-item.active {
  background:var(--bg3);
}
#page-stock-scanner .scan-search-item strong {
  display:block;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:12.2px;
}
#page-stock-scanner .scan-search-item small {
  display:block;
  margin-top:2px;
  color:var(--text3);
  font-size:10.5px;
  line-height:1.15;
}
#page-stock-scanner .scan-search-item em {
  flex:0 0 auto;
  min-width:46px;
  padding:3px 7px;
  border-radius:999px;
  background:var(--bg3);
  color:var(--text2);
  font-size:10.5px;
  font-style:normal;
  font-weight:800;
  text-align:center;
}
#page-stock-scanner .scan-search-empty {
  padding:10px;
  color:var(--text3);
  font-size:11.5px;
  font-weight:700;
  text-align:center;
}
#page-stock-scanner .scan-status {
  min-height:18px;
  margin-top:5px;
  font-size:11.2px;
  font-weight:700;
  color:var(--text3);
}
#page-stock-scanner .scan-status.ok,
#page-stock-scanner .scan-status.err { font-weight:900; }
#page-stock-scanner .table-wrap {
  margin-top:9px;
  border-radius:12px;
  overflow:hidden;
}
#page-stock-scanner .scan-table {
  width:100%;
  border-collapse:collapse;
  table-layout:fixed;
}
#page-stock-scanner .scan-table th,
#page-stock-scanner .scan-table td {
  padding:7px 9px;
  font-size:11.6px;
  line-height:1.2;
  vertical-align:middle;
}
#page-stock-scanner .scan-table th {
  font-size:10px;
  letter-spacing:.06em;
  white-space:nowrap;
}
#page-stock-scanner .scan-table th:nth-child(1){width:auto}
#page-stock-scanner .scan-table th:nth-child(2){width:105px;text-align:center}
#page-stock-scanner .scan-table th:nth-child(3){width:126px;text-align:center}
#page-stock-scanner .scan-table th:nth-child(4){width:78px;text-align:right}
#page-stock-scanner .scan-table td:nth-child(2){text-align:center;font-weight:800;color:var(--text2)}
#page-stock-scanner .scan-table td:last-child{text-align:right}
#page-stock-scanner .scan-table td:first-child strong {
  display:block;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:12.3px;
}
#page-stock-scanner .scan-table .muted {
  margin-top:2px;
  font-size:10.2px;
  line-height:1.15;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
#page-stock-scanner .scan-warn {
  display:inline-flex;
  margin-left:5px;
  padding:1px 5px;
  border-radius:999px;
  background:var(--red-bg);
  color:var(--red);
  font-size:9.5px;
  font-weight:850;
}
#page-stock-scanner .scan-qty-cell {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:5px;
}
#page-stock-scanner .scan-qty-cell .btn {
  width:26px;
  min-width:26px;
  height:26px;
  min-height:26px;
  padding:0;
  border-radius:8px;
  font-size:14px;
}
#page-stock-scanner .scan-qty-cell strong {
  min-width:24px;
  text-align:center;
  font-size:12px;
}
#page-stock-scanner .scan-empty {
  padding:16px 10px;
  margin-top:8px;
  border-radius:12px;
}
#page-stock-scanner .scan-empty .empty-icon { font-size:24px; }
#page-stock-scanner .scan-empty .empty-text { font-size:12.5px; }
#page-stock-scanner .scan-empty .empty-sub { font-size:11px; }
#page-stock-scanner .scan-footer {
  display:grid;
  grid-template-columns:170px minmax(220px,1fr) 84px 190px;
  gap:8px;
  align-items:end;
  margin-top:9px;
}
#page-stock-scanner .scan-footer.scan-footer-direct {
  grid-template-columns:minmax(260px,1fr) 84px 190px;
}
#page-stock-scanner .scan-footer.scan-footer-direct .scan-notas {
  min-width:0;
}
#page-stock-scanner .scan-token-inline {
  display:grid;
  grid-template-columns:minmax(0,1fr) 64px;
  gap:6px;
}
#page-stock-scanner .scan-footer > .btn {
  min-height:34px;
  height:34px;
  padding:6px 10px;
  border-radius:10px;
  font-size:11.5px;
  white-space:nowrap;
}
#page-stock-scanner #scan-confirm-btn { min-width:184px; }
#page-stock-scanner .scan-side {
  display:flex;
  flex-direction:column;
  gap:10px;
}
#page-stock-scanner .scan-admin-panel {
  padding:12px;
}
#page-stock-scanner .scan-admin-panel .card-title,
#page-stock-scanner .scan-alt-title {
  font-size:13px;
  line-height:1.15;
}
#page-stock-scanner .scan-admin-panel .card-subtitle {
  margin-top:2px;
  font-size:11px;
  line-height:1.25;
}
#page-stock-scanner .scan-admin-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:7px;
  margin-top:8px;
}
#page-stock-scanner .scan-alt-panel {
  margin-top:11px;
  padding-top:11px;
  border-top:1px solid var(--border);
}
#page-stock-scanner .scan-alt-launch-btn {
  width:100%;
  min-height:36px;
  margin-top:8px;
  border-radius:10px;
  font-size:12px;
}
.scan-alt-modal-box {
  width:min(680px,calc(100vw - 32px));
}
.scan-alt-modal-body {
  display:flex;
  flex-direction:column;
  gap:10px;
}
.scan-alt-modal-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.scan-modal-field label {
  display:block;
  margin:0 0 5px;
  font-size:10.5px;
  font-weight:800;
  letter-spacing:.055em;
  text-transform:uppercase;
  color:var(--text3);
}
.scan-modal-field input {
  width:100%;
  min-height:38px;
  height:38px;
  padding:8px 11px;
  border-radius:11px;
}
.scan-alt-field-help {
  margin-top:5px;
  font-size:10.5px;
  line-height:1.25;
}
.scan-alt-modal-actions .btn {
  min-width:140px;
}
#page-stock-scanner .scan-token-code {
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:36px;
  margin-top:8px;
  border:1px dashed var(--border2);
  border-radius:10px;
  background:var(--bg3);
  color:var(--accent);
  font-size:18px;
  font-weight:900;
  letter-spacing:.08em;
}
#page-stock-scanner .scan-copy-token-btn {
  width:100%;
  margin-top:7px;
}
#page-stock-scanner .scan-recent-full {
  padding:12px 14px;
}
#page-stock-scanner .scan-card-headline {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:8px;
}
#page-stock-scanner .scan-card-headline .card-title {
  font-size:14px;
}
#page-stock-scanner .scan-card-headline .card-subtitle {
  font-size:11.2px;
}
#page-stock-scanner .scan-recent-list {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:7px;
}
#page-stock-scanner .scan-recent-item {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  width:100%;
  min-height:44px;
  padding:8px 10px;
  border:1px solid var(--border);
  border-radius:11px;
  background:var(--bg2);
  color:var(--text);
  text-align:left;
  cursor:pointer;
}
#page-stock-scanner .scan-recent-item strong { font-size:12px; }
#page-stock-scanner .scan-recent-item .muted {
  margin-top:2px;
  font-size:10.5px;
  line-height:1.15;
}
#page-stock-scanner .scan-recent-meta {
  flex:0 0 auto;
  text-align:right;
  white-space:nowrap;
}
.scan-modal {
  position:fixed;
  inset:0;
  z-index:12000;
  display:none;
  align-items:center;
  justify-content:center;
  padding:18px;
  background:rgba(2,6,23,.62);
}
.scan-modal.open { display:flex; }
.scan-modal-box {
  width:min(760px,calc(100vw - 32px));
  max-height:calc(100vh - 34px);
  overflow:auto;
  padding:14px;
  border:1px solid var(--border2);
  border-radius:16px;
  background:var(--bg2);
  box-shadow:0 24px 70px rgba(0,0,0,.36);
}
.scan-modal-head,
.scan-modal-actions {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.scan-modal-head { margin-bottom:10px; }
.scan-detail-body { display:flex; flex-direction:column; gap:9px; }
.scan-detail-kpis {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:7px;
}
.scan-detail-kpis span,
.scan-detail-notes {
  padding:8px 10px;
  border:1px solid var(--border);
  border-radius:11px;
  background:var(--bg3);
  color:var(--text2);
  font-size:11.5px;
}
.scan-detail-kpis b { color:var(--text); }
.scan-detail-table th,
.scan-detail-table td { padding:7px 9px; }
.scan-modal-actions {
  justify-content:flex-end;
  margin-top:12px;
}
@media (max-width: 1180px){
  #page-stock-scanner .scan-grid{grid-template-columns:1fr}
  #page-stock-scanner .scan-side{
    display:flex;
    width:100%;
  }
  #page-stock-scanner .scan-footer,
  #page-stock-scanner .scan-footer.scan-footer-direct{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  #page-stock-scanner .scan-footer > *{min-width:0}
  #page-stock-scanner .scan-footer .btn{width:100%}
}
@media (max-width: 920px){
  #page-stock-scanner .scan-toolbar .btn{
    flex:1 1 100%;
    justify-content:center;
  }
  #page-stock-scanner .scan-footer,
  #page-stock-scanner .scan-footer.scan-footer-direct{grid-template-columns:1fr}
  #page-stock-scanner #scan-confirm-btn,
  #page-stock-scanner .scan-footer > .btn{min-width:0;width:100%}
}
@media (max-width: 760px){
  #page-stock-scanner .scan-hero{grid-template-columns:1fr}
  #page-stock-scanner .scan-hero-actions{justify-content:flex-start}
  #page-stock-scanner .scan-route{grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr)}
  #page-stock-scanner .scan-route > .btn{width:34px;min-width:34px}
  #page-stock-scanner .scan-route > div,
  #page-stock-scanner .scan-route select{min-width:0}
  #page-stock-scanner .scan-main-card,
  #page-stock-scanner .scan-recent-full,
  #page-stock-scanner .scan-admin-panel{padding:11px}
  #page-stock-scanner .scan-table{min-width:560px}
  .scan-detail-kpis{grid-template-columns:1fr}
  .scan-alt-modal-grid{grid-template-columns:1fr}
  .scan-alt-modal-actions .btn{min-width:0}
}

/* Pago mixto · popup compacto y ordenado · 20260612 */
#modal-nv-pago-mixto .pmx-modal{
  width:min(960px, calc(100vw - 28px)) !important;
  max-width:960px !important;
  max-height:calc(100vh - 32px) !important;
  padding:0 !important;
  overflow:hidden !important;
  display:flex;
  flex-direction:column;
}

#modal-nv-pago-mixto .pmx-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:16px 20px 12px;
  border-bottom:1px solid var(--border);
  background:linear-gradient(180deg, rgba(59,130,246,.07), transparent);
}

#modal-nv-pago-mixto .modal-title{
  font-size:17px;
  line-height:1.15;
}

#modal-nv-pago-mixto .pmx-sub{
  margin-top:4px;
  color:var(--text3);
  font-size:12px;
  line-height:1.3;
}

#modal-nv-pago-mixto .pmx-body{
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
  padding:14px 20px;
}

#modal-nv-pago-mixto .pmx-layout{
  display:grid;
  grid-template-columns:minmax(0, 1fr) 300px;
  gap:12px;
  align-items:start;
}

#modal-nv-pago-mixto .pmx-panel,
#modal-nv-pago-mixto .pmx-summary-card{
  border:1px solid var(--border);
  background:var(--bg2);
  border-radius:14px;
}

#modal-nv-pago-mixto .pmx-panel-main{
  padding:10px;
}

#modal-nv-pago-mixto .pmx-tip{
  display:flex;
  align-items:center;
  gap:6px;
  min-height:32px;
  padding:7px 10px;
  margin-bottom:9px;
  border:1px dashed rgba(59,130,246,.24);
  border-radius:10px;
  background:rgba(59,130,246,.07);
  color:var(--text2);
  font-size:11.3px;
  line-height:1.25;
}

#modal-nv-pago-mixto .pmx-list{
  display:flex;
  flex-direction:column;
  gap:8px;
}

#modal-nv-pago-mixto .pmx-row{
  padding:10px;
  border:1px solid var(--border);
  border-radius:13px;
  background:var(--bg);
}

#modal-nv-pago-mixto .pmx-row.is-auto{
  border-color:rgba(59,130,246,.42);
  background:rgba(59,130,246,.065);
}

#modal-nv-pago-mixto .pmx-row-main{
  display:grid;
  grid-template-columns:190px minmax(0, 1fr);
  gap:10px;
  align-items:end;
}

#modal-nv-pago-mixto .pmx-row-footer{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  align-items:center;
  gap:10px;
  margin-top:7px;
}

#modal-nv-pago-mixto .pmx-label{
  margin-bottom:4px;
  color:var(--text3);
  font-size:9.7px;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
}

#modal-nv-pago-mixto .pmx-select,
#modal-nv-pago-mixto .pmx-input{
  width:100%;
  height:36px;
  min-height:36px;
  border:1px solid var(--border2);
  border-radius:10px;
  background:var(--bg2);
  color:var(--text);
  font-size:12px;
}

#modal-nv-pago-mixto .pmx-select{
  padding:0 10px;
  font-weight:800;
}

#modal-nv-pago-mixto .pmx-input{
  padding:0 10px;
  text-align:right;
  font-weight:900;
}

#modal-nv-pago-mixto .pmx-input[readonly]{
  background:var(--bg3);
  color:var(--accent);
}

#modal-nv-pago-mixto .pmx-input-line{
  display:flex;
  align-items:center;
  gap:7px;
}

#modal-nv-pago-mixto .pmx-auto-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:44px;
  height:26px;
  padding:0 8px;
  border-radius:999px;
  background:rgba(59,130,246,.14);
  border:1px solid rgba(59,130,246,.26);
  color:var(--accent);
  font-size:9.4px;
  font-weight:950;
}

#modal-nv-pago-mixto .pmx-help{
  min-width:0;
  color:var(--text3);
  font-size:10.5px;
  line-height:1.25;
}

#modal-nv-pago-mixto .pmx-row-actions{
  display:flex;
  gap:6px;
  align-items:center;
  justify-content:flex-end;
}

#modal-nv-pago-mixto .pmx-auto-btn,
#modal-nv-pago-mixto .pmx-remove{
  height:30px;
  min-height:30px;
  border:1px solid var(--border2);
  border-radius:9px;
  background:var(--bg3);
  color:var(--text2);
  font-size:10.5px;
  font-weight:850;
  cursor:pointer;
  white-space:nowrap;
}

#modal-nv-pago-mixto .pmx-auto-btn{
  padding:0 9px;
}

#modal-nv-pago-mixto .pmx-auto-btn.active{
  border-color:rgba(59,130,246,.42);
  background:rgba(59,130,246,.14);
  color:var(--accent);
}

#modal-nv-pago-mixto .pmx-remove{
  width:30px;
  color:var(--red);
}

#modal-nv-pago-mixto .pmx-toolbar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  margin-top:10px;
  padding-top:8px;
  border-top:1px solid var(--border);
  flex-wrap:wrap;
}

#modal-nv-pago-mixto .pmx-toolbar-left{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
}

#modal-nv-pago-mixto .pmx-link{
  min-height:26px;
  border:0;
  background:transparent;
  color:var(--accent);
  font-size:12px;
  font-weight:850;
  cursor:pointer;
  padding:0;
}

#modal-nv-pago-mixto .pmx-link.muted{
  color:var(--text3);
}

#modal-nv-pago-mixto .pmx-summary{
  min-width:0;
}

#modal-nv-pago-mixto .pmx-summary-card{
  padding:12px;
  position:sticky;
  top:0;
}

#modal-nv-pago-mixto .pmx-status{
  margin-bottom:10px;
  padding:7px 9px;
  border-radius:999px;
  background:var(--bg3);
  color:var(--text2);
  font-size:10.5px;
  font-weight:900;
  text-align:center;
}

#modal-nv-pago-mixto .pmx-status.ok{ background:var(--green-bg); color:var(--green); }
#modal-nv-pago-mixto .pmx-status.warn{ background:var(--amber-bg); color:var(--amber); }
#modal-nv-pago-mixto .pmx-status.danger{ background:var(--red-bg); color:var(--red); }
#modal-nv-pago-mixto .pmx-status.neutral{ background:var(--bg3); color:var(--text2); }

#modal-nv-pago-mixto .pmx-summary-title{
  color:var(--text3);
  font-size:10.5px;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
}

#modal-nv-pago-mixto .pmx-summary-total{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:10px;
  margin:5px 0 10px;
  color:var(--text2);
  font-size:11.5px;
}

#modal-nv-pago-mixto .pmx-summary-total strong{
  color:var(--text);
  font-size:22px;
  font-weight:950;
  letter-spacing:-.03em;
}

#modal-nv-pago-mixto .pmx-summary-list{
  display:flex;
  flex-direction:column;
  gap:7px;
}

#modal-nv-pago-mixto .pmx-summary-row{
  padding:8px 9px;
  border:1px solid var(--border);
  border-radius:11px;
  background:var(--bg3);
}

#modal-nv-pago-mixto .pmx-summary-row.is-auto{
  border-color:rgba(59,130,246,.34);
  background:rgba(59,130,246,.075);
}

#modal-nv-pago-mixto .pmx-summary-row-top{
  display:flex;
  justify-content:space-between;
  gap:8px;
  color:var(--text);
  font-size:11.5px;
  font-weight:850;
}

#modal-nv-pago-mixto .pmx-summary-row-help{
  margin-top:3px;
  color:var(--text3);
  font-size:10.4px;
  line-height:1.2;
}

#modal-nv-pago-mixto .pmx-chip-row{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:10px;
}

#modal-nv-pago-mixto .pmx-chip{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:0 8px;
  border:1px solid var(--border);
  border-radius:999px;
  background:var(--bg3);
  color:var(--text2);
  font-size:10.5px;
  font-weight:850;
}

#modal-nv-pago-mixto .pmx-footer{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  padding:11px 20px 14px;
  border-top:1px solid var(--border);
  background:var(--bg);
}

#modal-nv-pago-mixto .pmx-footer .btn{
  min-height:34px;
  height:34px;
  padding:6px 13px;
  border-radius:10px;
  font-size:12px;
}

#modal-nv-pago-mixto .pmx-footer .btn:disabled,
#modal-nv-pago-mixto .pmx-footer .btn.is-disabled,
#modal-nv-pago-mixto #btn-nv-aplicar-mixto:disabled,
#modal-nv-pago-mixto #btn-nv-aplicar-mixto.is-disabled{
  opacity:.55;
  cursor:not-allowed;
}

@media (max-width: 900px){
  #modal-nv-pago-mixto .pmx-layout{ grid-template-columns:1fr; }
  #modal-nv-pago-mixto .pmx-summary-card{ position:static; }
}

@media (max-width: 680px){
  #modal-nv-pago-mixto .pmx-modal{ width:calc(100vw - 16px) !important; }
  #modal-nv-pago-mixto .pmx-head,
  #modal-nv-pago-mixto .pmx-body,
  #modal-nv-pago-mixto .pmx-footer{ padding-left:12px; padding-right:12px; }
  #modal-nv-pago-mixto .pmx-row-main{ grid-template-columns:1fr; }
  #modal-nv-pago-mixto .pmx-row-footer{ grid-template-columns:1fr; }
  #modal-nv-pago-mixto .pmx-row-actions{ justify-content:flex-start; flex-wrap:wrap; }
  #modal-nv-pago-mixto .pmx-footer{ justify-content:stretch; }
  #modal-nv-pago-mixto .pmx-footer .btn{ flex:1; }
}

/* Pago mixto por pasos · 20260612 */
#modal-nv-pago-mixto .pmx-stepper{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  padding:10px 20px;
  border-bottom:1px solid var(--border);
  background:var(--bg);
}
#modal-nv-pago-mixto .pmx-step{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
  padding:8px 10px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--bg2);
  color:var(--text3);
}
#modal-nv-pago-mixto .pmx-step span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:22px;
  min-width:22px;
  height:22px;
  border-radius:999px;
  background:var(--bg3);
  color:var(--text2);
  font-size:11px;
  font-weight:950;
}
#modal-nv-pago-mixto .pmx-step strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:11.5px;
  font-weight:900;
}
#modal-nv-pago-mixto .pmx-step.is-active{
  border-color:rgba(59,130,246,.42);
  background:rgba(59,130,246,.09);
  color:var(--text);
}
#modal-nv-pago-mixto .pmx-step.is-active span,
#modal-nv-pago-mixto .pmx-step.is-done span{
  background:var(--accent);
  color:#fff;
}
#modal-nv-pago-mixto .pmx-step-panel{ display:none; }
#modal-nv-pago-mixto .pmx-step-panel.is-active{ display:block; }
#modal-nv-pago-mixto .pmx-panel-title{
  color:var(--text);
  font-size:15px;
  font-weight:950;
  letter-spacing:-.01em;
}
#modal-nv-pago-mixto .pmx-panel-sub{
  margin-top:3px;
  color:var(--text3);
  font-size:11.5px;
  line-height:1.35;
}
#modal-nv-pago-mixto .pmx-method-panel{
  width:min(760px,100%);
  margin:0 auto;
  padding:14px;
}
#modal-nv-pago-mixto .pmx-method-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:8px;
  margin-top:12px;
}
#modal-nv-pago-mixto .pmx-method-chip{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-height:46px;
  padding:9px 11px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--bg);
  color:var(--text);
  text-align:left;
  cursor:pointer;
}
#modal-nv-pago-mixto .pmx-method-chip span{
  font-size:12.5px;
  font-weight:900;
}
#modal-nv-pago-mixto .pmx-method-chip small{
  color:var(--text3);
  font-size:10.5px;
  font-weight:850;
}
#modal-nv-pago-mixto .pmx-method-chip.is-selected{
  border-color:rgba(59,130,246,.48);
  background:rgba(59,130,246,.10);
  box-shadow:inset 0 0 0 1px rgba(59,130,246,.12);
}
#modal-nv-pago-mixto .pmx-selected-box{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-top:12px;
  padding:10px 12px;
  border:1px dashed rgba(59,130,246,.28);
  border-radius:12px;
  background:rgba(59,130,246,.06);
}
#modal-nv-pago-mixto .pmx-selected-box div{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
}
#modal-nv-pago-mixto .pmx-selected-box strong{
  color:var(--text);
  font-size:11.5px;
}
#modal-nv-pago-mixto .pmx-selected-box span{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--text3);
  font-size:11.3px;
}
#modal-nv-pago-mixto .pmx-selected-box em{
  flex:0 0 auto;
  color:var(--accent);
  font-size:11px;
  font-style:normal;
  font-weight:900;
}
#modal-nv-pago-mixto .pmx-review-card{
  width:min(850px,100%);
  margin:0 auto;
  padding:14px;
  border:1px solid var(--border);
  border-radius:14px;
  background:var(--bg2);
}
#modal-nv-pago-mixto .pmx-review-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:14px;
  padding:4px 0 12px;
}
#modal-nv-pago-mixto .pmx-review-head strong{
  display:block;
  margin-top:3px;
  color:var(--text);
  font-size:26px;
  line-height:1;
  font-weight:950;
  letter-spacing:-.035em;
}
#modal-nv-pago-mixto .pmx-review-head span{
  color:var(--text3);
  font-size:11px;
  font-weight:850;
}
#modal-nv-pago-mixto .pmx-op-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin:0 0 10px;
}
#modal-nv-pago-mixto .pmx-op-card{
  padding:10px 11px;
  border:1px solid rgba(96,165,250,.30);
  border-radius:12px;
  background:rgba(59,130,246,.10);
}
#modal-nv-pago-mixto .pmx-op-card small{
  display:block;
  color:var(--text3);
  font-size:10px;
  font-weight:950;
  letter-spacing:.06em;
  text-transform:uppercase;
}
#modal-nv-pago-mixto .pmx-op-card strong{
  display:block;
  margin-top:3px;
  color:var(--text);
  font-size:20px;
  line-height:1;
  font-weight:950;
  letter-spacing:-.025em;
}
#modal-nv-pago-mixto .pmx-op-card span{
  display:block;
  margin-top:4px;
  color:var(--text3);
  font-size:11px;
  font-weight:750;
}
#modal-nv-pago-mixto .pmx-op-card.is-cash{
  border-color:rgba(34,197,94,.25);
  background:rgba(34,197,94,.09);
}
#modal-nv-pago-mixto .pmx-op-card.is-posnet{
  border-color:rgba(59,130,246,.34);
  background:rgba(59,130,246,.12);
}
#modal-nv-pago-mixto .pmx-op-card.is-transfer{
  border-color:rgba(168,85,247,.25);
  background:rgba(168,85,247,.10);
}
#modal-nv-pago-mixto .pmx-review-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  margin-bottom:10px;
}
#modal-nv-pago-mixto .pmx-review-grid span{
  padding:9px 10px;
  border:1px solid var(--border);
  border-radius:11px;
  background:var(--bg3);
}
#modal-nv-pago-mixto .pmx-review-grid small,
#modal-nv-pago-mixto .pmx-review-row small{
  display:block;
  color:var(--text3);
  font-size:9.8px;
  font-weight:900;
  letter-spacing:.05em;
  text-transform:uppercase;
}
#modal-nv-pago-mixto .pmx-review-grid b,
#modal-nv-pago-mixto .pmx-review-row b{
  display:block;
  margin-top:3px;
  color:var(--text);
  font-size:12.5px;
  font-weight:950;
}
#modal-nv-pago-mixto .pmx-review-list{
  display:flex;
  flex-direction:column;
  gap:7px;
}
#modal-nv-pago-mixto .pmx-review-row{
  display:grid;
  grid-template-columns:minmax(180px,1fr) 110px 100px 112px;
  gap:8px;
  align-items:center;
  padding:9px 10px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--bg);
}
#modal-nv-pago-mixto .pmx-review-row > div:first-child{
  min-width:0;
}
#modal-nv-pago-mixto .pmx-review-row strong{
  display:block;
  color:var(--text);
  font-size:12.5px;
  font-weight:950;
}
#modal-nv-pago-mixto .pmx-review-row span{
  display:block;
  margin-top:2px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--text3);
  font-size:10.5px;
}
#modal-nv-pago-mixto .pmx-empty-review{
  padding:12px;
  color:var(--text3);
  font-size:12px;
  text-align:center;
}
@media (max-width: 760px){
  #modal-nv-pago-mixto .pmx-stepper{padding:9px 12px;gap:6px}
  #modal-nv-pago-mixto .pmx-step{padding:7px 8px;gap:6px}
  #modal-nv-pago-mixto .pmx-step strong{font-size:10.6px}
  #modal-nv-pago-mixto .pmx-method-grid{grid-template-columns:1fr}
  #modal-nv-pago-mixto .pmx-selected-box{align-items:flex-start;flex-direction:column}
  #modal-nv-pago-mixto .pmx-review-grid{grid-template-columns:1fr}
  #modal-nv-pago-mixto .pmx-op-grid{grid-template-columns:1fr}
  #modal-nv-pago-mixto .pmx-review-head{align-items:flex-start;flex-direction:column}
  #modal-nv-pago-mixto .pmx-review-row{grid-template-columns:1fr 1fr}
}


#nv-prod-portal .nv-prod-opt-main{flex:1;min-width:0}

/* RESERVAS — listado pulido compacto 100% 20260607 */
#page-reservas{
  --res-field-h:32px;
  --res-radius:12px;
  display:none;
  flex-direction:column;
  gap:8px;
  font-size:12px;
}
#page-reservas.active{display:flex}
#page-reservas .card-title{
  font-size:14px;
  line-height:1.15;
  font-weight:900;
  letter-spacing:-.01em;
}
#page-reservas .card-subtitle{
  margin-top:2px;
  font-size:11px;
  line-height:1.2;
  color:var(--text3);
}
#page-reservas .reservas-head-card{
  padding:10px 12px 11px;
  margin-bottom:0;
  border-radius:14px;
}
#page-reservas .reservas-head-row,
#page-reservas .reservas-filter-head{
  align-items:flex-start;
  gap:8px;
  flex-wrap:wrap;
}
#page-reservas .reservas-head-actions{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  margin-left:auto;
}
#page-reservas .reservas-head-actions .btn{
  min-width:118px;
  min-height:var(--res-field-h);
  height:var(--res-field-h);
  padding:0 11px;
  font-size:11.5px;
  border-radius:10px;
}
#page-reservas .reservas-kpis{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:7px;
  margin-top:9px;
}
#page-reservas .reservas-kpi{
  min-height:50px;
  padding:7px 10px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:1px;
  border:1px solid var(--border);
  border-radius:12px;
  background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.012));
}
#page-reservas .reservas-kpi span{
  color:var(--text3);
  font-size:9.6px;
  font-weight:850;
  letter-spacing:.045em;
  text-transform:uppercase;
}
#page-reservas .reservas-kpi strong{
  color:var(--text);
  font-size:17px;
  line-height:1.05;
  font-weight:950;
  letter-spacing:-.02em;
}
#page-reservas .card:not(.reservas-head-card){
  padding:10px 12px 12px;
  border-radius:14px;
}
#page-reservas .toolbar-row-actions{
  width:100%;
  display:flex;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
}
#page-reservas .reservas-search{
  width:clamp(280px,36vw,420px);
  height:var(--res-field-h);
  min-height:var(--res-field-h);
  border-radius:10px;
}
#page-reservas .reservas-search input{
  height:var(--res-field-h);
  font-size:11.5px;
}
#page-reservas .reservas-filter-select{
  width:176px;
  height:var(--res-field-h);
  min-height:var(--res-field-h);
  padding:0 10px;
  font-size:11.5px;
  border-radius:10px;
}
#page-reservas .table-wrap{
  margin-top:8px;
  border-radius:12px;
  overflow-x:hidden;
}
#page-reservas #reservas-table{
  width:100%;
  table-layout:fixed;
}
#page-reservas #reservas-table th,
#page-reservas #reservas-table td{
  padding:6px 7px;
  font-size:11.3px;
  line-height:1.2;
  vertical-align:middle;
}
#page-reservas #reservas-table th{
  font-size:9.5px;
  letter-spacing:.045em;
  white-space:nowrap;
}
#page-reservas #reservas-table th[data-col-key="reserva"]{width:116px}
#page-reservas #reservas-table th[data-col-key="contacto"]{width:168px}
#page-reservas #reservas-table th[data-col-key="productos"]{width:28%}
#page-reservas #reservas-table th[data-col-key="notas"]{width:17%}
#page-reservas #reservas-table th[data-col-key="vence"]{width:108px}
#page-reservas #reservas-table th[data-col-key="total"]{width:96px}
#page-reservas #reservas-table th[data-col-key="estado"]{width:132px}
#page-reservas #reservas-table th[data-col-key="acciones"]{width:150px}
#page-reservas .reserva-row-sub,
#page-reservas .reserva-contact-dato,
#page-reservas .reserva-vence-cell{
  margin-top:2px;
  color:var(--text3);
  font-size:10.3px;
  line-height:1.2;
}
#page-reservas .reserva-contact-main{
  color:var(--text);
  font-weight:780;
  line-height:1.2;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
#page-reservas .reserva-contact-dato{
  color:var(--text2);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
#page-reservas .reserva-productos-cell,
#page-reservas .reserva-nota-cell{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  overflow:hidden;
  white-space:normal;
  word-break:break-word;
}
#page-reservas .reserva-productos-cell{
  -webkit-line-clamp:2;
  color:var(--text2);
  font-size:11.1px;
  line-height:1.22;
}
#page-reservas .reserva-nota-cell{
  -webkit-line-clamp:2;
  color:var(--text3);
  font-size:10.8px;
  line-height:1.22;
}
#page-reservas .reserva-total-cell{
  white-space:nowrap;
  font-weight:900;
}
#page-reservas .reserva-status-badge-list{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  max-width:100%;
  min-height:22px;
  border:1px solid rgba(148,163,184,.16);
  font-size:9.7px;
  line-height:1.1;
  padding:3px 7px;
  white-space:nowrap;
}
#page-reservas .row-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:4px;
  flex-wrap:nowrap;
}
#page-reservas .row-actions .btn-xs{
  min-height:24px;
  height:24px;
  padding:0 6px;
  font-size:10.2px;
  border-radius:8px;
}
#page-reservas .reservas-empty-inline{
  min-height:70px;
  padding:12px;
  background:transparent;
  border:0;
}
.reserva-detalle-overlay{
  position:fixed;
  inset:0;
  z-index:9990;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
  background:rgba(2,6,23,.84);
  backdrop-filter:blur(7px);
}
.reserva-detalle-modal{
  width:min(760px,calc(100vw - 28px));
  max-height:calc(100vh - 28px);
  overflow:auto;
  padding:14px;
  border:1px solid var(--border);
  border-radius:16px;
  background:linear-gradient(180deg, rgba(13,22,40,.99), rgba(8,13,24,.99));
  box-shadow:0 22px 56px rgba(0,0,0,.48);
  font-size:12px;
}
.reserva-detalle-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding-bottom:10px;
  border-bottom:1px solid var(--border);
}
.reserva-detalle-head-actions{
  display:flex;
  align-items:flex-start;
  gap:8px;
}
.reserva-kicker,
.reserva-box-title{
  color:var(--text3);
  font-size:9.8px;
  font-weight:850;
  letter-spacing:.055em;
  text-transform:uppercase;
}
.reserva-numero{
  margin-top:2px;
  color:var(--text);
  font-size:18px;
  line-height:1.05;
  font-weight:950;
}
.reserva-meta{
  margin-top:3px;
  color:var(--text3);
  font-size:11px;
}
.reserva-registrada-grid{
  display:grid;
  grid-template-columns:1.25fr .75fr;
  gap:8px;
  margin-top:10px;
}
.reserva-box{
  padding:10px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--bg-soft);
}
.reserva-main-line{
  margin-top:5px;
  color:var(--text);
  font-size:13px;
  font-weight:900;
}
.reserva-contact-inline,
.reserva-notas{
  margin-top:4px;
  color:var(--text2);
  font-size:11.2px;
  line-height:1.35;
}
.reserva-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding-top:6px;
  margin-top:6px;
  border-top:1px dashed var(--border);
  color:var(--text2);
  font-size:11.2px;
}
.reserva-row strong{
  color:var(--text);
  text-align:right;
}
.reserva-total-ref{
  margin-top:8px;
  color:var(--accent);
  font-size:20px;
  line-height:1;
  font-weight:950;
  text-align:right;
}
.reserva-products-box{margin-top:8px}
.reserva-products-table-wrap{
  margin-top:8px;
  border:1px solid var(--border);
  border-radius:10px;
  overflow:hidden;
}
.reserva-products-table{
  width:100%;
  border-collapse:collapse;
}
.reserva-products-table th,
.reserva-products-table td{
  padding:6px 8px;
  border-bottom:1px solid var(--border);
  font-size:11.2px;
}
.reserva-products-table th{
  color:var(--text3);
  font-size:9.6px;
  font-weight:850;
  letter-spacing:.045em;
  text-transform:uppercase;
  background:var(--bg);
}
.reserva-products-table tr:last-child td{border-bottom:0}
.reserva-products-table small{
  display:block;
  margin-top:2px;
  color:var(--text3);
  font-size:10px;
}
.reserva-actions-bar{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  flex-wrap:wrap;
  margin-top:10px;
  padding-top:10px;
  border-top:1px solid var(--border);
}
.reserva-action-btn{
  min-height:30px;
  padding:0 11px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--bg-soft);
  color:var(--text);
  font-size:11.2px;
  font-weight:750;
  cursor:pointer;
}
.reserva-action-ticket{background:var(--accent-soft);border-color:var(--accent-border)}
.reserva-action-danger{color:#ef4444;border-color:rgba(239,68,68,.32);background:rgba(239,68,68,.08)}
.reserva-action-close{color:var(--text2)}
@media (max-width:1240px){
  #page-reservas .reservas-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  #page-reservas #reservas-table th[data-col-key="productos"]{width:23%}
  #page-reservas #reservas-table th[data-col-key="notas"]{width:14%}
}
@media (max-width:920px){
  #page-reservas .table-wrap{overflow-x:auto}
  #page-reservas #reservas-table{min-width:920px}
  .reserva-registrada-grid{grid-template-columns:1fr}
}
@media (max-width:720px){
  #page-reservas .reservas-head-actions,
  #page-reservas .reservas-search,
  #page-reservas .reservas-filter-select{width:100%}
  #page-reservas .reservas-head-actions .btn{flex:1;min-width:0}
  #page-reservas .reservas-kpis{grid-template-columns:1fr}
  .reserva-detalle-overlay{padding:10px}
  .reserva-detalle-modal{width:calc(100vw - 20px);padding:12px}
  .reserva-detalle-head{flex-direction:column}
  .reserva-actions-bar{align-items:stretch;flex-direction:column}
  .reserva-action-btn{width:100%}
}

/* NUEVA RESERVA — módulo independiente compacto 100% */
#page-nueva-reserva {
  --nr-field-h: 30px;
  --nr-radius: 10px;
  display: none;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
  max-width: 100%;
  overflow-x: hidden;
  font-size: 11.5px;
}
#page-nueva-reserva.active { display: flex; }
.nr-page-head,
.nr-items-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 7px;
  min-width: 0;
}
.nr-page-head {
  min-height: 32px;
  margin-bottom: 0;
}
.nr-page-head-left {
  display: flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
}
.nr-back-btn,
.nr-confirm-btn,
.nr-add-btn {
  min-height: var(--nr-field-h);
  height: var(--nr-field-h);
  padding: 0 10px;
  border-radius: 9px;
  font-size: 11px;
  line-height: 1;
  white-space: nowrap;
}
.nr-confirm-btn { min-width: 142px; }
.nr-add-btn { width: 84px; min-width: 84px; }
.nr-numero-label {
  min-height: 26px;
  display: inline-flex;
  align-items: center;
  color: var(--text2);
  background: var(--bg-soft);
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 0 9px;
  font-size: 11px;
  font-weight: 850;
  line-height: 1;
  white-space: nowrap;
}
.nr-datos-card,
.nr-add-card,
.nr-items-card {
  min-width: 0;
  max-width: 100%;
  padding: 8px 9px;
  border-radius: 12px;
  overflow: visible;
}
.nr-section-title {
  margin-bottom: 6px;
  color: var(--accent);
  font-size: 11.3px;
  font-weight: 900;
  line-height: 1.1;
}
.nr-datos-grid {
  display: grid;
  grid-template-columns: minmax(250px, 1.28fr) minmax(140px, .9fr) minmax(140px, .9fr) minmax(170px, 1fr);
  gap: 6px;
  align-items: start;
  min-width: 0;
}
.nr-contact-notes-grid {
  display: grid;
  grid-template-columns: minmax(210px, .72fr) minmax(280px, 1.55fr);
  gap: 6px;
  margin-top: 6px;
  padding-top: 6px;
  border-top: 1px dashed var(--border);
  min-width: 0;
}
.nr-add-grid {
  display: grid;
  grid-template-columns: minmax(260px, 2fr) 58px 108px 62px 88px 84px;
  gap: 6px;
  align-items: end;
  min-width: 0;
}
.nr-comment-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 6px;
  margin-top: 6px;
  min-width: 0;
}
#page-nueva-reserva .form-group {
  gap: 2px;
  min-width: 0;
}
#page-nueva-reserva label {
  min-height: 11px;
  margin-bottom: 0;
  color: var(--text2);
  font-size: 9.2px;
  font-weight: 850;
  letter-spacing: .045em;
  line-height: 1.05;
  text-transform: uppercase;
  white-space: nowrap;
}
#page-nueva-reserva input,
#page-nueva-reserva select,
#page-nueva-reserva textarea {
  width: 100%;
  min-width: 0;
  border-radius: 9px;
  font-size: 11.5px;
  line-height: 1.1;
}
#page-nueva-reserva input,
#page-nueva-reserva select {
  min-height: var(--nr-field-h);
  height: var(--nr-field-h);
  padding: 4px 8px;
}
#page-nueva-reserva textarea {
  min-height: 30px;
  height: 30px;
  padding: 5px 8px;
  resize: vertical;
}
.nr-client-picker {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 30px 30px;
  gap: 4px;
  align-items: stretch;
  min-width: 0;
}
.nr-field-inner,
.nr-search-inner {
  position: relative;
  min-width: 0;
}
.nr-input-with-icon {
  width: 100%;
  padding-right: 26px !important;
}
.nr-input-icon {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 10.5px;
  pointer-events: none;
  opacity: .7;
}
.nr-client-add-btn,
.nr-client-info-btn {
  width: 30px;
  min-width: 30px;
  height: var(--nr-field-h);
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--card);
  color: var(--text);
  font-size: 11.5px;
  font-weight: 900;
  cursor: pointer;
}
.nr-client-info-btn.nr-is-disabled {
  opacity: .42;
  pointer-events: none;
}
.nr-selected-client,
.nr-estado-help {
  min-height: 12px;
  margin-top: 1px;
  color: var(--text3);
  font-size: 10px;
  line-height: 1.1;
}
.nr-dropdown {
  position: absolute;
  z-index: 3000;
  left: 0;
  right: 0;
  top: calc(100% + 4px);
  max-height: 220px;
  overflow: auto;
  background: linear-gradient(180deg, rgba(15,23,42,.995), rgba(9,14,26,.995));
  border: 1px solid var(--border2);
  border-radius: 10px;
  box-shadow: 0 18px 40px rgba(0,0,0,.44);
  padding: 4px;
}
.nr-dropdown-item {
  width: 100%;
  border: 0;
  background: transparent;
  color: var(--text);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  padding: 6px 7px;
  border-radius: 8px;
  cursor: pointer;
  text-align: left;
}
.nr-dropdown-item:hover { background: var(--bg-soft); }
.nr-dropdown-item strong { font-size: 11.5px; line-height: 1.1; }
.nr-dropdown-item small { font-size: 10px; line-height: 1.1; color: var(--text3); }
.nr-dd-main {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-width: 0;
}
.nr-dd-main strong {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.nr-dd-main em {
  flex: 0 0 auto;
  color: var(--accent);
  font-style: normal;
  font-weight: 900;
  font-size: 11px;
  white-space: nowrap;
}
.nr-dd-meta {
  width: 100%;
  display: flex !important;
  flex-direction: row !important;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  min-width: 0;
}
.nr-dd-meta span:first-child {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.nr-stock-pill {
  flex: 0 0 auto;
  padding: 2px 6px;
  border-radius: 999px;
  background: rgba(59, 130, 246, .10);
  color: var(--accent);
  font-size: 9.5px;
  font-weight: 900;
  white-space: nowrap;
}
.nr-dropdown-empty,
.nr-dropdown-error {
  padding: 7px 8px;
  font-size: 11px;
  color: var(--text3);
}
.nr-dropdown-error { color: var(--red); }
.nr-prod-search-group { position: relative; }
.nr-prod-search-input,
.nr-full-input { width: 100%; }
.nr-label-spacer {
  opacity: 0;
  user-select: none;
}
.nr-prod-info {
  align-items: center;
  justify-content: space-between;
  gap: 7px;
  margin-top: 6px;
  padding: 6px 8px;
  background: var(--bg-soft);
  border: 1px solid var(--border);
  border-radius: 10px;
}
.nr-prod-info-emoji { font-size: 16px; }
.nr-prod-info-main { min-width: 0; flex: 1; }
.nr-prod-info-name {
  font-size: 11.5px;
  font-weight: 850;
  line-height: 1.1;
}
.nr-prod-info-stock,
.nr-prod-info-meta {
  color: var(--text3);
  font-size: 10px;
  line-height: 1.1;
}
.nr-prod-info-stock.out { color: var(--red); font-weight: 800; }
.nr-prod-info-stock.ok { color: var(--green); font-weight: 800; }
.nr-prod-info-pricebox { text-align: right; }
.nr-prod-info-price {
  font-size: 12.5px;
  font-weight: 900;
}
.nr-items-card .table-wrap {
  max-height: 270px;
  overflow: auto;
}
#nr-items-table {
  table-layout: fixed;
  min-width: 0;
}
#nr-items-table th,
#nr-items-table td {
  padding: 5px 6px;
  font-size: 11px;
  line-height: 1.14;
  vertical-align: middle;
  overflow-wrap: anywhere;
}
#nr-items-table th {
  font-size: 9px;
  letter-spacing: .035em;
  white-space: nowrap;
}
#nr-items-table th:nth-child(1),
#nr-items-table td:nth-child(1) { width: 26%; }
#nr-items-table th:nth-child(2),
#nr-items-table td:nth-child(2) { width: 20%; }
#nr-items-table th:nth-child(3),
#nr-items-table td:nth-child(3) { width: 7%; text-align: center; }
#nr-items-table th:nth-child(4),
#nr-items-table td:nth-child(4) { width: 12%; text-align: right; }
#nr-items-table th:nth-child(5),
#nr-items-table td:nth-child(5) { width: 8%; text-align: center; }
#nr-items-table th:nth-child(6),
#nr-items-table td:nth-child(6) { width: 10%; text-align: right; }
#nr-items-table th:nth-child(7),
#nr-items-table td:nth-child(7) { width: 12%; text-align: right; }
#nr-items-table th:nth-child(8),
#nr-items-table td:nth-child(8) { width: 5%; text-align: right; }
.nr-items-title-wrap {
  font-size: 11.5px;
  font-weight: 900;
}
.nr-items-count {
  color: var(--text3);
  font-weight: 700;
}
.nr-items-empty {
  min-height: 54px;
  padding: 10px 8px;
  margin-top: 4px;
}
.nr-totals-bar {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  margin-top: 6px;
  flex-wrap: wrap;
}
.nr-total-mini,
.nr-total-final-inline {
  display: flex;
  align-items: center;
  gap: 5px;
  min-height: 28px;
  padding: 4px 8px;
  border: 1px solid var(--border);
  background: var(--bg-soft);
  border-radius: 10px;
  font-size: 11px;
}
.nr-total-final-inline {
  background: var(--accent-soft);
  border-color: var(--accent-border);
}
.nr-desc-global-input {
  width: 46px !important;
  min-height: 22px !important;
  height: 22px !important;
  padding: 2px 5px !important;
  text-align: center;
}
.nr-total-value {
  font-size: 12px;
  font-weight: 900;
}
.nr-total-final-inline .nr-total-value { font-size: 14px; }
.nr-hidden-js,
.nr-hidden-static { display: none !important; }

.est-today-ranking-card {
  margin-bottom: 8px;
}
.est-today-head {
  align-items: flex-start;
}
.est-today-chips {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  flex-wrap: wrap;
}
.est-today-chips span {
  min-height: 24px;
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--bg3);
  color: var(--text2);
  font-size: 10.5px;
  font-weight: 800;
  white-space: nowrap;
}
.est-today-ranking-list {
  display: grid;
  gap: 6px;
}
.est-today-ranking-row {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) 120px;
  align-items: center;
  gap: 9px;
  min-height: 42px;
  padding: 7px 8px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--bg2);
}
.est-today-rank {
  width: 24px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: rgba(79,142,247,.14);
  color: var(--accent);
  font-size: 11px;
  font-weight: 900;
}
.est-today-product {
  min-width: 0;
  display: grid;
  gap: 3px;
}
.est-today-product strong {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--text);
  font-size: 12px;
}
.est-today-product small {
  color: var(--text3);
  font-size: 10px;
}
.est-today-bar {
  height: 5px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(148,163,184,.14);
}
.est-today-bar span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--accent);
}
.est-today-metrics {
  display: grid;
  gap: 2px;
  justify-items: end;
  text-align: right;
}
.est-today-metrics b {
  color: var(--text);
  font-size: 12px;
}
.est-today-metrics span {
  color: var(--text2);
  font-size: 10.5px;
  font-weight: 800;
}
@media (max-width: 1180px) {
  .nr-datos-grid { grid-template-columns: minmax(230px, 1.25fr) repeat(2, minmax(132px, .9fr)); }
  .nr-datos-grid .form-group:nth-child(4) { grid-column: 1 / -1; }
  .nr-add-grid { grid-template-columns: minmax(220px, 1.6fr) 58px 102px 62px 88px; }
  .nr-add-grid .form-group:last-child { grid-column: auto; }
}
@media (max-width: 920px) {
  .nr-datos-grid,
  .nr-add-grid,
  .nr-contact-notes-grid { grid-template-columns: 1fr 1fr; }
  .nr-datos-grid .form-group:nth-child(4),
  .nr-prod-search-group { grid-column: 1 / -1; }
}
@media (max-width: 680px) {
  .nr-page-head { align-items: stretch; flex-direction: column; }
  .nr-page-head-left { width: 100%; justify-content: space-between; }
  .nr-confirm-btn { width: 100%; }
  .nr-datos-grid,
  .nr-add-grid,
  .nr-contact-notes-grid { grid-template-columns: 1fr; }
  .nr-datos-grid .form-group:nth-child(4),
  .nr-prod-search-group { grid-column: auto; }
}


/* ============================================================
   VISIBILIDAD UTILITARIA
============================================================ */
.is-hidden { display: none !important; }

/* ============================================================
   VENTAS — listado compacto y limpio 100% (20260607)
============================================================ */
#page-ventas {
  --ventas-gap: 8px;
  --ventas-control-h: 34px;
}

#page-ventas .ventas-stats-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--ventas-gap);
  margin-bottom: var(--ventas-gap);
}

#page-ventas .stat-card {
  min-height: 78px;
  padding: 10px 50px 10px 13px;
  border-radius: 13px;
}

#page-ventas .stat-label {
  margin-bottom: 6px;
  font-size: 9.5px;
  line-height: 1.1;
  white-space: nowrap;
}

#page-ventas .stat-value {
  margin-bottom: 4px;
  font-size: clamp(18px, 1.35vw, 23px);
  line-height: 1;
}

#page-ventas .stat-change {
  font-size: 10.5px;
  line-height: 1.15;
}

#page-ventas .stat-icon {
  top: 10px;
  right: 10px;
  width: 30px;
  height: 30px;
  font-size: 16px;
  border-radius: 10px;
}

#page-ventas .table-shell-card {
  padding: 12px;
  border-radius: 14px;
}

#page-ventas .ventas-toolbar {
  gap: 8px;
  margin-bottom: 9px;
  padding-bottom: 9px;
}

#page-ventas .ventas-toolbar-row {
  display: flex;
  align-items: center;
  gap: 7px;
  flex-wrap: wrap;
  width: 100%;
  min-width: 0;
}

#page-ventas .ventas-toolbar-main {
  justify-content: flex-start;
}

#page-ventas .ventas-search,
#page-ventas .ventas-filter-select,
#page-ventas .ventas-date-input {
  height: var(--ventas-control-h);
  min-height: var(--ventas-control-h);
  border-radius: 10px;
  font-size: 12px;
}

#page-ventas .ventas-search {
  padding: 6px 10px;
}

#page-ventas .ventas-search-cliente {
  width: 250px;
  flex: 1 1 250px;
  max-width: 330px;
}

#page-ventas .ventas-search-producto {
  width: 230px;
  flex: 1 1 230px;
  max-width: 300px;
}

#page-ventas .ventas-filter-select {
  width: 166px;
  flex: 0 0 166px;
  padding: 0 10px;
}

#page-ventas .ventas-period-row {
  gap: 6px;
}

#page-ventas .ventas-period-label,
#page-ventas .ventas-period-custom-label,
#page-ventas .ventas-date-sep {
  color: var(--text3);
  font-size: 11px;
  font-weight: 700;
}

#page-ventas .ventas-period-custom-label {
  margin-left: 3px;
  font-weight: 600;
}

#page-ventas .ventas-period-btn,
#page-ventas .ventas-clear-btn,
#page-ventas .ventas-banner-btn {
  min-height: 28px;
  padding: 5px 9px;
  font-size: 10.5px;
  line-height: 1;
}

#page-ventas .ventas-period-btn.is-active {
  color: var(--accent);
  background: var(--accent-bg);
  border-color: rgba(79,142,247,.30);
}

#page-ventas .ventas-date-input {
  width: 124px;
  padding: 0 8px;
}

#page-ventas .ventas-clear-btn {
  color: var(--text3);
}

#page-ventas .ventas-parcial-banner {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 9px;
  padding: 8px 11px;
  border: 1px solid rgba(251,191,36,.28);
  border-radius: 10px;
  color: var(--text2);
  background: rgba(251,191,36,.075);
  font-size: 12px;
  line-height: 1.3;
}

#page-ventas .ventas-banner-btn {
  margin-left: 4px;
  color: var(--accent);
  background: transparent;
  border-color: rgba(79,142,247,.35);
}

#page-ventas .table-resizable-wrap {
  border-radius: 12px;
}

#page-ventas .table-resizable thead th {
  padding: 8px 9px;
}

#page-ventas .table-resizable td {
  padding: 7px 9px;
  font-size: 11.5px;
  line-height: 1.22;
}

#page-ventas .ventas-numero-cell {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 11.5px;
}

#page-ventas .ventas-hora-cell,
#page-ventas .ventas-pago-sub,
#page-ventas .ventas-vendedor-cell {
  color: var(--text3);
  font-size: 10.5px;
  line-height: 1.2;
}

#page-ventas .ventas-hora-cell {
  margin-top: 3px;
}

#page-ventas .ventas-truncate-cell {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#page-ventas .ventas-productos-cell {
  max-width: 190px;
}

#page-ventas .ventas-observaciones-cell {
  max-width: 200px;
  color: var(--text2);
}

#page-ventas .ventas-total-cell {
  color: var(--accent);
}

#page-ventas .ventas-gain-pos {
  color: var(--green);
}

#page-ventas .ventas-gain-neg {
  color: var(--red);
}

#page-ventas .ventas-margen-ok { color: var(--green); }
#page-ventas .ventas-margen-mid { color: var(--amber); }
#page-ventas .ventas-margen-low { color: var(--red); }

#page-ventas .ventas-actions-cell {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-wrap: nowrap;
  white-space: nowrap;
}

#page-ventas .ventas-row-btn {
  min-height: 26px;
  padding: 4px 7px;
  font-size: 10.5px;
  line-height: 1;
  border-radius: 8px;
}

@media (max-width: 1280px) {
  #page-ventas .ventas-stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #page-ventas .ventas-search-cliente,
  #page-ventas .ventas-search-producto { max-width: none; }
}

@media (max-width: 760px) {
  #page-ventas .ventas-stats-grid { grid-template-columns: 1fr; }
  #page-ventas .ventas-search,
  #page-ventas .ventas-filter-select,
  #page-ventas .ventas-date-input { width: 100%; flex: 1 1 100%; }
}

/* ============================================================
   CLIENTES — pulida compacta 100% + paginación visible
   ============================================================ */
#page-clientes {
  --clientes-gap: 8px;
  --clientes-control-h: 34px;
}
#page-clientes .card {
  border-radius: 12px;
}
.clientes-hero-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 8px;
}
.clientes-main-metrics {
  width: 100%;
  gap: 8px;
}
#page-clientes .hero-metric {
  min-height: 34px;
  padding: 7px 10px;
  gap: 7px;
  font-size: 12px;
}
#page-clientes .hero-metric span {
  width: 24px;
  min-width: 24px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: var(--bg3);
  border: 1px solid var(--border);
  font-size: 14px;
}
#page-clientes .hero-metric strong {
  font-size: 13px;
  line-height: 1.1;
}
.clientes-kpi-card,
.clientes-auto-card,
.clientes-table-card {
  margin-bottom: 8px;
}
.clientes-kpi-card {
  padding: 10px;
}
.clientes-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}
.clientes-kpi-item {
  justify-content: flex-start;
}
.clientes-crm-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 8px;
}
#page-clientes .crm-panel-card {
  padding: 10px;
  min-height: 0;
}
#page-clientes .crm-panel-card .card-header,
#page-clientes .crm-auto-card .card-header {
  padding-bottom: 7px;
  margin-bottom: 7px;
}
#page-clientes .card-title {
  font-size: 13px;
  line-height: 1.2;
}
#page-clientes .crm-mini-panel {
  padding: 10px;
  border-radius: 12px;
}
#page-clientes .crm-mini-item {
  padding: 7px 0;
  gap: 8px;
}
#page-clientes .crm-mini-title {
  font-size: 12px;
  line-height: 1.2;
}
#page-clientes .crm-mini-sub,
.crm-muted,
.crm-date-text,
.crm-author-text,
.crm-estimado-text {
  font-size: 11.5px;
  color: var(--text3);
}
.crm-note-text {
  margin-top: 4px;
  color: var(--text2);
  font-size: 12px;
  line-height: 1.25;
}
.crm-note-gap-lg { margin-top: 6px; }
.crm-action-gap { margin-top: 5px; }
.crm-item-right {
  text-align: right;
  white-space: nowrap;
}
.crm-money-text {
  color: var(--green);
  font-weight: 700;
}
.crm-auto-actions,
.clientes-actions-row,
.cliente-panel-head,
.crm-item-head {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
}
.crm-auto-actions,
.clientes-actions-row {
  justify-content: flex-end;
}
.cliente-panel-head,
.crm-item-head {
  justify-content: space-between;
  margin-bottom: 8px;
}
.crm-item-head-center { align-items: center; }
.crm-item-main { flex: 1; min-width: 0; }
.crm-author-text { margin-top: 4px; font-size: 11px; }
.crm-sub-gap-sm { margin-top: 2px; }
.crm-estimado-text { margin-top: 6px; font-size: 12px; }
.clientes-table-header {
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 8px;
  padding-bottom: 8px;
}
.clientes-filters-row {
  flex: 1 1 600px;
  justify-content: flex-start;
  gap: 8px;
}
.clientes-search-box {
  width: min(360px, 100%);
  height: var(--clientes-control-h);
}
.clientes-search-box input,
#page-clientes select,
#page-clientes .btn {
  min-height: var(--clientes-control-h);
}
.clientes-filter-estado { width: 150px; }
.clientes-filter-vendedor { width: 180px; }
.clientes-table-wrap {
  border-radius: 10px;
  overflow: hidden;
}
#clientes-table {
  table-layout: fixed;
}
#clientes-table th,
#clientes-table td {
  padding: 5px 8px;
  font-size: 11.5px;
  line-height: 1.18;
  vertical-align: middle;
}
#clientes-table th {
  font-size: 9.5px;
  letter-spacing: .055em;
  line-height: 1.05;
  white-space: nowrap;
}
#clientes-table th .th-label {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
#clientes-table td {
  overflow: hidden;
  text-overflow: ellipsis;
}
#clientes-table .cell-title {
  gap: 1px;
}
#clientes-table .cell-title strong {
  font-size: 12px;
  line-height: 1.15;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
#clientes-table .cell-title small {
  font-size: 10.5px;
  line-height: 1.15;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
#clientes-table .cliente-codigo-cell {
  font-size: 11.5px;
  line-height: 1.12;
}
#clientes-table .cliente-tags-cell {
  display: flex;
  flex-wrap: nowrap;
  gap: 3px;
  max-width: 100%;
  overflow: hidden;
}
#clientes-table .cliente-tag-badge {
  max-width: 72px;
  padding: 2px 6px;
  font-size: 10px;
  line-height: 1.05;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
#clientes-table .badge {
  padding: 2px 7px;
  font-size: 10.5px;
  line-height: 1.1;
}
#clientes-table .row-actions {
  gap: 3px;
  justify-content: flex-end;
  flex-wrap: nowrap;
}
#clientes-table .btn-xs {
  min-height: 22px;
  padding: 2px 6px;
  font-size: 10.5px;
  line-height: 1;
  border-radius: 7px;
}
#clientes-table .btn-red.btn-xs {
  width: 24px;
  padding-left: 0;
  padding-right: 0;
}
.clientes-date-cell {
  font-size: 12px;
  color: var(--text3);
}
.clientes-center-cell {
  text-align: center;
}
.clientes-money-cell {
  color: var(--green);
  font-weight: 700;
}
.clientes-op-gap {
  margin-top: 4px;
}
.clientes-empty {
  display: none;
}
#page-clientes .clientes-table-card {
  padding: 10px;
}
#page-clientes .clientes-table-wrap {
  max-height: calc(100vh - 305px);
  min-height: 208px;
}
#clientes-table td:nth-child(6),
#clientes-table td:nth-child(7),
#clientes-table td:nth-child(8),
#clientes-table td:nth-child(9) {
  white-space: nowrap;
}
#clientes-table td:nth-child(5) {
  white-space: normal;
  overflow-wrap: anywhere;
}
#clientes-table .clientes-op-gap {
  margin-top: 2px;
}
.cliente-tag-check-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 9px;
  border: 1px solid var(--border2);
  border-radius: 999px;
  background: var(--bg2);
  font-size: 12px;
  cursor: pointer;
}
.cliente-tag-dot {
  display: inline-block;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--accent);
}
.cliente-tag-badge {
  margin-right: 4px;
  margin-bottom: 4px;
  background: var(--accent-bg);
  color: var(--accent);
  border: 1px solid color-mix(in srgb, var(--accent) 36%, transparent);
}
.cliente-detalle-kpis {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 10px;
}
.cliente-detalle-grid {
  display: grid;
  grid-template-columns: 300px 1fr;
  gap: 10px;
}
.cliente-detalle-main {
  display: grid;
  gap: 10px;
}
.cliente-detalle-card {
  padding: 12px;
}
.cliente-card-title-gap { margin-bottom: 8px; }
.cliente-card-title-gap-sm { margin-bottom: 6px; }
.cliente-resumen-list {
  display: grid;
  gap: 7px;
  font-size: 12.5px;
}
.cliente-inline-gap,
.cliente-observaciones { margin-top: 5px; }
.cliente-observaciones { color: var(--text2); }
.cliente-tabs { margin-bottom: 8px; }
.cliente-tab-panel { display: none; }
.cliente-tab-panel.is-active { display: block; }
.cliente-resumen-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.pag-bar {
  padding: 7px 10px;
  min-height: 38px;
}
.pag-btn {
  min-width: 28px;
  height: 28px;
  border-radius: 6px;
  font-size: 12px;
}
.pag-info,
.pag-size,
.pag-per-page {
  font-size: 11.5px;
}
.pag-size,
.pag-per-page {
  height: 28px;
  padding: 0 6px;
  border-radius: 6px;
  border: 1px solid var(--border2);
  background: var(--bg3);
  color: var(--text2);
  cursor: pointer;
  margin-left: 4px;
}
@media (max-width: 1200px) {
  .clientes-crm-grid,
  .clientes-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cliente-detalle-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cliente-detalle-grid { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .clientes-crm-grid,
  .clientes-kpi-grid,
  .cliente-resumen-grid { grid-template-columns: 1fr; }
  .clientes-filters-row,
  .clientes-actions-row { flex: 1 1 100%; justify-content: stretch; }
  .clientes-search-box,
  .clientes-filter-estado,
  .clientes-filter-vendedor,
  .clientes-actions-row .btn { width: 100%; }
}

/* ============================================================
   INVENTARIO — pulida visual compacta 100% zoom 20260607
   Alcance: listado, filtros, stock por ubicación, transferencias y modal producto.
============================================================ */
#page-inventario {
  font-size: 12.5px;
}

#page-inventario .inv-stats-grid {
  gap: 8px;
  margin-bottom: 8px;
}

#page-inventario .stat-card {
  min-height: 78px;
  padding: 12px 14px;
}

#page-inventario .stat-card .stat-label {
  font-size: 10px;
  letter-spacing: .08em;
}

#page-inventario .stat-card .stat-value {
  font-size: 24px;
  line-height: 1.05;
  margin-top: 2px;
}

#page-inventario .stat-card .stat-change {
  font-size: 10.5px;
  margin-top: 4px;
}

#page-inventario .stat-card .stat-icon {
  width: 32px;
  height: 32px;
  font-size: 16px;
  right: 12px;
  top: 12px;
}

#page-inventario .inv-tabs-row {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  margin: 0 0 10px;
  border-bottom: 1px solid var(--border);
}

#page-inventario .inv-tabs-row .tab {
  min-height: 31px;
  padding: 7px 12px 8px;
  margin-bottom: -1px;
  border-bottom: 2px solid transparent;
  border-radius: 10px 10px 0 0;
  font-size: 12px;
}

#page-inventario .inv-tabs-row .tab.active {
  border-bottom-color: var(--accent);
  background: rgba(59,130,246,.10);
}

#page-inventario .table-shell-card,
#page-inventario #inv-lista > .card,
#page-inventario #inv-ubic > .card,
#page-inventario .inv-history-card {
  padding: 14px;
  border-radius: 15px;
}

#page-inventario .inv-toolbar-compact {
  margin: -14px -14px 10px;
  padding: 10px 12px;
  background: rgba(255,255,255,.018);
  border-bottom: 1px solid var(--border);
}

#page-inventario .inv-toolbar-row {
  display: grid;
  grid-template-columns: minmax(240px, 1.4fr) minmax(118px, .52fr) minmax(118px, .52fr) minmax(160px, .72fr) auto;
  gap: 7px;
  align-items: center;
}

#page-inventario .inv-search-compact,
#page-inventario .inv-select-compact,
#page-inventario .inv-toolbar-actions .btn,
#page-inventario .inv-history-search {
  height: 34px;
}

#page-inventario .inv-search-compact {
  min-width: 0;
  max-width: none;
}

#page-inventario .inv-search-compact input {
  height: 100%;
  font-size: 12.5px;
}

#page-inventario .inv-select-compact {
  width: 100%;
  min-width: 0;
  max-width: none;
  padding: 6px 8px;
  font-size: 12px;
}

#page-inventario .inv-toolbar-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  margin-left: 0;
}

#page-inventario .inv-toolbar-actions .btn {
  min-width: 78px;
  padding: 0 11px;
  font-size: 12px;
}

#page-inventario #inv-kpi-mini,
#page-inventario #inv-ubic-resumen,
#page-inventario #inv-history-summary {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin: 0 0 8px;
  padding: 0;
}

#page-inventario .inv-summary-badge {
  padding: 5px 8px;
  border-radius: 10px;
  font-size: 11px;
}

#page-inventario .table-resizable-wrap {
  border-radius: 12px;
}

#page-inventario .table-resizable {
  table-layout: fixed;
  min-width: 100%;
}

#page-inventario .table-resizable thead th {
  padding: 7px 6px;
  background: rgba(8,12,22,.92);
}

#page-inventario .table-resizable th .th-label {
  font-size: 9.5px;
  letter-spacing: .06em;
  line-height: 1.15;
  white-space: normal;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

#page-inventario .table-resizable td {
  padding: 6px 6px;
  font-size: 11.2px;
  line-height: 1.15;
  vertical-align: middle;
  overflow-wrap: normal;
}

#page-inventario .table-resizable td:nth-child(2) {
  white-space: normal;
}

#page-inventario .cell-title,
#page-inventario .inv-product-cell {
  gap: 1px;
  line-height: 1.12;
}

#page-inventario .cell-title strong,
#page-inventario .inv-product-cell strong {
  font-size: 11.5px;
  font-weight: 760;
}

#page-inventario .cell-title small,
#page-inventario .inv-product-cell small,
#page-inventario .muted {
  font-size: 10.5px;
  line-height: 1.2;
}

#page-inventario .inv-code-cell {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 10.4px;
  color: var(--text3);
  white-space: nowrap;
}

#page-inventario .inv-price-cell,
#page-inventario .inv-money-cell {
  color: var(--accent);
  font-weight: 720;
  white-space: nowrap;
}

#page-inventario .inv-stock-cell,
#page-inventario .inv-stock-min-cell {
  text-align: center;
}

#page-inventario .inv-stock-min-cell {
  color: var(--text3);
}

#page-inventario .inv-stock-num {
  min-width: 22px;
  height: 20px;
  padding: 0 6px;
  border-radius: 999px;
  font-size: 10.6px;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.03);
}

#page-inventario .inv-stock-num.ok {
  color: var(--green);
  background: rgba(34,197,94,.14);
  border-color: rgba(34,197,94,.24);
}

#page-inventario .inv-stock-num.warn {
  color: var(--amber);
  background: rgba(245,158,11,.14);
  border-color: rgba(245,158,11,.26);
}

#page-inventario .inv-stock-num.bad {
  color: var(--red);
  background: rgba(239,68,68,.13);
  border-color: rgba(239,68,68,.25);
}

html[data-theme="light"] #page-inventario .inv-stock-num.ok {
  background: rgba(34,197,94,.12);
  border-color: rgba(22,163,74,.22);
}

html[data-theme="light"] #page-inventario .inv-stock-num.warn {
  background: rgba(245,158,11,.13);
  border-color: rgba(217,119,6,.22);
}

html[data-theme="light"] #page-inventario .inv-stock-num.bad {
  background: rgba(239,68,68,.11);
  border-color: rgba(220,38,38,.22);
}

#page-inventario .inv-cat-badge,
#page-inventario .inv-brand-badge,
#page-inventario .table-resizable .badge {
  max-width: 100%;
  padding: 3px 6px;
  border-radius: 8px;
  font-size: 10px;
  line-height: 1.15;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

#page-inventario .row-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 4px;
  flex-wrap: nowrap;
}

#page-inventario .row-actions .btn {
  min-height: 24px;
  padding: 0 6px;
  font-size: 10.6px;
  border-radius: 8px;
}

#page-inventario #inv-pag-container .pag-bar {
  padding: 8px 4px 0;
}

#page-inventario #inv-pag-container .pag-size {
  height: 32px;
  font-size: 11.5px;
}

#page-inventario .empty-state {
  padding: 16px 10px;
}

#page-inventario .inv-history-card {
  overflow:hidden;
}

#page-inventario .inv-history-header {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:end;
  gap:10px;
  margin:-14px -14px 10px;
  padding:12px 14px 10px;
  border-bottom:1px solid var(--border);
  background:rgba(255,255,255,.018);
}

#page-inventario .inv-history-header .card-title {
  font-size:14px;
  line-height:1.15;
}

#page-inventario .inv-history-header .card-subtitle {
  margin-top:3px;
  font-size:11.2px;
  line-height:1.25;
}

#page-inventario .inv-history-tools {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:7px;
  min-width:0;
}

#page-inventario .inv-history-search {
  width:min(360px,34vw);
  min-width:220px;
  max-width:360px;
  height:34px;
  padding:0 10px;
  border-radius:10px;
  font-size:12px;
}

#page-inventario .inv-history-tools .btn {
  height:34px;
  min-height:34px;
  padding:0 11px;
  border-radius:10px;
  font-size:11.5px;
}

#page-inventario .inv-history-list {
  display:grid;
  gap:6px;
  max-height:440px;
  overflow:auto;
  padding-right:2px;
}

#page-inventario .inv-history-item {
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(210px,.9fr) 72px;
  align-items:center;
  gap:9px;
  padding:8px 10px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--bg2);
}

#page-inventario .inv-history-product {
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
}

#page-inventario .inv-history-icon {
  width:28px;
  height:28px;
  min-width:28px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(59,130,246,.22);
  border-radius:9px;
  background:rgba(59,130,246,.12);
  color:var(--accent);
  font-size:15px;
  font-weight:900;
}

#page-inventario .inv-history-main {
  min-width:0;
}

#page-inventario .inv-history-title {
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--text);
  font-size:12.4px;
  font-weight:850;
}

#page-inventario .inv-history-meta {
  margin-top:2px;
  color:var(--text3);
  font-size:10.8px;
  line-height:1.15;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

#page-inventario .inv-history-route {
  display:grid;
  grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr);
  align-items:center;
  gap:5px;
  min-width:0;
}

#page-inventario .inv-history-route span {
  min-width:0;
  padding:5px 7px;
  border:1px solid var(--border);
  border-radius:999px;
  background:var(--bg3);
  color:var(--text2);
  font-size:10.8px;
  font-weight:800;
  text-align:center;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

#page-inventario .inv-history-route strong {
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--accent);
  font-size:14px;
}

#page-inventario .inv-history-qty {
  display:flex;
  align-items:baseline;
  justify-content:flex-end;
  gap:3px;
  color:var(--text);
  white-space:nowrap;
}

#page-inventario .inv-history-qty strong {
  font-size:17px;
  line-height:1;
  font-weight:900;
}

#page-inventario .inv-history-qty span {
  color:var(--text3);
  font-size:10.5px;
  font-weight:800;
}

#page-inventario .inv-history-note {
  grid-column:1 / -1;
  margin-left:36px;
  padding:6px 8px;
  border:1px solid var(--border);
  border-radius:10px;
  background:rgba(255,255,255,.018);
  color:var(--text3);
  font-size:10.8px;
  line-height:1.25;
}

#page-inventario .inv-empty-inline {
  padding:14px 10px;
  border:1px dashed var(--border);
  border-radius:12px;
  background:var(--bg2);
  color:var(--text3);
  font-size:11.5px;
  text-align:center;
}

.inv-modal {
  width:min(1020px, calc(100vw - 28px));
  max-width:1020px;
  max-height:calc(100vh - 28px);
  padding:14px 16px 12px;
  overflow:auto;
}

.inv-modal .modal-header,
.inv-transfer-modal .modal-header {
  align-items:flex-start;
  gap:12px;
  padding-bottom:8px;
  margin-bottom:9px;
}

.inv-modal .modal-title {
  font-size:15px;
  line-height:1.15;
}
.inv-modal .modal-subtitle { max-width:620px; }
.inv-modal .modal-close {
  width:30px;
  height:30px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
}

.modal-subtitle,
.inv-field-help {
  font-size:10.5px;
  color:var(--text3);
  margin-top:2px;
  line-height:1.25;
}

.inv-form-grid {
  display:grid;
  grid-template-columns:minmax(0,1fr) 330px;
  gap:12px;
  align-items:start;
}

.inv-form-grid-inner {
  display:grid;
  grid-template-columns:minmax(120px,1fr) minmax(120px,1fr) minmax(120px,1fr) 58px;
  margin:0;
  gap:7px 8px;
}

.inv-modal .form-group {
  gap:3px;
  min-width:0;
}

.inv-modal .form-group label,
.inv-stock-card label {
  margin:0;
  font-size:10px;
  line-height:1.15;
  font-weight:800;
  letter-spacing:.055em;
  text-transform:uppercase;
  color:var(--text3);
}

.inv-modal input,
.inv-modal textarea,
.inv-modal select {
  min-height:32px;
  padding:6px 9px;
  border-radius:9px;
  font-size:12px;
}

.inv-modal textarea {
  min-height:44px;
  resize:vertical;
  line-height:1.25;
}

#p-emoji {
  text-align:center;
  padding-left:6px;
  padding-right:6px;
}

#modal-producto .inv-description-field,
#modal-producto .inv-barcodes-field {
  grid-column:span 2;
}

.inv-panel {
  padding:10px;
  border:1px solid var(--border);
  border-radius:13px;
  background:rgba(15,23,42,.15);
}

.inv-panel-title {
  display:flex;
  align-items:center;
  gap:6px;
  margin-bottom:7px;
  font-size:11.8px;
  line-height:1.2;
  font-weight:800;
}

.inv-side-stack {
  display:grid;
  gap:8px;
}

.inv-stock-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:6px;
}

.inv-stock-card {
  display:grid;
  gap:4px;
  padding:7px;
  border:1px solid var(--border);
  border-radius:11px;
  background:var(--bg2);
  min-width:0;
}

.inv-stock-card label {
  min-height:20px;
  display:flex;
  align-items:flex-end;
}

.inv-stock-card input {
  text-align:center;
  font-weight:850;
}

.inv-stock-total-info {
  margin-top:7px;
  text-align:center;
}

.inv-panel-sub {
  margin-top:7px;
  padding:7px 8px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--bg2);
  font-size:10.5px;
  line-height:1.25;
  color:var(--text3);
}

.inv-tip {
  padding:6px 8px;
  font-size:10.8px;
  line-height:1.25;
  border-radius:10px;
}

.inv-kv {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:5px;
}

.inv-kv .metric-card {
  min-height:auto;
  padding:8px;
  border-radius:11px;
}

.inv-kv .metric-card .stat-label {
  margin-bottom:4px;
  font-size:9.4px;
}

.inv-kv .metric-card .stat-value {
  margin:0;
  font-size:18px;
  line-height:1.1;
}

#p-margen-info {
  display:grid;
  gap:6px;
  margin-top:7px;
}

.inv-modal .modal-footer {
  margin-top:9px;
  padding-top:10px;
}

.inv-modal .modal-footer .btn {
  min-height:34px;
  padding:7px 16px;
  border-radius:10px;
}

.inv-transfer-modal {
  max-width: 480px;
}

.inv-transfer-current {
  margin-bottom: 12px;
  padding: 10px 12px;
  background: var(--bg3);
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
}

.inv-transfer-current-label {
  font-size: 10px;
  color: var(--text3);
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-bottom: 6px;
}

.inv-transfer-stock-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  padding: 5px 0;
  border-bottom: 1px solid var(--border);
  font-size: 12px;
  color: var(--text2);
}

.inv-transfer-stock-row:last-child {
  border-bottom: 0;
}

.form-error {
  margin-top: 8px;
  padding: 9px 12px;
  background: var(--red-bg);
  border: 1px solid rgba(239,68,68,.25);
  border-radius: var(--radius-sm);
  font-size: 12px;
  color: var(--red);
}

.text-green {
  color: var(--green);
}

@media (max-width: 1280px) {
  #page-inventario .inv-toolbar-row {
    grid-template-columns: minmax(220px, 1fr) minmax(118px, .45fr) minmax(118px, .45fr) minmax(150px, .58fr) auto;
  }
}

@media (max-width: 980px) {
  #page-inventario .inv-toolbar-row {
    grid-template-columns: 1fr 1fr;
  }
  #page-inventario .inv-toolbar-actions {
    justify-content: flex-start;
  }
  #page-inventario .inv-history-header {
    grid-template-columns:1fr;
    align-items:start;
  }
  #page-inventario .inv-history-tools {
    width: 100%;
    justify-content:flex-start;
  }
  #page-inventario .inv-history-search {
    flex: 1 1 220px;
    width:auto;
    max-width: none;
  }
  #page-inventario .inv-history-item {
    grid-template-columns:minmax(0,1fr) 72px;
  }
  #page-inventario .inv-history-route {
    grid-column:1 / -1;
    order:3;
  }
  #page-inventario .inv-history-note {
    order:4;
  }
  .inv-form-grid {
    grid-template-columns: 1fr;
  }
  .inv-side-stack {
    grid-template-columns:1fr 1fr;
    align-items:start;
  }
  .inv-form-grid-inner {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
  #modal-producto .inv-description-field,
  #modal-producto .inv-barcodes-field {
    grid-column:1 / -1;
  }
}


@media (max-width: 620px) {
  .inv-modal {
    width:100%;
    max-width:none;
    padding:12px;
  }
  .inv-form-grid-inner,
  .inv-stock-grid,
  .inv-kv,
  .inv-side-stack {
    grid-template-columns:1fr;
  }
  .inv-modal .modal-header {
    margin-bottom:9px;
  }
  #page-inventario .inv-history-tools {
    flex-direction:column;
    align-items:stretch;
  }
  #page-inventario .inv-history-tools .btn,
  #page-inventario .inv-history-search {
    width:100%;
    min-width:0;
  }
  #page-inventario .inv-history-item {
    grid-template-columns:minmax(0,1fr);
    gap:7px;
  }
  #page-inventario .inv-history-qty {
    justify-content:flex-start;
    padding-left:36px;
  }
  #page-inventario .inv-history-route {
    grid-template-columns:1fr 24px 1fr;
  }
  #page-inventario .inv-history-note {
    margin-left:0;
  }
}

/* ===============================
   COMPRAS — visual compacto 100% (2026-06-07)
=============================== */
#page-compras {
  font-size: 12.5px;
}
#page-compras .compras-hero-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 10px;
}
#page-compras .compras-hero-metrics {
  gap: 7px;
}
#page-compras .hero-metric {
  min-height: 30px;
  padding: 6px 10px;
  border-radius: 12px;
  font-size: 12px;
}
#page-compras .hero-metric span {
  font-size: 13px;
}
#page-compras .compras-stats-grid {
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 10px;
  margin-bottom: 10px;
}
#page-compras .stat-card {
  min-height: 78px;
  padding: 12px 14px;
}
#page-compras .stat-card .stat-value {
  font-size: 22px;
  line-height: 1.1;
}
#page-compras .stat-card .stat-label {
  font-size: 10.5px;
}
#page-compras .table-shell-card {
  padding: 12px 14px 12px;
}
#page-compras .compras-toolbar {
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
  padding-bottom: 10px;
  margin-bottom: 10px;
}
#page-compras .compras-toolbar-row {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(145px, 170px) minmax(145px, 170px) max-content minmax(168px, 176px);
  gap: 8px;
  align-items: center;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}
#page-compras .compras-toolbar-row > *,
#page-compras .compras-toolbar-date-row > * {
  min-width: 0;
}
#page-compras .compras-search,
#page-compras .compras-filter,
#page-compras .compras-date-range,
#page-compras .compras-clear,
#page-compras .compras-new-btn {
  height: 34px;
  min-height: 34px;
  max-height: 34px;
  box-sizing: border-box;
}
#page-compras .compras-search {
  width: 100%;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 10px;
  overflow: hidden;
}
#page-compras .compras-search input,
#page-compras .compras-filter,
#page-compras .compras-date-range input {
  height: 34px;
  min-height: 34px;
  font-size: 12px;
  box-sizing: border-box;
}
#page-compras .compras-search input {
  height: 32px;
  min-height: 32px;
  padding: 0;
  border: 0;
  background: transparent;
}
#page-compras .compras-period-group {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 34px;
  padding: 3px 5px 3px 8px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--bg2);
  white-space: nowrap;
}
#page-compras .compras-period-group > span {
  font-size: 10.5px;
  color: var(--text3);
  text-transform: uppercase;
  letter-spacing: .05em;
  margin-right: 2px;
}
#page-compras .compras-period-group .btn {
  min-height: 26px;
  padding: 5px 7px;
  font-size: 10.5px;
  border-radius: 9px;
}
#page-compras .compras-period-group .btn.is-active {
  background: var(--accent-bg);
  color: var(--accent);
  border-color: rgba(79,142,247,.34);
}

#page-compras .compras-toolbar-date-row {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
  width: 100%;
  margin-top: 0;
}
#page-compras .compras-toolbar-date-row .compras-clear {
  flex: 0 0 96px;
  width: 96px;
}

#page-compras .compras-date-range {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 0;
  min-width: 230px;
  width: 230px;
}
#page-compras .compras-date-range input {
  min-width: 0;
  width: calc((100% - 16px) / 2);
  padding-inline: 7px;
}
#page-compras .compras-date-range span {
  color: var(--text3);
  font-size: 11px;
}
#page-compras .compras-clear,
#page-compras .compras-new-btn {
  width: 100%;
  padding: 0 10px;
  white-space: nowrap;
  justify-content: center;
  align-items: center;
  line-height: 1;
  overflow: visible;
  font-size: 12px;
}
#page-compras .compras-new-btn {
  min-width: 168px;
}
#page-compras .table-resizable-wrap {
  border-radius: 12px;
  overflow-x: hidden;
}
#page-compras .table-resizable {
  width: 100%;
  min-width: 100%;
  table-layout: fixed;
}
#page-compras .table-resizable thead th {
  padding: 7px 6px;
  text-align: center;
  vertical-align: middle;
}
#page-compras .table-resizable th .th-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  white-space: nowrap;
  font-size: 9px;
  letter-spacing: .045em;
  line-height: 1.05;
  text-align: center;
}
#page-compras .table-resizable td {
  padding: 6px 6px;
  font-size: 11px;
  line-height: 1.16;
  vertical-align: middle;
  text-align: center;
}
#page-compras .table-resizable td:nth-child(3) {
  text-align: left;
}
#page-compras .table-resizable th:nth-child(3) .th-label {
  justify-content: flex-start;
  text-align: left;
}
#page-compras .table-resizable td:nth-child(7) {
  text-align: right;
}
#page-compras .table-resizable th:nth-child(7) .th-label {
  justify-content: flex-end;
  text-align: right;
}
#page-compras .compra-prov-title {
  font-weight: 700;
  color: var(--text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
#page-compras .compra-prov-sub {
  font-size: 10.5px;
  color: var(--text3);
  margin-top: 2px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
#page-compras .cmp-money-cell {
  font-weight: 800;
  color: var(--accent);
  white-space: nowrap;
}
#page-compras .badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  max-width: 100%;
  font-size: 9.5px;
  line-height: 1;
  padding: 3px 7px;
  border-radius: 999px;
  white-space: nowrap;
}
#page-compras .table-resizable td:nth-child(5) .badge,
#page-compras .table-resizable td:nth-child(8) .badge {
  min-width: 58px;
}
#page-compras .row-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  flex-wrap: nowrap;
  min-width: 0;
  width: 100%;
}
#page-compras .row-actions .btn {
  flex: 0 0 auto;
  min-height: 24px;
  min-width: 38px;
  padding: 4px 6px;
  font-size: 10px;
  line-height: 1;
  border-radius: 8px;
  white-space: nowrap;
}
#page-compras .row-actions .btn:nth-child(2) {
  min-width: 54px;
}
#page-compras #compras-pag-container {
  margin-top: 8px;
}
#page-compras #compras-empty {
  margin-top: 8px;
  padding: 18px;
}
#page-compras .col-resize-handle::after {
  top: 22%;
  bottom: 22%;
}

.compra-modal {
  width: min(1040px, calc(100vw - 34px));
  max-width: 1040px;
  max-height: calc(100vh - 32px);
  overflow: hidden;
  padding: 18px 20px;
  display: flex;
  flex-direction: column;
}
.compra-modal .modal-header {
  flex: 0 0 auto;
  padding-bottom: 9px;
  margin-bottom: 10px;
}
.compra-modal .modal-title {
  font-size: 17px;
  line-height: 1.15;
}
.compra-modal .modal-subtitle {
  font-size: 11.2px;
  color: var(--text3);
  margin-top: 2px;
}
.compra-modal .compra-form-grid {
  flex: 0 0 auto;
  display: grid;
  grid-template-columns: minmax(260px, 1.35fr) minmax(130px, .7fr) minmax(180px, 1fr);
  gap: 7px 10px;
}
.compra-modal .compra-prov-field {
  min-width: 0;
}
.compra-modal .form-group label,
.compra-inline-label {
  display: block;
  margin: 0 0 4px;
  font-size: 10.5px;
  line-height: 1.15;
  color: var(--text3);
  font-weight: 850;
  letter-spacing: .055em;
  text-transform: uppercase;
}
.compra-modal input,
.compra-modal select,
.compra-modal textarea {
  min-height: 32px;
  height: 32px;
  padding: 6px 10px;
  border-radius: 10px;
  font-size: 11.8px;
}
.compra-modal textarea {
  min-height: 44px;
  height: 44px;
  resize: none;
}
.compra-modal .form-group.full {
  grid-column: 1 / -1;
}
.compra-add-card {
  flex: 0 0 auto;
  margin-top: 9px;
  padding: 10px;
  background: var(--bg3);
  border: 1px solid var(--border);
  border-radius: 14px;
  overflow: visible;
}
.compra-add-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 0 0 7px;
  margin-bottom: 7px;
  border-bottom: 1px solid var(--border);
}
.compra-add-header .card-title {
  font-size: 13px;
  line-height: 1.1;
}
.compra-add-header .card-subtitle {
  margin-top: 1px;
  font-size: 10.6px;
  line-height: 1.2;
}
.compra-add-grid {
  display: grid;
  grid-template-columns: minmax(280px, 1fr) 82px 112px 104px;
  gap: 7px;
  align-items: end;
}
.compra-add-grid input {
  width: 100%;
}
.compra-add-grid .btn {
  min-height: 32px;
  height: 32px;
  padding: 6px 10px;
  border-radius: 10px;
  font-size: 11.5px;
  white-space: nowrap;
}
.compra-producto-info {
  min-height: 15px;
  margin-top: 5px;
  font-size: 10.8px;
  color: var(--text3);
}
.compra-detail-label {
  flex: 0 0 auto;
  margin: 8px 0 6px;
  font-size: 10.8px;
  color: var(--text3);
  font-weight: 850;
  letter-spacing: .055em;
  text-transform: uppercase;
}
#modal-compra #compra-items-list {
  flex: 1 1 auto;
  min-height: 52px;
  max-height: 190px;
  overflow-y: auto;
  overflow-x: hidden;
  padding-right: 2px;
}
#modal-compra #compra-items-list {
  border: 1px solid var(--border);
  border-radius: 13px;
  background: var(--bg2);
  padding: 6px;
}
.compra-items-head {
  display: grid;
  grid-template-columns: minmax(0,1fr) 76px 112px 116px 30px;
  gap: 7px;
  align-items: center;
  padding: 3px 7px 6px;
  color: var(--text3);
  font-size: 9.8px;
  font-weight: 850;
  letter-spacing: .055em;
  text-transform: uppercase;
}
.compra-items-head span:nth-child(n+2) {
  text-align: center;
}
.compra-item-row {
  align-items: center;
  gap: 7px;
  padding: 7px 8px;
  border-radius: 11px;
}
.compra-item-row {
  display: grid !important;
  grid-template-columns: minmax(0,1fr) 76px 112px 116px 30px;
  gap: 7px;
  width: 100%;
  margin: 0 0 6px;
  border: 1px solid var(--border);
  background: var(--bg3);
}
.compra-item-row:last-child { margin-bottom: 0; }
.compra-item-main {
  flex: 1 1 auto;
  min-width: 170px;
}
.compra-item-title {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 800;
  color: var(--text);
  font-size: 11.8px;
}
.compra-item-sub {
  font-size: 10px;
  color: var(--text3);
  margin-top: 1px;
}
.compra-item-field {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.compra-item-field span {
  font-size: 10px;
  color: var(--text3);
}
.compra-item-field input {
  height: 29px;
  min-height: 29px;
  padding: 5px 8px;
  font-size: 11.3px;
}
.compra-item-qty {
  width: 56px;
}
.compra-item-cost {
  width: 90px;
}
.compra-item-total {
  min-width: 92px;
  text-align: right;
  font-weight: 900;
  color: var(--text);
  font-size: 11.8px;
}
.compra-item-field {
  justify-content: center;
}
.compra-item-field span {
  display: none;
}
.compra-item-field input {
  width: 100%;
  text-align: center;
  font-weight: 750;
}
.compra-item-total {
  min-width: 0;
  padding: 6px 8px;
  border-radius: 9px;
  background: var(--bg2);
  text-align: center;
}
.compra-item-row .sale-item-remove {
  width: 28px;
  height: 28px;
  min-width: 28px;
  border-radius: 8px;
  justify-self: end;
}
.compra-items-empty {
  padding: 13px;
  text-align: center;
  color: var(--text3);
  font-size: 12px;
  border: 1px dashed var(--border);
  border-radius: 12px;
  background: var(--bg3);
}
.compra-total-row {
  flex: 0 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 8px;
  gap: 10px;
  flex-wrap: wrap;
  padding: 8px 10px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--bg3);
}
#compra-resumen-display {
  font-size: 11px;
  color: var(--text3);
  font-weight: 750;
}
#compra-total-display {
  display: flex;
  justify-content: flex-end;
  font-size: 15px;
  font-weight: 900;
  color: var(--accent);
}
.compra-modal .modal-footer {
  flex: 0 0 auto;
  margin-top: 10px;
  padding-top: 10px;
}
.comp-prod-results {
  max-height: 230px;
  overflow: auto;
  border: 1px solid var(--border2);
  border-radius: 12px;
  padding: 5px;
  background: var(--bg2);
  box-shadow: 0 18px 44px rgba(0,0,0,.30);
}
.comp-prod-portal {
  position: fixed;
  z-index: 12000;
  display: none;
  min-width: 360px;
  max-width: min(720px, calc(100vw - 24px));
}
.comp-prod-result {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 44px;
  padding: 7px 9px;
  border: 1px solid transparent;
  border-radius: 10px;
  cursor: pointer;
}
.comp-prod-result:hover,
.comp-prod-result.active {
  background: var(--bg3);
  border-color: var(--border2);
}
.comp-prod-result small {
  font-size: 10.3px;
  line-height: 1.15;
  color: var(--text3);
}
.comp-prod-emoji {
  flex: 0 0 auto;
  font-size: 17px;
}
.comp-result-main {
  flex: 1 1 auto;
  min-width: 0;
}
.comp-result-title {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 800;
  font-size: 12px;
  color: var(--text);
}
.comp-result-side {
  flex: 0 0 auto;
  min-width: 76px;
  text-align: right;
}
.comp-result-money {
  font-weight: 900;
  font-size: 12px;
  color: var(--accent);
}
@media (max-width: 760px) {
  .compra-modal {
    width: calc(100vw - 20px);
    max-height: calc(100vh - 20px);
    padding: 14px;
    overflow-y: auto;
  }
  .compra-modal .compra-form-grid,
  .comp-prod-portal { min-width: 0; }
  .compra-add-grid {
    grid-template-columns: 1fr;
  }
  #modal-compra #compra-items-list {
    max-height: none;
    overflow: visible;
  }
  .compra-items-head{display:none}
  .compra-item-row {
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
  }
  .compra-item-main { grid-column: 1 / -1; }
  .compra-item-field span { display:block; }
  .compra-item-total { text-align:center; }
  .compra-item-row .sale-item-remove {
    grid-column: 1 / -1;
    width:100%;
    justify-self:stretch;
  }
  .compra-modal .modal-footer .btn {
    flex: 1 1 140px;
  }
  .compra-detail-summary,
  .compra-impact-grid {
    grid-template-columns: 1fr;
  }
}
.compra-detalle-modal {
  width: min(960px, calc(100vw - 34px));
  max-width: 960px;
}
#compra-detalle-body {
  min-height: 0;
  overflow: auto;
  padding-right: 2px;
}
.compra-detalle-modal .modal-footer {
  justify-content: flex-end;
}
.compra-detail-summary {
  display: grid;
  grid-template-columns: 1.2fr 1fr .8fr 1fr;
  gap: 8px;
  margin-bottom: 10px;
}
.compra-detail-kpi {
  padding: 9px 11px;
  min-width: 0;
}
.compra-detail-kpi .stat-value {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 14px;
  line-height: 1.15;
}
.compra-detail-kpi-total .stat-value {
  font-size: 18px;
  color: var(--accent);
}
.compra-detail-items-card {
  margin-bottom: 10px;
  padding: 11px;
}
.compra-detail-items-card .card-header {
  padding-bottom: 8px;
  margin-bottom: 8px;
}
.compra-detail-table-wrap table th,
.compra-detail-table-wrap table td {
  padding: 7px 9px;
  font-size: 11.5px;
}
.compra-impact-card {
  padding: 12px;
}
.compra-impact-card .card-header {
  padding-bottom: 8px;
  margin-bottom: 8px;
}
.compra-detail-actions {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.compra-detail-actions .btn {
  min-height: 28px;
  padding: 6px 9px;
  font-size: 11px;
}
.compra-impact-grid {
  display: grid;
  grid-template-columns: 1.35fr 1fr;
  gap: 10px;
}
.compra-impact-label {
  font-size: 11px;
  color: var(--text3);
  margin-bottom: 5px;
  font-weight: 700;
}
.compra-impact-box {
  padding: 10px;
  border: 1px solid var(--border);
  border-radius: 10px;
  min-height: 56px;
  background: var(--bg3);
  font-size: 12px;
  color: var(--text2);
}
.compra-impact-text {
  line-height: 1.35;
}
.td-empty {
  text-align: center;
  color: var(--text3);
}

#page-compras .table-resizable td:first-child,
#page-compras .table-resizable td:nth-child(2),
#page-compras .table-resizable td:nth-child(4),
#page-compras .table-resizable td:nth-child(6) {
  white-space: nowrap;
}
#page-compras .table-resizable td:nth-child(9) {
  padding-inline: 4px;
}

@media (max-width: 1500px) {
  #page-compras .compras-toolbar-row {
    grid-template-columns: minmax(190px, 1fr) minmax(138px, 160px) minmax(138px, 160px) max-content minmax(168px, 176px);
  }
}

@media (max-width: 1380px) {
  #page-compras .compras-toolbar-row {
    grid-template-columns: minmax(180px, 1fr) minmax(132px, 150px) minmax(132px, 150px) max-content minmax(168px, 176px);
  }
  #page-compras .compras-period-group > span {
    display: none;
  }
}
@media (max-width: 1120px) {
  #page-compras .compras-toolbar-row,
  .compra-add-grid,
  .compra-impact-grid {
    grid-template-columns: 1fr;
  }
  #page-compras .compras-period-group,
  #page-compras .compras-date-range,
  #page-compras .compras-clear,
  #page-compras .compras-new-btn {
    width: 100%;
  }
  #page-compras .compras-toolbar-date-row {
    flex-direction: column;
    align-items: stretch;
  }
  #page-compras .compras-date-range input {
    width: 100%;
  }
}

/* =========================================================
   PROVEEDORES — visual compacto 100% 20260607
   ========================================================= */
#page-proveedores {
  --prov-control-h: 33px;
  --prov-gap: 8px;
}
#page-proveedores .proveedores-hero-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 10px;
}
#page-proveedores .hero-metrics {
  gap: 6px;
}
#page-proveedores .hero-metric {
  min-height: 30px;
  padding: 6px 12px;
  border-radius: 13px;
  font-size: 12px;
}
#page-proveedores .proveedores-stats-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}
#page-proveedores .stat-card {
  min-height: 78px;
  padding: 13px 14px;
}
#page-proveedores .stat-label {
  font-size: 10.5px;
  letter-spacing: .12em;
}
#page-proveedores .stat-value {
  font-size: 24px;
  line-height: 1.05;
  margin-top: 8px;
}
#page-proveedores .stat-icon {
  width: 30px;
  height: 30px;
  font-size: 14px;
}
#page-proveedores .proveedores-table-card {
  padding: 14px 16px 12px;
  border-radius: 15px;
}
#page-proveedores .proveedores-toolbar {
  align-items: stretch;
  gap: 8px;
  padding: 0 0 10px;
  margin-bottom: 10px;
  border-bottom: 1px solid var(--line);
}
#page-proveedores .proveedores-toolbar-row {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(150px, 190px) minmax(90px, 104px) minmax(96px, 116px) minmax(154px, 170px);
  gap: 8px;
  align-items: center;
  width: 100%;
}
#page-proveedores .proveedores-search,
#page-proveedores .proveedores-filter-rubro,
#page-proveedores .proveedores-toolbar-row .btn {
  height: var(--prov-control-h);
  min-height: var(--prov-control-h);
  border-radius: 9px;
}
#page-proveedores .proveedores-search {
  padding: 0 11px;
}
#page-proveedores .proveedores-search input {
  height: calc(var(--prov-control-h) - 2px);
  min-height: 0;
  padding: 0;
  font-size: 12px;
}
#page-proveedores .proveedores-filter-rubro {
  padding: 0 30px 0 10px;
  font-size: 12px;
}
#page-proveedores .proveedores-toolbar-row .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 0 10px;
  font-size: 11.5px;
  white-space: nowrap;
}
#page-proveedores .proveedores-new-btn {
  min-width: 154px;
}
#page-proveedores .table-wrap {
  border-radius: 11px;
  overflow-x: auto;
}
#page-proveedores table {
  table-layout: fixed;
}
#page-proveedores th,
#page-proveedores td {
  padding: 8px 10px;
  font-size: 11.5px;
  vertical-align: middle;
  text-align: center;
}
#page-proveedores th {
  font-size: 10px;
  line-height: 1.05;
  letter-spacing: .12em;
  white-space: nowrap;
}
#page-proveedores td:nth-child(2),
#page-proveedores th:nth-child(2) {
  text-align: left;
}
#page-proveedores td:nth-child(6),
#page-proveedores th:nth-child(6) {
  text-align: right;
}
#page-proveedores .cell-title strong {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 12px;
  line-height: 1.15;
}
#page-proveedores .badge {
  min-height: 22px;
  padding: 4px 8px;
  border-radius: 999px;
  font-size: 10.5px;
  line-height: 1;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
}
#page-proveedores .prov-id-cell,
#page-proveedores .prov-money-cell {
  font-weight: 800;
}
#page-proveedores .row-actions {
  display: flex;
  justify-content: flex-end;
  gap: 5px;
  flex-wrap: nowrap;
}
#page-proveedores .row-actions .btn {
  min-height: 27px;
  height: 27px;
  padding: 0 8px;
  font-size: 10.5px;
  border-radius: 8px;
  white-space: nowrap;
}
#page-proveedores #proveedores-pag-container {
  margin-top: 8px;
}
#page-proveedores .empty-state {
  margin-top: 10px;
  padding: 24px 16px;
  min-height: 118px;
}
.modal-proveedor-form {
  max-width: 520px;
}
.prov-modal-subtitle {
  margin-top: 3px;
  font-size: 12px;
  color: var(--text2);
}
.prov-form-grid {
  margin-top: 4px;
  gap: 9px;
}
.form-span-all {
  grid-column: 1 / -1;
}
.form-error {
  margin-top: 8px;
  padding: 9px 11px;
  background: var(--red-bg);
  border: 1px solid rgba(239, 68, 68, .25);
  border-radius: var(--radius-sm);
  font-size: 12px;
  color: var(--red);
}
#modal-proveedor .modal-footer {
  gap: 8px;
}
#modal-proveedor .btn {
  min-height: 31px;
  font-size: 12px;
}
.prov-detail-stats {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 10px;
}
.prov-detail-kpi {
  min-height: 72px;
  padding: 11px 12px;
}
.prov-detail-kpi .stat-value,
.prov-detail-kpi-value {
  font-size: 18px;
  line-height: 1.12;
}
.prov-detail-history-card {
  box-shadow: none;
  border: 1px solid var(--line);
  padding: 12px;
}
.prov-detail-history-card .card-header {
  padding-bottom: 8px;
  margin-bottom: 8px;
}
.prov-detail-history-card th,
.prov-detail-history-card td {
  padding: 7px 9px;
  font-size: 11.5px;
}
.prov-detail-empty {
  padding: 22px;
}

@media (max-width: 1320px) {
  #page-proveedores .proveedores-toolbar-row {
    grid-template-columns: minmax(220px, 1fr) minmax(135px, 170px) minmax(84px, 98px) minmax(90px, 108px) minmax(150px, 164px);
  }
}
@media (max-width: 1100px) {
  #page-proveedores .proveedores-stats-grid,
  .prov-detail-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  #page-proveedores .proveedores-toolbar-row {
    grid-template-columns: 1fr 1fr;
  }
  #page-proveedores .proveedores-new-btn {
    min-width: 0;
  }
}

/* ===============================
   GASTOS — visual compacto 100%
=============================== */
#page-gastos {
  --gastos-control-h: 33px;
  --gastos-gap: 8px;
}
#page-gastos .gastos-hero-row {
  margin-bottom: 9px;
}
#page-gastos .gastos-hero-metrics {
  gap: 7px;
  flex-wrap: wrap;
}
#page-gastos .hero-metric {
  min-height: 30px;
  padding: 6px 11px;
  gap: 7px;
  font-size: 12px;
}
#page-gastos .gastos-stats-grid {
  gap: 9px;
  margin-bottom: 11px;
}
#page-gastos .stat-card {
  min-height: 82px;
  padding: 12px 14px;
}
#page-gastos .stat-card .stat-label {
  font-size: 10.5px;
  letter-spacing: .105em;
}
#page-gastos .stat-card .stat-value {
  margin-top: 6px;
  font-size: 23px;
  line-height: 1.05;
}
#page-gastos .stat-card .stat-icon {
  width: 33px;
  height: 33px;
  font-size: 16px;
}
#page-gastos .gastos-filtros-card {
  padding: 11px 13px;
  margin-bottom: 11px;
}
#page-gastos .gastos-filtros-toolbar {
  display: grid;
  gap: 9px;
  padding: 10px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: rgba(15,23,42,.18);
}
#page-gastos .gastos-filtros-title {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  min-width: 0;
}
#page-gastos .gastos-filtros-title .card-title {
  font-size: 14px;
  line-height: 1.12;
  white-space: nowrap;
}
#page-gastos .gastos-filtros-title .text-muted {
  max-width: 56vw;
  overflow: hidden;
  color: var(--text3);
  font-size: 11.2px;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}
#page-gastos .gastos-filtros-row {
  display: grid;
  grid-template-columns: minmax(102px, 116px) minmax(102px, 116px) minmax(138px, 1fr) minmax(106px, 126px) minmax(180px, 1.35fr) minmax(72px, 82px) minmax(124px, 138px);
  align-items: end;
  gap: var(--gastos-gap);
  min-width: 0;
}
#page-gastos .gastos-filter-field {
  display: grid;
  gap: 4px;
  min-width: 0;
}
#page-gastos .gastos-filter-field label {
  margin: 0;
  color: var(--text3);
  font-size: 9.8px;
  font-weight: 850;
  letter-spacing: .1em;
  line-height: 1;
  text-transform: uppercase;
}
#page-gastos .gastos-filter-field input,
#page-gastos .gastos-filter-field select,
#page-gastos .gastos-filtros-row > .btn {
  width: 100%;
  height: var(--gastos-control-h);
  min-height: var(--gastos-control-h);
  padding: 0 10px;
  border-radius: 9px;
  font-size: 11.8px;
  line-height: 1;
}
#page-gastos .gastos-filtros-row > .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
}
#page-gastos .gastos-list-card {
  padding: 11px 13px 13px;
}
#page-gastos .gastos-list-head {
  padding-bottom: 8px;
  margin-bottom: 8px;
}
#page-gastos .gastos-list-card .card-title {
  font-size: 14px;
  line-height: 1.12;
}
#page-gastos .gastos-list-summary {
  margin-top: 3px;
  font-size: 11.2px;
  line-height: 1.2;
}
#page-gastos .table-wrap {
  border-radius: 11px;
}
#page-gastos #gastos-table {
  min-width: 880px;
}
#page-gastos #gastos-table th {
  height: 31px;
  padding: 6px 8px;
  font-size: 9.8px;
  line-height: 1.1;
  text-align: center;
  white-space: nowrap;
}
#page-gastos #gastos-table td {
  padding: 7px 8px;
  font-size: 11.3px;
  line-height: 1.22;
  vertical-align: middle;
}
#page-gastos #gastos-table td:nth-child(1),
#page-gastos #gastos-table td:nth-child(2),
#page-gastos #gastos-table td:nth-child(3),
#page-gastos #gastos-table td:nth-child(4) {
  text-align: left;
}
#page-gastos #gastos-table td:nth-child(5) {
  text-align: right;
}
#page-gastos #gastos-table td:nth-child(6),
#page-gastos #gastos-table td:nth-child(7) {
  text-align: center;
}
#gastos-tbody tr.row-muted td {
  opacity: .68;
}
#gastos-tbody td:last-child {
  min-width: 116px;
}
.gasto-cell-title {
  display: grid;
  gap: 2px;
  min-width: 0;
}
.gasto-cell-title strong {
  display: block;
  max-width: 100%;
  overflow: hidden;
  color: var(--text);
  font-size: 11.5px;
  font-weight: 850;
  line-height: 1.15;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.gasto-cell-title small {
  display: block;
  min-height: 0;
  overflow: hidden;
  color: var(--text3);
  font-size: 10.2px;
  line-height: 1.15;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.gasto-cell-detail,
.gasto-cell-muted {
  display: -webkit-box;
  max-width: 100%;
  overflow: hidden;
  color: var(--text2);
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.gasto-cell-muted {
  color: var(--text3);
  -webkit-line-clamp: 1;
}
.gasto-money-cell {
  color: var(--text);
  font-weight: 900;
  white-space: nowrap;
}
#page-gastos .badge {
  min-height: 20px;
  padding: 4px 8px;
  border-radius: 999px;
  font-size: 10.2px;
  line-height: 1;
}
.gasto-actions {
  display: flex;
  justify-content: flex-end;
  gap: 5px;
  flex-wrap: nowrap;
}
.gasto-actions .btn {
  height: 26px;
  min-height: 26px;
  padding: 0 8px;
  border-radius: 8px;
  font-size: 10.3px;
  line-height: 1;
  white-space: nowrap;
}
#page-gastos #gastos-pag-container {
  margin-top: 8px;
}
#page-gastos .empty-state {
  margin-top: 10px;
  min-height: 112px;
  padding: 22px 16px;
}
#page-gastos .empty-sub {
  max-width: 520px;
  margin-inline: auto;
}
.modal-gasto {
  width: min(650px, calc(100vw - 32px));
  max-width: 650px;
  padding: 17px 18px;
}
#modal-gasto .gasto-modal-header {
  padding-bottom: 10px;
  margin-bottom: 10px;
}
#modal-gasto .modal-title {
  font-size: 17px;
  line-height: 1.1;
}
.gasto-modal-subtitle {
  margin-top: 3px;
  color: var(--text2);
  font-size: 11.5px;
  line-height: 1.25;
}
.gastos-form-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 0;
}
.gastos-form-grid .form-group {
  gap: 4px;
}
.gastos-form-grid .form-group label {
  margin-bottom: 0;
  font-size: 10.2px;
  line-height: 1;
}
.gastos-form-grid .form-group input,
.gastos-form-grid .form-group select {
  height: 34px;
  min-height: 34px;
  padding: 6px 10px;
  border-radius: 10px;
  font-size: 12px;
}
.gastos-form-grid .form-span-all {
  grid-column: 1 / -1;
}
.gastos-form-grid textarea {
  min-height: 62px;
  max-height: 96px;
  padding: 8px 10px;
  border-radius: 10px;
  resize: vertical;
  font-size: 12px;
}
#modal-gasto .form-error {
  margin-top: 8px;
}
#modal-gasto .modal-footer {
  gap: 8px;
  padding-top: 10px;
  margin-top: 10px;
}
#modal-gasto .btn {
  min-height: 32px;
  padding: 6px 14px;
  border-radius: 10px;
  font-size: 12px;
}
@media (max-width: 1280px) {
  #page-gastos .gastos-filtros-row {
    grid-template-columns: minmax(98px, 112px) minmax(98px, 112px) minmax(128px, 1fr) minmax(104px, 126px) minmax(150px, 1fr) minmax(70px, 82px) minmax(124px, 136px);
  }
  #page-gastos .gastos-filtros-title .text-muted {
    max-width: 42vw;
  }
}
@media (max-width: 1100px) {
  #page-gastos .gastos-stats-grid,
  #page-gastos .proveedores-stats-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  #page-gastos .gastos-filtros-row {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  #page-gastos .gastos-search-field {
    grid-column: span 2;
  }
}
@media (max-width: 760px) {
  #page-gastos .gastos-stats-grid,
  #page-gastos .proveedores-stats-grid,
  #page-gastos .gastos-filtros-row,
  .gastos-form-grid {
    grid-template-columns: 1fr;
  }
  #page-gastos .gastos-filtros-title {
    align-items: flex-start;
    flex-direction: column;
    gap: 3px;
  }
  #page-gastos .gastos-filtros-title .text-muted {
    max-width: 100%;
    white-space: normal;
  }
  #page-gastos .gastos-search-field {
    grid-column: auto;
  }
  .modal-gasto {
    width: 100%;
    max-width: none;
    padding: 14px;
  }
}


/* ============================================================
   ESTADÍSTICAS / REPORTES — visual compacto 100% 2026-06-07
============================================================ */
#page-estadisticas {
  --est-h: 32px;
}
#page-estadisticas.active {
  display: grid;
  gap: 8px;
}
#page-estadisticas .card { padding: 11px 13px; }
.est-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 0;
}
.est-topbar .card-title { font-size: 18px; line-height: 1.05; }
.est-topbar .card-subtitle { font-size: 11px; margin-top: 2px; }
.est-periodos {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 4px;
  flex-wrap: wrap;
}
.est-periodos .btn,
.est-module-tabs .tab,
.rep-product-tabs .tab {
  min-height: 28px;
  padding: 5px 9px;
  font-size: 11px;
  line-height: 1;
}
#page-estadisticas .est-module-tabs .tab {
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 0 12px;
  line-height: 1;
}
.est-periodos .btn:last-child { min-width: 78px; }
.est-module-tabs {
  margin: 4px 0 3px;
  padding: 0 0 8px;
  gap: 6px;
  min-height: 34px;
  align-items: center;
  border-bottom: 1px solid var(--border);
}
.est-manual {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 10px !important;
  margin: 0;
}
.est-manual span {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--text3);
}
.est-manual input {
  height: var(--est-h);
  max-width: 150px;
}
.est-loading {
  padding: 10px 12px !important;
  font-size: 12px;
  color: var(--text2);
}
.est-kpis,
.rep-kpi-grid {
  grid-template-columns: repeat(auto-fit, minmax(142px, 1fr)) !important;
  gap: 8px;
  margin-bottom: 8px !important;
}
#page-estadisticas .stat-card {
  min-height: 72px;
  padding: 10px 12px;
}
#page-estadisticas .stat-label {
  font-size: 9.5px;
  letter-spacing: .08em;
}
#page-estadisticas .stat-value {
  font-size: 21px;
  line-height: 1;
  margin-top: 6px;
}
#page-estadisticas .stat-change {
  font-size: 10px;
  margin-top: 5px;
}
#page-estadisticas .stat-icon {
  width: 30px;
  height: 30px;
  font-size: 14px;
}
.est-grid,
.est-main-grid,
.rep-grid-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 8px;
}
.rep-grid-row-single { grid-template-columns: 1fr; }
.est-card .card-header,
.est-reportes-panel .card-header {
  margin-bottom: 7px;
  padding-bottom: 6px;
}
.est-card .card-title,
.est-reportes-panel .card-title {
  font-size: 13px;
  line-height: 1.15;
}
.est-card .card-subtitle,
.est-reportes-panel .card-subtitle {
  font-size: 10px;
  line-height: 1.2;
}
.est-bar-list {
  display: grid;
  gap: 6px;
}
.est-bar-row {
  display: grid;
  gap: 3px;
}
.est-bar-head,
.rep-progress-head {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  align-items: center;
  font-size: 11px;
  line-height: 1.2;
}
.est-bar-head strong,
.rep-progress-head > span:first-child {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.est-bar-head span,
.rep-progress-value {
  flex-shrink: 0;
  font-size: 11px;
  font-weight: 800;
}
.est-bar-row small,
.rep-progress-sub {
  font-size: 10px;
  color: var(--text3);
}
.est-bar-track,
.progress-bar {
  height: 6px;
  border-radius: 999px;
  background: rgba(148,163,184,.14);
  overflow: hidden;
}
.est-bar-fill,
.progress-fill,
.rep-mini-bar > span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--accent);
}
.est-empty,
.rep-empty {
  text-align: center;
  padding: 12px 8px;
  color: var(--text3);
  font-size: 11px;
}
.rep-empty-icon {
  font-size: 20px;
  line-height: 1;
  margin-bottom: 5px;
  opacity: .45;
}
.rep-empty-text { font-size: 11px; }
.est-reportes-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px !important;
}
.est-reportes-hero .card-title { font-size: 15px; }
.est-reportes-hero-badge {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 8px;
  border-radius: 999px;
  background: rgba(79,142,247,.12);
  color: var(--accent);
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
}
.rep-product-tabs {
  margin-bottom: 6px;
}
.rep-progress-row {
  display: grid;
  gap: 4px;
  margin-bottom: 7px;
}
.rep-progress-row:last-child { margin-bottom: 0; }
.insight-item {
  min-height: 30px;
  padding: 6px 0;
  gap: 8px;
}
.rep-item-main {
  display: flex;
  align-items: center;
  gap: 6px;
  flex: 1 1 auto;
  min-width: 0;
}
.rep-item-emoji {
  width: 18px;
  flex: 0 0 18px;
  text-align: center;
  font-size: 14px;
  line-height: 1;
}
.rep-item-text { min-width: 0; }
.rep-item-title,
.rep-bar-name {
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: 11px;
  font-weight: 700;
  color: var(--text);
}
.rep-item-sub,
.rep-item-min,
.rep-ubic-sub {
  font-size: 10px;
  color: var(--text3);
  line-height: 1.25;
}
.rep-item-meta {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 5px;
  flex-shrink: 0;
}
.rep-item-amount {
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
}
.rep-stock-badge,
.rep-bar-badge {
  font-size: 10px;
  min-height: 20px;
  padding: 2px 7px;
  border-radius: 999px;
  background: rgba(79,142,247,.12);
}
.rep-bar-item {
  display: grid;
  grid-template-columns: minmax(100px, 1fr) minmax(80px, 32%) auto;
  align-items: center;
}
.rep-mini-bar { min-width: 70px; width: 100%; }
.rep-fin-note {
  font-size: 10px;
  color: var(--text3);
  padding: 3px 0 6px;
  line-height: 1.45;
  border-bottom: 1px solid var(--border);
  margin-bottom: 4px;
}
.rep-fin-sep {
  border-top: 1px solid var(--border);
  margin: 4px 0;
}
#page-estadisticas .fin-list { gap: 0; }
#page-estadisticas .fin-item {
  padding: 6px 0;
  border-radius: 0;
  border: 0;
  border-bottom: 1px solid var(--border);
  background: transparent;
}
#page-estadisticas .fin-item span:first-child,
.rep-ubic-name { font-size: 11px; }
#page-estadisticas .fin-item strong { font-size: 11px; }
.rep-ubic-values {
  text-align: right;
  flex-shrink: 0;
}
.rep-ubic-total {
  font-weight: 800;
  color: var(--text);
  font-size: 11px;
}

/* Segunda pasada fina: compactación interna de Estadísticas */
#page-estadisticas .est-tab-panel {
  display: grid;
  gap: 8px;
}
#page-estadisticas .est-tab-panel.is-hidden { display: none; }
#page-estadisticas .card-header {
  min-height: 0;
  gap: 8px;
}
#page-estadisticas .est-card,
#page-estadisticas .est-reportes-panel .card,
#page-estadisticas .rep-grid-row > .card {
  min-width: 0;
  overflow: hidden;
}
.est-mini-table {
  display: grid;
  gap: 0;
}
.est-mini-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 28px;
  padding: 5px 0;
  border-bottom: 1px solid var(--border);
}
.est-mini-row:last-child { border-bottom: 0; }
.est-mini-row span {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 11px;
}
.est-mini-row b {
  width: 18px;
  height: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: rgba(148,163,184,.14);
  color: var(--text2);
  font-size: 10px;
  flex: 0 0 18px;
}
.est-mini-row strong {
  flex-shrink: 0;
  font-size: 11px;
}
#page-estadisticas .rep-grid-row .card-header,
#page-estadisticas .est-grid .card-header {
  border-bottom: 1px solid var(--border);
}
#page-estadisticas .rep-grid-row > .card > div[id^="rep-"],
#page-estadisticas .est-card > div[id^="est-"] {
  min-width: 0;
}
#page-estadisticas .tab.active {
  min-height: 30px;
}

.tone-accent { color: var(--accent) !important; }
.tone-green { color: var(--green) !important; }
.tone-teal { color: var(--teal) !important; }
.tone-purple { color: var(--purple) !important; }
.tone-amber { color: var(--amber) !important; }
.tone-red { color: var(--red) !important; }
.tone-text { color: var(--text) !important; }
.tone-accent-bg { background: var(--accent) !important; }
.tone-green-bg { background: var(--green) !important; }
.tone-teal-bg { background: var(--teal) !important; }
.tone-purple-bg { background: var(--purple) !important; }
.tone-amber-bg { background: var(--amber) !important; }
.tone-red-bg { background: var(--red) !important; }
.bar-w-0 { width: 0%; }
.bar-w-5 { width: 5%; }
.bar-w-10 { width: 10%; }
.bar-w-15 { width: 15%; }
.bar-w-20 { width: 20%; }
.bar-w-25 { width: 25%; }
.bar-w-30 { width: 30%; }
.bar-w-35 { width: 35%; }
.bar-w-40 { width: 40%; }
.bar-w-45 { width: 45%; }
.bar-w-50 { width: 50%; }
.bar-w-55 { width: 55%; }
.bar-w-60 { width: 60%; }
.bar-w-65 { width: 65%; }
.bar-w-70 { width: 70%; }
.bar-w-75 { width: 75%; }
.bar-w-80 { width: 80%; }
.bar-w-85 { width: 85%; }
.bar-w-90 { width: 90%; }
.bar-w-95 { width: 95%; }
.bar-w-100 { width: 100%; }

.est-today-ranking-card {
  margin-bottom: 8px;
}
.est-today-head {
  align-items: flex-start;
}
.est-today-chips {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  flex-wrap: wrap;
}
.est-today-chips span {
  min-height: 24px;
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--bg3);
  color: var(--text2);
  font-size: 10.5px;
  font-weight: 800;
  white-space: nowrap;
}
.est-today-ranking-list {
  display: grid;
  gap: 6px;
}
.est-today-ranking-row {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) 120px;
  align-items: center;
  gap: 9px;
  min-height: 42px;
  padding: 7px 8px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--bg2);
}
.est-today-rank {
  width: 24px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: rgba(79,142,247,.14);
  color: var(--accent);
  font-size: 11px;
  font-weight: 900;
}
.est-today-product {
  min-width: 0;
  display: grid;
  gap: 3px;
}
.est-today-product strong {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--text);
  font-size: 12px;
}
.est-today-product small {
  color: var(--text3);
  font-size: 10px;
}
.est-today-bar {
  height: 5px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(148,163,184,.14);
}
.est-today-bar span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--accent);
}
.est-today-metrics {
  display: grid;
  gap: 2px;
  justify-items: end;
  text-align: right;
}
.est-today-metrics b {
  color: var(--text);
  font-size: 12px;
}
.est-today-metrics span {
  color: var(--text2);
  font-size: 10.5px;
  font-weight: 800;
}
@media (max-width: 1180px) {
  .est-topbar { align-items: flex-start; flex-direction: column; }
  .est-periodos { justify-content: flex-start; }
  .est-today-head { flex-direction: column; align-items: flex-start; }
  .est-today-chips { justify-content: flex-start; }
  .est-grid,
  .est-main-grid,
  .rep-grid-row { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .est-today-ranking-row { grid-template-columns: 24px minmax(0, 1fr); }
  .est-today-metrics { grid-column: 2; justify-items: start; text-align: left; grid-template-columns: auto auto; gap: 8px; }
}

/* ============================================================
   REPARACIONES — pulida compacta 100% (20260607)
   Módulo visual. No modifica caja, stock ni tickets.
============================================================ */
#page-reparaciones {
  --rep-row-h: 40px;
  font-size: 12px;
}
#page-reparaciones .rep-board-card {
  padding: 14px 16px;
  margin-bottom: 12px;
}
#page-reparaciones .rep-board-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}
#page-reparaciones .rep-board-title {
  font-size: 16px;
  font-weight: 900;
  letter-spacing: -.02em;
  line-height: 1.1;
}
#page-reparaciones .rep-board-sub {
  color: var(--text3);
  font-size: 11px;
  margin-top: 2px;
}
#page-reparaciones .rep-board-new {
  min-height: 34px;
  padding: 7px 14px;
  white-space: nowrap;
}
#page-reparaciones .rep-status-board {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
}
#page-reparaciones .rep-status-card {
  min-width: 0;
  min-height: 58px;
  border: 1px solid var(--border2);
  border-radius: 12px;
  background: rgba(15, 23, 42, .35);
  color: var(--text2);
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-areas: "ico count" "ico label";
  align-items: center;
  gap: 0 8px;
  padding: 9px 11px;
  text-align: left;
  cursor: pointer;
}
#page-reparaciones .rep-status-card span {
  grid-area: ico;
  width: 30px;
  height: 30px;
  border-radius: 10px;
  background: var(--bg3);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
}
#page-reparaciones .rep-status-card strong {
  grid-area: count;
  color: var(--text);
  font-size: 18px;
  line-height: 1;
}
#page-reparaciones .rep-status-card small {
  grid-area: label;
  font-size: 10px;
  color: var(--text3);
  text-transform: uppercase;
  letter-spacing: .08em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
#page-reparaciones .rep-status-card.active {
  border-color: rgba(79, 142, 247, .55);
  background: var(--accent-bg);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
}
#page-reparaciones .rep-status-card.active span { background: rgba(79,142,247,.20); }
#page-reparaciones > .card:not(.rep-board-card) {
  padding: 12px 14px 14px;
}
#page-reparaciones .rep-filtros-toolbar {
  padding: 0 0 10px;
  margin: 0 0 10px;
  border-bottom: 1px solid var(--border);
}
#page-reparaciones .rep-filtros-row {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) auto;
  gap: 10px;
  align-items: center;
  width: 100%;
}
#page-reparaciones .rep-search-field {
  min-width: 0;
  height: 34px;
}
#page-reparaciones .rep-search-field input {
  height: 34px;
  font-size: 12px;
}
#page-reparaciones .rep-filtros-row .btn {
  min-height: 34px;
  padding: 7px 13px;
}
#page-reparaciones .table-wrap {
  border-radius: 11px;
  overflow-x: auto;
}
#page-reparaciones #reps-table {
  min-width: 1060px;
  table-layout: fixed;
}
#page-reparaciones #reps-table th {
  height: 32px;
  padding: 8px 9px;
  font-size: 10px;
  letter-spacing: .08em;
  white-space: nowrap;
  text-align: center;
}
#page-reparaciones #reps-table td {
  height: var(--rep-row-h);
  padding: 7px 9px;
  font-size: 11px;
  vertical-align: middle;
}
#page-reparaciones #reps-table td:nth-child(1),
#page-reparaciones #reps-table td:nth-child(2),
#page-reparaciones #reps-table td:nth-child(6),
#page-reparaciones #reps-table td:nth-child(7),
#page-reparaciones #reps-table td:nth-child(8),
#page-reparaciones #reps-table td:nth-child(9) { text-align: center; }
#page-reparaciones #reps-table td:nth-child(3),
#page-reparaciones #reps-table td:nth-child(4),
#page-reparaciones #reps-table td:nth-child(5) { text-align: left; }
#page-reparaciones .rep-code-cell,
#page-reparaciones .rep-money-cell {
  font-size: 12px;
  font-weight: 850;
  white-space: nowrap;
}
#page-reparaciones .rep-date-cell {
  align-items: center;
  gap: 1px;
}
#page-reparaciones .rep-date-cell strong,
#page-reparaciones .cell-title strong {
  font-size: 11px;
  line-height: 1.1;
}
#page-reparaciones .cell-title small {
  font-size: 10px;
  color: var(--text3);
  line-height: 1.1;
}
#page-reparaciones .rep-device-cell,
#page-reparaciones .rep-falla-cell {
  max-width: 1px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
#page-reparaciones .rep-mini-badge,
#page-reparaciones .badge {
  font-size: 10px;
  padding: 3px 7px;
  line-height: 1.15;
}
#page-reparaciones .rep-actions {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  flex-wrap: nowrap;
  white-space: nowrap;
}
#page-reparaciones .rep-actions .btn {
  min-height: 27px;
  padding: 4px 8px;
  font-size: 11px;
}
#page-reparaciones #reps-pag-container {
  margin-top: 10px;
}
#page-reparaciones #reps-empty {
  margin-top: 10px;
  padding: 26px 16px;
}

/* Modal Reparaciones */
.rep-modal {
  width: min(760px, calc(100vw - 28px));
  max-width: 760px;
}
.rep-modal .modal-header {
  padding-bottom: 10px;
}
.rep-modal-sub {
  font-size: 11px;
  color: var(--text3);
  margin-top: 2px;
}
.rep-edit-tabs {
  margin-bottom: 12px;
}
.rep-edit-tabs .tab,
.rep-stepper .rep-step-dot {
  min-height: 32px;
}
.rep-stepper {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 12px;
}
.rep-step-dot {
  border: 1px solid var(--border2);
  border-radius: 11px;
  background: var(--bg2);
  color: var(--text2);
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 9px;
  cursor: pointer;
  min-width: 0;
  text-align: left;
}
.rep-step-dot strong {
  width: 23px;
  height: 23px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--bg3);
  color: var(--text);
  font-size: 11px;
  flex: 0 0 auto;
}
.rep-step-dot span {
  font-size: 11px;
  font-weight: 750;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.rep-step-dot.active {
  border-color: rgba(79,142,247,.55);
  background: var(--accent-bg);
}
.rep-step-dot.done strong {
  background: var(--green-bg);
  color: var(--green);
}
.rep-step-title {
  font-size: 14px;
  font-weight: 850;
  letter-spacing: -.01em;
  margin-bottom: 3px;
}
.rep-step-help {
  font-size: 11px;
  color: var(--text3);
  line-height: 1.35;
  margin-bottom: 10px;
}
.rep-modal .form-grid {
  gap: 9px 10px;
}
.rep-modal .form-group label {
  font-size: 10px;
  margin-bottom: 4px;
}
.rep-modal input,
.rep-modal select,
.rep-modal textarea {
  min-height: 34px;
  font-size: 12px;
}
.rep-modal textarea {
  min-height: 72px;
  resize: vertical;
}
.rep-client-search-wrap {
  position: relative;
}
.rep-client-search-wrap input {
  padding-right: 34px;
}
.rep-search-icon {
  position: absolute;
  right: 11px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--text3);
  font-size: 12px;
  pointer-events: none;
}
.rep-client-dropdown {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  z-index: 80;
  max-height: 210px;
  overflow-y: auto;
  background: var(--bg2);
  border: 1px solid var(--border2);
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-lg);
}
.rep-client-option {
  display: block;
  width: 100%;
  padding: 9px 12px;
  border: 0;
  border-bottom: 1px solid var(--border);
  background: transparent;
  color: var(--text);
  text-align: left;
  cursor: pointer;
}
.rep-client-option:hover { background: var(--bg3); }
.rep-client-option strong {
  display: block;
  font-size: 12px;
  font-weight: 850;
}
.rep-client-option small {
  display: block;
  margin-top: 2px;
  font-size: 10px;
  color: var(--text3);
}
.rep-client-option-empty {
  color: var(--text3);
  cursor: default;
}
.rep-client-selected {
  min-height: 16px;
  margin-top: 5px;
  font-size: 11px;
  color: var(--green);
}
.rep-security-note {
  margin-top: 0;
  padding: 9px 11px;
  background: var(--bg3);
  border: 1px dashed var(--border2);
  border-radius: 10px;
  color: var(--text2);
}
.rep-priority-buttons,
.rep-falla-options {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.rep-priority-buttons .btn,
.rep-falla-chip {
  min-height: 30px;
  padding: 5px 9px;
  font-size: 11px;
}
.rep-falla-chip {
  border: 1px solid var(--border2);
  border-radius: 999px;
  background: var(--bg2);
  color: var(--text2);
  cursor: pointer;
}
.rep-falla-chip span {
  opacity: .45;
  margin-right: 4px;
}
.rep-falla-chip.active {
  color: var(--accent);
  border-color: rgba(79,142,247,.5);
  background: var(--accent-bg);
}
.rep-falla-chip.active span { opacity: 1; }
.rep-confirm-box {
  padding: 11px;
  border: 1px solid var(--border2);
  border-radius: 11px;
  background: var(--bg3);
  font-size: 12px;
  line-height: 1.45;
}
.rep-tecnico-grid { margin-bottom: 12px; }
.rep-inline-warn,
.rep-cobro-warn {
  margin-top: 10px;
  padding: 10px 11px;
  background: var(--amber-bg);
  border: 1px solid rgba(245,158,11,.2);
  border-radius: var(--radius-sm);
  font-size: 11px;
  color: var(--amber);
  line-height: 1.35;
}
.rep-cobro-resumen {
  margin-top: 12px;
  padding: 12px;
  background: var(--bg3);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
}
.rep-cobro-total-row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-size: 14px;
  font-weight: 850;
}
.rep-cobro-label { color: var(--text2); }
.rep-cobro-price { color: var(--accent); }
.rep-modal-footer {
  display: flex;
  align-items: center;
  gap: 8px;
  padding-top: 10px;
}
.rep-footer-left {
  display: flex;
  gap: 6px;
  margin-right: auto;
  flex-wrap: wrap;
}
.rep-modal-footer .btn {
  min-height: 32px;
  padding: 6px 10px;
  font-size: 12px;
  white-space: nowrap;
}
.rep-tk-label-top { margin-top: 0; }

/* Estadísticas: evitar arrastre visual al salir del módulo */
.page:not(.active) #est-resumen-panel,
.page:not(.active) #page-reportes,
.page:not(.active) .est-tab-panel {
  display: none !important;
}


.est-today-ranking-card {
  margin-bottom: 8px;
}
.est-today-head {
  align-items: flex-start;
}
.est-today-chips {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  flex-wrap: wrap;
}
.est-today-chips span {
  min-height: 24px;
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--bg3);
  color: var(--text2);
  font-size: 10.5px;
  font-weight: 800;
  white-space: nowrap;
}
.est-today-ranking-list {
  display: grid;
  gap: 6px;
}
.est-today-ranking-row {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) 120px;
  align-items: center;
  gap: 9px;
  min-height: 42px;
  padding: 7px 8px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--bg2);
}
.est-today-rank {
  width: 24px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: rgba(79,142,247,.14);
  color: var(--accent);
  font-size: 11px;
  font-weight: 900;
}
.est-today-product {
  min-width: 0;
  display: grid;
  gap: 3px;
}
.est-today-product strong {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--text);
  font-size: 12px;
}
.est-today-product small {
  color: var(--text3);
  font-size: 10px;
}
.est-today-bar {
  height: 5px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(148,163,184,.14);
}
.est-today-bar span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--accent);
}
.est-today-metrics {
  display: grid;
  gap: 2px;
  justify-items: end;
  text-align: right;
}
.est-today-metrics b {
  color: var(--text);
  font-size: 12px;
}
.est-today-metrics span {
  color: var(--text2);
  font-size: 10.5px;
  font-weight: 800;
}
@media (max-width: 1180px) {
  #page-reparaciones .rep-status-board { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  #page-reparaciones .rep-filtros-row { grid-template-columns: 1fr; }
  #page-reparaciones .rep-filtros-row .btn { justify-self: start; }
}
@media (max-width: 760px) {
  #page-reparaciones .rep-board-head { align-items: flex-start; flex-direction: column; }
  #page-reparaciones .rep-status-board { grid-template-columns: 1fr 1fr; }
  .rep-stepper { grid-template-columns: 1fr; }
  .rep-modal-footer { align-items: stretch; flex-direction: column; }
  .rep-footer-left { margin-right: 0; }
}

/* ============================================================
   USUARIOS — visual compacto 100% 20260607
   ============================================================ */
#page-usuarios {
  display: none;
}
#page-usuarios.active {
  display: grid;
  gap: 10px;
}
#page-usuarios .usuarios-topbar {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) auto;
  align-items: center;
  gap: 8px;
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--bg-card);
  box-shadow: var(--shadow-soft);
}
#page-usuarios .usuarios-search {
  min-height: 36px;
  height: 36px;
  max-width: 560px;
}
#page-usuarios .usuarios-search input {
  height: 34px;
  font-size: 12px;
}
#page-usuarios .usuarios-new-btn {
  min-height: 36px;
  height: 36px;
  padding: 7px 13px;
  font-size: 12px;
  white-space: nowrap;
}
#page-usuarios .usuarios-table-card {
  padding: 12px 14px;
  border-radius: var(--radius);
}
#page-usuarios .table-wrap {
  border-radius: 10px;
  overflow-x: auto;
}
#usuarios-table {
  min-width: 720px;
}
#usuarios-table th,
#usuarios-table td {
  padding: 8px 10px;
  font-size: 12px;
  line-height: 1.25;
  vertical-align: middle;
}
#usuarios-table th {
  height: 32px;
  font-size: 10px;
  letter-spacing: .08em;
  white-space: nowrap;
}
#usuarios-table td:first-child,
#usuarios-table th:first-child,
#usuarios-table td:nth-child(4),
#usuarios-table th:nth-child(4),
#usuarios-table td:nth-child(5),
#usuarios-table th:nth-child(5),
#usuarios-table td:nth-child(6),
#usuarios-table th:nth-child(6),
#usuarios-table td:nth-child(7),
#usuarios-table th:nth-child(7) {
  text-align: center;
}
#usuarios-table td:nth-child(2),
#usuarios-table th:nth-child(2),
#usuarios-table td:nth-child(3),
#usuarios-table th:nth-child(3) {
  text-align: left;
}
#usuarios-table .usuario-id-cell,
#usuarios-table .usuario-login-cell,
#usuarios-table .usuario-date-cell {
  white-space: nowrap;
  color: var(--text2);
}
#usuarios-table .usuario-name-cell strong {
  display: block;
  max-width: 240px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 12px;
}
#usuarios-table .rol-badge,
#usuarios-table .badge {
  min-height: 24px;
  padding: 4px 9px;
  border-radius: 999px;
  font-size: 10.5px;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
}
#usuarios-table td:last-child,
#usuarios-table th:last-child {
  text-align: center;
}
#usuarios-table .usuario-actions {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-wrap: nowrap;
  gap: 5px;
  width: 100%;
  min-width: 0;
}
#usuarios-table .usuario-actions .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  height: 28px;
  padding: 0 9px;
  font-size: 11px;
  line-height: 1;
  white-space: nowrap;
}
#usuarios-table .usuario-actions .btn-red {
  width: 28px;
  min-width: 28px;
  max-width: 28px;
  padding: 0;
  font-size: 14px;
  line-height: 1;
}
#usuarios-pag-container {
  margin-top: 8px;
}
#usuarios-empty {
  padding: 24px 14px;
  margin-top: 8px;
  border: 1px dashed var(--border2);
  border-radius: 12px;
  background: var(--bg3);
}
#usuarios-empty .empty-icon {
  font-size: 28px;
  opacity: .55;
}
#usuarios-empty .empty-text {
  margin-top: 6px;
  font-size: 13px;
  color: var(--text2);
}
.usuarios-modal {
  max-width: 440px;
}
.usuarios-modal .modal-header {
  padding-bottom: 10px;
}
.usuarios-modal .form-grid {
  gap: 8px;
}
.usuarios-modal .form-group label {
  font-size: 10.5px;
}
.usuarios-modal input,
.usuarios-modal select {
  min-height: 34px;
  height: 34px;
  font-size: 12px;
}
.usuarios-pass-hint {
  grid-column: 1 / -1;
  margin-top: -4px;
  font-size: 11px;
  color: var(--text3);
}
.usuarios-modal .modal-footer {
  padding-top: 10px;
  gap: 8px;
}
.usuarios-modal .modal-footer .btn {
  min-height: 32px;
  padding: 6px 11px;
  font-size: 12px;
}
@media (max-width: 780px) {
  #page-usuarios .usuarios-topbar {
    grid-template-columns: 1fr;
  }
  #page-usuarios .usuarios-search,
  #page-usuarios .usuarios-new-btn {
    max-width: none;
    width: 100%;
  }
}
#usuarios-empty.usuarios-empty-hidden { display: none; }

/* ============================================================
   HISTORIAL — auditoría compacta 100%
   ============================================================ */
#page-historial {
  align-content: start;
}

#page-historial.active {
  display: grid;
  gap: 14px;
}

#page-historial .hist-page-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 15px 17px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(30, 41, 59, .58), rgba(15, 23, 42, .58));
  box-shadow: var(--shadow-soft);
}

#page-historial .hist-title-block {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

#page-historial .hist-title-icon {
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  background: rgba(59, 130, 246, .14);
  border: 1px solid rgba(96, 165, 250, .22);
  font-size: 17px;
  flex: 0 0 34px;
}

#page-historial .card-title {
  font-size: 17px;
  line-height: 1.15;
}

#page-historial .card-subtitle {
  margin-top: 3px;
  font-size: 11.5px;
  line-height: 1.25;
  color: var(--text3);
}

#page-historial .hist-head-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex: 0 0 auto;
}

#page-historial .hist-head-actions .btn {
  height: 34px;
  padding: 0 13px;
  font-size: 12px;
  white-space: nowrap;
}

#page-historial .hist-kpi-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(120px, 1fr));
  gap: 12px;
}

#page-historial .hist-kpi-card {
  min-height: 78px;
  padding: 14px 16px;
  border: 1px solid var(--border);
  border-radius: 15px;
  background: var(--bg2);
  box-shadow: var(--shadow-soft);
  display: grid;
  align-content: center;
  gap: 7px;
  position: relative;
  overflow: hidden;
}

#page-historial .hist-kpi-card::before {
  content: "";
  position: absolute;
  inset: 0 auto auto 0;
  width: 100%;
  height: 2px;
  background: var(--blue);
  opacity: .85;
}

#page-historial .hist-kpi-card.warn::before { background: var(--amber); }
#page-historial .hist-kpi-card.danger::before { background: var(--red); }

#page-historial .hist-kpi-card span {
  font-size: 10.5px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--text3);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

#page-historial .hist-kpi-card strong {
  font-size: 25px;
  line-height: 1;
  color: var(--text);
}

#page-historial .hist-filter-card {
  padding: 14px 16px;
  border-radius: 16px;
}

#page-historial .hist-filter-main {
  display: grid;
  grid-template-columns: minmax(290px, auto) minmax(260px, 1fr) minmax(140px, 170px) minmax(140px, 170px) auto auto;
  column-gap: 10px;
  row-gap: 10px;
  align-items: center;
}

#page-historial .hist-period-pills {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 4px;
  border: 1px solid var(--border);
  border-radius: 13px;
  background: rgba(15, 23, 42, .32);
  min-height: 34px;
}

#page-historial .hist-pill {
  height: 26px;
  padding: 0 10px;
  border-radius: 10px;
  border: 1px solid transparent;
  background: transparent;
  color: var(--text2);
  font-size: 11.5px;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
}

#page-historial .hist-pill:hover {
  color: var(--text);
  background: rgba(59, 130, 246, .10);
  border-color: rgba(96, 165, 250, .18);
}

#page-historial .hist-pill.active {
  color: #fff;
  background: rgba(59, 130, 246, .22);
  border-color: rgba(96, 165, 250, .45);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.04);
}

#page-historial .hist-search-compact {
  min-width: 0;
  height: 34px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 11px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--bg2);
}

#page-historial .hist-search-compact span {
  color: var(--text3);
  font-size: 14px;
  flex: 0 0 auto;
}

#page-historial .hist-search-compact input {
  width: 100%;
  min-width: 0;
  height: 30px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--text);
  font-size: 12.5px;
  outline: none;
}

#page-historial .hist-mini-select,
#page-historial .hist-advanced input {
  height: 34px;
  min-height: 34px;
  padding: 0 10px;
  border-radius: 12px;
  border: 1px solid var(--border);
  background: var(--bg2);
  color: var(--text);
  font-size: 12.5px;
}

#page-historial .hist-filter-main .btn {
  height: 34px;
  padding: 0 12px;
  font-size: 12px;
  white-space: nowrap;
}

#page-historial .hist-advanced {
  display: grid;
  grid-template-columns: 150px 150px minmax(180px, 1fr) auto;
  gap: 8px;
  align-items: end;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--border);
}

#page-historial .hist-hidden {
  display: none !important;
}

#page-historial .hist-advanced .form-group {
  gap: 4px;
}

#page-historial .hist-advanced label {
  font-size: 10.5px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--text3);
}

#page-historial .hist-advanced .btn {
  height: 34px;
  padding: 0 12px;
  font-size: 12px;
  white-space: nowrap;
}

#page-historial .hist-table-card {
  padding: 15px 16px 16px;
  border-radius: 16px;
}

#page-historial .hist-card-header {
  padding: 0 0 12px;
  margin: 0 0 12px;
  border-bottom: 1px solid var(--border);
}

#page-historial .hist-table-wrap {
  border-radius: 14px;
  border: 1px solid var(--border);
  overflow: hidden;
}

#page-historial .hist-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

#page-historial .hist-table th,
#page-historial .hist-table td {
  padding: 10px 12px;
  border-bottom: 1px solid var(--border);
  vertical-align: middle;
  font-size: 12px;
}

#page-historial .hist-table th {
  height: 32px;
  background: rgba(15, 23, 42, .62);
  color: var(--text3);
  font-size: 10.5px;
  line-height: 1.1;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-weight: 800;
  white-space: nowrap;
}

#page-historial .hist-table th:nth-child(1) { width: 110px; }
#page-historial .hist-table th:nth-child(2) { width: 150px; }
#page-historial .hist-table th:nth-child(3) { width: 170px; }
#page-historial .hist-table th:nth-child(5) { width: 150px; }
#page-historial .hist-table th:nth-child(6) { width: 70px; text-align: center; }

#page-historial .hist-table td:nth-child(6) {
  text-align: center;
}

#page-historial .hist-date,
#page-historial .cell-title,
#page-historial .hist-origin {
  min-width: 0;
  display: grid;
  gap: 2px;
}

#page-historial .hist-date strong,
#page-historial .cell-title strong,
#page-historial .hist-origin strong {
  color: var(--text);
  font-size: 12px;
  line-height: 1.15;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

#page-historial .hist-date small,
#page-historial .cell-title small,
#page-historial .hist-origin small,
#page-historial .hist-move small {
  color: var(--text3);
  font-size: 10.5px;
  line-height: 1.15;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

#page-historial .hist-move {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

#page-historial .hist-move > div {
  min-width: 0;
  display: grid;
  gap: 3px;
}

#page-historial .hist-move-icon {
  width: 26px;
  height: 26px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
  background: rgba(59, 130, 246, .12);
  border: 1px solid rgba(96, 165, 250, .18);
  font-size: 13px;
  flex: 0 0 26px;
}

#page-historial .hist-table .badge {
  min-height: 22px;
  max-width: 128px;
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 10.5px;
  line-height: 1.15;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

#page-historial .hist-table .btn-xs {
  height: 28px;
  min-width: 44px;
  padding: 0 10px;
  font-size: 11px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

#page-historial #historial-pag-container {
  margin-top: 10px;
}

#page-historial #historial-pag-container .pag-bar {
  align-items: center;
  gap: 10px;
}

#page-historial .hist-empty {
  margin-top: 12px;
  min-height: 118px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text3);
  font-size: 12px;
}

.hist-detail-modal {
  max-width: 900px;
}

.hist-modal-subtitle {
  font-size: 11.5px;
}

#historial-detalle-body {
  display: grid;
  gap: 12px;
}

.hist-detail-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.hist-detail-grid > div,
.hist-detail-section {
  border: 1px solid var(--border);
  background: var(--bg2);
  border-radius: 13px;
  padding: 10px 11px;
  min-width: 0;
}

.hist-detail-grid > div.full {
  grid-column: 1 / -1;
}

.hist-detail-grid span {
  display: block;
  margin-bottom: 4px;
  font-size: 10px;
  color: var(--text3);
  letter-spacing: .08em;
  text-transform: uppercase;
}

.hist-detail-grid strong {
  display: block;
  color: var(--text);
  font-size: 12px;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.hist-detail-section h4 {
  margin: 0 0 8px;
  color: var(--text);
  font-size: 12px;
}

.hist-json-box {
  max-height: 220px;
  overflow: auto;
  margin: 0;
  padding: 10px;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: rgba(2, 6, 23, .38);
  color: var(--text2);
  font-size: 11px;
  line-height: 1.35;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.hist-json-empty {
  color: var(--text3);
  font-size: 12px;
}

.hist-diff-list {
  display: grid;
  gap: 6px;
}

.hist-diff-row {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  padding: 7px 8px;
  border-radius: 10px;
  background: rgba(15, 23, 42, .32);
}

.hist-diff-field {
  color: var(--text2);
  font-size: 11.5px;
  font-weight: 800;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.hist-diff-values {
  display: flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
  color: var(--text3);
  font-size: 11px;
}

.hist-diff-values span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

html[data-theme="light"] #page-historial .hist-page-head,
html[data-theme="light"] #page-historial .hist-kpi-card,
html[data-theme="light"] #page-historial .hist-search-compact,
html[data-theme="light"] #page-historial .hist-mini-select,
html[data-theme="light"] #page-historial .hist-advanced input,
html[data-theme="light"] .hist-detail-grid > div,
html[data-theme="light"] .hist-detail-section {
  background: #ffffff;
}

@media (max-width: 1380px) {
  #page-historial .hist-filter-main {
    grid-template-columns: minmax(260px, auto) minmax(220px, 1fr) minmax(130px, 150px) minmax(130px, 150px) auto auto;
  }
  #page-historial .hist-pill {
    padding-inline: 8px;
  }
}


.est-today-ranking-card {
  margin-bottom: 8px;
}
.est-today-head {
  align-items: flex-start;
}
.est-today-chips {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  flex-wrap: wrap;
}
.est-today-chips span {
  min-height: 24px;
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--bg3);
  color: var(--text2);
  font-size: 10.5px;
  font-weight: 800;
  white-space: nowrap;
}
.est-today-ranking-list {
  display: grid;
  gap: 6px;
}
.est-today-ranking-row {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) 120px;
  align-items: center;
  gap: 9px;
  min-height: 42px;
  padding: 7px 8px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--bg2);
}
.est-today-rank {
  width: 24px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: rgba(79,142,247,.14);
  color: var(--accent);
  font-size: 11px;
  font-weight: 900;
}
.est-today-product {
  min-width: 0;
  display: grid;
  gap: 3px;
}
.est-today-product strong {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--text);
  font-size: 12px;
}
.est-today-product small {
  color: var(--text3);
  font-size: 10px;
}
.est-today-bar {
  height: 5px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(148,163,184,.14);
}
.est-today-bar span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--accent);
}
.est-today-metrics {
  display: grid;
  gap: 2px;
  justify-items: end;
  text-align: right;
}
.est-today-metrics b {
  color: var(--text);
  font-size: 12px;
}
.est-today-metrics span {
  color: var(--text2);
  font-size: 10.5px;
  font-weight: 800;
}
@media (max-width: 1180px) {
  #page-historial .hist-kpi-grid {
    grid-template-columns: repeat(3, minmax(120px, 1fr));
  }
  #page-historial .hist-filter-main {
    grid-template-columns: 1fr 1fr;
  }
  #page-historial .hist-period-pills,
  #page-historial .hist-search-compact {
    grid-column: span 2;
  }
  #page-historial .hist-advanced {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 760px) {
  #page-historial .hist-page-head,
  #page-historial .hist-head-actions,
  #page-historial .hist-title-block {
    align-items: stretch;
  }
  #page-historial .hist-page-head,
  #page-historial .hist-head-actions {
    flex-direction: column;
  }
  #page-historial .hist-kpi-grid,
  #page-historial .hist-filter-main,
  #page-historial .hist-advanced,
  .hist-detail-grid {
    grid-template-columns: 1fr;
  }
  #page-historial .hist-period-pills,
  #page-historial .hist-search-compact {
    grid-column: auto;
  }
}

/* ============================================================
   CONFIGURACIÓN — pulida compacta 100%
============================================================ */
#page-configuracion.active{
  display:block;
}
#page-configuracion .cfg-page-wrap{
  max-width:1180px;
  margin:0 auto;
  display:grid;
  gap:10px;
}
#page-configuracion .proveedores-hero-row{
  padding:0;
  min-height:auto;
  display:flex;
  justify-content:flex-end;
  align-items:center;
  margin-bottom:0;
}
#page-configuracion .cfg-top-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
#page-configuracion .cfg-save-all-btn{
  white-space:nowrap;
  min-height:36px;
  padding:8px 14px;
}
#page-configuracion .cfg-tabs{
  margin-bottom:6px;
  padding-bottom:8px;
  border-bottom:1px solid var(--border);
  gap:6px;
}
#page-configuracion .cfg-tabs .tab{
  min-height:32px;
  padding:7px 11px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1;
  font-size:12px;
}
#page-configuracion .cfg-section{
  display:grid;
  gap:10px;
}
#page-configuracion .card{
  padding:14px;
}
#page-configuracion .card-header{
  margin-bottom:10px;
  padding-bottom:8px;
}
#page-configuracion .card-title{
  font-size:14px;
}
#page-configuracion .card-subtitle{
  font-size:11.5px;
}
#page-configuracion .form-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:9px 10px;
}
#page-configuracion .form-group{
  gap:4px;
}
#page-configuracion label{
  font-size:10.5px;
  letter-spacing:.06em;
}
#page-configuracion input,
#page-configuracion select,
#page-configuracion textarea{
  min-height:34px;
  padding:7px 10px;
  font-size:12.5px;
}
#page-configuracion textarea{
  min-height:72px;
}
#page-configuracion .cfg-help{
  font-size:10.5px;
  color:var(--text3);
  margin-top:3px;
  line-height:1.35;
}
#page-configuracion .cfg-help-logo{
  margin-top:6px;
}
#page-configuracion .cfg-card-spaced{
  margin-bottom:10px;
}
#page-configuracion .cfg-actions-end,
#page-configuracion .cfg-save-row{
  display:flex;
  justify-content:flex-end;
  margin-top:10px;
}
#page-configuracion .cfg-save-row{
  padding-top:10px;
  border-top:1px solid var(--border);
}
#page-configuracion .cfg-btn-wide{
  padding:8px 20px;
}
#page-configuracion .cfg-logo-row{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}
#page-configuracion .cfg-logo-preview{
  width:70px;
  height:70px;
  border:2px dashed var(--border);
  border-radius:var(--radius-sm);
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  background:var(--bg3);
}
#page-configuracion .cfg-logo-placeholder{
  font-size:24px;
  color:var(--text3);
}
#page-configuracion .cfg-logo-img{
  width:100%;
  height:100%;
  object-fit:contain;
}
#page-configuracion .cfg-logo-btn{
  font-size:11.5px;
  padding:6px 11px;
  min-height:32px;
}
#page-configuracion .cfg-logo-btn-muted{
  margin-left:6px;
  opacity:.78;
}
#page-configuracion .cfg-ventas-rules{
  margin-top:10px;
}
#page-configuracion .cfg-rule-badge{
  min-height:42px;
  padding:8px 10px;
}
#page-configuracion .cfg-inline-field,
#page-configuracion .cfg-inline-actions,
#page-configuracion .cfg-inline-actions-wrap{
  display:flex;
  align-items:center;
  gap:8px;
}
#page-configuracion .cfg-inline-actions,
#page-configuracion .cfg-inline-actions-wrap{
  flex-wrap:wrap;
}
#page-configuracion .cfg-inline-actions-spaced{
  margin-bottom:10px;
}
#page-configuracion .cfg-input-xs{
  width:80px;
  flex:0 0 80px;
}
#page-configuracion .cfg-inline-text{
  font-size:12px;
  color:var(--text2);
}
#page-configuracion .cfg-print-grid,
#page-configuracion .cfg-security-grid{
  gap:10px;
}
#page-configuracion .cfg-print-card,
#page-configuracion .cfg-security-card{
  padding:12px;
}
#page-configuracion .cfg-print-title,
#page-configuracion .cfg-security-title{
  font-size:13px;
}
#page-configuracion .cfg-print-text,
#page-configuracion .cfg-security-text,
#page-configuracion .cfg-security-hint{
  font-size:11.5px;
  line-height:1.4;
}
#page-configuracion .cfg-print-actions,
#page-configuracion .cfg-security-inputrow{
  gap:8px;
  flex-wrap:wrap;
}
#page-configuracion .cfg-recargo-col{
  width:150px;
}
#page-configuracion .cfg-recargo-name,
#page-configuracion .cfg-recargo-cell,
#page-configuracion .cfg-recargo-example{
  padding:8px 10px;
  font-size:12px;
  border-bottom:1px solid var(--border);
}
#page-configuracion .cfg-recargo-name{
  color:var(--text);
  font-weight:700;
}
#page-configuracion .cfg-recargo-input-row{
  display:flex;
  align-items:center;
  gap:6px;
}
#page-configuracion .cfg-recargo-input{
  width:76px;
  text-align:right;
  min-height:30px;
  padding:5px 7px;
  font-size:12px;
}
#page-configuracion .cfg-recargo-percent,
#page-configuracion .cfg-recargo-example,
#page-configuracion .cfg-muted-inline{
  font-size:12px;
  color:var(--text3);
}
#page-configuracion .cfg-text-green,
#page-configuracion .is-green{
  color:var(--green) !important;
}
#page-configuracion .is-orange{
  color:var(--orange) !important;
}
#page-configuracion .cfg-text-red,
#page-configuracion .is-red{
  color:var(--red) !important;
}
#page-configuracion .cfg-backup-body{
  padding:14px;
  display:flex;
  flex-direction:column;
  gap:12px;
}
#page-configuracion .cfg-backup-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
#page-configuracion .cfg-backup-card,
#page-configuracion .cfg-danger-card{
  background:var(--bg3);
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
  padding:13px;
}
#page-configuracion .cfg-backup-title,
#page-configuracion .cfg-backup-title-strong{
  font-size:12.5px;
  font-weight:800;
  margin-bottom:4px;
}
#page-configuracion .cfg-backup-title-gap{
  margin-bottom:7px;
}
#page-configuracion .cfg-backup-text,
#page-configuracion .cfg-danger-text{
  font-size:11.5px;
  color:var(--text3);
  line-height:1.4;
  margin-bottom:10px;
}
#page-configuracion .cfg-danger-card{
  background:rgba(239,68,68,0.06);
  border-color:rgba(239,68,68,0.28);
}
#page-configuracion .cfg-danger-title{
  font-size:12.5px;
  font-weight:800;
  margin-bottom:6px;
  color:var(--red);
}
#page-configuracion .cfg-full-btn{
  width:100%;
}
#page-configuracion .cfg-btn-warning{
  border-color:rgba(245,158,11,.45) !important;
  color:var(--orange) !important;
}
#page-configuracion .cfg-btn-danger-outline{
  border-color:rgba(239,68,68,.45) !important;
  color:var(--red) !important;
}
#page-configuracion .cfg-btn-danger-fill{
  background:var(--red) !important;
  border-color:var(--red) !important;
}
#page-configuracion .cfg-log-box{
  background:var(--bg3);
  border:1px solid var(--border);
  border-radius:10px;
  padding:10px;
  font-size:11px;
  font-family:monospace;
  color:var(--text2);
  max-height:200px;
  overflow:auto;
}
#page-configuracion .cfg-log-box-large{
  background:var(--bg2);
  font-family:inherit;
  font-size:11.5px;
  max-height:320px;
}
#modal-reset-sistema .cfg-reset-modal{
  max-width:640px;
}
#modal-reset-sistema .cfg-modal-subtitle{
  font-size:11.5px;
  color:var(--text3);
  margin-top:2px;
}
#modal-reset-sistema .cfg-reset-body{
  padding:14px 16px;
  display:flex;
  flex-direction:column;
  gap:12px;
}
#modal-reset-sistema .cfg-reset-warning{
  background:rgba(239,68,68,.08);
  border:1px solid rgba(239,68,68,.28);
  border-radius:12px;
  padding:12px;
  color:var(--text2);
  font-size:12px;
  line-height:1.42;
}
#modal-reset-sistema .cfg-reset-log{
  max-height:170px;
}
#page-configuracion #cfg-permisos-wrap{
  gap:10px;
}
#page-configuracion .perm-role-card{
  padding:12px;
}
#page-configuracion .perm-role-head{
  align-items:center;
  gap:12px;
  margin-bottom:10px;
  padding-bottom:10px;
}
#page-configuracion .perm-role-title{
  font-size:16px;
  line-height:1.1;
}
#page-configuracion .perm-role-sub{
  font-size:11.5px;
  line-height:1.35;
  margin-top:4px;
}
#page-configuracion .perm-role-head .btn{
  min-height:34px;
  padding:7px 14px;
  line-height:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  white-space:nowrap;
}
#page-configuracion .perm-modules-compact{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
#page-configuracion .perm-module-row{
  min-width:0;
  padding:10px;
  border:1px solid var(--border);
  border-radius:12px;
  background:rgba(255,255,255,.018);
}
#page-configuracion .perm-module-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:8px;
  padding-bottom:7px;
  border-bottom:1px solid rgba(148,163,184,.13);
}
#page-configuracion .perm-module-title{
  font-size:12px;
  font-weight:800;
  color:var(--text1);
  line-height:1.15;
}
#page-configuracion .perm-module-count{
  margin-top:2px;
  font-size:10.5px;
  color:var(--text3);
  line-height:1.2;
}
#page-configuracion .perm-list-compact{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:6px;
}
#page-configuracion .perm-line{
  min-width:0;
  min-height:30px;
  display:flex;
  align-items:center;
  gap:7px;
  padding:6px 8px;
  border:1px solid rgba(148,163,184,.16);
  border-radius:10px;
  background:rgba(15,23,42,.25);
  color:var(--text2);
  font-size:11.5px;
  font-weight:700;
  letter-spacing:0;
  text-transform:none;
  line-height:1.2;
}
#page-configuracion .perm-line span{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
#page-configuracion .perm-line input[type="checkbox"]{
  flex:0 0 16px;
  width:16px;
  height:16px;
  min-height:16px;
  margin:0;
  padding:0;
  accent-color:var(--primary);
  cursor:pointer;
}
#page-configuracion .perm-line:has(input:checked){
  border-color:rgba(59,130,246,.42);
  background:rgba(59,130,246,.12);
  color:var(--text1);
}
#page-configuracion .cfg-devices-summary{
  gap:8px;
  margin-bottom:10px;
}
#page-configuracion .cfg-devices-chip{
  min-height:38px;
  padding:7px 10px;
}
#page-configuracion .cfg-devices-table th,
#page-configuracion .cfg-devices-table td{
  padding:7px 8px;
  font-size:11.5px;
}
#page-configuracion .cfg-diag-metrics{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  margin-bottom:10px;
}
#page-configuracion .cfg-diag-db{
  font-size:15px;
}
#page-configuracion .cfg-diag-alert{
  margin-top:10px;
  padding:10px;
  border-radius:10px;
  border:1px solid var(--border);
  font-size:11.5px;
}
#page-configuracion .cfg-diag-alert.is-orange{
  background:rgba(245,158,11,.08);
  border-color:rgba(245,158,11,.35);
  color:var(--text2) !important;
}
#page-configuracion .cfg-diag-alert.is-green{
  background:rgba(34,197,94,.08);
  border-color:rgba(34,197,94,.25);
  color:var(--green) !important;
}
#page-configuracion .cfg-diag-alert.is-red{
  background:rgba(239,68,68,.08);
  border-color:rgba(239,68,68,.35);
  color:var(--text2) !important;
}
#page-configuracion .cfg-diag-chip-list{
  margin-top:7px;
  display:flex;
  gap:6px;
  flex-wrap:wrap;
}
#page-configuracion .cfg-mono{
  font-family:monospace;
}
#page-configuracion .cfg-diag-table-wrap{
  margin-top:12px;
  border:1px solid var(--border);
  border-radius:10px;
  overflow:hidden;
}
#page-configuracion .cfg-diag-table-title{
  padding:8px 10px;
  background:var(--bg3);
  font-size:11.5px;
  font-weight:800;
  border-bottom:1px solid var(--border);
}
#page-configuracion .cfg-diag-table{
  width:100%;
  border-collapse:collapse;
  font-size:11.5px;
}
#page-configuracion .cfg-diag-table thead tr{
  background:var(--bg2);
}
#page-configuracion .cfg-diag-table th{
  padding:7px 8px;
  text-align:left;
}
#page-configuracion .cfg-diag-cell{
  padding:7px 8px;
  border-bottom:1px solid var(--border);
}
#page-configuracion .cfg-diag-right{
  text-align:right !important;
}
#page-configuracion .cfg-diag-strong,
#page-configuracion .cfg-diag-table-label{
  font-weight:800;
}
#page-configuracion .cfg-diag-table-name{
  font-family:monospace;
  font-size:10.5px;
  color:var(--text3);
  margin-top:2px;
}
#page-configuracion .cfg-diag-empty{
  padding:10px;
  color:var(--text3);
}
#page-configuracion .cfg-diag-suggestions{
  margin-top:10px;
  font-size:11.5px;
}
#page-configuracion .cfg-diag-suggestions ul{
  margin:7px 0 0 18px;
  padding:0;
}
#page-configuracion .cfg-diag-suggestions li{
  margin-bottom:4px;
}
#page-configuracion .cfg-diag-ok{
  margin-top:10px;
  color:var(--green);
  font-weight:800;
  font-size:11.5px;
}
#page-configuracion .cfg-diag-server-time{
  margin-top:10px;
  font-size:10.5px;
  color:var(--text3);
}
@media (max-width: 1100px){
  #page-configuracion .form-grid,
  #page-configuracion .cfg-diag-metrics{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width: 760px){
  #page-configuracion .form-grid,
  #page-configuracion .cfg-backup-grid,
  #page-configuracion .cfg-diag-metrics{
    grid-template-columns:1fr;
  }
}

/* ============================================================
   RESPONSIVE GLOBAL — celular sin apretar módulos 20260608
   Mantiene escritorio compacto al 100% y prioriza lectura cómoda en mobile.
============================================================ */
@media (max-width: 860px) {
  :root {
    --sidebar: 0px;
    --topbar: auto;
    --pad: 12px;
    --radius: 13px;
  }

  html { font-size: 13px; }
  body {
    display: block;
    min-width: 0;
    overflow-x: hidden;
  }

  #sidebar {
    position: sticky;
    top: 0;
    width: 100%;
    height: auto;
    max-height: none;
    border-right: 0;
    border-bottom: 1px solid var(--border);
    box-shadow: 0 10px 28px rgba(0,0,0,.22);
    z-index: 120;
  }

  .sidebar-logo {
    padding: 9px 12px;
    gap: 10px;
  }
  .logo-icon {
    width: 34px;
    height: 34px;
    border-radius: 10px;
    font-size: 16px;
  }
  .logo-text { font-size: 14px; }
  .logo-sub { font-size: 9px; }

  .sidebar-nav {
    display: flex;
    gap: 8px;
    padding: 8px 10px 10px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x proximity;
  }
  .sidebar-nav::-webkit-scrollbar { height: 4px; }
  .nav-section {
    display: contents;
    margin: 0;
  }
  .nav-label { display: none; }
  .nav-item {
    flex: 0 0 auto;
    min-height: 36px;
    padding: 0 10px;
    margin: 0;
    gap: 7px;
    border-radius: 11px;
    font-size: 12px;
    scroll-snap-align: start;
  }
  .nav-icon {
    width: 24px;
    height: 24px;
    border-radius: 8px;
    font-size: 13px;
  }
  .user-card,
  .logout-btn,
  #btn-logout { display: none; }

  #main {
    margin-left: 0;
    min-height: auto;
    width: 100%;
  }

  .topbar {
    position: sticky;
    top: 0;
    min-height: auto;
    padding: 10px 12px;
    align-items: flex-start;
    gap: 8px;
    z-index: 80;
  }
  .topbar-left { min-width: 0; }
  .topbar-right {
    justify-content: flex-end;
    gap: 6px;
  }
  .page-title {
    font-size: 17px;
    line-height: 1.12;
  }
  .page-sub {
    font-size: 11px;
    white-space: normal;
    line-height: 1.25;
  }
  .notif-btn,
  .topbar-theme-pill,
  .topbar-status-pill,
  .topbar-date-pill {
    min-height: 30px;
    padding: 0 9px;
    font-size: 11px;
  }
  .topbar-theme-pill span:last-child,
  .topbar-date-pill { display: none; }

  .content {
    padding: 12px 10px 22px;
    overflow-x: hidden;
  }

  .card,
  .stat-card,
  .page-hero,
  .hero-panel,
  .module-shell,
  .cfg-panel,
  .hist-shell,
  .imp-panel,
  .rep-board,
  .scanner-shell,
  .nv-card,
  .nr-card {
    border-radius: 14px;
    padding: 12px;
  }

  .card-header,
  .section-head,
  .modal-header {
    gap: 10px;
  }

  .btn,
  button,
  select,
  input,
  textarea {
    max-width: 100%;
  }

  .btn {
    min-height: 34px;
    justify-content: center;
    padding: 7px 10px;
  }

  .stats-grid,
  .grid-2,
  .grid-3,
  .kpi-grid,
  .kpi-strip,
  .dashboard-grid,
  .report-grid,
  .est-grid,
  .est-detail-grid,
  .cfg-grid,
  .imp-grid,
  .rep-grid,
  .scan-grid,
  .form-grid,
  .nv-grid,
  .nr-grid {
    grid-template-columns: 1fr !important;
  }

  .stat-card,
  .kpi-card {
    min-height: auto;
  }

  .toolbar-row,
  .toolbar-group,
  .section-toolbar,
  .card-header.table-toolbar-stack,
  .ventas-toolbar,
  .ventas-toolbar-row,
  .ventas-toolbar-main,
  .ventas-period-row,
  .clientes-filters-row,
  .inv-toolbar-compact,
  .inv-toolbar-row,
  .inv-toolbar-actions,
  .scan-toolbar,
  .compras-toolbar,
  .compras-toolbar-row,
  .compras-toolbar-date-row,
  .proveedores-toolbar,
  .proveedores-toolbar-row,
  .caja-filtros-toolbar,
  .caja-filtros-row,
  .gastos-filtros-toolbar,
  .rep-filtros-toolbar,
  .hist-filter-row,
  .hist-page-actions,
  .cfg-tabs,
  .est-periods,
  .est-tabs,
  .imp-actions,
  .nr-toolbar,
  .nv-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 8px;
    width: 100%;
  }

  .toolbar-row > *,
  .toolbar-group > *,
  .section-toolbar > *,
  .ventas-toolbar-row > *,
  .clientes-filters-row > *,
  .inv-toolbar-row > *,
  .scan-toolbar > *,
  .compras-toolbar-row > *,
  .compras-toolbar-date-row > *,
  .proveedores-toolbar-row > *,
  .caja-filtros-row > *,
  .gastos-filtros-toolbar > *,
  .rep-filtros-toolbar > *,
  .hist-filter-row > *,
  .hist-page-actions > *,
  .cfg-tabs > *,
  .est-periods > *,
  .est-tabs > *,
  .imp-actions > * {
    flex: 1 1 100%;
    min-width: 0;
  }

  .btn-group,
  .period-group,
  .est-periods,
  .quick-range,
  .tabs,
  .cfg-tabs,
  .est-tabs {
    overflow-x: auto;
    flex-wrap: nowrap;
    justify-content: flex-start;
    padding-bottom: 2px;
  }
  .btn-group .btn,
  .period-group .btn,
  .est-periods .btn,
  .quick-range .btn,
  .tabs .btn,
  .cfg-tabs .btn,
  .est-tabs .btn {
    flex: 0 0 auto;
    white-space: nowrap;
  }

  .search-box,
  .search-input,
  .filter-input,
  .input-with-icon,
  .nv-searchbox,
  .nr-searchbox,
  .inv-search-compact,
  .scan-input-wrap {
    width: 100%;
    max-width: none;
  }

  .table-wrap,
  .table-responsive,
  .list-table-wrap {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  table {
    min-width: 760px;
  }
  th,
  td {
    padding: 8px 9px;
    white-space: nowrap;
  }

  .pagination,
  .pag-wrap,
  .pag-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 7px;
    width: 100%;
  }
  .pag-size,
  .pagination select,
  .pag-container select {
    width: 100%;
  }

  .modal-overlay {
    align-items: flex-start;
    padding: 10px;
    overflow-y: auto;
  }
  .modal,
  .modal-lg,
  .modal-xl,
  .compra-modal,
  .rep-modal,
  .inv-modal,
  .modal-gasto,
  .usuarios-modal {
    width: 100%;
    max-width: none;
    max-height: none;
    padding: 14px;
    border-radius: 16px;
  }
  .modal-footer {
    flex-wrap: wrap;
    justify-content: stretch;
    gap: 8px;
  }
  .modal-footer .btn,
  .modal-footer button {
    flex: 1 1 100%;
  }

  #toast {
    left: 10px;
    right: 10px;
    bottom: 10px;
    max-width: none;
  }
}

@media (max-width: 520px) {
  html { font-size: 12.5px; }

  .topbar {
    flex-direction: column;
  }
  .topbar-right {
    width: 100%;
    justify-content: space-between;
  }
  .notif-wrap { position: static; }
  .notif-dropdown {
    top: 110px;
    left: 8px;
    right: 8px;
    width: auto;
  }

  .content { padding-inline: 8px; }
  .card,
  .stat-card,
  .page-hero,
  .hero-panel,
  .module-shell,
  .cfg-panel,
  .hist-shell,
  .imp-panel,
  .rep-board,
  .scanner-shell,
  .nv-card,
  .nr-card {
    padding: 10px;
    border-radius: 12px;
  }

  .stats-grid,
  .kpi-strip { gap: 8px; }
  .stat-icon { width: 30px; height: 30px; }

  .btn,
  button,
  input,
  select,
  textarea {
    font-size: 12px;
  }

  .nav-item span:not(.nav-icon) { display: none; }
  .nav-item { padding: 0 8px; }

  table { min-width: 700px; }
}


/* ============================================================
   TEMA CLARO — revisión global 20260608
   Mantiene escritorio compacto y corrige fondos/textos heredados
   de la visual oscura en todos los módulos.
============================================================ */
html[data-theme="light"] body {
  background: var(--bg);
  color: var(--text);
  background-image:
    radial-gradient(circle at 85% 0%, rgba(37,99,235,.08), transparent 30%),
    radial-gradient(circle at 10% 100%, rgba(14,165,233,.06), transparent 30%);
}

html[data-theme="light"] #sidebar {
  background: linear-gradient(180deg, #ffffff 0%, #eef3fb 100%);
  border-right-color: rgba(15,23,42,.12);
  box-shadow: 1px 0 0 rgba(15,23,42,.04), 10px 0 26px rgba(15,23,42,.08);
}
html[data-theme="light"] .sidebar-logo,
html[data-theme="light"] .sidebar-footer { border-color: rgba(15,23,42,.10); }
html[data-theme="light"] .logo-text,
html[data-theme="light"] .sidebar-user-name,
html[data-theme="light"] .page-title { color: #0f172a; }
html[data-theme="light"] .logo-sub,
html[data-theme="light"] .page-sub,
html[data-theme="light"] .nav-label { color: #64748b; }
html[data-theme="light"] .nav-item { color: #475569; }
html[data-theme="light"] .nav-item:hover {
  background: rgba(37,99,235,.07);
  border-color: rgba(37,99,235,.14);
  color: #0f172a;
}
html[data-theme="light"] .nav-item.active {
  background: linear-gradient(180deg, rgba(37,99,235,.13), rgba(37,99,235,.07));
  border-color: rgba(37,99,235,.28);
  color: #1d4ed8;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.75);
}
html[data-theme="light"] .nav-icon,
html[data-theme="light"] .user-card,
html[data-theme="light"] .btn-logout {
  background: rgba(37,99,235,.06);
  border-color: rgba(15,23,42,.10);
}
html[data-theme="light"] .avatar { color: #1d4ed8; }

html[data-theme="light"] .topbar {
  background: rgba(248,250,252,.88);
  border-bottom-color: rgba(15,23,42,.10);
  box-shadow: 0 8px 22px rgba(15,23,42,.04);
}
html[data-theme="light"] .topbar-theme-pill,
html[data-theme="light"] .topbar-status-pill,
html[data-theme="light"] .notif-btn,
html[data-theme="light"] .notif-refresh {
  background: rgba(255,255,255,.88);
  border-color: rgba(15,23,42,.12);
  color: #334155;
}
html[data-theme="light"] .topbar-theme-pill:hover,
html[data-theme="light"] .notif-btn:hover,
html[data-theme="light"] .notif-btn.active,
html[data-theme="light"] .notif-refresh:hover {
  background: #ffffff;
  border-color: rgba(37,99,235,.24);
  color: #0f172a;
}
html[data-theme="light"] .notif-dropdown,
html[data-theme="light"] #toast {
  background: rgba(255,255,255,.98);
  border-color: rgba(15,23,42,.14);
  box-shadow: 0 24px 60px rgba(15,23,42,.14);
}
html[data-theme="light"] .notif-head,
html[data-theme="light"] .notif-item {
  background: linear-gradient(180deg, rgba(248,250,252,.96), rgba(255,255,255,.96));
}
html[data-theme="light"] .notif-mark-read { color: #1d4ed8; }

html[data-theme="light"] input,
html[data-theme="light"] select,
html[data-theme="light"] textarea,
html[data-theme="light"] .search-box,
html[data-theme="light"] .filter-input,
html[data-theme="light"] .hist-search-compact,
html[data-theme="light"] .hist-mini-select,
html[data-theme="light"] .inv-filter-select,
html[data-theme="light"] .ventas-filter-select,
html[data-theme="light"] .reservas-filter-select,
html[data-theme="light"] .clientes-filter-estado,
html[data-theme="light"] .clientes-filter-vendedor,
html[data-theme="light"] .proveedores-filter-rubro,
html[data-theme="light"] .gastos-filter-field,
html[data-theme="light"] .compras-filter,
html[data-theme="light"] .pag-size,
html[data-theme="light"] .pagination select,
html[data-theme="light"] .pag-container select {
  background: #ffffff;
  color: #0f172a;
  border-color: rgba(15,23,42,.16);
}
html[data-theme="light"] input::placeholder,
html[data-theme="light"] textarea::placeholder { color: #94a3b8; }
html[data-theme="light"] input:focus,
html[data-theme="light"] select:focus,
html[data-theme="light"] textarea:focus {
  border-color: rgba(37,99,235,.45);
  box-shadow: 0 0 0 4px rgba(37,99,235,.12);
}
html[data-theme="light"] select option { background: #ffffff; color: #0f172a; }

html[data-theme="light"] .btn:not(.btn-primary):not(.btn-green):not(.btn-red),
html[data-theme="light"] button.btn:not(.btn-primary):not(.btn-green):not(.btn-red),
html[data-theme="light"] .tab-btn,
html[data-theme="light"] .period-btn,
html[data-theme="light"] .toolbar-group,
html[data-theme="light"] .btn-icon,
html[data-theme="light"] .modal-close {
  background: #ffffff;
  color: #0f172a;
  border-color: rgba(15,23,42,.14);
}
html[data-theme="light"] .btn:not(.btn-primary):not(.btn-green):not(.btn-red):hover,
html[data-theme="light"] .tab-btn:hover,
html[data-theme="light"] .period-btn:hover,
html[data-theme="light"] .btn-icon:hover {
  background: #f1f5f9;
  border-color: rgba(37,99,235,.24);
}
html[data-theme="light"] .tab-btn.active,
html[data-theme="light"] .period-btn.active {
  background: rgba(37,99,235,.11);
  color: #1d4ed8;
  border-color: rgba(37,99,235,.28);
}

html[data-theme="light"] .card,
html[data-theme="light"] .stat-card,
html[data-theme="light"] .kpi-tile,
html[data-theme="light"] .metric-card,
html[data-theme="light"] .mini-stat,
html[data-theme="light"] .page-hero,
html[data-theme="light"] .hero-panel,
html[data-theme="light"] .module-shell,
html[data-theme="light"] .panel-soft,
html[data-theme="light"] .table-shell-card,
html[data-theme="light"] .hist-shell,
html[data-theme="light"] .hist-kpi-card,
html[data-theme="light"] .hist-filter-card,
html[data-theme="light"] .hist-table-card,
html[data-theme="light"] .imp-panel,
html[data-theme="light"] .imp-type-card,
html[data-theme="light"] .imp-upload-card,
html[data-theme="light"] .imp-side-card,
html[data-theme="light"] .imp-stepper-card,
html[data-theme="light"] .cfg-panel,
html[data-theme="light"] .cfg-card-spaced,
html[data-theme="light"] .cfg-print-card,
html[data-theme="light"] .cfg-security-card,
html[data-theme="light"] .cfg-backup-card,
html[data-theme="light"] .perm-role-card,
html[data-theme="light"] .nv-card,
html[data-theme="light"] .nv-datos-card,
html[data-theme="light"] .nv-items-card-clean,
html[data-theme="light"] .nv-add-card-clean,
html[data-theme="light"] .nr-card,
html[data-theme="light"] .nr-datos-card,
html[data-theme="light"] .nr-add-card,
html[data-theme="light"] .nr-items-card,
html[data-theme="light"] .reservas-head-card,
html[data-theme="light"] .clientes-kpi-card,
html[data-theme="light"] .clientes-table-card,
html[data-theme="light"] .cliente-detalle-card,
html[data-theme="light"] .clientes-auto-card,
html[data-theme="light"] .crm-panel-card,
html[data-theme="light"] .crm-auto-card,
html[data-theme="light"] .inv-stock-card,
html[data-theme="light"] .inv-history-card,
html[data-theme="light"] .scanner-shell,
html[data-theme="light"] .scan-main-card,
html[data-theme="light"] .scan-admin-panel,
html[data-theme="light"] .scan-alt-panel,
html[data-theme="light"] .compras-toolbar,
html[data-theme="light"] .compra-add-card,
html[data-theme="light"] .compra-impact-card,
html[data-theme="light"] .compra-detail-items-card,
html[data-theme="light"] .proveedores-table-card,
html[data-theme="light"] .prov-detail-history-card,
html[data-theme="light"] .gastos-filtros-card,
html[data-theme="light"] .rep-board,
html[data-theme="light"] .rep-board-card,
html[data-theme="light"] .rep-status-card,
html[data-theme="light"] .est-card,
html[data-theme="light"] .est-reportes-panel,
html[data-theme="light"] .est-tab-panel,
html[data-theme="light"] .est-reportes-hero,
html[data-theme="light"] .usuarios-table-card {
  background: linear-gradient(180deg, #ffffff, #f8fafc);
  border-color: rgba(15,23,42,.12);
  color: #0f172a;
  box-shadow: 0 8px 20px rgba(15,23,42,.055);
}
html[data-theme="light"] .card::before,
html[data-theme="light"] .stat-card::after {
  opacity: .55;
}
html[data-theme="light"] .stat-icon,
html[data-theme="light"] .hero-metric,
html[data-theme="light"] .scan-status,
html[data-theme="light"] .imp-status-pill.idle {
  background: rgba(37,99,235,.07);
  border-color: rgba(37,99,235,.14);
  color: #1d4ed8;
}
html[data-theme="light"] .stat-value,
html[data-theme="light"] .kpi-tile .value,
html[data-theme="light"] .metric-card strong,
html[data-theme="light"] .mini-stat-value,
html[data-theme="light"] .hero-title,
html[data-theme="light"] .card-title,
html[data-theme="light"] .modal-title,
html[data-theme="light"] .cell-title strong,
html[data-theme="light"] td.text-main,
html[data-theme="light"] .text-main {
  color: #0f172a;
}
html[data-theme="light"] .stat-label,
html[data-theme="light"] .card-subtitle,
html[data-theme="light"] .kpi-tile .hint,
html[data-theme="light"] .hero-subtitle,
html[data-theme="light"] .cell-title small,
html[data-theme="light"] .muted,
html[data-theme="light"] .text-muted {
  color: #64748b;
}

html[data-theme="light"] .table-wrap,
html[data-theme="light"] .table-responsive,
html[data-theme="light"] .list-table-wrap,
html[data-theme="light"] .table-resizable-wrap,
html[data-theme="light"] .hist-table-wrap,
html[data-theme="light"] .clientes-table-wrap,
html[data-theme="light"] .imp-preview-wrap,
html[data-theme="light"] .compra-detail-table-wrap,
html[data-theme="light"] .reserva-products-table-wrap,
html[data-theme="light"] .cfg-diag-table-wrap {
  background: #ffffff;
  border-color: rgba(15,23,42,.12);
}
html[data-theme="light"] table { color: #334155; }
html[data-theme="light"] th {
  background: #edf2fa;
  color: #475569;
  border-bottom-color: rgba(15,23,42,.12);
}
html[data-theme="light"] td {
  color: #334155;
  border-bottom-color: rgba(15,23,42,.09);
}
html[data-theme="light"] tbody tr:nth-child(even) td { background: rgba(15,23,42,.018); }
html[data-theme="light"] tbody tr:hover td,
html[data-theme="light"] tbody tr:nth-child(even):hover td { background: rgba(37,99,235,.055); }

html[data-theme="light"] .badge-gray,
html[data-theme="light"] .pag-btn,
html[data-theme="light"] .pagination button,
html[data-theme="light"] .resize-handle {
  background: #eef3fb;
  color: #334155;
  border-color: rgba(15,23,42,.12);
}
html[data-theme="light"] .pag-btn.active,
html[data-theme="light"] .pagination button.active {
  background: #2563eb;
  color: #ffffff;
  border-color: #2563eb;
}

html[data-theme="light"] .modal-overlay,
html[data-theme="light"] .error-modal-backdrop {
  background: rgba(15,23,42,.34);
}
html[data-theme="light"] .modal,
html[data-theme="light"] .modal-lg,
html[data-theme="light"] .modal-xl,
html[data-theme="light"] .compra-modal,
html[data-theme="light"] .rep-modal,
html[data-theme="light"] .inv-modal,
html[data-theme="light"] .modal-gasto,
html[data-theme="light"] .usuarios-modal,
html[data-theme="light"] .error-modal-card,
html[data-theme="light"] .scan-modal-box,
html[data-theme="light"] .hist-detail-modal,
html[data-theme="light"] .reserva-detalle-modal {
  background: linear-gradient(180deg, #ffffff, #f8fafc);
  border-color: rgba(15,23,42,.14);
  color: #0f172a;
  box-shadow: 0 28px 70px rgba(15,23,42,.18);
}
html[data-theme="light"] .modal-header,
html[data-theme="light"] .modal-footer,
html[data-theme="light"] .card-header,
html[data-theme="light"] .hist-card-header,
html[data-theme="light"] .scan-modal-head {
  border-color: rgba(15,23,42,.10);
}

html[data-theme="light"] .empty-state,
html[data-theme="light"] .notif-empty,
html[data-theme="light"] .scan-empty,
html[data-theme="light"] .imp-inline-note,
html[data-theme="light"] .cfg-danger-card,
html[data-theme="light"] .hist-detail-grid > div,
html[data-theme="light"] .hist-detail-section {
  background: #f8fafc;
  border-color: rgba(15,23,42,.12);
  color: #475569;
}
html[data-theme="light"] .cfg-danger-card {
  background: linear-gradient(180deg, rgba(254,242,242,.96), rgba(255,255,255,.96));
  border-color: rgba(239,68,68,.20);
}

html[data-theme="light"] .perm-check,
html[data-theme="light"] .pmx-panel,
html[data-theme="light"] .pmx-panel-main,
html[data-theme="light"] .pmx-summary-card,
html[data-theme="light"] .nv-pay-chip,
html[data-theme="light"] .pos-prod-card,
html[data-theme="light"] .cliente-panel-head,
html[data-theme="light"] .crm-mini-panel,
html[data-theme="light"] .inv-panel,
html[data-theme="light"] .scan-input-wrap,
html[data-theme="light"] .table-toolbar-stack,
html[data-theme="light"] .toolbar-row,
html[data-theme="light"] .toolbar-row-main,
html[data-theme="light"] .toolbar-row-actions,
html[data-theme="light"] .compras-toolbar-row,
html[data-theme="light"] .compras-toolbar-date-row,
html[data-theme="light"] .proveedores-toolbar,
html[data-theme="light"] .gastos-filtros-toolbar,
html[data-theme="light"] .caja-filtros-toolbar,
html[data-theme="light"] .rep-filtros-toolbar,
html[data-theme="light"] .hist-filter-row {
  background: rgba(255,255,255,.72);
  border-color: rgba(15,23,42,.10);
  color: #0f172a;
}

html[data-theme="light"] .chart-bar-wrap,
html[data-theme="light"] #page-dashboard .chart-bar-wrap,
html[data-theme="light"] #page-dashboard .chart-area-compact .chart-bar-wrap {
  background: linear-gradient(180deg, rgba(226,233,245,.94), rgba(241,245,252,.96));
  border-color: rgba(15,23,42,.10);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.72);
}
html[data-theme="light"] .chart-value,
html[data-theme="light"] #page-dashboard .chart-value { color: #1d4ed8; }
html[data-theme="light"] #page-dashboard .timeline-dot { border-color: #ffffff; }

@media (max-width: 760px) {
  html[data-theme="light"] #sidebar {
    background: rgba(255,255,255,.96);
    box-shadow: 0 8px 20px rgba(15,23,42,.08);
  }
  html[data-theme="light"] .topbar { background: rgba(248,250,252,.94); }
}

/* ============================================================
   NORMALIZACIÓN VISUAL — Venta / Reserva / Ventas / Clientes
   Compacto 100% + controles unificados (20260608)
   ============================================================ */
#page-nueva-venta,
#page-nueva-reserva,
#page-ventas,
#page-clientes {
  --mod-font: 11.5px;
  --mod-label-font: 9.4px;
  --mod-title-font: 12.5px;
  --mod-control-h: 32px;
  --mod-btn-h: 32px;
  --mod-btn-font: 11px;
  --mod-table-font: 11.3px;
  --mod-table-head-font: 9.4px;
  --mod-gap: 7px;
  --mod-card-pad: 9px;
  font-size: var(--mod-font);
}

#page-nueva-venta .card,
#page-nueva-reserva .card,
#page-ventas .card,
#page-clientes .card {
  border-radius: 12px;
}

#page-nueva-venta .card-title,
#page-nueva-reserva .card-title,
#page-ventas .card-title,
#page-clientes .card-title,
#page-nueva-venta .nv-section-title,
#page-nueva-reserva .nr-section-title {
  font-size: var(--mod-title-font);
  line-height: 1.15;
}

#page-nueva-venta label,
#page-nueva-reserva label,
#page-ventas label,
#page-clientes label {
  font-size: var(--mod-label-font);
  line-height: 1.05;
  margin-bottom: 2px;
}

#page-nueva-venta input:not([type="hidden"]):not([type="checkbox"]),
#page-nueva-venta select,
#page-nueva-reserva input:not([type="hidden"]):not([type="checkbox"]),
#page-nueva-reserva select,
#page-ventas input:not([type="hidden"]):not([type="checkbox"]),
#page-ventas select,
#page-clientes input:not([type="hidden"]):not([type="checkbox"]),
#page-clientes select,
#page-clientes .search-box {
  min-height: var(--mod-control-h);
  height: var(--mod-control-h);
  font-size: var(--mod-font);
  line-height: 1.1;
  border-radius: 9px;
}

#page-nueva-venta textarea,
#page-nueva-reserva textarea,
#page-ventas textarea,
#page-clientes textarea {
  font-size: var(--mod-font);
  line-height: 1.2;
  border-radius: 9px;
}

#page-nueva-venta .btn,
#page-nueva-reserva .btn,
#page-ventas .btn,
#page-clientes .btn,
#page-nueva-venta button,
#page-nueva-reserva button,
#page-ventas button,
#page-clientes button {
  min-height: var(--mod-btn-h);
  font-size: var(--mod-btn-font);
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  white-space: nowrap;
}

/* Nueva Venta */
#page-nueva-venta {
  --nv-field-h: var(--mod-control-h);
  --nv-btn-h: var(--mod-btn-h);
  --nv-radius: 9px;
  --nv-gap: 6px;
}
#page-nueva-venta .nv-page-head-clean {
  gap: 8px;
  margin-bottom: 7px;
}
#page-nueva-venta .nv-page-head-left { gap: 7px; }
#page-nueva-venta .nv-back-btn {
  height: 31px;
  min-height: 31px;
  padding: 0 10px;
  font-size: 11px;
}
#page-nueva-venta .nv-numero-label {
  font-size: 10.8px;
  line-height: 1;
}
#page-nueva-venta #btn-pos-confirmar {
  height: 33px;
  min-height: 33px;
  min-width: 176px;
  padding: 0 18px;
  border-radius: 9px;
  font-size: 11.5px;
  line-height: 1;
}
#page-nueva-venta .nv-datos-card,
#page-nueva-venta .nv-add-card-clean,
#page-nueva-venta .nv-items-card-clean {
  padding: 8px 10px;
}
#page-nueva-venta .nv-datos-card,
#page-nueva-venta .nv-add-card-clean { margin-bottom: 7px; }
#page-nueva-venta .nv-section-title {
  margin-bottom: 6px;
  font-size: 12.2px;
  line-height: 1.1;
}
#page-nueva-venta label {
  font-size: 9.2px;
  line-height: 1.05;
  margin-bottom: 2px;
  letter-spacing: .045em;
}
#page-nueva-venta .form-group { gap: 2px; min-width: 0; }
#page-nueva-venta input:not([type=hidden]):not([type=checkbox]),
#page-nueva-venta select,
#page-nueva-venta .btn {
  height: var(--nv-field-h);
  min-height: var(--nv-field-h);
  box-sizing: border-box;
  border-radius: var(--nv-radius);
}
#page-nueva-venta input:not([type=hidden]):not([type=checkbox]),
#page-nueva-venta select {
  padding: 4px 8px;
  font-size: 11.6px;
  line-height: 1.1;
}
#page-nueva-venta .nv-datos-grid-clean {
  display: grid;
  grid-template-columns:
    minmax(300px, 1.34fr)
    minmax(248px, 1.05fr)
    minmax(160px, .7fr)
    minmax(132px, .54fr);
  gap: var(--nv-gap);
  align-items: start;
}
#page-nueva-venta .nv-client-picker {
  grid-template-columns: minmax(0,1fr) var(--nv-field-h) var(--nv-field-h);
  gap: 4px;
}
#page-nueva-venta .nv-client-add-btn,
#page-nueva-venta .nv-client-info-btn {
  width: var(--nv-field-h);
  min-width: var(--nv-field-h);
  height: var(--nv-field-h);
  min-height: var(--nv-field-h);
  padding: 0;
  border-radius: var(--nv-radius);
  line-height: 1;
}
#page-nueva-venta .nv-client-add-btn { font-size: 13px; }
#page-nueva-venta .nv-client-info-btn { font-size: 11px; }
#page-nueva-venta .nv-input-with-icon { padding-right: 26px; }
#page-nueva-venta .nv-input-icon {
  right: 8px;
  font-size: 9.5px;
}
#page-nueva-venta .nv-selected-client {
  min-height: 10px;
  margin-top: 1px;
  font-size: 9.8px;
  line-height: 1.12;
}
#page-nueva-venta .nv-cobro-simple {
  grid-template-columns: minmax(0,1fr) 88px;
  gap: 5px;
}
#page-nueva-venta .nv-mixto-btn {
  width: 88px;
  height: var(--nv-field-h);
  min-height: var(--nv-field-h);
  padding: 0 7px;
  border-radius: var(--nv-radius);
  font-size: 10.2px;
  line-height: 1;
}
#page-nueva-venta .nv-cobro-hint,
#page-nueva-venta .nv-estado-help {
  min-height: 10px;
  margin-top: 1px;
  font-size: 9.7px;
  line-height: 1.15;
}
#page-nueva-venta .nv-dropdown {
  top: calc(100% + 2px);
  max-height: 168px;
  border-radius: 10px;
}
#page-nueva-venta .nv-client-opt { padding: 6px 9px; font-size: 11.4px; }
#page-nueva-venta .nv-client-opt-meta { font-size: 9.8px; }
#page-nueva-venta .nv-dropdown-empty,
#page-nueva-venta .nv-dropdown-error { padding: 7px 9px; font-size: 10.6px; }
#page-nueva-venta .nv-add-grid-clean {
  display: grid;
  grid-template-columns: minmax(260px,1fr) 64px 104px 64px 86px 88px;
  gap: var(--nv-gap);
  align-items: end;
}
#page-nueva-venta .nv-prod-search-input { font-size: 11.7px; }
#page-nueva-venta .nv-label-spacer { visibility: hidden; }
#page-nueva-venta .nv-full-input { width: 100%; }
#page-nueva-venta .nv-add-btn {
  width: 88px;
  min-width: 88px;
  height: var(--nv-field-h);
  min-height: var(--nv-field-h);
  padding: 0 8px;
  border-radius: var(--nv-radius);
  font-size: 10.8px;
  line-height: 1;
}
#page-nueva-venta .nv-comment-grid-clean {
  display: grid;
  grid-template-columns: 1fr;
  gap: 4px;
  margin-top: 5px;
}
#page-nueva-venta .nv-prod-info {
  margin-top: 6px;
  padding: 6px 8px;
  gap: 9px;
  border-radius: 9px;
  font-size: 10.6px;
}
#page-nueva-venta .nv-prod-info-emoji { font-size: 17px; }
#page-nueva-venta .nv-prod-info-stock,
#page-nueva-venta .nv-prod-info-meta,
#page-nueva-venta .nv-prod-info-base { font-size: 9.8px; }
#page-nueva-venta .nv-prod-info-price { font-size: 12.8px; }
#page-nueva-venta .nv-items-head-clean {
  gap: 8px;
  margin-bottom: 6px;
}
#page-nueva-venta .nv-items-title-wrap {
  font-size: 11.5px;
  line-height: 1.1;
}
#page-nueva-venta .nv-items-count { font-size: 10.3px; }
#page-nueva-venta #nv-items-table { table-layout: fixed; width: 100%; }
#page-nueva-venta #nv-items-table th,
#page-nueva-venta #nv-items-table td {
  padding: 5px 7px;
  font-size: 10.8px;
  line-height: 1.16;
  vertical-align: middle;
}
#page-nueva-venta #nv-items-table th {
  font-size: 8.8px;
  line-height: 1.05;
  white-space: nowrap;
  vertical-align: middle;
}
#page-nueva-venta #nv-items-table th:nth-child(1),
#page-nueva-venta #nv-items-table td:nth-child(1) { width: 30%; }
#page-nueva-venta #nv-items-table th:nth-child(2),
#page-nueva-venta #nv-items-table td:nth-child(2) { width: 28%; }
#page-nueva-venta #nv-items-table th:nth-child(3),
#page-nueva-venta #nv-items-table td:nth-child(3) { width: 62px; text-align: center; }
#page-nueva-venta #nv-items-table th:nth-child(4),
#page-nueva-venta #nv-items-table td:nth-child(4) { width: 100px; text-align: right; }
#page-nueva-venta #nv-items-table th:nth-child(5),
#page-nueva-venta #nv-items-table td:nth-child(5) { width: 54px; text-align: center; }
#page-nueva-venta #nv-items-table th:nth-child(6),
#page-nueva-venta #nv-items-table td:nth-child(6) { width: 76px; text-align: center; }
#page-nueva-venta #nv-items-table th:nth-child(7),
#page-nueva-venta #nv-items-table td:nth-child(7) { width: 106px; text-align: center; }
#page-nueva-venta #nv-items-table th:nth-child(8),
#page-nueva-venta #nv-items-table td:nth-child(8) { width: 110px; text-align: right; }
#page-nueva-venta #nv-items-table th:nth-child(9),
#page-nueva-venta #nv-items-table td:nth-child(9) { width: 34px; text-align: center; }
#page-nueva-venta #nv-items-table td:first-child .nv-item-main { gap: 6px; min-width: 0; }
#page-nueva-venta #nv-items-table td:first-child .nv-item-icon {
  width: 24px;
  height: 24px;
  border-radius: 7px;
  font-size: 13px;
}
#page-nueva-venta #nv-items-table td:first-child .nv-item-title {
  line-height: 1.12;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
#page-nueva-venta #nv-items-table td:first-child .nv-item-sub {
  margin-top: 1px;
  gap: 3px;
  font-size: 9.4px;
}
#page-nueva-venta #nv-items-table td:first-child .nv-item-sub .chip {
  padding: 1px 4px;
  line-height: 1.1;
}
#page-nueva-venta .nv-remove-item {
  width: 24px;
  height: 24px;
  min-height: 24px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 7px;
  font-size: 12px;
  line-height: 1;
}

#page-nueva-venta .nv-qty-control .pos-qty-btn {
  width:20px;
  min-width:20px;
  height:24px;
  min-height:24px;
  padding:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:7px;
  font-size:13px;
  line-height:1;
}
#page-nueva-venta #nv-items-table tbody tr {
  height:44px;
}
#page-nueva-venta #nv-items-table td:nth-child(2) {
  color:var(--text2);
}
#page-nueva-venta .nv-items-card-clean .table-scroll {
  overflow-x:auto;
}
#page-nueva-venta .nv-items-empty-clean {
  min-height: 58px;
  padding: 9px;
}
#page-nueva-venta .nv-items-empty-clean .empty-icon { font-size: 19px; margin-bottom: 2px; }
#page-nueva-venta .nv-items-empty-clean .empty-text { font-size: 10.8px; }
#page-nueva-venta .nv-totals-bar {
  gap: 10px;
  margin-top: 6px;
  padding-top: 7px;
}
#page-nueva-venta .nv-total-mini,
#page-nueva-venta .nv-total-final-inline {
  gap: 5px;
  font-size: 10.8px;
}
#page-nueva-venta .nv-total-label { font-size: 10px; }
#page-nueva-venta .nv-desc-global-input {
  width: 38px !important;
  height: 22px !important;
  min-height: 22px !important;
  font-size: 10px;
}
#page-nueva-venta #pos-total {
  font-size: 18px;
  line-height: 1;
}
#page-nueva-venta #nv-items-tbody input,
#page-nueva-venta #pos-desc-global { height: auto; min-height: unset; }
@media (max-width: 1280px) {
  #page-nueva-venta .nv-datos-grid-clean {
    grid-template-columns: minmax(270px,1.3fr) minmax(220px,1.05fr) minmax(145px,.72fr) minmax(116px,.55fr);
  }
  #page-nueva-venta .nv-add-grid-clean {
    grid-template-columns: minmax(240px,1fr) 60px 96px 60px 82px 84px;
  }
}
@media (max-width: 1120px) {
  #page-nueva-venta .nv-datos-grid-clean { grid-template-columns: repeat(3, minmax(0,1fr)); }
  #page-nueva-venta .nv-add-grid-clean { grid-template-columns: repeat(3, minmax(0,1fr)); }
  #page-nueva-venta .nv-add-btn { width: 100%; min-width: 0; }
}
@media (max-width: 760px) {
  #page-nueva-venta .nv-page-head-clean { align-items: stretch; flex-direction: column; }
  #page-nueva-venta .nv-page-head-left { flex-wrap: wrap; }
  #page-nueva-venta #btn-pos-confirmar { width: 100%; min-width: 0; }
  #page-nueva-venta .nv-datos-grid-clean,
  #page-nueva-venta .nv-add-grid-clean { grid-template-columns: 1fr; }
  #page-nueva-venta .nv-mixto-btn { width: 92px; }
  #page-nueva-venta .nv-add-btn { width: 100%; }
  #page-nueva-venta #nv-items-table { min-width: 820px; }
}

/* Nueva Reserva */
#page-nueva-reserva { --nr-field-h: var(--mod-control-h); }
#page-nueva-reserva .nr-page-head,
#page-nueva-reserva .nr-datos-grid,
#page-nueva-reserva .nr-contact-notes-grid,
#page-nueva-reserva .nr-add-grid,
#page-nueva-reserva .nr-comment-grid,
#page-nueva-reserva .nr-items-head {
  gap: var(--mod-gap);
}
#page-nueva-reserva .nr-datos-card,
#page-nueva-reserva .nr-add-card,
#page-nueva-reserva .nr-items-card {
  padding: var(--mod-card-pad);
}
#page-nueva-reserva .nr-datos-card,
#page-nueva-reserva .nr-add-card {
  overflow: visible;
}
#page-nueva-reserva .nr-datos-card { z-index: 35; }
#page-nueva-reserva .nr-add-card { z-index: 28; }
#page-nueva-reserva .nr-items-card { z-index: 1; }
#page-nueva-reserva .nr-client-picker {
  grid-template-columns: minmax(0,1fr) var(--mod-control-h) var(--mod-control-h);
  gap: 5px;
}
#page-nueva-reserva .nr-client-add-btn,
#page-nueva-reserva .nr-client-info-btn {
  width: var(--mod-control-h);
  min-width: var(--mod-control-h);
  height: var(--mod-control-h);
  padding: 0;
  font-size: 11.5px;
}
#page-nueva-reserva .nr-back-btn,
#page-nueva-reserva .nr-confirm-btn,
#page-nueva-reserva .nr-add-btn {
  height: var(--mod-btn-h);
  min-height: var(--mod-btn-h);
  font-size: var(--mod-btn-font);
}
#page-nueva-reserva .nr-confirm-btn { min-width: 142px; }
#page-nueva-reserva .nr-add-btn { width: 86px; min-width: 86px; }
#page-nueva-reserva #nr-items-table th,
#page-nueva-reserva #nr-items-table td {
  font-size: var(--mod-table-font);
  line-height: 1.16;
  padding: 5px 7px;
}
#page-nueva-reserva #nr-items-table th {
  font-size: var(--mod-table-head-font);
}
#page-nueva-reserva .nr-field-inner,
#page-nueva-reserva .nr-search-inner,
#page-nueva-reserva .nr-prod-search-group {
  position: relative;
  z-index: 40;
}
#page-nueva-reserva .nr-client-picker {
  position: relative;
  z-index: 45;
}
#page-nueva-reserva .nr-comment-grid,
#page-nueva-reserva .nr-items-card {
  position: relative;
  z-index: 1;
}
#page-nueva-reserva .nr-prod-dropdown,
#page-nueva-reserva #nr-cliente-dropdown {
  z-index: 3000;
}
#page-nueva-reserva #nr-prod-info {
  display: none !important;
}
#page-nueva-reserva #nr-items-table .nv-item-icon {
  display: none;
}
#page-nueva-reserva #nr-items-table .nv-item-main {
  display: flex;
  align-items: center;
  gap: 6px;
}
#page-nueva-reserva #nr-items-table .nv-item-sub {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
  margin-top: 3px;
}
#page-nueva-reserva #nr-items-table .chip {
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
}
html[data-theme="light"] #page-nueva-reserva .nr-dropdown {
  background: linear-gradient(180deg, #ffffff, #f8fafc);
  box-shadow: 0 18px 40px rgba(15,23,42,.18);
}


/* Ventas */
#page-ventas { --ventas-control-h: var(--mod-control-h); }
#page-ventas .ventas-toolbar,
#page-ventas .ventas-toolbar-row,
#page-ventas .ventas-period-row {
  gap: var(--mod-gap);
}
#page-ventas .ventas-search,
#page-ventas .ventas-filter-select,
#page-ventas .ventas-date-input {
  height: var(--mod-control-h);
  min-height: var(--mod-control-h);
  font-size: var(--mod-font);
}
#page-ventas .ventas-period-btn,
#page-ventas .ventas-clear-btn,
#page-ventas .ventas-banner-btn,
#page-ventas .ventas-row-btn {
  min-height: 28px;
  height: 28px;
  font-size: 10.5px;
  align-items: center;
  justify-content: center;
}
#page-ventas .table-resizable thead th {
  font-size: var(--mod-table-head-font);
  line-height: 1.06;
  padding: 6px 8px;
}
#page-ventas .table-resizable td {
  font-size: var(--mod-table-font);
  line-height: 1.16;
  padding: 5px 8px;
}
#page-ventas .ventas-actions-cell {
  align-items: center;
  justify-content: center;
}

/* Clientes */
#page-clientes { --clientes-control-h: var(--mod-control-h); }
#page-clientes .clientes-hero-row,
#page-clientes .clientes-main-metrics,
#page-clientes .clientes-kpi-grid,
#page-clientes .clientes-crm-grid,
#page-clientes .clientes-table-header,
#page-clientes .clientes-filters-row,
#page-clientes .clientes-actions-row {
  gap: var(--mod-gap);
}
#page-clientes .clientes-kpi-card,
#page-clientes .clientes-table-card,
#page-clientes .crm-panel-card,
#page-clientes .clientes-auto-card {
  padding: var(--mod-card-pad);
}
#page-clientes .clientes-search-box {
  height: var(--mod-control-h);
  min-height: var(--mod-control-h);
}
#page-clientes .clientes-search-box input,
#page-clientes select,
#page-clientes .btn {
  height: var(--mod-control-h);
  min-height: var(--mod-control-h);
  font-size: var(--mod-btn-font);
}
#clientes-table th,
#clientes-table td {
  font-size: var(--mod-table-font);
  line-height: 1.16;
  padding: 5px 7px;
}
#clientes-table th {
  font-size: var(--mod-table-head-font);
  line-height: 1.06;
}
#clientes-table .row-actions {
  align-items: center;
  justify-content: center;
  gap: 4px;
}
#clientes-table .btn-xs {
  min-height: 24px;
  height: 24px;
  font-size: 10.4px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
#clientes-table .btn-red.btn-xs {
  width: 24px;
  min-width: 24px;
}

@media (max-width: 760px) {
  #page-nueva-venta,
  #page-nueva-reserva,
  #page-ventas,
  #page-clientes {
    --mod-control-h: 36px;
    --mod-btn-h: 36px;
    --mod-font: 12px;
    --mod-btn-font: 11.5px;
    --mod-card-pad: 10px;
  }
  #page-nueva-venta .nv-datos-grid-clean,
  #page-nueva-venta .nv-add-grid-clean,
  #page-nueva-reserva .nr-datos-grid,
  #page-nueva-reserva .nr-contact-notes-grid,
  #page-nueva-reserva .nr-add-grid,
  #page-clientes .clientes-kpi-grid,
  #page-clientes .clientes-crm-grid {
    grid-template-columns: 1fr;
  }
  #page-ventas .ventas-search,
  #page-ventas .ventas-filter-select,
  #page-ventas .ventas-date-input,
  #page-clientes .clientes-search-box,
  #page-clientes .clientes-filter-estado,
  #page-clientes .clientes-filter-vendedor,
  #page-clientes .clientes-actions-row .btn {
    width: 100%;
    max-width: none;
    flex: 1 1 100%;
  }
}

/* NUEVA VENTA — limpieza interna etapa 2 */
#page-nueva-venta .nv-client-option {
  display:block;
  width:100%;
  padding:8px 12px;
  border:0;
  border-bottom:1px solid var(--border);
  background:transparent;
  color:var(--text);
  text-align:left;
  cursor:pointer;
  font:inherit;
}
#page-nueva-venta .nv-client-option:hover { background:var(--bg3); }
#page-nueva-venta .nv-client-option-name {
  display:block;
  font-size:12.3px;
  line-height:1.2;
  font-weight:650;
  color:var(--text);
}
#page-nueva-venta .nv-client-option-meta {
  display:block;
  margin-top:2px;
  font-size:10.5px;
  line-height:1.2;
  color:var(--text3);
}
#page-nueva-venta .nv-client-info-btn.nv-is-disabled {
  opacity:.4;
  pointer-events:none;
  color:var(--text2);
  border-color:var(--border2);
}
#page-nueva-venta .nv-client-info-btn:not(.nv-is-disabled) {
  color:var(--accent);
  border-color:rgba(79,142,247,.3);
}
#page-nueva-venta .nv-stock-chip { color:var(--text3); font-weight:650; }
#page-nueva-venta .nv-stock-chip.nv-stock-low { color:var(--amber); font-weight:750; }
#page-nueva-venta .nv-stock-chip.nv-stock-out { color:var(--red); font-weight:800; }
#page-nueva-venta .nv-item-comment-input {
  width:100%;
  min-width:0;
  padding:4px 7px;
  font-size:10.9px;
  line-height:1.18;
  background:transparent;
  border:1px solid transparent;
  border-radius:7px;
  color:var(--text);
}
#page-nueva-venta .nv-item-comment-input:focus { border-color:var(--border2); outline:none; background:var(--bg2); }
#page-nueva-venta .nv-qty-cell { text-align:center; }
#page-nueva-venta .nv-money-cell { text-align:right; }
#page-nueva-venta .nv-qty-control {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  min-width:0;
}
#page-nueva-venta .nv-qty-value {
  min-width:18px;
  text-align:center;
  font-weight:750;
  font-size:11px;
  line-height:1;
  color:var(--text);
}
#page-nueva-venta .nv-price-input,
#page-nueva-venta .nv-desc-pct-input,
#page-nueva-venta .nv-desc-money-input,
#page-nueva-venta .nv-item-method-select {
  height:25px;
  min-height:25px;
  border:1px solid var(--border2);
  border-radius:7px;
  background:var(--bg2);
  color:var(--text);
  box-sizing:border-box;
}
#page-nueva-venta .nv-price-input {
  width:96px;
  text-align:right;
  padding:4px 7px;
  font-size:11.5px;
}
#page-nueva-venta .nv-desc-pct-input {
  width:46px;
  text-align:center;
  padding:4px 5px;
  font-size:11.2px;
}
#page-nueva-venta .nv-desc-money-input {
  width:70px;
  text-align:right;
  padding:4px 5px;
  font-size:11.2px;
}
#page-nueva-venta .nv-item-method-select {
  width:100%;
  padding:4px 5px;
  font-size:10.8px;
  color:var(--text2);
}
#page-nueva-venta .nv-subtotal-cell {
  text-align:right;
  font-size:11px;
  font-weight:800;
  color:var(--accent);
}


/* NUEVA VENTA — pasada visual fina adicional */
#page-nueva-venta #nv-items-table th,
#page-nueva-venta #nv-items-table td {
  padding-top: 8px;
  padding-bottom: 8px;
  vertical-align: middle;
}
#page-nueva-venta #nv-items-table tbody tr {
  height: 58px;
}
#page-nueva-venta #nv-items-table th:nth-child(1),
#page-nueva-venta #nv-items-table td:nth-child(1) { width: 32%; }
#page-nueva-venta #nv-items-table th:nth-child(2),
#page-nueva-venta #nv-items-table td:nth-child(2) { width: 26%; }
#page-nueva-venta #nv-items-table td:first-child .nv-item-main {
  display: flex;
  align-items: center;
  gap: 8px;
}
#page-nueva-venta #nv-items-table td:first-child .nv-item-icon {
  display: none;
}
#page-nueva-venta #nv-items-table td:first-child .nv-item-meta {
  min-width: 0;
}
#page-nueva-venta #nv-items-table td:first-child .nv-item-title {
  font-size: 12.7px;
  line-height: 1.18;
}
#page-nueva-venta #nv-items-table td:first-child .nv-item-sub {
  margin-top: 3px;
  gap: 4px;
  font-size: 10px;
}
#page-nueva-venta .nv-item-comment-input {
  min-height: 34px;
  padding: 6px 8px;
  font-size: 11.4px;
}
#page-nueva-venta .nv-qty-control { gap: 6px; }
#page-nueva-venta .nv-qty-control .pos-qty-btn {
  width: 24px;
  min-width: 24px;
  height: 28px;
  min-height: 28px;
  border-radius: 8px;
  font-size: 14px;
}
#page-nueva-venta .nv-qty-value {
  min-width: 22px;
  font-size: 12px;
}
#page-nueva-venta .nv-price-input,
#page-nueva-venta .nv-desc-pct-input,
#page-nueva-venta .nv-desc-money-input,
#page-nueva-venta .nv-item-method-select {
  height: 30px;
  min-height: 30px;
  border-radius: 8px;
}
#page-nueva-venta .nv-price-input { width: 110px; font-size: 12px; }
#page-nueva-venta .nv-desc-pct-input { width: 54px; font-size: 11.6px; }
#page-nueva-venta .nv-desc-money-input { width: 82px; font-size: 11.6px; }
#page-nueva-venta .nv-price-input,
#page-nueva-venta .nv-desc-pct-input,
#page-nueva-venta .nv-desc-money-input {
  -moz-appearance: textfield;
  appearance: textfield;
}
#page-nueva-venta .nv-desc-pct-input::-webkit-outer-spin-button,
#page-nueva-venta .nv-desc-pct-input::-webkit-inner-spin-button,
#page-nueva-venta .nv-desc-global-input::-webkit-outer-spin-button,
#page-nueva-venta .nv-desc-global-input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
#page-nueva-venta .nv-subtotal-cell {
  font-size: 12.4px;
  font-weight: 800;
}
#page-nueva-venta .nv-item-pay-toggle {
  min-height: 24px;
  padding: 3px 8px;
}
#page-nueva-venta .nv-item-pay-current {
  margin-top: 4px;
  font-size: 10px;
}
#page-nueva-venta .nv-totals-bar {
  justify-content: flex-end;
  gap: 18px;
  margin-top: 10px;
  padding-top: 10px;
}
#page-nueva-venta .nv-total-mini,
#page-nueva-venta .nv-total-final-inline {
  align-items: center;
  gap: 7px;
  font-size: 12px;
}
#page-nueva-venta .nv-total-subtotal { min-width: 170px; justify-content: flex-end; }
#page-nueva-venta .nv-total-discount-inline { min-width: 270px; justify-content: flex-end; }
#page-nueva-venta .nv-total-final-inline { min-width: 240px; justify-content: flex-end; }
#page-nueva-venta .nv-total-label {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .02em;
}
#page-nueva-venta .nv-desc-global-input {
  width: 46px !important;
  height: 28px !important;
  min-height: 28px !important;
  padding: 4px 6px;
  font-size: 11.5px;
  text-align: center;
  border-radius: 8px;
  -moz-appearance: textfield;
  appearance: textfield;
}
#page-nueva-venta #nv-subtotal,
#page-nueva-venta #pos-desc-monto {
  font-size: 12.8px;
}
#page-nueva-venta #pos-desc-monto {
  min-width: 92px;
  text-align: right;
}
#page-nueva-venta #pos-total {
  font-size: 28px;
  line-height: 1;
  letter-spacing: -.02em;
}
@media (max-width: 1100px) {
  #page-nueva-venta .nv-totals-bar {
    flex-wrap: wrap;
    justify-content: flex-end;
  }
}
@media (max-width: 760px) {
  #page-nueva-venta #nv-items-table { min-width: 900px; }
  #page-nueva-venta .nv-totals-bar { gap: 10px; }
  #page-nueva-venta .nv-total-subtotal,
  #page-nueva-venta .nv-total-discount-inline,
  #page-nueva-venta .nv-total-final-inline { min-width: 0; }
}

/* NUEVA VENTA — pago por ítem con cobro general */
#page-nueva-venta .nv-item-pay-cell {
  min-width:0;
  text-align:center;
  vertical-align:middle;
}
#page-nueva-venta .nv-item-pay-toggle {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  min-height:22px;
  padding:2px 7px;
  border:1px solid var(--border2);
  border-radius:999px;
  background:var(--bg2);
  color:var(--text2);
  font-size:10.3px;
  font-weight:750;
  line-height:1;
  cursor:pointer;
  white-space:nowrap;
}
#page-nueva-venta .nv-item-pay-toggle input {
  width:12px;
  height:12px;
  min-height:12px;
  margin:0;
  accent-color:var(--accent);
}
#page-nueva-venta .nv-item-pay-toggle:has(input:checked) {
  color:var(--accent);
  border-color:rgba(79,142,247,.36);
  background:rgba(79,142,247,.09);
}
#page-nueva-venta .nv-item-pay-toggle:has(input:disabled) {
  opacity:.76;
  cursor:not-allowed;
}
#page-nueva-venta .nv-item-pay-current {
  margin-top:3px;
  color:var(--text3);
  font-size:9.8px;
  font-weight:700;
  line-height:1.12;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:100%;
}
#page-nueva-venta .nv-item-pay-cell .nv-item-method-select {
  margin-top:4px;
  width:100%;
  max-width:102px;
  padding:3px 5px;
  font-size:10px;
}
@media (max-width: 720px) {
  #page-nueva-venta .nv-item-pay-cell { min-width:130px; }
  #page-nueva-venta .nv-item-pay-cell .nv-item-method-select { width:126px; }
}


/* ============================================================
   NOTIFICACIONES — pulida visual compacta 20260609
============================================================ */
.notif-wrap { position: relative; }
.notif-btn {
  min-height: 31px;
  height: 31px;
  padding: 0 11px;
  gap: 6px;
  border-radius: 999px;
  font-size: 11.5px;
  line-height: 1;
  white-space: nowrap;
}
.notif-btn-icon {
  width: 18px;
  height: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  line-height: 1;
}
.notif-btn-label {
  font-size: 11.4px;
  line-height: 1;
  font-weight: 750;
}
.notif-badge {
  position: absolute;
  top: -6px;
  right: -5px;
  min-width: 17px;
  height: 17px;
  padding: 0 5px;
  font-size: 9.8px;
  line-height: 1;
  box-shadow: 0 8px 18px rgba(239,68,68,.28);
}
.notif-dropdown {
  top: calc(100% + 8px);
  width: min(390px, calc(100vw - 24px));
  border-radius: 15px;
  overflow: hidden;
}
.notif-head {
  padding: 11px 12px;
  gap: 10px;
}
.notif-title {
  font-size: 13.6px;
  line-height: 1.15;
}
.notif-sub {
  margin-top: 1px;
  font-size: 10.8px;
  line-height: 1.15;
}
.notif-refresh {
  height: 28px;
  min-height: 28px;
  padding: 0 9px;
  border-radius: 9px;
  font-size: 10.4px;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.notif-actions {
  display: flex;
  justify-content: flex-end;
  padding: 7px 12px;
  border-bottom: 1px solid var(--border);
}
.notif-actions button {
  height: 27px;
  min-height: 27px;
  padding: 0 10px;
  border-radius: 9px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.03);
  color: var(--text2);
  font-size: 10.4px;
  font-weight: 750;
  line-height: 1;
  cursor: pointer;
}
.notif-actions button:hover {
  border-color: var(--border2);
  background: rgba(255,255,255,.06);
  color: var(--text);
}
.notif-list {
  max-height: min(390px, calc(100vh - 148px));
  padding: 9px;
  gap: 8px;
}
.notif-empty {
  padding: 18px 12px;
  border-radius: 12px;
  font-size: 11.6px;
  line-height: 1.25;
}
.notif-item {
  padding: 10px 11px;
  border-radius: 12px;
  gap: 7px;
}
.notif-item-head {
  align-items: flex-start;
  gap: 8px;
}
.notif-item-title {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 5px;
  font-size: 11.9px;
  line-height: 1.22;
}
.notif-level {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 18px;
  padding: 0 6px;
  border-radius: 999px;
  border: 1px solid rgba(245,158,11,.22);
  background: rgba(245,158,11,.10);
  color: #fbbf24;
  font-size: 9.2px;
  line-height: 1;
  font-weight: 850;
  text-transform: uppercase;
}
.notif-item-time {
  font-size: 10px;
  line-height: 1.2;
  padding-top: 1px;
}
.notif-item-body {
  font-size: 11.5px;
  line-height: 1.35;
}
.notif-suggestion {
  display: block;
  padding: 6px 8px;
  border-radius: 10px;
  font-size: 10.3px;
  line-height: 1.25;
  white-space: normal;
}
.notif-item-actions {
  justify-content: flex-end;
  margin-top: 1px;
}
.notif-mark-read {
  height: 27px;
  min-height: 27px;
  padding: 0 9px;
  border-radius: 9px;
  font-size: 10.4px;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
html[data-theme="light"] .notif-actions {
  border-bottom-color: rgba(15,23,42,.10);
}
html[data-theme="light"] .notif-actions button {
  background: #fff;
  border-color: rgba(15,23,42,.12);
  color: #334155;
}
html[data-theme="light"] .notif-actions button:hover {
  border-color: rgba(37,99,235,.24);
  color: #0f172a;
}
html[data-theme="light"] .notif-level {
  color: #b45309;
  border-color: rgba(180,83,9,.20);
  background: rgba(245,158,11,.13);
}
@media (max-width: 640px) {
  .notif-btn {
    width: 32px;
    min-width: 32px;
    padding: 0;
    justify-content: center;
  }
  .notif-btn-label { display: none; }
  .notif-dropdown {
    position: fixed;
    top: 74px;
    left: 8px;
    right: 8px;
    width: auto;
    max-height: calc(100vh - 86px);
    border-radius: 14px;
  }
  .notif-head { padding: 10px; }
  .notif-actions { padding: 7px 10px; }
  .notif-list { max-height: calc(100vh - 202px); padding: 8px; }
  .notif-item-head { flex-direction: column; gap: 3px; }
  .notif-item-time { white-space: normal; }
  .notif-mark-read,
  .notif-actions button,
  .notif-refresh { height: 30px; min-height: 30px; }
}


/* NUEVA VENTA — pulida visual adicional 20260609 */
#page-nueva-venta #nv-items-table th:nth-child(1),
#page-nueva-venta #nv-items-table td:nth-child(1) { width: 24%; }
#page-nueva-venta #nv-items-table th:nth-child(2),
#page-nueva-venta #nv-items-table td:nth-child(2) { width: 10%; text-align: center; }
#page-nueva-venta #nv-items-table th:nth-child(3),
#page-nueva-venta #nv-items-table td:nth-child(3) { width: 21%; }
#page-nueva-venta #nv-items-table th:nth-child(4),
#page-nueva-venta #nv-items-table td:nth-child(4) { width: 8%; text-align: center; }
#page-nueva-venta #nv-items-table th:nth-child(5),
#page-nueva-venta #nv-items-table td:nth-child(5) { width: 10%; text-align: right; }
#page-nueva-venta #nv-items-table th:nth-child(6),
#page-nueva-venta #nv-items-table td:nth-child(6) { width: 8%; text-align: center; }
#page-nueva-venta #nv-items-table th:nth-child(7),
#page-nueva-venta #nv-items-table td:nth-child(7) { width: 8%; text-align: center; }
#page-nueva-venta #nv-items-table th:nth-child(8),
#page-nueva-venta #nv-items-table td:nth-child(8) { width: 11%; text-align: center; }
#page-nueva-venta #nv-items-table th:nth-child(9),
#page-nueva-venta #nv-items-table td:nth-child(9) { width: 11%; text-align: right; }
#page-nueva-venta #nv-items-table th:nth-child(10),
#page-nueva-venta #nv-items-table td:nth-child(10) { width: 36px; text-align: center; }
#page-nueva-venta #nv-items-table tbody tr { height: 64px; }
#page-nueva-venta #nv-items-table th,
#page-nueva-venta #nv-items-table td { padding: 10px 8px; }
#page-nueva-venta #nv-items-table td:first-child .nv-item-main { align-items: center; min-height: 40px; }
#page-nueva-venta #nv-items-table td:first-child .nv-item-title { font-size: 13px; line-height: 1.2; white-space: normal; }
#page-nueva-venta .nv-code-cell { color: var(--text2); }
#page-nueva-venta .nv-item-code {
  display: inline-flex; align-items: center; justify-content: center; min-height: 26px;
  padding: 3px 8px; border: 1px solid var(--border2); border-radius: 999px;
  background: var(--bg2); font-size: 10.8px; font-weight: 700; color: var(--text2);
}
#page-nueva-venta .nv-item-comment-input {
  min-height: 36px; padding: 7px 9px; border: 1px solid var(--border2); background: var(--bg2);
}
#page-nueva-venta .nv-item-comment-input::placeholder { color: var(--text3); }
#page-nueva-venta .nv-qty-control { gap: 8px; }
#page-nueva-venta .nv-qty-control .pos-qty-btn { width: 28px; min-width: 28px; height: 30px; min-height: 30px; font-size: 15px; }
#page-nueva-venta .nv-qty-value { min-width: 18px; font-size: 12.5px; }
#page-nueva-venta .nv-price-input,
#page-nueva-venta .nv-desc-pct-input,
#page-nueva-venta .nv-desc-money-input { height: 32px; min-height: 32px; }
#page-nueva-venta .nv-desc-pct-input,
#page-nueva-venta .nv-desc-global-input { -moz-appearance: textfield; appearance: textfield; }
#page-nueva-venta .nv-desc-pct-input::-webkit-outer-spin-button,
#page-nueva-venta .nv-desc-pct-input::-webkit-inner-spin-button,
#page-nueva-venta .nv-desc-global-input::-webkit-outer-spin-button,
#page-nueva-venta .nv-desc-global-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
#page-nueva-venta .nv-item-pay-toggle { min-height: 26px; }
#page-nueva-venta .nv-totals-bar { gap: 24px; align-items: center; }
#page-nueva-venta .nv-total-subtotal { min-width: 190px; }
#page-nueva-venta .nv-total-discount-inline { min-width: 330px; }
#page-nueva-venta .nv-total-discount-inline > span:first-child { min-width: 74px; text-align: right; }
#page-nueva-venta .nv-total-final-inline { min-width: 300px; }
#page-nueva-venta #pos-desc-monto { min-width: 110px; }
#page-nueva-venta #pos-total { font-size: 34px; }
@media (max-width: 760px) {
  #page-nueva-venta #nv-items-table { min-width: 1080px; }
}


/* NUEVA VENTA — código primero */
#page-nueva-venta #nv-items-table th:nth-child(1),
#page-nueva-venta #nv-items-table td:nth-child(1) { width: 10%; text-align: center; }
#page-nueva-venta #nv-items-table th:nth-child(2),
#page-nueva-venta #nv-items-table td:nth-child(2) { width: 24%; text-align: left; }
#page-nueva-venta #nv-items-table th:nth-child(3),
#page-nueva-venta #nv-items-table td:nth-child(3) { width: 21%; text-align: left; }
#page-nueva-venta #nv-items-table th:nth-child(4),
#page-nueva-venta #nv-items-table td:nth-child(4) { width: 8%; text-align: center; }
#page-nueva-venta #nv-items-table th:nth-child(5),
#page-nueva-venta #nv-items-table td:nth-child(5) { width: 10%; text-align: right; }
#page-nueva-venta #nv-items-table th:nth-child(6),
#page-nueva-venta #nv-items-table td:nth-child(6) { width: 8%; text-align: center; }
#page-nueva-venta #nv-items-table th:nth-child(7),
#page-nueva-venta #nv-items-table td:nth-child(7) { width: 8%; text-align: center; }
#page-nueva-venta #nv-items-table th:nth-child(8),
#page-nueva-venta #nv-items-table td:nth-child(8) { width: 11%; text-align: center; }
#page-nueva-venta #nv-items-table th:nth-child(9),
#page-nueva-venta #nv-items-table td:nth-child(9) { width: 11%; text-align: right; }
#page-nueva-venta #nv-items-table th:nth-child(10),
#page-nueva-venta #nv-items-table td:nth-child(10) { width: 36px; text-align: center; }

/* CLIENTES — módulo simple 20260609 */
#page-clientes .clientes-simple-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:8px;
}
#page-clientes .clientes-simple-head h2 {
  margin:0;
  font-size:20px;
  line-height:1.05;
}
#page-clientes .clientes-simple-head p {
  margin:3px 0 0;
  color:var(--text3);
  font-size:11.5px;
}
#page-clientes .clientes-simple-kicker {
  color:var(--accent);
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:10px;
  font-weight:800;
  margin-bottom:3px;
}
#page-clientes .clientes-new-btn { min-width:138px; }
#page-clientes .clientes-simple-kpis {
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  margin-bottom:8px;
}
#page-clientes .clientes-simple-kpis .stat-card {
  min-height:66px;
  padding:9px 40px 9px 11px;
  border-radius:12px;
}
#page-clientes .clientes-simple-kpis .stat-label {
  margin-bottom:4px;
  font-size:9.4px;
  line-height:1.05;
  letter-spacing:.075em;
}
#page-clientes .clientes-simple-kpis .stat-value {
  margin-bottom:2px;
  font-size:20px;
  line-height:1;
}
#page-clientes .clientes-simple-kpis .stat-change {
  font-size:10.6px;
  line-height:1.12;
}
#page-clientes .clientes-simple-kpis .stat-icon {
  top:9px;
  right:9px;
  width:27px;
  height:27px;
  border-radius:9px;
  font-size:14px;
}
#page-clientes .clientes-simple-card {
  padding:10px;
}
#page-clientes .clientes-simple-toolbar {
  display:grid;
  grid-template-columns:minmax(260px,1fr) 158px 168px 104px;
  gap:7px;
  align-items:center;
  margin-bottom:8px;
}
#page-clientes .clientes-simple-toolbar .search-box,
#page-clientes .clientes-simple-toolbar select,
#page-clientes .clientes-simple-toolbar .btn {
  height:32px;
  min-height:32px;
}
#page-clientes .clientes-simple-toolbar .search-box input {
  height:100%;
  font-size:12px;
}
#page-clientes #clientes-table th,
#page-clientes #clientes-table td {
  padding:5px 7px;
  font-size:11.2px;
  line-height:1.15;
  vertical-align:middle;
}
#page-clientes #clientes-table th {
  font-size:9.4px;
  letter-spacing:.065em;
}
#page-clientes .clientes-contact-cell strong,
#page-clientes .clientes-contact-cell small {
  display:block;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
#page-clientes .clientes-origin-badge {
  min-width:72px;
  justify-content:center;
}
#page-clientes .clientes-simple-actions {
  justify-content:center;
  gap:4px;
  flex-wrap:nowrap;
}
#page-clientes .clientes-simple-actions .btn-xs {
  height:22px;
  min-height:22px;
  padding:0 7px;
  font-size:10px;
}
#page-clientes .clientes-simple-actions .btn-red {
  width:22px;
  min-width:22px;
  padding:0;
}
#page-clientes .clientes-modal-simple { max-width:1040px; }
#page-clientes .clientes-detail-modal { max-width:1080px; }
#page-clientes .clientes-form-simple {
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px 10px;
}
#page-clientes .clientes-tags-box {
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  padding:6px;
  border:1px solid var(--border2);
  border-radius:10px;
  min-height:38px;
  max-height:64px;
  overflow-y:auto;
  background:var(--bg3);
}
#page-clientes .clientes-detail-subtitle {
  font-size:11.5px;
  color:var(--text3);
  margin-top:2px;
}
#page-clientes .clientes-detail-kpis-simple {
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:7px;
  margin-bottom:8px;
}
#page-clientes .cliente-simple-detail-grid {
  display:grid;
  grid-template-columns:280px minmax(0,1fr);
  gap:9px;
}
#page-clientes .cliente-resumen-simple-grid {
  grid-template-columns:repeat(2,minmax(0,1fr));
}
#page-clientes .cliente-simple-list .crm-mini-item {
  min-height:42px;
}
@media (max-width: 900px) {
  #page-clientes .clientes-simple-kpis {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  #page-clientes .clientes-simple-toolbar {
    grid-template-columns:1fr 1fr;
  }
  #page-clientes .clientes-detail-kpis-simple,
  #page-clientes .cliente-resumen-simple-grid {
    grid-template-columns:1fr 1fr;
  }
  #page-clientes .cliente-simple-detail-grid {
    grid-template-columns:1fr;
  }
}
@media (max-width: 760px) {
  #page-clientes .clientes-simple-head {
    flex-direction:column;
    align-items:stretch;
  }
  #page-clientes .clientes-new-btn { width:100%; }
  #page-clientes .clientes-simple-kpis,
  #page-clientes .clientes-simple-toolbar,
  #page-clientes .clientes-form-simple,
  #page-clientes .clientes-detail-kpis-simple,
  #page-clientes .cliente-resumen-simple-grid {
    grid-template-columns:1fr;
  }
  #page-clientes .clientes-simple-toolbar .btn,
  #page-clientes .clientes-simple-toolbar select,
  #page-clientes .clientes-simple-toolbar .search-box {
    width:100%;
  }
  #page-clientes #clientes-table { min-width:980px; }
}

/* CLIENTES — modal alta/edición compacto ancho 20260609 */
.clientes-modal-simple {
  max-width: 1040px;
  width: min(1040px, calc(100vw - 44px));
  max-height: calc(100vh - 28px);
  padding: 16px 20px 14px;
  overflow-y: auto;
}
.clientes-modal-simple .modal-header {
  margin-bottom: 10px;
  padding-bottom: 10px;
}
.clientes-modal-simple .modal-title {
  font-size: 15px;
  line-height: 1.15;
}
.clientes-modal-simple .modal-close {
  width: 30px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}
.clientes-form-simple {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px 10px;
  align-items: start;
}
.clientes-form-simple .form-group {
  gap: 4px;
  min-width: 0;
}
.clientes-form-simple .form-group label {
  font-size: 10px;
  line-height: 1.08;
  letter-spacing: .08em;
}
.clientes-form-simple input,
.clientes-form-simple select,
.clientes-form-simple textarea {
  min-height: 32px;
  height: 32px;
  padding: 5px 9px;
  font-size: 11.8px;
  border-radius: 9px;
}
.clientes-form-simple textarea {
  height: 44px;
  min-height: 44px;
  resize: vertical;
}
.clientes-form-simple .form-group.full {
  grid-column: span 2;
}
.clientes-form-simple .cliente-etiquetas-compactas {
  grid-column: span 2;
}
.clientes-form-simple .form-group:last-child {
  grid-column: span 4;
}
.clientes-tags-box {
  min-height: 38px;
  max-height: 64px;
  overflow-y: auto;
  padding: 6px;
  gap: 5px;
  border-radius: 10px;
}
.clientes-tags-box .cliente-tag-check-pill {
  min-height: 24px;
  padding: 3px 8px;
  font-size: 10.5px;
  line-height: 1;
}
.clientes-tags-box .cliente-tag-check-pill input {
  width: 12px;
  height: 12px;
  min-height: 12px;
  padding: 0;
}
.clientes-modal-simple .modal-footer {
  margin-top: 10px;
  padding-top: 10px;
}
.clientes-modal-simple .modal-footer .btn {
  height: 32px;
  min-height: 32px;
  padding: 0 14px;
  font-size: 11.2px;
}
@media (max-width: 980px) {
  .clientes-modal-simple { width: min(920px, calc(100vw - 28px)); }
  .clientes-form-simple { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .clientes-form-simple .form-group.full,
  .clientes-form-simple .cliente-etiquetas-compactas,
  .clientes-form-simple .form-group:last-child { grid-column: 1 / -1; }
}
@media (max-width: 620px) {
  .clientes-modal-simple {
    width: calc(100vw - 16px);
    max-height: calc(100vh - 16px);
    padding: 14px;
  }
  .clientes-form-simple { grid-template-columns: 1fr; }
  .clientes-form-simple .form-group.full,
  .clientes-form-simple .cliente-etiquetas-compactas,
  .clientes-form-simple .form-group:last-child { grid-column: 1 / -1; }
  .clientes-modal-simple .modal-footer { flex-direction: column; }
  .clientes-modal-simple .modal-footer .btn { width: 100%; }
}

#page-clientes .clientes-head-actions {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex:0 0 auto;
}
#page-clientes .clientes-tags-admin-btn {
  min-width:112px;
}
.clientes-tags-admin-modal {
  width:min(840px, calc(100vw - 32px));
  max-width:840px;
  max-height:calc(100vh - 32px);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  padding:14px 16px 12px;
}
.clientes-tags-admin-modal .modal-header {
  flex:0 0 auto;
  padding-bottom:10px;
  margin-bottom:10px;
  border-bottom:1px solid var(--border);
}
.clientes-tags-admin-sub {
  margin-top:3px;
  color:var(--text3);
  font-size:11.8px;
  line-height:1.25;
}
.clientes-tags-admin-new {
  flex:0 0 auto;
  display:grid;
  grid-template-columns:minmax(0,1fr) 72px 104px;
  gap:7px;
  align-items:end;
  padding:8px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--bg3);
  margin-bottom:8px;
}
.clientes-tags-admin-new .form-group { gap:4px; min-width:0; }
.clientes-tags-admin-new input:not([type="color"]),
.clientes-tags-admin-new .btn {
  height:34px;
  min-height:34px;
}
.clientes-tag-color-field input[type="color"],
.clientes-tag-admin-row input[type="color"] {
  width:100%;
  min-width:44px;
  height:34px;
  min-height:34px;
  padding:3px;
  cursor:pointer;
}
.clientes-tags-admin-list {
  flex:1 1 auto;
  min-height:0;
  display:flex;
  flex-direction:column;
  gap:7px;
  overflow-y:auto;
  overflow-x:hidden;
  padding-right:4px;
}
.clientes-tag-admin-row {
  display:grid;
  grid-template-columns:132px minmax(160px,1fr) 58px 74px 206px;
  gap:6px;
  align-items:center;
  padding:7px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--bg2);
}
.clientes-tag-admin-row.is-inactive {
  opacity:.62;
}
.clientes-tag-admin-preview {
  display:flex;
  align-items:center;
  gap:7px;
  min-width:0;
  font-size:12px;
  font-weight:800;
  color:var(--text2);
}
.clientes-tag-admin-preview span {
  width:11px;
  height:11px;
  border-radius:999px;
  flex:0 0 auto;
}
.clientes-tag-admin-preview strong {
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.clientes-tag-admin-row input[type="text"] {
  min-width:0;
  height:32px;
  min-height:32px;
  padding:6px 9px;
  font-size:12px;
  border-radius:10px;
}
.clientes-tag-admin-actions {
  display:grid;
  grid-template-columns:68px 64px 72px;
  gap:5px;
  min-width:0;
  justify-content:end;
}
.clientes-tag-admin-actions .btn,
.clientes-tag-admin-row .btn {
  height:30px;
  min-height:30px;
  padding:0 6px;
  font-size:10.1px;
  white-space:nowrap;
}
.clientes-tag-usos {
  justify-content:center;
  white-space:nowrap;
  min-width:0;
  padding-left:8px;
  padding-right:8px;
}
.clientes-tags-admin-empty {
  padding:14px;
  border:1px dashed var(--border);
  border-radius:12px;
  text-align:center;
}
.clientes-tags-admin-modal .modal-footer {
  flex:0 0 auto;
  margin-top:10px;
  padding-top:10px;
  border-top:1px solid var(--border);
}
@media (max-width: 900px) {
  .clientes-tags-admin-modal {
    width:calc(100vw - 24px);
    max-width:none;
  }
  .clientes-tag-admin-row {
    grid-template-columns:minmax(0,1fr) 56px 76px;
  }
  .clientes-tag-admin-preview,
  .clientes-tag-admin-row input[type="text"],
  .clientes-tag-admin-actions {
    grid-column:1 / -1;
  }
  .clientes-tag-admin-actions {
    grid-template-columns:repeat(3,minmax(0,1fr));
    justify-content:stretch;
  }
}
@media (max-width: 760px) {
  #page-clientes .clientes-head-actions {
    display:grid;
    grid-template-columns:1fr;
    width:100%;
  }
  #page-clientes .clientes-tags-admin-btn,
  #page-clientes .clientes-new-btn { width:100%; }
  .clientes-tags-admin-modal {
    width:calc(100vw - 16px);
    max-height:calc(100vh - 16px);
    padding:13px;
  }
  .clientes-tags-admin-new {
    grid-template-columns:1fr;
  }
  .clientes-tag-admin-row {
    grid-template-columns:1fr 1fr;
  }
  .clientes-tag-admin-preview,
  .clientes-tag-admin-row input[type="text"],
  .clientes-tag-admin-actions {
    grid-column:1 / -1;
  }
  .clientes-tags-admin-list {
    padding-right:2px;
  }
}

/* VENTAS — popup detalle compacto */
.sale-detail-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px;
  background: rgba(2, 6, 23, .72);
  backdrop-filter: blur(3px);
}
.sale-detail-modal {
  width: min(820px, 96vw);
  max-height: 88vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--border2);
  border-radius: 16px;
  background: var(--bg2);
  color: var(--text);
  box-shadow: 0 24px 70px rgba(0,0,0,.38);
}
.sale-detail-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: 16px;
  scrollbar-gutter: stable;
}
.sale-detail-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}
.sale-detail-kicker {
  font-size: 10.5px;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--accent);
}
.sale-detail-number {
  margin-top: 2px;
  font-size: 21px;
  line-height: 1.05;
  font-weight: 900;
  color: var(--text);
}
.sale-detail-date {
  margin-top: 4px;
  font-size: 11.5px;
  color: var(--text3);
}
.sale-detail-head-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}
.sale-detail-status {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 5px 10px;
  border-radius: 999px;
  background: var(--sale-status-bg, var(--bg3));
  color: var(--sale-status-color, var(--text));
  font-size: 11px;
  font-weight: 850;
  white-space: nowrap;
}
.sale-detail-close {
  width: 30px;
  height: 30px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--border2);
  border-radius: 10px;
  background: var(--bg3);
  color: var(--text2);
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
}
.sale-detail-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(0, .92fr) minmax(0, .78fr);
  gap: 10px;
  margin-bottom: 12px;
}
.sale-detail-card,
.sale-detail-items-card {
  border: 1px solid var(--border);
  border-radius: 13px;
  background: var(--bg);
}
.sale-detail-card { padding: 12px; }
.sale-detail-card-title {
  margin-bottom: 8px;
  font-size: 10.2px;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--text3);
}
.sale-detail-client-name {
  font-size: 15px;
  font-weight: 850;
  color: var(--text);
}
.sale-detail-mini-grid,
.sale-detail-summary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 10px;
}
.sale-detail-mini-grid span,
.sale-detail-summary-grid span,
.sale-detail-total-box span {
  display: block;
  margin-bottom: 2px;
  font-size: 9.8px;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--text3);
}
.sale-detail-mini-grid strong,
.sale-detail-summary-grid strong {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: 12px;
  color: var(--text);
}
.sale-detail-summary-grid { margin-top: 0; }
.sale-detail-total-box {
  grid-column: 1 / -1;
  margin-top: 2px;
  padding-top: 8px;
  border-top: 1px dashed var(--border2);
}
.sale-detail-total-box strong {
  display: block;
  font-size: 22px;
  line-height: 1;
  font-weight: 950;
  color: var(--accent);
}
.sale-detail-note {
  margin-top: 8px;
  padding: 7px 9px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--bg2);
  color: var(--text2);
  font-size: 11.2px;
  line-height: 1.25;
}
.sale-detail-pay-row {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 7px 0;
  border-bottom: 1px dashed var(--border);
  font-size: 11.5px;
  color: var(--text2);
}
.sale-detail-pay-row:first-of-type { padding-top: 0; }
.sale-detail-pay-row:last-child { border-bottom: 0; padding-bottom: 0; }
.sale-detail-pay-row strong { color: var(--text); }
.sale-detail-warn { color: var(--amber) !important; }
.sale-detail-loyalty-box {
  margin-top: 10px;
  padding-top: 9px;
  border-top: 1px dashed var(--border2);
}
.sale-detail-card-title-inline {
  margin-bottom: 6px;
}
.sale-detail-loyalty {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.sale-detail-loyalty-row {
  display: grid;
  grid-template-columns: 62px minmax(0, 1fr);
  gap: 8px;
  align-items: start;
}
.sale-detail-loyalty-row > span {
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--text3);
  padding-top: 1px;
}
.sale-detail-loyalty-row strong {
  display: block;
  font-size: 11.5px;
  color: var(--text);
}
.sale-detail-loyalty-row small {
  display: block;
  margin-top: 2px;
  font-size: 10.2px;
  color: var(--text3);
}
.sale-detail-loyalty-ok { color: var(--green) !important; }
.sale-detail-loyalty-warn { color: var(--amber) !important; }
.sale-detail-loyalty-muted { color: var(--text3) !important; }
.sale-detail-items-card { overflow: hidden; }
.sale-detail-items-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  border-bottom: 1px solid var(--border);
  background: var(--bg3);
}
.sale-detail-items-head strong {
  font-size: 11px;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--text);
}
.sale-detail-items-head span {
  font-size: 11px;
  color: var(--text3);
}
.sale-detail-table-wrap { overflow-x: auto; }
.sale-detail-table {
  width: 100%;
  min-width: 620px;
  border-collapse: collapse;
  font-size: 12px;
}
.sale-detail-table th,
.sale-detail-table td {
  padding: 8px 10px;
  border-bottom: 1px solid var(--border);
  vertical-align: middle;
}
.sale-detail-table th {
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--text3);
  background: var(--bg);
  text-align: left;
}
.sale-detail-table th:nth-child(2),
.sale-detail-table td:nth-child(2) { text-align: center; width: 76px; }
.sale-detail-table th:nth-child(3),
.sale-detail-table th:nth-child(4),
.sale-detail-money { text-align: right; }
.sale-detail-product strong {
  display: block;
  font-size: 12.4px;
  line-height: 1.15;
  color: var(--text);
}
.sale-detail-product-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 4px;
  font-size: 10.5px;
  color: var(--text3);
}
.sale-detail-product-meta span {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
.sale-detail-product-meta em {
  font-style: normal;
  color: var(--text2);
}
.sale-detail-discount {
  display: inline-flex;
  gap: 7px;
  margin-top: 6px;
  padding: 4px 7px;
  border: 1px solid color-mix(in srgb, var(--amber) 35%, transparent);
  border-radius: 999px;
  background: color-mix(in srgb, var(--amber) 10%, transparent);
  color: var(--amber);
  font-size: 10px;
  line-height: 1;
}
.sale-detail-old-price {
  display: block;
  margin-bottom: 2px;
  color: var(--text3);
  font-size: 10.5px;
  text-decoration: line-through;
}
.sale-detail-money strong,
.sale-detail-subtotal strong {
  display: block;
  color: var(--text);
  font-size: 12px;
}
.sale-detail-subtotal strong { color: var(--accent); }
.sale-detail-empty-row {
  text-align: center;
  color: var(--text3);
}
.sale-detail-footer {
  flex: 0 0 auto;
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 11px 16px;
  border-top: 1px solid var(--border2);
  background: var(--bg);
  box-shadow: 0 -12px 24px rgba(0,0,0,.16);
}
.sale-detail-footer-group {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
}
.sale-detail-footer-right { justify-content: flex-end; }
.sale-detail-action {
  min-height: 30px;
  padding: 7px 11px;
  border-radius: 9px;
  border: 1px solid var(--border2);
  background: var(--bg2);
  color: var(--text);
  font-size: 11.5px;
  font-weight: 800;
  cursor: pointer;
}
.sale-detail-primary { background: var(--accent); border-color: color-mix(in srgb, var(--accent) 65%, transparent); color: #fff; }
.sale-detail-ticket { background: var(--green); border-color: color-mix(in srgb, var(--green) 65%, transparent); color: #fff; }
.sale-detail-neutral { background: var(--bg2); }
.sale-detail-danger-soft { color: var(--red); background: color-mix(in srgb, var(--red) 10%, transparent); border-color: color-mix(in srgb, var(--red) 25%, transparent); }
.sale-detail-danger { background: var(--red); border-color: color-mix(in srgb, var(--red) 70%, transparent); color: #fff; }
@media (max-width: 900px) {
  .sale-detail-grid { grid-template-columns: 1fr 1fr; }
  .sale-detail-pay-card { grid-column: 1 / -1; }
}
@media (max-width: 680px) {
  .sale-detail-overlay { padding: 10px; align-items: stretch; }
  .sale-detail-modal { width: 100%; max-height: calc(100dvh - 20px); }
  .sale-detail-body { padding: 12px; }
  .sale-detail-head { align-items: stretch; flex-direction: column; }
  .sale-detail-head-actions { justify-content: space-between; }
  .sale-detail-grid { grid-template-columns: 1fr; }
  .sale-detail-footer { flex-direction: column; }
  .sale-detail-footer-group,
  .sale-detail-footer-right { justify-content: stretch; }
  .sale-detail-action { flex: 1 1 auto; }
}


/* CLIENTES — popup ficha/ver cliente compacto 20260609 */
.clientes-detail-modal {
  width: min(1080px, calc(100vw - 40px));
  max-width: 1080px;
  max-height: calc(100vh - 32px);
  padding: 15px 18px 13px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.clientes-detail-modal .modal-header {
  flex: 0 0 auto;
  margin-bottom: 8px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--border);
}
.clientes-detail-modal .modal-title {
  font-size: 16px;
  line-height: 1.15;
}
.clientes-detail-modal .modal-close {
  width: 30px;
  height: 30px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.clientes-detail-modal .clientes-detail-subtitle {
  font-size: 11.5px;
  line-height: 1.2;
  color: var(--text3);
  margin-top: 3px;
}
.clientes-detail-modal #cliente-detalle-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  padding-right: 3px;
}
.clientes-detail-modal .modal-footer {
  flex: 0 0 auto;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid var(--border);
}
.clientes-detail-modal .modal-footer .btn {
  height: 32px;
  min-height: 32px;
  padding: 0 14px;
  font-size: 11.2px;
}
.clientes-detail-modal .clientes-detail-kpis-simple {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 7px;
  margin-bottom: 8px;
}
.clientes-detail-modal .clientes-kpi-item {
  min-height: 38px;
  padding: 6px 8px;
  gap: 6px;
  border-radius: 10px;
}
.clientes-detail-modal .clientes-kpi-item span {
  width: 24px;
  height: 24px;
  min-width: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: var(--bg3);
  font-size:13px;
}
.clientes-detail-modal .clientes-kpi-item strong {
  font-size: 11.4px;
  line-height: 1.12;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.clientes-detail-modal .cliente-simple-detail-grid {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap: 9px;
  align-items: start;
}
.clientes-detail-modal .cliente-detalle-card {
  padding: 9px;
  border-radius: 12px;
}
.clientes-detail-modal .cliente-card-title-gap,
.clientes-detail-modal .cliente-card-title-gap-sm {
  margin-bottom: 7px;
  font-size: 12.5px;
  line-height: 1.15;
}
.clientes-detail-modal .cliente-resumen-list {
  display: grid;
  gap: 6px;
  font-size: 11.5px;
  line-height: 1.22;
}
.clientes-detail-modal .cliente-resumen-list strong {
  color: var(--text);
}
.clientes-detail-modal .cliente-inline-gap {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 4px;
}
.clientes-detail-modal .cliente-inline-gap .badge,
.clientes-detail-modal .cliente-inline-gap .chip {
  padding: 2px 6px;
  font-size: 10px;
  min-height: 20px;
}
.clientes-detail-modal .cliente-observaciones {
  max-height: 56px;
  overflow: auto;
  padding: 6px 8px;
  margin-top: 4px;
  border: 1px solid var(--border);
  border-radius: 9px;
  background: var(--bg2);
  color: var(--text2);
}
.clientes-detail-modal .cliente-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-bottom: 8px;
  padding-bottom: 7px;
  border-bottom: 1px solid var(--border);
}
.clientes-detail-modal .cliente-tabs .tab {
  min-height: 28px;
  padding: 0 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 10.7px;
  border-radius: 999px;
}
.clientes-detail-modal .cliente-resumen-simple-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.clientes-detail-modal .crm-mini-panel {
  padding: 10px;
  border-radius: 12px;
}
.clientes-detail-modal .crm-mini-item {
  min-height: 38px;
  padding: 7px 8px;
  gap: 8px;
  border-radius: 10px;
}
.clientes-detail-modal .crm-mini-title {
  font-size: 11.5px;
  line-height: 1.15;
}
.clientes-detail-modal .crm-mini-sub,
.clientes-detail-modal .crm-muted {
  font-size: 10.5px;
  line-height: 1.2;
}
.clientes-detail-modal .cliente-tab-panel .table-wrap {
  max-height: 260px;
  overflow: auto;
  border-radius: 11px;
}
.clientes-detail-modal .cliente-tab-panel table th,
.clientes-detail-modal .cliente-tab-panel table td {
  padding: 6px 8px;
  font-size: 11px;
  line-height: 1.15;
}
.clientes-detail-modal .cliente-panel-head {
  gap: 8px;
  margin-bottom: 8px;
}
.clientes-detail-modal .cliente-panel-head .btn {
  height: 28px;
  min-height: 28px;
  font-size: 10.5px;
}
@media (max-width: 920px) {
  .clientes-detail-modal {
    width: calc(100vw - 24px);
    max-height: calc(100vh - 24px);
    padding: 14px;
  }
  .clientes-detail-modal .clientes-detail-kpis-simple,
  .clientes-detail-modal .cliente-resumen-simple-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .clientes-detail-modal .cliente-simple-detail-grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 620px) {
  .clientes-detail-modal {
    width: calc(100vw - 12px);
    max-height: calc(100vh - 12px);
    padding: 12px;
  }
  .clientes-detail-modal .clientes-detail-kpis-simple,
  .clientes-detail-modal .cliente-resumen-simple-grid {
    grid-template-columns: 1fr;
  }
  .clientes-detail-modal .cliente-tabs .tab {
    flex: 1 1 calc(50% - 6px);
  }
  .clientes-detail-modal .modal-footer .btn {
    width: 100%;
  }
}

/* Escáner Stock · mobile completo · 20260612
   Dejar visible token/admin y acciones en pantallas chicas sin cortar contenido. */

.est-today-ranking-card {
  margin-bottom: 8px;
}
.est-today-head {
  align-items: flex-start;
}
.est-today-chips {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  flex-wrap: wrap;
}
.est-today-chips span {
  min-height: 24px;
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--bg3);
  color: var(--text2);
  font-size: 10.5px;
  font-weight: 800;
  white-space: nowrap;
}
.est-today-ranking-list {
  display: grid;
  gap: 6px;
}
.est-today-ranking-row {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) 120px;
  align-items: center;
  gap: 9px;
  min-height: 42px;
  padding: 7px 8px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--bg2);
}
.est-today-rank {
  width: 24px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: rgba(79,142,247,.14);
  color: var(--accent);
  font-size: 11px;
  font-weight: 900;
}
.est-today-product {
  min-width: 0;
  display: grid;
  gap: 3px;
}
.est-today-product strong {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--text);
  font-size: 12px;
}
.est-today-product small {
  color: var(--text3);
  font-size: 10px;
}
.est-today-bar {
  height: 5px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(148,163,184,.14);
}
.est-today-bar span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--accent);
}
.est-today-metrics {
  display: grid;
  gap: 2px;
  justify-items: end;
  text-align: right;
}
.est-today-metrics b {
  color: var(--text);
  font-size: 12px;
}
.est-today-metrics span {
  color: var(--text2);
  font-size: 10.5px;
  font-weight: 800;
}
@media (max-width: 1180px) {
  #page-stock-scanner .scan-grid {
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100%;
    min-width: 0;
    overflow: visible;
  }

  #page-stock-scanner .scan-side:not(.is-hidden) {
    display: flex !important;
    flex-direction: column;
    width: 100%;
    min-width: 0;
  }

  #page-stock-scanner .scan-side.is-hidden {
    display: none !important;
  }

  #page-stock-scanner .scan-main-card,
  #page-stock-scanner .scan-recent-full,
  #page-stock-scanner .scan-admin-panel,
  #page-stock-scanner .scan-token-box,
  #page-stock-scanner .scan-notas,
  #page-stock-scanner .scan-alt-panel {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }

  #page-stock-scanner .scan-footer,
  #page-stock-scanner .scan-footer.scan-footer-direct {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  #page-stock-scanner .scan-footer > *,
  #page-stock-scanner .scan-footer > .btn,
  #page-stock-scanner #scan-confirm-btn {
    width: 100%;
    max-width: 100%;
    min-width: 0 !important;
  }
}

@media (max-width: 860px) {
  #page-stock-scanner .scan-hero {
    grid-template-columns: minmax(0, 1fr) !important;
    padding: 11px;
  }

  #page-stock-scanner .scan-hero-actions {
    width: 100%;
    justify-content: flex-start;
  }

  #page-stock-scanner .scan-route-pill,
  #page-stock-scanner .scan-total-pill {
    min-width: 0;
    max-width: 100%;
  }

  #page-stock-scanner .scan-main-card {
    padding: 11px;
    overflow: visible;
  }

  #page-stock-scanner .scan-route {
    grid-template-columns: minmax(0, 1fr) 34px minmax(0, 1fr) !important;
    gap: 7px;
  }

  #page-stock-scanner .scan-route > div,
  #page-stock-scanner .scan-route select {
    min-width: 0;
  }

  #page-stock-scanner .scan-route > .btn {
    width: 34px;
    min-width: 34px;
    height: 34px;
    min-height: 34px;
  }

  #page-stock-scanner .scan-toolbar {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
    gap: 7px;
  }

  #page-stock-scanner .scan-toolbar .btn {
    width: 100%;
    min-width: 0;
    justify-content: center;
  }

  #page-stock-scanner .scan-input-wrap {
    width: 100%;
    min-width: 0;
  }

  #page-stock-scanner .scan-search-results {
    left: 7px;
    right: 7px;
    top: 66px;
    max-height: 220px;
  }

  #page-stock-scanner .table-wrap {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  #page-stock-scanner .scan-table {
    min-width: 520px !important;
  }

  #page-stock-scanner .scan-empty {
    padding: 18px 10px;
  }

  #page-stock-scanner .scan-footer {
    display: grid !important;
    gap: 8px;
  }

  #page-stock-scanner .scan-token-inline {
    grid-template-columns: minmax(0, 1fr);
  }

  #page-stock-scanner .scan-admin-panel {
    padding: 11px;
  }

  #page-stock-scanner .scan-admin-grid {
    gap: 8px;
  }

  #page-stock-scanner .scan-admin-grid .btn,
  #page-stock-scanner .scan-alt-launch-btn {
    width: 100%;
  }

  #page-stock-scanner .scan-recent-full {
    padding: 11px;
  }

  #page-stock-scanner .scan-card-headline {
    align-items: flex-start;
  }

  #page-stock-scanner .scan-recent-list {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 520px) {
  #page-stock-scanner .scan-hero-actions {
    flex-direction: column;
    align-items: stretch;
  }

  #page-stock-scanner .scan-route-pill,
  #page-stock-scanner .scan-total-pill {
    width: 100%;
    justify-content: center;
  }

  #page-stock-scanner input,
  #page-stock-scanner select {
    font-size: 12px;
  }

  #page-stock-scanner #scan-input {
    font-size: 12.2px;
  }

  #page-stock-scanner .scan-input-wrap label::after {
    display: none;
  }

  #page-stock-scanner .scan-table {
    min-width: 500px !important;
  }

  .scan-modal {
    padding: 10px;
    align-items: flex-start;
    overflow-y: auto;
  }

  .scan-modal-box,
  .scan-alt-modal-box {
    width: 100%;
    max-height: none;
    padding: 12px;
  }

  .scan-alt-modal-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .scan-modal-actions,
  .scan-alt-modal-actions {
    flex-direction: column-reverse;
    align-items: stretch;
  }

  .scan-modal-actions .btn,
  .scan-alt-modal-actions .btn {
    width: 100%;
    min-width: 0;
  }
}



/* ===============================
   GASTOS — pasada visual final sin scroll horizontal
   20260612
=============================== */
#page-gastos {
  --gastos-control-h: 32px;
}
#page-gastos .gastos-hero-row {
  margin-bottom: 8px;
}
#page-gastos .gastos-stats-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}
#page-gastos .stat-card {
  min-height: 76px;
  padding: 12px 18px;
  border-radius: 15px;
}
#page-gastos .stat-card .stat-value {
  font-size: 22px;
}
#page-gastos .stat-card .stat-icon {
  width: 32px;
  height: 32px;
}
#page-gastos .gastos-filtros-card,
#page-gastos .gastos-list-card {
  padding: 12px 14px;
  border-radius: 15px;
}
#page-gastos .gastos-filtros-toolbar {
  padding: 0;
  border: 0;
  background: transparent;
}
#page-gastos .gastos-filtros-title {
  align-items: center;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--border);
}
#page-gastos .gastos-filtros-title .text-muted {
  max-width: none;
  font-size: 11px;
}
#page-gastos .gastos-filtros-row {
  grid-template-columns: 126px 126px minmax(150px, 1fr) 136px minmax(210px, 1.3fr) 94px 150px;
  gap: 8px;
  padding-top: 10px;
}
#page-gastos .gastos-filter-field label {
  font-size: 9.6px;
}
#page-gastos .gastos-filter-field input,
#page-gastos .gastos-filter-field select,
#page-gastos .gastos-filtros-row > .btn {
  height: 32px;
  min-height: 32px;
  border-radius: 9px;
  font-size: 11.5px;
}
#page-gastos .gastos-list-head {
  padding: 0 0 9px;
  margin: 0 0 9px;
  border-bottom: 1px solid var(--border);
}
#page-gastos .table-wrap,
#page-gastos .table-resizable-wrap {
  overflow-x: hidden !important;
  border-radius: 12px;
}
#page-gastos #gastos-table,
#page-gastos #gastos-table.gastos-table-fit {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  table-layout: fixed;
}
#page-gastos #gastos-table colgroup {
  display: none;
}
#page-gastos #gastos-table .col-resize-handle {
  display: none !important;
}
#page-gastos #gastos-table th,
#page-gastos #gastos-table td {
  overflow: hidden;
  text-overflow: ellipsis;
}
#page-gastos #gastos-table th {
  height: 32px;
  padding: 6px 10px;
  font-size: 9.7px;
  letter-spacing: .085em;
}
#page-gastos #gastos-table td {
  padding: 8px 10px;
  font-size: 11.4px;
}
#page-gastos #gastos-table th:nth-child(1),
#page-gastos #gastos-table td:nth-child(1) { width: 9%; }
#page-gastos #gastos-table th:nth-child(2),
#page-gastos #gastos-table td:nth-child(2) { width: 17%; }
#page-gastos #gastos-table th:nth-child(3),
#page-gastos #gastos-table td:nth-child(3) { width: 24%; }
#page-gastos #gastos-table th:nth-child(4),
#page-gastos #gastos-table td:nth-child(4) { width: 15%; }
#page-gastos #gastos-table th:nth-child(5),
#page-gastos #gastos-table td:nth-child(5) { width: 12%; }
#page-gastos #gastos-table th:nth-child(6),
#page-gastos #gastos-table td:nth-child(6) { width: 10%; }
#page-gastos #gastos-table th:nth-child(7),
#page-gastos #gastos-table td:nth-child(7) { width: 13%; }
#page-gastos .gasto-actions {
  justify-content: flex-end;
  gap: 6px;
}
#page-gastos .gasto-actions .btn {
  min-width: 58px;
  height: 27px;
  min-height: 27px;
  padding: 0 8px;
}
#page-gastos #gastos-pag-container {
  display: flex;
  justify-content: flex-end;
  margin-top: 10px;
}
@media (max-width: 1280px) {
  #page-gastos .gastos-filtros-row {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  #page-gastos .gastos-search-field {
    grid-column: span 2;
  }
  #page-gastos .gastos-filtros-row > .btn {
    align-self: end;
  }
}
@media (max-width: 980px) {
  #page-gastos .gastos-stats-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  #page-gastos .table-wrap,
  #page-gastos .table-resizable-wrap {
    overflow-x: auto !important;
  }
  #page-gastos #gastos-table,
  #page-gastos #gastos-table.gastos-table-fit {
    min-width: 720px !important;
  }
}
@media (max-width: 760px) {
  #page-gastos .gastos-stats-grid,
  #page-gastos .gastos-filtros-row {
    grid-template-columns: 1fr;
  }
  #page-gastos .gastos-filtros-title {
    align-items: flex-start;
  }
  #page-gastos .gastos-search-field {
    grid-column: auto;
  }
  #page-gastos #gastos-pag-container {
    justify-content: stretch;
  }
}


/* ============================================================
   CAJA · Pasada visual compacta 20260614
   Sólo ajustes visuales del módulo Caja.
============================================================ */
#page-caja .proveedores-hero-row{
  margin-bottom:8px;
}
#page-caja .hero-metrics{
  gap:8px;
}
#page-caja .hero-metric{
  min-height:30px;
  padding:6px 10px;
  border-radius:11px;
  font-size:11.5px;
}
#page-caja .hero-metric span{
  font-size:13px;
}
#page-caja .stats-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin-bottom:10px;
}
#page-caja .stat-card{
  min-height:72px;
  padding:12px 42px 11px 14px;
  border-radius:14px;
  box-shadow:0 8px 18px rgba(0,0,0,.13);
}
#page-caja .stat-card::before{
  height:2px;
}
#page-caja .stat-label{
  margin-bottom:6px;
  font-size:9.6px;
  letter-spacing:.075em;
  line-height:1.15;
}
#page-caja .stat-value{
  margin:0;
  font-size:clamp(20px,1.55vw,27px);
  line-height:1.05;
  letter-spacing:-.035em;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
#page-caja .stat-icon{
  top:10px;
  right:10px;
  width:28px;
  height:28px;
  border-radius:10px;
  font-size:14px;
  opacity:.86;
}
#page-caja .caja-card-sub{
  font-size:11.3px;
  line-height:1.28;
}
#page-caja .caja-jornada-card,
#page-caja .caja-filtros-card,
#page-caja .caja-list-card{
  padding:13px 15px;
  border-radius:15px;
}
#page-caja .caja-jornada-card{
  margin-bottom:10px;
}
#page-caja .caja-filtros-card{
  margin-bottom:10px;
}
#page-caja .card-header,
#page-caja .caja-list-head,
#page-caja .caja-filtros-toolbar{
  align-items:flex-start;
  gap:10px;
  margin-bottom:10px;
  padding-bottom:10px;
}
#page-caja .card-title{
  font-size:13.2px;
  line-height:1.15;
}
#page-caja .caja-actions-row,
#page-caja .caja-jornada-card .toolbar-group{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  justify-content:flex-end;
}
#page-caja .caja-actions-row .btn,
#page-caja .caja-jornada-card .toolbar-group .btn,
#page-caja .caja-jornada-card .toolbar-group .badge{
  min-height:31px;
  height:31px;
  padding:5px 10px;
  border-radius:9px;
  font-size:11.3px;
  line-height:1;
}
#page-caja .caja-filtros-row{
  align-items:flex-end;
  gap:8px;
}
#page-caja .caja-filter-field{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:0;
}
#page-caja .caja-filter-field label{
  margin:0;
  font-size:9.8px;
  font-weight:800;
  letter-spacing:.052em;
  text-transform:uppercase;
  color:var(--text3);
}
#page-caja .caja-filter-field input,
#page-caja .caja-filter-field select{
  min-height:33px;
  height:33px;
  padding:6px 9px;
  border-radius:9px;
  font-size:11.5px;
}
#page-caja .caja-date-field{flex:0 1 124px;}
#page-caja .caja-small-field{flex:0 1 124px;}
#page-caja .caja-origin-field{flex:0 1 145px;}
#page-caja .caja-search-field{flex:1 1 250px;}
#page-caja .caja-filtros-row > .btn{
  flex:0 0 auto;
  min-width:92px;
  min-height:33px;
  height:33px;
  padding:5px 10px;
  border-radius:9px;
  font-size:11.3px;
}
#page-caja .table-resizable-wrap,
#page-caja .caja-jornada-card .table-wrap{
  margin-top:8px;
  border-radius:12px;
  overflow:hidden;
}
#page-caja #caja-table th{
  font-size:9.5px;
  letter-spacing:.055em;
  padding:8px 9px;
  white-space:nowrap;
}
#page-caja #caja-table td{
  padding:8px 9px;
  font-size:11.5px;
  vertical-align:middle;
}
#page-caja #caja-table th[data-col-key="fecha"]{width:118px;}
#page-caja #caja-table th[data-col-key="tipo"]{width:78px;}
#page-caja #caja-table th[data-col-key="origen"]{width:88px;}
#page-caja #caja-table th[data-col-key="medio"]{width:108px;}
#page-caja #caja-table th[data-col-key="monto"],
#page-caja #caja-table th[data-col-key="saldo"]{width:96px;}
#page-caja #caja-table th[data-col-key="acciones"]{width:70px;}
#page-caja .caja-date-cell strong,
#page-caja .caja-medio-cell strong,
#page-caja .caja-desc-cell strong{
  font-size:11.8px;
  line-height:1.18;
}
#page-caja .caja-date-cell small,
#page-caja .caja-medio-cell small,
#page-caja .caja-desc-cell small{
  font-size:9.8px;
  line-height:1.15;
  color:var(--text3);
  margin-top:1px;
}
#page-caja .caja-desc-cell strong,
#page-caja .caja-medio-cell strong{
  font-weight:800;
}
#page-caja .caja-origin-badge,
#page-caja #caja-table .badge{
  font-size:9.8px;
  padding:3px 7px;
  border-radius:999px;
}
#page-caja .caja-money-cell{
  font-weight:900;
  white-space:nowrap;
}
#page-caja .caja-money-cell.positive{color:#22c55e;}
#page-caja .caja-money-cell.negative{color:#ef4444;}
#page-caja .caja-empty-compact{
  padding:14px 12px;
  border-radius:13px;
}
#page-caja .caja-empty-compact .empty-icon{
  font-size:21px;
  margin-bottom:5px;
}
#page-caja .caja-empty-compact .empty-text{
  font-size:13px;
}
#page-caja .caja-empty-compact .empty-sub{
  font-size:11.5px;
  line-height:1.35;
}
#page-caja .caja-jornada-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);
  gap:10px;
  align-items:start;
}
#page-caja .caja-jornada-grid > div,
#page-caja .caja-detail-section .detail-box,
#page-caja #caja-detalle-body .detail-box{
  padding:10px;
  border:1px solid var(--border);
  border-radius:12px;
  background:rgba(255,255,255,.018);
  min-width:0;
}
#page-caja .caja-inline-sub{font-size:10.4px;}
#page-caja .caja-jornada-date{
  font-size:12.2px;
  font-weight:800;
  margin-top:1px;
}
#page-caja .caja-mt-sm{margin-top:5px;}
#page-caja .caja-mini-stats{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:7px;
}
#page-caja .caja-mini-stats > div{
  display:flex;
  flex-direction:column;
  gap:2px;
  padding:7px 8px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--bg3);
  min-width:0;
}
#page-caja .caja-mini-stats > div span{
  display:block;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  font-size:9.8px;
  color:var(--text3);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
#page-caja .caja-mini-stats > div strong{
  font-size:12.4px;
  line-height:1.05;
  color:var(--text);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
#page-caja .caja-mini-stats-spaced{
  margin-top:7px;
}
#page-caja .caja-badge-row{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:8px;
}
#page-caja .caja-badge-row .badge{
  font-size:10px;
  padding:4px 8px;
}
#page-caja .caja-inner-table-wrap,
#page-caja .caja-detail-table-wrap{
  margin-top:8px;
  border-radius:10px;
  overflow:hidden;
}
#page-caja .caja-inner-table-wrap table th,
#page-caja .caja-inner-table-wrap table td,
#page-caja .caja-detail-table-wrap table th,
#page-caja .caja-detail-table-wrap table td,
#page-caja .caja-jornada-card table th,
#page-caja .caja-jornada-card table td{
  padding:7px 8px;
  font-size:10.8px;
}
#page-caja .caja-jornada-card .cell-title strong{
  font-size:11.5px;
}
#page-caja .caja-jornada-card .cell-title small{
  font-size:9.8px;
}
#page-caja .caja-warning-box{
  margin-top:10px;
  padding:9px 10px;
  border-color:rgba(245,158,11,.24);
  background:rgba(245,158,11,.08);
  font-size:11.5px;
  line-height:1.35;
}
.caja-mov-modal,
.caja-detail-modal,
#modal-caja-jornada .modal{
  width:min(640px,calc(100vw - 32px));
  max-width:640px;
}
.caja-mov-modal .modal-header,
.caja-detail-modal .modal-header,
#modal-caja-jornada .modal-header{
  margin-bottom:10px;
  padding-bottom:10px;
}
.caja-mov-modal .form-grid,
#modal-caja-jornada .form-grid-2{
  gap:9px;
}
.caja-mov-modal .form-group label,
#modal-caja-jornada label{
  font-size:10.5px;
  margin-bottom:5px;
}
.caja-mov-modal input,
.caja-mov-modal select,
#modal-caja-jornada input,
#modal-caja-jornada textarea,
#modal-caja-jornada select{
  min-height:34px;
  border-radius:10px;
  padding:7px 10px;
  font-size:12px;
}
.caja-mov-modal textarea,
#modal-caja-jornada textarea{
  min-height:76px;
}
#modal-caja-jornada .detail-box{
  padding:9px 10px;
  border-radius:11px;
  margin-bottom:10px;
  background:var(--bg3);
  border:1px solid var(--border);
  font-size:11.5px;
}
#modal-caja-jornada .modal-title + .caja-card-sub{
  margin-top:2px;
}
#modal-caja-jornada .modal-footer,
.caja-mov-modal .modal-footer,
.caja-detail-modal .modal-footer{
  gap:7px;
  padding-top:10px;
}
.caja-detail-modal .modal-body{
  padding-top:0;
}
.caja-detail-modal .detail-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}
.caja-detail-modal .detail-grid > div{
  padding:9px 10px;
  border:1px solid var(--border);
  border-radius:11px;
  background:var(--bg3);
  min-width:0;
}
.caja-detail-modal .detail-grid strong{
  display:block;
  margin-bottom:4px;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.055em;
  color:var(--text3);
}
.caja-detail-modal .detail-grid div div{
  font-size:12px;
  color:var(--text);
  overflow:hidden;
  text-overflow:ellipsis;
}
.caja-detail-modal .caja-detail-section{
  margin-top:10px;
  font-size:12px;
}
.caja-detail-modal .caja-detail-section > strong{
  display:block;
  margin-bottom:6px;
  font-size:10.5px;
  text-transform:uppercase;
  letter-spacing:.055em;
  color:var(--text3);
}
@media (max-width: 1120px){
  #page-caja .stats-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  #page-caja .caja-mini-stats{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width: 980px){
  #page-caja .caja-jornada-grid{
    grid-template-columns:1fr;
  }
  #page-caja .caja-filtros-row > *{
    flex:1 1 calc(50% - 8px);
  }
  #page-caja .caja-search-field{
    flex-basis:100%;
  }
  .caja-detail-modal .detail-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width: 760px){
  #page-caja .stats-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:8px;
  }
  #page-caja .stat-card{
    padding:11px 38px 10px 12px;
    min-height:68px;
  }
  #page-caja .stat-value{
    font-size:19px;
  }
  #page-caja .caja-jornada-card,
  #page-caja .caja-filtros-card,
  #page-caja .caja-list-card{
    padding:12px;
  }
  #page-caja .caja-actions-row,
  #page-caja .caja-jornada-card .toolbar-group{
    width:100%;
    justify-content:stretch;
  }
  #page-caja .caja-actions-row .btn,
  #page-caja .caja-jornada-card .toolbar-group .btn,
  #page-caja .caja-filtros-row > .btn{
    flex:1 1 100%;
    width:100%;
  }
  #page-caja .caja-filtros-row > *{
    flex:1 1 100%;
  }
  #page-caja .caja-mini-stats{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .caja-mov-modal,
  .caja-detail-modal,
  #modal-caja-jornada .modal{
    width:min(100vw - 20px,640px);
  }
  .caja-detail-modal .detail-grid{
    grid-template-columns:1fr;
  }
}
@media (max-width: 480px){
  #page-caja .stats-grid{
    grid-template-columns:1fr !important;
  }
}

/* ============================================================
   CLIENTES · Fidelización por puntos 20260613
============================================================ */
#clientes-table .clientes-puntos-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:62px;
  padding:4px 8px;
  font-weight:800;
  color:#f59e0b;
  background:rgba(245,158,11,.10);
  border:1px solid rgba(245,158,11,.26);
}
#clientes-table .clientes-puntos-badge.is-empty,
#clientes-table .clientes-puntos-badge.is-off{
  color:var(--text3);
  background:var(--bg3);
  border-color:var(--border);
}
.clientes-kpi-puntos strong{color:#f59e0b;}
.cliente-puntos-mini{
  display:inline-flex;
  flex-wrap:wrap;
  gap:4px;
  align-items:center;
  margin-left:4px;
}
.cliente-puntos-mini small{color:var(--text3);font-size:11px;}
.clientes-puntos-strong{font-weight:900;color:#f59e0b;}
.cliente-puntos-panel{display:flex;flex-direction:column;gap:12px;}
.cliente-puntos-head{align-items:flex-start;gap:10px;}
.cliente-puntos-metrics{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
}
.cliente-puntos-metrics .crm-mini-panel{
  min-height:auto;
  padding:10px 12px;
}
.cliente-puntos-metrics strong{
  display:block;
  margin-top:2px;
  font-size:17px;
  color:#f59e0b;
}
.cliente-puntos-metrics small{
  display:block;
  margin-top:2px;
  font-size:10.5px;
  line-height:1.25;
  color:var(--text3);
}
.cliente-puntos-list{display:flex;flex-direction:column;gap:7px;}
.cliente-puntos-row{
  align-items:center;
  border-left:3px solid rgba(245,158,11,.55);
}
.cliente-puntos-row.is-minus{border-left-color:rgba(239,68,68,.68);}
.cliente-puntos-delta{white-space:nowrap;font-size:14px;color:#f59e0b;}
.cliente-puntos-row.is-minus .cliente-puntos-delta{color:#ef4444;}
.clientes-puntos-expired{color:var(--text3);opacity:.82;}
.cfg-puntos-grid{grid-template-columns:repeat(4,minmax(0,1fr));}
.cfg-puntos-preview{
  margin-top:12px;
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--bg3);
  color:var(--text2);
  font-size:12px;
  line-height:1.45;
}
.cfg-puntos-preview strong{color:var(--text);}
@media (max-width:1100px){
  .cliente-puntos-metrics,
  .cfg-puntos-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:760px){
  .cliente-puntos-metrics,
  .cfg-puntos-grid{grid-template-columns:1fr;}
  .cliente-puntos-head{flex-direction:column;}
  .cliente-puntos-head .btn{width:100%;}
  .cliente-puntos-row{align-items:flex-start;}
  .cliente-puntos-delta{align-self:flex-end;}
}
.clientes-detail-modal .clientes-detail-kpis-simple,
#page-clientes .clientes-detail-kpis-simple{grid-template-columns:repeat(5,minmax(0,1fr));}
@media (max-width:900px){
  .clientes-detail-modal .clientes-detail-kpis-simple,
  #page-clientes .clientes-detail-kpis-simple{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:760px){
  .clientes-detail-modal .clientes-detail-kpis-simple,
  #page-clientes .clientes-detail-kpis-simple{grid-template-columns:1fr;}
}

/* ============================================================
   NUEVA VENTA · Canje de puntos 20260613
============================================================ */
#page-nueva-venta .nv-puntos-cliente{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin-top:5px;
  padding:6px 8px;
  border:1px solid rgba(245,158,11,.24);
  border-radius:10px;
  background:rgba(245,158,11,.08);
  color:var(--text2);
  font-size:11px;
  line-height:1.25;
}
#page-nueva-venta .nv-puntos-cliente.nv-hidden-js{display:none!important;}
#page-nueva-venta .nv-puntos-main{
  display:flex;
  align-items:center;
  gap:7px;
  min-width:0;
  flex:1 1 240px;
}
#page-nueva-venta .nv-puntos-dot{
  flex:0 0 auto;
  width:20px;
  height:20px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:rgba(245,158,11,.16);
  font-size:12px;
}
#page-nueva-venta .nv-puntos-main strong{
  display:block;
  color:#f59e0b;
  font-size:12px;
  line-height:1.05;
}
#page-nueva-venta .nv-puntos-main small{
  display:block;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:normal;
  color:var(--text3);
  font-size:10px;
}
#page-nueva-venta .nv-puntos-main > div{
  min-width:0;
}
#page-nueva-venta .nv-puntos-side{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  flex:1 1 260px;
  min-width:0;
  margin-left:auto;
  flex-wrap:wrap;
}
#page-nueva-venta .nv-puntos-editor{
  display:flex;
  align-items:center;
  gap:5px;
  flex:0 0 auto;
}
#page-nueva-venta .nv-puntos-editor input{
  width:64px!important;
  height:24px!important;
  min-height:24px!important;
  padding:2px 6px;
  border-radius:8px;
  font-size:11px;
  text-align:center;
}
#page-nueva-venta .nv-puntos-aplicado{
  display:flex;
  align-items:center;
  gap:4px;
  flex:0 0 auto;
  padding:3px 7px;
  border-radius:999px;
  background:rgba(245,158,11,.14);
  border:1px solid rgba(245,158,11,.24);
  color:var(--text2);
  font-size:10.5px;
}
#page-nueva-venta .nv-puntos-aplicado strong{color:#f59e0b;}
#page-nueva-venta .nv-total-puntos-inline{
  min-width:150px;
  justify-content:flex-end;
}
#page-nueva-venta #pos-puntos-monto{color:#f59e0b;}
@media (max-width:1120px){
  #page-nueva-venta .nv-puntos-cliente{
    align-items:flex-start;
  }
  #page-nueva-venta .nv-puntos-main,
  #page-nueva-venta .nv-puntos-side{
    flex:1 1 100%;
  }
  #page-nueva-venta .nv-puntos-side{
    justify-content:flex-start;
  }
  #page-nueva-venta .nv-puntos-editor{
    width:100%;
    justify-content:flex-start;
  }
}
@media (max-width:760px){
  #page-nueva-venta .nv-puntos-cliente{padding:8px;}
  #page-nueva-venta .nv-puntos-editor{flex-wrap:wrap;}
  #page-nueva-venta .nv-puntos-editor input{flex:1 1 90px;width:auto!important;}
  #page-nueva-venta .nv-puntos-editor .btn{flex:1 1 auto;}
  #page-nueva-venta .nv-total-puntos-inline{min-width:0;}
}

/* ============================================================
   ESTADÍSTICAS · Fidelización por puntos 20260614
============================================================ */
#page-estadisticas .est-puntos-card{
  margin-top:10px;
  margin-bottom:10px;
}
#page-estadisticas .est-puntos-head{
  align-items:flex-start;
  gap:12px;
}
#page-estadisticas .est-puntos-head > span{
  display:inline-flex;
  align-items:center;
  justify-content:flex-end;
  min-height:24px;
  padding:4px 8px;
  border:1px solid rgba(245,158,11,.24);
  border-radius:999px;
  background:rgba(245,158,11,.08);
  color:var(--text3);
  font-size:10.5px;
  font-weight:750;
  text-align:right;
}
#page-estadisticas .est-puntos-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
}
#page-estadisticas .est-puntos-metric{
  min-width:0;
  padding:10px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--bg);
}
#page-estadisticas .est-puntos-metric span{
  display:block;
  margin-bottom:4px;
  font-size:10px;
  font-weight:850;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:var(--text3);
}
#page-estadisticas .est-puntos-metric strong{
  display:block;
  color:#f59e0b;
  font-size:18px;
  line-height:1.1;
  font-weight:950;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
#page-estadisticas .est-puntos-metric.is-warn strong{
  color:var(--red);
}
#page-estadisticas .est-puntos-metric small{
  display:block;
  margin-top:4px;
  color:var(--text3);
  font-size:10.5px;
  line-height:1.2;
}
@media (max-width:1100px){
  #page-estadisticas .est-puntos-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:680px){
  #page-estadisticas .est-puntos-head{flex-direction:column;}
  #page-estadisticas .est-puntos-head > span{justify-content:flex-start;text-align:left;}
  #page-estadisticas .est-puntos-grid{grid-template-columns:1fr;}
}

/* CLIENTES · Participación en puntos por cliente 20260614 */
.cliente-puntos-form-toggle{
  min-width:0;
}
.cliente-puntos-toggle{
  min-height:34px;
  display:flex;
  align-items:center;
  gap:8px;
  padding:7px 10px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--bg);
  color:var(--text2);
  font-size:12px;
  font-weight:750;
  cursor:pointer;
}
.cliente-puntos-toggle input{
  width:15px;
  height:15px;
  min-height:15px;
  margin:0;
  accent-color:var(--accent);
}
.cliente-puntos-toggle:has(input:checked){
  border-color:rgba(245,158,11,.35);
  background:rgba(245,158,11,.08);
  color:var(--text);
}
@media (max-width:760px){
  .cliente-puntos-form-toggle{grid-column:1/-1;}
}

/* Historial: detalle más humano y resumido */
.hist-human-summary {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 12px 13px;
  border: 1px solid rgba(59,130,246,.22);
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(37,99,235,.12), rgba(15,23,42,.22));
}
.hist-human-icon {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.12);
  font-size: 18px;
}
.hist-human-icon.bad {
  background: rgba(239,68,68,.12);
  border-color: rgba(239,68,68,.22);
}
.hist-human-title {
  color: var(--text);
  font-size: 14px;
  line-height: 1.2;
  font-weight: 900;
  letter-spacing: -.01em;
}
.hist-human-text {
  margin-top: 4px;
  color: var(--text2);
  font-size: 12.5px;
  line-height: 1.35;
}
.hist-detail-grid-compact {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
}
.hist-detail-grid-compact > div {
  padding: 8px 10px;
  border-radius: 12px;
}
.hist-human-card {
  border: 1px solid var(--border);
  background: var(--bg2);
  border-radius: 14px;
  padding: 10px 11px;
  min-width: 0;
}
.hist-human-card h4 {
  margin: 0 0 8px;
  color: var(--text);
  font-size: 12.5px;
  font-weight: 900;
}
.hist-human-data {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
}
.hist-human-data > div {
  border: 1px solid rgba(148,163,184,.16);
  border-radius: 10px;
  padding: 7px 8px;
  background: rgba(15,23,42,.22);
  min-width: 0;
}
.hist-human-data span {
  display: block;
  margin-bottom: 3px;
  color: var(--text3);
  font-size: 9.5px;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.hist-human-data strong {
  display: block;
  color: var(--text);
  font-size: 12px;
  line-height: 1.25;
  overflow-wrap: anywhere;
}
.hist-human-empty {
  color: var(--text3);
  font-size: 12px;
  padding: 8px 9px;
  border-radius: 10px;
  background: rgba(15,23,42,.20);
}
.hist-diff-human .hist-diff-row {
  grid-template-columns: 180px minmax(0, 1fr);
  padding: 8px 9px;
}
.hist-diff-human .hist-diff-field {
  font-size: 12px;
}
.hist-diff-human .hist-diff-values {
  color: var(--text2);
  font-size: 12px;
}
.hist-diff-human .hist-diff-values span {
  background: rgba(15,23,42,.28);
  border: 1px solid rgba(148,163,184,.14);
  border-radius: 8px;
  padding: 5px 7px;
}
.hist-diff-human .hist-diff-values b {
  color: var(--primary);
  font-size: 13px;
}
.hist-tech-details {
  border: 1px dashed rgba(148,163,184,.32);
  border-radius: 14px;
  padding: 9px 10px;
  background: rgba(15,23,42,.16);
}
.hist-tech-details summary {
  cursor: pointer;
  color: var(--text2);
  font-weight: 850;
  font-size: 12px;
  user-select: none;
}
.hist-tech-grid {
  display: grid;
  gap: 9px;
  margin-top: 9px;
}
html[data-theme="light"] .hist-human-summary {
  background: linear-gradient(135deg, rgba(37,99,235,.08), #ffffff);
  border-color: rgba(37,99,235,.18);
}
html[data-theme="light"] .hist-human-icon,
html[data-theme="light"] .hist-human-data > div,
html[data-theme="light"] .hist-human-empty,
html[data-theme="light"] .hist-diff-human .hist-diff-values span,
html[data-theme="light"] .hist-tech-details {
  background: #f8fafc;
  border-color: rgba(15,23,42,.10);
}
html[data-theme="light"] .hist-human-card {
  background: #ffffff;
  border-color: rgba(15,23,42,.12);
}
@media (max-width: 760px) {
  .hist-human-summary { grid-template-columns: 38px minmax(0, 1fr); }
  .hist-human-summary .badge { grid-column: 1 / -1; justify-self: flex-start; }
  .hist-detail-grid-compact,
  .hist-human-data { grid-template-columns: 1fr; }
  .hist-diff-human .hist-diff-row { grid-template-columns: 1fr; align-items: start; }
  .hist-diff-human .hist-diff-values { flex-wrap: wrap; }
}

/* Historial: popup compacto sin scroll visual en desktop */
#modal-historial-detalle .hist-detail-modal {
  width: min(980px, calc(100vw - 36px));
  max-width: 980px;
  max-height: none;
  overflow: visible;
  padding: 16px 18px 14px;
  border-radius: 18px;
}
#modal-historial-detalle .modal-header {
  margin-bottom: 9px;
  padding-bottom: 9px;
  align-items: flex-start;
}
#modal-historial-detalle .modal-title {
  font-size: 15px;
  line-height: 1.15;
}
#modal-historial-detalle .hist-modal-subtitle {
  margin-top: 2px;
  font-size: 10.8px;
  line-height: 1.2;
  color: var(--text3);
}
#modal-historial-detalle #historial-detalle-body {
  gap: 7px;
}
#modal-historial-detalle .hist-human-summary {
  grid-template-columns: 34px minmax(0, 1fr) auto;
  gap: 9px;
  padding: 8px 10px;
  border-radius: 13px;
}
#modal-historial-detalle .hist-human-icon {
  width: 30px;
  height: 30px;
  border-radius: 10px;
  font-size: 15px;
}
#modal-historial-detalle .hist-human-title {
  font-size: 13px;
}
#modal-historial-detalle .hist-human-text {
  margin-top: 2px;
  font-size: 11.4px;
  line-height: 1.25;
}
#modal-historial-detalle .hist-human-summary .badge {
  padding: 2px 8px;
  font-size: 10px;
}
#modal-historial-detalle .hist-detail-grid-compact {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 6px;
}
#modal-historial-detalle .hist-detail-grid-compact > div {
  padding: 6px 8px;
  border-radius: 10px;
}
#modal-historial-detalle .hist-detail-grid span {
  margin-bottom: 2px;
  font-size: 8.8px;
  letter-spacing: .06em;
}
#modal-historial-detalle .hist-detail-grid strong {
  font-size: 11px;
  line-height: 1.18;
}
#modal-historial-detalle .hist-human-card {
  padding: 8px 9px;
  border-radius: 12px;
}
#modal-historial-detalle .hist-human-card h4 {
  margin-bottom: 6px;
  font-size: 11.7px;
}
#modal-historial-detalle .hist-diff-list {
  gap: 5px;
}
#modal-historial-detalle .hist-diff-human .hist-diff-row {
  grid-template-columns: 160px minmax(0, 1fr);
  padding: 6px 7px;
  border-radius: 9px;
}
#modal-historial-detalle .hist-diff-human .hist-diff-field,
#modal-historial-detalle .hist-diff-human .hist-diff-values {
  font-size: 11px;
}
#modal-historial-detalle .hist-diff-human .hist-diff-values span {
  padding: 3px 6px;
  border-radius: 7px;
}
#modal-historial-detalle .hist-tech-details {
  padding: 7px 9px;
  border-radius: 11px;
}
#modal-historial-detalle .hist-tech-details summary {
  font-size: 11px;
}
#modal-historial-detalle .modal-footer {
  margin-top: 9px;
  padding-top: 9px;
}
#modal-historial-detalle .modal-footer .btn {
  min-height: 31px;
  padding: 0 13px;
  font-size: 12px;
}

@media (max-width: 980px) {
  #modal-historial-detalle .hist-detail-modal {
    width: min(760px, calc(100vw - 24px));
    max-height: calc(100vh - 24px);
    overflow-y: auto;
  }
  #modal-historial-detalle .hist-detail-grid-compact {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Nueva Reserva — ajuste visual ítems + avisos compactos (20260614 reservas fix3) */
#page-nueva-reserva .nr-input-error{
  border-color: rgba(239,68,68,.85) !important;
  box-shadow: 0 0 0 3px rgba(239,68,68,.16) !important;
}
#page-nueva-reserva .nr-items-card{
  padding: 9px 12px 12px;
}
#page-nueva-reserva .nr-items-card .table-wrap{
  margin-top: 6px;
  max-height: none;
  overflow-y: visible;
  border-radius: 12px;
}
#nr-items-table{
  width: 100% !important;
  min-width: 0 !important;
  table-layout: fixed !important;
  border-collapse: collapse;
}
#nr-items-table th,
#nr-items-table td{
  padding: 6px 8px;
  font-size: 10.9px;
  line-height: 1.15;
  vertical-align: middle;
}
#nr-items-table th{
  font-size: 9px;
  line-height: 1;
  letter-spacing: .035em;
  white-space: nowrap;
}
#nr-items-table th:nth-child(1),
#nr-items-table td:nth-child(1){ width: 30%; }
#nr-items-table th:nth-child(2),
#nr-items-table td:nth-child(2){ width: 16%; }
#nr-items-table th:nth-child(3),
#nr-items-table td:nth-child(3){ width: 6%; text-align:center; }
#nr-items-table th:nth-child(4),
#nr-items-table td:nth-child(4){ width: 12%; text-align:right; }
#nr-items-table th:nth-child(5),
#nr-items-table td:nth-child(5){ width: 7%; text-align:center; }
#nr-items-table th:nth-child(6),
#nr-items-table td:nth-child(6){ width: 8%; text-align:right; }
#nr-items-table th:nth-child(7),
#nr-items-table td:nth-child(7){ width: 13%; text-align:right; }
#nr-items-table th:nth-child(8),
#nr-items-table td:nth-child(8){ width: 8%; text-align:right; }
#nr-items-table .nr-item-row td{
  background: transparent;
}
#nr-items-table .nr-product-cell{
  white-space: normal;
  overflow: hidden;
}
#nr-items-table .nr-product-title{
  color: var(--text);
  font-weight: 900;
  line-height: 1.15;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
#nr-items-table .nr-product-meta{
  display: flex;
  align-items: center;
  gap: 5px;
  flex-wrap: wrap;
  margin-top: 4px;
  min-height: 16px;
}
#nr-items-table .nr-item-chip{
  display: inline-flex;
  align-items: center;
  min-height: 16px;
  padding: 1px 5px;
  border: 1px solid rgba(148,163,184,.20);
  border-radius: 999px;
  background: rgba(148,163,184,.08);
  color: var(--text3);
  font-size: 9.4px;
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
}
#nr-items-table .nr-item-chip.nr-stock{
  color: var(--accent);
  background: rgba(79,142,247,.12);
  border-color: rgba(79,142,247,.18);
}
#nr-items-table .nr-comment-cell{
  color: var(--text2);
  white-space: normal;
  word-break: break-word;
}
#nr-items-table .nr-qty-cell,
#nr-items-table .nr-discount-cell{
  color: var(--text2);
  white-space: nowrap;
}
#nr-items-table .nr-money-cell{
  color: var(--text2);
  white-space: nowrap;
}
#nr-items-table .nr-subtotal-cell{
  color: var(--text);
  font-weight: 900;
}
#nr-items-table .nr-action-cell{
  white-space: nowrap;
}
#nr-items-table .nr-remove-btn{
  min-width: 58px;
  height: 28px;
  min-height: 28px;
  padding: 0 8px;
  border-radius: 9px;
  font-size: 10.5px;
}
#page-nueva-reserva .nr-totals-bar{
  margin-top: 8px;
}
@media (min-width: 921px){
  #page-nueva-reserva .nr-items-card .table-wrap{ overflow-x: hidden; }
}
@media (max-width: 920px){
  #page-nueva-reserva .nr-items-card .table-wrap{ overflow-x: auto; }
  #nr-items-table{ min-width: 820px !important; }
}

/* ============================================================
   CONFIGURACIÓN — pestaña Negocio, pasada visual 20260614
============================================================ */
#page-configuracion .cfg-config-hero{
  min-height:54px;
  padding:4px 0 2px;
  justify-content:space-between;
  gap:14px;
  border-bottom:0;
}
#page-configuracion .cfg-page-heading{
  min-width:0;
}
#page-configuracion .cfg-page-kicker{
  font-size:10.5px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--primary);
  line-height:1;
  margin-bottom:3px;
}
#page-configuracion .cfg-page-heading h2{
  margin:0;
  font-size:22px;
  line-height:1.05;
  font-weight:900;
  color:var(--text1);
}
#page-configuracion .cfg-page-heading p{
  margin:4px 0 0;
  font-size:12px;
  line-height:1.25;
  color:var(--text3);
}
#page-configuracion .cfg-tabs{
  position:sticky;
  top:calc(var(--topbar, 72px) + 2px);
  z-index:35;
  background:linear-gradient(180deg, var(--bg) 0%, rgba(15,23,42,.92) 100%);
  backdrop-filter:blur(10px);
  border:1px solid var(--border);
  border-radius:14px;
  padding:7px;
  margin:0 0 2px;
  box-shadow:0 14px 30px rgba(0,0,0,.14);
}
html[data-theme="light"] #page-configuracion .cfg-tabs{
  background:linear-gradient(180deg, rgba(248,250,252,.96) 0%, rgba(241,245,249,.9) 100%);
}
#page-configuracion .cfg-tabs .tab{
  border-radius:10px;
  border:1px solid transparent;
  color:var(--text2);
  font-weight:850;
}
#page-configuracion .cfg-tabs .tab.active{
  background:rgba(59,130,246,.16);
  border-color:rgba(59,130,246,.32);
  color:var(--text1);
}
#page-configuracion .cfg-card-header-tight{
  align-items:flex-start;
  gap:10px;
}
#page-configuracion .cfg-mini-pill{
  flex:0 0 auto;
  padding:5px 9px;
  border-radius:999px;
  background:rgba(59,130,246,.14);
  border:1px solid rgba(59,130,246,.28);
  color:var(--primary);
  font-size:10.5px;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}
#page-configuracion .cfg-business-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) 310px;
  gap:10px;
  align-items:start;
}
#page-configuracion .cfg-business-main-card,
#page-configuracion .cfg-business-side-card{
  min-width:0;
}
#page-configuracion .cfg-business-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px 10px;
}
#page-configuracion .cfg-span-2{
  grid-column:span 2;
}
#page-configuracion .cfg-logo-panel{
  display:grid;
  gap:10px;
  justify-items:center;
  text-align:center;
}
#page-configuracion .cfg-logo-preview{
  width:100%;
  max-width:220px;
  height:88px;
  border-radius:15px;
  border:1px dashed rgba(148,163,184,.45);
  background:linear-gradient(180deg, var(--bg2), var(--bg3));
}
#page-configuracion .cfg-logo-placeholder{
  font-size:26px;
}
#page-configuracion .cfg-logo-actions{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  justify-content:center;
}
#page-configuracion .cfg-logo-actions .cfg-logo-btn{
  margin:0;
}
#page-configuracion .cfg-business-note{
  margin-top:10px;
  padding:10px 11px;
  border:1px solid rgba(59,130,246,.18);
  background:rgba(59,130,246,.07);
  border-radius:12px;
  color:var(--text2);
  font-size:11.5px;
  line-height:1.38;
}
html[data-theme="light"] #page-configuracion .cfg-business-note{
  background:rgba(37,99,235,.06);
}
@media (max-width: 1180px){
  #page-configuracion .cfg-business-layout{
    grid-template-columns:1fr;
  }
  #page-configuracion .cfg-business-side-card{
    display:grid;
    grid-template-columns:minmax(0,260px) minmax(0,1fr);
    gap:12px;
    align-items:center;
  }
  #page-configuracion .cfg-business-side-card .card-header{
    grid-column:1 / -1;
  }
  #page-configuracion .cfg-business-note{
    margin-top:0;
  }
}
@media (max-width: 900px){
  #page-configuracion .cfg-config-hero{
    align-items:flex-start;
    flex-direction:column;
  }
  #page-configuracion .cfg-top-actions,
  #page-configuracion .cfg-save-all-btn{
    width:100%;
  }
  #page-configuracion .cfg-business-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  #page-configuracion .cfg-span-2{
    grid-column:span 2;
  }
  #page-configuracion .cfg-tabs{
    position:relative;
    top:auto;
  }
}
@media (max-width: 640px){
  #page-configuracion .cfg-business-grid,
  #page-configuracion .cfg-business-side-card{
    grid-template-columns:1fr;
  }
  #page-configuracion .cfg-span-2{
    grid-column:auto;
  }
}

/* ============================================================
   CONFIGURACIÓN — pestaña Ventas, pasada visual 20260614
============================================================ */
#page-configuracion .cfg-sales-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) 330px;
  gap:10px;
  align-items:stretch;
}
#page-configuracion .cfg-sales-main-card,
#page-configuracion .cfg-sales-side-card,
#page-configuracion .cfg-sales-rules-card{
  min-width:0;
}
#page-configuracion .cfg-sales-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px 10px;
}
#page-configuracion .cfg-span-3{
  grid-column:span 3;
}
#page-configuracion .cfg-sales-side-card{
  display:flex;
  flex-direction:column;
}
#page-configuracion .cfg-sales-options{
  display:grid;
  gap:9px;
  margin-top:2px;
}
#page-configuracion .cfg-sales-rules-card{
  padding-bottom:12px;
}
#page-configuracion .cfg-ventas-rules-visual{
  margin-top:0;
}
#page-configuracion .cfg-rule-badge-wide{
  width:100%;
  min-height:50px;
  padding:10px 12px;
  border:1px solid rgba(59,130,246,.18);
  border-radius:14px;
  background:linear-gradient(180deg, rgba(59,130,246,.08), rgba(59,130,246,.03));
  display:flex;
  align-items:center;
  gap:10px;
  cursor:pointer;
}
#page-configuracion .cfg-rule-badge-wide input{
  width:16px;
  height:16px;
  min-height:auto;
  flex:0 0 auto;
}
#page-configuracion .cfg-rule-badge-main{
  display:grid;
  gap:2px;
  min-width:0;
}
#page-configuracion .cfg-rule-badge-main strong{
  font-size:13px;
  color:var(--text1);
  line-height:1.15;
}
#page-configuracion .cfg-rule-badge-main small{
  font-size:11.5px;
  color:var(--text3);
  line-height:1.35;
}
#page-configuracion .cfg-actions-sticky-note{
  margin-top:0;
}
html[data-theme="light"] #page-configuracion .cfg-rule-badge-wide{
  background:linear-gradient(180deg, rgba(37,99,235,.06), rgba(37,99,235,.025));
}
@media (max-width: 1100px){
  #page-configuracion .cfg-sales-layout{
    grid-template-columns:1fr;
  }
  #page-configuracion .cfg-sales-side-card .cfg-sales-options{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width: 760px){
  #page-configuracion .cfg-sales-grid,
  #page-configuracion .cfg-sales-side-card .cfg-sales-options{
    grid-template-columns:1fr;
  }
  #page-configuracion .cfg-span-3{
    grid-column:auto;
  }
}


/* ============================================================
   CONFIGURACIÓN — resto de pestañas, pasada visual integral 20260614
============================================================ */
#page-configuracion .cfg-page-heading h2{
  font-size:21px;
}
#page-configuracion .cfg-page-heading p{
  max-width:760px;
}
#page-configuracion .cfg-section:not(.is-hidden){
  display:grid;
  gap:10px;
}
#page-configuracion .cfg-section .card{
  padding:14px 15px;
}
#page-configuracion .cfg-section .card-header{
  margin-bottom:10px;
  padding-bottom:10px;
  border-bottom:1px solid var(--border2);
}
#page-configuracion .cfg-section .card-title{
  line-height:1.12;
}
#page-configuracion .cfg-section .card-subtitle{
  margin-top:2px;
  font-size:11.7px;
  line-height:1.38;
}
#page-configuracion .cfg-section .form-grid{
  gap:8px 10px;
}
#page-configuracion .cfg-section .form-group{
  gap:5px;
}
#page-configuracion .cfg-section .cfg-help{
  margin-top:1px;
}
#page-configuracion .cfg-switch-row{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:9px 11px;
  border:1px solid var(--border);
  border-radius:12px;
  background:linear-gradient(180deg, rgba(59,130,246,.06), rgba(59,130,246,.025));
  font-size:12px;
  color:var(--text2);
}
html[data-theme="light"] #page-configuracion .cfg-switch-row{
  background:linear-gradient(180deg, rgba(37,99,235,.05), rgba(37,99,235,.025));
}
#page-configuracion .cfg-switch-row input{
  width:16px;
  height:16px;
  min-height:auto;
  flex:0 0 auto;
  margin-top:1px;
}
#page-configuracion .cfg-muted-text{
  color:var(--text3);
  font-size:11.5px;
}
#page-configuracion .cfg-input-sm{
  max-width:120px;
}

/* Métodos de pago */
#page-configuracion #cfg-sec-pagos .card{
  display:grid;
  gap:12px;
}
#page-configuracion #cfg-sec-pagos .table-wrap{
  border:1px solid var(--border);
  border-radius:14px;
  overflow:hidden;
  background:var(--bg2);
}
#page-configuracion #cfg-sec-pagos table thead th{
  font-size:11px;
  letter-spacing:.04em;
}
#page-configuracion #cfg-sec-pagos table tbody td{
  vertical-align:middle;
  padding-top:10px;
  padding-bottom:10px;
}
#page-configuracion #cfg-sec-pagos .cfg-save-row{
  justify-content:flex-end;
  padding-top:0;
}
#page-configuracion #cfg-sec-pagos .cfg-btn-wide{
  min-width:180px;
}

/* Impresión */
#page-configuracion #cfg-sec-impresion .cfg-print-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
#page-configuracion #cfg-sec-impresion .cfg-print-card{
  display:flex;
  flex-direction:column;
  gap:10px;
  padding:14px;
  border:1px solid var(--border);
  border-radius:14px;
  background:linear-gradient(180deg, rgba(15,23,42,.22), rgba(15,23,42,.08));
  min-height:100%;
}
html[data-theme="light"] #page-configuracion #cfg-sec-impresion .cfg-print-card{
  background:linear-gradient(180deg, rgba(37,99,235,.035), rgba(37,99,235,.015));
}
#page-configuracion #cfg-sec-impresion .cfg-print-title{
  font-size:14px;
  font-weight:850;
  color:var(--text1);
}
#page-configuracion #cfg-sec-impresion .cfg-print-text{
  font-size:11.8px;
  line-height:1.42;
  color:var(--text2);
}
#page-configuracion #cfg-sec-impresion .cfg-print-fields{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px 10px;
}
#page-configuracion #cfg-sec-impresion .cfg-print-fields.three{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
#page-configuracion #cfg-sec-impresion .cfg-print-actions{
  margin-top:auto;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
#page-configuracion #cfg-sec-impresion .cfg-print-status{
  margin-top:0;
  padding:9px 11px;
  border-radius:12px;
  border:1px solid var(--border);
  background:var(--bg3);
  font-size:11.7px;
  color:var(--text2);
}

/* Stock */
#page-configuracion #cfg-sec-stock .card{
  display:grid;
  gap:2px;
}
#page-configuracion #cfg-sec-stock .form-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
#page-configuracion #cfg-sec-stock .form-group{
  min-height:100%;
  padding:10px 11px;
  border:1px solid var(--border);
  border-radius:13px;
  background:linear-gradient(180deg, rgba(59,130,246,.045), rgba(59,130,246,.015));
}
html[data-theme="light"] #page-configuracion #cfg-sec-stock .form-group{
  background:linear-gradient(180deg, rgba(37,99,235,.045), rgba(37,99,235,.015));
}

/* Puntos */
#page-configuracion #cfg-sec-puntos .card{
  display:grid;
  gap:10px;
}
#page-configuracion #cfg-sec-puntos .cfg-puntos-grid{
  gap:8px 10px;
}
#page-configuracion #cfg-sec-puntos .cfg-puntos-grid .form-group{
  padding:10px 11px;
  border:1px solid var(--border);
  border-radius:13px;
  background:linear-gradient(180deg, rgba(250,204,21,.08), rgba(250,204,21,.03));
}
#page-configuracion #cfg-sec-puntos .cfg-puntos-preview{
  margin-top:0;
  padding:11px 12px;
  border-radius:13px;
  border:1px solid rgba(250,204,21,.22);
  background:linear-gradient(180deg, rgba(250,204,21,.08), rgba(250,204,21,.02));
}

/* Apariencia */
#page-configuracion #cfg-sec-apariencia .card{
  display:grid;
  gap:2px;
}
#page-configuracion #cfg-sec-apariencia .form-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
#page-configuracion #cfg-sec-apariencia .form-group{
  padding:10px 11px;
  border:1px solid var(--border);
  border-radius:13px;
  background:var(--bg2);
}

/* Permisos */
#page-configuracion #cfg-sec-permisos .card{
  display:grid;
  gap:6px;
}
#page-configuracion #cfg-sec-permisos .card-header{
  margin-bottom:6px;
}
#page-configuracion #cfg-sec-permisos #cfg-permisos-wrap{
  min-height:90px;
}
#page-configuracion .perm-role-card{
  border-radius:14px;
  border:1px solid var(--border);
  background:linear-gradient(180deg, rgba(59,130,246,.035), rgba(59,130,246,.015));
}
#page-configuracion .perm-module-row{
  border-radius:12px;
  background:var(--bg2);
}

/* Seguridad */
#page-configuracion #cfg-sec-seguridad .cfg-security-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
#page-configuracion #cfg-sec-seguridad .cfg-security-card{
  padding:14px;
  border-radius:14px;
  border:1px solid var(--border);
  background:linear-gradient(180deg, rgba(59,130,246,.04), rgba(59,130,246,.015));
}
#page-configuracion #cfg-sec-seguridad .cfg-security-title{
  font-size:14px;
  font-weight:850;
  color:var(--text1);
}
#page-configuracion #cfg-sec-seguridad .cfg-security-inputrow{
  margin-top:10px;
}
#page-configuracion #cfg-sec-seguridad #cfg-devices-wrap{
  margin-top:4px;
}
#page-configuracion #cfg-sec-seguridad .cfg-devices-summary{
  margin-bottom:8px;
}

/* Backup */
#page-configuracion #cfg-sec-backup .cfg-backup-body{
  gap:10px;
}
#page-configuracion #cfg-sec-backup .cfg-backup-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
#page-configuracion #cfg-sec-backup .cfg-backup-card,
#page-configuracion #cfg-sec-backup .cfg-danger-card{
  padding:14px;
  border-radius:14px;
}
#page-configuracion #cfg-sec-backup .cfg-backup-card{
  display:grid;
  gap:9px;
}
#page-configuracion #cfg-sec-backup .cfg-backup-title,
#page-configuracion #cfg-sec-backup .cfg-backup-title-strong,
#page-configuracion #cfg-sec-backup .cfg-danger-title{
  font-size:14px;
  font-weight:850;
  color:var(--text1);
}
#page-configuracion #cfg-sec-backup .cfg-backup-text,
#page-configuracion #cfg-sec-backup .cfg-danger-text{
  font-size:11.8px;
  line-height:1.45;
}
#page-configuracion #cfg-sec-backup .cfg-inline-actions{
  gap:8px;
}
#page-configuracion #cfg-sec-backup .cfg-log-box{
  margin-top:0;
}

@media (max-width: 1160px){
  #page-configuracion #cfg-sec-impresion .cfg-print-grid,
  #page-configuracion #cfg-sec-seguridad .cfg-security-grid,
  #page-configuracion #cfg-sec-backup .cfg-backup-grid{
    grid-template-columns:1fr;
  }
  #page-configuracion #cfg-sec-stock .form-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width: 860px){
  #page-configuracion #cfg-sec-pagos .table-wrap{
    overflow-x:auto;
  }
  #page-configuracion #cfg-sec-impresion .cfg-print-fields,
  #page-configuracion #cfg-sec-impresion .cfg-print-fields.three,
  #page-configuracion #cfg-sec-apariencia .form-grid,
  #page-configuracion #cfg-sec-stock .form-grid{
    grid-template-columns:1fr;
  }
}
@media (max-width: 720px){
  #page-configuracion .cfg-page-heading h2{
    font-size:19px;
  }
  #page-configuracion .cfg-section .card{
    padding:12px;
  }
  #page-configuracion .cfg-tabs .tab{
    font-size:12px;
  }
}


/* ============================================================
   CONFIGURACIÓN — mejora mobile 20260614
============================================================ */
@media (max-width: 640px){
  #page-configuracion .cfg-page-wrap{ gap:10px; }
  #page-configuracion .cfg-config-hero{ padding:2px 0 0; gap:10px; }
  #page-configuracion .cfg-page-kicker{ margin-bottom:4px; font-size:10px; }
  #page-configuracion .cfg-page-heading h2{ font-size:18px; line-height:1.05; }
  #page-configuracion .cfg-page-heading p{ margin-top:5px; font-size:11.5px; line-height:1.28; }
  #page-configuracion .cfg-top-actions{ width:100%; }
  #page-configuracion .cfg-save-all-btn{ width:100%; min-height:42px; border-radius:12px; font-size:15px; }
  #page-configuracion .cfg-tabs{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
    padding:7px;
    border-radius:14px;
    overflow:visible;
  }
  #page-configuracion .cfg-tabs .tab{
    min-width:0; width:100%; min-height:42px; padding:9px 8px;
    display:flex; align-items:center; justify-content:center; gap:6px;
    text-align:center; white-space:normal; line-height:1.12; font-size:11.5px; font-weight:850;
  }
  #page-configuracion .cfg-section .card{ padding:12px; border-radius:14px; }
  #page-configuracion .cfg-section .card-header{ margin-bottom:8px; padding-bottom:8px; }
  #page-configuracion .card-title{ font-size:15px; }
  #page-configuracion .card-subtitle{ font-size:11.5px; line-height:1.35; }
  #page-configuracion .cfg-business-grid,
  #page-configuracion .cfg-sales-grid,
  #page-configuracion #cfg-sec-apariencia .form-grid,
  #page-configuracion #cfg-sec-stock .form-grid,
  #page-configuracion #cfg-sec-puntos .cfg-puntos-grid,
  #page-configuracion #cfg-sec-impresion .cfg-print-fields,
  #page-configuracion #cfg-sec-impresion .cfg-print-fields.three{ grid-template-columns:1fr !important; }
  #page-configuracion .cfg-span-2,
  #page-configuracion .cfg-span-3{ grid-column:auto !important; }
  #page-configuracion .cfg-business-side-card{ display:grid; grid-template-columns:1fr; gap:10px; }
  #page-configuracion .cfg-logo-preview{ max-width:100%; height:82px; }
  #page-configuracion #cfg-sec-stock .form-group,
  #page-configuracion #cfg-sec-apariencia .form-group,
  #page-configuracion #cfg-sec-puntos .cfg-puntos-grid .form-group{ padding:9px 10px; }
  #page-configuracion #cfg-sec-impresion .cfg-print-card,
  #page-configuracion #cfg-sec-seguridad .cfg-security-card,
  #page-configuracion #cfg-sec-backup .cfg-backup-card,
  #page-configuracion #cfg-sec-backup .cfg-danger-card,
  #page-configuracion .perm-role-card{ padding:12px; }
  #page-configuracion #cfg-sec-impresion .cfg-print-actions,
  #page-configuracion #cfg-sec-backup .cfg-inline-actions,
  #page-configuracion #cfg-sec-backup .cfg-inline-actions-wrap,
  #page-configuracion .cfg-actions-end,
  #page-configuracion .cfg-save-row,
  #page-configuracion .cfg-security-inputrow{ display:grid; grid-template-columns:1fr; gap:8px; }
  #page-configuracion #cfg-sec-impresion .cfg-print-actions .btn,
  #page-configuracion #cfg-sec-backup .cfg-inline-actions .btn,
  #page-configuracion #cfg-sec-backup .cfg-inline-actions-wrap .btn,
  #page-configuracion .cfg-actions-end .btn,
  #page-configuracion .cfg-save-row .btn,
  #page-configuracion .cfg-security-inputrow .btn{ width:100%; }
  #page-configuracion #cfg-sec-pagos .table-wrap{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
  #page-configuracion #cfg-sec-pagos table{ min-width:620px; }
  #page-configuracion .perm-module-head{ gap:8px; }
  #page-configuracion .perm-module-title{ font-size:12px; }
  #page-configuracion .perm-line{ padding:8px 9px; align-items:flex-start; }
  #page-configuracion .perm-line span{ line-height:1.28; }
  #page-configuracion .cfg-log-box,
  #page-configuracion .cfg-log-box-large{ max-height:260px; }
}
@media (max-width: 420px){
  #page-configuracion .cfg-tabs{ grid-template-columns:1fr 1fr; }
  #page-configuracion .cfg-tabs .tab{ font-size:11px; min-height:40px; padding:8px 6px; }
  #page-configuracion .cfg-mini-pill{ font-size:10px; padding:4px 8px; }
}


/* Configuración > Ventas — ajuste visual puntual 20260614 */
#page-configuracion .cfg-sales-main-card .cfg-help,
#page-configuracion .cfg-sales-side-card .cfg-help{
  margin-top:2px;
}
#page-configuracion .cfg-sales-side-card .form-group{
  padding:10px 11px;
  border:1px solid var(--border);
  border-radius:13px;
  background:linear-gradient(180deg, rgba(59,130,246,.045), rgba(59,130,246,.015));
}
html[data-theme="light"] #page-configuracion .cfg-sales-side-card .form-group{
  background:linear-gradient(180deg, rgba(37,99,235,.045), rgba(37,99,235,.018));
}
#page-configuracion .cfg-sales-main-card .form-group{
  padding:10px 11px;
  border:1px solid var(--border);
  border-radius:13px;
  background:var(--bg2);
}
#page-configuracion .cfg-sales-rules-card .card-header{
  margin-bottom:8px;
}
#page-configuracion .cfg-sales-rules-card .cfg-rule-badge-wide{
  min-height:56px;
}
@media (max-width: 640px){
  #page-configuracion .cfg-sales-main-card .form-group,
  #page-configuracion .cfg-sales-side-card .form-group{
    padding:9px 10px;
  }
}


/* ============================================================
   CONFIGURACIÓN — pasada fina integral 20260614
============================================================ */
#page-configuracion .cfg-page-wrap{
  max-width:1200px;
  gap:12px;
}
#page-configuracion .cfg-config-hero{
  justify-content:space-between;
  align-items:flex-end;
  gap:12px;
  padding-top:2px;
}
#page-configuracion .cfg-page-heading{
  min-width:0;
}
#page-configuracion .cfg-page-heading h2{
  font-size:22px;
  line-height:1.04;
  letter-spacing:-.02em;
}
#page-configuracion .cfg-page-heading p{
  max-width:820px;
  line-height:1.32;
}
#page-configuracion .cfg-save-all-btn{
  min-height:38px;
  padding:8px 16px;
  border-radius:12px;
  font-weight:800;
}
#page-configuracion .cfg-tabs{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:7px;
  padding:10px;
  margin-bottom:4px;
  border:1px solid var(--border);
  border-radius:16px;
  background:linear-gradient(180deg, rgba(59,130,246,.05), rgba(59,130,246,.02));
}
html[data-theme="light"] #page-configuracion .cfg-tabs{
  background:linear-gradient(180deg, rgba(37,99,235,.045), rgba(37,99,235,.018));
}
#page-configuracion .cfg-tabs .tab{
  min-height:36px;
  padding:8px 12px;
  border-radius:12px;
  background:rgba(15,23,42,.24);
  border:1px solid transparent;
  font-size:12.5px;
  font-weight:800;
  transition:transform .15s ease, border-color .15s ease, background .15s ease;
}
html[data-theme="light"] #page-configuracion .cfg-tabs .tab{
  background:rgba(255,255,255,.7);
}
#page-configuracion .cfg-tabs .tab:hover{
  transform:translateY(-1px);
  border-color:rgba(59,130,246,.26);
}
#page-configuracion .cfg-tabs .tab.active{
  border-color:rgba(96,165,250,.35);
  box-shadow:inset 0 0 0 1px rgba(96,165,250,.14);
}
#page-configuracion .cfg-section{
  gap:12px;
}
#page-configuracion .cfg-section .card{
  padding:15px;
  border-radius:16px;
  border:1px solid var(--border);
  background:linear-gradient(180deg, rgba(15,23,42,.2), rgba(15,23,42,.08));
}
html[data-theme="light"] #page-configuracion .cfg-section .card{
  background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(248,250,252,.96));
}
#page-configuracion .cfg-section .card-header{
  margin-bottom:12px;
  padding-bottom:10px;
  border-bottom:1px solid var(--border2);
}
#page-configuracion .cfg-section .card-title{
  font-size:14.5px;
  line-height:1.12;
}
#page-configuracion .cfg-section .card-subtitle{
  margin-top:3px;
  font-size:11.6px;
  line-height:1.38;
}
#page-configuracion .cfg-section .form-grid{
  gap:10px 11px;
}
#page-configuracion .cfg-section .form-group{
  gap:5px;
}
#page-configuracion .cfg-section input,
#page-configuracion .cfg-section select,
#page-configuracion .cfg-section textarea{
  border-radius:12px;
}
#page-configuracion .cfg-section textarea{
  min-height:78px;
}
#page-configuracion .cfg-business-note,
#page-configuracion .cfg-actions-sticky-note,
#page-configuracion .cfg-print-status,
#page-configuracion .cfg-puntos-preview{
  border-radius:13px;
}
#page-configuracion .cfg-actions-end,
#page-configuracion .cfg-save-row{
  padding-top:2px;
}
#page-configuracion .cfg-actions-end .btn,
#page-configuracion .cfg-save-row .btn,
#page-configuracion .cfg-top-actions .btn{
  min-height:38px;
}
#page-configuracion #cfg-sec-impresion .cfg-print-card,
#page-configuracion #cfg-sec-seguridad .cfg-security-card,
#page-configuracion #cfg-sec-backup .cfg-backup-card,
#page-configuracion #cfg-sec-backup .cfg-danger-card,
#page-configuracion .perm-role-card{
  border-radius:15px;
}
#page-configuracion #cfg-sec-pagos .table-wrap,
#page-configuracion .cfg-log-box,
#page-configuracion .cfg-log-box-large{
  border-radius:14px;
}
#page-configuracion #cfg-sec-pagos table thead th{
  white-space:nowrap;
}
#page-configuracion .perm-module-row{
  padding:10px 11px;
}
#page-configuracion .perm-line{
  border-radius:10px;
}
#page-configuracion #cfg-sec-backup .cfg-inline-actions,
#page-configuracion #cfg-sec-backup .cfg-inline-actions-wrap,
#page-configuracion #cfg-sec-impresion .cfg-print-actions{
  gap:9px;
}

@media (max-width: 900px){
  #page-configuracion .cfg-config-hero{
    align-items:flex-start;
    flex-direction:column;
  }
  #page-configuracion .cfg-top-actions{
    width:100%;
    justify-content:flex-start;
  }
}
@media (max-width: 640px){
  #page-configuracion .cfg-page-wrap{
    gap:10px;
  }
  #page-configuracion .cfg-tabs{
    gap:6px;
    padding:8px;
  }
  #page-configuracion .cfg-section{
    gap:10px;
  }
  #page-configuracion .cfg-section .card{
    padding:12px;
    border-radius:14px;
  }
  #page-configuracion .cfg-section .card-title{
    font-size:14px;
  }
}


/* Configuración > Seguridad — pasada final 20260614 */
#page-configuracion #cfg-sec-seguridad .card-header .btn{
  min-height:36px;
  white-space:nowrap;
}
#page-configuracion #cfg-sec-seguridad .cfg-security-text,
#page-configuracion #cfg-sec-seguridad .cfg-security-hint{
  font-size:11.8px;
  line-height:1.42;
  color:var(--text2);
}
#page-configuracion #cfg-sec-seguridad .cfg-security-inputrow{
  display:flex;
  align-items:center;
  gap:10px;
}
#page-configuracion #cfg-sec-seguridad .cfg-security-inputrow input{
  flex:1 1 auto;
}
#page-configuracion #cfg-sec-seguridad .cfg-security-inputrow .btn{
  flex:0 0 auto;
  min-width:140px;
  white-space:nowrap;
}
#page-configuracion #cfg-sec-seguridad .cfg-devices-summary{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:stretch;
}
#page-configuracion #cfg-sec-seguridad .cfg-devices-table .row-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  justify-content:flex-start;
  min-width:270px;
}
#page-configuracion #cfg-sec-seguridad .cfg-devices-table .row-actions .btn{
  margin:0;
}
#page-configuracion #cfg-sec-seguridad .cfg-devices-table td:last-child{
  min-width:290px;
}
#page-configuracion #cfg-sec-seguridad .cfg-devices-table .device-name{
  font-weight:800;
  color:var(--text1);
}
#page-configuracion #cfg-sec-seguridad .cfg-devices-table .device-meta{
  margin-top:2px;
  font-size:10.8px;
  color:var(--text3);
}
@media (max-width: 900px){
  #page-configuracion #cfg-sec-seguridad .cfg-devices-table td:last-child{
    min-width:250px;
  }
}
@media (max-width: 640px){
  #page-configuracion #cfg-sec-seguridad .cfg-security-inputrow{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
  }
  #page-configuracion #cfg-sec-seguridad .cfg-security-inputrow .btn{
    width:100%;
    min-width:0;
  }
  #page-configuracion #cfg-sec-seguridad .card-header{
    gap:8px;
  }
  #page-configuracion #cfg-sec-seguridad .card-header .btn{
    width:100%;
  }
  #page-configuracion #cfg-sec-seguridad .cfg-devices-table td:last-child{
    min-width:220px;
  }
  #page-configuracion #cfg-sec-seguridad .cfg-devices-table .row-actions{
    min-width:0;
    gap:6px;
  }
}

/* ============================================================
   Reportes / Estadísticas — Rendimiento comercial 20260614
============================================================ */
#page-estadisticas .rep-rend-card{
  margin-bottom:8px;
  overflow:visible !important;
}
#page-estadisticas .rep-rend-head{
  align-items:flex-start;
}
#page-estadisticas .rep-rend-filtros{
  display:grid;
  grid-template-columns:1fr 1.1fr 1.1fr 1.1fr minmax(220px,1.8fr) auto;
  gap:8px;
  align-items:end;
  margin-bottom:10px;
}
#page-estadisticas .rep-rend-filtros .form-group{
  gap:4px;
}
#page-estadisticas .rep-rend-filtros label{
  font-size:10px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--text3);
  font-weight:850;
}
#page-estadisticas .rep-rend-filtros select{
  min-height:34px;
  padding:7px 9px;
  font-size:12px;
  border-radius:10px;
}
#page-estadisticas .rep-rend-actions{
  display:flex;
  align-items:flex-end;
}
#page-estadisticas .rep-rend-actions .btn{
  min-height:34px;
  white-space:nowrap;
}
#page-estadisticas .rep-rend-kpis{
  grid-template-columns:repeat(5,minmax(0,1fr)) !important;
  gap:8px;
  margin-bottom:10px !important;
}
#page-estadisticas .rep-rend-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
#page-estadisticas .rep-rend-box{
  min-width:0;
  border:1px solid var(--border);
  border-radius:14px;
  background:rgba(15,23,42,.16);
  padding:10px;
}
html[data-theme="light"] #page-estadisticas .rep-rend-box{
  background:rgba(248,250,252,.9);
}
#page-estadisticas .rep-rend-title{
  font-size:12px;
  font-weight:900;
  color:var(--text1);
  margin-bottom:8px;
}
#page-estadisticas .rep-rend-table-wrap{
  border-radius:12px;
  border:1px solid var(--border2);
  overflow:auto;
  max-height:285px;
}
#page-estadisticas .rep-rend-table{
  width:100%;
  border-collapse:collapse;
  min-width:430px;
}
#page-estadisticas .rep-rend-table th,
#page-estadisticas .rep-rend-table td{
  padding:7px 8px;
  font-size:11.3px;
  border-bottom:1px solid var(--border2);
  vertical-align:middle;
}
#page-estadisticas .rep-rend-table th{
  position:sticky;
  top:0;
  z-index:1;
  background:var(--bg2);
  color:var(--text3);
  font-size:10px;
  letter-spacing:.06em;
  text-transform:uppercase;
  text-align:left;
}
#page-estadisticas .rep-rend-table tr:last-child td{ border-bottom:0; }
#page-estadisticas .rep-rend-table td.num,
#page-estadisticas .rep-rend-table th.num{
  text-align:right;
  white-space:nowrap;
}
#page-estadisticas .rep-rend-table td.strong{
  font-weight:850;
  color:var(--text1);
}
#page-estadisticas .rep-rend-card.is-loading{
  opacity:.78;
}
@media (max-width: 1180px){
  #page-estadisticas .rep-rend-filtros{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  #page-estadisticas .rep-rend-actions .btn{ width:100%; }
  #page-estadisticas .rep-rend-kpis{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  }
}
@media (max-width: 900px){
  #page-estadisticas .rep-rend-grid{
    grid-template-columns:1fr;
  }
  #page-estadisticas .rep-rend-filtros{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  #page-estadisticas .rep-rend-producto{
    grid-column:span 2;
  }
  #page-estadisticas .rep-rend-kpis{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}
@media (max-width: 620px){
  #page-estadisticas .rep-rend-filtros{
    grid-template-columns:1fr;
  }
  #page-estadisticas .rep-rend-producto{
    grid-column:auto;
  }
  #page-estadisticas .rep-rend-kpis{
    grid-template-columns:1fr !important;
  }
  #page-estadisticas .rep-rend-table-wrap{
    max-height:340px;
  }
}


/* Reportes / Estadísticas — Rendimiento comercial pasada 2 */
#page-estadisticas .rep-rend-head-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
#page-estadisticas .rep-rend-resumen{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 12px;
  border:1px solid rgba(59,130,246,.20);
  border-radius:14px;
  background:linear-gradient(180deg, rgba(59,130,246,.08), rgba(59,130,246,.025));
  margin-bottom:10px;
}
#page-estadisticas .rep-rend-resumen-main{
  display:grid;
  gap:2px;
  min-width:0;
}
#page-estadisticas .rep-rend-resumen-main strong{
  font-size:13px;
  color:var(--text1);
  line-height:1.2;
}
#page-estadisticas .rep-rend-resumen-main span{
  font-size:11.5px;
  color:var(--text3);
  line-height:1.35;
}
#page-estadisticas .rep-rend-filter-chips{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  justify-content:flex-end;
  flex:0 0 auto;
}
#page-estadisticas .rep-rend-filter-chips span{
  padding:5px 8px;
  border-radius:999px;
  border:1px solid var(--border);
  background:var(--bg2);
  color:var(--text2);
  font-size:10.5px;
  font-weight:800;
  white-space:nowrap;
}
#page-estadisticas .rep-rend-topgrid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  margin-bottom:10px;
}
#page-estadisticas .rep-rend-top-card{
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:10px 11px;
  border-radius:14px;
  border:1px solid var(--border);
  background:var(--bg2);
}
#page-estadisticas .rep-rend-top-card div{
  display:grid;
  gap:2px;
  min-width:0;
}
#page-estadisticas .rep-rend-top-card span{
  color:var(--text3);
  font-size:10px;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.06em;
}
#page-estadisticas .rep-rend-top-card strong{
  color:var(--text1);
  font-size:12.5px;
  line-height:1.15;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
#page-estadisticas .rep-rend-top-card small{
  color:var(--text2);
  font-size:11px;
  line-height:1.25;
}
#page-estadisticas .rep-rend-top-card b{
  font-size:18px;
  opacity:.9;
}
@media (max-width: 1200px){
  #page-estadisticas .rep-rend-topgrid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 860px){
  #page-estadisticas .rep-rend-resumen{
    align-items:flex-start;
    flex-direction:column;
  }
  #page-estadisticas .rep-rend-filter-chips{
    justify-content:flex-start;
  }
  #page-estadisticas .rep-rend-head-actions{
    width:100%;
    justify-content:flex-start;
  }
}
@media (max-width: 620px){
  #page-estadisticas .rep-rend-topgrid{ grid-template-columns:1fr; }
  #page-estadisticas .rep-rend-head-actions .btn{ width:100%; }
}


/* Reportes / Estadísticas — Rendimiento comercial pasada 3 */
#page-estadisticas .rep-rend-insights{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  margin-bottom:10px;
}
#page-estadisticas .rep-rend-insight{
  min-width:0;
  display:flex;
  gap:9px;
  align-items:flex-start;
  padding:10px 11px;
  border:1px solid var(--border);
  border-radius:14px;
  background:linear-gradient(180deg, rgba(34,197,94,.07), rgba(34,197,94,.02));
}
html[data-theme="light"] #page-estadisticas .rep-rend-insight{
  background:linear-gradient(180deg, rgba(22,163,74,.055), rgba(22,163,74,.018));
}
#page-estadisticas .rep-rend-insight b{
  font-size:17px;
  line-height:1;
  flex:0 0 auto;
}
#page-estadisticas .rep-rend-insight div{
  display:grid;
  gap:2px;
  min-width:0;
}
#page-estadisticas .rep-rend-insight strong{
  font-size:12px;
  color:var(--text1);
  line-height:1.18;
}
#page-estadisticas .rep-rend-insight span{
  font-size:11px;
  color:var(--text2);
  line-height:1.34;
}
#page-estadisticas .rep-rend-matrix-box{
  border:1px solid var(--border);
  border-radius:14px;
  background:rgba(15,23,42,.16);
  padding:10px;
  margin-bottom:8px;
}
html[data-theme="light"] #page-estadisticas .rep-rend-matrix-box{
  background:rgba(248,250,252,.92);
}
#page-estadisticas .rep-rend-matrix-help{
  margin:-4px 0 8px;
  color:var(--text3);
  font-size:11.2px;
  line-height:1.35;
}
#page-estadisticas .rep-rend-matrix-wrap{
  max-height:360px;
  border-radius:12px;
}
#page-estadisticas .rep-rend-matrix{
  min-width:760px;
}
#page-estadisticas .rep-rend-matrix th:first-child,
#page-estadisticas .rep-rend-matrix td:first-child{
  position:sticky;
  left:0;
  z-index:2;
  background:var(--bg2);
}
#page-estadisticas .rep-rend-matrix thead th:first-child{
  z-index:4;
}
#page-estadisticas .rep-rend-matrix tfoot th{
  position:sticky;
  bottom:0;
  background:var(--bg2);
  border-top:1px solid var(--border);
  color:var(--text1);
}
#page-estadisticas .rep-rend-matrix-name{
  font-weight:850;
  color:var(--text1);
  white-space:nowrap;
}
#page-estadisticas .rep-rend-matrix-hit strong{
  display:block;
  color:var(--text1);
  font-size:11.5px;
  line-height:1.1;
}
#page-estadisticas .rep-rend-matrix-hit small{
  display:block;
  color:var(--text3);
  font-size:9.8px;
  line-height:1.15;
  margin-top:2px;
}
#page-estadisticas .rep-rend-matrix-empty{
  color:var(--text3);
  opacity:.55;
}
@media (max-width: 1020px){
  #page-estadisticas .rep-rend-insights{
    grid-template-columns:1fr;
  }
}


/* Reportes / Estadísticas — Rendimiento comercial pasada 4 */
.rep-rend-matrix-hit{
  padding:4px 5px !important;
}
.rep-rend-matrix-cell{
  width:100%;
  min-width:74px;
  border:1px solid rgba(59,130,246,.22);
  border-radius:10px;
  background:linear-gradient(180deg, rgba(59,130,246,.12), rgba(59,130,246,.04));
  color:var(--text1);
  padding:7px 8px;
  display:grid;
  gap:2px;
  text-align:right;
  cursor:pointer;
}
.rep-rend-matrix-cell:hover{
  border-color:rgba(96,165,250,.55);
  background:linear-gradient(180deg, rgba(59,130,246,.2), rgba(59,130,246,.07));
}
.rep-rend-matrix-cell strong{
  font-size:13px;
  line-height:1;
}
.rep-rend-matrix-cell small{
  font-size:10.5px;
  color:var(--text3);
  line-height:1.1;
}
.rep-rend-detalle-modal{
  width:min(1080px, calc(100vw - 28px));
  max-height:88vh;
}
.rep-rend-det-sub{
  margin-top:3px;
  color:var(--text3);
  font-size:12px;
  line-height:1.35;
}
.rep-rend-det-body{
  display:grid;
  gap:10px;
  min-height:0;
}
.rep-rend-det-kpis{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}
.rep-rend-det-kpis span{
  border:1px solid var(--border);
  background:var(--bg2);
  border-radius:13px;
  padding:9px 11px;
  display:grid;
  gap:2px;
}
.rep-rend-det-kpis b{
  color:var(--text1);
  font-size:16px;
  line-height:1.1;
}
.rep-rend-det-kpis small{
  color:var(--text3);
  font-size:11px;
}
.rep-rend-det-table{
  max-height:52vh;
  overflow:auto;
  border:1px solid var(--border);
  border-radius:14px;
}
.rep-rend-det-table table{
  min-width:920px;
}
.rep-rend-det-table th{
  position:sticky;
  top:0;
  z-index:2;
  background:var(--bg2);
}
.rep-rend-det-table td strong{
  display:block;
  color:var(--text1);
  line-height:1.15;
}
.rep-rend-det-table td small{
  display:block;
  color:var(--text3);
  font-size:10.5px;
  line-height:1.2;
  margin-top:2px;
}
.rep-rend-det-note{
  padding:9px 11px;
  border:1px solid rgba(245,158,11,.25);
  background:rgba(245,158,11,.08);
  color:var(--text2);
  border-radius:12px;
  font-size:12px;
}
@media (max-width: 720px){
  .rep-rend-detalle-modal{
    width:calc(100vw - 16px);
    max-height:92vh;
  }
  .rep-rend-det-kpis{
    grid-template-columns:1fr;
  }
  .rep-rend-det-table{
    max-height:58vh;
  }
}


/* Reportes / Estadísticas — Rendimiento comercial cierre visual 20260614 */
#page-estadisticas .rep-rend-matrix-help::after{
  content:'  Tocá Ver detalle para abrir operaciones.';
  color:var(--primary);
  font-weight:800;
}
#page-estadisticas .rep-rend-table tbody tr:hover td{
  background:rgba(59,130,246,.055);
}
#page-estadisticas .rep-rend-click-btn{
  border-color:rgba(59,130,246,.38) !important;
  background:linear-gradient(180deg, rgba(59,130,246,.18), rgba(59,130,246,.08)) !important;
  color:var(--text1) !important;
  font-weight:850;
  white-space:nowrap;
  box-shadow:0 8px 18px rgba(37,99,235,.08);
}
#page-estadisticas .rep-rend-click-btn:hover{
  transform:translateY(-1px);
  border-color:rgba(96,165,250,.62) !important;
}
#page-estadisticas .rep-rend-matrix-cell{
  position:relative;
  border-color:rgba(59,130,246,.36);
  box-shadow:inset 0 0 0 1px rgba(96,165,250,.08);
}
#page-estadisticas .rep-rend-matrix-cell em{
  display:block;
  margin-top:3px;
  font-style:normal;
  font-size:9px;
  line-height:1;
  color:var(--primary);
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
  opacity:.92;
}
#page-estadisticas .rep-rend-matrix-cell:hover,
#page-estadisticas .rep-rend-matrix-cell:focus-visible{
  transform:translateY(-1px);
  outline:none;
  border-color:rgba(96,165,250,.72);
  box-shadow:0 10px 22px rgba(37,99,235,.14), inset 0 0 0 1px rgba(96,165,250,.18);
}
.rep-rend-det-overlay{
  backdrop-filter:blur(7px);
}
.rep-rend-detalle-modal{
  width:min(980px, calc(100vw - 28px));
  max-height:86vh;
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
.rep-rend-detalle-modal .modal-header{
  flex:0 0 auto;
  padding-bottom:10px;
  border-bottom:1px solid var(--border2);
}
.rep-rend-detalle-modal .modal-footer{
  flex:0 0 auto;
  padding-top:10px;
  border-top:1px solid var(--border2);
}
.rep-rend-det-sub{
  font-size:11.8px;
}
.rep-rend-det-body{
  overflow:hidden;
  padding-top:10px;
}
.rep-rend-det-context{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}
.rep-rend-det-context span{
  min-width:0;
  border:1px solid var(--border);
  background:var(--bg2);
  border-radius:12px;
  padding:8px 10px;
  display:grid;
  gap:2px;
}
.rep-rend-det-context small,
.rep-rend-det-list-head span{
  color:var(--text3);
  font-size:10.5px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.055em;
}
.rep-rend-det-context strong{
  color:var(--text1);
  font-size:12.5px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.rep-rend-det-kpis{
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.rep-rend-det-list-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:0 2px;
}
.rep-rend-det-list-head strong{
  color:var(--text1);
  font-size:13px;
}
.rep-rend-det-table{
  max-height:42vh;
  overflow:auto;
}
.rep-rend-det-table table{
  min-width:760px;
  width:100%;
  border-collapse:collapse;
}
.rep-rend-det-table th,
.rep-rend-det-table td{
  padding:7px 8px;
  font-size:11.2px;
  border-bottom:1px solid var(--border2);
  vertical-align:middle;
}
.rep-rend-det-table th{
  font-size:10px;
  color:var(--text3);
  letter-spacing:.055em;
  text-transform:uppercase;
}
.rep-rend-det-table tr:hover td{
  background:rgba(59,130,246,.055);
}
.rep-rend-det-table td strong{
  font-size:11.7px;
}
.rep-rend-det-table td small{
  font-size:10.2px;
}
.rep-rend-det-table td.num,
.rep-rend-det-table th.num{
  text-align:right;
  white-space:nowrap;
}
.rep-rend-det-footer .btn{
  min-width:110px;
}
@media (max-width: 760px){
  .rep-rend-detalle-modal{
    width:calc(100vw - 14px);
    max-height:92vh;
  }
  .rep-rend-det-context,
  .rep-rend-det-kpis{
    grid-template-columns:1fr 1fr;
  }
  .rep-rend-det-list-head{
    align-items:flex-start;
    flex-direction:column;
  }
  .rep-rend-det-table{
    max-height:48vh;
  }
}
@media (max-width: 520px){
  .rep-rend-det-context,
  .rep-rend-det-kpis{
    grid-template-columns:1fr;
  }
}


/* Reportes / Estadísticas — Rendimiento comercial popup limpio 20260614 */
#page-estadisticas .rep-rend-topgrid:empty{
  display:none;
}
#page-estadisticas .rep-rend-insights{
  grid-template-columns:minmax(0, 520px);
  margin-top:8px;
}
#page-estadisticas .rep-rend-insight{
  min-height:58px;
}
.rep-rend-detalle-modal{
  width:min(760px, calc(100vw - 28px));
  max-height:84vh;
  overflow:hidden;
}
.rep-rend-detalle-modal .modal-header{
  padding-bottom:10px;
}
.rep-rend-detalle-modal .modal-title{
  font-size:18px;
  line-height:1.12;
}
.rep-rend-det-sub{
  margin-top:4px;
  color:var(--text3);
  font-size:12px;
}
.rep-rend-det-body{
  display:grid;
  gap:10px;
  overflow:hidden;
  min-height:0;
}
.rep-rend-det-context{
  display:none !important;
}
.rep-rend-det-kpis-simple,
.rep-rend-det-kpis{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
}
.rep-rend-det-kpis-simple span,
.rep-rend-det-kpis span{
  min-width:0;
  padding:9px 10px;
  border-radius:12px;
}
.rep-rend-det-kpis-simple b,
.rep-rend-det-kpis b{
  font-size:15.5px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.rep-rend-det-kpis-simple small,
.rep-rend-det-kpis small{
  font-size:10.8px;
  line-height:1.15;
}
.rep-rend-det-list-head{
  margin-top:0;
  padding:0 1px;
}
.rep-rend-det-list-head strong{
  font-size:13px;
}
.rep-rend-det-list-head span{
  font-size:10.5px;
  white-space:nowrap;
}
.rep-rend-det-table-simple,
.rep-rend-det-table{
  max-height:43vh;
  overflow-y:auto;
  overflow-x:hidden;
  border-radius:13px;
}
.rep-rend-det-table-simple table,
.rep-rend-det-table table{
  min-width:0 !important;
  width:100%;
  table-layout:fixed;
}
.rep-rend-det-table-simple th,
.rep-rend-det-table-simple td,
.rep-rend-det-table th,
.rep-rend-det-table td{
  padding:8px 9px;
  font-size:11.2px;
  white-space:normal;
  word-break:break-word;
}
.rep-rend-det-table-simple th:nth-child(1),
.rep-rend-det-table-simple td:nth-child(1){ width:18%; }
.rep-rend-det-table-simple th:nth-child(2),
.rep-rend-det-table-simple td:nth-child(2){ width:34%; }
.rep-rend-det-table-simple th:nth-child(3),
.rep-rend-det-table-simple td:nth-child(3){ width:25%; }
.rep-rend-det-table-simple th:nth-child(4),
.rep-rend-det-table-simple td:nth-child(4){ width:9%; }
.rep-rend-det-table-simple th:nth-child(5),
.rep-rend-det-table-simple td:nth-child(5){ width:14%; }
.rep-rend-det-table-simple td small,
.rep-rend-det-table td small{
  opacity:.82;
}
.rep-rend-det-footer{
  justify-content:flex-end;
}
@media (max-width: 760px){
  .rep-rend-detalle-modal{
    width:calc(100vw - 14px);
    max-height:92vh;
  }
  .rep-rend-det-kpis-simple,
  .rep-rend-det-kpis{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .rep-rend-det-table-simple th:nth-child(1),
  .rep-rend-det-table-simple td:nth-child(1){ width:22%; }
  .rep-rend-det-table-simple th:nth-child(2),
  .rep-rend-det-table-simple td:nth-child(2){ width:36%; }
  .rep-rend-det-table-simple th:nth-child(3),
  .rep-rend-det-table-simple td:nth-child(3){ width:24%; }
  .rep-rend-det-table-simple th:nth-child(4),
  .rep-rend-det-table-simple td:nth-child(4){ width:8%; }
  .rep-rend-det-table-simple th:nth-child(5),
  .rep-rend-det-table-simple td:nth-child(5){ width:10%; }
}
@media (max-width: 520px){
  .rep-rend-det-list-head{
    display:grid;
    gap:4px;
  }
  .rep-rend-det-table-simple th,
  .rep-rend-det-table-simple td{
    padding:7px 6px;
    font-size:10.5px;
  }
  .rep-rend-det-table-simple td small{
    display:none;
  }
}


/* Estadísticas — Rendimiento comercial como pestaña propia 20260614 */
#page-estadisticas .est-rendimiento-panel{
  display:grid;
  gap:12px;
}
#page-estadisticas .est-rendimiento-panel.is-hidden{
  display:none;
}
#page-estadisticas .est-rend-hero{
  margin-bottom:0;
}
#page-estadisticas .est-rendimiento-panel .rep-rend-card{
  margin-top:0;
}
#page-estadisticas .est-rendimiento-panel .rep-rend-head{
  align-items:flex-start;
}
#page-estadisticas .est-module-tabs .tab[data-est-tab="rendimiento"].active{
  border-color:rgba(34,211,238,.38);
  background:rgba(34,211,238,.12);
}
@media (max-width: 760px){
  #page-estadisticas .est-module-tabs{
    display:grid;
    grid-template-columns:1fr;
  }
  #page-estadisticas .est-module-tabs .tab{
    justify-content:center;
  }
}


/* ============================================================
   SIDEBAR — compacta escritorio + ocultable mobile 20260614
============================================================ */
:root{ --sidebar-compact: 74px; }
.sidebar-toggle-btn,
.mobile-sidebar-btn{
  border:1px solid var(--border);
  background:rgba(255,255,255,.04);
  color:var(--text2);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:background .15s, color .15s, border-color .15s, transform .15s;
}
.sidebar-toggle-btn:hover,
.mobile-sidebar-btn:hover{
  background:rgba(79,142,247,.14);
  color:var(--text);
  border-color:rgba(79,142,247,.28);
}
.sidebar-toggle-btn{
  margin-left:auto;
  width:32px;
  height:32px;
  border-radius:10px;
  flex:0 0 auto;
  font-size:15px;
}
.mobile-sidebar-btn{
  display:none;
  width:36px;
  height:36px;
  border-radius:11px;
  font-size:17px;
  flex:0 0 auto;
}
.sidebar-backdrop{
  display:none;
  position:fixed;
  inset:0;
  background:rgba(2,6,23,.58);
  backdrop-filter:blur(5px);
  z-index:95;
}
#sidebar,
#main{
  transition:width .18s ease, margin-left .18s ease, transform .18s ease;
}
body.sidebar-compact #sidebar{
  width:var(--sidebar-compact);
}
body.sidebar-compact #main{
  margin-left:var(--sidebar-compact);
}
body.sidebar-compact .sidebar-logo{
  padding:16px 10px 14px;
  justify-content:center;
  gap:0;
}
body.sidebar-compact .sidebar-logo-img,
body.sidebar-compact .sidebar-brand-text,
body.sidebar-compact .nav-label,
body.sidebar-compact .nav-item > span:not(.nav-icon):not(.nav-badge),
body.sidebar-compact .user-card-info,
body.sidebar-compact .btn-logout{
  display:none !important;
}
body.sidebar-compact .sidebar-toggle-btn{
  position:absolute;
  right:8px;
  top:8px;
  width:26px;
  height:26px;
  font-size:13px;
  opacity:.9;
}
body.sidebar-compact .logo-icon{
  width:38px;
  height:38px;
}
body.sidebar-compact .sidebar-nav{
  padding:12px 8px 14px;
}
body.sidebar-compact .nav-section{
  margin-bottom:8px;
}
body.sidebar-compact .nav-item{
  justify-content:center;
  min-height:42px;
  padding:0;
  margin-bottom:6px;
  position:relative;
}
body.sidebar-compact .nav-icon{
  width:30px;
  height:30px;
}
body.sidebar-compact .nav-badge{
  position:absolute;
  right:4px;
  top:4px;
  min-width:18px;
  height:18px;
  padding:0 5px;
  font-size:9px;
}
body.sidebar-compact .sidebar-footer{
  padding:10px 8px;
}
body.sidebar-compact .user-card{
  justify-content:center;
  padding:8px;
  border-radius:12px;
}
body.sidebar-compact .avatar{
  width:34px;
  height:34px;
}

@media (max-width: 860px){
  .mobile-sidebar-btn{ display:inline-flex; }
  .sidebar-toggle-btn{ display:inline-flex; }
  #sidebar{
    position:fixed;
    top:0;
    left:0;
    width:min(86vw, 310px);
    height:100vh;
    max-height:100vh;
    transform:translateX(-106%);
    border-right:1px solid var(--border);
    border-bottom:0;
    box-shadow:18px 0 44px rgba(0,0,0,.34);
    z-index:130;
  }
  body.sidebar-mobile-open #sidebar{
    transform:translateX(0);
  }
  body.sidebar-mobile-open .sidebar-backdrop{
    display:block;
  }
  .sidebar-logo{
    padding:16px 14px 14px;
    border-bottom:1px solid var(--border);
  }
  .sidebar-nav{
    display:block;
    padding:12px 10px 16px;
    overflow-y:auto;
    overflow-x:hidden;
    scroll-snap-type:none;
  }
  .sidebar-nav::-webkit-scrollbar{ width:4px; height:4px; }
  .nav-section{
    display:block;
    margin-bottom:14px;
  }
  .nav-label{
    display:block;
    padding:0 10px 7px;
  }
  .nav-item{
    min-height:42px;
    padding:0 11px;
    margin-bottom:4px;
    gap:10px;
    font-size:13px;
    scroll-snap-align:none;
  }
  .nav-item span:not(.nav-icon){ display:inline-flex; }
  .nav-badge{ margin-left:auto; }
  .nav-icon{
    width:28px;
    height:28px;
    border-radius:9px;
    font-size:14px;
  }
  .sidebar-footer{
    display:block;
    padding:12px;
  }
  .user-card{ display:flex; }
  .btn-logout{ display:block; }
  #main{
    margin-left:0;
  }
  body.sidebar-compact #main{
    margin-left:0;
  }
  body.sidebar-compact #sidebar{
    width:min(86vw, 310px);
  }
  body.sidebar-compact .sidebar-brand-text,
  body.sidebar-compact .nav-label,
  body.sidebar-compact .nav-item > span:not(.nav-icon):not(.nav-badge),
  body.sidebar-compact .user-card-info,
  body.sidebar-compact .btn-logout{
    display:block !important;
  }
  body.sidebar-compact .nav-badge{ display:inline-flex !important; }
  body.sidebar-compact .nav-item{ justify-content:flex-start; padding:0 11px; }
  body.sidebar-compact .sidebar-logo{ padding:16px 14px 14px; justify-content:flex-start; gap:12px; }
  body.sidebar-compact .sidebar-toggle-btn{ position:static; width:32px; height:32px; margin-left:auto; }
}


/* Sidebar compacta — ajuste final de botón para que no se superponga 20260614 */
body.sidebar-compact .sidebar-logo{
  min-height:54px;
  height:54px;
  padding:9px 0 8px;
  justify-content:center;
  align-items:center;
  position:relative;
  border-bottom:1px solid var(--border);
}
body.sidebar-compact .logo-icon{
  display:none !important;
}
body.sidebar-compact .sidebar-toggle-btn{
  position:static;
  right:auto;
  top:auto;
  width:34px;
  height:34px;
  margin:0 auto;
  border-radius:12px;
  font-size:15px;
  opacity:1;
  background:rgba(255,255,255,.055);
}
body.sidebar-compact .sidebar-nav{
  padding-top:12px;
}
@media (max-width: 860px){
  body.sidebar-compact .logo-icon{
    display:flex !important;
  }
}


/* Sidebar desktop — ícono flecha para compactar/expandir 20260614 */
@media (min-width: 861px){
  .sidebar-toggle-btn{
    font-size:22px;
    line-height:1;
    font-weight:900;
  }
  body.sidebar-compact .sidebar-toggle-btn{
    font-size:22px;
  }
}


/* Sidebar desktop — flechas dobles centradas 20260614 */
.sidebar-toggle-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.sidebar-toggle-icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
  line-height:1;
  font-family:Arial, Helvetica, sans-serif;
  font-weight:900;
  transform:translateY(-1px);
  pointer-events:none;
}
@media (min-width: 861px){
  .sidebar-toggle-btn{
    font-size:20px;
    letter-spacing:-.08em;
  }
  body.sidebar-compact .sidebar-toggle-btn{
    font-size:20px;
  }
  .sidebar-toggle-btn .sidebar-toggle-icon{
    padding-right:1px;
  }
  body.sidebar-compact .sidebar-toggle-btn .sidebar-toggle-icon{
    padding-left:1px;
    padding-right:0;
  }
}
@media (max-width: 860px){
  .sidebar-toggle-btn .sidebar-toggle-icon{
    font-size:18px;
    letter-spacing:0;
    transform:translateY(-1px);
  }
}


/* ============================================================
   TOPBAR + SIDEBAR — alineación final 20260614
============================================================ */
#sidebar .sidebar-logo{
  min-height:var(--topbar);
  height:var(--topbar);
  padding:0 18px;
  border-bottom:1px solid var(--border);
}
body.sidebar-compact .sidebar-logo{
  min-height:var(--topbar);
  height:var(--topbar);
  padding:0;
  border-bottom:1px solid var(--border);
}
body.sidebar-compact .sidebar-toggle-btn{
  width:36px;
  height:36px;
  border-radius:13px;
}
.topbar{
  min-height:var(--topbar);
  height:var(--topbar);
  border-bottom:1px solid var(--border);
}
.topbar-right{
  gap:10px;
  align-items:center;
}
.notif-btn,
.topbar-theme-pill,
.topbar-status-pill,
.topbar-date-pill{
  height:38px;
  min-height:38px;
  padding:0 14px;
  border-radius:999px;
  border-color:var(--border);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1;
}
.notif-btn{
  gap:7px;
  font-size:12px;
}
.notif-btn-icon,
.topbar-theme-pill span:first-child{
  width:18px;
  height:18px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:14px;
  line-height:1;
}
.notif-btn-label,
#theme-toggle-label,
#conn-label,
.topbar-date-pill{
  font-size:12.2px;
  font-weight:700;
  letter-spacing:-.01em;
}
.notif-badge{
  top:-5px;
  right:-4px;
  min-width:18px;
  height:18px;
  padding:0 5px;
  font-size:10px;
  border:1px solid rgba(248,113,113,.32);
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.topbar-status-pill .conn-dot,
.conn-dot{
  width:8px;
  height:8px;
  flex:0 0 8px;
}
.topbar-date-pill{
  min-width:174px;
  text-transform:none;
  white-space:nowrap;
}
@media (max-width: 1040px){
  .topbar-date-pill{ min-width:auto; }
}
@media (max-width: 860px){
  #sidebar .sidebar-logo,
  body.sidebar-compact .sidebar-logo{
    min-height:64px;
    height:64px;
    padding:16px 14px 14px;
  }
  .topbar{
    height:auto;
    min-height:64px;
  }
}
@media (max-width: 640px){
  .notif-btn,
  .topbar-theme-pill,
  .topbar-status-pill,
  .topbar-date-pill{
    height:36px;
    min-height:36px;
    padding:0 11px;
  }
  .topbar-date-pill{ display:none; }
}

/* CLIENTES — ajuste visual fino filtros y etiquetas 20260615 */
#page-clientes .clientes-simple-toolbar .search-box {
  display: flex;
  align-items: center;
  padding-top: 0;
  padding-bottom: 0;
  line-height: 1;
}
#page-clientes .clientes-simple-toolbar .search-box span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  line-height: 1;
}
#page-clientes .clientes-simple-toolbar .search-box input {
  display: flex;
  align-items: center;
  padding-top: 0;
  padding-bottom: 0;
  line-height: 32px;
}
#page-clientes .clientes-simple-toolbar select {
  padding-top: 0;
  padding-bottom: 0;
  line-height: 30px;
  vertical-align: middle;
}
#page-clientes .clientes-simple-toolbar .btn {
  line-height: 1;
}
#page-clientes .cliente-tag-check-pill {
  --cliente-tag-color: var(--accent);
  border-color: color-mix(in srgb, var(--cliente-tag-color) 34%, var(--border2));
  background: color-mix(in srgb, var(--cliente-tag-color) 10%, var(--bg2));
}
#page-clientes .cliente-tag-check-pill .cliente-tag-dot,
.cliente-tag-check-pill .cliente-tag-dot {
  background: var(--cliente-tag-color, var(--accent));
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--cliente-tag-color, var(--accent)) 16%, transparent);
}
#page-clientes .cliente-tag-badge,
#clientes-table .cliente-tag-badge {
  --cliente-tag-color: var(--accent);
  color: var(--cliente-tag-color);
  border-color: color-mix(in srgb, var(--cliente-tag-color) 38%, transparent);
  background: color-mix(in srgb, var(--cliente-tag-color) 13%, transparent);
}
html[data-theme="light"] #page-clientes .cliente-tag-badge,
html[data-theme="light"] #clientes-table .cliente-tag-badge {
  background: color-mix(in srgb, var(--cliente-tag-color) 12%, #ffffff);
}

/* ============================================================
   CAJA · Popups cierre/impresión y estados ocultos 20260615
============================================================ */
.caja-hidden{display:none!important;}
#modal-caja-jornada .modal.caja-jornada-modal{
  width:min(760px,calc(100vw - 32px));
  max-width:760px;
  max-height:calc(100vh - 36px);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  padding:22px 26px;
}
#modal-caja-jornada .modal-body{
  overflow:auto;
  padding-right:4px;
}
#modal-caja-jornada .modal-header{
  flex:0 0 auto;
  margin-bottom:10px;
  padding-bottom:10px;
}
#modal-caja-jornada .modal-footer{
  flex:0 0 auto;
  margin-top:12px;
  padding-top:12px;
}
#modal-caja-jornada .caja-cierre-modal-grid{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(280px,.95fr);
  gap:12px;
  align-items:start;
}
#modal-caja-jornada .caja-modal-expected{
  margin:0;
  align-self:start;
}
#modal-caja-jornada .caja-modal-total{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:8px;
  padding:8px 10px;
  border-radius:10px;
  background:rgba(79,142,247,.10);
  border:1px solid rgba(79,142,247,.18);
}
#modal-caja-jornada .caja-modal-total span,
#modal-caja-jornada .caja-cierre-reales-title{
  font-size:10px;
  font-weight:850;
  letter-spacing:.055em;
  text-transform:uppercase;
  color:var(--text3);
}
#modal-caja-jornada .caja-modal-total strong{
  font-size:15px;
  color:var(--accent);
  white-space:nowrap;
}
#modal-caja-jornada .caja-cierre-reales-card{
  padding:10px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--bg3);
}
#modal-caja-jornada .caja-cierre-reales-title{
  margin-bottom:8px;
}
#modal-caja-jornada .caja-cierre-reales-grid{
  gap:8px;
}
#modal-caja-jornada .caja-cierre-reales-grid .full{
  grid-column:1 / -1;
}
#modal-caja-jornada .caja-cierre-reales-grid textarea{
  min-height:58px;
}
.caja-detail-modal{
  width:min(760px,calc(100vw - 32px));
  max-width:760px;
  max-height:calc(100vh - 36px);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  padding:22px 26px;
}
.caja-detail-modal .modal-body{
  overflow:auto;
  padding-right:4px;
}
.caja-detail-modal .modal-header{
  flex:0 0 auto;
}
.caja-detail-modal .modal-footer{
  flex:0 0 auto;
  justify-content:space-between;
}

.caja-detail-modal .caja-print-actions{
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
}
@media (max-width:520px){
  .caja-detail-modal .modal-footer{
    flex-direction:column-reverse;
    align-items:stretch;
  }
  .caja-detail-modal .caja-print-actions{
    display:grid;
    grid-template-columns:1fr;
  }
  .caja-detail-modal .modal-footer .btn{
    width:100%;
  }
}
.caja-detail-modal .caja-cierre-resumen{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  margin-bottom:9px;
}
.caja-detail-modal .caja-cierre-total-card{
  padding:9px 10px;
  border:1px solid var(--border);
  border-radius:11px;
  background:var(--bg3);
}
.caja-detail-modal .caja-cierre-total-card span{
  display:block;
  margin-bottom:4px;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.055em;
  color:var(--text3);
  font-weight:850;
}
.caja-detail-modal .caja-cierre-total-card strong{
  font-size:15px;
  color:var(--text);
}
.caja-detail-modal .caja-cierre-total-card.is-positive strong{color:var(--green);}
.caja-detail-modal .caja-cierre-total-card.is-negative strong{color:var(--red);}
.caja-detail-modal .caja-cierre-detail-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.caja-detail-modal .caja-cierre-detail-grid > div{
  padding:8px 9px;
}
.caja-detail-modal .caja-cierre-detail-grid strong{
  margin-bottom:3px;
}
@media (max-width: 840px){
  #modal-caja-jornada .caja-cierre-modal-grid{
    grid-template-columns:1fr;
  }
  .caja-detail-modal .caja-cierre-detail-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width: 520px){
  #modal-caja-jornada .modal.caja-jornada-modal,
  .caja-detail-modal{
    width:min(100vw - 18px,760px);
    padding:16px;
  }
  .caja-detail-modal .caja-cierre-resumen,
  .caja-detail-modal .caja-cierre-detail-grid{
    grid-template-columns:1fr;
  }
}

/* ============================================================
   CAJA · Abrir caja y detalle de cierre sin scroll 20260615
============================================================ */
#modal-caja-jornada .caja-apertura-grid .full,
#modal-caja-jornada .caja-cierre-reales-grid .full{
  grid-column:1 / -1;
}
#modal-caja-jornada .caja-apertura-note{
  padding:8px 10px;
  border:1px solid rgba(79,142,247,.18);
  border-radius:10px;
  background:rgba(79,142,247,.08);
  color:var(--text2);
  font-size:11.4px;
  line-height:1.35;
}
#modal-caja-jornada .caja-apertura-grid textarea{
  min-height:56px;
}
#modal-caja-jornada .caja-apertura-grid{
  align-items:start;
}
.caja-detail-modal.is-cierre{
  width:min(900px,calc(100vw - 32px));
  max-width:900px;
  max-height:calc(100vh - 28px);
  padding:16px 20px;
}
.caja-detail-modal.is-cierre .modal-header{
  margin-bottom:8px;
  padding-bottom:8px;
}
.caja-detail-modal.is-cierre .modal-title{
  font-size:19px;
  line-height:1.1;
}
.caja-detail-modal.is-cierre .modal-body{
  overflow:visible;
  padding-right:0;
}
.caja-detail-modal.is-cierre .caja-cierre-resumen{
  gap:7px;
  margin-bottom:7px;
}
.caja-detail-modal.is-cierre .caja-cierre-total-card{
  padding:7px 9px;
  border-radius:10px;
}
.caja-detail-modal.is-cierre .caja-cierre-total-card span{
  margin-bottom:2px;
  font-size:9.4px;
}
.caja-detail-modal.is-cierre .caja-cierre-total-card strong{
  font-size:14px;
}
.caja-detail-modal.is-cierre .caja-cierre-detail-grid{
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:6px;
}
.caja-detail-modal.is-cierre .caja-cierre-detail-grid > div{
  padding:6px 8px;
  border-radius:9px;
}
.caja-detail-modal.is-cierre .caja-cierre-detail-grid strong{
  font-size:8.8px;
  margin-bottom:2px;
  letter-spacing:.045em;
}
.caja-detail-modal.is-cierre .caja-cierre-detail-grid div div{
  font-size:10.8px;
  line-height:1.16;
}
.caja-detail-modal.is-cierre .caja-detail-section{
  margin-top:7px;
}
.caja-detail-modal.is-cierre .caja-detail-section > strong{
  margin-bottom:4px;
  font-size:9.6px;
}
.caja-detail-modal.is-cierre .caja-detail-table-wrap{
  margin-top:4px;
  border-radius:9px;
}
.caja-detail-modal.is-cierre .caja-detail-table-wrap table th,
.caja-detail-modal.is-cierre .caja-detail-table-wrap table td{
  padding:5px 7px;
  font-size:10px;
}
.caja-detail-modal.is-cierre .caja-detail-table-wrap .badge{
  padding:2px 6px;
  font-size:9.2px;
}
.caja-detail-modal.is-cierre .caja-cierre-observaciones .detail-box{
  min-height:34px;
  max-height:58px;
  overflow:auto;
  padding:7px 8px !important;
  font-size:10.8px;
  line-height:1.25;
}
.caja-detail-modal.is-cierre .modal-footer{
  margin-top:8px;
  padding-top:8px;
}
.caja-detail-modal.is-cierre .modal-footer .btn{
  min-height:34px;
  height:34px;
  padding:6px 11px;
  font-size:11.5px;
  border-radius:10px;
}
@media (max-height:720px) and (min-width:721px){
  .caja-detail-modal.is-cierre{
    max-height:calc(100vh - 20px);
    padding:14px 18px;
  }
  .caja-detail-modal.is-cierre .caja-cierre-detail-grid > div{
    padding:5px 7px;
  }
  .caja-detail-modal.is-cierre .caja-detail-table-wrap table th,
  .caja-detail-modal.is-cierre .caja-detail-table-wrap table td{
    padding:4px 6px;
  }
}
@media (max-width:840px){
  .caja-detail-modal.is-cierre .modal-body{
    overflow:auto;
    padding-right:4px;
  }
  .caja-detail-modal.is-cierre .caja-cierre-detail-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width:520px){
  .caja-detail-modal.is-cierre .caja-cierre-detail-grid{
    grid-template-columns:1fr;
  }
  #modal-caja-jornada .caja-apertura-note{
    font-size:11px;
  }
}

/* Nueva venta · ajuste visual pago mixto compacto y pago por ítem · 20260615 */
#page-nueva-venta .nv-mixto-compact-box{
  min-height:var(--nv-field-h);
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:3px 8px;
  border:1px solid rgba(79,142,247,.34);
  border-radius:var(--nv-radius);
  background:rgba(79,142,247,.075);
  color:var(--text);
  overflow:hidden;
}
#page-nueva-venta .nv-mixto-compact-info{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:1px;
  line-height:1.05;
}
#page-nueva-venta .nv-mixto-compact-box .k{
  color:var(--text);
  font-size:10.2px;
  font-weight:900;
  white-space:nowrap;
}
#page-nueva-venta .nv-mixto-compact-box .s{
  color:var(--text3);
  font-size:9.3px;
  font-weight:750;
  white-space:nowrap;
}
#page-nueva-venta .nv-mixto-compact-box strong{
  color:var(--accent);
  font-size:12.4px;
  font-weight:950;
  letter-spacing:-.02em;
  white-space:nowrap;
}
#page-nueva-venta .nv-cobro-hint{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:4px;
}
#page-nueva-venta .nv-mixto-hint-chip{
  min-height:18px;
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:2px 6px;
  border:1px solid var(--border);
  border-radius:999px;
  background:var(--bg3);
  color:var(--text2);
  font-size:9.8px;
  line-height:1;
  max-width:100%;
}
#page-nueva-venta .nv-mixto-hint-chip strong{
  color:var(--text);
  font-weight:900;
}
#page-nueva-venta .nv-mixto-hint-chip span{
  color:var(--text3);
  font-weight:750;
}
#page-nueva-venta .nv-item-pay-toggle{
  min-height:23px;
  padding:3px 8px;
}
#page-nueva-venta .nv-item-pay-current{
  margin-top:4px;
  font-size:10px;
}
#page-nueva-venta .nv-item-method-select:not(.nv-hidden-js){
  display:block;
  margin-left:auto;
  margin-right:auto;
}
@media (max-width:760px){
  #page-nueva-venta .nv-cobro-simple{grid-template-columns:minmax(0,1fr) 96px;}
  #page-nueva-venta .nv-mixto-compact-box strong{font-size:11.5px;}
}


/* VENTAS — detalle de venta compacto/sin scroll desktop 20260615 */
@media (min-width: 901px) {
  .sale-detail-modal {
    width: min(940px, calc(100vw - 48px));
    max-height: calc(100vh - 44px);
  }
  .sale-detail-body {
    overflow: hidden;
    padding: 14px 18px 12px;
  }
  .sale-detail-head {
    margin-bottom: 10px;
  }
  .sale-detail-number {
    font-size: 22px;
  }
  .sale-detail-grid {
    grid-template-columns: minmax(0, 1.06fr) minmax(0, .86fr) minmax(0, .72fr);
    gap: 10px;
    margin-bottom: 10px;
  }
  .sale-detail-card {
    min-height: 0;
    padding: 11px 12px;
  }
  .sale-detail-card-title {
    margin-bottom: 7px;
    font-size: 10px;
  }
  .sale-detail-client-card {
    min-height: 155px;
  }
  .sale-detail-client-name {
    font-size: 15.5px;
    line-height: 1.15;
  }
  .sale-detail-mini-grid,
  .sale-detail-summary-grid {
    gap: 7px 10px;
    margin-top: 9px;
  }
  .sale-detail-summary-grid {
    grid-template-columns: .8fr .8fr 1.18fr 1fr;
    align-items: start;
  }
  .sale-detail-summary-grid > div:nth-child(3) {
    grid-column: span 2;
  }
  .sale-detail-summary-grid strong {
    font-size: 12.2px;
    line-height: 1.18;
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
  }
  .sale-detail-total-box {
    grid-column: 1 / -1;
    margin-top: 1px;
    padding-top: 7px;
  }
  .sale-detail-total-box strong {
    font-size: 25px;
  }
  .sale-detail-loyalty-box {
    margin-top: 8px;
    padding-top: 8px;
  }
  .sale-detail-loyalty {
    gap: 4px;
  }
  .sale-detail-loyalty-row {
    grid-template-columns: 82px minmax(0, 1fr);
    gap: 8px;
  }
  .sale-detail-pay-card {
    min-height: 155px;
  }
  .sale-detail-pay-row {
    padding: 6px 0;
    gap: 12px;
    font-size: 12px;
  }
  .sale-detail-pay-row span {
    min-width: 0;
    line-height: 1.2;
  }
  .sale-detail-pay-row strong {
    white-space: nowrap;
  }
  .sale-detail-items-card {
    max-height: none;
  }
  .sale-detail-items-head {
    padding: 9px 12px;
  }
  .sale-detail-table-wrap {
    overflow: hidden;
  }
  .sale-detail-table {
    min-width: 0;
    table-layout: fixed;
    font-size: 12.2px;
  }
  .sale-detail-table th,
  .sale-detail-table td {
    padding: 7px 11px;
    vertical-align: middle;
  }
  .sale-detail-table th {
    font-size: 9.8px;
    line-height: 1.15;
    white-space: nowrap;
  }
  .sale-detail-table th:nth-child(1),
  .sale-detail-table td:nth-child(1) { width: auto; }
  .sale-detail-table th:nth-child(2),
  .sale-detail-table td:nth-child(2) { width: 92px; text-align: center; }
  .sale-detail-table th:nth-child(3),
  .sale-detail-table td:nth-child(3) { width: 150px; }
  .sale-detail-table th:nth-child(4),
  .sale-detail-table td:nth-child(4) { width: 150px; }
  .sale-detail-product strong {
    font-size: 12.8px;
    line-height: 1.16;
  }
  .sale-detail-product-meta {
    gap: 8px;
    margin-top: 4px;
    font-size: 10.8px;
    line-height: 1.2;
  }
  .sale-detail-product-meta b {
    color: var(--text3);
    font-weight: 850;
  }
  .sale-detail-product-meta em {
    color: var(--text2);
  }
  .sale-detail-footer {
    padding: 10px 18px;
  }
}


/* NUEVA VENTA — quitar producto preseleccionado antes de agregar 20260615 */
#page-nueva-venta .nv-prod-info-clear {
  flex: 0 0 auto;
  min-height: 28px;
  padding: 0 10px;
  border: 1px solid color-mix(in srgb, var(--red) 34%, transparent);
  border-radius: 9px;
  background: color-mix(in srgb, var(--red) 10%, transparent);
  color: var(--red);
  font-size: 10.8px;
  font-weight: 850;
  cursor: pointer;
}
#page-nueva-venta .nv-prod-info-clear:hover {
  background: color-mix(in srgb, var(--red) 16%, transparent);
  border-color: color-mix(in srgb, var(--red) 48%, transparent);
}
@media (max-width: 680px) {
  #page-nueva-venta .nv-prod-info {
    flex-wrap: wrap;
  }
  #page-nueva-venta .nv-prod-info-clear {
    margin-left: auto;
  }
}


/* NUEVA VENTA · puntos compacto 20260615 */
@media (min-width: 761px){
  #page-nueva-venta .nv-puntos-cliente{
    margin-top:4px;
    padding:5px 8px;
    gap:10px;
    flex-wrap:nowrap;
    align-items:center;
  }
  #page-nueva-venta .nv-puntos-main{
    flex:1 1 auto;
    gap:6px;
    min-width:0;
  }
  #page-nueva-venta .nv-puntos-dot{
    width:18px;
    height:18px;
    font-size:11px;
  }
  #page-nueva-venta .nv-puntos-main strong{
    font-size:11px;
    line-height:1;
  }
  #page-nueva-venta .nv-puntos-main small{
    font-size:10px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  #page-nueva-venta .nv-puntos-side{
    flex:0 0 auto;
    margin-left:auto;
    gap:5px;
    flex-wrap:nowrap;
    justify-content:flex-end;
  }
  #page-nueva-venta .nv-puntos-aplicado{
    padding:2px 7px;
    font-size:10px;
    gap:3px;
    white-space:nowrap;
  }
  #page-nueva-venta .nv-puntos-editor{
    gap:4px;
    flex-wrap:nowrap;
  }
  #page-nueva-venta .nv-puntos-editor input{
    width:56px !important;
    height:22px !important;
    min-height:22px !important;
    font-size:10.5px;
    padding:1px 5px;
  }
  #page-nueva-venta .nv-puntos-editor .btn{
    height:22px;
    min-height:22px;
    padding:0 9px;
    font-size:10.5px;
    border-radius:8px;
  }
}
@media (min-width: 761px) and (max-width: 1200px){
  #page-nueva-venta .nv-puntos-main small{
    max-width:290px;
  }
}


/* NUEVA VENTA — cantidad editable sin botones 20260615 */
#page-nueva-venta .nv-qty-input-solo {
  width: 58px !important;
  height: 28px !important;
  min-height: 28px !important;
  padding: 3px 6px;
  border-radius: 9px;
  text-align: center;
  font-size: 12px;
  font-weight: 800;
}
#page-nueva-venta .nv-qty-input-solo::-webkit-outer-spin-button,
#page-nueva-venta .nv-qty-input-solo::-webkit-inner-spin-button {
  margin: 0;
}

/* ============================================================
   IA COMERCIAL · Etapa 1 sin API externa 20260615
============================================================ */
#page-ia-comercial .ia-hero{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-bottom:10px;
}
#page-ia-comercial .ia-hero-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
#page-ia-comercial .ia-badge,
#page-ia-comercial .ia-mini-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);
  border-radius:999px;
  background:color-mix(in srgb, var(--accent) 11%, transparent);
  color:var(--accent);
  font-size:10.5px;
  font-weight:850;
  white-space:nowrap;
}
#page-ia-comercial .ia-badge{padding:5px 9px;}
#page-ia-comercial .ia-mini-badge{padding:3px 7px;margin-right:5px;}
#page-ia-comercial .ia-filters{
  display:grid;
  grid-template-columns:1fr 1fr 1.2fr 1.2fr auto;
  gap:10px;
  align-items:end;
  margin-bottom:10px;
}
#page-ia-comercial .ia-filter-actions{display:flex;align-items:flex-end;justify-content:flex-end;}
#page-ia-comercial .ia-tabs{margin-bottom:10px;}
#page-ia-comercial .ia-kpis{margin-bottom:10px;}
#page-ia-comercial .ia-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
#page-ia-comercial .ia-card{padding:12px;min-height:0;}
#page-ia-comercial .ia-full{margin-top:10px;}
#page-ia-comercial .ia-card-title{
  margin-bottom:8px;
  font-size:12px;
  font-weight:900;
  color:var(--text);
}
#page-ia-comercial .ia-list{display:flex;flex-direction:column;gap:7px;}
#page-ia-comercial .ia-list-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:8px 9px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--bg2);
}
#page-ia-comercial .ia-list-row strong{
  display:block;
  color:var(--text);
  font-size:12px;
  line-height:1.15;
}
#page-ia-comercial .ia-list-row small{
  display:block;
  margin-top:2px;
  color:var(--text3);
  font-size:10.8px;
  line-height:1.2;
}
#page-ia-comercial .ia-list-value{
  flex:0 0 auto;
  text-align:right;
  color:var(--text);
  font-size:11.5px;
}
#page-ia-comercial .ia-empty{
  padding:12px;
  border:1px dashed var(--border2);
  border-radius:10px;
  color:var(--text3);
  font-size:12px;
  text-align:center;
}
#page-ia-comercial .ia-data-line{
  display:inline-flex;
  gap:5px;
  margin:0 12px 6px 0;
  color:var(--text3);
  font-size:11.5px;
}
#page-ia-comercial .ia-data-line strong{color:var(--text2);}
@media (max-width:1000px){
  #page-ia-comercial .ia-filters{grid-template-columns:repeat(2,minmax(0,1fr));}
  #page-ia-comercial .ia-filter-actions{justify-content:flex-start;}
}
@media (max-width:760px){
  #page-ia-comercial .ia-hero{align-items:flex-start;flex-direction:column;}
  #page-ia-comercial .ia-hero-actions{justify-content:flex-start;}
  #page-ia-comercial .ia-filters{grid-template-columns:1fr;}
  #page-ia-comercial .ia-grid{grid-template-columns:1fr;}
  #page-ia-comercial .ia-list-row{align-items:flex-start;flex-direction:column;}
  #page-ia-comercial .ia-list-value{text-align:left;}
}


/* IA Comercial · OpenAI etapa 2 20260615 */
.ia-badge.is-green,
.cfg-mini-pill.is-green {
  background: color-mix(in srgb, var(--green) 16%, transparent);
  color: var(--green);
  border-color: color-mix(in srgb, var(--green) 30%, transparent);
}
.ia-badge.is-orange,
.cfg-mini-pill.is-orange {
  background: color-mix(in srgb, var(--amber) 14%, transparent);
  color: var(--amber);
  border-color: color-mix(in srgb, var(--amber) 30%, transparent);
}
.ia-badge.is-red,
.cfg-mini-pill.is-red {
  background: color-mix(in srgb, var(--red) 12%, transparent);
  color: var(--red);
  border-color: color-mix(in srgb, var(--red) 28%, transparent);
}
.ia-badge.is-muted {
  background: var(--bg3);
  color: var(--text3);
  border-color: var(--border);
}
.ia-openai-card {
  margin-bottom: 10px;
  padding: 12px;
}
.ia-openai-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 9px;
}
.ia-openai-sub {
  margin-top: 3px;
  color: var(--text3);
  font-size: 11.5px;
}
.ia-openai-actions {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.ia-openai-output {
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--bg);
  padding: 10px 12px;
  min-height: 44px;
  color: var(--text2);
  font-size: 12.3px;
  line-height: 1.45;
}
.ia-ai-result-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding-bottom: 8px;
  margin-bottom: 8px;
  border-bottom: 1px dashed var(--border);
  color: var(--text);
}
.ia-ai-result-head span {
  color: var(--text3);
  font-size: 11px;
}
.ia-ai-result-text {
  color: var(--text2);
}
.ia-ai-loading {
  color: var(--accent);
  font-weight: 800;
}
.ia-ai-error {
  color: var(--red);
}
.cfg-ia-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.cfg-ia-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 10px;
}
.cfg-ia-status {
  margin-top: 10px;
  padding: 9px 10px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--bg);
  color: var(--text2);
  font-size: 12px;
  line-height: 1.35;
}
.cfg-checklist {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  color: var(--text2);
  font-size: 12px;
}
@media (max-width: 900px) {
  .cfg-ia-grid,
  .cfg-checklist {
    grid-template-columns: 1fr;
  }
  .ia-openai-head {
    flex-direction: column;
  }
  .ia-openai-actions {
    justify-content: flex-start;
  }
}


/* IA Comercial · Historial etapa 3 20260615 */
#page-ia-comercial .ia-historial-card {
  margin-top: 10px;
}
#page-ia-comercial .ia-historial-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}
#page-ia-comercial .ia-historial-list {
  min-height: 42px;
}
#page-ia-comercial .ia-history-row {
  align-items: flex-start;
}
#page-ia-comercial .ia-history-actions {
  display: flex;
  gap: 6px;
  align-items: center;
}
#page-ia-comercial .ia-history-delete {
  color: var(--red);
  border-color: color-mix(in srgb, var(--red) 28%, transparent);
  background: color-mix(in srgb, var(--red) 8%, transparent);
}
@media (max-width: 760px) {
  #page-ia-comercial .ia-historial-head {
    flex-direction: column;
  }
  #page-ia-comercial .ia-history-actions {
    width: 100%;
    justify-content: flex-start;
  }
}

/* ============================================================
   IMPORTAR — fix vista previa/mapeo con scroll vertical
   Evita que la tabla de importación se corte visualmente cuando
   la vista previa de clientes tiene filas altas o muchas columnas.
============================================================ */
#page-importar .imp-table-compact,
#page-importar .imp-preview-wrap,
#page-importar .imp-analysis-preview .table-wrap {
  overflow-x: auto;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

#page-importar .imp-preview-wrap {
  max-height: min(52vh, 430px);
}

#page-importar .imp-table-compact {
  max-height: min(48vh, 360px);
}

#page-importar .imp-analysis-preview .table-wrap {
  max-height: min(38vh, 300px);
}

#page-importar .imp-preview-wrap table th,
#page-importar .imp-table-compact table th,
#page-importar .imp-analysis-preview .table-wrap table th {
  position: sticky;
  top: 0;
  z-index: 3;
}

/* CLIENTES — fix tabla/paginación con muchos registros (20260616)
   Evita que el listado quede cortado a media fila cuando hay más clientes cargados.
   La tabla queda con scroll vertical propio y la paginación permanece visible debajo. */
#page-clientes .clientes-table-card,
#page-clientes .clientes-simple-card {
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: visible;
}
#page-clientes .clientes-table-wrap {
  flex: 1 1 auto;
  width: 100%;
  max-width: 100%;
  min-height: 220px;
  max-height: calc(100vh - 355px);
  overflow-x: auto !important;
  overflow-y: auto !important;
  scrollbar-width: thin;
}
#page-clientes .clientes-table-wrap table {
  min-width: 100%;
}
#page-clientes #clientes-pag-container {
  flex: 0 0 auto;
  position: relative;
  z-index: 3;
  background: var(--bg2);
  border-left: 1px solid var(--border);
  border-right: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  border-radius: 0 0 12px 12px;
  margin-top: -1px;
}
#page-clientes #clientes-pag-container .pag-bar {
  padding: 7px 10px;
  border-top: 0;
}
@media (max-height: 760px) {
  #page-clientes .clientes-table-wrap {
    max-height: calc(100vh - 330px);
  }
}
@media (min-height: 900px) {
  #page-clientes .clientes-table-wrap {
    max-height: calc(100vh - 390px);
  }
}
