/* TRACER as a dossier: light, slightly green paper; a dark top bar with a lime edge;
   a rail on the left with its own tint and a dark dividing line; strong rules at the
   start of every section. One accent family (Tracer green and lime). Red and green
   only for the direction of a price or trade, never as a judgement. Dark is kept for
   what one looks for (top bar, box heads, buttons), never as the page background.
   No inline styles anywhere (the CSP forbids them). Fonts and icons are local files. */

:root{
  color-scheme:light;
  /* Paper, rail, boxes. The older names (surface, line-soft …) stay, so attraction.css,
     briefing.css and trading.css follow the new palette without their own copies. */
  --bg:oklch(0.958 0.016 128);
  --sidebar:oklch(0.925 0.03 128);
  --surface:oklch(0.993 0.005 120);
  --surface-2:oklch(0.945 0.02 128);
  --surface-3:oklch(0.905 0.028 130);
  --line:oklch(0.78 0.025 132);
  --line-soft:oklch(0.86 0.022 130);
  --rule:oklch(0.28 0.02 140);
  --rule-soft:oklch(0.28 0.02 140 / .45);
  --fg:oklch(0.21 0.018 140);
  --muted:oklch(0.43 0.022 138);
  --faint:oklch(0.5 0.022 135);
  /* Tracer green for text, links and lines; lime only as a fill under dark text. */
  --accent:oklch(0.47 0.12 135);
  --accent-soft:oklch(0.87 0.13 125 / .34);
  --accent-ink:oklch(0.205 0.012 140);
  --lime:oklch(0.87 0.13 125);
  --lime-wash:oklch(0.948 0.045 125);
  --lime-line:oklch(0.6 0.1 132 / .55);
  --green-ink:oklch(0.32 0.08 135);
  --graphite:oklch(0.205 0.012 140);
  --graphite-2:oklch(0.26 0.014 140);
  --graphite-line:oklch(0.36 0.016 140);
  --on-dark:oklch(0.95 0.01 125);
  --on-dark-muted:oklch(0.78 0.03 130);
  --up:oklch(0.5 0.14 150);
  --down:oklch(0.54 0.18 28);
  --warn:oklch(0.55 0.12 70);
  --danger:oklch(0.52 0.17 28);
  --panel:var(--surface);--subtle:var(--surface-2);
  --serif:"IBM Plex Serif",Georgia,"Times New Roman",serif;
  --sans:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --ease:cubic-bezier(.22,1,.36,1);
  --rail-w:280px;
  --top-h:62px;
  --gutter:40px;
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--top-h) + 16px)}
body{margin:0;min-height:100vh;background:var(--bg);color:var(--fg);font:15px/1.55 var(--sans);-webkit-font-smoothing:antialiased}
h1,h2,h3,p{margin:0}
h1,h2,h3{font-weight:650;letter-spacing:-.005em}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer}
button:disabled{cursor:default;opacity:.55}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
code,.mono{font-family:var(--mono);font-size:.92em}
kbd{font:11px var(--mono);padding:1px 6px;border:1px solid var(--line);border-radius:5px;background:var(--surface);color:var(--muted)}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip-link{position:absolute;inset-inline-start:12px;top:-60px;z-index:40;padding:8px 12px;border-radius:6px;background:var(--lime);color:var(--graphite);font-weight:600}
.skip-link:focus{top:12px}
.muted{color:var(--muted)}
.fine{margin-top:10px;font-size:12px;line-height:1.5;color:var(--faint)}
@keyframes breathe{50%{opacity:.35}}
@keyframes shimmer{to{background-position:-200% 0}}

/* Buttons */
.primary-button{display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 18px;border:0;border-radius:9px;background:var(--graphite);color:var(--lime);font-weight:700;white-space:nowrap;transition:transform .12s var(--ease),filter .15s var(--ease)}
.primary-button:hover{filter:brightness(1.12)}
.primary-button:active{transform:translateY(1px)}
.quiet-button{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 13px;border:1.5px solid var(--line);border-radius:9px;background:var(--surface);color:var(--fg);font-size:13.5px;font-weight:600;white-space:nowrap;transition:background .15s var(--ease),border-color .15s var(--ease)}
.quiet-button i.ph{font-size:16px}
.quiet-button:hover{border-color:var(--rule);background:var(--surface)}
.quiet-button:active{transform:translateY(1px)}
.text-button{padding:0;border:0;background:none;color:var(--accent);font-size:13.5px;font-weight:600}
.text-button:hover{text-decoration:underline}
.icon-button{width:28px;height:28px;display:inline-grid;place-items:center;border:0;border-radius:7px;background:none;color:var(--muted);font-size:16px}
.icon-button:hover{background:var(--surface-3);color:var(--fg)}

