/* AIM OFFICE · AIM Tareas. Solo variables del estilo elegido (estilo.css y aim-app.css); los tonos
   de listas, etiquetas y gráficos se mezclan con el fondo para que funcionen también en «noche». */
.ap[data-app="tareas"] .ap-cuerpo.ta-cuerpo { overflow: hidden; display: flex; }
.ta { --ta-acento-t: color-mix(in srgb, var(--ap-acento) 78%, var(--tinta));
  --ta-rojo: color-mix(in srgb, #dc2626 78%, var(--tinta)); --ta-naranja: color-mix(in srgb, #ea580c 80%, var(--tinta)); --ta-verde: color-mix(in srgb, #059669 78%, var(--tinta)); --ta-sombra: 0 1px 2px color-mix(in srgb, var(--tinta) 10%, transparent);
  flex: 1; min-width: 0; min-height: 0; display: grid; grid-template-columns: 272px minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); position: relative; }
.ta.ta-con-detalle { grid-template-columns: 272px minmax(0, 1fr) minmax(320px, 380px); }
.ta svg { width: 20px; height: 20px; }
.ta-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ta-suave { color: var(--tinta-3); font-size: 14px; }
.ta-tono-midia { --ta-c: #b45309; }
.ta-tono-importante { --ta-c: #db2777; }
.ta-tono-planeado { --ta-c: #0e7490; }
.ta-tono-todas { --ta-c: #4338ca; }
.ta-tono-bandeja { --ta-c: #2563eb; }

/* ── Lateral ─────────────────────────────────────────────────────────────── */
.ta-lat { display: flex; flex-direction: column; min-height: 0; min-width: 0; background: var(--papel); border-right: 1px solid var(--linea); }
.ta-buscar { position: relative; margin: 12px 10px 6px; }
.ta-buscar > svg { position: absolute; left: 11px; top: 50%; transform: translateY(-50%); width: 18px; height: 18px; color: var(--tinta-3); pointer-events: none; }
.ta-buscar-campo { width: 100%; min-height: 40px; padding: 6px 10px 6px 36px; border-radius: 10px; border: 1px solid var(--linea-2); background: var(--blanco); color: var(--tinta); font: 15px/1.3 var(--cuerpo); }
.ta-buscar-campo:focus { outline: none; border-color: var(--ap-acento); box-shadow: 0 0 0 3px color-mix(in srgb, var(--ap-acento) 22%, transparent); }
.ta-lat-cuerpo { flex: 1; min-height: 0; overflow-y: auto; padding: 4px 8px 12px; display: flex; flex-direction: column; gap: 2px; }
.ta-lat-lista { gap: 1px; }
.ta-lat-item { min-height: 40px; padding: 6px 10px; gap: 12px; user-select: none; -webkit-user-select: none; -webkit-touch-callout: none; }
.ta-lat-item .ta-lat-icono { color: var(--ta-c, var(--tinta-3)); width: 19px; height: 19px; }
.ta-lat-item[aria-current="page"] { background: color-mix(in srgb, var(--ta-c, var(--ap-acento)) 13%, var(--blanco)); color: var(--tinta); font-weight: 650; }
.ta-lat-nombre { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ta-emoji { width: 20px; text-align: center; font-size: 17px; line-height: 1; flex: 0 0 auto; }
.ta-cuenta { margin-left: auto; font-size: 12.5px; color: var(--tinta-3); font-variant-numeric: tabular-nums; font-weight: 500; }
.ta-sangria { padding-left: 30px; }
.ta-lat-separador { border: 0; border-top: 1px solid var(--linea); margin: 6px 6px; }
.ta-grupo-fila { display: flex; align-items: center; }
.ta-grupo-cab { flex: 1; min-width: 0; font-weight: 600; color: var(--tinta-2); }
.ta-plegar { width: 16px !important; height: 16px !important; color: var(--tinta-3); }
.ta-lat-mas { width: 32px; min-height: 32px; height: 32px; padding: 0; flex: 0 0 auto; color: var(--tinta-3); }
.ta-lat-mas svg { width: 18px; height: 18px; }
.ta-grupo-listas { padding-left: 0; }
.ta-grupo-vacio { padding: 4px 10px 6px 42px; font-size: 13px; color: var(--tinta-3); }
.ta-lat-seccion { display: flex; align-items: center; justify-content: space-between; margin-top: 10px; padding-right: 2px; }
.ta-lat-seccion .ap-grupo-titulo { margin: 4px 10px 2px; }
.ta-ejemplo { margin: 6px 4px; padding: 12px; border: 1px dashed var(--linea-2); border-radius: 12px; font-size: 13.5px; color: var(--tinta-2); display: flex; flex-direction: column; gap: 10px; }
.ta-ejemplo .ap-boton { min-height: 34px; padding: 5px 11px; font-size: 14px !important; }
.ta-lat-pie { display: flex; align-items: center; gap: 4px; padding: 6px 8px; border-top: 1px solid var(--linea); }
.ta-nueva-lista { flex: 1; display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 8px 10px; border: 0; background: none; border-radius: 10px; cursor: pointer; color: var(--ta-acento-t); font-weight: 650; text-align: left; }
.ta-nueva-lista:hover { background: color-mix(in srgb, var(--tinta) 5%, transparent); }
.ta-nuevo-grupo { color: var(--tinta-3); }
.ta-soltar-dentro { box-shadow: inset 0 0 0 2px var(--ap-acento) !important; background: var(--ap-suave) !important; }
.ta-soltar-antes { box-shadow: 0 -3px 0 -1px var(--ap-acento) !important; }
.ta-soltar-despues { box-shadow: 0 3px 0 -1px var(--ap-acento) !important; }
li.ta-soltar-antes, li.ta-soltar-despues { border-radius: 4px; }

/* ── Zona principal ──────────────────────────────────────────────────────── */
.ta-main { min-width: 0; min-height: 0; display: flex; flex-direction: column; background: color-mix(in srgb, var(--ta-c, var(--ap-acento)) 4%, var(--papel)); }
.ta-cab { display: flex; align-items: flex-start; gap: 10px 12px; padding: 16px 20px 6px; flex-wrap: wrap; }
.ta-cab-titulo { flex: 1 1 260px; min-width: 0; }
.ta-titulo-fila { display: flex; align-items: center; gap: 10px; min-width: 0; }
.ta-titulo-fila h2 { flex: 1; min-width: 0; font: 750 25px/1.2 var(--titulo); color: color-mix(in srgb, var(--ta-c, var(--ap-acento)) 72%, var(--tinta)); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ta-titulo-fila h2:focus { outline: none; }
.ta-titulo-input { width: 100%; border: 0; background: none; font: inherit; color: inherit; padding: 2px 6px; margin-left: -6px; border-radius: 8px; text-overflow: ellipsis; }
.ta-titulo-input:hover { background: color-mix(in srgb, var(--tinta) 5%, transparent); }
.ta-titulo-input:focus { outline: 2px solid var(--ap-acento); outline-offset: 0; background: var(--blanco); }
.ta-titulo-icono { width: 26px !important; height: 26px !important; color: var(--ta-c, var(--ap-acento)); }
.ta-titulo-emoji { width: 38px; height: 38px; flex: 0 0 auto; border-radius: 10px; border: 0; cursor: pointer; display: grid; place-items: center; font-size: 21px; line-height: 1; background: color-mix(in srgb, var(--ta-c, var(--tinta-3)) 15%, transparent); color: var(--ta-c, var(--tinta-3)); }
.ta-titulo-emoji:hover { background: color-mix(in srgb, var(--ta-c, var(--tinta-3)) 24%, transparent); }
.ta-subtitulo { color: var(--tinta-3); font-size: 14px; margin: 2px 0 0 36px; }
.ta-cab-plan .ta-subtitulo { margin-left: 48px; }
.ta-cab-acciones { display: flex; gap: 4px; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.ta-cab-acciones .ap-boton { min-height: 38px; }
.ta-cab-acciones .ap-boton.activo, .ta-boton-sug[aria-pressed="true"] { background: var(--ap-suave); color: var(--ta-acento-t); }
.ta-volver { display: none; margin: -4px 0 0 -10px; padding: 6px 10px; min-height: 36px; color: var(--ta-acento-t); }
.ta-chip-orden { display: flex; align-items: center; gap: 2px; margin: 0 20px 4px auto; align-self: flex-end; }
.ta-chip-boton { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border: 0; border-radius: 999px; background: color-mix(in srgb, var(--tinta) 6%, transparent); color: var(--tinta-2); font-size: 13px; cursor: pointer; min-height: 30px; }
.ta-chip-boton svg { width: 15px !important; height: 15px !important; }
.ta-chip-boton:hover { background: color-mix(in srgb, var(--tinta) 10%, transparent); }

/* Añadir una tarea */
.ta-nueva { margin: 6px 20px 10px; display: flex; align-items: center; gap: 6px; background: var(--blanco); border-radius: 10px; box-shadow: 0 0 0 1px var(--linea), var(--ta-sombra); padding: 3px 6px 3px 14px; }
.ta-nueva:focus-within { box-shadow: 0 0 0 2px var(--ap-acento), var(--ta-sombra); }
.ta-nueva-mas { display: inline-flex; color: var(--ta-acento-t); }
.ta-nueva-campo { flex: 1; min-width: 0; min-height: 44px; border: 0; background: none; color: var(--tinta); font: 15.5px/1.3 var(--cuerpo); }
.ta-nueva-campo:focus, .ta-nueva-campo:focus-visible { outline: none; }
.ta-nueva-campo::placeholder { color: var(--ta-acento-t); opacity: .9; }
.ta-nueva-ops { display: flex; align-items: center; gap: 2px; }
.ta-nueva-op { min-height: 36px; padding: 4px 8px; color: var(--tinta-3); gap: 4px; }
.ta-nueva-op-txt:empty { display: none; }
.ta-nueva-op-txt { font-size: 13px; color: var(--ta-acento-t); }

/* Filas de tareas */
.ta-lista-scroll { flex: 1; min-height: 0; overflow-y: auto; padding: 2px 20px 40px; }
.ta-filas { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 3px; }
.ta-fila, .ta-resultado { display: flex; align-items: center; gap: 12px; min-height: 52px; padding: 6px 6px 6px 14px; background: var(--blanco); border-radius: 9px; box-shadow: 0 0 0 1px var(--linea), var(--ta-sombra); cursor: pointer; user-select: none; -webkit-user-select: none; -webkit-touch-callout: none; transition: background .12s, box-shadow .12s; }
.ta-fila:hover, .ta-resultado:hover { background: color-mix(in srgb, var(--tinta) 3%, var(--blanco)); }
.ta-fila.sel, .ta-fila[aria-selected="true"] { background: color-mix(in srgb, var(--ap-acento) 8%, var(--blanco)); box-shadow: 0 0 0 1.5px color-mix(in srgb, var(--ap-acento) 60%, var(--linea)); }
.ta-fila:focus-visible, .ta-resultado:focus-visible, .ta-tarjeta:focus-visible { outline: 3px solid var(--ap-acento); outline-offset: 1px; }
.ta-fila-texto { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; padding: 4px 0; }
.ta-fila-titulo { font-size: 15px; line-height: 1.35; color: var(--tinta); overflow-wrap: anywhere; }
.ta-fila.hecha .ta-fila-titulo, .ta-resultado.hecha .ta-fila-titulo { text-decoration: line-through; color: var(--tinta-3); }
.ta-fila-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 0; font-size: 12.5px; color: var(--tinta-3); line-height: 1.4; }
.ta-meta { display: inline-flex; align-items: center; gap: 4px; min-width: 0; }
.ta-meta svg { width: 14px !important; height: 14px !important; }
.ta-meta + .ta-meta::before { content: "·"; margin: 0 7px 0 3px; color: var(--linea-2); }
.ta-tarj-meta .ta-meta + .ta-meta::before { content: none; }
.ta-tarj-meta { gap: 4px 10px; }
.ta-meta-vencida { color: var(--ta-rojo); font-weight: 600; }
.ta-meta-hoy { color: var(--ta-acento-t); font-weight: 600; }
.ta-meta-ok { color: var(--ta-verde); }
.ta-punto { width: 9px; height: 9px; border-radius: 50%; background: var(--ta-c); flex: 0 0 auto; display: inline-block; }
.ta-cat { color: color-mix(in srgb, var(--ta-c) 70%, var(--tinta)); }
.ta-centinela { height: 1px; list-style: none; }

/* Casilla redonda y estrella */
.ta-check { position: relative; width: 22px; height: 22px; flex: 0 0 auto; border-radius: 50%; border: 2px solid var(--tinta-3); background: none; padding: 0; display: grid; place-items: center; cursor: pointer; color: transparent; transition: background .15s, border-color .15s, color .15s; }
.ta-check::before { content: ""; position: absolute; inset: -9px; border-radius: 50%; }
.ta-check svg { width: 13px !important; height: 13px !important; stroke-width: 3; }
.ta-check:hover { color: var(--tinta-3); border-color: var(--ap-acento); }
.ta-check[aria-checked="true"] { background: var(--ap-acento); border-color: var(--ap-acento); color: var(--ap-sobre); }
.ta-check-peq { width: 18px; height: 18px; }
.ta-check-peq svg { width: 11px !important; height: 11px !important; }
.ta-check-redondo[aria-checked="true"] { background: var(--ta-verde); border-color: var(--ta-verde); }
.ta-completando .ta-check { animation: ta-pop .38s ease-out; background: var(--ap-acento); border-color: var(--ap-acento); color: var(--ap-sobre); }
.ta-completando { animation: ta-salir .38s ease-in forwards; }
@keyframes ta-pop { 0% { transform: scale(1); } 45% { transform: scale(1.28); } 100% { transform: scale(1); } }
@keyframes ta-salir { 0%, 55% { opacity: 1; transform: none; } 100% { opacity: .25; transform: translateY(6px); } }
.ta-estrella { width: 40px; height: 40px; flex: 0 0 auto; display: grid; place-items: center; border: 0; background: none; border-radius: 8px; cursor: pointer; color: var(--tinta-3); }
.ta-estrella:hover { background: color-mix(in srgb, var(--tinta) 6%, transparent); }
.ta-estrella[aria-pressed="true"] { color: var(--ta-acento-t); }
.ta-estrella[aria-pressed="true"] svg { fill: currentColor; }

/* Secciones plegables (Completadas, grupos de Planeado) */
.ta-sec { margin-top: 12px; }
.ta-sec:first-child { margin-top: 2px; }
.ta-sec-cab { display: inline-flex; align-items: center; gap: 6px; min-height: 34px; margin: 0 0 6px; padding: 4px 10px 4px 6px; border: 0; border-radius: 8px; background: color-mix(in srgb, var(--tinta) 6%, transparent); color: var(--tinta-2); font: 650 14px/1.2 var(--cuerpo); cursor: pointer; }
.ta-sec-cab svg { width: 16px !important; height: 16px !important; transition: transform .15s; }
.ta-sec-cab:hover { background: color-mix(in srgb, var(--tinta) 10%, transparent); }
.ta-sec-cuenta { font-weight: 500; color: var(--tinta-3); }
.ta-sec-vencidas > .ta-sec-cab { color: var(--ta-rojo); }
.ta-todo-hecho { margin: 10px 2px; color: var(--ta-verde); font-weight: 650; }
.ta-res-tit { font: 650 13px/1.3 var(--cuerpo); text-transform: uppercase; letter-spacing: .04em; color: var(--tinta-3); margin: 6px 2px 8px; }
.ta-res-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.ta-res-icono { display: grid; place-items: center; width: 22px; color: var(--ta-c); }

/* Vacío */
.ta-vacio { margin: 7vh auto 0; max-width: 420px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 0 12px; color: var(--tinta-2); }
.ta-vacio h3 { font: 750 20px/1.2 var(--titulo); color: var(--tinta); }
.ta-vacio-icono { width: 54px !important; height: 54px !important; padding: 12px; border-radius: 18px; color: var(--ta-c, var(--ap-acento)); background: color-mix(in srgb, var(--ta-c, var(--ap-acento)) 12%, var(--blanco)); stroke-width: 1.5 !important; }
.ta-vacio-peq { margin-top: 3vh; }

/* ── Panel de detalle ────────────────────────────────────────────────────── */
.ta-det { min-width: 0; min-height: 0; display: flex; flex-direction: column; background: var(--blanco); border-left: 1px solid var(--linea); }
.ta-det[hidden] { display: none; }
.ta-det-cab { display: flex; align-items: flex-start; gap: 8px; padding: 12px 8px 10px 14px; border-bottom: 1px solid var(--linea); }
.ta-det-cab > .ta-check { margin-top: 7px; }
.ta-det-cab > .ta-estrella, .ta-det-cerrar { margin-top: -2px; }
.ta-det-cab h2 { flex: 1; font: 750 19px/1.2 var(--titulo); padding: 6px 4px; }
.ta-det-titulo { flex: 1; min-width: 0; resize: none; overflow: hidden; border: 0; background: none; color: var(--tinta); font: 650 18px/1.35 var(--titulo); padding: 3px 6px; border-radius: 6px; }
.ta-det-titulo:hover { background: color-mix(in srgb, var(--tinta) 4%, transparent); }
.ta-det-titulo:focus { outline: 2px solid var(--ap-acento); outline-offset: 0; }
.ta-det-cuerpo { flex: 1; min-height: 0; overflow-y: auto; padding: 12px; display: flex; flex-direction: column; gap: 10px; background: var(--papel); }
.ta-det-bloque { background: var(--blanco); border: 1px solid var(--linea); border-radius: 10px; padding: 4px; display: flex; flex-direction: column; gap: 2px; }
.ta-det-bloque-notas { padding: 0; border: 0; background: none; }
.ta-det-notas { min-height: 96px !important; resize: vertical; }
.ta-det-fila { display: flex; align-items: center; gap: 2px; }
.ta-det-op { flex: 1; min-width: 0; display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 8px 10px; border: 0; background: none; border-radius: 8px; text-align: left; cursor: pointer; color: var(--tinta-2); font-size: 14.5px; }
.ta-det-op:hover { background: color-mix(in srgb, var(--tinta) 5%, transparent); }
.ta-det-op.activo { color: var(--ta-acento-t); font-weight: 600; }
.ta-det-op.peligro { color: var(--ta-rojo); }
.ta-det-op-texto { display: flex; flex-direction: column; min-width: 0; }
.ta-det-op-texto small { color: var(--tinta-3); font-weight: 400; font-size: 12.5px; }
.ta-det-quitar { width: 34px; min-height: 34px; height: 34px; padding: 0; color: var(--tinta-3); }
.ta-det-quitar svg { width: 16px !important; height: 16px !important; }
.ta-det-chips { display: flex; flex-wrap: wrap; gap: 6px; padding: 0 10px 8px 42px; }
.ta-chip-cat { display: inline-flex; align-items: center; gap: 6px; padding: 2px 10px; border-radius: 999px; font-size: 12.5px; font-weight: 600; background: color-mix(in srgb, var(--ta-c) 15%, var(--blanco)); color: color-mix(in srgb, var(--ta-c) 70%, var(--tinta)); }
.ta-det-lista { padding: 2px 6px 2px 10px; gap: 12px; color: var(--tinta-2); }
.ta-det-select { min-height: 38px; border-color: transparent; background: none; padding-left: 4px; }
.ta-det-select:hover { border-color: var(--linea-2); }
.ta-det-pie { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 6px 8px; border-top: 1px solid var(--linea); color: var(--tinta-3); font-size: 13px; text-align: center; }
.ta-det-borrar:hover { color: var(--ta-rojo); }
.ta-det-h3 { font: 650 12.5px/1.3 var(--cuerpo); letter-spacing: .04em; text-transform: uppercase; color: var(--tinta-3); margin: 6px 8px 4px; }
.ta-det-sub { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 4px 8px 2px; flex-wrap: wrap; }
.ta-det-sub h3 { font: 650 12.5px/1.3 var(--cuerpo); letter-spacing: .04em; text-transform: uppercase; color: var(--tinta-3); }
.ta-mostrar-lista { font-size: 13.5px; align-items: center; }
.ta-mostrar-lista input { margin-top: 0; }
.ta-det-campos { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 10px; }
.ta-det-campos .ap-grupo:nth-child(1) { grid-column: 1 / -1; }
.ta-det-campos .ap-campo { min-height: 38px; padding: 6px 9px; font-size: 14.5px !important; }
.ta-det-plan { display: flex; align-items: center; gap: 8px; margin: 0 4px; font-size: 13px; color: var(--tinta-3); }
.ta-det-etqs { display: flex; flex-wrap: wrap; gap: 6px; padding: 2px 8px 8px; align-items: center; }
.ta-etq-editar { min-height: 30px; padding: 3px 9px; font-size: 13px !important; color: var(--tinta-3); }

/* Pasos y lista de comprobación */
.ta-pasos-lista { list-style: none; margin: 0; padding: 0; }
.ta-paso { display: flex; align-items: center; gap: 10px; padding: 2px 2px 2px 12px; border-radius: 8px; }
.ta-paso:hover { background: color-mix(in srgb, var(--tinta) 3%, transparent); }
.ta-paso-campo { flex: 1; min-width: 0; min-height: 36px; border: 0; background: none; color: var(--tinta); font: 14.5px/1.3 var(--cuerpo); padding: 4px 6px; border-radius: 6px; }
.ta-paso-campo:focus { outline: 2px solid var(--ap-acento); outline-offset: 0; }
.ta-paso-campo.hecho { text-decoration: line-through; color: var(--tinta-3); }
.ta-paso-mas { width: 32px; height: 32px; min-height: 32px; padding: 0; color: var(--tinta-3); opacity: .7; }
.ta-paso-mas svg { width: 16px !important; height: 16px !important; }
.ta-paso-anadir { display: flex; align-items: center; gap: 10px; padding: 2px 8px 2px 12px; color: var(--ta-acento-t); }
.ta-paso-anadir svg { width: 18px !important; height: 18px !important; }
.ta-paso-nuevo { flex: 1; min-width: 0; min-height: 40px; border: 0; background: none; color: var(--tinta); font: 14.5px/1.3 var(--cuerpo); padding: 4px 6px; border-radius: 6px; }
.ta-paso-nuevo::placeholder { color: var(--ta-acento-t); }
.ta-paso-nuevo:focus { outline: 2px solid var(--ap-acento); outline-offset: 0; }

/* Adjuntos */
.ta-adjuntos { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.ta-adjuntos:empty { display: none; }
.ta-adjunto { display: flex; align-items: center; gap: 10px; padding: 6px 4px 6px 8px; border-radius: 8px; background: color-mix(in srgb, var(--tinta) 3%, transparent); }
.ta-adjunto-ext { width: 38px; height: 38px; flex: 0 0 auto; border-radius: 8px; display: grid; place-items: center; font: 750 11px/1 var(--cuerpo); background: var(--ap-suave); color: var(--ta-acento-t); }
.ta-adjunto-nombre { flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; border: 0; background: none; cursor: pointer; text-align: left; padding: 0; color: var(--tinta); }
.ta-adjunto-nombre span { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; font-size: 14px; }
.ta-adjunto-nombre:hover span { text-decoration: underline; }
.ta-adjunto-nombre small { color: var(--tinta-3); font-size: 12px; }

/* Sugerencias */
.ta-sug-cab { align-items: center; }
.ta-sug-bloque h3 { font: 650 12.5px/1.3 var(--cuerpo); text-transform: uppercase; letter-spacing: .04em; color: var(--tinta-3); margin: 4px 4px 6px; }
.ta-sug-vencidas h3 { color: var(--ta-rojo); }
.ta-sug-lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.ta-sug { display: flex; align-items: center; gap: 8px; padding: 4px 4px 4px 12px; background: var(--blanco); border-radius: 9px; box-shadow: 0 0 0 1px var(--linea); }

/* ── Menús y diálogos ────────────────────────────────────────────────────── */
.ta-menu { max-height: calc(100dvh - 16px); overflow-y: auto; }
.ta-menu-titulo { font: 650 11.5px/1.3 var(--cuerpo); letter-spacing: .05em; text-transform: uppercase; color: var(--tinta-3); padding: 8px 10px 2px; }
.ta-menu-emoji { width: 18px; text-align: center; }
.ta-kbd { margin-left: auto; padding-left: 16px; font: 12.5px/1.2 ui-monospace, "SF Mono", Menlo, Consolas, monospace; color: var(--tinta-3); white-space: nowrap; }
.ta-atajos .ta-kbd { margin: 0; padding: 2px 7px; border: 1px solid var(--linea-2); border-radius: 6px; background: var(--papel); color: var(--tinta-2); display: inline-block; }
.ta-atajos td { padding: 7px 10px; }
.ta-dlg-sub { font: 650 13px/1.3 var(--cuerpo); text-transform: uppercase; letter-spacing: .04em; color: var(--tinta-3); margin-top: 6px; }
.ta-bloque { display: block; }
.ta-aspecto-cab { display: flex; align-items: center; gap: 12px; font-size: 16px; }
.ta-aspecto-previa { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; font-size: 24px; background: color-mix(in srgb, var(--ta-c) 18%, var(--blanco)); color: var(--ta-c); font-weight: 800; }
.ta-rejilla-emoji { display: grid; grid-template-columns: repeat(auto-fill, minmax(40px, 1fr)); gap: 4px; }
.ta-emoji-op { height: 40px; border-radius: 9px; border: 2px solid transparent; background: none; font-size: 20px; line-height: 1; cursor: pointer; display: grid; place-items: center; color: var(--tinta-3); }
.ta-emoji-op:hover { background: color-mix(in srgb, var(--tinta) 6%, transparent); }
.ta-emoji-op[aria-pressed="true"] { border-color: var(--ap-acento); background: var(--ap-suave); }
.ta-otro-emoji { max-width: 180px; }
.ta-rejilla-color { display: flex; flex-wrap: wrap; gap: 10px; }
.ta-color-op { width: 32px; height: 32px; border-radius: 50%; background: var(--ta-c); border: 3px solid var(--blanco); box-shadow: 0 0 0 1px var(--linea-2); cursor: pointer; padding: 0; flex: 0 0 auto; }
.ta-color-op[aria-pressed="true"] { box-shadow: 0 0 0 2.5px var(--tinta); }
.ta-etq-editor { display: flex; flex-direction: column; gap: 8px; }
.ta-etq-fila { display: flex; align-items: center; gap: 8px; }
.ta-etq-fila .ap-campo { flex: 1; }
.ta-etq-nueva { align-self: flex-start; }
.ta-cat-campo { display: flex; align-items: flex-end; gap: 10px; }
.ta-cat-campo .ta-punto { margin-bottom: 16px; width: 12px; height: 12px; }
.ta-cat-campo .ap-grupo { flex: 1; }
.ta-num { width: 90px; }
.ta-rep-fila { align-items: center; }
.ta-rep-fila select { width: auto; flex: 1; }
.ta-dias { display: flex; gap: 6px; flex-wrap: wrap; }
.ta-dia { width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--linea-2); background: var(--blanco); cursor: pointer; font-weight: 650; color: var(--tinta-2); }
.ta-dia[aria-pressed="true"] { background: var(--ap-acento); border-color: var(--ap-acento); color: var(--ap-sobre); }
.ta-import-previa { max-height: 240px; overflow: auto; }

/* ── Arrastrar ───────────────────────────────────────────────────────────── */
.ta-fantasma { position: fixed; z-index: 100; pointer-events: none; margin: 0; opacity: .94; box-shadow: 0 18px 40px color-mix(in srgb, var(--tinta) 30%, transparent) !important; list-style: none; }
body.ta-arrastrando, body.ta-arrastrando * { cursor: grabbing !important; user-select: none !important; -webkit-user-select: none !important; }
.ta-origen { opacity: .35; }
.ta-hueco { border: 2px dashed var(--ap-acento); border-radius: 10px; background: var(--ap-suave); flex: 0 0 auto; }

/* ── Planes: cabecera y pestañas ─────────────────────────────────────────── */
.ta-en-plan .ta-main { background: var(--papel); }
.ta-cab-plan .ta-titulo-fila h2 { color: var(--tinta); }
.ta-plan-emoji { color: color-mix(in srgb, var(--ta-c) 80%, var(--tinta)); }
.ta-filtro-texto { width: 190px; min-height: 38px !important; padding: 6px 10px; font-size: 14.5px !important; }
.ta-pestanas { padding: 0 16px; flex: 0 0 auto; scrollbar-width: none; }
.ta-pestanas .ap-pestana { display: inline-flex; align-items: center; gap: 7px; min-height: 44px; }
.ta-pestanas .ap-pestana svg { width: 18px !important; height: 18px !important; }
.ta-aviso-filtro { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 8px 20px; font-size: 14px; background: color-mix(in srgb, #ca8a04 14%, var(--blanco)); color: var(--tinta); border-bottom: 1px solid color-mix(in srgb, #ca8a04 35%, var(--blanco)); }
.ta-plan-vista { flex: 1; min-height: 0; display: flex; flex-direction: column; }
.ta-plan-vista > * { flex: 1; min-height: 0; }

/* Etiquetas */
.ta-etq { display: inline-flex; align-items: center; gap: 4px; max-width: 100%; padding: 1px 9px; border-radius: 999px; font: 650 12px/1.6 var(--cuerpo); background: color-mix(in srgb, var(--ta-c) 17%, var(--blanco)); color: color-mix(in srgb, var(--ta-c) 68%, var(--tinta)); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ta-etq-boton { border: 1px solid transparent; cursor: pointer; min-height: 30px; padding: 2px 11px; font-size: 13px; opacity: .75; }
.ta-etq-boton[aria-pressed="true"] { opacity: 1; border-color: color-mix(in srgb, var(--ta-c) 60%, transparent); }
.ta-etq-boton svg { width: 13px !important; height: 13px !important; stroke-width: 3; }

/* ── Tablero ─────────────────────────────────────────────────────────────── */
.ta-tablero { display: flex; align-items: flex-start; gap: 14px; overflow: auto; padding: 14px 18px 24px; }
.ta-col { flex: 0 0 288px; width: 288px; display: flex; flex-direction: column; gap: 8px; min-height: 120px; }
.ta-col-cab { position: sticky; top: -14px; z-index: 2; display: flex; align-items: center; gap: 8px; padding: 10px 2px 6px; background: var(--papel); }
.ta-col-cab h3 { flex: 1; min-width: 0; font: 700 15px/1.25 var(--cuerpo); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ta-col-mas { width: 32px; height: 32px; min-height: 32px; padding: 0; color: var(--tinta-3); }
.ta-col-anadir { display: flex; align-items: center; gap: 8px; min-height: 40px; padding: 8px 12px; border: 1px dashed var(--linea-2); border-radius: 10px; background: color-mix(in srgb, var(--blanco) 60%, transparent); color: var(--ta-acento-t); font-weight: 650; cursor: pointer; }
.ta-col-anadir:hover { background: var(--blanco); border-style: solid; }
.ta-col-anadir svg { width: 18px !important; height: 18px !important; }
.ta-col-tarjetas { display: flex; flex-direction: column; gap: 8px; min-height: 48px; padding-bottom: 4px; }
.ta-col-hechas-boton { align-self: flex-start; margin: 4px 0 0; }
.ta-col-nueva { padding-top: 46px; }
.ta-cubo-nuevo-boton { display: flex; align-items: center; gap: 8px; width: 100%; min-height: 44px; padding: 8px 12px; border: 0; border-radius: 10px; background: color-mix(in srgb, var(--tinta) 5%, transparent); color: var(--tinta-2); font-weight: 650; cursor: pointer; }
.ta-cubo-nuevo-boton:hover { background: color-mix(in srgb, var(--tinta) 9%, transparent); }
.ta-cubo-nuevo-forma, .ta-tarj-nueva { display: flex; flex-direction: column; gap: 8px; padding: 10px; background: var(--blanco); border-radius: 10px; box-shadow: 0 0 0 1px var(--linea), var(--ta-sombra); }
.ta-tarj-nueva .ap-botones .ap-boton, .ta-cubo-nuevo-forma .ap-boton { min-height: 36px; padding: 6px 12px; }
.ta-tarjeta { display: flex; flex-direction: column; gap: 8px; padding: 10px 12px; background: var(--blanco); border-radius: 10px; box-shadow: 0 0 0 1px var(--linea), var(--ta-sombra); cursor: pointer; user-select: none; -webkit-user-select: none; -webkit-touch-callout: none; transition: box-shadow .12s, transform .12s; }
.ta-tarjeta:hover { box-shadow: 0 0 0 1px var(--linea-2), 0 4px 12px color-mix(in srgb, var(--tinta) 10%, transparent); }
.ta-tarjeta.sel { box-shadow: 0 0 0 2px var(--ap-acento); }
.ta-tarjeta.hecha .ta-tarj-tit > span { text-decoration: line-through; color: var(--tinta-3); }
.ta-tarjeta.tarde { box-shadow: inset 3px 0 0 var(--ta-rojo), 0 0 0 1px var(--linea); }
.ta-tarj-etqs { display: flex; flex-wrap: wrap; gap: 4px; }
.ta-tarj-tit { display: flex; align-items: flex-start; gap: 10px; font-size: 14.5px; font-weight: 600; line-height: 1.35; overflow-wrap: anywhere; }
.ta-tarj-tit .ta-check { margin-top: 0; width: 20px; height: 20px; }
.ta-tarj-lista { list-style: none; margin: 0 0 0 2px; padding: 0; display: flex; flex-direction: column; gap: 4px; font-size: 13.5px; color: var(--tinta-2); }
.ta-tarj-lista li { display: flex; align-items: center; gap: 8px; }
.ta-tarj-lista li.hecho > span { text-decoration: line-through; color: var(--tinta-3); }
.ta-tarj-lista-mas { padding-left: 26px; color: var(--tinta-3); font-size: 12.5px; }
.ta-prio-urgente { color: var(--ta-rojo); }
.ta-prio-urgente svg { stroke-width: 3; }
.ta-prio-importante { color: var(--ta-naranja); }
.ta-encurso { color: #2563eb; }
.ta-mostrar-mas { align-self: center; min-height: 34px; }

/* ── Cuadrícula ──────────────────────────────────────────────────────────── */
.ta-rejilla { overflow: auto; padding: 14px 18px 24px; display: flex; flex-direction: column; gap: 10px; }
.ta-rejilla > .ap-tabla-caja { flex: 0 0 auto; overflow: visible; }
.ta-tabla { min-width: 1040px; }
.ta-tabla th, .ta-tabla td { padding: 5px 8px; }
.ta-tabla thead th { top: -14px; }
.ta-tabla tr.hecha .ta-rej-titulo { text-decoration: line-through; color: var(--tinta-3); }
.ta-col-check { width: 44px; text-align: center !important; }
.ta-rej-campo { min-height: 36px !important; padding: 5px 8px !important; font-size: 14px !important; border-color: transparent; background: transparent; }
.ta-rej-campo:hover { border-color: var(--linea-2); background: var(--blanco); }
.ta-rej-titulo { min-width: 240px; font-weight: 600; }
.ta-tabla select.ta-rej-campo { min-width: 132px; }
.ta-tabla td:nth-child(3) select.ta-rej-campo { min-width: 150px; }
.ta-rej-fecha { width: 150px; }
.ta-tarde { color: var(--ta-rojo); font-weight: 650; }
.ta-rej-etqs { display: flex; flex-wrap: wrap; gap: 4px; min-height: 34px; min-width: 120px; align-items: center; border: 1px solid transparent; border-radius: 8px; background: none; cursor: pointer; padding: 2px 6px; text-align: left; }
.ta-rej-etqs:hover { border-color: var(--linea-2); }
.ta-th-boton { display: inline-flex; align-items: center; gap: 4px; border: 0; background: none; padding: 2px 0; cursor: pointer; font: inherit; color: inherit; letter-spacing: inherit; text-transform: inherit; }
.ta-th-boton svg { width: 14px !important; height: 14px !important; }
.ta-gira { transform: rotate(180deg); }
.ta-rej-nueva { display: flex; align-items: center; gap: 8px; max-width: 520px; color: var(--ta-acento-t); }
.ta-rej-mas td { text-align: center; }

/* ── Gráficos ────────────────────────────────────────────────────────────── */
.ta-graficos { overflow: auto; padding: 16px 18px 28px; display: flex; flex-direction: column; gap: 14px; }
.ta-cifras { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.ta-cifra { background: var(--blanco); border: 1px solid var(--linea); border-radius: 12px; padding: 14px 16px; display: flex; flex-direction: column; gap: 2px; }
.ta-cifra-mal .ap-cifra { color: var(--ta-rojo); }
.ta-cifra-bien .ap-cifra { color: var(--ta-verde); }
.ta-graf-rejilla { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.ta-graf h3 { font: 700 16px/1.2 var(--titulo); margin-bottom: 10px; }
.ta-graf-ancho { grid-column: 1 / -1; }
.ta-graf-estado { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.ta svg.ta-rosco { width: 170px; height: 170px; flex: 0 0 auto; stroke: none; }
.ta-rosco-fondo { stroke: color-mix(in srgb, var(--tinta) 8%, transparent); }
.ta-rosco-cifra { font: 800 30px var(--titulo); fill: var(--tinta); }
.ta-rosco-texto { font: 13px var(--cuerpo); fill: var(--tinta-3); }
.ta-leyenda { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; font-size: 14px; }
.ta-leyenda li { display: flex; align-items: center; gap: 8px; }
.ta-leyenda b { margin-left: auto; padding-left: 14px; font-variant-numeric: tabular-nums; }
.ta-leyenda-fila { flex-direction: row; flex-wrap: wrap; gap: 6px 16px; margin-top: 10px; font-size: 13px; }
.ta svg.ta-barras { width: 100%; max-width: 640px; height: auto; display: block; stroke: none; fill: none; }
.ta svg.ta-barras-v { max-width: 420px; }
.ta-graf-etq { font: 12.5px var(--cuerpo); fill: var(--tinta-2); }
.ta-graf-num { font: 650 12.5px var(--cuerpo); fill: var(--tinta-2); }
.ta-graf-eje { stroke: var(--linea-2); }

/* ── Programación (calendario) ───────────────────────────────────────────── */
.ta-cal { overflow: auto; padding: 12px 18px 24px; display: flex; flex-direction: column; gap: 10px; }
.ta-cal-barra { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; flex: 0 0 auto; }
.ta-cal-barra .ap-boton { min-height: 36px; }
.ta-cal-titulo { font: 700 18px/1.2 var(--titulo); margin: 0 8px; }
.ta-cal-titulo::first-letter, .ta-gantt-mes::first-letter { text-transform: uppercase; }
.ta-segmentos { display: inline-flex; border: 1px solid var(--linea-2); border-radius: 10px; overflow: hidden; margin-left: auto; background: var(--blanco); }
.ta-seg { min-height: 34px; padding: 4px 12px; border: 0; background: none; cursor: pointer; font-weight: 600; color: var(--tinta-2); font-size: 14px; }
.ta-seg + .ta-seg { border-left: 1px solid var(--linea-2); }
.ta-seg[aria-pressed="true"] { background: var(--ap-suave); color: var(--ta-acento-t); }
.ta-cal-cuerpo { display: grid; grid-template-columns: minmax(0, 1fr) 230px; gap: 14px; align-items: start; }
.ta-cal-mes { min-width: 0; border: 1px solid var(--linea); border-radius: 12px; overflow: hidden; background: var(--blanco); }
.ta-cal-cab { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); background: color-mix(in srgb, var(--tinta) 3%, var(--blanco)); border-bottom: 1px solid var(--linea); }
.ta-cal-cab div { padding: 6px 8px; font: 650 12px/1.2 var(--cuerpo); text-transform: uppercase; letter-spacing: .04em; color: var(--tinta-3); }
.ta-cal-rejilla { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); grid-auto-rows: minmax(112px, auto); }
.ta-cal-rejilla.semana { grid-auto-rows: minmax(380px, auto); }
.ta-cal-dia { min-width: 0; padding: 4px 4px 6px; display: flex; flex-direction: column; gap: 3px; border-right: 1px solid var(--linea); border-bottom: 1px solid var(--linea); }
.ta-cal-dia:nth-child(7n) { border-right: 0; }
.ta-cal-dia.fuera { background: color-mix(in srgb, var(--tinta) 3%, var(--blanco)); }
.ta-cal-dia.fuera .ta-cal-num { color: var(--tinta-3); }
.ta-cal-dia-cab { display: flex; align-items: center; justify-content: space-between; min-height: 26px; }
.ta-cal-num { font: 650 13px/1 var(--cuerpo); padding: 4px 6px; border-radius: 999px; color: var(--tinta-2); }
.ta-cal-dia.hoy .ta-cal-num { background: var(--ap-acento); color: var(--ap-sobre); }
.ta-cal-anadir { width: 26px; height: 26px; min-height: 26px; padding: 0; opacity: 0; color: var(--tinta-3); }
.ta-cal-anadir svg { width: 16px !important; height: 16px !important; }
.ta-cal-dia:hover .ta-cal-anadir, .ta-cal-anadir:focus-visible { opacity: 1; }
.ta-cal-chip { display: flex; align-items: center; gap: 6px; width: 100%; min-height: 26px; border: 0; border-radius: 6px; padding: 3px 6px; background: color-mix(in srgb, var(--ta-c) 12%, var(--blanco)); color: var(--tinta); font: 12.5px/1.3 var(--cuerpo); text-align: left; cursor: grab; user-select: none; -webkit-user-select: none; -webkit-touch-callout: none; }
.ta-cal-chip:hover { background: color-mix(in srgb, var(--ta-c) 20%, var(--blanco)); }
.ta-cal-chip.hecha .ta-cal-chip-txt { text-decoration: line-through; color: var(--tinta-3); }
.ta-cal-chip.tarde { box-shadow: inset 0 0 0 1px var(--ta-rojo); }
.ta-cal-chip-punto { width: 7px; height: 7px; border-radius: 50%; background: var(--ta-c); flex: 0 0 auto; }
.ta-cal-chip-txt { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ta-cal-mas { border: 0; background: none; color: var(--ta-acento-t); font-size: 12.5px; font-weight: 650; text-align: left; padding: 2px 6px; cursor: pointer; }
.ta-cal-sin { background: var(--blanco); border: 1px solid var(--linea); border-radius: 12px; padding: 12px; display: flex; flex-direction: column; gap: 6px; position: sticky; top: 0; }
.ta-cal-sin h3 { font: 700 15px/1.2 var(--cuerpo); }
.ta-cal-sin-lista { display: flex; flex-direction: column; gap: 4px; min-height: 80px; border-radius: 8px; }
.ta-dia-lista { display: flex; flex-direction: column; gap: 6px; }
.ta-dia-lista .ta-cal-chip { min-height: 38px; font-size: 14.5px; cursor: pointer; }

/* ── Cronograma ──────────────────────────────────────────────────────────── */
.ta-gantt-caja { display: flex; flex-direction: column; min-height: 0; }
.ta-gantt-barra { padding: 10px 18px 8px; }
.ta-gantt-barra .ta-segmentos { margin-left: 0; }
.ta-critico { align-items: center; font-size: 14px; margin-left: 6px; }
.ta-critico input { margin-top: 0; }
.ta-gantt-ayuda { flex: 1 1 260px; font-size: 13px; margin-left: 8px; }
.ta-gantt-sin { padding: 0 18px 8px; font-size: 13px; }
.ta-gantt { flex: 1; min-height: 0; overflow: auto; display: flex; align-items: flex-start; border-top: 1px solid var(--linea); background: var(--blanco); position: relative; }
.ta-gantt-izq { position: sticky; left: 0; z-index: 4; flex: 0 0 250px; width: 250px; background: var(--blanco); border-right: 1px solid var(--linea); }
.ta-gantt-esquina { position: sticky; top: 0; z-index: 5; height: 54px; display: flex; align-items: flex-end; padding: 0 12px 8px; background: var(--blanco); border-bottom: 1px solid var(--linea); font: 650 12px/1.2 var(--cuerpo); text-transform: uppercase; letter-spacing: .04em; color: var(--tinta-3); }
.ta-gantt-cubo, .ta-gantt-nombre { height: var(--fila); display: flex; align-items: center; padding: 0 12px; border-bottom: 1px solid var(--linea); min-width: 0; }
.ta-gantt-cubo { font: 700 13px/1.2 var(--cuerpo); background: color-mix(in srgb, var(--tinta) 4%, var(--blanco)); color: var(--tinta-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ta-gantt-nombre { width: 100%; border: 0; border-bottom: 1px solid var(--linea); background: none; text-align: left; cursor: pointer; font: 14px/1.2 var(--cuerpo); color: var(--tinta); padding-left: 22px; }
.ta-gantt-nombre span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ta-gantt-nombre:hover { background: color-mix(in srgb, var(--tinta) 3%, transparent); }
.ta-gantt-nombre.hecha span { text-decoration: line-through; color: var(--tinta-3); }
.ta-gantt-der { flex: 0 0 auto; position: relative; }
.ta-gantt-cab { position: sticky; top: 0; z-index: 3; height: 54px; background: var(--blanco); border-bottom: 1px solid var(--linea); }
.ta-gantt-meses { display: flex; height: 24px; }
.ta-gantt-mes { flex: 0 0 auto; padding: 5px 8px; font: 650 12px/1.2 var(--cuerpo); color: var(--tinta-2); border-left: 1px solid var(--linea); white-space: nowrap; overflow: hidden; }
.ta-gantt-dias { display: flex; height: 30px; position: relative; }
.ta-gantt-dia { flex: 0 0 auto; display: flex; flex-direction: column; align-items: center; justify-content: center; font: 10.5px/1.1 var(--cuerpo); color: var(--tinta-3); }
.ta-gantt-dia b { font-size: 12px; color: var(--tinta-2); font-weight: 650; }
.ta-gantt-dia.finde b { color: var(--tinta-3); }
.ta-gantt-dia.hoy b { color: var(--ap-sobre); background: var(--ap-acento); border-radius: 999px; padding: 1px 5px; }
.ta-gantt-dias.abs .ta-gantt-dia { position: absolute; top: 0; height: 30px; align-items: flex-start; padding-left: 4px; border-left: 1px solid var(--linea); font-size: 11px; white-space: nowrap; }
.ta-gantt-pista { position: relative; background-image: repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--fila) - 1px), var(--linea) calc(var(--fila) - 1px), var(--linea) var(--fila)); }
.ta-gantt-finde { position: absolute; top: 0; bottom: 0; background: color-mix(in srgb, var(--tinta) 3.5%, transparent); }
.ta-gantt-hoy { position: absolute; top: 0; bottom: 0; width: 2px; margin-left: -1px; background: var(--ap-acento); z-index: 1; opacity: .8; }
.ta-gantt-fila, .ta-gantt-fila-cubo { position: absolute; left: 0; right: 0; height: var(--fila); }
.ta-gantt-fila-cubo { background: color-mix(in srgb, var(--tinta) 4%, transparent); }
.ta-gantt-programar { position: absolute; top: 4px; min-height: 30px; padding: 3px 10px; font-size: 13px !important; color: var(--tinta-3); border: 1px dashed var(--linea-2); white-space: nowrap; }
.ta-gantt-programar svg { width: 15px !important; height: 15px !important; }
.ta-barra { position: absolute; top: 7px; height: calc(var(--fila) - 14px); border-radius: 6px; background: color-mix(in srgb, var(--ta-c) 24%, var(--blanco)); border: 1px solid color-mix(in srgb, var(--ta-c) 65%, var(--blanco)); cursor: grab; display: flex; align-items: center; z-index: 2; user-select: none; -webkit-user-select: none; -webkit-touch-callout: none; touch-action: pan-y; }
.ta-barra:focus-visible { outline: 3px solid var(--ap-acento); outline-offset: 2px; }
.ta-barra-avance { position: absolute; left: 0; top: 0; bottom: 0; width: var(--avance); background: color-mix(in srgb, var(--ta-c) 55%, var(--blanco)); border-radius: 5px 0 0 5px; pointer-events: none; }
.ta-barra.hecha { --ta-c: var(--ta-verde) !important; }
.ta-barra.tarde { border-color: var(--ta-rojo); border-width: 2px; }
.ta-barra.conflicto { outline: 2px dashed var(--ta-rojo); outline-offset: 1px; }
.ta-barra.critica { box-shadow: 0 0 0 2px var(--ta-rojo); }
.ta-barra.ta-moviendo { opacity: .85; box-shadow: 0 6px 18px color-mix(in srgb, var(--tinta) 25%, transparent); z-index: 6; }
.ta-barra-txt { position: relative; min-width: 0; padding: 0 9px; font: 600 12.5px/1 var(--cuerpo); color: var(--tinta); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; pointer-events: none; }
.ta-barra.estrecha .ta-barra-txt { position: absolute; left: calc(100% + 20px); overflow: visible; padding: 0; color: var(--tinta-2); max-width: none; }
.ta-barra-asa { position: absolute; top: -1px; bottom: -1px; width: 9px; cursor: ew-resize; z-index: 1; }
.ta-barra-asa-i { left: -3px; }
.ta-barra-asa-f { right: -3px; }
.ta-barra-enlace { position: absolute; right: -16px; top: 50%; width: 12px; height: 12px; margin-top: -6px; border-radius: 50%; background: var(--blanco); border: 2px solid color-mix(in srgb, var(--ta-c) 80%, var(--tinta)); cursor: crosshair; opacity: 0; transition: opacity .12s; z-index: 2; }
.ta-barra:hover .ta-barra-enlace, .ta-barra:focus-visible .ta-barra-enlace { opacity: 1; }
@media (hover: none) { .ta-barra-enlace { opacity: .9; } .ta-cal-anadir { opacity: .7; } }
.ta svg.ta-gantt-flechas { position: absolute; left: 0; top: 0; width: 100%; height: 100%; pointer-events: none; z-index: 1; overflow: visible; stroke: none; fill: none; }
.ta-flecha { fill: none; stroke: color-mix(in srgb, var(--tinta-3) 80%, transparent); stroke-width: 1.6; }
.ta-flecha.mal { stroke: var(--ta-rojo); stroke-dasharray: 4 3; }
.ta-flecha.critica { stroke: var(--ta-rojo); stroke-width: 2.2; }
.ta-flecha-nueva { stroke: var(--ap-acento); stroke-width: 2; stroke-dasharray: 5 3; }
.ta-punta { fill: color-mix(in srgb, var(--tinta-3) 80%, transparent); }
.ta-punta-mal { fill: var(--ta-rojo); }

/* ── Escritorio estrecho ─────────────────────────────────────────────────── */
@media (max-width: 1180px) {
  .ta.ta-con-detalle { grid-template-columns: 240px minmax(0, 1fr) 340px; }
  .ta { grid-template-columns: 240px minmax(0, 1fr); }
  .ta-filtro-texto { width: 150px; }
  .ta-cal-cuerpo { grid-template-columns: minmax(0, 1fr); }
  .ta-cal-sin { position: static; }
}
@media (max-width: 999px) and (min-width: 760px) {
  .ta.ta-con-detalle { grid-template-columns: 220px minmax(0, 1fr); }
  .ta.ta-con-detalle .ta-det { position: absolute; top: 0; right: 0; bottom: 0; width: min(380px, 70%); z-index: 6; box-shadow: -12px 0 32px color-mix(in srgb, var(--tinta) 18%, transparent); }
}

/* ── Móvil: el lateral es la portada; se entra en una lista y se vuelve ──── */
@media (max-width: 759px) {
  .ta, .ta.ta-con-detalle { grid-template-columns: 100%; }
  .ta-lat, .ta-main { grid-row: 1; grid-column: 1; }
  .ta[data-panel="lat"] .ta-main { display: none; }
  .ta[data-panel="main"] .ta-lat { display: none; }
  .ta-lat { border-right: 0; }
  .ta-lat-item { min-height: 46px; }
  .ta-det { position: absolute; inset: 0; z-index: 8; border-left: 0; }
  .ta-volver { display: inline-flex; grid-column: 1 / -1; justify-self: start; }
  .ta-cab { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 4px 8px; padding: 8px 14px 4px; }
  .ta-cab-titulo { grid-column: 1; }
  .ta-cab-plan .ta-cab-acciones { grid-column: 1 / -1; }
  .ta-boton-sug { width: 40px; padding: 0; }
  .ta-boton-sug span { display: none; }
  .ta-subtitulo { margin-left: 36px; }
  .ta-titulo-fila h2 { font-size: 22px; }
  .ta-cab-acciones { margin-left: auto; flex-wrap: nowrap; }
  .ta-nueva { margin: 6px 12px 8px; }
  .ta-lista-scroll { padding: 2px 12px 40px; }
  .ta-chip-orden { margin-right: 12px; }
  .ta-filtro-texto { width: 100%; order: -1; flex: 1 1 100%; }
  .ta-cab-plan .ta-cab-acciones { justify-content: flex-start; margin-left: 0; }
  .ta-pestanas { padding: 0 8px; }
  .ta-pestanas .ap-pestana { padding: 10px; }
  .ta-pestanas .ap-pestana span { font-size: 14px; }
  .ta-tablero { padding: 10px 12px 20px; scroll-snap-type: x mandatory; gap: 10px; scroll-padding: 12px; }
  .ta-col { flex-basis: 84vw; width: 84vw; scroll-snap-align: start; }
  .ta-rejilla, .ta-graficos, .ta-cal { padding: 10px 12px 20px; }
  .ta-cifras { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ta-graf-rejilla { grid-template-columns: minmax(0, 1fr); }
  .ta-cal-rejilla { grid-auto-rows: minmax(66px, auto); }
  .ta-cal-cab div { padding: 6px 2px; text-align: center; font-size: 11px; }
  .ta-cal-dia { padding: 2px; }
  .ta-cal-chip { padding: 2px 3px; font-size: 11px; min-height: 20px; gap: 3px; }
  .ta-cal-chip-punto { display: none; }
  .ta-cal-num { font-size: 12px; padding: 3px 5px; }
  .ta-cal-anadir { display: none; }
  .ta-cal-rejilla.semana { grid-template-columns: minmax(0, 1fr); grid-auto-rows: auto; }
  .ta-cal-rejilla.semana .ta-cal-dia { border-right: 0; min-height: 64px; }
  .ta-cal-rejilla.semana .ta-cal-chip { font-size: 13.5px; min-height: 32px; }
  .ta-cal-titulo { flex: 1 1 100%; order: -1; margin: 0 0 4px; }
  .ta-gantt-izq { flex-basis: 132px; width: 132px; }
  .ta-gantt-nombre { padding-left: 10px; font-size: 13px; }
  .ta-gantt-cubo { padding: 0 10px; font-size: 12px; }
  .ta-gantt-barra { padding: 8px 12px; }
  .ta-gantt-ayuda { display: none; }
  .ta-det-campos { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) { .ta-completando, .ta-completando .ta-check { animation: none; } }
@media print { .ta-lat, .ta-det, .ta-nueva, .ta-cab-acciones { display: none !important; } .ta { display: block; } }

/* Fechas en lenguaje natural y calendario laboral */
.ta-nl { margin: -4px 20px 10px; display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 10px; background: color-mix(in srgb, var(--ap-acento) 9%, var(--blanco)); box-shadow: 0 0 0 1px color-mix(in srgb, var(--ap-acento) 30%, transparent); font-size: 14px; color: var(--tinta); }
.ta-nl[hidden] { display: none; }
.ta-nl > svg { flex: none; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; color: var(--ta-acento-t); }
.ta-nl-txt { flex: 1; min-width: 0; line-height: 1.35; }
.ta-nl-txt b { font-weight: 650; }
.ta-nl-aviso { color: var(--tinta-3); }
.ta-nl-quitar { flex: none; min-height: 36px; padding: 4px 10px; }
.ta-det-nota-lab { margin: 2px 14px 6px; }
@media (max-width: 759px) { .ta-nl { margin: -4px 12px 10px; flex-wrap: wrap; } }

/* ── Horas ───────────────────────────────────────────────────────────────── */
.ta-tono-horas { --ta-c: #0f766e; }
.ta-reloj { display: flex; align-items: center; gap: 8px; margin: 0 10px 6px; padding: 6px 6px 6px 12px; border-radius: 10px; background: color-mix(in srgb, #0f766e 14%, var(--blanco)); box-shadow: 0 0 0 1px color-mix(in srgb, #0f766e 35%, transparent); }
.ta-reloj[hidden] { display: none; }
.ta-reloj-punto { width: 9px; height: 9px; border-radius: 50%; background: #0f766e; flex: 0 0 auto; animation: ta-latido 1.6s ease-in-out infinite; }
@keyframes ta-latido { 50% { opacity: .3; } }
@media (prefers-reduced-motion: reduce) { .ta-reloj-punto { animation: none; } }
.ta-reloj-titulo { flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; border: 0; background: none; padding: 2px 0; cursor: pointer; color: var(--tinta); text-align: left; font: 600 14px/1.25 var(--cuerpo); }
.ta-reloj-titulo span, .ta-reloj-titulo small { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ta-reloj-titulo small { font-weight: 400; color: var(--tinta-3); font-size: 12px; }
.ta-reloj-t { font-variant-numeric: tabular-nums; font-weight: 700; font-size: 14px; }
.ta-reloj-parar { color: var(--ta-rojo); min-width: 36px; min-height: 36px; }
.ta-h-bloque { display: flex; flex-direction: column; gap: 10px; }
.ta-h-bloque .ta-det-h3 { display: flex; align-items: center; gap: 8px; margin: 0; }
.ta-h-cab { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.ta-h-iniciar, .ta-h-parar { min-height: 44px; gap: 8px; }
.ta-h-parar { background: color-mix(in srgb, #dc2626 12%, var(--blanco)); color: var(--ta-rojo); }
.ta-h-parar .ta-h-vivo { font-variant-numeric: tabular-nums; font-weight: 700; }
.ta-h-total { display: flex; flex-direction: column; margin: 0; font-weight: 650; }
.ta-h-total small { color: var(--tinta-3); font-weight: 400; }
.ta-h-campos { display: grid; grid-template-columns: 1fr; gap: 8px; }
.ta-h-regs { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.ta-h-reg { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; padding: 4px 6px; border-radius: 8px; }
.ta-h-reg:hover { background: color-mix(in srgb, var(--tinta) 4%, transparent); }
.ta-h-reg.en-marcha { background: color-mix(in srgb, #0f766e 9%, transparent); }
.ta-h-reg-cuando { display: flex; flex-direction: column; font-size: 14px; min-width: 112px; flex: 0 0 auto; }
.ta-h-reg-cuando small { color: var(--tinta-3); font-size: 12.5px; }
.ta-h-reg-tarea { text-align: left; flex: 1 1 120px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ta-h-reg-dur { font-variant-numeric: tabular-nums; margin-left: auto; }
.ta-h-reg-chips { display: flex; gap: 4px; flex-wrap: wrap; }
.ta-h-reg > .ap-boton { min-width: 34px; min-height: 34px; padding: 4px; }
.ta-cab-horas .ta-subtitulo { margin-left: 36px; }
.ta-h-cuerpo > * { flex: none; }
.ta-h-cuerpo { flex: 1; min-height: 0; overflow: auto; padding: 4px 20px 28px; display: flex; flex-direction: column; gap: 14px; }
.ta-h-nav { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.ta-h-semana { min-width: 0; padding: 0 6px; }
.ta-h-filtros { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.ta-h-filtros .ap-campo { width: auto; min-width: 150px; max-width: 100%; flex: 1 1 150px; }
.ta-h-resumen { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; }
.ta-h-total-caja { padding: 10px 14px; border-radius: 12px; background: var(--blanco); box-shadow: 0 0 0 1px var(--linea), var(--ta-sombra); display: flex; flex-direction: column; gap: 2px; }
.ta-h-total-caja small { color: var(--tinta-3); font-size: 12.5px; }
.ta-h-total-caja strong { font: 750 22px/1.2 var(--titulo); font-variant-numeric: tabular-nums; }
.ta-h-total-fact strong { color: var(--ta-verde); }
.ta-h-total-no strong { color: var(--tinta-2); }
.ta-h-tabla-caja { overflow-x: auto; border-radius: 12px; background: var(--blanco); box-shadow: 0 0 0 1px var(--linea); }
.ta-h-rejilla { width: 100%; border-collapse: collapse; min-width: 640px; }
.ta-h-rejilla th, .ta-h-rejilla td { padding: 8px 10px; border-bottom: 1px solid var(--linea); text-align: left; vertical-align: middle; }
.ta-h-rejilla thead th { font-size: 13px; color: var(--tinta-3); font-weight: 650; }
.ta-h-rejilla th small { display: block; font-weight: 400; }
.ta-h-rejilla th.hoy { color: var(--ta-acento-t); }
.ta-h-rejilla tbody th { font-weight: 600; max-width: 260px; }
.ta-h-rejilla tbody th small { display: block; font-weight: 400; color: var(--tinta-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ta-h-g-titulo { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ta-h-num { text-align: right !important; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ta-h-num.vacio { color: var(--tinta-3); }
.ta-h-suma { font-weight: 700; }
.ta-h-rejilla tfoot th, .ta-h-rejilla tfoot td { font-weight: 700; border-bottom: 0; background: color-mix(in srgb, var(--tinta) 4%, transparent); }
.ta-h-celda { border: 0; background: none; color: inherit; font: inherit; padding: 4px 8px; min-width: 44px; min-height: 36px; border-radius: 8px; cursor: pointer; font-variant-numeric: tabular-nums; }
.ta-h-celda:hover { background: var(--ap-suave); }
.ta-h-vacio { padding: 28px 16px; text-align: center; color: var(--tinta-3); display: flex; flex-direction: column; gap: 12px; align-items: center; }
.ta-h-nota { margin: 0; }
.ta-h-seccion { display: flex; flex-direction: column; gap: 6px; }
.ta-h-error { color: var(--error-tinta, var(--ta-rojo)); background: var(--error-fondo, transparent); padding: 8px 10px; border-radius: 8px; margin: 0; }
.ta-h-error[hidden] { display: none; }
.ta-h-dos { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ta-h-quien { display: flex; flex-direction: column; margin: 0; }
.ta-h-quien small { color: var(--tinta-3); }
.ta-h-previa { margin: 0; padding-left: 22px; max-height: 220px; overflow: auto; display: flex; flex-direction: column; gap: 3px; font-size: 14px; }
.ta-h-previa li small { margin-left: 8px; color: var(--tinta-3); }
.ta-h-lb-sub { margin: 0; color: var(--tinta-2); }
.ta-h-est-retraso .ta-h-des { color: var(--ta-rojo); font-weight: 650; }
.ta-h-est-adelanto .ta-h-des { color: var(--ta-verde); font-weight: 650; }
@media (max-width: 759px) {
  .ta-h-cuerpo { padding: 4px 14px 24px; }
  .ta-h-dos { grid-template-columns: 1fr; }
  .ta-h-reg-tarea { flex-basis: 100%; order: -1; }
}
.ta-h-rejilla tbody th, .ta-h-rejilla tfoot th { text-transform: none; letter-spacing: normal; font-size: 14.5px; color: var(--tinta); }
.ta-h-rejilla tfoot th { font-weight: 700; }
