/* REAL LAB: tablas desplazables en su propio contenedor (nunca ensanchan la página) y rejillas de resumen. */
.tablewrap { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--line); border-radius: var(--r-lg, 12px); }
.tablewrap:focus-visible { outline: 2px solid var(--emerald); outline-offset: 2px; }
.tablewrap table { min-width: 560px; width: 100%; }
.tablewrap th, .tablewrap td { padding: 8px 10px; text-align: left; white-space: nowrap; }
.tablewrap td.num, .tablewrap th.num { text-align: right; font-variant-numeric: tabular-nums; }
tr.clickable { cursor: pointer; } tr.clickable:hover, tr.clickable:focus-visible { background: var(--s2); outline: none; }
.grid4 { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
.stat .big { font-size: 28px; font-weight: 700; }
.cov-row { display: grid; gap: 4px; }
.track { height: 8px; background: var(--s2); border-radius: 99px; overflow: hidden; } .track i { display: block; height: 100%; }
input.select[type=search] { width: 100%; max-width: 420px; }
.view, .stack, .card { min-width: 0; }

.srow-wrap { display: block; } .srow-wrap .srow { margin-bottom: 0; }
.cmp-pick { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--ink-2); padding: 8px 4px 2px; min-height: 44px; cursor: pointer; }
.cmp-pick input { width: 20px; height: 20px; accent-color: var(--emerald); }
.cmp-bar { position: sticky; top: 8px; z-index: 5; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 10px 12px; background: var(--s2); border: 1px solid var(--emerald); border-radius: 12px; }
.cmp-bar[hidden] { display: none; } .btn.ghost { background: none; }
.chart-hit { cursor: pointer; fill: transparent; } .chart-hit:focus-visible { outline: 2px solid var(--emerald); } .chart-sel { fill: rgba(255,255,255,.06); }

/* Menú lateral: sin destinos bajo el pliegue en alturas bajas (defecto H03 de la línea base). */
@media (min-width: 1024px) { .nav { overflow-y: auto; overscroll-behavior: contain; } }
@media (min-width: 1024px) and (max-height: 900px) {
  .nav { padding: 12px; gap: 2px; }
  .nav a.dsk { min-height: 40px; font-size: 14.5px; }
  .nav-group.dsk { padding: 10px 12px 2px; font-size: 10.5px; }
  .side-brand { padding: 2px 12px 8px; }
}
@media (min-width: 1024px) and (max-height: 760px) {
  .nav a.dsk { min-height: 34px; font-size: 14px; }
  .nav-group.dsk { padding: 6px 12px 0; font-size: 10px; }
  .side-note { display: none; }
}

.cmp-pick { min-width: 44px; }

/* H029: vista de token con todos sus episodios */
.tok-wrap { overflow-wrap: anywhere; word-break: break-word; min-width: 0; }
.tokdl { display: grid; grid-template-columns: max-content 1fr; gap: 6px 14px; margin: 0; }
.tokdl dt { color: var(--ink-3); } .tokdl dd { margin: 0; min-width: 0; }
.epcard { display: grid; gap: 6px; text-decoration: none; color: inherit; }
.epcard:hover, .epcard:focus-visible { outline: 2px solid var(--emerald); outline-offset: 2px; }
.epstats { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 14px; }
a.rowlink { color: inherit; text-decoration: none; } a.rowlink:hover, a.rowlink:focus-visible { text-decoration: underline; }
.tok-line a { color: var(--emerald); }

/* Nombres de wallets: envuelven, nunca desbordan; el estado va en un chip */
.wname { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; min-width: 0; max-width: 100%; }
.wn { overflow-wrap: anywhere; min-width: 0; } .wn.unk { color: var(--ink-3); font-style: italic; }
.wn.conf { display: grid; gap: 2px; font-size: .92em; } .wn-l b { color: var(--ink-3); font-weight: 600; }
.wchip { font-size: 11px; padding: 1px 7px; border-radius: 99px; border: 1px solid var(--line); color: var(--ink-2); white-space: nowrap; }
.wchip.st-conflict { border-color: var(--gold); color: var(--gold); } .wchip.st-unknown { color: var(--ink-3); border-style: dashed; }
.wchip.st-verified_both { border-color: var(--emerald); color: var(--emerald); }
.wid { font-size: 12px; color: var(--ink-3); overflow-wrap: anywhere; }
.tablewrap td.wrapcell, .tablewrap th.wrapcell { white-space: normal; min-width: 220px; max-width: 360px; }

.wname.compact { display: inline-flex; max-width: 150px; } .wname.compact .wn { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 150px; display: block; }
.wname.compact.st-conflict .wn { color: var(--gold); }

.tablewrap th.wrapcell, .tablewrap td.wrapcell { width: 300px; }
.card > .tokdl { margin-top: 14px; }