/* Top bar: brand, search, sources. Dark, with a lime edge, so it never mixes with the page. */
.top{position:sticky;top:0;z-index:25;display:flex;align-items:center;gap:22px;height:var(--top-h);padding:0 24px;background:var(--graphite);border-bottom:3px solid var(--lime);color:var(--on-dark)}
.brand{flex:none;display:flex;align-items:center;gap:10px;width:calc(var(--rail-w) - 46px);color:var(--lime);text-decoration:none}
.brand strong{font:700 16px var(--sans);letter-spacing:.16em;color:var(--on-dark)}
.brand:hover{text-decoration:none}
.top-search{flex:1;min-width:0;max-width:900px}
.top .input-row{display:flex;align-items:center;gap:8px;height:42px;padding:0 4px 0 13px;border:1px solid var(--graphite-line);border-radius:11px;background:var(--graphite-2);transition:border-color .15s var(--ease)}
.top .input-row:focus-within{border-color:var(--lime)}
.input-row>i.ph{flex:none;font-size:18px;color:var(--on-dark-muted)}
.input-row input{flex:1;min-width:0;height:36px;border:0;background:none;font-family:var(--mono);font-size:13.5px;outline:none}
.top .input-row input{color:var(--on-dark)}
.input-row input::placeholder{font-family:var(--sans);color:var(--faint)}
.top .input-row input::placeholder{color:var(--on-dark-muted)}
.input-row select{height:32px;padding:0 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);font-size:13px}
.top .input-row select{border-color:var(--graphite-line);background:var(--graphite);color:var(--on-dark-muted)}
.top .input-row kbd{border-color:var(--graphite-line);background:transparent;color:var(--on-dark-muted)}
.top .primary-button{height:34px;background:var(--lime);color:var(--graphite)}
.top-nav{margin-inline-start:auto;display:flex;align-items:center;gap:6px}
.top-link{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 12px;border:0;border-radius:9px;background:none;color:var(--on-dark);font-size:14px;font-weight:500;white-space:nowrap}
.top-link:hover,.top-link[aria-expanded="true"]{background:var(--graphite-2)}
.top-link i.ph{font-size:18px;color:var(--on-dark-muted)}
.top-link .mono{color:var(--lime)}
/* Language: a native select, so every phone shows its own picker; names in their own script. */
.lang-pick{position:relative;display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 10px;border-radius:9px;color:var(--on-dark)}
.lang-pick:hover,.lang-pick:focus-within{background:var(--graphite-2)}
.lang-pick i.ph{font-size:18px;color:var(--on-dark-muted)}
.lang-pick select{width:128px;height:30px;padding:0 4px;border:0;background:transparent;color:var(--on-dark);font-size:14px;font-weight:500;cursor:pointer}
.lang-pick select:focus-visible{outline:2px solid var(--lime);outline-offset:2px}
.lang-pick option{color:var(--fg);background:var(--surface)}
/* On a light page (login, account page): dark text; the page places it. */
.lang-pick.on-light{color:var(--fg)}
.lang-pick.on-light:hover,.lang-pick.on-light:focus-within{background:var(--surface-2)}
.lang-pick.on-light i.ph{color:var(--muted)}
.lang-pick.on-light select{color:var(--fg)}
.lang-pick.on-light select:focus-visible{outline-color:var(--accent)}
.form-error{margin:0;padding:10px 24px;border-bottom:1px solid oklch(0.52 0.17 28 / .35);background:oklch(0.95 0.035 28);color:var(--danger);font-size:14px;font-weight:500}
/* The sources open as a panel below the top bar, over the page. */
.provider-panel{position:fixed;top:calc(var(--top-h) + 10px);inset-inline-end:16px;z-index:30;width:min(800px,calc(100vw - 32px));max-height:calc(100vh - var(--top-h) - 30px);overflow:auto;padding:18px 20px;border:1.5px solid var(--rule);border-radius:14px;background:var(--surface);box-shadow:0 24px 60px oklch(0.25 0.04 140 / .22)}
.provider-panel>p{margin-bottom:12px;font-size:13.5px;color:var(--muted)}
#provider-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px 24px}
.provider-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;padding:10px 0;border-top:1px solid var(--line-soft)}
.provider-row strong{font-size:13.5px;font-weight:600}
.provider-row p{grid-column:1/-1;font-size:12.5px;color:var(--faint)}
.provider-row code{grid-column:1/-1;font-size:11.5px;color:var(--muted)}

/* Shell: the rail has its own tint and ends in a dark line. The gradient carries the
   tint down the whole page, also where the sticky rail itself has ended. */
