/* ---- токены портала (как в lib/stocks.css) ---- */
:root{
  --lime:#c8f048;--lime600:#b4dd33;--lime-soft:#eef8c9;--ink:#0c0c0e;
  --g900:#24262a;--g700:#4a4d54;--g500:#676b73;--g400:#858b94;--g300:#c9cdd3;
  --g200:#e3e6ea;--g100:#eef0f3;--g50:#f6f7f9;--white:#fff;
  --up:#147a42;--down:#c8362a;--header-bg:rgba(246,247,249,.94);
  --thead-bg:#fbfcfd;--focus:#2f6df0;--shadow:0 8px 30px rgba(12,12,14,.07);
  --amber:#d99a06
}
:root[data-theme="dark"]{
  --ink:#f4f5f7;--g900:#dfe2e7;--g700:#b0b5bd;--g500:#9ba1aa;--g400:#81868e;
  --g300:#4a4d54;--g200:#31343a;--g100:#26282d;--g50:#161719;--white:#202226;
  --lime-soft:rgba(200,240,72,.13);--up:#3fb97a;--down:#e56a5c;
  --header-bg:rgba(22,23,25,.94);--thead-bg:#1c1e21;--focus:#8fb4ff;
  --shadow:0 10px 34px rgba(0,0,0,.22);--amber:#f2c114
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0;overflow-x:clip}
body{min-height:100vh;background:var(--g50);color:var(--g900);font-family:'Manrope',system-ui,sans-serif}
button,input,select{font:inherit}
button{touch-action:manipulation}
a{color:var(--ink);text-decoration:none}
:where(a,button,input,select,[tabindex]):focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important}
main{width:min(1600px,100%);margin:0 auto;padding:26px 28px 72px}

/* ---- шапка (как lib/site-header.css) ---- */
.site-head-common{position:sticky;top:0;z-index:40;width:100%;background:var(--header-bg);backdrop-filter:blur(12px);border-bottom:1px solid var(--g200)}
.site-head-common .bar{width:100%;max-width:1600px;height:70px;min-height:70px;margin:0 auto;padding:12px 24px;display:flex;align-items:center;gap:18px}
.site-head-common .logo{flex:none;display:inline-flex;align-items:center;gap:7px;color:var(--ink);font-size:22px;font-weight:800;letter-spacing:-.03em}
.site-head-common .logo .plus{display:inline-flex;align-items:center;justify-content:center;padding:3px 7px;border-radius:7px;background:var(--lime);color:#0c0c0e;font-size:11px;line-height:1;letter-spacing:0}
.site-head-common nav{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:3px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
.site-head-common nav::-webkit-scrollbar{display:none}
.site-head-common nav a{flex:none;padding:8px 10px;border-radius:9px;color:var(--g500);font-size:13px;font-weight:700;line-height:1.2;white-space:nowrap}
.site-head-common nav a:hover{background:var(--white);color:var(--ink)}
.site-head-common nav a.active{background:var(--lime);color:#0c0c0e;box-shadow:inset 0 0 0 1px var(--lime600)}
.site-head-common .nav-sep{flex:none;width:1px;height:22px;margin:0 3px;background:var(--g200)}
.site-head-common .actions{flex:none;margin-left:auto;display:flex;align-items:center;gap:8px}
.theme-btn-common,.tg-top{flex:none;display:inline-flex;align-items:center;justify-content:center;height:38px;border:1px solid var(--g200);background:var(--white);color:var(--ink)}
.theme-btn-common{width:38px;padding:0;border-radius:10px;cursor:pointer;font-size:15px}
.tg-top{padding:0 13px;border-radius:10px;font-size:12px;font-weight:700}
@media(max-width:860px){
  .site-head-common .bar{height:112px;min-height:112px;display:grid;grid-template-columns:1fr auto;gap:8px 12px;padding:10px 14px}
  .site-head-common .logo{grid-column:1;grid-row:1}
  .site-head-common .actions{grid-column:2;grid-row:1}
  .site-head-common nav{grid-column:1/-1;grid-row:2;width:100%;padding:0}
  .site-head-common .nav-sep{display:none}
}

/* ---- заголовок раздела ---- */
.crypto-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:18px}
h1{margin:0;color:var(--ink);font-size:clamp(29px,3vw,38px);font-weight:800;line-height:1.12;letter-spacing:-.03em}
.rule{width:64px;height:4px;margin:11px 0 7px;border-radius:2px;background:var(--lime)}
.sub{margin:0;max-width:760px;color:var(--g500);font-size:15px;line-height:1.55}
.sub a{font-weight:700;color:var(--g700);border-bottom:2px solid var(--lime);transition:color .12s}
.sub a:hover{color:var(--ink)}
.trust-line{display:inline-flex;max-width:480px;margin:0;flex-direction:column;align-items:flex-end;gap:6px;color:var(--g700);font-size:12.5px;font-weight:700;line-height:1.6;text-align:right}
.live-dot{display:inline-block;width:8px;height:8px;margin-right:6px;border-radius:50%;background:var(--up);box-shadow:0 0 0 3px color-mix(in srgb,var(--up) 15%,transparent);animation:pulse 2.4s infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 3px color-mix(in srgb,var(--up) 15%,transparent)}50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--up) 5%,transparent)}}
.proto-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:var(--lime-soft);border:1px solid var(--lime600);color:var(--g900);font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}

