/* ==========================================================
   CRM - TEMA CLARO

   Se enciende con data-tema="claro" en <html>. Lo pone
   js/apariencia.js antes del primer pintado, asi que no hay
   destello oscuro al cargar.

   COMO ESTA ARMADO
   Casi todo sale de redefinir las mismas variables que usa el
   tema oscuro: si una regla dice var(--surf-1), cambia sola.
   Lo que hay abajo de las variables son los lugares donde el
   proyecto tenia el color escrito a mano —blancos con alfa
   usados como borde, sombras negras, textos en #fff— que una
   variable no alcanza.

   NI EL FONDO NI LAS TARJETAS SON BLANCOS
   El lienzo es #e8eaf0, un gris tranquilo, y las tarjetas
   #f8f9fb, casi blanco pero no del todo. Ningun pixel de la
   pantalla es #ffffff.

   La primera version dejaba el fondo en #f4f5f8 y las tarjetas
   en blanco puro: la diferencia entre los dos era de cuatro
   puntos y la pantalla entera brillaba. Ahora hay dieciseis
   puntos de separacion, asi que se ve mejor donde termina una
   tarjeta y empieza la otra, y ademas cansa menos la vista.

   EL ACENTO
   El color de acento lo elige cada uno y varios de los ocho
   son claros. Sobre blanco, un verde menta al 100% no se lee.
   Para TEXTO se usa --acento-legible, que es el mismo color
   mezclado con negro; los rellenos y los bordes siguen usando
   el acento tal cual, porque ahi no hay que leer nada.
   ========================================================== */

html[data-tema="claro"] {
    color-scheme: light;

    --bg-main: #e8eaf0;
    --bg-surface: #f8f9fb;
    --bg-card: #f8f9fb;

    /* --surf-0 es el LIENZO, no una tarjeta: ui.css lo usa para
       pintar <html>. En el tema oscuro es un escalon mas claro que
       --bg-main porque ahi las superficies suben hacia la luz; en
       claro tiene que ir para el otro lado, o el fondo queda blanco
       puro y las tarjetas —que si son blancas— desaparecen contra
       el. Es el "blanco casi opaco" que se pidio. */
    --surf-0: #e8eaf0;
    --surf-1: #f8f9fb;
    --surf-2: #dfe2ea;
    --surf-3: #d3d7e1;

    /* Los bordes bajan con las superficies: sobre un fondo mas gris,
       el borde de antes casi no se veia. */
    --border-color: #d2d7e1;
    --borde-fuerte: #bcc2cf;
    --borde-luz: rgba(16, 20, 30, 0.10);

    --text-main: #14161c;
    --text-secondary: #3d434f;
    --text-muted: #5b6272;
    /* El gris mas apagado no puede ser tan claro como su equivalente
       oscuro. Sobre negro, #5c5c66 se lee porque el fondo es casi
       negro; sobre blanco hace falta bajar bastante mas para llegar
       al mismo contraste. Con el valor "espejo" (#878e9e) los
       rotulos de la grilla quedaban en 2.9 a 1. */
    --text-dim: #6e7585;

    /* El acento ya viene oscurecido para este tema: lo hace
       js/apariencia.js al pintarlo, porque el color se usa como
       texto en unas ciento cuarenta reglas y parchearlas una por
       una era imposible. Este alias queda para las pocas reglas
       de abajo que necesitan nombrarlo. */
    --acento-legible: var(--primary);

    /* Las sombras del tema oscuro son negro puro con alfa alto:
       sobre blanco eso es una mancha gris. Bajan a un azul muy
       oscuro con poca opacidad, que es como cae la luz en una
       interfaz clara. */
    --elev-1: 0 1px 2px rgba(16, 20, 30, 0.06);
    --elev-2: 0 2px 8px rgba(16, 20, 30, 0.07);
    --elev-3: 0 8px 24px rgba(16, 20, 30, 0.10);
}

/* ==========================================================
   1. LA BASE
   ========================================================== */

html[data-tema="claro"],
html[data-tema="claro"] body {
    background: var(--bg-main);
    color: var(--text-main);
}

/* index.css y legibilidad.css pintan el lienzo en oscuro con
   !important y sin pasar por variables. */
html[data-tema="claro"] body,
html[data-tema="claro"] #app-container,
html[data-tema="claro"] #crm-workspace,
html[data-tema="claro"] #crm-workspace:not(.hidden) {
    background-color: var(--bg-main) !important;
    color: var(--text-main);
}