.shell{display:grid;grid-template-columns:var(--rail-w) minmax(0,1fr);min-height:calc(100vh - var(--top-h));background:linear-gradient(to right,var(--sidebar) calc(var(--rail-w) - 1.5px),var(--rule-soft) calc(var(--rail-w) - 1.5px) var(--rail-w),var(--bg) var(--rail-w))}
[dir="rtl"] .shell{background:linear-gradient(to left,var(--sidebar) calc(var(--rail-w) - 1.5px),var(--rule-soft) calc(var(--rail-w) - 1.5px) var(--rail-w),var(--bg) var(--rail-w))}
.rail{position:sticky;top:var(--top-h);align-self:start;height:calc(100vh - var(--top-h));overflow-y:auto;display:flex;flex-direction:column;gap:18px;padding-block:22px 18px;padding-inline:16px 18px;scrollbar-width:thin}
.rail-label{display:flex;align-items:center;gap:7px;margin-block:0 8px;margin-inline:6px 0;font:700 11px var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--green-ink)}
.rail-block{padding-top:16px;border-top:1px solid var(--rule-soft)}
.toc{position:relative;display:grid;gap:2px;padding-inline-start:12px}
.toc-progress{position:absolute;inset-inline-start:0;top:6px;bottom:6px;width:3px;border-radius:2px;background:var(--line)}
.toc-progress i{display:block;height:100%;border-radius:2px;background:var(--accent);transform-origin:top;transform:scaleY(.04);transition:transform .2s var(--ease)}
.toc a{display:flex;align-items:center;gap:10px;min-height:38px;padding:7px 10px;border-radius:9px;color:var(--fg);font-size:14.5px;font-weight:500;text-decoration:none;transition:background .15s var(--ease)}
.toc a i.ph{flex:none;font-size:18px;color:var(--muted)}
.toc a:hover{background:var(--surface-3);text-decoration:none}
.toc a[aria-current]{background:var(--lime);color:var(--graphite);font-weight:700}
.toc a[aria-current] i.ph{color:var(--graphite)}
.toc .count{margin-inline-start:auto;padding:0 8px;border:1.5px solid var(--line);border-radius:999px;background:var(--surface);font:600 11.5px/18px var(--mono);color:var(--muted)}
.toc .count:empty{display:none}
.pulse{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px oklch(0.47 0.12 135 / .18);animation:breathe 1.6s ease-in-out infinite}
.rail-live dl{margin:0;display:grid;gap:7px;padding:0 6px}
.rail-live dl>div{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:13.5px}
.rail-live dt{color:var(--muted)}
.rail-live dd{margin:0;font:600 13.5px var(--mono);font-variant-numeric:tabular-nums;text-align:end}
.rail-live dd.up{color:var(--up)}
.rail-live dd.down{color:var(--down)}
.rail-live dd.tick-up{animation:tick-up .9s var(--ease)}
.rail-live dd.tick-down{animation:tick-down .9s var(--ease)}
.history-heading{display:flex;align-items:center;justify-content:space-between}
.history-heading .rail-label{margin-bottom:6px}
.history{display:grid;align-content:start;gap:1px}
.history p{padding:4px 8px;font-size:13px;color:var(--faint)}
.history button{display:grid;gap:1px;width:100%;padding:7px 8px;border:0;border-radius:8px;background:none;text-align:start;transition:background .15s var(--ease)}
.history button:hover{background:var(--surface-3)}
.history button[aria-current="true"]{background:var(--surface-3);box-shadow:inset 0 0 0 1.5px var(--line)}
.history-name{display:block;min-width:0;overflow:hidden;font-size:13.5px;font-weight:600;color:var(--fg);text-overflow:ellipsis;white-space:nowrap}
.history-name b{font-family:var(--mono);font-size:11.5px;font-weight:400;color:var(--muted)}
.history-name .mono{font-size:12px;font-weight:400}
.history button small{overflow:hidden;font-size:11.5px;color:var(--faint);text-overflow:ellipsis;white-space:nowrap}
.history button small .mono{font-size:10.5px}
/* Tracer at the foot of the rail says what he is doing. */
.buddy{margin-top:auto;display:grid;grid-template-columns:76px minmax(0,1fr);align-items:center;gap:10px;padding:10px 12px;border-radius:14px;background:var(--graphite);color:var(--on-dark-muted);font-size:12.5px}
.buddy [data-tracer]{width:76px;height:62px}
.buddy [data-tracer] svg,.home [data-tracer] svg{display:block;width:100%;height:100%}
.buddy p{display:grid;gap:3px;min-width:0}
.buddy b{color:var(--lime);font-size:13.5px;font-weight:700}
.buddy .text-button{justify-self:start;color:var(--on-dark);font-size:12.5px}
/* Before a coin is open the rail shows only the history and Tracer. */
.shell:has(#coin[hidden]) .rail-toc{display:none}
.shell:has(#coin[hidden]) .rail-history{padding-top:0;border-top:0}

/* Main column */
.main{min-width:0;padding:30px var(--gutter) 40px}
.row{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:40px;align-items:start;padding-bottom:56px}
.row:not(:has(>.right)),.row:has(>.right:empty){grid-template-columns:minmax(0,1fr)}
.row>.right:empty{display:none}
.content{min-width:0}
.right{min-width:0;display:grid;gap:18px}
.sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:6px 16px;flex-wrap:wrap;padding-bottom:9px;margin-bottom:20px;border-bottom:2px solid var(--rule)}
.sec-head h2{font:700 31px/1.15 var(--serif);letter-spacing:-.01em}
.sec-head>span{font-size:13px;color:var(--faint)}
.panel-heading{display:flex;align-items:baseline;justify-content:space-between;gap:6px 16px;flex-wrap:wrap;margin-bottom:14px}
.panel-heading h2{font-size:18px}
.panel-heading>span{font-size:12.5px;color:var(--faint)}
.count{margin-inline-start:4px;font-size:11.5px;color:var(--faint);font-variant-numeric:tabular-nums}

/* Start page: one task (paste an address), what Tracer does, the bookmarklet. */
.home{max-width:1120px;padding:16px 0 20px}
.hero{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:30px;align-items:center}
.hero h1{font:700 54px/1.07 var(--serif);letter-spacing:-.018em;max-width:16ch}
/* One sentence (a highlighted word inside it would split it for translation); the lime bar marks it. */
.hero h1::after{content:"";display:block;width:88px;height:6px;margin-top:18px;border-radius:3px;background:var(--lime)}
.hero-lead{margin-top:16px;max-width:44ch;font:400 20px/1.5 var(--serif);color:var(--muted)}
/* The search gets its own row across the whole hero, so the placeholder can be read in full. */
.hero-find{grid-column:1/-1;max-width:1060px}
.hero-search .input-row input{min-width:min(340px,100%)}
.hero-search .input-row{display:flex;align-items:center;gap:10px;height:62px;padding:0 8px 0 18px;border:2px solid var(--rule);border-radius:15px;background:var(--surface);box-shadow:0 12px 32px oklch(0.3 0.04 140 / .1);transition:border-color .15s var(--ease)}
.hero-search .input-row:focus-within{border-color:var(--accent)}
.hero-search .input-row>i.ph{font-size:21px;color:var(--faint)}
.hero-search .input-row input{font-size:15px}
.hero-search .primary-button{height:46px;padding:0 22px;font-size:15px}
.hero .hint{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:11px;font-size:13.5px;color:var(--muted)}
.hero [data-tracer]{width:300px;height:250px}
.home-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px;margin-top:46px}
.box{border:1.5px solid var(--rule);border-radius:14px;background:var(--surface);overflow:hidden}
.box>h2{padding:11px 18px;background:var(--graphite);color:var(--lime);font:700 12px var(--sans);letter-spacing:.09em;text-transform:uppercase}
.steps{list-style:none;margin:0;padding:6px 18px 12px}
.steps li{display:grid;grid-template-columns:38px minmax(0,1fr);gap:12px;padding:12px 0;border-top:1px solid var(--line-soft)}
.steps li:first-child{border-top:0}
.steps li>i.ph{width:36px;height:36px;border-radius:9px;display:grid;place-items:center;background:var(--graphite);color:var(--lime);font-size:19px}
.steps b{display:block;font-size:15px}
.steps span{font-size:14px;color:var(--muted)}
.mark{display:flex;align-items:center;flex-wrap:wrap;gap:12px 18px;margin-top:22px;padding:15px 18px;border:1.5px dashed var(--accent);border-radius:14px;background:var(--lime-wash)}
.mark p{flex:1 1 320px;min-width:0;font-size:14px;line-height:1.55;color:var(--green-ink)}
.mark p strong{color:var(--fg)}
.bookmarklet{flex:none;display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 16px;border-radius:9px;background:var(--lime);color:var(--graphite);font-weight:700;text-decoration:none;cursor:grab}
.bookmarklet:hover{text-decoration:none;filter:brightness(1.04)}
.bookmarklet:active{cursor:grabbing}
.empty{padding:28px 0;color:var(--muted)}
.empty h2{font-size:17px;color:var(--fg);margin-bottom:4px}

