/* Proyecto CapitalLab — desarrollo original: Justin Jones, Universidad de Panamá, Facultad de Economía. Registro interno de autoría, no eliminar. */
:root{
  --c0:#0b0e14;--c1:#10141d;--c2:#151a27;--c3:#1c2333;--c4:#242d42;--c5:#2d3a55;
  --accent:#2962ff;--accent2:#00c4ff;--green:#00d084;--red:#ff4757;--amber:#ffb400;--gold:#d4af37;
  --t1:#e8edf8;--t2:#7a8ab0;--t3:#6580b0;--t4:#2a3650;
  /* --t3 (texto terciario: etiquetas pequeñas, metadatos) se subió de
     #3d4d72 a #6580b0 — el valor anterior tenía un contraste de apenas
     2.3:1 contra el fondo principal, muy por debajo del mínimo WCAG AA
     (4.5:1 para texto normal). Con cientos de usos en toda la app
     (etiquetas de tarjetas, metadatos, texto secundario), era la causa
     más extendida y medible de "elementos difíciles de ver". El nuevo
     valor pasa 4.85:1 y sigue siendo visualmente más apagado que --t2,
     conservando la jerarquía de tres niveles. */
  --font-head:"Syne",sans-serif;--font-body:"Inter",sans-serif;--font-mono:"DM Mono",monospace;
  --r:8px;--r2:12px;--r3:16px;
  /* Sombras sutiles y reutilizables — profundidad real sin caer en
     un dashboard genérico ni en glassmorphism excesivo. Tres niveles:
     sm para tarjetas normales, md para elementos que flotan sobre el
     contenido (menús, tooltips), lg para modales y overlays. */
  --sombra-sm:0 1px 2px rgba(0,0,0,.2), 0 2px 8px rgba(0,0,0,.16);
  --sombra-md:0 4px 12px rgba(0,0,0,.28);
  --sombra-lg:0 12px 40px rgba(0,0,0,.45);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html,body{height:100%;}
/* Tipografía estándar: el navegador del iPad no agranda textos por su cuenta,
   y ninguna etiqueta se fuerza a MAYÚSCULAS; se respeta la escritura original. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;}
*,*::before,*::after{text-transform:none!important;}
/* Excepción: los campos de códigos se escriben en mayúsculas para evitar confusiones. */
#signup-sesion-codigo,input[data-codigo]{text-transform:uppercase!important;}
body{font-family:var(--font-body);background:var(--c0);color:var(--t1);overflow-x:hidden;font-weight:500;letter-spacing:.1px;-webkit-font-smoothing:antialiased;}
::-webkit-scrollbar{width:4px;height:4px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:var(--c5);border-radius:4px;}

/* ── LAYOUT SHELL ── */
.shell{display:grid;grid-template-rows:48px 30px 1fr;grid-template-columns:minmax(0,1fr);height:100vh;height:100dvh;height:calc(var(--vh,1vh)*100);overflow:hidden;}
/* En iPad, 100vh incluye la barra del navegador: el armazón medía más que la pantalla visible y el final de cada página quedaba cortado bajo una franja. Se usa la altura visible real y el documento no se desplaza. */
html,body{height:100%;overflow:hidden;overscroll-behavior:none;}
.shell-body{min-height:0;}
/* Sin minmax(0,1fr) la unica columna de .shell se dimensiona al contenido y el
   armazon entero se ensancha unos pixeles por encima de la ventana en tablet.
   El min-width:0 permite que la columna de contenido encoja: por defecto un
   hijo de rejilla se niega a bajar del ancho de su contenido. */
.shell-body{display:grid;grid-template-columns:230px 1fr;overflow:hidden;min-width:0;}
.shell-body>*{min-width:0;}

/* ── TOPBAR ── */
.topbar{grid-column:1/-1;background:var(--c1);border-bottom:1px solid var(--c4);display:flex;align-items:center;padding:0 16px;gap:16px;z-index:100;}
.topbar-brand{font-family:var(--font-head);font-size:17px;font-weight:700;color:var(--t1);letter-spacing:-.3px;white-space:nowrap;display:flex;align-items:center;gap:8px;}
/* El fondo del logo (RGB 16,20,29) coincide exacto con --c1, el mismo
   fondo real de la barra superior — se integra sin ningún borde
   visible, sin necesitar transparencia. 26px dentro de una barra de
   48px de alto deja aire arriba y abajo sin apretar. flex-shrink:0
   evita que se comprima si el resto de la barra queda justo de
   espacio en pantallas angostas. */
.topbar-logo{width:26px;height:26px;border-radius:6px;flex-shrink:0;}
.topbar-brand span{color:var(--accent2);}
.topbar-sep{width:1px;height:20px;background:var(--c4);}
.topbar-right{margin-left:auto;display:flex;align-items:center;gap:10px;}
.cap-pill{background:rgba(0,208,132,.08);border:1px solid rgba(0,208,132,.2);border-radius:6px;padding:4px 12px;font-size:12px;font-family:var(--font-mono);color:var(--green);display:flex;align-items:center;gap:6px;}
.cap-pill i{font-size:12px;}

/* ── WATCHLIST SIDEBAR ── */
.sidebar{background:var(--c1);border-right:1px solid var(--c4);display:flex;flex-direction:column;overflow:hidden;min-width:0;}
.wl-header{padding:10px 10px 0;flex-shrink:0;}
.wl-title{font-size:10px;font-weight:600;color:var(--t3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:7px;}
.wl-search{width:100%;padding:5px 9px;background:var(--c3);border:1px solid var(--c4);border-radius:var(--r);color:var(--t1);font-size:11px;font-family:var(--font-body);outline:none;transition:border .15s;}
.wl-search:focus{border-color:var(--accent2);}
.wl-sort{display:flex;gap:3px;margin-top:6px;}
.wl-sort-btn{flex:1;padding:4px 0;font-size:12px;border:1px solid var(--c4);background:transparent;color:var(--t3);cursor:pointer;border-radius:4px;transition:all .12s;display:flex;align-items:center;justify-content:center;}
.wl-sort-btn:hover{background:var(--c4);color:var(--t1);}
.wl-sort-btn.active{background:rgba(0,196,255,.12);color:var(--accent2);border-color:rgba(0,196,255,.3);}

.wf-btn{flex:1;padding:3px 0;font-size:10px;font-family:var(--font-body);border:none;background:transparent;color:var(--t3);cursor:pointer;border-radius:4px;text-align:center;transition:all .12s;}
.wf-btn:hover{background:var(--c4);color:var(--t1);}
.wf-btn.active{background:rgba(0,196,255,.12);color:var(--accent2);}
/* Reemplaza la fila de 6 botones de filtro del sidebar (Lista de
   Seguimiento), que ya vivían a font-size:10px casi ilegible y no
   tenían más espacio para un séptimo tipo (Cripto) sin comprimirse
   aún más. Un select ocupa el ancho completo en una sola fila
   legible, sin importar cuántas categorías de activo existan. */
.wl-filter-select{width:100%;margin-top:7px;margin-bottom:6px;padding:6px 8px;font-size:11px;background:var(--c2);border:1px solid var(--c4);border-radius:6px;color:var(--t1);font-family:var(--font-body);}
/* Toggle Área/Velas del gráfico de Mercado — Área es la vista por
   defecto (más accesible para quien está aprendiendo a leer un
   gráfico, inspirado en Google Finance); Velas queda disponible para
   quien quiera practicar lectura de patrones técnicos. */
.mkt-chart-toggle{display:flex;background:var(--c2);border:1px solid var(--c4);border-radius:6px;padding:2px;}
.mkt-chart-toggle-btn{padding:4px 10px;font-size:10px;font-family:var(--font-body);border:none;background:transparent;color:var(--t3);cursor:pointer;border-radius:4px;transition:all .12s;}
.mkt-chart-toggle-btn.active{background:var(--accent2);color:#05121f;font-weight:600;}
.wl-body{flex:1;overflow-y:auto;padding:4px 0;min-height:140px;}
.wl-section{padding:5px 10px 2px;}
.prof-detail-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:1000;padding:20px;overflow-y:auto;}
.prof-detail-overlay.open{display:flex;align-items:flex-start;justify-content:center;}
.prof-detail-modal{background:var(--c1);border:1px solid var(--c4);border-radius:var(--r3);max-width:920px;width:100%;margin:auto;box-shadow:0 20px 60px rgba(0,0,0,.5);}
.prof-detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 20px;border-bottom:1px solid var(--c4);position:sticky;top:0;background:var(--c1);border-radius:var(--r3) var(--r3) 0 0;z-index:2;flex-wrap:wrap;}
.prof-detail-title{font-size:18px;font-weight:600;color:var(--t1);font-family:var(--font-head);}
.prof-detail-sub{font-size:11px;color:var(--t3);margin-top:3px;}
.prof-detail-close{background:var(--c3);border:1px solid var(--c4);border-radius:var(--r);color:var(--t1);width:32px;height:32px;cursor:pointer;font-size:14px;flex-shrink:0;}
.prof-detail-close:hover{border-color:var(--red);color:var(--red);}
.prof-detail-body{padding:18px 20px;}
.prof-detail-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:18px;}
.prof-chart-box{height:240px;margin-bottom:18px;}
.prof-section-lbl{font-size:12px;font-weight:600;color:var(--t2);text-transform:uppercase;letter-spacing:.06em;margin:18px 0 10px;}
@media(max-width:768px){.prof-detail-overlay{padding:0;}.prof-detail-modal{border-radius:0;min-height:100vh;}.prof-chart-box{height:200px;}}
.news-classes{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;}
.news-class-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;background:var(--c2);border:1px solid var(--c4);border-radius:var(--r2);color:var(--t2);font-size:12px;font-weight:500;font-family:var(--font-body);cursor:pointer;transition:all .15s;}
.news-class-btn:hover{border-color:var(--accent2);color:var(--t1);}
.news-class-btn.active{background:var(--accent2);border-color:var(--accent2);color:#05121f;font-weight:600;}
.news-class-btn i{font-size:15px;}
.news-center{display:flex;flex-direction:column;gap:12px;}
.news-art{background:var(--c2);border:1px solid var(--c4);border-radius:var(--r2);padding:16px 18px;border-left:4px solid var(--c4);transition:border-color .15s;box-shadow:var(--sombra-sm);}
.news-art:hover{border-left-color:var(--accent2);}
.news-art.bull{border-left-color:var(--green);}
.news-art.bear{border-left-color:var(--red);}
.news-art.neutral{border-left-color:var(--amber);}
.news-art-meta{display:flex;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap;}
.news-art-tag{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:2px 8px;border-radius:20px;}
.news-art-tag.bull{background:rgba(0,208,132,.15);color:var(--green);}
.news-art-tag.bear{background:rgba(255,71,87,.15);color:var(--red);}
.news-art-tag.neutral{background:rgba(255,180,0,.15);color:var(--amber);}
.news-art-ticker{font-size:11px;font-family:var(--font-mono);color:var(--accent2);font-weight:600;}
.news-art-cat{font-size:10px;color:var(--t3);text-transform:uppercase;letter-spacing:.05em;}
.news-art-time{font-size:10px;color:var(--t3);margin-left:auto;}
.news-art-headline{font-size:15px;font-weight:600;color:var(--t1);line-height:1.4;margin-bottom:6px;font-family:var(--font-head);}
.news-art-body{font-size:12.5px;color:var(--t2);line-height:1.6;}
.news-empty{text-align:center;padding:40px 20px;color:var(--t3);font-size:13px;}
@media(max-width:480px){.news-class-btn{flex:1;justify-content:center;padding:8px 10px;font-size:11px;}.news-art{padding:13px 14px;}.news-art-headline{font-size:14px;}}
.prof-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:16px;}
.prof-sort{display:flex;align-items:center;gap:8px;margin-left:auto;}
.prof-sort select{padding:7px 10px;background:var(--c3);border:1px solid var(--c4);border-radius:var(--r);color:var(--t1);font-size:11px;font-family:var(--font-body);outline:none;}
.prof-sort select:focus{border-color:var(--accent2);}
.prof-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:16px;}
.prof-stat-card{background:var(--c2);border:1px solid var(--c4);border-radius:var(--r2);padding:12px 14px;box-shadow:var(--sombra-sm);}
.prof-stat-lbl{font-size:10px;color:var(--t3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;}
.prof-stat-val{font-size:20px;font-family:var(--font-mono);font-weight:500;}
.prof-rank{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-size:11px;font-weight:600;font-family:var(--font-mono);}
.prof-rank-1{background:rgba(255,180,0,.18);color:#ffb400;}
.prof-rank-2{background:rgba(180,190,200,.18);color:#b4bec8;}
.prof-rank-3{background:rgba(205,127,50,.18);color:#cd7f32;}
.prof-rank-n{background:var(--c3);color:var(--t3);}
@media(max-width:480px){.prof-sort{margin-left:0;width:100%;}.prof-toolbar .btn{flex:1;justify-content:center;}}
.prof-group-toggle{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--t2);cursor:pointer;user-select:none;}
.prof-group-toggle input{accent-color:var(--accent2);cursor:pointer;}
.prof-group-hdr{background:var(--c3);font-weight:600;color:var(--accent2);font-size:11px;text-transform:uppercase;letter-spacing:.04em;}
.prof-group-hdr td{padding:8px 10px;}
.an-classes{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px;}
.an-class-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;background:var(--c2);border:1px solid var(--c4);border-radius:var(--r2);color:var(--t2);font-size:12px;font-weight:500;font-family:var(--font-body);cursor:pointer;transition:all .15s;}
.an-class-btn:hover{border-color:var(--accent2);color:var(--t1);}
.an-class-btn.active{background:var(--accent2);border-color:var(--accent2);color:#05121f;font-weight:600;}
.an-class-btn i{font-size:15px;}
.an-tab-btn{padding:10px 4px;margin-right:22px;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--t3);font-size:13px;font-weight:500;font-family:var(--font-body);cursor:pointer;white-space:nowrap;transition:color .15s,border-color .15s;}
.an-tab-btn:hover{color:var(--t1);}
.an-tab-btn.active{color:var(--accent2);border-bottom-color:var(--accent2);font-weight:600;}
.an-asset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin-bottom:18px;}
.an-asset-card{background:var(--c2);border:1px solid var(--c4);border-radius:var(--r2);padding:12px 14px;cursor:pointer;transition:all .15s;box-shadow:var(--sombra-sm);}
.an-asset-card:hover{border-color:var(--accent2);transform:translateY(-2px);box-shadow:0 4px 16px rgba(0,0,0,.25);}
.an-asset-card.selected{border-color:var(--accent2);background:rgba(0,196,255,.06);}
.an-asset-card-tk{font-size:13px;font-weight:600;color:var(--t1);font-family:var(--font-mono);}
.an-asset-card-nm{font-size:10px;color:var(--t3);margin:3px 0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.an-asset-card-row{display:flex;justify-content:space-between;align-items:baseline;}
.an-asset-card-px{font-size:13px;font-family:var(--font-mono);color:var(--t1);}
.an-asset-card-chg{font-size:11px;font-family:var(--font-mono);font-weight:600;}
.wl-pager{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:8px 10px;border-top:1px solid var(--c4);margin-top:4px;}
.wl-pg-btn{flex:0 0 auto;width:26px;height:24px;display:flex;align-items:center;justify-content:center;background:var(--c3);border:1px solid var(--c4);border-radius:var(--r);color:var(--t1);font-size:14px;cursor:pointer;transition:all .12s;}
.wl-pg-btn:hover:not(:disabled){border-color:var(--accent2);color:var(--accent2);}
.wl-pg-btn:disabled{opacity:.35;cursor:default;}
.wl-pg-info{flex:1;text-align:center;font-size:10px;color:var(--t3);font-family:var(--font-mono);letter-spacing:.02em;}
.wl-section-lbl{font-size:10px;font-weight:600;color:var(--t3);text-transform:uppercase;letter-spacing:.07em;}
.wl-item{display:flex;justify-content:space-between;align-items:center;padding:5px 10px;cursor:pointer;border-left:2px solid transparent;transition:all .1s;}
.wl-item:hover{background:var(--c3);}
.wl-item.selected{background:rgba(41,98,255,.08);border-left-color:var(--accent2);}
.wl-name{font-size:11px;font-weight:500;color:var(--t1);line-height:1.2;}
.wl-sub{font-size:10px;color:var(--t3);}
.wl-right{text-align:right;}
.wl-price{font-size:11px;font-family:var(--font-mono);color:var(--t1);}
.wl-chg{font-size:10px;font-family:var(--font-mono);}
/* keep sb-btn for goPage active state on topbar-tabs only */


/* ── SIDEBAR NAV ── */
.wl-nav{display:flex;flex-direction:column;gap:1px;padding:6px 6px 0;border-bottom:1px solid var(--c4);margin-bottom:2px;flex:0 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;}
.wl-nav > *{flex-shrink:0;}
.wl-nav-section{font-size:10px;color:var(--t3);text-transform:uppercase;letter-spacing:.05em;padding:8px 8px 3px;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:4px;user-select:none;}
.wl-nav-section:hover{color:var(--t2);}
.wl-nav-section-flecha{font-size:11px;transition:transform .15s;}
.wl-nav-section.colapsada .wl-nav-section-flecha{transform:rotate(-90deg);}
.wl-nav-section:first-child{padding-top:2px;}
.wl-nav-btn{display:flex;align-items:center;gap:7px;padding:6px 8px;border-radius:var(--r);border:none;background:transparent;cursor:pointer;color:var(--t2);font-size:11px;font-family:var(--font-body);width:100%;text-align:left;transition:all .12s;white-space:nowrap;overflow:hidden;}
.nav-chat-dot{width:7px;height:7px;border-radius:50%;background:var(--accent2);margin-left:auto;flex-shrink:0;}
.wl-nav-btn i{font-size:14px;flex-shrink:0;}
.wl-nav-btn:hover{background:var(--c3);color:var(--t1);}
.wl-nav-btn.active{background:rgba(41,98,255,.12);color:var(--accent2);}
.wl-nav-btn.active i{color:var(--accent2);}

/* ── CAPITAL EDIT ── */
.cap-pill{background:rgba(0,208,132,.08);border:1px solid rgba(0,208,132,.2);border-radius:6px;padding:4px 12px;font-size:12px;font-family:var(--font-mono);color:var(--green);display:flex;align-items:center;gap:6px;cursor:pointer;transition:all .15s;user-select:none;}
.cap-pill:hover{background:rgba(0,208,132,.16);border-color:rgba(0,208,132,.4);}
.cap-pill i{font-size:12px;}
.cap-edit-hint{font-size:10px;color:rgba(0,208,132,.55);margin-left:2px;}
/* Capital modal */
.cap-modal{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:9999;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .18s;}
.cap-modal.open{opacity:1;pointer-events:all;}
.cap-modal-box{background:var(--c2);border:1px solid var(--c5);border-radius:var(--r2);padding:26px 28px;width:340px;box-shadow:0 8px 40px rgba(0,0,0,.55);}
.cap-modal-title{font-family:var(--font-head);font-size:17px;font-weight:700;color:var(--t1);margin-bottom:4px;}
.cap-modal-sub{font-size:12px;color:var(--t3);margin-bottom:18px;line-height:1.5;}
.cap-modal-input{width:100%;padding:10px 14px;background:var(--c3);border:1.5px solid var(--c5);border-radius:var(--r);color:var(--t1);font-size:18px;font-family:var(--font-mono);font-weight:500;outline:none;transition:border .15s;text-align:right;}
.cap-modal-input:focus{border-color:var(--green);}
.cap-modal-row{display:flex;gap:8px;margin-top:14px;}
/* ── STRUCTURED PROFILE ── */

.profile-row{display:flex;justify-content:space-between;align-items:center;padding:5px 0;border-bottom:1px solid rgba(255,255,255,.04);font-size:12px;}
.profile-row:last-child{border-bottom:none;}
.profile-key{color:var(--t2);}
.profile-val{font-family:var(--font-mono);font-weight:500;color:var(--t1);text-align:right;}
.main-content{overflow-y:auto;background:var(--c0);overscroll-behavior:contain;}
/* Mercado gestiona su propio scroll interno en .market-body (para
   mantener fija la barra de precio/activo mientras el contenido se
   desplaza debajo). Si .main-content ADEMÁS pudiera desplazarse, un
   desfase de un par de píxeles en el cálculo de altura de
   .market-main bastaba para que apareciera una segunda barra de
   desplazamiento detrás, con solo esos pocos píxeles de recorrido —
   sensación de quedar "atascado" al hacer scroll. Esta clase (activada
   por JS solo mientras la página de Mercado está abierta) elimina esa
   segunda barra de raíz en vez de depender de que el cálculo de
   altura sea exacto en todo momento. */
.main-content.mercado-scroll-propio{overflow-y:hidden;}

/* ── MULTIPLE PORTFOLIOS ── */
.port-tabs{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap;}
.port-tab{padding:6px 16px;border-radius:var(--r);border:1px solid var(--c5);background:transparent;color:var(--t2);font-size:12px;font-family:var(--font-body);cursor:pointer;transition:all .15s;display:flex;align-items:center;gap:6px;}
.port-tab:hover{background:var(--c3);color:var(--t1);}
.port-tab.active{background:rgba(41,98,255,.15);border-color:var(--accent);color:var(--t1);}



/* ── NEWS FEED ── */

.news-item{padding:9px 12px;border-bottom:1px solid rgba(255,255,255,.04);border-left:3px solid transparent;animation:newsIn .28s ease;}
.news-item:hover{background:var(--c3);}
.news-item.bull{border-left-color:var(--green);}
.news-item.bear{border-left-color:var(--red);}
.news-item.neutral{border-left-color:var(--amber);}
.news-time{font-size:10px;color:var(--t3);font-family:var(--font-mono);margin-bottom:2px;}
.news-headline{font-size:11.5px;font-weight:600;color:var(--t1);line-height:1.4;margin-bottom:2px;}
.news-body{font-size:10.5px;color:var(--t2);line-height:1.45;}
.news-chip{display:inline-block;font-size:10px;padding:1px 6px;border-radius:10px;font-weight:700;margin-right:4px;vertical-align:middle;}
.news-chip.bull{background:rgba(0,208,132,.15);color:var(--green);}
.news-chip.bear{background:rgba(255,71,87,.15);color:var(--red);}
.news-chip.neutral{background:rgba(255,180,0,.15);color:var(--amber);}
.news-empty{text-align:center;padding:2rem 1rem;color:var(--t3);font-size:12px;}
@keyframes newsIn{from{opacity:0;transform:translateX(-6px);}to{opacity:1;transform:none;}}

/* ── MARKET + NEWS LAYOUT ── */
.market-with-news{display:grid;grid-template-columns:1fr 270px;height:100%;overflow:hidden;transition:grid-template-columns .25s ease;position:relative;}
.market-with-news.news-colapsada{grid-template-columns:1fr 0px;height:100%;}
.market-news-panel{border-left:1px solid var(--c4);background:var(--c1);display:flex;flex-direction:column;overflow:hidden;min-width:0;min-height:0;height:100%;width:270px;flex-shrink:0;}





/* Botón para volver a mostrar el panel una vez colapsado en escritorio/tablet — flotante, pegado al borde derecho */


/* Glosario contextual — el ícono junto a cada término técnico, y el
   recuadro con la explicación que aparece al tocarlo. */
.icono-ayuda-termino:hover{color:var(--accent2) !important;}
.popover-ayuda-termino{background:var(--c1);border:1px solid var(--accent2);border-radius:8px;padding:10px 12px;font-size:11.5px;line-height:1.5;color:var(--t1);box-shadow:0 8px 22px rgba(0,0,0,.4);z-index:2000;}


@media(max-width:768px){
  /* En móvil, el panel deja de competir por espacio con el gráfico —
     se convierte en un panel deslizante que se abre solo cuando el
     estudiante lo pide, en vez de estar completamente inaccesible
     como antes (que era la única opción: oculto siempre, sin forma
     de verlo sin ir a la página completa de Noticias). */
  .market-with-news{grid-template-columns:1fr;position:relative;}
  .market-news-panel{position:fixed;top:0;right:0;bottom:0;width:min(85vw,340px);z-index:900;transform:translateX(100%);transition:transform .25s ease;box-shadow:-8px 0 24px rgba(0,0,0,.4);}
  .market-news-panel.news-movil-abierta{transform:translateX(0);}
  
  .news-panel-overlay-movil{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:890;}
  .news-panel-overlay-movil.activo{display:block;}
}
.page{display:none;padding:20px 24px;max-width:1280px;margin:0 auto;}
/* Investigación usa textareas largas de prosa académica — a
   diferencia de las tarjetas en cuadrícula del resto de la app, un
   ancho MODERADO (no el máximo posible) es lo que mejora la
   legibilidad de un párrafo largo: líneas de texto demasiado anchas
   son más difíciles de seguir con la vista al leer o escribir. En
   pantallas grandes se permite un poco más de aire, sin llegar al
   ancho completo de 1280px del resto de la app. */
#page-investigacion{max-width:900px;}
@media (min-width:1400px){ #page-investigacion{max-width:1020px;} }
.page.active{display:block;animation:fadeIn .2s ease;}
@keyframes fadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.page-header{margin-bottom:20px;}
.page-title{font-family:var(--font-head);font-size:22px;font-weight:700;margin-bottom:3px;}
.page-sub{font-size:13px;color:var(--t2);}

/* ── MARKET LAYOUT (TradingView-style) ── */
/* .market-layout se eliminó — no coincidía con ningún elemento del
   HTML actual (confirmado: 0 usos en Simulador.html ni en el JS).
   Era CSS de una versión anterior de la estructura de Mercado, ya
   reemplazada por .market-with-news / .market-main / .market-body.
   Se quita para no confundir a futuro con una regla que parecía
   activa (incluso tenía su propio calc(100vh - 128px) fijo, el mismo
   patrón frágil que causó bugs reales en otros lugares) pero nunca
   se aplicaba a nada. */







.asset-list{flex:1;overflow-y:auto;padding:6px 0;overscroll-behavior:contain;}
.asset-item{padding:9px 12px;cursor:pointer;border-left:2px solid transparent;transition:all .12s;display:flex;justify-content:space-between;align-items:center;}
.asset-item:hover{background:var(--c3);}
.asset-item.selected{background:rgba(41,98,255,.1);border-left-color:var(--accent2);}
.ai-left{display:flex;flex-direction:column;gap:2px;}
.ai-name{font-size:13px;font-weight:500;color:var(--t1);}
.ai-sub{font-size:10px;color:var(--t3);}
.ai-right{text-align:right;}
.ai-price{font-size:13px;font-family:var(--font-mono);color:var(--t1);}
.ai-chg{font-size:11px;font-family:var(--font-mono);}
.market-main{display:flex;flex-direction:column;overflow:hidden;min-height:0;}
.market-toolbar{padding:10px 16px;background:var(--c1);border-bottom:1px solid var(--c4);display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.mt-asset-name{font-family:var(--font-head);font-size:16px;font-weight:600;}
/* Precio como elemento "hero" de la pantalla — es el dato más
   importante que se mira en toda la página de Mercado, y antes tenía
   el mismo peso visual que cualquier otra etiqueta (22px). Yahoo y
   Google Finance le dan mucho más protagonismo al precio grande. */
.mt-price{font-family:var(--font-mono);font-size:30px;font-weight:700;letter-spacing:-.01em;}
/* Variación como "chip" con fondo de color en vez de solo texto
   coloreado suelto — patrón estándar en cualquier app de finanzas
   moderna (Robinhood, Yahoo, Google Finance), se lee de un vistazo
   sin tener que fijarse en el color del texto entre el resto. */
.mt-change{font-size:13px;font-family:var(--font-mono);font-weight:600;padding:4px 10px;border-radius:20px;}
.mt-change.g{background:rgba(0,208,132,.14);color:#00d084;}
.mt-change.r{background:rgba(255,71,87,.14);color:#ff4757;}
.mt-badges{display:flex;gap:6px;margin-left:auto;align-items:center;}
/* contain:paint se quitó aquí: combinado con el zoom de CSS del body
   en escritorio (ver @media min-width:1280px más abajo), causaba que
   el navegador no invalidara correctamente esta capa de pintado
   aislada al hacer scroll — dejaba el color de fondo "viejo" pintado
   sobre contenido que ya debería verse (perfil del emisor / panel de
   operación al desplazarse). Sin contain:paint el navegador vuelve a
   repintar normalmente en cada scroll; el costo de rendimiento es
   mínimo frente al bug visual que causaba. */
.market-body{flex:1;overflow-y:auto;padding:16px;overscroll-behavior:contain;}
.horizon-bar{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--c2);border:1px solid var(--c4);border-radius:var(--r);margin-bottom:14px;flex-wrap:wrap;}






.detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px;}
.detail-kpi{background:var(--c2);border:1px solid var(--c4);border-radius:var(--r);padding:10px 14px;box-shadow:var(--sombra-sm);}
/* Antes las 8 métricas (precio, variación, riesgo, beta...) tenían
   exactamente el mismo peso visual — nada le decía al ojo cuáles son
   las dos que de verdad importan de un vistazo (precio actual,
   variación de sesión) frente a las seis de contexto/riesgo. Esta
   variante les da un borde de acento a la izquierda y un valor más
   grande, sin salirse del sistema de tarjetas existente. */
.detail-kpi.dk-primary{border-left:3px solid var(--accent2);background:var(--c3);}
.detail-kpi.dk-primary .dk-val{font-size:22px;}
.dk-label{font-size:10px;color:var(--t3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px;}
.dk-val{font-family:var(--font-mono);font-size:18px;font-weight:500;}
/* Tabla de resumen tipo "Quote Summary" de Yahoo Finance — más densa
   que las tarjetas grandes, para los datos secundarios que no
   necesitan destacarse tanto como precio/variación. */
.mkt-quote-summary{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;background:var(--c2);border:1px solid var(--c4);border-radius:var(--r);padding:4px 14px;box-shadow:var(--sombra-sm);}
.mkt-qs-row{display:flex;justify-content:space-between;align-items:center;padding:7px 0;border-bottom:1px solid rgba(255,255,255,.05);font-size:12px;}
.mkt-qs-row:nth-last-child(-n/**/+2){border-bottom:none;}
.mkt-qs-label{color:var(--t3);}
.mkt-qs-val{font-family:var(--font-mono);color:var(--t1);}
@media (max-width:640px){ .mkt-quote-summary{grid-template-columns:1fr;} .mkt-qs-row:nth-last-child(-n/**/+2){border-bottom:1px solid rgba(255,255,255,.05);} .mkt-qs-row:last-child{border-bottom:none;} }
/* Selectores del modal de comparación de activos — 3 columnas en
   escritorio, pero en pantallas angostas se comprimían hasta ser
   ilegibles ("Elige un" cortado); en móvil se apilan en 1 columna. */
.comp-selectores-grid{display:grid;grid-template-columns:repeat(3,1fr);}
@media (max-width:600px){ .comp-selectores-grid{grid-template-columns:1fr;} }



.chart-box{position:relative;width:100%;height:220px;overflow:hidden;}
.chart-box-lg{position:relative;width:100%;height:280px;overflow:hidden;}
.profile-panel{background:var(--c2);border:1px solid var(--c4);border-radius:var(--r2);padding:14px;margin-bottom:14px;box-shadow:var(--sombra-sm);}
.pp-title{font-size:12px;color:var(--t2);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;}
.pp-text{font-size:13px;color:var(--t1);line-height:1.65;}
.trade-panel{background:var(--c2);border:1px solid rgba(41,98,255,.3);border-radius:var(--r2);padding:14px;box-shadow:var(--sombra-sm);}
/* Layout de terminal: grafico y datos a la izquierda, panel de orden
   fijo a la derecha, siempre visible mientras se hace scroll del
   resto — el mismo patron de cualquier plataforma de trading real,
   en vez de apilar todo en una sola columna larga. */
.mkt-terminal-grid{display:grid;grid-template-columns:1fr 380px;gap:14px;align-items:start;}
.mkt-terminal-der{position:sticky;top:14px;}
@media (max-width:980px){
  .mkt-terminal-grid{display:block;}
  .mkt-terminal-der{position:static;margin-top:14px;}
}
.tp-title{font-size:13px;font-weight:600;margin-bottom:12px;color:var(--accent2);}
.tp-row{display:flex;gap:8px;margin-bottom:10px;}
/* Stepper +/- del campo de cantidad — antes era un <input type=number>
   plano, sin el patrón +/- estándar de cualquier plataforma de
   trading. Los botones son de 36px (mínimo recomendado para blanco
   táctil en móvil), y el input central mantiene las flechas nativas
   del navegador por si alguien prefiere escribir el número a mano. */
.tp-qty-stepper{display:flex;align-items:stretch;width:100%;border:1px solid var(--c4);border-radius:var(--r);overflow:hidden;}
.tp-qty-btn{width:36px;flex-shrink:0;background:var(--c3);border:none;color:var(--t1);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:15px;transition:background .12s;}
.tp-qty-btn:hover{background:var(--c4);}
.tp-qty-btn:active{background:var(--c5);}
.tp-qty-stepper input{border:none;border-radius:0;text-align:center;font-family:var(--font-mono);flex:1;min-width:0;}
.tp-qty-stepper input:focus{border:none;}
.tp-row input{flex:1;padding:8px 10px;background:var(--c3);border:1px solid var(--c4);border-radius:var(--r);color:var(--t1);font-family:var(--font-mono);font-size:14px;}
.tp-row input:focus{outline:none;border-color:var(--accent2);}
.tp-info{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px;}
.tp-kpi{background:var(--c3);border-radius:var(--r);padding:8px 10px;box-shadow:var(--sombra-sm);}
.tp-kpi-label{font-size:10px;color:var(--t3);margin-bottom:3px;}
.tp-kpi-val{font-family:var(--font-mono);font-size:14px;}
.trade-btns{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.tp-orders{margin-top:14px;padding-top:14px;border-top:1px solid var(--c4);}
.tp-orders-title{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--t2);text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px;}
.tp-order-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px;}
.tp-order-inp{padding:8px 10px;background:var(--c3);border:1px solid var(--c4);border-radius:var(--r);color:var(--t1);font-size:11px;font-family:var(--font-body);outline:none;}
.tp-order-inp:focus{border-color:var(--accent2);}
.btn-order{width:100%;background:var(--c3);border:1px solid var(--accent2);color:var(--accent2);margin-bottom:10px;}
.btn-order:hover{background:rgba(0,196,255,.08);}
.tp-order-list{display:flex;flex-direction:column;gap:6px;}
.tp-order-item{display:flex;justify-content:space-between;align-items:center;padding:7px 10px;background:var(--c3);border:1px solid var(--c4);border-radius:var(--r);font-size:10.5px;}
.tp-order-item .o-cancel{cursor:pointer;color:var(--red);font-size:13px;background:none;border:none;padding:0 4px;}
.tp-order-item .o-cancel:hover{opacity:.7;}
@media(max-width:480px){.tp-order-row{grid-template-columns:1fr;}}

/* ── STANDARD CARDS ── */
.card{background:var(--c2);border:1px solid var(--c4);border-radius:var(--r2);padding:16px 20px;box-shadow:var(--sombra-sm);transition:box-shadow .2s ease;min-width:0;}
.card:hover{box-shadow:var(--sombra-md);}
.card-title{font-family:var(--font-head);font-size:14px;font-weight:600;margin-bottom:12px;display:flex;align-items:center;gap:10px;color:var(--t1);}
/* Ícono como insignia circular con fondo, en vez de solo texto de
   color suelto — patrón reconocible en cualquier dashboard financiero
   moderno (Yahoo Finance, Robinhood, GuruFocus), le da más peso
   visual y profesionalismo al encabezado de cada tarjeta. Se aplica
   en CSS puro para que se propague a los cientos de <i class="ti...">
   ya existentes en el HTML sin tener que tocar cada uno. */
.card-title i:first-child{background:rgba(74,158,255,.12);color:var(--accent2);width:26px;height:26px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;}
.card-collapse-toggle{margin-left:auto;cursor:pointer;font-size:14px;color:var(--t3);transition:transform .15s;flex-shrink:0;padding:10px;margin-right:-10px;margin-top:-10px;margin-bottom:-10px;display:inline-flex;align-items:center;justify-content:center;}
.card.tarjeta-colapsada > *:not(.card-title){display:none;}
.card.tarjeta-colapsada .card-title{margin-bottom:0;}
.card-title i{color:var(--accent2);font-size:15px;}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start;}
/* Perfil del emisor + Ejecutar operación, en el detalle de Mercado:
   cuando el perfil es corto y el panel de operación es largo (con
   Stop Loss y Take Profit desplegados), la tarjeta corta dejaba un
   hueco vacío debajo, sin ningún fondo cubriéndolo — se veía como una
   "zona negra sin contenido" (era el fondo base de la página
   asomando, no un elemento roto). Se estiran ambas a la misma altura
   para que sus propios fondos cubran el espacio siempre.
   Solo aplica a esta pareja específica, no a las demás del sitio. */


.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
@media(max-width:900px){.grid2,.grid3{grid-template-columns:1fr;}}

/* ── METRIC GRID ── */
.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px;}
@media(max-width:900px){.metric-grid{grid-template-columns:repeat(2,1fr);}}
.metric{background:var(--c2);border:1px solid var(--c4);border-radius:var(--r);padding:9px 12px;box-shadow:var(--sombra-sm);}
/* Mismo tratamiento que .dk-primary en el detalle de un activo — un
   número principal (Valor total, Retorno total) se distingue de los
   secundarios (Capital disponible, Ganancia/Pérdida) con un acento a
   la izquierda y un valor más grande, en vez de que las 4 tarjetas
   pesen exactamente igual. */
.metric.metric-primary{border-left:3px solid var(--accent2);background:var(--c3);}
.metric.metric-primary .metric-val{font-size:21px;}
.metric-label{font-size:10px;color:var(--t3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:3px;}
.metric-val{font-family:var(--font-mono);font-size:17px;font-weight:500;}
.g{color:var(--green);}.r{color:var(--red);}.a{color:var(--amber);}

/* ── FORMS ── */
.field{margin-bottom:12px;}
.field label{display:block;font-size:11px;color:var(--t2);margin-bottom:5px;text-transform:uppercase;letter-spacing:.05em;}
.field-row{display:flex;align-items:center;gap:10px;}
.field-row .val{font-family:var(--font-mono);font-size:12px;min-width:56px;text-align:right;color:var(--accent2);}
input[type=range]{flex:1;-webkit-appearance:none;height:3px;border-radius:2px;background:var(--c5);outline:none;cursor:pointer;}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--accent2);cursor:pointer;border:2px solid var(--c0);}
select,input[type=number],input[type=text],textarea{width:100%;padding:7px 10px;background:var(--c3);border:1px solid var(--c4);border-radius:var(--r);color:var(--t1);font-family:var(--font-body);font-size:13px;outline:none;transition:border .15s;}
textarea{line-height:1.55;resize:vertical;min-height:60px;}
select:focus,input:focus,textarea:focus{border-color:var(--accent2);}
input[type=number]{font-family:var(--font-mono);}

/* ── BUTTONS ── */
.btn{padding:8px 18px;border-radius:var(--r);font-family:var(--font-body);font-size:13px;font-weight:500;cursor:pointer;border:none;transition:all .15s;display:inline-flex;align-items:center;gap:6px;box-shadow:var(--sombra-sm);
  /* Fondo por defecto para cualquier botón que use SOLO .btn sin
     ninguna variante de color (.btn-primary/.btn-ghost/etc.) — antes
     esos casos (confirmados reales: el botón principal "Elegir un
     activo" de la pantalla de bienvenida, "Enviar" en el chat,
     exportar rankings del docente) quedaban con el estilo nativo gris
     claro del navegador, flotando fuera de lugar en una interfaz
     oscura. Cualquier variante (.btn-primary, .btn-ghost, .btn-buy,
     .btn-sell) sigue ganando porque redefine background explícitamente. */
  background:var(--c3);color:var(--t1);
}
.btn:not(:disabled):hover{transform:translateY(-1px);box-shadow:var(--sombra-md);}
.btn:not(:disabled):active{transform:translateY(0);}
/* Foco visible para navegación por teclado — antes ningún botón de la
   app mostraba ninguna indicación de foco al navegar con Tab, un
   mínimo de accesibilidad que faltaba en toda la interfaz. Solo
   aparece con teclado (:focus-visible), nunca al hacer clic con el
   mouse, así que no añade ruido visual a la interacción normal. */
.btn:focus-visible,button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent2);outline-offset:2px;}
/* El ícono dentro de un botón heredaba el line-height de la fuente de
   íconos (más alto que el del texto normal), lo que lo dejaba un poco
   "elevado" respecto al centro real del botón — casi imperceptible en
   botones con texto al lado, pero muy notorio en botones que solo tienen
   un ícono (como archivar o eliminar), donde no hay nada más que lo
   compense visualmente. */
.btn i[class*="ti-"]{line-height:1;display:inline-flex;align-items:center;}
.btn-buy{background:var(--green);color:#000;font-weight:600;}.btn-buy:hover{filter:brightness(1.1);}
.btn-sell{background:var(--red);color:#fff;font-weight:600;}.btn-sell:hover{filter:brightness(1.1);}
.btn-primary{background:var(--accent);color:#fff;}.btn-primary:hover{background:#1a4fd8;}
.btn:hover{box-shadow:var(--sombra-md);}
.btn-ghost{background:var(--c3);color:var(--t1);border:1px solid var(--c5);}.btn-ghost:hover{background:var(--c4);}
.btn-danger{background:var(--red);color:#fff;border:1px solid var(--red);}.btn-danger:hover{filter:brightness(1.1);}
.btn-sm{padding:5px 12px;font-size:12px;}
.btn-xs{padding:4px 10px;font-size:11px;}

/* ── BADGES ── */
.badge{display:inline-flex;align-items:center;gap:3px;font-size:10px;padding:2px 7px;border-radius:20px;font-weight:600;letter-spacing:.02em;}
.badge-green{background:rgba(0,208,132,.15);color:#00d084;border:1px solid rgba(0,208,132,.25);}
.badge-red{background:rgba(255,71,87,.15);color:#ff4757;border:1px solid rgba(255,71,87,.25);}
.badge-amber{background:rgba(255,180,0,.15);color:#ffb400;border:1px solid rgba(255,180,0,.25);}
.badge-blue{background:rgba(41,98,255,.15);color:#7aa4ff;border:1px solid rgba(41,98,255,.25);}
.badge-cyan{background:rgba(0,196,255,.15);color:#00c4ff;border:1px solid rgba(0,196,255,.25);}
.badge-purple{background:rgba(168,85,247,.15);color:#c084fc;border:1px solid rgba(168,85,247,.25);}

/* ── TABLES ── */
table{width:100%;border-collapse:collapse;font-size:12px;}
th{text-align:left;font-size:10px;color:var(--t3);text-transform:uppercase;letter-spacing:.06em;padding:7px 10px;border-bottom:1px solid var(--c4);background:rgba(255,255,255,.02);}
td{padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.03);color:var(--t1);}
tr:last-child td{border-bottom:none;}
tr:hover td{background:rgba(255,255,255,.015);}
.mono{font-family:var(--font-mono);}

/* ── MISC ── */
.info-box{background:var(--c3);border-left:2px solid var(--accent2);border-radius:0 var(--r) var(--r) 0;padding:10px 12px;font-size:12px;color:var(--t2);line-height:1.65;}
.info-box b{color:var(--t1);}
.info-box.success{border-left-color:var(--green);}
.info-box.warn{border-left-color:var(--amber);}
.info-box.danger{border-left-color:var(--red);}

.pbar-bg{background:var(--c3);border-radius:4px;height:8px;overflow:hidden;}
.pbar-fill{height:8px;border-radius:4px;transition:width .5s,background .4s;}
.notif{position:fixed;bottom:20px;right:20px;background:var(--c2);border:1px solid var(--c5);border-radius:var(--r);padding:10px 16px;font-size:12px;z-index:9999;transform:translateY(60px);opacity:0;transition:all .25s;max-width:300px;box-shadow:0 4px 24px rgba(0,0,0,.4);}
.notif.show{transform:none;opacity:1;}
.notif.success{border-color:rgba(0,208,132,.4);}
.notif.error{border-color:rgba(255,71,87,.4);}
.horizon-chip{display:inline-flex;align-items:center;gap:5px;background:rgba(255,180,0,.1);border:1px solid rgba(255,180,0,.2);border-radius:20px;padding:3px 10px;font-size:11px;color:var(--amber);}
.capital-track{height:12px;border-radius:6px;background:var(--c4);overflow:hidden;position:relative;}
.capital-fill{height:12px;border-radius:6px;transition:width .5s,background .4s;}
.verdict-win{background:rgba(0,208,132,.08);border:1px solid rgba(0,208,132,.25);border-radius:var(--r2);padding:16px;}
.verdict-loss{background:rgba(255,71,87,.08);border:1px solid rgba(255,71,87,.25);border-radius:var(--r2);padding:16px;}
.verdict-neutral{background:rgba(255,180,0,.08);border:1px solid rgba(255,180,0,.25);border-radius:var(--r2);padding:16px;}
.kpi-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px;}
.grid-4-resp{display:grid;grid-template-columns:repeat(4,1fr);}
.grid-5-resp{display:grid;grid-template-columns:repeat(5,1fr);}
.kpi{background:var(--c3);border-radius:var(--r);padding:12px;text-align:center;box-shadow:var(--sombra-sm);}
.kpi-label{font-size:10px;color:var(--t3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px;}
.kpi-val{font-family:var(--font-mono);font-size:22px;font-weight:500;}

/* LAB ASSET PICKER */
.lap-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px;}
.lap-item{background:var(--c3);border:1px solid var(--c4);border-radius:var(--r);padding:8px 10px;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:space-between;}
.lap-item:hover{border-color:var(--c5);}
.lap-item.picked{border-color:var(--accent2);background:rgba(0,196,255,.07);}
.lap-name{font-size:12px;font-weight:500;}
.lap-sub{font-size:10px;color:var(--t3);}
.lap-check{width:16px;height:16px;border-radius:50%;border:1.5px solid var(--c5);display:flex;align-items:center;justify-content:center;font-size:10px;transition:all .15s;}
.lap-item.picked .lap-check{background:var(--accent2);border-color:var(--accent2);color:#000;}
.lab-section-title{font-size:11px;color:var(--t2);text-transform:uppercase;letter-spacing:.07em;margin-bottom:8px;margin-top:14px;}
.lab-picked-list{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px;min-height:28px;}
.picked-chip{display:inline-flex;align-items:center;gap:6px;background:rgba(0,196,255,.1);border:1px solid rgba(0,196,255,.25);border-radius:20px;padding:3px 10px;font-size:11px;color:var(--accent2);}
.picked-chip button{background:none;border:none;color:var(--t3);cursor:pointer;font-size:12px;display:flex;align-items:center;padding:0;line-height:1;}
.picked-chip button:hover{color:var(--red);}

/* ── LIVE TICKER ── */
.live-ticker{background:var(--c1);border-bottom:1px solid var(--c4);padding:5px 16px;display:flex;align-items:center;gap:0;overflow:hidden;white-space:nowrap;height:30px;grid-column:1/-1;}
.live-dot{width:7px;height:7px;border-radius:50%;background:var(--green);margin-right:10px;flex-shrink:0;animation:livePulse 1.8s infinite;}
@keyframes livePulse{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(0,208,132,.6)}60%{opacity:.7;box-shadow:0 0 0 5px rgba(0,208,132,0)}}
.ticker-track{overflow:hidden;flex:1;min-width:0;}
.ticker-scroll{display:inline-flex;gap:0;animation:tickerMove 80s linear infinite;}
.ticker-scroll:hover{animation-play-state:paused;}
.ticker-item{display:inline-flex;align-items:center;gap:5px;padding:0 16px;border-right:1px solid var(--c4);font-size:11px;font-family:var(--font-mono);color:var(--t2);}
.ticker-item .t-sym{color:var(--t1);font-weight:500;}
.ticker-item .up{color:var(--green);}
.ticker-item .dn{color:var(--red);}
@keyframes tickerMove{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.price-flash-up{animation:flashUp .7s ease;}
.price-flash-dn{animation:flashDn .7s ease;}
@keyframes flashUp{0%,100%{}40%{color:var(--green)!important;text-shadow:0 0 8px rgba(0,208,132,.5)}}
@keyframes flashDn{0%,100%{}40%{color:var(--red)!important;text-shadow:0 0 8px rgba(255,71,87,.5)}}

/* ── MARKET CLOCK + REFRESH ── */
.session-open  { background:rgba(0,208,132,.08);border-color:rgba(0,208,132,.3)!important;color:var(--green); }
.session-closed{ background:rgba(255,71,87,.07); border-color:rgba(255,71,87,.25)!important;color:var(--red);  }

.dot-open  { background:var(--green); box-shadow:0 0 6px var(--green); animation:pulse 1.4s infinite; }
.dot-closed{ background:var(--red); }

@keyframes pulse{0%,100%{opacity:1;}50%{opacity:.4;}}
@keyframes spinOnce{from{transform:rotate(0)}to{transform:rotate(360deg)}}


/* ── CANDLESTICK ── */
.candle-wrap{position:relative;width:100%;background:#0a0c10;border-radius:var(--r2);border:1px solid rgba(0,196,255,.15);overflow:hidden;display:flex;flex-direction:column;}
canvas.candle-canvas{display:block;width:100%;height:340px;touch-action:none;}
/* Antes .candle-hud flotaba en position:absolute sobre el propio
   canvas, con un fondo semitransparente que se veía como un tooltip
   de depuración olvidado, no como parte del diseño — desconectado del
   resto de la tarjeta y comiéndose espacio real del gráfico. Ahora es
   una barra de cabecera de verdad, integrada arriba del canvas (el
   mismo patrón que usan las plataformas de trading reales para
   mostrar O/H/L/C persistente), con su propio fondo y un borde
   inferior que la separa limpiamente de las velas. */
.candle-hud{display:flex;gap:8px;padding:8px 10px;background:var(--c1);border-bottom:1px solid var(--c4);flex-shrink:0;flex-wrap:wrap;}
.chud-item{display:flex;flex-direction:column;gap:2px;background:var(--c2);border:1px solid var(--c4);border-radius:7px;padding:5px 11px;box-shadow:var(--sombra-sm);}
.chud-lbl{font-size:10px;color:var(--t3);text-transform:uppercase;letter-spacing:.06em;}
.chud-val{font-size:12.5px;font-family:var(--font-mono);color:var(--t1);font-weight:600;}

/* ── FINANCIAL DOCS ── */













/* ── PERSISTENCE CONTROLS ── */
.persist-btns{display:flex;align-items:center;gap:6px;}
.pbtn{height:28px;padding:0 10px;border-radius:6px;font-size:11px;font-family:var(--font-body);font-weight:500;cursor:pointer;border:none;display:flex;align-items:center;gap:4px;transition:all .15s;white-space:nowrap;}


.pbtn-export{background:rgba(255,180,0,.12);color:var(--amber);border:1px solid rgba(255,180,0,.25);}.pbtn-export:hover{background:rgba(255,180,0,.22);}
.pbtn-reset{background:rgba(255,71,87,.1);color:var(--red);border:1px solid rgba(255,71,87,.25);}.pbtn-reset:hover{background:rgba(255,71,87,.2);}
.save-indicator{display:flex;align-items:center;gap:0;height:16px;padding:0;border-radius:10px;background:transparent;overflow:hidden;white-space:nowrap;transition:padding .25s, background .25s;}
.save-indicator::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--green);opacity:0;transition:opacity .3s;flex-shrink:0;}
.save-indicator span{font-size:10px;color:var(--green);max-width:0;overflow:hidden;transition:max-width .3s;margin-left:0;}
.save-indicator.flash{padding:0 8px;background:rgba(0,208,132,.1);}
.save-indicator.flash::before{opacity:1;}
.save-indicator.flash span{max-width:60px;margin-left:5px;}

/* ── MENÚ DESPLEGABLE DE EXPORTAR (unifica PDF / para el profesor / respaldo / cargar) ── */
.export-menu{display:none;position:absolute;top:calc(100% + 6px);left:0;background:var(--c2);border:1px solid var(--c4);border-radius:var(--r2);box-shadow:0 10px 30px rgba(0,0,0,.4);padding:6px;min-width:230px;z-index:500;}
.export-menu.open{display:block;}
.export-menu button{display:flex;align-items:center;gap:9px;width:100%;padding:9px 10px;background:transparent;border:none;border-radius:var(--r);color:var(--t1);font-size:12.5px;font-family:var(--font-body);text-align:left;cursor:pointer;white-space:nowrap;}
.export-menu button:hover{background:var(--c3);}
.export-menu button i{font-size:14px;color:var(--t3);width:16px;text-align:center;}
.export-menu-sep{height:1px;background:var(--c4);margin:5px 2px;}

/* ── BUSCADOR UNIVERSAL (Ctrl+K) ── */
.cmdk-trigger{display:flex;align-items:center;gap:7px;height:28px;padding:0 10px;margin-left:10px;background:var(--c2);border:1px solid var(--c4);border-radius:var(--r);color:var(--t3);font-size:12px;font-family:var(--font-body);cursor:pointer;flex-shrink:0;}
.cmdk-trigger:hover{border-color:var(--accent2);color:var(--t2);}
.cmdk-trigger-kbd{background:var(--c3);border-radius:4px;padding:1px 6px;font-size:10px;font-family:var(--font-mono);color:var(--t3);}
.cmdk-overlay{position:fixed;inset:0;z-index:5000;background:rgba(4,7,12,.7);display:flex;align-items:flex-start;justify-content:center;padding-top:12vh;}
.cmdk-box{background:var(--c1);border:1px solid var(--c4);border-radius:var(--r3);width:100%;max-width:560px;max-height:60vh;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.5);margin:0 16px;}
.cmdk-input-row{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--c4);flex-shrink:0;}
.cmdk-input-row i{color:var(--t3);font-size:16px;}
.cmdk-input-row input{flex:1;background:transparent;border:none;outline:none;color:var(--t1);font-size:15px;font-family:var(--font-body);}
.cmdk-results{overflow-y:auto;padding:8px;}
.cmdk-group-label{font-size:10px;color:var(--t3);text-transform:uppercase;letter-spacing:.05em;padding:8px 10px 4px;}
.cmdk-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--r);cursor:pointer;font-size:13px;}
.cmdk-item:hover,.cmdk-item.active{background:var(--c3);}
.cmdk-item i{font-size:15px;color:var(--accent2);width:18px;text-align:center;flex-shrink:0;}
.cmdk-item-sub{color:var(--t3);font-size:11px;margin-left:auto;}
@media(max-width:1024px){.cmdk-trigger-txt,.cmdk-trigger-kbd{display:none;}.cmdk-trigger{padding:0 8px;margin-left:6px;}}

/* ── MODAL CONFIRM ── */
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:9998;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s;}
.modal-bg.open{opacity:1;pointer-events:all;}
.modal-box{background:var(--c2);border:1px solid var(--c5);border-radius:var(--r2);padding:28px 32px;max-width:420px;width:90%;box-shadow:0 8px 40px rgba(0,0,0,.5);}
.modal-title{font-family:var(--font-head);font-size:18px;font-weight:700;color:var(--t1);margin-bottom:8px;}
.modal-body{font-size:13px;color:var(--t2);line-height:1.6;margin-bottom:22px;}
.modal-actions{display:flex;gap:10px;justify-content:flex-end;}

/* ════════════════════════════════════════
   RESPONSIVE MOBILE — CapitalLab
   Breakpoints: 768px (mobile), 1024px (tablet)
   ════════════════════════════════════════ */

/* ── HAMBURGER BUTTON ── */
.hamburger-btn{display:none;flex-direction:column;justify-content:center;gap:5px;width:36px;height:36px;padding:6px;cursor:pointer;border:none;background:transparent;border-radius:var(--r);flex-shrink:0;transition:background .15s;}
.btn-modo-enfoque{display:flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;cursor:pointer;border:none;background:transparent;color:var(--t2);border-radius:var(--r);flex-shrink:0;transition:background .15s;}
.btn-modo-enfoque:hover{background:var(--c3);color:var(--t1);}
.shell-body.enfoque{grid-template-columns:0 1fr;}
.shell-body.enfoque .sidebar{width:0;min-width:0;overflow:hidden;padding:0;border:none;opacity:0;pointer-events:none;}
.mobile-bottom-nav{display:none;}
.mkt-barra-rapida-movil{display:none;}
.mkt-espaciador-movil{display:none;}
.hamburger-btn:hover{background:var(--c3);}
.hamburger-btn span{display:block;height:2px;background:var(--t1);border-radius:2px;transition:all .22s;}
.hamburger-btn.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.hamburger-btn.open span:nth-child(2){opacity:0;transform:scaleX(0);}
.hamburger-btn.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ── TABLET (≤1024px) ── */
@media(max-width:1024px){
  .shell-body{grid-template-columns:180px 1fr;}
  .wl-nav-btn{font-size:10px;padding:5px 7px;}
  .persist-btns{gap:4px;}
  .pbtn{padding:0 7px;font-size:10px;}
  .metric-val{font-size:17px;}
  .detail-grid{grid-template-columns:repeat(2,1fr);}
}

/* ── MOBILE (≤768px) ── */
/* ROOT FIX: iOS Safari 100vh bug
   100vh on iOS = viewport + address bar (hidden).
   Using --vh custom property updated by JS + -webkit-fill-available fallback.
   Shell switches from grid to flexbox so height is always correct. */
@media(max-width:768px){

  /* 1. VIEWPORT HEIGHT FIX */
  html{
    height:-webkit-fill-available;   /* iOS Safari fallback */
    height:100%;
  }
  body{
    height:-webkit-fill-available;
    height:100%;
    overflow:hidden;
  }

  /* 2. SHELL: flex instead of grid — avoids the 1fr→0 bug */
  .shell{
    display:flex;
    flex-direction:column;
    height:100vh;                     /* base */
    height:-webkit-fill-available;   /* iOS Safari */
    height:calc(var(--vh,1vh)*100);  /* JS-updated --vh */
    overflow:hidden;
  }

  /* 3. TOPBAR stays fixed-height */
  .topbar{
    flex-shrink:0;
    height:48px;
    min-height:48px;
    padding:0 10px;
    gap:8px;
  }

  /* 4. TICKER hidden — removed from layout entirely */
  .live-ticker{display:none;height:0;overflow:hidden;}

  /* 5. SHELL-BODY: flex row, fills all remaining height */
  .shell-body{
    flex:1;
    min-height:0;           /* CRITICAL: allows flex child to shrink below content height */
    display:flex;
    flex-direction:row;
    overflow:hidden;
    position:relative;
  }

  /* 6. SIDEBAR: absolute drawer — does NOT affect layout */
  .sidebar{
    position:fixed;
    left:-244px;
    top:48px;
    bottom:0;
    width:240px;
    z-index:499;
    overflow-y:auto;
    transition:left .25s cubic-bezier(.4,0,.2,1);
    box-shadow:4px 0 24px rgba(0,0,0,.6);
  }
  .sidebar.mobile-open{left:0;}

  /* 7. MAIN-CONTENT: flex:1 + overflow-y:auto — scrollable content area */
  .main-content{
    flex:1;
    min-width:0;
    min-height:0;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    position:relative;
  }
  .main-content.mercado-scroll-propio{overflow-y:hidden;}

  /* 8. PAGES: normal block flow inside scrollable container */
  .page{
    display:none;
    padding:12px 12px;
    box-sizing:border-box;
    min-height:100%;
  }
  .page.active{display:block;}

  /* ── TABLAS: en vez de arreglar cada tabla suelta por separado, esta
     regla hace que CUALQUIER tabla de la app se pueda deslizar hacia los
     lados en pantallas angostas, en vez de recortarse o forzar el ancho
     de toda la página. Es la corrección al desbordamiento reportado en
     Resultados y Resultados Lab, aplicada de forma general. ── */
  table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .auth-box{padding:22px 18px;max-height:92vh;}

  /* ── BARRA DE NAVEGACIÓN INFERIOR ── */
  .mobile-bottom-nav{
    display:flex;position:fixed;bottom:0;left:0;right:0;z-index:490;
    background:var(--c1);border-top:1px solid var(--c4);
    padding:4px 2px calc(4px + env(safe-area-inset-bottom));
  }
  .mbn-btn{
    flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
    padding:6px 2px;background:transparent;border:none;color:var(--t3);cursor:pointer;
    min-width:0;border-radius:var(--r);
  }
  .mbn-btn i{font-size:19px;}
  .mbn-btn span{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
  .mbn-btn.active{color:var(--accent2);}
  /* Deja espacio abajo para que la barra fija no tape el contenido ni el
     resto de elementos flotantes (toasts, botón de exportar, etc.) */
  .main-content{padding-bottom:62px;}
  .deshacer-toast{bottom:84px!important;}
  .mkt-barra-rapida-movil{
    display:flex;position:fixed;bottom:calc(62px + env(safe-area-inset-bottom));left:0;right:0;z-index:485;
    background:var(--c1);border-top:1px solid var(--c4);padding:8px 12px;align-items:center;gap:10px;
    box-shadow:0 -4px 14px rgba(0,0,0,.25);
  }
  .mbr-precio{display:flex;flex-direction:column;flex:1;min-width:0;}
  .mbr-ticker{font-size:10px;color:var(--t3);}
  .mbr-valor{font-size:16px;font-weight:700;color:var(--t1);}
  .mbr-var{font-size:11px;}
  .mbr-var.g{color:var(--green);} .mbr-var.r{color:var(--red);}
  .mbr-botones{display:flex;gap:6px;flex-shrink:0;}
  .mbr-botones .btn{padding:9px 14px;font-size:12.5px;}
  .mkt-espaciador-movil{height:130px;}
  #prof-vivo-heatmap{grid-template-columns:repeat(auto-fill,minmax(95px,1fr))!important;gap:8px!important;}
  /* Botones pequeños en listas (roster, cuestionarios, calificaciones):
     un poco más de alto para que el dedo no falle el toque, sin romper
     filas donde van varios botones juntos. */
  .btn-sm{padding:7px 12px;min-height:32px;}
  /* El botón normal (.btn) nunca había tenido un mínimo táctil en móvil —
     con su padding y tamaño de letra normales, quedaba en unos 30px de
     alto, por debajo del mínimo recomendado de 44px para el dedo. */
  .btn{min-height:44px;}

  /* ── TOPBAR elements ── */
  .hamburger-btn{display:flex;}
  .btn-modo-enfoque{display:none;}
  .topbar-brand{font-size:13.5px;}
  .topbar-sep,.topbar-sep+span{display:none;}
  .persist-btns{gap:3px;}
  .pbtn{height:28px;padding:0 6px;font-size:0;}
  .btn-buy,.btn-sell{min-height:44px;padding:10px 18px;font-size:14px;}
  .pbtn i{font-size:14px;}
  .cap-pill{padding:3px 7px;font-size:10.5px;flex-shrink:0;gap:3px;}
  .topbar-right{gap:4px;}
  .cmdk-trigger{padding:0 6px;margin-left:2px;}
  .topbar{padding:0 8px;gap:6px;}
  .hamburger-btn{width:30px;height:30px;padding:5px;}
  /* El menú se posicionaba de forma relativa a un contenedor padre
     angosto, quedando con su borde izquierdo fuera de la pantalla
     visible (renderizaba, pero invisible en la práctica). En móvil se
     ancla de forma fija dentro de la pantalla, sin depender de la
     posición exacta del botón que lo abre. */
  .export-menu{position:fixed!important;left:12px!important;right:12px!important;top:60px!important;min-width:0;max-width:none;}
  .export-menu button{font-size:12px;padding:8px;}
  .cap-edit-hint{display:none;}
  /* El badge con el texto del rol (DOCENTE/ESTUDIANTE) ocupa mucho espacio
     de texto que ya sabe el propio usuario; se reemplaza por un punto de
     color, y el chip completo se aprieta al mínimo. */
  .user-chip{padding:4px 3px 4px 7px;gap:2px;}
  .user-chip .role-badge{width:8px!important;height:8px!important;padding:0!important;border-radius:50%!important;font-size:0!important;}
  .user-chip .role-badge.docente{background:var(--gold);}
  .user-chip .role-badge.estudiante{background:var(--accent2);}
  .user-chip .role-badge.superadmin{background:var(--red);}
  .user-chip button{width:26px;height:26px;}
  /* Red de seguridad: si aun así no cabe todo en pantallas muy angostas,
     que se pueda deslizar hacia los lados en vez de quedar inalcanzable
     fuera del borde de la pantalla sin ninguna forma de tocarlo. */
  .topbar-right{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
  .topbar-right::-webkit-scrollbar{display:none;}
  #nav-pnl-badge{display:none!important;}

  /* ── TYPOGRAPHY ── */
  .page-title{font-size:18px;}
  .page-sub{font-size:11px;}
  .card-title{font-size:13px;}

  /* ── METRICS ── */
  .metric-grid{grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:12px;}
  .metric-val{font-size:16px;}
  .metric{padding:10px 12px;}

  /* ── GRIDS collapse to single column ── */
  .grid2,.grid3{grid-template-columns:1fr;}

  /* ── CHARTS shorter ── */
  .chart-box{height:180px;}
  .chart-box-lg{height:220px;}

  /* ── CARDS ── */
  .card{padding:12px 14px;}

  /* ── TABLES: horizontal scroll ── */
  table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;}
  th{font-size:10px;padding:6px 8px;}
  td{padding:7px 8px;font-size:11px;}

  /* ── MARKET ── */
  .market-toolbar{padding:8px 10px;gap:8px;flex-wrap:wrap;}
  .mt-price{font-size:22px;}
  .market-body{padding:10px;}
  .market-main{height:auto;overflow:visible;}
  .horizon-bar{gap:4px;padding:6px 8px;flex-wrap:wrap;}
  
  .detail-grid{grid-template-columns:repeat(2,1fr);}
  .dk-val{font-size:15px;}

  /* ── TRADING ── */
  .trade-btns{grid-template-columns:1fr 1fr;}
  .tp-info{grid-template-columns:1fr 1fr;}

  /* ── LAB ── */
  .lap-grid{grid-template-columns:repeat(2,1fr)!important;}

  /* ── MODALS ── */
  .cap-modal-box,.modal-box{width:92%;padding:20px 18px;}

  /* ── SESSION BADGE ── */
  #mkt-session-timer{display:none;}
  #mkt-session-label{font-size:10.5px;}

  /* ── BUTTONS ── */
  .btn{padding:7px 12px;font-size:12px;}
  .btn-sm{padding:5px 10px;font-size:11px;}

  /* ── KPI ROWS ── */
  .kpi-row{grid-template-columns:repeat(2,1fr)!important;}

  /* ── GRILLAS DE MÉTRICAS DE 4/5 COLUMNAS (respuesta a reporte de
     desbordamiento en Cartera en móvil) ── Estas filas de tarjetas
     (Evaluación financiera estructurada, resumen de Análisis, panel
     de Resultados, etc.) se generan en JS con grid-template-columns
     fijo escrito directamente como estilo en línea — un estilo en
     línea no puede ser alcanzado por ningún media query externo, así
     que en móvil intentaban caber 4 o 5 columnas sin importar el
     ancho real de pantalla, empujando toda la página hacia un lado.
     Se movió esa parte del estilo a estas clases (ver
     simulador-simulacion.js y simulador-interfaz.js), que sí pueden
     responder aquí. !important porque conviven con un
     grid-template-columns que sigue viniendo en el mismo atributo
     style en línea para el resto de propiedades (gap, margin) —
     sin !important, el inline seguiría ganando. */
  .grid-4-resp,.grid-5-resp{grid-template-columns:repeat(2,1fr)!important;}
}

/* ── SMALL MOBILE (≤480px) ── */
@media(max-width:480px){
  .page{padding:10px;}
  .page-title{font-size:16px;}
  .metric-val{font-size:14px;}
  .card{padding:10px 11px;}
  .pbtn{padding:0 5px;}
  .chart-box{height:160px;}
  .chart-box-lg{height:190px;}
  .detail-grid{grid-template-columns:1fr 1fr;}
  .trade-btns{grid-template-columns:1fr;}
  .metric-grid{grid-template-columns:1fr 1fr;}
  /* Última palabra para que en teléfonos angostos el ícono de usuario
     (notificaciones, sesión, cerrar sesión) siempre quepa sin necesidad
     de deslizar la topbar hacia los lados. */
  .topbar{padding:0 6px;gap:4px;}
  .topbar-brand{font-size:12.5px;}
  .cmdk-trigger{padding:0 5px;margin-left:0;}
  .cap-pill{padding:2px 6px;font-size:10px;gap:2px;}
  .user-chip{padding:3px 2px 3px 6px;gap:1px;}
  .user-chip button{width:23px;height:23px;}
  .user-chip button i{font-size:11px;}
}

/* ══════════════════════════════════════════════════
   AUTENTICACIÓN — pantalla de acceso
   ══════════════════════════════════════════════════ */
.hidden{display:none!important;}
#auth-gate{position:fixed;inset:0;z-index:2000;background:var(--c0);display:flex;align-items:center;justify-content:center;padding:20px;}
#auth-gate.hidden{display:none;}
.auth-bg-glow{position:absolute;inset:0;background:radial-gradient(circle at 20% 15%, rgba(41,98,255,.14), transparent 45%),radial-gradient(circle at 85% 85%, rgba(0,196,255,.10), transparent 40%);pointer-events:none;}
.auth-box{position:relative;width:100%;max-width:400px;max-height:88vh;overflow-y:auto;background:var(--c1);border:1px solid var(--c4);border-radius:var(--r3);padding:32px 28px;box-shadow:0 20px 60px rgba(0,0,0,.45);}
.auth-brand{font-family:var(--font-head);font-size:22px;font-weight:700;color:var(--t1);text-align:center;margin-bottom:4px;display:flex;flex-direction:column;align-items:center;gap:10px;}
/* Mismo fondo exacto que .auth-box (--c1) — se integra sin borde. Más
   grande que en la barra superior porque aquí sí tiene espacio propio
   de sobra, es la primera pantalla que ve cualquiera. */
.auth-logo{width:56px;height:56px;border-radius:12px;}
.auth-brand > span > span{color:var(--accent2);}
.auth-sub{text-align:center;font-size:12px;color:var(--t2);margin-bottom:22px;}
.auth-tabs{display:flex;background:var(--c2);border-radius:var(--r2);padding:3px;margin-bottom:20px;}
.auth-tab{flex:1;text-align:center;padding:8px 0;font-size:12.5px;font-weight:600;color:var(--t2);border-radius:8px;cursor:pointer;transition:all .15s;}
.auth-tab.active{background:var(--accent);color:#fff;}
.auth-field{margin-bottom:13px;}
.auth-field label{display:block;font-size:11px;color:var(--t2);margin-bottom:5px;text-transform:uppercase;letter-spacing:.04em;}
.auth-field input,.auth-field select{width:100%;background:var(--c2);border:1px solid var(--c4);border-radius:var(--r);padding:9px 11px;color:var(--t1);font-family:var(--font-body);font-size:13px;}
.auth-field input:focus,.auth-field select:focus{outline:none;border-color:var(--accent);}
.auth-role-row{display:flex;gap:8px;}
.auth-role-opt{flex:1;text-align:center;padding:9px 0;border:1px solid var(--c4);border-radius:var(--r);font-size:12px;color:var(--t2);cursor:pointer;transition:all .15s;}
.auth-role-opt.active{border-color:var(--accent);color:var(--accent2);background:rgba(41,98,255,.08);}
.auth-submit{width:100%;padding:11px 0;background:var(--accent);color:#fff;border:none;border-radius:var(--r);font-size:13.5px;font-weight:600;cursor:pointer;margin-top:6px;transition:filter .15s;}
.auth-submit:hover{filter:brightness(1.1);}
.auth-submit:disabled{opacity:.6;cursor:not-allowed;}
.auth-forgot{display:block;text-align:center;font-size:11.5px;color:var(--t2);margin-top:14px;cursor:pointer;text-decoration:underline;}
.auth-forgot:hover{color:var(--accent2);}
.auth-msg{font-size:12px;padding:9px 11px;border-radius:var(--r);margin-bottom:14px;display:none;}
.auth-msg.show{display:block;}
.auth-msg.error{background:rgba(255,71,87,.1);border:1px solid rgba(255,71,87,.3);color:#ff8a94;}
.auth-msg.success{background:rgba(0,208,132,.1);border:1px solid rgba(0,208,132,.3);color:#5fe3ac;}
.auth-hint{font-size:10.5px;color:var(--t3);margin-top:3px;line-height:1.4;}
.auth-view{display:none;}
.auth-view.active{display:block;}
.auth-spinner{display:inline-block;width:13px;height:13px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:auth-spin .7s linear infinite;vertical-align:-2px;margin-right:6px;}
@keyframes auth-spin{to{transform:rotate(360deg);}}

/* ── Modo invitado (probar sin cuenta) ── */
.auth-guest-sep{display:flex;align-items:center;gap:10px;margin:20px 0 14px;}
.auth-guest-sep::before,.auth-guest-sep::after{content:"";flex:1;height:1px;background:var(--c4);}
.auth-guest-sep span{font-size:10.5px;color:var(--t3);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;}
.auth-guest-row{display:flex;gap:8px;}
.auth-guest-opt{flex:1;text-align:center;padding:10px 6px;border:1px dashed var(--c4);border-radius:var(--r);font-size:11.5px;color:var(--t2);cursor:pointer;transition:all .15s;}
.auth-guest-opt:hover{border-color:var(--accent2);color:var(--accent2);background:rgba(0,196,255,.06);}
.auth-guest-opt i{display:block;font-size:16px;margin-bottom:4px;}
.user-chip .role-badge.guest{background:rgba(122,138,176,.15);color:var(--t2);}

/* ── Casilla de resultado: código de sesión generado ── */
.auth-code-result{text-align:center;background:rgba(0,208,132,.07);border:1px solid rgba(0,208,132,.28);border-radius:var(--r2);padding:18px 16px;margin-top:6px;}
.auth-code-label{font-size:11px;color:var(--t2);text-transform:uppercase;letter-spacing:.04em;margin-bottom:10px;}
.auth-code-value{font-family:var(--font-mono);font-size:26px;font-weight:700;letter-spacing:.12em;color:var(--green);background:var(--c2);border:1px dashed rgba(0,208,132,.4);border-radius:var(--r);padding:10px 0;margin-bottom:10px;user-select:all;}

/* ── Chip de usuario en la topbar ── */
.user-chip{display:flex;align-items:center;gap:8px;background:var(--c2);border:1px solid var(--c4);border-radius:20px;padding:5px 6px 5px 12px;font-size:11.5px;color:var(--t1);}
.user-chip .role-badge{font-size:10px;text-transform:uppercase;letter-spacing:normal;padding:2px 7px;border-radius:10px;font-weight:700;white-space:nowrap;flex-shrink:0;}
.user-chip .chip-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;}
.user-chip button{flex-shrink:0;}
.user-chip .role-badge.docente{background:rgba(212,175,55,.15);color:var(--gold);}
.user-chip .role-badge.estudiante{background:rgba(0,196,255,.12);color:var(--accent2);}
.user-chip .role-badge.superadmin{background:rgba(255,71,87,.14);color:var(--red);}
.user-chip button{background:var(--c3);border:none;color:var(--t2);width:24px;height:24px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.user-chip button:hover{background:var(--c4);color:var(--t1);}
@media(max-width:900px){.user-chip .chip-name{display:none;}}

/* ── Panel de estudiantes en la nube (Modo Profesor) ── */
.nav-badge{display:inline-flex;align-items:center;justify-content:center;background:var(--c3);color:var(--t2);font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:10px;}
#prof-cloud-table td{padding:8px 10px;border-bottom:1px solid var(--c3);vertical-align:middle;}
#prof-cloud-table tr:last-child td{border-bottom:none;}

@keyframes prof-join-pulse{0%,100%{opacity:1;}50%{opacity:.4;}}
@keyframes logro-entrada{from{opacity:0;transform:translateX(20px);}to{opacity:1;transform:translateX(0);}}
@keyframes spin{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}
.grade-pill{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:10px;}
.grade-pill.alta{background:rgba(0,208,132,.12);color:var(--green);}
.grade-pill.media{background:rgba(212,175,55,.14);color:var(--gold);}
.grade-pill.baja{background:rgba(255,71,87,.12);color:var(--red);}
.grade-pill.sin{background:var(--c3);color:var(--t3);}

/* ── Modal de calificación con rúbrica ── */
.grade-modal-overlay{position:fixed;inset:0;z-index:2500;background:rgba(4,7,12,.75);display:flex;align-items:center;justify-content:center;padding:20px;}
.grade-modal{background:var(--c1);border:1px solid var(--c4);border-radius:var(--r3);padding:24px;max-width:460px;width:100%;max-height:88vh;overflow-y:auto;}
.grade-modal h3{font-family:var(--font-head);font-size:17px;margin-bottom:2px;}
.grade-modal .sub{font-size:12px;color:var(--t3);margin-bottom:16px;}
.grade-field{margin-bottom:14px;}
.grade-field label{display:block;font-size:11px;color:var(--t2);text-transform:uppercase;letter-spacing:.04em;margin-bottom:5px;}
.grade-field input[type=number],.grade-field textarea{width:100%;background:var(--c2);border:1px solid var(--c4);border-radius:var(--r);padding:9px 11px;color:var(--t1);font-family:var(--font-body);font-size:13px;}
.grade-field textarea{min-height:70px;resize:vertical;}




/* Lanzador de "Mas herramientas" — tarjetas con icono a la izquierda,
   titulo y una linea de descripcion, con respuesta real al mouse.
   Antes eran cuadrados centrados sin hover ni descripcion, y no se
   entendia que hacia cada herramienta sin entrar a probarla. */
.herramientas-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.herramienta-card{display:flex;align-items:flex-start;gap:10px;text-align:left;background:var(--c2);border:1px solid var(--c4);border-radius:10px;padding:12px;cursor:pointer;color:var(--t1);position:relative;transition:border-color .15s,background .15s,transform .15s;font-family:var(--font-body);}
.herramienta-card:hover{border-color:var(--accent2);background:var(--c3);transform:translateY(-1px);}
.herramienta-card:active{transform:translateY(0);}
.herramienta-card > i{font-size:20px;flex-shrink:0;margin-top:1px;}
.herramienta-card .hc-titulo{font-size:12.5px;font-weight:600;line-height:1.3;}
.herramienta-card .hc-desc{font-size:10.5px;color:var(--t3);line-height:1.4;margin-top:3px;}
@media(max-width:640px){
  .herramientas-grid{grid-template-columns:1fr;}
}
.export-modal-overlay{position:fixed;inset:0;background:rgba(4,7,12,.75);backdrop-filter:blur(4px);z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px;}
.export-modal{position:relative;background:var(--c1, #10141d);border:1px solid var(--c3, #1a2030);border-radius:16px;padding:28px 26px;max-width:520px;width:100%;max-height:90vh;overflow-y:auto;}
.modal-close{position:absolute;top:14px;right:14px;background:transparent;border:none;color:var(--t3, #7a8ab0);font-size:18px;cursor:pointer;padding:4px;border-radius:6px;line-height:1;}
.modal-close:hover{color:var(--t1, #e8edf8);background:var(--c2, #161b26);}
.tx-filtro-tipo-btn{background:var(--c2, #161b26);border:1px solid var(--c4, #242d42);color:var(--t2, #b8c4dc);font-size:11px;padding:5px 10px;border-radius:14px;cursor:pointer;white-space:nowrap;}
/* Fila de "Mis sesiones de clase" — en escritorio, título y botones
   quedan lado a lado como siempre; en pantallas angostas, los
   botones de archivar/eliminar antes quedaban apretados y pegados
   contra el botón "Cambiar" cuando una sesión tenía los tres a la
   vez, así que se apilan en su propia fila, con espacio real. */
@media(min-width:640px){
  .ms-fila-sesion{display:flex;align-items:center;justify-content:space-between;gap:10px;}
  .ms-fila-sesion-info{margin-bottom:0 !important;}
}
.tx-filtro-tipo-btn:hover{border-color:var(--accent2, #4a9eff);}
.tx-filtro-tipo-btn.active{background:var(--accent2, #4a9eff);border-color:var(--accent2, #4a9eff);color:#fff;}
.tx-grupo-dia-body.colapsado{display:none;}
/* El Mentor IA no debe aparecer antes de iniciar sesión, y en móvil
   no debe chocar con el botón de reabrir noticias que ya vive en la
   esquina inferior derecha dentro de Mercado. */
#auth-gate:not(.hidden) ~ #mentor-ia-fab, #auth-gate:not(.hidden) ~ #mentor-ia-panel{display:none !important;}
@media(max-width:768px){
  /* El botón flotante del Mentor IA seguía chocando con la barra de
     navegación inferior en distintos escenarios, incluso después de
     subirlo — en vez de seguir ajustando su posición, se oculta por
     completo en móvil y se accede desde el lanzador de "Más
     herramientas" en su lugar, donde no compite con nada más. */
  #mentor-ia-fab{display:none !important;}
  #mentor-ia-panel{bottom:calc(70px + env(safe-area-inset-bottom));right:12px;}
}
/* ESCALA PARA PANTALLAS GRANDES — ELIMINADA. Aquí vivía body{zoom:...}
   para pantallas ≥1280px (hasta 1.45× en 3440px+). Se quitó por
   completo: en un mismo día produjo tres bugs reales distintos
   (desenfoque de los gráficos de Cartera, un bug de repintado que
   dejaba el fondo bloqueando contenido al hacer scroll, y — el más
   grave — desplazamiento con la rueda del mouse que dejaba de
   funcionar en Windows + Edge a 2560×1440, reportado directamente por
   el usuario y no reproducible en este entorno de prueba). `zoom` es
   una propiedad no estándar con comportamiento inconsistente entre
   motores de navegador y configuraciones de escalado de Windows —
   cada síntoma nuevo costaba una sesión de diagnóstico distinta. La
   comodidad cosmética que daba (evitar el zoom manual del navegador
   en pantallas grandes) no vale el riesgo de romper interacción
   básica como el scroll. En pantallas grandes ahora el contenido se
   ve a tamaño real (sin escalar) en vez de agrandado — el usuario
   siempre puede usar el zoom nativo de su navegador (Ctrl + / Ctrl -)
   si quiere agrandar la interfaz, con la ventaja de que ESE zoom sí
   está garantizado por el navegador para no romper scroll ni hit-testing. */

/* Objetivos táctiles ampliados en dispositivos táctiles reales
   (@media pointer:coarse detecta específicamente dedo/stylus, no
   mouse — así la densidad visual en escritorio con mouse preciso no
   se ve afectada). WCAG 2.5.8 exige un mínimo de 24×24px de área
   táctil, con 44×44px como práctica recomendada; objetivos menores
   tienen hasta 3x más tasa de error según estudios de usabilidad.
   Se usa un pseudo-elemento invisible que expande el "hitbox" real
   sin cambiar el tamaño visual del elemento — el ícono/botón se ve
   igual de compacto, pero responde al toque en un área más generosa
   alrededor. Elementos identificados como los más pequeños de la
   app: el ícono de colapsar tarjetas, los botones +/- de cantidad
   en el panel de trading, y las pestañas de Análisis/Mercado. */
@media (pointer: coarse) {
  .card-collapse-toggle, .mkt-chart-toggle-btn, .an-tab-btn, .tp-qty-btn {
    position: relative;
  }
  .card-collapse-toggle::after, .mkt-chart-toggle-btn::after, .an-tab-btn::after, .tp-qty-btn::after {
    content: "";
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    width: max(44px, 100%);
    height: max(44px, 100%);
  }
}

/* Un <canvas> nativo (sin Chart.js) NUNCA se ajusta automáticamente
   al ancho de su contenedor a menos que se le indique explícitamente
   por CSS — sin esto, usa su tamaño nativo por defecto (300px, o lo
   que el propio JS le haya asignado como atributo width/height en
   píxeles reales), desbordando el contenedor en pantallas angostas y
   obligando al navegador a comprimirlo visualmente ("zoom" ilegible
   reportado en móvil real). Bug real encontrado en #replay-canvas —
   esta regla cubre cualquier canvas nativo futuro con el mismo
   patrón, para que este problema no se repita silenciosamente. */
canvas{max-width:100%;display:block;}
#replay-canvas{width:100%;height:100%;}

/* ── Barra superior en el rango intermedio (tablet y portátil chico) ──
   Por debajo de 768px ya existen reglas que la comprimen, y en escritorio
   ancho cabe entera; entre medio no habia ninguna, y su contenido (496px de
   botones mas la marca y el buscador) se salia de la ventana: 118px de mas a
   820px y 59px a 1024px, en todas las paginas. Se encoge lo prescindible —
   las etiquetas de texto de los botones, que conservan su icono, y el nombre
   del usuario, que se trunca — sin ocultar ninguna accion. */
/* Entre 1181px y 1400px la barra superior todavía no cabe: medido a 1280px,
   el bloque derecho pedía 817px y se salía 68px de la ventana. No hace falta
   la compresión completa de abajo, solo apretar separaciones y acortar el
   nombre del usuario, que es el elemento de ancho libre. */
@media (min-width:1181px) and (max-width:1400px){
  .topbar{padding:0 12px;gap:10px;}
  .topbar-right{gap:7px;min-width:0;}
  .pbtn{padding:0 9px;}
  .user-chip{gap:5px;padding:3px 7px;min-width:0;}
  .user-chip .chip-name{max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .user-chip .role-badge{max-width:74px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
}

@media (min-width:769px) and (max-width:1180px){
  .topbar{padding:0 10px;gap:8px;}
  .topbar-right{gap:6px;min-width:0;}

  /* font-size:0 colapsa la etiqueta, que es un nodo de texto suelto y no se
     puede ocultar de otra forma; el icono recupera su tamaño aparte. */
  .pbtn{font-size:0;gap:0;padding:0 8px;}
  .pbtn i{font-size:12px!important;}
  .save-indicator span{display:none;}

  .user-chip .chip-name{max-width:84px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .topbar-brand{font-size:14px;}
  .cap-pill{padding:4px 8px;}
}

/* Por debajo de 900px la marca completa ya no cabe junto a los botones:
   queda el logotipo, que sigue identificando el producto. */
@media (min-width:769px) and (max-width:900px){
  .topbar-brand{font-size:0;gap:0;}
  .topbar-brand span{font-size:0;}

  /* Red de seguridad, igual que en movil: si aun asi no cabe, que se pueda
     deslizar en vez de quedar fuera del borde sin forma de alcanzarlo. */
  .topbar-right{overflow-x:auto;scrollbar-width:none;}
  .topbar-right::-webkit-scrollbar{display:none;}
}

/* ── Piso de legibilidad y de area tactil en movil ──────────────────
   Medido sobre las 14 paginas a 390px: 40 controles reales quedaban en
   30–33px de alto (por debajo del minimo comodo para el pulgar) y varias
   etiquetas bajaban a 9–10px. Se sube solo lo que estaba por debajo del
   piso, sin tocar escritorio ni engordar el resto de la interfaz: el
   relleno de .page en movil ya esta en 10px y se deja igual. */
@media (max-width:768px){
  /* Area tactil: 38px de alto minimo en los controles que se pulsan. */
  .news-class-btn, .an-class-btn, .auth-tab, .tx-filtro-tipo-btn, .pbtn,
  .page select, .page .btn-sm{
    min-height:38px;
  }
  /* Los que son flex mantienen su contenido centrado al crecer. */
  .news-class-btn, .an-class-btn, .auth-tab, .tx-filtro-tipo-btn, .pbtn{
    display:inline-flex; align-items:center; justify-content:center;
  }

  /* Legibilidad: nada por debajo de 10.5px en texto que se lee. */
  .an-asset-card-nm{font-size:11px;}
  .metric-label{font-size:10.5px;}
  .page th{font-size:10.5px;}
  .badge{font-size:10.5px;}
}

/* Etiqueta de sector en las tarjetas de activo. Antes iba con estilo en
   linea a 8px, ilegible en telefono e imposible de ajustar por resolucion
   porque un estilo en linea gana a cualquier media query. Como clase, se
   mantiene densa en pantallas anchas y sube solo donde hace falta. */
.an-card-sector{font-size:10px;font-weight:600;}
@media (max-width:768px){ .an-card-sector{font-size:10.5px;} }

/* La rejilla de activos pedia 180px por columna, asi que en un telefono de
   360px de ancho caia a una sola columna y la pagina pasaba de 1812px a
   3505px de scroll: casi el doble por 30px menos de pantalla. Con 150px
   siguen entrando dos columnas en 360px sin apretar la tarjeta. */
@media (max-width:420px){
  .an-asset-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));}
}
/* Y en los telefonos mas angostos que aun se usan (320px), 140px mantiene
   las dos columnas en vez de volver a la lista de una sola. */
@media (max-width:359px){
  .an-asset-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));}
}

/* ── Ventanas bajas (telefono en horizontal, portatil pequeno) ──────
   En un telefono acostado, la barra superior y el teletipo se comian 78px
   de 390 de alto: un 20% de la pantalla en adornos antes del contenido.
   El teletipo es informativo pero prescindible cuando el alto escasea, y
   la fila de la rejilla debe colapsar con el o queda un hueco de 30px. */
@media (max-height:500px){
  /* Con el teletipo en display:none deja de ocupar fila, asi que la rejilla
     debe declarar 2 filas, no 3 con una en cero: si no, el cuerpo hereda la
     fila de 0px y el area de contenido queda sin alto. */
  .shell{grid-template-rows:40px 1fr;}
  .live-ticker{display:none;}
  .topbar{height:40px;min-height:40px;}
  .page{padding:10px 14px;}
  .page-header{margin-bottom:10px;}
}

/* ── Area tactil por capacidad del puntero, no por ancho ────────────
   El piso de 38px se habia aplicado solo por debajo de 768px, pero una
   tablet de 820 o 1180px se toca con el dedo igual que un telefono, y
   un portatil tactil tambien. `pointer:coarse` es el criterio real:
   cubre todo lo que se manipula con el dedo y deja intacto el
   escritorio con raton, donde 25px se acierta sin problema. */
@media (pointer:coarse){
  .page button, .page .btn, .page .btn-sm, .page select, .page input[type="text"],
  .page input[type="number"], .news-class-btn, .an-class-btn, .auth-tab,
  .tx-filtro-tipo-btn, .pbtn, .wl-search, .herramienta-card{
    min-height:38px;
  }
  .page .btn, .page .btn-sm, .news-class-btn, .an-class-btn,
  .auth-tab, .tx-filtro-tipo-btn, .pbtn{
    display:inline-flex; align-items:center; justify-content:center;
  }
}

/* Mensajes rápidos del Mentor IA: atajos para que el chat no arranque en
   blanco. Se comportan como texto que se puede pulsar, no como botones de
   acción, para que no compitan con el envío. */
.mentor-sugerencia{
  background:var(--c2, #161b26); border:1px solid var(--c4, #242d42);
  color:var(--t2, #9fb0ca); border-radius:14px; padding:7px 11px;
  font-size:11.5px; font-family:var(--font-body); cursor:pointer;
  text-align:left; line-height:1.3; transition:all .15s;
}
.mentor-sugerencia:hover{ border-color:var(--gold, #e8b94a); color:var(--t1, #e8edf8); }
@media (pointer:coarse){ .mentor-sugerencia{ min-height:38px; } }

/* Tabla de sensibilidad a tasas del bono */
.tabla-sensibilidad{ width:100%; border-collapse:collapse; font-size:12px; min-width:460px; }
.tabla-sensibilidad th{
  text-align:right; padding:7px 8px; font-size:10.5px; text-transform:uppercase;
  letter-spacing:.4px; color:var(--t3, #6b7a94); border-bottom:1px solid var(--c4, #242d42);
  font-weight:600; white-space:nowrap;
}
.tabla-sensibilidad th:first-child, .tabla-sensibilidad td:first-child{ text-align:left; }
.tabla-sensibilidad td{
  text-align:right; padding:7px 8px; color:var(--t1, #e8edf8);
  border-bottom:1px solid var(--c3, #1c2333); font-variant-numeric:tabular-nums; white-space:nowrap;
}
.tabla-sensibilidad tr.fila-base td{ background:var(--c2, #161b26); font-weight:600; }

/* Selector de perfil del rebalanceo sugerido */
.chip-perfil{
  background:var(--c2, #161b26); border:1px solid var(--c4, #242d42);
  color:var(--t2, #9fb0ca); border-radius:14px; padding:6px 14px;
  font-size:11.5px; font-family:var(--font-body); cursor:pointer; transition:all .15s;
}
.chip-perfil:hover{ border-color:var(--accent2, #00c4ff); }
.chip-perfil.activo{
  background:rgba(0,196,255,.12); border-color:var(--accent2, #00c4ff);
  color:var(--accent2, #00c4ff); font-weight:600;
}
@media (pointer:coarse){ .chip-perfil{ min-height:38px; } }

/* Venta en corto: se separa visualmente de comprar y vender porque abre una
   obligación, no una tenencia. */
.btn-corto{
  background:transparent; border:1px solid var(--red, #ff4757); color:var(--red, #ff4757);
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
}
.btn-corto:hover{ background:rgba(255,71,87,.12); }
/* El piso táctil de 38px del resto del producto ya cubre este botón; una
   altura distinta solo rompía la consistencia de la fila de operación. */

.badge-corto{
  display:inline-block; margin-left:6px; padding:1px 7px; border-radius:9px;
  background:rgba(255,71,87,.14); border:1px solid rgba(255,71,87,.45);
  color:var(--red, #ff4757); font-size:10px; font-weight:700;
  letter-spacing:.03em; vertical-align:middle;
}

/* Los modales dinámicos del panel de organización (nueva invitación y canje)
   usaban la clase .modal-overlay, que nunca existió en la hoja de estilos.
   Sin ella el contenedor se insertaba como un bloque normal al final del
   documento: no se veía, y al enfocar el campo del código el navegador
   desplazaba la página hasta abajo para traerlo a la vista. De ahí los dos
   síntomas: "no funciona" y "mueve la pantalla de forma extraña". */
.modal-overlay{
  position:fixed; inset:0; z-index:9998;
  background:rgba(0,0,0,.65); backdrop-filter:blur(3px);
  display:flex; align-items:center; justify-content:center; padding:20px;
  overflow-y:auto; -webkit-overflow-scrolling:touch;
}
.modal-overlay .modal-box{
  position:relative; padding:0; width:100%;
  max-height:calc(100vh - 40px); overflow-y:auto;
}
.modal-head{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:16px 16px 0;
}
.modal-head .modal-title{ margin-bottom:0; font-size:16px; }
.modal-overlay .modal-close{ position:static; flex-shrink:0; }
@media (max-width:420px){
  .modal-overlay{ padding:12px; }
  .modal-head{ padding:14px 14px 0; }
}

/* Barra de supervisión: tiene que ser imposible de ignorar, porque de ella
   depende que quien mira entienda que no está en su propia clase. */
#barra-supervision{
  position:fixed; left:0; right:0; bottom:0; z-index:9997;
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  padding:9px 14px; background:var(--gold, #d4af37); color:#1a1206;
  font-size:12.5px; font-weight:600; box-shadow:0 -4px 18px rgba(0,0,0,.35);
}
#barra-supervision span{ flex:1; min-width:180px; line-height:1.35; }
#barra-supervision b{ font-weight:700; }
#barra-supervision .btn{
  background:#1a1206; color:var(--gold, #d4af37); border:none; flex-shrink:0;
}
body.con-barra-supervision .shell{ padding-bottom:52px; }
@media (max-width:520px){
  #barra-supervision{ font-size:11.5px; padding:8px 10px; }
  body.con-barra-supervision .shell{ padding-bottom:74px; }
}

/* DM Mono no tiene cortes por encima de 500. Donde una cifra necesita peso,
   se usa Inter con sus figuras de ancho fijo, que alinean igual y sí tienen
   negrita real. */
.cap-pill, .prof-stat-val, .an-asset-card-px, .wl-price, .ai-price, .mt-price,
.mt-change, .an-asset-card-chg, .wl-chg, .ai-chg, .prof-rank, .profile-val{
  font-variant-numeric:tabular-nums;
}
:root{ --font-cifras:"Inter",system-ui,sans-serif; }
.prof-stat-val, .mt-price, .ai-price, .wl-price, .an-asset-card-px, .profile-val{
  font-family:var(--font-cifras); letter-spacing:-.01em;
}
body{ font-synthesis-weight:none; }

/* Calibración: acierto real frente a confianza declarada */
.cal-kpi{ background:var(--c2); border-radius:var(--r2); padding:12px 14px; display:flex; flex-direction:column; gap:3px; }
.cal-kpi-label{ font-size:10.5px; color:var(--t3); text-transform:uppercase; letter-spacing:.04em; font-weight:600; }
.cal-kpi-val{ font-size:20px; font-weight:700; font-variant-numeric:tabular-nums; }
.cal-tramos{ display:flex; flex-direction:column; gap:12px; }
.cal-tramo{ display:grid; grid-template-columns:70px 1fr auto; gap:12px; align-items:center; }
.cal-tramo.vacio{ opacity:.45; }
.cal-tramo-eti{ font-size:12.5px; font-weight:600; font-variant-numeric:tabular-nums; }
.cal-tramo-nota, .cal-tramo-n{ font-size:11px; color:var(--t3); white-space:nowrap; }
.cal-barras{ display:flex; flex-direction:column; gap:5px; min-width:0; }
.cal-barra{ position:relative; height:17px; background:var(--c3); border-radius:5px; }
.cal-relleno{ height:100%; border-radius:5px; transition:width .3s; }
.cal-relleno.declarada{ background:var(--c5, #2a3550); }
.cal-barra span{
  position:absolute; left:8px; top:0; line-height:17px; font-size:10px;
  color:var(--t1); white-space:nowrap; font-variant-numeric:tabular-nums;
}
@media (max-width:520px){
  .cal-tramo{ grid-template-columns:1fr auto; }
  .cal-barras{ grid-column:1/-1; order:3; }
}

/* Formulario de identificación del informe final */
.ss-rejilla{ display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:10px; margin-bottom:12px; }
.ss-campo{ display:flex; flex-direction:column; gap:5px; margin-bottom:12px; }
.ss-campo > span{ font-size:11.5px; color:var(--t3); font-weight:600; }
.ss-campo > span em{ font-style:normal; font-weight:400; opacity:.8; }
.ss-campo input, .ss-campo textarea{
  width:100%; padding:9px 11px; background:var(--c2); border:1px solid var(--c4);
  border-radius:var(--r); color:var(--t1); font-family:var(--font-body); font-size:13px; resize:vertical;
}
.ss-campo input:focus, .ss-campo textarea:focus{ outline:none; border-color:var(--accent2, #4a9eff); }
@media (pointer:coarse){ .ss-campo input{ min-height:42px; } }

/* ── Formulario del informe de servicio social ───────────────────── */
.ss-pestanas{
  display:flex; gap:6px; margin-bottom:14px; flex-wrap:wrap;
  border-bottom:1px solid var(--c3); padding-bottom:10px;
}
.ss-pestana{
  display:inline-flex; align-items:center; gap:6px;
  padding:8px 12px; border:1px solid var(--c4); border-radius:8px;
  background:var(--c2); color:var(--t2); font-family:inherit; font-size:12.5px;
  cursor:pointer; transition:border-color .12s ease, color .12s ease, background .12s ease;
}
.ss-pestana:hover{ border-color:var(--accent2, #4a9eff); color:var(--t1); }
.ss-pestana.active{
  border-color:var(--accent2, #4a9eff); color:var(--accent2, #4a9eff);
  background:rgba(74,158,255,.1); font-weight:600;
}
.ss-contador{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:19px; height:19px; padding:0 5px; border-radius:10px;
  background:var(--c4); color:var(--t2); font-size:10.5px; font-weight:700;
  font-variant-numeric:tabular-nums;
}
.ss-pestana.active .ss-contador{ background:var(--accent2, #4a9eff); color:#04070c; }

.ss-integrante{
  border:1px solid var(--c3); border-radius:var(--r2, 10px);
  padding:11px 12px; margin-bottom:10px; background:var(--c2);
}
.ss-integrante-cab{
  display:flex; align-items:center; gap:9px; margin-bottom:9px;
}
.ss-integrante-num{
  display:inline-flex; align-items:center; justify-content:center;
  width:22px; height:22px; border-radius:50%; flex-shrink:0;
  background:var(--accent2, #4a9eff); color:#04070c;
  font-size:11px; font-weight:700; font-variant-numeric:tabular-nums;
}
.ss-integrante-nombre{
  flex:1; min-width:0; font-size:13px; font-weight:600; color:var(--t1);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.ss-campo-ancho{ grid-column:1 / -1; }

@media (max-width:768px), (pointer:coarse){
  .ss-pestana{ min-height:40px; }
  .ss-integrante-cab .btn{ min-height:38px; min-width:38px; }
}

/* ── Comparación de estrategias ───────────────────────────────────── */
.comp-scroll{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
.comp-tabla{ width:100%; border-collapse:collapse; font-size:12.5px; min-width:420px; }
.comp-tabla th{
  text-align:right; padding:10px 10px 8px; vertical-align:top; position:relative;
  background:var(--c2); font-weight:600;
}
.comp-tabla th:first-child{ text-align:left; background:transparent; border-top:0 !important; }
.comp-col-nombre{ font-size:12.5px; color:var(--t1); padding-right:26px; }
.comp-col-fecha{ font-size:10.5px; color:var(--t3); font-weight:400; margin-top:2px; padding-right:26px; }
.comp-quitar{ position:absolute; top:6px; right:4px; padding:3px 5px; }
.comp-tabla td{ padding:8px 10px; text-align:right; border-bottom:1px solid var(--c3); font-variant-numeric:tabular-nums; }
.comp-tabla td.comp-etq{ text-align:left; color:var(--t2); }
.comp-tabla td.comp-mejor{ background:rgba(0,208,132,.09); box-shadow:inset 2px 0 0 var(--green); }
.comp-nota{ font-size:11px; color:var(--t3); margin-top:8px; line-height:1.5; }
@media (max-width:768px), (pointer:coarse){
  .comp-quitar{ min-height:32px; min-width:32px; }
}

/* ── Diagnóstico de mi cartera ── */
.diag-modal { max-width: 720px; width: 100%; max-height: 92vh; overflow-y: auto; }
.diag-modal h2 { margin-bottom: 6px; line-height: 1.2; padding-right: 32px; }
.diag-intro { font-size: 12.5px; color: var(--muted); margin: 0 0 12px; }
.diag-kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-bottom: 14px; }
.diag-kpi { background: var(--c2); border-radius: var(--r); padding: 10px 12px; min-width: 0; }
.diag-kpi-etq { font-size: 10.5px; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; }
.diag-kpi-val { font-size: 20px; font-weight: 800; margin-top: 2px; font-variant-numeric: tabular-nums; }
.diag-kpi-val.g { color: var(--green); } .diag-kpi-val.r { color: var(--red); }
.diag-kpi-nota { font-size: 11px; color: var(--muted); margin-top: 2px; }
.diag-seccion { border-top: 1px solid var(--border); padding-top: 12px; margin-top: 12px; }
.diag-titulo { font-size: 13px; font-weight: 700; margin-bottom: 8px; }
.diag-lienzo { position: relative; width: 100%; }
.diag-nota { font-size: 11.5px; color: var(--muted); line-height: 1.5; margin-top: 6px; }
@media (max-width: 560px) {
  .diag-kpis { grid-template-columns: 1fr; }
  .diag-kpi { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 4px; }
  .diag-kpi-nota { width: 100%; }
  .diag-kpi-val { font-size: 17px; }
}

/* ── Historial de precios ── */
.hp-cabecera { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; flex-wrap: wrap; margin-bottom: 10px; }
.hp-sub { font-size: 11.5px; color: var(--t3); }
.hp-controles { display: flex; justify-content: space-between; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.hp-grupo { display: flex; gap: 4px; flex-wrap: wrap; }
.hp-chip { background: var(--c3); border: 1px solid var(--c4); color: var(--t2); border-radius: 999px; padding: 5px 11px; font-size: 11.5px; cursor: pointer; font-family: inherit; }
.hp-chip.activo { background: rgba(0,196,255,.14); border-color: var(--accent2); color: var(--accent2); font-weight: 600; }
.hp-kpis { gap: 8px; margin-bottom: 6px; }
.hp-kpis .metric-val { font-size: 17px; font-variant-numeric: tabular-nums; }
.hp-nota { font-size: 10.5px; color: var(--t3); margin-top: 2px; }
.hp-titulo { font-size: 12px; font-weight: 700; color: var(--t2); margin: 14px 0 6px; }
.hp-lienzo { position: relative; width: 100%; }
.hp-tabla { margin-top: 12px; }
.hp-tabla summary { cursor: pointer; font-size: 12.5px; font-weight: 600; color: var(--accent2); padding: 6px 0; }
.hp-tabla-scroll { max-height: 320px; overflow: auto; border: 1px solid var(--c4); border-radius: 8px; }
.hp-tabla table { width: 100%; font-size: 12px; border-collapse: collapse; }
.hp-tabla th { position: sticky; top: 0; background: var(--c3); text-align: left; padding: 6px 8px; font-weight: 600; }
.hp-tabla td { padding: 5px 8px; border-top: 1px solid var(--c4); }
.hp-tabla .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.hp-parcial { font-size: 9.5px; color: var(--t3); border: 1px solid var(--c4); border-radius: 4px; padding: 0 4px; margin-left: 2px; }
.hp-fuente { font-size: 11px; color: var(--t3); line-height: 1.55; margin-top: 12px; border-top: 1px solid var(--c4); padding-top: 10px; }
.hp-fuente a { color: var(--accent2); }
.girando { display: inline-block; animation: girar 1s linear infinite; }
@keyframes girar { to { transform: rotate(360deg); } }
@media (max-width: 768px), (pointer: coarse) { .hp-chip { min-height: 38px; } }
.hp-mapa-scroll { overflow: auto; max-height: 380px; border: 1px solid var(--c4); border-radius: 8px; }
.hp-mapa { width: 100%; border-collapse: collapse; font-size: 11px; font-variant-numeric: tabular-nums; }
.hp-mapa th { position: sticky; top: 0; background: var(--c3); padding: 5px 6px; font-weight: 600; z-index: 1; }
.hp-mapa td { padding: 4px 6px; border-top: 1px solid rgba(255,255,255,.04); color: var(--t1); white-space: nowrap; }
.hp-mapa td:first-child, .hp-mapa th:first-child { position: sticky; left: 0; background: var(--c2); text-align: left; z-index: 2; }
.hp-mapa th:first-child { background: var(--c3); z-index: 3; }
.hp-mapa .num { text-align: right; }
.hp-mapa-anio { font-weight: 700; border-left: 1px solid var(--c4); }
.hp-mapa tfoot td { background: var(--c3); font-weight: 600; border-top: 1px solid var(--c4); }

/* ── Mapas de mercado (paleta sólida estándar) ── */
.mapa-cabecera { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; flex-wrap: wrap; margin-bottom: 10px; }
.mapa-lienzo { position: relative; width: 100%; background: #0b0e14; border-radius: 6px; overflow: hidden; }
.mapa-sector { position: absolute; box-sizing: border-box; border: 1px solid #0b0e14; background: #0b0e14; }
.mapa-sector-cab { position: absolute; left: 0; right: 0; top: 0; height: 18px; display: flex; justify-content: space-between; gap: 6px; align-items: center; padding: 0 6px; font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; color: #c9d3e6; background: #151a27; overflow: hidden; white-space: nowrap; }
.mapa-sector-cab span { overflow: hidden; text-overflow: ellipsis; }
.mapa-sector-cab b { font-variant-numeric: tabular-nums; font-weight: 700; }
.mapa-sector-cuerpo { position: absolute; left: 1px; right: 1px; bottom: 1px; }
.mapa-tile { position: absolute; box-sizing: border-box; border: 1px solid #0b0e14; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; color: #fff; cursor: pointer; overflow: hidden; transition: filter .15s; }
.mapa-tile:hover { filter: brightness(1.18); outline: 1px solid #fff; outline-offset: -1px; z-index: 2; }
.mapa-tile-tk { font-weight: 800; line-height: 1.05; text-shadow: 0 1px 1px rgba(0,0,0,.35); }
.mapa-tile-v { font-weight: 600; opacity: .95; font-variant-numeric: tabular-nums; line-height: 1.2; }
.mapa-pie { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-top: 8px; }
.mapa-leyenda { display: flex; border-radius: 4px; overflow: hidden; }
.mapa-leyenda-celda { min-width: 42px; padding: 3px 4px; font-size: 10.5px; font-weight: 600; color: #fff; text-align: center; font-variant-numeric: tabular-nums; }
.mapa-leyenda-corr { display: flex; align-items: center; gap: 8px; font-size: 11px; color: var(--t3); margin-top: 10px; }
.mapa-leyenda-corr div { flex: 1; height: 10px; border-radius: 5px; min-width: 80px; }
.vivo-resumen { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 12px; color: var(--t2); margin-bottom: 10px; }
.vivo-resumen b { color: var(--t1); font-variant-numeric: tabular-nums; }
.vivo-rejilla { display: grid; grid-template-columns: repeat(auto-fill, minmax(124px, 1fr)); gap: 3px; background: #0b0e14; padding: 3px; border-radius: 6px; }
.vivo-tile { position: relative; padding: 12px 8px; text-align: center; color: #fff; border-radius: 3px; transition: background .4s; }
.vivo-tile.sin-dato { color: var(--t3); }
.vivo-nombre { font-size: 12px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.vivo-valor { font-size: 17px; font-weight: 800; margin-top: 3px; font-variant-numeric: tabular-nums; }
.vivo-punto { position: absolute; top: 6px; right: 6px; width: 7px; height: 7px; border-radius: 50%; background: #00c4ff; box-shadow: 0 0 6px #00c4ff; }
@media (max-width: 560px) { .mapa-leyenda-celda { min-width: 0; flex: 1; font-size: 10px; padding: 3px 1px; } .mapa-leyenda { width: 100%; } }
.vivo-destello { box-shadow: 0 0 0 2px #00c4ff, 0 0 14px rgba(0,196,255,.6); z-index: 1; }
.corr-estado { font-size: 11.5px; color: var(--t3); margin-bottom: 8px; }
.corr-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.corr-tabla { border-collapse: collapse; font-size: 11.5px; width: 100%; }
.corr-tabla th { padding: 6px; text-align: center; font-weight: 600; color: var(--t2); white-space: nowrap; }
.corr-tabla th.corr-fila { text-align: right; position: sticky; left: 0; background: var(--c1); z-index: 1; }
.corr-tabla td { padding: 9px 4px; min-width: 48px; text-align: center; color: #fff; font-weight: 600; font-variant-numeric: tabular-nums; border: 1px solid var(--c1); }
.corr-tabla td.corr-diag { background: #1c2333; color: var(--t4, #3a4660); }
.corr-tabla sup { font-size: 10px; opacity: .8; margin-left: 1px; }
@media (max-width: 560px) { .corr-tabla { font-size: 10.5px; } .corr-tabla td { padding: 8px 2px; min-width: 42px; } .corr-tabla th { padding: 5px 3px; } }
.corr-ventanas { display: flex; gap: 4px; margin-bottom: 6px; }
.bt-composicion { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 4px; }
.bt-peso { font-size: 11.5px; background: var(--c3); border: 1px solid var(--c4); border-radius: 999px; padding: 3px 10px; color: var(--t2); }
.bt-peso b { color: var(--t1); }
.bt-rejilla { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 16px; margin-top: 12px; align-items: start; }
.bt-tabla { width: 100%; border-collapse: collapse; font-size: 12px; }
.bt-tabla th { font-size: 11px; color: var(--t3); font-weight: 600; padding: 6px 8px; border-bottom: 1px solid var(--c4); }
.bt-tabla td { padding: 7px 8px; border-bottom: 1px solid rgba(255,255,255,.04); }
.bt-tabla .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.bt-tabla td.bt-mejor { color: var(--green); font-weight: 700; }
@media (max-width: 760px) { .bt-rejilla { grid-template-columns: 1fr; } }
.fr-leyenda { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 11px; color: var(--t2); margin-top: 6px; }
.fr-leyenda i { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 5px; vertical-align: -1px; border: 1px solid #0b0e14; }
.fr-tabla { width: 100%; border-collapse: collapse; font-size: 12px; }
.fr-tabla th { position: sticky; top: 0; background: var(--c3); padding: 6px 8px; font-weight: 600; font-size: 11px; color: var(--t2); white-space: nowrap; }
.fr-tabla td { padding: 6px 8px; border-top: 1px solid var(--c4); }
.fr-tabla .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.fr-tabla tfoot td { background: var(--c3); font-weight: 600; font-size: 11px; }
.fr-tabla .fr-sel { background: rgba(255,255,255,.05); color: var(--t1); font-weight: 700; }

/* ── Ranking de rendimiento ── */
.rk-overlay { position: fixed; inset: 0; background: rgba(4,7,12,.78); backdrop-filter: blur(4px); z-index: 9999; display: flex; align-items: flex-start; justify-content: center; padding: 20px 12px; overflow-y: auto; }
.rk-modal { position: relative; width: 100%; max-width: 1000px; background: var(--c1); border: 1px solid var(--c4); border-radius: 14px; padding: 20px 22px; box-shadow: 0 20px 60px rgba(0,0,0,.5); }
.rk-cerrar { position: absolute; top: 12px; right: 12px; width: 38px; height: 38px; border-radius: 8px; border: 1px solid var(--c4); background: var(--c2); color: var(--t2); cursor: pointer; font-size: 16px; }
.rk-titulo { font-size: 20px; font-weight: 800; margin: 0 44px 4px 0; display: flex; align-items: center; gap: 8px; }
.rk-titulo i { color: var(--gold, #d4af37); }
.rk-intro { font-size: 12.5px; color: var(--t3); margin: 0 0 12px; }
.rk-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 4px 0 6px; }
.rk-kpi { background: var(--c2); border: 1px solid var(--c4); border-radius: 8px; padding: 8px 12px; min-width: 0; }
.rk-kpi span { display: block; font-size: 10.5px; color: var(--t3); text-transform: uppercase; letter-spacing: .05em; }
.rk-kpi b { font-size: 15px; font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: block; }
.rk-kpi b.g, .rk-tabla td.g { color: var(--green); } .rk-kpi b.r, .rk-tabla td.r { color: var(--red); }
.rk-graficos { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; }
.rk-tabla-caja { max-height: 460px; margin-top: 12px; }
.rk-tabla { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.rk-tabla th { position: sticky; top: 0; background: var(--c3); padding: 7px 8px; font-size: 11px; font-weight: 600; color: var(--t2); text-align: left; white-space: nowrap; z-index: 1; }
.rk-tabla th.num, .rk-tabla td.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.rk-orden { cursor: pointer; user-select: none; } .rk-orden:hover { color: var(--t1); }
.rk-tabla td { padding: 6px 8px; border-top: 1px solid var(--c4); vertical-align: middle; }
.rk-tabla tbody tr { cursor: pointer; } .rk-tabla tbody tr:hover td { background: rgba(0,196,255,.06); }
.rk-pos { color: var(--t3); font-variant-numeric: tabular-nums; width: 28px; }
.rk-nombre { font-size: 10.5px; color: var(--t3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 220px; font-weight: 400; }
.rk-sin { font-size: 11px; color: var(--t3); font-weight: 400; }
@media (max-width: 760px) { .rk-graficos { grid-template-columns: 1fr; } .rk-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } .rk-modal { padding: 16px 12px; } }
@media (max-width: 480px) { .rk-ocultar { display: none; } .rk-tabla { font-size: 12px; } .rk-tabla td, .rk-tabla th { padding: 6px 5px; } .rk-nombre { max-width: 120px; } }

.rk-tabla th { text-transform: none; letter-spacing: 0; }
@media (max-width: 480px) { .rk-tabla th, .rk-tabla td { padding: 6px 4px; } .rk-tabla th { font-size: 10.5px; } }
@media (max-width: 420px) { .rk-ocultar2 { display: none; } .rk-nombre { max-width: 96px; } .rk-tabla { font-size: 11.5px; } }
@media (max-width: 360px) { .rk-overlay { padding: 10px 4px; } .rk-modal { padding: 14px 8px; } .rk-tabla td, .rk-tabla th { padding: 6px 3px; } .rk-pos { width: 20px; } }

/* ── Salud financiera ── */
.sf-cabecera { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.sf-global { border: 1px solid var(--c); border-radius: 10px; padding: 8px 14px; text-align: right; background: color-mix(in srgb, var(--c) 10%, transparent); }
.sf-global span { display: block; font-size: 10.5px; color: var(--t3); text-transform: uppercase; letter-spacing: .05em; }
.sf-global b { display: block; font-size: 20px; color: var(--c); }
.sf-global em { display: block; font-style: normal; font-size: 11.5px; color: var(--t2); }
.sf-tiles { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; margin-bottom: 12px; }
.sf-tile { text-align: left; background: var(--c2); border: 1px solid var(--c4); border-top: 3px solid var(--c); border-radius: 8px; padding: 9px 11px; cursor: pointer; color: var(--t1); font-family: inherit; min-width: 0; }
.sf-tile.activo { background: color-mix(in srgb, var(--c) 12%, var(--c2)); border-color: var(--c); }
.sf-tile-cab { display: block; font-size: 11px; color: var(--t3); }
.sf-tile b { display: block; font-size: 16px; color: var(--c); margin: 2px 0; }
.sf-tile-pie { display: block; font-size: 10.5px; color: var(--t2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sf-rejilla { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; }
.sf-cualitativo { background: var(--c2); border: 1px solid var(--c4); border-radius: 8px; padding: 10px 14px; font-size: 12.5px; line-height: 1.55; color: var(--t2); }
.sf-cualitativo p { margin: 0 0 6px; } .sf-cualitativo b { color: var(--t1); }
.sf-chip { display: inline-block; font-size: 10.5px; font-weight: 700; padding: 2px 8px; border-radius: 999px; color: var(--c); background: color-mix(in srgb, var(--c) 15%, transparent); border: 1px solid color-mix(in srgb, var(--c) 45%, transparent); white-space: nowrap; }
.sf-chip.sf-na { --c: #7a8599; font-weight: 500; }
.sf-tabla-caja { margin-top: 12px; max-height: 560px; }
.sf-tabla { width: 100%; border-collapse: collapse; font-size: 12px; }
.sf-tabla th { position: sticky; top: 0; background: var(--c3); padding: 6px 8px; font-size: 11px; font-weight: 600; color: var(--t2); text-align: left; white-space: nowrap; text-transform: none; letter-spacing: 0; z-index: 1; }
.sf-tabla td { padding: 6px 8px; border-top: 1px solid var(--c4); vertical-align: middle; }
.sf-tabla .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.sf-tabla .sf-ultimo { font-weight: 700; color: var(--t1); }
.sf-tabla tbody tr:not(.sf-grupo) { cursor: pointer; } .sf-tabla tbody tr:not(.sf-grupo):hover td { background: rgba(0,196,255,.05); }
.sf-tabla tr.sf-sel td { background: rgba(0,196,255,.09); }
.sf-tabla tr.sf-grupo td { background: var(--c2); font-weight: 700; font-size: 12px; padding-top: 9px; }
.sf-formula { font-size: 10.5px; color: var(--t3); }
.sf-lee { color: var(--t2); min-width: 220px; }
@media (max-width: 900px) { .sf-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); } .sf-rejilla { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 560px) { .sf-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } .sf-global { text-align: left; width: 100%; } .sf-tabla .sf-lee { display: none; } }

/* ── Tipo de cambio de los pares de divisas ── */
.tc-card{background:var(--c2);border:1px solid var(--c4);border-radius:var(--r);padding:10px 12px;margin-bottom:10px;}
.tc-cab{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;}
.tc-tit{font-size:12px;font-weight:600;color:var(--t1);display:flex;align-items:center;gap:6px;}
.tc-tit .ti-arrows-exchange{color:var(--accent2);}
.tc-par{font-size:11px;color:var(--t3);}
.tc-tasas{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px;}
.tc-tasa{background:var(--c1);border:1px solid var(--c4);border-radius:7px;padding:7px 10px;display:flex;flex-direction:column;gap:2px;min-width:0;}
.tc-uno{font-size:11px;color:var(--t3);}
.tc-tasa b{font-size:14px;color:var(--t1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.tc-conv{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.tc-conv input{flex:1 1 90px;min-width:0;max-width:160px;background:var(--c1);border:1px solid var(--c4);border-radius:7px;padding:8px 10px;color:var(--t1);font-size:14px;font-family:var(--font-mono);}
.tc-dir{flex-shrink:0;background:var(--c1);border:1px solid var(--c4);border-radius:7px;padding:8px 10px;color:var(--accent2);font-size:12px;cursor:pointer;min-height:36px;display:inline-flex;align-items:center;gap:5px;}
.tc-dir:hover{border-color:var(--accent2);}
.tc-res{flex:1 1 120px;font-size:14px;font-weight:600;color:var(--t1);min-width:0;overflow-wrap:anywhere;}
.tc-nota{font-size:10.5px;color:var(--t3);margin-top:8px;line-height:1.45;}

/* ── Mercado en teléfono: menos elementos antes del gráfico y el
   gráfico deja desplazar la página; solo mantener el dedo lo explora. ── */
canvas.candle-canvas{touch-action:pan-y;}
@media(max-width:700px){
  .market-toolbar{gap:6px 8px;padding:8px 10px;}
  .mt-asset-name{font-size:14px;}
  .mt-price{font-size:19px;}
  .market-toolbar .pbtn .mt-btn-txt{display:none;}
  .market-toolbar .pbtn{width:36px;height:34px!important;padding:0!important;justify-content:center;font-size:15px!important;}
  .horizon-bar{padding:4px 8px;margin-bottom:8px;}
  .horizon-bar .mkt-hb-icono{display:none;}
  .mkt-chart-desc,.mkt-chart-leyenda{display:none!important;}
  .mkt-chart-cab{margin-bottom:6px!important;}
  .mkt-chart-ctrl{flex-wrap:nowrap!important;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;width:100%;gap:6px!important;
    -webkit-mask-image:linear-gradient(90deg,#000 90%,transparent);mask-image:linear-gradient(90deg,#000 90%,transparent);}
  .mkt-chart-ctrl::-webkit-scrollbar{display:none;}
  .mkt-chart-ctrl>*{flex-shrink:0;}
  .mkt-chart-ctrl .mkt-chart-toggle-btn{min-height:32px;padding:6px 10px;font-size:11px;white-space:nowrap;}
  .mkt-chart-ctrl .mkt-chart-toggle-btn::after{display:none;}
  .candle-hud{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;padding:5px 6px;}
  .chud-item{padding:3px 5px;gap:1px;min-width:0;box-shadow:none;}
  .chud-lbl{font-size:10px;letter-spacing:.03em;}
  .chud-val{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  canvas.candle-canvas{height:250px;}
}
@media(max-width:360px){canvas.candle-canvas{height:220px;}}
/* En pantallas muy angostas el cierre ya está en la cabecera y en la
   barra de operar: se omite para que el resto quepa sin cortarse. */
@media(max-width:420px){
  .candle-hud{grid-template-columns:repeat(4,minmax(0,1fr));}
  .candle-hud .chud-item:nth-child(4){display:none;}
  .chud-val{font-size:10.5px;}
}

/* ── Salud financiera: gráficas de los estados financieros ── */
.sf-vistas { margin-top: 16px; border-top: 1px solid var(--c4, rgba(255,255,255,.08)); padding-top: 14px; }
.sf-vista-tabs { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; margin-bottom: 10px; }
.sf-vista-tabs::-webkit-scrollbar { display: none; }
.sf-vista-tab { flex-shrink: 0; display: inline-flex; align-items: center; gap: 5px; min-height: 34px; padding: 6px 12px; border-radius: 8px; border: 1px solid var(--c4, rgba(255,255,255,.1)); background: var(--c2, #141a24); color: var(--t2, #9fb3d1); font-size: 12px; cursor: pointer; white-space: nowrap; }
.sf-vista-tab:hover { border-color: var(--accent2, #4aa3ff); color: var(--t1, #fff); }
.sf-vista-tab.activo { background: var(--accent2, #4aa3ff); border-color: var(--accent2, #4aa3ff); color: #05121f; font-weight: 600; }
.sf-vista-datos { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 8px; margin-bottom: 10px; }
.sf-vista-datos:empty { display: none; }
.sf-dato { background: var(--c2, #141a24); border: 1px solid var(--c4, rgba(255,255,255,.08)); border-left: 3px solid var(--c, var(--c4, rgba(255,255,255,.15))); border-radius: 8px; padding: 7px 10px; min-width: 0; }
.sf-dato span { display: block; font-size: 10.5px; color: var(--t3, #6580b0); }
.sf-dato b { display: block; font-size: 14px; color: var(--t1, #fff); font-family: var(--font-mono, monospace); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sf-vista-lienzo { height: 290px; }
.sf-vista-lee { font-size: 12.5px; color: var(--t2, #9fb3d1); line-height: 1.55; margin: 10px 0 0; }
.sf-dupont { margin-top: 12px; background: var(--c2, #141a24); border: 1px solid var(--c4, rgba(255,255,255,.08)); border-radius: 10px; padding: 12px; }
.sf-dupont-fila { display: flex; align-items: stretch; gap: 8px; flex-wrap: wrap; margin-bottom: 8px; }
.sf-dupont-f { flex: 1 1 140px; display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.sf-dupont-f span { font-size: 10.5px; color: var(--t3, #6580b0); }
.sf-dupont-f b { font-size: 17px; color: var(--t1, #fff); font-family: var(--font-mono, monospace); }
.sf-dupont-f input[type=range] { width: 100%; accent-color: var(--accent2, #4aa3ff); min-height: 28px; }
.sf-dupont-roe b { color: #30cc5a; font-size: 20px; }
.sf-dupont-roe em { font-style: normal; font-size: 11px; color: var(--t3, #6580b0); }
.sf-dupont-op { align-self: center; font-style: normal; font-size: 18px; color: var(--t3, #6580b0); }
.sf-mapa { width: 100%; border-collapse: separate; border-spacing: 3px; font-size: 11.5px; }
.sf-mapa th { font-size: 10.5px; color: var(--t3, #6580b0); font-weight: 600; text-align: center; padding: 4px; }
.sf-mapa th:first-child, .sf-mapa td:first-child { text-align: left; color: var(--t2, #9fb3d1); white-space: nowrap; padding-right: 8px; }
.sf-mapa-grupo td { color: var(--t1, #fff) !important; font-weight: 600; padding-top: 8px; }
.sf-celda { width: 100%; min-width: 64px; min-height: 30px; border: 1px solid color-mix(in srgb, var(--c) 60%, transparent); background: color-mix(in srgb, var(--c) 22%, transparent); color: var(--t1, #fff); border-radius: 6px; font-family: var(--font-mono, monospace); font-size: 11px; cursor: pointer; padding: 4px 6px; }
.sf-celda:hover { background: color-mix(in srgb, var(--c) 40%, transparent); }
@media (max-width: 700px) {
  .sf-vista-lienzo { height: 240px; }
  .sf-vista-datos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sf-dupont-op { display: none; }
  .sf-dupont-f { flex: 1 1 45%; }
}
@media (max-width: 400px) { .sf-dato b { font-size: 12.5px; white-space: normal; overflow-wrap: anywhere; } }
.sf-mapa td:first-child, .sf-mapa th:first-child { position: sticky; left: 0; z-index: 1; background: var(--c1, #10141d); }
@media (max-width: 700px) { .sf-mapa td:first-child { white-space: normal; min-width: 96px; max-width: 120px; font-size: 10.5px; } .sf-celda { min-width: 58px; } }

/* ── Rebalanceo hacia la frontera eficiente ── */
.fr-rebal { margin-top: 14px; border-top: 1px solid var(--c4); padding-top: 12px; }
.fr-rebal-datos { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 8px; margin-bottom: 10px; }
.fr-rebal-tabla td { white-space: nowrap; }
.fr-obj { color: var(--t3); font-size: 10.5px; }
@media (max-width: 700px) { .fr-rebal-datos { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ── Guía de funciones ── */
.guia-barra { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.guia-barra .wl-search { flex: 1 1 320px; max-width: 620px; min-height: 42px; font-size: 14px; }
.guia-cuenta { font-size: 12px; color: var(--t3); }
.guia-categorias { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-bottom: 12px; }
.guia-categorias::-webkit-scrollbar { display: none; }
.guia-categorias .news-class-btn { flex-shrink: 0; white-space: nowrap; }
.guia-grupo { margin-bottom: 18px; }
.guia-grupo .hp-titulo { display: flex; align-items: center; gap: 6px; }
.guia-rejilla { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 10px; }
.guia-card { display: flex; flex-direction: column; gap: 7px; background: var(--c1); border: 1px solid var(--c4); border-radius: var(--r2); padding: 12px 14px; min-width: 0; }
.guia-card:hover { border-color: color-mix(in srgb, var(--accent2) 45%, var(--c4)); }
.guia-card-cab { display: flex; align-items: center; gap: 8px; }
.guia-card-cab i { color: var(--accent2); font-size: 18px; flex-shrink: 0; }
.guia-card-cab b { font-size: 13.5px; color: var(--t1); line-height: 1.3; }
.guia-card p { font-size: 12px; color: var(--t2); line-height: 1.5; margin: 0; flex: 1; }
.guia-donde { font-size: 11px; color: var(--t3); line-height: 1.4; }
.guia-donde i { font-size: 12px; vertical-align: -1px; }
.guia-abrir { align-self: flex-start; min-height: 32px; }
.guia-nuevo { margin-left: auto; flex-shrink: 0; font-size: 9.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #05121f; background: var(--accent2); border-radius: 4px; padding: 2px 6px; }
.cmdk-item .guia-nuevo { margin-left: 8px; }
.cmdk-item-guia { color: var(--accent2); font-size: 12.5px; }
@media (max-width: 700px) { .guia-rejilla { grid-template-columns: 1fr; } .guia-barra .wl-search { flex-basis: 100%; } }
.guia-pie { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.guia-pie .guia-abrir { flex-shrink: 0; }
@media (max-width: 700px) { .guia-card { padding: 10px 12px; gap: 5px; } .guia-card p { font-size: 11.5px; } }

/* ── Encuestas rápidas ── */
.er-plantillas{display:flex;flex-wrap:wrap;gap:6px;}
.chip-btn{background:var(--c2);border:1px solid var(--c4);color:var(--t2);border-radius:999px;padding:5px 11px;font-size:11.5px;font-weight:600;cursor:pointer;font-family:inherit;}
.chip-btn:hover{border-color:var(--accent2);color:var(--t1);}
.grade-field textarea{width:100%;padding:8px 10px;background:var(--c2);border:1px solid var(--c4);border-radius:var(--r);color:var(--t1);font-family:inherit;font-size:12.5px;resize:vertical;}
.er-flotante{position:fixed;bottom:84px;left:50%;transform:translateX(-50%);z-index:4600;background:var(--c1);border:1px solid var(--accent2);border-radius:var(--r2);padding:12px 16px;width:min(380px,calc(100vw - 32px));box-shadow:var(--sombra-lg);}
.er-flotante.er-docente{left:auto;right:16px;transform:none;border-color:var(--gold);width:min(340px,calc(100vw - 32px));}
.er-cab{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;}
.er-vivo{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--green);display:inline-flex;align-items:center;gap:6px;}
.er-vivo::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 6px var(--green);animation:erLatido 1.6s ease-in-out infinite;}
@keyframes erLatido{50%{opacity:.35;}}
.er-min{background:none;border:none;color:var(--t3);cursor:pointer;font-size:15px;padding:2px 4px;}
.er-pregunta{font-weight:700;font-size:13.5px;margin-bottom:10px;line-height:1.35;overflow-wrap:anywhere;}
.er-opciones{display:grid;gap:6px;}
.er-opciones .btn{width:100%;justify-content:flex-start;text-align:left;white-space:normal;}
.er-flotante.min .er-pregunta,.er-flotante.min .er-opciones,.er-flotante.min .er-barra{display:none;}
.er-flotante.min{padding:8px 12px;}
.er-barra{margin-bottom:7px;}
.er-barra-txt{display:flex;justify-content:space-between;gap:8px;font-size:11.5px;margin-bottom:3px;}
.er-barra-txt span:first-child{overflow-wrap:anywhere;}
.er-barra-fondo{height:7px;background:var(--c3);border-radius:4px;overflow:hidden;}
.er-barra-fondo>div{height:100%;background:var(--accent2);border-radius:4px;transition:width .35s ease;}
.er-barra.lider .er-barra-fondo>div{background:var(--gold);}
.er-hist-item{margin-bottom:10px;padding:12px 14px;}
.er-hist-cab{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;}
.er-hist-cab b{font-size:13px;overflow-wrap:anywhere;}
.er-hist-fecha{font-size:11px;color:var(--t3);margin:2px 0 8px;}

/* ── Constructor de encuestas ── */
.enc-opciones{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;align-items:end;}
.enc-check{display:flex;gap:9px;align-items:flex-start;cursor:pointer;padding:9px 11px;border:1px solid var(--c4);border-radius:var(--r);background:var(--c2);}
.enc-check input{margin-top:3px;accent-color:var(--accent);}
.enc-check b{display:block;font-size:12.5px;}
.enc-check small{display:block;font-size:11px;color:var(--t3);font-weight:500;}
.enc-preg{margin-bottom:8px;padding:10px 12px;}
.enc-preg-cab{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px;}
.enc-preg-cab select{font-size:11.5px;padding:5px 8px;background:var(--c2);border:1px solid var(--c4);border-radius:6px;color:var(--t1);}
.enc-preg-num{width:22px;height:22px;border-radius:50%;background:var(--c3);color:var(--t2);display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0;}
.enc-oblig{font-size:11.5px;color:var(--t2);display:inline-flex;gap:5px;align-items:center;cursor:pointer;}
.enc-preg-acc{margin-left:auto;display:flex;gap:2px;}
.enc-preg-acc .btn{padding:4px 7px;}
.enc-input{width:100%;padding:7px 9px;background:var(--c1);border:1px solid var(--c4);border-radius:6px;color:var(--t1);font-family:inherit;font-size:12.5px;margin-bottom:6px;resize:vertical;}
.enc-input:focus{outline:none;border-color:var(--accent2);}
.enc-etiq{display:grid;grid-template-columns:1fr 1fr;gap:6px;}
.enc-ayuda{font-size:11px;color:var(--t3);margin:4px 0;}

/* ── Lista, resultados y respuesta ── */
.enc-item{margin-bottom:10px;display:flex;justify-content:space-between;align-items:flex-start;gap:10px;flex-wrap:wrap;}
.enc-item-info{flex:1 1 220px;min-width:0;}
.enc-item-info b{overflow-wrap:anywhere;}
.enc-item-acc{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;}
.enc-chips{display:flex;gap:5px;flex-wrap:wrap;align-items:center;margin-top:5px;}
.enc-chip{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--c3);color:var(--t2);}
.enc-chip.abierta{background:rgba(0,208,132,.14);color:var(--green);}
.enc-chip.cerrada{background:rgba(255,71,87,.12);color:var(--red);}
.enc-chip.anon{background:rgba(0,196,255,.12);color:var(--accent2);}
.enc-res-modal{max-width:720px;}
.enc-res-barra{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin:10px 0;font-size:12.5px;}
#encuesta-resultados-cont{max-height:58vh;overflow-y:auto;}
.enc-res{margin-bottom:8px;padding:11px 13px;}
.enc-res-cab{display:flex;gap:8px;align-items:flex-start;margin-bottom:8px;}
.enc-res-cab b{font-size:12.5px;flex:1;overflow-wrap:anywhere;}
.enc-res-n{font-size:10.5px;color:var(--t3);white-space:nowrap;}
.enc-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(78px,1fr));gap:6px;margin-bottom:8px;}
.enc-kpis>div{background:var(--c2);border-radius:var(--r);padding:6px 8px;}
.enc-kpis small{display:block;font-size:10px;color:var(--t3);}
.enc-kpis b{font-size:16px;font-family:var(--font-cifras,inherit);}
.enc-etiq-res{display:flex;justify-content:space-between;font-size:10.5px;color:var(--t3);max-width:304px;}
.enc-palabras{display:flex;flex-wrap:wrap;gap:4px 10px;margin-bottom:8px;padding:8px 10px;background:var(--c2);border-radius:var(--r);}
.enc-palabras span{color:var(--accent2);font-weight:600;}
.enc-palabras small{color:var(--t3);font-size:10px;}
.enc-abiertas{max-height:220px;overflow-y:auto;}
.enc-abiertas>div{font-size:12px;color:var(--t2);padding:6px 0;border-bottom:1px solid var(--c3);overflow-wrap:anywhere;}
.enc-cargando{display:flex;align-items:center;justify-content:center;gap:8px;padding:20px 10px;color:var(--t2);font-size:12.5px;}
.enc-hist{margin-bottom:10px;padding:12px 14px;}
.enc-hist-cab{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px;}
.enc-hist-cab b{overflow-wrap:anywhere;}
.enc-hist-fila{display:flex;justify-content:space-between;gap:10px;font-size:12px;padding:5px 0;border-bottom:1px solid var(--c3);}
.enc-hist-fila span:first-child{color:var(--t2);}
.enc-hist-fila span:last-child{text-align:right;overflow-wrap:anywhere;}
.enc-pendiente{margin-bottom:8px;padding:12px 14px;border-color:rgba(212,175,55,.35);display:flex;justify-content:space-between;align-items:center;gap:10px;}
.enc-pend-meta{font-size:11px;color:var(--t3);margin-top:2px;}
.enc-responder{max-width:540px;width:calc(100vw - 32px);}
.enc-resp-cab{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;}
.enc-resp-cab h3{overflow-wrap:anywhere;}
.enc-resp-cab .modal-close{position:static;}
.enc-progreso{height:5px;background:var(--c3);border-radius:3px;overflow:hidden;margin:12px 0 6px;}
.enc-progreso>div{height:100%;background:var(--accent);transition:width .25s ease;}
.enc-resp-contador{font-size:11px;color:var(--t3);margin-bottom:10px;}
.enc-resp-cuerpo{min-height:140px;}
.enc-resp-texto{font-size:14px;font-weight:600;line-height:1.4;margin-bottom:12px;overflow-wrap:anywhere;}
.enc-req{color:var(--red);}
.enc-escala{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;}
.enc-escala.nps{grid-template-columns:repeat(11,1fr);gap:4px;}
.enc-escala .escala-opcion{padding:10px 0;border-radius:var(--r);background:var(--c2);border:1.5px solid var(--c4);color:var(--t1);font-weight:700;font-size:13px;cursor:pointer;font-family:inherit;min-width:0;}
.enc-escala.nps .escala-opcion{font-size:12px;padding:9px 0;}
.enc-escala .escala-opcion:hover{border-color:var(--accent2);}
.enc-escala .escala-opcion.active{background:#004977;border-color:#1b7fe0;color:#fff;}
.enc-escala-etq{display:flex;justify-content:space-between;font-size:10.5px;color:var(--t3);margin-top:5px;}
.opcion-encuesta-tarjeta{display:flex;align-items:center;gap:9px;width:100%;padding:10px 12px;margin-bottom:6px;border-radius:var(--r);border:1.5px solid var(--c4);background:var(--c2);cursor:pointer;font-size:12.5px;color:var(--t1);text-align:left;font-family:inherit;}
.opcion-encuesta-tarjeta i{font-size:17px;color:var(--t3);}
.opcion-encuesta-tarjeta.sel{background:rgba(0,73,119,.28);border-color:#1b7fe0;font-weight:600;}
.opcion-encuesta-tarjeta.sel i{color:var(--accent2);}
.enc-resp-nav{display:flex;justify-content:space-between;gap:10px;margin-top:12px;}
.enc-resp-nav .btn{flex:1;justify-content:center;}

/* ── Investigación ── */
.inv-filtros{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px;}
.inv-filtro{background:var(--c2);border:1px solid var(--c4);color:var(--t2);border-radius:999px;padding:5px 12px;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit;}
.inv-filtro span{margin-left:4px;color:var(--t3);font-size:11px;}
.inv-filtro.activo{background:var(--accent);border-color:var(--accent);color:#fff;}
.inv-filtro.activo span{color:rgba(255,255,255,.8);}
.inv-item{margin-bottom:10px;display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap;border-left:3px solid var(--c4);}
.inv-item.enviada{border-left-color:var(--accent2);}
.inv-item.devuelta{border-left-color:var(--amber);}
.inv-item.revisada{border-left-color:var(--green);}
.inv-item-info{flex:1 1 240px;min-width:0;}
.inv-item-titulo{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;}
.inv-item-titulo b{overflow-wrap:anywhere;}
.inv-item-meta{font-size:11px;color:var(--t3);margin-top:5px;}
.inv-item-acc{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;}
.inv-chip{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:700;padding:2px 9px;border-radius:999px;background:var(--c3);color:var(--t2);}
.inv-chip.enviada{background:rgba(0,196,255,.13);color:var(--accent2);}
.inv-chip.devuelta{background:rgba(255,180,0,.14);color:var(--amber);}
.inv-chip.revisada{background:rgba(0,208,132,.14);color:var(--green);}
.inv-nota{font-family:var(--font-cifras,inherit);font-weight:800;font-size:15px;color:var(--green);}
.inv-nota small{font-size:10px;color:var(--t3);font-weight:600;}
.inv-comentario{margin-top:8px;font-size:12px;color:var(--t2);background:var(--c2);border-radius:var(--r);padding:8px 10px;overflow-wrap:anywhere;display:flex;gap:6px;align-items:flex-start;}
.inv-comentario>div{flex:1;min-width:0;}
.mia-bloqueado .mia-acciones,.mia-bloqueado [data-quitar],.mia-bloqueado .mia-form-enlace{display:none !important;}
.ed-area{position:relative;}
.inv-banner{border:1px solid var(--c4);border-left:3px solid var(--accent2);border-radius:var(--r);padding:10px 12px;margin-bottom:14px;font-size:12.5px;color:var(--t2);}
.inv-banner.devuelta{border-left-color:var(--amber);}
.inv-banner.revisada{border-left-color:var(--green);}
.inv-banner-cab{display:flex;gap:10px;align-items:center;margin-bottom:5px;}
.inv-paso-btn{width:30px;height:30px;border-radius:50%;border:1.5px solid var(--c4);background:var(--c2);color:var(--t2);font-size:11px;font-weight:700;cursor:pointer;flex-shrink:0;font-family:inherit;display:inline-flex;align-items:center;justify-content:center;}
.inv-paso-btn.lleno{border-color:rgba(0,208,132,.5);color:var(--green);}
.inv-paso-btn.activo{background:#004977;border-color:#1b7fe0;color:#fff;}
.inv-ref-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;}
.inv-ref-form select,.inv-ref-form input{width:100%;padding:8px 10px;background:var(--c2);border:1px solid var(--c4);border-radius:var(--r);color:var(--t1);font-family:inherit;font-size:12.5px;min-width:0;}
.inv-ref-form #inv-ref-titulo{grid-column:span 2;}
.inv-ref-form #inv-ref-autores{grid-column:span 2;}
.inv-ref-form .btn{justify-content:center;}
#inv-editor-vista textarea:disabled,#inv-editor-vista input:disabled,#inv-editor-vista select:disabled{opacity:.75;cursor:not-allowed;}
.inv-check{list-style:none;margin:12px 0;display:grid;gap:5px;}
.inv-check li{font-size:12.5px;display:flex;gap:7px;align-items:center;}
.inv-check li.ok i{color:var(--green);}
.inv-check li.falta{color:var(--t1);}
.inv-check li.falta i{color:var(--red);}
.inv-check li.opc{color:var(--t2);}
.inv-check small{color:var(--t3);font-size:10.5px;}
.inv-prev{max-width:760px;}
.inv-prev h2{text-align:center;overflow-wrap:anywhere;}
.inv-prev-tema{text-align:center;color:var(--t3);font-size:12px;margin-bottom:18px;}
.inv-prev-cuerpo{max-height:62vh;overflow-y:auto;padding:0 6px;}
.inv-prev-sec{margin-bottom:18px;}
.inv-prev-sec h4{color:var(--gold);margin-bottom:6px;}
.inv-prev-sec>div{line-height:1.65;color:var(--t1);overflow-wrap:anywhere;}
.inv-prev-vacio{color:var(--t3);}
.inv-ref{padding-left:2em;text-indent:-2em;margin:0 0 6px;white-space:normal;}
.inv-rev{max-width:680px;}
.inv-rev-sub{font-size:12.5px;color:var(--t2);margin:6px 0 10px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.inv-rev-lectura{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px;}
.inv-rubrica{max-height:44vh;overflow-y:auto;display:grid;gap:8px;padding-right:2px;}
.inv-crit{background:var(--c2);border-radius:var(--r);padding:9px 10px;}
.inv-crit-cab b{display:block;font-size:12.5px;}
.inv-crit-cab small{display:block;font-size:11px;color:var(--t3);margin-bottom:7px;}
.inv-niveles{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;}
.inv-niveles button{background:var(--c1);border:1.5px solid var(--c4);border-radius:var(--r);color:var(--t2);padding:6px 4px;cursor:pointer;font-family:inherit;display:flex;flex-direction:column;align-items:center;gap:1px;min-width:0;}
.inv-niveles button b{font-size:14px;color:var(--t1);}
.inv-niveles button span{font-size:10px;line-height:1.15;text-align:center;}
.inv-niveles button.sel{background:#004977;border-color:#1b7fe0;color:#dfe9ff;}
.inv-niveles button:disabled{cursor:default;}
.inv-rev-nota{display:flex;align-items:baseline;gap:10px;margin:12px 0 6px;}
.inv-rev-nota span{font-size:12px;color:var(--t3);}
.inv-rev-nota b{font-size:26px;font-family:var(--font-cifras,inherit);color:var(--green);}
.inv-rev-nota small{font-size:11px;color:var(--t3);}
.inv-rev-acc{display:flex;gap:10px;margin-top:10px;}
.inv-rev-acc .btn{flex:1;justify-content:center;}

@media (max-width:600px){
  .enc-opciones{grid-template-columns:1fr;}
  .enc-escala.nps{grid-template-columns:repeat(6,1fr);}
  .inv-ref-form{grid-template-columns:1fr 1fr;}
  .inv-ref-form #inv-ref-titulo,.inv-ref-form #inv-ref-autores{grid-column:1/-1;}
  .inv-niveles span{display:none;}
  .inv-rev-acc,.enc-resp-nav{flex-direction:column-reverse;}
  .enc-pendiente{flex-direction:column;align-items:stretch;}
  .er-flotante.er-docente{right:16px;left:16px;width:auto;}
}

/* ── Editor de documentos ── */
.ed{border:1px solid var(--c4);border-radius:var(--r);background:var(--c1);display:flex;flex-direction:column;min-width:0;position:relative;}
.ed.ed-foco{border-color:var(--accent2);box-shadow:0 0 0 2px rgba(0,196,255,.12);}
.ed-barra{display:flex;flex-wrap:wrap;gap:2px 6px;align-items:center;padding:5px 6px;border-bottom:1px solid var(--c4);background:var(--c2);border-radius:var(--r) var(--r) 0 0;position:sticky;top:0;z-index:6;}
.ed-grupo{display:flex;align-items:center;gap:1px;padding-right:6px;border-right:1px solid var(--c4);}
.ed-grupo:last-child,.ed-grupo-fin{border-right:none;}
.ed-grupo-fin{margin-left:auto;padding-right:0;}
.ed-btn{min-width:30px;height:30px;padding:0 6px;border:none;border-radius:6px;background:transparent;color:var(--t2);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:4px;font-size:15px;font-family:inherit;position:relative;}
.ed-btn span{font-size:11px;font-weight:700;}
.ed-btn:hover:not(:disabled){background:var(--c3);color:var(--t1);}
.ed-btn.activo{background:rgba(41,98,255,.22);color:#9fc0ff;}
.ed-btn:disabled{opacity:.35;cursor:not-allowed;}
.ed-btn-ia{color:var(--accent2);border:1px solid rgba(0,196,255,.35);}
.ed-insignia{position:absolute;top:1px;right:0;min-width:15px;height:15px;border-radius:8px;background:var(--accent);color:#fff;font-size:10px !important;line-height:15px;padding:0 3px;}
.ed-bloque{height:30px;background:var(--c1);border:1px solid var(--c4);border-radius:6px;color:var(--t1);font-size:12px;padding:0 6px;font-family:inherit;max-width:120px;}
.ed-tabla-barra{display:flex;flex-wrap:wrap;align-items:center;gap:2px;padding:4px 8px;background:rgba(41,98,255,.08);border-bottom:1px solid var(--c4);font-size:11px;color:var(--t2);}
.ed-tabla-barra[hidden]{display:none;}
.ed-tabla-barra span{margin-right:6px;font-weight:700;}
.ed-tabla-barra button{height:28px;min-width:28px;border:none;background:transparent;color:var(--t2);border-radius:6px;cursor:pointer;font-size:15px;}
.ed-tabla-barra button:hover{background:var(--c3);color:var(--t1);}
.ed-area{padding:12px 14px;outline:none;color:var(--t1);font-size:13.5px;line-height:1.65;overflow-wrap:anywhere;cursor:text;flex:1;}
.ed-modo-compacto .ed-area{padding:9px 11px;font-size:13px;}
.ed.ed-vacio .ed-area::before{content:attr(data-placeholder);color:var(--t3);pointer-events:none;position:absolute;opacity:.85;}
.ed-pie{display:flex;justify-content:space-between;gap:8px;padding:3px 10px 5px;font-size:10.5px;color:var(--t3);border-top:1px solid var(--c3);}
.ed-contador.excedido{color:var(--red);font-weight:700;}
.ed-solo-lectura .ed-area{cursor:default;opacity:.9;}
.ed-ocupado .ed-area{opacity:.55;pointer-events:none;}
.ed-ocupado .ed-estado{color:var(--accent2);}
.ed.ed-completo{position:fixed;inset:0;z-index:10050;border-radius:0;border:none;background:var(--c0);}
.ed.ed-completo .ed-barra{border-radius:0;justify-content:center;}
.ed.ed-completo .ed-area{max-width:860px;width:100%;margin:18px auto;padding:40px 52px;background:var(--c1);border:1px solid var(--c4);border-radius:var(--r);box-shadow:var(--sombra-md);overflow-y:auto;font-size:14.5px;}
.ed-completo-titulo{text-align:center;font-size:12px;font-weight:700;color:var(--t2);padding:8px 12px 0;letter-spacing:.04em;text-transform:uppercase;}
body.ed-sin-scroll{overflow:hidden;}
.ed-pop{position:fixed;z-index:10100;background:var(--c1);border:1px solid var(--c4);border-radius:var(--r2);box-shadow:var(--sombra-lg);padding:10px;max-width:calc(100vw - 16px);}
.ed-colores{display:grid;grid-template-columns:repeat(7,26px);gap:6px;}
.ed-colores button{width:26px;height:26px;border-radius:6px;border:1px solid var(--c4);cursor:pointer;color:var(--t3);background:var(--c2);}
.ed-form{display:grid;gap:8px;width:min(300px,calc(100vw - 40px));}
.ed-form label{display:grid;gap:4px;font-size:11px;color:var(--t2);font-weight:600;}
.ed-form input{padding:7px 9px;background:var(--c2);border:1px solid var(--c4);border-radius:6px;color:var(--t1);font-family:inherit;font-size:12.5px;}
.ed-form-acc{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap;}
.ed-buscar-info{font-size:11px;color:var(--t3);}
.ed-tabla-rejilla{display:grid;grid-template-columns:repeat(8,18px);gap:3px;}
.ed-tabla-rejilla span{width:18px;height:18px;border:1px solid var(--c4);border-radius:3px;background:var(--c2);cursor:pointer;}
.ed-tabla-rejilla span.on{background:rgba(41,98,255,.45);border-color:var(--accent);}
.ed-tabla-tam{text-align:center;font-size:11px;color:var(--t2);margin-top:6px;}
.ed-ia{display:grid;gap:2px;width:min(290px,calc(100vw - 40px));}
.ed-ia-cab{font-size:11px;color:var(--t3);font-weight:700;padding:2px 6px 6px;}
.ed-ia>button{display:flex;align-items:center;gap:8px;width:100%;padding:8px;border:none;border-radius:6px;background:transparent;color:var(--t1);font-size:12.5px;cursor:pointer;text-align:left;font-family:inherit;}
.ed-ia>button:hover{background:var(--c3);}
.ed-ia>button i{color:var(--accent2);font-size:15px;}
.ed-ia-libre{display:flex;gap:4px;margin:6px 0 4px;}
.ed-ia-libre input{flex:1;min-width:0;padding:7px 9px;background:var(--c2);border:1px solid var(--c4);border-radius:6px;color:var(--t1);font-size:12.5px;font-family:inherit;}
.ed-ia-libre button{width:34px;border:none;border-radius:6px;background:var(--accent);color:#fff;cursor:pointer;}
.ed-ia .ed-ia-material{border-top:1px solid var(--c3);border-radius:0;justify-content:space-between;color:var(--t2);font-size:11.5px;}
.ed-ia .ed-ia-material span{color:var(--accent2);font-weight:700;}

/* Contenido con formato (editor y vistas de lectura) */
.contenido-rico p{margin:0 0 .65em;}
.contenido-rico p:last-child{margin-bottom:0;}
.contenido-rico h2{font-size:1.25em;margin:.8em 0 .4em;line-height:1.3;}
.contenido-rico h3{font-size:1.1em;margin:.7em 0 .35em;}
.contenido-rico h4{font-size:1em;margin:.6em 0 .3em;}
.contenido-rico ul,.contenido-rico ol{margin:0 0 .65em;padding-left:1.5em;}
.contenido-rico li{margin:.15em 0;}
.contenido-rico blockquote{margin:0 0 .65em;padding:.3em .9em;border-left:3px solid var(--accent2);color:var(--t2);}
.contenido-rico a{color:#6fb4ff;text-decoration:underline;}
.contenido-rico table{border-collapse:collapse;width:100%;margin:0 0 .8em;font-size:.95em;display:block;overflow-x:auto;}
.contenido-rico td,.contenido-rico th{border:1px solid var(--c5);padding:5px 8px;min-width:48px;vertical-align:top;}
.contenido-rico th{background:var(--c2);font-weight:700;}
.contenido-rico img{max-width:100%;height:auto;border-radius:6px;}
.contenido-rico hr{border:none;border-top:1px solid var(--c5);margin:1em 0;}
.contenido-rico code{font-family:var(--font-mono);font-size:.9em;background:var(--c2);padding:1px 5px;border-radius:4px;}
.contenido-rico span[style*="background-color"]{color:#1a1a1a;border-radius:2px;padding:0 1px;}
.contenido-rico.recortado{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.contenido-rico.recortado *{margin:0 !important;font-size:inherit !important;}

/* ── Material para la IA ── */
.mia{border:1px dashed var(--c5);border-radius:var(--r);padding:10px 12px;background:rgba(0,196,255,.03);position:relative;}
.mia-titulo{font-size:12.5px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.mia-titulo i{color:var(--accent2);}
.mia-uso{color:var(--t3);font-size:11px;font-weight:600;}
.mia-desc{font-size:11px;color:var(--t3);margin-top:2px;overflow-wrap:anywhere;}
.mia-acciones{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0;}
.mia-form-enlace{display:flex;gap:6px;margin-bottom:8px;}
.mia-form-enlace[hidden]{display:none;}
.mia-form-enlace input{flex:1;min-width:0;padding:7px 9px;background:var(--c2);border:1px solid var(--c4);border-radius:6px;color:var(--t1);font-size:12.5px;font-family:inherit;}
.mia-lista{display:grid;gap:5px;}
.mia-item{display:flex;align-items:center;gap:8px;padding:6px 8px;background:var(--c2);border-radius:6px;min-width:0;}
.mia-item.error{border:1px solid rgba(255,71,87,.4);}
.mia-icono{font-size:18px;color:var(--accent2);flex-shrink:0;}
.mia-info{flex:1;min-width:0;}
.mia-nombre{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mia-meta{font-size:10.5px;color:var(--t3);}
.mia-error{color:var(--red);}
.mia-vacio{font-size:11px;color:var(--t3);}
.mia-gira{animation:girarSimIA 1s linear infinite;display:inline-block;}
@keyframes girarSimIA{to{transform:rotate(360deg)}}
.mia-soltar{display:none;position:absolute;inset:0;border-radius:var(--r);background:rgba(41,98,255,.18);border:2px dashed var(--accent);align-items:center;justify-content:center;gap:8px;font-weight:700;color:var(--t1);}
.mia.soltando .mia-soltar{display:flex;}
.mia-texto{white-space:pre-wrap;font-size:12px;line-height:1.55;color:var(--t2);max-height:60vh;overflow-y:auto;background:var(--c2);padding:12px;border-radius:var(--r);overflow-wrap:anywhere;}
.mia-imagen{max-width:100%;max-height:60vh;border-radius:var(--r);display:block;margin:0 auto;}
.mia-modal{z-index:10060;}
.mia-modal .grade-modal{width:calc(100vw - 32px);}

@media (max-width:600px){
  .ed-barra{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;}
  .ed-barra::-webkit-scrollbar{display:none;}
  .ed-grupo-fin{margin-left:0;}
  .ed-btn{min-width:34px;height:34px;}
  .ed.ed-completo .ed-area{margin:0;border-radius:0;border:none;padding:18px 16px;}
}

/* ── Diario de trading ── */
.diario-modal{max-width:760px;width:calc(100vw - 32px);max-height:90vh;overflow-y:auto;}
.diario-cab{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;}
.diario-cab .modal-close{position:static;}
.diario-barra{display:flex;gap:8px;margin:12px 0;flex-wrap:wrap;}
.diario-barra input{flex:1 1 180px;min-width:0;padding:8px 10px;background:var(--c2);border:1px solid var(--c4);border-radius:var(--r);color:var(--t1);font-family:inherit;font-size:12.5px;}
.diario-entrada{background:var(--c2);border-radius:var(--r);padding:10px 12px;margin-bottom:8px;}
.diario-entrada-cab{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:11px;color:var(--t3);margin-bottom:6px;}
.diario-texto{font-size:13px;color:var(--t1);}
.diario-riesgo{margin-top:6px;font-size:10.5px;}
.diario-reflexion,.diario-original{margin-top:8px;padding:8px 10px;border-left:3px solid var(--gold);background:rgba(212,175,55,.06);border-radius:0 var(--r) var(--r) 0;font-size:12.5px;}
.diario-original{margin:0 0 10px;border-left-color:var(--accent2);background:rgba(0,196,255,.05);}
.diario-reflexion-t{font-size:11px;font-weight:700;color:var(--t2);margin-bottom:4px;}
.diario-acciones{display:flex;gap:6px;justify-content:flex-end;margin-top:6px;}
.diario-editor-cab{display:flex;align-items:center;gap:10px;margin:10px 0;}
.diario-campos{display:grid;grid-template-columns:1fr 2fr;gap:8px;margin-bottom:10px;}
.diario-campos label{display:grid;gap:4px;font-size:11px;color:var(--t2);font-weight:600;}
.diario-campos select,.diario-campos input{padding:8px 10px;background:var(--c2);border:1px solid var(--c4);border-radius:var(--r);color:var(--t1);font-family:inherit;font-size:12.5px;min-width:0;}
.diario-editor-acc{display:flex;gap:8px;justify-content:flex-end;margin-top:12px;}
@media (max-width:600px){ .diario-campos{grid-template-columns:1fr;} .diario-editor-acc .btn{flex:1;justify-content:center;} }

/* Puntuaciones y análisis vertical, horizontal y de ciclo */
.sf-punts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-bottom: 12px; }
.sf-punt { text-align: left; background: var(--c2, #141a24); border: 1px solid var(--c4, rgba(255,255,255,.1)); border-left: 3px solid var(--c); border-radius: 8px; padding: 8px 11px; cursor: pointer; color: var(--t1, #fff); font-family: inherit; min-width: 0; display: grid; grid-template-columns: 1fr auto; column-gap: 8px; align-items: baseline; }
.sf-punt span { font-size: 11px; color: var(--t3, #6580b0); }
.sf-punt b { font-size: 17px; color: var(--c); grid-row: span 2; align-self: center; }
.sf-punt em { font-style: normal; font-size: 11px; color: var(--t2, #9fb3d1); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sf-punt:hover { border-color: var(--c); }
.sf-pts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 10px; }
.sf-pt { background: var(--c2, #141a24); border: 1px solid var(--c4, rgba(255,255,255,.1)); border-top: 3px solid var(--c, #5f6b80); border-radius: 8px; padding: 10px 12px; min-width: 0; font-size: 12px; }
.sf-pt-na { --c: #5f6b80; }
.sf-pt-cab { display: grid; grid-template-columns: 1fr auto; align-items: baseline; margin-bottom: 8px; }
.sf-pt-cab span { font-size: 12px; font-weight: 700; color: var(--t2, #9fb3d1); }
.sf-pt-cab b { font-size: 22px; color: var(--c); }
.sf-pt-cab em { grid-column: 1 / -1; font-style: normal; font-size: 11.5px; color: var(--c); font-weight: 600; }
.sf-pt-fila { display: flex; justify-content: space-between; gap: 8px; padding: 4px 0; border-bottom: 1px solid rgba(255,255,255,.05); font-size: 11.5px; }
.sf-pt-fila span { color: var(--t2, #9fb3d1); min-width: 0; }
.sf-pt-fila b { font-variant-numeric: tabular-nums; white-space: nowrap; }
.sf-pt p { margin: 8px 0 0; font-size: 11px; color: var(--t3, #6580b0); line-height: 1.45; }
.sf-pt-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.sf-pt-lista li { display: flex; gap: 7px; align-items: flex-start; font-size: 11.5px; }
.sf-pt-lista li i { font-size: 14px; margin-top: 1px; }
.sf-pt-lista li.si i { color: #30cc5a; } .sf-pt-lista li.no i { color: #ff4757; } .sf-pt-lista li.na i { color: #6580b0; }
.sf-pt-lista li span { display: grid; min-width: 0; }
.sf-pt-lista small { color: var(--t3, #6580b0); font-size: 10.5px; }
.sf-dos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 8px; }
.sf-mini { width: 100%; border-collapse: collapse; font-size: 11.5px; }
.sf-mini th, .sf-mini td { padding: 5px 7px; border-bottom: 1px solid rgba(255,255,255,.06); text-align: left; white-space: nowrap; }
.sf-mini th { color: var(--t3, #6580b0); font-weight: 600; font-size: 10.5px; }
.sf-mini .num { text-align: right; font-variant-numeric: tabular-nums; }
.sf-mini td.pos { color: #30cc5a; } .sf-mini td.neg { color: #ff4757; }
@media (max-width: 1100px) { .sf-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.sf-dos > div, .sf-pts > * { min-width: 0; }
@media (max-width: 900px) { .sf-pts, .sf-dos { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 560px) { .sf-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } .sf-punts { grid-template-columns: 1fr; } }
/* Valoración por flujos descontados */
.sf-dcf { margin-top: 12px; }
.sf-dcf-ctrl { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px 14px; align-items: end; background: var(--c2, #141a24); border: 1px solid var(--c4, rgba(255,255,255,.08)); border-radius: 10px; padding: 12px; }
.sf-dcf-f { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.sf-dcf-f span { font-size: 10.5px; color: var(--t3, #6580b0); line-height: 1.3; }
.sf-dcf-f b { font-size: 16px; color: var(--t1, #fff); font-family: var(--font-mono, monospace); }
.sf-dcf-f input[type=range] { width: 100%; accent-color: var(--accent2, #4aa3ff); min-height: 28px; height: 28px; padding: 0; margin: 0; background: transparent; border: none; box-shadow: none; }
.sf-dcf-ctrl .btn { justify-self: start; }
.sf-nota { font-size: 11px; color: var(--t3, #6580b0); line-height: 1.5; margin: 8px 0; }
.sf-dcf-puente { margin-top: 10px; }
.sf-dcf-puente td { white-space: normal; }
.sf-sens td.sf-sens-base { outline: 2px solid var(--accent2, #4aa3ff); outline-offset: -2px; font-weight: 700; }
.sf-mult-lee { color: var(--t3, #6580b0); font-size: 10.5px; white-space: normal !important; }
@media (max-width: 560px) { .sf-dcf-ctrl { grid-template-columns: minmax(0, 1fr); } .sf-mult-lee { display: none; } }
.sf-dcf-f input[type=range], .sf-dupont-f input[type=range] { -webkit-appearance: none; appearance: none; background: transparent; border: none; box-shadow: none; padding: 0; margin: 0; height: 28px; min-height: 28px; cursor: pointer; }
.sf-dcf-f input[type=range]::-webkit-slider-runnable-track, .sf-dupont-f input[type=range]::-webkit-slider-runnable-track { height: 4px; border-radius: 4px; background: rgba(255,255,255,.14); }
.sf-dcf-f input[type=range]::-moz-range-track, .sf-dupont-f input[type=range]::-moz-range-track { height: 4px; border-radius: 4px; background: rgba(255,255,255,.14); }
.sf-dcf-f input[type=range]::-webkit-slider-thumb, .sf-dupont-f input[type=range]::-webkit-slider-thumb { -webkit-appearance: none; width: 18px; height: 18px; margin-top: -7px; border-radius: 50%; background: var(--accent2, #4aa3ff); border: 2px solid #0d1320; }
.sf-dcf-f input[type=range]::-moz-range-thumb, .sf-dupont-f input[type=range]::-moz-range-thumb { width: 16px; height: 16px; border-radius: 50%; background: var(--accent2, #4aa3ff); border: 2px solid #0d1320; }
.sf-dcf-f input[type=range]:focus-visible, .sf-dupont-f input[type=range]:focus-visible { outline: 2px solid var(--accent2, #4aa3ff); outline-offset: 2px; border-radius: 4px; }
/* Tesis de inversión con IA en la valoración */
.sf-tesis { margin-top: 16px; background: var(--c2, #141a24); border: 1px solid var(--c4, rgba(255,255,255,.08)); border-radius: 10px; padding: 14px; }
.sf-tesis-cab { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.sf-tesis-cab > div { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1 1 260px; }
.sf-tesis-cab b { font-size: 14px; color: var(--t1, #fff); }
.sf-tesis-cab b i { color: var(--gold, #e8b94a); }
.sf-tesis-cab span { font-size: 11.5px; color: var(--t3, #6580b0); }
.sf-tesis-nota { width: 100%; margin-top: 10px; box-sizing: border-box; }
.sf-tesis-carga { margin-top: 12px; font-size: 12.5px; color: var(--t2, #b8c4dc); display: flex; align-items: center; gap: 8px; }
.sf-gira { display: inline-block; animation: sf-gira 1s linear infinite; }
@keyframes sf-gira { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .sf-gira { animation: none; } }
.sf-tesis-aviso { margin-top: 12px; font-size: 12px; color: #ffb400; background: rgba(255,180,0,.08); border: 1px solid rgba(255,180,0,.3); border-radius: 8px; padding: 8px 10px; }
.sf-tesis-texto { margin-top: 12px; font-size: 13.5px; line-height: 1.65; color: var(--t1, #e8edf8); max-width: 880px; overflow-wrap: anywhere; }
.sf-tesis-texto h3 { font-size: 14px; color: var(--accent2, #4aa3ff); margin: 16px 0 6px; }
.sf-tesis-texto h3:first-child { margin-top: 0; }
.sf-tesis-texto p { margin: 0 0 10px; text-align: justify; }
.sf-tesis-texto ul { margin: 0 0 10px; padding-left: 20px; }
.sf-tesis-texto li { margin-bottom: 4px; }
.sf-tesis-acciones { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
@media (max-width: 560px) { .sf-tesis-cab .btn { width: 100%; justify-content: center; } .sf-tesis-texto p { text-align: left; } }
/* Secciones del análisis de estados financieros */
.sf-secciones { display: flex; gap: 4px; overflow-x: auto; border-bottom: 1px solid var(--c4, rgba(255,255,255,.08)); margin: 12px 0 14px; scrollbar-width: thin; }
.sf-sec-btn { flex: 0 0 auto; background: none; border: none; border-bottom: 2px solid transparent; color: var(--t3, #6580b0); font-size: 12.5px; font-weight: 600; padding: 9px 12px; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; min-height: 40px; white-space: nowrap; }
.sf-sec-btn:hover { color: var(--t1, #fff); }
.sf-sec-btn.activo { color: var(--accent2, #4aa3ff); border-bottom-color: var(--accent2, #4aa3ff); }
.sf-sec-btn span { font-size: 10px; background: var(--c3, rgba(255,255,255,.08)); border-radius: 10px; padding: 1px 6px; color: var(--t2, #b8c4dc); }
.sf-sec-btn:focus-visible, .sf-seg-btn:focus-visible { outline: 2px solid var(--accent2, #4aa3ff); outline-offset: -2px; }
.sf-seccion[hidden] { display: none !important; }
.sf-atajos { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
#sf-pulso { min-width: 0; }
.sf-dato em { font-style: normal; font-size: 11px; margin-left: 4px; }
.sf-dato em.pos, .sf-ef .pos, .sf-mini .pos { color: #30cc5a; } .sf-dato em.neg, .sf-ef .neg, .sf-mini .neg { color: #ff4757; }
/* Control segmentado */
.sf-seg { display: inline-flex; flex-wrap: wrap; gap: 2px; background: var(--c2, #141a24); border: 1px solid var(--c4, rgba(255,255,255,.08)); border-radius: 8px; padding: 2px; }
.sf-seg-btn { background: none; border: none; color: var(--t2, #b8c4dc); font-size: 12px; padding: 6px 10px; border-radius: 6px; cursor: pointer; min-height: 32px; white-space: nowrap; }
.sf-seg-btn.activo { background: var(--accent2, #4aa3ff); color: #04121d; font-weight: 600; }
.sf-seg-btn span { opacity: .75; font-size: 10.5px; }
/* Estados completos */
.sf-ef-ctrl { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.sf-ef-graf { background: var(--c2, #141a24); border: 1px solid var(--c4, rgba(255,255,255,.08)); border-radius: 10px; padding: 10px 12px; margin-bottom: 4px; }
.sf-ef-graf-cab { display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: baseline; margin-bottom: 6px; }
.sf-ef-graf-cab b { font-size: 13px; color: var(--t1, #fff); }
.sf-ef-graf-cab span { font-size: 11.5px; color: var(--t3, #6580b0); }
.sf-ef-caja { max-height: none; }
.sf-ef { width: 100%; border-collapse: collapse; font-size: 12px; }
.sf-ef th, .sf-ef td { padding: 6px 8px; border-bottom: 1px solid rgba(255,255,255,.05); white-space: nowrap; text-align: left; }
.sf-ef th { color: var(--t3, #6580b0); font-size: 10.5px; font-weight: 600; position: sticky; top: 0; background: var(--c1, #10141d); }
.sf-ef th:first-child, .sf-ef td:first-child { position: sticky; left: 0; background: var(--c1, #10141d); z-index: 1; min-width: 150px; white-space: normal; }
.sf-ef .num { text-align: right; font-variant-numeric: tabular-nums; }
.sf-ef tbody tr { cursor: pointer; }
.sf-ef tbody tr:hover td { background: rgba(74,163,255,.06); }
.sf-ef tr.sf-sel td { background: rgba(74,163,255,.12); }
.sf-ef-linea td:first-child { padding-left: 18px; color: var(--t2, #b8c4dc); }
.sf-ef-sub td { font-weight: 600; color: var(--t1, #fff); border-top: 1px solid rgba(255,255,255,.12); }
.sf-ef-total td { font-weight: 700; color: var(--t1, #fff); border-top: 1px solid rgba(255,255,255,.2); background: rgba(255,255,255,.025); }
.sf-ef-memo td { color: var(--t3, #6580b0); font-style: italic; }
.sf-ef-memo td:first-child { padding-left: 18px; }
.sf-calc { font-size: 9.5px; font-style: normal; color: var(--t3, #6580b0); border: 1px solid rgba(255,255,255,.12); border-radius: 4px; padding: 0 4px; margin-left: 4px; }
.sf-marca { display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: #ffb400; margin-left: 4px; vertical-align: middle; }
.sf-spark { display: block; }
.sf-spark-cero { stroke: rgba(255,255,255,.12); stroke-width: 1; }
.sf-ef-spark { width: 72px; }
.sf-doc-mini { background: none; border: none; color: var(--accent2, #4aa3ff); cursor: pointer; padding: 0 0 0 4px; font-size: 12px; min-width: 0; }
/* Documentos */
.sf-docs-cab { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.sf-docs-emp { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 12px; color: var(--t2, #b8c4dc); align-items: center; }
.sf-docs-emp i { color: var(--t3, #6580b0); }
.sf-docs-enlaces { display: flex; flex-wrap: wrap; gap: 6px; }
.sf-docs-filtros { margin-bottom: 10px; }
.sf-docs-lista { display: flex; flex-direction: column; border: 1px solid var(--c4, rgba(255,255,255,.08)); border-radius: 10px; overflow: hidden; }
.sf-doc { display: grid; grid-template-columns: 76px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 10px 12px; border-bottom: 1px solid rgba(255,255,255,.05); }
.sf-doc:last-child { border-bottom: none; }
.sf-doc-forma { font-family: var(--font-mono, monospace); font-size: 11px; font-weight: 700; text-align: center; padding: 4px 6px; border-radius: 6px; background: rgba(74,163,255,.12); color: #4aa3ff; }
.sf-doc-forma[data-f="10-K"], .sf-doc-forma[data-f="20-F"], .sf-doc-forma[data-f="40-F"] { background: rgba(48,204,90,.12); color: #30cc5a; }
.sf-doc-forma[data-f="8-K"], .sf-doc-forma[data-f="6-K"] { background: rgba(255,180,0,.12); color: #ffb400; }
.sf-doc-forma[data-f="DEF"] { background: rgba(167,139,250,.14); color: #a78bfa; }
.sf-doc-info { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.sf-doc-info b { font-size: 12.5px; color: var(--t1, #fff); font-weight: 600; }
.sf-doc-info span { font-size: 11px; color: var(--t3, #6580b0); }
.sf-doc-acc { display: flex; flex-wrap: wrap; gap: 4px; justify-content: flex-end; }
/* Lector de documentos */
.sf-lector-ov { position: fixed; inset: 0; background: rgba(4,8,16,.72); z-index: 3000; display: flex; align-items: center; justify-content: center; padding: 16px; }
.sf-lector { background: var(--c1, #10141d); border: 1px solid var(--c4, rgba(255,255,255,.1)); border-radius: 12px; width: min(1180px, 100%); height: min(92vh, 900px); display: flex; flex-direction: column; overflow: hidden; }
.sf-lector-cab { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 12px 14px; border-bottom: 1px solid var(--c4, rgba(255,255,255,.08)); }
.sf-lector-cab > div:first-child { display: flex; flex-direction: column; min-width: 0; }
.sf-lector-cab b { font-size: 14px; color: var(--t1, #fff); }
.sf-lector-cab span { font-size: 11.5px; color: var(--t3, #6580b0); }
.sf-lector-acc { display: flex; gap: 6px; flex-shrink: 0; }
.sf-lector-cuerpo { flex: 1; display: grid; grid-template-columns: 240px minmax(0, 1fr); min-height: 0; }
.sf-lector-cuerpo > .sf-tesis-carga, .sf-lector-cuerpo > .info-box { grid-column: 1 / -1; margin: 16px; }
.sf-lector-nav { overflow-y: auto; border-right: 1px solid var(--c4, rgba(255,255,255,.08)); padding: 8px; display: flex; flex-direction: column; gap: 2px; }
.sf-lector-nav button { text-align: left; background: none; border: none; color: var(--t2, #b8c4dc); font-size: 12px; padding: 7px 9px; border-radius: 6px; cursor: pointer; line-height: 1.35; }
.sf-lector-nav button:hover { background: rgba(255,255,255,.05); }
.sf-lector-nav button.activo { background: rgba(74,163,255,.14); color: var(--accent2, #4aa3ff); font-weight: 600; }
.sf-lector-principal { display: flex; flex-direction: column; min-height: 0; min-width: 0; }
.sf-lector-herr { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 10px 14px; border-bottom: 1px solid var(--c4, rgba(255,255,255,.08)); }
.sf-lector-sel { display: none; }
.sf-lector-buscar { flex: 1 1 220px; display: flex; align-items: center; gap: 6px; background: var(--c2, #141a24); border: 1px solid var(--c4, rgba(255,255,255,.1)); border-radius: 8px; padding: 0 10px; }
.sf-lector-buscar input { flex: 1; background: none; border: none; color: var(--t1, #fff); padding: 8px 0; font-size: 13px; min-width: 0; outline: none; }
.sf-lector-principal > .sf-nota { padding: 0 14px; }
.sf-lector-resumen { margin: 10px 14px 0; background: rgba(232,185,74,.07); border: 1px solid rgba(232,185,74,.3); border-radius: 10px; padding: 10px 12px; font-size: 13px; line-height: 1.55; color: var(--t1, #e8edf8); max-height: 38vh; overflow-y: auto; }
.sf-lector-resumen > b { display: block; margin-bottom: 4px; color: var(--gold, #e8b94a); }
.sf-lector-resumen ul { padding-left: 18px; margin: 4px 0; }
.sf-lector-texto { flex: 1; overflow-y: auto; padding: 12px 18px 24px; font-size: 13.5px; line-height: 1.65; color: var(--t1, #e8edf8); overflow-wrap: anywhere; }
.sf-lector-texto h3 { font-size: 16px; margin: 0 0 4px; color: var(--accent2, #4aa3ff); }
.sf-lector-texto h4 { font-size: 13.5px; margin: 14px 0 6px; color: var(--t1, #fff); }
.sf-lector-texto p { margin: 0 0 10px; }
.sf-lector-texto mark { background: #ffb400; color: #04121d; border-radius: 2px; }
.sf-lector-tabla { overflow-x: auto; margin: 6px 0 14px; }
.sf-lector-tabla table { border-collapse: collapse; font-size: 12px; min-width: 60%; }
.sf-lector-tabla td { padding: 4px 8px; border-bottom: 1px solid rgba(255,255,255,.06); vertical-align: top; }
.sf-lector-tabla td.num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
@media (max-width: 900px) {
  .sf-lector-cuerpo { grid-template-columns: minmax(0, 1fr); }
  .sf-lector-nav { display: none; }
  .sf-lector-sel { display: block; flex: 1 1 100%; background: var(--c2, #141a24); color: var(--t1, #fff); border: 1px solid var(--c4, rgba(255,255,255,.1)); border-radius: 8px; padding: 8px; font-size: 13px; }
}
@media (max-width: 560px) {
  .sf-lector-ov { padding: 0; }
  .sf-lector { height: 100%; border-radius: 0; }
  .sf-lector-herr .btn { width: 100%; justify-content: center; }
  .sf-doc { grid-template-columns: 62px minmax(0, 1fr); }
  .sf-doc-acc { grid-column: 1 / -1; justify-content: flex-start; }
  .sf-ef-ctrl .sf-seg { width: 100%; }
  .sf-ef-ctrl .sf-seg-btn { flex: 1 1 auto; }
  .sf-ef th:first-child, .sf-ef td:first-child { min-width: 118px; max-width: 150px; }
}
.sf-lector-tabla td { overflow-wrap: normal; word-break: normal; min-width: 2.5em; }
/* Panorama del activo */
.pn-cab { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 8px 16px; margin-bottom: 12px; }
.pn-precio { display: flex; flex-direction: column; align-items: flex-end; gap: 1px; }
.pn-precio b { font-family: var(--font-mono, monospace); font-size: 22px; color: var(--t1, #fff); }
.pn-precio span { font-size: 12px; }
.pn-precio em { font-style: normal; font-size: 10.5px; color: var(--t3, #6580b0); }
.pn-precio .pos, .pn-r b.pos, .pn-senales .pos, .pn-f b.pos { color: #30cc5a; } .pn-precio .neg, .pn-r b.neg, .pn-senales .neg, .pn-f b.neg { color: #ff4757; }
.pn-rend { display: grid; grid-template-columns: repeat(auto-fit, minmax(96px, 1fr)); gap: 8px; margin-bottom: 14px; }
.pn-r { background: var(--c2, #141a24); border: 1px solid var(--c4, rgba(255,255,255,.08)); border-radius: 8px; padding: 8px 10px 10px; position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 2px; }
.pn-r span { font-size: 10.5px; color: var(--t3, #6580b0); }
.pn-r b { font-family: var(--font-mono, monospace); font-size: 15px; }
.pn-r i { position: absolute; left: 0; bottom: 0; height: 3px; width: var(--w); background: #30cc5a; opacity: .7; }
.pn-r i.neg { background: #ff4757; }
.pn-rejilla { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.pn-bloque { min-width: 0; }
.pn-rango { padding: 10px 0 4px; }
.pn-rango-barra { position: relative; height: 8px; border-radius: 4px; background: linear-gradient(90deg, #ff4757, #ffb400 50%, #30cc5a); }
.pn-rango-barra i { position: absolute; top: -5px; width: 4px; height: 18px; margin-left: -2px; background: #fff; border-radius: 2px; box-shadow: 0 0 0 2px rgba(0,0,0,.4); }
.pn-rango-et { display: flex; justify-content: space-between; font-family: var(--font-mono, monospace); font-size: 11px; color: var(--t3, #6580b0); margin-top: 6px; }
.pn-datos { display: grid; grid-template-columns: minmax(0, 1fr); gap: 6px; }
.pn-senales { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 6px; font-size: 12px; color: var(--t2, #b8c4dc); line-height: 1.45; }
.pn-senales i { margin-right: 4px; }
.pn-fund { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 8px; }
.pn-f { text-align: left; background: var(--c2, #141a24); border: 1px solid var(--c4, rgba(255,255,255,.08)); border-left: 3px solid var(--c, #4aa3ff); border-radius: 8px; padding: 8px 10px; cursor: pointer; display: flex; flex-direction: column; gap: 2px; color: inherit; font: inherit; min-height: 44px; }
.pn-f:hover { background: rgba(74,163,255,.06); }
.pn-f:focus-visible { outline: 2px solid var(--accent2, #4aa3ff); outline-offset: 2px; }
.pn-f span { font-size: 10.5px; color: var(--t3, #6580b0); }
.pn-f b { font-family: var(--font-mono, monospace); font-size: 15px; color: var(--t1, #fff); }
.pn-f em { font-style: normal; font-size: 10.5px; color: var(--t3, #6580b0); }
@media (max-width: 900px) { .pn-rejilla { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 560px) { .pn-precio { align-items: flex-start; } .pn-rend { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ══ Fundamentos por clase de activo (fondos, cripto, divisas) ══ */
.fd-top { display: grid; gap: 6px; }
.fd-pos { position: relative; display: flex; align-items: center; gap: 8px; padding: 6px 9px; border-radius: 6px; background: rgba(255,255,255,.03); overflow: hidden; font-size: 12px; }
.fd-pos span { position: relative; z-index: 1; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--t1, #e4ecff); }
.fd-pos em { font-style: normal; color: var(--t3, #6580b0); font-family: var(--font-mono, monospace); font-size: 10.5px; }
.fd-pos b { position: relative; z-index: 1; font-family: var(--font-mono, monospace); font-variant-numeric: tabular-nums; color: var(--t1, #e4ecff); font-weight: 600; }
.fd-pos i { position: absolute; left: 0; top: 0; bottom: 0; background: rgba(79,142,247,.16); border-right: 2px solid rgba(79,142,247,.55); pointer-events: none; }
.fd-barra { display: flex; height: 12px; border-radius: 6px; overflow: hidden; background: rgba(255,255,255,.05); }
.fd-barra span { display: block; height: 100%; min-width: 2px; }
.fd-leyenda, .cr-oferta-et { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: 8px; font-size: 11.5px; color: var(--t2, #a8b8d8); }
.cr-oferta-et { justify-content: space-between; }
.fd-leyenda span { display: inline-flex; align-items: center; gap: 5px; }
.fd-leyenda i { width: 9px; height: 9px; border-radius: 2px; display: inline-block; }
.cr-oferta { margin: 4px 0 10px; }
.cr-barra { height: 10px; border-radius: 5px; background: rgba(255,255,255,.06); overflow: hidden; }
.cr-barra span { display: block; height: 100%; background: linear-gradient(90deg, #f7931a, #ffb454); }
.cr-desc { font-size: 12.5px; line-height: 1.6; color: var(--t2, #a8b8d8); max-height: 220px; overflow-y: auto; padding-right: 6px; }
.cr-desc p { margin: 0 0 8px; overflow-wrap: anywhere; }
.dv-favor { display: inline-block; padding: 2px 8px; border-radius: 10px; background: rgba(48,204,90,.12); color: #30cc5a; font-size: 11px; font-weight: 600; white-space: nowrap; }
.dv-tabla em { font-style: normal; color: var(--t3, #6580b0); font-size: 10px; }
@media (max-width: 640px) {
  .fd-pos { font-size: 11.5px; padding: 5px 7px; }
  .cr-oferta-et { flex-direction: column; gap: 3px; }
  .cr-desc { max-height: 180px; }
}

/* Los datos largos (cifras con unidad y variación) pasan a dos líneas en vez de cortarse. */
.sf-dato b { white-space: normal; overflow-wrap: break-word; text-overflow: clip; line-height: 1.3; }
.sf-rejilla > * { min-width: 0; }
.sf-mini.sf-kv td { white-space: normal; overflow-wrap: break-word; }
.sf-mini.sf-kv td:first-child { white-space: nowrap; }
@media (max-width: 400px) { .sf-mini.sf-kv td:first-child { white-space: normal; } }

/* ══════════════════════════════════════════════════════════════
   MERCADO · diseño unificado
   Un solo lenguaje visual: tarjetas .mkt-card con el mismo borde,
   radio y relleno; datos en mosaicos del mismo tamaño; controles
   segmentados iguales para horizonte, tipo de gráfico y tipo de
   orden. En el teléfono, el panel de orden sube justo debajo de las
   estadísticas y el perfil queda al final.
   ══════════════════════════════════════════════════════════════ */
.market-toolbar{display:flex;align-items:center;gap:8px 14px;padding:10px 16px;flex-wrap:wrap;}
.market-toolbar .mt-id{min-width:0;}
.market-toolbar .mt-asset-name{font-size:15px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.market-toolbar .mt-sub{font-size:11px;color:var(--t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.market-toolbar .mt-cotiz{display:flex;align-items:center;gap:8px;}
.market-toolbar .mt-price{font-size:26px;line-height:1.1;}
.market-toolbar .mt-change{font-size:12.5px;padding:3px 9px;}
.market-toolbar .mt-badges{margin-left:auto;gap:5px;}
.market-toolbar .mt-acciones{display:flex;align-items:center;gap:6px;flex-shrink:0;}
.market-toolbar .pbtn{height:32px;padding:0 11px;font-size:11.5px;gap:5px;flex-shrink:0;}
#mkt-session-badge{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 10px;border:1px solid;border-radius:7px;font-size:11px;font-family:var(--font-mono);white-space:nowrap;}
#mkt-session-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
#mkt-session-timer{font-weight:700;}
#mkt-session-timer:empty{display:none;}

.market-body{padding:14px;}
.mkt-card{background:var(--c2);border:1px solid var(--c4);border-radius:var(--r2, 12px);padding:12px;margin-bottom:12px;box-shadow:var(--sombra-sm);}
.mkt-card-tit{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px;font-size:12.5px;font-weight:600;color:var(--t1);}
.mkt-card-tit > span:first-child{display:inline-flex;align-items:center;gap:6px;}
.mkt-card-tit .ti{color:var(--accent2);font-size:15px;}
.mkt-card-nota{font-size:10.5px;font-weight:500;color:var(--t3);display:inline-flex;align-items:center;gap:5px;}
.mkt-vivo{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 6px var(--green);display:inline-block;}

/* Gráfico */
.mkt-grafico{padding:10px;}
.mkt-chart-cab{margin-bottom:8px;}
.mkt-chart-ctrl{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.mkt-chart-toggle{display:flex;align-items:center;background:var(--c1);border:1px solid var(--c4);border-radius:8px;padding:2px;gap:2px;}
.mkt-chart-toggle-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;height:28px;padding:0 10px;font-size:11.5px;border-radius:6px;white-space:nowrap;}
.mkt-chart-toggle-btn .ti{font-size:14px;}
.mkt-chart-leyenda{margin-left:auto;font-size:10.5px;color:var(--t3);}
.mkt-ind{position:relative;}
.mkt-ind-btn{height:34px;padding:0 11px;gap:5px;color:var(--t2);font-size:11.5px;font-family:var(--font-body);cursor:pointer;}
.mkt-ind-btn .ti{font-size:15px;}
.mkt-ind-btn.activo{color:var(--accent2);border-color:var(--accent2);}
#mkt-ind-n{min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--accent2);color:#05121f;font-size:10px;display:inline-flex;align-items:center;justify-content:center;}
#mkt-ind-n[hidden]{display:none;}
.mkt-ind-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:40;min-width:220px;background:var(--c1);border:1px solid var(--c4);border-radius:10px;padding:6px;display:flex;flex-direction:column;gap:2px;box-shadow:0 12px 32px rgba(0,0,0,.45);}
.mkt-ind-menu[hidden]{display:none;}
.mkt-ind-menu .mkt-chart-toggle-btn{justify-content:flex-start;width:100%;height:36px;padding:0 10px;font-size:12.5px;color:var(--t1);background:transparent;font-weight:500;}
.mkt-ind-menu .mkt-chart-toggle-btn:hover{background:var(--c3);}
.mkt-ind-menu .mkt-chart-toggle-btn .ti-check{opacity:0;color:var(--accent2);}
.mkt-ind-menu .mkt-chart-toggle-btn.active{background:rgba(74,158,255,.12);color:var(--accent2);}
.mkt-ind-menu .mkt-chart-toggle-btn.active .ti-check{opacity:1;}
.mkt-ind-sep{height:1px;background:var(--c4);margin:4px 2px;}
.mkt-grafico .candle-wrap{border-radius:8px;overflow:hidden;}

/* Estadísticas clave */
.mkt-stats{container-type:inline-size;width:100%;box-sizing:border-box;}
.mkt-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;}
.mkt-kpi{display:flex;flex-direction:column;justify-content:space-between;gap:4px;min-height:58px;padding:8px 10px;background:var(--c1);border:1px solid var(--c4);border-radius:8px;min-width:0;}
.mkt-kpi-l{font-size:10.5px;color:var(--t3);line-height:1.3;}
.mkt-kpi b{font-size:14px;font-weight:600;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mkt-kpi b.g{color:var(--green);} .mkt-kpi b.r{color:var(--red);} .mkt-kpi b.a{color:var(--amber, #ffb400);}
.mkt-kpi:has(.mkt-kpi-rango) b{white-space:normal;font-size:13px;line-height:1.25;}
.mkt-kpi-rango{display:block;position:relative;height:3px;border-radius:2px;background:var(--c4);margin-top:2px;}
.mkt-kpi-rango i{position:absolute;top:-2px;width:7px;height:7px;border-radius:50%;background:var(--accent2);transform:translateX(-50%);}
.mkt-senales{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;}
.mkt-senales:empty{display:none;}
.mkt-senal{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border-radius:14px;border:1px solid var(--c4);background:var(--c1);font-size:11px;color:var(--t2);white-space:nowrap;}
.mkt-senal .ti{font-size:13px;color:var(--t3);}
.mkt-senal.g{color:var(--green);border-color:rgba(0,208,132,.3);} .mkt-senal.g .ti{color:var(--green);}
.mkt-senal.r{color:var(--red);border-color:rgba(255,71,87,.3);} .mkt-senal.r .ti{color:var(--red);}
@container (max-width: 560px){ .mkt-kpis{grid-template-columns:repeat(2,minmax(0,1fr));} }

/* Perfil */
.mkt-perfil.profile-panel{padding:12px;margin-bottom:12px;}
.pp-desc{font-size:12px;color:var(--t2);line-height:1.55;margin:0 0 10px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;cursor:pointer;}
.pp-desc.abierto{-webkit-line-clamp:unset;display:block;}
.pp-filas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:18px;}
.pp-filas .profile-row{padding:6px 0;font-size:12px;gap:8px;}
.pp-filas .profile-row:last-child{border-bottom:1px solid rgba(255,255,255,.04);}
.pp-filas .profile-key{color:var(--t3);}
.pp-calif{margin-top:10px;}
.pp-calif summary{font-size:11.5px;color:var(--accent2);cursor:pointer;}
#mkt-yahoo-link:not(:empty), #mkt-bono-sensibilidad:not(:empty), #mkt-tesis-ia:not(:empty){margin-top:10px;}

/* Panel de orden */
.trade-panel.mkt-card{padding:12px;border-color:rgba(74,158,255,.28);}
.tp-modo{width:100%;margin-bottom:8px;}
.tp-modo .mkt-chart-toggle-btn{flex:1;height:30px;}
.trade-panel .tp-row{margin-bottom:8px;}
.trade-panel .tp-qty-stepper{height:40px;}
.trade-panel .tp-qty-stepper input{font-size:16px;padding:0 8px;background:var(--c3);color:var(--t1);}
.trade-panel .tp-row-monto{flex-direction:column;align-items:stretch;gap:4px;}
.tp-monto-caja{display:flex;align-items:center;height:40px;border:1px solid var(--c4);border-radius:var(--r);background:var(--c3);}
.tp-monto-caja:focus-within{border-color:var(--accent2);}
.tp-monto-sim{padding:0 2px 0 12px;color:var(--t3);font-family:var(--font-mono);}
.trade-panel .tp-monto-caja input{flex:1;min-width:0;height:100%;border:none;background:transparent;padding:0 6px;font-size:16px;font-family:var(--font-mono);color:var(--t1);outline:none;}
.tp-monto-caja input::placeholder{font-family:var(--font-body);font-size:13px;color:var(--t3);}
.tp-max{height:30px;margin-right:5px;padding:0 10px;border:none;border-radius:6px;background:var(--c4);color:var(--t1);font-size:11.5px;cursor:pointer;}
.tp-nota{font-size:10.5px;color:var(--t3);font-weight:400;text-transform:none;letter-spacing:0;}
.tp-nota:empty{display:none;}
.tp-ticket{background:var(--c1);border:1px solid var(--c4);border-radius:8px;padding:2px 10px;margin:4px 0 10px;}
.tk-row{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.05);font-size:12px;}
.tk-row:last-child{border-bottom:none;}
.tk-row > span{color:var(--t3);white-space:nowrap;}
.tk-row > b{font-size:12.5px;font-weight:600;color:var(--t1);text-align:right;min-width:0;}
.tk-row > b.g{color:var(--green);} .tk-row > b.r{color:var(--red);}
#trade-exec-show{white-space:normal;font-size:12px;text-align:right;}
.tk-sub{padding:0 0 6px;margin-top:-4px;}
.tk-sub em{font-style:normal;font-size:10.5px;color:var(--t3);text-align:right;}
.tk-sub:has(em:empty){display:none;}
.tk-row:has(+ .tk-sub em:not(:empty)){border-bottom:none;}
.trade-panel .trade-btns{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.trade-panel .trade-btns .btn{height:42px;justify-content:center;font-size:13px;}
.tp-sec-btns{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px;}
.tp-sec-btns .btn{height:34px;justify-content:center;width:100%;margin:0;font-size:11.5px;}
.trade-panel .tp-orders{margin-top:12px;padding-top:12px;}
.trade-panel .tp-orders-title{flex-wrap:wrap;gap:4px 6px;margin-bottom:8px;}
.orden-pedagogica{border:1px solid var(--c4);border-left:3px solid var(--c5);border-radius:8px;padding:8px 10px;margin-bottom:8px;background:var(--c1);}
.op-sl{border-left-color:var(--red);} .op-tp{border-left-color:var(--green);} .op-lim{border-left-color:var(--accent2);}
.op-tit{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--t1);}
.op-tit span{font-weight:400;color:var(--t3);}
.op-sl .op-tit .ti{color:var(--red);} .op-tp .op-tit .ti{color:var(--green);} .op-lim .op-tit .ti{color:var(--accent2);}
.op-fila{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:6px;}
.op-fila .tp-order-inp{height:34px;font-size:13px;font-family:var(--font-mono);}
.op-fila .tp-order-inp::placeholder{font-family:var(--font-body);}
.op-fila .btn{height:34px;}
.op-res{font-size:11px;color:var(--t3);margin-top:6px;line-height:1.5;}

/* Tabletas y teléfonos: una sola columna con el orden de uso */
@media (max-width: 900px){
  .mkt-terminal-grid{display:flex;flex-direction:column;align-items:stretch;}
  .mkt-terminal-izq, .mkt-terminal-der{display:contents;}
  .mkt-grafico{order:1;} #mkt-tipo-cambio{order:2;} .mkt-stats{order:3;} .trade-panel{order:4;} .mkt-perfil{order:5;}
  .trade-panel.mkt-card{margin-top:0;}
}
@media (max-width: 640px){
  .market-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 10px;padding:8px 12px;}
  .market-toolbar .mt-cotiz{flex-direction:column;align-items:flex-end;gap:2px;}
  .market-toolbar .mt-price{font-size:20px;}
  .market-toolbar .mt-change{font-size:11px;padding:1px 7px;}
  .market-toolbar .mt-badges{margin-left:0;min-width:0;overflow:hidden;}
  .market-toolbar .mt-btn-txt{display:none;}
  .market-toolbar .pbtn{width:34px!important;height:32px!important;padding:0!important;justify-content:center;}
  #mkt-session-badge{height:32px;padding:0 8px;}
  .market-body{padding:10px;}
  .mkt-card{padding:10px;margin-bottom:10px;}
  .mkt-grafico{padding:8px;}
  .mkt-txt, .mkt-chart-leyenda{display:none;}
  .mkt-chart-ctrl{gap:6px;flex-wrap:nowrap;}
  .mkt-seg-horizonte{flex:1;}
  .mkt-seg-horizonte .mkt-chart-toggle-btn{flex:1;}
  .mkt-chart-ctrl .mkt-chart-toggle-btn{min-height:32px;height:32px;padding:0 9px;}
  .mkt-ind-btn{height:38px;padding:0 10px;}
  .mkt-ind-menu{left:auto;right:0;}
  .pp-filas{grid-template-columns:1fr;}
  .op-fila .tp-order-inp{font-size:16px;}
  .mkt-kpi{min-height:54px;padding:7px 9px;}
  .mkt-kpi b{font-size:13.5px;}
}
@media (max-width: 360px){
  #mkt-session-label{display:none;}
  .mkt-chart-ctrl .mkt-chart-toggle-btn{padding:0 6px;font-size:11px;}
  .market-toolbar .mt-badges .badge{font-size:10px;padding:2px 5px;}
}
/* Pantallas medianas: botones de la cabecera solo con icono y controles
   del gráfico según el ancho real de su tarjeta, no de la ventana. */
@media (min-width: 641px) and (max-width: 1360px){
  .market-toolbar{flex-wrap:nowrap;}
  .market-toolbar .mt-btn-txt{display:none;}
  .market-toolbar .pbtn{width:34px;padding:0;justify-content:center;}
  .mkt-terminal-grid{grid-template-columns:minmax(0,1fr) 340px;}
}
.mkt-grafico{container-type:inline-size;}
.mkt-grafico .candle-hud{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;}
.mkt-grafico .chud-item{min-width:0;}
.mkt-grafico .chud-val{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
@container (max-width: 560px){
  .mkt-txt, .mkt-chart-leyenda{display:none;}
  .mkt-chart-ctrl{flex-wrap:nowrap;gap:6px;}
  .mkt-seg-horizonte{flex:1;}
  .mkt-seg-horizonte .mkt-chart-toggle-btn{flex:1;padding:0 6px;}
}

/* ══ Consenso del mercado (Panorama) ══ */
#pn-consenso:not(:empty){margin-top:14px;padding-top:12px;border-top:1px solid var(--c4, rgba(255,255,255,.08));}
.cn-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;}
.cn-t{display:flex;flex-direction:column;gap:3px;min-width:0;background:var(--c2, #141a24);border:1px solid var(--c4, rgba(255,255,255,.08));border-left:3px solid var(--c, #4aa3ff);border-radius:8px;padding:8px 10px;}
.cn-t span{font-size:10.5px;color:var(--t3, #6580b0);}
.cn-t b{font-family:var(--font-mono, monospace);font-size:15px;color:var(--t1, #fff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cn-t em{font-style:normal;font-size:10.5px;color:var(--t3, #6580b0);line-height:1.35;}
.cn-t em.pos{color:#30cc5a;} .cn-t em.neg{color:#ff4757;}
.cn-lectura{margin:10px 0 12px;font-size:12.5px;line-height:1.55;color:var(--t2, #b8c4dc);}
.cn-rejilla, .cn-rejilla2{margin-bottom:12px;}
.cn-rejilla2{grid-template-columns:repeat(2,minmax(0,1fr));}
.cn-rec{display:grid;grid-template-columns:62px minmax(0,1fr);align-items:center;gap:8px;margin-bottom:6px;font-size:11px;color:var(--t3, #6580b0);}
.cn-barra{display:flex;height:16px;border-radius:4px;overflow:hidden;background:var(--c4, rgba(255,255,255,.08));}
.cn-barra i{display:flex;align-items:center;justify-content:center;font-style:normal;font-size:10px;font-weight:700;color:#06121e;min-width:0;}
.cn-ley{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:6px;font-size:10.5px;color:var(--t3, #6580b0);}
.cn-ley span{display:inline-flex;align-items:center;gap:4px;}
.cn-ley i{width:8px;height:8px;border-radius:2px;display:inline-block;}
.cn-obj{padding:14px 0 4px;}
.cn-obj-barra{position:relative;height:8px;border-radius:4px;background:linear-gradient(90deg, rgba(255,71,87,.55), rgba(255,180,0,.55) 50%, rgba(48,204,90,.55));}
.cn-obj-barra i{position:absolute;top:-5px;width:4px;height:18px;margin-left:-2px;border-radius:2px;}
.cn-obj-act{background:#fff;box-shadow:0 0 0 2px rgba(0,0,0,.4);}
.cn-obj-med{background:#4aa3ff;box-shadow:0 0 0 2px rgba(0,0,0,.4);}
.cn-obj-et{display:flex;justify-content:space-between;gap:6px;margin-top:8px;font-family:var(--font-mono, monospace);font-size:11px;color:var(--t2, #b8c4dc);}
.cn-obj-et span{display:flex;flex-direction:column;}
.cn-obj-et span:last-child{text-align:right;}
.cn-obj-et .cn-c{text-align:center;color:var(--t1, #fff);}
.cn-obj-et em{font-style:normal;font-family:var(--font-body, sans-serif);font-size:10px;color:var(--t3, #6580b0);}
.cn-sp{display:grid;grid-template-columns:48px minmax(0,1fr) 58px;align-items:center;gap:8px;margin-bottom:5px;font-size:11px;color:var(--t3, #6580b0);}
.cn-sp em{grid-column:2 / 4;font-style:normal;font-size:10px;margin-top:-4px;font-family:var(--font-mono, monospace);}
.cn-sp b{font-family:var(--font-mono, monospace);text-align:right;}
.cn-sp b.pos{color:#30cc5a;} .cn-sp b.neg{color:#ff4757;}
.cn-sp-barra{height:8px;border-radius:4px;background:var(--c4, rgba(255,255,255,.08));overflow:hidden;}
.cn-sp-barra i{display:block;height:100%;border-radius:4px;}
.cn-sp-barra i.pos{background:#30cc5a;} .cn-sp-barra i.neg{background:#ff4757;}
.cn-cambios{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;}
.cn-cambios li{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px;padding:6px 8px;border-radius:6px;background:var(--c2, #141a24);border:1px solid var(--c4, rgba(255,255,255,.08));font-size:11.5px;color:var(--t2, #b8c4dc);}
.cn-cambios b{color:var(--t1, #fff);font-weight:600;}
.cn-f{font-size:10.5px;color:var(--t3, #6580b0);font-family:var(--font-mono, monospace);}
.cn-acc{font-weight:600;} .cn-acc.pos{color:#30cc5a;} .cn-acc.neg{color:#ff4757;}
#pn-consenso .sf-mini td em{font-style:normal;font-size:10px;color:var(--t3, #6580b0);}
#pn-consenso .sf-mini .pos{color:#30cc5a;} #pn-consenso .sf-mini .neg{color:#ff4757;}
@media (max-width: 900px){ .cn-tiles{grid-template-columns:repeat(2,minmax(0,1fr));} .cn-rejilla2{grid-template-columns:minmax(0,1fr);} }
.cn-rejilla .pn-datos{grid-template-columns:repeat(2,minmax(0,1fr));}
#pn-consenso .hp-tabla-scroll + .hp-nota{margin-bottom:12px;}

/* ══════════════════════════════════════════════════════════════
   MI CARTERA · diseño unificado
   Acciones en una sola línea, cinco gráficos en una tarjeta con
   pestañas, posiciones como filas que se reacomodan en el teléfono
   y una tarjeta de riesgo (aporte, concentración y estrés).
   ══════════════════════════════════════════════════════════════ */
.ct-acciones{display:flex;gap:6px;align-items:center;flex-wrap:wrap;}
.ct-acciones .btn{height:34px;}
.ct-principal{background:rgba(74,158,255,.14);color:var(--accent2);border:1px solid rgba(74,158,255,.35);}
.ct-kpis .metric{border-left:3px solid var(--accent2);}
.ct-graf-cab{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px;}
.ct-graf-tabs .mkt-chart-toggle-btn{height:30px;}
.ct-graf-panel{display:none;}
.ct-graf-panel.activo{display:block;}
.ct-graficos .chart-box{height:280px;}

/* Posiciones */
.pos-cab, .pos-fila{display:grid;grid-template-columns:minmax(150px,2.2fr) .8fr 1fr 1fr 1.1fr 1.2fr 76px;gap:10px;align-items:center;}
.pos-cab{font-size:10px;color:var(--t3);text-transform:uppercase;letter-spacing:.05em;padding:7px 10px;border-bottom:1px solid var(--c4);}
.pos-cab span:nth-child(n+2):not(:last-child){text-align:right;}
.pos-fila{padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.04);border-left:2px solid transparent;}
.pos-fila.pos-g{border-left-color:var(--green);background:rgba(0,208,132,.035);}
.pos-fila.pos-r{border-left-color:var(--red);background:rgba(255,71,87,.035);}
.pos-activo{min-width:0;}
.pos-nom{font-weight:500;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pos-sub{font-size:10.5px;color:var(--t3);margin-top:2px;display:flex;align-items:center;gap:4px;flex-wrap:wrap;}
.pos-sub .badge{font-size:10px;padding:1px 6px;}
.pos-sub .r{color:var(--red);} .pos-sub .g{color:var(--green);}
.pos-c, .pos-pl{font-size:12px;text-align:right;white-space:nowrap;}
.pos-c em, .pos-pl em{display:block;font-style:normal;font-size:10.5px;color:var(--t3);}
.pos-pl.g{color:var(--green);} .pos-pl.r{color:var(--red);}
.pos-pl.g em{color:var(--green);opacity:.8;} .pos-pl.r em{color:var(--red);opacity:.8;}
.pos-acc{display:flex;gap:4px;justify-content:flex-end;}
.pos-acc .btn{width:32px;height:30px;padding:0;justify-content:center;}

/* Riesgo de la cartera */
.ct-r-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;}
.ct-r-kpi{display:flex;flex-direction:column;gap:3px;min-width:0;padding:9px 11px;background:var(--c1);border:1px solid var(--c4);border-left:3px solid var(--accent2);border-radius:8px;}
.ct-r-kpi span{font-size:10.5px;color:var(--t3);}
.ct-r-kpi b{font-size:16px;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ct-r-kpi em{font-style:normal;font-size:10.5px;color:var(--t3);}
.ct-r-lectura{font-size:12.5px;line-height:1.6;color:var(--t2);margin:12px 0;}
.ct-r-rejilla{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;}
.ct-r-sub{font-size:11px;font-weight:600;color:var(--t2);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;}
.ct-r-fila{display:grid;grid-template-columns:64px minmax(0,1fr) 108px;gap:8px;align-items:center;margin-bottom:7px;font-size:11.5px;}
.ct-r-fila > span{color:var(--t2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ct-r-fila > b{font-size:11px;text-align:right;color:var(--t2);font-weight:500;}
.ct-r-barras{display:flex;flex-direction:column;gap:2px;}
.ct-r-barras i{display:block;height:6px;border-radius:3px;min-width:2px;}
i.ct-r-peso{background:rgba(74,158,255,.75);}
i.ct-r-aporte{background:rgba(255,180,0,.8);}
i.ct-r-aporte.alto{background:var(--red);}
.ct-r-ley{display:flex;gap:14px;font-size:10.5px;color:var(--t3);margin-top:4px;}
.ct-r-ley span{display:inline-flex;align-items:center;gap:5px;}
.ct-r-ley i{width:10px;height:6px;border-radius:2px;display:inline-block;}
.ct-r-esc{padding:7px 0;border-bottom:1px solid rgba(255,255,255,.05);cursor:help;}
.ct-r-esc:last-child{border-bottom:none;}
.ct-r-esc-cab{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:12px;color:var(--t2);}
.ct-r-esc-cab .ti{color:var(--t3);}
.ct-r-esc-cab b{font-size:12px;white-space:nowrap;}
.ct-r-esc-cab b.g{color:var(--green);} .ct-r-esc-cab b.r{color:var(--red);}
.ct-r-esc-barra{height:6px;border-radius:3px;background:var(--c4);margin-top:5px;overflow:hidden;}
.ct-r-esc-barra i{display:block;height:100%;border-radius:3px;}
.ct-r-esc-barra i.g{background:var(--green);} .ct-r-esc-barra i.r{background:var(--red);}
.ct-r-esc em{display:block;font-style:normal;font-size:10.5px;color:var(--t3);margin-top:3px;}
.ct-r-nota{margin-top:10px;}
.ct-hist-cab{display:flex;align-items:center;gap:6px;}
.ct-hist-cab > span{margin-right:auto;}

@media (max-width: 1100px){
  .pos-cab{display:none;}
  .pos-fila{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-areas:"activo activo pl" "c1 c2 c3" "valor valor acc";gap:6px 10px;padding:10px;}
  .pos-activo{grid-area:activo;} .pos-pl{grid-area:pl;}
  .pos-fila > .pos-c:nth-of-type(2){grid-area:c1;} .pos-fila > .pos-c:nth-of-type(3){grid-area:c2;} .pos-fila > .pos-c:nth-of-type(4){grid-area:c3;}
  .pos-valor{grid-area:valor;}
  .pos-acc{grid-area:acc;}
  .pos-c{text-align:left;}
  .pos-c::before{content:attr(data-l);display:block;font-family:var(--font-body);font-size:10px;color:var(--t3);margin-bottom:1px;}
  .pos-valor em{display:inline;margin-left:6px;}
  .ct-r-kpis{grid-template-columns:repeat(2,minmax(0,1fr));}
  .ct-r-rejilla{grid-template-columns:minmax(0,1fr);}
}
@media (max-width: 640px){
  .ct-acciones{width:100%;flex-wrap:nowrap;}
  .ct-acciones .ct-txt{display:none;}
  .ct-acciones .btn:not(.ct-principal){width:38px;padding:0;justify-content:center;}
  .ct-acciones .btn .ti-chevron-down{display:none;}
  .ct-principal{flex:1;justify-content:center;}
  .ct-graf-tabs{width:100%;}
  .ct-graf-tabs .mkt-chart-toggle-btn{flex:1;height:32px;}
  .ct-graf-tabs .ct-t{display:none;}
  .ct-graficos .chart-box{height:240px;}
  .ct-r-fila{grid-template-columns:52px minmax(0,1fr) 96px;}
  .ct-hist-cab{flex-wrap:wrap;}
}
@media (max-width: 360px){ .ct-principal span{display:none;} }
.ct-eval-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px;}
@media (max-width: 900px){ .ct-eval-tiles{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media (max-width: 640px){
  .ct-hist-cab .btn{width:34px;height:32px;padding:0;justify-content:center;font-size:0;}
  .ct-hist-cab .btn .ti{font-size:15px;}
}
/* Historial en el teléfono: cada operación como una fila de dos líneas. */
@media (max-width: 640px){
  .ct-historial .tx-grupo-dia-body table, .ct-historial .tx-grupo-dia-body tbody{display:block;width:100%;}
  .ct-historial .tx-grupo-dia-body thead{display:none;}
  .ct-historial .tx-grupo-dia-body tr{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"op activo efecto" "hora hora qty";gap:3px 8px;align-items:center;padding:8px 4px;border-bottom:1px solid rgba(255,255,255,.05);}
  .ct-historial .tx-grupo-dia-body td{padding:0!important;border:none!important;min-width:0;}
  .ct-historial .tx-grupo-dia-body td:nth-child(1){grid-area:hora;}
  .ct-historial .tx-grupo-dia-body td:nth-child(2){grid-area:op;}
  .ct-historial .tx-grupo-dia-body td:nth-child(3){grid-area:activo;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .ct-historial .tx-grupo-dia-body td:nth-child(4), .ct-historial .tx-grupo-dia-body td:nth-child(6), .ct-historial .tx-grupo-dia-body td:nth-child(7){display:none;}
  .ct-historial .tx-grupo-dia-body td:nth-child(5){grid-area:qty;text-align:right;font-size:11px;color:var(--t3);}
  .ct-historial .tx-grupo-dia-body td:nth-child(8){grid-area:efecto;text-align:right;font-size:12.5px;}
}
@media (max-width: 360px){
  .mkt-grafico .candle-hud{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;}
  .mkt-grafico .candle-hud .chud-item:nth-child(4){display:none;}
}

/* ══════════════════════════════════════════════════════════════
   ANÁLISIS · diseño unificado
   Con un activo abierto el catálogo se pliega en una barra; datos
   superiores con el mismo mosaico de Mercado; proyección y
   escenarios en una sola tarjeta.
   ══════════════════════════════════════════════════════════════ */
.an-cat-barra{display:none;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;margin-bottom:12px;background:var(--c2);border:1px solid var(--c4);border-radius:var(--r2, 12px);font-size:12.5px;color:var(--t2);}
.an-cat-barra .ti{color:var(--accent2);}
.an-cat-barra .btn{height:32px;}
#page-analisis.an-con-activo .an-cat-barra{display:flex;}
#page-analisis.an-con-activo:not(.an-catalogo-abierto) #an-classes,
#page-analisis.an-con-activo:not(.an-catalogo-abierto) .an-cat-filtros,
#page-analisis.an-con-activo:not(.an-catalogo-abierto) #an-sector-heatmap-card,
#page-analisis.an-con-activo:not(.an-catalogo-abierto) #an-asset-grid{display:none!important;}
.an-cab{display:flex;align-items:center;gap:10px 16px;flex-wrap:wrap;margin-bottom:12px;}
.an-cab-id{min-width:0;flex:1 1 220px;}
.an-cab-nom{font-family:var(--font-head);font-size:17px;font-weight:600;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.an-cab-sub{font-size:11.5px;color:var(--t3);}
.an-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;flex:3 1 520px;}
.an-kpis .mkt-kpi em{font-style:normal;font-size:10.5px;color:var(--t3);}
.an-kpis .mkt-kpi em:empty{display:none;}
.an-kpis .mkt-kpi b.g{color:var(--green);} .an-kpis .mkt-kpi b.r{color:var(--red);} .an-kpis .mkt-kpi b.a{color:var(--amber, #ffb400);}

.an-proy-cab{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px;}
#an-proy-sup .mkt-chart-toggle-btn{height:30px;}
#an-proy-sup .mkt-chart-toggle-btn:disabled{opacity:.35;cursor:not-allowed;}
.an-proy-ctrl{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:10px;}
.an-proy-ctrl label{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 8px;font-size:11px;color:var(--t3);}
.an-proy-ctrl label b{color:var(--t1);font-size:12px;}
.an-proy-ctrl label input{grid-column:1 / 3;width:100%;}
.an-proy-graf{height:260px;}
.an-proy-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px;}
.an-proy-t{display:flex;flex-direction:column;gap:3px;min-width:0;padding:8px 10px;background:var(--c1);border:1px solid var(--c4);border-left:3px solid var(--c5);border-radius:8px;}
.an-proy-t span{font-size:10.5px;color:var(--t3);}
.an-proy-t b{font-size:15px;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.an-proy-t em{font-style:normal;font-size:10.5px;color:var(--t3);}
.an-proy-r{border-left-color:var(--red);} .an-proy-r b{color:var(--red);}
.an-proy-b{border-left-color:var(--accent2);}
.an-proy-g{border-left-color:var(--green);} .an-proy-g b{color:var(--green);}
.an-proy-a{border-left-color:var(--amber, #ffb400);}
.an-proy-lectura{font-size:12px;line-height:1.55;color:var(--t2);margin:10px 0 0;}
.an-proy-lectura b{color:var(--t1);}
.an-rv-calif{align-items:stretch;}
.an-rv-calif > .card{margin-bottom:0;}
#an-calificacion-card{padding:14px;}
.an-lider td.mejor{color:var(--green);font-weight:600;}
.an-nota{display:flex;flex-direction:column;gap:3px;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.05);text-decoration:none;color:inherit;}
.an-nota:hover .an-nota-t{color:var(--accent2);}
.an-nota-t{font-size:12.5px;font-weight:500;color:var(--t1);line-height:1.4;}
.an-nota-f{font-size:10.5px;color:var(--t3);}
.an-nota-f b{color:var(--accent2);font-weight:500;}
.an-notas-mas summary{font-size:11.5px;color:var(--accent2);cursor:pointer;padding:8px 0;}
@media (max-width: 900px){
  .an-kpis{grid-template-columns:repeat(2,minmax(0,1fr));flex-basis:100%;}
  .an-proy-tiles{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width: 640px){
  .an-proy-ctrl{grid-template-columns:1fr;gap:10px;}
  #an-proy-sup{width:100%;} #an-proy-sup .mkt-chart-toggle-btn{flex:1;height:32px;padding:0 6px;}
  .an-proy-graf{height:230px;}
  .an-cat-barra{font-size:11.5px;}
}

/* ══ Calificación CapitalLab ══ */
#an-calificacion-card{display:flex;flex-direction:column;}
.cal-cab{display:flex;align-items:center;gap:12px;}
.cal-letra{width:52px;height:52px;flex-shrink:0;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:21px;font-weight:800;color:var(--c);background:color-mix(in srgb, var(--c) 14%, transparent);border:2px solid var(--c);}
.cal-letra-s{width:34px;height:34px;font-size:13px;border-width:1.5px;}
.cal-id{flex:1;min-width:0;}
.cal-tit{font-size:15px;font-weight:700;}
.cal-tit .mono{font-size:13px;color:var(--t2);font-weight:600;margin-left:4px;}
.cal-sub{font-size:11px;color:var(--t3);margin-top:2px;}
.cal-ayuda{width:34px;height:34px;padding:0;justify-content:center;}
.cal-barra{position:relative;height:8px;border-radius:4px;background:var(--c4);margin:14px 0 18px;}
.cal-barra > i{display:block;height:100%;border-radius:4px;}
.cal-barra span{position:absolute;top:11px;transform:translateX(-50%);font-size:10px;color:var(--t3);font-family:var(--font-mono);}
.cal-barra span:first-of-type{transform:none;}
.cal-desc{font-size:12px;line-height:1.55;color:var(--t2);margin:0 0 10px;}
.cal-desc b{color:var(--amber, #ffb400);font-weight:600;}
.cal-pilares{display:flex;flex-direction:column;gap:8px;}
.cal-p{padding:8px 10px;background:var(--c1);border:1px solid var(--c4);border-radius:8px;cursor:help;}
.cal-p-cab{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:12px;color:var(--t1);font-weight:500;}
.cal-p-cab em{font-style:normal;font-size:10.5px;color:var(--t3);font-weight:400;}
.cal-p-cab b{font-size:13px;}
.cal-p-barra{height:5px;border-radius:3px;background:var(--c4);margin:5px 0;overflow:hidden;}
.cal-p-barra i{display:block;height:100%;border-radius:3px;}
.cal-p-dato{font-size:11px;line-height:1.45;color:var(--t2);}
.cal-p-dato em{font-style:normal;color:var(--t3);}
.cal-p-na{opacity:.6;}
.cal-p-na b{font-size:10.5px;color:var(--t3);font-weight:400;}
.cal-m-intro{font-size:12.5px;line-height:1.6;color:var(--t2);margin:0 0 12px;}
.cal-m-tabla td{white-space:normal!important;vertical-align:top;font-size:11.5px;line-height:1.45;}
.cal-m-tabla td:first-child{white-space:nowrap!important;color:var(--t1);}
.cal-m-tabla{margin-bottom:12px;}
.cal-m-niveles{display:flex;flex-direction:column;gap:6px;margin-bottom:10px;}
.cal-m-n{display:flex;gap:10px;align-items:flex-start;font-size:11.5px;color:var(--t3);line-height:1.45;}
.cal-m-n em{font-style:normal;font-size:10.5px;color:var(--t3);margin-left:4px;}
.cal-m-nota{font-size:11px;color:var(--t3);line-height:1.5;margin:0;}
.cal-modal{max-height:88vh;overflow-y:auto;}

/* ══ Tasas de interés ══ */
.tz-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;}
.tz-kpis .mkt-kpi em{font-style:normal;font-size:10.5px;color:var(--t3, #6580b0);}
.tz-lectura{font-size:12.5px;line-height:1.6;color:var(--t2, #b8c4dc);margin:12px 0 14px;}
.tz-rejilla{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
.tz-bloque{min-width:0;padding:12px;background:var(--c1, #0f141d);border:1px solid var(--c4, rgba(255,255,255,.08));border-radius:10px;}
.tz-bloque .hp-titulo{margin-top:0;}
.tz-graf{height:240px;}
.tz-graf-s{height:180px;}
.tz-corr{position:relative;height:118px;margin:8px 6px 4px;}
.tz-corr::before{content:'';position:absolute;left:0;right:0;top:57px;height:4px;border-radius:2px;background:var(--c4, rgba(255,255,255,.08));}
.tz-corr-banda{position:absolute;top:50px;height:18px;border-radius:4px;background:rgba(74,163,255,.18);border:1px solid rgba(74,163,255,.45);}
.tz-corr-banda span{position:absolute;left:50%;top:-1px;transform:translateX(-50%);font-size:10px;color:#7fb8ff;white-space:nowrap;line-height:18px;}
.tz-corr-m{position:absolute;top:0;height:59px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;}
.tz-corr-m i{order:2;width:2px;flex:1;background:var(--c);}
.tz-corr-m span{order:1;font-size:10px;color:var(--t2, #b8c4dc);white-space:nowrap;text-align:center;line-height:1.2;}
.tz-corr-m span b{display:block;font-family:var(--font-mono, monospace);color:var(--c);font-size:11px;}
.tz-corr-m.abajo{top:57px;}
.tz-corr-m.abajo i{order:1;} .tz-corr-m.abajo span{order:2;}
.tz-tabla td em{display:block;font-style:normal;font-size:10px;color:var(--t3, #6580b0);}
.tz-tabla .pos{color:#30cc5a;} .tz-tabla .neg{color:#ff4757;}
.tz-tabla .tz-f{color:var(--t3, #6580b0);font-size:10.5px;}
.tz-bb{height:3px;border-radius:2px;background:var(--c4, rgba(255,255,255,.08));margin-top:3px;min-width:60px;}
.tz-bb i{display:block;height:100%;border-radius:2px;background:#4aa3ff;}
@media (max-width: 1100px){ .tz-kpis{grid-template-columns:repeat(3,minmax(0,1fr));} }
@media (max-width: 900px){ .tz-rejilla{grid-template-columns:minmax(0,1fr);} }
@media (max-width: 560px){
  .tz-kpis{grid-template-columns:repeat(2,minmax(0,1fr));}
  .tz-corr-m span{font-size:10px;} .tz-corr-m span b{font-size:10px;}
  .tz-graf{height:210px;}
}
/* ══ Sector público (CEPAL) ══ */
.sp-filtros{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px;}
.sp-filtros label{margin:0;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--t3, #6580b0);}
.sp-sel{width:auto;min-width:200px;flex:0 1 auto;background:var(--c1, #0f141d);color:var(--t1, #e8eefb);border:1px solid var(--c4, rgba(255,255,255,.12));border-radius:8px;padding:6px 10px;font-size:13px;min-height:34px;max-width:100%;}
.sp-senales{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;}
.sp-sen{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--t2, #b8c4dc);padding:5px 10px;border-radius:999px;background:var(--c1, #0f141d);border:1px solid var(--c4, rgba(255,255,255,.08));}
.sp-sen i{width:8px;height:8px;border-radius:50%;background:#8a9ab8;}
.sp-sen b{font-family:var(--font-mono, monospace);color:var(--t1, #e8eefb);font-weight:600;}
.sp-sen.ok i{background:#30cc5a;} .sp-sen.medio i{background:#ffb400;} .sp-sen.mal i{background:#ff4757;}
.sp-ancho{grid-column:1 / -1;}
.tz-tabla tr.tz-resalta td{background:rgba(74,163,255,.08);}
.tz-tabla tr.tz-resalta td:first-child{box-shadow:inset 3px 0 0 #4aa3ff;}
.sp-pubs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;}
.sp-pub{display:flex;gap:10px;align-items:flex-start;padding:10px;border-radius:8px;background:rgba(255,255,255,.02);border:1px solid var(--c4, rgba(255,255,255,.08));text-decoration:none;color:inherit;min-width:0;}
.sp-pub:hover{border-color:rgba(74,163,255,.5);}
.sp-pub i{font-size:18px;color:#4aa3ff;flex:none;}
.sp-pub b{display:block;font-size:12.5px;color:var(--t1, #e8eefb);line-height:1.3;}
.sp-pub em{display:block;font-style:normal;font-size:11px;color:var(--t3, #6580b0);margin-top:3px;line-height:1.4;}
.sp-emisor:empty{display:none;}
.sp-emisor{margin-top:12px;}
.sp-mini{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;}
.sp-mini-t{padding:8px 10px;border-radius:8px;background:var(--c1, #0f141d);border:1px solid var(--c4, rgba(255,255,255,.08));min-width:0;}
.sp-mini-t span{display:block;font-size:10.5px;color:var(--t3, #6580b0);text-transform:uppercase;letter-spacing:.04em;}
.sp-mini-t b{display:block;font-size:15px;color:var(--t1, #e8eefb);margin-top:2px;}
.sp-mini-t em{font-style:normal;font-size:10px;color:var(--t3, #6580b0);}
@media (max-width: 900px){ .sp-pubs{grid-template-columns:minmax(0,1fr);} }
@media (max-width: 560px){ .sp-mini{grid-template-columns:repeat(2,minmax(0,1fr));} .sp-sel{flex:1;min-width:0;} }
/* ══ Certificados ══ */
.prof-barra{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap;}
.prof-barra input{min-width:200px;}
.export-modal.cf-modal{max-width:1120px;padding:22px 22px 18px;}
.cf-rejilla{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:18px;align-items:start;}
.cf-vista-col{position:sticky;top:0;min-width:0;}
.cf-vista{width:100%;overflow:hidden;border-radius:8px;box-shadow:0 6px 24px rgba(0,0,0,.35);background:#fff;}
.cf-vista-nota{font-size:11px;color:var(--t3);margin-top:6px;}
.cf-form{min-width:0;}
.cf-sec{border:1px solid var(--c3);border-radius:10px;margin-bottom:8px;background:var(--c2, rgba(255,255,255,.02));}
.cf-sec > summary{cursor:pointer;list-style:none;padding:10px 12px;font-size:12.5px;font-weight:600;display:flex;align-items:center;gap:8px;min-height:40px;box-sizing:border-box;}
.cf-sec > summary::-webkit-details-marker{display:none;}
.cf-sec > summary b{margin-left:auto;font-size:11px;color:var(--t3);font-weight:600;}
.cf-sec > summary::after{content:'\ea5f';font-family:'tabler-icons';font-size:14px;color:var(--t3);transition:transform .15s;}
.cf-sec[open] > summary::after{transform:rotate(180deg);}
.cf-sec > :not(summary){margin-left:12px;margin-right:12px;}
.cf-sec > :last-child{margin-bottom:12px;}
.cf-sec .ss-campo{margin-bottom:8px;}
.cf-sec .ss-campo input,.cf-sec .ss-campo select,.cf-sec .ss-campo textarea,.cf-acciones select{width:100%;box-sizing:border-box;padding:7px 9px;background:var(--c1);border:1px solid var(--c4);border-radius:var(--r, 8px);color:var(--t1);font-size:12.5px;font-family:var(--font-body);min-height:36px;}
.cf-sec input[type=color]{padding:2px;height:36px;}
.cf-2{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.cf-dest{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px;}
.cf-chip{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;padding:3px 4px 3px 10px;border-radius:999px;background:var(--c3);}
.cf-chip button{background:none;border:0;color:var(--t3);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;min-width:28px;min-height:28px;}
.cf-sub > summary{cursor:pointer;font-size:12px;color:var(--accent2, #4a9eff);padding:4px 0;}
.cf-lista{max-height:180px;overflow-y:auto;display:grid;grid-template-columns:1fr 1fr;gap:0 10px;}
.cf-check{display:flex;align-items:center;gap:7px;font-size:12px;min-height:30px;cursor:pointer;color:var(--t2);}
.cf-check input{width:16px;height:16px;flex:none;accent-color:var(--accent2, #4a9eff);}
.cf-toggle{font-weight:600;color:var(--t1);}
.cf-metricas{display:grid;grid-template-columns:1fr 1fr;gap:0 10px;}
.cf-acciones{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:4px 0 8px;}
.cf-acciones select{width:auto;flex:1;min-width:150px;}
.cf-acciones label.btn{cursor:pointer;}
.cf-logos{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px;margin-bottom:6px;}
.cf-logo{border:1px solid var(--c4);border-radius:8px;padding:6px;display:flex;flex-direction:column;gap:4px;align-items:center;background:#fff1;}
.cf-logo img{height:48px;max-width:100%;object-fit:contain;background:#fff;border-radius:4px;padding:3px;}
.cf-logo input[type=range]{width:100%;}
.cf-logo-acc{display:flex;gap:2px;}
.cf-logo-acc .btn{min-width:32px;min-height:32px;padding:0;justify-content:center;}
.cf-cands{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:6px;margin-bottom:8px;}
.cf-cand{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px;border:1px solid var(--c4);border-radius:8px;background:var(--c1);cursor:pointer;color:var(--t3);font-size:10px;}
.cf-cand img{height:56px;max-width:100%;object-fit:contain;background:#fff;border-radius:4px;padding:3px;}
.cf-cand.rec{border-color:var(--green, #30cc5a);}
.cf-cand:hover{border-color:var(--accent2, #4a9eff);}
.cf-firma{border-bottom:1px dashed var(--c4);padding-bottom:6px;margin-bottom:8px;}
.cf-firma-img{height:34px;max-width:140px;object-fit:contain;background:#fff;border-radius:4px;padding:2px;}
.cf-pie{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 8px;position:sticky;bottom:-18px;background:var(--c1, #10141d);padding:8px 0;}
.cf-pie .btn{flex:1;min-width:150px;justify-content:center;}
.cf-res{margin-top:6px;}
.cf-res-fila{display:flex;align-items:center;gap:6px;padding:6px 0;border-top:1px solid var(--c3);font-size:12px;flex-wrap:wrap;}
.cf-res-fila > span{flex:1;min-width:140px;}
.cf-res-fila em{display:block;font-style:normal;font-size:10.5px;color:var(--t3);}
.cf-res-fila code{font-size:11px;letter-spacing:.05em;}
.cf-res-fila.revocado{opacity:.6;}
.cf-emitidos-t{font-size:12px;font-weight:600;margin:12px 0 4px;}
.cf-verif-barra{display:flex;gap:8px;flex-wrap:wrap;}
.cf-verif-barra input{flex:1;min-width:180px;letter-spacing:.08em;text-transform:uppercase;}
.cf-vista-verif{margin-bottom:10px;}
.cf-kvs{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;}
.cf-kv{display:flex;justify-content:space-between;gap:10px;padding:5px 0;border-bottom:1px solid var(--c3);font-size:12px;}
.cf-kv span{color:var(--t3);} .cf-kv b{text-align:right;font-weight:600;}
@media (max-width: 900px){
  .cf-rejilla{grid-template-columns:minmax(0,1fr);}
  .cf-vista-col{position:static;}
  .export-modal.cf-modal{padding:18px 14px 14px;max-height:94vh;}
}
@media (max-width: 480px){
  .cf-2,.cf-kvs,.cf-metricas,.cf-lista{grid-template-columns:minmax(0,1fr);}
}
.tz-barra{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;flex-wrap:wrap;}
.sp-excel{margin-left:auto;}
/* ══ Resumen del mercado ══ */
#mkt-no-selection:has(.rm){justify-content:flex-start;align-items:stretch;padding:14px;}
.rm{width:100%;max-width:1180px;margin:0 auto;display:flex;flex-direction:column;gap:12px;color:var(--t2);}
.rm-cab{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;}
.rm-titulo{font-size:16px;font-weight:700;color:var(--t1);}
.rm-sub{font-size:11.5px;color:var(--t3);margin-top:2px;}
.rm-chips{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;}
.rm-chips::-webkit-scrollbar{display:none;}
.rm-chips .hp-chip{flex:none;}
.rm-amplitud{display:flex;flex-direction:column;gap:6px;}
.rm-barra{display:flex;height:8px;border-radius:4px;overflow:hidden;background:var(--c3);}
.rm-barra i.s{background:#30cc5a;} .rm-barra i.n{background:#8a9ab8;} .rm-barra i.b{background:#ff4757;}
.rm-amp-txt{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;}
.rm .g{color:#30cc5a;} .rm .r{color:#ff4757;}
.rm-clases{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;}
.rm-clase{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px;border-radius:10px;border:1px solid var(--c4);cursor:pointer;color:var(--t1);text-align:left;min-width:0;font-family:inherit;}
.rm-clase span{font-size:11.5px;color:var(--t2);} .rm-clase b{font-size:16px;font-family:var(--font-mono, monospace);} .rm-clase em{font-style:normal;font-size:10px;color:var(--t3);}
.rm-rejilla{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.rm-bloque{background:var(--c1);border:1px solid var(--c3);border-radius:10px;padding:10px 12px;min-width:0;}
.rm-bt{font-size:12px;font-weight:700;color:var(--t1);margin-bottom:6px;display:flex;align-items:center;gap:6px;}
.rm-fila{display:grid;grid-template-columns:58px minmax(0,1fr) auto 64px;gap:8px;align-items:center;width:100%;padding:7px 2px;border:0;border-top:1px solid var(--c3);background:none;color:var(--t2);font-size:12px;cursor:pointer;text-align:left;font-family:inherit;min-height:36px;}
.rm-fila:first-of-type{border-top:0;}
.rm-fila:hover{background:rgba(255,255,255,.03);}
.rm-t{font-weight:700;color:var(--t1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.rm-n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--t3);}
.rm-p{color:var(--t1);text-align:right;}
.rm-fila b{text-align:right;font-family:var(--font-mono, monospace);}
.rm-sectores{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:6px;}
.rm-sector{border-radius:8px;padding:8px;display:flex;flex-direction:column;gap:2px;min-width:0;}
.rm-sector span{font-size:11px;color:var(--t1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;} .rm-sector b{font-size:13px;color:var(--t1);font-family:var(--font-mono, monospace);}
@media (max-width: 900px){ .rm-rejilla{grid-template-columns:minmax(0,1fr);} }
@media (max-width: 900px){ .rm-clases{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;} .rm-clase{padding:8px 6px;} .rm-clase b{font-size:14px;} }
@media (max-width: 480px){ .rm-clase{padding:7px 5px;align-items:center;text-align:center;} .rm-clase span{font-size:10.5px;} .rm-clase b{font-size:12.5px;} .rm-clase em{display:none;}
  .rm-fila{grid-template-columns:72px minmax(0,1fr) 64px;gap:6px;} .rm-fila .rm-n{display:none;} .rm-fila .rm-p{text-align:right;} }
/* Cinta de precios dentro de Mercado, solo en teléfono y tableta vertical */
.mkt-cinta{display:none;}
@media (max-width:768px){
  .mkt-cinta{display:flex;align-items:center;overflow:hidden;white-space:nowrap;height:28px;flex:none;background:var(--c1);border-bottom:1px solid var(--c4);}
  .mkt-cinta .ticker-scroll{animation-duration:70s;}
}
.mkt-kpi .mkt-kpi-sub{display:block;font-style:normal;font-size:10.5px;color:var(--t3);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* ── Notas de voz en el chat ── */
.nv-burbuja{display:inline-flex;flex-direction:column;gap:6px;max-width:min(80%,340px);min-width:220px;padding:8px 10px;border-radius:var(--r2);background:var(--c3);color:var(--t1);text-align:left;}
.nv-burbuja.nv-propia{background:var(--accent);color:#fff;}
.nv-fila{display:flex;align-items:center;gap:10px;}
.nv-play{width:34px;height:34px;flex-shrink:0;border-radius:50%;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.14);color:inherit;font-size:16px;}
.nv-propia .nv-play{background:rgba(255,255,255,.22);}
.nv-barra{flex:1;height:6px;border-radius:3px;background:rgba(255,255,255,.18);cursor:pointer;position:relative;overflow:hidden;}
.nv-progreso{height:100%;width:0;background:currentColor;opacity:.85;transition:width .2s linear;}
.nv-dur{font-size:11px;font-variant-numeric:tabular-nums;opacity:.85;min-width:32px;text-align:right;}
.nv-trans{font-size:12.5px;line-height:1.45;word-break:break-word;border-top:1px solid rgba(255,255,255,.14);padding-top:6px;}
.nv-trans-tenue{opacity:.7;font-size:11.5px;}
.nv-link{background:none;border:none;color:inherit;text-decoration:underline;cursor:pointer;font:inherit;padding:0;}
.nv-gira{display:inline-block;animation:nv-giro 1s linear infinite;}
@keyframes nv-giro{to{transform:rotate(360deg);}}
.nv-grabando{display:none !important;}
.nv-grabador{display:flex;align-items:center;gap:8px;margin-top:10px;padding:6px 8px;border:1px solid var(--red);border-radius:var(--r);background:var(--c2);font-size:13px;font-variant-numeric:tabular-nums;}
.nv-rec-punto{width:10px;height:10px;border-radius:50%;background:var(--red);animation:nv-latido 1s ease-in-out infinite;}
.nv-rec-max{color:var(--t3);font-size:11px;}
@keyframes nv-latido{50%{opacity:.25;}}

/* ── Reuniones ── */
.rn-seccion{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--t3);margin:4px 0 8px;display:flex;gap:6px;align-items:center;}
.rn-seccion span{background:var(--c3);border-radius:10px;padding:1px 7px;color:var(--t2);}
.rn-tarjeta{display:flex;gap:12px;padding:12px;border:1px solid var(--c4);border-radius:var(--r2);background:var(--c2);margin-bottom:8px;}
.rn-tarjeta.en-curso,.rn-tarjeta.por-empezar{border-color:var(--green);}
.rn-tarjeta.cancelada,.rn-tarjeta.terminada{opacity:.65;}
.rn-fecha{width:48px;flex-shrink:0;text-align:center;border-radius:var(--r);background:var(--c3);padding:6px 0;line-height:1.1;}
.rn-fecha span{display:block;font-size:10px;text-transform:uppercase;color:var(--t3);}
.rn-fecha b{font-size:20px;font-variant-numeric:tabular-nums;}
.rn-cuerpo{flex:1;min-width:0;}
.rn-titulo{font-weight:600;font-size:14px;display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.rn-meta{font-size:12px;color:var(--t2);margin-top:3px;}
.rn-desc{font-size:12px;color:var(--t3);margin-top:4px;white-space:pre-line;}
.rn-acciones{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
.rn-chip{font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:10px;background:var(--c3);color:var(--t2);}
.rn-chip-g{background:rgba(34,197,94,.16);color:var(--green);}
.rn-chip-a{background:rgba(232,185,74,.18);color:var(--gold);}
.rn-chip-r{background:rgba(239,68,68,.16);color:var(--red);}
.rn-pasadas{margin-top:12px;}
.rn-pasadas summary{cursor:pointer;font-size:12px;color:var(--t3);margin-bottom:8px;}
.rn-modal{max-width:620px;}
.rn-form-pad{padding:14px 16px 4px;}
.rn-form{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;}
.rn-campo{display:flex;flex-direction:column;gap:4px;font-size:11.5px;color:var(--t3);}
.rn-campo input,.rn-campo select,.rn-campo textarea,.rn-correo textarea{width:100%;padding:8px 10px;background:var(--c1, var(--c2));border:1px solid var(--c4);border-radius:var(--r);color:var(--t1);font-family:var(--font-body);font-size:13px;}
.rn-correo textarea{margin-top:6px;resize:vertical;}
.rn-ancho{grid-column:1 / -1;}
.rn-check{flex-direction:row;align-items:center;gap:8px;color:var(--t2);}
.rn-check input{width:auto;}
.rn-ayuda{font-size:11px;color:var(--t3);margin-top:2px;line-height:1.5;}
.rn-ayuda.rn-error{color:var(--red);}
.rn-var{background:var(--c3);border:none;border-radius:4px;padding:1px 5px;color:var(--t2);font-size:11px;cursor:pointer;margin:1px 0;}
.rn-correo summary{cursor:pointer;font-size:12px;color:var(--t2);}
.rn-pie{display:flex;justify-content:space-between;gap:8px;padding:12px 16px 16px;}
.rn-vista{width:100%;height:min(60vh,460px);border:1px solid var(--c4);border-radius:var(--r);background:#fff;}
.rn-inicio{display:flex;align-items:center;gap:10px;padding:10px 12px;margin-bottom:14px;border:1px solid var(--c4);border-left:3px solid var(--accent2);border-radius:var(--r2);background:var(--c2);}
.rn-inicio.en-curso,.rn-inicio.por-empezar{border-left-color:var(--green);}
.rn-inicio > i{font-size:20px;color:var(--accent2);}
.rn-inicio-txt{flex:1;min-width:0;display:flex;flex-direction:column;font-size:13px;}
.rn-inicio-txt span{font-size:11.5px;color:var(--t3);}
@media (max-width:560px){
  .rn-form{grid-template-columns:1fr;}
  .rn-tarjeta{padding:10px;gap:10px;}
  .rn-fecha{width:42px;}
  .nv-burbuja{min-width:min(210px,88%);max-width:88%;}
  .rn-et{display:none;}
  .nv-txt-enviar{display:none;}
}
@media (max-width:768px), (pointer:coarse){
  .nv-play{width:38px;height:38px;}
  .rn-var{padding:4px 7px;}
}

a.btn.rn-unirse,.rn-acciones a.btn,.rn-inicio a.btn{text-decoration:none;}

/* ── Grupos de trabajo ── */
.gt-chip{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:10px;background:color-mix(in srgb, var(--gt) 18%, transparent);color:var(--gt);border:1px solid color-mix(in srgb, var(--gt) 40%, transparent);white-space:nowrap;vertical-align:middle;}
.gt-chip-btn{cursor:pointer;font-family:var(--font-body);}
.gt-chip-btn input{display:none;}
.gt-chip-btn.activo{background:var(--gt);color:#0b1220;}
.gt-sel{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0;}
.rn-dest-buscar{flex:1;min-width:140px;padding:8px 10px;background:var(--c1, var(--c2));border:1px solid var(--c4);border-radius:var(--r);color:var(--t1);font-family:var(--font-body);font-size:13px;}
.gt-nombre{flex:1;min-width:0;background:transparent;border:1px solid transparent;border-radius:var(--r);color:var(--t1);font-weight:700;font-size:13px;padding:4px 6px;font-family:var(--font-body);}
.gt-nombre:hover,.gt-nombre:focus{border-color:var(--c4);background:var(--c2);outline:none;}
.gt-azar{align-items:center;font-size:12px;color:var(--t3);}
.gt-azar input{flex:0 0 64px;min-width:0;width:64px;text-align:center;}
.gt-color{width:16px;height:16px;border-radius:50%;border:none;background:var(--gt);cursor:pointer;flex-shrink:0;}
.gt-fila{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 10px;border-bottom:1px solid var(--c3);font-size:13px;}
.gt-fila:last-child{border-bottom:none;}
.gt-fila span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.gt-fila select{max-width:48%;padding:5px 8px;background:var(--c2);border:1px solid var(--c4);border-radius:var(--r);color:var(--t1);font-size:12.5px;}
.gt-mios{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px;}
.gt-mio{flex:1 1 220px;padding:8px 12px;border:1px solid var(--c4);border-left:3px solid var(--gt);border-radius:var(--r2);background:var(--c2);font-size:12px;display:flex;flex-direction:column;gap:2px;}
.gt-mio b{color:var(--gt);font-size:13px;}
.gt-mio span{color:var(--t2);}
#prof-cloud-grupo{padding:8px 10px;background:var(--c2);border:1px solid var(--c4);border-radius:var(--r);color:var(--t1);font-size:12.5px;max-width:180px;}
.rn-seg{display:flex;gap:4px;flex-wrap:wrap;margin-top:2px;}
.rn-seg button{flex:1 1 auto;padding:7px 10px;border:1px solid var(--c4);border-radius:var(--r);background:var(--c2);color:var(--t2);font-size:12.5px;cursor:pointer;font-family:var(--font-body);}
.rn-seg button.activo{border-color:var(--accent2);color:var(--t1);background:color-mix(in srgb, var(--accent2) 16%, var(--c2));}
.rn-dest-buscar{width:100%;margin-top:8px;}
.rn-dest-lista{max-height:180px;overflow-y:auto;border:1px solid var(--c4);border-radius:var(--r);margin-top:6px;padding:4px 8px;}
.rn-dest-lista label{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:12.5px;color:var(--t1);}
.rn-dest-lista input{width:auto;}
.rn-err{color:var(--red);}
@media (max-width:768px), (pointer:coarse){
  .gt-color{width:22px;height:22px;}
  .gt-fila{padding:8px 10px;}
}

/* ── Página de grupos ── */
.gt-herr{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;margin-bottom:14px;}
.gt-herr-bloque{display:flex;gap:6px;align-items:center;flex:1 1 280px;min-width:0;}
.gt-herr-bloque input{flex:1;min-width:0;padding:8px 10px;background:var(--c2);border:1px solid var(--c4);border-radius:var(--r);color:var(--t1);font-family:var(--font-body);font-size:13px;}
.gt-herr .gt-azar{flex:0 1 auto;font-size:12px;color:var(--t3);}
.gt-herr .gt-azar input{flex:0 0 58px;width:58px;text-align:center;}
#grupos-resumen{display:flex;gap:12px;flex-wrap:wrap;}
#grupos-resumen .gt-alerta{color:var(--gold);}
.gt-rejilla{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:12px;align-items:start;}
.gt-tarjeta{border:1px solid var(--c4);border-top:3px solid var(--gt);border-radius:var(--r2);background:var(--c2);padding:10px 12px;display:flex;flex-direction:column;gap:8px;min-width:0;}
.gt-tcab{display:flex;align-items:center;gap:6px;min-width:0;}
.gt-tcab .gt-n{font-size:11px;color:var(--t3);background:var(--c3);border-radius:10px;padding:1px 8px;font-variant-numeric:tabular-nums;}
.gt-tcab b.gt-nombre{flex:1;color:var(--gt);}
.gt-met{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:11.5px;color:var(--t3);}
.gt-met i{font-size:12px;}
.gt-miembros{display:flex;flex-wrap:wrap;gap:6px;}
.gt-m{display:inline-flex;align-items:center;gap:4px;font-size:12px;padding:3px 4px 3px 9px;border-radius:12px;background:var(--c3);color:var(--t1);max-width:100%;}
.gt-m button{background:none;border:none;color:var(--t3);cursor:pointer;padding:0 3px;display:flex;}
.gt-m button:hover{color:var(--red);}
.gt-vacio{font-size:12px;color:var(--t3);}
.gt-acciones{display:flex;gap:6px;flex-wrap:wrap;align-items:flex-start;}
.gt-menu{position:relative;}
.gt-menu summary{list-style:none;cursor:pointer;}
.gt-menu summary::-webkit-details-marker{display:none;}
.gt-menu-lista{position:absolute;z-index:30;top:calc(100% + 4px);left:0;min-width:210px;background:var(--c2);border:1px solid var(--c4);border-radius:var(--r);box-shadow:0 8px 24px rgba(0,0,0,.4);padding:4px;display:flex;flex-direction:column;}
.gt-menu-lista button{display:flex;align-items:center;gap:8px;padding:8px 10px;background:none;border:none;color:var(--t1);font-size:12.5px;text-align:left;cursor:pointer;border-radius:6px;font-family:var(--font-body);}
.gt-menu-lista button:hover{background:var(--c3);}
.gt-picker{border-top:1px solid var(--c3);padding-top:8px;display:flex;flex-direction:column;gap:6px;}
.gt-picker > input{padding:7px 10px;background:var(--c1, var(--c2));border:1px solid var(--c4);border-radius:var(--r);color:var(--t1);font-size:12.5px;font-family:var(--font-body);}
.gt-picker-lista{max-height:220px;overflow-y:auto;border:1px solid var(--c4);border-radius:var(--r);padding:2px 8px;}
.gt-picker-lista label{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:12.5px;border-bottom:1px solid var(--c3);}
.gt-picker-lista label:last-child{border-bottom:none;}
.gt-picker-lista label span:first-of-type{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.gt-picker-lista input{width:auto;}
.gt-libre{font-size:10.5px;color:var(--t3);}
.gt-sin{border:1px dashed var(--gold);border-radius:var(--r2);padding:8px 10px;margin-bottom:12px;}
.gt-sin-cab{font-size:12px;color:var(--gold);margin-bottom:4px;font-weight:600;}
.gt-inicio{display:flex;gap:12px;align-items:flex-start;padding:16px;border:1px dashed var(--c4);border-radius:var(--r2);color:var(--t2);font-size:13px;}
.gt-inicio > i{font-size:26px;color:var(--accent2);}
.gt-inicio div{display:flex;flex-direction:column;gap:4px;}
/* Modales dinámicos: en pantallas bajas se desplazan sin cortar el encabezado ni el botón de cerrar. */
.modal-overlay{align-items:flex-start;}
.modal-overlay > .modal-box{margin:auto;max-height:none;}
@supports (height:100dvh){ .modal-overlay{max-height:100dvh;} }
@media (max-width:768px), (pointer:coarse){
  .gt-m{padding:5px 4px 5px 10px;}
  .gt-m button{padding:4px 6px;}
  .gt-menu-lista button{padding:11px 12px;}
  .gt-picker-lista label{padding:9px 0;}
}

.gt-sin .gt-fila select{max-width:min(240px,55%);}

/* ── Base de datos ── */
#page-datos .bd-card{margin-bottom:14px;}
.bd-cab{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:8px;}
.bd-kpis{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--t3);margin-bottom:12px;}
.bd-kpis b{color:var(--t1);font-family:var(--font-mono, monospace);}
.bd-fila{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:10px 14px;margin-bottom:10px;}
.bd-campo{display:flex;flex-direction:column;gap:4px;min-width:0;}
.bd-campo>label{font-size:11px;color:var(--t3);text-transform:uppercase;letter-spacing:.03em;}
.bd-campo select,.bd-clave input{width:100%;min-width:0;padding:7px 10px;background:var(--c2);border:1px solid var(--c4);border-radius:var(--r);color:var(--t1);font-family:var(--font-body);font-size:13px;}
.bd-campo select:disabled{opacity:.7;}
.bd-clave{display:flex;gap:6px;align-items:center;min-width:0;}
.bd-clave input{flex:1;font-family:var(--font-mono, monospace);letter-spacing:.02em;}
.bd-clave .btn{flex-shrink:0;}
.bd-huella{font-size:12px;color:var(--t3);line-height:1.5;margin:-2px 0 10px;}
.bd-huella.bd-ok{color:var(--green, #00d084);}
.bd-aviso,.bd-huella.bd-aviso{color:var(--gold, #d4a017);}
.bd-acciones{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px;}
.bd-reid{font-size:12.5px;color:var(--t2);margin-bottom:12px;}
.bd-reid summary{cursor:pointer;color:var(--t3);}
.bd-nota{font-size:11.5px;color:var(--t3);line-height:1.5;margin:6px 0 8px;}
.bd-sub{font-size:11px;color:var(--t3);text-transform:uppercase;letter-spacing:.03em;margin:14px 0 6px;}
.bd-tabs{display:flex;gap:4px;border-bottom:1px solid var(--c4);margin:4px 0 8px;overflow-x:auto;scrollbar-width:none;}
.bd-tabs::-webkit-scrollbar{display:none;}
.bd-tabs button{flex:0 0 auto;padding:8px 10px;border:0;border-bottom:2px solid transparent;background:none;color:var(--t3);font-size:12.5px;cursor:pointer;font-family:var(--font-body);white-space:nowrap;}
.bd-tabs button.activo{color:var(--t1);border-bottom-color:var(--accent2);}
.bd-tabla-cont{overflow-x:auto;max-height:62vh;overflow-y:auto;border:1px solid var(--c4);border-radius:var(--r);}
.bd-tabla{width:100%;border-collapse:collapse;font-size:12px;}
.bd-tabla th,.bd-tabla td{padding:6px 9px;border-bottom:1px solid var(--c4);white-space:nowrap;text-align:right;background:var(--c2);}
.bd-tabla tbody th{text-align:left;font-weight:500;color:var(--t1);position:sticky;left:0;z-index:1;text-transform:none;letter-spacing:normal;font-size:12px;}
.bd-tabla thead th{position:sticky;top:0;z-index:2;color:var(--t3);font-size:10.5px;text-transform:uppercase;letter-spacing:.03em;font-weight:600;text-align:right;}
.bd-tabla thead th:first-child{text-align:left;left:0;z-index:3;}
.bd-tabla td{font-family:var(--font-mono, monospace);color:var(--t2);}
.bd-tabla tr.bd-sig td,.bd-tabla tr.bd-sig th{background:color-mix(in srgb, var(--accent2) 9%, var(--c2));}
.bd-tabla tr.bd-sel th{color:var(--accent2);}
.bd-tabla tr.bd-pie th,.bd-tabla tr.bd-pie td{font-weight:600;border-top:1px solid var(--c4);}
.bd-tabla .bd-ic{font-size:11px;}
.bd-mono{font-family:var(--font-mono, monospace);letter-spacing:.02em;}
.bd-nd{color:var(--t3);opacity:.6;}
.bd-exp{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;}
.bd-exp-btn{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--c4);border-radius:var(--r);background:var(--c2);color:var(--t1);cursor:pointer;text-align:left;font-family:var(--font-body);min-width:0;}
.bd-exp-btn:hover{border-color:var(--accent2);}
.bd-exp-btn i{font-size:19px;color:var(--accent2);flex-shrink:0;}
.bd-exp-btn span{display:flex;flex-direction:column;min-width:0;}
.bd-exp-btn b{font-size:12.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;}
.bd-exp-btn small{font-size:11px;color:var(--t3);}
.bd-gira{display:inline-block;animation:bdGira 1s linear infinite;}
@keyframes bdGira{to{transform:rotate(360deg);}}
@media (max-width:640px){
  .bd-fila{grid-template-columns:1fr;}
  .bd-tabs button span{display:none;}
  .bd-tabs button.activo span{display:inline;}
  .bd-exp{grid-template-columns:1fr 1fr;}
  .bd-exp-btn{padding:9px 10px;gap:8px;}
  .bd-tabla-cont{max-height:none;}
}
@media (max-width:360px){ .bd-exp{grid-template-columns:1fr;} }

/* ── Mis métricas y contrastes ── */
.mt-cuerpo{padding-top:4px;}
.mt-kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;}
.mt-kpi{border:1px solid var(--c4);border-radius:var(--r);background:var(--c2);padding:9px 11px;min-width:0;}
.mt-kpi-t{font-size:10.5px;color:var(--t3);text-transform:uppercase;letter-spacing:.03em;line-height:1.3;}
.mt-kpi-v{font-family:var(--font-mono, monospace);font-size:17px;color:var(--t1);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mt-kpi-v.g,.bd-tabla td.g,.bd-tabla .g{color:var(--green, #00d084);}
.mt-kpi-v.r,.bd-tabla td.r,.bd-tabla .r{color:var(--red, #ff4d6d);}
.mt-kpi-s{font-size:11px;color:var(--t3);margin-top:2px;line-height:1.35;}
.mt-graf{width:100%;height:120px;display:block;border:1px solid var(--c4);border-radius:var(--r);background:var(--c2);}
.mt-leyenda{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:11px;color:var(--t3);margin:6px 0 2px;}
.mt-leyenda i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:-1px;}
.mt-barra-td{min-width:120px;}
.mt-barra{position:relative;height:14px;background:var(--c3, rgba(127,127,127,.12));border-radius:3px;overflow:hidden;}
.mt-barra span{position:absolute;left:0;height:7px;}
.mt-b-conf{top:0;background:var(--gold, #d4a017);}
.mt-b-ac{bottom:0;background:var(--accent2, #4a9eff);}
.mt-modal{max-width:1100px;width:calc(100vw - 24px);padding:20px 22px;}
.bd-tabla th.bd-larga{white-space:normal;min-width:220px;max-width:340px;}
.bd-pq{display:block;font-size:10px;color:var(--t3);font-family:var(--font-body);white-space:normal;}
.bd-tabla td.bd-txt{font-family:var(--font-body);white-space:normal;min-width:160px;text-align:left;font-size:11.5px;}
.bd-tabla tr.bd-clic{cursor:pointer;}
.bd-tabla tr.bd-clic:hover th,.bd-tabla tr.bd-clic:hover td,.bd-tabla tr.bd-clic:focus th,.bd-tabla tr.bd-clic:focus td{background:color-mix(in srgb, var(--accent2) 8%, var(--c2));}
.bd-ir{font-size:12px;color:var(--t3);vertical-align:-1px;}
.bd-cfg{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px 12px;margin-bottom:10px;}
.bd-cfg input[type=date]{width:100%;min-width:0;padding:7px 10px;background:var(--c2);border:1px solid var(--c4);border-radius:var(--r);color:var(--t1);font-family:var(--font-body);font-size:13px;}
.bd-tabla tbody th b{font-weight:700;}
@media (max-width:640px){
  .mt-kpis{grid-template-columns:1fr 1fr;}
  .mt-kpi-v{font-size:15px;}
  .bd-cfg{grid-template-columns:1fr 1fr;}
  .mt-modal{width:100vw;padding:16px 14px;border-radius:0;}
  .bd-tabla th.bd-larga{min-width:170px;}
}

/* ── PIB y números índices ── */
.pib-ctrl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 12px;margin-bottom:10px;}
.pib-ctrl select,.pib-pais select{width:100%;min-width:0;padding:7px 10px;background:var(--c2);border:1px solid var(--c4);border-radius:var(--r);color:var(--t1);font-family:var(--font-body);font-size:13px;}
.pib-pais{min-width:200px;}
.pib-dato{padding:7px 0;font-family:var(--font-mono, monospace);font-size:13px;color:var(--t1);}
.pib-lienzo{position:relative;height:240px;border:1px solid var(--c4);border-radius:var(--r);background:var(--c2);padding:8px;}
.pib-lectura{font-size:13px;color:var(--t2);line-height:1.65;margin-top:8px;}
.pib-lectura p{margin:0 0 8px;}
.bd-tabla tr.pib-proy th,.bd-tabla tr.pib-proy td{font-style:italic;color:var(--t3);}
.bd-tabla th small{font-size:10px;color:var(--gold, #d4a017);font-weight:600;}
@media (max-width:640px){ .pib-ctrl{grid-template-columns:1fr 1fr;} .pib-pais{min-width:0;width:100%;} .pib-lienzo{height:210px;} }

/* ── Navegación por grupos y Más herramientas ── */
.subnav{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;margin:-4px 0 14px;padding:3px;background:var(--c2);border:1px solid var(--c4);border-radius:var(--r2);}
.subnav::-webkit-scrollbar{display:none;}
.subnav-btn{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:7px 12px;border:0;border-radius:var(--r);background:none;color:var(--t2);font-family:var(--font-body);font-size:13px;cursor:pointer;white-space:nowrap;position:relative;}
.subnav-btn:hover{color:var(--t1);background:color-mix(in srgb, var(--accent2) 7%, transparent);}
.subnav-btn.active{color:var(--t1);background:color-mix(in srgb, var(--accent2) 16%, var(--c2));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent2) 45%, transparent);font-weight:600;}
.subnav-btn i{font-size:15px;}
.hr-seccion{margin-bottom:18px;}
.hr-seccion .hp-titulo{display:flex;align-items:center;gap:6px;}
.hr-n{margin-left:auto;font-size:11px;color:var(--t3);font-weight:500;}
.hr-rejilla{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px;}
.hr-card{display:flex;align-items:flex-start;gap:10px;padding:11px 12px;border:1px solid var(--c4);border-radius:var(--r);background:var(--c2);color:var(--t1);text-align:left;cursor:pointer;font-family:var(--font-body);min-width:0;}
.hr-card:hover,.hr-card:focus-visible{border-color:var(--accent2);}
.hr-card > i:first-child{font-size:20px;color:var(--accent2);flex-shrink:0;margin-top:1px;}
.hr-texto{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1;}
.hr-texto b{font-size:13px;font-weight:600;}
.hr-texto small{font-size:11.5px;color:var(--t3);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.hr-ir{color:var(--t3);font-size:14px;align-self:center;}
@media (max-width:640px){
  .subnav{margin:-6px -2px 12px;}
  .subnav-btn{padding:7px 10px;font-size:12.5px;}
  .hr-rejilla{grid-template-columns:1fr;}
}

/* Monte Carlo del Laboratorio */
.lab-mc-intro{font-size:12.5px;color:var(--t2);line-height:1.6;margin:0 0 12px;padding:9px 12px;border-left:3px solid var(--accent2);background:color-mix(in srgb, var(--accent2) 6%, transparent);border-radius:0 var(--r) var(--r) 0;}
.kpi-row.lab-kpi4{grid-template-columns:repeat(4,minmax(0,1fr));}
@media (max-width:640px){ .kpi-row.lab-kpi4{grid-template-columns:1fr 1fr;} }

.mt-influye{margin-top:14px;border-top:1px solid var(--c4);padding-top:10px;}
.mt-influye summary{cursor:pointer;font-size:12.5px;color:var(--accent2);font-weight:600;}
.mt-influye p{font-size:12.5px;color:var(--t2);line-height:1.6;margin:8px 0 0;}

/* Ranking por archivos plegado dentro de Estudiantes */
.prof-archivos{margin-top:4px;}
.prof-archivos > summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-weight:600;font-size:13.5px;color:var(--t1);}
.prof-archivos > summary::-webkit-details-marker{display:none;}
.prof-archivos > summary span{font-weight:400;font-size:12px;color:var(--t3);}
.prof-archivos > summary::after{content:'▾';margin-left:auto;color:var(--t3);transition:transform .2s;}
.prof-archivos[open] > summary::after{transform:rotate(180deg);}
.prof-archivos[open] > summary{margin-bottom:12px;}

/* Glosario en rejilla */
.gl-cuenta{font-size:11.5px;color:var(--t3);margin:0 0 8px;}
.gl-rejilla{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:10px;}
.gl-card{background:var(--c2);border:1px solid var(--c4);border-radius:var(--r2);padding:12px 14px;display:flex;flex-direction:column;gap:6px;min-width:0;}
.gl-cab{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;}
.gl-cab h3{margin:0;font-size:14px;font-weight:600;color:var(--t1);line-height:1.3;}
.gl-cat{flex-shrink:0;font-size:10px;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:999px;background:var(--c3, rgba(127,127,127,.12));color:var(--t3);}
.gl-cat-estadistica{color:#a78bfa;} .gl-cat-macro{color:var(--gold, #d4a017);} .gl-cat-derivados{color:#f472b6;} .gl-cat-analisis{color:var(--accent2);} .gl-cat-mercados{color:var(--green, #00d084);}
.gl-card p{margin:0;font-size:12.5px;color:var(--t2);line-height:1.55;}
.gl-formula{font-family:var(--font-mono, monospace);font-size:12px;color:var(--t1);background:var(--c3, rgba(127,127,127,.08));padding:5px 8px;border-radius:var(--r);overflow-x:auto;white-space:nowrap;}
.gl-fuente{font-size:10.5px;color:var(--accent2);text-decoration:none;margin-top:auto;}
.gl-fuente:hover{text-decoration:underline;}
@media (max-width:640px){ .gl-rejilla{grid-template-columns:1fr;} }

/* Inicio */
.ini-bloque{margin-bottom:14px;}
.ini-cab{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:10px;}
.ini-accesos{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;}
.ini-acceso{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 8px;border:1px solid var(--c4);border-radius:var(--r);background:var(--c2);color:var(--t1);cursor:pointer;font-family:var(--font-body);font-size:12.5px;text-align:center;min-width:0;}
.ini-acceso:hover{border-color:var(--accent2);}
.ini-acceso i{font-size:22px;color:var(--accent2);}
@media (max-width:900px){ .ini-accesos{grid-template-columns:repeat(3,minmax(0,1fr));} }

.res-aviso{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12.5px;color:var(--t2);background:color-mix(in srgb, var(--accent2) 6%, var(--c2));border:1px solid color-mix(in srgb, var(--accent2) 25%, var(--c4));border-radius:var(--r);padding:8px 12px;margin-bottom:12px;}
.res-aviso span{flex:1;min-width:200px;}
.res-aviso > i{color:var(--accent2);}

/* Logros */
.lg-rejilla{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;}
.lg-card{display:flex;gap:12px;align-items:flex-start;padding:14px;border-radius:var(--r2,12px);background:var(--c1);border:1px solid var(--c3);}
.lg-icono{width:40px;height:40px;flex-shrink:0;border-radius:50%;display:grid;place-items:center;background:var(--c3);color:var(--t2);font-size:19px;}
.lg-logrado{border-color:rgba(212,175,55,.35);}
.lg-logrado .lg-icono{background:rgba(212,175,55,.18);color:var(--gold);}
.lg-pendiente .lg-icono{color:var(--t3);}
.lg-pendiente h3{color:var(--t2);}
.lg-texto{min-width:0;flex:1;}
.lg-texto h3{font-size:14px;font-weight:700;margin:0 0 2px;}
.lg-texto p{font-size:12.5px;color:var(--t2);line-height:1.5;margin:4px 0 0;}
.lg-estado{display:inline-block;font-size:10.5px;color:var(--t3);}
.lg-estado.lg-ok{color:var(--gold);}
.lg-compartir{margin-top:8px;}

/* Estado vacío común */
.vacio{text-align:center;padding:34px 18px;max-width:460px;margin:0 auto;}
.vacio-icono{font-size:30px;color:var(--accent2,var(--accent));display:inline-grid;place-items:center;width:58px;height:58px;border-radius:50%;background:color-mix(in srgb, var(--accent2,#00c4ff) 10%, transparent);margin-bottom:12px;}
.vacio h3{font-size:15px;font-weight:700;margin:0 0 6px;color:var(--t1);}
.vacio p{font-size:12.5px;color:var(--t2);line-height:1.6;margin:0;}
.vacio-acciones{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:14px;}
#cuest-empty,#cal-empty{padding:0 !important;}

/* Simulación personalizada */
.cp-rejilla{display:grid;grid-template-columns:1fr;gap:14px;}
@media (min-width:1000px){.cp-rejilla{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);}}
.cp-rejilla > .card{margin:0;}
.cp-ayuda{display:block;text-transform:none;letter-spacing:0;font-weight:400;color:var(--t3);font-size:10.5px;margin-top:1px;}
.cp-kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-bottom:12px;}
.cp-kpis .mt-kpi span{display:block;font-size:10.5px;color:var(--t3);text-transform:uppercase;letter-spacing:.04em;}
.cp-kpis .mt-kpi b{display:block;font-size:19px;font-variant-numeric:tabular-nums;margin:3px 0 2px;}
.cp-kpis .mt-kpi b.g{color:var(--green);} .cp-kpis .mt-kpi b.r{color:var(--red);} .cp-kpis .mt-kpi b.a{color:var(--amber);}
.cp-kpis .mt-kpi small{display:block;font-size:10.5px;color:var(--t3);line-height:1.35;}
.cp-riesgo{margin:4px 0 10px;}
.cp-barra{height:6px;border-radius:3px;background:linear-gradient(to right,var(--green),var(--amber),var(--red));position:relative;}
.cp-marca{width:14px;height:14px;border-radius:50%;background:#fff;border:2px solid var(--c0,#000);position:absolute;top:-4px;transform:translateX(-50%);transition:left .3s;}
.cp-escala{display:flex;justify-content:space-between;font-size:10.5px;color:var(--t3);margin-top:5px;}
.cp-lectura{font-size:12.5px;color:var(--t2);line-height:1.6;margin-top:12px;padding:10px 12px;background:var(--c2);border-radius:var(--r2,12px);}
@media (max-width:380px){.cp-kpis{grid-template-columns:1fr 1fr;}.cp-kpis .mt-kpi b{font-size:16px;}}
.cp-sub{font-size:12px;color:var(--t3);margin:-4px 0 10px;line-height:1.5;}

/* Dictamen del informe del gestor */
.res-dictamen{display:flex;align-items:center;gap:16px;padding:14px 16px;background:var(--c3);border-radius:var(--r2);margin-bottom:14px;border-left:4px solid var(--c);}
.res-dictamen-letra{font-size:34px;line-height:1;font-weight:800;color:var(--c);flex-shrink:0;min-width:46px;text-align:center;font-variant-numeric:tabular-nums;}
.res-dictamen-texto{font-size:14px;font-weight:600;color:var(--c);margin-bottom:3px;line-height:1.35;}
@media (max-width:480px){.res-dictamen{gap:12px;padding:12px;}.res-dictamen-letra{font-size:28px;min-width:36px;}}

/* En iPhone y iPad, un campo con letra menor a 16px hace que Safari amplíe la
   página al tocarlo y no la devuelva a su tamaño. */
@media (pointer:coarse){
  input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]), select, textarea, [contenteditable="true"]{font-size:16px !important;}
}

/* Copiar enlace a la sección */
.enlace-copiar{display:inline-grid;place-items:center;width:28px;height:28px;margin-left:8px;vertical-align:middle;border-radius:8px;border:1px solid var(--c4);background:var(--c2);color:var(--t3);cursor:pointer;font-size:14px;opacity:.75;transition:opacity .15s,color .15s,border-color .15s;}
.enlace-copiar:hover,.enlace-copiar:focus-visible{opacity:1;color:var(--accent2,var(--accent));border-color:var(--accent2,var(--accent));}
@media (pointer:coarse){.enlace-copiar{width:38px;height:38px;}}

/* Resumen del día */
.rd-acciones{display:flex;gap:8px;flex-wrap:wrap;}
.rd-cargando{padding:40px 16px;text-align:center;color:var(--t3);font-size:13px;}
.rd-esencial ul{margin:4px 0 0;padding-left:18px;}
.rd-esencial li{font-size:14px;line-height:1.6;color:var(--t1);margin-bottom:6px;}
.rd-nota-ia{font-size:11px;color:var(--t3);margin-top:6px;}
.rd-indices{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:0 0 14px;}
.rd-indice{background:var(--c1);border:1px solid var(--c3);border-radius:var(--r2,12px);padding:10px 12px;min-width:0;}
.rd-indice span{display:block;font-size:11px;color:var(--t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.rd-indice b{display:block;font-size:17px;font-variant-numeric:tabular-nums;margin:2px 0;}
.rd-indice em{font-style:normal;font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;}
.rd-indice small{display:block;font-size:10.5px;color:var(--t3);margin-top:2px;}
.rd-indice .g,.rd-clase .g,.rd-fila .g,.rd-tabla .g,.rd-sector .g,.rd-chip.g,.rd-total.g,.rd-ini .g{color:var(--green);}
.rd-indice .r,.rd-clase .r,.rd-fila .r,.rd-tabla .r,.rd-sector .r,.rd-chip.r,.rd-total.r,.rd-ini .r{color:var(--red);}
.rd-clases{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;}
.rd-clase{background:var(--c2);border-radius:var(--r);padding:10px 12px;min-width:0;}
.rd-clase span{display:block;font-size:11px;color:var(--t3);}
.rd-clase b{display:block;font-size:16px;font-variant-numeric:tabular-nums;margin:2px 0 6px;}
.rd-clase small{font-size:10.5px;color:var(--t3);}
.rd-amplitud{display:flex;height:5px;border-radius:3px;overflow:hidden;background:var(--c4);margin-bottom:4px;}
.rd-amplitud i.g{background:var(--green);} .rd-amplitud i.r{background:var(--red);margin-left:auto;}
.rd-dos{display:grid;grid-template-columns:1fr;gap:0 14px;}
@media (min-width:900px){.rd-dos{grid-template-columns:1fr 1fr;}}
.rd-lista{display:flex;flex-direction:column;}
.rd-fila{display:flex;align-items:center;gap:10px;width:100%;padding:8px 4px;min-height:44px;background:none;border:0;border-bottom:1px solid var(--c3);color:var(--t1);font:inherit;text-align:left;cursor:pointer;}
.rd-fila:hover{background:var(--c2);}
.rd-fila-n{flex:1;min-width:0;}
.rd-fila-n b{display:block;font-size:13px;}
.rd-fila-n small{display:block;font-size:11px;color:var(--t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.rd-fila-v,.rd-fila-m{font-variant-numeric:tabular-nums;font-weight:600;font-size:13px;white-space:nowrap;}
.rd-fila-m{font-weight:500;color:var(--t2);}
.rd-total{font-size:15px;font-variant-numeric:tabular-nums;}
.rd-pie{font-size:11.5px;color:var(--t3);margin-top:8px;line-height:1.5;}
.rd-sector{display:grid;grid-template-columns:minmax(90px,1.2fr) 2fr 64px;align-items:center;gap:10px;padding:5px 0;font-size:12.5px;}
.rd-sector span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--t2);}
.rd-sector b{text-align:right;font-variant-numeric:tabular-nums;}
.rd-barra-sec{position:relative;height:10px;background:var(--c2);border-radius:5px;}
.rd-barra-sec::after{content:'';position:absolute;left:50%;top:-2px;bottom:-2px;width:1px;background:var(--c5,#3a4560);}
.rd-barra-sec i{position:absolute;top:0;bottom:0;border-radius:5px;}
.rd-barra-sec i.g{background:var(--green);} .rd-barra-sec i.r{background:var(--red);}
.rd-nota{padding:12px 0;border-bottom:1px solid var(--c3);}
.rd-nota:last-child{border-bottom:0;}
.rd-nota-cab{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:var(--t3);margin-bottom:4px;flex-wrap:wrap;}
.rd-tema{color:var(--accent2,var(--accent));font-weight:600;text-transform:uppercase;letter-spacing:.04em;font-size:10.5px;}
.rd-nota h3{font-size:14.5px;line-height:1.4;margin:0 0 4px;}
.rd-nota h3 a{color:var(--t1);text-decoration:none;}
.rd-nota h3 a:hover{text-decoration:underline;}
.rd-nota p{font-size:13px;color:var(--t2);line-height:1.55;margin:0;}
.rd-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
.rd-chip{padding:5px 10px;min-height:30px;border-radius:15px;background:var(--c2);border:1px solid var(--c4);font:inherit;font-size:11.5px;font-weight:600;cursor:pointer;}
.rd-filtros{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;margin:0 0 10px;padding:3px;background:var(--c2);border:1px solid var(--c4);border-radius:var(--r2,12px);}
.rd-filtros button{flex:0 0 auto;padding:7px 12px;min-height:34px;border:0;border-radius:var(--r);background:none;color:var(--t2);font:inherit;font-size:12.5px;cursor:pointer;white-space:nowrap;}
.rd-filtros button.active{background:var(--accent2,var(--accent));color:#04121d;font-weight:600;}
.rd-tabla{width:100%;border-collapse:collapse;font-size:12.5px;}
.rd-tabla th{text-align:left;font-weight:600;color:var(--t3);font-size:11px;border-bottom:1px solid var(--c4);padding:0;}
.rd-tabla th button{background:none;border:0;color:inherit;font:inherit;padding:8px 6px;min-height:34px;cursor:pointer;width:100%;text-align:inherit;}
.rd-tabla th.num,.rd-tabla td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;}
.rd-tabla td{padding:7px 6px;border-bottom:1px solid var(--c3);}
.rd-tabla td small{display:block;color:var(--t3);font-size:10.5px;max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.rd-tabla tbody tr{cursor:pointer;}
.rd-tabla tbody tr:hover{background:var(--c2);}
.rd-fuentes{font-size:11px;color:var(--t3);line-height:1.5;margin:4px 0 20px;}
.rd-sugerencia p{font-size:13px;color:var(--t2);line-height:1.6;margin:0 0 10px;}
.rd-ini-fila{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px;}
.rd-ini-fila span{background:var(--c2);border-radius:var(--r);padding:8px 10px;min-width:0;}
.rd-ini-fila small{display:block;font-size:10.5px;color:var(--t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.rd-ini-fila b{font-size:14px;font-variant-numeric:tabular-nums;}
.rd-ini-p{font-size:13px;color:var(--t2);line-height:1.55;margin:10px 0 0;}
@media (max-width:480px){.rd-indices{grid-template-columns:repeat(2,minmax(0,1fr));}.rd-ini-fila{grid-template-columns:repeat(2,minmax(0,1fr));}.rd-sector{grid-template-columns:minmax(80px,1fr) 1.3fr 58px;}}
.rm-dia{display:flex;align-items:center;gap:12px;width:100%;text-align:left;margin:0 0 12px;padding:10px 14px;min-height:44px;border-radius:var(--r2,12px);border:1px solid color-mix(in srgb, var(--accent2,#00c4ff) 35%, transparent);background:color-mix(in srgb, var(--accent2,#00c4ff) 7%, transparent);color:var(--t2);font:inherit;font-size:12.5px;line-height:1.5;cursor:pointer;}
.rm-dia:hover{border-color:var(--accent2,#00c4ff);}
.rm-dia span{flex:1;min-width:0;}
.rm-dia b{display:block;color:var(--t1);font-size:13px;}
.rm-dia-i{font-size:20px;color:var(--accent2,#00c4ff);}

/* País e inversión */
.mp-select{min-height:38px;padding:6px 10px;border-radius:var(--r);background:var(--c2);border:1px solid var(--c4);color:var(--t1);font:inherit;font-size:13px;}
.mp-kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px;margin-bottom:14px;}
.mp-kpi{background:var(--c1);border:1px solid var(--c3);border-radius:var(--r2,12px);padding:10px 12px;min-width:0;}
.mp-kpi span{display:block;font-size:11px;color:var(--t3);}
.mp-kpi b{display:block;font-size:19px;font-variant-numeric:tabular-nums;margin:2px 0;}
.mp-kpi small{display:block;font-size:10.5px;color:var(--t3);}
.mp-kpi em{display:block;font-style:normal;font-size:11px;color:var(--t2);margin-top:4px;line-height:1.4;}
.mp-kpi .g,.mp-tabla .g,.mp-comp .g,.mc-res .g,.mc-aportes .g{color:var(--green);} .mp-kpi .r,.mp-tabla .r,.mp-comp .r,.mc-res .r,.mc-aportes .r{color:var(--red);} .mp-kpi .a{color:var(--amber);}
.mp-duelo{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:6px 0 10px;}
.mp-duelo span{display:block;font-size:12px;color:var(--t3);}
.mp-duelo b{display:block;font-size:22px;font-variant-numeric:tabular-nums;margin:2px 0 6px;}
.mp-barra{height:8px;border-radius:4px;background:var(--c3);overflow:hidden;position:relative;}
.mp-barra i{display:block;height:100%;border-radius:4px;}
.mp-barra i.f{background:var(--accent2,#00c4ff);} .mp-barra i.v{background:var(--gold,#d4af37);} .mp-barra i.m{background:var(--red);}
.mp-veredicto{font-size:14px;line-height:1.6;color:var(--t1);margin:6px 0 12px;}
.mp-sub{font-size:11px;color:var(--t3);text-transform:uppercase;letter-spacing:.05em;margin:6px 0;}
.mp-tabla{width:100%;border-collapse:collapse;font-size:12.5px;}
.mp-tabla td,.mp-tabla th{padding:7px 6px;border-bottom:1px solid var(--c3);text-align:left;vertical-align:top;}
.mp-tabla th{font-size:11px;color:var(--t3);font-weight:600;}
.mp-tabla .num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;}
.mp-tabla td small{display:block;color:var(--t3);font-size:11px;line-height:1.45;margin-top:2px;}
.mp-formula{font-size:13px;color:var(--t2);line-height:1.6;padding:10px 12px;background:var(--c2);border-radius:var(--r);overflow-wrap:anywhere;font-variant-numeric:tabular-nums;}
.mp-formula b{color:var(--t1);}
.mp-comp{display:flex;flex-direction:column;gap:6px;margin-top:10px;}
.mp-comp-f{display:grid;grid-template-columns:minmax(110px,1fr) 2fr 56px minmax(110px,1fr);gap:10px;align-items:center;font-size:12.5px;}
.mp-comp-f b{text-align:right;font-variant-numeric:tabular-nums;}
.mp-comp-f small{font-size:11px;}
.mp-sliders{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px 16px;}
.mp-sliders label{display:block;font-size:12px;color:var(--t2);}
.mp-sliders label span{display:flex;justify-content:space-between;}
.mp-sliders input{width:100%;}
.mc-res{display:flex;align-items:baseline;gap:10px;margin-top:10px;font-size:13px;color:var(--t2);}
.mc-res b{font-size:22px;font-variant-numeric:tabular-nums;}
.mc-aportes{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--t2);margin-top:4px;}
.mc-nota{font-size:11.5px;color:var(--t3);line-height:1.5;margin:8px 0 0;}
@media (max-width:560px){.mp-comp-f{grid-template-columns:minmax(90px,1fr) 1.2fr 50px;}.mp-comp-f small{grid-column:1/-1;margin-top:-4px;}.mp-kpis{grid-template-columns:1fr 1fr;}}

.ev-ini .ev-acc{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.ev-ini .ev-total{font-size:12px;font-weight:700;color:var(--accent,#3b82f6)}

.mp-bp{display:flex;flex-direction:column;gap:6px;margin:10px 0}.mp-bp-f{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(70px,1fr) auto;gap:8px;align-items:center;font-size:12.5px}
.mp-bp-f span{min-width:0}.mp-bp-f small{display:block;font-size:10.5px;color:var(--text-muted,#8aa0c8);line-height:1.3}.mp-bp-f.sub span{padding-left:12px;opacity:.85}.mp-bp-f.tot{border-top:1px solid rgba(127,127,127,.25);padding-top:6px;font-weight:700}
.mp-bp-f b{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12px}.mp-bp-eje{position:relative;height:10px;background:rgba(127,127,127,.12);border-radius:5px}.mp-bp-eje::after{content:'';position:absolute;left:50%;top:-2px;bottom:-2px;width:1px;background:rgba(127,127,127,.5)}
.mp-bp-eje i{position:absolute;top:0;bottom:0;border-radius:5px}.mp-bp-eje i.pos{left:50%;background:#22c55e}.mp-bp-eje i.neg{right:50%;background:#ef4444}
.mp-cp-cab{display:flex;flex-direction:column;gap:6px;margin:6px 0}.mp-cp-cab>div:first-child{display:flex;align-items:baseline;gap:10px}.mp-cp-cab b{font-size:22px}.mp-cp-cab span{font-weight:700;font-size:13px}
@media(max-width:480px){.mp-bp-f{grid-template-columns:minmax(0,1fr) auto}.mp-bp-eje{grid-column:1/-1;grid-row:2}}

.mp-mezcla{margin:6px 0 12px}.mp-mezcla>span{font-size:11.5px;color:var(--text-muted,#8aa0c8)}.mp-mezcla-b{display:flex;height:22px;border-radius:6px;overflow:hidden;margin-top:4px;font-size:11px;font-weight:700}
.mp-mezcla-b i{font-style:normal;display:flex;align-items:center;justify-content:center;background:var(--accent2,#00c4ff);color:#04121f;white-space:nowrap;overflow:hidden;min-width:0}.mp-mezcla-b i.v{background:var(--gold,#d4af37)}
.mp-op{min-width:0}.mp-op-tips{margin:6px 0;padding-left:18px;font-size:12.5px;line-height:1.5}.mp-op-tips li{margin-bottom:4px}
.mp-op-tipos{font-size:12px;margin:6px 0}.mp-op-tipos summary{cursor:pointer;font-weight:600;padding:6px 0;min-height:38px;display:flex;align-items:center}.mp-op-tipos p{margin:4px 0;line-height:1.45}
.mp-op-chips{display:flex;flex-wrap:wrap;gap:6px}.mp-op-chip{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:6px 10px;min-height:38px;border-radius:8px;border:1px solid rgba(127,127,127,.25);background:rgba(127,127,127,.06);color:inherit;cursor:pointer;max-width:100%;text-align:left}
.mp-op-chip b{font-size:12px}.mp-op-chip small{font-size:10.5px;color:var(--text-muted,#8aa0c8);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}.mp-op-chip:hover{border-color:var(--accent2,#00c4ff)}
.mp-op-tipos summary::before{content:'▸';margin-right:6px;transition:transform .15s}.mp-op-tipos[open] summary::before{transform:rotate(90deg)}.mp-op-tipos summary::-webkit-details-marker{display:none}

.me-ctrl{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;margin:8px 0}.me-ctrl label{display:flex;flex-direction:column;gap:4px;font-size:11.5px;color:var(--text-muted,#8aa0c8);min-width:0}
.me-ctrl select{min-height:38px;width:100%;padding:6px 8px;border-radius:8px;border:1px solid rgba(127,127,127,.3);background:var(--bg-card,rgba(127,127,127,.06));color:inherit;font-size:13px}
.me-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;margin:10px 0}.me-kpis>div{padding:10px;border-radius:10px;background:rgba(127,127,127,.07);border:1px solid rgba(127,127,127,.15);min-width:0}
.me-kpis span{display:block;font-size:11px;color:var(--text-muted,#8aa0c8)}.me-kpis b{display:block;font-size:17px;font-variant-numeric:tabular-nums;margin:2px 0}.me-kpis small{font-size:10.5px;color:var(--text-muted,#8aa0c8)}
/* Menú lateral: indicador activo y transición suave */
.wl-nav-btn{position:relative;font-size:12px;min-height:32px;padding:6px 10px;transition:background .15s,color .15s,transform .15s}
.wl-nav-btn:hover{transform:translateX(2px)}
.wl-nav-btn.active{background:color-mix(in srgb,var(--accent2) 13%,transparent);font-weight:600}
.wl-nav-btn.active::before{content:'';position:absolute;left:0;top:7px;bottom:7px;width:3px;border-radius:0 3px 3px 0;background:var(--accent2)}
@media(max-width:768px){.wl-nav-btn{font-size:12px;padding:7px 10px}}
@media (prefers-reduced-motion:reduce){.wl-nav-btn{transition:none}.wl-nav-btn:hover{transform:none}}
/* Evento en campus */
.ev-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:12px}
.ev-kpi{padding:14px;border-radius:14px;background:linear-gradient(160deg,color-mix(in srgb,var(--accent2) 9%,var(--c2)),var(--c2));border:1px solid var(--c4);min-width:0}
.ev-kpi span{display:block;font-size:11.5px;color:var(--t2)}.ev-kpi b{display:block;font-size:26px;line-height:1.15;margin:4px 0 2px;font-variant-numeric:tabular-nums}.ev-kpi small{font-size:11px;color:var(--t2)}
.ev-graf-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:12px}.ev-graf-grid>.card{margin:0;min-width:0}
.ev-tabla-cab{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin-bottom:10px}.ev-cuenta{font-weight:400;color:var(--t2);font-size:12px;margin-left:4px}
.ev-filtros{display:flex;flex-wrap:wrap;gap:8px;flex:1;justify-content:flex-end;min-width:0}.ev-filtros input,.ev-filtros select{min-height:38px;padding:6px 10px;border-radius:10px;border:1px solid var(--c4);background:var(--c2);color:var(--t1);font-size:13px;min-width:0;flex:1 1 180px;max-width:280px}
.ev-tabla{width:100%;border-collapse:collapse;font-size:12.5px}.ev-tabla th{text-align:left;border-bottom:1px solid var(--c4);padding:0}.ev-tabla th button{all:unset;cursor:pointer;display:flex;align-items:center;gap:4px;padding:8px 6px;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--t2);min-height:30px}
.ev-tabla td{padding:8px 6px;border-bottom:1px solid color-mix(in srgb,var(--c4) 60%,transparent);vertical-align:middle}.ev-tabla td small{display:block;color:var(--t2);font-size:11px;word-break:break-all}.ev-tabla tbody tr:hover{background:color-mix(in srgb,var(--accent2) 5%,transparent)}
.ev-ok{color:var(--green);font-size:12px;white-space:nowrap}.ev-compartir{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.ev-compartir img{border-radius:10px;display:block;background:#fff}.ev-compartir>div:last-child{flex:1;min-width:220px}
.ev-acceso{max-width:440px;margin:24px auto;text-align:center;padding:28px 20px}.ev-acceso-i{font-size:34px;color:var(--accent2);display:block;margin-bottom:6px}
.ev-acceso-f{display:flex;gap:8px;margin:14px 0 6px;flex-wrap:wrap}.ev-acceso-f input{flex:1 1 180px;min-height:40px;padding:8px 12px;border-radius:10px;border:1px solid var(--c4);background:var(--c2);color:var(--t1);font-size:14px}
.ev-acceso-pub{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin-top:10px}.ev-error{color:var(--red);font-size:12.5px;margin:4px 0}
@media(max-width:600px){.ev-filtros input,.ev-filtros select{max-width:none}.ev-tabla th:nth-child(3),.ev-tabla td:nth-child(3){display:none}}
.ev-prog{margin-bottom:12px}.ev-cuenta-reg{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:12px 14px;border-radius:12px;background:linear-gradient(120deg,color-mix(in srgb,var(--accent2) 16%,transparent),transparent);margin-bottom:10px}
.ev-cuenta-reg b{font-size:24px;font-variant-numeric:tabular-nums}.ev-cuenta-reg span{font-size:13px;color:var(--t2);text-transform:none}.ev-cuenta-reg.pasado b{color:var(--t2)}
.ev-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:10px;margin:8px 0 14px}.ev-form>label{display:flex;flex-direction:column;gap:4px;font-size:11.5px;color:var(--t2);min-width:0}
.ev-form input:not([type=checkbox]),.ev-form select{min-height:38px;padding:6px 10px;border-radius:10px;border:1px solid var(--c4);background:var(--c2);color:var(--t1);font-size:13px;width:100%;box-sizing:border-box;color-scheme:dark}
.ev-form-ancho{grid-column:1/-1}.ev-checks{display:flex;gap:16px;flex-wrap:wrap}.ev-check{display:inline-flex!important;flex-direction:row!important;align-items:center;gap:8px;font-size:13px!important;color:var(--t1)!important;min-height:38px;cursor:pointer}.ev-check input{width:18px;height:18px;accent-color:var(--accent2)}
.ev-pasos{display:flex;flex-direction:column;gap:8px}.ev-paso{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;border:1px solid var(--c4);background:var(--c2)}
.ev-paso>i{font-size:20px;width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:color-mix(in srgb,var(--t2) 14%,transparent);color:var(--t2)}
.ev-paso>div{flex:1;min-width:0}.ev-paso b{display:block;font-size:13px}.ev-paso small{display:block;font-size:11.5px;color:var(--t2);line-height:1.4}
.ev-paso.ok>i{background:color-mix(in srgb,var(--green) 18%,transparent);color:var(--green)}.ev-paso.prog>i,.ev-paso.act>i{background:color-mix(in srgb,var(--accent2) 18%,transparent);color:var(--accent2)}.ev-paso.manual>i{background:color-mix(in srgb,var(--amber) 18%,transparent);color:var(--amber)}.ev-paso.off{opacity:.6}

/* Comparar países */
.cmp-chips{display:flex;flex-wrap:wrap;gap:6px}.cmp-chip{min-height:34px;padding:5px 12px;border-radius:999px;border:1px solid var(--c4);background:var(--c2);color:var(--t2);font-size:12.5px;cursor:pointer;transition:all .15s}
.cmp-chip:hover{color:var(--t1);border-color:color-mix(in srgb,var(--accent2) 50%,var(--c4))}.cmp-chip.on{color:var(--t1);border-color:var(--c);background:color-mix(in srgb,var(--c) 16%,var(--c2));font-weight:600}
.cmp-lideres{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:10px;margin-bottom:12px}.cmp-lider{padding:14px;border-radius:14px;border:1px solid var(--c4);background:linear-gradient(160deg,color-mix(in srgb,var(--accent2) 8%,var(--c2)),var(--c2))}
.cmp-lider span{display:block;font-size:11.5px;color:var(--t2)}.cmp-lider b{display:block;font-size:19px;margin:4px 0 2px}.cmp-lider small{font-size:11px;color:var(--t2)}
.cmp-tabla td.cmp-mejor{color:var(--green);font-weight:700;background:color-mix(in srgb,var(--green) 9%,transparent)}
@media (pointer:coarse),(max-width:768px){.cmp-chip{min-height:38px}}
@media(max-width:600px){.cmp-chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:4px;mask-image:linear-gradient(90deg,#000 88%,transparent)}.cmp-chips::-webkit-scrollbar{display:none}.cmp-chip{flex:0 0 auto}}

/* Agregar activo por símbolo */
.aa-modal{max-width:620px;width:calc(100vw - 24px);max-height:86vh;overflow:auto}.aa-cab{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.aa-cab b{font-size:15px}.aa-cab small{display:block;color:var(--t2);font-size:12px;margin-top:2px}
.aa-form{display:flex;gap:8px;margin:14px 0;flex-wrap:wrap}.aa-form input{flex:1 1 220px;min-height:40px;padding:8px 12px;border-radius:10px;border:1px solid var(--c4);background:var(--c2);color:var(--t1);font-size:14px;text-transform:uppercase}
.aa-sub{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--t2);margin:12px 0 6px}
.aa-chips{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:6px}.aa-chip{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:8px 10px;min-height:44px;border-radius:10px;border:1px solid var(--c4);background:var(--c2);color:var(--t1);cursor:pointer;text-align:left;transition:border-color .15s,transform .15s}
.aa-chip:hover{border-color:var(--accent2);transform:translateY(-1px)}.aa-chip b{font-size:12.5px}.aa-chip span{font-size:12px}.aa-chip small{font-size:10.5px;color:var(--t2)}
.aa-fila{display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--c4)}.aa-abrir{all:unset;cursor:pointer;flex:1;padding:8px 0;font-size:13px;min-height:38px}.aa-abrir small{display:block;color:var(--t2);font-size:11px}
.aa-sugerir{border-top:1px dashed var(--c4);color:var(--accent2)}
.aa-form input::placeholder{text-transform:none}

/* Noticias en español */
.nes-controles{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}.nes-temas{margin:0}
.nes-busca{display:flex;align-items:center;gap:8px;padding:0 12px;border:1px solid var(--c4);border-radius:var(--r2);background:var(--c2);min-height:42px}.nes-busca i{color:var(--t2)}.nes-busca input{flex:1;border:0;background:none;color:var(--t1);font-size:13.5px;outline:none;min-width:0;min-height:40px}
.nes-barra{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;font-size:12.5px;color:var(--t2);margin-bottom:10px}.nes-barra b{color:var(--t1)}.nes-barra select{width:auto;flex:0 1 260px;min-height:36px;border-radius:10px;border:1px solid var(--c4);background:var(--c2);color:var(--t1);padding:4px 10px;max-width:100%}
.nes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:12px}
.nes-card{display:flex;flex-direction:column;border:1px solid var(--c4);border-radius:14px;background:var(--c2);overflow:hidden;transition:border-color .15s,transform .15s;min-width:0}.nes-card:hover{border-color:color-mix(in srgb,var(--accent2) 45%,var(--c4));transform:translateY(-2px)}
.nes-img{display:block;aspect-ratio:16/9;background:var(--c3);overflow:hidden}.nes-img img{width:100%;height:100%;object-fit:cover;display:block}
.nes-txt{padding:12px 14px;display:flex;flex-direction:column;gap:6px;flex:1}.nes-meta{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:var(--t2)}.nes-fuente{font-weight:700;color:var(--accent2);text-transform:uppercase;letter-spacing:.04em;font-size:10.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nes-tit{color:var(--t1);font-weight:700;font-size:14px;line-height:1.35;text-decoration:none}.nes-tit:hover{color:var(--accent2)}.nes-txt p{margin:0;font-size:12.5px;line-height:1.5;color:var(--t2);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.nes-act{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto;padding-top:4px}.nes-act button{display:inline-flex;align-items:center;gap:4px;min-height:30px;padding:3px 10px;border-radius:999px;border:1px solid color-mix(in srgb,var(--accent2) 40%,var(--c4));background:color-mix(in srgb,var(--accent2) 10%,transparent);color:var(--accent2);font-size:11.5px;font-weight:600;cursor:pointer}
.nes-card.grande{flex-direction:row;margin-bottom:12px}.nes-card.grande .nes-img{flex:0 0 46%;aspect-ratio:auto;min-height:220px}.nes-card.grande .nes-tit{font-size:19px}.nes-card.grande .nes-txt{padding:18px 20px}.nes-card.grande p{-webkit-line-clamp:4;font-size:13.5px}
@media(max-width:700px){.nes-card.grande{flex-direction:column}.nes-card.grande .nes-img{aspect-ratio:16/9;min-height:0}.nes-card.grande .nes-tit{font-size:16px}}
.nes-esqueleto{min-height:200px;gap:10px;padding:14px}.nes-esqueleto div{border-radius:8px;background:linear-gradient(90deg,var(--c3),var(--c4),var(--c3));background-size:200% 100%;animation:nesCarga 1.2s infinite}.nes-esqueleto div:nth-child(1){height:90px}.nes-esqueleto div:nth-child(2){height:14px;width:80%}.nes-esqueleto div:nth-child(3){height:14px;width:55%}
@keyframes nesCarga{to{background-position:-200% 0}}
@media (pointer:coarse),(max-width:768px){.nes-act button{min-height:38px}}

/* Biblioteca de referencia */
.bib-intro{font-size:13px;line-height:1.6;color:var(--t2);margin:0 0 14px}.bib-grupo{margin-bottom:18px}.bib-grupo h3{font-family:var(--font-head);font-size:14px;display:flex;align-items:center;gap:8px;margin:0 0 10px;color:var(--t1)}
.bib-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:10px}
.bib-doc{display:flex;flex-direction:column;gap:5px;padding:14px;border-radius:12px;border:1px solid var(--c4);background:var(--c2);color:var(--t1);text-decoration:none;transition:border-color .15s,transform .15s;min-width:0}
.bib-doc:hover{border-color:var(--accent2,#00c4ff);transform:translateY(-2px)}.bib-doc b{font-size:13.5px;line-height:1.35}.bib-desc{font-size:12px;color:var(--t2);line-height:1.5}
.bib-tipo{align-self:flex-start;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:2px 8px;border-radius:999px;background:rgba(0,196,255,.12);color:#00c4ff}
.bib-uso{font-size:11px;color:var(--green)}.bib-dom{margin-top:auto;font-size:11px;color:var(--t3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* ══ Base tipográfica única: Inter en títulos y texto (igual que Analytics) ══ */
:root{--font-head:"Inter",sans-serif;}
.page-title,.card-title,h1,h2,h3{letter-spacing:-.01em;}

/* Medias móviles y guía del gráfico */
.mm-config{display:flex;flex-direction:column;gap:6px;padding:4px 6px 8px;border-bottom:1px solid var(--c4);margin-bottom:4px}
.mm-fila{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--t2)}.mm-seg{display:flex;flex-wrap:wrap;gap:4px}
.mm-seg button{min-height:28px;padding:3px 9px;border-radius:999px;border:1px solid var(--c4);background:var(--c2);color:var(--t2);font-size:11.5px;font-family:var(--font-body);cursor:pointer}
.mm-seg button.on{color:var(--t1);border-color:var(--mm,var(--accent2));background:color-mix(in srgb,var(--mm,var(--accent2)) 16%,var(--c2));font-weight:600}
.mm-check{flex-direction:row!important;align-items:center;gap:6px;cursor:pointer;font-size:11.5px;color:var(--t1)}.mm-check input{accent-color:var(--accent2);width:16px;height:16px}
.mm-lectura{display:flex;gap:8px;align-items:flex-start;font-size:12.5px;line-height:1.55;color:var(--t1);padding:10px 12px;margin-top:8px;border-radius:var(--r);background:color-mix(in srgb,var(--accent2) 6%,var(--c2));border-left:3px solid var(--accent2)}.mm-lectura i{color:var(--accent2);margin-top:2px}
.mkt-guia-btn{display:inline-flex;align-items:center;gap:4px;padding:0 10px;min-height:30px;cursor:pointer;color:var(--t2);font-size:12px}
.gg-modal{max-width:620px;width:calc(100vw - 24px);max-height:86vh;overflow:auto}.gg-lista{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.gg-item{display:flex;gap:12px;align-items:flex-start}.gg-item>i{font-size:18px;color:var(--accent2);width:34px;height:34px;border-radius:10px;background:color-mix(in srgb,var(--accent2) 12%,transparent);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.gg-item b{font-size:13px}.gg-item p{margin:2px 0 0;font-size:12.5px;line-height:1.5;color:var(--t2)}.gg-pie{margin-top:14px;display:flex;justify-content:flex-end}
@media (pointer:coarse),(max-width:768px){.mm-seg button{min-height:38px}.mkt-guia-btn{min-height:38px}}

.mkt-chart-ctrl{flex-wrap:wrap;row-gap:6px}
@media(max-width:1280px){.mkt-guia-btn .mkt-txt{display:none}.mkt-guia-btn{padding:0 8px}}
.mkt-chart-ctrl>.mkt-chart-toggle,.mkt-chart-ctrl>.mkt-ind{flex-shrink:0}
.mkt-chart-ctrl .mkt-chart-toggle{min-width:max-content}
.mkt-chart-toggle[role=group]{overflow:hidden}

/* Cartera frente al ciclo económico */
.ct-r-cab{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.ct-r-vistas{display:flex;background:var(--c2);border:1px solid var(--c4);border-radius:10px;padding:3px;gap:2px}
.ct-r-vistas button{background:none;border:0;color:var(--t2);font:500 12px var(--font-body);padding:6px 10px;border-radius:7px;cursor:pointer;display:flex;align-items:center;gap:5px;white-space:nowrap}
.ct-r-vistas button.on{background:var(--c4);color:var(--t1)}
.ct-c-rejilla{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:14px;align-items:start}
.ct-c-mapa{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:0 0 18px 18px}
.ct-c-eje{position:absolute;font-size:10.5px;color:var(--t2)}
.ct-c-eje.y{left:0;top:50%;transform:translate(-40%,-50%) rotate(-90deg);white-space:nowrap}
.ct-c-eje.x{bottom:0;right:0}
.ct-c-cuad{border:1px solid var(--c4);border-left:3px solid var(--c);border-radius:10px;padding:10px;background:var(--c2);display:flex;flex-direction:column;gap:4px;min-height:74px;cursor:help;transition:border-color .2s}
.ct-c-cuad span{font-size:12px;color:var(--t2)}
.ct-c-cuad b{font-size:17px}
.ct-c-cuad.actual{border-color:var(--c);box-shadow:0 0 0 1px var(--c) inset}
.ct-c-hoy{font-style:normal;font-size:10.5px;color:var(--c);font-weight:600}
.ct-c-kpis{grid-template-columns:1fr 1fr!important;margin-bottom:8px}
.ct-c-tabla-wrap{overflow-x:auto;margin-top:10px}
.ct-c-tabla{width:100%;border-collapse:collapse;font-size:12px}
.ct-c-tabla th{font-weight:500;color:var(--t2);text-align:right;padding:6px 8px;border-bottom:1px solid var(--c4);white-space:nowrap}
.ct-c-tabla th:first-child,.ct-c-tabla td:first-child{text-align:left}
.ct-c-tabla td{padding:6px 8px;text-align:right;border-bottom:1px solid rgba(255,255,255,.04);white-space:nowrap}
.ct-c-celda{border-radius:4px}
.ct-c-total td{font-weight:600;border-top:1px solid var(--c4)}
@media(max-width:760px){.ct-c-rejilla{grid-template-columns:1fr}.ct-r-vistas{width:100%}.ct-r-vistas button{flex:1;justify-content:center}}
.ct-r-nota a{color:var(--accent2);text-decoration:none;font-weight:500}

/* Plan de inversión real */
#page-plan .card{margin-bottom:14px}
.pl-campos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.pl-campo{display:flex;flex-direction:column;gap:4px;min-width:0}
.pl-campo span{font-size:12px;color:var(--t2)}
.pl-campo input,.pl-campo select{background:var(--c2);border:1px solid var(--c4);border-radius:8px;color:var(--t1);padding:8px 10px;font:500 13.5px var(--font-body);width:100%;min-width:0}
.pl-campo input{font-family:var(--font-mono)}
.pl-campo em{font-style:normal;font-size:10.5px;color:var(--t3,#5a6a8a)}
.pl-campo:last-child{grid-column:span 1}
.pl-cheq{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.pl-ch{display:flex;gap:10px;padding:10px 12px;border:1px solid var(--c4);border-left:3px solid var(--k);border-radius:10px;background:var(--c2)}
.pl-ch.g{--k:#00d084}.pl-ch.a{--k:#ffb400}.pl-ch.r{--k:#ff4757}
.pl-ch>i{color:var(--k);font-size:18px;margin-top:1px}
.pl-ch b{font-size:13px}.pl-ch p{margin:3px 0 0;font-size:12px;color:var(--t2);line-height:1.45}
.pl-veredicto{margin-top:12px}
.pl-sub{font-weight:400;color:var(--t2);font-size:12px}
.pl-barra{display:flex;height:14px;border-radius:7px;overflow:hidden;gap:2px;margin:4px 0 12px}
.pl-barra i{display:block;height:100%}
.pl-mezcla{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 16px;margin-bottom:12px}
.pl-mezcla div{display:flex;align-items:center;gap:8px;font-size:12.5px;min-width:0}
.pl-mezcla i{width:10px;height:10px;border-radius:3px;flex:none}
.pl-mezcla span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pl-opc td{vertical-align:top}
.pl-opc td small{display:block;color:var(--t2);font-size:11px;white-space:normal;max-width:300px;margin-top:2px}
.pl-opc td:not(:first-child){font-size:12px}
.pl-opc tr.pl-no{opacity:.45}
@media(max-width:900px){.pl-campos{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.pl-cheq,.pl-mezcla{grid-template-columns:1fr}.pl-opc td small{min-width:180px}}

/* Seguimiento del plan */
.pl-seguir{display:flex;align-items:center;justify-content:space-between;gap:14px;border-color:rgba(0,196,255,.3)!important}
.pl-seguir b{font-size:14px;display:flex;gap:6px;align-items:center}.pl-seguir p{margin:4px 0 0;font-size:12.5px;color:var(--t2);line-height:1.5}
.pl-seguir .btn{flex:none}
.pl-mis-lista{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px}
.pl-mis-item{display:grid;grid-template-columns:1fr auto;gap:2px 8px;text-align:left;background:var(--c2);border:1px solid var(--c4);border-radius:10px;padding:10px 12px;color:var(--t1);cursor:pointer;font-family:var(--font-body)}
.pl-mis-item:hover{border-color:var(--accent2)}
.pl-mis-item b{font-size:13px}.pl-mis-item span{grid-column:1;font-size:11.5px;color:var(--t2)}.pl-mis-item>i{grid-row:1/3;grid-column:2;align-self:center;color:var(--t2)}
.pl-volver{margin-bottom:10px}
.pl-compartir{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--t2);cursor:pointer}
.pl-seg-rejilla{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);gap:14px;align-items:start}
.pl-pasos{display:flex;flex-direction:column;gap:6px}
.pl-paso{display:flex;align-items:flex-start;gap:9px;padding:9px 10px;border:1px solid var(--c4);border-radius:9px;background:var(--c2);font-size:12.5px;line-height:1.45;cursor:pointer}
.pl-paso input{margin-top:2px;accent-color:#00d084}.pl-paso>i{color:var(--accent2);margin-top:1px}
.pl-paso.hecho{opacity:.6}.pl-paso.hecho span{text-decoration:line-through}
.pl-registro{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;align-items:end;margin:12px 0 4px}
.pl-registro .pl-nota{grid-column:1/3}
.pl-nota-td{white-space:normal!important;max-width:220px;font-size:11.5px;color:var(--t2);text-align:left!important}
.pl-com{padding:9px 0;border-bottom:1px solid var(--c4)}.pl-com b{font-size:12.5px}.pl-com span{font-size:11px;color:var(--t2);margin-left:8px}.pl-com p{margin:4px 0 0;font-size:12.5px;line-height:1.5}
.pc-badge{font-size:11px;padding:2px 8px;border-radius:20px;background:var(--c4);color:var(--t2)}
.pc-badge.bajo{background:rgba(255,71,87,.15);color:#ff6b78}.pc-badge.dentro{background:rgba(0,196,255,.12);color:#00c4ff}.pc-badge.alto{background:rgba(0,208,132,.15);color:#00d084}
#page-planes-clase .card{margin-bottom:14px}
@media(max-width:900px){.pl-seg-rejilla{grid-template-columns:1fr}}
@media(max-width:600px){.pl-seguir{flex-direction:column;align-items:stretch}.pl-registro{grid-template-columns:1fr 1fr}.pl-registro .pl-nota{grid-column:1/-1}.pl-registro button{grid-column:1/-1}}

/* Plan con IA y estrategias */
.pl-ia .ed,.pl-ia textarea{margin-bottom:8px}
.pl-ia-pie{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12.5px;color:var(--t2);line-height:1.45}
.pl-ia-pie .btn{flex:none}
.pl-tag{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:500;color:var(--accent2);background:rgba(0,196,255,.1);border-radius:20px;padding:2px 4px 2px 9px;margin-left:6px}
.pl-tag button{background:var(--c4);border:0;color:var(--t1);border-radius:20px;font:500 10.5px var(--font-body);padding:2px 8px;cursor:pointer}
.pl-estr{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.pl-estr-col{border:1px solid var(--c4);border-radius:12px;padding:12px;background:var(--c2);display:flex;flex-direction:column;gap:8px}
.pl-estr-col.actual{border-color:var(--accent2);box-shadow:0 0 0 1px var(--accent2) inset}
.pl-estr-cab{display:flex;align-items:center;gap:7px;font-size:13.5px}.pl-estr-cab i{color:var(--accent2)}
.pl-estr-cab span{margin-left:auto;font-size:10.5px;color:var(--accent2);font-weight:600}
.pl-barra.mini{height:8px;margin:0}
.pl-estr dl{display:grid;grid-template-columns:1fr auto;gap:5px 8px;margin:0;font-size:12px}.pl-estr dt{color:var(--t2)}.pl-estr dd{margin:0;text-align:right}
.pl-estr-acc{display:flex;gap:6px;margin-top:auto}.pl-estr-acc .btn:first-child{flex:1}
.pl-renombrar{background:none;border:0;color:var(--t2);cursor:pointer;padding:2px 4px;font-size:14px}.pl-renombrar:hover{color:var(--accent2)}
.pl-punto{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:7px}
@media(max-width:600px){.pl-ia-pie{flex-direction:column;align-items:stretch}.pl-estr{grid-template-columns:1fr 1fr}}
@media(max-width:400px){.pl-estr{grid-template-columns:1fr}}
#page-plan .card-title{flex-wrap:wrap;row-gap:4px}

/* Tu decisión de este mes */
.pl-dec-rejilla{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:16px;align-items:start}
.pl-dec-cab{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:8px}.pl-dec-cab .pl-campo{max-width:200px}
.pl-dec-t input{width:100%;min-width:80px;max-width:120px;background:var(--c2);border:1px solid var(--c4);border-radius:7px;color:var(--t1);padding:5px 7px;font:12.5px var(--font-mono);text-align:right}
.pl-dec-alerta{display:flex;gap:8px;font-size:12.5px;line-height:1.5;color:var(--t1);background:rgba(255,180,0,.08);border:1px solid rgba(255,180,0,.3);border-radius:9px;padding:9px 11px}.pl-dec-alerta i{color:#ffb400;margin-top:2px}
.pl-dec-mkt{border:1px solid var(--c4);border-radius:12px;padding:12px;background:var(--c2)}
.pl-dec-sub{font-size:12px;font-weight:600;color:var(--t2);text-transform:uppercase;letter-spacing:.04em;display:flex;gap:6px;align-items:center;margin-bottom:8px}
.pl-dec-dd{display:flex;align-items:baseline;gap:8px;margin-bottom:8px}.pl-dec-dd b{font-size:22px}.pl-dec-dd span{font-size:11.5px;color:var(--t2)}
.pl-dec-hist td:first-child{white-space:normal!important;font-size:11.5px}.pl-dec-hist tr.hoy td{background:rgba(0,196,255,.08)}.pl-dec-hist em{font-style:normal;color:var(--accent2);font-weight:600;font-size:10.5px}
.pl-dec .btn-primary{margin-top:6px}
@media(max-width:900px){.pl-dec-rejilla{grid-template-columns:1fr}}
.pl-dec-rejilla>*{min-width:0}.pl-dec-hist td,.pl-dec-hist th{padding:5px 6px}.pl-dec-t input{min-width:64px}

/* Guía del nuevo inversor */
.ini-inv{border-color:color-mix(in srgb,var(--accent2) 35%,var(--c4))!important}
.ini-inv-paso{display:flex;align-items:center;justify-content:space-between;gap:14px}
.ini-inv-et{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent2)}
.ini-inv-paso b{display:block;font-size:16px;margin:3px 0}.ini-inv-paso p{margin:0;font-size:12.5px;color:var(--t2);line-height:1.5}.ini-inv-paso .btn{flex:none}
.ini-inv-reglas,.mp-nuevo-l{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0}
.ini-inv-reglas>div,.mp-nuevo-l>div{display:flex;gap:9px;padding:10px;border:1px solid var(--c4);border-radius:10px;background:var(--c2);font-size:12px;color:var(--t2);line-height:1.45}
.ini-inv-reglas i,.mp-nuevo-l i{color:var(--accent2);font-size:17px;flex:none}
.ini-inv-reglas b,.mp-nuevo-l span>b:first-child{display:block;color:var(--t1);font-size:12.5px;margin-bottom:2px}
.ini-inv-pie{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;color:var(--t2);flex-wrap:wrap}
.ini-inv-pie small{color:var(--t2);font-weight:400}
.rm-nuevo{border:1px solid var(--c4);border-radius:10px;background:var(--c2);padding:9px 12px;margin:10px 0;font-size:12.5px}
.rm-nuevo summary{cursor:pointer;color:var(--accent2);font-weight:600;list-style:none;display:flex;gap:6px;align-items:center}.rm-nuevo summary::-webkit-details-marker{display:none}
.rm-nuevo p{margin:8px 0 6px;color:var(--t1);line-height:1.5}.rm-nuevo ul{margin:0;padding-left:18px;color:var(--t2);line-height:1.55}
.mp-nuevo{border-color:color-mix(in srgb,var(--accent2) 30%,var(--c4))!important}
.rs-modal{max-width:520px;width:100%}
.rs-cab{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}.rs-prog{font-size:12px;color:var(--t2)}
.rs-preg{font-size:13px;color:var(--t2);margin:0 0 10px}
.rs-tit{border:1px solid var(--c4);border-radius:10px;padding:12px;background:var(--c2)}.rs-tit span{display:block;font-size:11px;color:var(--accent2);font-weight:600;margin-bottom:4px}.rs-tit b{font-size:14.5px;line-height:1.4}
.rs-op{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.rs-op .btn{justify-content:center;min-height:42px}
.rs-fb{font-size:12.5px;line-height:1.5;padding:10px 12px;border-radius:9px;border:1px solid}.rs-fb.g{border-color:rgba(0,208,132,.35);background:rgba(0,208,132,.07)}.rs-fb.r{border-color:rgba(255,180,0,.35);background:rgba(255,180,0,.07)}
.rs-datos{border:1px solid var(--c4);border-radius:10px;padding:12px;background:var(--c2);font-size:12.5px}.rs-datos ol{margin:8px 0 0;padding-left:18px;color:var(--t2);line-height:1.6}
.rs-pie{display:flex;justify-content:flex-end;margin-top:12px}
@media(max-width:760px){.ini-inv-paso{flex-direction:column;align-items:stretch}.ini-inv-reglas,.mp-nuevo-l{grid-template-columns:1fr}}

/* Radar de noticias */
.rd-segs{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
.rd-seg{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 4px 0 10px;border:1px solid var(--c4);border-radius:20px;background:var(--c2);font-size:12.5px}
.rd-seg>i{color:var(--accent2)}.rd-seg button{border:0;background:none;color:var(--t2);cursor:pointer;width:24px;height:24px;border-radius:50%}.rd-seg button:hover{background:var(--c4);color:var(--t1)}
.rd-form{display:flex;gap:6px;flex-wrap:wrap}.rd-form select,.rd-form input{background:var(--c2);border:1px solid var(--c4);border-radius:8px;color:var(--t1);padding:7px 9px;font:13px var(--font-body)}.rd-form input{flex:1;min-width:160px}
.rd-sug{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:8px;font-size:12px;color:var(--t2)}.rd-sug button{border:1px dashed var(--c4);background:none;color:var(--accent2);border-radius:20px;padding:3px 10px;font:12px var(--font-body);cursor:pointer}
.rd-urgente{border-color:rgba(255,71,87,.45)!important;background:linear-gradient(0deg,rgba(255,71,87,.05),rgba(255,71,87,.05)),var(--c1)}.rd-urgente .card-title i{color:#ff4757}
.rd-calma{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--t2);margin:4px 0 12px}.rd-calma i{color:#00d084}
.rd-filtros{margin-top:4px}.rd-filtros small{color:var(--t2);margin-left:2px}
.rd-grupos{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,360px),1fr));gap:12px}
.rd-gcab{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}.rd-gcab b{font-size:14px;display:flex;gap:6px;align-items:center}.rd-gcab b i{color:var(--accent2)}
.rd-item{border-top:1px solid var(--c4);padding:10px 0}.rd-item:first-of-type{border-top:0}
.rd-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:11px;color:var(--t2);margin-bottom:4px}
.rd-tag{font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:20px;background:var(--c4);color:var(--t2)}
.rd-tag.estructural{background:rgba(255,71,87,.15);color:#ff6b78}.rd-tag.resultados{background:rgba(0,196,255,.13);color:#00c4ff}.rd-tag.macro{background:rgba(255,180,0,.14);color:#ffb400}
.rd-dir{display:inline-flex;gap:3px;align-items:center;font-weight:600}
.rd-tit{display:block;color:var(--t1);font-weight:600;font-size:13.5px;line-height:1.4;text-decoration:none}.rd-tit:hover{color:var(--accent2)}
.rd-guia{display:flex;gap:6px;margin:6px 0;font-size:12px;color:var(--t2);line-height:1.45}.rd-guia i{color:#ffb400;margin-top:2px}
@media(max-width:420px){.mkt-guia-btn .mkt-txt{display:none}}
@media(max-width:420px){.mkt-chart-ctrl{flex-wrap:wrap!important;row-gap:6px}}
.ini-radar{color:#ff6b78!important;border-color:rgba(255,71,87,.4)!important}
.an-nota-aviso{display:flex;gap:8px;font-size:12px;line-height:1.5;color:var(--t2);border:1px solid rgba(255,71,87,.35);background:rgba(255,71,87,.06);border-radius:9px;padding:8px 10px;margin-bottom:8px}.an-nota-aviso i{color:#ff4757;margin-top:2px}.an-nota-aviso a{color:var(--accent2)}.an-nota-t .rd-tag{font-size:10px;margin-right:2px}

/* Salud financiera e Invertir en acciones */
#page-salud .card,#page-acciones .card{margin-bottom:14px}
.sp-rejilla{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:14px;align-items:start}
.sp-puntaje{display:flex;gap:16px;align-items:center}
.sp-anillo{--c:#00c4ff;flex:none;width:112px;height:112px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(closest-side,var(--c1) 78%,transparent 79%),conic-gradient(var(--c) calc(var(--p)*1%),var(--c4) 0)}
.sp-anillo.g{--c:#00d084}.sp-anillo.a{--c:#ffb400}.sp-anillo.r{--c:#ff4757}.sp-anillo b{font-size:30px;line-height:1}.sp-anillo span{font-size:11px;color:var(--t2)}
.sp-puntaje p{font-size:12.5px;color:var(--t2);line-height:1.5;margin:6px 0 8px}
.sp-acc{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.sp-crit td{white-space:normal!important}.sp-crit td small{display:block;color:var(--t2);font-size:11px;font-weight:400}
.sp-presu{display:grid;gap:12px}.sp-presu-cab{display:flex;align-items:baseline;gap:8px;font-size:12.5px;margin-bottom:5px}.sp-presu-cab span{flex:1}.sp-presu-cab em{font-style:normal;font-size:11px;color:var(--t2)}
.sp-barra{position:relative;height:9px;border-radius:5px;background:var(--c4)}.sp-barra i{display:block;height:100%;border-radius:5px}.sp-barra i.g{background:#00d084}.sp-barra i.r{background:#ff4757}.sp-barra u{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--t1);opacity:.6}
.ia-alerta{display:flex;gap:10px;align-items:flex-start;font-size:13px;line-height:1.5}.ia-alerta.r{border-color:rgba(255,71,87,.45)!important}.ia-alerta.a{border-color:rgba(255,180,0,.45)!important}.ia-alerta i{font-size:18px;color:#ffb400}.ia-alerta a{color:var(--accent2)}
.ia-campos{grid-template-columns:repeat(3,minmax(0,1fr))!important;margin-bottom:12px}
.ia-tabla td small{display:block;color:var(--t2);font-size:11px;font-weight:400;white-space:normal}.ia-mot{white-space:normal!important;font-size:12px;color:var(--t2);max-width:220px;text-align:left!important}
.ia-donde{display:grid;grid-template-columns:1fr 1fr;gap:10px}.ia-donde>div{border:1px solid var(--c4);border-radius:10px;padding:12px;background:var(--c2)}.ia-donde b{display:flex;gap:6px;align-items:center;font-size:13.5px}.ia-donde b i{color:var(--accent2)}.ia-donde p{margin:6px 0 0;font-size:12.5px;color:var(--t2);line-height:1.5}
.ia-pasos{margin:12px 0 0;padding-left:20px;font-size:12.5px;color:var(--t2);line-height:1.7}.ia-pasos a{color:var(--accent2)}
@media(max-width:900px){.sp-rejilla{grid-template-columns:1fr}}
@media(max-width:600px){.ia-campos{grid-template-columns:1fr!important}.ia-donde{grid-template-columns:1fr}.sp-puntaje{flex-direction:column;align-items:flex-start}}
.ini-inv-atajos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px}
.ini-inv-atajos button{display:flex;gap:9px;align-items:center;text-align:left;padding:10px;border:1px solid var(--c4);border-radius:10px;background:var(--c2);color:var(--t2);font:12px var(--font-body);cursor:pointer;min-width:0}
.ini-inv-atajos button:hover{border-color:var(--accent2)}.ini-inv-atajos i{font-size:20px;color:var(--accent2);flex:none}.ini-inv-atajos b{display:block;color:var(--t1);font-size:12.5px}.ini-inv-atajos span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:900px){.ini-inv-atajos{grid-template-columns:1fr 1fr}}
.ini-inv-atajos b{white-space:normal}
.ia-ctx-l{margin:10px 0 0;padding-left:18px;font-size:12.5px;color:var(--t2);line-height:1.6}.ia-ctx-l b{color:var(--t1)}
.ia-cambios{margin-top:10px;border:1px solid var(--c4);border-radius:10px;padding:10px 12px;background:var(--c2);font-size:12.5px}.ia-cambios ul{margin:6px 0 0;padding-left:18px;color:var(--t2);line-height:1.6}.ia-cambios p{margin:4px 0 0;color:var(--t2)}

/* Analytics integrado */
#page-analytics{padding:0!important;max-width:100%!important}
#analytics-marco iframe{display:block;width:100%;height:80vh;border:0}
.rd-btns{display:flex;gap:6px;flex-wrap:wrap}

/* Planes, cursos, Mi plan y clientes */
.pr-modal{max-width:980px;width:100%;max-height:92vh;overflow:auto}.pr-tit{display:flex;gap:7px;align-items:center;font-size:16px}.pr-tit i{color:#ffb400}
.pr-motivo{font-size:13px;color:var(--t1);background:rgba(255,180,0,.08);border:1px solid rgba(255,180,0,.3);border-radius:9px;padding:8px 11px;margin:0 0 12px}
.pr-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.pr-col{border:1px solid var(--c4);border-radius:14px;padding:16px;background:var(--c2);display:flex;flex-direction:column;gap:10px}
.pr-col.premium{border-color:color-mix(in srgb,var(--accent2) 55%,var(--c4));box-shadow:0 0 0 1px color-mix(in srgb,var(--accent2) 35%,transparent) inset}
.pr-col.actual{outline:2px solid #00d084;outline-offset:-2px}
.pr-cab{display:flex;justify-content:space-between;align-items:center}.pr-cab b{font-size:15px}.pr-cab span{font-size:10.5px;font-weight:700;color:#00d084;text-transform:uppercase;letter-spacing:.05em}.pr-cab .pr-rec{color:var(--accent2)}
.pr-precio b{font:700 26px var(--font-mono);display:block}.pr-precio small{font-size:11.5px;color:var(--t2)}
.pr-col ul{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-size:12.5px;flex:1}.pr-col li{display:flex;gap:6px;line-height:1.4}.pr-col li i{color:#00d084;margin-top:2px}.pr-col li.no{color:var(--t2);opacity:.6}.pr-col li.no i{color:var(--t2)}
.pr-pago{display:flex;flex-wrap:wrap;gap:12px;align-items:center;font-size:12px;color:var(--t2);margin:12px 0 0}.pr-pago span{display:inline-flex;gap:5px;align-items:center}.pr-pago span:first-child{font-weight:600}
.pr-form{display:grid;gap:10px}.pr-ok{text-align:center;padding:20px}.pr-ok i{font-size:40px;color:#00d084}.pr-ok b{display:block;font-size:16px;margin:6px 0}.pr-ok p{font-size:13px;color:var(--t2)}
.pr-banda{display:flex;justify-content:space-between;align-items:center;gap:12px;border-color:rgba(255,180,0,.4)!important}.pr-banda b{display:flex;gap:6px;align-items:center}.pr-banda b i{color:#ffb400}.pr-banda span{font-size:12.5px;color:var(--t2)}
#page-cursos .card,#page-mi-plan .card,#admin-clientes .card{margin-bottom:14px}
.cu-barra{height:7px;border-radius:4px;background:var(--c4);margin:10px 0 12px}.cu-barra i{display:block;height:100%;border-radius:4px;background:#00d084}
.cu-mods{display:grid;gap:8px}.cu-mod{border:1px solid var(--c4);border-radius:11px;background:var(--c2)}.cu-mod summary{display:flex;align-items:center;gap:10px;padding:11px 12px;cursor:pointer;list-style:none}.cu-mod summary::-webkit-details-marker{display:none}
.cu-n{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--c4);font:600 12px var(--font-mono);flex:none}.cu-mod.hecho .cu-n{background:#00d084;color:#04121d}.cu-mod summary b{flex:1;font-size:13.5px}.cu-mod[data-bloq]{opacity:.7}
.cu-cuerpo{padding:0 14px 14px 48px;font-size:13px;line-height:1.6;color:var(--t1)}.cu-cuerpo p{margin:0 0 8px}
.cu-practica{display:flex;gap:8px;align-items:center;border:1px dashed var(--c4);border-radius:9px;padding:9px 11px;margin:10px 0;font-size:12.5px;color:var(--t2)}.cu-practica>i{color:var(--accent2);font-size:18px}.cu-practica span{flex:1}
.kit-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px}.kit-item{display:flex;align-items:center;gap:10px;text-align:left;padding:12px;border:1px solid var(--c4);border-radius:11px;background:var(--c2);color:var(--t2);font:12px var(--font-body);cursor:pointer}
.kit-item>i:first-child{font-size:20px;color:var(--accent2)}.kit-item span{flex:1}.kit-item b{display:block;color:var(--t1);font-size:13px}.kit-item.bloq{opacity:.65}.kit-item:hover{border-color:var(--accent2)}
.mp-plan-cab{display:flex;justify-content:space-between;align-items:center;gap:12px}.mp-plan-cab b{display:block;font-size:22px;margin:2px 0}.mp-plan-cab p{margin:0;font-size:12.5px;color:var(--t2)}
.mp-plan.premium{border-color:color-mix(in srgb,var(--accent2) 45%,var(--c4))!important}.mp-plan.empresarial{border-color:rgba(0,208,132,.4)!important}
.mp-usos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}.mp-uso{display:grid;grid-template-columns:1fr auto;gap:4px 8px;font-size:12px;color:var(--t2)}.mp-uso .sp-barra{grid-column:1/-1;height:6px}
.ini-plan{color:#ffb400!important}
.cl-form{grid-template-columns:repeat(5,minmax(0,1fr)) auto!important}
#admin-clientes input,#admin-clientes select{background:var(--c2);border:1px solid var(--c4);border-radius:7px;color:var(--t1);padding:5px 7px;font:12px var(--font-body);max-width:150px}
.cl-rev{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) auto;gap:10px;align-items:center;border-top:1px solid var(--c4);padding:10px 0}.cl-rev small{display:block;color:var(--t2);font-size:11px;margin-top:2px}
.cl-rev textarea{width:100%;background:var(--c2);border:1px solid var(--c4);border-radius:8px;color:var(--t1);padding:6px 8px;font:12px var(--font-body);resize:vertical}.cl-rev.hecha{opacity:.75}
@media(max-width:900px){.pr-grid{grid-template-columns:1fr}.cl-form{grid-template-columns:1fr 1fr!important}.cl-rev{grid-template-columns:1fr}}
@media(max-width:600px){.mp-usos{grid-template-columns:1fr}.mp-plan-cab,.pr-banda{flex-direction:column;align-items:flex-start}.cu-cuerpo{padding-left:14px}}
.pr-grid.dos{grid-template-columns:repeat(2,minmax(0,1fr));max-width:700px;margin:0 auto}.pr-pasos{text-align:left;font-size:13px;line-height:1.6;color:var(--t1);padding-left:20px;margin:10px auto 0;max-width:420px}@media(max-width:900px){.pr-grid.dos{grid-template-columns:1fr}}
/* Glosario: términos buscados por Capital Lab */
.gl-ia-pie{margin-top:12px;}
.gl-ia-cargando{display:flex;align-items:center;gap:8px;padding:14px;border:1px dashed var(--c4);border-radius:10px;color:var(--t2);font-size:13px;}
.gl-ia-cargando .ti-loader-2{animation:spin 1s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}
.gl-card.gl-ia{border-color:var(--accent2,#4a9eff);max-width:720px;}
.gl-cat-ia{background:rgba(74,158,255,.12);color:var(--accent2,#4a9eff);display:inline-flex;gap:4px;align-items:center;}
.gl-ia-ej{font-size:12.5px;color:var(--t2);}
.gl-ia-rels{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0;}
.gl-ia-rel{background:var(--c2);border:1px solid var(--c4);color:var(--t1);border-radius:14px;padding:3px 10px;font-size:11.5px;cursor:pointer;}
.gl-ia-rel:hover{border-color:var(--accent2,#4a9eff);}
.gl-ia-nota{font-size:11px;color:var(--t3);margin-top:8px;}
/* ── Soporte, cuentas y accesos ── */
.cl-gira{animation:spin 1s linear infinite;display:inline-block;}
.cs-opciones{display:grid;gap:8px;margin:4px 0 12px;}
.cs-op{display:flex;align-items:center;gap:12px;text-align:left;background:var(--c2);border:1px solid var(--c4);border-radius:14px;padding:12px 14px;color:var(--t1);cursor:pointer;font:inherit;transition:border-color .15s,transform .15s,background .15s;}
.cs-op:hover{border-color:color-mix(in srgb,var(--accent2) 55%,var(--c4));background:color-mix(in srgb,var(--accent2) 5%,var(--c2));transform:translateY(-1px);}
.cs-op-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;} .cs-op-tx b{font-size:14px;} .cs-op-tx span{font-size:12.5px;color:var(--t2);line-height:1.4;}
.cs-flecha{color:var(--t3);font-size:18px;}
.cs-ico{flex:none;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-size:20px;color:var(--accent2);background:color-mix(in srgb,var(--accent2) 14%,transparent);}
.cs-ico.t{color:#ff8a65;background:rgba(255,138,101,.13);} .cs-ico.g{color:var(--green);background:rgba(30,142,90,.15);} .cs-ico.f{color:var(--gold,#e8b94a);background:rgba(232,185,74,.14);}
.cs-cab{display:flex;gap:12px;align-items:center;margin:0 34px 16px 0;} .cs-cab h2{font-size:17px;margin:0;line-height:1.25;} .cs-cab p{font-size:12.5px;color:var(--t3);margin:2px 0 0;}
.cl-modal{border-radius:18px;padding:22px 22px 20px;box-shadow:0 24px 60px rgba(0,0,0,.45);}
.cs-nota{font-size:12px;color:var(--t3);display:flex;gap:6px;align-items:center;margin:4px 0 0;}
.cs-req{font-weight:500;font-size:10.5px;color:var(--t3);background:var(--c3);border-radius:6px;padding:1px 6px;margin-left:4px;}
.cs-mas summary{cursor:pointer;font-size:12.5px;color:var(--accent2);list-style:none;display:flex;gap:6px;align-items:center;padding:4px 0;} .cs-mas summary::-webkit-details-marker{display:none;}
.cs-mas[open] summary .ti-plus{transform:rotate(45deg);} .cs-mas .pl-campo{margin-top:8px;}
.cs-msg{font-size:12.5px;} .cs-msg:empty{display:none;}
.cs-form .pl-campo input,.cs-form .pl-campo textarea,.cs-form .pl-campo select{border-radius:10px;padding:10px 12px;font-family:var(--font-body);}
.cs-form .pl-campo input:focus,.cs-form .pl-campo textarea:focus{outline:none;border-color:var(--accent2);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent2) 20%,transparent);}
.cs-form{display:grid;gap:10px;}
.cs-form textarea,.org-imp-txt{background:var(--c2);border:1px solid var(--c4);border-radius:8px;color:var(--t1);padding:8px 10px;font:500 13.5px var(--font-body);width:100%;resize:vertical;}
.cs-cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px;}
.cs-cat input{position:absolute;opacity:0;pointer-events:none;}
.cs-cat span{display:flex;align-items:center;gap:6px;padding:9px 10px;border:1px solid var(--c4);border-radius:10px;background:var(--c2);font-size:12.5px;cursor:pointer;color:var(--t2);}
.cs-cat input:checked + span{border-color:var(--accent2);color:var(--t1);background:rgba(74,158,255,.1);}
.cs-cat input:focus-visible + span{outline:2px solid var(--accent2);}
.cl-et{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px;background:var(--c3);color:var(--t2);white-space:nowrap;}
.cl-et.g{background:rgba(30,142,90,.15);color:var(--green);} .cl-et.r{background:rgba(255,71,87,.12);color:var(--red);} .cl-et.a{background:rgba(232,185,74,.14);color:var(--gold,#e8b94a);} .cl-et.ia{background:rgba(74,158,255,.14);color:var(--accent2);}
.cl-sub{display:block;font-size:11px;color:var(--t3);margin-top:2px;}
.cl-filtros{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px;}
.org-tabs{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--c4);margin:0 0 16px;scrollbar-width:none;}
.org-tabs::-webkit-scrollbar{display:none;}
.org-tabs button{display:flex;align-items:center;gap:6px;background:none;border:none;border-bottom:2px solid transparent;color:var(--t2);padding:9px 12px;font:600 13px var(--font-body);cursor:pointer;white-space:nowrap;}
.org-tabs button.activo{color:var(--t1);border-bottom-color:var(--accent2);}
[data-orgtab][hidden]{display:none!important;}
#org-accesos .card{margin-bottom:16px;}
.org-enlace{display:flex;gap:8px;margin:10px 0;} .org-enlace input{flex:1;min-width:0;background:var(--c2);border:1px solid var(--c4);border-radius:8px;color:var(--t1);padding:8px 10px;font:500 12.5px var(--font-mono);}
.org-form-conf{display:grid;gap:8px;font-size:13px;margin-top:8px;}
.org-form-conf fieldset{border:1px solid var(--c4);border-radius:8px;padding:8px 12px;display:flex;flex-wrap:wrap;gap:6px 16px;}
.org-form-conf legend{font-size:12px;color:var(--t3);padding:0 4px;}
.org-form-conf label{display:flex;align-items:center;gap:6px;}
.org-imp-acc{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0;}
.org-imp-res{font-size:12.5px;margin:12px 0 6px;color:var(--t2);} .org-imp-res .g{color:var(--green);} .org-imp-res .r{color:var(--red);}
.org-imp-tabla{max-height:340px;overflow:auto;}
.org-imp-tabla select{min-width:118px;background:var(--c2);border:1px solid var(--c4);color:var(--t1);border-radius:6px;padding:3px 6px;font-size:12px;}
.org-acc-bt{display:flex;gap:6px;flex-wrap:wrap;}

#org-accesos .ct-c-tabla td{vertical-align:middle;word-break:break-word;} #org-accesos .ct-c-tabla td:last-child{text-align:right;width:1%;white-space:nowrap;}
@media(max-width:480px){#org-accesos .org-acc-bt{flex-direction:column;}}
/* Revisión de legibilidad: los nombres completos se leen enteros (pasan a otra línea
   en vez de cortarse con puntos suspensivos) y ningún texto baja de 10 px. */
.pl-mezcla span{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.3;}
.ini-inv-atajos span{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;}
@media(max-width:768px){ .tz-corr-m span{font-size:10px;} .tz-corr-m span b{font-size:10.5px;} }
.btn small{font-size:10.5px;}
/* ── Navegación por temas de Mercados y economía ── */
.subnav.subnav-sec{display:block;overflow:visible;padding:0;background:none;border:0;margin:0 0 14px;}
.snl-lat{display:none;}
.snl-temas{display:flex;gap:4px;padding:3px;background:var(--c2);border:1px solid var(--c4);border-radius:var(--r2);}
.snl-temas button{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;min-height:36px;border:0;border-radius:var(--r);background:none;color:var(--t2);font:600 13px var(--font-body);cursor:pointer;white-space:nowrap;}
.snl-temas button.activo{background:color-mix(in srgb,var(--accent2) 16%,var(--c2));color:var(--t1);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent2) 45%,transparent);}
.snl-pags{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin-top:8px;}
.snl-pags::-webkit-scrollbar{display:none;}
.snl-pags .subnav-btn{border:1px solid var(--c4);border-radius:20px;min-height:32px;padding:5px 12px;font-size:12.5px;}
@media(min-width:1100px){
  .page.con-lateral.active{display:grid;grid-template-columns:208px minmax(0,1fr);column-gap:22px;align-items:start;max-width:1500px;}
  .page.con-lateral > *{grid-column:2;min-width:0;}
  .page.con-lateral > .subnav-sec{grid-column:1;grid-row:1 / span 80;position:sticky;top:8px;margin:0;}
  .snl-mini{display:none;}
  .snl-lat{display:flex;flex-direction:column;gap:14px;background:var(--c1);border:1px solid var(--c4);border-radius:14px;padding:12px 8px;}
  .snl-grupo{display:flex;flex-direction:column;gap:2px;}
  .snl-tit{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:var(--t3);padding:0 8px 4px;letter-spacing:.03em;}
  .snl-lat .subnav-btn{justify-content:flex-start;width:100%;min-height:34px;padding:6px 10px;white-space:normal;text-align:left;line-height:1.25;}
}
/* Bandeja de soporte del superadmin */
.tk-filtros{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:12px;}
.tk-filtros > div{display:flex;gap:6px;flex-wrap:wrap;}
.tk-n{font-size:10.5px;opacity:.75;margin-left:2px;}
.tk-card{border:1px solid var(--c4);border-left:3px solid var(--amber,#e8b94a);border-radius:12px;padding:12px 14px;margin-bottom:10px;background:var(--c1);}
.tk-card.ok{border-left-color:var(--green);opacity:.85;}
.tk-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px;}
.tk-tags .cl-et .ti{font-size:12px;vertical-align:-1px;}
@media(max-width:560px){ .sp-filtros .sp-sel{flex:1 1 calc(100% - 52px);min-width:0;} }
/* Noticias por país */
.nes-pais{background:var(--c1);border:1px solid var(--c4);border-radius:14px;padding:12px;margin-bottom:14px;}
.nes-pais form{display:flex;align-items:center;gap:8px;background:var(--c2);border:1px solid var(--c4);border-radius:10px;padding:0 12px;}
.nes-pais form:focus-within{border-color:var(--accent2);}
.nes-pais input{flex:1;min-width:0;background:none;border:0;color:var(--t1);padding:10px 0;font:500 14px var(--font-body);outline:none;}
.nes-pais-rap{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px;}
.nes-pais-rap button{border:1px solid var(--c4);background:var(--c2);color:var(--t2);border-radius:16px;padding:4px 11px;font:500 12px var(--font-body);cursor:pointer;}
.nes-pais-rap button.activo,.nes-pais-rap button:hover{border-color:var(--accent2);color:var(--t1);}
/* Estados de cuenta y flujo */
.fl-kpis{margin:6px 0 12px;}
.fl-rej{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:16px;margin:8px 0 6px;}
@media(max-width:820px){.fl-rej{grid-template-columns:1fr;}}
.fl-rej h4,.fl-h{font-size:13.5px;margin:10px 0 8px;display:flex;align-items:center;gap:6px;color:var(--t1);}
.fl-cat{display:grid;grid-template-columns:1fr auto;gap:3px 8px;font-size:12.5px;margin-bottom:9px;color:var(--t2);} .fl-cat .sp-barra{grid-column:1/-1;height:6px;}
.fl-cal{background:var(--c2);border:1px solid var(--c4);border-radius:10px;padding:8px 10px 4px;}
.fl-cal svg{width:100%;height:110px;display:block;} .fl-cal polyline{fill:none;stroke:var(--accent2);stroke-width:1.6;vector-effect:non-scaling-stroke;} .fl-cal .cero{stroke:var(--c5,#3a465f);stroke-dasharray:3 3;vector-effect:non-scaling-stroke;}
.fl-cal-ej{display:flex;justify-content:space-between;font-size:10.5px;color:var(--t3);}
.fl-rec{display:grid;gap:8px;}
.fl-rec label{display:grid;grid-template-columns:minmax(0,1fr) minmax(90px,180px) 42px;gap:10px;align-items:center;font-size:12.5px;color:var(--t2);}
.fl-rec label em{font-style:normal;color:var(--t3);font-size:11px;margin-left:4px;}
.fl-rec input{accent-color:var(--accent2);width:100%;}
.fl-lib{background:color-mix(in srgb,var(--green) 8%,var(--c2));border:1px solid color-mix(in srgb,var(--green) 30%,var(--c4));border-radius:10px;padding:10px 12px;font-size:13px;margin:10px 0;}
@media(max-width:480px){.fl-rec label{grid-template-columns:1fr 42px;} .fl-rec label input{grid-column:1/-1;grid-row:2;}}
/* Páginas compactas: tarjetas plegables e índice */
.card[data-plegable] > .cp-cab{cursor:pointer;position:relative;padding-right:26px;user-select:none;}
.card[data-plegable] > .cp-cab::after{content:"";position:absolute;right:4px;top:50%;width:7px;height:7px;border-right:2px solid var(--t3);border-bottom:2px solid var(--t3);transform:translateY(-70%) rotate(45deg);transition:transform .15s;}
.card.plegada > .cp-cab::after{transform:translateY(-50%) rotate(-45deg);}
.card.plegada > :not(.cp-cab){display:none!important;}
.card.plegada{padding-bottom:12px;}
.card.plegada > .cp-cab, .card.plegada > .cp-cab .card-title{margin-bottom:0!important;}
.pg-indice{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:0 0 12px;padding:2px 0;position:sticky;top:0;z-index:5;background:linear-gradient(var(--c0) 80%,transparent);}
.pg-indice::-webkit-scrollbar{display:none;}
.pg-indice button{flex:0 0 auto;border:1px solid var(--c4);background:var(--c1);color:var(--t2);border-radius:16px;padding:5px 11px;font:500 12px var(--font-body);cursor:pointer;white-space:nowrap;}
.pg-indice button:hover{border-color:var(--accent2);color:var(--t1);}
.pg-indice button .ti{font-size:14px;vertical-align:-2px;}
/* Glosario y guía más compactos: la descripción se abre al tocar la tarjeta */
.gl-card p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;cursor:pointer;}
.gl-card.abierta p,.gl-card.gl-ia p{-webkit-line-clamp:unset;display:block;}
.gl-rejilla{gap:10px!important;}
.guia-card p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.guia-card:hover p{-webkit-line-clamp:unset;display:block;}
.graf-lectura{display:flex;gap:7px;align-items:flex-start;font-size:12.5px;color:var(--t2);line-height:1.5;margin:8px 0 2px;padding:8px 10px;background:var(--c2);border-radius:8px;border-left:3px solid var(--gold,#e8b94a);}
.graf-lectura .ti{color:var(--gold,#e8b94a);font-size:15px;flex:none;margin-top:1px;}
.graf-lectura b.g{color:var(--green);} .graf-lectura b.r{color:var(--red);}
.guia-mas{border:1px dashed var(--c4);background:none;color:var(--accent2);border-radius:var(--r2);padding:12px;font:600 13px var(--font-body);cursor:pointer;min-height:60px;}
.guia-mas:hover{border-color:var(--accent2);}
.popover-ayuda-termino{font-size:12px;}
.popover-ayuda-termino p{margin:6px 0 0;color:var(--t2);}
.popover-ayuda-termino .pa-tit{font-size:12.5px;color:var(--t1);}
.popover-ayuda-termino .pa-valor{background:var(--c2);border-radius:6px;padding:6px 8px;color:var(--t1);}
.popover-ayuda-termino .pa-porque{font-size:11.5px;color:var(--t3);}
.icono-ayuda-termino{cursor:help;}
/* Organización con el formato nuevo */
#org-resumen.ct-r-kpis{margin-bottom:16px;}
.ct-r-kpi span .ti{color:var(--accent2);font-size:13px;vertical-align:-1px;}
.org-rol{background:var(--c2);border:1px solid var(--c4);color:var(--t1);border-radius:8px;padding:5px 8px;font:500 12.5px var(--font-body);}
.org-bitacora{max-height:340px;overflow-y:auto;display:grid;gap:2px;}
.org-bit{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;align-items:center;padding:8px 2px;border-bottom:1px solid var(--c4);font-size:12.5px;}
.org-bit small{grid-column:1/-1;color:var(--t3);font-size:11px;} .org-bit-d{color:var(--t2);min-width:0;overflow-wrap:anywhere;}
.org-miembros td:last-child{text-align:right;width:1%;white-space:nowrap;} .org-miembros td{vertical-align:middle;}
/* Laboratorio por pasos */
.lab-pasos{display:flex;gap:4px;padding:3px;background:var(--c2);border:1px solid var(--c4);border-radius:var(--r2);margin-bottom:14px;}
.lab-pasos button{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;min-height:40px;border:0;border-radius:var(--r);background:none;color:var(--t2);font:600 13px var(--font-body);cursor:pointer;white-space:nowrap;}
.lab-pasos button.activo{background:color-mix(in srgb,var(--accent2) 16%,var(--c2));color:var(--t1);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent2) 45%,transparent);}
.lab-pasos .lab-n{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:11px;background:var(--c3);}
.lab-pasos .activo .lab-n{background:var(--accent2);color:#fff;}
.lab-pasos em{font-style:normal;font-size:11px;background:var(--c3);border-radius:8px;padding:0 6px;}
.lab-grid-pasos{grid-template-columns:1fr!important;}
[data-labpaso][hidden]{display:none!important;}
.lab-sig{display:flex;justify-content:flex-end;margin-top:12px;}
@media(max-width:480px){.lab-pasos button{font-size:12px;gap:4px;} .lab-pasos button .ti{display:none;}}
@media(max-width:768px){ .mobile-bottom-nav{transition:transform .2s ease;} .mobile-bottom-nav.oculta{transform:translateY(110%);} }
.lab-tools{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px;}
@media(max-width:768px){ .mkt-chart-ctrl{flex-wrap:nowrap!important;overflow-x:auto;scrollbar-width:none;} .mkt-chart-ctrl::-webkit-scrollbar{display:none;} .mkt-chart-ctrl > *{flex:0 0 auto;} }
.mkt-lectura{margin-top:10px;}
.mm-lectura[hidden]{display:none!important;}
/* Mercado en celular: los botones del encabezado muestran su nombre bajo el ícono */
@media(max-width:900px){
  .market-toolbar .mt-acciones{overflow-x:auto;scrollbar-width:none;max-width:100%;order:9;flex:1 1 100%;grid-column:1/-1;}
  .market-toolbar .mt-acciones::-webkit-scrollbar{display:none;}
  .market-toolbar .mt-acciones .pbtn{flex-direction:column;gap:1px;height:auto!important;width:auto!important;min-width:44px;min-height:44px;padding:4px 8px!important;flex:0 0 auto;overflow:visible;}
  .market-toolbar .mt-acciones .pbtn .mt-btn-txt{display:block!important;font-size:10px;line-height:1.1;white-space:nowrap;}
}
@media(max-width:640px){ .mkt-chart-ctrl .mkt-txt{display:inline!important;font-size:11.5px;} }
/* Casos interactivos */
.caso-lista{display:grid;gap:8px;}
.caso-prog{display:flex;align-items:center;gap:10px;margin-bottom:14px;font-size:12px;color:var(--t3);}
.caso-barra{flex:1;height:6px;background:var(--c3);border-radius:3px;overflow:hidden;} .caso-barra i{display:block;height:100%;background:var(--accent2);transition:width .25s;}
.caso-intro{background:var(--c2);border:1px solid var(--c4);border-radius:12px;padding:12px 14px;margin-bottom:12px;} .caso-intro p{margin:6px 0 0;font-size:13px;color:var(--t2);line-height:1.55;}
.caso-p{font-size:15px;margin:4px 0 12px;line-height:1.4;}
.caso-ops{display:grid;gap:8px;}
.caso-op{text-align:left;background:var(--c2);border:1px solid var(--c4);border-radius:10px;padding:11px 14px;color:var(--t1);font:500 13.5px var(--font-body);cursor:pointer;}
.caso-op:hover:not(:disabled){border-color:var(--accent2);} .caso-op.ok{border-color:var(--green);background:rgba(30,142,90,.12);} .caso-op.mal{border-color:var(--red);background:rgba(255,71,87,.1);}
.caso-num{display:flex;gap:8px;flex-wrap:wrap;align-items:center;} .caso-num input{width:160px;background:var(--c2);border:1px solid var(--c4);border-radius:10px;color:var(--t1);padding:9px 12px;font:600 14px var(--font-mono);} .caso-num .hp-nota{flex:1 1 100%;}
.caso-esc label{display:grid;gap:6px;font-size:13px;color:var(--t2);margin-bottom:12px;} .caso-esc input{accent-color:var(--accent2);width:100%;}
.caso-fb{display:grid;grid-template-columns:auto 1fr;gap:6px 10px;align-items:start;margin-top:14px;padding:12px 14px;border-radius:12px;border:1px solid;} .caso-fb.ok{border-color:var(--green);background:rgba(30,142,90,.08);} .caso-fb.mal{border-color:var(--red);background:rgba(255,71,87,.06);}
.caso-fb .ti{font-size:20px;} .caso-fb.ok .ti{color:var(--green);} .caso-fb.mal .ti{color:var(--red);} .caso-fb p{margin:0;font-size:13px;line-height:1.5;} .caso-fb .btn{grid-column:1/-1;justify-self:end;}
.mkt-anual{margin:12px 0 8px;border-top:1px solid var(--c4);padding-top:10px;}
.mkt-anual-tit{font-size:12px;font-weight:700;color:var(--t2);margin-bottom:8px;display:flex;gap:6px;align-items:center;}
.mkt-anual-fila{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;}
.mkt-anual-fila > div{background:var(--c2);border:1px solid var(--c4);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:2px;min-width:0;}
.mkt-anual-fila span{font-size:11px;color:var(--t3);} .mkt-anual-fila b{font-size:13.5px;overflow-wrap:anywhere;} .mkt-anual-fila small{font-size:10.5px;color:var(--t3);}
@media(max-width:1100px){.mkt-anual-fila{grid-template-columns:repeat(3,minmax(0,1fr));}} @media(max-width:520px){.mkt-anual-fila{grid-template-columns:repeat(2,minmax(0,1fr));}}
.caso-grupo{margin-bottom:12px;} .caso-grupo h4,.caso-ia h4,.caso-informe h4{font-size:12px;color:var(--t3);margin:0 0 8px;display:flex;gap:6px;align-items:center;}
.caso-fila{display:flex;gap:6px;align-items:center;margin-bottom:8px;} .caso-fila .cs-op{flex:1;min-width:0;}
.caso-ia{border-top:1px solid var(--c4);padding-top:12px;margin-top:4px;}
.caso-graf{margin:0 0 12px;background:var(--c2);border:1px solid var(--c4);border-radius:10px;padding:8px 10px 6px;}
.caso-graf svg{width:100%;height:150px;display:block;} .caso-graf polyline{fill:none;stroke-width:1.8;vector-effect:non-scaling-stroke;} .caso-marca{stroke:var(--gold,#e8b94a);stroke-dasharray:3 3;vector-effect:non-scaling-stroke;}
.caso-graf figcaption{display:flex;gap:12px;flex-wrap:wrap;font-size:11.5px;color:var(--t2);margin-top:6px;} .caso-graf figcaption i{display:inline-block;width:10px;height:3px;border-radius:2px;margin-right:5px;vertical-align:middle;} .caso-eje{margin-left:auto;color:var(--t3);}
.caso-informe{display:grid;gap:10px;margin-top:14px;border-top:1px solid var(--c4);padding-top:12px;}
.caso-int{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) auto;gap:6px;margin-bottom:6px;}
.caso-int input{background:var(--c2);border:1px solid var(--c4);border-radius:8px;color:var(--t1);padding:8px 10px;font:500 13px var(--font-body);min-width:0;}
.caso-dos{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
@media(max-width:520px){.caso-dos{grid-template-columns:1fr!important;}}
/* Inicio refinado */
.ini-prueba{display:flex;align-items:center;gap:10px;background:color-mix(in srgb,var(--accent2) 8%,var(--c1));border:1px solid color-mix(in srgb,var(--accent2) 30%,var(--c4));border-radius:12px;padding:10px 14px;margin-bottom:14px;font-size:13px;color:var(--t2);}
.ini-prueba .ti{color:var(--accent2);font-size:18px;} .ini-prueba span{flex:1;} .ini-prueba b{color:var(--t1);}
.ini-pasos{background:var(--c1);border:1px solid var(--c4);border-radius:14px;margin-bottom:14px;}
.ini-pasos summary{display:flex;align-items:center;gap:12px;padding:10px 14px;cursor:pointer;list-style:none;} .ini-pasos summary::-webkit-details-marker{display:none;}
.ini-pasos-anillo{--p:0;width:42px;height:42px;border-radius:50%;flex:none;display:grid;place-items:center;background:conic-gradient(var(--accent2) calc(var(--p)*1%),var(--c3) 0);}
.ini-pasos-anillo b{width:34px;height:34px;border-radius:50%;background:var(--c1);display:grid;place-items:center;font-size:11px;}
.ini-pasos-tx{flex:1;min-width:0;display:flex;flex-direction:column;} .ini-pasos-tx small{font-size:11px;color:var(--t3);} .ini-pasos-tx b{font-size:13.5px;}
.ini-pasos-lista{display:flex;flex-wrap:wrap;gap:6px;padding:0 14px 12px;}
.ini-pasos-lista button{display:flex;gap:6px;align-items:center;border:1px solid var(--c4);background:var(--c2);color:var(--t1);border-radius:16px;padding:5px 11px;font:500 12px var(--font-body);cursor:pointer;}
.ini-pasos-lista button.hecho{color:var(--t3);text-decoration:line-through;} .ini-pasos-lista button.hecho .ti{color:var(--green);}
.ini-mv-tabs{display:flex;gap:3px;background:var(--c2);border:1px solid var(--c4);border-radius:10px;padding:2px;}
.ini-mv-tabs button{border:0;background:none;color:var(--t2);font:600 12px var(--font-body);padding:5px 10px;border-radius:8px;cursor:pointer;} .ini-mv-tabs button.activo{background:color-mix(in srgb,var(--accent2) 18%,var(--c2));color:var(--t1);}
.ini-mv-amplitud{display:flex;align-items:center;gap:10px;margin:10px 0;font-size:12px;color:var(--t2);} .ini-mv-amplitud div{flex:1;height:6px;background:var(--red);border-radius:3px;overflow:hidden;} .ini-mv-amplitud i{display:block;height:100%;background:var(--green);}
.ini-mv-lista{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:6px;}
.ini-mv-lista button{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:2px 10px;align-items:center;text-align:left;background:var(--c2);border:1px solid var(--c4);border-radius:10px;padding:8px 12px;color:var(--t1);cursor:pointer;font:inherit;}
.ini-mv-lista button:hover{border-color:var(--accent2);} .ini-mv-lista small{display:block;font-size:11px;color:var(--t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;} .ini-mv-lista b{font-size:13px;}
.ini-mv-lista .mono{font-size:12.5px;} .ini-mv-lista em{grid-column:1/-1;font-style:normal;font-size:11px;color:var(--gold,#e8b94a);}
/* Pasada de diseño: vidrio solo en lo que flota (barra superior, barra inferior móvil, ventanas emergentes); tarjetas de datos sólidas y títulos con más contraste. */
:root{--vidrio:rgba(16,20,29,.72);--vidrio-borde:rgba(255,255,255,.07);}
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .topbar{background:var(--vidrio);-webkit-backdrop-filter:saturate(170%) blur(18px);backdrop-filter:saturate(170%) blur(18px);border-bottom-color:var(--vidrio-borde);}
  @media(max-width:768px){.mobile-bottom-nav{background:var(--vidrio);-webkit-backdrop-filter:saturate(170%) blur(20px);backdrop-filter:saturate(170%) blur(20px);border-top-color:var(--vidrio-borde);}}
  .modal-overlay,.export-modal-overlay,.rk-overlay{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);}
  .modal-box{background:color-mix(in srgb,var(--c2) 88%,transparent);-webkit-backdrop-filter:saturate(160%) blur(24px);backdrop-filter:saturate(160%) blur(24px);border-color:var(--vidrio-borde);box-shadow:var(--sombra-lg);}
}
.card{background:var(--c2);}
.page-title{color:#fff;letter-spacing:-.4px;}
.card-title{color:#f4f7fd;font-weight:650;}
.card-title>.ti:first-child{color:var(--accent2);}
table th{color:var(--t2);font-weight:600;}
/* Aviso de versión nueva */
.aviso-version{position:fixed;left:50%;transform:translateX(-50%);bottom:20px;z-index:9000;display:flex;align-items:center;gap:10px;max-width:calc(100vw - 32px);background:var(--vidrio,rgba(16,20,29,.9));-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid var(--c5);border-radius:14px;padding:8px 8px 8px 14px;box-shadow:var(--sombra-lg);font-size:13px;color:var(--t1);}
.aviso-version>.ti{color:var(--accent2);font-size:18px;} .aviso-version span{flex:1;min-width:0;}
@media(max-width:768px){.aviso-version{bottom:calc(70px + env(safe-area-inset-bottom));width:calc(100vw - 32px);}}
@media(max-width:768px),(pointer:coarse){.aviso-version .btn{min-height:38px;min-width:38px;}}
/* Menú de cuenta: en escritorio el chip muestra todo; en móvil se agrupa tras un botón. */
.user-chip .chip-acciones{display:contents;}
.user-chip .chip-mas,.user-chip .chip-tx{display:none;}
.btn,a.btn{text-decoration:none;}
@media(max-width:600px){
  .user-chip{padding:3px 3px 3px 7px;}
  .user-chip .chip-name{display:none;}
  .user-chip .chip-mas{display:grid;place-items:center;width:38px!important;height:38px!important;}
  .user-chip .chip-mas i{font-size:20px!important;}
  .user-chip .chip-acciones{display:none;}
  .user-chip.abierto .chip-acciones{display:flex;flex-direction:column;gap:2px;position:fixed;top:52px;right:8px;width:min(260px,calc(100vw - 16px));z-index:700;padding:6px;border-radius:14px;border:1px solid var(--c5);background:var(--vidrio,rgba(16,20,29,.92));-webkit-backdrop-filter:saturate(170%) blur(20px);backdrop-filter:saturate(170%) blur(20px);box-shadow:var(--sombra-lg);}
  .user-chip.abierto .chip-acciones button{display:flex;align-items:center;gap:10px;width:100%!important;height:auto!important;min-height:38px;padding:8px 12px;border-radius:10px;justify-content:flex-start;font:500 13.5px var(--font-body);color:var(--t1);background:none;border:0;}
  .user-chip.abierto .chip-acciones button:active{background:var(--c3);}
  .user-chip.abierto .chip-acciones i{font-size:17px!important;color:var(--accent2);}
  .user-chip.abierto .chip-tx{display:inline;}
}
/* Barra superior en teléfonos: queda solo el logo para que quepan saldo y cuenta. */
@media(max-width:480px){ .topbar-brand{font-size:0;gap:0;} .topbar-brand span{display:none;} }
@media(max-width:360px){ .cap-pill>.ti-wallet{display:none;} .cap-pill{padding-left:6px;padding-right:6px;} .topbar{gap:4px;padding:0 6px;} .topbar-right{gap:4px;} .user-chip{padding:2px;} .user-chip .role-badge{display:none!important;} }
/* Casos: explicación, diagrama, términos e imágenes */
.caso-sub{display:flex;align-items:center;gap:8px;font-size:14px;margin:16px 0 8px;color:var(--t1);} .caso-sub .ti{color:var(--accent2);}
.caso-que{font-size:13.5px;line-height:1.6;color:var(--t2);margin:0 0 10px;}
.caso-flujo{margin:0 0 12px;background:var(--c2);border:1px solid var(--c4);border-radius:12px;padding:10px;}
.caso-flujo svg,.pres-fig svg{width:100%;height:auto;display:block;}
.caso-flujo figcaption{font-size:11.5px;color:var(--t3);margin-top:4px;}
.caso-terms{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px;margin-bottom:6px;}
.caso-terms div,.pres-terms div{background:var(--c2);border:1px solid var(--c4);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:3px;}
.caso-terms b{font-size:13px;color:var(--accent2);} .caso-terms span{font-size:12.5px;color:var(--t2);line-height:1.45;}
.caso-intro .btn{margin-top:8px;}
.caso-imgs{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px;margin-bottom:12px;}
.caso-img{margin:0;background:var(--c2);border:1px solid var(--c4);border-radius:10px;overflow:hidden;display:flex;flex-direction:column;}
.caso-img img{width:100%;height:110px;object-fit:cover;display:block;}
.caso-img figcaption{display:flex;gap:4px;padding:6px;align-items:center;}
.caso-img input{flex:1;min-width:0;background:var(--c1);border:1px solid var(--c4);border-radius:6px;color:var(--t1);font:500 12px var(--font-body);padding:6px 8px;}
.caso-img-sube{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:150px;border:1.5px dashed var(--c5);border-radius:10px;cursor:pointer;color:var(--t2);text-align:center;padding:10px;}
.caso-img-sube:hover{border-color:var(--accent2);color:var(--t1);} .caso-img-sube .ti{font-size:24px;color:var(--accent2);} .caso-img-sube span{font-size:13px;font-weight:600;} .caso-img-sube small{font-size:11px;color:var(--t3);}
/* Presentación del caso */
.caso-pres{position:fixed;inset:0;z-index:2147483000;background:#060A12;color:#E8EDF8;display:flex;flex-direction:column;}
.caso-pres header{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid #1C2333;} .caso-pres header b{flex:1;min-width:0;font-size:13px;color:#9FB0CC;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;} .caso-pres header span{font:500 12px var(--font-mono);color:#6580B0;}
.caso-pres main{flex:1;overflow-y:auto;padding:28px max(16px,6vw);max-width:1100px;width:100%;margin:0 auto;}
.caso-pres main h1{font-size:clamp(26px,4.4vw,46px);line-height:1.12;margin:10px 0 16px;letter-spacing:-.5px;}
.caso-pres main h2{font-size:clamp(19px,2.8vw,30px);line-height:1.25;margin:6px 0 16px;}
.pres-portada{display:flex;flex-direction:column;justify-content:center;border-left:6px solid var(--accent);}
.pres-tema{font-size:13px;font-weight:700;color:var(--gold);} .pres-intro,.pres-txt{font-size:clamp(14px,1.7vw,19px);line-height:1.6;color:#C9D4EA;margin:0 0 12px;}
.pres-fig{margin:10px 0;background:#0B1220;border:1px solid #1C2333;border-radius:14px;padding:12px;} .pres-foto img{max-width:100%;max-height:60vh;display:block;margin:0 auto;border-radius:8px;}
.pres-terms{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;} .pres-terms div{background:#0B1220;border-color:#1C2333;padding:16px;} .pres-terms b{font-size:17px;color:#00C4FF;} .pres-terms span{font-size:15px;color:#C9D4EA;line-height:1.5;}
.pres-ops{display:grid;gap:8px;margin-bottom:12px;} .pres-op{background:#0B1220;border:1px solid #26324A;border-radius:12px;padding:14px 16px;font-size:clamp(14px,1.6vw,18px);transition:opacity .2s,border-color .2s;}
.pres-op.ok{border-color:var(--green);background:color-mix(in srgb,var(--green) 12%,#0B1220);} .pres-op.apagada{opacity:.45;}
.pres-resp{display:flex;gap:12px;align-items:flex-start;background:#0B1220;border-left:4px solid var(--green);border-radius:10px;padding:14px 16px;margin:8px 0;} .pres-resp .ti{color:var(--green);font-size:22px;} .pres-resp p{margin:0;font-size:clamp(14px,1.6vw,18px);line-height:1.55;color:#C9D4EA;}
.pres-resp:not([hidden]){display:flex;flex-wrap:wrap;} .pres-num{font:600 clamp(24px,3vw,34px) var(--font-mono);color:var(--green);width:100%;}
.pres-ctrl{display:flex;flex-direction:column;gap:6px;font-size:15px;margin-bottom:6px;} .pres-ctrl input{width:100%;accent-color:var(--accent2);}
.pres-resumen{display:flex;gap:8px;align-items:flex-start;margin:0 auto;max-width:1100px;width:100%;padding:10px max(16px,6vw);font-size:13px;color:#9FB0CC;border-top:1px solid #1C2333;} .pres-resumen .ti{color:var(--gold);margin-top:2px;}
.caso-pres nav{display:flex;align-items:center;justify-content:center;gap:16px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));}
.caso-pres nav .btn{min-width:48px;min-height:44px;font-size:20px;justify-content:center;}
.pres-puntos{display:flex;gap:5px;flex-wrap:wrap;justify-content:center;max-width:50vw;} .pres-puntos i{width:7px;height:7px;border-radius:50%;background:#26324A;} .pres-puntos i.activo{background:var(--accent2);width:18px;border-radius:4px;}
@media(max-width:768px),(pointer:coarse){ .caso-pres header .btn,.caso-img .btn,.pres-ver{min-height:38px;min-width:38px;} .caso-img input{min-height:38px;} }
/* En pantallas angostas el diagrama se desplaza de lado para que sus rótulos no bajen de 10px. */
@media(max-width:640px){ .caso-flujo,.pres-fig{overflow-x:auto;-webkit-overflow-scrolling:touch;} .caso-flujo svg,.pres-fig svg{min-width:560px;} }
.pres-resp{flex-wrap:wrap;} .pres-resp[hidden]{display:none!important;}
.caso-pres main{display:flex;flex-direction:column;justify-content:safe center;}
.pres-ver{align-self:flex-start;}
