/* DUOVOX_VISUAL_2310_V1. Solo componentes auditados; sin ocultar módulos. */
html body[data-duovox-visual] {
  --dv-surface:#fff; --dv-surface-alt:#eef3f7; --dv-ink:#19354b;
  --dv-muted:#526578; --dv-border:#c5d4df; --dv-teal:#086f69;
  --dv-blue:#315ca8; --dv-first:#e9f5f2;
}
html[data-lc-theme=dark] body[data-duovox-visual] {
  --dv-surface:#182334; --dv-surface-alt:#25364a; --dv-ink:#e7edf6;
  --dv-muted:#b6c6d9; --dv-border:#61748e; --dv-teal:#77d9c9;
  --dv-blue:#a8c4ff; --dv-first:#203d3c;
}
/* Ranking y objetivos: fondos y texto cambian juntos. */
html body[data-duovox-visual] .rk-page {max-width:100%;min-width:0;color:var(--dv-ink)!important}
html body[data-duovox-visual] .rk-page :is(.rk-toolbar,.rk-goal,.rk-table-wrap,.rk-config-card,.rk-empty) {background:var(--dv-surface)!important;color:var(--dv-ink)!important;border-color:var(--dv-border)!important}
html body[data-duovox-visual] .rk-page :is(.rk-period h2,.rk-totals strong,.rk-goal h3,.rk-goal-numbers strong,.rk-config-card h2,.rk-person strong,.rk-table td) {color:var(--dv-ink)!important}
html body[data-duovox-visual] .rk-page :is(label,.rk-period,.rk-goal-head,.rk-goal p,.rk-goal-numbers small,.rk-totals span,.rk-person small,.rk-legend,.rk-reactions small,.rk-method,.rk-config-card>p,.rk-empty p) {color:var(--dv-muted)!important}
html body[data-duovox-visual] .rk-page :is(input,select,textarea) {background:var(--dv-surface)!important;color:var(--dv-ink)!important;border-color:var(--dv-border)!important;color-scheme:light;max-width:100%;min-width:0}
html[data-lc-theme=dark] body[data-duovox-visual] .rk-page :is(input,select,textarea){color-scheme:dark}
html body[data-duovox-visual] .rk-page :is(.rk-tabs,.rk-bar,.rk-avatar) {background:var(--dv-surface-alt)!important;color:var(--dv-ink)!important}
html body[data-duovox-visual] .rk-tabs a {color:var(--dv-ink)!important}
html body[data-duovox-visual] .rk-tabs a[aria-current] {background:#17486a!important;color:#fff!important}
html body[data-duovox-visual] .rk-table th {background:var(--dv-surface-alt)!important;color:var(--dv-ink)!important;font-size:14px!important;font-weight:750!important}
html body[data-duovox-visual] .rk-table :is(th,td) {border-color:var(--dv-border)!important}
html body[data-duovox-visual] .rk-table .rk-first > td {background:var(--dv-first)!important;color:var(--dv-ink)!important}
html body[data-duovox-visual] .rk-page :is(.rk-goal-numbers>span,.rk-porta-label,.rk-operation-counts span:first-child,.rk-reactions summary>span) {color:var(--dv-teal)!important}
html body[data-duovox-visual] .rk-page :is(.rk-fibra-label,.rk-operation-counts span:last-child) {color:var(--dv-blue)!important}
html body[data-duovox-visual] .rk-reactions :is(summary,button) {color:var(--dv-ink)!important;background:var(--dv-surface)!important;border-color:var(--dv-border)!important}
html body[data-duovox-visual] .rk-emoji-grid button[aria-pressed=true] {background:var(--dv-first)!important;border:2px solid var(--dv-teal)!important}
html body[data-duovox-visual] .rk-emoji-grid [data-count] {color:var(--dv-ink)!important}
html body[data-duovox-visual] .rk-page .rk-notice {background:#e9f6ef!important;color:#186741!important}
html body[data-duovox-visual] .rk-page .rk-error {background:#fff0f0!important;color:#a42d3a!important}
html[data-lc-theme=dark] body[data-duovox-visual] .rk-page .rk-notice {background:#203d3c!important;color:#b0efd8!important}
html[data-lc-theme=dark] body[data-duovox-visual] .rk-page :is(.rk-error,.rk-reactions [role=status]) {background:#472b36!important;color:#ffd2d8!important}
html body[data-duovox-visual] .rk-table-wrap {max-width:100%;scrollbar-width:auto}
html body[data-duovox-visual] .rk-config-card {max-width:900px;box-sizing:border-box}
html body[data-duovox-visual] .rk-hero {flex-wrap:wrap}
/* Captación: no se habilitan tarjetas ni rutas. */
html body[data-duovox-visual] .dv-capture .dv-capture-card {background:var(--dv-surface)!important;color:var(--dv-ink)!important;border-color:var(--dv-border)!important;border-top-color:var(--dv-teal)!important;min-width:0}
html body[data-duovox-visual] .dv-capture-card :is(h2,p,b) {color:var(--dv-ink)!important}
html body[data-duovox-visual] .dv-capture-card p.muted {color:var(--dv-muted)!important}
html body[data-duovox-visual] .dv-capture .dv-capture-unavailable {background:var(--dv-surface-alt)!important;border-top-color:var(--dv-border)!important}
html body[data-duovox-visual] .dv-capture-card button:disabled,
html body[data-duovox-visual] .dv-attendance-2310 button:disabled {background:var(--dv-surface-alt)!important;color:var(--dv-muted)!important;border:1px solid var(--dv-border)!important;box-shadow:none!important;cursor:not-allowed!important;filter:none!important;opacity:1!important}
/* Mesa y torres: cada control puede saltar a la siguiente fila. */
html body[data-duovox-visual] .lc-datero-filter-card > div[style*="grid-template-columns"],
html body[data-duovox-visual] #lc-tower-filters-2110 .st-filters {display:grid!important;grid-template-columns:repeat(auto-fit,minmax(min(100%,165px),1fr))!important;gap:12px!important;align-items:end!important}
html body[data-duovox-visual] .lc-datero-filter-card > div[style*="grid-template-columns"] > *,
html body[data-duovox-visual] #lc-tower-filters-2110 .st-filters > * {min-width:0!important;max-width:100%!important}
html body[data-duovox-visual] .lc-datero-filter-card :is(input:not([type=hidden]),select),
html body[data-duovox-visual] #lc-tower-filters-2110 :is(input:not([type=hidden]),select) {width:100%!important;min-width:0!important;max-width:100%!important;min-height:40px!important;font-size:14px!important;box-sizing:border-box!important}
html body[data-duovox-visual] .lc-datero-filter-card :is(label,.btn) {font-size:13px!important;line-height:1.35!important}
html body[data-duovox-visual] .lc-datero-filter-card .btn {min-height:38px!important;white-space:normal!important;box-sizing:border-box}
html body[data-duovox-visual] :is(.st-card,.st-filter-card,.lc-datero-filter-card,.lc-mesa-0710-menu,.st-head,.panel-ventas,.nps-page) {min-width:0;max-width:100%;box-sizing:border-box}
html body[data-duovox-visual] .lc-mesa-0710-selector {min-width:0;max-width:100%}
html body[data-duovox-visual] .lc-mesa-0710-selector select {min-width:0!important;max-width:100%!important}
/* No se ocultan columnas. La identidad sigue visible al desplazar la tabla. */
html body[data-duovox-visual] .st-table-wrap {max-width:100%;overflow:auto;scrollbar-width:auto;isolation:isolate}
html body[data-duovox-visual] .st-table {min-width:1280px!important;width:100%;table-layout:auto;overflow:visible!important}
html body[data-duovox-visual] .st-table thead th {white-space:normal!important;font-size:14px!important;font-weight:800!important;line-height:1.3!important;padding:10px 7px!important;background:var(--dv-surface-alt)!important;color:var(--dv-ink)!important}
html body[data-duovox-visual] .st-table tbody td {font-size:15px!important;font-weight:650!important;line-height:1.3!important;padding:9px 7px!important;vertical-align:middle}
html body[data-duovox-visual] .st-table tbody .st-metric-link {font-size:15px!important;font-weight:750!important}
html body[data-duovox-visual] .st-table :is(th,td):first-child {position:sticky;left:0;z-index:2;background:var(--dv-surface)!important;min-width:170px;max-width:225px;white-space:normal;box-shadow:2px 0 0 var(--dv-border)}
html body[data-duovox-visual] .st-table thead th:first-child {z-index:3;background:var(--dv-surface-alt)!important}
html body[data-duovox-visual] .st-table .st-name {white-space:normal!important;overflow-wrap:anywhere}
html body[data-duovox-visual] .dv-scroll-help {font-size:13px;color:var(--dv-muted);line-height:1.5;margin:9px 0}
html body[data-duovox-visual] :is(.st-table-wrap,.rk-table-wrap,.panel-tabla-contenedor,.nps-table-wrap):focus-visible {outline:3px solid #2a9fb3;outline-offset:3px}
/* Gráficos: dos paneles legibles; las leyendas no se recortan. */
html body[data-duovox-visual] .st-analytics-panel .st-a-grid:not(.st-a-kpis) {grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr))!important;gap:14px!important}
html body[data-duovox-visual] .st-analytics-panel .st-a-kpis {grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr))!important;gap:12px!important}
html body[data-duovox-visual] .st-analytics-panel .st-a-card {min-height:280px;max-height:none!important;padding:14px!important;overflow:visible!important}
html body[data-duovox-visual] .st-analytics-panel .st-a-body {height:auto!important;max-height:340px!important;min-height:190px;overflow:auto!important;padding-top:12px!important}
html body[data-duovox-visual] :is(.st-analytics-panel,.st-chart-modal) .st-a-label,
html body[data-duovox-visual] :is(.st-analytics-panel,.st-chart-modal) .st-a-pair-title span {white-space:normal!important;overflow-wrap:anywhere;text-overflow:clip!important;line-height:1.4!important}
html body[data-duovox-visual] .st-analytics-panel :is(.st-a-bar,.st-a-pair-title,.st-a-source-row,.st-a-empty) {font-size:13px!important;line-height:1.4!important}
html body[data-duovox-visual] .st-analytics-panel .st-a-bar {grid-template-columns:minmax(90px,1.2fr) minmax(45px,1fr) max-content!important;gap:8px!important;min-height:32px!important}
html body[data-duovox-visual] .st-analytics-panel .st-a-card-head {min-height:52px;flex-wrap:wrap}
html body[data-duovox-visual] .st-analytics-panel .st-a-card-head strong {font-size:15px!important}
html body[data-duovox-visual] .st-analytics-panel :is(.st-a-card-head span,.st-a-legend span,.st-a-copy small,.st-a-copy span,.st-a-pair-line,.st-analytics-expand-help,.st-analytics-title span) {font-size:12px!important;opacity:1!important;color:var(--dv-muted)!important;white-space:normal!important}
html body[data-duovox-visual] .st-analytics-panel .st-a-copy strong {white-space:normal!important;overflow-wrap:anywhere}
html body[data-duovox-visual] .st-analytics-panel .st-a-pair-line {grid-template-columns:18px minmax(0,1fr) 40px!important;min-height:22px}
html body[data-duovox-visual] .st-analytics-panel .st-a-donut-layout {display:grid!important;grid-template-columns:minmax(0,1fr)!important;height:auto!important;gap:14px!important}
html body[data-duovox-visual] .st-analytics-panel .st-a-donut-wrap {width:145px!important;max-width:100%;margin:8px auto!important}
html body[data-duovox-visual] :is(.st-analytics-panel,.st-chart-modal) .st-a-source-legend {min-width:0;max-width:100%;width:100%;overflow:visible!important}
html body[data-duovox-visual] :is(.st-analytics-panel,.st-chart-modal) .st-a-source-row {grid-template-columns:10px minmax(0,1fr) minmax(65px,auto)!important;gap:8px!important;padding:5px 0}
html body[data-duovox-visual] :is(.st-analytics-panel,.st-chart-modal) .st-a-source-row span {white-space:normal!important;overflow-wrap:anywhere;text-overflow:clip!important;overflow:visible!important}
html body[data-duovox-visual] .st-analytics-panel .st-a-donut-center span {font-size:12px!important;opacity:1!important;color:var(--dv-muted)!important}
/* Ventas: texto operativo legible; conservar barra horizontal existente. */
html body[data-duovox-visual] .panel-ventas {max-width:100%!important}
html body[data-duovox-visual] .panel-tabla {font-size:13px!important}
html body[data-duovox-visual] .panel-tabla th {font-size:13px!important;line-height:1.35!important;white-space:normal!important;font-weight:750!important;padding:10px 8px!important}
html body[data-duovox-visual] .panel-tabla td {font-size:13px!important;padding:8px!important;line-height:1.4!important}
html body[data-duovox-visual] .panel-tabla :is(.panel-secundario,.panel-estado-general,.panel-estado,.panel-acciones-fila .btn) {font-size:12px!important;line-height:1.4!important}
html body[data-duovox-visual] .panel-tabla-contenedor {max-width:100%;scrollbar-width:auto}
/* NPS: Desde/Hasta permanecen juntos. */
html body[data-duovox-visual] .nps-page .nps-filters > .dv-nps-dates {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;flex:0 1 370px;min-width:min(100%,300px);max-width:100%}
html body[data-duovox-visual] .dv-nps-dates > div {min-width:0}
@media(max-width:650px) {
 html body[data-duovox-visual] .st-table :is(th,td):first-child {min-width:125px;max-width:160px}
 html body[data-duovox-visual] .nps-page .nps-filters > div {flex-basis:100%!important}
 html body[data-duovox-visual] .rk-filters > label {min-width:0;flex:1 1 140px}
}

html body[data-duovox-visual] :is(.st-analytics-panel,.st-chart-modal) .st-a-source-stat {min-width:0!important;padding-left:0!important;font-size:13px!important;opacity:1!important}
html body[data-duovox-visual] .st-chart-modal-body .st-a-donut-layout {grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))!important;gap:20px!important}

html body[data-duovox-visual] .st-table .st-name {font-size:15px!important;font-weight:750!important}
