:root { --bg:#0b0d12; --panel:#131722; --line:#232a38; --text:#e6e8ee; --dim:#8a93a6; --pos:#2fbf71; --neg:#ef5350; --acc:#5b8def; }
* { box-sizing: border-box; }
body { margin:0; background:var(--bg); color:var(--text); font:14px/1.45 system-ui, -apple-system, "Segoe UI", sans-serif; }
a { color:var(--acc); text-decoration:none; } a:hover { text-decoration:underline; }
.top { display:flex; align-items:center; gap:24px; padding:12px 24px; border-bottom:1px solid var(--line); background:var(--panel); position:sticky; top:0; z-index:2; flex-wrap:wrap; }
.brand { font-weight:700; letter-spacing:.04em; color:var(--text); font-size:16px; }
nav { display:flex; gap:4px; flex-wrap:wrap; }
nav a { color:var(--dim); padding:6px 10px; border-radius:6px; }
nav a.on, nav a:hover { color:var(--text); background:var(--line); text-decoration:none; }
.token { margin:0; }
.chip, select, input, button { background:var(--bg); color:var(--text); border:1px solid var(--line); border-radius:6px; padding:6px 10px; font:inherit; }
button { background:var(--acc); border-color:var(--acc); color:#fff; cursor:pointer; }
main { max-width:1480px; margin:0 auto; padding:20px 24px 40px; }
h1 { font-size:20px; margin:4px 0 2px; } h2 { font-size:15px; margin:28px 0 10px; display:flex; align-items:baseline; gap:12px; }
.more { font-size:12px; font-weight:400; }
.lede { color:var(--dim); margin:0 0 16px; }
.cards { display:grid; grid-template-columns:repeat(auto-fit, minmax(180px,1fr)); gap:12px; margin:12px 0; }
.card { background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:12px 14px; display:flex; flex-direction:column; gap:4px; }
.card.wide { grid-column:span 2; } .k { color:var(--dim); font-size:12px; text-transform:uppercase; letter-spacing:.04em; }
.v { font-size:22px; font-weight:600; } .s { color:var(--dim); font-size:12px; }
.bar { height:10px; background:var(--neg); border-radius:5px; overflow:hidden; margin:6px 0; } .bar .l { display:block; height:100%; background:var(--pos); }
.grid2 { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.scroll { overflow-x:auto; }
table { width:100%; border-collapse:collapse; background:var(--panel); border:1px solid var(--line); border-radius:10px; overflow:hidden; }
th, td { padding:8px 10px; border-bottom:1px solid var(--line); text-align:left; white-space:nowrap; }
th { color:var(--dim); font-weight:500; font-size:12px; text-transform:uppercase; letter-spacing:.03em; }
th a { color:inherit; } tr:last-child td { border-bottom:0; } tbody tr:hover { background:#18202e; }
.n { text-align:right; font-variant-numeric:tabular-nums; } .mono { font-family:ui-monospace, Consolas, monospace; font-size:12px; }
.pos { color:var(--pos); } .neg { color:var(--neg); } .dim { color:var(--dim); }
.pill { padding:2px 8px; border-radius:10px; font-size:12px; } .pill.long { background:rgba(47,191,113,.15); color:var(--pos); } .pill.short { background:rgba(239,83,80,.15); color:var(--neg); }
.who { display:flex; flex-direction:column; line-height:1.2; } .who .lbl { color:var(--text); max-width:260px; overflow:hidden; text-overflow:ellipsis; } .who .addr { color:var(--dim); font-family:ui-monospace, Consolas, monospace; font-size:11px; }
.filters { display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin:8px 0 14px; } .chk { color:var(--dim); display:flex; gap:6px; align-items:center; }
.tabs { display:flex; gap:4px; margin:8px 0; } .tabs a { padding:6px 12px; border:1px solid var(--line); border-radius:6px; color:var(--dim); } .tabs a.on { color:var(--text); background:var(--line); }
footer { color:var(--dim); font-size:12px; text-align:center; padding:20px; }
@media (max-width: 900px) { .grid2 { grid-template-columns:1fr; } .card.wide { grid-column:auto; } main { padding:14px; } .top { padding:10px 14px; gap:10px; } }
.tabs a.empty { opacity:.55; }
.top-right { margin-left:auto; display:flex; align-items:center; gap:10px; }
.gear { display:inline-flex; align-items:center; gap:6px; color:var(--dim); padding:6px 10px; border-radius:6px; }
.gear.on, .gear:hover { color:var(--text); background:var(--line); text-decoration:none; }
.note { background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:14px 18px; margin:14px 0; max-width:900px; }
.note header { display:flex; gap:10px; align-items:center; margin-bottom:6px; flex-wrap:wrap; }
.pill.info { background:rgba(91,141,239,.15); color:var(--acc); }
.md h3 { font-size:14px; margin:14px 0 6px; color:var(--text); } .md p, .md li { color:#cfd4df; line-height:1.55; }
.md ul { padding-left:20px; margin:6px 0; } .md strong { color:var(--text); } .md code { font-size:12px; }
.md table { width:auto; margin:8px 0; } .md th, .md td { padding:4px 10px; }
.group-title { font-size:18px; gap:14px; margin-top:30px; } .group-title .pill { font-size:15px; padding:4px 14px; border-radius:12px; } .group-title .more { font-size:15px; }
.tabs-sep { width:1px; background:var(--line); margin:0 6px; }
.ok { color:var(--pos); margin:4px 0 8px; }
.who .dot { display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:6px; vertical-align:middle; }
.who .nick { font-weight:600; }
.chip-s { display:inline-block; font-size:11px; padding:1px 7px; border:1px solid var(--line); border-radius:9px; margin-right:4px; color:var(--dim); }
form.inline { display:flex; gap:6px; align-items:center; flex-wrap:wrap; }
form.inline input[type=color] { width:34px; height:30px; padding:2px; }
.muted-row { opacity:.55; }
.icon-toggle { display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; background:transparent; border:1px solid var(--line); border-radius:6px; color:var(--acc); cursor:pointer; padding:0; }
.icon-toggle[aria-pressed="false"] { color:var(--dim); opacity:.6; }
.icon-toggle:hover { background:var(--line); }
.sr { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
body.no-track .who .dot { display:none; }
body.no-track .who .nick { color:inherit !important; font-weight:inherit; }
.brand { display:inline-flex; align-items:center; } .brand img { height:40px; width:auto; display:block; }
.gear { width:32px; height:32px; padding:0; justify-content:center; border:1px solid var(--line); }
.top > nav { margin-left:auto; } .top > .top-right { margin-left:0; }
@media (max-width: 900px) { .top > nav { margin-left:0; order:3; width:100%; } .top > .top-right { margin-left:auto; } }
/* Barra superior: logo al centro, enlaces e iconos a la derecha. Si la derecha
   no cabe, el logo se desplaza a la izquierda antes que encimarse. */
.top { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; }
.top > .brand { grid-column:2; grid-row:1; }
.top > .top-end { grid-column:3; grid-row:1; display:flex; align-items:center; justify-content:flex-end; gap:14px; min-width:0; }
.top-end > nav { flex-wrap:nowrap; margin-left:0; }
.top-end > .top-right { margin-left:0; }
@media (max-width: 900px) {
  .top { grid-template-columns:1fr; justify-items:center; row-gap:8px; }
  .top > .brand, .top > .top-end { grid-column:1; }
  .top > .top-end { grid-row:2; flex-wrap:wrap; justify-content:center; }
  .top-end > nav { flex-wrap:wrap; justify-content:center; }
}
.top > .top-end { min-width:max-content; } .top-end nav a { white-space:nowrap; }
@media (max-width: 900px) { .top > .top-end { min-width:0; } }
/* Logo vectorial: figura grande + letras aparte; la rémora nada bajo el tiburón. */
.brand { display:inline-flex; align-items:center; gap:10px; text-decoration:none; }
.brand-fig { height:44px; width:auto; aspect-ratio:800/267; display:block; overflow:visible; }
.brand-word { height:13px; width:auto; aspect-ratio:1380/160; display:block; }
.brand-remora { transform-box:fill-box; transform-origin:80% 50%; animation:remora-swim 3.6s ease-in-out infinite; }
@keyframes remora-swim {
  0%   { transform:translate(-60px, 12px) rotate(-1.5deg) scaleY(0.92); }
  25%  { transform:translate(-10px, -8px) rotate(1deg) scaleY(1.06); }
  50%  { transform:translate(60px, 8px) rotate(-1deg) scaleY(0.94); }
  75%  { transform:translate(15px, -12px) rotate(1.5deg) scaleY(1.05); }
  100% { transform:translate(-60px, 12px) rotate(-1.5deg) scaleY(0.92); }
}
@media (prefers-reduced-motion: reduce) { .brand-remora { animation:none; } }
@media (max-width: 900px) { .brand-fig { height:36px; } .brand-word { height:11px; } }
/* Opción 1: el logo completo "nada" (vaivén suave); nombre en texto normal. */
.brand-remora { animation:none; }
.brand-text { font-size:18px; font-weight:700; letter-spacing:.06em; color:var(--text); }
.brand-fig { animation:shark-swim 8s ease-in-out infinite; transform-origin:50% 60%; }
@keyframes shark-swim {
  0%, 100% { transform:translateY(0) rotate(0deg); }
  25%      { transform:translateY(-2px) rotate(-1.2deg); }
  50%      { transform:translateY(0) rotate(0deg); }
  75%      { transform:translateY(2px) rotate(1.2deg); }
}
@media (prefers-reduced-motion: reduce) { .brand-fig { animation:none; } }
@media (max-width: 900px) { .brand-text { font-size:16px; } }
/* Letras a la izquierda, figura animada al centro. */
.top > .brand-word-link { grid-column:1; grid-row:1; justify-self:start; display:inline-flex; align-items:center; }
.brand-word-link img { height:20px; width:auto; display:block; }
@media (max-width: 900px) {
  .top { grid-template-columns:1fr auto 1fr; }
  .top > .brand-word-link { grid-column:1; grid-row:1; }
  .top > .brand { grid-column:2; grid-row:1; }
  .top > .top-end { grid-column:1 / -1; grid-row:2; }
  .brand-word-link img { height:16px; }
}
/* Retoque: tiburón más quieto, rémora con más recorrido (unidades del SVG:
   90 ≈ 7 px en horizontal y 40 ≈ 3 px en vertical con el logo a 44 px). */
@keyframes shark-swim {
  0%, 100% { transform:translateY(0) rotate(0deg); }
  25%      { transform:translateY(-1px) rotate(-0.6deg); }
  50%      { transform:translateY(0) rotate(0deg); }
  75%      { transform:translateY(1px) rotate(0.6deg); }
}
.brand-remora { transform-box:fill-box; transform-origin:80% 50%; animation:remora-swim-2 3.8s ease-in-out infinite; }
@keyframes remora-swim-2 {
  0%   { transform:translate(-90px, 30px) rotate(-2deg) scaleY(0.92); }
  25%  { transform:translate(-20px, -40px) rotate(1.5deg) scaleY(1.06); }
  50%  { transform:translate(90px, 20px) rotate(-1.5deg) scaleY(0.94); }
  75%  { transform:translate(25px, -35px) rotate(2deg) scaleY(1.05); }
  100% { transform:translate(-90px, 30px) rotate(-2deg) scaleY(0.92); }
}
@media (prefers-reduced-motion: reduce) { .brand-remora, .brand-fig { animation:none; } }
/* Vuelta a la primera versión: solo la figura completa se mece; la rémora no se anima aparte. */
.brand-remora { animation:none; }
@keyframes shark-swim {
  0%, 100% { transform:translateY(0) rotate(0deg); }
  25%      { transform:translateY(-2px) rotate(-1.2deg); }
  50%      { transform:translateY(0) rotate(0deg); }
  75%      { transform:translateY(2px) rotate(1.2deg); }
}
.who .addr { font-size:13px; }

/* Login */
.login-page { min-height:100vh; display:grid; place-items:center; }
.login { width:min(340px, calc(100% - 32px)); display:flex; flex-direction:column; align-items:center; padding:32px 0; }
.login-word { width:190px; height:auto; opacity:.45; margin:14px 0 26px; }
.login-form, .login-pk { width:100%; display:flex; flex-direction:column; gap:6px; }
.login-form label { color:var(--dim); font-size:12px; margin-top:6px; }
.login-form input { background:var(--panel); border:1px solid var(--line); color:var(--text); border-radius:8px; padding:10px 12px; font:inherit; }
.login-form input:focus { outline:2px solid var(--acc); outline-offset:0; }
.login button { margin-top:14px; padding:10px; border-radius:8px; border:0; background:var(--acc); color:#fff; font:inherit; font-weight:600; cursor:pointer; }
.login-pk button { background:transparent; border:1px solid var(--line); color:var(--text); }
.login-pk p { text-align:center; min-height:1em; margin:6px 0 0; }
.login-links { margin:14px 0 0; font-size:12px; text-align:center; }
.login-links a { color:var(--dim); }
.login-links a:hover { color:var(--text); }
.login-err { color:var(--neg); margin:0 0 4px; }
.login-fig { width:350px; max-width:calc(100vw - 32px); height:auto; animation:shark-swim 8s ease-in-out infinite; transform-origin:50% 60%; }
@media (prefers-reduced-motion: reduce) { .login-fig { animation:none; } }

/* Tiburón + rémora animados por capas (static/shark/) */
.shk{position:relative;aspect-ratio:2172/724;animation:shk-sway 8s ease-in-out infinite;transform-origin:50% 60%}
.shk>*,.shk-rem>*{position:absolute;display:block}
.shk .shk-tail{left:2.072%;top:39.088%;width:18.646%;height:59.116%;transform-origin:93.8% 50%;animation:shk-tail 2.2s ease-in-out infinite}
.shk .shk-body{left:18.416%;top:1.657%;width:79.512%;height:82.735%}
.shk .shk-lid{left:86.464%;top:52.486%;width:4.604%;height:7.459%;background:#fdfdfd;transform-origin:50% 0;transform:scaleY(0);animation:shk-blink 5s infinite}
.shk .shk-rem{left:24.448%;top:58.702%;width:49.954%;height:37.983%;transform-origin:95% 45%;animation:shk-rem 6s ease-in-out infinite}
.shk .shk-rtail{left:0;top:34.182%;width:22.673%;height:65.818%;transform-origin:74.8% 28.2%;animation:shk-rtail 1.5s ease-in-out infinite}
.shk .shk-rbody{left:14.654%;top:0;width:85.346%;height:76%}
@keyframes shk-sway{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-2%) rotate(-1deg)}}
@keyframes shk-tail{0%,100%{transform:rotate(-4deg) scaleX(1)}50%{transform:rotate(4deg) scaleX(.84)}}
@keyframes shk-blink{0%,90%,100%{transform:scaleY(0)}93%,95%{transform:scaleY(1)}}
@keyframes shk-rem{0%,100%{transform:translate(0,0) rotate(0)}30%{transform:translate(2.5%,-4%) rotate(-1.2deg)}65%{transform:translate(-2%,3%) rotate(1deg)}}
@keyframes shk-rtail{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}
@media (prefers-reduced-motion: reduce){.shk,.shk *{animation:none!important}}
.brand .shk{width:120px}
.login .shk{width:350px;max-width:calc(100vw - 32px)}

@font-face { font-family: "Inter Tight"; font-style: normal; font-weight: 400 700; font-display: swap; src: url("/static/fonts/inter-tight.woff2") format("woff2"); }
/* === Login de la plataforma: formulario comun a Agent, Remora y Ley Dex ===
   Mismo tamano, fuente, color y copia en los tres modulos. Logos aparte. */
:root { --lf-text: #ece8dc; --lf-muted: #aaa69a; --lf-ph: #8e8b83; --lf-bg: #101116;
        --lf-line: rgba(236, 232, 220, 0.18); --lf-line-strong: rgba(236, 232, 220, 0.3);
        --lf-font: "Inter Tight", "Segoe UI", system-ui, sans-serif; --lf-w: 320px; }
.login .login-form, .login .login-pk, .login .login-links { width: min(100%, var(--lf-w)); margin-left: auto; margin-right: auto; font-family: var(--lf-font); }
.login .login-form .lf-field { display: flex; flex-direction: column; gap: 6px; margin: 0 0 14px; font: 500 13px/1.3 var(--lf-font); letter-spacing: 0; text-transform: none; color: var(--lf-muted); }
.login .login-form input { box-sizing: border-box; width: 100%; height: 44px; margin: 0; padding: 0 14px; font: 400 15px/1 var(--lf-font); font-variant-numeric: tabular-nums; letter-spacing: 0; color: var(--lf-text); background: var(--lf-bg); border: 1px solid var(--lf-line); border-radius: 8px; box-shadow: none; outline: none; transition: border-color .15s ease, box-shadow .15s ease; }
.login .login-form input::placeholder { color: var(--lf-ph); opacity: 1; }
.login .login-form input:focus { border-color: var(--lf-text); box-shadow: 0 0 0 3px rgba(236, 232, 220, 0.16); outline: none; }
.login .login-form button, .login .login-pk #passkey-login { box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: 100%; height: 44px; margin: 0; padding: 0 16px; font: 600 15px/1 var(--lf-font); letter-spacing: 0; text-transform: none; border-radius: 8px; cursor: pointer; transition: background .15s ease, border-color .15s ease, color .15s ease; }
.login .login-form button { margin-top: 6px; color: #0b0c10; background: var(--lf-text); border: 1px solid var(--lf-text); }
.login .login-form button:hover { background: #fff; border-color: #fff; }
.login .login-pk #passkey-login { font-weight: 500; color: var(--lf-text); background: #0b0c10; border: 1px solid var(--lf-line-strong); }
.login .login-pk #passkey-login:hover { background: rgba(236, 232, 220, 0.08); border-color: var(--lf-text); }
.login .login-form button:focus-visible, .login .login-pk #passkey-login:focus-visible, .login .login-links a:focus-visible { outline: 2px solid var(--lf-text); outline-offset: 3px; }
.login .login-pk { margin-top: 10px; }
.login .login-links { display: block; margin-top: 18px; text-align: center; font: 400 13px/1.4 var(--lf-font); }
.login .login-links a { color: var(--lf-muted); text-decoration: underline; text-decoration-color: rgba(236, 232, 220, 0.25); text-underline-offset: 3px; }
.login .login-links a:hover { color: var(--lf-text); text-decoration-color: currentColor; }
.login .login-form .lf-field label { margin: 0; font: inherit; color: inherit; letter-spacing: 0; text-transform: none; }
.login .login-form, .login .login-pk:not([hidden]) { display: block; }
.login .login-form input:-webkit-autofill, .login .login-form input:-webkit-autofill:hover, .login .login-form input:-webkit-autofill:focus { -webkit-text-fill-color: var(--lf-text); caret-color: var(--lf-text); -webkit-box-shadow: 0 0 0 40px #101116 inset; transition: background-color 9999s; }
.login .login-pk #passkey-msg:empty { display: none; }

.hide-bulk { display:inline-flex; gap:4px; align-items:center; margin-left:10px; font-weight:normal; color:var(--dim); }
.hide-bulk button { font:inherit; font-size:12px; padding:2px 8px; border-radius:6px; border:1px solid var(--line); background:var(--panel); color:var(--text); cursor:pointer; }

/* Wallets con apodo (revisadas): contorno de la fila en su color */
tr.reviewed td { background:color-mix(in srgb, var(--rc) 7%, transparent); border-top:1px solid var(--rc); border-bottom:1px solid var(--rc); }
tr.reviewed td:first-child { border-left:1px solid var(--rc); }
tr.reviewed td:last-child { border-right:1px solid var(--rc); }
body.no-track tr.reviewed td { background:none; border-color:var(--line); }

.copy-btn { background:none; border:0; padding:2px 4px; color:var(--dim); cursor:pointer; vertical-align:middle; border-radius:4px; }
.copy-btn:hover { color:var(--text); background:var(--line); }
.copy-btn.done { color:var(--pos); }

.dup-warn { border:1px solid #d9a13b; background:color-mix(in srgb, #d9a13b 10%, transparent); border-radius:10px; padding:10px 14px; margin:0 0 14px; }
.dup-warn p { margin:0 0 8px; }
.dup-warn .btn-link { margin-right:10px; color:var(--dim); }

/* Wallets dentro del texto del análisis: mismo formato que las tablas, en línea */
.who.inline { display:inline-flex; vertical-align:middle; margin:0 2px; text-decoration:none; }
/* Seguimiento: la fila enlazada desde el análisis parpadea unos segundos */
tbody tr:target td { animation:row-flash 1s ease-in-out 4; }
@keyframes row-flash { 0%,100% { background:transparent; } 50% { background:color-mix(in srgb, var(--acc) 30%, transparent); } }
.who.inline { flex-direction:row; gap:4px; align-items:center; }
.who.inline .addr { font-size:13px; }

.btn-follow { display:inline-block; padding:6px 12px; border-radius:8px; background:var(--acc); color:#fff; text-decoration:none; font-weight:600; font-size:13px; }
.btn-follow:hover { filter:brightness(1.1); }
.note header .mono { font-size:16px; }

.wallet-actions { display:flex; gap:8px; align-items:center; margin:0 0 12px; }
.btn-print { display:inline-block; padding:6px 12px; border-radius:8px; border:1px solid var(--line); background:var(--panel); color:var(--text); text-decoration:none; font-size:13px; }
.btn-print:hover { border-color:var(--acc); }

/* Tabla con todo centrado menos la primera columna (wallet) */
.t-center th, .t-center td { text-align:center; }
.t-center th:first-child, .t-center td:first-child { text-align:left; }
.t-center td:last-child { text-align:right; }
.t-center.all td:last-child { text-align:center; }

/* Barra: iconos de navegación (solo se ven en celular) */
nav a .ic { display:none; vertical-align:middle; }
@media (max-width: 640px) {
  .top { display:flex; flex-wrap:nowrap; align-items:center; gap:6px; padding:8px 10px; }
  .top > .brand-word-link { display:none; }
  .top > .brand { flex:none; margin-right:8px; }
  .top > .brand .shk { width:56px; }
  .top > .top-end { flex:1; min-width:0; justify-content:flex-end; gap:0; flex-wrap:nowrap; }
  .top-end > nav { gap:0; flex-wrap:nowrap; justify-content:flex-end; }
  nav a { padding:5px 3px; display:inline-flex; }
  nav a .ic { display:block; }
  nav a .t { display:none; }
  .top-right { gap:0; }
  .top-right .gear { padding:5px 3px; border:0; background:none; width:auto; height:auto; } .top-right .icon-toggle { width:24px; height:28px; border:0; }
}
/* Barra móvil: todos los iconos del mismo ancho y separación pareja. */
@media (max-width: 640px) {
  .top-end > nav, .top-right { gap:2px; }
  .top > .top-end { gap:2px; }
  nav a, .top-right .gear, .top-right .icon-toggle { width:26px; height:30px; padding:0; justify-content:center; align-items:center; }
}
@media (max-width: 370px) {
  .top-end > nav, .top-right, .top > .top-end { gap:0; }
  nav a, .top-right .gear, .top-right .icon-toggle { width:23px; }
}

/* Celular: cada fila de una tabla .stack se vuelve una tarjeta (wallet arriba,
   datos en dos columnas con su nombre, tomado del encabezado por base.html). */
@media (max-width: 640px) {
  table.stack { background:transparent; border:0; }
  table.stack thead { display:none; }
  table.stack tbody tr { display:grid; grid-template-columns:1fr 1fr; gap:4px 12px; padding:10px 12px;
    margin:0 0 8px; background:var(--panel); border:1px solid var(--line); border-radius:10px; }
  table.stack td { display:block; border:0; padding:0; text-align:left !important; white-space:normal; min-width:0; }
  table.stack td::before { display:block; content:attr(data-label); font-size:10px; text-transform:uppercase; letter-spacing:.04em; color:var(--dim); }
  table.stack td[data-label="Wallet"] { grid-column:1 / -1; order:-1; padding-bottom:4px; }
  table.stack td[data-label="Wallet"]::before, table.stack td[colspan]::before { content:none; }
  table.stack td[colspan] { grid-column:1 / -1; }
  table.stack tr.reviewed td { border:0; background:none; }
  table.stack tr.reviewed { border-color:var(--rc); background:color-mix(in srgb, var(--rc) 7%, var(--panel)); }
  .scroll:has(> table.stack) { overflow:visible; }
}
@media (max-width: 640px) { .cards .card.wide { grid-column:1 / -1; } }
@media (max-width: 640px) {
  table.stack3 tbody tr { grid-template-columns:1fr 1fr 1fr; }
  .filters { flex-wrap:wrap; } .filters input, .filters select { min-width:0; flex:1 1 140px; }
}
@media (max-width: 640px) { table.stack td[data-label="Marca"] { display:none; } }
.sort-pick { display:none; }
@media (max-width: 640px) { .sort-pick { display:flex; gap:8px; flex:1 1 100%; } .sort-pick select { flex:1; } }
@media (max-width: 640px) { table.stack td[data-label="Tipo"] { display:none; } }
@media (max-width: 640px) {
  /* Leaderboard: el lugar (#) va junto a la wallet en vez de ocupar un dato. */
  table.stack-rank td[data-label="#"] { display:none; }
  table.stack-rank tbody { counter-reset:rk; }
  table.stack-rank tbody tr { counter-increment:rk; }
  table.stack-rank td[data-label="Wallet"] { display:flex; gap:8px; align-items:baseline; }
  table.stack-rank td[data-label="Wallet"]::before { content:"#" counter(rk); font-size:12px; color:var(--dim); text-transform:none; }
}
@media (max-width: 640px) { .filters .chk { white-space:nowrap; flex:0 0 auto; } }
@media (max-width: 640px) {
  /* Pestañas en dos filas (tipo arriba, tiempo abajo), sin partir palabras. */
  .tabs { flex-wrap:wrap; gap:6px; }
  .tabs a { white-space:nowrap; padding:6px 10px; font-size:13px; }
  .tabs .tabs-sep { flex-basis:100%; height:0; margin:0; }
}
.hide-bulk-m { display:none; }
@media (max-width: 640px) {
  .hide-bulk-m { display:flex; margin:0 0 10px; }
  table.stack-wallets td[data-label="Aparece en"], table.stack-wallets td[data-label="Posición actual"],
  table.stack-wallets td[data-label="Apodo y color"] { grid-column:1 / -1; }
  table.stack-wallets form.inline { display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin-top:2px; }
  table.stack-wallets form.inline input[type=text] { flex:1 1 120px; min-width:0; }
  table.stack-wallets tr.muted-row { opacity:.6; }
}
@media (max-width: 640px) { #agregar input[name=address] { flex:1 1 100%; } }
@media (max-width: 640px) {
  .sched-form { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:8px 10px; }
  .sched-form button { grid-column:1 / -1; }
}
@media (max-width: 640px) {
  table.stack-title td[data-label="Tipo"] { display:block; grid-column:1 / -1; order:-1; font-weight:600; }
  table.stack-title td[data-label="Tipo"]::before { content:none; }
}
@media (max-width: 640px) {
  /* Tablas sin columna de wallet: la primera celda (fecha o consulta) es el título de la tarjeta. */
  table.stack-first td:first-child { grid-column:1 / -1; order:-1; font-weight:600; }
  table.stack-first td:first-child::before { content:none; }
  table.stack-first td[data-label="Token"] { display:none; }
  .lede.mono { overflow-wrap:anywhere; }
}
.force-row { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0 6px; }
@media (max-width: 640px) { .force-row form, .force-row button { flex:1 1 100%; width:100%; } }