/* H048: indicador de filtros activos (siempre visible, aunque el panel esté cerrado) */
.active-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 10px 12px; border: 1px solid var(--gold); border-radius: 12px; background: var(--s2); }
.active-filters[hidden] { display: none; }
.af-title { font-weight: 600; color: var(--gold); }
.af-chip { font-size: 13px; padding: 4px 10px; border-radius: 99px; border: 1px solid var(--gold); color: var(--ink); background: transparent; cursor: pointer; min-height: 32px; }
.af-chip:hover, .af-chip:focus-visible { background: var(--s1); outline: 2px solid var(--emerald); }
.iconbtn[data-activos="1"] { outline: 2px solid var(--gold); }

/* F3: el chip de búsqueda larga se parte; su ✕ siempre alcanzable */
.af-chip { max-width: 100%; white-space: normal; overflow-wrap: anywhere; text-align: left; line-height: 1.25; }
.active-filters { min-width: 0; }
/* H001/H002: partes clicables del banner */
.banner-btn { font: inherit; color: inherit; background: none; border: 0; border-bottom: 1px dashed var(--ink-3); padding: 0 2px; cursor: pointer; text-align: left; }
.banner-btn:hover, .banner-btn:focus-visible { border-bottom-color: var(--emerald); outline: none; color: var(--emerald); }

/* Fase 8: textos de estado más largos que «Sin dato» deben envolver dentro de la tarjeta lateral */
.side-wallets .mini td,.side-wallets .mini th{white-space:normal;overflow-wrap:anywhere;min-width:0}
.side-wallets .mini td:nth-child(3),.side-wallets .mini td:nth-child(4){font-size:12px;line-height:1.2}

