/* CAI v4 — filtro.css: pestaña «Filtro» del portal (registro, entradas y salidas, asistencia) */
.ft-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 1.2rem;padding:5px;background:var(--warm);border-radius:14px;width:fit-content;max-width:100%}
.ft-tab{border:0;background:transparent;font-family:'DM Sans',sans-serif;font-size:13.5px;font-weight:600;color:var(--ink-60);padding:9px 16px;border-radius:10px;cursor:pointer;white-space:nowrap}
.ft-tab:hover{color:var(--ink)}
.ft-tab.on{background:#fff;color:var(--teal);box-shadow:0 1px 4px rgba(0,0,0,.12)}
.ft-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:0 0 1.2rem}
.ft-stat{background:#fff;border:1.5px solid var(--warm);border-radius:14px;padding:.8rem 1rem;display:flex;flex-direction:column;gap:2px;border-left-width:5px}
.ft-stat b{font-size:24px;line-height:1.1;font-family:'Playfair Display',serif;color:var(--ink)}
.ft-stat span{font-size:12px;color:var(--ink-60);font-weight:600}
.ft-stat.ok{border-left-color:#16A34A}.ft-stat.warn{border-left-color:#D97706}.ft-stat.info{border-left-color:#0E7490}.ft-stat.rojo{border-left-color:#DC2626}
.ft-card{background:#fff;border:1.5px solid var(--warm);border-radius:16px;padding:1.2rem 1.3rem;box-shadow:0 2px 10px rgba(0,0,0,.04)}
.ft-card h3{margin:0 0 .7rem;font-size:15px}
.ft-grid{display:flex;gap:1.2rem;flex-wrap:wrap;align-items:flex-start}
.ft-grid>.ft-main{flex:1 1 440px;max-width:560px}
.ft-grid>.ft-side{flex:1 1 280px;max-width:420px}
.ft-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:1rem}
.ft-bar input,.ft-bar select{padding:8px 11px;border:1.5px solid var(--warm);border-radius:9px;font-family:'DM Sans',sans-serif;font-size:13px;background:#fff}
.ft-bar input[type=text]{flex:1;min-width:170px}
.ft-chip{display:inline-block;border-radius:20px;padding:2px 10px;font-size:12px;font-weight:700;white-space:nowrap}
.ft-chip.ent{background:#DCFCE7;color:#166534}.ft-chip.sal{background:#E0F2FE;color:#075985}.ft-chip.ret{background:#FEF3C7;color:#92400E}
.ft-chip.rojo{background:#FEE2E2;color:#991B1B}.ft-chip.gris{background:#F3F4F6;color:#4B5563}
.ft-vacio{text-align:center;color:var(--ink-30);padding:2rem 1rem}
#filtro-ultimos-registrados>div:last-child{border-bottom:0!important}
@media (max-width:640px){.ft-tab{padding:8px 11px;font-size:13px}.ft-grid>.ft-main,.ft-grid>.ft-side{max-width:none}}

/* Registro manual: botones grandes seleccionables (táctiles) + contador de registro automático */
.ft-manual{background:#FFFBEB;border:1.5px solid #FCD34D;border-radius:16px;padding:1rem;margin-bottom:1rem}
.ft-m-titulo{font-weight:700;font-size:14px;margin-bottom:.7rem}
.ft-m-ops{display:flex;flex-direction:column;gap:12px}
.ft-m-op{display:flex;align-items:center;gap:14px;width:100%;min-height:62px;padding:12px 16px;text-align:left;cursor:pointer;
  background:#fff;border:2px solid var(--warm);border-radius:14px;font-family:'DM Sans',sans-serif;font-size:16px;font-weight:600;color:var(--ink);
  -webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:border-color .12s,background .12s,transform .08s}
.ft-m-op:active{transform:scale(.98)}
.ft-m-ic{font-size:26px;line-height:1}
.ft-m-tx{flex:1;display:flex;flex-direction:column}
.ft-m-tx small{font-size:12px;font-weight:500;color:var(--ink-60);margin-top:2px}
.ft-m-ok{display:none;width:26px;height:26px;border-radius:50%;background:var(--teal);color:#fff;font-size:15px;align-items:center;justify-content:center}
.ft-m-op.on{border-color:var(--teal);background:#F0FAFA}
.ft-m-op.on .ft-m-ok{display:flex}
.ft-c-barra{height:10px;background:#FDE68A;border-radius:6px;overflow:hidden;margin-top:14px}
.ft-c-barra i{display:block;height:100%;width:100%;background:var(--teal);border-radius:6px}
.ft-c-fila{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px;font-size:14px;font-weight:600}
.ft-c-cancelar{min-height:44px;padding:0 20px;border:2px solid #FCA5A5;background:#fff;color:#991B1B;border-radius:12px;font-family:'DM Sans',sans-serif;font-size:14px;font-weight:700;cursor:pointer}
.alert-warning{background:#FEF3C7;color:#92400E;border:1px solid #FCD34D}