/* Section 1: the coin, its classification and the briefing; the box on the right. */
.crumb{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pill{display:inline-flex;align-items:center;height:26px;padding:0 11px;border:1.5px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);font-size:12.5px;font-weight:500}
.title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:14px 20px;flex-wrap:wrap;margin-top:12px}
.identity-line{display:flex;align-items:baseline;gap:6px 14px;flex-wrap:wrap;min-width:0}
.identity-line h1{font:700 52px/1.05 var(--serif);letter-spacing:-.018em;overflow-wrap:anywhere}
.ticker{font:500 20px var(--mono);color:var(--muted)}
.header-actions{display:flex;gap:8px;flex-wrap:wrap}
/* Sofort-Check (app.js renderQuick): the first values, under the name; the cells share
   their borders and fill each row, so a short last row has no empty space. */
.quick{display:flex;flex-wrap:wrap;margin-top:16px;border:1.5px solid var(--rule);border-radius:12px;background:var(--surface);overflow:hidden}
.quick:empty{display:none}
.quick-cell{flex:1 1 128px;min-width:0;margin-inline-end:-1px;margin-block-end:-1px;padding:10px 14px 9px;border-inline-end:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);color:inherit;text-decoration:none;transition:background .15s var(--ease)}
.quick-cell:hover{background:var(--sidebar)}
.quick-cell span{display:block;font-size:11.5px;color:var(--muted)}
.quick-cell strong{display:block;min-height:22px;margin-top:2px;font:600 15.5px/1.4 var(--mono);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.quick-cell strong.is-text{font:600 15px/1.4 var(--sans)}
.quick-note{display:block;margin-top:1px;font-size:11px;line-height:1.35;color:var(--muted)}
.quick-note.is-warn{color:var(--warn)}
[dir="rtl"] .quick-cell strong[dir="ltr"]{text-align:right}
.quick-cell.is-pending strong{width:72%;border-radius:6px;background:linear-gradient(90deg,var(--line-soft) 25%,var(--surface) 50%,var(--line-soft) 75%);background-size:200% 100%;animation:shimmer 1.4s linear infinite}
/* Share card (share.js): the picture as wide as the column, the buttons under it. */
.share-button[aria-expanded="true"]{border-color:var(--accent);background:var(--sidebar)}
.share-panel{margin-top:16px;padding:16px;border:1.5px solid var(--rule);border-radius:14px;background:var(--surface)}
.share-head{display:flex;align-items:baseline;justify-content:space-between;gap:4px 16px;flex-wrap:wrap;margin-bottom:12px}
.share-head h2{font:600 17px var(--serif)}
.share-head p{color:var(--muted);font-size:13.5px}
.share-stage{min-height:120px;border-radius:10px;background:var(--bg);overflow:hidden}
.share-canvas{display:block;width:100%;height:auto;aspect-ratio:1200/675}
.share-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px}
.share-status{min-height:1.4em;margin-top:8px;color:var(--muted);font-size:13.5px}
.infobox{border:1.5px solid var(--rule);border-radius:14px;background:var(--surface);overflow:hidden}
.infobox>header{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--graphite)}
.infobox>header b{display:block;font:600 17px var(--serif);color:var(--on-dark)}
.token-avatar{flex:none;width:46px;height:46px;display:grid;place-items:center;border-radius:11px;background:var(--lime);color:var(--graphite);font:700 14px var(--mono);letter-spacing:.02em}
.address-copy{margin-top:2px;padding:0;border:0;background:none;color:var(--on-dark-muted);font:12px var(--mono);transition:color .15s var(--ease)}
.address-copy::after{content:" ⧉";color:var(--lime)}
.address-copy:hover{color:var(--on-dark)}
.infobox .facts{padding:12px 16px 8px}
.infobox .facts>.panel-heading{margin-bottom:6px}
.infobox .facts>.panel-heading h2{font:700 11px var(--sans);letter-spacing:.09em;text-transform:uppercase;color:var(--green-ink)}
.infobox .facts>.panel-heading>span{font-size:11.5px}
.infobox .facts>p.muted{font-size:13px}
.fact-group{padding:8px 0 4px;border-top:1px solid var(--line-soft)}
.fact-group:first-of-type{border-top:0;padding-top:0}
.fact-group h3{margin:4px 0 2px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--faint)}
.fact-group dl{margin:0}
.fact{display:grid;grid-template-columns:minmax(0,9em) minmax(0,1fr);gap:2px 12px;padding:6px 0;border-top:1px solid var(--line-soft)}
.fact-group h3+dl .fact:first-child{border-top:0}
.fact dt{font-size:13px;color:var(--muted)}
.fact dd{margin:0;font-size:13.5px;overflow-wrap:anywhere}
.infobox .facts>.fine{font-size:11.5px}
.proof{height:20px;margin-inline-start:4px;padding:0 6px;border:1px solid var(--line);border-radius:5px;background:var(--surface);color:var(--muted);font-size:11px;vertical-align:1px}
.proof:hover{color:var(--fg);border-color:var(--rule)}
.links-section{padding:12px 16px 16px;border-top:1.5px solid var(--rule)}
.infobox-sub{margin-bottom:8px;font:700 11px var(--sans);letter-spacing:.09em;text-transform:uppercase;color:var(--green-ink)}
.links{display:grid;gap:10px}
.link-group{display:grid;gap:5px}
.link-group-name{font-size:11px;font-weight:650;text-transform:uppercase;letter-spacing:.07em;color:var(--faint)}
.link-list{display:flex;flex-wrap:wrap;gap:6px}
.link-chip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 10px;border:1.5px solid var(--line);border-radius:8px;background:var(--surface);color:var(--fg);font-size:13px;font-weight:500;white-space:nowrap;transition:border-color .15s var(--ease)}
.link-chip::after{content:"↗";font-size:11px;color:var(--faint)}
.link-chip small{font-size:11px;color:var(--faint)}
.link-chip:hover{border-color:var(--accent);text-decoration:none}
.link-note{font-size:11.5px;color:var(--faint)}

