:root{
  --c-fondo:#f4f6fa; --c-panel:#fff; --c-borde:#e3e8ef; --c-texto:#1e293b; --c-suave:#64748b;
  --c-marca:#0f766e; --c-marca-osc:#115e59; --c-lateral:#0f172a; --c-lateral-2:#1e293b;
  --radio:12px; --sombra:0 1px 2px rgba(15,23,42,.06),0 4px 14px rgba(15,23,42,.05);
}
body{background:var(--c-fondo);color:var(--c-texto);font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;}
.btn-primary{--bs-btn-bg:var(--c-marca);--bs-btn-border-color:var(--c-marca);--bs-btn-hover-bg:var(--c-marca-osc);--bs-btn-hover-border-color:var(--c-marca-osc);--bs-btn-active-bg:var(--c-marca-osc);--bs-btn-active-border-color:var(--c-marca-osc);--bs-btn-disabled-bg:var(--c-marca);--bs-btn-disabled-border-color:var(--c-marca);}
.btn-outline-primary{--bs-btn-color:var(--c-marca);--bs-btn-border-color:var(--c-marca);--bs-btn-hover-bg:var(--c-marca);--bs-btn-hover-border-color:var(--c-marca);--bs-btn-active-bg:var(--c-marca);}
a{color:var(--c-marca)} a:hover{color:var(--c-marca-osc)}
.form-control:focus,.form-select:focus{border-color:var(--c-marca);box-shadow:0 0 0 .2rem rgba(15,118,110,.18)}
.app{display:flex;min-height:100vh}
.sidebar{width:260px;flex:0 0 260px;background:var(--c-lateral)!important;color:#cbd5e1;display:flex;flex-direction:column}
.sidebar-marca{display:flex;gap:.75rem;align-items:center;padding:1.25rem 1.25rem 1rem;color:#fff}
.sidebar-marca>i{font-size:1.7rem;color:#5eead4}
.sidebar-marca small{display:block;color:#94a3b8;font-size:.72rem}
.sidebar-menu{flex:1;padding:.5rem .75rem;overflow-y:auto}
.sidebar-menu a{display:flex;align-items:center;gap:.75rem;padding:.6rem .85rem;margin:2px 0;border-radius:9px;color:#cbd5e1;text-decoration:none;font-size:.93rem}
.sidebar-menu a:hover{background:var(--c-lateral-2);color:#fff}
.sidebar-menu a.activo{background:var(--c-marca);color:#fff;font-weight:600}
.sidebar-menu i{font-size:1.1rem;width:1.3rem;text-align:center}
.sidebar-pie{padding:1rem 1.25rem;border-top:1px solid #1e293b;color:#e2e8f0}
@media(min-width:992px){.sidebar{position:sticky;top:0;height:100vh}}
@media(max-width:991.98px){.sidebar{background:var(--c-lateral)}}
.contenido{flex:1;min-width:0}
.barra-superior{display:flex;align-items:center;gap:1rem;padding:.9rem 1.5rem;background:var(--c-panel);border-bottom:1px solid var(--c-borde);position:sticky;top:0;z-index:5}
.cuerpo{padding:1.5rem}
.tarjeta{background:var(--c-panel);border:1px solid var(--c-borde);border-radius:var(--radio);box-shadow:var(--sombra);padding:1.25rem}
.tarjeta>h2,.tarjeta>.h5{font-size:1.02rem;font-weight:650;margin-bottom:1rem}
.indicador{background:var(--c-panel);border:1px solid var(--c-borde);border-radius:var(--radio);box-shadow:var(--sombra);padding:1rem 1.15rem;height:100%;display:flex;gap:.9rem;align-items:center}
.indicador .ico{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;font-size:1.4rem;background:#ccfbf1;color:var(--c-marca);flex:0 0 46px}
.indicador .ico.ambar{background:#fef3c7;color:#b45309}.indicador .ico.azul{background:#dbeafe;color:#1d4ed8}.indicador .ico.rojo{background:#fee2e2;color:#b91c1c}.indicador .ico.violeta{background:#ede9fe;color:#6d28d9}
.indicador .valor{font-size:1.45rem;font-weight:700;line-height:1.1}
.indicador .etiqueta{font-size:.8rem;color:var(--c-suave)}
.tabla{--bs-table-bg:transparent;margin:0;font-size:.9rem}
.tabla thead th{font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;color:var(--c-suave);border-bottom:2px solid var(--c-borde);white-space:nowrap;font-weight:650}
.tabla td{vertical-align:middle}
.tabla tfoot td{font-weight:700;border-top:2px solid var(--c-borde)}
.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.total-caja{border:2px solid var(--c-marca);border-radius:var(--radio);padding:1rem 1.25rem;background:#f0fdfa}
.total-caja .linea{display:flex;justify-content:space-between;padding:.2rem 0}
.total-caja .neto{font-size:1.5rem;font-weight:800;color:var(--c-marca-osc);border-top:1px solid #99f6e4;margin-top:.4rem;padding-top:.5rem}
.miniatura{width:44px;height:44px;object-fit:cover;border-radius:8px;border:1px solid var(--c-borde)}
.foto-grande{max-width:100%;max-height:78vh;border-radius:10px}
.filtros .form-label{font-size:.78rem;color:var(--c-suave);margin-bottom:.2rem}
.fondo-login{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#0f172a 0%,#134e4a 100%)}
.caja-login{width:min(400px,92vw);background:#fff;border-radius:16px;padding:2rem;box-shadow:0 20px 50px rgba(0,0,0,.35)}
.grilla-dia td,.grilla-dia th{padding:.35rem .4rem}
.grilla-dia input,.grilla-dia select{min-width:92px}
.bloqueado{opacity:.55}
@media(max-width:575.98px){.cuerpo{padding:1rem}.barra-superior{padding:.7rem 1rem}}
@media print{.sidebar,.barra-superior,.no-imprimir{display:none!important}.cuerpo{padding:0}}
.grilla-dia select{min-width:122px}

/* Buscador de trabajadores (nombre o cédula al escribir) */
.be-wrap { position: relative; }
.be-wrap > .be-select { position: absolute; left: 0; bottom: 0; width: 100%; height: 1px; opacity: 0; pointer-events: none; border: 0; padding: 0; }
.be-input.be-bloqueado { background: #eee; pointer-events: none; }
.be-lista { position: absolute; z-index: 1056; left: 0; right: 0; top: calc(100% + 2px); max-height: 280px; overflow-y: auto; background: #fff; border: 1px solid #ced4da; border-radius: .5rem; box-shadow: 0 8px 22px rgba(0,0,0,.16); }
.be-item { padding: .5rem .75rem; cursor: pointer; border-bottom: 1px solid #f1f3f5; }
.be-item:last-child { border-bottom: 0; }
.be-item.act, .be-item:hover { background: #e3f3ee; }
.be-nom { font-weight: 600; }
.be-doc { color: #6c757d; font-size: .85em; white-space: nowrap; }
.be-vacio { padding: .6rem .75rem; color: #6c757d; font-size: .9rem; }
.be-wrap { flex: 1 1 auto; min-width: 0; }
