/* ============================================================
   TJCA · Design System
   Tokens → componentes. Cambia la paleta aquí, no en los componentes.
   ============================================================ */

:root{
  /* ── Superficies ── */
  --bg-0:#f7f7f8;         /* fondo general */
  --bg-1:#ffffff;         /* paneles / tarjetas */
  --bg-2:#f9f9fb;         /* bloques secundarios */
  --bg-3:#f1f2f5;         /* headers/tabla */
  --line:#e3e5ea;

  /* ── Texto ── */
  --ink:#141414;
  --muted:#60656f;

  /* ── Marca ── */
  --accent:#d4ad18;
  --accent-hover:#e1ba1f;
  --accent-ink:#0b0c0e;
  --accent-soft:rgba(212,173,24,.12);
  --accent-soft-strong:rgba(212,173,24,.22);

  /* ── Semánticos (tinte muy suave para chips) ── */
  --danger:#dc3545;        --danger-soft:rgba(220,53,69,.10);
  --warning:#b45309;       --warning-soft:rgba(180,83,9,.10);
  --success:#15803d;       --success-soft:rgba(21,128,61,.10);
  --info:#1d4ed8;          --info-soft:rgba(29,78,216,.10);

  /* ── Sidebar (oscuro siempre; variables propias para rebrandear sin tocar componentes) ── */
  --sb-bg-top:#1a1d22;
  --sb-bg-bot:#121418;
  --sb-text:#d7dbe3;
  --sb-muted:#8a919c;
  --sb-hover:rgba(255,255,255,.05);
  --sb-accent:var(--accent);
  --sb-accent-bg:rgba(212,173,24,.14);
  --sb-border:rgba(255,255,255,.07);

  /* ── Header ── */
  --hdr-bg:#ffffff;
  --hdr-border:var(--line);
  --hdr-h:57px;

  /* ── Escala y radios ── */
  --r-sm:6px;
  --r:8px;
  --r-md:10px;
  --r-lg:12px;
  --r-pill:999px;

  /* ── Transiciones ── */
  --t-fast:120ms;
  --t:160ms;
  --t-slow:220ms;

  /* ── Sombras ── */
  --sh-sm:0 1px 2px rgba(15,20,30,.06);
  --sh:0 4px 16px rgba(15,20,30,.08);
  --sh-lg:0 12px 40px rgba(15,20,30,.14);

  /* ── Sidebar widths (coincide con AdminLTE para no romper layout) ── */
  --sb-w:250px;
  --sb-w-mini:4.6rem;
}

/* ── Dark mode: solo redefinimos tokens de contenido/superficie ── */
html.dark-mode, body.dark-mode{
  --bg-0:#0f1115;
  --bg-1:#15181d;
  --bg-2:#1a1e24;
  --bg-3:#22262e;
  --line:#2a2f38;
  --ink:#e6e8ec;
  --muted:#9aa3b2;
  --hdr-bg:#15181d;
  --sh-sm:0 1px 2px rgba(0,0,0,.4);
  --sh:0 4px 16px rgba(0,0,0,.4);
  --sh-lg:0 12px 40px rgba(0,0,0,.5);
}

/* ============================================================
   Base
   ============================================================ */
html,body{
  background:var(--bg-0);
  color:var(--ink);
  font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  font-size:13.5px;
}
a{color:var(--accent);transition:color var(--t-fast)}
a:hover{color:var(--accent-hover);text-decoration:none}

::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:var(--line);border-radius:999px}
::-webkit-scrollbar-thumb:hover{background:var(--muted)}

/* ============================================================
   Layout: alineación header ↔ brand (franja del logo = header)
   ============================================================ */
.main-header.navbar{
  min-height:var(--hdr-h);
  height:var(--hdr-h);
  padding:0 12px;
  background:var(--hdr-bg)!important;
  color:var(--ink);
  border-bottom:1px solid var(--hdr-border);
  box-shadow:none;
}
.brand-link{
  min-height:var(--hdr-h)!important;
  height:var(--hdr-h);
  padding:8px 14px!important;
  border-bottom:1px solid var(--sb-border)!important;
  background:transparent!important;
  color:var(--sb-text)!important;
}
.brand-link .brand-image{height:34px!important;width:auto;margin-right:10px;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}
.brand-link .brand-text{
  color:var(--sb-text)!important;
  font-weight:700;
  letter-spacing:.5px;
}

@media (max-width:767.98px){
  :root{--hdr-h:50px}
}

.main-footer{background:var(--bg-3);color:var(--muted);border-top:1px solid var(--line)}
.content-wrapper{
  background:
    radial-gradient(1200px 500px at 80% -20%, rgba(212,173,24,.05), transparent 60%),
    var(--bg-0);
  min-height:calc(100vh - var(--hdr-h));
}

/* ============================================================
   Header: hamburguesa, chips, iconbtn, usuario
   ============================================================ */
.hdr-left,.hdr-right{display:flex;align-items:center;gap:6px}
.hdr-right{margin-left:auto;flex-wrap:nowrap}