/* --- LA IMAGEN DE FONDO EN TEMA CLARO -----------------------
   En claro no se podia poner foto de fondo: se elegia, quedaba
   guardada, y no se veia nada.

   La capa #fondo-imagen es fija y vive en z-index -2, o sea que
   se pinta ARRIBA del fondo de <html> pero DEBAJO del fondo de
   <body>. En el tema oscuro eso no molesta porque ajustes.css
   deja body y #crm-workspace transparentes; la regla de arriba,
   que existe para tapar los lienzos oscuros escritos a mano en
   index.css y legibilidad.css, le ganaba por especificidad y
   volvia a pintar el gris opaco encima de la foto.

   Con foto elegida —html.con-fondo-propio, que lo pone
   js/apariencia.js— esos tres contenedores se vuelven
   transparentes. La legibilidad la sigue sosteniendo el velo de
   #fondo-imagen::after, que en claro es del color del lienzo.

   EL VIDEO ES EL MISMO CASO Y SE HABIA QUEDADO AFUERA.
   El fondo animado (js/fondo-video.js) no usa #fondo-imagen ni
   marca .con-fondo-propio: prende su propia capa y marca
   .con-fondo-video. Como esta lista solo nombraba a la clase de
   la foto, en claro el video se guardaba, se reproducia detras
   —gastando decode— y no se veia un solo cuadro: el gris del
   lienzo lo tapaba entero. Por eso "en claro no se puede poner
   video". Las dos clases valen igual, van juntas. */
html[data-tema="claro"].con-fondo-propio body,
html[data-tema="claro"].con-fondo-propio #app-container,
html[data-tema="claro"].con-fondo-propio #crm-workspace,
html[data-tema="claro"].con-fondo-propio #crm-workspace:not(.hidden),
html[data-tema="claro"].con-fondo-propio #crm-main-content,
html[data-tema="claro"].con-fondo-propio .tab-content:not(.hidden),
html[data-tema="claro"].con-fondo-video body,
html[data-tema="claro"].con-fondo-video #app-container,
html[data-tema="claro"].con-fondo-video #crm-workspace,
html[data-tema="claro"].con-fondo-video #crm-workspace:not(.hidden),
html[data-tema="claro"].con-fondo-video #crm-main-content,
html[data-tema="claro"].con-fondo-video .tab-content:not(.hidden) {
    background-color: transparent !important;
}

/* El header y el panel lateral son vidrio (ver la regla de
   `.top-navbar, .main-tabs` en ajustes.css) en los dos temas por
   igual: aca ya no hace falta pisarlos con un color solido, solo
   corregir el texto para que siga legible sobre un fondo claro. */
html[data-tema="claro"] .top-navbar,
html[data-tema="claro"] .main-tabs {
    color: var(--text-main);
}

/* El matiz translucido del panel lateral (oscuro para grafito,
   blanco para esta paleta) esta en rendimiento.css, que carga
   despues de esta hoja y es la que de verdad se aplica. */

/* ==========================================================
   2. SUPERFICIES

   Todo lo que en oscuro era "una caja un escalon mas clara que
   el fondo" en claro es al reves: la caja es blanca y el fondo
   el que esta apagado. El velo translucido de los paneles de
   vidrio se saca: sobre claro deja un gris sucio.
   ========================================================== */

html[data-tema="claro"] .glass-panel,
html[data-tema="claro"] .metric-card,
html[data-tema="claro"] .resumen-item,
html[data-tema="claro"] .chart-card,
html[data-tema="claro"] .dashboard-card,
html[data-tema="claro"] .users-container,
html[data-tema="claro"] .pool-container,
html[data-tema="claro"] .bitacora-panel,
html[data-tema="claro"] .chat-panel,
html[data-tema="claro"] .barra-filtros,
html[data-tema="claro"] .stat-card,
html[data-tema="claro"] .custom-table {
    background: var(--surf-1) !important;
    border-color: var(--border-color) !important;
    color: var(--text-main);
    box-shadow: var(--elev-1) !important;
}

/* Las tarjetas anidadas no vuelven a pintar de blanco sobre
   blanco: se quedan sin fondo, como en oscuro. */
html[data-tema="claro"] .glass-panel .glass-panel,
html[data-tema="claro"] .glass-panel .metric-card,
html[data-tema="claro"] .glass-panel .resumen-item {
    background: transparent !important;
    box-shadow: none !important;
}

