/* RHCheckPoint — tema inspirado en FiscoClic People */
:root {
  --azul: #1e5eff; --azul-osc: #0d47d9; --azul-claro: #e8efff; --azul-sidebar: #1c5cf5; --azul-sidebar2: #1749d6;
  --verde: #2ecc71; --rojo: #e74c3c; --amarillo: #ffb400; --morado: #8e44ad; --gris: #6c7a91; --gris-claro: #f4f6fb; --borde: #e6eaf2;
  --texto: #2b3446; --sidebar-w: 256px; --header-h: 62px; --radio: 12px; --sombra: 0 4px 18px rgba(30, 94, 255, 0.08);
}
* { box-sizing: border-box; }
html, body { height: 100%; }
body { margin: 0; font-family: 'Poppins', system-ui, -apple-system, 'Segoe UI', sans-serif; font-size: 13px; color: var(--texto); background: var(--azul-sidebar); }
a { color: var(--azul); }
h1, h2, h3, h4, h5, h6 { font-weight: 600; color: var(--texto); }
.text-azul { color: var(--azul) !important; }
.bg-azul { background: var(--azul) !important; color: #fff; }
.fw-600 { font-weight: 600; } .fw-700 { font-weight: 700; }
.text-11 { font-size: 11px; } .text-12 { font-size: 12px; } .text-14 { font-size: 14px; } .text-16 { font-size: 16px; } .text-18 { font-size: 18px; } .text-24 { font-size: 24px; } .text-32 { font-size: 32px; } .text-40 { font-size: 40px; }
.cursor { cursor: pointer; }
.hidden { display: none !important; }

/* ---------- Layout ---------- */
.rh-sidebar { position: fixed; left: 0; top: 0; bottom: 0; width: var(--sidebar-w); background: var(--azul-sidebar); color: #fff; z-index: 1030; display: flex; flex-direction: column; transition: transform .2s; }
.rh-brand { height: var(--header-h); display: flex; align-items: center; padding: 0 18px; gap: 12px; }
.rh-brand .logo { font-size: 24px; font-weight: 700; color: #fff; letter-spacing: -0.5px; text-decoration: none; display: flex; align-items: center; gap: 8px; }
.rh-brand .logo i { font-size: 22px; }
.rh-brand .toggle { margin-left: auto; width: 26px; height: 14px; background: rgba(255,255,255,.35); border-radius: 8px; position: relative; cursor: pointer; }
.rh-brand .toggle::after { content: ''; position: absolute; left: 2px; top: 2px; width: 10px; height: 10px; border-radius: 50%; background: #fff; }
.rh-menu { list-style: none; margin: 8px 0; padding: 0 10px; overflow-y: auto; flex: 1; }
.rh-menu::-webkit-scrollbar { width: 5px; } .rh-menu::-webkit-scrollbar-thumb { background: rgba(255,255,255,.3); border-radius: 3px; }
.rh-menu > li > a { display: flex; align-items: center; gap: 12px; padding: 11px 14px; color: #fff; text-decoration: none; font-weight: 600; font-size: 13.5px; border-radius: 8px; margin: 3px 0; opacity: .92; }
.rh-menu > li > a i.ico { width: 22px; text-align: center; font-size: 18px; }
.rh-menu > li > a .arrow { margin-left: auto; font-size: 11px; transition: transform .2s; }
.rh-menu > li.open > a .arrow { transform: rotate(90deg); }
.rh-menu > li > a:hover, .rh-menu > li.active > a { background: rgba(255,255,255,.22); opacity: 1; }
.rh-menu ul { list-style: none; padding: 0 0 4px 30px; margin: 0; display: none; }
.rh-menu li.open ul { display: block; }
.rh-menu ul a { display: flex; align-items: center; gap: 8px; color: #fff; text-decoration: none; padding: 7px 12px; font-size: 12.5px; opacity: .85; border-radius: 6px; }
.rh-menu ul a:hover, .rh-menu ul a.active { opacity: 1; background: rgba(255,255,255,.15); }
.badge-nuevo { background: var(--verde); color: #fff; font-size: 9px; padding: 2px 6px; border-radius: 6px; font-weight: 700; margin-left: 4px; }
.rh-sidebar .footer-side { padding: 12px 18px; font-size: 10.5px; opacity: .6; }

.rh-header { position: fixed; top: 0; left: var(--sidebar-w); right: 0; height: var(--header-h); background: var(--azul-sidebar); color: #fff; display: flex; align-items: center; padding: 0 22px 0 30px; z-index: 1020; }
.rh-header .user { line-height: 1.15; }
.rh-header .user .n { font-size: 11px; font-weight: 500; text-transform: uppercase; opacity: .9; }
.rh-header .user .e { font-size: 16px; font-weight: 600; }
.rh-header .acciones { margin-left: auto; display: flex; align-items: center; gap: 10px; }
.rh-header .acciones .ico { width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; color: #fff; font-size: 18px; cursor: pointer; text-decoration: none; }
.rh-header .acciones .ico:hover { background: rgba(255,255,255,.2); }
.rh-header .acciones .btn-verde { background: var(--verde); color: #fff; border: 0; font-weight: 700; font-size: 11px; padding: 7px 14px; border-radius: 6px; }
.rh-main { margin-left: var(--sidebar-w); margin-top: var(--header-h); background: #fff; min-height: calc(100vh - var(--header-h)); border-top-left-radius: 22px; padding: 22px 26px 40px; }
.rh-burger { display: none; }
@media (max-width: 991px) {
  .rh-sidebar { transform: translateX(-100%); } body.side-open .rh-sidebar { transform: none; }
  .rh-header { left: 0; padding-left: 14px; } .rh-main { margin-left: 0; border-radius: 0; padding: 14px 12px 40px; }
  .rh-burger { display: inline-flex; margin-right: 12px; }
  .rh-header .user .e { font-size: 13px; }
}

/* ---------- Componentes ---------- */
.page-title { font-size: 18px; font-weight: 600; margin: 0 0 14px; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.page-title .right { margin-left: auto; display: flex; align-items: center; gap: 10px; }
.card { border: 1px solid var(--borde); border-radius: var(--radio); box-shadow: var(--sombra); }
.card-body { padding: 16px 18px; }
.card .heading { font-size: 12px; font-weight: 700; color: var(--texto); margin: 0 0 6px; }
.kpi { text-align: center; padding: 18px 12px; }
.kpi i { font-size: 26px; color: var(--azul); }
.kpi .v { font-size: 18px; font-weight: 700; margin: 6px 0 2px; }
.kpi .s { font-size: 12px; color: var(--gris); }
.kpi.rojo i { color: var(--rojo); } .kpi.verde i { color: var(--verde); } .kpi.amarillo i { color: var(--amarillo); } .kpi.morado i { color: var(--morado); }

.filtro-label { font-size: 12px; font-weight: 700; margin-bottom: 4px; display: block; }
.btn { font-family: inherit; font-weight: 600; border-radius: 6px; font-size: 12.5px; }
.btn-primary { background: var(--azul); border-color: var(--azul); } .btn-primary:hover { background: var(--azul-osc); border-color: var(--azul-osc); }
.btn-outline-primary { color: var(--azul); border-color: var(--azul); } .btn-outline-primary:hover { background: var(--azul); border-color: var(--azul); }
.btn-success { background: #23a55a; border-color: #23a55a; }
.btn-pill { border-radius: 30px; padding: 6px 18px; }
.btn-circle { width: 40px; height: 40px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; padding: 0; font-size: 16px; }
.btn-ico-round { width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--borde); background: #fff; color: var(--gris); display: inline-flex; align-items: center; justify-content: center; font-size: 17px; margin-right: 6px; box-shadow: 0 2px 6px rgba(0,0,0,.06); }
.btn-ico-round:hover { color: var(--azul); border-color: var(--azul); }
.form-control, .custom-select { font-family: inherit; font-size: 12.5px; border-radius: 6px; border-color: #dbe1ec; height: calc(1.5em + .75rem + 4px); }
.form-control:focus { border-color: var(--azul); box-shadow: 0 0 0 .15rem rgba(30,94,255,.15); }
.form-control-sm { height: calc(1.5em + .5rem + 2px); }
label { font-size: 12px; margin-bottom: 4px; }
.sel-azul { background: var(--azul) !important; color: #fff !important; border-color: var(--azul) !important; font-weight: 600; text-transform: uppercase; font-size: 11.5px; }
.sel-azul option { background: #fff; color: var(--texto); text-transform: none; }
.sel-verde { background: #23a55a !important; color: #fff !important; border-color: #23a55a !important; font-weight: 600; text-transform: uppercase; font-size: 11.5px; }
.sel-verde option { background: #fff; color: var(--texto); }
.patron-pill { display: inline-flex; align-items: stretch; border: 1px solid var(--borde); border-radius: 30px; overflow: hidden; background: #fff; }
.patron-pill .lbl { background: var(--gris-claro); padding: 7px 14px; font-weight: 600; font-size: 12.5px; display: flex; align-items: center; gap: 8px; }
.patron-pill select { border: 0; background: #fff; padding: 0 12px; font-family: inherit; font-size: 12.5px; max-width: 320px; outline: none; }

/* Tabs */
.nav-tabs { border-bottom: 2px solid #dfe6f5; margin-bottom: 14px; }
.nav-tabs .nav-link { border: 0; color: var(--texto); font-weight: 500; font-size: 13.5px; padding: 9px 16px; border-radius: 8px 8px 0 0; display: flex; align-items: center; gap: 7px; cursor: pointer; }
.nav-tabs .nav-link i { font-size: 16px; }
.nav-tabs .nav-link.active { background: var(--azul); color: #fff; }
.nav-tabs .nav-link:hover:not(.active) { background: var(--azul-claro); }
.nav-pills .nav-link { color: var(--azul); font-weight: 500; border-radius: 8px; padding: 6px 14px; }
.nav-pills .nav-link.active { background: var(--azul); }

/* Switch */
.switch { position: relative; display: inline-block; width: 42px; height: 22px; vertical-align: middle; margin: 0; }
.switch input { opacity: 0; width: 0; height: 0; }
.switch .slider { position: absolute; inset: 0; background: #d8deea; border-radius: 22px; cursor: pointer; transition: .2s; }
.switch .slider::before { content: ''; position: absolute; width: 18px; height: 18px; left: 2px; top: 2px; background: #fff; border-radius: 50%; transition: .2s; box-shadow: 0 1px 3px rgba(0,0,0,.2); }
.switch input:checked + .slider { background: var(--azul); }
.switch input:checked + .slider::before { transform: translateX(20px); }
.switch-lbl { font-size: 11px; color: var(--gris); display: block; text-align: center; }
.help { display: inline-flex; width: 15px; height: 15px; border-radius: 50%; background: var(--azul); color: #fff; font-size: 10px; align-items: center; justify-content: center; margin-left: 4px; cursor: help; font-weight: 700; }

/* Tablas */
.tabla-azul { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 12px; }
.tabla-azul thead th { background: var(--azul); color: #fff; font-weight: 700; padding: 8px 10px; font-size: 11px; white-space: nowrap; position: sticky; top: 0; z-index: 2; }
.tabla-azul thead th:first-child { border-top-left-radius: 8px; } .tabla-azul thead th:last-child { border-top-right-radius: 8px; }
.tabla-azul tbody td { padding: 8px 10px; border-bottom: 1px solid var(--borde); vertical-align: middle; }
.tabla-azul tbody tr:hover td { background: #f7f9ff; }
.tabla-azul .sub { font-size: 11px; color: var(--gris); }
.tabla-blanca { width: 100%; font-size: 12px; }
.tabla-blanca thead th { font-weight: 700; padding: 8px 10px; border-bottom: 2px solid #dfe6f5; font-size: 11.5px; white-space: nowrap; }
.tabla-blanca tbody td { padding: 8px 10px; border-bottom: 1px solid var(--borde); vertical-align: middle; }
.tabla-blanca tbody tr:hover td { background: #f7f9ff; }
.tabla-scroll { overflow: auto; max-height: 62vh; border-radius: 8px; border: 1px solid var(--borde); }
.avatar { width: 34px; height: 34px; border-radius: 50%; background: var(--azul); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-weight: 700; font-size: 11px; object-fit: cover; flex: none; }
.avatar.lg { width: 56px; height: 56px; font-size: 16px; }
.avatar.xl { width: 110px; height: 110px; font-size: 30px; }
.badge-est { display: inline-block; padding: 3px 9px; border-radius: 12px; font-size: 10.5px; font-weight: 700; white-space: nowrap; }
.est-A, .est-Asistencia, .est-Aprobada, .est-sync, .est-Activo { background: #dff7e8; color: #1c8b45; }
.est-R, .est-Retardo, .est-pending, .est-Pendiente, .est-P { background: #fff3d6; color: #b07400; }
.est-F, .est-Falta, .est-Rechazada, .est-error, .est-Baja, .est-SS, .est-\.Sin\ salida { background: #fde3e1; color: #c0392b; }
.est-D, .est-Descanso, .est-none { background: #eef0f5; color: #6c7a91; }
.est-HE, .est-EJ, .est-En\ jornada { background: #e3ecff; color: var(--azul); }
.punto { display: inline-block; width: 11px; height: 11px; border-radius: 50%; background: #cfd6e4; }
.punto.on { background: var(--azul); }
.dot-color { display: inline-block; width: 12px; height: 12px; border-radius: 50%; margin-right: 6px; vertical-align: middle; }

/* Horarios (cards) */
.horario-card { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-left: 4px solid var(--azul); background: #fff; border-radius: 6px; margin-bottom: 8px; cursor: pointer; box-shadow: 0 1px 4px rgba(0,0,0,.05); }
.horario-card.sel { background: var(--azul-claro); }
.horario-card .t { font-weight: 700; color: var(--azul); font-size: 13px; text-transform: uppercase; }
.horario-card .s { font-size: 11px; color: var(--gris); }
.horario-card .s b { color: var(--texto); }
.horario-card .edit { margin-left: auto; width: 34px; height: 34px; border-radius: 50%; background: var(--azul); color: #fff; display: inline-flex; align-items: center; justify-content: center; border: 0; }
.radio-circ { width: 22px; height: 22px; border-radius: 50%; border: 2px solid #2b3446; display: inline-block; flex: none; position: relative; }
.radio-circ.on { border-color: var(--azul); } .radio-circ.on::after { content: ''; position: absolute; inset: 4px; border-radius: 50%; background: var(--azul); }
.plan { border: 1px solid var(--borde); border-radius: 10px; padding: 14px 10px; text-align: center; cursor: pointer; height: 100%; position: relative; }
.plan i { font-size: 34px; color: var(--azul); margin-bottom: 6px; display: block; }
.plan .t { font-size: 15px; font-weight: 500; } .plan .d { font-size: 11px; color: var(--gris); }
.plan.sel { border-color: var(--azul); background: #f2f6ff; box-shadow: 0 0 0 1px var(--azul); }
.plan.sel::after { content: '●'; position: absolute; right: 10px; top: 6px; color: var(--azul); font-size: 14px; }
.acordeon .item { border: 1px solid var(--borde); border-radius: 8px; margin-bottom: 8px; }
.acordeon .hd { padding: 12px 16px; font-size: 16px; color: var(--azul); font-weight: 500; cursor: pointer; display: flex; align-items: center; gap: 10px; }
.acordeon .hd::before { content: '\f078'; font-family: 'Font Awesome 6 Free'; font-weight: 900; font-size: 12px; }
.acordeon .item.open .hd::before { content: '\f077'; }
.acordeon .bd { display: none; padding: 6px 16px 16px; border-top: 1px solid var(--borde); }
.acordeon .item.open .bd { display: block; }

/* Jornada */
.j-kpi { border: 1px solid var(--borde); border-left: 4px solid var(--azul); border-radius: 8px; padding: 10px 14px; display: flex; align-items: center; gap: 10px; }
.j-kpi .ic { width: 30px; height: 30px; border-radius: 8px; background: var(--azul-claro); color: var(--azul); display: inline-flex; align-items: center; justify-content: center; }
.j-kpi .l { font-size: 9.5px; text-transform: uppercase; color: var(--gris); font-weight: 700; }
.j-kpi .v { font-size: 16px; font-weight: 700; } .j-kpi .s { font-size: 10px; color: var(--gris); }
.j-kpi.verde { border-left-color: var(--verde); } .j-kpi.verde .ic { background: #dff7e8; color: #1c8b45; }
.j-kpi.amarillo { border-left-color: var(--amarillo); } .j-kpi.amarillo .ic { background: #fff3d6; color: #b07400; }
.j-kpi.morado { border-left-color: var(--morado); } .j-kpi.morado .ic { background: #f1e6f8; color: var(--morado); }
.j-kpi.rojo { border-left-color: var(--rojo); } .j-kpi.rojo .ic { background: #fde3e1; color: #c0392b; }
.j-kpi.gris { border-left-color: #9aa5b8; } .j-kpi.gris .ic { background: #eef0f5; color: #6c7a91; }
.tabla-jornada { width: 100%; font-size: 11.5px; border-collapse: collapse; }
.tabla-jornada thead th { background: #0f2350; color: #fff; padding: 8px 6px; text-align: center; font-size: 10.5px; }
.tabla-jornada thead th.hoy { background: var(--azul); }
.tabla-jornada thead th.emp { text-align: left; padding-left: 12px; min-width: 200px; }
.tabla-jornada tbody td { padding: 7px 6px; text-align: center; border-bottom: 1px solid var(--borde); }
.tabla-jornada tbody td.emp { text-align: left; padding-left: 12px; }
.tabla-jornada .dob { color: #b07400; font-weight: 700; } .tabla-jornada .tri { color: var(--rojo); font-weight: 700; }
.chip { display: inline-flex; align-items: center; gap: 5px; padding: 3px 10px; border-radius: 14px; font-size: 11px; font-weight: 600; border: 1px solid; }
.chip.rojo { color: var(--rojo); border-color: #f5c6c2; background: #fff5f4; } .chip.amarillo { color: #b07400; border-color: #ffe1a1; background: #fffaf0; } .chip.verde { color: #1c8b45; border-color: #b8ecc9; background: #f2fcf5; }
.sem-rebaso { background: var(--rojo); } .sem-proximo { background: var(--amarillo); } .sem-ok { background: var(--verde); }

/* Calendario */
.cal { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.cal .dh { text-align: center; font-weight: 700; font-size: 11px; color: var(--gris); padding: 6px 0; }
.cal .dc { min-height: 88px; border: 1px solid var(--borde); border-radius: 6px; padding: 4px; font-size: 11px; cursor: pointer; background: #fff; }
.cal .dc.otro { background: #fafbfd; color: #b7c0d0; } .cal .dc.hoy { border-color: var(--azul); box-shadow: inset 0 0 0 1px var(--azul); }
.cal .dc .n { font-weight: 700; margin-bottom: 3px; }
.cal .ev { display: block; color: #fff; padding: 2px 5px; border-radius: 4px; margin-bottom: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 10px; }
.ev-green { background: #23a55a; } .ev-blue { background: var(--azul); } .ev-red { background: var(--rojo); } .ev-pink { background: #e84393; } .ev-orange { background: #f39c12; } .ev-purple { background: var(--morado); } .ev-info { background: #17a2b8; }
.turno-week { display: grid; grid-template-columns: 200px repeat(7, 1fr); font-size: 11px; border: 1px solid var(--borde); border-radius: 8px; overflow: hidden; }
.turno-week .h { background: var(--gris-claro); font-weight: 700; padding: 8px; text-align: center; border-bottom: 1px solid var(--borde); }
.turno-week .c { padding: 6px; border-bottom: 1px solid var(--borde); border-left: 1px solid var(--borde); min-height: 44px; cursor: pointer; }
.turno-week .c:hover { background: #f7f9ff; }
.turno-week .c.hoy { background: #f2f6ff; }
.turno-week .n { font-weight: 600; padding: 6px 10px; border-bottom: 1px solid var(--borde); display: flex; align-items: center; }
.turno-tag { display: block; color: #fff; border-radius: 4px; padding: 3px 6px; font-size: 10px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* Organigrama */
.org { display: flex; flex-direction: column; align-items: center; }
.org ul { list-style: none; padding-top: 20px; position: relative; display: flex; justify-content: center; margin: 0; }
.org li { padding: 20px 6px 0; position: relative; text-align: center; }
.org li::before, .org li::after { content: ''; position: absolute; top: 0; right: 50%; width: 50%; height: 20px; border-top: 2px solid #cfd6e4; }
.org li::after { right: auto; left: 50%; border-left: 2px solid #cfd6e4; }
.org li:only-child::before, .org li:only-child::after { display: none; } .org li:only-child { padding-top: 0; }
.org li:first-child::before, .org li:last-child::after { border: 0; }
.org li:last-child::before { border-right: 2px solid #cfd6e4; border-radius: 0 5px 0 0; } .org li:first-child::after { border-radius: 5px 0 0 0; }
.org ul ul::before { content: ''; position: absolute; top: 0; left: 50%; border-left: 2px solid #cfd6e4; height: 20px; }
.org .node { display: inline-block; border: 1px solid var(--borde); border-radius: 10px; padding: 8px 12px; background: #fff; box-shadow: var(--sombra); min-width: 150px; }
.org .node .nm { font-weight: 700; font-size: 12px; } .org .node .pu { font-size: 10.5px; color: var(--gris); }

/* Biométricos */
.bio-side { border-radius: 10px; border: 1px solid var(--borde); overflow: hidden; }
.bio-side .hd { background: var(--azul); color: #fff; padding: 10px 14px; font-weight: 700; display: flex; align-items: center; }
.bio-dev { padding: 10px 14px; border-bottom: 1px solid var(--borde); cursor: pointer; }
.bio-dev.sel, .bio-dev:hover { background: var(--azul-claro); }
.bio-dev .n { font-weight: 600; } .bio-dev .s { font-size: 11px; color: var(--gris); }
.online { display: inline-block; width: 9px; height: 9px; border-radius: 50%; background: #cfd6e4; } .online.on { background: var(--verde); }

/* Login */
.login-wrap { min-height: 100vh; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, #1c5cf5, #0c3ab8); padding: 20px; }
.login-card { background: #fff; border-radius: 16px; padding: 36px 32px; width: 100%; max-width: 400px; box-shadow: 0 20px 60px rgba(0,0,0,.25); }
.login-card .logo { font-size: 30px; font-weight: 700; color: var(--azul); text-align: center; margin-bottom: 4px; }

/* Misc */
.toast-rh { position: fixed; right: 20px; bottom: 20px; z-index: 2000; min-width: 260px; max-width: 380px; background: #2b3446; color: #fff; padding: 12px 16px; border-radius: 10px; box-shadow: 0 8px 30px rgba(0,0,0,.25); font-size: 13px; display: flex; gap: 10px; align-items: center; animation: up .2s; }
.toast-rh.ok { background: #23a55a; } .toast-rh.err { background: var(--rojo); } .toast-rh.warn { background: var(--amarillo); color: #333; }
@keyframes up { from { transform: translateY(10px); opacity: 0; } }
.modal-header { background: #fff; border-bottom: 1px solid var(--borde); }
.modal-title { color: var(--azul); font-weight: 500; font-size: 18px; }
.modal-content { border-radius: 12px; border: 0; }
.empty { text-align: center; color: var(--gris); padding: 40px 10px; }
.empty i { font-size: 44px; color: #c9d1e0; margin-bottom: 8px; display: block; }
.loading { text-align: center; padding: 40px; color: var(--gris); }
.loading i { font-size: 28px; color: var(--azul); }
.foto-drop { border: 2px dashed #cfd6e4; border-radius: 12px; padding: 18px; text-align: center; color: var(--gris); cursor: pointer; }
.foto-drop img { max-width: 150px; max-height: 150px; border-radius: 50%; object-fit: cover; }
.primeros-pasos { position: fixed; right: 0; top: 45%; background: #fff; border: 1px solid var(--borde); border-right: 0; border-radius: 10px 0 0 10px; padding: 14px 8px; writing-mode: vertical-rl; transform: rotate(180deg); color: #e67e22; font-weight: 700; font-size: 11px; letter-spacing: 1px; cursor: pointer; box-shadow: var(--sombra); z-index: 1010; }
.mapa { height: 420px; border-radius: 10px; border: 1px solid var(--borde); }
.mapa-sm { height: 260px; border-radius: 10px; border: 1px solid var(--borde); }
.canal-ico { font-size: 12px; color: var(--gris); margin-left: 4px; }
.leaflet-container { font-family: inherit; }
.check-thumb { width: 36px; height: 36px; border-radius: 6px; object-fit: cover; cursor: pointer; }
.qr-box { display: inline-block; padding: 10px; background: #fff; border: 1px solid var(--borde); border-radius: 10px; }
.dt-length { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; }
.dt-length select { width: auto; }
.pag { display: flex; gap: 4px; align-items: center; flex-wrap: wrap; }
.pag .btn { padding: 3px 10px; }
.ayuda-chat { position: fixed; right: 26px; bottom: 26px; width: 56px; height: 56px; border-radius: 50%; background: var(--azul); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 26px; box-shadow: 0 8px 20px rgba(30,94,255,.4); cursor: pointer; z-index: 1010; }
.progress { height: 8px; border-radius: 6px; }