.hdr-divider{
  width:1px;height:24px;
  background:var(--line);
  margin:0 6px;
}

/* --- Hamburguesa (reemplaza el AdminLTE pushmenu visualmente) --- */
.hdr-hamb{
  width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;
  border:0;background:transparent;border-radius:var(--r);
  color:var(--ink);cursor:pointer;
  transition:background var(--t-fast),color var(--t-fast);
}
.hdr-hamb:hover{background:var(--bg-2);color:var(--accent)}
.hdr-hamb:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* --- Icon button (tema, campana) --- */
.hdr-iconbtn{
  position:relative;
  width:36px;height:36px;
  display:inline-flex;align-items:center;justify-content:center;
  border:0;background:transparent;border-radius:var(--r);
  color:var(--ink);cursor:pointer;
  transition:background var(--t-fast),color var(--t-fast);
}
.hdr-iconbtn:hover{background:var(--bg-2);color:var(--accent)}
.hdr-iconbtn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* Badge contador (encima de ícono) */
.hdr-badge{
  position:absolute;top:-2px;right:-2px;
  min-width:17px;height:17px;padding:0 5px;
  border-radius:var(--r-pill);
  background:var(--danger);color:#fff;
  font-size:10.5px;font-weight:700;line-height:17px;text-align:center;
  border:2px solid var(--hdr-bg);
  pointer-events:none;
}
.hdr-badge:empty{display:none}

/* --- Chip (ícono + texto, tinte suave) --- */
.hdr-chip{
  display:inline-flex;align-items:center;gap:6px;
  height:34px;padding:0 12px;
  border:1px solid transparent;border-radius:var(--r);
  background:var(--bg-2);color:var(--ink);
  font-size:12.5px;font-weight:500;
  cursor:pointer;text-decoration:none;
  transition:background var(--t-fast),color var(--t-fast),border-color var(--t-fast);
}
.hdr-chip i{font-size:12px}
.hdr-chip:hover{background:var(--bg-3);color:var(--ink);text-decoration:none}
.hdr-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.hdr-chip-danger  {background:var(--danger-soft); color:var(--danger)}
.hdr-chip-danger:hover {background:var(--danger-soft); color:var(--danger); filter:brightness(.97)}
.hdr-chip-info    {background:var(--info-soft);   color:var(--info)}
.hdr-chip-info:hover   {background:var(--info-soft);   color:var(--info);   filter:brightness(.97)}
.hdr-chip-success {background:var(--success-soft);color:var(--success)}
.hdr-chip-success:hover{background:var(--success-soft);color:var(--success);filter:brightness(.97)}
.hdr-chip-neutral {background:transparent;color:var(--ink);border-color:var(--line)}
.hdr-chip-neutral:hover{background:var(--bg-2)}

/* bajo 1200px: chips sin texto */
@media (max-width:1199.98px){
  .hdr-chip > .hdr-chip-txt{display:none}
  .hdr-chip{padding:0 10px;width:36px;justify-content:center}
}
/* bajo 768px: compactar */
@media (max-width:767.98px){
  .hdr-divider{display:none}
  .hdr-right{gap:4px}
}

/* --- Usuario (píldora) --- */
.hdr-user{
  display:inline-flex;align-items:center;gap:8px;
  height:36px;padding:0 10px 0 4px;
  border:1px solid var(--line);border-radius:var(--r-pill);
  background:transparent;color:var(--ink);text-decoration:none;
  cursor:pointer;
  transition:background var(--t-fast),border-color var(--t-fast);
}
.hdr-user:hover{background:var(--bg-2);color:var(--ink)}
.hdr-user:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.hdr-user-avatar{
  width:32px;height:32px;border-radius:50%;object-fit:cover;
  background:var(--accent);color:var(--accent-ink);
  display:inline-flex;align-items:center;justify-content:center;
  font-weight:700;font-size:13px;
}
.hdr-user-name{font-weight:500;font-size:13px;line-height:1;max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hdr-user-chev{font-size:10px;color:var(--muted);transition:transform var(--t)}
.hdr-user.is-open .hdr-user-chev{transform:rotate(180deg)}
@media (max-width:767.98px){ .hdr-user-name{display:none} }

/* ============================================================
   Popovers (notificaciones, usuario)
   ============================================================ */
.pop{
  position:absolute;top:calc(100% + 6px);right:0;z-index:1050;
  min-width:260px;background:var(--bg-1);
  border:1px solid var(--line);border-radius:var(--r-lg);
  box-shadow:var(--sh-lg);
  overflow:hidden;
  opacity:0;transform:translateY(-6px);pointer-events:none;
  transition:opacity var(--t),transform var(--t);
}
.pop.is-open{opacity:1;transform:translateY(0);pointer-events:auto}
.pop-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 14px;border-bottom:1px solid var(--line);
  font-size:13px;font-weight:600;color:var(--ink);
}
.pop-head .pop-action{
  font-size:12px;font-weight:500;color:var(--accent);
  background:none;border:0;cursor:pointer;padding:4px 6px;border-radius:var(--r-sm);
}
.pop-head .pop-action:hover{background:var(--bg-2)}

