/* ============================================================================
   v3.css — ФУНКЦИОНАЛЬНАЯ ЧАСТЬ V3 (цикл правок 2026-06-11).
   Дух Token Terminal: спокойный почти-монохром, КРУПНЫЕ числа, воздух,
   мало цвета. Структура Nansen TGM: воркспейс токена, где график + кошельки +
   лента видны ОДНОВРЕМЕННО. Анти-перебор: текст 14–15px, строки 44–48px,
   меньше панелей — каждая осмысленна. Ложится на tokens/base/components.
   ========================================================================== */

:root{
  --w3-row:48px;          /* лента / таблица */
  --w3-row-side:44px;     /* строки боковой панели */
  --w3-gap:16px;
  --w3-pad:20px;
}

/* ---------- каркас страницы ---------- */
.w3-main{padding-block:var(--space-8) var(--space-16);}

/* шапка-полоса страницы: заголовок слева, КРУПНЫЕ числа справа */
.w3-head{display:flex; align-items:flex-end; justify-content:space-between; gap:var(--space-8);
  flex-wrap:wrap; margin-bottom:var(--space-8);}
.w3-head .sub{color:var(--text-3); font-size:.9375rem; margin-top:var(--space-2); max-width:52ch;}
.w3-stats{display:flex; gap:var(--space-10); flex-wrap:wrap;}
.w3-stat{display:flex; flex-direction:column; gap:2px; min-width:0;}
.w3-stat .v{font-family:var(--font-display); font-weight:500; font-size:2rem; line-height:1.1;
  color:var(--text-1); letter-spacing:-0.02em; font-variant-numeric:tabular-nums;}
.w3-stat .v .u{font-size:.5em; color:var(--text-3); font-weight:500;}
.w3-stat .v .d{font-size:.45em; font-weight:500; letter-spacing:0;}
.w3-stat .l{font-size:.75rem; color:var(--text-3);}

/* панель: спокойная, с верхним светом; ВНУТРИ — воздух */
.w3-panel{background:var(--surface-1); border:1px solid var(--border); border-radius:10px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.045); overflow:hidden; min-width:0;}
.w3-ph{display:flex; align-items:center; gap:10px; min-height:52px; padding-inline:var(--w3-pad);
  border-bottom:1px solid var(--border);}
.w3-ph .t{font-size:.9375rem; font-weight:600; color:var(--text-1); white-space:nowrap; flex:0 0 auto;}
/* подзаголовок НИКОГДА не переносится и не вылезает за карточку — усекается многоточием */
.w3-ph .n{font-family:var(--font-mono); font-size:.8125rem; color:var(--text-3);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0;}
.w3-ph .right{margin-left:auto; display:flex; align-items:center; gap:10px; flex:0 0 auto;}
.w3-ph .lnk{font-size:.8125rem; color:var(--text-2); border-bottom:1px dotted var(--text-disabled);}
.w3-ph .lnk:hover{color:var(--text-1); border-bottom-style:solid;}

/* сигнал: точка + текст — НЕ залитый чип (монохромная дисциплина) */
.w3-sig{display:inline-flex; align-items:center; gap:9px; font-size:.875rem; color:var(--text-2); white-space:nowrap; min-width:0; max-width:100%;}
.w3-sig .dotc{width:8px; height:8px; border-radius:999px; background:var(--c, var(--text-3)); flex:0 0 auto;}
.w3-sig .lb{min-width:0; overflow:hidden; text-overflow:ellipsis;}   /* длинная подпись → … вместо наложения на соседа */
.w3-sig.sm{font-size:.8125rem; gap:7px;}
.w3-sig.sm .dotc{width:7px; height:7px;}