/* Modales y globos: blancos, con la sombra suave. */
html[data-tema="claro"] .modal-content,
html[data-tema="claro"] .modal-box,
html[data-tema="claro"] #ap-panel,
html[data-tema="claro"] .avisos-panel,
html[data-tema="claro"] .dialogo-caja,
html[data-tema="claro"] .picker-pop {
    background: var(--surf-1) !important;
    border-color: var(--borde-fuerte) !important;
    color: var(--text-main);
    box-shadow: var(--elev-3) !important;
}

/* El telon de fondo de los modales es negro al 45%: sobre una
   interfaz clara tapa de mas. */
html[data-tema="claro"] .modal-overlay,
html[data-tema="claro"] .chat-fondo,
html[data-tema="claro"] .dialogo-fondo {
    background: rgba(16, 20, 30, 0.28) !important;
}

/* ==========================================================
   3. TEXTO

   Los tres grises del tema oscuro salen de las variables y no
   hace falta tocarlos. Lo que si hay que corregir es el texto
   escrito en blanco a mano, que sobre blanco desaparece.
   ========================================================== */

html[data-tema="claro"] h1,
html[data-tema="claro"] h2,
html[data-tema="claro"] h3,
html[data-tema="claro"] h4,
html[data-tema="claro"] h5,
html[data-tema="claro"] .metric-value,
html[data-tema="claro"] .fila-nombre,
html[data-tema="claro"] .user-name {
    color: var(--text-main) !important;
}

/* Los titulos y numeros del acento: mismo color, mas oscuro. */
html[data-tema="claro"] .tab-btn.active,
html[data-tema="claro"] .section-head h2 i,
html[data-tema="claro"] .contactar-titulo i,
html[data-tema="claro"] .grid-th.ordenando,
html[data-tema="claro"] .grid-th.ordenable:hover,
html[data-tema="claro"] a:not(.btn) {
    color: var(--acento-legible) !important;
}

/* ==========================================================
   4. CONTROLES
   ========================================================== */

html[data-tema="claro"] input,
html[data-tema="claro"] select,
html[data-tema="claro"] textarea,
html[data-tema="claro"] .select-field {
    background: var(--surf-1) !important;
    border-color: var(--border-color) !important;
    color: var(--text-main) !important;
}

/* El buscador es la caja, no el campo. El fondo, el borde y las
   esquinas redondeadas los pone el <div class="buscador">; el <input>
   de adentro va transparente.

   Cuando el input traia fondo propio quedaba un rectangulo recto
   pintado encima de un contenedor redondeado, y las cuatro esquinas
   se veian asomar por debajo de la curva. Parecia que la caja se
   desbordaba y en realidad eran dos fondos peleandose. */
html[data-tema="claro"] .buscador input {
    background: transparent !important;
    border: none !important;
}

html[data-tema="claro"] input::placeholder,
html[data-tema="claro"] textarea::placeholder {
    color: var(--text-dim) !important;
}

html[data-tema="claro"] input:focus,
html[data-tema="claro"] select:focus,
html[data-tema="claro"] textarea:focus {
    border-color: var(--primary) !important;
    box-shadow: 0 0 0 3px rgba(var(--acento-rgb), 0.18) !important;
}

/* Los botones de icono y los secundarios eran "un blanco al 4%
   sobre negro". Sobre claro ese blanco es invisible. */
html[data-tema="claro"] .btn-icon,
html[data-tema="claro"] .btn-icono,
html[data-tema="claro"] .btn-secondary,
html[data-tema="claro"] .btn-fila {
    background: var(--surf-2) !important;
    border-color: var(--border-color) !important;
    color: var(--text-muted) !important;
}

html[data-tema="claro"] .btn-icon:hover,
html[data-tema="claro"] .btn-icono:hover,
html[data-tema="claro"] .btn-secondary:hover,
html[data-tema="claro"] .btn-fila:hover {
    background: var(--surf-3) !important;
    color: var(--text-main) !important;
}

/* El boton principal se queda con el acento de fondo, pero el
   texto encima tiene que contrastar con EL, no con la pagina.
   Con acentos claros (menta, lima) el blanco no alcanza. */
html[data-tema="claro"] .btn-primary-3d,
html[data-tema="claro"] .btn-primary {
    color: #05140e !important;
}