/* Notificaciones */
.pop-notif{width:360px;max-width:calc(100vw - 24px)}
.pop-notif-list{max-height:400px;overflow-y:auto}
.pop-notif-item{
  display:grid;grid-template-columns:28px 1fr auto;grid-column-gap:10px;
  padding:10px 14px;border-bottom:1px solid var(--line);
  color:var(--ink);text-decoration:none;
  transition:background var(--t-fast);
}
.pop-notif-item:last-child{border-bottom:0}
.pop-notif-item:hover{background:var(--bg-2);color:var(--ink);text-decoration:none}
.pop-notif-icon{
  width:28px;height:28px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--bg-3);color:var(--muted);font-size:12px;
}
.pop-notif-title{font-size:13px;color:var(--ink);line-height:1.3}
.pop-notif-text{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.pop-notif-time{font-size:11px;color:var(--muted);align-self:start;white-space:nowrap}
.pop-notif-item.is-unread{background:var(--accent-soft)}
.pop-notif-item.is-unread .pop-notif-title{font-weight:700}
.pop-notif-item.is-unread::after{
  content:'';width:7px;height:7px;border-radius:50%;background:var(--accent);
  position:absolute;margin-top:4px;
}
.pop-empty{
  padding:36px 14px;text-align:center;color:var(--muted);
  display:flex;flex-direction:column;align-items:center;gap:8px;
}
.pop-empty i{font-size:28px;opacity:.4}

/* Usuario */
.pop-user{width:280px}
.pop-user-head{
  padding:14px;display:flex;gap:12px;align-items:center;border-bottom:1px solid var(--line);
}
.pop-user-avatar{
  width:40px;height:40px;border-radius:50%;object-fit:cover;
  background:var(--accent);color:var(--accent-ink);
  display:inline-flex;align-items:center;justify-content:center;
  font-weight:700;font-size:16px;
}
.pop-user-name{font-weight:600;font-size:14px;color:var(--ink);line-height:1.2}
.pop-user-mail{font-size:12px;color:var(--muted);margin-top:2px}
.pop-user-body{padding:6px 0}
.pop-item{
  display:flex;align-items:center;gap:10px;
  padding:9px 14px;color:var(--ink);text-decoration:none;cursor:pointer;
  font-size:13px;background:none;border:0;width:100%;text-align:left;
  transition:background var(--t-fast),color var(--t-fast);
}
.pop-item i{width:16px;color:var(--muted);font-size:13px}
.pop-item:hover{background:var(--bg-2);color:var(--ink);text-decoration:none}
.pop-item.is-danger{color:var(--danger)}
.pop-item.is-danger i{color:var(--danger)}
.pop-item.is-danger:hover{background:var(--danger-soft);color:var(--danger)}

/* ============================================================
   SIDEBAR
   Alcance: todo bajo .main-sidebar para no filtrar a otras pantallas.
   ============================================================ */
.main-sidebar{
  background:linear-gradient(180deg,var(--sb-bg-top),var(--sb-bg-bot))!important;
  border-right:1px solid var(--sb-border);
  box-shadow:none;
  color:var(--sb-text);
}
.main-sidebar .sidebar{
  padding:0;
  overflow-y:auto;
  overflow-x:hidden;
  scrollbar-gutter:stable both-edges;
  scrollbar-width:thin;
  scrollbar-color:transparent transparent;
  height:calc(100vh - var(--hdr-h));
}
.main-sidebar .sidebar:hover{scrollbar-color:rgba(255,255,255,.2) transparent}
.main-sidebar .sidebar::-webkit-scrollbar{width:4px}
.main-sidebar .sidebar::-webkit-scrollbar-thumb{background:transparent;border-radius:999px}
.main-sidebar .sidebar:hover::-webkit-scrollbar-thumb{background:rgba(255,255,255,.2)}

/* ── Search sticky ── */
.main-sidebar .sb-search{
  position:sticky;top:0;z-index:5;
  padding:10px 12px 8px;
  background:var(--sb-bg-top);
  border-bottom:1px solid var(--sb-border);
}
.main-sidebar .sb-search-wrap{
  position:relative;
  display:flex;align-items:center;
}
.main-sidebar .sb-search-wrap i.sb-search-icon{
  position:absolute;left:10px;top:50%;transform:translateY(-50%);
  color:var(--sb-muted);font-size:12px;pointer-events:none;
}
.main-sidebar .sb-search input{
  width:100%;height:34px;
  background:rgba(255,255,255,.06);
  border:1px solid var(--sb-border);
  border-radius:var(--r);
  color:var(--sb-text);
  padding:0 60px 0 30px;
  font-size:13px;
  outline:none;
  transition:border-color var(--t-fast),background var(--t-fast);
}
.main-sidebar .sb-search input::placeholder{color:var(--sb-muted)}
.main-sidebar .sb-search input:focus{border-color:var(--sb-accent);background:rgba(255,255,255,.1)}
.main-sidebar .sb-search kbd{
  position:absolute;right:8px;top:50%;transform:translateY(-50%);
  background:rgba(255,255,255,.08);color:var(--sb-muted);
  font-size:10.5px;font-family:ui-monospace,monospace;
  padding:2px 6px;border-radius:4px;border:1px solid var(--sb-border);
  line-height:1;letter-spacing:.3px;
}
.main-sidebar .sb-search .sb-search-clear{
  position:absolute;right:6px;top:50%;transform:translateY(-50%);
  width:22px;height:22px;border:0;background:transparent;
  color:var(--sb-muted);border-radius:50%;display:none;cursor:pointer;
}
.main-sidebar .sb-search .sb-search-clear:hover{background:rgba(255,255,255,.1);color:var(--sb-text)}
.main-sidebar .sb-search.has-text .sb-search-clear{display:inline-flex;align-items:center;justify-content:center}
.main-sidebar .sb-search.has-text kbd{display:none}
.main-sidebar .sb-noresults{
  display:none;padding:20px 16px;color:var(--sb-muted);text-align:center;font-size:12.5px;
}
.main-sidebar.is-searching .sb-noresults.is-shown{display:block}

/* ── Nav items (reemplaza visualmente .nav-sidebar) ── */
.main-sidebar .sb-nav{padding:8px 0 24px}
.main-sidebar .sb-item{
  position:relative;
  display:flex;align-items:center;gap:12px;
  height:34px;padding:0 12px;margin:1px 8px;
  border-radius:var(--r);
  color:var(--sb-text);
  font-size:13px;font-weight:500;
  text-decoration:none;cursor:pointer;
  transition:background var(--t-fast),color var(--t-fast);
}
.main-sidebar .sb-item > i{
  width:20px;text-align:center;font-size:14px;
  color:var(--sb-text);opacity:.6;
  transition:opacity var(--t-fast),color var(--t-fast);
}
.main-sidebar .sb-item > span{
  flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.main-sidebar .sb-item:hover{background:var(--sb-hover);color:var(--sb-text);text-decoration:none}
.main-sidebar .sb-item:hover > i{opacity:.95;color:var(--sb-accent)}

/* Activo: fondo acento suave + barra 3px izquierda */
.main-sidebar .sb-item.is-active{
  background:var(--sb-accent-bg);
  color:var(--sb-text);
}
.main-sidebar .sb-item.is-active > i{opacity:1;color:var(--sb-accent)}
.main-sidebar .sb-item.is-active::before{
  content:'';
  position:absolute;left:0;top:8px;bottom:8px;width:3px;
  background:var(--sb-accent);border-radius:0 2px 2px 0;
}
/* Pre-selección por teclado durante búsqueda */
.main-sidebar .sb-item.is-sel{outline:1px solid var(--sb-accent);outline-offset:-1px}

/* resaltado <mark> en coincidencias */
.main-sidebar .sb-item mark{
  background:var(--accent-soft-strong);color:inherit;padding:0 2px;border-radius:3px;
}

/* Pill "Beta" dentro de un ítem */
.main-sidebar .sb-item .sb-beta{
  display:inline-block;margin-left:6px;padding:1px 7px;
  background:var(--accent-soft-strong);color:var(--sb-accent);
  font-size:9.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  border-radius:var(--r-pill);line-height:1.6;vertical-align:middle;
}

/* ── Grupos colapsables ── */
.main-sidebar .sb-group{margin:6px 0}
.main-sidebar .sb-group-head{
  display:flex;align-items:center;gap:8px;
  width:calc(100% - 16px);margin:0 8px;
  padding:6px 10px;
  background:none;border:0;cursor:pointer;
  color:var(--sb-muted);
  font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  border-radius:var(--r-sm);
  transition:color var(--t-fast),background var(--t-fast);
}
.main-sidebar .sb-group-head:hover{color:var(--sb-text);background:rgba(255,255,255,.03)}
.main-sidebar .sb-group-head > .sb-ghead-icon{width:14px;text-align:center;font-size:11px;opacity:.7}
.main-sidebar .sb-group-head > span{flex:1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.main-sidebar .sb-group-head .sb-chevron{
  font-size:9px;opacity:.6;transition:transform var(--t);
}
.main-sidebar .sb-group.is-closed .sb-chevron{transform:rotate(-90deg)}
.main-sidebar .sb-group.has-active > .sb-group-head{color:var(--sb-accent)}

.main-sidebar .sb-group-body{
  overflow:hidden;
  max-height:1200px;
  transition:max-height var(--t-slow);
  padding:2px 0 4px;
  list-style:none;margin:0;
}
.main-sidebar .sb-group.is-closed .sb-group-body{max-height:0;padding:0}

/* ── Favoritos ── */
.main-sidebar .sb-group-favs .sb-group-head{color:var(--sb-text)}
.main-sidebar .sb-fav-edit{
  margin-left:auto;background:none;border:0;color:var(--sb-muted);
  width:22px;height:22px;border-radius:var(--r-sm);
  display:inline-flex;align-items:center;justify-content:center;
  cursor:pointer;
}
.main-sidebar .sb-fav-edit:hover{background:rgba(255,255,255,.08);color:var(--sb-accent)}
.main-sidebar .sb-fav-empty{
  padding:8px 20px;font-size:12px;color:var(--sb-muted);line-height:1.4;
}

/* ── Modo mini (colapsado) ── */
body.sidebar-collapse .main-sidebar{width:var(--sb-w-mini)}
body.sidebar-collapse .main-sidebar .brand-text{display:none}
body.sidebar-collapse .main-sidebar .brand-link{justify-content:center;padding:8px 0!important}
body.sidebar-collapse .main-sidebar .brand-image{margin:0!important}

/* ocultar textos/accesorios */
body.sidebar-collapse .main-sidebar .sb-search,
body.sidebar-collapse .main-sidebar .sb-item > span,
body.sidebar-collapse .main-sidebar .sb-group-head .sb-chevron,
body.sidebar-collapse .main-sidebar .sb-group-head > span,
body.sidebar-collapse .main-sidebar .sb-fav-edit{display:none}
/* grupos: título → rayita 1px */
body.sidebar-collapse .main-sidebar .sb-group-head{
  padding:0;height:1px;margin:10px 14px;
  background:var(--sb-border);
  pointer-events:none;
}
body.sidebar-collapse .main-sidebar .sb-group-head > *{display:none}
/* ítems centrados; sin barra activa */
body.sidebar-collapse .main-sidebar .sb-item{justify-content:center;padding:0;margin:1px 6px}
body.sidebar-collapse .main-sidebar .sb-item > i{width:auto}
body.sidebar-collapse .main-sidebar .sb-item.is-active::before{display:none}
body.sidebar-collapse .main-sidebar .sb-item.is-active{background:var(--sb-accent-bg)}
/* hover-expand POR ENCIMA del header */
body.sidebar-collapse .main-sidebar:hover{
  width:var(--sb-w);
  z-index:1050;
  box-shadow:var(--sh-lg);
}
body.sidebar-collapse .main-sidebar:hover .brand-text,
body.sidebar-collapse .main-sidebar:hover .sb-search,
body.sidebar-collapse .main-sidebar:hover .sb-item > span,
body.sidebar-collapse .main-sidebar:hover .sb-group-head .sb-chevron,
body.sidebar-collapse .main-sidebar:hover .sb-group-head > span,
body.sidebar-collapse .main-sidebar:hover .sb-fav-edit{display:inline-block}
body.sidebar-collapse .main-sidebar:hover .brand-link{justify-content:flex-start;padding:8px 14px!important}
body.sidebar-collapse .main-sidebar:hover .brand-image{margin-right:10px!important}
body.sidebar-collapse .main-sidebar:hover .sb-group-head{
  padding:6px 10px;height:auto;margin:0 8px;background:transparent;pointer-events:auto;
}
body.sidebar-collapse .main-sidebar:hover .sb-group-head > *{display:inline-block}
body.sidebar-collapse .main-sidebar:hover .sb-item{justify-content:flex-start;padding:0 12px;margin:1px 8px}
body.sidebar-collapse .main-sidebar:hover .sb-item.is-active::before{display:block}

/* ============================================================
   Modal de favoritos
   ============================================================ */
.sb-modal{
  position:fixed;inset:0;z-index:1060;
  background:rgba(10,12,16,.5);
  display:none;align-items:center;justify-content:center;padding:20px;
}
.sb-modal.is-open{display:flex}
.sb-modal-card{
  width:min(680px,100%);max-height:85vh;overflow:hidden;
  background:var(--bg-1);border:1px solid var(--line);
  border-radius:var(--r-lg);box-shadow:var(--sh-lg);
  display:flex;flex-direction:column;
}
.sb-modal-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 18px;border-bottom:1px solid var(--line);
}
.sb-modal-head h3{margin:0;font-size:16px;font-weight:600;color:var(--ink)}
.sb-modal-body{overflow-y:auto;padding:12px 18px;flex:1}
.sb-modal-foot{
  padding:12px 18px;border-top:1px solid var(--line);
  display:flex;justify-content:flex-end;gap:8px;
}
.sb-modal-cat{margin-bottom:16px}
.sb-modal-cat h4{
  font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--muted);margin:0 0 8px;
}
.sb-modal-cat label{
  display:flex;align-items:center;gap:10px;
  padding:6px 10px;border-radius:var(--r-sm);
  cursor:pointer;color:var(--ink);font-size:13.5px;font-weight:400;
  transition:background var(--t-fast);
}
.sb-modal-cat label:hover{background:var(--bg-2)}
.sb-modal-cat label i{width:18px;text-align:center;color:var(--muted);font-size:12px}
.sb-modal-cat input{accent-color:var(--accent);width:16px;height:16px}

/* ============================================================
   Patrón de pantalla interna (cabecera, bloque, tablas, etc.)
   ============================================================ */
.page-wrap{padding:24px;max-width:none}
.page-wrap.is-admin{max-width:1000px}
.page-head h1{font-size:21px;font-weight:600;color:var(--ink);margin:0 0 6px}
.page-head p{max-width:700px;line-height:1.55;color:var(--muted);font-size:13.5px;margin:0 0 20px}

.block{
  background:var(--bg-1);border:1px solid var(--line);
  border-radius:var(--r-lg);box-shadow:var(--sh-sm);
  overflow:hidden;
}
.block-head{padding:14px 18px;border-bottom:1px solid var(--line);font-weight:600;color:var(--ink)}
.block-body{padding:18px}

.pw-table-wrap{overflow-x:auto}
.pw-table{width:100%;border-collapse:collapse;font-size:13px}
.pw-table thead th{
  font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--muted);
  padding:10px 14px;background:transparent;border-bottom:1px solid var(--line);
  text-align:left;
}
.pw-table tbody td{padding:12.5px 14px;border-bottom:1px solid var(--line);color:var(--ink)}
.pw-table tbody tr:last-child td{border-bottom:0}
.pw-table .num{text-align:right;font-variant-numeric:tabular-nums}
.pw-table tr.is-off{opacity:.5}