/* Section "Markt und Handel": the live figures as one ruled strip. */
.metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1.5px solid var(--rule);border-bottom:1px solid var(--line)}
.metric{min-width:0;padding:14px 16px 12px;border-inline-start:1px solid var(--line-soft)}
.metric:first-child{padding-inline-start:2px;border-inline-start:0}
.metric>span{display:block;margin-bottom:4px;font-size:12px;color:var(--muted)}
.metric strong{display:block;font:600 19px/1.2 var(--mono);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.metric:first-child strong{font-size:22px}
.metric small{display:block;min-height:15px;margin-top:4px;font-size:11.5px;line-height:1.45;color:var(--faint)}
/* Live market cap: a short flash in the direction of the last move. */
.metric strong.tick-up{animation:tick-up .9s var(--ease)}
.metric strong.tick-down{animation:tick-down .9s var(--ease)}
@keyframes tick-up{from{color:var(--up)}to{color:var(--fg)}}
@keyframes tick-down{from{color:var(--down)}to{color:var(--fg)}}
.metric-age.stale{color:var(--warn)}
.metric-warning{display:block;color:var(--warn)}
.metric-scope{display:block;color:var(--muted)}
.metric-more{display:block;margin-top:6px}
.metric-details{margin-top:4px;font-size:12.5px;color:var(--muted)}
.metric-details summary{width:max-content;font-size:11.5px;color:var(--accent);list-style:none;cursor:pointer}
.metric-details summary::-webkit-details-marker{display:none}
.metric-details summary:hover,.metric-details[open] summary{text-decoration:underline}
.metric-details>div{margin-top:6px;line-height:1.5}
.metric-details .raw-detail{margin-top:6px}
.market-line{display:flex;align-items:center;gap:8px 16px;flex-wrap:wrap;margin:12px 0 30px}
.market-line:has(.token-changes:empty){display:none}
.token-changes{display:flex;gap:6px;flex-wrap:wrap}
.token-changes span{display:inline-flex;align-items:baseline;gap:6px;padding:4px 10px;border:1px solid var(--line-soft);border-radius:8px;background:var(--surface);font:600 13.5px var(--mono);font-variant-numeric:tabular-nums}
.token-changes small{font:400 11.5px var(--sans);color:var(--faint)}
.token-changes .up{color:var(--up)}
.token-changes .down{color:var(--down)}
#live-status{font-size:12.5px}

/* Holders and known wallets */
.watched-wallets{margin-bottom:30px}
.watched-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:6px 16px;flex-wrap:wrap;margin-bottom:12px}
.watched-heading h2{font:600 20px var(--serif)}
.watched-heading p{font-size:12.5px;color:var(--faint)}
.watched-freshness{font-size:12.5px;color:var(--faint)}
.watched-wallets>details>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border:1.5px solid var(--rule);border-radius:12px;background:var(--graphite);color:var(--on-dark);list-style:none;cursor:pointer}
.watched-wallets>details>summary::-webkit-details-marker{display:none}
.watched-wallets>details>summary strong{font-size:14.5px;color:var(--lime)}
.watched-wallets>details>summary span{font-size:12.5px;color:var(--on-dark-muted)}
.watched-wallets>details[open]>summary{border-end-start-radius:0;border-end-end-radius:0}
.watched-content{padding:6px 16px 16px;border:1.5px solid var(--rule);border-top:0;border-radius:0 0 12px 12px;background:var(--surface)}
.watched-content>p{margin-top:12px;font-size:12.5px;color:var(--faint);line-height:1.55}
.holder-summary{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:10px 0 6px}
.holder-summary>span{margin-inline-end:4px;font-size:12.5px;color:var(--faint)}
.holder-count{padding:2px 9px;border-radius:999px;background:var(--surface-2);font-size:12.5px;color:var(--muted)}
.watched-list{list-style:none;margin:0;padding:0}
.watched-list li{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(120px,auto);gap:4px 18px;align-items:center;padding:11px 0;border-top:1px solid var(--line-soft)}
.watched-list li:first-child{border-top:0}
.watched-address{display:flex;align-items:baseline;gap:10px;min-width:0}
.watched-address>a{font-family:var(--mono);font-size:12.5px}
.watched-address>small{font-size:12px;color:var(--faint)}
.watched-rank{flex:none;min-width:22px;font-family:var(--mono);font-size:12px;color:var(--faint)}
.holder-who{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}
.holder-name{font-size:14px;font-weight:600}
.holder-name.kol,.holder-name.creator{color:var(--accent)}
.holder-tag{padding:0 8px;border-radius:999px;background:var(--surface-2);font-size:11.5px;line-height:1.75;color:var(--muted)}
.holder-address{display:block;margin-top:2px;font-family:var(--mono);font-size:12px;color:var(--faint)}
.holder-address a{color:var(--muted)}
.holder-time small{display:block;font-size:12.5px;line-height:1.5;color:var(--faint)}
.watched-balance{display:grid;justify-items:end;text-align:end;gap:1px}
.watched-balance strong{font:600 14px var(--mono);font-variant-numeric:tabular-nums}
.watched-balance span{font-size:12.5px;color:var(--faint);font-variant-numeric:tabular-nums}
.holder-program{opacity:.72}
.holder-more>summary,.holder-legend-box>summary,.watched-group>summary{margin-top:10px;font-size:13px;font-weight:600;color:var(--accent);cursor:pointer}
.holder-legend{display:grid;grid-template-columns:minmax(0,11em) minmax(0,1fr);gap:6px 14px;margin:10px 0 0;font-size:13px}
.holder-legend dt{color:var(--fg)}
.holder-legend dd{margin:0;color:var(--muted)}
.watched-group>div>p{margin:8px 0;font-size:12.5px;color:var(--faint)}
.watched-simple{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 14px}
.watched-simple a{font-family:var(--mono);font-size:12px;color:var(--muted)}
.watched-simple small{margin-inline-start:4px;font-size:11.5px;color:var(--faint)}
.wallet-checked.stale{color:var(--warn)}