/* ---- макро-карточки ---- */
.macro-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:16px}
@media(max-width:1100px){.macro-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}}
.mcard{display:flex;min-width:0;flex-direction:column;gap:7px;padding:13px 15px;border:1px solid var(--g200);border-radius:14px;background:var(--white);box-shadow:0 1px 2px rgba(12,12,14,.03)}
.mcard .k{color:var(--g500);font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.mcard .v{color:var(--ink);font-family:'JetBrains Mono',monospace;font-size:21px;font-weight:700;letter-spacing:-.01em;font-variant-numeric:tabular-nums;white-space:nowrap}
.mcard .v small{font-size:13px;font-weight:700;color:var(--g700)}
.mcard .s{display:flex;align-items:center;gap:6px;color:var(--g500);font-size:11.5px;font-weight:600;line-height:1.3;flex-wrap:wrap}
.delta{font-family:'JetBrains Mono',monospace;font-size:11.5px;font-weight:700}
.delta.up{color:var(--up)}
.delta.down{color:var(--down)}
.dombar{display:flex;width:100%;height:6px;border-radius:3px;overflow:hidden;background:var(--g100)}
.dombar i{display:block;height:100%}
.dombar .b1{background:var(--lime600)}
.dombar .b2{background:var(--ink)}
.dombar .b3{background:var(--g300)}
.dom-legend{display:flex;gap:10px;margin-top:4px;color:var(--g500);font-size:10.5px;font-weight:600}
.dom-legend b{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:4px;vertical-align:-1px}
.fg{display:flex;align-items:center;gap:10px}
.fg-gauge{position:relative;flex:1;height:8px;border-radius:4px;background:linear-gradient(to right,#c8362a 0%,#e8833a 30%,#d9c94a 55%,#9fc93c 78%,#1f9d57 100%)}
.fg-gauge i{position:absolute;top:-3px;width:4px;height:14px;border-radius:2px;background:var(--ink);box-shadow:0 0 0 2px var(--white)}
.fg-state{color:var(--up);font-weight:800;font-size:13px;white-space:nowrap}

/* ---- управление: поиск, кнопки ---- */
.controls-top{display:grid;grid-template-columns:minmax(260px,1.7fr) auto auto auto;gap:10px;align-items:end}
.search-field{display:flex;min-width:0;flex-direction:column;gap:6px}
.search-field>label{color:var(--g700);font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.search-box{position:relative;display:flex;align-items:center}
.search-box svg{position:absolute;left:13px;color:var(--g500);pointer-events:none}
.search-box input{width:100%;min-height:46px;padding:10px 16px 10px 42px;border:1px solid var(--g300);border-radius:12px;background:var(--white);color:var(--ink);font-size:15px}
.search-box input::placeholder{color:var(--g500)}
.ctl-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:46px;padding:0 15px;border:1px solid var(--g300);border-radius:12px;background:var(--white);color:var(--ink);font-size:13px;font-weight:800;white-space:nowrap;cursor:pointer;position:relative}
.ctl-btn:hover{border-color:var(--lime600)}
.ctl-btn .cnt{min-width:19px;height:19px;padding:0 5px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:var(--lime);color:#0c0c0e;font-family:'JetBrains Mono',monospace;font-size:10.5px;font-weight:700}
.reset-inline{min-height:46px;padding:0 14px;border:1px solid var(--g300);border-radius:12px;background:var(--white);color:var(--g500);font-size:13px;font-weight:700;white-space:nowrap;cursor:pointer}
.reset-inline:hover{border-color:var(--lime600);color:var(--ink)}

/* ---- чипы и пилюли ---- */
.chip-row{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-top:12px}
.row-label{margin-right:2px;color:var(--g500);font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.chip{display:inline-flex;min-height:33px;align-items:center;gap:6px;padding:0 13px;border:1px solid var(--g300);border-radius:999px;background:var(--white);color:var(--g700);font-size:12.5px;font-weight:700;cursor:pointer;white-space:nowrap;transition:border-color .12s,background-color .12s,color .12s}
.chip:hover{border-color:var(--lime600);color:var(--ink)}
.chip.is-active{border-color:var(--lime600);background:var(--lime-soft);color:var(--ink)}
.chip .n{color:var(--g400);font-family:'JetBrains Mono',monospace;font-size:10.5px}
.chip.is-active .n{color:var(--g700)}
.metric-pill{display:inline-flex;min-height:33px;align-items:center;gap:6px;padding:0 12px;border:1px solid var(--g300);border-radius:999px;background:var(--white);color:var(--g700);font-size:12.5px;font-weight:700;cursor:pointer;white-space:nowrap;transition:border-color .12s,background-color .12s,color .12s}
.metric-pill b{color:var(--ink);font-family:'JetBrains Mono',monospace;font-size:11.5px;font-weight:700;font-variant-numeric:tabular-nums}
.metric-pill:hover{border-color:var(--lime600);color:var(--ink)}
.metric-pill.is-active{border-color:var(--lime600);background:var(--lime-soft);color:var(--ink)}
.metric-pill[aria-expanded="true"]{border-color:var(--lime600);box-shadow:0 0 0 3px color-mix(in srgb,var(--lime) 30%,transparent)}

/* ---- поповер пилюли ---- */
.pill-popover{position:absolute;z-index:45;width:min(330px,calc(100vw - 24px));padding:15px;border:1px solid var(--g300);border-radius:14px;background:var(--white);box-shadow:var(--shadow)}
.pill-popover header{display:flex;align-items:center;justify-content:space-between;gap:12px}
.pill-popover h3{margin:0;color:var(--ink);font-size:15px;letter-spacing:-.01em}
.pill-popover-close{width:30px;height:30px;padding:0;border:0;border-radius:8px;background:var(--g100);color:var(--g500);font-size:19px;line-height:1;cursor:pointer}
.pill-popover-close:hover{color:var(--ink)}
.pill-presets{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin-top:12px}
.pill-presets button{min-height:38px;padding:6px 8px;border:1px solid var(--g300);border-radius:10px;background:var(--g50);color:var(--ink);font-size:11.5px;font-weight:700;line-height:1.2;cursor:pointer}
.pill-presets button:hover{border-color:var(--lime600);background:var(--lime-soft)}
.pill-presets button.on{border-color:var(--lime600);background:var(--lime-soft)}
.pill-range{margin-top:12px;padding-top:11px;border-top:1px solid var(--g200)}
.pill-range>p{margin:0 0 8px;color:var(--ink);font-size:12px;font-weight:800}
.pill-range>div{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.pill-range label{display:flex;flex-direction:column;gap:5px;color:var(--g500);font-size:11px;font-weight:700}
.pill-range input{width:100%;min-height:40px;padding:0 11px;border:1px solid var(--g300);border-radius:10px;background:var(--white);color:var(--ink);font-size:14px}
.pill-popover footer{display:flex;align-items:center;justify-content:space-between;margin-top:12px}
.pill-clear{padding:0 4px;border:0;background:transparent;color:var(--g500);font-size:12.5px;font-weight:700;cursor:pointer}
.pill-clear:hover{color:var(--ink)}
.pill-apply{min-width:104px;min-height:38px;padding:0 16px;border:0;border-radius:11px;background:var(--lime);color:#0c0c0e;font-size:13px;font-weight:800;cursor:pointer}
.pill-apply:hover{background:var(--lime600)}

/* ---- активные фильтры ---- */
.active-chips{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-top:12px}
.active-chips .achip{display:inline-flex;align-items:center;gap:6px;padding:5px 7px 5px 11px;border:1px solid var(--lime600);border-radius:999px;background:var(--lime-soft);color:var(--ink);font-size:12px;font-weight:700}
.active-chips .achip span{color:var(--g700);font-weight:600}
.active-chips .achip button{display:inline-flex;width:20px;height:20px;align-items:center;justify-content:center;border:0;border-radius:50%;background:transparent;color:var(--g500);font-size:14px;cursor:pointer;line-height:1}
.active-chips .achip button:hover{background:var(--g200);color:var(--ink)}
.linklike{margin-left:2px;padding:0;border:0;background:transparent;color:var(--g500);font-size:12px;font-weight:700;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.linklike:hover{color:var(--ink)}

/* ---- результаты ---- */
.results-head{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin:18px 0 10px}
#resultCount{margin:0;color:var(--ink);font-size:14.5px;font-weight:800}
#resultCount b{font-family:'JetBrains Mono',monospace}
#sortNote{margin:0;color:var(--g500);font-size:12px;font-weight:600}

/* ---- таблица ---- */
.tablewrap{position:relative;overflow:hidden;border:1px solid var(--g200);border-radius:16px;background:var(--white)}
.scroll{overflow:auto;max-height:calc(100vh - 120px)}
table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}
thead th{position:sticky;z-index:4;top:0;padding:0;border-bottom:1px solid var(--g200);background:var(--thead-bg);text-align:right;white-space:nowrap}
thead th .thb{display:inline-flex;align-items:center;gap:4px;min-height:36px;padding:4px 6px;border:0;background:transparent;color:var(--g500);font-family:'JetBrains Mono',monospace;font-size:10.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;cursor:pointer}
thead th .thb:hover{color:var(--ink)}
thead th[aria-sort] .thb{color:var(--ink)}
thead th .thb::after{content:"▾";font-size:9px;opacity:.35;transform:translateY(-1px)}
thead th[aria-sort="descending"] .thb::after{content:"▾";opacity:1;color:var(--lime600);-webkit-text-stroke:.5px var(--ink)}
thead th[aria-sort="ascending"] .thb::after{content:"▴";opacity:1;color:var(--lime600);-webkit-text-stroke:.5px var(--ink)}
thead th.nosort .thb{cursor:default}
thead th.nosort .thb:hover{color:var(--g500)}
thead th.nosort .thb::after{content:none}
tbody td{height:46px;padding:6px 6px;border-bottom:1px solid var(--g100);background:var(--white);color:var(--g900);text-align:right;vertical-align:middle;white-space:nowrap;font-variant-numeric:tabular-nums}
tbody tr:last-child td{border-bottom:0}
tbody tr{cursor:pointer}
tbody tr:hover td{background:var(--g50)}
td.c-star,th.h-star{position:sticky;z-index:3;left:0;width:26px;min-width:26px;padding-left:2px;padding-right:0;text-align:center}
th.h-rank{left:26px}
td.c-rank{position:sticky;z-index:3;left:26px;width:34px;min-width:34px;padding-left:0;padding-right:2px;color:var(--g400);font-family:'JetBrains Mono',monospace;font-size:11.5px;text-align:center}
th.h-coin{left:90px;text-align:left}
td.c-coin{position:sticky;z-index:3;left:60px;width:186px;min-width:186px;max-width:186px;padding-left:4px;text-align:left;overflow:hidden}
td.c-star,td.c-rank,td.c-coin{box-shadow:6px 0 8px -6px rgba(12,12,14,.08)}
.fav-star{display:inline-flex;width:26px;height:26px;align-items:center;justify-content:center;border:0;border-radius:8px;background:transparent;color:var(--g300);cursor:pointer}
.fav-star:hover{color:var(--g500);background:var(--g100)}
.fav-star:active{transform:scale(.88)}
.fav-star.on{color:var(--lime600)}
.fav-star.on svg path{fill:var(--lime);stroke:var(--lime600)}
.coin-cell{display:flex;align-items:center;gap:8px;min-width:0;max-width:100%}
.coin-ava{flex:none;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:12.5px;letter-spacing:0}
.coin-id{display:flex;flex-direction:column;gap:1px;min-width:0;overflow:hidden}
.coin-name{display:block;color:var(--ink);font-weight:700;font-size:12.5px;line-height:1.2;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.coin-name .ticker{margin-left:5px;color:var(--g500);font-family:'JetBrains Mono',monospace;font-size:10.5px;font-weight:500}
.coin-badge{flex:none;align-self:flex-start;padding:1px 5px;border:1px solid var(--g200);border-radius:6px;background:var(--g50);color:var(--g500);font-family:'JetBrains Mono',monospace;font-size:9.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;max-width:86px;overflow:hidden;text-overflow:ellipsis}
td.num{font-family:'JetBrains Mono',monospace;font-size:12.5px}
td.price-cell{color:var(--ink);font-weight:700}
.src-dot{display:inline-block;width:6px;height:6px;margin-right:7px;border-radius:50%;vertical-align:2px;background:var(--g300)}
.src-dot.rt{background:var(--lime600);box-shadow:0 0 0 2.5px color-mix(in srgb,var(--lime) 35%,transparent);animation:rtpulse 2.6s infinite}
@keyframes rtpulse{0%,100%{box-shadow:0 0 0 2.5px color-mix(in srgb,var(--lime) 35%,transparent)}50%{box-shadow:0 0 0 5px color-mix(in srgb,var(--lime) 10%,transparent)}}
.perf{display:inline-block;min-width:52px;padding:3px 6px;border-radius:7px;font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:700}
.perf.up{color:var(--up);background:color-mix(in srgb,var(--up) 8%,transparent)}
.perf.down{color:var(--down);background:color-mix(in srgb,var(--down) 8%,transparent)}
.perf.flat{color:var(--g500);background:var(--g100)}
td.mut{color:var(--g500)}
td.dim{color:var(--g400)}
td.dd-col{font-weight:700}
td.dd-col.up{color:var(--up)}
td.dd-col.down{color:var(--down)}
@keyframes flashUp{from{background:color-mix(in srgb,var(--up) 13%,var(--white))}to{background:var(--white)}}
@keyframes flashDown{from{background:color-mix(in srgb,var(--down) 13%,var(--white))}to{background:var(--white)}}
td.fu{animation:flashUp .8s ease-out}
td.fd{animation:flashDown .8s ease-out}
.spark-cell svg{display:block;margin-left:auto}
.empty-row td{padding:44px 20px;text-align:center;color:var(--g500);font-size:14px;cursor:default}
.empty-row td b{display:block;color:var(--ink);font-size:16px;margin-bottom:6px}

/* ---- диалоги ---- */
dialog.fdialog{width:min(780px,calc(100vw - 28px));max-height:min(840px,calc(100dvh - 28px));padding:0;border:0;border-radius:16px;background:var(--white);color:var(--g900);box-shadow:0 22px 70px rgba(12,12,14,.3)}
dialog.fdialog::backdrop{background:rgba(12,12,14,.56);backdrop-filter:blur(2px)}
.fdialog-shell{display:flex;max-height:inherit;flex-direction:column}
.fdialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:20px 22px 16px;border-bottom:1px solid var(--g200)}
.fdialog-head h2{margin:0;color:var(--ink);font-size:22px;letter-spacing:-.02em}
.fdialog-head p{margin:4px 0 0;color:var(--g500);font-size:13px}
.icon-btn{display:inline-flex;flex:none;width:44px;height:44px;align-items:center;justify-content:center;border:1px solid var(--g200);border-radius:12px;background:var(--g50);color:var(--ink);cursor:pointer}
.fdialog-body{display:grid;grid-template-columns:1fr 1fr;gap:12px;overflow:auto;padding:18px 22px 24px}
@media(max-width:700px){.fdialog-body{grid-template-columns:1fr}}
.filter-section{min-width:0;margin:0;padding:14px;border:1px solid var(--g200);border-radius:14px;background:var(--g50)}
.filter-section-wide{grid-column:1/-1}
.filter-section legend{padding:0 6px;color:var(--ink);font-size:14px;font-weight:800}
.choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px 10px;max-height:186px;overflow:auto}
.choice-grid label{display:flex;min-height:34px;align-items:center;gap:8px;color:var(--g700);font-size:12px;line-height:1.25;cursor:pointer}
.choice-grid .n{margin-left:auto;color:var(--g400);font-family:'JetBrains Mono',monospace;font-size:10.5px}
.choice-grid input,.checks input,.radio-line input{width:17px;height:17px;flex:none;accent-color:var(--lime600)}
.range-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px}
.range-field{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:11px}
.range-field:last-child{margin-bottom:0}
.range-field>span{grid-column:1/-1;color:var(--g700);font-size:12px;font-weight:700}
.range-field label{display:flex;flex-direction:column;gap:4px;color:var(--g500);font-size:10.5px;font-weight:700}
.range-field input,.single-field input,.single-field select{width:100%;min-height:40px;padding:0 11px;border:1px solid var(--g300);border-radius:10px;background:var(--white);color:var(--ink);font-size:14px}
.single-field{display:flex;flex-direction:column;gap:4px;margin-bottom:11px;color:var(--g500);font-size:10.5px;font-weight:700}
.radio-line{display:flex;gap:16px;flex-wrap:wrap}
.radio-line label{display:inline-flex;min-height:34px;align-items:center;gap:8px;color:var(--g700);font-size:13px;cursor:pointer}
.fdialog-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 22px 18px;border-top:1px solid var(--g200)}
.secondary-btn{min-height:44px;padding:0 16px;border:1px solid var(--g300);border-radius:12px;background:var(--white);color:var(--ink);font-size:13px;font-weight:800;cursor:pointer}
.secondary-btn:hover{border-color:var(--lime600)}
.primary-btn{min-height:44px;padding:0 20px;border:0;border-radius:12px;background:var(--lime);color:#0c0c0e;font-size:13px;font-weight:800;cursor:pointer}
.primary-btn:hover{background:var(--lime600)}
.checks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 12px}
.checks label{display:flex;min-height:36px;align-items:center;gap:8px;color:var(--g700);font-size:12.5px;cursor:pointer}
.checks label.off{color:var(--g400);text-decoration:line-through}
dialog.coldialog{width:min(560px,calc(100vw - 28px));padding:0;border:0;border-radius:16px;background:var(--white);color:var(--g900);box-shadow:0 22px 70px rgba(12,12,14,.3)}
dialog.coldialog::backdrop{background:rgba(12,12,14,.56);backdrop-filter:blur(2px)}

/* ---- шторка монеты ---- */
.drawer-back{position:fixed;inset:0;z-index:58;background:rgba(12,12,14,.45);opacity:0;pointer-events:none;transition:opacity .2s}
.drawer-back.open{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;right:0;bottom:0;z-index:59;width:min(492px,100vw);background:var(--white);border-left:1px solid var(--g200);box-shadow:-24px 0 60px rgba(12,12,14,.22);transform:translateX(103%);transition:transform .22s ease-out;overflow-y:auto;overscroll-behavior:contain}
.drawer.open{transform:none}
.drawer-in{padding:22px 24px 30px}
.drawer-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}
.coin-hero{display:flex;align-items:center;gap:13px;min-width:0}
.coin-ava.big{width:46px;height:46px;font-size:19px}
.coin-hero h2{margin:0;color:var(--ink);font-size:22px;font-weight:800;letter-spacing:-.02em;line-height:1.15}
.coin-hero .meta{display:flex;align-items:center;gap:8px;margin-top:3px;color:var(--g500);font-family:'JetBrains Mono',monospace;font-size:11.5px}
.rank-pill{padding:1.5px 7px;border:1px solid var(--g200);border-radius:6px;background:var(--g50);font-weight:700}
.price-hero{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.price-hero .p{color:var(--ink);font-family:'JetBrains Mono',monospace;font-size:30px;font-weight:700;letter-spacing:-.02em}
.changes-row{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}
.change-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:8px;background:var(--g50);border:1px solid var(--g200);font-family:'JetBrains Mono',monospace;font-size:11.5px;font-weight:700;color:var(--g500)}
.change-chip b{font-weight:700}
.change-chip b.up{color:var(--up)}
.change-chip b.down{color:var(--down)}
.chart-block{margin-top:20px}
.chart-nav{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.seg{display:inline-flex;gap:2px;padding:2px;border:1px solid var(--g200);border-radius:10px;background:var(--g50)}
.seg button{min-height:28px;padding:0 10px;border:0;border-radius:8px;background:transparent;color:var(--g500);font-size:11.5px;font-weight:700;cursor:pointer}
.seg button:hover{color:var(--ink)}
.seg button.on{background:var(--white);color:var(--ink);box-shadow:0 1px 2px rgba(12,12,14,.08)}
.chart-box{position:relative;border:1px solid var(--g200);border-radius:14px;background:var(--g50);padding:10px 8px 6px}
.chart-box svg{display:block;width:100%;height:170px}
.chart-mm{display:flex;justify-content:space-between;padding:2px 6px 4px;color:var(--g400);font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:700}
.dgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:8px}
.dstat{padding:10px 12px;border:1px solid var(--g200);border-radius:12px;background:var(--white)}
.dstat .k{color:var(--g500);font-size:10.5px;font-weight:700;font-family:'JetBrains Mono',monospace;text-transform:uppercase;letter-spacing:.05em}
.dstat .v{margin-top:4px;color:var(--ink);font-family:'JetBrains Mono',monospace;font-size:14.5px;font-weight:700;font-variant-numeric:tabular-nums}
.dstat .v.up{color:var(--up)}
.dstat .v.down{color:var(--down)}
.dsection{margin-top:22px}
.dsection>h3{margin:0 0 10px;color:var(--ink);font-size:16px;font-weight:800;letter-spacing:-.01em;display:flex;align-items:center;gap:8px}
.dsection>h3::before{content:"";width:16px;height:3px;border-radius:2px;background:var(--lime)}
.tok-bar{height:10px;border-radius:5px;background:var(--g100);overflow:hidden;margin:10px 0 7px}
.tok-bar i{display:block;height:100%;border-radius:5px;background:linear-gradient(to right,var(--lime600),var(--lime))}
.tok-cap{display:flex;justify-content:space-between;color:var(--g500);font-size:11.5px;font-weight:600;margin-bottom:12px}
.tok-cap b{color:var(--ink);font-family:'JetBrains Mono',monospace}
.kv{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid var(--g100);font-size:13px}
.kv:last-child{border-bottom:0}
.kv .k{color:var(--g500);font-weight:600}
.kv .v{color:var(--ink);font-family:'JetBrains Mono',monospace;font-weight:700;font-size:12.5px;text-align:right}
.about-text{margin:0;color:var(--g700);font-size:13.5px;line-height:1.65}
.link-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px}
.tag-pill{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border:1px solid var(--g200);border-radius:999px;background:var(--g50);color:var(--g700);font-size:11.5px;font-weight:700}
.contract-row{display:flex;align-items:center;gap:8px;margin-top:12px;min-width:0}
.contract-row code{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:8px 11px;border:1px solid var(--g200);border-radius:10px;background:var(--g50);color:var(--g700);font-family:'JetBrains Mono',monospace;font-size:11px}
.copy-btn{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border:1px solid var(--g300);border-radius:10px;background:var(--white);color:var(--ink);font-size:12px;font-weight:700;cursor:pointer}
.copy-btn:hover{border-color:var(--lime600)}

/* ---- тост ---- */
.toast{position:fixed;left:50%;bottom:26px;z-index:80;transform:translateX(-50%) translateY(16px);padding:11px 18px;border-radius:12px;background:var(--ink);color:var(--g50);font-size:13px;font-weight:700;opacity:0;pointer-events:none;transition:.2s}
.toast.show{opacity:1;transform:translateX(-50%)}
.proto-note{margin:14px 2px 0;color:var(--g400);font-size:12px;line-height:1.6}

@media(max-width:900px){
  main{padding:20px 14px 60px}
  .crypto-head{flex-direction:column;align-items:flex-start;gap:10px}
  .trust-line{align-items:flex-start;text-align:left}
  .controls-top{grid-template-columns:1fr 1fr}
  .search-field{grid-column:1/-1}
  .scroll{max-height:70vh}
  td.c-coin{width:180px;min-width:180px;max-width:180px}
  .dgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .checks{grid-template-columns:1fr 1fr}
}

/* Логотип монеты в кружке. Буква под ним остаётся подложкой на время
   загрузки картинки с CDN - иначе строка таблицы дёргается. */
.coin-ava{overflow:hidden}
.coin-ava img{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%}
.coin-ava.has-logo{background:transparent!important}

/* Подсказка у названия колонки: тот же значок, что в скринере акций. */
.bc-q{position:relative;display:inline-flex;align-items:center;justify-content:center;
  flex:none;width:14px;height:14px;margin-left:5px;border-radius:50%;
  background:var(--g200);color:var(--g500);font-size:9px;font-style:normal;
  font-weight:800;line-height:1;cursor:help;text-transform:none;letter-spacing:0;
  vertical-align:middle}
.bc-q:hover,.bc-q:focus-visible{background:var(--lime);color:#0c0c0e}
thead th .bc-q{margin-left:4px}
.bc-tip{position:fixed;z-index:200;max-width:min(280px,calc(100vw - 20px));
  padding:9px 12px;border-radius:9px;background:#24262a;color:#fff;
  font-family:'Manrope',system-ui,sans-serif;font-size:12px;font-weight:500;line-height:1.45;
  text-align:left;white-space:normal;pointer-events:none;
  box-shadow:0 10px 30px rgba(12,12,14,.28)}
:root[data-theme="dark"] .bc-tip{background:#3a3d44}
.bc-tip[hidden]{display:none}

/* Строка «показать ещё»: таблица рисуется порциями по сто монет. */
.more-row td{padding:10px 12px;text-align:center;border-bottom:0}
.more-btn{min-height:34px;padding:0 18px;border:1px solid var(--g300);border-radius:10px;
  background:var(--white);color:var(--g700);font:inherit;font-size:12.5px;font-weight:700;cursor:pointer}
.more-btn:hover{border-color:var(--ink);color:var(--ink)}

/* Переход к содержимому для клавиатуры. Спрятан за верхним краем экрана и
   выезжает только при фокусе: висящая на виду надпись «К содержанию» читается
   как случайно забытый текст. */
.skiplink{position:fixed;z-index:100;top:10px;left:10px;transform:translateY(-160%);
  padding:10px 14px;border-radius:8px;background:var(--ink);color:var(--white);
  font-weight:700;transition:transform .15s}
.skiplink:focus{transform:none}

/* ---- ширины колонок ----
   Таблица обязана помещаться в экран: горизонтальная прокрутка в скринере
   означает, что половину показателей человек не увидит вовсе. Ширины заданы
   по самому длинному реальному значению колонки, а не «с запасом». */
th.h-price,td.c-price{width:92px;min-width:92px}
th.h-h1,td.c-h1,th.h-h24,td.c-h24,th.h-d7,td.c-d7,
th.h-d30,td.c-d30,th.h-y1,td.c-y1{width:66px;min-width:66px}
th.h-mcap,td.c-mcap,th.h-fdv,td.c-fdv{width:100px;min-width:100px}
th.h-vol,td.c-vol{width:92px;min-width:92px}
th.h-vmc,td.c-vmc,th.h-mf,td.c-mf,th.h-ci,td.c-ci{width:74px;min-width:74px}
th.h-dd,td.c-dd{width:72px;min-width:72px}
th.h-ath,td.c-ath{width:92px;min-width:92px}
th.h-spark,td.c-spark{width:92px;min-width:92px}

/* Числа в узких колонках: моноширинный шрифт шире обычного, и на процентах
   это стоило по десятку пикселей на колонку. */
tbody td.num,tbody td .mono{font-size:12px}
thead th .thb{font-size:10px}

/* Подсказка у заголовка не должна распирать колонку: значок уходит в поток
   только там, где место есть. */
thead th .bc-q{width:13px;height:13px;margin-left:3px}
