/* === Fichaje — UI fixes móviles & filtros === */
:root{
  --fichaje-primary: #0f172a;
  --fichaje-primary-ink: #ffffff;
  --fichaje-bg: #f5f7fb;
  --fichaje-card: #ffffff;
  --fichaje-border: #e6e8ef;
  --fichaje-ink: #111827;
  --fichaje-ink-muted: #6b7280;
  --radius-xl: 18px;
  --shadow-1: 0 6px 24px rgba(15,23,42,.06), 0 2px 8px rgba(15,23,42,.05);
}

/* Fuerza tema claro en móvil (evita fondo oscuro) */
@media (max-width: 768px){
  html, body { background: #ffffff !important; color: var(--fichaje-ink) !important; }
  .fichaje-kiosk-page { background: #ffffff !important; }
}

html,body{ height:100%; background: var(--fichaje-bg); color: var(--fichaje-ink); -webkit-text-size-adjust:100%; text-rendering:optimizeLegibility; font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, Apple Color Emoji, Segoe UI Emoji; }

.fichaje-card{ max-width: 680px; margin: clamp(12px, 5vh, 28px) auto; padding: 16px; border:1px solid var(--fichaje-border); border-radius: var(--radius-xl); background: var(--fichaje-card); box-shadow: var(--shadow-1); }
.fichaje-card h2{ margin:0 0 6px; font-size: clamp(20px, 3.5vw, 26px); letter-spacing:-.01em; }
.fichaje-card .brand{ display:flex; align-items:center; gap:12px; margin-bottom:8px; }
.fichaje-card .brand img{ max-height:56px; border-radius:10px; }
.fichaje-card .help{ color: var(--fichaje-ink-muted); margin:6px 0 10px; font-size:14px; }
.fichaje-card .status{ min-height:20px; margin:8px 0; font-size:14px; color: var(--fichaje-ink); }
.fichaje-card .legal{ color: var(--fichaje-ink-muted); font-size:12px; background:#f6f6f9; border:1px solid var(--fichaje-border); padding:8px 10px; border-radius:12px; }
.fichaje-card .warning{ background: rgba(217,119,6,.08); border:1px solid rgba(217,119,6,.35); color:#7c3b09; padding:10px 12px; border-radius:12px; margin-bottom:10px; font-size:14px; }
.fichaje-card .consent{ margin:12px 0 8px; font-size:14px; line-height:1.45; }
.fichaje-card input[type="checkbox"]{ width:20px; height:20px; vertical-align:middle; accent-color: var(--fichaje-primary); }

.fichaje-card .btns{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.fichaje-card .btn{ appearance:none; -webkit-tap-highlight-color:transparent; padding:14px 16px; border-radius:14px; border:1px solid var(--fichaje-primary); background:var(--fichaje-primary); color:var(--fichaje-primary-ink); font-weight:700; font-size:16px; letter-spacing:.2px; cursor:pointer; text-decoration:none; display:inline-block; text-align:center; }
.fichaje-card .btn.link{ background:#fff; color:var(--fichaje-primary); }
.fichaje-card .btn.out{ background:#111827; border-color:#111827; }
.fichaje-card .btn:active{ transform: translateY(1px); }

/* ===== Listado ===== */
.fichaje-listado.card{ max-width:1100px; margin:16px auto; padding:12px 12px 16px; border:1px solid var(--fichaje-border); background: var(--fichaje-card); border-radius: var(--radius-xl); box-shadow: var(--shadow-1); }

/* Barra de filtros alineada (labels + inputs en la misma fila) */
.fichaje-listado .filters{
  display: grid;
  grid-template-columns: auto 170px auto 170px auto auto;
  gap: 8px 10px;
  align-items: end;
  margin-bottom: 12px;
  padding: 10px;
  border: 1px solid var(--fichaje-border);
  border-radius: 12px;
  background: #fff;
  box-sizing: border-box;
}
.fichaje-listado .filters label{
  font-size:12px; color:var(--fichaje-ink-muted); line-height: 1; padding-bottom: 2px;
}
.fichaje-listado .filters input[type="date"], .fichaje-listado .filters select{
  width:100%;
  min-width: 0;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid var(--fichaje-border);
  background:#fff;
  font-size:14px;
  line-height:1.2;
  box-sizing:border-box;
  -webkit-appearance:none; appearance:none;
}
.fichaje-listado .filters .btn{
  padding:10px 12px;
  border-radius:12px;
  font-size:14px;
  text-align:center;
  white-space: nowrap;
}

/* Responsive: en móviles mantenemos pares "label + input" en una misma fila */
@media screen and (max-width: 640px){
  .fichaje-listado .filters{
    grid-template-columns: auto minmax(120px,1fr) auto minmax(120px,1fr) auto auto;
    gap: 8px 8px;
  }
}

/* Aún más estrecho: botones a una fila aparte */
@media screen and (max-width: 420px){
  .fichaje-listado .filters{
    grid-template-columns: auto 1fr;
  }
  .fichaje-listado .filters .btn{
    grid-column: 1 / -1;
  }
}

.fichaje-listado .tabla{ width:100%; border-collapse:collapse; border-radius:14px; overflow:hidden; }
.fichaje-listado .tabla th, .fichaje-listado .tabla td{ border-top:1px solid var(--fichaje-border); padding:10px; text-align:left; font-size:14px; }
.fichaje-listado .tabla thead th{ background:#f1f5f9; }
.fichaje-listado .tabla th.col-chk, .fichaje-listado .tabla td.col-chk{ width:34px; text-align:center; }

/* Etiquetas en celdas (móvil) */
@media screen and (max-width: 720px){
  .fichaje-listado .tabla thead { display: none; }
  .fichaje-listado .tabla tr { display:block; margin:0 0 10px; border:1px solid var(--fichaje-border); border-radius:12px; overflow:hidden; }
  .fichaje-listado .tabla td { display:block; border-top:1px solid var(--fichaje-border); }
  .fichaje-listado .tabla td:first-child { border-top:none; }
  .fichaje-listado .tabla td::before{
    content: attr(data-label);
    display:block; font-size:12px; color: var(--fichaje-ink-muted); margin-bottom: 2px;
  }
  .fichaje-listado .tabla td.col-chk::before{ content:''; display:none; }
}

#fichaje-map .leaflet-control-zoom a{ background: var(--fichaje-primary); color:#fff; }

@media (pointer:coarse){
  .fichaje-card .btn, .fichaje-listado .filters .btn { min-height: 44px; }
}


  body { background:#fff; }
  .fichaje-card, .fichaje-listado.card { border:none; box-shadow:none; }
}

@media print{
  /* Limpieza general */
  .no-print, .auth-buttons, .help, .filters, #fichaje-map { display:none !important; }
  html, body { background:#ffffff !important; color:#000 !important; }
  .fichaje-card, .fichaje-listado.card { border:none !important; box-shadow:none !important; }

  /* Fuerza tabla clásica: sin stacking */
  .fichaje-listado .tabla { width:100% !important; border-collapse: collapse !important; }
  .fichaje-listado .tabla thead { display: table-header-group !important; }
  .fichaje-listado .tabla tbody { display: table-row-group !important; }
  .fichaje-listado .tabla tr { display: table-row !important; page-break-inside: avoid !important; }
  .fichaje-listado .tabla th,
  .fichaje-listado .tabla td {
    display: table-cell !important;
    border: 1px solid #bbb !important;
    padding: 6px 8px !important;
    font-size: 11pt !important;
    vertical-align: top !important;
  }
  /* Quita etiquetas móviles */
  .fichaje-listado .tabla td::before { content: none !important; }

  /* Anchos sugeridos para una línea limpia en A4 */
  .fichaje-listado .tabla th:nth-child(1),
  .fichaje-listado .tabla td:nth-child(1) { width: 22% !important; } /* Fecha */
  .fichaje-listado .tabla th:nth-child(2),
  .fichaje-listado .tabla td:nth-child(2) { width: 22% !important; } /* Trabajador */
  .fichaje-listado .tabla th:nth-child(3),
  .fichaje-listado .tabla td:nth-child(3) { width: 8% !important; }  /* Tipo */
  .fichaje-listado .tabla th:nth-child(4),
  .fichaje-listado .tabla td:nth-child(4) { width: 12% !important; } /* Lat */
  .fichaje-listado .tabla th:nth-child(5),
  .fichaje-listado .tabla td:nth-child(5) { width: 12% !important; } /* Lng */
  .fichaje-listado .tabla th:nth-child(6),
  .fichaje-listado .tabla td:nth-child(6) { width: 8% !important; }  /* ±m */
  .fichaje-listado .tabla th:nth-child(7),
  .fichaje-listado .tabla td:nth-child(7) { width: 8% !important; }  /* Declaración */

  .fichaje-listado h2 { font-size: 14pt !important; margin-bottom: 10px !important; }
}