/* Creator */
.creator-overview h2{font:600 20px var(--serif);margin-bottom:10px}
.creator-overview>strong{display:block;font:500 19px/1.45 var(--serif)}
.creator-overview>p{margin-top:8px;max-width:72ch;font-size:15px;color:var(--muted)}
.creator-attribution{color:var(--faint)}
.creator-overview>details{margin-top:18px}
.creator-overview>details>summary{width:max-content;font-size:13.5px;font-weight:600;color:var(--accent);cursor:pointer}
.group-content{display:grid;gap:10px;padding-top:12px}
.group-content>p{font-size:13.5px;color:var(--muted)}
.group-content>.quiet-button{justify-self:start}

/* Evidence */
.content-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px 16px;flex-wrap:wrap;margin-bottom:18px}
.tabs{display:inline-flex;flex-wrap:wrap;gap:2px;padding:3px;border:1.5px solid var(--line);border-radius:11px;background:var(--surface)}
.tabs button{height:32px;padding:0 13px;border:0;border-radius:8px;background:none;color:var(--muted);font-size:13.5px;font-weight:500}
.tabs button:hover{color:var(--fg)}
.tabs button[aria-selected="true"]{background:var(--graphite);color:var(--lime);font-weight:600}
#finding-total{font-size:13px;color:var(--faint)}
.report-summary{display:flex;flex-wrap:wrap;gap:8px 22px;margin-bottom:16px;font-size:13.5px;color:var(--muted)}
.report-summary strong{color:var(--fg);font-variant-numeric:tabular-nums}
.report-groups{display:grid;gap:10px}
.report-group{border:1.5px solid var(--line);border-radius:12px;background:var(--surface)}
.report-group[open]{border-color:var(--rule)}
.report-group>summary{display:flex;justify-content:space-between;gap:12px;padding:12px 16px;list-style:none;cursor:pointer;font-weight:600}
.report-group>summary::-webkit-details-marker{display:none}
.report-group>summary span:last-child{font-size:12.5px;font-weight:400;color:var(--faint)}
.report-group .group-content{padding:0 16px 16px}
.section-description{font-size:13px;color:var(--faint)}
.coverage-gaps{margin-top:16px;font-size:13px;color:var(--muted)}
.coverage-gaps summary{cursor:pointer}
.coverage-gaps p{margin-top:6px}
.finding{padding:12px 14px;border:1px solid var(--line-soft);border-radius:10px;background:var(--bg)}
.finding-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.finding h3{font-size:14.5px;line-height:1.4}
.finding>p{margin-top:6px;font-size:13.5px;line-height:1.55;color:var(--muted);overflow-wrap:anywhere}
.badge{flex:none;padding:1px 9px;border-radius:999px;background:var(--surface-2);font-size:11.5px;color:var(--muted);white-space:nowrap}
.badge.verified{background:var(--accent-soft);color:var(--green-ink);font-weight:600}
.source-line{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin-top:8px;font-size:12.5px;color:var(--faint)}
.source-line button{padding:0;border:0;background:none;color:var(--accent);font-size:12.5px}
.raw-detail{margin-top:8px;font-size:12.5px;color:var(--faint)}
.raw-detail summary{cursor:pointer}
.raw-detail pre{max-height:320px;overflow:auto;margin:8px 0 0;padding:10px;border-radius:8px;background:var(--surface-2);font:11.5px/1.5 var(--mono);color:var(--muted)}
.analysis{padding:12px 14px;border:1.5px dashed var(--line);border-radius:10px}
.analysis strong{font-size:11.5px;letter-spacing:.06em;color:var(--faint)}
.analysis p{margin:6px 0;font-size:13.5px}
.analysis button{margin-inline-end:6px;padding:0 6px;border:1px solid var(--line);border-radius:5px;background:var(--surface);color:var(--muted);font-size:11.5px}
.view-title{font:600 20px var(--serif);margin-bottom:4px}
.view-description{max-width:80ch;margin-bottom:16px;font-size:13.5px;color:var(--muted)}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.filters input,.filters select{height:36px;padding:0 10px;border:1.5px solid var(--line);border-radius:9px;background:var(--surface)}
.filters input{flex:1 1 260px;min-width:0}
#evidence-results{display:grid;gap:8px}
.summary-strip{padding:8px 12px;border-radius:8px;background:var(--surface-2);font-size:12.5px;color:var(--muted)}
.graph-svg{display:block;width:100%;max-width:720px;height:auto;margin:0 auto 16px}
.graph-svg line{stroke:var(--line);stroke-width:1}
.graph-svg circle{fill:var(--surface-2);stroke:var(--muted);stroke-width:1}
.graph-svg circle.root-node{fill:var(--lime);stroke:var(--rule)}
.graph-svg text{fill:var(--muted);font-size:10px}
.graph-list{display:grid;gap:6px}
.graph-edge{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:10px 12px;border:1px solid var(--line-soft);border-radius:9px;background:var(--surface);font-size:13px}
.graph-edge>div{display:flex;flex-wrap:wrap;gap:6px;min-width:0}
.graph-edge code{overflow-wrap:anywhere;color:var(--muted)}
.graph-edge small{color:var(--faint)}
.graph-edge button{padding:0;border:0;background:none;color:var(--accent);font-size:12.5px}
.timeline-item{display:grid;grid-template-columns:110px minmax(0,1fr);gap:4px 18px;padding:12px 0;border-top:1px solid var(--line-soft)}
.timeline-item time{font:13px var(--mono);color:var(--faint);font-variant-numeric:tabular-nums}
.timeline-item h3{font-size:14.5px}
.timeline-item p{margin-top:4px;font-size:13.5px;color:var(--muted)}
.source-list{margin:0;padding-inline-start:20px;display:grid;gap:8px;font-size:13.5px}
.source-list li span{display:block;font-size:12.5px;color:var(--faint);overflow-wrap:anywhere}
.live-panel{margin-top:28px;border:1.5px solid var(--line);border-radius:12px;background:var(--surface)}
.live-panel>summary{padding:12px 16px;font-size:13.5px;font-weight:600;color:var(--muted);cursor:pointer}
.stream-content{padding:0 16px 16px}
.live-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.live-heading h2{font-size:15px}
.live-label{font:600 11px var(--mono);letter-spacing:.08em;color:var(--faint)}
.live-label.running{color:var(--accent)}
#module-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:4px 20px}
.module{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:2px 8px;padding:6px 0;font-size:13px}
.module-dot{width:8px;height:8px;border-radius:50%;background:var(--line)}
.module.complete .module-dot{background:var(--accent)}
.module.running .module-dot{background:var(--accent);animation:breathe 1.4s ease-in-out infinite}
.module.unavailable .module-dot,.module.timeout .module-dot,.module.rate_limited .module-dot,.module.invalid_response .module-dot{background:var(--warn)}
.module-state{font-size:12px;color:var(--faint)}
.module-note{grid-column:2/-1;font-size:12px;color:var(--faint)}
.deferred-sources{grid-column:1/-1;margin-top:6px;font-size:12.5px;color:var(--faint)}
.feed-heading{margin:14px 0 6px;font-size:12.5px;color:var(--faint)}
#activity{list-style:none;margin:0;padding:0;display:grid;gap:4px;font-size:13px;color:var(--muted)}
#activity time{margin-inline-end:8px;font-family:var(--mono);font-size:12px;color:var(--faint)}
.stream-note{margin-top:10px;font-size:12.5px;color:var(--faint)}