/* ==========================================================
   5. BLANCOS CON ALFA

   El proyecto usa rgba(255,255,255,.04-.09) para tres cosas:
   separar filas, marcar el hover y dibujar el borde superior
   de una caja. Las tres se apoyan en que el fondo es oscuro.
   Se invierten a negro con el mismo peso visual.
   ========================================================== */

html[data-tema="claro"] .grid-fila {
    border-bottom-color: rgba(16, 20, 30, 0.07) !important;
}

html[data-tema="claro"] .grid-head {
    background: var(--surf-2) !important;
    border-bottom-color: var(--border-color) !important;
    box-shadow: none !important;
}

html[data-tema="claro"] .main-tabs .tab-btn:hover:not(.active),
html[data-tema="claro"] .custom-table tbody tr:hover,
html[data-tema="claro"] .lead-row:hover {
    background: rgba(16, 20, 30, 0.045) !important;
}

html[data-tema="claro"] .triage-chip {
    /* Contra la superficie y no contra blanco puro: si no, el chip
       queda mas brillante que la tarjeta que lo contiene. */
    background: color-mix(in srgb, var(--triage-color, #5b6272) 16%, var(--surf-1)) !important;
    color: color-mix(in srgb, var(--triage-color, #5b6272) 72%, #05070c) !important;
}

/* ==========================================================
   6. LA MARCA

   El logotipo son dos mascaras: una pintada de blanco y otra
   del acento. La blanca sobre fondo claro no existe. Pasa a
   ser casi negra, que es como se imprime la marca en papel.
   ========================================================== */

html[data-tema="claro"] .marca-nombre__blanco,
html[data-tema="claro"] .marca-iso__blanco {
    background: #14161c;
}

/* El resplandor del isotipo era para que no quedara plano
   sobre negro. Sobre blanco es una mancha. */
html[data-tema="claro"] .marca-iso__acento {
    filter: none;
}

/* La marca de agua del fondo es el logo al 3% en blanco: sobre
   claro no se ve, y subirle la opacidad lo unico que hace es
   ensuciar. Se apaga. */
html[data-tema="claro"] .watermark-logo-glow-wrapper {
    display: none !important;
}

/* ==========================================================
   7. LOS FONDOS ANIMADOS

   Las cuatro tramas estan dibujadas en blanco o en acento
   sobre negro. En claro se invierten: la trama pasa a ser
   oscura y baja de intensidad, porque sobre blanco el mismo
   contraste se ve el doble.

   La lluvia de codigo es un canvas y no se puede alcanzar
   desde aca: los colores se los da js/fondo.js, que lee el
   tema (ver `tonos()`).
   ========================================================== */

html[data-tema="claro"][data-fondo="puntos"] body::before {
    background-image: radial-gradient(rgba(16, 20, 30, 0.075) 1px, transparent 1px);
}

html[data-tema="claro"][data-fondo="malla"] body::before {
    background-image:
        linear-gradient(rgba(var(--acento-rgb), 0.085) 1px, transparent 1px),
        linear-gradient(90deg, rgba(var(--acento-rgb), 0.085) 1px, transparent 1px);
}

/* El orbe de luz del fondo es un resplandor del acento pensado
   para brillar en la oscuridad. Sobre blanco queda como una
   mancha de color: se baja a un velo. */
html[data-tema="claro"] #ambient-background-glow::before {
    opacity: 0.18 !important;
}

/* ==========================================================
   8. BARRAS DE DESPLAZAMIENTO
   ========================================================== */

html[data-tema="claro"] ::-webkit-scrollbar-track {
    background: var(--surf-2);
}

html[data-tema="claro"] ::-webkit-scrollbar-thumb {
    background: #c4cad6;
    border-radius: 8px;
}

html[data-tema="claro"] ::-webkit-scrollbar-thumb:hover {
    background: #aab2c2;
}

/* ==========================================================
   9. EL PANEL LATERAL

   Hereda casi todo de las variables. Lo unico propio es la
   pastilla de la seccion activa: el lavado del acento al 12%
   sobre negro se ve; sobre blanco hay que subirlo.
   ========================================================== */

html[data-tema="claro"].nav-lateral body .main-tabs .tab-btn.active {
    background: rgba(var(--acento-rgb), 0.16) !important;
    color: var(--acento-legible) !important;
}

html[data-tema="claro"].nav-lateral body .grid-consultas .grid-fila {
    background:
        linear-gradient(180deg,
            color-mix(in srgb, var(--estado-color, var(--primary)) 12%, transparent) 0%,
            transparent 60%),
        var(--surf-1);
    box-shadow: var(--elev-1);
}

/* El globo de la seccion, con el panel plegado. */
html[data-tema="claro"].nav-lateral.nav-plegada body .main-tabs .tab-btn::before {
    background: #14161c;
    border-color: #14161c;
    color: #ffffff;
}


/* ==========================================================
   EL CHAT

   La burbuja propia se pintaba mezclando el acento con #101014
   —un negro escrito a mano— asi que en claro quedaba oscura, y
   el texto de adentro hereda --text-main, que en claro es casi
   negro. Negro sobre negro: el mensaje propio no se leia.

   Aca la burbuja propia se mezcla contra la superficie clara,
   como la ajena, pero con bastante mas acento para que igual se
   distinga de un vistazo quien dijo que.
   ========================================================== */

html[data-tema="claro"] .chat-msj.mio .chat-burbuja {
    background: color-mix(in srgb, var(--primary) 22%, var(--surf-1)) !important;
    color: var(--text-main) !important;
}

html[data-tema="claro"] .chat-burbuja,
html[data-tema="claro"] .chat-burbuja p,
html[data-tema="claro"] .chat-msj.mio .chat-burbuja p {
    color: var(--text-main) !important;
}

/* La hora estaba en un gris clarito pensado para fondo oscuro:
   sobre la burbuja clara desaparecia. */
html[data-tema="claro"] .chat-burbuja time {
    color: rgba(20, 22, 28, 0.45) !important;
}

/* La sombra negra al 35% sobre fondo claro se ve como suciedad
   alrededor de cada burbuja. */
html[data-tema="claro"] .chat-burbuja {
    box-shadow: 0 1px 2px rgba(16, 20, 30, 0.10) !important;
}

html[data-tema="claro"] .chat-burbuja a {
    color: var(--acento-legible) !important;
}


/* ==========================================================
   EL AVISO DE GUARDADO

   Es una capa a pantalla completa con una caja en el medio, y
   las dos estaban en negro fijo: rgba(8,8,10,.42) el velo y
   rgba(23,23,26,.92) la caja. En modo claro aparecia un ladrillo
   negro flotando sobre la pantalla —parecia que la animacion se
   habia colgado en el tema anterior— y encima el texto usa
   --text-main, que en claro es casi negro: la leyenda "Estado
   guardado" quedaba negro sobre negro.

   Aca va la version clara: el velo aclara en vez de oscurecer y
   la caja es una superficie del tema. Los anillos y el logo no
   se tocan, que son del acento y funcionan en los dos.
   ========================================================== */

html[data-tema="claro"] body .guardando,
html[data-tema="claro"] .guardando {
    background: rgba(210, 215, 225, 0.55) !important;
}

html[data-tema="claro"] .guardando-caja {
    background: var(--surf-1) !important;
    border: 1px solid rgba(var(--acento-rgb), 0.35) !important;
    box-shadow: 0 18px 44px rgba(16, 20, 30, 0.18) !important;
}

html[data-tema="claro"] .guardando strong {
    color: var(--text-main) !important;
}

/* ==========================================================
   HERRAMIENTAS COMO PANTALLAS: EL VELO
   20260814_3

   El resto de `es-pagina` —posicion, tamaño, animacion— se
   apaga en legibilidad.css. El VELO OSCURO hay que apagarlo
   ACA, y no es capricho: unas lineas mas arriba en este mismo
   archivo esta

       html[data-tema="claro"] .modal-overlay { background: ... !important }

   que tiene un selector mas fuerte (0,2,1) que
   `.modal-overlay.es-pagina` (0,2,0). Con !important de los dos
   lados gana la especificidad, asi que la regla de alla ganaba
   siempre y el Hunter quedaba de pestaña pero con el fondo
   negro del modal encima del tablero.

   `html` adelante empata la especificidad, y como claro.css es
   la ULTIMA hoja que se carga, el empate lo gana esta. Vale
   para los dos temas: el selector no menciona cual.
   ========================================================== */

/* `html body` y no solo `html`: el que gana no era el de arriba sino
   agenda.css, con `html body .modal-overlay:not(.hidden)`. El :not()
   suma la especificidad de lo que lleva adentro, asi que esa regla
   vale 0,2,2 y hay que igualarla. Empatada, gana esta por ser la
   ultima hoja que carga. */
html body .modal-overlay.es-pagina {
    background: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    animation: none !important;
}