/* ===== Expansión Señales: gráfica de participantes, panel, replay, etiquetas del máximo ===== */
.sortrow{gap:12px;flex-wrap:wrap;align-items:center}
.sortbox{display:flex;align-items:center;gap:8px}
.sortbox .select{min-width:230px}
.mxtags{display:flex;gap:4px;flex-wrap:wrap;margin-top:3px;justify-content:flex-end}
.mxtags.big{justify-content:flex-start}
.mxtag{font-size:10.5px;letter-spacing:.04em;font-weight:700;padding:1px 6px;border-radius:999px;border:1px solid var(--line-strong);color:var(--ink-2);background:rgba(160,205,235,.06);white-space:nowrap;cursor:help}
.mxtag.ext{color:#F5A524;border-color:rgba(245,165,36,.5);background:var(--gold-soft)}
.mxtag.par{color:var(--ink-3);border-style:dashed}
.mxtag.t0{color:var(--violet);border-color:rgba(151,133,236,.45);background:var(--violet-soft)}
.mxtag.ok{color:var(--emerald);border-color:rgba(47,220,149,.4);background:var(--emerald-soft)}
.pos{color:var(--emerald)} .neg{color:var(--red)}
.pc-strip{grid-template-columns:repeat(6,minmax(0,1fr))}
.pc-strip .tile .v{font-size:19px;overflow-wrap:anywhere}
@media (max-width:760px){.pc-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}
.pc-card{padding-bottom:10px}
.pc{gap:10px}
.pc-bar{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center}
.pc-grp{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.pc-grp .chip{padding:5px 10px;font-size:13px}
.pc-grp .chip[disabled]{opacity:.38;cursor:not-allowed;text-decoration:line-through dotted}
.pc-wrap{position:relative;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;background:#08121C;min-height:300px}
.pc-canvas{display:block;width:100%;cursor:crosshair;touch-action:pan-y}
.pc-canvas.drag{cursor:grabbing}
.pc-canvas:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}
.pc-legend{position:absolute;left:10px;top:6px;right:80px;font-size:12.5px;color:var(--ink-2);pointer-events:none;display:flex;gap:14px;flex-wrap:wrap}
.pc-ttl{color:var(--ink-3);font-weight:600}
.pc-ohlc{font-variant-numeric:tabular-nums;color:var(--ink)}
.pc-tip{position:absolute;z-index:3;background:rgba(10,22,34,.97);border:1px solid var(--line-strong);border-radius:10px;padding:8px 10px;font-size:12.5px;line-height:1.35;pointer-events:none;box-shadow:var(--shadow);max-width:290px}
.pc-tt-h{font-weight:700;display:flex;align-items:center;gap:6px;margin-bottom:2px}
.pc-tt-h i,.pp-dot{display:inline-block;width:9px;height:9px;border-radius:50%}
.pc-key{display:flex;gap:14px;flex-wrap:wrap;font-size:12.5px;color:var(--ink-2);align-items:center}
.pc-key .mk{display:inline-block;width:0;height:0;margin-right:5px;vertical-align:-1px}
.pc-key .mk.up{border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:9px solid #26D07C}
.pc-key .mk.dn{border-left:5px solid transparent;border-right:5px solid transparent;border-top:9px solid #FF4D5E}
.pc-key .mk.rb{width:9px;height:9px;background:#F5A524;transform:rotate(45deg) scale(.8)}
.pc-key .mk.hol{width:9px;height:9px;border:1.5px solid #8497A8;border-radius:2px}
.pc-events{border:1px solid var(--line);border-radius:var(--r-md);padding:8px 12px}
.pc-events summary{cursor:pointer;font-weight:600;color:var(--ink-2)}
.ev-k{font-weight:700;font-size:12px}.ev-k.k-B{color:#26D07C}.ev-k.k-S{color:#FF4D5E}.ev-k.k-R{color:#F5A524}
.pp{gap:10px}
.pp-toolbar{gap:10px;align-items:center}
.pp-presets{display:flex;gap:6px;flex-wrap:wrap}
.pp-presets .chip{padding:5px 10px;font-size:13px}
.pp-presets .chip[disabled]{opacity:.4;cursor:not-allowed}
.pp-table{width:100%;border-collapse:collapse;font-size:13.5px;min-width:820px}
.pp-compact .pp-table{min-width:0;font-size:13px}
.pp-table th{font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);text-align:left;padding:6px 8px;border-bottom:1px solid var(--line);white-space:nowrap;cursor:help}
.pp-table td{padding:7px 8px;border-bottom:1px solid var(--line);vertical-align:middle}
.pp-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.pp-off td{opacity:.38}
.pp-eye{background:none;border:1px solid var(--line-strong);border-radius:8px;width:30px;height:26px;cursor:pointer;display:grid;place-items:center}
.pp-eye[aria-pressed=false]{opacity:.5}
.pp-eye[aria-pressed=false] .pp-dot{background:transparent!important;border:1.5px solid var(--ink-3)}
.pp-ord{display:inline-grid;place-items:center;min-width:24px;height:24px;border:2px solid;border-radius:50%;font-size:12px;font-weight:700}
.pp-name{min-width:150px}
.pp-ent{display:block;font-size:10.5px;color:var(--violet);letter-spacing:.03em}
.pp-st{font-weight:700;font-size:12px;padding:2px 8px;border-radius:999px;border:1px solid var(--line-strong);white-space:nowrap}
.pp-st.st-closed{color:var(--ink-2)}.pp-st.st-open{color:var(--emerald);border-color:rgba(47,220,149,.45);background:var(--emerald-soft)}.pp-st.st-ind{color:var(--gold);border-color:rgba(227,169,63,.45);background:var(--gold-soft)}
.pp-rb{font-weight:700;color:#F5A524;margin-left:6px}
.pp-sub{font-size:11.5px}
.pp-src{font-size:9px;color:var(--ink-3);margin-left:2px}
.pp-note{font-size:12.5px;margin:0}
.pp-compact .pp-t0{font-size:12px;color:var(--ink-2)}
.rp-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12.5px;color:var(--ink-2);margin-bottom:6px}
.rp-legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:-1px}
.rp-legend i.dash{background:none;border-top:3px dashed #8497A8;border-radius:0;height:0;width:18px}
.rp-svg{width:100%;min-width:640px;height:auto;display:block}
.rp-grid{stroke:rgba(140,170,210,.1)} .rp-tick{fill:#8FA3B8;font-size:11px}
.rp-t0{stroke:#9785EC;stroke-dasharray:5 4} .rp-max{stroke:#F5A524;stroke-dasharray:2 3}
.rp-lbl{font-size:11px;font-weight:700}.rp-lbl.t0{fill:#9785EC}.rp-lbl.mx{fill:#F5A524}
.rp-name{fill:#C9D6E2;font-size:11.5px}
.rp-bar.open{stroke-dasharray:6 4;opacity:.75}
@media (max-width:760px){.pc-legend{right:8px;top:4px;font-size:11.5px}.pc-wrap{min-height:260px}.sortbox .select{min-width:0;width:100%}.sortbox{width:100%}}
.pc-grp .chip,.pp-presets .chip{--pill-h:34px;height:34px;min-height:34px;line-height:1}

.pc-bar .select{width:auto;min-width:150px;height:34px;--pill-h:34px}
.tile .v.sm{font-size:15px;line-height:1.25}
.pp-table{min-width:660px}
.pp-table td{padding:6px 6px}
.pp-name{min-width:120px;max-width:190px}
.pp-compact .pp-table td{padding:5px 3px}
.pp-compact .pp-name{min-width:0;max-width:120px}
.pp-compact .pp-st{font-size:11px;padding:1px 6px}

.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media (max-width:760px){.grid2{grid-template-columns:1fr}}
.tiles6 .tile .v.sm{font-size:15px!important;line-height:1.25}

.pc-msgs{position:absolute;left:10px;bottom:34px;max-width:78%;font-size:12px;line-height:1.35;color:rgba(190,205,220,.95);background:rgba(8,18,28,.82);border-radius:8px;padding:0 6px;pointer-events:none}
.pc-msgs div{padding:2px 0}
.pc-msgs:empty{display:none}
.pp-sub.mxtag{display:inline-block;margin-top:2px}
