/* Terminal Values Corp. Tres temas: "bbg" (negro y ámbar, por defecto, al estilo Bloomberg), "dark" y "light"
   (tokens del tema "wealth" del design system, copiados de la intranet, no compartidos). */
:root{
  --brand:#68a2b9;--brand-dark:#276678;--hl:#276678;--bg:#edeff0;--card:#ffffff;--panel-h:#e3edf1;--ink:#282828;--muted:#595959;--hair:#c6c6c6;
  --line:rgba(40,40,40,.12);--wash:rgba(104,162,185,.14);--link:#276678;--on-dark:#ffffff;
  --pos:#235a4b;--neg:#a22341;--pos-bg:rgba(35,90,75,.16);--neg-bg:rgba(162,35,65,.16);
  --c1:#276678;--c2:#f19e74;--c3:#398c8a;--c4:#7480bd;--c5:#25264f;--c6:#7c8031;--c7:#c0587e;--c8:#8d8c8c;
  --font:'Montserrat','Helvetica Neue',Arial,sans-serif;--mono:ui-monospace,'SF Mono',Menlo,Consolas,monospace;
  --fs-2xs:11px;--fs-xs:12px;--fs-sm:13px;--fs-base:14px;--fs-md:15px;--fs-lg:18px;--fs-xl:22px;--fs-2xl:26px;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --brand:#7ab8d2;--hl:#9ac8dd;--bg:#0f1c21;--card:#16272e;--panel-h:#1d3540;--ink:#e8eef0;--muted:#a3b5bc;--hair:#3d5660;
    --line:rgba(232,238,240,.12);--wash:rgba(122,184,210,.14);--link:#9ac8dd;--pos:#78c5bf;--neg:#e58a9b;--pos-bg:rgba(120,197,191,.18);--neg-bg:rgba(229,138,155,.18);
    --c1:#9ac8dd;--c2:#f19e74;--c3:#78c5bf;--c4:#a3abe0;--c5:#ebd2e6;--c6:#a7ab5a;--c7:#e58a9b;--c8:#8d8c8c;
  }
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --brand:#7ab8d2;--hl:#9ac8dd;--bg:#0f1c21;--card:#16272e;--panel-h:#1d3540;--ink:#e8eef0;--muted:#a3b5bc;--hair:#3d5660;
  --line:rgba(232,238,240,.12);--wash:rgba(122,184,210,.14);--link:#9ac8dd;--pos:#78c5bf;--neg:#e58a9b;--pos-bg:rgba(120,197,191,.18);--neg-bg:rgba(229,138,155,.18);
  --c1:#9ac8dd;--c2:#f19e74;--c3:#78c5bf;--c4:#a3abe0;--c5:#ebd2e6;--c6:#a7ab5a;--c7:#e58a9b;--c8:#8d8c8c;
}
/* Tema terminal: fondo negro, ámbar para rótulos y teclas, verde/rojo saturados, monoespaciada. */
:root[data-theme="bbg"]{
  color-scheme:dark;
  --brand:#ffa028;--brand-dark:#c46f00;--hl:#ffa028;--bg:#000;--card:#000;--panel-h:#1a1206;--ink:#f2f2f2;--muted:#9b9b9b;--hair:#3a3a3a;
  --line:rgba(255,255,255,.12);--wash:rgba(255,160,40,.13);--link:#6fc3ff;--on-dark:#000;
  --pos:#3ddc4a;--neg:#ff4b4b;--pos-bg:rgba(61,220,74,.2);--neg-bg:rgba(255,75,75,.22);
  --c1:#ffa028;--c2:#4fc1ff;--c3:#3ddc4a;--c4:#ff5ec4;--c5:#ffe14d;--c6:#b48cff;--c7:#ff7a45;--c8:#9b9b9b;
  --font:'IBM Plex Mono',ui-monospace,'SF Mono',Menlo,monospace;--mono:'IBM Plex Mono',ui-monospace,monospace;
}

*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{height:100%}
body{margin:0;font-family:var(--font);font-size:var(--fs-sm);line-height:1.45;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;
  display:flex;flex-direction:column;overflow:hidden}