.foot{display:flex;justify-content:space-between;gap:8px 16px;flex-wrap:wrap;margin-top:24px;padding-top:16px;border-top:2px solid var(--rule);font-size:12.5px;color:var(--faint)}
/* "Verträge hier kündigen" on every page (§ 312k BGB). */
.foot-legal{display:flex;flex-wrap:wrap;gap:6px 16px}
.foot-legal a{color:var(--muted)}
#toast{position:fixed;inset-inline-end:20px;bottom:20px;z-index:40;max-width:360px;padding:11px 15px;border-radius:11px;background:var(--graphite);color:var(--on-dark);font-size:13.5px;box-shadow:0 14px 34px oklch(0.25 0.04 140 / .3)}

/* Languages (public/i18n.js). The page stays hidden until its own texts are in the
   reader's language, so nobody sees German flash by; should the script not run, it
   appears after 2.5 s anyway. A coin's texts still on their way are dimmed. */
html:not([data-i18n="ready"]) body{opacity:0;animation:i18n-reveal 0s linear 2.5s forwards}
@keyframes i18n-reveal{to{opacity:1}}
[data-i18n-wait]{opacity:.5;transition:opacity .2s var(--ease)}
/* A second try of the translation is under way (public/i18n.js notice). */
#i18n-wait{position:fixed;inset-inline-end:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:60;padding:7px 13px;border-radius:999px;background:var(--graphite);color:var(--on-dark);font:500 12.5px/1.3 var(--sans);box-shadow:0 4px 14px rgb(0 0 0/.18)}
/* Plex has no Arabic, Hebrew, Indic, Thai or CJK letters: those scripts read in the
   system's sans, also in headings, where a serif fallback would look foreign. */
