/* TareasKanban - CSS extraido del <style> inline (R-02 auditoria: fuera del render tree, servido/cacheado una vez). */

    .tb-wrap { width: 100%; max-width: 1900px; margin: 0 auto; padding: 6px 28px 60px; font-family: 'Lexend', sans-serif; box-sizing: border-box; }
    .tb-head, .tb-board-head { display: flex; align-items: flex-start; gap: 14px; margin-bottom: 12px; }
    .tb-head { justify-content: space-between; }
    /* El header del tablero envuelve: si no cabe, las acciones bajan a otra linea en vez de machucar el titulo. */
    .tb-board-head { flex-wrap: wrap; align-items: center; row-gap: 10px; }
    .tb-board-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-left: auto; }
    /* Distribucion estilo PQRSD: controles arriba y CTA principal en su propia linea, alineados a la derecha. */
    .tb-board-actions--col { flex-direction: column; align-items: flex-end; gap: 10px; }
    .tb-actions-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
    .tb-cta-brand { display: inline-flex; align-items: center; gap: 8px; padding: 11px 17px; border-radius: 10px; background: var(--propia-brand, var(--propia-brand)); color: var(--propia-text-inverse); font-size: 13.5px; font-weight: 700; border: 0; cursor: pointer; box-shadow: 0 6px 16px rgba(109,79,227,.32); font-family: inherit; }
    .tb-cta-brand:hover { background: var(--propia-brand-hover, var(--propia-brand-hover)); }
    /* KPIs del tablero (mismas tarjetas blancas minimalistas de PQRSD). */
    .tb-bkpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(128px, 1fr)); gap: 8px; margin-bottom: 10px; }
    /* Tarjeta KPI estandar: icono cuadrado con fondo pastel + numero oscuro (como Contratos). */
    .tb-bkpi { display: flex; align-items: center; gap: 9px; background: var(--propia-bg-card); border: 1px solid var(--propia-border-card); border-radius: 11px; padding: 7px 11px; }
    .tb-bkpi-ic { width: 30px; height: 30px; flex-shrink: 0; border-radius: 8px; display: flex; align-items: center; justify-content: center; }
    .tb-bkpi-ic--brand { background: var(--propia-brand-soft); color: var(--propia-brand); }
    .tb-bkpi-ic--warn { background: #FEF3C7; color: #B45309; }
    .tb-bkpi-ic--err { background: #FEE2E2; color: #B91C1C; }
    .tb-bkpi-val { font-size: 17px; font-weight: 800; color: var(--propia-text-h1); letter-spacing: -0.3px; line-height: 1.1; }
    .tb-bkpi-lbl { font-size: 10.5px; color: var(--propia-text-faint); font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .tb-bkpi--warn .tb-bkpi-val { color: #B45309; }
    .tb-bkpi--err .tb-bkpi-val { color: #DC2626; }
    /* Pestanas Activos/Cerrados + buscador */
    .tb-board-tabs { display: flex; align-items: center; gap: 4px; border-bottom: 1px solid var(--propia-border-divider); margin-bottom: 10px; }
    .tb-btab { border: 0; background: transparent; padding: 8px 16px; font-size: 13px; font-weight: 700; color: var(--propia-text-muted); cursor: pointer; border-bottom: 2px solid transparent; font-family: inherit; }
    .tb-btab.on { color: var(--propia-brand, var(--propia-brand)); border-bottom-color: var(--propia-brand, var(--propia-brand)); }
    .tb-search { border: 1px solid var(--propia-border-card); border-radius: 9px; padding: 8px 12px; font-size: 13px; color: var(--propia-text-body); background: var(--propia-bg-card); outline: none; font-family: inherit; min-width: 231px; }
    .tb-search:focus { border-color: var(--propia-brand, var(--propia-brand)); }
    .tb-search--sm { min-width: 210px; }
    .tb-search:focus { border-color: var(--propia-brand); }
    /* Modal cerrar tarea */
    .tb-cierre { background: var(--propia-bg-card); border-radius: 14px; width: min(440px, 94vw); padding: 20px; box-shadow: 0 20px 60px rgba(20,40,70,.3); align-self: center; }
    .tb-cierre-h { font-size: 16px; font-weight: 800; color: var(--propia-text-h1); }
    .tb-cierre-sub { font-size: 12.5px; color: var(--propia-text-muted); margin-top: 2px; }
    .tb-cierre-lbl { display: block; font-size: 11px; font-weight: 700; color: var(--propia-text-muted); margin: 14px 0 5px; }
    .tb-cierre-sel { width: 100%; box-sizing: border-box; border: 1px solid var(--propia-border-card); border-radius: 9px; padding: 9px 11px; font-size: 13px; color: var(--propia-text-body); outline: none; font-family: inherit; background: var(--propia-bg-card); }
    .tb-cierre-hint { font-size: 11.5px; color: var(--propia-text-faint); margin: 8px 0 0; }
    .tb-cierre-foot { display: flex; justify-content: flex-end; gap: 8px; margin-top: 16px; }
    .tbcfg-hint { font-size: 11.5px; color: var(--propia-text-faint); margin: -4px 0 8px; }
    .tb-head-actions { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }

    /* Selector de copropiedad (prototipo v2) */
    .tb-cosel { position: relative; flex-shrink: 0; }
    .tb-cosel-btn { display: flex; align-items: center; gap: 8px; background: var(--propia-bg-card); border: 1px solid var(--propia-border-card); border-radius: 10px; padding: 9px 12px; font-size: 13px; font-weight: 700; color: var(--propia-text-body); cursor: pointer; }
    .tb-cosel-btn:hover:not(:disabled) { border-color: var(--propia-brand); }
    .tb-cosel-btn.tb-cosel-single { cursor: default; }
    .tb-cosel-nom { max-width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .tb-cosel-caret { color: var(--propia-text-muted); flex-shrink: 0; }
    .tb-cosel-menu { position: absolute; top: calc(100% + 6px); right: 0; min-width: 250px; background: var(--propia-bg-card); border: 1px solid var(--propia-border-card); border-radius: 12px; box-shadow: 0 12px 30px rgba(45,62,80,.16); padding: 6px; z-index: 60; max-height: 340px; overflow-y: auto; }
    .tb-cosel-item { display: flex; align-items: center; gap: 9px; width: 100%; text-align: left; background: transparent; border: 0; border-radius: 8px; padding: 9px 10px; font-size: 13px; font-weight: 600; color: var(--propia-text-body); cursor: pointer; }
    .tb-cosel-item:hover:not(:disabled) { background: var(--propia-bg-app); }
    .tb-cosel-item.on { color: var(--propia-brand); background: var(--propia-brand-soft); }
    .tb-cosel-item > span { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .tb-cosel-check { color: var(--propia-brand); flex-shrink: 0; }
    .tb-title { font-size: 27px; font-weight: 800; letter-spacing: -.6px; color: var(--propia-text-h1); margin: 0; }
    .tb-sub { font-size: 14px; color: var(--propia-text-muted); margin: 4px 0 0; }
    .tb-btn { display: inline-flex; align-items: center; gap: 7px; padding: 9px 15px; border-radius: 10px; font-size: 13px; font-weight: 700; border: 0; cursor: pointer; white-space: nowrap; }
    .tb-btn-primary { background: var(--propia-brand); color: var(--propia-text-inverse); box-shadow: 0 6px 16px rgba(109,79,227,.3); }
    .tb-btn-primary:hover { background: var(--propia-brand-hover); color: var(--propia-text-inverse); }
    .tb-btn-primary:disabled { opacity: .6; cursor: default; }
    .tb-btn-soft { background: var(--propia-brand-soft); color: var(--propia-brand); border: 1px solid var(--propia-brand-border); }
    .tb-btn-soft:hover { background: #E6DEFA; }
    .tb-btn-ghost { background: var(--propia-bg-card); color: var(--propia-text-secondary); border: 1px solid var(--propia-border-card); }
    .tb-btn-ghost:hover { border-color: var(--propia-text-faint); }
    .tb-btn-danger { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 700; color: #D7263D; padding: 9px 13px; border-radius: 9px; border: 1px solid #FBD5D5; background: var(--propia-bg-card); cursor: pointer; }
    .tb-btn-danger:hover { background: var(--propia-bg-card)5F5; }
    .tb-flex { flex: 1; }

    /* Indicadores (KPIs) del modulo, prototipo v2 */
    .tb-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 13px; margin-bottom: 20px; }
    /* Tarjeta blanca estandar del sistema: borde suave + icono cuadrado con fondo pastel. */
    .tb-kpi { display: flex; align-items: center; gap: 12px; background: var(--propia-bg-card); border: 1px solid var(--propia-border-card); border-radius: 12px; padding: 12px 16px; box-shadow: 0 1px 2px rgba(45,62,80,.05); }
    .tb-kpi-ic { width: 36px; height: 36px; flex-shrink: 0; border-radius: 10px; display: flex; align-items: center; justify-content: center; }
    .tb-kpi--brand .tb-kpi-ic { background: var(--propia-brand-soft); color: var(--propia-brand); }
    .tb-kpi--ok .tb-kpi-ic { background: var(--propia-ok-soft); color: #0F8A4F; }
    .tb-kpi--warn .tb-kpi-ic { background: #FEF3C7; color: #B45309; }
    .tb-kpi--err .tb-kpi-ic { background: #FEE2E2; color: #B91C1C; }
    .tb-kpi--err .tb-kpi-n { color: #B91C1C; }
    .tb-kpi--warn .tb-kpi-n { color: #B45309; }
    .tb-kpi-body { min-width: 0; }
    .tb-kpi-label { font-size: 11.5px; font-weight: 700; color: var(--propia-text-secondary); margin-top: 1px; }
    .tb-kpi-n { font-size: 20px; font-weight: 800; letter-spacing: -0.3px; color: var(--propia-text-h1); line-height: 1.1; }
    .tb-kpi-sub { font-size: 10.5px; font-weight: 600; color: var(--propia-text-faint); margin-top: 1px; }
    @media (max-width: 1100px) { .tb-kpis { grid-template-columns: repeat(2, 1fr); } }

    .tb-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }
    .tb-card { background: var(--propia-bg-card); border: 1px solid var(--propia-border-card); border-radius: 15px; overflow: hidden; box-shadow: 0 1px 2px rgba(45,62,80,.05); }
    .tb-card-bar { height: 7px; }
    .tb-card-body { padding: 17px 18px; }
    .tb-card-top { display: flex; align-items: flex-start; gap: 10px; }
    .tb-card-id { flex: 1; min-width: 0; }
    .tb-card-nom { font-size: 15.5px; font-weight: 800; color: var(--propia-text-h1); letter-spacing: -.2px; }
    .tb-card-desc { font-size: 12px; color: var(--propia-text-muted); margin-top: 3px; line-height: 1.45; }
    .tb-card-edit { width: 30px; height: 30px; border-radius: 8px; display: flex; align-items: center; justify-content: center; color: var(--propia-text-faint); border: 1px solid var(--propia-border-card); background: var(--propia-bg-card); flex-shrink: 0; cursor: pointer; }
    .tb-card-edit:hover { border-color: var(--propia-brand); color: var(--propia-brand); }
    .tb-card-foot { display: flex; align-items: center; justify-content: space-between; margin-top: 15px; }
    .tb-avatars { display: flex; align-items: center; }
    .tb-ava { width: 28px; height: 28px; border-radius: 50%; background: linear-gradient(135deg,#8366F0,var(--propia-brand-hover)); color: var(--propia-text-inverse); display: flex; align-items: center; justify-content: center; font-size: 10px; font-weight: 700; border: 2px solid var(--propia-bg-card); margin-right: -8px; }
    .tb-ava-more { background: var(--propia-border-divider); color: var(--propia-text-secondary); }
    .tb-avatars-lg .tb-ava { width: 30px; height: 30px; }
    .tb-card-count { font-size: 11px; font-weight: 700; color: var(--propia-text-muted); background: var(--propia-bg-app); border: 1px solid var(--propia-border-card); padding: 3px 10px; border-radius: 20px; }
    .tb-card-open { width: 100%; margin-top: 15px; display: flex; align-items: center; justify-content: center; gap: 7px; padding: 9px; border-radius: 9px; background: var(--propia-brand-soft); color: var(--propia-brand); font-size: 12.5px; font-weight: 700; border: 0; cursor: pointer; }
    .tb-card-open:hover { background: #E6DEFA; }
    .tb-card-new { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 9px; min-height: 180px; border: 1.5px dashed var(--propia-border-input); border-radius: 15px; background: var(--propia-bg-card-soft); color: var(--propia-text-muted); font-size: 12.5px; font-weight: 700; cursor: pointer; }
    .tb-card-new:hover { border-color: var(--propia-brand); color: var(--propia-brand); background: var(--propia-brand-soft-2); }
    .tb-card-new-ic { width: 42px; height: 42px; border-radius: 12px; background: var(--propia-brand-soft); color: var(--propia-brand); display: flex; align-items: center; justify-content: center; }

    .tb-icon-btn { width: 38px; height: 38px; border-radius: 10px; display: flex; align-items: center; justify-content: center; color: var(--propia-text-secondary); border: 1px solid var(--propia-border-card); background: var(--propia-bg-card); flex-shrink: 0; cursor: pointer; margin-top: 3px; }
    .tb-icon-btn:hover { border-color: var(--propia-brand); color: var(--propia-brand); }
    .tb-board-color { width: 8px; height: 38px; border-radius: 5px; flex-shrink: 0; margin-top: 3px; }
    .tb-board-id { flex: 1 1 240px; min-width: 190px; }
    .tb-board-nom { font-size: 24px; font-weight: 800; letter-spacing: -.5px; color: var(--propia-text-h1); margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .tb-board-desc { font-size: 13px; color: var(--propia-text-muted); margin: 2px 0 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .tb-modeswitch { display: flex; align-items: center; gap: 2px; background: var(--propia-bg-hover); border: 1px solid var(--propia-border-card); border-radius: 9px; padding: 3px; flex-shrink: 0; margin-top: 3px; }
    .tb-mode { display: flex; align-items: center; gap: 6px; padding: 6px 11px; border-radius: 7px; font-size: 12px; font-weight: 700; color: var(--propia-text-muted); background: transparent; border: 0; cursor: pointer; }
    .tb-mode.on { color: var(--propia-brand); background: var(--propia-bg-card); box-shadow: 0 1px 2px rgba(45,62,80,.12); }

    /* Barra de acciones de la vista Tablero (ordenar / agrupar) */
    .tb-cardbar { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
    .tb-menuwrap { position: relative; }
    .tb-menu { position: absolute; top: calc(100% + 6px); right: 0; z-index: 60; min-width: 190px; background: var(--propia-bg-card); border: 1px solid var(--propia-border-card); border-radius: 11px; box-shadow: 0 12px 34px rgba(45,62,80,.16); padding: 6px; }
    .tb-menu-it { display: flex; align-items: center; justify-content: space-between; gap: 8px; width: 100%; text-align: left; padding: 8px 10px; border: 0; border-radius: 8px; background: transparent; font-size: 12.5px; font-weight: 600; color: var(--propia-text-body); cursor: pointer; }
    .tb-menu-it:hover { background: var(--propia-bg-app); }
    .tb-menu-it.on { background: var(--propia-brand-soft); color: var(--propia-brand); font-weight: 800; }
    /* Vista Tablero agrupada por dimension */
    .tb-groups { display: flex; flex-direction: column; gap: 16px; }
    .tb-gsec { background: var(--propia-bg-app); border: 1px solid #ECEEF2; border-radius: 14px; padding: 13px 14px; }
    .tb-gsec-head { display: flex; align-items: center; gap: 9px; margin-bottom: 12px; }
    .tb-gsec-nom { font-size: 13px; font-weight: 800; color: var(--propia-text-h1); letter-spacing: -.2px; }
    .tb-gsec-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(255px, 1fr)); gap: 11px; }
    .tb-gsec-grid .tb-tcard { cursor: pointer; }
    .tb-etapa-dot { width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0; }
    .tb-groups-empty { padding: 40px; text-align: center; color: var(--propia-text-muted); font-size: 13px; font-weight: 600; }
    .tb-kanban { display: grid; gap: 13px; align-items: start; overflow-x: auto; padding-bottom: 8px; }
    .tb-col { background: var(--propia-bg-app); border: 1px solid #ECEEF2; border-radius: 14px; padding: 12px; transition: background .12s, border-color .12s; }
    .tb-col-drop { border-color: #B9AEF3; border-style: dashed; background: #F3F0FE; }
    .tb-col-head { display: flex; align-items: center; gap: 8px; padding: 4px 6px 12px; }
    .tb-col-dot { width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0; }
    .tb-col-nom { font-size: 13px; font-weight: 700; color: var(--propia-text-body); flex: 1; }
    .tb-col-count { font-size: 11.5px; font-weight: 700; color: var(--propia-text-muted); background: var(--propia-bg-card); border: 1px solid var(--propia-border-card); padding: 1px 8px; border-radius: 20px; }
    .tb-col-body { display: flex; flex-direction: column; gap: 9px; }
    .tb-tcard { display: block; width: 100%; text-align: left; background: var(--propia-bg-card); border: 1px solid var(--propia-border-card); border-left: 3px solid var(--propia-brand); border-radius: 11px; padding: 12px 13px; box-shadow: 0 1px 2px rgba(45,62,80,.04); cursor: grab; position: relative; }
    .tb-tcard-copy { position: absolute; top: 7px; right: 7px; width: 24px; height: 24px; border-radius: 6px; display: flex; align-items: center; justify-content: center; color: var(--propia-text-muted); background: var(--propia-border-divider); opacity: 0; transition: opacity .12s; cursor: pointer; }
    .tb-tcard:hover .tb-tcard-copy { opacity: 1; }
    .tb-tcard-copy:hover { color: var(--propia-brand); background: var(--propia-brand-soft); }
    .tb-tcard:active { cursor: grabbing; }
    .tb-tcard:hover { border-color: var(--propia-brand); box-shadow: 0 6px 16px rgba(109,79,227,.12); }
    .tb-tcard-tit { font-size: 13px; font-weight: 700; color: var(--propia-text-body); line-height: 1.35; }
    .tb-tcard-meta { display: flex; align-items: center; justify-content: space-between; margin-top: 10px; }
    .tb-prio { font-size: 10.5px; font-weight: 700; padding: 3px 8px; border-radius: 6px; }
    .tb-due { font-size: 11px; color: var(--propia-text-faint); }
    .tb-due.venc { color: #C0383C; font-weight: 700; }
    .tb-tcard-foot { display: flex; align-items: center; gap: 8px; margin-top: 9px; padding-top: 9px; border-top: 1px solid var(--propia-border-divider); }
    .tb-tcard-resp { font-size: 11px; color: var(--propia-text-muted); flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .tb-chip { font-size: 10px; font-weight: 700; color: var(--propia-brand); background: var(--propia-brand-soft); padding: 2px 7px; border-radius: 6px; }
    .tb-tcard-age { display: inline-flex; align-items: center; gap: 3px; font-size: 10px; font-weight: 700; color: #8595A6; background: var(--propia-border-divider); padding: 2px 6px; border-radius: 6px; flex-shrink: 0; white-space: nowrap; }
    .tb-tcard-age svg { opacity: .8; }
    .tb-col-add { display: flex; align-items: center; justify-content: center; gap: 6px; width: 100%; padding: 9px; border-radius: 9px; border: 1px dashed var(--propia-border-input); background: transparent; color: var(--propia-text-faint); font-size: 11.5px; font-weight: 700; cursor: pointer; }
    .tb-col-add:hover { border-color: var(--propia-brand); color: var(--propia-brand); background: var(--propia-brand-soft-2); }

    .tb-filters { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
    .tb-filter { font-size: 12px; font-weight: 600; color: var(--propia-text-secondary); border: 1px solid var(--propia-border-card); border-radius: 9px; padding: 7px 10px; background: var(--propia-bg-card); outline: none; }
    .tb-filter:focus { border-color: var(--propia-brand); }
    .tb-filter-clear { font-size: 12px; font-weight: 700; color: #C0383C; padding: 7px 10px; border-radius: 9px; border: 0; background: transparent; cursor: pointer; }
    .tb-filter-clear:hover { background: var(--propia-danger-soft); }
    .tb-filter-btn { display: flex; align-items: center; gap: 6px; padding: 7px 11px; border-radius: 9px; border: 1px solid var(--propia-border-card); background: var(--propia-bg-card); font-size: 12px; font-weight: 700; color: var(--propia-text-secondary); cursor: pointer; }
    .tb-filter-btn.on { border-color: var(--propia-brand); background: var(--propia-brand-soft); color: var(--propia-brand); }
    .tb-filters { position: relative; }

    /* ===== Constructor de filtros (boton compacto + panel de reglas) ===== */
    .tb-filter-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 17px; height: 17px; padding: 0 5px; margin-left: 2px; border-radius: 9px; background: var(--propia-brand); color: var(--propia-text-inverse); font-size: 10.5px; font-weight: 800; }
    .tb-filterpop-bd { position: fixed; inset: 0; z-index: 44; }
    .tb-filterpop { position: absolute; top: 44px; left: 0; z-index: 45; width: min(680px, 92vw); background: var(--propia-bg-card); border: 1px solid var(--propia-border-card); border-radius: 12px; box-shadow: 0 16px 40px rgba(27,42,58,.2); padding: 12px; }
    .tb-filterpop-empty { font-size: 12.5px; color: var(--propia-text-muted); text-align: center; padding: 14px 8px 16px; line-height: 1.5; }
    .tb-frule { display: flex; align-items: center; gap: 7px; margin-bottom: 8px; }
    .tb-frule-lead { flex: 0 0 60px; font-size: 12px; font-weight: 700; color: var(--propia-text-muted); text-align: right; }
    select.tb-frule-lead.tb-frule-logic { flex: 0 0 60px; text-align: left; border: 1px solid var(--propia-border-card); border-radius: 8px; padding: 5px 6px; background: var(--propia-bg-table-head); color: var(--propia-brand); font-weight: 800; cursor: pointer; outline: none; }
    .tb-frule-f, .tb-frule-op, .tb-frule-v { font-size: 12.5px; font-weight: 600; color: var(--propia-text-body); border: 1px solid var(--propia-border-card); border-radius: 8px; padding: 6px 8px; background: var(--propia-bg-card); outline: none; min-width: 0; }
    .tb-frule-f { flex: 0 0 150px; }
    .tb-frule-op { flex: 0 0 130px; color: var(--propia-text-secondary); }
    .tb-frule-v { flex: 1 1 auto; min-width: 90px; }
    .tb-frule-f:focus, .tb-frule-op:focus, .tb-frule-v:focus, select.tb-frule-logic:focus { border-color: var(--propia-brand); }
    .tb-frule-del { flex: 0 0 auto; width: 28px; height: 28px; border-radius: 7px; border: 1px solid var(--propia-border-card); background: var(--propia-bg-card); color: var(--propia-text-muted); display: flex; align-items: center; justify-content: center; cursor: pointer; }
    .tb-frule-del:hover { background: var(--propia-danger-soft); color: #D7263D; border-color: #F2CFC9; }
    .tb-filterpop-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 4px; padding-top: 10px; border-top: 1px solid var(--propia-border-divider); }
    .tb-filter-add { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 700; color: var(--propia-brand); background: var(--propia-brand-soft); border: 0; border-radius: 8px; padding: 7px 12px; cursor: pointer; }
    .tb-filter-add:hover { background: var(--propia-brand-soft); }
    .tb-filter-clear2 { font-size: 12px; font-weight: 700; color: #C0383C; background: transparent; border: 0; border-radius: 8px; padding: 7px 10px; cursor: pointer; }
    .tb-filter-clear2:hover { background: var(--propia-danger-soft); }
    [data-bs-theme="dark"] .tb-filterpop { background: var(--propia-bg-card); border-color: var(--propia-border-card); }
    [data-bs-theme="dark"] .tb-frule-f, [data-bs-theme="dark"] .tb-frule-op, [data-bs-theme="dark"] .tb-frule-v,
    [data-bs-theme="dark"] select.tb-frule-logic { background: var(--propia-bg-app); border-color: var(--propia-border-card); color: #C7C7D6; }
    [data-bs-theme="dark"] .tb-frule-del { background: var(--propia-bg-app); border-color: var(--propia-border-card); }
    [data-bs-theme="dark"] .tb-filter-add { background: #2f2a52; }
    .tb-colsmenu { position: absolute; top: 44px; right: 0; z-index: 20; width: 256px; max-height: 380px; overflow-y: auto; background: var(--propia-bg-card); border: 1px solid var(--propia-border-card); border-radius: 12px; box-shadow: 0 12px 30px rgba(27,42,58,.16); padding: 8px; }
    .tb-colsmenu-h { font-size: 10px; letter-spacing: .4px; color: var(--propia-text-faint); font-weight: 700; padding: 5px 8px; }
    .tb-colsmenu-i { display: flex; align-items: center; gap: 8px; width: 100%; text-align: left; padding: 5px 8px; border-radius: 8px; font-size: 12.5px; font-weight: 600; color: var(--propia-text-body); }
    .tb-colsmenu-i:hover { background: var(--propia-bg-app); }
    .tb-colsmenu-off { opacity: .5; }
    /* Reordenar columnas: mini flechas arriba/abajo por fila. */
    .tb-colord { display: inline-flex; flex-direction: column; gap: 2px; flex-shrink: 0; }
    .tb-colord-b { width: 19px; height: 13px; display: flex; align-items: center; justify-content: center; border: 1px solid var(--propia-border-card); background: var(--propia-bg-card); color: var(--propia-text-muted); border-radius: 4px; cursor: pointer; padding: 0; }
    .tb-colord-b:hover:not(:disabled) { background: var(--propia-brand-soft); color: var(--propia-brand); border-color: #B9AEF3; }
    .tb-colord-b:disabled { opacity: .3; cursor: default; }
    .tb-chk-btn { background: none; border: 0; padding: 0; cursor: pointer; display: flex; flex-shrink: 0; }
    .tb-chk-lock { border-style: dashed; background: var(--propia-bg-app); cursor: default; }
    .tb-colsmenu-lbl { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .tb-colsmenu-sep { font-size: 10px; letter-spacing: .4px; color: var(--propia-text-faint); font-weight: 700; padding: 8px 8px 4px; border-top: 1px solid var(--propia-border-divider); margin-top: 4px; }
    .tb-colsmenu-acts { display: flex; gap: 6px; padding: 8px 4px 2px; border-top: 1px solid var(--propia-border-divider); margin-top: 6px; }
    .tb-colsmenu-act { flex: 1; padding: 6px 8px; border: 1px solid var(--propia-border-card); border-radius: 8px; background: var(--propia-bg-card); font-size: 11.5px; font-weight: 700; color: var(--propia-text-secondary); cursor: pointer; font-family: inherit; }
    .tb-colsmenu-act:hover { background: var(--propia-brand-soft); border-color: var(--propia-brand-border); color: var(--propia-brand, var(--propia-brand)); }
    .tb-chk { width: 16px; height: 16px; border-radius: 5px; border: 1.5px solid var(--propia-text-faint); background: var(--propia-bg-card); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
    .tb-chk.on { border-color: var(--propia-brand); background: var(--propia-brand); }
    .tb-lc-etiq { flex: 0 0 160px; width: 160px; }
    /* La celda de etiquetas nunca debe desbordarse sobre columnas vecinas: ancho fijo,
       chips que hacen wrap dentro de la celda (crecen hacia abajo, no hacia los lados). */
    /* Etiquetas: maximo ~2 lineas de chips para que una tarea con muchas etiquetas no estire la fila. */
    /* Las etiquetas envuelven y la fila crece para acomodarlas (sin recortarlas ni apenuscar). */
    .tb-row-etiq { flex: 0 0 160px; width: 160px; display: flex; gap: 4px; flex-wrap: wrap; align-content: center; align-items: center; padding: 4px 0; }
    /* Etiqueta rellena con su color (fondo completo), texto en contraste (blanco/oscuro segun luminancia). */
    .tb-tag { position: relative; display: inline-flex; align-items: center; gap: 4px; max-width: 100%; font-size: 10px; font-weight: 700; color: var(--propia-text-inverse); background: var(--propia-brand); border: 1px solid transparent; padding: 2px 4px 2px 8px; border-radius: 20px; box-sizing: border-box; }
    .tb-tag-tx { max-width: 96px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; cursor: text; }
    .tb-tag-inp { width: 82px; max-width: 82px; border: 0; border-radius: 5px; padding: 0 4px; font-size: 10px; font-weight: 700; color: var(--propia-text-h1); outline: none; background: var(--propia-bg-card); font-family: inherit; box-sizing: border-box; }
    /* Botita para abrir el selector de color: circulo blanco translucido, visible sobre cualquier color. */
    .tb-tag-sw { width: 12px; height: 12px; flex-shrink: 0; border-radius: 50%; border: 1px solid rgba(255,255,255,.85); cursor: pointer; padding: 0; background: rgba(255,255,255,.35); }
    .tb-tag-sw:hover { transform: scale(1.12); }
    .tb-tagpop-bd { position: fixed; inset: 0; z-index: 1118; background: transparent; }
    .tb-tag-colors { position: absolute; top: calc(100% + 5px); right: 0; z-index: 1120; display: grid; grid-template-columns: repeat(4, 1fr); gap: 5px; padding: 7px; background: var(--propia-bg-card); border: 1px solid var(--propia-border-card); border-radius: 10px; box-shadow: 0 12px 30px rgba(45,62,80,.2); }
    .tb-tag-copt { width: 20px; height: 20px; border-radius: 6px; border: 2px solid transparent; cursor: pointer; padding: 0; box-shadow: 0 1px 2px rgba(0,0,0,.15); }
    .tb-tag-copt.on { border-color: var(--propia-text-h1); }
    .tb-tag-copt:hover { transform: scale(1.08); }
    /* Columna Titulo fijada: el left debe igualar el padding-left de las filas (18px) para que
       NO salte al hacer scroll horizontal; la sombra derecha marca la columna congelada. */
    /* Columna Titulo fijada: se ancla en left:0 con padding-left:18px (no en left:18px) para que su
       fondo OPACO cubra tambien la franja izquierda; si no, al hacer scroll se veian los datos/colores
       de las celdas que pasan por detras. box-sizing preserva el ancho de columna. z-index alto para
       quedar por encima de toda la fila. */
    .tb-pin { position: sticky; left: 0; padding-left: 18px; box-sizing: border-box; z-index: 5; background: var(--propia-bg-card); box-shadow: 9px 0 10px -8px rgba(45,62,80,.16); }
    .tb-pin-h { position: sticky; left: 0; padding-left: 18px; box-sizing: border-box; z-index: 9; background: var(--propia-bg-table-head); box-shadow: 9px 0 10px -8px rgba(45,62,80,.16); }
    .tb-glead { display: inline-flex; align-items: center; gap: 8px; }
    /* lead del grupo fijado: ancla en 0 con padding-left 18px para que su fondo cubra el borde
       izquierdo (si no, el boton "Agregar" del grupo asoma bajo el titulo al hacer scroll). */
    .tb-pin-g { left: 0; padding-left: 18px; background: var(--propia-bg-app); padding-right: 10px; }

    /* Alto acotado + scroll interno para que la fila de encabezados quede fija (sticky top)
       cuando se baja por las tareas: los titulos de columna se "congelan" arriba. */
    /* Densidad compacta: filas mas bajas y mas alto util para ver ~el doble de registros por pantalla. */
    /* Caja externa (borde/radio/overflow:hidden) que integra tabla + footer; el scroll va en .tb-list. */
    .tb-listbox { background: var(--propia-bg-card); border: 1px solid var(--propia-border-card); border-radius: 14px; box-shadow: 0 1px 2px rgba(45,62,80,.05); overflow: hidden; }
    .tb-list { background: var(--propia-bg-card); overflow: auto; max-height: calc(100vh - 190px); }
    .tb-list-hdr { display: flex; align-items: center; gap: 12px; padding: 10px 18px; border-bottom: 1px solid var(--propia-border-divider); background: var(--propia-bg-table-head); min-width: 860px; position: sticky; top: 0; z-index: 8; }
    .tb-lc-sort { cursor: pointer; user-select: none; }
    .tb-lc-sort:hover { color: var(--propia-brand); }
    .tb-lc { font-size: 10.5px; letter-spacing: .4px; font-weight: 700; color: var(--propia-text-faint); }
    /* Columna del expansor (primera, fija 34px) + columna Codigo. */
    .tb-lc-exp, .tb-row-exp { width: 34px; flex: 0 0 34px; display: flex; align-items: center; justify-content: center; }
    .tb-lc-cod { width: 110px; flex-shrink: 0; } .tb-row-cod { width: 110px; flex-shrink: 0; display: flex; align-items: center; }
    /* Expansor: se ve solo al pasar el mouse por la fila (o al escribir en la fila de alta). */
    .tb-exp-fijo { width: 26px; height: 26px; border: 0; border-radius: 7px; background: var(--propia-brand-soft); color: var(--propia-brand, var(--propia-brand)); display: flex; align-items: center; justify-content: center; cursor: pointer; opacity: 0; transition: opacity .12s, background .12s; }
    .tb-row:hover .tb-exp-fijo, .tb-newrow:hover .tb-exp-fijo, .tb-newrow:focus-within .tb-exp-fijo { opacity: 1; }
    .tb-exp-fijo:hover { background: var(--propia-brand-soft); }
    .tb-exp-fijo:disabled { opacity: 0; cursor: default; }
    .tb-newrow:hover .tb-exp-fijo:disabled, .tb-newrow:focus-within .tb-exp-fijo:disabled { opacity: .35; }
    .tb-lc-tit { width: 300px; flex-shrink: 0; } .tb-lc-est { width: 130px; flex-shrink: 0; } .tb-lc-resp { width: 150px; flex-shrink: 0; }
    .tb-lc-prog { width: 140px; flex-shrink: 0; } .tb-lc-prio { width: 90px; flex-shrink: 0; } .tb-lc-due { flex: 1; min-width: 70px; }
    .tb-list-group { display: flex; align-items: center; gap: 12px; padding: 6px 18px; background: var(--propia-bg-app); border-bottom: 1px solid var(--propia-border-divider); min-width: 860px; }
    .tb-group-nom { font-size: 12px; font-weight: 800; color: var(--propia-text-body); letter-spacing: .2px; }
    .tb-group-add { display: flex; align-items: center; gap: 5px; font-size: 11px; font-weight: 700; color: var(--propia-brand); border: 0; background: transparent; cursor: pointer; }
    /* Encabezado de grupo alineado a columnas: la celda-titulo lleva punto+nombre+conteo+Agregar; las celdas numericas llevan el total bajo su columna. */
    .tb-grp-lead { display: flex; align-items: center; gap: 8px; }
    .tb-grp-tot { color: var(--propia-text-body) !important; font-weight: 800 !important; font-size: 12px !important; letter-spacing: 0 !important; }
    /* Alto minimo comodo (como Zonas) y la fila crece si las etiquetas ocupan varias lineas. */
    .tb-row { display: flex; align-items: center; gap: 12px; padding: 8px 18px; min-height: 44px; border-bottom: 1px solid var(--propia-border-divider); min-width: 860px; border-left: 3px solid transparent; }
    .tb-row:hover { background: var(--propia-brand-soft-2); }
    .tb-row-tit { width: 300px; flex-shrink: 0; min-width: 0; display: flex; align-items: center; gap: 5px; }
    /* Codigo de la tarea como primer elemento de la fila (chip discreto, estilo Airtable/Linear). */
    .tb-row-num { flex-shrink: 0; font-size: 10px; font-weight: 800; letter-spacing: .02em; color: #7C8A9C; background: #F0F3F8; border: 1px solid #E4EAF1; border-radius: 6px; padding: 1px 6px; font-variant-numeric: tabular-nums; }
    /* El chip del codigo es un boton: abre la tarea (reemplazo del ojito). */
    .tb-row-num-btn { cursor: pointer; font-family: inherit; }
    .tb-row-num-btn:hover { color: var(--propia-brand); background: var(--propia-brand-soft); border-color: var(--propia-brand-border); }
    .tb-exp { width: 20px; height: 20px; flex-shrink: 0; border-radius: 5px; display: flex; align-items: center; justify-content: center; color: var(--propia-brand); background: var(--propia-brand-soft); border: 0; cursor: pointer; }
    .tb-row-child { background: var(--propia-bg-card-soft); }
    .tb-row-kidmark { width: 20px; flex-shrink: 0; display: flex; justify-content: center; color: var(--propia-text-faint); font-weight: 700; }
    .tb-row-titbtn { text-align: left; flex: 1; min-width: 0; background: none; border: 0; cursor: pointer; padding: 0; }
    .tb-row-titbtn:hover .tb-row-t { color: var(--propia-brand); }
    .tb-row-t { font-size: 13px; font-weight: 600; color: var(--propia-text-body); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .tb-row-addsub { width: 20px; height: 20px; flex-shrink: 0; border-radius: 5px; display: flex; align-items: center; justify-content: center; color: #B7A6F0; background: transparent; border: 0; cursor: pointer; opacity: .55; transition: opacity .12s; }
    .tb-row:hover .tb-row-addsub { opacity: 1; color: var(--propia-brand); }
    .tb-row-addsub:hover { background: var(--propia-brand-soft); }
    .tb-prog-bar { flex: 1; height: 6px; border-radius: 4px; background: var(--propia-border-divider); overflow: hidden; }
    .tb-prog-fill { height: 100%; border-radius: 4px; }
    .tb-est-sel { width: 130px; flex-shrink: 0; font-size: 11.5px; font-weight: 700; color: var(--propia-text-inverse); border: 0; border-radius: 7px; padding: 3px 7px; outline: none; cursor: pointer; }
    .tb-row-resp { width: 150px; flex-shrink: 0; font-size: 12px; color: var(--propia-text-secondary); font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .tb-row-prog { width: 140px; flex-shrink: 0; display: flex; align-items: center; gap: 7px; }
    .tb-row-prog input { flex: 1; cursor: pointer; }
    .tb-row-progv { font-size: 11px; font-weight: 700; width: 32px; text-align: right; }
    .tb-row-prio { width: 90px; flex-shrink: 0; }
    .tb-row-due { flex: 1; min-width: 70px; font-size: 12px; color: var(--propia-text-muted); }
    .tb-subtag { font-size: 10px; font-weight: 700; color: var(--propia-text-muted); background: var(--propia-border-divider); padding: 3px 8px; border-radius: 6px; }

    /* ===== Tabla editable inline (vista Lista tipo Excel) ===== */
    .tb-list { overflow-x: auto; }
    @* max-content (en vez de un ancho fijo) para que la fila crezca hasta abarcar TODAS las columnas,
       incluidas las dinamicas; asi el fondo del encabezado/grupo/total cubre tambien esas columnas. *@
    .tb-list-hdr, .tb-row, .tb-list-group, .tb-newrow, .tb-list-sum { min-width: max-content; }

    /* Fila-resumen de totales por grupo (estilo Airtable): alineada a las columnas de la Lista. */
    .tb-list-sum { display: flex; align-items: center; gap: 12px; padding: 7px 18px; background: #F6F3FE; border-bottom: 1px solid var(--propia-border-divider); }
    .tb-list-sum .tb-lc { color: var(--propia-text-body); font-weight: 700; letter-spacing: 0; }
    .tb-sum-lead { color: var(--propia-brand) !important; font-size: 10.5px; font-weight: 800; letter-spacing: .4px; text-transform: uppercase; }
    .tb-sum-total { background: #EEE9FC; border-top: 1px solid var(--propia-brand-border); }
    .tb-sum-total .tb-sum-lead { font-size: 11px; }
    .tb-agg { position: relative; }
    .tb-agg-fn { font-size: 9px; font-weight: 800; color: #A78BFA; text-transform: uppercase; letter-spacing: .3px; margin-right: 4px; }
    .tb-agg-val { font-size: 12px; font-weight: 700; color: var(--propia-text-body); }
    .tb-agg-btn { display: inline-flex; align-items: baseline; gap: 4px; background: none; border: 0; cursor: pointer; padding: 2px 5px; border-radius: 6px; font-family: inherit; }
    .tb-agg-btn:hover { background: var(--propia-brand-soft); }
    .tb-agg-menu { position: absolute; top: 100%; left: 0; margin-top: 4px; z-index: 30; background: var(--propia-bg-card); border: 1px solid var(--propia-border-card); border-radius: 8px; box-shadow: 0 8px 24px rgba(16,24,40,.14); padding: 4px; min-width: 132px; }
    .tb-agg-it { display: block; width: 100%; text-align: left; background: none; border: 0; padding: 6px 10px; font-size: 12px; color: var(--propia-text-body); cursor: pointer; border-radius: 6px; font-family: inherit; }
    .tb-agg-it:hover { background: var(--propia-brand-soft); }
    .tb-agg-it.on { color: var(--propia-brand); font-weight: 700; }
    .tb-group-clear { display: inline-flex; align-items: center; gap: 5px; }

    /* Scroll horizontal superior (espejo del de abajo), justo debajo del titulo. */
    .tb-topscroll { overflow-x: auto; overflow-y: hidden; margin-bottom: 7px; height: 14px; border-radius: 8px; }
    .tb-topscroll > div { height: 1px; }
    .tb-topscroll::-webkit-scrollbar { height: 10px; }
    .tb-topscroll::-webkit-scrollbar-thumb { background: #CBD5E1; border-radius: 8px; }
    .tb-topscroll::-webkit-scrollbar-thumb:hover { background: var(--propia-text-faint); }
    .tb-topscroll::-webkit-scrollbar-track { background: var(--propia-bg-hover); border-radius: 8px; }

    /* Color por columna: boton en el encabezado + paleta pastel. */
    .tb-lc-colorwrap { position: relative; display: inline-flex; align-items: center; margin-left: 5px; }
    .tb-lc-color { width: 12px; height: 12px; border-radius: 50%; border: 1.5px solid #CBD5E1; background: transparent; cursor: pointer; padding: 0; opacity: 0; transition: opacity .12s; }
    .tb-lc:hover .tb-lc-color, .tb-lc-color:focus, .tb-lc-colorwrap:hover .tb-lc-color { opacity: 1; }
    .tb-lc-color[style*="transparent"] { border-style: dashed; }
    .tb-colorpop-bd { position: fixed; inset: 0; z-index: 45; }
    .tb-colorpop { position: absolute; top: calc(100% + 6px); left: 0; z-index: 46; display: grid; grid-template-columns: repeat(5, 20px); gap: 6px; padding: 9px; background: var(--propia-bg-card); border: 1px solid var(--propia-border-card); border-radius: 10px; box-shadow: 0 12px 32px rgba(45,62,80,.2); }
    .tb-coloropt { width: 20px; height: 20px; border-radius: 6px; border: 1px solid rgba(0,0,0,.08); cursor: pointer; padding: 0; transition: transform .1s; }
    .tb-coloropt:hover { transform: scale(1.14); }
    .tb-coloropt.on { box-shadow: 0 0 0 2px var(--propia-brand); }
    .tb-coloropt-none { background: var(--propia-bg-card) !important; position: relative; }
    .tb-coloropt-none::after { content: ""; position: absolute; left: 2px; right: 2px; top: 9px; height: 2px; background: #E5484D; transform: rotate(-45deg); }
    .tb-coloropt-custom { overflow: hidden; padding: 0; display: inline-flex; background: conic-gradient(from 0deg, #f00, #ff0, #0f0, #0ff, #00f, #f0f, #f00); }
    .tb-coloropt-custom input[type=color] { opacity: 0; width: 100%; height: 100%; border: 0; padding: 0; margin: 0; cursor: pointer; }

    /* Totales por grupo en la vista Tablero (Kanban agrupado). */
    .tb-gsec-tot { display: inline-flex; flex-wrap: wrap; gap: 6px; margin-left: 10px; }
    .tb-gsec-chip { font-size: 10.5px; color: #6E7A8A; background: var(--propia-border-divider); border-radius: 6px; padding: 2px 8px; }
    .tb-gsec-chip b { color: var(--propia-text-body); }

    /* Totales en el titulo del grupo (vista Lista): chips compactos junto al nombre del grupo. */
    .tb-glt { display: inline-flex; align-items: baseline; gap: 4px; flex-shrink: 0; margin-left: 8px; font-size: 10.5px; font-weight: 600; color: #6E7A8A; background: var(--propia-border-divider); border-radius: 6px; padding: 2px 9px; white-space: nowrap; }
    .tb-glt b { color: var(--propia-text-body); font-weight: 800; }
    .tb-lc-desc { width: 200px; flex-shrink: 0; } .tb-row-desc { width: 200px; flex-shrink: 0; position: relative; }
    .tb-lc-etiq { width: 160px; flex: 0 0 160px; padding-left: 14px; box-sizing: border-box; } .tb-row-etiq { width: 160px; flex: 0 0 160px; padding-left: 14px; box-sizing: border-box; display: flex; gap: 4px; flex-wrap: wrap; align-content: flex-start; }
    .tb-lc-valor { width: 132px; flex-shrink: 0; } .tb-row-valor { width: 132px; flex-shrink: 0; position: relative; font-size: 12px; color: #1E7A50; font-weight: 700; }
    .tb-lc-orig { width: 210px; flex-shrink: 0; } .tb-row-orig { width: 210px; flex-shrink: 0; display: flex; gap: 4px; align-items: center; }
    .tb-orig-tsel { flex: 0 0 84px; font-size: 11px; font-weight: 600; color: var(--propia-text-secondary); border: 1px solid var(--propia-border-card); border-radius: 6px; padding: 4px 5px; outline: none; background: var(--propia-bg-table-head); cursor: pointer; }
    .tb-orig-rsel { flex: 1; min-width: 0; font-size: 11px; font-weight: 600; color: var(--propia-text-body); border: 1px solid var(--propia-border-card); border-radius: 6px; padding: 4px 5px; outline: none; background: var(--propia-bg-card); cursor: pointer; }
    .tb-orig-tsel:focus, .tb-orig-rsel:focus { border-color: var(--propia-brand); }
    /* Selector buscable de origen (reemplaza el datalist tipo tooltip) */
    .sor-wrap { position: relative; flex: 1 1 auto; min-width: 0; }
    .sor-input { width: 100%; box-sizing: border-box; }
    .sor-list { position: absolute; z-index: 60; top: calc(100% + 3px); left: 0; right: 0;
                max-height: 260px; overflow-y: auto; background: var(--propia-bg-card); border: 1px solid var(--propia-border-input);
                border-radius: 8px; box-shadow: 0 10px 28px rgba(20,40,70,.16); padding: 4px; }
    .sor-item { display: flex; flex-direction: column; align-items: flex-start; gap: 1px; width: 100%;
                text-align: left; border: 0; background: transparent; cursor: pointer;
                padding: 6px 9px; border-radius: 6px; font-family: inherit; }
    .sor-item:hover { background: var(--propia-brand-soft); }
    .sor-item-main { font-size: 12px; font-weight: 700; color: #29384A; }
    .sor-item-sub { font-size: 11px; font-weight: 500; color: var(--propia-text-muted); }
    .sor-more { width: 100%; text-align: center; border: 0; background: var(--propia-bg-card-soft); cursor: pointer;
                padding: 6px; border-radius: 6px; font-size: 11px; font-weight: 700; color: var(--propia-brand);
                margin-top: 2px; font-family: inherit; }
    .sor-more:hover { background: #ECE7FB; }
    .sor-empty { padding: 8px 10px; font-size: 12px; color: #94A7BA; }
    [data-bs-theme="dark"] .sor-list { background: var(--propia-bg-card); border-color: var(--propia-border-card); box-shadow: 0 10px 28px rgba(0,0,0,.5); }
    [data-bs-theme="dark"] .sor-item:hover { background: #2A2350; }
    [data-bs-theme="dark"] .sor-item-main { color: #E5E9F0; }
    [data-bs-theme="dark"] .sor-item-sub { color: #94A7BA; }
    [data-bs-theme="dark"] .sor-more { background: var(--propia-bg-card); color: #B9A9F0; }
    .tb-composer-orig { display: flex; flex-direction: column; gap: 6px; }
    /* Columna de acciones NO fija (va al final de la fila, con el scroll). */
    .tb-lc-acc { width: 92px; flex-shrink: 0; text-align: right; }
    .tb-row-acc { width: 92px; flex-shrink: 0; display: flex; gap: 4px; justify-content: flex-end; opacity: 0; transition: opacity .12s; }
    .tb-row:hover .tb-row-acc { opacity: 1; }
    .tb-row-cell-est { width: 130px; flex-shrink: 0; }
    .tb-row-cell-est .tb-est-sel { width: 100%; }
    .tb-row-due, .tb-row-campo { position: relative; }
    .tb-editable { cursor: text; border-radius: 6px; padding: 3px 6px; min-height: 22px; border: 1px solid transparent; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .tb-editable:hover { background: var(--propia-brand-soft-2); border-color: #E1DAF7; }
    .tb-row-desc-prev { color: var(--propia-text-muted); font-size: 12px; }
    .tb-cell-inp, .tb-cell-area { width: 100%; border: 1px solid var(--propia-brand); border-radius: 6px; padding: 4px 7px; font-size: 12.5px; color: var(--propia-text-body); outline: none; box-shadow: 0 0 0 2px rgba(109,79,227,.12); box-sizing: border-box; font-family: inherit; }
    .tb-cell-area { position: absolute; z-index: 30; min-width: 280px; min-height: 74px; background: var(--propia-bg-card); box-shadow: 0 12px 32px rgba(45,62,80,.2); resize: vertical; top: 2px; left: 2px; }
    .tb-row-open { width: 22px; height: 22px; flex-shrink: 0; border-radius: 5px; display: flex; align-items: center; justify-content: center; color: var(--propia-text-muted); background: transparent; border: 0; cursor: pointer; opacity: 1; }
    .tb-row:hover .tb-row-open { color: var(--propia-brand); }
    .tb-row-open:hover { background: var(--propia-border-divider); color: var(--propia-brand); }
    .tb-prio-sel { width: 100%; font-size: 11px; font-weight: 700; border: 0; border-radius: 20px; padding: 3px 7px; outline: none; cursor: pointer; }
    .tb-acc-btn { width: 26px; height: 26px; border-radius: 7px; display: flex; align-items: center; justify-content: center; color: var(--propia-text-muted); background: transparent; border: 1px solid var(--propia-border-card); cursor: pointer; }
    .tb-acc-btn:hover { background: var(--propia-brand-soft-2); color: var(--propia-brand); border-color: #B9AEF3; }
    .tb-acc-del:hover { background: var(--propia-danger-soft); color: #D7263D; border-color: #F2CFC9; }
    .tb-row-resp { display: flex; align-items: center; gap: 3px; position: relative; }
    .tb-row-resp-empty { color: var(--propia-text-faint); font-style: italic; }
    .tb-ava-more { font-size: 10px; font-weight: 700; color: var(--propia-text-muted); }
    .tb-asig-drop { position: absolute; top: calc(100% + 4px); left: 0; z-index: 40; width: 235px; background: var(--propia-bg-card); border: 1px solid var(--propia-border-card); border-radius: 10px; box-shadow: 0 12px 32px rgba(45,62,80,.2); padding: 5px; max-height: 270px; overflow-y: auto; }
    .tb-asig-item { display: flex; align-items: center; gap: 8px; width: 100%; border: 0; background: var(--propia-bg-card); border-radius: 7px; padding: 6px 8px; cursor: pointer; font-size: 12.5px; color: var(--propia-text-body); text-align: left; }
    .tb-asig-item:hover { background: var(--propia-brand-soft-2); }
    .tb-asig-item.on { background: var(--propia-brand-soft); }
    .tb-asig-chk { width: 15px; height: 15px; border-radius: 4px; border: 1.5px solid var(--propia-text-faint); flex-shrink: 0; }
    .tb-asig-chk.on { background: var(--propia-brand); border-color: var(--propia-brand); box-shadow: inset 0 0 0 2px var(--propia-bg-card); }
    .tb-asig-nom { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .tb-asig-close { width: 100%; margin-top: 4px; border: 0; background: var(--propia-text-body); color: var(--propia-text-inverse); border-radius: 7px; padding: 6px; font-size: 12px; font-weight: 700; cursor: pointer; }
    .tb-newrow { display: flex; align-items: center; gap: 12px; padding: 5px 18px; border-bottom: 1px solid var(--propia-border-divider); background: #FCFDFF; }
    .tb-newrow:focus-within { background: var(--propia-brand-soft-2); }
    .tb-nf-inp { width: 100%; box-sizing: border-box; border: 1px dashed var(--propia-border-input); border-radius: 7px; padding: 5px 8px; font-size: 12.5px; color: var(--propia-text-body); outline: none; background: var(--propia-bg-card); font-family: inherit; }
    .tb-nf-inp:focus { border-style: solid; border-color: var(--propia-brand); box-shadow: 0 0 0 2px rgba(109,79,227,.12); }
    .tb-nf-tit { flex: 1; min-width: 0; }
    .tb-nf-mut { color: var(--propia-text-faint); font-size: 12px; }
    /* Boton de alta estandar "+ Agregar" (estilo zc-row-add, violeta suave) al final de la fila. */
    .tb-nf-acts { width: 92px; min-width: 92px; flex: 0 0 92px; justify-content: flex-end; opacity: 1; }
    .tb-nf-acts > * { opacity: 1; }  /* el "+ Agregar" de la alta siempre visible (no hover) */
    .tb-nf-crear { font-size: 11.5px; font-weight: 700; color: var(--propia-brand, var(--propia-brand)); background: var(--propia-brand-soft); border: 1px solid var(--propia-brand-border); border-radius: 7px; padding: 6px 10px; cursor: pointer; font-family: inherit; white-space: nowrap; }
    .tb-nf-crear:hover:not(:disabled) { background: var(--propia-brand-soft); }
    .tb-nf-crear:disabled { opacity: .5; cursor: default; }
    /* Acciones de la fila de alta: crear + expander "crear y abrir" (estilo Airtable). */
    .tb-nf-acts { display: flex; gap: 4px; align-items: center; }
    .tb-nf-abrir { background: var(--propia-brand-soft); color: var(--propia-brand); }
    .tb-nf-abrir:hover { background: var(--propia-brand-soft); }
    .tb-nf-abrir:disabled { background: #F0F3F8; color: #C3CEDA; }
    /* Compositor rapido en tarjetas (kanban) */
    .tb-composer { background: var(--propia-bg-card); border: 1.5px solid var(--propia-brand); border-radius: 11px; padding: 9px; box-shadow: 0 4px 14px rgba(109,79,227,.15); display: flex; flex-direction: column; gap: 7px; }
    .tb-composer-inp { width: 100%; border: 0; outline: none; font-size: 13px; color: var(--propia-text-body); font-weight: 600; background: transparent; box-sizing: border-box; }
    .tb-composer-sub, .tb-composer-sel { width: 100%; box-sizing: border-box; border: 1px solid var(--propia-border-card); border-radius: 7px; padding: 6px 9px; font-size: 12.5px; color: var(--propia-text-body); outline: none; background: var(--propia-bg-table-head); font-family: inherit; }
    .tb-composer-sub:focus, .tb-composer-sel:focus { border-color: var(--propia-brand); background: var(--propia-bg-card); box-shadow: 0 0 0 2px rgba(109,79,227,.12); }
    .tb-composer-appear { animation: tbComposerIn .18s ease; }
    @keyframes tbComposerIn { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }
    .tb-composer-foot { display: flex; align-items: center; justify-content: space-between; margin-top: 1px; }
    .tb-composer-hint { font-size: 10px; color: var(--propia-text-faint); }
    .tb-composer-btn { border: 0; background: var(--propia-brand); color: var(--propia-text-inverse); border-radius: 7px; padding: 5px 12px; font-size: 11.5px; font-weight: 700; cursor: pointer; }
    .tb-composer-btn:disabled { opacity: .5; cursor: default; }

    .tb-soon { background: var(--propia-bg-card); border: 1.5px dashed var(--propia-border-input); border-radius: 16px; padding: 50px 24px; text-align: center; }
    .tb-soon-ic { width: 60px; height: 60px; border-radius: 16px; background: var(--propia-brand-soft); color: var(--propia-brand); display: flex; align-items: center; justify-content: center; margin: 0 auto 14px; }
    .tb-soon-t { font-size: 17px; font-weight: 800; color: var(--propia-text-h1); }
    .tb-soon-s { font-size: 13px; color: var(--propia-text-muted); margin-top: 5px; max-width: 440px; margin-left: auto; margin-right: auto; }

    .tb-modal-bd { position: fixed; inset: 0; z-index: 1090; background: rgba(27,42,58,.55); display: flex; align-items: flex-start; justify-content: center; padding: 32px 20px; overflow-y: auto; }
    .tb-modal { width: 540px; max-width: 100%; background: var(--propia-bg-card); border-radius: 18px; box-shadow: 0 30px 70px rgba(27,42,58,.4); margin: auto; overflow: hidden; }
    .tb-modal-head { display: flex; align-items: center; gap: 12px; padding: 18px 24px; border-bottom: 1px solid var(--propia-border-divider); }
    .tb-modal-tt { flex: 1; }
    .tb-modal-h { font-size: 16.5px; font-weight: 800; letter-spacing: -.3px; color: var(--propia-text-h1); }
    .tb-modal-s { font-size: 12px; color: var(--propia-text-muted); }
    .tb-modal-x { width: 34px; height: 34px; border-radius: 9px; display: flex; align-items: center; justify-content: center; color: var(--propia-text-muted); border: 1px solid var(--propia-border-card); background: var(--propia-bg-card); cursor: pointer; }
    .tb-modal-body { padding: 22px 24px; display: flex; flex-direction: column; gap: 14px; }
    .tb-modal-foot { display: flex; align-items: center; gap: 9px; padding: 16px 24px; border-top: 1px solid var(--propia-border-divider); }
    .tb-fld { display: flex; flex-direction: column; }
    .tb-fld label { font-size: 11px; color: var(--propia-text-muted); font-weight: 700; margin-bottom: 5px; }
    .tb-fld input, .tb-fld select, .tb-fld textarea { width: 100%; border: 1px solid var(--propia-border-card); border-radius: 9px; padding: 10px 12px; font-size: 13.5px; color: var(--propia-text-body); outline: none; background: var(--propia-bg-card); box-sizing: border-box; }
    .tb-fld input:focus, .tb-fld select:focus, .tb-fld textarea:focus { border-color: var(--propia-brand); }
    .tb-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
    .tb-colors { display: flex; gap: 8px; flex-wrap: wrap; }
    .tb-color { width: 30px; height: 30px; border-radius: 8px; border: 3px solid transparent; cursor: pointer; box-shadow: 0 1px 2px rgba(0,0,0,.1); }
    .tb-color.on { border-color: var(--propia-text-h1); }
    .tb-userlist { display: flex; flex-direction: column; gap: 7px; max-height: 230px; overflow-y: auto; }
    .tb-user { display: flex; align-items: center; gap: 11px; text-align: left; border: 1px solid var(--propia-border-card); background: var(--propia-bg-card); border-radius: 10px; padding: 9px 12px; cursor: pointer; }
    .tb-user.on { border-color: var(--propia-brand); background: var(--propia-brand-soft-2); }
    .tb-user .tb-ava { margin-right: 0; }
    .tb-user-nom { flex: 1; font-size: 13px; font-weight: 600; color: var(--propia-text-body); }
    /* Buscador de miembros con autocompletado (reemplaza la lista de checkboxes) */
    .tb-userpick { display: flex; flex-direction: column; gap: 9px; }
    .tb-chips { display: flex; flex-wrap: wrap; gap: 7px; }
    .tb-chip { display: inline-flex; align-items: center; gap: 7px; background: var(--propia-brand-soft-2); border: 1px solid var(--propia-brand-border); border-radius: 20px; padding: 3px 8px 3px 4px; font-size: 12.5px; font-weight: 600; color: var(--propia-text-body); }
    .tb-chip-ava { width: 24px; height: 24px; border-radius: 50%; object-fit: cover; border: 2px solid var(--propia-bg-card); flex-shrink: 0; }
    .tb-ava-sm { width: 24px; height: 24px; font-size: 9px; margin-right: 0; }
    .tb-chip-nom { max-width: 160px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .tb-chip-x { border: none; background: transparent; color: #8B7BD8; font-size: 16px; line-height: 1; cursor: pointer; padding: 0 2px; }
    .tb-search-wrap { position: relative; }
    .tb-search-drop { position: absolute; top: calc(100% + 4px); left: 0; right: 0; z-index: 20; background: var(--propia-bg-card); border: 1px solid var(--propia-border-card); border-radius: 10px; box-shadow: 0 8px 24px rgba(45,62,80,.14); max-height: 240px; overflow-y: auto; padding: 4px; }
    .tb-search-item { display: flex; align-items: center; gap: 10px; width: 100%; text-align: left; border: none; background: var(--propia-bg-card); border-radius: 8px; padding: 7px 9px; cursor: pointer; }
    .tb-search-item:hover { background: var(--propia-brand-soft-2); }
    .tb-search-nom { flex: 1; font-size: 13px; font-weight: 600; color: var(--propia-text-body); }
    .tb-search-doc { font-size: 11.5px; color: var(--propia-text-muted); }
    .tb-search-empty { padding: 9px 11px; font-size: 12.5px; color: var(--propia-text-muted); font-style: italic; }
    .tb-note { font-size: 11.5px; color: #7C5CE8; background: var(--propia-brand-soft-2); border: 1px dashed var(--propia-brand-border); border-radius: 9px; padding: 9px 11px; }
    .tb-invite { border-top: 1px dashed var(--propia-border-card); padding-top: 14px; }
    .tb-invite-hint { font-size: 11.5px; color: var(--propia-text-muted); margin: -3px 0 8px; }
    .tb-invite-grid { display: grid; grid-template-columns: 1.3fr 1fr .8fr auto; gap: 8px; align-items: center; }
    .tb-invite-grid .tb-input { min-width: 0; }
    .tb-invite-msg { margin-top: 9px; font-size: 12.5px; font-weight: 600; border-radius: 9px; padding: 8px 11px; }
    .tb-invite-msg.ok { color: #1E7A50; background: #EAF7F0; border: 1px solid #C6EAD6; }
    .tb-invite-msg.err { color: #B4453B; background: #FCEEEC; border: 1px solid #F2CFC9; }
    .tb-invite-link { display: flex; gap: 8px; align-items: center; margin-top: 9px; }
    .tb-invite-link .tb-input { flex: 1; font-size: 12px; color: #5A6B7B; background: #F7FAFC; }
    @media (max-width: 620px) { .tb-invite-grid { grid-template-columns: 1fr 1fr; } }

    /* ===== Modal de tarjeta rico (3 columnas) ===== */
    /* Alto FIJO para que el modal no cambie de tamano al alternar entre las pestanas Detalle y Archivos. */
    .tbc-modal { width: 1242px; max-width: 96vw; height: 88vh; background: var(--propia-bg-card); border-radius: 18px; box-shadow: 0 30px 70px rgba(27,42,58,.4); margin: auto; overflow: hidden; display: flex; flex-direction: column; max-height: 92vh; }
    .tbc-head { display: flex; align-items: center; gap: 12px; padding: 18px 24px; flex-shrink: 0; }
    .tbc-head-bar { width: 8px; height: 32px; border-radius: 5px; background: rgba(255,255,255,.85); flex-shrink: 0; }
    .tbc-head-id { flex: 1; min-width: 0; }
    .tbc-head-tt { font-size: 16px; font-weight: 800; letter-spacing: -.3px; color: var(--propia-text-inverse); display: flex; align-items: center; gap: 9px; text-shadow: 0 1px 2px rgba(0,0,0,.18); }
    .tbc-proy { display: inline-flex; align-items: center; gap: 5px; font-size: 10px; font-weight: 800; color: var(--propia-text-inverse); background: rgba(255,255,255,.22); padding: 3px 9px; border-radius: 20px; }
    .tbc-head-bc { display: flex; align-items: center; gap: 6px; margin-top: 5px; font-size: 11.5px; font-weight: 600; color: rgba(255,255,255,.9); }
    .tbc-head-bc svg { flex-shrink: 0; }
    .tbc-sep { opacity: .7; }
    .tbc-bold { font-weight: 800; }
    .tbc-head-btn { display: flex; align-items: center; gap: 6px; padding: 8px 12px; border-radius: 9px; border: 1px solid rgba(255,255,255,.45); background: rgba(255,255,255,.12); font-size: 12px; font-weight: 700; color: var(--propia-text-inverse); cursor: pointer; flex-shrink: 0; }
    .tbc-head-btn.on { background: rgba(255,255,255,.25); }
    .tbc-head-btn:hover { background: rgba(255,255,255,.3); }
    .tbc-head-x { width: 34px; height: 34px; border-radius: 9px; display: flex; align-items: center; justify-content: center; color: var(--propia-text-inverse); border: 1px solid rgba(255,255,255,.45); background: rgba(255,255,255,.12); cursor: pointer; flex-shrink: 0; }
    .tbc-head-x:hover { background: rgba(255,255,255,.28); }

    /* El cuerpo ya no scrollea como un todo: cada columna hace su propio scroll (independiente),
       asi el contenido largo de la izquierda no arrastra ni rompe el layout de las demas. */
    .tbc-body { flex: 1; min-height: 0; overflow: hidden; padding: 16px 22px; display: grid; grid-template-columns: minmax(0, 1fr) 400px; grid-template-rows: minmax(0, 1fr); gap: 16px 16px; }
    .tbc-col { display: flex; flex-direction: column; gap: 10px; min-width: 0; min-height: 0; box-sizing: border-box; overflow-y: auto; overflow-x: hidden; scroll-behavior: smooth; padding-right: 6px; scrollbar-width: thin; scrollbar-color: var(--propia-text-faint) transparent; }
    .tbc-col::-webkit-scrollbar { width: 7px; }
    .tbc-col::-webkit-scrollbar-track { background: transparent; }
    .tbc-col::-webkit-scrollbar-thumb { background: var(--propia-text-faint); border-radius: 4px; }
    .tbc-col::-webkit-scrollbar-thumb:hover { background: var(--propia-text-faint); }
    .tbc-col-act { border-left: 1px solid var(--propia-border-divider); padding-left: 12px; padding-right: 0; gap: 10px; overflow: hidden; }
    .tbc-fld { display: flex; flex-direction: column; }
    .tbc-fld > label, .tbc-lbl { font-size: 11px; color: var(--propia-text-muted); font-weight: 700; margin-bottom: 6px; }
    .tbc-mut { color: var(--propia-text-faint); font-weight: 600; }
    .tbc-fld input, .tbc-fld select, .tbc-fld textarea { width: 100%; border: 1px solid var(--propia-border-card); border-radius: 9px; padding: 9px 11px; font-size: 12.5px; color: var(--propia-text-body); outline: none; background: var(--propia-bg-card); box-sizing: border-box; font-family: inherit; }
    .tbc-fld textarea { line-height: 1.5; resize: vertical; }
    .tbc-fld input:focus, .tbc-fld select:focus, .tbc-fld textarea:focus { border-color: var(--propia-brand); }
    .tbc-grow { flex: 1; min-width: 140px; }
    .tbc-w80 { width: 84px; flex-shrink: 0; }
    .tbc-row2 { display: flex; gap: 8px; }

    .tbc-origen { background: var(--propia-brand-soft-2); border: 1px solid var(--propia-brand-border); border-radius: 11px; padding: 13px 14px; display: flex; flex-direction: column; gap: 11px; }
    .tbc-origen-h { font-size: 10.5px; letter-spacing: .4px; color: var(--propia-brand); font-weight: 800; }
    .tbc-origen-row { display: flex; gap: 10px; flex-wrap: wrap; }
    .tbc-origen-sel { color: var(--propia-brand-hover) !important; font-weight: 600; border-color: var(--propia-brand-border) !important; }

    .tbc-sublist { display: flex; flex-direction: column; gap: 6px; }
    .tbc-sub { display: flex; align-items: center; gap: 9px; border: 1px solid var(--propia-border-card); border-radius: 9px; padding: 8px 11px; background: var(--propia-bg-card-soft); }
    .tbc-chk { width: 18px; height: 18px; border-radius: 6px; border: 1.5px solid var(--propia-text-faint); background: var(--propia-bg-card); display: flex; align-items: center; justify-content: center; flex-shrink: 0; cursor: pointer; padding: 0; }
    .tbc-chk.on { border-color: #1A8754; background: #1A8754; }
    .tbc-sub-t { flex: 1; min-width: 0; font-size: 12.5px; font-weight: 600; color: var(--propia-text-body); }
    .tbc-sub-t.done { color: var(--propia-text-faint); text-decoration: line-through; }
    .tbc-sub-x { width: 24px; height: 24px; border-radius: 6px; display: flex; align-items: center; justify-content: center; color: var(--propia-text-faint); flex-shrink: 0; border: 0; background: transparent; cursor: pointer; }
    .tbc-sub-x:hover { background: var(--propia-danger-soft); color: #D7263D; }
    .tbc-subtask { cursor: pointer; }
    .tbc-subtask:hover { border-color: #B9AEF3; background: var(--propia-brand-soft-2); }
    .tbc-sub-dot { width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0; }
    .tbc-sub-est { font-size: 10.5px; font-weight: 700; color: var(--propia-text-muted); background: var(--propia-border-divider); border-radius: 20px; padding: 2px 8px; flex-shrink: 0; }
    .tbc-sub-add { display: flex; gap: 7px; }
    .tbc-sub-add input { flex: 1; min-width: 0; border: 1px solid var(--propia-border-card); border-radius: 8px; padding: 8px 11px; font-size: 12.5px; color: var(--propia-text-body); outline: none; background: var(--propia-bg-card); box-sizing: border-box; }
    .tbc-sub-add input:focus { border-color: var(--propia-brand); }
    .tbc-add-btn { display: flex; align-items: center; gap: 5px; padding: 8px 13px; border-radius: 8px; border: 1px solid var(--propia-brand-border); background: var(--propia-brand-soft); color: var(--propia-brand); font-size: 12px; font-weight: 700; flex-shrink: 0; cursor: pointer; }
    .tbc-add-btn:hover { background: #E6DEFA; }

    .tbc-estados { display: flex; flex-direction: column; gap: 5px; }
    .tbc-est { text-align: left; font-size: 12px; font-weight: 700; padding: 8px 11px; border-radius: 8px; border: 1px solid var(--propia-border-card); color: var(--propia-text-secondary); background: var(--propia-bg-card); cursor: pointer; }
    .tbc-est:hover { border-color: var(--propia-brand); }
    .tbc-est.on { border-color: var(--propia-brand); color: var(--propia-text-inverse); background: var(--propia-brand); }
    .tbc-prios { display: flex; gap: 5px; }
    .tbc-prio2 { flex: 1; font-size: 11.5px; font-weight: 700; padding: 8px 4px; border-radius: 8px; border: 1px solid var(--propia-border-card); color: var(--propia-text-secondary); background: var(--propia-bg-card); cursor: pointer; }
    .tbc-prio2:hover { border-color: var(--propia-brand); }
    .tbc-prio2.on { border-color: var(--propia-brand); color: var(--propia-text-inverse); background: var(--propia-brand); }

    /* Progreso en el modal */
    .tbc-prog-edit, .tbc-prog-ro { display: flex; align-items: center; gap: 10px; }
    .tbc-prog-edit input[type=range] { flex: 1; }
    .tbc-prog-v { font-size: 12.5px; font-weight: 700; width: 42px; text-align: right; }

    /* Etiquetas (tags) en el modal */
    .tbc-tags { display: flex; flex-wrap: wrap; gap: 6px; }
    .tbc-tag { font-size: 11.5px; font-weight: 700; padding: 4px 11px; border-radius: 20px; border: 1px solid var(--propia-border-card); color: var(--propia-text-secondary); background: var(--propia-bg-card); cursor: pointer; }
    .tbc-tag:hover { border-color: var(--propia-brand); }
    .tbc-tag.on { color: var(--propia-text-inverse); }
    .tbc-tag-add { display: flex; gap: 6px; margin-top: 8px; }
    .tbc-tag-add input { flex: 1; border: 1px solid var(--propia-border-card); border-radius: 8px; padding: 8px 10px; font-size: 12.5px; color: var(--propia-text-body); outline: none; }
    .tbc-tag-add input:focus { border-color: var(--propia-brand); }

    .tbc-resps { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 7px; }
    .tbc-resp { display: flex; align-items: center; gap: 6px; background: var(--propia-bg-app); border: 1px solid var(--propia-border-card); border-radius: 20px; padding: 3px 9px 3px 3px; }
    .tbc-resp .tb-ava { width: 24px; height: 24px; font-size: 10px; border: 0; }
    .tbc-resp-nm { font-size: 11.5px; font-weight: 600; color: var(--propia-text-body); }
    .tbc-resp-x { display: flex; color: var(--propia-text-faint); border: 0; background: transparent; cursor: pointer; padding: 0; }
    .tbc-resp-x:hover { color: #D7263D; }
    .tbc-resp-add { display: flex; gap: 6px; }
    /* Solicitante (persona del directorio) */
    .tbc-solic { display: flex; align-items: center; gap: 8px; margin-bottom: 7px; }
    .tbc-solic .tb-ava, .tbc-solic-ava { width: 26px; height: 26px; font-size: 10px; border: 0; margin: 0; }
    .tbc-solic-nm { font-size: 12.5px; font-weight: 700; color: var(--propia-text-body); }
    .tbc-solic-sel { display: block; }
    .tbc-resp-add select { flex: 1; min-width: 0; border: 1px solid var(--propia-border-card); border-radius: 9px; padding: 8px 11px; font-size: 12.5px; color: var(--propia-text-body); outline: none; background: var(--propia-bg-card); box-sizing: border-box; }
    .tbc-resp-add select:focus { border-color: var(--propia-brand); }
    .tbc-add-sq { width: 34px; flex-shrink: 0; border-radius: 9px; background: var(--propia-brand); color: var(--propia-text-inverse); display: flex; align-items: center; justify-content: center; border: 0; cursor: pointer; }
    .tbc-add-sq:hover { background: var(--propia-brand-hover); }

    .tbc-log { display: flex; flex-direction: column; }
    .tbc-log-i { display: flex; gap: 9px; padding-bottom: 10px; }
    .tbc-log-rail { display: flex; flex-direction: column; align-items: center; flex-shrink: 0; }
    .tbc-log-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--propia-brand); margin-top: 3px; }
    .tbc-log-line { width: 2px; flex: 1; background: var(--propia-border-divider); margin-top: 2px; }
    .tbc-log-t { font-size: 11.5px; font-weight: 600; color: var(--propia-text-body); line-height: 1.4; }
    .tbc-log-d { font-size: 10px; color: var(--propia-text-faint); }

    .tbc-adjs { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
    .tbc-adj { position: relative; border: 1px solid var(--propia-border-card); border-radius: 10px; overflow: hidden; background: var(--propia-bg-card); }
    .tbc-adj-th { aspect-ratio: 1/1; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg,var(--propia-brand-soft-2),#E6DEFA); color: var(--propia-brand); }
    .tbc-adj-th img { width: 100%; height: 100%; object-fit: cover; }
    .tbc-adj-nm { padding: 6px 8px; font-size: 10px; font-weight: 600; color: var(--propia-text-body); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .tbc-adj-x { position: absolute; top: 5px; right: 5px; width: 22px; height: 22px; border-radius: 6px; display: flex; align-items: center; justify-content: center; color: var(--propia-text-inverse); background: rgba(27,42,58,.55); border: 0; cursor: pointer; }
    .tbc-adj-x:hover { background: #D7263D; }
    .tbc-adj-up { aspect-ratio: 1/1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; border: 1px dashed var(--propia-border-input); border-radius: 10px; cursor: pointer; font-size: 10.5px; font-weight: 700; color: var(--propia-brand); background: var(--propia-brand-soft-2); text-align: center; }
    .tbc-adj-up:hover { border-color: var(--propia-brand); background: var(--propia-brand-soft-2); }
    .tbc-adj-up-t { font-size: 10px; }
    .tbc-adj-hint { grid-column: 1 / -1; font-size: 11px; color: var(--propia-text-faint); background: var(--propia-bg-app); border: 1px dashed var(--propia-border-input); border-radius: 10px; padding: 11px; text-align: center; line-height: 1.4; }

    .tbc-foot { display: flex; align-items: center; gap: 9px; padding: 16px 24px; border-top: 1px solid var(--propia-border-divider); flex-shrink: 0; }

    /* ===== Pestanas del modal de tarjeta ===== */
    .tbc-tabs { display: flex; align-items: center; gap: 2px; padding: 0 22px; border-bottom: 1px solid var(--propia-border-divider); flex-shrink: 0; }
    .tbc-tab { display: inline-flex; align-items: center; gap: 6px; padding: 12px 14px; border: 0; background: transparent; font-family: inherit; font-size: 12.5px; font-weight: 700; color: var(--propia-text-muted); cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -1px; }
    .tbc-tab:hover { color: var(--propia-brand); }
    .tbc-tab.on { color: var(--propia-brand); border-bottom-color: var(--propia-brand); }
    .tbc-tab-badge { font-size: 10px; font-weight: 800; min-width: 17px; height: 17px; padding: 0 5px; border-radius: 9px; background: var(--propia-brand-soft); color: var(--propia-brand); display: inline-flex; align-items: center; justify-content: center; }
    .tbc-tab.on .tbc-tab-badge { background: var(--propia-brand); color: var(--propia-text-inverse); }

    /* ===== Pestana Archivos: miniaturas + visor grande ===== */
    .tbc-files { flex: 1; min-height: 0; padding: 16px 22px; display: flex; gap: 16px; }
    .tbc-files-hint { flex: 1; align-self: center; text-align: center; font-size: 12.5px; color: var(--propia-text-faint); background: var(--propia-bg-app); border: 1px dashed var(--propia-border-input); border-radius: 10px; padding: 22px; }
    .tbc-thumbs { width: 216px; flex-shrink: 0; display: flex; flex-direction: column; gap: 8px; overflow-y: auto; padding-right: 3px; }
    .tbc-thumb { position: relative; display: flex; align-items: center; gap: 9px; border: 1px solid var(--propia-border-card); border-radius: 10px; padding: 7px 9px; background: var(--propia-bg-card); cursor: pointer; }
    .tbc-thumb:hover { border-color: #B9AEF3; background: var(--propia-brand-soft-2); }
    .tbc-thumb.on { border-color: var(--propia-brand); background: var(--propia-brand-soft-2); box-shadow: 0 0 0 1px var(--propia-brand); }
    .tbc-thumb-ic { width: 44px; height: 44px; border-radius: 8px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg,var(--propia-brand-soft-2),#E6DEFA); color: var(--propia-brand); overflow: hidden; }
    .tbc-thumb-ic img { width: 100%; height: 100%; object-fit: cover; }
    .tbc-thumb-nm { flex: 1; min-width: 0; font-size: 11.5px; font-weight: 600; color: var(--propia-text-body); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .tbc-thumb-x { width: 24px; height: 24px; flex-shrink: 0; border-radius: 6px; display: flex; align-items: center; justify-content: center; color: var(--propia-text-faint); border: 0; background: transparent; cursor: pointer; }
    .tbc-thumb-x:hover { background: var(--propia-danger-soft); color: #D7263D; }
    .tbc-thumb-up { display: flex; align-items: center; justify-content: center; gap: 7px; border: 1px dashed var(--propia-border-input); border-radius: 10px; padding: 12px; cursor: pointer; font-size: 11.5px; font-weight: 700; color: var(--propia-brand); background: var(--propia-brand-soft-2); flex-shrink: 0; }
    .tbc-thumb-up:hover { border-color: var(--propia-brand); background: var(--propia-brand-soft-2); }
    .tbc-thumb-up-t { font-size: 11.5px; }
    .tbc-viewer { flex: 1; min-width: 0; border: 1px solid var(--propia-border-card); border-radius: 12px; background: var(--propia-bg-hover); display: flex; flex-direction: column; overflow: hidden; }
    .tbc-viewer-imgwrap { flex: 1; min-height: 0; display: flex; align-items: center; justify-content: center; padding: 14px; background: var(--propia-bg-hover); overflow: auto; }
    .tbc-viewer-img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 6px; box-shadow: 0 4px 16px rgba(27,42,58,.15); }
    .tbc-viewer-pdfwrap { flex: 1; min-height: 460px; display: flex; background: #525659; }
    .tbc-viewer-pdf { flex: 1; width: 100%; height: 100%; min-height: 460px; border: 0; }
    .tbc-viewer-bar { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 14px; border-top: 1px solid var(--propia-border-divider); background: var(--propia-bg-card); }
    .tbc-viewer-nm { font-size: 12px; font-weight: 700; color: var(--propia-text-body); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .tbc-viewer-open { font-size: 11.5px; font-weight: 700; color: var(--propia-brand); text-decoration: none; border: 1px solid var(--propia-brand-border); border-radius: 8px; padding: 6px 13px; background: var(--propia-brand-soft); flex-shrink: 0; }
    .tbc-viewer-open:hover { background: #E6DEFA; }
    .tbc-viewer-empty, .tbc-viewer-file { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 9px; color: var(--propia-text-faint); text-align: center; padding: 24px; }
    .tbc-viewer-empty p, .tbc-viewer-file p { font-size: 13.5px; font-weight: 700; color: var(--propia-text-secondary); margin: 0; max-width: 320px; word-break: break-word; }
    .tbc-viewer-empty span { font-size: 11.5px; color: var(--propia-text-faint); max-width: 300px; }
    .tbc-viewer-file { color: var(--propia-brand); }

    /* ===== Pestana Actividad: reportar + comentarios + historial ===== */
    .tbc-activity { flex: 1; min-height: 0; overflow-y: auto; padding: 16px 22px; display: flex; flex-direction: column; gap: 16px; }
    .tbc-act-report { display: flex; flex-direction: column; gap: 8px; }
    .tbc-act-input { width: 100%; box-sizing: border-box; border: 1px solid var(--propia-border-card); border-radius: 9px; padding: 10px 12px; font-size: 12.5px; color: var(--propia-text-body); outline: none; resize: vertical; font-family: inherit; line-height: 1.5; }
    .tbc-act-input:focus { border-color: var(--propia-brand); }
    .tbc-act-actions { display: flex; align-items: center; gap: 9px; }
    .tbc-act-cols { display: grid; grid-template-columns: 1.3fr 1fr; gap: 16px 20px; align-items: start; }
    .tbc-act-col { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
    .tbc-act-empty { font-size: 12px; color: var(--propia-text-faint); font-style: italic; background: var(--propia-bg-app); border: 1px dashed var(--propia-border-card); border-radius: 9px; padding: 12px; text-align: center; }
    .tbc-cmts { display: flex; flex-direction: column; gap: 10px; }
    .tbc-cmt { display: flex; gap: 10px; }
    .tbc-cmt-ava { width: 30px; height: 30px; font-size: 11px; flex-shrink: 0; border: 0; margin-right: 0; }
    .tbc-cmt-body { flex: 1; min-width: 0; background: var(--propia-bg-app); border: 1px solid var(--propia-border-divider); border-radius: 10px; padding: 9px 12px; }
    .tbc-cmt-head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin-bottom: 3px; }
    .tbc-cmt-au { font-size: 12px; font-weight: 700; color: var(--propia-text-body); }
    .tbc-cmt-dt { font-size: 10.5px; color: var(--propia-text-faint); font-weight: 600; flex-shrink: 0; }
    .tbc-cmt-tx { font-size: 12.5px; color: var(--propia-text-body); line-height: 1.5; white-space: pre-wrap; word-break: break-word; }

    /* ===== Registro de actividad estilo CHAT (dos tonos, avatar a ambos lados, nombre+hora arriba, separador de dia) ===== */
    .tbc-chat { display: flex; flex-direction: column; gap: 12px; padding: 2px; }
    /* Separador de dia centrado (Hoy / Ayer / fecha) */
    .tbc-daysep { display: flex; align-items: center; justify-content: center; margin: 2px 0; }
    .tbc-daysep span { font-size: 10.5px; font-weight: 800; color: #8598AE; background: #EEF2F7; border-radius: 20px; padding: 3px 12px; }
    /* Cada mensaje: avatar + (nombre/hora arriba, burbuja abajo). Entrante a la izquierda, propio a la derecha. */
    .tbc-msg { display: flex; gap: 8px; align-items: flex-end; max-width: 90%; align-self: flex-start; }
    .tbc-msg.mine { align-self: flex-end; flex-direction: row-reverse; }
    .tbc-msg-ava { width: 28px; height: 28px; font-size: 10.5px; flex-shrink: 0; border: 0; margin: 0; }
    .tbc-msg-col { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
    .tbc-msg.mine .tbc-msg-col { align-items: flex-end; }
    .tbc-msg-meta { display: flex; align-items: baseline; gap: 7px; padding: 0 4px; }
    .tbc-msg-au { font-size: 11.5px; font-weight: 800; color: var(--propia-text-body); }
    .tbc-msg.mine .tbc-msg-au { color: #4B6FD1; }
    .tbc-msg-dt { font-size: 10.5px; color: var(--propia-text-faint); font-weight: 600; }
    /* Burbuja: entrante = crema, propia = azul; esquina "cola" hacia su avatar */
    .tbc-bubble { min-width: 0; max-width: 100%; background: #FEF8E6; border: 1px solid #F5EBC7; border-radius: 14px 14px 14px 4px; padding: 9px 12px; }
    .tbc-msg.mine .tbc-bubble { background: #E9F1FD; border-color: #D2E1F7; border-radius: 14px 14px 4px 14px; }
    .tbc-bubble.has-file { max-width: 260px; }
    .tbc-bubble-tx { font-size: 13px; color: #2B3B4E; line-height: 1.5; white-space: pre-wrap; word-break: break-word; }

    /* ===== Actividad como CHAT (columna 3 del tab Detalle): timeline arriba + compositor abajo ===== */
    .tbc-actchat { display: flex; flex-direction: column; min-height: 0; height: 100%; gap: 8px; }
    .tbc-actchat-h { display: flex; align-items: baseline; gap: 8px; }
    /* Sin caja: el chat es solo el area con las burbujas (sin borde/fondo/sombra). */
    .tbc-chat-scroll { flex: 1 1 auto; min-height: 120px; overflow-y: auto; overflow-x: hidden; padding: 2px 2px 6px; background: transparent; border: 0; }
    .tbc-chat-scroll::-webkit-scrollbar { width: 6px; }
    .tbc-chat-scroll::-webkit-scrollbar-thumb { background: #CBD6E2; border-radius: 4px; }
    .tbc-chat-composer { display: flex; align-items: flex-end; gap: 6px; border: 1px solid var(--propia-border-card); border-radius: 24px; padding: 5px 6px; background: var(--propia-bg-card); box-shadow: 0 1px 3px rgba(27,42,58,.05); }
    .tbc-chat-composer:focus-within { border-color: var(--propia-brand); box-shadow: 0 0 0 3px rgba(109,79,227,.12); }
    .tbc-chat-clip { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; color: var(--propia-brand); background: #F3F0FE; cursor: pointer; flex-shrink: 0; }
    .tbc-chat-clip:hover { background: #E7E0FC; }
    .tbc-chat-clip-load { font-size: 15px; font-weight: 800; color: var(--propia-brand); }
    .tbc-chat-input { flex: 1 1 auto; border: 0; outline: none; resize: none; font-family: inherit; font-size: 13px; color: var(--propia-text-body); line-height: 1.5; padding: 8px 6px; max-height: 96px; background: transparent; }
    .tbc-chat-send { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; border: 0; background: var(--propia-brand); color: var(--propia-text-inverse); cursor: pointer; flex-shrink: 0; }
    .tbc-chat-send:disabled { background: #C7CEDA; cursor: not-allowed; }
    /* Compositor: contenedor relativo para anclar el popover de menciones y el chip de archivo. */
    .tbc-composerwrap { position: relative; display: flex; flex-direction: column; gap: 6px; }
    /* Chip del archivo pendiente (se sube junto con el comentario) */
    .tbc-pendfile { display: inline-flex; align-items: center; gap: 7px; align-self: flex-start; max-width: 100%; background: #F3F0FE; border: 1px solid #DED4FB; color: #4B3AA6; border-radius: 10px; padding: 6px 10px; font-size: 12px; font-weight: 700; }
    .tbc-pendfile-nm { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 220px; }
    .tbc-pendfile-x { display: inline-flex; border: 0; background: transparent; color: #7C6BC7; cursor: pointer; padding: 0; }
    .tbc-pendfile-x:hover { color: #4B3AA6; }
    /* Caption de un archivo (texto que acompana al adjunto dentro de la burbuja) */
    .tbc-bubble-cap { margin-top: 4px; }
    /* Popover de menciones (arroba usuario) */
    .tbc-mencion-pop { position: absolute; bottom: calc(100% + 6px); left: 0; right: 0; max-height: 210px; overflow-y: auto; background: var(--propia-bg-card); border: 1px solid var(--propia-border-card); border-radius: 12px; box-shadow: 0 10px 30px rgba(27,42,58,.16); padding: 5px; z-index: 40; }
    .tbc-mencion-it { display: flex; align-items: center; gap: 9px; width: 100%; border: 0; background: transparent; padding: 7px 9px; border-radius: 8px; cursor: pointer; text-align: left; font-family: inherit; }
    .tbc-mencion-it:hover { background: #F3F0FE; }
    .tbc-mencion-ava { width: 26px; height: 26px; font-size: 10px; flex-shrink: 0; border: 0; margin: 0; }
    .tbc-mencion-nm { font-size: 12.5px; font-weight: 700; color: var(--propia-text-body); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    [data-bs-theme="dark"] .tbc-mencion-pop { background: #1a1a35; border-color: var(--propia-border-card); }
    [data-bs-theme="dark"] .tbc-mencion-it:hover { background: #262647; }
    [data-bs-theme="dark"] .tbc-mencion-nm { color: #d5d9f0; }
    [data-bs-theme="dark"] .tbc-pendfile { background: #262647; border-color: var(--propia-border-card); color: #b9a8f5; }
    /* Burbuja con archivo adjunto dentro del chat: previsualizacion (imagen o PDF) + chip con el nombre */
    .tbc-bubble-img { margin: 2px 0 5px; border-radius: 8px; overflow: hidden; cursor: zoom-in; max-width: 100%; }
    .tbc-bubble-img img { display: block; width: 100%; max-height: 220px; object-fit: cover; }
    .tbc-bubble-pdf { position: relative; display: block; margin: 2px 0 5px; border: 1px solid #E7EDF3; border-radius: 8px; overflow: hidden; height: 160px; background: var(--propia-bg-card); cursor: pointer; }
    .tbc-bubble-pdf-fr { width: 100%; height: 100%; border: 0; pointer-events: none; background: var(--propia-bg-card); }
    .tbc-bubble-pdf-hint { position: absolute; right: 6px; bottom: 6px; font-size: 10px; font-weight: 800; color: var(--propia-text-inverse); background: rgba(27,42,58,.72); border-radius: 12px; padding: 2px 9px; }
    .tbc-bubble-file { display: inline-flex; align-items: center; gap: 6px; text-decoration: none; color: #4B3AA6; background: rgba(109,79,227,.08); border: 1px solid rgba(109,79,227,.18); border-radius: 8px; padding: 5px 9px; font-size: 12px; font-weight: 700; max-width: 100%; }
    .tbc-bubble-file:hover { background: rgba(109,79,227,.15); }
    .tbc-bubble-fnm { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

    /* ===== Tab Historial ===== */
    .tbc-histtab { padding: 12px 18px 14px 20px; overflow-y: auto; }

    /* ===== Bandeja CERRADOS: tabla de consulta plana (sin diseno de tablero) ===== */
    .tb-cerr { overflow-x: auto; }
    .tb-cerr-empty { font-size: 13px; color: #90A4BC; background: var(--propia-bg-app); border: 1px dashed #DCE6EF; border-radius: 12px; padding: 34px; text-align: center; }
    .tb-cerr-tbl { width: 100%; border-collapse: collapse; font-size: 12.5px; }
    .tb-cerr-tbl thead th { text-align: left; font-size: 10.5px; letter-spacing: .4px; text-transform: uppercase; color: #90A4BC; font-weight: 800; padding: 8px 12px; border-bottom: 2px solid var(--propia-border-divider); white-space: nowrap; }
    .tb-cerr-row { cursor: pointer; border-bottom: 1px solid var(--propia-bg-hover); }
    .tb-cerr-row:hover { background: var(--propia-bg-app); }
    .tb-cerr-tbl td { padding: 10px 12px; color: var(--propia-text-body); vertical-align: middle; }
    .tb-cerr-num { font-weight: 800; color: var(--propia-brand); white-space: nowrap; }
    .tb-cerr-tit { font-weight: 700; }
    .tb-cerr-prio { font-size: 10.5px; font-weight: 800; padding: 2px 8px; border-radius: 20px; background: var(--propia-border-divider); color: #64748B; }
    .tb-cerr-prio-Urgente { background: var(--propia-danger-soft); color: #D8443C; }
    .tb-cerr-prio-Alta { background: #FEF0E1; color: #C77B18; }
    .tb-cerr-prio-Normal { background: #E7EEFB; color: #3B62C0; }
    .tb-cerr-prio-Baja { background: #EAF5EE; color: #2F8B54; }
    .tb-cerr-est { display: inline-block; font-size: 10.5px; font-weight: 800; color: var(--propia-text-inverse); padding: 2px 9px; border-radius: 20px; white-space: nowrap; }
    .tb-cerr-mot { color: #5A6B7E; }
    .tb-cerr-dt { color: #90A4BC; white-space: nowrap; }
    .tb-cerr-act { text-align: right; white-space: nowrap; }
    .tb-cerr-reab { display: inline-flex; align-items: center; gap: 5px; border: 1px solid var(--propia-border-card); background: var(--propia-bg-card); color: #4B3AA6; font-size: 11.5px; font-weight: 800; padding: 5px 10px; border-radius: 8px; cursor: pointer; }
    .tb-cerr-reab:hover { background: #F3F0FE; border-color: #C9BCF7; }
    [data-bs-theme="dark"] .tbc-chat-scroll { background: transparent; border: 0; }
    [data-bs-theme="dark"] .tbc-chat-composer { background: #1a1a35; border-color: var(--propia-border-card); }
    [data-bs-theme="dark"] .tbc-chat-input { color: #d5d9f0; }
    [data-bs-theme="dark"] .tb-cerr-tbl td { color: #c5cae0; }
    [data-bs-theme="dark"] .tb-cerr-row { border-bottom-color: #24243f; }
    [data-bs-theme="dark"] .tb-cerr-row:hover { background: #1c1c38; }
    [data-bs-theme="dark"] .tb-cerr-reab { background: #1a1a35; border-color: var(--propia-border-card); color: #b9a8f5; }

    /* ===== Etiqueta "subido por" en adjuntos ===== */
    .tbc-thumb-meta { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
    .tbc-thumb-by { display: inline-flex; align-items: center; gap: 3px; font-size: 9.5px; font-weight: 700; color: var(--propia-text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .tbc-viewer-meta { min-width: 0; display: flex; flex-direction: column; gap: 1px; }
    .tbc-viewer-by { font-size: 10.5px; font-weight: 700; color: var(--propia-text-muted); }

    /* ===== Visor de imagen ampliable + lightbox a pantalla completa ===== */
    .tbc-viewer-imgwrap--zoom { position: relative; cursor: zoom-in; }
    .tbc-viewer-zoom { position: absolute; right: 12px; bottom: 12px; display: inline-flex; align-items: center; gap: 5px; font-size: 11px; font-weight: 800; color: var(--propia-text-inverse); background: rgba(27,42,58,.72); border-radius: 20px; padding: 5px 11px; pointer-events: none; }
    .tbc-lightbox { position: fixed; inset: 0; z-index: 3200; background: rgba(8,12,20,.9); display: flex; align-items: center; justify-content: center; padding: 30px; cursor: zoom-out; }
    .tbc-lightbox-img { max-width: 94vw; max-height: 94vh; object-fit: contain; border-radius: 8px; box-shadow: 0 12px 60px rgba(0,0,0,.5); cursor: default; }
    .tbc-lightbox-x { position: fixed; top: 18px; right: 22px; width: 40px; height: 40px; border-radius: 50%; border: 0; background: rgba(255,255,255,.14); color: var(--propia-text-inverse); display: flex; align-items: center; justify-content: center; cursor: pointer; }
    .tbc-lightbox-x:hover { background: rgba(255,255,255,.28); }

    /* Traza de copias */
    .tbc-copia-bc { display: inline-flex; align-items: center; gap: 4px; border: 0; background: rgba(255,255,255,.22); color: var(--propia-text-inverse); font-size: 11.5px; font-weight: 700; padding: 2px 8px; border-radius: 20px; cursor: pointer; }
    .tbc-copia-bc:hover { background: rgba(255,255,255,.35); }
    .tbc-copia-ic { width: 20px; height: 20px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; color: var(--propia-brand); background: var(--propia-brand-soft); border-radius: 6px; }
    /* Mini-modal copiar tarea */
    .tbcopy { width: min(460px, 94vw); background: var(--propia-bg-card); border-radius: 16px; box-shadow: 0 24px 60px rgba(45,62,80,.28); overflow: hidden; display: flex; flex-direction: column; }
    .tbcopy-h { display: flex; align-items: center; justify-content: space-between; padding: 15px 18px; border-bottom: 1px solid var(--propia-border-divider); }
    .tbcopy-h span { display: flex; align-items: center; gap: 8px; font-size: 14.5px; font-weight: 800; color: var(--propia-text-body); }
    .tbcopy-bd { padding: 16px 18px; display: flex; flex-direction: column; gap: 12px; }
    .tbcopy-src { font-size: 12px; color: var(--propia-text-muted); }
    .tbcopy-src b { color: var(--propia-text-body); }
    .tbcopy-row { display: flex; gap: 10px; }
    .tbcopy-grow { flex: 1; }
    .tbcopy-cant { width: 84px; flex-shrink: 0; }
    .tbcopy-bd input, .tbcopy-bd select { width: 100%; box-sizing: border-box; border: 1px solid var(--propia-border-input); border-radius: 8px; padding: 7px 10px; font-size: 13px; color: var(--propia-text-body); outline: none; }
    .tbcopy-bd input:focus, .tbcopy-bd select:focus { border-color: var(--propia-brand); }
    .tbcopy-tglbl { font-size: 11px; font-weight: 700; letter-spacing: .3px; color: var(--propia-text-faint); }
    .tbcopy-toggles { display: grid; grid-template-columns: 1fr 1fr; gap: 7px 12px; }
    .tbcopy-tg { display: flex; align-items: center; gap: 7px; font-size: 12.5px; color: var(--propia-text-secondary); font-weight: 600; cursor: pointer; }
    .tbcopy-tg input { width: auto !important; accent-color: var(--propia-brand); }
    .tbcopy-note { font-size: 11.5px; color: var(--propia-text-muted); background: var(--propia-bg-table-head); border-radius: 8px; padding: 8px 10px; }
    .tbcopy-foot { display: flex; align-items: center; justify-content: flex-end; gap: 9px; padding: 14px 18px; border-top: 1px solid var(--propia-border-divider); }

    /* ===== Modal Configurar tablero ===== */
    .tbcfg-h { font-size: 11px; letter-spacing: .5px; color: var(--propia-text-faint); font-weight: 700; margin-bottom: 10px; }
    .tbcfg-list { display: flex; flex-direction: column; gap: 7px; margin-bottom: 10px; }
    .tbcfg-est { display: flex; align-items: center; gap: 10px; border: 1px solid var(--propia-border-card); border-radius: 10px; padding: 10px 12px; }
    .tbcfg-dot { width: 11px; height: 11px; border-radius: 50%; flex-shrink: 0; }
    .tbcfg-est-nom { flex: 1; font-size: 13px; font-weight: 700; color: var(--propia-text-body); }
    .tbcfg-est-cnt { font-size: 11px; color: var(--propia-text-faint); }
    .tbcfg-del { width: 26px; height: 26px; border-radius: 7px; display: flex; align-items: center; justify-content: center; color: var(--propia-text-faint); border: 0; background: transparent; cursor: pointer; flex-shrink: 0; }
    .tbcfg-del:hover { background: var(--propia-danger-soft); color: #D7263D; }
    .tbcfg-add { display: flex; gap: 7px; }
    .tbcfg-add input { flex: 1; min-width: 0; border: 1px solid var(--propia-border-card); border-radius: 8px; padding: 9px 11px; font-size: 13px; color: var(--propia-text-body); outline: none; background: var(--propia-bg-card); box-sizing: border-box; }
    .tbcfg-add input:focus { border-color: var(--propia-brand); }
    .tbcfg-add .tb-btn { flex-shrink: 0; }
    /* Etiquetas en Configurar tablero */
    .tbcfg-tags { display: flex; flex-direction: column; gap: 7px; margin-bottom: 10px; }
    .tbcfg-tag { display: flex; align-items: center; gap: 8px; }
    .tbcfg-tag .tb-tag { position: relative; }
    .tbcfg-tag-glob { font-size: 9px; font-weight: 800; color: var(--propia-text-secondary); background: var(--propia-border-divider); border-radius: 5px; padding: 2px 6px; text-transform: uppercase; }
    .tbcfg-tag-cnt { margin-left: auto; font-size: 11px; font-weight: 700; color: var(--propia-text-faint); }
    /* Hint en el modal de tarjeta (las etiquetas ya no se crean ahi) */
    .tbc-tag-hint { margin-top: 8px; font-size: 11.5px; color: var(--propia-text-muted); }
    .tbc-linkbtn { border: 0; background: transparent; color: var(--propia-brand); font-weight: 700; cursor: pointer; padding: 0; font: inherit; text-decoration: underline; }
    [data-bs-theme="dark"] .tbcfg-tag-glob { background: var(--propia-bg-card); color: #C7C7D6; }
    .tbcfg-help { font-size: 11.5px; color: var(--propia-text-muted); margin-bottom: 10px; line-height: 1.45; }
    .tbcfg-chips { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 10px; }
    .tbcfg-chip { display: flex; align-items: center; gap: 7px; font-size: 12px; font-weight: 600; color: var(--propia-text-secondary); background: var(--propia-bg-app); border: 1px solid var(--propia-border-card); padding: 6px 11px; border-radius: 8px; }
    .tbcfg-chip button { display: flex; color: var(--propia-text-faint); border: 0; background: transparent; cursor: pointer; padding: 0; }
    .tbcfg-chip button:hover { color: #D7263D; }

    /* ===== Vista Calendario ===== */
    .tcal { background: var(--propia-bg-card); border: 1px solid var(--propia-border-card); border-radius: 14px; box-shadow: 0 1px 2px rgba(45,62,80,.05); overflow: hidden; }
    .tcal-head { display: flex; align-items: center; gap: 10px; padding: 14px 18px; border-bottom: 1px solid var(--propia-border-divider); }
    .tcal-nav { width: 32px; height: 32px; border-radius: 8px; border: 1px solid var(--propia-border-card); background: var(--propia-bg-card); color: var(--propia-text-secondary); display: flex; align-items: center; justify-content: center; cursor: pointer; }
    .tcal-nav:hover { border-color: var(--propia-brand); color: var(--propia-brand); }
    .tcal-title { font-size: 15px; font-weight: 800; color: var(--propia-text-h1); min-width: 150px; }
    .tcal-today { font-size: 12px; font-weight: 700; color: var(--propia-brand); background: var(--propia-brand-soft); border: 1px solid var(--propia-brand-border); border-radius: 8px; padding: 6px 12px; cursor: pointer; }
    .tcal-today:hover { background: #E6DEFA; }
    .tcal-count { font-size: 11.5px; font-weight: 700; color: var(--propia-brand); background: var(--propia-brand-soft); padding: 4px 11px; border-radius: 20px; }
    .tcal-grid-h { display: grid; grid-template-columns: repeat(7, 1fr); background: var(--propia-bg-table-head); border-bottom: 1px solid var(--propia-border-divider); }
    .tcal-dow { padding: 8px 10px; font-size: 10.5px; letter-spacing: .4px; font-weight: 700; color: var(--propia-text-faint); }
    .tcal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 1px; background: var(--propia-border-divider); }
    .tcal-cell { background: var(--propia-bg-card); min-height: 106px; display: flex; flex-direction: column; padding: 6px 7px; }
    .tcal-cell.tcal-finde { background: var(--propia-bg-card-soft); }
    .tcal-cell.tcal-out { background: var(--propia-bg-table-head); }
    .tcal-cell.tcal-out .tcal-daynum { color: var(--propia-text-faint); }
    .tcal-daynum { width: 24px; height: 24px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 11.5px; font-weight: 800; color: var(--propia-text-body); align-self: flex-end; }
    .tcal-daynum.tcal-hoy { background: var(--propia-brand); color: var(--propia-text-inverse); }
    .tcal-events { display: flex; flex-direction: column; gap: 4px; margin-top: 3px; min-width: 0; }
    .tcal-ev { display: block; width: 100%; text-align: left; font-size: 10.5px; font-weight: 700; color: var(--propia-text-body); line-height: 1.25; background: var(--propia-bg-app); border: 0; border-left: 3px solid var(--propia-brand); border-radius: 6px; padding: 4px 7px; cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .tcal-ev:hover { background: var(--propia-brand-soft); }
    .tcal-ev.venc { background: var(--propia-danger-soft); color: #C0383C; }
    .tcal-more { font-size: 9.5px; color: var(--propia-text-faint); font-weight: 700; padding-left: 3px; }
    .tcal-modes { display: flex; align-items: center; gap: 2px; background: var(--propia-bg-hover); border: 1px solid var(--propia-border-card); border-radius: 9px; padding: 3px; }
    .tcal-mode { padding: 6px 13px; border-radius: 7px; font-size: 12px; font-weight: 700; color: var(--propia-text-muted); background: transparent; border: 0; cursor: pointer; }
    .tcal-mode.on { color: var(--propia-brand); background: var(--propia-bg-card); box-shadow: 0 1px 2px rgba(45,62,80,.12); }
    /* vista semana */
    .tcal-week { display: grid; grid-template-columns: repeat(7, 1fr); gap: 1px; background: var(--propia-border-divider); }
    .tcal-wcol { background: var(--propia-bg-card); min-height: 220px; display: flex; flex-direction: column; }
    .tcal-whead { padding: 9px 10px; border-bottom: 1px solid var(--propia-border-divider); background: var(--propia-bg-table-head); }
    .tcal-whead.hoy { background: var(--propia-brand-soft); }
    .tcal-wdow { font-size: 10px; font-weight: 700; color: var(--propia-text-faint); letter-spacing: .3px; }
    .tcal-wnum { font-size: 15px; font-weight: 800; color: var(--propia-text-h1); }
    .tcal-whead.hoy .tcal-wnum { color: var(--propia-brand); }
    .tcal-wmes { font-size: 10px; color: var(--propia-text-faint); font-weight: 600; }
    .tcal-wbody { padding: 8px; display: flex; flex-direction: column; gap: 6px; }
    .tcal-wev { display: block; width: 100%; text-align: left; border: 1px solid var(--propia-border-card); border-left: 3px solid var(--propia-brand); border-radius: 8px; padding: 7px 9px; background: var(--propia-bg-card); cursor: pointer; }
    .tcal-wev:hover { border-color: var(--propia-brand); background: var(--propia-brand-soft-2); }
    .tcal-wev-t { font-size: 11.5px; font-weight: 700; color: var(--propia-text-body); line-height: 1.3; }
    .tcal-wev-r { font-size: 10px; color: var(--propia-text-faint); margin-top: 2px; }
    .tcal-wempty { font-size: 10.5px; color: var(--propia-text-faint); text-align: center; padding: 14px 0; }

    /* ===== Vista Gantt ===== */
    .tg { background: var(--propia-bg-card); border: 1px solid var(--propia-border-card); border-radius: 14px; box-shadow: 0 1px 2px rgba(45,62,80,.05); overflow: hidden; }
    .tg-titlebar { display: flex; align-items: center; gap: 10px; padding: 14px 18px; border-bottom: 1px solid var(--propia-border-divider); }
    .tg-title { font-size: 15px; font-weight: 800; color: var(--propia-text-h1); }
    .tg-scroll { overflow-x: auto; }
    .tg-inner { min-width: 100%; }
    .tg-row { display: flex; align-items: stretch; border-bottom: 1px solid var(--propia-border-divider); }
    .tg-row:last-child { border-bottom: 0; }
    .tg-head { background: var(--propia-bg-table-head); border-bottom: 1px solid var(--propia-border-divider); position: sticky; top: 0; z-index: 3; }
    .tg-left { width: 240px; flex-shrink: 0; position: sticky; left: 0; z-index: 2; background: var(--propia-bg-card); border-right: 1px solid var(--propia-border-divider); display: flex; align-items: center; gap: 8px; padding: 0 12px; }
    .tg-head-left { background: var(--propia-bg-table-head); font-size: 10.5px; letter-spacing: .4px; font-weight: 700; color: var(--propia-text-faint); padding: 10px 12px; }
    .tg-task { text-align: left; border: 0; cursor: pointer; min-height: 40px; }
    .tg-task:hover .tg-task-t { color: var(--propia-brand); }
    .tg-dot { width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0; }
    .tg-task-t { font-size: 12.5px; font-weight: 600; color: var(--propia-text-body); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .tg-task-btn { flex: 1; min-width: 0; text-align: left; background: none; border: 0; cursor: pointer; padding: 0; overflow: hidden; }
    .tg-task-btn:hover .tg-task-t { color: var(--propia-brand); }
    .tg-exp { width: 18px; height: 18px; flex-shrink: 0; border-radius: 5px; display: flex; align-items: center; justify-content: center; color: var(--propia-brand); background: var(--propia-brand-soft); border: 0; cursor: pointer; padding: 0; }
    .tg-exp:hover { background: #E6DEFA; }
    .tg-exp-sp { width: 18px; flex-shrink: 0; display: inline-block; }
    .tg-time { display: flex; position: relative; }
    .tg-daycol { flex-shrink: 0; padding: 5px 0; text-align: center; border-right: 1px solid var(--propia-border-divider); }
    .tg-daycol.tg-we { background: var(--propia-bg-card-soft); }
    .tg-daycol.tg-today { background: var(--propia-brand-soft); }
    .tg-dow { font-size: 8.5px; letter-spacing: .3px; font-weight: 700; color: var(--propia-text-faint); text-transform: uppercase; }
    .tg-dnum { font-size: 11px; font-weight: 700; color: var(--propia-text-secondary); margin-top: 1px; }
    .tg-dnum-hoy { color: var(--propia-brand); }
    .tg-lane { min-height: 40px; }
    .tg-cell { flex-shrink: 0; border-right: 1px solid var(--propia-border-divider); }
    .tg-cell.tg-we { background: var(--propia-bg-card-soft); }
    .tg-cell.tg-today { background: var(--propia-brand-soft-2); }
    .tg-bar { position: absolute; top: 8px; height: 24px; border-radius: 7px; border: 0; cursor: pointer; overflow: hidden; display: flex; align-items: center; box-shadow: 0 1px 3px rgba(27,42,58,.18); }
    .tg-bar:hover { filter: brightness(1.05); }
    .tg-bar-cl { border-top-left-radius: 0; border-bottom-left-radius: 0; } /* recortada por la izquierda (continua antes) */
    .tg-bar-cr { border-top-right-radius: 0; border-bottom-right-radius: 0; } /* recortada por la derecha (continua despues) */
    .tg-bar-rest { position: absolute; top: 0; bottom: 0; right: 0; background: rgba(255,255,255,.5); }
    .tg-bar-lbl { position: relative; z-index: 1; font-size: 10.5px; font-weight: 700; color: var(--propia-text-inverse); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding: 0 8px; text-shadow: 0 1px 1px rgba(0,0,0,.15); }
    .tg-note { font-size: 11.5px; color: var(--propia-text-faint); padding: 11px 18px; border-top: 1px solid var(--propia-border-divider); background: var(--propia-bg-card-soft); }

    @media (max-width: 880px) { .tcal-cell { min-height: 76px; } }
    @media (max-width: 880px) { .tbc-body { grid-template-columns: 1fr; grid-template-rows: none; overflow-y: auto; } .tbc-col { overflow: visible; min-height: auto; padding-right: 0; } .tbc-act-cols { grid-template-columns: 1fr; } .tbc-col-act { border-left: 0; padding-left: 0; border-top: 1px solid var(--propia-border-divider); padding-top: 14px; } .tbc-files { flex-direction: column; } .tbc-thumbs { width: auto; flex-direction: row; flex-wrap: wrap; } .tbc-viewer { min-height: 320px; } .tbc-row2 { flex-wrap: wrap; } .tbc-row2 .tbc-grow { min-width: 120px; } }
    /* Movil (hasta 640px): el editor de tarea a pantalla completa, header/tabs/footer adaptados */
    @media (max-width: 640px) {
        .tb-modal-bd { padding: 0; }
        .tbc-modal { width: 100vw; max-width: 100vw; height: 100vh; max-height: 100vh; border-radius: 0; }
        .tbc-head { flex-wrap: wrap; padding: 12px 14px; }
        .tbc-tabs { overflow-x: auto; padding: 0 10px; }
        .tbc-tab { flex: 0 0 auto; }
        .tbc-body { padding: 14px; }
        .tbc-foot { flex-wrap: wrap; padding: 12px 14px; }
        .tbc-foot .tb-flex { display: none; }
    }
    /* ----- Campos personalizados: lista (columnas) ----- */
    .tb-lc-due { flex: 0 0 100px; min-width: 100px; }
    .tb-row-due { flex: 0 0 100px; min-width: 100px; }
    .tb-lc-campo { width: 120px; flex-shrink: 0; }
    .tb-row-campo { width: 120px; flex-shrink: 0; font-size: 12px; color: var(--propia-text-secondary); font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    /* Columnas numericas (Valor + campos Numero/Moneda): alineadas a la derecha, digitos tabulares y un poco mas anchas. */
    .tb-lc-campo.tb-num, .tb-row-campo.tb-num { width: 132px; }
    .tb-num { text-align: right; font-variant-numeric: tabular-nums; }
    .tb-num .tb-editable { text-align: right; }
    .tb-num .tb-cell-inp, .tb-num .tb-nf-inp { text-align: right; }
    .tb-lc.tb-num { justify-content: flex-end; }

    /* ----- Campos personalizados: modal de tarjeta ----- */
    .tbc-campos { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
    .tbc-campos-h { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 6px; }
    .tbc-addcampo { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; font-weight: 700; color: var(--propia-brand, var(--propia-brand)); border: 1px solid var(--propia-brand-border); background: var(--propia-brand-soft-2); border-radius: 8px; padding: 4px 9px; cursor: pointer; font-family: inherit; }
    .tbc-addcampo:hover { background: #EDE7FD; }
    .tbc-campoeditor { margin-bottom: 10px; border: 1px solid var(--propia-brand-border); border-radius: 10px; padding: 10px; background: var(--propia-brand-soft-2); display: flex; flex-direction: column; gap: 8px; }
    .tbc-campo { display: flex; flex-direction: column; gap: 4px; }
    .tbc-campo.full { grid-column: 1 / -1; }
    .tbc-campo-lbl { font-size: 11px; font-weight: 700; color: var(--propia-text-secondary); }
    /* Lapiz para editar la DEFINICION del campo (nombre/tipo/opciones), desde la ficha y la parrilla. */
    .tbc-campo-lblrow { display: flex; align-items: center; justify-content: space-between; gap: 6px; }
    .tbc-campo-ed2 { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; border: 0; background: transparent; color: var(--propia-text-faint); cursor: pointer; border-radius: 5px; opacity: .5; flex-shrink: 0; font-family: inherit; }
    .tbc-campo-ed2:hover { color: var(--propia-brand, var(--propia-brand)); background: var(--propia-brand-soft); opacity: 1; }
    .tbc-campo-acts { display: flex; align-items: center; gap: 1px; flex-shrink: 0; }
    .tbc-campo-mv { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; border: 0; background: transparent; color: var(--propia-text-faint); cursor: pointer; border-radius: 5px; opacity: .5; font-family: inherit; }
    .tbc-campo-mv:hover { color: var(--propia-brand, var(--propia-brand)); background: var(--propia-brand-soft); opacity: 1; }
    .tbc-campo-del { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; border: 0; background: transparent; color: var(--propia-text-faint); cursor: pointer; border-radius: 5px; opacity: .5; flex-shrink: 0; font-family: inherit; }
    .tbc-campo-del:hover { color: #D7263D; background: var(--propia-danger-soft); opacity: 1; }
    .tb-lc-ed { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; border: 0; background: transparent; color: var(--propia-text-faint); cursor: pointer; border-radius: 4px; opacity: 0; margin-left: 4px; vertical-align: middle; }
    .tb-lc-campo:hover .tb-lc-ed { opacity: .7; }
    .tb-lc-ed:hover { color: var(--propia-brand, var(--propia-brand)); opacity: 1; }
    .tbc-req { color: #D7263D; font-weight: 800; }
    .tbc-sep { display: flex; align-items: center; justify-content: space-between; gap: 6px; font-size: 11px; font-weight: 800; letter-spacing: .4px; color: var(--propia-brand, var(--propia-brand)); text-transform: uppercase; border-top: 1px solid var(--propia-border-card); padding-top: 9px; margin-top: 4px; }
    .tbc-total { background: var(--propia-brand-soft-2); font-weight: 700; color: var(--propia-text-body); }
    .tbc-cardmsg { font-size: 12px; font-weight: 600; color: #D7263D; align-self: center; margin-right: 8px; }
    .tbcfg-suma { border: 1px solid var(--propia-border-card); border-radius: 8px; padding: 8px 10px; display: flex; flex-direction: column; gap: 4px; }
    .tbcfg-suma-h { font-size: 10.5px; font-weight: 700; letter-spacing: .3px; color: var(--propia-text-muted); }
    .tbcfg-suma-empty { font-size: 11.5px; color: var(--propia-text-faint); }
    .tbc-campo input, .tbc-campo select, .tbc-campo textarea { border: 1px solid var(--propia-border-card); border-radius: 8px; padding: 7px 9px; font-size: 12.5px; color: var(--propia-text-body); outline: none; background: var(--propia-bg-card); box-sizing: border-box; width: 100%; font-family: inherit; }
    .tbc-campo input:focus, .tbc-campo select:focus, .tbc-campo textarea:focus { border-color: var(--propia-brand); }
    .tbc-campo-bool { display: flex; align-items: center; gap: 7px; font-size: 12.5px; color: var(--propia-text-secondary); font-weight: 600; }
    .tbc-campo-bool input { width: auto; }

    /* ----- Editor de campos en Configurar tablero ----- */
    .tbcfg-campos { display: flex; flex-direction: column; gap: 6px; margin-bottom: 12px; }
    .tbcfg-campo { display: flex; align-items: center; gap: 8px; padding: 8px 11px; border: 1px solid var(--propia-border-card); border-radius: 9px; background: var(--propia-bg-card); }
    .tbcfg-campo.on { border-color: var(--propia-brand); background: var(--propia-brand-soft-2); }
    .tbcfg-campo-id { flex: 1; min-width: 0; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
    .tbcfg-campo-nom { font-size: 13px; font-weight: 700; color: var(--propia-text-body); }
    .tbcfg-campo-tipo { font-size: 10px; font-weight: 700; color: var(--propia-brand); background: var(--propia-brand-soft); padding: 2px 8px; border-radius: 6px; }
    .tbcfg-campo-filt { font-size: 10px; font-weight: 700; color: #1A8754; background: var(--propia-ok-soft); padding: 2px 8px; border-radius: 6px; }
    .tbcfg-campo-ed { width: 28px; height: 28px; flex-shrink: 0; border-radius: 7px; display: flex; align-items: center; justify-content: center; color: var(--propia-text-faint); border: 1px solid var(--propia-border-card); background: var(--propia-bg-card); cursor: pointer; }
    .tbcfg-campo-ed:hover { color: var(--propia-brand); border-color: var(--propia-brand); }
    /* Campos archivados (retirados sin perder datos) */
    .tbcfg-arch { margin-top: 12px; border: 1px dashed var(--propia-border-input); border-radius: 10px; padding: 11px 12px; background: var(--propia-bg-app); }
    .tbcfg-arch-h { font-size: 11px; letter-spacing: .5px; color: var(--propia-text-faint); font-weight: 700; margin-bottom: 6px; }
    .tbcfg-arch-h span { color: var(--propia-text-muted); }
    .tbcfg-arch-it { display: flex; align-items: center; gap: 8px; padding: 6px 4px; border-top: 1px solid var(--propia-border-divider); }
    .tbcfg-arch-it:first-of-type { border-top: 0; }
    .tbcfg-arch-restore { font-size: 12px; font-weight: 700; color: var(--propia-brand); border: 1px solid var(--propia-brand-border); background: var(--propia-brand-soft); border-radius: 8px; padding: 5px 12px; cursor: pointer; flex-shrink: 0; }
    .tbcfg-arch-restore:hover { background: #E6DEFA; }
    .tbcfg-editor { border: 1px dashed var(--propia-border-input); border-radius: 10px; padding: 12px; background: var(--propia-bg-card-soft); display: flex; flex-direction: column; gap: 8px; }
    .tbcfg-editor-h { font-size: 11px; font-weight: 800; letter-spacing: .3px; color: var(--propia-text-muted); }
    .tbcfg-erow { display: flex; gap: 8px; align-items: center; }
    .tbcfg-erow-end { justify-content: flex-end; }
    .tbcfg-in { flex: 1; min-width: 0; border: 1px solid var(--propia-border-card); border-radius: 8px; padding: 8px 10px; font-size: 12.5px; color: var(--propia-text-body); outline: none; background: var(--propia-bg-card); box-sizing: border-box; font-family: inherit; }
    .tbcfg-in:focus { border-color: var(--propia-brand); }
    .tbcfg-in-sm { flex: 0 0 160px; }
    .tbcfg-chkl { display: flex; align-items: center; gap: 7px; font-size: 12px; color: var(--propia-text-secondary); font-weight: 600; flex: 1; }
    /* Editor de campo flotante + boton "+ Campo" del encabezado de la tabla */
    /* Editor de campo como POPOVER anclado al boton (nace del boton, con flechita). */
    .tbfld-bd { position: fixed; inset: 0; z-index: 1118; background: transparent; }
    .tbfld-pop { position: fixed; z-index: 1120; width: 360px; max-width: calc(100vw - 24px); background: var(--propia-bg-card); border: 1px solid #E6ECF1; border-radius: 13px; box-shadow: 0 18px 50px rgba(27,42,58,.28); display: flex; flex-direction: column; overflow: hidden; transform-origin: top right; animation: tbfldIn .12s ease-out; }
    .tbfld-pop::before { content: ''; position: absolute; top: -7px; right: 18px; width: 13px; height: 13px; background: var(--propia-bg-card); border-left: 1px solid #E6ECF1; border-top: 1px solid #E6ECF1; transform: rotate(45deg); }
    .tbfld-pop-up { transform-origin: bottom right; animation: tbfldInUp .12s ease-out; }
    .tbfld-pop-up::before { top: auto; bottom: -7px; border-left: none; border-top: none; border-right: 1px solid #E6ECF1; border-bottom: 1px solid #E6ECF1; }
    @keyframes tbfldIn { from { opacity: 0; transform: translateY(-6px) scale(.98); } to { opacity: 1; transform: translateY(0) scale(1); } }
    @keyframes tbfldInUp { from { opacity: 0; transform: translateY(6px) scale(.98); } to { opacity: 1; transform: translateY(0) scale(1); } }
    .tbfld-pop-h { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 14px; border-bottom: 1px solid var(--propia-bg-card-soft); font-size: 13.5px; font-weight: 800; color: var(--propia-text-h1); flex-shrink: 0; }
    .tbfld-x { width: 26px; height: 26px; border-radius: 7px; display: flex; align-items: center; justify-content: center; border: 1px solid var(--propia-border-card); background: var(--propia-bg-card); color: var(--propia-text-muted); cursor: pointer; flex-shrink: 0; }
    .tbfld-x:hover { border-color: var(--propia-brand); color: var(--propia-brand); }
    .tbfld-pop-b { padding: 13px 14px; overflow-y: auto; display: flex; flex-direction: column; gap: 11px; }
    .tbfld-pop-f { display: flex; align-items: center; justify-content: flex-end; gap: 8px; padding: 11px 14px; border-top: 1px solid var(--propia-bg-card-soft); flex-shrink: 0; }
    .tbfld-field { display: flex; flex-direction: column; gap: 4px; }
    .tbfld-lbl { font-size: 11px; font-weight: 700; color: var(--propia-text-secondary); letter-spacing: .2px; }
    .tb-hdr-addcampo { display: inline-flex; align-items: center; gap: 4px; font-size: 10.5px; font-weight: 700; color: var(--propia-brand, var(--propia-brand)); border: 1px solid var(--propia-brand-border); background: var(--propia-brand-soft-2); border-radius: 6px; padding: 2px 7px; cursor: pointer; font-family: inherit; }
    .tb-hdr-addcampo:hover { background: #EDE7FD; }

    /* ============================================================================
       TEMA OSCURO del area de trabajo de Tareas.
       El resto de la app activa el modo oscuro con html[data-bs-theme="dark"]
       (ver wwwroot/js/propia-ui.js). Aqui reescribimos los fondos/contraste de las
       clases tb-*/tbc-*/tcal-*/tg- (solo del modulo Tareas) porque usan colores
       claros fijos que quedaban ilegibles. Se reutilizan los tokens de dark de
       wwwroot/css/propia-tokens.css cuando aplica.
       ============================================================================ */
    /* ---- Cabeceras / titulos ---- */
    [data-bs-theme="dark"] .tb-title,
    [data-bs-theme="dark"] .tb-board-nom,
    [data-bs-theme="dark"] .tb-card-nom,
    [data-bs-theme="dark"] .tb-soon-t,
    [data-bs-theme="dark"] .tb-modal-h,
    [data-bs-theme="dark"] .tcal-title,
    [data-bs-theme="dark"] .tcal-wnum,
    [data-bs-theme="dark"] .tg-title { color: var(--propia-text-h1, #F0F0F5); }
    [data-bs-theme="dark"] .tb-sub,
    [data-bs-theme="dark"] .tb-board-desc,
    [data-bs-theme="dark"] .tb-card-desc,
    [data-bs-theme="dark"] .tb-modal-s,
    [data-bs-theme="dark"] .tb-soon-s { color: var(--propia-text-muted, #8888A0); }

    /* ---- Selector copropiedad + botones neutros de la barra ---- */
    [data-bs-theme="dark"] .tb-cosel-btn,
    [data-bs-theme="dark"] .tb-btn-ghost,
    [data-bs-theme="dark"] .tb-icon-btn,
    [data-bs-theme="dark"] .tcal-nav { background: var(--propia-bg-card, var(--propia-bg-card)); border-color: var(--propia-border-card, var(--propia-border-card)); color: var(--propia-text-body, var(--propia-text-body)); }
    [data-bs-theme="dark"] .tb-cosel-menu { background: var(--propia-bg-card); border-color: var(--propia-border-card); }
    [data-bs-theme="dark"] .tb-cosel-item { color: var(--propia-text-body, var(--propia-text-body)); }
    [data-bs-theme="dark"] .tb-cosel-item:hover:not(:disabled) { background: var(--propia-bg-card-soft); }

    /* ---- Fila-resumen de totales (tema oscuro) ---- */
    [data-bs-theme="dark"] .tb-list-sum { background: #241f3a; border-bottom-color: var(--propia-border-divider); }
    [data-bs-theme="dark"] .tb-sum-total { background: #2a244a; border-top-color: var(--propia-border-card); }
    [data-bs-theme="dark"] .tb-list-sum .tb-lc { color: var(--propia-text-body); }
    [data-bs-theme="dark"] .tb-agg-val { color: var(--propia-text-body); }
    [data-bs-theme="dark"] .tb-agg-btn:hover { background: #34305a; }
    [data-bs-theme="dark"] .tb-agg-menu { background: var(--propia-bg-card); border-color: var(--propia-border-card); }
    [data-bs-theme="dark"] .tb-agg-it { color: #C7C7D6; }
    [data-bs-theme="dark"] .tb-agg-it:hover { background: var(--propia-bg-card-soft); }
    [data-bs-theme="dark"] .tb-gsec-chip { background: var(--propia-bg-card-soft); color: #A8A8BC; }
    [data-bs-theme="dark"] .tb-gsec-chip b { color: var(--propia-text-body); }
    [data-bs-theme="dark"] .tb-glt { background: var(--propia-bg-card-soft); color: #A8A8BC; }
    [data-bs-theme="dark"] .tb-glt b { color: var(--propia-text-body); }

    /* ---- Conmutador de vistas ---- */
    [data-bs-theme="dark"] .tb-modeswitch { background: #1f1f3a; border-color: var(--propia-border-card); }
    [data-bs-theme="dark"] .tb-mode { color: #A8A8BC; }
    [data-bs-theme="dark"] .tb-mode.on { background: #2f2f55; color: #B9A9F5; box-shadow: none; }

    /* ---- Grilla de tableros ---- */
    [data-bs-theme="dark"] .tb-card { background: var(--propia-bg-card); border-color: var(--propia-border-card); box-shadow: none; }
    [data-bs-theme="dark"] .tb-card-edit { background: var(--propia-bg-card); border-color: var(--propia-border-card); color: #8888A0; }
    [data-bs-theme="dark"] .tb-card-count { background: #1f1f3a; border-color: var(--propia-border-card); color: #A8A8BC; }
    [data-bs-theme="dark"] .tb-card-new { background: #1f1f3a; border-color: var(--propia-border-card); color: #8888A0; }

    /* ---- Filtros y menus ---- */
    [data-bs-theme="dark"] .tb-filter,
    [data-bs-theme="dark"] .tb-filter-btn { background: var(--propia-bg-card); border-color: var(--propia-border-card); color: #C7C7D6; }
    [data-bs-theme="dark"] .tb-colsmenu,
    [data-bs-theme="dark"] .tb-menu { background: var(--propia-bg-card); border-color: var(--propia-border-card); }
    [data-bs-theme="dark"] .tb-colsmenu-i,
    [data-bs-theme="dark"] .tb-menu-it { color: var(--propia-text-body); }
    [data-bs-theme="dark"] .tb-colsmenu-i:hover,
    [data-bs-theme="dark"] .tb-menu-it:hover { background: var(--propia-bg-card-soft); }
    [data-bs-theme="dark"] .tb-colsmenu-act { background: var(--propia-bg-card); border-color: var(--propia-border-card); color: #C7C7D6; }

    /* ---- Vista Tablero (Kanban): columnas + tarjetas ---- */
    [data-bs-theme="dark"] .tb-kanban .tb-col,
    [data-bs-theme="dark"] .tb-gsec { background: #1f1f3a; border-color: #33335a; }
    [data-bs-theme="dark"] .tb-col-nom,
    [data-bs-theme="dark"] .tb-gsec-nom { color: var(--propia-text-body); }
    [data-bs-theme="dark"] .tb-col-count { background: var(--propia-bg-card); border-color: var(--propia-border-card); color: #A8A8BC; }
    [data-bs-theme="dark"] .tb-tcard { background: #26264a; border-color: var(--propia-border-card); box-shadow: none; }
    [data-bs-theme="dark"] .tb-tcard-tit { color: #E6E6F0; }
    [data-bs-theme="dark"] .tb-tcard-foot { border-top-color: #33335a; }
    [data-bs-theme="dark"] .tb-tcard-resp { color: #9a9ab2; }
    [data-bs-theme="dark"] .tb-tcard-age { background: var(--propia-bg-card-soft); color: #A8A8BC; }
    [data-bs-theme="dark"] .tb-col-add { border-color: var(--propia-border-card); color: #8888A0; }

    /* ---- Vista Lista (tabla) ---- */
    [data-bs-theme="dark"] .tb-list { background: var(--propia-bg-card); border-color: var(--propia-border-card); }
    [data-bs-theme="dark"] .tb-list-hdr { background: #1f1f3a; border-bottom-color: var(--propia-border-divider); }
    [data-bs-theme="dark"] .tb-list-group { background: #26264a; border-bottom-color: var(--propia-border-divider); }
    [data-bs-theme="dark"] .tb-group-nom { color: var(--propia-text-body); }
    [data-bs-theme="dark"] .tb-row { border-bottom-color: var(--propia-border-divider); }
    [data-bs-theme="dark"] .tb-row:hover { background: var(--propia-bg-card-soft); }
    [data-bs-theme="dark"] .tb-row-child { background: #202038; }
    [data-bs-theme="dark"] .tb-row-t { color: var(--propia-text-body); }
    [data-bs-theme="dark"] .tb-row-resp { color: #A8A8BC; }
    [data-bs-theme="dark"] .tb-row-due,
    [data-bs-theme="dark"] .tb-row-campo,
    [data-bs-theme="dark"] .tb-row-desc-prev { color: #9a9ab2; }
    [data-bs-theme="dark"] .tb-pin,
    [data-bs-theme="dark"] .tb-pin-h { background: var(--propia-bg-card); }
    [data-bs-theme="dark"] .tb-pin-g { background: #26264a; }
    [data-bs-theme="dark"] .tb-prog-bar { background: #33335a; }
    [data-bs-theme="dark"] .tb-editable:hover { background: #2f2f55; border-color: #4a3f78; }
    [data-bs-theme="dark"] .tb-newrow { background: #202038; border-bottom-color: var(--propia-border-divider); }
    [data-bs-theme="dark"] .tb-newrow:focus-within { background: #262648; }
    [data-bs-theme="dark"] .tb-nf-inp { background: var(--propia-bg-card); border-color: var(--propia-border-card); color: var(--propia-text-body); }
    [data-bs-theme="dark"] .tb-cell-inp,
    [data-bs-theme="dark"] .tb-cell-area { background: var(--propia-bg-card); color: #E6E6F0; }
    [data-bs-theme="dark"] .tb-cell-area { box-shadow: 0 12px 32px rgba(0,0,0,.5); }
    [data-bs-theme="dark"] .tb-asig-drop { background: var(--propia-bg-card); border-color: var(--propia-border-card); }
    [data-bs-theme="dark"] .tb-asig-item { background: transparent; color: var(--propia-text-body); }
    [data-bs-theme="dark"] .tb-asig-item:hover,
    [data-bs-theme="dark"] .tb-asig-item.on { background: var(--propia-bg-card-soft); }
    [data-bs-theme="dark"] .tb-orig-tsel,
    [data-bs-theme="dark"] .tb-orig-rsel { background: var(--propia-bg-card); border-color: var(--propia-border-card); color: #C7C7D6; }
    /* Chip de etiqueta editable: fondo transparente para que el color de la etiqueta destaque. */
    [data-bs-theme="dark"] .tb-tag { background: transparent; }
    [data-bs-theme="dark"] .tb-tag-inp { background: var(--propia-bg-card); }
    [data-bs-theme="dark"] .tb-tag-colors { background: var(--propia-bg-card); border-color: var(--propia-border-card); }

    /* ---- Vista Calendario ---- */
    [data-bs-theme="dark"] .tcal { background: var(--propia-bg-card); border-color: var(--propia-border-card); }
    [data-bs-theme="dark"] .tcal-head,
    [data-bs-theme="dark"] .tcal-grid-h,
    [data-bs-theme="dark"] .tcal-whead { border-color: var(--propia-border-divider); }
    [data-bs-theme="dark"] .tcal-grid-h,
    [data-bs-theme="dark"] .tcal-whead { background: #1f1f3a; }
    [data-bs-theme="dark"] .tcal-grid,
    [data-bs-theme="dark"] .tcal-week { background: var(--propia-border-divider); }
    [data-bs-theme="dark"] .tcal-cell,
    [data-bs-theme="dark"] .tcal-wcol { background: var(--propia-bg-card); }
    [data-bs-theme="dark"] .tcal-cell.tcal-out { background: #1f1f3a; }
    [data-bs-theme="dark"] .tcal-cell.tcal-finde { background: #202038; }
    [data-bs-theme="dark"] .tcal-daynum { color: var(--propia-text-body); }
    [data-bs-theme="dark"] .tcal-ev { background: var(--propia-bg-card-soft); color: var(--propia-text-body); }

    /* ---- Vista Gantt ---- */
    [data-bs-theme="dark"] .tg { background: var(--propia-bg-card); border-color: var(--propia-border-card); }
    [data-bs-theme="dark"] .tg-titlebar { border-bottom-color: var(--propia-border-divider); }
    [data-bs-theme="dark"] .tg-head,
    [data-bs-theme="dark"] .tg-head-left { background: #1f1f3a; }
    [data-bs-theme="dark"] .tg-left { background: var(--propia-bg-card); border-right-color: var(--propia-border-divider); }
    [data-bs-theme="dark"] .tg-task-t { color: var(--propia-text-body); }
    [data-bs-theme="dark"] .tg-row { border-bottom-color: var(--propia-border-divider); }
    [data-bs-theme="dark"] .tg-daycol,
    [data-bs-theme="dark"] .tg-cell { border-right-color: var(--propia-border-divider); }

    /* ---- Modales de Tareas (para que no queden en blanco cegador en dark) ---- */
    [data-bs-theme="dark"] .tb-modal,
    [data-bs-theme="dark"] .tbc-modal,
    [data-bs-theme="dark"] .tbcopy { background: var(--propia-bg-card); }
    [data-bs-theme="dark"] .tb-modal-head,
    [data-bs-theme="dark"] .tb-modal-foot,
    [data-bs-theme="dark"] .tbc-foot,
    [data-bs-theme="dark"] .tbc-tabs,
    [data-bs-theme="dark"] .tbcopy-h,
    [data-bs-theme="dark"] .tbcopy-foot { border-color: var(--propia-border-divider); }
    [data-bs-theme="dark"] .tbc-col-act { border-left-color: var(--propia-border-divider); }
    [data-bs-theme="dark"] .tbc-fld > label,
    [data-bs-theme="dark"] .tbc-lbl,
    [data-bs-theme="dark"] .tb-fld label,
    [data-bs-theme="dark"] .tbc-campo-lbl { color: #9a9ab2; }
    [data-bs-theme="dark"] .tbc-tab { color: #A8A8BC; }
    [data-bs-theme="dark"] .tbc-sub-t,
    [data-bs-theme="dark"] .tbc-resp-nm,
    [data-bs-theme="dark"] .tbc-cmt-au,
    [data-bs-theme="dark"] .tbc-cmt-tx,
    [data-bs-theme="dark"] .tbc-log-t { color: var(--propia-text-body); }
    [data-bs-theme="dark"] .tbc-sub,
    [data-bs-theme="dark"] .tbc-resp,
    [data-bs-theme="dark"] .tbc-cmt-body { background: #1f1f3a; border-color: var(--propia-border-card); }
    [data-bs-theme="dark"] .tbc-msg-au,
    [data-bs-theme="dark"] .tbc-bubble-tx { color: var(--propia-text-body); }
    [data-bs-theme="dark"] .tbc-bubble { background: #33301f; border-color: #524b2e; }
    [data-bs-theme="dark"] .tbc-bubble-tx { color: #E6E1CE; }
    [data-bs-theme="dark"] .tbc-msg.mine .tbc-bubble { background: #1f2a44; border-color: #33456e; }
    [data-bs-theme="dark"] .tbc-msg.mine .tbc-bubble .tbc-bubble-tx { color: #DCE6F5; }
    [data-bs-theme="dark"] .tbc-msg.mine .tbc-msg-au { color: #9db8f0; }
    [data-bs-theme="dark"] .tbc-daysep span { background: #24243f; color: #9aa8bd; }
    [data-bs-theme="dark"] .tb-fld input,
    [data-bs-theme="dark"] .tb-fld select,
    [data-bs-theme="dark"] .tb-fld textarea,
    [data-bs-theme="dark"] .tbc-fld input,
    [data-bs-theme="dark"] .tbc-fld select,
    [data-bs-theme="dark"] .tbc-fld textarea,
    [data-bs-theme="dark"] .tbc-campo input,
    [data-bs-theme="dark"] .tbc-campo select,
    [data-bs-theme="dark"] .tbc-campo textarea,
    [data-bs-theme="dark"] .tbc-act-input,
    [data-bs-theme="dark"] .tbc-sub-add input,
    [data-bs-theme="dark"] .tbc-tag-add input,
    [data-bs-theme="dark"] .tbc-resp-add select,
    [data-bs-theme="dark"] .tbcfg-in,
    [data-bs-theme="dark"] .tbfld-pop .tbcfg-in { background: #1f1f3a; border-color: var(--propia-border-card); color: #E6E6F0; }
    [data-bs-theme="dark"] .tbc-tag { background: #1f1f3a; border-color: var(--propia-border-card); color: #C7C7D6; }
    [data-bs-theme="dark"] .tbfld-pop { background: var(--propia-bg-card); border-color: var(--propia-border-card); }
    [data-bs-theme="dark"] .tbfld-pop::before { background: var(--propia-bg-card); border-color: var(--propia-border-card); }
    [data-bs-theme="dark"] .tbfld-pop-h { color: #F0F0F5; border-bottom-color: var(--propia-border-divider); }

    /* Movil: reduce el padding lateral de la raiz para ganar ancho util. */
    @media (max-width: 640px) { .tb-wrap { padding-left: 12px; padding-right: 12px; } }

/* ---- (segundo bloque: config de columnas / invitacion) ---- */
    /* Config de columnas editable + invitacion cross-tenant + espejo */
    .tbcfg-dot-btn { border: 0; cursor: pointer; padding: 0; width: 14px; height: 14px; border-radius: 50%; }
    .tbcfg-est-nom-edit { cursor: pointer; }
    .tbcfg-est-nom-edit:hover { text-decoration: underline dotted; }
    .tbcfg-est-inp { border: 1px solid #D9D2F6; border-radius: 7px; padding: 3px 8px; font-size: 13px; min-width: 140px; }
    .tbcfg-ord { display: inline-flex; gap: 2px; margin-left: 6px; }
    .tbcfg-ordbtn { border: 0; background: transparent; color: #9AABBE; cursor: pointer; font-size: 10px; padding: 2px 4px; border-radius: 5px; line-height: 1; }
    .tbcfg-ordbtn:hover { background: var(--propia-brand-soft); color: var(--propia-brand); }
    .tbcfg-ordbtn:disabled { opacity: .3; cursor: default; }
    .tbcfg-cross { display: flex; align-items: center; gap: 7px; font-size: 12px; color: var(--propia-text-muted); margin-bottom: 6px; cursor: pointer; }
    .tbcfg-cross input { accent-color: var(--propia-brand); }
    .tb-copro-chip { display: inline-flex; align-items: center; font-size: 10px; font-weight: 800; background: var(--propia-brand-soft); color: var(--propia-brand); border-radius: 9px; padding: 1px 8px; margin-bottom: 5px; white-space: nowrap; max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
    .tbcfg-copro-chip { margin-left: auto; font-size: 10.5px; font-weight: 700; background: var(--propia-brand-soft); color: var(--propia-brand); border-radius: 10px; padding: 2px 8px; white-space: nowrap; }
    .tbcfg-porcorreo { margin-top: 12px; padding-top: 12px; border-top: 1px dashed var(--propia-border-card); }
    .tbcfg-porcorreo-lbl { display: block; font-size: 11.5px; color: var(--propia-text-muted); font-weight: 600; margin-bottom: 6px; }
    .tbcfg-porcorreo-row { display: flex; gap: 8px; align-items: center; }
    .tbcfg-porcorreo-row .tb-input { flex: 1; min-width: 0; }
    .tbcfg-porcorreo-msg { margin-top: 7px; font-size: 12px; padding: 7px 10px; border-radius: 8px; }
    .tbcfg-porcorreo-msg.ok { background: var(--propia-ok-soft); color: #1B7A44; }
    .tbcfg-porcorreo-msg.err { background: var(--propia-danger-soft); color: #B02121; }
