/* =========================================================
   QEATZUL THEME - POST131
   Tema visual soft/glass para Checador Web.
   Solo presentación. No modifica lógica, rutas ni BD.
   ========================================================= */
:root{
  --qz-bg-1:#eef6ff;
  --qz-bg-2:#ffffff;
  --qz-bg-3:#dbeafe;
  --qz-blue-900:#0b1f4d;
  --qz-blue-800:#102c6d;
  --qz-blue-700:#1746a2;
  --qz-blue-600:#2563eb;
  --qz-blue-500:#3b82f6;
  --qz-cyan:#38bdf8;
  --qz-gold:#c6932f;
  --qz-gold-soft:#fff4d6;
  --qz-green:#16a34a;
  --qz-red:#dc2626;
  --qz-yellow:#f59e0b;
  --qz-text:#13213a;
  --qz-muted:#64748b;
  --qz-border:rgba(37,99,235,.14);
  --qz-shadow:0 18px 45px rgba(15,23,42,.10);
  --qz-shadow-soft:0 10px 28px rgba(15,23,42,.075);
  --qz-radius:22px;
  --qz-radius-sm:14px;
}
html{background:var(--qz-bg-1);}
body.qz-theme,
body.notranslate{
  min-height:100vh;
  color:var(--qz-text);
  background:
    radial-gradient(circle at 10% 0%, rgba(56,189,248,.28) 0, rgba(56,189,248,0) 30%),
    radial-gradient(circle at 88% 16%, rgba(37,99,235,.22) 0, rgba(37,99,235,0) 32%),
    linear-gradient(135deg,#f8fbff 0%,#eef6ff 42%,#ffffff 100%) !important;
  background-attachment:fixed;
}
.app-shell{position:relative;}
.content{
  min-height:100vh;
  padding:18px 18px 98px;
}
.content>.container-fluid{
  max-width:1680px;
}
.sidebar{
  background:
    linear-gradient(180deg,rgba(10,31,77,.98) 0%,rgba(16,44,109,.98) 54%,rgba(7,23,59,.98) 100%) !important;
  box-shadow:16px 0 42px rgba(15,23,42,.20);
  border-right:1px solid rgba(255,255,255,.10);
}
.sidebar:before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 28% 6%,rgba(59,130,246,.32),transparent 26%),
    radial-gradient(circle at 88% 58%,rgba(198,147,47,.18),transparent 28%);
}
.sidebar>*{position:relative;z-index:1;}
.sidebar .fw-bold{letter-spacing:.02em;font-size:1.05rem;}
.sidebar .nav-link{
  color:rgba(255,255,255,.88)!important;
  border-radius:16px!important;
  padding:.70rem .82rem;
  margin:.14rem .15rem .34rem;
  display:flex;
  align-items:center;
  gap:.25rem;
  border:1px solid transparent;
}
.sidebar .nav-link i{
  width:1.25rem;
  color:rgba(255,255,255,.82);
}
.sidebar .nav-link:hover,
.sidebar .nav-link:focus,
.sidebar .nav-link.active{
  background:rgba(255,255,255,.13)!important;
  border-color:rgba(255,255,255,.16);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10);
  transform:translateX(1px);
}
.sidebar .nav-link.active{
  color:#fff!important;
}
.sidebar .nav-link.active i{color:#f8d879;}
.sidebar-user{
  background:rgba(255,255,255,.075);
  border-top:1px solid rgba(255,255,255,.14)!important;
}
.sidebar-user-row{
  background:rgba(255,255,255,.075);
  border:1px solid rgba(255,255,255,.12);
  border-radius:18px;
  padding:.55rem;
}
.sidebar-user-photo{border-radius:14px!important;border-color:rgba(255,255,255,.34)!important;}
.navbar{
  border:1px solid rgba(255,255,255,.65);
  background:rgba(255,255,255,.74)!important;
  backdrop-filter:blur(16px);
  border-radius:22px;
  box-shadow:var(--qz-shadow-soft)!important;
  min-height:58px;
}
.navbar-brand{color:var(--qz-blue-900)!important;font-weight:800;letter-spacing:.01em;}
.card,
.card-kpi,
.top-absence-card,
.checador-main-card,
.checador-side-card,
.checador-action-card,
.checador-actions-panel,
.login-bio-panel,
.biometria-panel,
.top-absence-card{
  border:1px solid rgba(255,255,255,.66)!important;
  background:rgba(255,255,255,.82)!important;
  border-radius:var(--qz-radius)!important;
  box-shadow:var(--qz-shadow-soft)!important;
  backdrop-filter:blur(14px);
}
.card-header{
  background:rgba(248,251,255,.78)!important;
  border-bottom:1px solid var(--qz-border)!important;
  border-radius:var(--qz-radius) var(--qz-radius) 0 0!important;
}
.card-title,
h1,h2,h3,h4,h5,h6{color:var(--qz-blue-900);}
.text-muted{color:var(--qz-muted)!important;}
.btn{border-radius:14px;font-weight:700;}
.btn-primary,
.btn-outline-primary:hover{
  background:linear-gradient(135deg,var(--qz-blue-700),var(--qz-blue-500))!important;
  border-color:transparent!important;
  color:#fff!important;
  box-shadow:0 10px 22px rgba(37,99,235,.20);
}
.btn-outline-primary{
  color:var(--qz-blue-700)!important;
  border-color:rgba(37,99,235,.26)!important;
  background:rgba(255,255,255,.74)!important;
}
.btn-warning{
  background:linear-gradient(135deg,#f9c74f,var(--qz-gold))!important;
  border-color:transparent!important;
  color:#1f2937!important;
}
.btn-success{background:linear-gradient(135deg,#22c55e,#16a34a)!important;border-color:transparent!important;}
.btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626)!important;border-color:transparent!important;}
.form-control,.form-select{
  border-radius:14px;
  border-color:rgba(37,99,235,.18);
  background-color:rgba(255,255,255,.88);
}
.form-control:focus,.form-select:focus{
  border-color:rgba(37,99,235,.55);
  box-shadow:0 0 0 .22rem rgba(37,99,235,.12);
}
.table{
  --bs-table-bg:transparent;
  color:var(--qz-text);
}
.table thead th{
  background:rgba(239,246,255,.82)!important;
  color:var(--qz-blue-900);
  font-size:.78rem;
  letter-spacing:.03em;
  text-transform:uppercase;
  border-bottom:1px solid rgba(37,99,235,.14)!important;
}
.table tbody tr:hover td{background:rgba(239,246,255,.68)!important;}
.table td,.table th{border-color:rgba(37,99,235,.10)!important;}
.badge{border-radius:999px;padding:.45em .65em;}
.alert{border-radius:18px;border:1px solid rgba(255,255,255,.56);box-shadow:0 10px 24px rgba(15,23,42,.05);}
.modal-content,
.sistema-modal-content{
  border:1px solid rgba(255,255,255,.68)!important;
  border-radius:26px!important;
  background:rgba(255,255,255,.92)!important;
  backdrop-filter:blur(18px);
  box-shadow:0 24px 70px rgba(15,23,42,.18)!important;
}
.modal-header{background:linear-gradient(135deg,rgba(239,246,255,.95),rgba(255,255,255,.88));border-radius:26px 26px 0 0!important;}
.app-footer{
  background:rgba(255,255,255,.78)!important;
  border-top:1px solid rgba(37,99,235,.13)!important;
  backdrop-filter:blur(18px);
  box-shadow:0 -12px 30px rgba(15,23,42,.08)!important;
}
.app-footer-logo{border-radius:14px!important;}
.checador-live-card{
  background:linear-gradient(135deg,var(--qz-blue-800),var(--qz-blue-500))!important;
  border:1px solid rgba(255,255,255,.20);
}
.checador-hero-main,
.checador-camera-panel,
.checador-workspace{
  background:linear-gradient(135deg,rgba(248,251,255,.90),rgba(239,246,255,.82))!important;
  border-color:rgba(37,99,235,.15)!important;
  border-radius:var(--qz-radius)!important;
}
.checador-hero-icon,
.config-icon{
  background:linear-gradient(135deg,var(--qz-blue-800),var(--qz-blue-500))!important;
  color:#fff!important;
  border-radius:18px!important;
}
.checador-action-card:before{height:5px;background:linear-gradient(90deg,var(--qz-blue-600),var(--qz-cyan));}
.checador-action-yellow:before{background:linear-gradient(90deg,#f59e0b,#facc15)!important;}
.checador-action-cyan:before{background:linear-gradient(90deg,#06b6d4,#38bdf8)!important;}
.checador-action-red:before{background:linear-gradient(90deg,#dc2626,#fb7185)!important;}
.reporte-dia{border-radius:10px!important;box-shadow:0 3px 8px rgba(15,23,42,.05);}
.reporte-dia.success{background:#bbf7d0!important;color:#166534!important;}
.reporte-dia.warning{background:#fde68a!important;color:#92400e!important;}
.reporte-dia.danger{background:#fecaca!important;color:#991b1b!important;}
.login-card,.login-panel,.auth-card{
  border-radius:28px!important;
  background:rgba(255,255,255,.88)!important;
  box-shadow:var(--qz-shadow)!important;
  backdrop-filter:blur(16px);
}
@media(max-width:767px){
  .content{padding:12px 12px 116px;}
  .sidebar{box-shadow:18px 0 48px rgba(15,23,42,.28);}
  .navbar{border-radius:18px;}
}
@media print{
  body{background:#fff!important;}
  .card,.card-kpi{box-shadow:none!important;border:1px solid #d6dce8!important;background:#fff!important;}
}

/* =========================================================
   POST135 - FIX LAYOUT HOSTINGER
   Evita logos gigantes/descuadre por SVG intrínseco, caché o reglas cruzadas.
   ========================================================= */
:root{--qz-sidebar-width:248px;}
body.qz-theme{overflow-x:hidden!important;}
.app-shell{min-height:100vh!important;}
.sidebar{
  width:var(--qz-sidebar-width)!important;
  max-width:var(--qz-sidebar-width)!important;
  min-width:var(--qz-sidebar-width)!important;
  overflow:hidden!important;
}
.content{
  margin-left:var(--qz-sidebar-width)!important;
  width:calc(100% - var(--qz-sidebar-width))!important;
  max-width:calc(100% - var(--qz-sidebar-width))!important;
  overflow-x:hidden!important;
  padding:18px 18px 92px!important;
}
.sidebar-brand-wrap{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  min-width:0!important;
  max-width:100%!important;
  overflow:hidden!important;
}
.sidebar-brand-logo,
aside.sidebar .sidebar-brand-logo,
.sidebar img.sidebar-brand-logo{
  width:46px!important;
  height:46px!important;
  min-width:46px!important;
  min-height:46px!important;
  max-width:46px!important;
  max-height:46px!important;
  flex:0 0 46px!important;
  display:block!important;
  object-fit:contain!important;
  border-radius:14px!important;
  padding:4px!important;
  background:#0b4ab3!important;
}
.sidebar-brand-text{
  display:block!important;
  min-width:0!important;
  max-width:150px!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  font-size:1.02rem!important;
  line-height:1.1!important;
}
.navbar{
  min-height:58px!important;
  padding:.55rem .85rem!important;
  overflow:hidden!important;
}
.navbar-brand{
  min-width:0!important;
  overflow:hidden!important;
  white-space:nowrap!important;
  line-height:1.1!important;
}
.navbar-brand-logo,
.navbar img.navbar-brand-logo{
  width:34px!important;
  height:34px!important;
  min-width:34px!important;
  min-height:34px!important;
  max-width:34px!important;
  max-height:34px!important;
  flex:0 0 34px!important;
  display:block!important;
  object-fit:contain!important;
  border-radius:10px!important;
  padding:3px!important;
  background:#0b4ab3!important;
}
.dashboard-hero{
  min-height:auto!important;
  border-radius:22px!important;
  background:linear-gradient(135deg,#082f73 0%,#155ee8 62%,#0ea5a3 100%)!important;
}
.dashboard-hero .card-body{
  padding:1.05rem 1.25rem!important;
}
.dashboard-hero-logo,
.dashboard-hero img.dashboard-hero-logo{
  width:74px!important;
  height:74px!important;
  min-width:74px!important;
  min-height:74px!important;
  max-width:74px!important;
  max-height:74px!important;
  flex:0 0 74px!important;
  display:block!important;
  object-fit:contain!important;
  border-radius:20px!important;
  padding:6px!important;
  background:#0b4ab3!important;
}
.dashboard-hero h1{
  color:#fff!important;
  line-height:1.08!important;
  margin:0!important;
}
.dashboard-hero .opacity-75{
  color:rgba(255,255,255,.82)!important;
  max-width:620px!important;
}
.dashboard-chip{white-space:nowrap!important;}
.card-kpi .card-body{padding:1rem!important;}
.table-responsive{overflow-x:auto!important;}
@media(max-width:767.98px){
  .sidebar{transform:translateX(-100%)!important;transition:.2s!important;z-index:1050!important;}
  .sidebar.open{transform:translateX(0)!important;}
  .content{margin-left:0!important;width:100%!important;max-width:100%!important;padding:12px 10px 90px!important;}
  .navbar{border-radius:16px!important;}
  .dashboard-hero-logo{width:58px!important;height:58px!important;min-width:58px!important;min-height:58px!important;max-width:58px!important;max-height:58px!important;}
  .dashboard-hero h1{font-size:1.25rem!important;}
}


/* POST149 - Normalización visual: azul logo + blanco + gris.
   Mantiene colores de botones/estados operativos. */
:root{
  --qz-logo-navy:#061E4D;
  --qz-logo-blue:#0B3D86;
  --qz-logo-blue-2:#0F4C97;
  --qz-logo-gold:#D49A2A;
  --qz-page:#F4F7FB;
  --qz-card:#FFFFFF;
  --qz-border:#DDE6F2;
  --qz-text:#0F172A;
  --qz-muted:#64748B;
  --qz-shadow:0 14px 34px rgba(6,30,77,.09);
}
body.qz-theme,
body{
  background:
    radial-gradient(circle at 12% 8%, rgba(11,61,134,.08), transparent 28%),
    linear-gradient(180deg,#F8FAFC 0%,#F1F5F9 58%,#FFFFFF 100%)!important;
  color:var(--qz-text)!important;
}
.sidebar-blue,
aside.sidebar{
  background:linear-gradient(180deg,var(--qz-logo-navy) 0%,#082B68 62%,#041538 100%)!important;
  box-shadow:10px 0 30px rgba(6,30,77,.18)!important;
}
.sidebar-brand-logo,
aside.sidebar .sidebar-brand-logo,
.navbar-brand-logo,
.dashboard-hero-logo{
  background:#FFFFFF!important;
  border:1px solid rgba(221,230,242,.75)!important;
  box-shadow:0 10px 24px rgba(6,30,77,.18)!important;
  object-fit:contain!important;
}
.sidebar .nav-link,
aside.sidebar .nav-link{
  border-radius:14px!important;
  color:rgba(255,255,255,.88)!important;
  transition:background .16s ease, transform .16s ease!important;
}
.sidebar .nav-link:hover,
aside.sidebar .nav-link:hover,
.sidebar .nav-link.active,
aside.sidebar .nav-link.active{
  background:rgba(255,255,255,.13)!important;
  color:#fff!important;
  transform:none!important;
}
.navbar{
  background:rgba(255,255,255,.94)!important;
  border:1px solid rgba(221,230,242,.85)!important;
  box-shadow:0 8px 24px rgba(6,30,77,.06)!important;
}
.card,
.card-kpi,
.qz-card,
.checador-main-card,
.checador-side-card,
.checador-action-card,
.checador-actions-panel,
.table-responsive,
.modal-content{
  border-color:var(--qz-border)!important;
  box-shadow:var(--qz-shadow)!important;
}
.dashboard-hero{
  background:
    radial-gradient(circle at 86% 8%, rgba(255,255,255,.16), transparent 27%),
    linear-gradient(135deg,var(--qz-logo-navy) 0%,var(--qz-logo-blue) 72%,#0F4C97 100%)!important;
  color:#fff!important;
}
.dashboard-hero:after{background:rgba(255,255,255,.10)!important;}
.dashboard-chip{
  background:rgba(255,255,255,.14)!important;
  border-color:rgba(255,255,255,.22)!important;
}
.btn-primary,
.bg-primary{
  background-color:var(--qz-logo-blue-2)!important;
  border-color:var(--qz-logo-blue-2)!important;
}
.btn-outline-primary{
  color:var(--qz-logo-blue-2)!important;
  border-color:#BFD0E8!important;
}
.btn-outline-primary:hover{
  color:#fff!important;
  background-color:var(--qz-logo-blue-2)!important;
  border-color:var(--qz-logo-blue-2)!important;
}
.form-control,
.form-select,
.input-group-text{
  border-color:#D7E3F2!important;
  border-radius:14px!important;
}
.form-control:focus,
.form-select:focus{
  border-color:#8FB1DD!important;
  box-shadow:0 0 0 .22rem rgba(15,76,151,.13)!important;
}
.table thead th{
  background:#EFF4FA!important;
  color:#102A56!important;
  border-bottom:1px solid var(--qz-border)!important;
}
.login-page{
  background:
    radial-gradient(circle at 20% 10%, rgba(212,154,42,.10), transparent 24%),
    linear-gradient(135deg,#F8FAFC 0%,#EFF4FA 46%,#FFFFFF 100%)!important;
}
.login-card{
  border:1px solid var(--qz-border)!important;
  box-shadow:0 24px 60px rgba(6,30,77,.16)!important;
}
.login-logo{
  width:132px!important;
  max-width:132px!important;
  max-height:132px!important;
  border-radius:28px!important;
  background:#fff!important;
  padding:4px!important;
  box-shadow:0 12px 32px rgba(6,30,77,.14)!important;
}
.login-title{color:var(--qz-logo-navy)!important;}
.login-subtitle{color:var(--qz-muted)!important;}
.app-footer{
  background:rgba(255,255,255,.92)!important;
  border-top:1px solid var(--qz-border)!important;
}


/* POST154 - Tema oficial Checador: azul del logo + blanco + gris.
   Conserva colores operativos de botones de acción. */
:root{
  --qz-bg-1:#f5f7fa;
  --qz-bg-2:#ffffff;
  --qz-bg-3:#edf1f6;
  --qz-blue-900:#071f4d;
  --qz-blue-800:#0a2b63;
  --qz-blue-700:#0b3a7a;
  --qz-blue-600:#1268f3;
  --qz-blue-500:#2b77f5;
  --qz-cyan:#5b7fae;
  --qz-gold:#d6a02f;
  --qz-gold-soft:#fbf4e3;
  --qz-text:#0f172a;
  --qz-muted:#667085;
  --qz-border:rgba(7,31,77,.12);
  --qz-shadow:0 16px 40px rgba(15,23,42,.10);
  --qz-shadow-soft:0 8px 24px rgba(15,23,42,.075);
}
body.qz-theme,
body.notranslate{
  background:linear-gradient(135deg,#f8fafc 0%,#f3f6fa 45%,#ffffff 100%)!important;
  color:var(--qz-text)!important;
}
.sidebar{
  background:linear-gradient(180deg,#071f4d 0%,#0a2b63 58%,#031538 100%)!important;
}
.sidebar:before{
  background:radial-gradient(circle at 24% 8%,rgba(255,255,255,.10),transparent 26%),radial-gradient(circle at 92% 60%,rgba(214,160,47,.17),transparent 28%)!important;
}
.navbar,.card,.card-kpi,.table-responsive,.modal-content,.app-footer-inner{
  border-color:rgba(7,31,77,.10)!important;
}
.navbar{
  background:rgba(255,255,255,.92)!important;
  box-shadow:0 8px 24px rgba(15,23,42,.08)!important;
}
.dashboard-hero{
  background:linear-gradient(135deg,#071f4d 0%,#0a2b63 72%,#123e82 100%)!important;
}
.login-card{border:1px solid rgba(7,31,77,.10)!important;box-shadow:0 18px 46px rgba(7,31,77,.16)!important;}
.login-logo,.sidebar-brand-logo,.navbar-brand-logo,.dashboard-hero-logo,.cred-logo{
  object-fit:contain!important;
  background:#ffffff!important;
  border-radius:14px!important;
}
.btn-primary{background:#1268f3!important;border-color:#1268f3!important;}
.btn-outline-primary{color:#1268f3!important;border-color:#1268f3!important;}
.btn-outline-primary:hover{background:#1268f3!important;color:#fff!important;}
/* No se fuerzan colores de .checador-action-* para respetar botones operativos. */
/* =========================================================
   QEATZUL THEME - POST156
   Aplicación visual del paquete "Tecnología / Qeatzul".
   Visual-only: no cambia consultas, rutas ni lógica de negocio.
   ========================================================= */
:root{
  --qz-post156-navy:#071b3f;
  --qz-post156-blue:#0b2f6b;
  --qz-post156-blue-2:#1458ad;
  --qz-post156-blue-3:#1976d2;
  --qz-post156-gold:#d9a329;
  --qz-post156-bg:#eef6ff;
  --qz-post156-panel:rgba(255,255,255,.86);
  --qz-post156-panel-strong:rgba(255,255,255,.94);
  --qz-post156-line:rgba(20,88,173,.14);
  --qz-post156-text:#10213f;
  --qz-post156-muted:#6b778d;
  --qz-post156-shadow:0 20px 60px rgba(7,27,63,.12);
  --qz-post156-shadow-sm:0 10px 30px rgba(7,27,63,.09);
  --qz-post156-radius:24px;
  --qz-post156-radius-sm:16px;
}
body.qz-theme,
body.notranslate.qz-theme,
body.login-page{
  font-family:Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color:var(--qz-post156-text);
  background:
    radial-gradient(circle at 4% 0%, rgba(25,118,210,.22) 0, rgba(25,118,210,0) 28%),
    radial-gradient(circle at 96% 8%, rgba(217,163,41,.15) 0, rgba(217,163,41,0) 24%),
    radial-gradient(circle at 82% 86%, rgba(20,88,173,.16) 0, rgba(20,88,173,0) 26%),
    linear-gradient(135deg,#f8fbff 0%,#eef6ff 42%,#ffffff 100%) !important;
  background-attachment:fixed !important;
}
body.qz-theme:before,
body.login-page:before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:
    linear-gradient(120deg,rgba(255,255,255,.30),rgba(255,255,255,0) 36%),
    radial-gradient(circle at 18% 52%,rgba(255,255,255,.78),transparent 18%);
}
.app-shell{isolation:isolate;}
.content{
  padding:22px 24px 108px !important;
}
.content>.container-fluid{
  padding-left:0;
  padding-right:0;
}
.sidebar{
  width:276px;
  overflow:hidden;
  background:
    radial-gradient(circle at 20% 2%,rgba(255,255,255,.16),transparent 22%),
    radial-gradient(circle at 88% 76%,rgba(217,163,41,.16),transparent 24%),
    linear-gradient(180deg,#071b3f 0%,#0b2f6b 48%,#061735 100%) !important;
  border-right:1px solid rgba(255,255,255,.10) !important;
  box-shadow:24px 0 70px rgba(7,27,63,.24) !important;
}
.content{margin-left:276px;width:calc(100% - 276px);}
.sidebar .p-3.border-bottom{
  padding:20px 18px!important;
  border-bottom:1px solid rgba(255,255,255,.12)!important;
}
.sidebar-brand-wrap{
  min-height:54px;
  padding:8px 8px;
  border-radius:18px;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.12);
}
.sidebar-brand-logo{
  width:50px!important;height:50px!important;max-width:50px!important;max-height:50px!important;
  border-radius:14px;
  background:rgba(255,255,255,.08);
  padding:4px;
  filter:drop-shadow(0 10px 18px rgba(0,0,0,.18));
}
.sidebar-brand-text{font-size:1.18rem!important;line-height:1;color:#fff;}
.sidebar small.text-white-50{display:block;margin:10px 10px 0;color:rgba(255,255,255,.67)!important;}
.sidebar-nav{padding:16px 12px!important;}
.sidebar .nav-link{
  min-height:44px;
  border-radius:16px!important;
  padding:.72rem .86rem!important;
  margin:0 0 7px!important;
  color:rgba(255,255,255,.86)!important;
  background:transparent!important;
  border:1px solid transparent!important;
  transition:background .15s ease,border-color .15s ease,transform .15s ease,box-shadow .15s ease;
}
.sidebar .nav-link i{width:22px;text-align:center;color:rgba(255,255,255,.78)!important;}
.sidebar .nav-link:hover,
.sidebar .nav-link.active{
  background:rgba(255,255,255,.13)!important;
  border-color:rgba(255,255,255,.16)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 10px 24px rgba(0,0,0,.10)!important;
  transform:translateX(2px);
}
.sidebar .nav-link.active i{color:#f4cf73!important;}
.sidebar-user{
  padding:16px!important;
  border-top:1px solid rgba(255,255,255,.13)!important;
  background:rgba(255,255,255,.05)!important;
}
.sidebar-user-row{
  background:rgba(255,255,255,.09)!important;
  border:1px solid rgba(255,255,255,.14)!important;
  border-radius:18px!important;
  padding:10px!important;
}
.sidebar-user-photo{
  border-radius:15px!important;
  border:1px solid rgba(255,255,255,.28)!important;
}
.navbar{
  position:sticky;
  top:14px;
  z-index:8;
  min-height:66px;
  border-radius:24px!important;
  border:1px solid rgba(255,255,255,.72)!important;
  background:rgba(255,255,255,.78)!important;
  box-shadow:var(--qz-post156-shadow-sm)!important;
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}
.navbar-brand{
  color:var(--qz-post156-navy)!important;
  font-weight:900!important;
  letter-spacing:-.02em;
}
.navbar-brand-logo{
  width:38px!important;height:38px!important;max-width:38px!important;max-height:38px!important;
  border-radius:12px;
  background:#fff;
  box-shadow:0 8px 20px rgba(7,27,63,.10);
  padding:3px;
}
.card,
.card-kpi,
.checador-main-card,
.checador-side-card,
.checador-action-card,
.checador-actions-panel,
.checador-workspace,
.top-absence-card,
.login-bio-panel,
.biometria-panel,
.config-card,
.reporte-resumen-card,
.dashboard-panel,
.table-responsive{
  background:var(--qz-post156-panel)!important;
  border:1px solid rgba(255,255,255,.72)!important;
  border-radius:var(--qz-post156-radius)!important;
  box-shadow:var(--qz-post156-shadow-sm)!important;
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
}
.card:hover,.card-kpi:hover,.checador-action-card:hover{
  box-shadow:var(--qz-post156-shadow)!important;
}
.card-header,
.modal-header{
  background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(238,246,255,.86))!important;
  border-bottom:1px solid var(--qz-post156-line)!important;
}
.card-header:first-child{border-radius:var(--qz-post156-radius) var(--qz-post156-radius) 0 0!important;}
h1,h2,h3,h4,h5,h6,.card-title{color:var(--qz-post156-navy)!important;letter-spacing:-.025em;}
.text-muted,.small.text-muted{color:var(--qz-post156-muted)!important;}
.btn{border-radius:16px!important;font-weight:800!important;letter-spacing:-.01em;}
.btn-primary,
.btn-outline-primary:hover,
.btn-check:checked+.btn-outline-primary{
  color:#fff!important;
  background:linear-gradient(135deg,var(--qz-post156-blue),var(--qz-post156-blue-3))!important;
  border-color:transparent!important;
  box-shadow:0 12px 28px rgba(20,88,173,.22)!important;
}
.btn-outline-primary{
  color:var(--qz-post156-blue-2)!important;
  background:rgba(255,255,255,.78)!important;
  border-color:rgba(20,88,173,.26)!important;
}
.btn-dark{
  background:linear-gradient(135deg,#071b3f,#1f2f4b)!important;
  border-color:transparent!important;
}
.btn-warning{
  background:linear-gradient(135deg,#f7d46b,#d9a329)!important;
  border-color:transparent!important;
  color:#1c2435!important;
}
.btn-light,.btn-outline-secondary{
  background:rgba(255,255,255,.82)!important;
  border-color:rgba(16,33,63,.12)!important;
}
.form-control,.form-select,.input-group-text{
  border-radius:16px!important;
  border-color:rgba(20,88,173,.17)!important;
  background-color:rgba(255,255,255,.88)!important;
}
.input-group>.form-control:not(:first-child),.input-group>.form-select:not(:first-child){border-top-left-radius:0!important;border-bottom-left-radius:0!important;}
.input-group>.input-group-text:not(:last-child){border-top-right-radius:0!important;border-bottom-right-radius:0!important;}
.form-control:focus,.form-select:focus{
  border-color:rgba(20,88,173,.52)!important;
  box-shadow:0 0 0 .24rem rgba(25,118,210,.12)!important;
}
.table-responsive{overflow:hidden;}
.table{margin-bottom:0;--bs-table-bg:transparent!important;}
.table thead th{
  background:rgba(238,246,255,.92)!important;
  color:#10213f!important;
  font-size:.76rem;
  text-transform:uppercase;
  letter-spacing:.045em;
  border-bottom:1px solid rgba(20,88,173,.12)!important;
  padding:.9rem .78rem!important;
}
.table tbody td{padding:.78rem!important;border-color:rgba(20,88,173,.09)!important;}
.table tbody tr:hover td{background:rgba(238,246,255,.58)!important;}
.badge{border-radius:999px!important;font-weight:800!important;}
.alert{
  border-radius:18px!important;
  border:1px solid rgba(255,255,255,.68)!important;
  box-shadow:0 12px 30px rgba(7,27,63,.07)!important;
}
.modal-backdrop{background:rgba(7,27,63,.42)!important;backdrop-filter:blur(3px);}
.modal-content,.sistema-modal-content{
  border-radius:28px!important;
  background:rgba(255,255,255,.94)!important;
  border:1px solid rgba(255,255,255,.74)!important;
  box-shadow:0 30px 90px rgba(7,27,63,.24)!important;
}
.app-footer{
  background:rgba(255,255,255,.82)!important;
  border-top:1px solid rgba(20,88,173,.12)!important;
  backdrop-filter:blur(18px);
}
/* Login Qeatzul */
.login-page .login-shell{padding:28px!important;}
.login-page .login-card{
  max-width:460px!important;
  border-radius:30px!important;
  background:rgba(255,255,255,.88)!important;
  border:1px solid rgba(255,255,255,.74)!important;
  box-shadow:0 34px 92px rgba(7,27,63,.22)!important;
  backdrop-filter:blur(20px);
}
.login-page .login-card:before{
  content:"";
  display:block;
  height:7px;
  background:linear-gradient(90deg,var(--qz-post156-blue),var(--qz-post156-blue-3),var(--qz-post156-gold));
}
.login-page .login-logo{
  width:168px!important;
  max-width:168px!important;
  max-height:96px!important;
  padding:7px;
  border-radius:20px;
  background:rgba(255,255,255,.78);
  box-shadow:0 14px 32px rgba(7,27,63,.10);
}
.login-page .login-title{font-size:1.55rem!important;color:var(--qz-post156-navy)!important;}
.login-page .login-subtitle{color:var(--qz-post156-muted)!important;}
.login-page .login-bio-panel{
  border-radius:22px!important;
  padding:12px!important;
  background:rgba(238,246,255,.78)!important;
}
.login-page .login-bio-video{border-radius:18px!important;}
/* Dashboard visual rhythm */
.card-kpi{position:relative;overflow:hidden;}
.card-kpi:before{
  content:"";position:absolute;left:0;right:0;top:0;height:5px;
  background:linear-gradient(90deg,var(--qz-post156-blue-2),var(--qz-post156-blue-3));
}
.checador-live-card,.bg-primary{
  background:linear-gradient(135deg,var(--qz-post156-blue),var(--qz-post156-blue-3))!important;
}
.avatar-empleado,.sidebar-user-photo{box-shadow:0 8px 18px rgba(7,27,63,.10);}
@media (max-width: 767px){
  .sidebar{width:276px;}
  .content{margin-left:0!important;width:100%!important;padding:14px 14px 100px!important;}
  .navbar{top:8px;border-radius:20px!important;}
  .card,.card-kpi,.table-responsive{border-radius:20px!important;}
}