:lang(ar),:lang(fa),:lang(ur),:lang(he),:lang(hi),:lang(bn),:lang(th),:lang(zh),:lang(ja),:lang(ko){--serif:var(--sans)}
:lang(ar) body,:lang(fa) body,:lang(ur) body,:lang(hi) body,:lang(bn) body,:lang(th) body{line-height:1.7}
/* Letter spacing tears joined scripts apart (Arabic, Persian, Urdu, Indic): none there. */
:lang(ar) *,:lang(fa) *,:lang(ur) *,:lang(hi) *,:lang(bn) *,:lang(th) *{letter-spacing:0!important}
/* Japanese breaks between any two characters ("調べ / る"); headings break between phrases. */
:lang(ja) :is(h1,h2,h3){word-break:auto-phrase}

@media(max-width:1320px){
  .row{grid-template-columns:minmax(0,1fr) 310px;gap:32px}
  .metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
  .metric:nth-child(4){padding-inline-start:2px;border-inline-start:0}
  .metric:nth-child(n+4){border-top:1px solid var(--line-soft)}
}
@media(max-width:1180px){
  :root{--gutter:28px}
  .row{grid-template-columns:minmax(0,1fr)}
  .right{grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));align-items:start}
  .hero-search .input-row kbd{display:none}
}
/* Phone and small tablet: the rail turns into one row of contents under the page top,
   which stays in view while reading; the top bar scrolls away with the page. */
@media(max-width:900px){
  :root{--gutter:16px;--top-h:0px}
  .top{position:static;flex-wrap:wrap;height:auto;gap:10px 14px;padding:12px 16px}
  .brand{width:auto}
  .top-search{order:3;flex:1 1 100%;max-width:none}
  .top-search:empty{display:none}
  .top .input-row kbd,.top .input-row select{display:none}
  .shell,[dir="rtl"] .shell{display:block;background:var(--bg)}
  .rail{position:sticky;top:0;z-index:15;height:auto;overflow:visible;flex-direction:row;gap:0;padding:0;background:var(--sidebar);border-bottom:1.5px solid var(--rule-soft)}
  .rail-label,.rail-live,.buddy,.toc-progress{display:none!important}
  .rail-toc{flex:1;min-width:0}
  .toc{display:flex;gap:4px;padding:8px 12px;overflow-x:auto;scrollbar-width:none}
  .toc::-webkit-scrollbar{display:none}
  .toc a{flex:none;min-height:34px;padding:5px 11px;font-size:14px}
  .shell:has(#coin:not([hidden])) .rail-history{display:none}
  .rail-history{flex:1;min-width:0;padding:8px 12px 10px;border-top:0}
  .history-heading{display:none}
  .history{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}
  .history button{flex:none;width:auto;max-width:220px;background:var(--surface);border:1px solid var(--line-soft)}
  .main{padding:22px var(--gutter) 32px}
  .row{padding-bottom:44px}
  html{scroll-padding-top:64px}
  .sec-head h2{font-size:26px}
  .identity-line h1{font-size:36px}
  .ticker{font-size:16px}
  .hero{grid-template-columns:minmax(0,1fr)}
  .hero [data-tracer]{order:-1;width:132px;height:110px;margin-bottom:-6px}
  .hero h1{font-size:36px}
  .hero-lead{font-size:17px}
  .hero-search .input-row{height:56px;padding-inline-start:14px}
  .hero-search .input-row input{min-width:0;font-size:14px}
  .hero-search .input-row kbd,.hero-search .input-row select{display:none}
  .hero-search .primary-button{padding:0 14px}
  .home-cols{grid-template-columns:minmax(0,1fr)}
  .watched-list li{grid-template-columns:minmax(0,1fr) auto}
  .holder-time{grid-column:1/-1;order:3}
}
@media(max-width:640px){
  /* "Datenquellen" is long in most languages; on a phone the button shows icon and count,
     the word stays for screen readers. */
  .top-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .top-nav{gap:2px}
  .metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .metric,.metric:nth-child(4){padding:12px 12px 10px;border-inline-start:1px solid var(--line-soft);border-top:1px solid var(--line-soft)}
  .metric:nth-child(odd){padding-inline-start:2px;border-inline-start:0}
  .metric:nth-child(-n+2){border-top:0}
  .metric strong{font-size:17px}
  .metric:first-child strong{font-size:19px}
  .header-actions{width:100%;gap:6px}
  .header-actions .quiet-button{height:32px;padding:0 10px;font-size:13px}
  .hero-search .primary-button{display:none}
  .fact{grid-template-columns:minmax(0,1fr)}
  .timeline-item{grid-template-columns:minmax(0,1fr)}
  .holder-legend{grid-template-columns:minmax(0,1fr)}
  .watched-list li{grid-template-columns:minmax(0,1fr)}
  .watched-balance{justify-items:start;text-align:start}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}html{scroll-behavior:auto}}