a{color:var(--link)}
h3{margin:0;font-size:var(--fs-sm);font-weight:600}
p{margin:0}
button,input,select{font:inherit;color:inherit}
code{font-family:var(--mono)}
:focus-visible{outline:2px solid var(--brand);outline-offset:1px}
.muted{color:var(--muted)}
.small{font-size:var(--fs-xs)}
.num{font-variant-numeric:tabular-nums;font-family:var(--mono)}
.up{color:var(--pos)}.down{color:var(--neg)}
.ic{font-family:'Material Symbols Outlined';font-weight:300;font-style:normal;font-size:20px;line-height:1;display:inline-block;width:1em;height:1em;overflow:hidden;white-space:nowrap;direction:ltr;font-feature-settings:'liga';flex:none}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.tbl-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse}
th{text-align:left;font-size:var(--fs-2xs);font-weight:600;letter-spacing:.4px;text-transform:uppercase;color:var(--hl);padding:5px 8px;border-bottom:1px solid var(--hair);white-space:nowrap;position:sticky;top:0;background:var(--card)}
td{padding:4px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.empty{padding:24px;text-align:center;color:var(--muted)}

/* Cinta de cotizaciones */
.tape{height:26px;overflow:hidden;border-bottom:1px solid var(--line);background:var(--card);white-space:nowrap;font-size:var(--fs-xs);flex:none}
.tape-in{display:inline-flex;gap:28px;padding-left:100%;animation:cinta 90s linear infinite;line-height:26px}
.tape:hover .tape-in{animation-play-state:paused}
.tape b{color:var(--hl);font-weight:600;margin-right:6px;cursor:pointer}
@keyframes cinta{to{transform:translateX(-100%)}}

/* Barra superior */
.top{display:flex;align-items:center;gap:14px;padding:6px 12px;flex:none;border-bottom:1px solid var(--line)}
.brand{display:block;line-height:0}
.logo{height:26px;width:auto}
.logo-w{display:none}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .logo-c{display:none}:root:not([data-theme="light"]) .logo-w{display:block}}
:root[data-theme="dark"] .logo-c,:root[data-theme="bbg"] .logo-c{display:none}
:root[data-theme="dark"] .logo-w,:root[data-theme="bbg"] .logo-w{display:block}
.top-nombre{font-weight:700;letter-spacing:2px;font-size:var(--fs-xs);color:var(--hl);padding-left:12px;border-left:1px solid var(--hair)}
.relojes{display:flex;gap:14px;margin-left:auto;font-size:var(--fs-2xs);overflow:hidden}
.reloj{display:flex;flex-direction:column;line-height:1.25;white-space:nowrap}
.reloj b{color:var(--muted);font-weight:500}
.reloj .num{font-size:var(--fs-xs);color:var(--ink)}
.reloj i{font-style:normal;margin-left:4px}
.reloj .abierto{color:var(--pos)}.reloj .cerrado{color:var(--muted)}
.top-btns{display:flex;gap:4px}
.top-btns button{border:1px solid var(--hair);background:var(--card);border-radius:4px;height:28px;min-width:30px;padding:0 6px;cursor:pointer;display:grid;place-items:center;font-size:var(--fs-2xs)}
.top-btns button .ic{font-size:18px}
.top-btns button[aria-pressed="true"]{border-color:var(--brand);color:var(--hl);background:var(--wash)}

