/*
    Estilos del filtro por columnas estilo Excel (tabla-columnas.js): el botón
    de embudo en cada encabezado y el desplegable de valores. Compartidos por el
    Explorador de Tiempos y las tablas de catálogos del Registro de Tiempos
    (Tipos de Actividad / Comentarios, Fase II punto 21).
*/
.osd-colf-btn { border:none; background:transparent; color:var(--text-muted); opacity:.35;
    padding:0 .1rem; margin-left:.2rem; line-height:1; cursor:pointer; font-size:.68rem;
    flex:0 0 auto; }
/* Encabezado en dos cajas: rotulo + embudo. inline-flex (y no flex) para que el
   conjunto siga respetando el text-align de la columna —izquierda, centro o
   derecha—; align-items:center deja el embudo a media altura aunque el rotulo
   ocupe dos lineas, y min-width:0 permite que el rotulo se parta en vez de
   empujar al embudo debajo (feedback ronda 2, punto 1). */
.osd-colf-cab { display:inline-flex; align-items:center; gap:.1rem; max-width:100%;
    text-align:inherit; vertical-align:middle; }
.osd-colf-cab > a, .osd-colf-cab > span, .osd-colf-cab > div { min-width:0; }
.osd-colf-btn:hover, .osd-colf-btn.abierto, .osd-colf-btn.activo { opacity:1; color:var(--orange); }
/* El desplegable cuelga de <body>: si viviera dentro del <th> lo recortaría el
   overflow-x del contenedor del detalle. */
.osd-colf { position:absolute; z-index:1080; width:272px; padding:.6rem; font-size:.84rem;
    background:var(--surface,#fff); border:1px solid var(--border,#dee2e6);
    border-radius:var(--radius-md,.5rem); box-shadow:0 .5rem 1.5rem rgba(0,0,0,.18); }
.osd-colf-tit { font-weight:600; font-size:.74rem; text-transform:uppercase; letter-spacing:.02em;
    color:var(--text-muted,#6b7785); margin-bottom:.4rem; }
.osd-colf-buscar { margin-bottom:.4rem; }
.osd-colf-lista { max-height:230px; overflow-y:auto; padding:.2rem;
    border:1px solid var(--border,#dee2e6); border-radius:var(--radius-sm,.35rem); }
.osd-colf-item { display:flex; align-items:center; gap:.4rem; margin:0; padding:.15rem .3rem;
    border-radius:3px; cursor:pointer; }
.osd-colf-item:hover { background:rgba(0,42,75,.06); }
.osd-colf-todos { margin-bottom:.35rem; font-weight:600; }
.osd-colf-txt { flex:1 1 auto; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.osd-colf-n { color:var(--text-muted,#6b7785); font-size:.76rem; font-variant-numeric:tabular-nums; }
.osd-colf-vacio, .osd-colf-nota { padding:.3rem .2rem; font-size:.76rem; color:var(--text-muted,#6b7785); }
.osd-colf-nota:empty { display:none; }
/* Modo árbol de fechas (data-arbol="fecha"): año > mes > día > hora, plegable.
   Es más alto que la lista plana porque se navega desplegando niveles. */
.osd-colf-arbolado { width:300px; }
.osd-colf-arbolado .osd-colf-lista { max-height:290px; }
.osd-colf-nodo { gap:.25rem; }
.osd-colf-caret { border:none; background:transparent; padding:0; line-height:1; cursor:pointer;
    color:var(--text-muted,#6b7785); font-size:.72rem; width:.95rem; flex:0 0 auto; }
.osd-colf-caret:hover { color:var(--orange); }
.osd-colf-caret-vacio { display:inline-block; width:.95rem; flex:0 0 auto; }

.osd-colf-pie { display:flex; align-items:center; gap:.35rem; margin-top:.5rem; }
.osd-colf-limpiar { margin-right:auto; padding-left:0; text-decoration:none; }
.osd-colf-aplicar { background:var(--orange); border-color:var(--orange); color:#fff; }
.osd-colf-aplicar:hover:not(:disabled) { background:#d9722f; border-color:#d9722f; color:#fff; }

/* --- arranque declarativo (data-osd-columnas) --- */

/* El encabezado que el widget hizo ordenable envuelve su texto en un <a> sin
   href (el clic lo atiende el JS): sin esto no se ve que se pueda pulsar. */
#page-content table th[data-col] > a:not([href]),
#page-content table th[data-col] > .osd-colf-cab > a:not([href]) { cursor:pointer;
    text-decoration:none; color:inherit; }
#page-content table th[data-col] > a:not([href]):hover,
#page-content table th[data-col] > .osd-colf-cab > a:not([href]):hover { text-decoration:underline; }

/* Fila de totales del servidor con un filtro puesto: ya no corresponde a lo
   que se ve en la tabla, y decirlo es mejor que dejar un número que engaña. */
.osd-colf-total-parcial { opacity:.55; }