.pw-empty{padding:28px;text-align:center;color:var(--muted);font-size:13px}

/* Switch 38×22 */
.pw-switch{position:relative;display:inline-block;width:38px;height:22px}
.pw-switch input{opacity:0;width:0;height:0}
.pw-switch .pw-slider{
  position:absolute;inset:0;cursor:pointer;background:var(--bg-3);border-radius:999px;
  transition:background var(--t);
}
.pw-switch .pw-slider::before{
  content:'';position:absolute;top:2px;left:2px;
  width:18px;height:18px;border-radius:50%;background:#fff;
  box-shadow:0 1px 3px rgba(0,0,0,.2);
  transition:transform var(--t);
}
.pw-switch input:checked + .pw-slider{background:var(--accent)}
.pw-switch input:checked + .pw-slider::before{transform:translateX(16px)}
.pw-switch input:disabled + .pw-slider{opacity:.6;cursor:wait}

/* Pills de estado/categoría */
.pw-pill{
  display:inline-block;padding:2px 10px;border-radius:var(--r-pill);
  font-size:10.5px;font-weight:700;letter-spacing:.03em;
  background:var(--bg-3);color:var(--muted);
}
.pw-pill-success{background:var(--success-soft);color:var(--success)}
.pw-pill-danger {background:var(--danger-soft); color:var(--danger)}
.pw-pill-warning{background:var(--warning-soft);color:var(--warning)}
.pw-pill-info   {background:var(--info-soft);   color:var(--info)}