/* Línea de comandos */
.cmd{position:relative;display:flex;align-items:center;gap:8px;padding:6px 12px;border-bottom:1px solid var(--line);background:var(--card);flex:none}
.cmd-panel{font-family:var(--mono);font-size:var(--fs-xs);color:var(--on-dark);background:var(--brand);border-radius:3px;padding:2px 6px;font-weight:700}
.cmd input{flex:1;min-width:0;height:30px;border:0;background:transparent;font-family:var(--mono);font-size:var(--fs-md);text-transform:uppercase;letter-spacing:.5px;color:var(--hl)}
.cmd input::placeholder{color:var(--muted);text-transform:none;letter-spacing:0}
.cmd input:focus{outline:none}
.cmd:focus-within{box-shadow:inset 0 -2px 0 var(--brand)}
.go{border:0;background:var(--brand);color:var(--on-dark);font-family:var(--mono);font-weight:700;border-radius:3px;height:28px;padding:0 12px;cursor:pointer;letter-spacing:1px}
:root:not([data-theme="bbg"]) .go{background:var(--brand-dark);color:#fff}
.sug{position:absolute;left:12px;right:12px;top:100%;z-index:40;background:var(--card);border:1px solid var(--brand);max-height:320px;overflow:auto;box-shadow:0 8px 24px rgba(0,0,0,.35)}
.sug button{display:grid;grid-template-columns:150px 1fr;gap:12px;width:100%;text-align:left;padding:5px 10px;border:0;background:none;cursor:pointer;font-size:var(--fs-xs)}
.sug button b{font-family:var(--mono);color:var(--hl)}
.sug button[aria-selected="true"],.sug button:hover{background:var(--wash)}

/* Teclas de funciones agrupadas */
.keys{display:flex;gap:10px;flex-wrap:wrap;padding:5px 12px;border-bottom:1px solid var(--line);flex:none}
.keys-g{display:flex;align-items:center;gap:3px}
.keys-g>span{font-size:9px;letter-spacing:1px;color:var(--muted);margin-right:3px;text-transform:uppercase}
.k,.fns button{min-height:24px;padding:1px 8px;border:1px solid var(--hair);border-radius:3px;background:var(--card);font-family:var(--mono);font-size:var(--fs-2xs);font-weight:600;cursor:pointer;color:var(--ink)}
:root[data-theme="bbg"] .k{background:#2b1d05;border-color:#5a3c0a;color:var(--hl)}
.k:hover,.fns button:hover{border-color:var(--brand);background:var(--wash)}
.fns{display:flex;gap:3px;flex-wrap:wrap}
.fns button[aria-pressed="true"]{background:var(--brand);border-color:var(--brand);color:var(--on-dark)}
:root:not([data-theme="bbg"]) .fns button[aria-pressed="true"]{background:var(--brand-dark);color:#fff}
.opc{margin:0 0 8px}

/* Cuerpo: lista + paneles */
.main{flex:1;display:grid;grid-template-columns:230px minmax(0,1fr);min-height:0}
.wl{border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}
.wl-h{display:flex;justify-content:space-between;padding:6px 10px;font-size:var(--fs-2xs);font-weight:700;letter-spacing:1px;color:var(--hl);text-transform:uppercase;border-bottom:1px solid var(--line)}
.wl-l{overflow:auto;flex:1}
.wl-i{display:flex;justify-content:space-between;gap:6px;width:100%;padding:5px 10px;border:0;border-bottom:1px solid var(--line);background:none;text-align:left;cursor:pointer;font-size:var(--fs-xs)}
.wl-i:hover{background:var(--wash)}
.wl-i>span{display:flex;flex-direction:column;min-width:0}
.wl-i b{font-family:var(--mono);font-weight:600}
.wl-i .num{text-align:right;font-weight:600}
.sym{display:block;font-size:var(--fs-2xs);color:var(--muted);font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nota{font-size:var(--fs-2xs);color:var(--muted);padding:8px 10px}
.paneles{display:grid;gap:3px;padding:3px;min-height:0;min-width:0;background:var(--line)}
.paneles[data-n="1"]{grid-template-columns:1fr}
.paneles[data-n="2"]{grid-template-columns:1fr 1fr}
.paneles[data-n="4"]{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}
.panel{display:flex;flex-direction:column;background:var(--card);min-height:0;min-width:0;border:1px solid transparent}
.paneles:not([data-n="1"]) .panel.on{border-color:var(--brand)}
.panel-h{display:flex;align-items:center;gap:8px;padding:3px 6px 3px 8px;background:var(--panel-h);font-size:var(--fs-2xs);flex:none;cursor:pointer}
.panel-h .n{font-family:var(--mono);font-weight:700;background:var(--hair);color:var(--ink);border-radius:2px;padding:0 5px}
.panel.on .panel-h .n{background:var(--brand);color:var(--on-dark)}
.panel-h .t{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:var(--mono);color:var(--hl);font-weight:600;letter-spacing:.5px}
.panel-h button{border:0;background:none;cursor:pointer;padding:0;color:var(--muted);display:grid;place-items:center}
.panel-h button .ic{font-size:16px}
.panel-h button:hover{color:var(--hl)}
.out{flex:1;overflow:auto;padding:8px 12px 12px;min-height:0}
.status{display:flex;gap:16px;padding:3px 12px;border-top:1px solid var(--line);font-size:var(--fs-2xs);color:var(--muted);flex:none;white-space:nowrap;overflow:hidden}
.status b{color:var(--hl);font-weight:600}

/* Contenido de los paneles */
.h{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.h>span{font-size:var(--fs-2xs);font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--hl)}
.h .small{text-transform:none;letter-spacing:0;font-weight:400;color:var(--muted)}
.tbl td,.tbl th{white-space:nowrap}
.tbl th.num,.tbl td.num{text-align:right}
.tbl tbody tr[data-cmd]{cursor:pointer}
.tbl tbody tr[data-cmd]:hover,.tbl tbody tr[data-cmd]:focus-visible{background:var(--wash)}
.tbl td b{margin-right:6px}
.tbl td .sym{display:inline}
.tbl tr.sel td{background:var(--wash)}
.tbl td.wrap{white-space:normal;min-width:240px}
.quote{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.px{font-size:var(--fs-2xl);font-weight:600;font-family:var(--mono)}
.quote>.num:not(.px){font-weight:600;font-size:var(--fs-md)}
.dl{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:0 16px;margin:0 0 10px}
.dl>div{display:flex;justify-content:space-between;gap:8px;padding:3px 0;border-bottom:1px dotted var(--line)}
.dl dt{color:var(--muted)}.dl dd{margin:0;font-weight:600;text-align:right}
.dl-1{grid-template-columns:1fr}
.dl-1>div{justify-content:flex-start}.dl-1 dt{min-width:140px}.dl-1 dd{font-weight:400;text-align:left}
.sub{margin:12px 0 6px;color:var(--hl);font-size:var(--fs-2xs);letter-spacing:1px;text-transform:uppercase}
.desc{line-height:1.6;margin:8px 0;max-width:90ch;color:var(--ink)}
.chart{position:relative;height:340px;margin-bottom:8px}
.chart.bajo{height:150px}
.paneles[data-n="2"] .chart{height:300px}
.paneles[data-n="4"] .chart{height:200px}
.paneles[data-n="4"] .chart.bajo{height:110px}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:4px 18px}
.ind{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:4px;margin-bottom:10px}
.ind button{display:flex;flex-direction:column;align-items:flex-start;padding:6px 8px;border:1px solid var(--line);border-radius:3px;background:var(--card);cursor:pointer;text-align:left}
.ind button b{font-size:var(--fs-md);font-family:var(--mono)}
.ind button[aria-pressed="true"]{border-color:var(--brand);background:var(--wash)}
.news{list-style:none;margin:0;padding:0}
.news li{display:grid;grid-template-columns:105px minmax(0,1fr);gap:0 12px;padding:5px 0;border-bottom:1px solid var(--line)}
.news time{color:var(--muted);font-size:var(--fs-2xs);grid-row:span 2}
.news a{text-decoration:none;color:var(--ink)}.news a:hover{text-decoration:underline;color:var(--hl)}
.err{color:var(--neg);padding:12px 0}
.ok{color:var(--pos)}
/* Mapa de calor */
.heat{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:3px}
.heat button{border:0;padding:8px;text-align:left;cursor:pointer;color:#fff;min-height:64px;display:flex;flex-direction:column;justify-content:space-between;border-radius:2px}
.heat button b{font-size:var(--fs-xs)}
.heat button .num{font-size:var(--fs-lg);font-weight:600}
.heat button .sym{color:rgba(255,255,255,.75)}
/* Celdas coloreadas por signo */
td.cel-up{background:var(--pos-bg)}td.cel-down{background:var(--neg-bg)}
.barra{position:relative;height:8px;background:var(--line);border-radius:4px;margin:6px 0 2px}
.barra i{position:absolute;top:-3px;width:3px;height:14px;background:var(--hl)}
.barra span{position:absolute;top:0;height:8px;background:var(--brand);opacity:.45;border-radius:4px}
.stack{display:flex;height:22px;border-radius:2px;overflow:hidden;margin:4px 0}
.stack span{display:grid;place-items:center;font-size:var(--fs-2xs);color:#000;font-weight:700;min-width:0}
.cmf{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;max-width:520px;margin:4px 0 6px}
.cmf span{padding:4px;background:var(--wash);color:var(--muted);text-align:center;font-size:var(--fs-2xs)}
.cmf span.on{background:var(--brand);color:var(--on-dark);font-weight:700}
.opc-t td.itm{background:var(--wash)}
.opc-t td.k{text-align:center;font-weight:700;color:var(--hl);background:var(--panel-h)}
.spark{display:inline-block;vertical-align:middle}

@media (max-width:900px){
  body{overflow:auto;height:auto}
  .main{grid-template-columns:1fr}
  .wl{border-right:0;border-bottom:1px solid var(--line);max-height:200px}
  .paneles,.paneles[data-n]{grid-template-columns:1fr;grid-template-rows:none}
  .panel{min-height:70vh}
  .relojes .reloj:nth-child(n+3){display:none}
  .top-nombre,.keys-g>span{display:none}
  .chart,.paneles[data-n] .chart{height:260px}
}

/* Tableros con varios gráficos (ECOC, CRED, BETA), exposición de carteras y matriz de correlaciones */
.graf-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:4px 16px}
.chart.graf-c{height:180px}
.expo{display:grid;grid-template-columns:minmax(90px,140px) 1fr 56px;align-items:center;gap:8px;padding:2px 0;font-size:var(--fs-sm)}
.expo-b{height:8px;background:var(--hair);border-radius:2px;overflow:hidden}
.expo-b i{display:block;height:100%;background:var(--brand)}
.tbl.corr td{font-family:var(--mono)}
.mini{border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:3px;width:22px;height:22px;cursor:pointer;line-height:1}
.mini:hover{color:var(--neg);border-color:var(--neg)}
.brief{white-space:pre-wrap;line-height:1.55;max-width:820px;padding:10px 2px;font-size:var(--fs-sm)}
.aviso{position:fixed;right:16px;bottom:16px;z-index:50;max-width:min(380px,calc(100vw - 32px));background:var(--card);color:var(--ink);border:1px solid var(--hl);border-left:4px solid var(--hl);padding:10px 14px;font-size:var(--fs-sm);box-shadow:0 6px 24px rgb(0 0 0 / .35)}

/* Inicio de sesión (producción) */
.acceso{min-height:100vh;display:grid;place-items:center;padding:16px;background:var(--bg)}
.acceso-f{width:min(360px,100%);display:flex;flex-direction:column;gap:6px;padding:24px;border:1px solid var(--line);background:var(--card)}
.acceso-f .logo{max-width:200px;margin-bottom:10px}
.acceso-f h1{margin:0 0 4px;font:700 var(--fs-sm)/1.3 var(--mono);letter-spacing:1px;color:var(--hl)}
.acceso-f p{margin:0 0 6px}
.acceso-f label{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:1px;color:var(--muted)}
.acceso-f input{font:inherit;font-family:var(--mono);padding:6px 8px;border:1px solid var(--hair);background:var(--bg);color:var(--ink)}
.acceso-f .go{margin-top:8px;padding:7px}
.acceso-err{min-height:1.2em;color:var(--neg)}
.acceso-otra{border:0;background:none;color:var(--link);cursor:pointer;padding:4px 0}
.acceso-ok{color:var(--pos)}