/* ---------- лента (48px, 14–15px текст) ---------- */
.w3-feedrow{display:grid; grid-template-columns:48px 26px minmax(60px,auto) minmax(0,1fr) 104px 26px;
  align-items:center; gap:13px; height:var(--w3-row); padding-inline:var(--w3-pad);
  border-bottom:1px solid rgba(255,255,255,.05); cursor:pointer; font-size:.875rem;
  content-visibility:auto; contain-intrinsic-size:auto var(--w3-row);}
.w3-feedrow:hover{background:var(--fill-hover);}
.w3-feedrow.is-hl{background:var(--fill-selected); box-shadow:inset 2px 0 0 var(--accent);}
.w3-feedrow .tm{font-family:var(--font-mono); font-size:.75rem; color:var(--text-3); white-space:nowrap;}
.w3-feedrow .lg{width:24px; height:24px; border-radius:999px; background:var(--surface-3); overflow:hidden;
  display:flex; align-items:center; justify-content:center; font-size:.5625rem; font-weight:600; color:var(--text-2);}
.w3-feedrow .lg img{width:100%; height:100%; object-fit:cover;}
.w3-feedrow .sym{font-weight:600; color:var(--text-1); white-space:nowrap;}
.w3-feedrow .ph{display:flex; align-items:center; gap:8px; min-width:0; color:var(--text-2);}
.w3-feedrow .ph .fdot{width:7px; height:7px; border-radius:999px; flex:0 0 auto;}
.w3-feedrow .ph .pt{min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.w3-feedrow .usd{font-family:var(--font-mono); font-size:.9375rem; color:var(--text-1); text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums;}
/* TX-ссылка в обозреватель (последняя колонка) — видна приглушённо, ярче на ховере */
/* .has-tx использует ту же 6-трековую сетку, что и база — последний 26px-трек
   пуст у строк без tx → колонка USD выровнена везде одинаково */
.w3-feedrow .ec-tx{display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px;
  color:var(--text-disabled); border-radius:var(--radius-sm); opacity:.5;
  transition:opacity var(--dur-2) var(--ease-std), color var(--dur-2) var(--ease-std), background-color var(--dur-2) var(--ease-std);}
.w3-feedrow:hover .ec-tx{opacity:1;}
.w3-feedrow .ec-tx:hover{color:var(--text-1); background:var(--fill-active);}
.w3-feedrow .ec-tx svg{width:13px; height:13px;}
@media (max-width:880px){ .w3-feedrow{grid-template-columns:48px 26px minmax(56px,auto) minmax(0,1fr) 96px 24px;} }

/* ---------- обзор: сетка лента + активные токены ---------- */
.w3-grid2{display:grid; grid-template-columns:minmax(0,1.5fr) minmax(340px,1fr); gap:var(--w3-gap); align-items:start;}
@media (max-width:1100px){ .w3-grid2{grid-template-columns:1fr;} }

.w3-tokrow{display:flex; align-items:center; gap:14px; height:60px; padding-inline:var(--w3-pad);
  border-bottom:1px solid rgba(255,255,255,.05); cursor:pointer;}
.w3-tokrow:hover{background:var(--fill-hover);}
.w3-tokrow .lg{width:28px; height:28px; border-radius:999px; background:var(--surface-3); overflow:hidden;
  display:flex; align-items:center; justify-content:center; font-size:.625rem; font-weight:600; color:var(--text-2); flex:0 0 auto;}
.w3-tokrow .lg img{width:100%; height:100%; object-fit:cover;}
.w3-tokrow .id{min-width:0;}
.w3-tokrow .id .s{font-weight:600; font-size:.9375rem; color:var(--text-1);}
.w3-tokrow .id .m{font-size:.75rem; color:var(--text-3); overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.w3-tokrow .r{margin-left:auto; text-align:right;}
.w3-tokrow .r .v{font-family:var(--font-mono); font-size:.9375rem; color:var(--text-1);}
.w3-tokrow .r .c{font-size:.75rem; color:var(--text-3);}

/* ---------- таблица токенов (48px, спокойная) ---------- */
.w3-tablewrap{overflow-x:auto;}
.w3-table{width:100%; border-collapse:separate; border-spacing:0; font-size:.875rem;}
.w3-table thead th{position:sticky; top:0; z-index:3; height:44px; background:var(--surface-1);
  border-bottom:1px solid var(--border-strong); text-align:left; padding:0 14px;
  font-size:.75rem; font-weight:500; letter-spacing:var(--track-caps-lg); text-transform:uppercase;
  color:var(--text-3); white-space:nowrap; cursor:pointer; user-select:none;}
.w3-table thead th.num{text-align:right;}
.w3-table thead th:hover{color:var(--text-1);}
.w3-table thead th .arr{font-family:var(--font-mono); margin-left:5px; color:var(--accent);}
.w3-table tbody tr{cursor:pointer; content-visibility:auto; contain-intrinsic-size:auto var(--w3-row);}
.w3-table tbody td{height:var(--w3-row); padding:0 14px; border-bottom:1px solid rgba(255,255,255,.05); white-space:nowrap;}
.w3-table tbody tr:hover td{background:var(--fill-hover);}
.w3-table td.num{font-family:var(--font-mono); font-size:.9375rem; text-align:right; color:var(--text-1);}
.w3-table td.num .u{color:var(--text-3);}
.w3-table td.dim{color:var(--text-3);}
.w3-table .tcell{display:flex; align-items:center; gap:12px; min-width:0;}
.w3-table .tcell .lg{width:26px; height:26px; border-radius:999px; background:var(--surface-3); overflow:hidden; flex:0 0 auto;
  display:flex; align-items:center; justify-content:center; font-size:.5625rem; font-weight:600; color:var(--text-2);}
.w3-table .tcell .lg img{width:100%; height:100%; object-fit:cover;}
.w3-table .tcell .sym{font-weight:600; color:var(--text-1);}
.w3-table .tcell .chs{display:flex; gap:4px; margin-left:2px;}
.w3-table .tcell .ch{width:7px; height:7px; border-radius:999px;}
.w3-table .sigdots{display:flex; align-items:center; gap:6px;}
.w3-table .sigdots .dotc{width:8px; height:8px; border-radius:999px; background:var(--c);}
.w3-table .sigdots .more{font-size:.75rem; color:var(--text-3); margin-left:2px;}

/* поиск в шапке панели */
.w3-search{display:flex; align-items:center; gap:8px; height:36px; padding:0 12px; min-width:240px;
  background:var(--surface-2); border:1px solid var(--border); border-radius:var(--radius-sm);}
/* без акцентного свечения (как омнибокс/nav-search — user): мягкая рамка, без focus-ring-halo */
.w3-search:focus-within{border-color:var(--border-hover);}
.w3-search .ic{width:14px; height:14px; color:var(--text-3);}
.w3-search input{flex:1; min-width:0; background:none; border:none; outline:none; font-size:.875rem; color:var(--text-1);}
.w3-search input:focus-visible{box-shadow:none;}   /* гасим глобальный :focus-visible{--focus-ring} */
.w3-search input::placeholder{color:var(--text-disabled);}

/* ---------- воркспейс токена ---------- */
.ws-band{display:flex; align-items:center; gap:var(--space-6); flex-wrap:wrap;
  padding-block:var(--space-6); margin-bottom:var(--w3-gap);}
.ws-band .back{display:inline-flex; align-items:center; gap:7px; font-size:.8125rem; color:var(--text-3);}
.ws-band .back:hover{color:var(--text-1);}
.ws-band .back svg{width:14px; height:14px;}
.ws-band .lg{width:40px; height:40px; border-radius:999px; background:var(--surface-3); overflow:hidden;
  display:flex; align-items:center; justify-content:center; font-weight:600; color:var(--text-2);}
.ws-band .lg img{width:100%; height:100%; object-fit:cover;}
.ws-band .idn .s{display:flex; align-items:baseline; gap:10px;}
.ws-band .idn .sym{font-size:1.5rem; font-weight:600; letter-spacing:-.015em; color:var(--text-1);}
.ws-band .idn .nm{font-size:.875rem; color:var(--text-3);}
.ws-band .idn .meta{display:flex; align-items:center; gap:10px; margin-top:5px;}
.ws-band .idn .ch{width:8px; height:8px; border-radius:999px; display:inline-block;}
.ws-band .ctr{display:inline-flex; align-items:center; gap:7px; font-family:var(--font-mono); font-size:.75rem;
  color:var(--text-3); background:var(--surface-1); border:1px solid var(--border);
  border-radius:var(--radius-sm); padding:4px 10px; cursor:pointer;}
.ws-band .ctr:hover{color:var(--text-1); border-color:var(--border-hover);}
.ws-band .ctr svg{width:12px; height:12px;}
.ws-band .star{font-size:1.0625rem; color:var(--text-disabled); width:34px; height:34px; border-radius:var(--radius-sm);
  display:inline-flex; align-items:center; justify-content:center; line-height:1; align-self:center;}
.ws-band .star svg{width:1.05em; height:1.05em; display:block;}
.ws-band .star:hover{background:var(--fill-hover);}
.ws-band .star[aria-pressed="true"]{color:var(--warn);}
.ws-band .w3-stats{margin-left:auto;}
.ws-band .w3-stat .v{font-size:1.625rem;}

/* сетка: график + лента слева, кошельки справа — ВСЁ ВИДНО ОДНОВРЕМЕННО */
.ws-grid{display:grid; grid-template-columns:minmax(0,1.85fr) minmax(360px,1fr);
  grid-template-areas:"chart side" "feed side"; gap:var(--w3-gap); align-items:start;}
.ws-chart{grid-area:chart;}
.ws-feed{grid-area:feed;}
.ws-side{grid-area:side; position:sticky; top:calc(var(--nav-h) + 12px);}
@media (max-width:1180px){
  .ws-grid{grid-template-columns:1fr; grid-template-areas:"chart" "side" "feed";}
  .ws-side{position:static;}
}

/* подзаголовок группы в боковой панели — разделяет «состав» и «кошельки»,
   чтобы шкала эмиссии читалась как итог состава, а не вклинивалась в список */
.ws-sub{display:flex; align-items:center; justify-content:space-between;
  padding:16px var(--w3-pad) 7px; font-size:.6875rem; font-weight:500;
  letter-spacing:var(--track-caps-sm); text-transform:uppercase; color:var(--text-3);}
.ws-sub .n{font-family:var(--font-mono); color:var(--text-3);}
/* провенанс-микрокопия под заголовком списка (Ф4) — объясняет, ЧТО за набор (реконструкция /
   каталог), чтобы число не «противоречило» соседним. */
.ws-note{padding:0 var(--w3-pad) 8px; font-size:.6875rem; color:var(--text-3); line-height:1.35; margin-top:-2px;}
/* class-filter-chips (Ф4): фильтруют ОДИН список «Значимые холдеры», счётчики из списка —
   замена противоречивого аккордеона «по классам». Цвет точки из --cc (classMeta). */
.ws-chips{display:flex; flex-wrap:wrap; gap:6px; padding:2px var(--w3-pad) 10px;}
.ws-chip{display:inline-flex; align-items:center; gap:6px; font-size:.75rem; padding:4px 9px;
  border:1px solid var(--border); border-radius:999px; background:var(--surface-2); color:var(--text-2);
  cursor:pointer; white-space:nowrap; transition:color .12s, background .12s, border-color .12s;}
.ws-chip:hover{color:var(--text-1); border-color:var(--border-hover);}
.ws-chip .cls-dot{width:7px; height:7px; border-radius:999px; background:var(--cc, var(--text-3)); flex:0 0 auto;}
.ws-chip .ct{font-family:var(--font-mono); font-size:.6875rem; color:var(--text-3);
  background:var(--surface-3); padding:0 5px; border-radius:5px;}
.ws-chip.is-on{color:var(--text-1); background:var(--accent-tint); border-color:var(--accent-line, color-mix(in srgb,var(--accent) 28%,transparent));}
.ws-chip.is-on .ct{color:var(--text-2);}

/* кошельки: когорты — крупно и спокойно */
.ws-co{display:flex; align-items:center; gap:12px; height:var(--w3-row-side); padding-inline:var(--w3-pad);
  border-bottom:1px solid rgba(255,255,255,.05); font-size:.9375rem;}
.ws-co .dotc{width:9px; height:9px; border-radius:999px; background:var(--c); flex:0 0 auto;}
.ws-co .nm{color:var(--text-2); min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.ws-co .n{margin-left:auto; font-family:var(--font-mono); font-size:1rem; color:var(--text-1);}
.ws-co .usd{font-family:var(--font-mono); font-size:.8125rem; color:var(--text-3); width:78px; text-align:right;}

/* ЕДИНЫЙ бейдж класса (util.classBadgeHtml) — цвет-точка + короткое имя; цвет всегда в паре с
   текстом (CVD). Все токены тема-зависимы → работает в тёмной и светлой теме без правок. */
.cls-badge{display:inline-flex; align-items:center; gap:5px; font-size:.7rem; line-height:1;
  padding:2px 7px; border-radius:6px; background:var(--surface-2); border:1px solid var(--border);
  color:var(--text-1); white-space:nowrap; flex:0 0 auto;}
.cls-badge .cls-dot{width:7px; height:7px; border-radius:999px; background:var(--cc, var(--text-3)); flex:0 0 auto;}
.cls-badge.is-inferred{border-style:dashed;}
.cls-badge.is-inferred::after{content:'?'; color:var(--text-3); font-weight:600; margin-left:1px;}

.ws-emis{padding:var(--space-4) var(--w3-pad) var(--space-5); border-bottom:1px solid rgba(255,255,255,.05);}
.ws-emis .cap{display:flex; justify-content:space-between; align-items:baseline; font-size:.8125rem; color:var(--text-3);}
.ws-emis .cap .v{font-family:var(--font-mono); font-size:1rem; color:var(--text-1);}
.ws-emis .tr{height:8px; border-radius:4px; background:rgba(255,255,255,.07); overflow:hidden; margin-top:8px;}
.ws-emis .tr i{display:block; height:100%; border-radius:4px;}

/* карточка «Экономика» (Nansen/DropsTab-модель, своя): Кап./FDV карточки + бар обращения + supply */
.ws-econ{padding:8px var(--w3-pad) var(--space-4); border-bottom:1px solid rgba(255,255,255,.05);}
/* KPI-плитки: ужимаются по контенту (без «пустой» половины панели) + крупное число */
/* FLUID grid: тайлы РАСТЯГИВАЮТСЯ edge-to-edge и реflow в 2-3-4 колонки по ширине панели —
   лекарство от «пустой правой половины» на широком экране (был flex:0 1 auto = жались влево). */
.ec-cards{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(140px,100%),1fr)); gap:8px; margin-bottom:10px;}
.ec-card{background:var(--surface-2); border:1px solid var(--border); border-radius:var(--radius-sm); padding:9px 14px; display:flex; flex-direction:column; gap:3px; min-width:0;}
.ec-card .l{font-size:.625rem; color:var(--text-3); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; letter-spacing:var(--track-caps-sm); text-transform:uppercase;}
.ec-card .v{font-family:var(--font-display); font-size:1.375rem; line-height:1.05; letter-spacing:-.01em; color:var(--text-1); font-weight:600;}
.ec-card .s{font-size:.625rem; color:var(--text-3); font-family:var(--font-mono); white-space:nowrap; margin-top:1px;}
/* РЕБИЛД «Экономики» (user 2026-06-22): только Mcap+FDV крупными тайлами (1fr 1fr — тянутся,
   универсально на ноутбуке и большом экране), всё остальное — компактные подписи в auto-fit
   гриде (заполняет ширину → без пустых мест справа). */
.ec-cards2{display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:10px;}
.ec-cards2 .ec-card{align-items:center; text-align:center;}   /* подпись+значение ЦЕНТРИРОВАНЫ в блоке */
/* шкала «выпущено в рынок» — % НА самой шкале (без подписи о разводнении) */
.ec-scale{margin:2px 0 12px;}
.ec-scale-tr{position:relative; height:18px; border-radius:6px; overflow:hidden; background:var(--surface-2); border:1px solid var(--border);}
.ec-scale-fl{position:absolute; left:0; top:0; bottom:0; background:var(--accent); border-radius:6px 0 0 6px;}
.ec-scale-pc{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-family:var(--font-mono); font-size:.6875rem; font-weight:600; color:var(--text-1); letter-spacing:.02em; text-shadow:0 1px 3px rgba(0,0,0,.55);}
.ec-facts{display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:0 20px;}
.ec-f{display:flex; justify-content:space-between; align-items:baseline; gap:10px; min-width:0;
  padding:7px 0; border-bottom:1px solid var(--border); font-size:.8125rem;}
.ec-f .k{color:var(--text-3); white-space:nowrap; flex:0 0 auto;}
.ec-f .v{font-family:var(--font-mono); color:var(--text-1); text-align:right; min-width:0; overflow:hidden; text-overflow:ellipsis;}
.ec-f .v.burn{color:var(--warn);}
.ec-supply{margin-bottom:10px;}
.ec-srow{display:flex; justify-content:space-between; align-items:baseline; font-size:.8125rem; color:var(--text-3); margin-bottom:5px;}
.ec-srow .v{font-family:var(--font-mono); color:var(--text-1);}
.ec-bar{height:6px; border-radius:3px; background:rgba(255,255,255,.07); overflow:hidden;}
.ec-bar i{display:block; height:100%; border-radius:3px; background:linear-gradient(90deg, var(--accent), color-mix(in srgb, var(--accent) 50%, transparent));}
/* stacked supply-bar: сегмент обращения + остаток (вне обращения) — визуал в слот, где была
   тонкая полоска; заполняет место и читается без отдельной легенды (как DeBank/Tokenomist). */
.ec-stack{display:flex; height:22px; border-radius:7px; overflow:hidden; border:1px solid var(--border); background:var(--surface-2); margin:4px 0 6px;}
.ec-stack .seg{height:100%; display:flex; align-items:center; min-width:0; font-family:var(--font-mono); font-size:.625rem; white-space:nowrap; overflow:hidden;}
.ec-stack .seg.circ{background:var(--accent); color:var(--accent-ink, #06201C); padding-left:8px; font-weight:600;}
.ec-stack .seg.rest{background:var(--surface-4); color:var(--text-3); padding-left:8px; justify-content:flex-start;}
.ec-srow.sub{font-size:.625rem; margin:0;}
/* строки в сетку (заполняем пустоту справа): метка над значением, тянутся в колонки */
.ec-rows{display:grid; grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); gap:6px 16px;}
.ec-r{display:flex; flex-direction:column; align-items:flex-start; gap:1px; padding:6px 0; font-size:.8125rem; color:var(--text-3);}
.ec-r .v{font-family:var(--font-mono); color:var(--text-1); text-align:left;}
.ec-r .v.burn{color:var(--thr-mid);}   /* сожжено — янтарный акцент */
.ec-chk{margin-top:8px; font-size:.75rem; color:var(--accent);}

.ws-w{display:flex; align-items:center; gap:9px; height:var(--w3-row-side); padding-inline:var(--w3-pad);
  border-bottom:1px solid rgba(255,255,255,.05); font-size:.875rem; overflow:hidden;}
.ws-w .hdot{flex:0 0 auto; width:8px; height:8px; border-radius:999px;}
.ws-w .ad{font-family:var(--font-mono); font-size:.8125rem; color:var(--text-1); white-space:nowrap; flex:0 0 auto;}
.ws-w .lb{color:var(--text-3); font-size:.75rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; flex:1 1 auto;}
.ws-w .usd{margin-left:auto; flex:0 0 auto; font-family:var(--font-mono); color:var(--text-1); white-space:nowrap;}
.ws-w.is-link{cursor:pointer; transition:background .12s ease;}
.ws-w.is-link:hover{background:var(--fill-hover);}
.ws-w.is-link:focus-visible{outline:2px solid var(--accent); outline-offset:-2px;}
.ws-w .chev{flex:0 0 auto; width:14px; height:14px; color:var(--text-disabled); margin-left:6px;}
.ws-w.is-link:hover .chev{color:var(--text-3);}
.ws-w .chev svg{width:14px; height:14px;}
/* компактная копи-иконка адреса (клик копирует, НЕ открывает профиль — глобальный [data-copy]
   обработчик ловит её раньше [data-wallet]). Приглушена по умолчанию, ярче при наведении на строку. */
.ws-w .ws-cp{flex:0 0 auto; width:22px; height:22px; display:inline-flex; align-items:center; justify-content:center;
  margin-left:8px; border-radius:var(--radius-sm); border:1px solid transparent; color:var(--text-disabled);
  cursor:pointer; transition:color .12s ease, background .12s ease, border-color .12s ease;}
.ws-w.is-link:hover .ws-cp{color:var(--text-3);}
.ws-w .ws-cp:hover{color:var(--accent); background:var(--surface-2); border-color:var(--border);}
.ws-w .ws-cp svg{width:13px; height:13px;}
/* «показать ещё N» — раскрытие списка кошельков порциями (событие + профиль токена) */
.ws-more{display:flex; align-items:center; justify-content:center; gap:6px; width:100%; height:34px;
  margin-top:2px; font-size:.8125rem; color:var(--text-2); background:none; border:none; border-top:1px solid var(--border);
  cursor:pointer; transition:color .12s ease, background .12s ease;}
.ws-more:hover{color:var(--text-1); background:var(--fill-hover);}
.ws-more .n{font-family:var(--font-mono); font-size:.6875rem; color:var(--text-3);}

/* лок: спокойный, с конкретикой числа */
.ws-lock{padding:var(--space-5) var(--w3-pad) var(--space-6);}
.ws-ghost{display:flex; align-items:center; gap:12px; height:36px;}
.ws-ghost i{height:9px; border-radius:5px; background:rgba(255,255,255,.06);}
.ws-ghost .a{width:120px;} .ws-ghost .b{width:70px;} .ws-ghost .c{width:84px; margin-left:auto;}
.ws-lockcard{margin-top:var(--space-4); display:flex; flex-direction:column; align-items:center; gap:9px;
  text-align:center; background:var(--surface-2); border:1px solid var(--border-strong);
  border-radius:var(--radius-md); padding:var(--space-6);}
.ws-lockcard .ic{width:18px; height:18px; color:var(--accent);}
.ws-lockcard .t{font-size:.9375rem; font-weight:500; color:var(--text-1);}
.ws-lockcard .s{font-size:.8125rem; color:var(--text-3);}
.ws-lockcard .btn{margin-top:var(--space-2);}

.w3-empty{display:flex; flex-direction:column; align-items:center; gap:10px;
  padding:var(--space-12) var(--space-6); color:var(--text-3); font-size:.875rem; text-align:center;}
.w3-empty .ic{width:20px; height:20px; opacity:.6;}

@view-transition{navigation:auto;}