/* Toast abajo-derecha */
.pw-toast-stack{position:fixed;right:20px;bottom:20px;z-index:1070;display:flex;flex-direction:column;gap:8px}
.pw-toast{
  background:var(--bg-1);border:1px solid var(--line);border-radius:var(--r);
  padding:10px 14px;box-shadow:var(--sh-lg);color:var(--ink);
  font-size:13px;min-width:220px;max-width:360px;
  opacity:0;transform:translateY(8px);
  transition:opacity var(--t),transform var(--t);
}
.pw-toast.is-shown{opacity:1;transform:translateY(0)}
.pw-toast.is-error{border-left:3px solid var(--danger)}
.pw-toast.is-success{border-left:3px solid var(--success)}

/* ============================================================
   Overrides de AdminLTE (compat con páginas existentes)
   ============================================================ */
.main-header .navbar-nav .nav-link[data-widget="pushmenu"]{display:none} /* usamos hdr-hamb */
.main-header .navbar-nav{display:none} /* nav legacy; renderizamos nuestro header dentro de .hdr-left/.hdr-right */
.main-header .tjca-header{display:flex;align-items:center;width:100%;gap:6px}

/* Tarjetas / botones / forms / tablas antiguos siguen funcionando: */
.card{background:var(--bg-1);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-sm)}
.card-header{background:var(--bg-2);border-bottom:1px solid var(--line);color:var(--ink)}
.card-body,.card-footer{background:transparent}

