/* ============================================================
   PORTAL DEL TRABAJADOR · CENTRE MÈDIC CASTELLDEFELS
   estilos.css
   ============================================================
   Todo el aspecto de la aplicación. Sin preprocesador ni build:
   se edita y se sube.

   Orden del fichero:
     1. Paleta y variables
     2. Base y tipografía
     3. Barra superior y navegación
     4. Tarjetas, listas y formularios
     5. Pantallas concretas (calendario, equipo, informes)
     6. Móvil y pantallas anchas

   La paleta está en :root. Cambiar --acento cambia toda la app.
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');
  /* font-display:swap ya incluido en la URL — el texto se muestra con fuente de sistema mientras carga Inter */
  :root {
  /* ── Paleta ──
     Los tonos "suave" eran casi blancos y todo se veía descafeinado.
     Ahora tienen cuerpo suficiente para distinguirse de un vistazo,
     sin llegar a chillar. El azul del centro (#3D4495) manda. */

  --tinta:#161930; --gris:#646a80; --linea:#dfe2ee; --fondo:#f2f4fa;

  --acento:#3D4495;          /* el azul del logo del centro */
  --acento-osc:#2b3070;
  --acento-claro:#5a61b8;
  --acento-suave:#e4e6f6;    /* antes #edeef8, casi invisible */

  --rojo:#c73a2b;   --rojo-suave:#fce8e5;   --rojo-fuerte:#e05545;
  --verde:#0b7a5c;  --verde-suave:#d6f2e8;  --verde-fuerte:#3fae86;
  --ambar:#8a5f10;  --ambar-suave:#fdeecb;  --ambar-fuerte:#f0b429;
  --azul:#1d6fa5;   --azul-suave:#dceefa;   --azul-fuerte:#4a9fd8;

  /* Sombras con un punto de azul: el gris puro apaga el conjunto */
  --sombra: 0 1px 3px rgba(61,68,149,.07), 0 4px 16px rgba(61,68,149,.06);
  --sombra-hover: 0 2px 10px rgba(61,68,149,.12), 0 10px 32px rgba(61,68,149,.10);
  --sombra-fuerte: 0 6px 24px rgba(61,68,149,.18);
  --radio: 14px;
  --radio-s: 10px;
}
  * { box-sizing:border-box; margin:0; -webkit-tap-highlight-color:transparent; }
  html, body { height:100%; }
  body {
    font-family:'Inter',-apple-system,'Segoe UI',Roboto,sans-serif;
    color:var(--tinta); font-size:15px; line-height:1.55;
    background:var(--fondo) url("data:image/jpeg;base64,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") center/cover fixed; background-blend-mode:soft-light;
  }
  .caja { max-width:560px; margin:0 auto; padding:16px 16px calc(52px + env(safe-area-inset-bottom)); }




  /* ── Diálogo de confirmación propio ──
     El confirm() del navegador se ve como alerta del sistema y rompe
     la continuidad, sobre todo en móvil. */
  .modal-fondo { position:fixed; inset:0; background:rgba(26,29,46,.45); z-index:100;
                 display:flex; align-items:center; justify-content:center; padding:20px;
                 animation:fadeIn .15s ease; }
  @keyframes fadeIn { from{opacity:0} to{opacity:1} }
  .modal { background:#fff; border-radius:var(--radio); padding:22px; max-width:400px;
           width:100%; box-shadow:0 12px 40px rgba(26,29,46,.25); animation:fadeUp .2s ease; }
  .modal h3 { font-size:16px; font-weight:600; color:var(--tinta); margin-bottom:8px; }
  .modal p { font-size:14px; color:var(--gris); line-height:1.5; margin-bottom:16px; }
  .modal .botonera { margin-top:0; }

  /* ── Pestañas agrupadas ──
     Doce seguidas se leen como una lista sin forma. Los separadores
     marcan cuatro bloques: día a día · personas · calendario e
     informes · ajustes. */
  .nav-sep { display:none; }
  /* Los separadores agrupan bien en pantalla ancha; en móvil la barra
     se desliza y meterlos solo gasta espacio. */
  @media (min-width:768px) {
    .nav-sep { display:block; width:1px; align-self:stretch;
               background:var(--linea); margin:4px 4px; flex-shrink:0; }
  }
  .nav button { position:relative; }
  /* Contador de pendientes sobre la pestaña */
  .nav button .cnt { display:inline-block; min-width:17px; height:17px; line-height:17px;
                     border-radius:9px; background:var(--rojo); color:#fff; font-size:10px;
                     font-weight:700; padding:0 4px; margin-left:5px; vertical-align:middle; }
  .nav button.activo .cnt { background:#fff; color:var(--acento); }

  /* ── Lista de equipo: apoyos visuales ──
     Con 65 personas seguidas cuesta orientarse. Un poco de aire, el
     código en monoespaciada para alinear la vista, y el aviso del PIN
     como etiqueta en vez de texto suelto. */
  #eq-lista .reg { padding:14px 16px; }
  #eq-lista .reg b { font-size:14.5px; }
  #eq-lista .cod { font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
                   font-size:12px; color:var(--gris); }
  .pin-aviso { display:inline-block; font-size:11px; padding:2px 8px; border-radius:99px;
               background:var(--ambar-suave); color:var(--ambar); font-weight:600;
               white-space:nowrap; }
  .pin-ok    { display:inline-block; font-size:11px; padding:2px 8px; border-radius:99px;
               background:var(--verde-suave); color:var(--verde); font-weight:600;
               white-space:nowrap; }
  .reg.inactivo { opacity:.55; }

  /* La ficha abierta se distingue de la lista */
  [id^="ficha-"]:not(.oculto) {
    background:var(--acento-suave); border-radius:11px; padding:14px !important;
    margin-top:12px !important; border-top:none !important;
  }
  [id^="ficha-"] h2 { margin-top:0; }
  [id^="ficha-"] input, [id^="ficha-"] select, [id^="ficha-"] textarea { background:#fff; }

  /* ── Pestañas: que se vea dónde estás ── */
  .nav button.activo { box-shadow:0 2px 8px rgba(74,80,165,.25); }

  /* ── Formularios largos: agrupar en bloques ── */
  .grupo { border-top:1px solid var(--linea); margin-top:18px; padding-top:14px; }
  .grupo:first-of-type { border-top:none; margin-top:0; padding-top:0; }

  /* ── Estado vacío menos triste ── */
  .vacio { padding:32px 16px; }

  /* ── Botonera: que no se amontone en móvil ── */
  @media (max-width:400px) {
    .botonera { flex-wrap:wrap; }
    .botonera button { min-width:calc(50% - 4px); }
  }


  /* ── Calendario de equipo en móvil ──
     Treinta columnas de 26px son 780px: en un teléfono hay que deslizar
     mucho para ver el mes. Se estrechan las celdas y la columna de
     nombres, y se marca que hay más a la derecha. */
  @media (max-width:640px) {
    .caleq .pers { min-width:96px; max-width:96px; padding:4px 6px; font-size:11px; }
    .caleq .pers small { font-size:9px; }
    .caleq td.d { width:19px; height:24px; }
    .caleq thead th { min-width:19px; font-size:10px; padding:2px 0; }
    .caleq thead .dow { font-size:8px; }
    .caleq .hex::after { width:6px; height:6px; margin:-3px 0 0 -3px; }
    /* Sombra al borde derecho mientras quede tabla por ver */
    .caleq { position:relative; }
    .caleq::after {
      content:''; position:absolute; top:0; right:0; bottom:0; width:18px;
      background:linear-gradient(to right, rgba(255,255,255,0), rgba(255,255,255,.85));
      pointer-events:none;
    }
  }


  /* ── Calendario en móvil: vista de lista ──
     La rejilla de treinta columnas no se maneja con el pulgar. En
     pantallas estrechas se ofrece una lista por día, que responde mejor
     a la pregunta real: "¿quién falta hoy y esta semana?" */
  .caldia { border-left:3px solid var(--linea); padding-left:12px; margin-bottom:14px; }
  .caldia.hoy { border-left-color:var(--acento); }
  .caldia.festivo { border-left-color:#c9b57a; }
  .caldia.vacio { border-left-color:#e8e9f0; opacity:.6; }
  .caldia-cab { display:flex; align-items:baseline; gap:8px; margin-bottom:6px; }
  .caldia-cab b { font-size:15px; color:var(--tinta); }
  .caldia-cab .dia { font-size:12px; color:var(--gris); text-transform:capitalize; }
  .caldia-cab .et { margin-left:auto; font-size:11px; padding:2px 8px; border-radius:99px;
                    background:var(--acento-suave); color:var(--acento-osc); font-weight:600; }
  .caldia .quien { display:flex; align-items:center; gap:8px; padding:5px 0;
                   font-size:13.5px; border-bottom:1px solid #f2f3f8; }
  .caldia .quien:last-child { border-bottom:none; }
  .caldia .punto { width:9px; height:9px; border-radius:50%; flex-shrink:0; }
  .caldia .quien small { color:var(--gris); font-size:11.5px; margin-left:auto; }


  /* ── Buscador general de gerencia ── */
  .buscador { position:relative; margin-bottom:12px; }
  .buscador input { padding-left:34px; }
  .buscador .lupa { position:absolute; left:11px; top:50%; transform:translateY(-50%);
                    color:var(--gris); font-size:14px; pointer-events:none; }
  .resultados { position:absolute; left:0; right:0; top:100%; margin-top:4px; z-index:30;
                background:#fff; border-radius:var(--radio); box-shadow:0 8px 28px rgba(26,29,46,.16);
                max-height:60vh; overflow-y:auto; border:1px solid var(--linea); }
  .resultados .grupo-r { padding:8px 12px 4px; font-size:11px; font-weight:700;
                         text-transform:uppercase; letter-spacing:.4px; color:var(--gris);
                         background:#fafbff; position:sticky; top:0; }
  .resultados .item { padding:9px 12px; cursor:pointer; border-bottom:1px solid #f4f5fa; }
  .resultados .item:hover, .resultados .item.sel { background:var(--acento-suave); }
  .resultados .item:last-child { border-bottom:none; }
  .resultados .item b { font-size:14px; }
  .resultados .item div { font-size:12px; color:var(--gris); margin-top:1px; }
  .resultados .nada { padding:16px 12px; text-align:center; color:var(--gris); font-size:13px; }


  /* ── Estados con más carácter ──
     Antes eran texto gris sobre fondo casi blanco. Ahora cada estado se
     reconoce por el color sin leerlo. */
  .estado { font-weight:600; letter-spacing:.2px; border:1px solid transparent; }
  .e-Pendiente  { background:var(--ambar-suave); color:var(--ambar); border-color:#f0d9a0; }
  .e-Aprobada   { background:var(--verde-suave); color:var(--verde); border-color:#a8ddca; }
  .e-Registrada { background:var(--verde-suave); color:var(--verde); border-color:#a8ddca; }
  .e-Rechazada  { background:var(--rojo-suave);  color:var(--rojo);  border-color:#f3c4bd; }
  .e-Cancelada  { background:#eceef4; color:var(--gris); border-color:#dadeea; }
  .e-Anulada    { background:#eceef4; color:var(--gris); border-color:#dadeea; }

  /* ── Tiles de la portada ──
     Son lo primero que ve el trabajador. Un borde de color a la
     izquierda y un icono con fondo los hacen reconocibles de un vistazo. */
  .tile { border-left:3px solid transparent; transition:border-color .15s, transform .12s, box-shadow .15s; }
  .tile:active { transform:scale(.985); }
  .tile:nth-child(1) { border-left-color:var(--acento); }
  .tile:nth-child(2) { border-left-color:var(--verde-fuerte); }
  .tile:nth-child(3) { border-left-color:var(--azul-fuerte); }
  .tile:nth-child(4) { border-left-color:var(--ambar-fuerte); }
  .tile:nth-child(5) { border-left-color:var(--acento-claro); }
  .tile .ico { background:var(--acento-suave); border-radius:12px;
               width:42px; height:42px; display:flex; align-items:center;
               justify-content:center; flex-shrink:0; }
  @media (hover:hover) {
    .tile:hover { box-shadow:var(--sombra-hover); }
  }

  /* ── Chips de la pestaña Hoy ── */
  .chip { background:var(--acento-suave); color:var(--acento-osc);
          border:1px solid #cfd3ee; font-weight:500; }
  .chip b { color:var(--acento-osc); font-weight:700; }

  /* ── Botones ── */
  .principal { background:linear-gradient(180deg, var(--acento-claro), var(--acento));
               box-shadow:0 2px 8px rgba(61,68,149,.28); }
  .principal:active { transform:translateY(1px); box-shadow:0 1px 4px rgba(61,68,149,.28); }
  .mini.no { color:var(--rojo); border-color:#f0c8c2; background:var(--rojo-suave); }
  @media (hover:hover) {
    .mini:hover { border-color:var(--acento-claro); color:var(--acento-osc); }
    .mini.no:hover { background:#f9d8d3; border-color:var(--rojo); }
  }

  /* ── Avisos y cajas de información ── */
  .aviso  { background:var(--rojo-suave);  border-left:3px solid var(--rojo); }
  .exito  { background:var(--verde-suave); border-left:3px solid var(--verde-fuerte); }
  .infobox{ background:var(--azul-suave);  border-left:3px solid var(--azul-fuerte);
            padding:12px 14px; border-radius:var(--radio-s); font-size:13.5px;
            color:var(--tinta); }
  .previo { background:var(--acento-suave); border-left:3px solid var(--acento); }

  /* ── Campanita con el aviso más visible ── */
  .campana .badge { box-shadow:0 0 0 2px #fff, 0 2px 6px rgba(199,58,43,.4); }

  /* ── Tarjetas: un punto más de relieve ── */
  .tarjeta { border:1px solid var(--linea); }
  .reg { border:1px solid var(--linea); transition:border-color .15s, box-shadow .15s; }
  @media (hover:hover) { .reg:hover { border-color:#cbd0e4; box-shadow:var(--sombra); } }


  /* ── Pestañas: que se vea cuál está activa ── */
  .nav button { border:1px solid var(--linea); background:#fff; font-weight:500;
                transition:all .14s; }
  .nav button.activo { background:var(--acento); color:#fff; border-color:var(--acento);
                       box-shadow:0 2px 10px rgba(61,68,149,.3); font-weight:600; }
  @media (hover:hover) {
    .nav button:not(.activo):hover { border-color:var(--acento-claro);
                                     color:var(--acento-osc); background:var(--acento-suave); }
  }

  /* ── Calendario: colores plenos y bordes que separan ── */
  .caleq td.d, .caleq th { border-right:1px solid rgba(0,0,0,.05); }
  .caleq .vac    { background:var(--verde-fuerte); }
  .caleq .pend   { background:var(--ambar-fuerte); }
  .caleq .comp   { background:var(--azul-fuerte); }
  .caleq .fest   { background:#e5dcc0; }
  .caleq .finde  { background:#e8eaf2; }
  .caleq .esHoy  { box-shadow:inset 0 0 0 2px var(--acento); }
  /* Que el bloque de días seguidos se lea como uno solo */
  .caleq td.vac + td.vac, .caleq td.pend + td.pend, .caleq td.comp + td.comp {
    border-left-color:rgba(255,255,255,.35);
  }

  /* ── Vista por días: más color ── */
  .caldia.hoy { border-left-width:4px; background:linear-gradient(90deg, var(--acento-suave), transparent 60%);
                border-radius:0 var(--radio-s) var(--radio-s) 0; padding:8px 12px; }
  .caldia-cab .et { background:var(--acento); color:#fff; }
  .caldia.festivo .caldia-cab .et { background:#b39a4d; }

  /* ── Leyenda con los colores plenos ── */
  .leyenda i { box-shadow:0 1px 3px rgba(0,0,0,.12); border:none; }

  /* ── La barra superior, con el azul del centro ── */
  .barra { border-bottom:2px solid var(--acento); }
  #b-nombre b { color:var(--acento-osc); }

  /* ── Login más presentable ── */
  #v-login .tarjeta { border-top:4px solid var(--acento); }

  /* ── Skeletons con el tono de la marca ── */
  .skel { background:linear-gradient(90deg, #eceef7 25%, #f6f7fc 50%, #eceef7 75%); }


  /* ══ Portada del trabajador ══
     Antes era una lista de enlaces: había que entrar en cada sitio para
     enterarse de algo. Ahora lo importante se ve al abrir la app. */

  /* Las dos cifras que de verdad importan */
  .marcadores { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:14px; }
  .marcador { background:#fff; border:1px solid var(--linea); border-radius:var(--radio);
              padding:16px 14px; box-shadow:var(--sombra); position:relative; overflow:hidden; }
  .marcador::before { content:''; position:absolute; left:0; top:0; bottom:0; width:4px; }
  .marcador.horas::before { background:var(--acento); }
  .marcador.vac::before   { background:var(--verde-fuerte); }
  .marcador .cifra { font-size:30px; font-weight:700; line-height:1.05; color:var(--tinta);
                     font-variant-numeric:tabular-nums; }
  .marcador .cifra small { font-size:15px; font-weight:600; color:var(--gris); margin-left:3px; }
  .marcador .et { font-size:11.5px; text-transform:uppercase; letter-spacing:.5px;
                  color:var(--gris); font-weight:600; margin-bottom:6px; }
  .marcador .pie { font-size:12px; color:var(--gris); margin-top:6px; line-height:1.4; }
  .marcador .pie b { color:var(--ambar); }
  .marcador.negativo .cifra { color:var(--rojo); }

  /* Lo que tiene en marcha */
  .enmarcha { margin-bottom:14px; }
  .enmarcha .fila-e { display:flex; align-items:center; gap:10px; padding:11px 14px;
                      background:#fff; border:1px solid var(--linea); border-radius:var(--radio-s);
                      margin-bottom:7px; font-size:13.5px; }
  .enmarcha .fila-e .ic { font-size:16px; flex-shrink:0; }
  .enmarcha .fila-e .tx { flex:1; min-width:0; }
  .enmarcha .fila-e .tx b { display:block; font-size:13.5px; }
  .enmarcha .fila-e .tx small { color:var(--gris); font-size:11.5px; }

  /* Lo siguiente en el calendario */
  .proximo { background:linear-gradient(135deg, var(--acento-suave), #f4f5fc);
             border:1px solid #cfd3ee; border-radius:var(--radio); padding:14px;
             margin-bottom:14px; display:flex; align-items:center; gap:12px; }
  .proximo .dia-g { background:#fff; border-radius:11px; width:52px; text-align:center;
                    padding:7px 0; box-shadow:var(--sombra); flex-shrink:0; }
  .proximo .dia-g .n { font-size:21px; font-weight:700; color:var(--acento-osc); line-height:1; }
  .proximo .dia-g .m { font-size:10px; text-transform:uppercase; color:var(--gris);
                       font-weight:600; letter-spacing:.4px; }
  .proximo .tx b { font-size:14.5px; }
  .proximo .tx div { font-size:12px; color:var(--gris); margin-top:2px; }

  @media (min-width:768px) {
    .marcadores { grid-template-columns:repeat(2, 1fr); }
    .marcador .cifra { font-size:34px; }
  }


  /* ── Avisos del sistema ──
     Lo que conviene revisar, sin tener que ir a buscarlo. */
  .avisos { margin-bottom:14px; }
  .aviso-f { display:flex; align-items:flex-start; gap:11px; padding:12px 14px;
             border-radius:var(--radio-s); margin-bottom:8px; cursor:pointer;
             border:1px solid; transition:transform .12s; }
  .aviso-f:active { transform:scale(.99); }
  .aviso-f .ic { font-size:17px; flex-shrink:0; line-height:1.3; }
  .aviso-f .tx { flex:1; min-width:0; }
  .aviso-f .tx b { display:block; font-size:14px; margin-bottom:2px; }
  .aviso-f .tx small { font-size:12px; opacity:.85; display:block; line-height:1.4; }
  .aviso-f .fl { opacity:.5; font-size:17px; }
  .aviso-f.alto  { background:var(--rojo-suave);  border-color:#f0c8c2; color:var(--rojo); }
  .aviso-f.medio { background:var(--ambar-suave); border-color:#f0d9a0; color:var(--ambar); }
  .aviso-f.bajo  { background:var(--azul-suave);  border-color:#b8d9ef; color:var(--azul); }
  .aviso-f.alto .tx b, .aviso-f.medio .tx b, .aviso-f.bajo .tx b { color:inherit; }


  /* ── Detalle de una persona ── */
  .modal-grande { background:#fff; border-radius:var(--radio); max-width:760px; width:100%;
                  max-height:90vh; overflow-y:auto; box-shadow:0 12px 44px rgba(26,29,46,.3);
                  animation:fadeUp .2s ease; }
  .modal-grande .cab { position:sticky; top:0; background:#fff; padding:18px 20px 12px;
                       border-bottom:1px solid var(--linea); z-index:2;
                       display:flex; align-items:flex-start; gap:12px; }
  .modal-grande .cab h2 { margin:0; }
  .modal-grande .cerrar { margin-left:auto; background:none; border:none; font-size:24px;
                          color:var(--gris); cursor:pointer; line-height:1; padding:0 4px; }
  .modal-grande .cuerpo { padding:16px 20px 20px; }

  /* Barras del reparto por mes: sin librería de gráficos */
  .barras { display:flex; align-items:flex-end; gap:4px; height:90px; margin:10px 0 4px; }
  .barras .b { flex:1; background:var(--acento-suave); border-radius:4px 4px 0 0;
               position:relative; min-height:3px; transition:background .15s; }
  .barras .b.hay { background:linear-gradient(180deg, var(--acento-claro), var(--acento)); }
  .barras .b span { position:absolute; bottom:100%; left:50%; transform:translateX(-50%);
                    font-size:9.5px; color:var(--gris); margin-bottom:2px; white-space:nowrap; }
  .barras-pie { display:flex; gap:4px; }
  .barras-pie div { flex:1; text-align:center; font-size:9.5px; color:var(--gris); }

  .cifras { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; margin-bottom:14px; }
  @media (min-width:560px) { .cifras { grid-template-columns:repeat(4,1fr); } }
  .cifras .c { background:var(--fondo); border-radius:var(--radio-s); padding:10px 12px; }
  .cifras .c .n { font-size:20px; font-weight:700; color:var(--tinta);
                  font-variant-numeric:tabular-nums; }
  .cifras .c .e { font-size:10.5px; text-transform:uppercase; letter-spacing:.4px;
                  color:var(--gris); font-weight:600; }


  /* ── Que nada se salga a lo ancho ──
     Un solo elemento más ancho que la pantalla hace que el móvil encoja
     la página entera, y todo se ve diminuto. Esto lo impide de raíz. */
  html, body { overflow-x:hidden; max-width:100%; }
  * { max-width:100%; }
  table { max-width:none; }          /* las tablas sí pueden, van en su caja con scroll */
  .caleq table { max-width:none; }
  img, svg, video { height:auto; }

  /* El modal grande, dentro de la pantalla */
  .modal-grande { max-width:min(760px, calc(100vw - 24px)); }
  .modal { max-width:min(400px, calc(100vw - 32px)); }


  /* ── Ajustes para que se maneje como una app ── */
  @media (max-width:640px) {
    /* Aprovechar el ancho: en un móvil los márgenes grandes se comen la pantalla */
    .caja { padding:14px 12px calc(70px + env(safe-area-inset-bottom)); }
    .tarjeta { padding:16px 14px; border-radius:13px; }
    .reg { padding:12px 13px; }

    /* Que se pueda leer sin acercar */
    body { font-size:15px; }
    .detalle { font-size:12.5px; }
    .nota { font-size:12.5px; }
    label { font-size:12px; }

    /* Campos y botones del tamaño del dedo. El 16px del input evita
       que iOS haga zoom solo al tocarlo, que es de lo que más molesta. */
    input, select, textarea { font-size:16px; padding:13px 14px; }
    .principal { padding:15px; font-size:16px; }
    .mini { padding:10px 14px; font-size:13.5px; min-height:40px; }

    /* Las pestañas de gerencia, deslizables sin cortarse */
    .nav { overflow-x:auto; flex-wrap:nowrap; scroll-snap-type:x proximity;
           -webkit-overflow-scrolling:touch; padding-bottom:4px; }
    .nav::-webkit-scrollbar { display:none; }
    .nav button { flex-shrink:0; scroll-snap-align:start; }

    /* Los tiles de la portada, más altos para el pulgar */
    .tile { padding:15px 14px; }
    .tile .ico { width:40px; height:40px; }

    /* Las dos cifras de la portada, a lo grande */
    .marcador { padding:15px 13px; }
    .marcador .cifra { font-size:27px; }

    /* Las dos columnas de fechas se apilan */
    .dosfechas { grid-template-columns:1fr; }

    /* Tablas: que se deslicen en su caja, no que estiren la página */
    .tarjeta table { font-size:13px; }
    .tarjeta > div[style*="overflow-x"] { margin:0 -14px; padding:0 14px; }
  }

  /* Móviles estrechos */
  @media (max-width:380px) {
    .marcadores { grid-template-columns:1fr; }
    .cifras { grid-template-columns:1fr 1fr; }
    .chips { gap:5px; }
    .chip { font-size:11.5px; padding:5px 9px; }
  }


  /* ── Calendario personal: los mismos colores que el de equipo ──
     Se habían quedado con los tonos suaves de antes, que en una celda
     pequeña apenas se distinguen unos de otros. */
  .cal .d.finde { background:#eceef4; color:#7e8399; }
  .cal .d.F { background:#e5dcc0; color:#5c5433; border-color:#d4c9a5; font-weight:600; }
  .cal .d.V { background:var(--verde-fuerte); color:#fff; border-color:#2f9773; font-weight:700; }
  .cal .d.S { background:var(--ambar-fuerte); color:#5c4308; border-color:#d69c14; font-weight:700; }
  .cal .d.B { background:#7d84cf; color:#fff; border-color:#6067b5; font-weight:700; }
  .cal .d.C { background:var(--azul-fuerte); color:#fff; border-color:#3585bc; font-weight:700; }
  /* El punto de horas apuntadas, blanco sobre color y oscuro sobre claro */
  .cal .pto { width:6px; height:6px; box-shadow:0 0 0 1.5px rgba(255,255,255,.85); }
  .cal .d.V .pto, .cal .d.S .pto, .cal .d.B .pto, .cal .d.C .pto {
    background:#fff; box-shadow:0 0 0 1.5px rgba(0,0,0,.2); }
  .cal .d.hoy { outline:2.5px solid var(--acento); outline-offset:-1px; font-weight:700; }


  /* ── Refresco ──
     El botón suelto en la barra quedaba como un parche. Ahora es una
     línea finísima de progreso arriba del todo, como en las apps: se ve
     si te fijas y no molesta si no. */
  #barra-carga { position:fixed; top:0; left:0; height:2.5px; width:0;
                 background:linear-gradient(90deg, var(--acento-claro), var(--acento));
                 z-index:200; opacity:0; transition:width .25s ease, opacity .25s; }
  #barra-carga.va  { width:70%; opacity:1; transition:width 1.2s cubic-bezier(.1,.7,.3,1), opacity .15s; }
  #barra-carga.fin { width:100%; opacity:0; transition:width .2s, opacity .4s .15s; }

  /* Y al deslizar hacia abajo desde arriba, en el móvil, recarga */
  #tirar { position:fixed; top:0; left:50%; transform:translate(-50%,-44px);
           width:34px; height:34px; border-radius:50%; background:#fff;
           box-shadow:var(--sombra-hover); z-index:199;
           display:flex; align-items:center; justify-content:center;
           font-size:16px; color:var(--acento); transition:transform .2s; }
  #tirar.visible { transform:translate(-50%, 14px); }
  #tirar.girando { animation:girar .8s linear infinite; }
  @keyframes girar { to { transform:translate(-50%,14px) rotate(360deg); } }


  /* ── Leyenda: que los tonos claros se distingan del papel ──
     El gris del fin de semana y el blanco de "horas apuntadas" se
     perdían sobre el fondo blanco de la tarjeta. */
  .leyenda i { border:1px solid rgba(0,0,0,.14); box-shadow:none; }
  /* El cuadrado de "horas apuntadas" lleva su punto dentro */
  .leyenda i.conpunto { position:relative; background:#fff; }
  .leyenda i.conpunto::after {
    content:''; position:absolute; left:50%; top:50%;
    width:6px; height:6px; margin:-3px 0 0 -3px;
    border-radius:50%; background:var(--acento-osc);
  }


  /* ── Retoques de contraste y remate ── */

  /* El "Sin horas apuntadas en este mes" flotaba suelto bajo la tarjeta */
  #v-cal h2 + .nota, #v-cal > .nota { padding:14px 16px; background:#fff;
    border:1px solid var(--linea); border-radius:var(--radio-s); }

  /* Los días fuera del mes: que no parezcan huecos rotos */
  .cal .d.fuera { background:transparent; border-color:transparent; }

  /* Los números de los días, algo más legibles */
  .cal .d { font-size:14px; }
  .cal .d.finde { color:#8287a0; }

  /* El mes y el año, que son selectores, con aire de serlo */
  #cal-mes, #cal-anyo { font-weight:600; color:var(--acento-osc); }

  /* Las flechas de mes anterior y siguiente */
  .cal-cab .mini { min-width:38px; font-size:16px; line-height:1; }

  /* Un título de sección no debería quedar pegado a lo anterior */
  h2 + .reg, h2 + .tarjeta { margin-top:10px; }

  /* Foco visible al navegar con el tabulador: accesibilidad básica */
  a:focus-visible, button:focus-visible, input:focus-visible,
  select:focus-visible, textarea:focus-visible {
    outline:2px solid var(--acento); outline-offset:2px;
  }

  /* Que el texto largo no rompa la caja */
  .reg, .tarjeta, .detalle, .nota { overflow-wrap:anywhere; }

  /* Los estados vacíos, centrados y con menos peso visual */
  .vacio { color:var(--gris); }
  .vacio .emo { opacity:.7; }

  /* ── Tablas más legibles ── */
  /* Con 65 filas, alternar el fondo y marcar la fila bajo el cursor
     evita perder el renglón al leer a lo ancho. */
  tbody tr:nth-child(even) td { background:rgba(0,0,0,.012); }
  @media (hover:hover) { tbody tr:hover td { background:var(--acento-suave); } }
  /* La cabecera fija solo en pantalla grande: en móvil compite con la
     barra superior, que ya es sticky, y se solapan. */
  @media (min-width:768px) {
    thead th { position:sticky; top:0; background:#fff; z-index:1; }
  }
  .tarjeta table { width:100%; }
  td.num, th.num { font-variant-numeric:tabular-nums; }

  /* La barra de gerencia se queda a la vista al desplazar por una tabla larga */
  @media (min-width:768px) {
    #g-nav { position:sticky; top:52px; background:rgba(255,255,255,.96);
             backdrop-filter:blur(8px); z-index:10; padding-top:10px;
             border-bottom:1px solid var(--linea); }
  }

  /* La altura limitada solo tiene sentido en pantalla grande: en móvil
     el calendario ya cabe a lo alto y limitarlo deja un hueco vacío. */
  @media (min-width:768px) { .caleq { max-height:75vh; } }
  .caleq thead th { top:0; }

  /* ── Ordenador: dos escalones ──
     El portal es de móvil primero, pero gerencia lo usa en el ordenador
     y ahí una columna de 720px deja las tablas de nueve columnas
     inservibles. Las pantallas de datos se ensanchan; las de formulario
     se quedan estrechas, que leer un campo de 1.400px de ancho es peor. */
  @media (min-width:768px) {
    .caja { max-width:760px; padding:20px 24px calc(52px + env(safe-area-inset-bottom)); }
    .tiles { grid-template-columns:1fr 1fr; }
    .nav { gap:8px; flex-wrap:wrap; }
    .nav button { padding:10px 18px; font-size:14px; }
    .dosfechas > div { min-width:200px; }
    .reg { padding:14px 18px; }
    .tarjeta { padding:22px; }
    .login-banner { height:200px; }
    /* Las tarjetas de solicitud, en dos columnas: se ve más de un
       vistazo sin tener que desplazarse */
    #g-fact, #g-vac { display:grid; grid-template-columns:1fr 1fr; gap:12px; align-items:start; }
    #g-fact h2, #g-vac h2, #g-fact > p, #g-vac > p { grid-column:1 / -1; }
  }

  /* Pantallas anchas: las de tabla aprovechan el monitor */
  @media (min-width:1100px) {
    body.ancho .caja { max-width:1180px; }
    body.ancho .tiles { grid-template-columns:repeat(3, 1fr); }
    body.ancho table { font-size:13.5px; }
    body.ancho th, body.ancho td { padding:10px 8px; }
    /* El equipo, en dos columnas */
    body.ancho #eq-lista { display:grid; grid-template-columns:1fr 1fr; gap:10px; align-items:start; }
    body.ancho #eq-lista .reg { margin-bottom:0; }
  }

  @media (min-width:1500px) {
    body.ancho .caja { max-width:1420px; }
    body.ancho #eq-lista { grid-template-columns:repeat(3, 1fr); }
  }

  /* ─── Barra superior ─── */
  .barra { background:rgba(255,255,255,.92); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); border-bottom:1px solid var(--linea); position:sticky; top:0; z-index:20; }
  .barra .caja { display:flex; align-items:center; justify-content:space-between; padding:10px 16px; }
  .barra .nom { font-size:13px; font-weight:600; letter-spacing:.01em; }
  .barra .nom small { display:block; color:var(--gris); font-weight:400; font-size:11.5px; }
  .topbtns { display:flex; align-items:center; gap:8px; }
  .campana { position:relative; background:none; border:none; font-size:20px; cursor:pointer; padding:6px; line-height:1; border-radius:10px; transition:background .15s; }
  .campana:active { background:var(--acento-suave); }
  .campana .badge { position:absolute; top:1px; right:1px; background:var(--rojo); color:#fff; font-size:10px; font-weight:700; min-width:16px; height:16px; border-radius:8px; display:flex; align-items:center; justify-content:center; padding:0 4px; }
  .tabbadge { display:inline-block; background:var(--rojo); color:#fff; font-size:10px; font-weight:700; min-width:17px; height:17px; border-radius:9px; padding:0 5px; margin-left:4px; line-height:17px; text-align:center; vertical-align:middle; }
  a.salir { font-size:12px; color:var(--gris); text-decoration:none; padding:6px 10px; border-radius:8px; transition:background .15s; }
  a.salir:active { background:var(--fondo) url("data:image/jpeg;base64,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") center/cover fixed; background-blend-mode:soft-light; }

  /* ─── Tarjetas ─── */
  .tarjeta { background:#fff; border:1px solid var(--linea); border-radius:var(--radio); padding:18px; margin-bottom:14px; box-shadow:var(--sombra); }
  h2 { font-size:16px; font-weight:600; margin-bottom:10px; color:var(--acento-osc); letter-spacing:-.01em; }

  /* ─── Formularios ─── */
  label { font-size:12.5px; color:var(--gris); display:block; margin:14px 0 5px; font-weight:500; text-transform:uppercase; letter-spacing:.04em; }
  input, select, textarea { width:100%; padding:11px 14px; border:1.5px solid var(--linea); border-radius:11px; font-size:15px; background:#fff; color:var(--tinta); font-family:inherit; transition:border-color .15s, box-shadow .15s; }
  input[type="password"] { -webkit-text-security:disc; letter-spacing:3px; }
  input:focus, select:focus, textarea:focus { outline:none; border-color:var(--acento); box-shadow:0 0 0 3px var(--acento-suave); }
  button:focus-visible { outline:2px solid var(--acento); outline-offset:2px; }
  textarea { resize:vertical; min-height:56px; }

  /* ─── Botones ─── */
  button { font-family:inherit; font-size:14px; font-weight:500; padding:11px 16px; border-radius:11px; border:1.5px solid var(--linea); background:#fff; color:var(--tinta); cursor:pointer; transition:all .15s ease; }
  button:active { transform:scale(.98); }
  button.principal { background:var(--acento); border-color:var(--acento); color:#fff; font-weight:600; width:100%; margin-top:16px; letter-spacing:.01em; }
  button.principal:hover { background:var(--acento-osc); border-color:var(--acento-osc); }
  button.principal:active { background:var(--acento-osc); transform:scale(.98); }
  button:disabled { opacity:.5; cursor:default; transform:none !important; }
  button.cargando { position:relative; color:transparent !important; pointer-events:none; }
  button.cargando::after { content:''; position:absolute; top:50%; left:50%; width:18px; height:18px; margin:-9px 0 0 -9px; border:2.5px solid rgba(255,255,255,.3); border-top-color:#fff; border-radius:50%; animation:spin .6s linear infinite; }
  @keyframes spin { to { transform:rotate(360deg); } }
  button.mini { font-size:12.5px; padding:8px 14px; border-radius:9px; min-height:36px; }
  button.no { color:var(--rojo); border-color:rgba(192,57,43,.25); }
  button.no:hover { background:rgba(192,57,43,.06); }

  /* ─── Indicadores ─── */
  .saldo-grande { font-size:38px; font-weight:700; color:var(--acento); line-height:1.05; letter-spacing:-.02em; }
  .saldo-grande small { font-size:16px; font-weight:500; color:var(--gris); }
  .chips { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
  .chip { background:var(--fondo) url("data:image/jpeg;base64,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") center/cover fixed; background-blend-mode:soft-light; border-radius:8px; padding:6px 11px; font-size:12px; color:var(--gris); }
  .chip b { color:var(--tinta); font-weight:600; }

  /* ─── Registros ─── */
  .reg { border:1px solid var(--linea); border-radius:var(--radio); padding:12px 14px; margin-bottom:8px; background:#fff; transition:box-shadow .15s, border-color .15s; }
  .reg:hover { box-shadow:var(--sombra); }
  .reg .fila1 { display:flex; justify-content:space-between; align-items:flex-start; gap:8px; }
  .reg .detalle { font-size:12.5px; color:var(--gris); margin-top:3px; }

  /* ─── Estados ─── */
  .estado { font-size:11px; padding:3px 10px; border-radius:99px; white-space:nowrap; font-weight:600; letter-spacing:.02em; }
  .e-Registrada { background:var(--acento-suave); color:var(--acento); }
  .e-Anulado, .e-Anulada, .e-Rechazada { background:#fde8e8; color:var(--rojo); }
  .e-Pendiente { background:var(--ambar-suave); color:var(--ambar); }
  .e-Aprobada { background:var(--verde-suave); color:var(--verde); }

  /* ─── Navegación gerencia ─── */
  .nav { display:flex; gap:5px; overflow-x:auto; padding:10px 0; scrollbar-width:none; -ms-overflow-style:none; }
  .nav::-webkit-scrollbar { display:none; }
  .nav button { white-space:nowrap; font-size:13px; border-radius:99px; font-weight:500; }
  .nav button.activo { background:var(--acento); color:#fff; border-color:var(--acento); }
  .nav button:active { transform:scale(.95); }

  /* ─── Tablas ─── */
  table { width:100%; border-collapse:collapse; font-size:13px; }
  th, td { text-align:left; padding:9px 6px; border-bottom:1px solid var(--linea); }
  th { color:var(--gris); font-weight:600; font-size:11.5px; text-transform:uppercase; letter-spacing:.03em; }
  td.num, th.num { text-align:right; }

  /* ─── Avisos ─── */
  .aviso { background:#fde8e8; color:var(--rojo); border-radius:11px; padding:12px 14px; font-size:13.5px; margin-top:10px; display:none; }
  .exito { background:var(--verde-suave); color:var(--verde); border-radius:11px; padding:12px 14px; font-size:13.5px; margin-top:10px; display:none; }
  .oculto { display:none; }
  #v-home,#v-horas,#v-vac,#v-cal,#v-ger,#v-ayuda { animation:fadeUp .2s ease; }
  @keyframes fadeUp { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
  .botonera { display:flex; gap:8px; margin-top:10px; }
  .botonera button { flex:1; }
  .nota { font-size:12px; color:var(--gris); margin-top:6px; line-height:1.5; }
  .cargando { text-align:center; color:var(--gris); padding:32px 0; }
  .vacio { text-align:center; color:var(--gris); padding:28px 16px; font-size:13.5px; background:var(--fondo) url("data:image/jpeg;base64,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") center/cover fixed; background-blend-mode:soft-light; border-radius:var(--radio); margin-bottom:8px; }
  .vacio .emo { font-size:30px; display:block; margin-bottom:8px; opacity:.6; }
  .skeleton { background:linear-gradient(90deg, var(--fondo) 25%, #e8e9f2 50%, var(--fondo) 75%); background-size:200% 100%; animation:shimmer 1.5s infinite; border-radius:6px; display:inline-block; height:1em; width:60%; vertical-align:middle; }
  @keyframes shimmer { 0%{background-position:200% 0} 100%{background-position:-200% 0} }
  .infobox { background:var(--ambar-suave); color:var(--ambar); border-radius:11px; padding:12px 14px; font-size:13px; margin-bottom:10px; line-height:1.5; }
  .dosfechas { display:flex; gap:14px; flex-wrap:wrap; }
  .dosfechas > div { flex:1; min-width:130px; }
  .previo { background:var(--acento-suave); color:var(--acento-osc); border-radius:11px; padding:12px 14px; font-size:14px; margin-top:14px; font-weight:600; }
  .previo small { display:block; font-weight:400; color:var(--gris); font-size:12px; margin-top:3px; }
  .volver { margin-bottom:12px; }

  /* ─── Login ─── */
  .login-cab { text-align:center; padding:0 0 12px; }
  .login-banner { width:100%; height:160px; object-fit:cover; border-radius:var(--radio); display:block; margin:0 0 16px; box-shadow:var(--sombra); }
  .login-logo { width:240px; max-width:78%; display:block; margin:0 auto 10px; }

  /* ─── Home ─── */
  .home-logo { display:block; width:260px; max-width:70%; margin:8px auto 6px; }
  .home-hola { text-align:center; font-size:15px; color:var(--gris); margin-bottom:16px; font-weight:500; }
  .tiles { display:grid; gap:10px; }
  .tile { background:#fff; border:1px solid var(--linea); border-radius:var(--radio); padding:16px; display:flex; align-items:center; gap:14px; cursor:pointer; box-shadow:var(--sombra); transition:transform .15s ease, box-shadow .15s ease; position:relative; }
  .tile:active { transform:scale(.98); }
  @media (hover:hover) { .tile:hover { box-shadow:var(--sombra-hover); transform:translateY(-1px); } }
  .tile .ico { font-size:24px; width:48px; height:48px; border-radius:13px; background:var(--acento-suave); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
  .tile .tt { flex:1; min-width:0; }
  .tile .tt b { font-size:15px; font-weight:600; }
  .tile .tt span { display:block; font-size:12.5px; color:var(--gris); margin-top:2px; }
  .tile .flecha { color:var(--acento); font-size:20px; font-weight:300; }
  .tile .puntito { position:absolute; top:14px; right:38px; width:8px; height:8px; border-radius:50%; background:var(--rojo); display:none; box-shadow:0 0 0 2px #fff; }
  .tile.tiene-pend .puntito { display:block; }

  /* ─── Calendario ─── */
  .cal-cab { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:12px; }
  .cal-sels { display:flex; gap:6px; flex:1; }
  .cal-sels select { padding:8px; font-size:14px; font-weight:600; color:var(--acento-osc); }
  .cal { display:grid; grid-template-columns:repeat(7,1fr); gap:3px; }
  .cal .dh { font-size:10.5px; color:var(--gris); text-align:center; padding-bottom:3px; font-weight:600; text-transform:uppercase; letter-spacing:.03em; }
  .cal .d { border-radius:10px; border:1px solid var(--linea); background:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; font-size:13px; position:relative; transition:background .15s; min-height:38px; padding:6px 0; }
  @supports (aspect-ratio:1/1) { .cal .d { aspect-ratio:1/1; min-height:unset; padding:0; } }
  .cal .d.fuera { opacity:.15; }
  .cal .d.hoy { outline:2px solid var(--acento); outline-offset:-1px; }
  .cal .d.F { background:#f4f2ec; color:#6b6757; border-color:#e5e1d4; }
  .cal .d.V { background:var(--verde-suave); color:var(--verde); border-color:#a8e4cd; font-weight:600; }
  .cal .d.S { background:var(--ambar-suave); color:var(--ambar); border-color:#f0c76e; font-weight:600; }
  .cal .d.B { background:#eeedfe; color:#4a3fb0; border-color:#d0cdf5; font-weight:600; }
  .cal .pto { width:5px; height:5px; border-radius:50%; background:var(--acento); position:absolute; bottom:4px; }
  .cal .d.C { background:#e6f2fb; color:#1c5f8f; border-color:#a8d3ef; font-weight:600; }
  .cal .evt { position:absolute; top:3px; right:4px; font-size:9px; line-height:1; }
  .leyenda { display:flex; flex-wrap:wrap; gap:10px 16px; margin-top:14px; font-size:12.5px; color:var(--tinta); }
  .leyenda span { display:flex; align-items:center; gap:6px; }
  .leyenda i { width:15px; height:15px; border-radius:4px; display:inline-block; flex-shrink:0;
               border:1px solid rgba(0,0,0,.12); }

  /* ─── Notificaciones ─── */
  .notif-panel { position:fixed; top:56px; right:12px; left:12px; max-width:400px; margin-left:auto; background:#fff; border:1px solid var(--linea); border-radius:var(--radio); box-shadow:0 8px 32px rgba(26,29,46,.16); z-index:30; max-height:68vh; overflow:auto; }
  .notif-panel h3 { font-size:13px; font-weight:600; padding:13px 16px; border-bottom:1px solid var(--linea); color:var(--acento-osc); text-transform:uppercase; letter-spacing:.04em; }
  .notif-item { padding:12px 16px; border-bottom:1px solid var(--linea); font-size:13px; line-height:1.5; }
  .notif-item.nueva { background:var(--acento-suave); }
  .notif-item .f { font-size:11px; color:var(--gris); margin-top:4px; }


  /* Calendario de equipo: rejilla con las personas en filas */
  .caleq { overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .caleq table { border-collapse:separate; border-spacing:0; font-size:11px; }
  .caleq th, .caleq td { padding:0; border-right:1px solid var(--linea); border-bottom:1px solid var(--linea); }
  .caleq .pers { position:sticky; left:0; background:#fff; z-index:2; min-width:130px; max-width:130px;
                 padding:4px 8px; font-size:12px; text-align:left; border-right:2px solid var(--linea); }
  .caleq .pers small { display:block; color:var(--gris); font-size:10px; }
  .caleq thead th { position:sticky; top:0; background:#fff; z-index:3; text-align:center;
                    min-width:26px; padding:3px 0; font-weight:600; }
  .caleq thead th.pers { z-index:4; }
  .caleq thead .dow { font-size:9px; color:var(--gris); font-weight:400; }
  .caleq td.d { width:26px; height:26px; text-align:center; }
  /* Los tonos suaves de las tarjetas no se distinguían en celdas de
     26 píxeles. Aquí hacen falta colores con cuerpo. */
  .caleq .finde  { background:#eceef4; }
  .caleq .fest   { background:#e8e2cf; }
  .caleq .vac    { background:#3fae86; }   /* ausencia aprobada */
  .caleq .pend   { background:#f0b429; }   /* pendiente */
  .caleq .comp   { background:#4a9fd8; }   /* recupera horas */
  /* Las horas apuntadas van encima de cualquier fondo: un punto grueso
     centrado, oscuro sobre claro y blanco sobre color. */
  .caleq .hex { position:relative; }
  .caleq .hex::after {
    content:''; position:absolute; left:50%; top:50%;
    width:7px; height:7px; margin:-3.5px 0 0 -3.5px;
    border-radius:50%; background:var(--acento-osc);
    box-shadow:0 0 0 1.5px rgba(255,255,255,.9);
  }
  .caleq .vac.hex::after, .caleq .comp.hex::after,
  .caleq .pend.hex::after { background:#fff; box-shadow:0 0 0 1.5px rgba(0,0,0,.25); }
  /* El día de hoy, marcado */
  .caleq .esHoy { box-shadow:inset 0 0 0 2px var(--acento); }
  .caleq thead th.esHoy { background:var(--acento-suave); color:var(--acento-osc); font-weight:700; }
  .caleq .yo .pers { font-weight:700; color:var(--acento-osc); }
  .caleq .cuenta td { font-size:10px; text-align:center; color:var(--gris); background:#fafbff; }
  .caleq .cuenta td.alto { color:var(--rojo); font-weight:700; }

  .botonera .mini.activo-v { background:var(--acento); color:#fff; border-color:var(--acento); }

  @media print {
    .barra, .nav, .botonera, .volver, .tile, #notif-panel { display:none !important; }
    .caleq { overflow:visible !important; }
    .caleq table { font-size:8px; }
    .tarjeta { box-shadow:none; border:1px solid #ccc; page-break-inside:avoid; }
    body { background:#fff !important; }
    .caja { max-width:none; padding:0; }
  }

  /* ─── Responsive ─── */
  @media (max-width:380px) {
    .caja { padding:12px 12px calc(48px + env(safe-area-inset-bottom)); }
    .tile { padding:14px 12px; gap:12px; }
    .saldo-grande { font-size:32px; }
  }


/* ══════════════════════════════════════════════════════════
   PRESENTACIÓN DEL PRIMER DÍA
   ══════════════════════════════════════════════════════════ */
.modal.tut { text-align:center; padding:28px 24px 22px; }
.tut-ico { font-size:44px; line-height:1; margin-bottom:14px; }
.modal.tut h3 { font-size:19px; margin-bottom:10px; }
.modal.tut p { font-size:14.5px; line-height:1.55; color:var(--gris);
               margin-bottom:18px; }
.tut-pts { display:flex; gap:7px; justify-content:center; margin-bottom:18px; }
.tut-pt { width:7px; height:7px; border-radius:50%; background:var(--linea);
          transition:background .2s, width .2s; }
.tut-pt.activo { background:var(--acento); width:20px; border-radius:4px; }
.modal.tut .botonera { justify-content:center; }

/* ══════════════════════════════════════════════════════════
   AVISOS: poder borrarlos
   ══════════════════════════════════════════════════════════ */
.notif-fila { position:relative; }
.notif-x { position:absolute; right:8px; top:8px; width:22px; height:22px;
           border:none; background:none; color:var(--gris); font-size:15px;
           cursor:pointer; opacity:0; transition:opacity .15s; line-height:1; }
.notif-fila:hover .notif-x { opacity:1; }
@media (hover:none) { .notif-x { opacity:.5; } }
.notif-x:hover { color:var(--rojo); }


/* ══════════════════════════════════════════════════════════
   CONFLICTOS ENTRE SOLICITUDES
   ══════════════════════════════════════════════════════════ */
.conflictos { border-left:3px solid var(--ambar-fuerte); }
.conf-grupo { background:var(--fondo); border-radius:var(--radio-s);
              padding:12px 14px; margin-bottom:10px;
              border:1px solid var(--linea); }
.conf-grupo.apretado { border-color:#f0c8c2; background:var(--rojo-suave); }
.conf-cab { display:flex; align-items:center; gap:10px; margin-bottom:4px; }
.conf-cab b { font-size:14.5px; }
.conf-et { margin-left:auto; font-size:11px; padding:2px 9px; border-radius:99px;
           background:var(--ambar-fuerte); color:#5c4308; font-weight:700; }
.conf-grupo.apretado .conf-et { background:var(--rojo); color:#fff; }
.conf-fila { display:flex; align-items:center; gap:10px; padding:8px 0;
             border-top:1px solid var(--linea); margin-top:8px; }
.conf-fila:first-of-type { margin-top:10px; }
.conf-pos { width:22px; height:22px; border-radius:50%; background:var(--acento);
            color:#fff; font-size:11px; font-weight:700; flex-shrink:0;
            display:flex; align-items:center; justify-content:center; }
.conf-tx { flex:1; min-width:0; }
.conf-tx b { display:block; font-size:14px; }
.conf-tx small { color:var(--gris); font-size:12px; }


/* ══════════════════════════════════════════════════════════
   NAVEGACIÓN EN DOS NIVELES
   ══════════════════════════════════════════════════════════
   Primer nivel: cuatro grupos. Segundo: las pestañas del grupo. */
.nav-grupos { display:flex; gap:4px; margin-bottom:10px;
              background:var(--fondo); padding:4px; border-radius:11px;
              border:1px solid var(--linea); }
.nav-grupos button { flex:1; padding:9px 10px; border:none; background:none;
                     border-radius:8px; font-size:13px; font-weight:600;
                     color:var(--gris); cursor:pointer; white-space:nowrap;
                     transition:background .15s, color .15s; }
.nav-grupos button.activo { background:#fff; color:var(--acento-osc);
                            box-shadow:0 1px 3px rgba(61,68,149,.12); }
@media (hover:hover) {
  .nav-grupos button:not(.activo):hover { color:var(--tinta); }
}
@media (max-width:480px) {
  .nav-grupos button { font-size:12px; padding:8px 6px; }
}

/* Las pestañas del grupo que no toca, fuera */
#g-nav button.oculto { display:none; }
/* Con cuatro pestañas por grupo ya no hace falta deslizar */
#g-nav { flex-wrap:wrap; }
.nav-sep { display:none !important; }