.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:700;border-radius:var(--r)}
.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--accent-ink)}
.btn-secondary,.btn-default{background:var(--bg-2);border-color:var(--line);color:var(--ink);border-radius:var(--r)}
.btn-secondary:hover,.btn-default:hover{background:var(--bg-3)}

.form-control{background:var(--bg-1);border:1px solid var(--line);color:var(--ink);border-radius:var(--r)}
.form-control:focus{border-color:var(--accent);box-shadow:0 0 0 .2rem rgba(212,173,24,.15)}
label{color:var(--muted)}

.table{background:var(--bg-1);color:var(--ink)}
.table th{background:var(--bg-2)!important;color:var(--ink)!important;border-color:var(--line)!important}
.table td{background:var(--bg-1);color:var(--ink);border-color:var(--line)}
.table-hover tbody tr:hover td{background:var(--bg-2)}
.table-bordered th,.table-bordered td{border-color:var(--line)!important}

.clientes-razon-social{color:var(--ink)!important}
.clientes-razon-social:hover{color:var(--accent)!important}

.btn-action-danger{color:var(--danger)}
.btn-action-danger:hover{color:#fff;background:var(--danger);border-color:var(--danger)}

.dropdown-menu{background:var(--bg-1);border:1px solid var(--line);border-radius:var(--r-lg)}
.user-header{background:var(--accent)!important;color:var(--accent-ink)!important}

/* ============================================================
   GESTIÓN INTERNA (preservado desde la versión anterior)
   ============================================================ */
.gi-page{--gi-bg:#ffffff;--gi-bg-head:#f6f8fb;--gi-bg-row:#ffffff;--gi-bg-alt:#f9fafb;--gi-bg-hover:#f0f4ff;--gi-border:#e5e7eb;--gi-text:#374151;--gi-text-soft:#6b7280;--gi-text-head:#111827;--gi-input-bg:#ffffff;--gi-input-bd:#d1d5db;--gi-radius:10px;--gi-shadow:0 2px 12px rgba(15,23,42,.06)}
body.dark-mode .gi-page,.dark-mode .gi-page{--gi-bg:#232a31;--gi-bg-head:#2b333b;--gi-bg-row:#1f252b;--gi-bg-alt:#242c33;--gi-bg-hover:#2d3742;--gi-border:#3a434d;--gi-text:#d7dee5;--gi-text-soft:#9aa8b6;--gi-text-head:#f1f5f9;--gi-input-bg:#2b333b;--gi-input-bd:#4b5662;--gi-shadow:0 2px 16px rgba(0,0,0,.22)}
.gi-filter-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.gi-select{height:30px;padding:0 8px;border-radius:6px;border:1px solid var(--gi-input-bd);background:var(--gi-input-bg);color:var(--gi-text);font-size:.8rem;min-width:170px}
.gi-btn-filter{height:30px;padding:0 14px;border-radius:6px;border:none;background:#3b82f6;color:#fff;font-size:.8rem;cursor:pointer;font-weight:600}
.gi-btn-filter:hover{background:#2563eb}
.gi-btn-clear{height:30px;padding:0 12px;border-radius:6px;border:1px solid var(--gi-input-bd);background:transparent;color:var(--gi-text-soft);font-size:.8rem;line-height:28px;text-decoration:none;display:inline-block}
.gi-btn-clear:hover{color:var(--gi-text);text-decoration:none}
.gi-count{margin-left:auto;font-size:.78rem;color:var(--gi-text-soft)}
.gi-card{background:var(--gi-bg);border:1px solid var(--gi-border);border-radius:var(--gi-radius);box-shadow:var(--gi-shadow);overflow:hidden}
.gi-table{width:100%;border-collapse:collapse;font-size:.82rem;color:var(--gi-text)}
.gi-table thead tr{background:var(--gi-bg-head);border-bottom:2px solid var(--gi-border)}
.gi-table th{padding:6px 10px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--gi-text-soft);white-space:nowrap}
.gi-table td{padding:5px 10px;border-bottom:1px solid var(--gi-border);vertical-align:middle}
.gi-table tbody tr:nth-child(even) td{background:var(--gi-bg-alt)}
.gi-table tbody tr:hover td{background:var(--gi-bg-hover)}
.gi-table .gi-id{font-weight:700;color:var(--gi-text-soft);width:44px}
.gi-table .gi-nowrap{white-space:nowrap}
.gi-table .gi-text-truncate{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gi-table .gi-empty{text-align:center;color:var(--gi-text-soft);padding:24px}
.gi-table .gi-actions{white-space:nowrap;text-align:right}
.gi-btn-sm{display:inline-block;padding:2px 9px;border-radius:5px;font-size:.75rem;font-weight:600;text-decoration:none;border:1px solid var(--gi-border);color:var(--gi-text);background:transparent;transition:background .15s}
.gi-btn-sm:hover{background:var(--gi-bg-hover);text-decoration:none;color:var(--gi-text)}
.gi-btn-sm.gi-btn-primary{background:#3b82f6;color:#fff;border-color:#3b82f6}
.gi-btn-sm.gi-btn-primary:hover{background:#2563eb;color:#fff}
.gi-btn-sm.gi-btn-danger{background:#ef4444;color:#fff;border-color:#ef4444}
.gi-btn-sm.gi-btn-danger:hover{background:#dc2626;color:#fff}
.gi-btn-sm.gi-btn-success{background:#16a34a;color:#fff;border-color:#16a34a}
.gi-btn-sm.gi-btn-success:hover{background:#15803d;color:#fff}
.gi-pagination{padding:8px 12px;border-top:1px solid var(--gi-border);background:var(--gi-bg-head)}
.gi-pagination .pagination{margin:0}
.gi-badge{display:inline-block;padding:2px 8px;border-radius:20px;font-size:.72rem;font-weight:700;letter-spacing:.03em;white-space:nowrap}
.gi-badge-pendiente{background:#fef3c7;color:#92400e}
.gi-badge-en_revision{background:#dbeafe;color:#1e40af}
.gi-badge-aprobado{background:#d1fae5;color:#065f46}
.gi-badge-rechazado{background:#fee2e2;color:#991b1b}
.gi-badge-cerrado{background:#f3f4f6;color:#374151}
body.dark-mode .gi-badge-pendiente,.dark-mode .gi-badge-pendiente{background:#78350f;color:#fde68a}
body.dark-mode .gi-badge-en_revision,.dark-mode .gi-badge-en_revision{background:#1e3a8a;color:#bfdbfe}
body.dark-mode .gi-badge-aprobado,.dark-mode .gi-badge-aprobado{background:#064e3b;color:#a7f3d0}
body.dark-mode .gi-badge-rechazado,.dark-mode .gi-badge-rechazado{background:#7f1d1d;color:#fecaca}
body.dark-mode .gi-badge-cerrado,.dark-mode .gi-badge-cerrado{background:#374151;color:#d1d5db}
.inc-card{background:var(--bg-1);border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:16px}
.inc-card-header{padding:12px 18px;border-bottom:1px solid var(--line);background:var(--bg-2);display:flex;align-items:center;gap:8px;font-weight:600;font-size:.9rem;color:var(--ink)}
.inc-card-header i{opacity:.55;font-size:.85rem}
.inc-card-body{padding:18px}
.inc-field-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:3px}
.inc-field-value{font-size:.92rem;color:var(--ink)}
.inc-vehiculo-card{display:flex;gap:0;border:1px solid var(--line);overflow:hidden}
.inc-vehiculo-col{flex:1;padding:12px 16px;border-right:1px solid var(--line)}
.inc-vehiculo-col:last-child{border-right:none}
.inc-detalle-pre{white-space:pre-line;background:var(--bg-2);border-radius:6px;padding:10px 14px;border:1px solid var(--line)}
.inc-resolved-block{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;padding:20px;margin-bottom:16px}
body.dark-mode .inc-resolved-block{background:#052e16;border-color:#166534}
.inc-gestion-block{background:#fffbeb;border:1px solid #fde68a;border-radius:10px;padding:20px;margin-bottom:16px}
body.dark-mode .inc-gestion-block{background:#1c1500;border-color:#854d0e}
.inc-resolve-form{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;padding:20px;margin-bottom:16px}
body.dark-mode .inc-resolve-form{background:#052e16;border-color:#166534}
.veh-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin-top:4px}
.veh-card{border:2px solid var(--line);border-radius:8px;padding:12px 14px;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s;user-select:none;background:var(--bg-1)}
.veh-card:hover{border-color:var(--muted);background:var(--bg-2)}
.veh-card.selected{border-color:var(--accent);background:var(--bg-2);box-shadow:0 0 0 3px rgba(212,173,24,.18)}
.veh-card-number{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:5px}
.veh-card-conductor{font-weight:600;font-size:.9rem;color:var(--ink);margin-bottom:4px;line-height:1.3}
.veh-card-patente{font-family:monospace;font-size:.82rem;color:var(--muted)}
.veh-card-empty{padding:10px 14px;font-size:.85rem;color:var(--muted);font-style:italic;border:1px dashed var(--line);border-radius:8px}
.veh-resumen{display:flex;gap:0;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--bg-2);margin-top:8px}
.veh-resumen-col{flex:1;padding:10px 14px;border-right:1px solid var(--line)}
.veh-resumen-col:last-child{border-right:none}
.veh-resumen-label{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:2px}
.veh-resumen-value{font-size:.88rem;font-weight:600;color:var(--ink)}
.cambio-card{border-radius:8px;padding:16px;margin-top:12px}
.cambio-card-conductor{background:var(--bg-2);border:1px solid var(--line)}
.cambio-card-camion{background:var(--bg-2);border:1px solid var(--line)}
.gi-tabs{display:flex;gap:4px;flex-wrap:wrap}
.gi-tab{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:6px;font-size:.85rem;font-weight:500;color:var(--muted);text-decoration:none;background:transparent;border:1px solid transparent;transition:all .15s}
.gi-tab:hover{background:var(--bg-2);text-decoration:none;color:var(--ink)}
.gi-tab-active{background:var(--bg-1);border-color:var(--line);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.08)}
.gi-tab-active.gi-tab-danger{border-color:#dc3545;color:#dc3545}
.gi-tab-active.gi-tab-warning{border-color:#b45309;color:#b45309}
.gi-tab-active.gi-tab-success{border-color:#16a34a;color:#16a34a}
body.dark-mode .gi-tab-active.gi-tab-warning{border-color:#fbbf24;color:#fbbf24}
body.dark-mode .gi-tab-active.gi-tab-success{border-color:#4ade80;color:#4ade80}
.gi-tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;border-radius:10px;font-size:.75rem;font-weight:700;background:var(--bg-3);color:var(--muted)}
.gi-tab-count-danger{background:#fee2e2;color:#842029}
.gi-tab-count-warning{background:#fef3c7;color:#713f12}
body.dark-mode .gi-tab-count-danger{background:#7f1d1d;color:#fecaca}
body.dark-mode .gi-tab-count-warning{background:#78350f;color:#fde68a}
.ot-inc-row-open{background:#fff5f5}
body.dark-mode .ot-inc-row-open{background:#1a0d0d}
