/* Current explorer components absent from the published TensorCash theme.
 * Keep their existing structure and behavior, and consume the official semantic
 * tokens verbatim so the same additions work in both official color schemes.
 * Load after token-*.css, tokens.css and tscscan-theme.css.
 */

/* Asset identity and metadata. No filters or recoloring are applied to artwork. */
.token-avatar,
.token-avatar img {
  background: var(--tc-bg-quiet);
}
.token-avatar {
  border-color: var(--tc-border);
  color: var(--tc-link);
}
.token-protocol {
  border-color: color-mix(in srgb, var(--tc-accent) 45%, transparent);
  color: var(--tc-link);
  background: var(--tc-accent-soft);
}
.token-social-links > a {
  border-color: var(--tc-border);
  color: var(--tc-link);
  background: var(--tc-surface);
}
.token-social-links > a:hover {
  border-color: var(--tc-accent);
  color: var(--tc-link-hover);
  background: var(--tc-surface-hover);
}
.token-provenance,
.token-movement,
.token-movement-table th,
.token-movement-table td,
.token-address-history th,
.token-address-history td,
.token-controls {
  border-color: var(--tc-border);
}
.token-kind {
  color: var(--tc-text-muted);
  background: var(--tc-bg-quiet);
}
.token-id,
.token-profile-id,
.token-movement-table th,
.token-address-history th,
.token-address-history td:first-child small,
.token-controls small,
.token-amount-note {
  color: var(--tc-text-muted);
}
.token-profile-id code { color: var(--tc-text); }
.token-supply-change,
.token-in { color: var(--tc-ok); }
.token-out { color: var(--tc-oxide); }
.token-io-detail { color: var(--tc-link) !important; }

/* Asset descriptions and their optional source/document views. */
.registry-tree-branch { color: var(--tc-text-faint); }
.registry-document-excerpt,
.registry-document-empty p,
.registry-markdown,
.registry-markdown blockquote { color: var(--tc-text); }
.registry-markdown strong { color: var(--tc-text-strong); }
.registry-markdown blockquote { border-left-color: var(--tc-border-strong); }
.registry-markdown code,
.registry-markdown pre,
.registry-markdown th { background: var(--tc-bg-quiet); }
.registry-markdown pre code { background: transparent; }
.registry-markdown td { background: var(--tc-surface); }
.registry-split-bar,
.registry-supply-track i.burned { background: var(--tc-oxide); }
.registry-bars i,
.registry-history-key i,
.registry-history-bars i { background: var(--tc-chart-primary); }
.registry-history-bars {
  background: repeating-linear-gradient(to top, transparent 0, transparent 40px, var(--tc-chart-grid) 40px, var(--tc-chart-grid) 41px);
}
.registry-history-bars button:hover,
.registry-history-bars button:focus-visible {
  background: var(--tc-accent-soft);
  outline-color: var(--tc-focus);
}
.registry-history-bars button:hover i,
.registry-history-bars button:focus-visible i { background: var(--tc-chart-primary-strong); }
.registry-history-inspector { color: var(--tc-text); }

/* Readable transaction action, counterparties and optional technical details. */
.token-action {
  border-color: var(--tc-border);
  background: var(--tc-bg-quiet);
}
.token-action-label,
.token-action-parties,
.token-field-label,
.token-group-explanation,
.token-party-group h3,
.token-simple-action,
.tx-technical > summary small {
  color: var(--tc-text-muted);
}
.token-transfer-quantity > strong { color: var(--tc-text-strong); }
.token-transfer-asset,
.token-transfer-route,
.token-route-value,
.token-transfer-note,
.token-party-group > div,
.token-accounting {
  border-color: var(--tc-border);
}
.token-route-kind {
  color: var(--tc-link);
  background: var(--tc-accent-soft);
}
.token-route-arrow { color: var(--tc-text-faint); }
.token-system-party { color: var(--tc-text); }
.token-transfer-note {
  color: var(--tc-text-muted);
  background: var(--tc-bg-quiet);
}
.tx-technical {
  border-color: var(--tc-border);
  background: var(--tc-surface);
}
.tx-technical > summary { color: var(--tc-text-strong); }
.tx-technical:not([data-token-details]) { background: transparent; }

/* Address token history keeps the current desktop table and mobile rows. */
.token-history-table thead { background: var(--tc-bg-quiet); }
.token-history-table th,
.token-history-table td,
.token-history-table .token-history-row,
.token-history-panel .token-history-footnote {
  border-color: var(--tc-border);
}
.token-history-table tbody tr:hover { background: var(--tc-surface-hover); }
.token-history-in {
  color: var(--tc-ok);
  border-color: color-mix(in srgb, var(--tc-ok) 30%, transparent);
  background: var(--tc-ok-soft);
}
.token-history-out {
  color: var(--tc-oxide);
  border-color: color-mix(in srgb, var(--tc-oxide) 30%, transparent);
  background: var(--tc-oxide-soft);
}
.token-history-self,
.token-history-unknown {
  color: var(--tc-text-muted);
  border-color: var(--tc-border);
  background: var(--tc-bg-quiet);
}
.token-history-party-count,
.token-history-count {
  color: var(--tc-text);
  background: var(--tc-bg-quiet);
}
.token-history-neutral { color: var(--tc-text-muted); }
.token-history-special,
.token-history-quantity,
.token-history-empty > strong { color: var(--tc-text-strong); }
.token-history-retry {
  border-color: var(--tc-border-strong);
  color: var(--tc-link);
  background: var(--tc-surface);
}
.token-history-retry:hover {
  border-color: var(--tc-accent);
  color: var(--tc-link-hover);
  background: var(--tc-surface-hover);
}
.token-history-retry:focus-visible { outline-color: var(--tc-focus); }
.token-history-loader {
  border-color: var(--tc-border);
  border-top-color: var(--tc-accent);
}
@media (max-width: 720px) {
  .token-history-counterparty { border-top-color: var(--tc-border) !important; }
}

/* The official deployment hides markets; the local preview can enable them. */
.market-overview-head {
  border-color: var(--tc-border);
  background: var(--tc-bg-quiet);
}
.market-overview-head h2 {
  color: var(--tc-text-strong);
  font-family: var(--tc-font-sans);
  font-weight: var(--tc-weight-medium);
}
.market-freshness,
.market-metric > span,
.market-price-copy > span {
  color: var(--tc-text-muted);
  font-family: var(--tc-font-sans);
}
.market-metric strong {
  color: var(--tc-text-strong);
  font-family: var(--tc-font-sans);
  font-weight: var(--tc-weight-bold);
}
.market-metric:hover { background: var(--tc-surface-hover); }
.market-stale .market-freshness { color: var(--tc-pending); }
.market-error .market-freshness { color: var(--tc-oxide); }
.market-freshness i,
.market-stale .market-freshness i,
.market-error .market-freshness i { box-shadow: none; }
.market-sparkline-empty {
  background-image: linear-gradient(90deg, var(--tc-bg-quiet) 20%, var(--tc-border) 45%, var(--tc-bg-quiet) 70%);
}
body[data-page="analytics"] .analytics-price-lockup span,
body[data-page="analytics"] .analytics-hero-metrics span,
body[data-page="analytics"] .analytics-hero-metrics small { color: var(--tc-inverse-muted); }
.analytics-price-lockup strong,
.analytics-hero-metrics strong { color: var(--tc-inverse-text); text-shadow: none; }
.analytics-price-lockup em {
  color: var(--tc-ok);
  border-color: color-mix(in srgb, var(--tc-ok) 30%, transparent);
  background: var(--tc-ok-soft);
}
.analytics-price-lockup em.negative {
  color: var(--tc-oxide);
  border-color: color-mix(in srgb, var(--tc-oxide) 30%, transparent);
  background: var(--tc-oxide-soft);
}
.analytics-hero-metrics,
.analytics-hero-metrics > div + div { border-color: var(--tc-inverse-rule); }
.analytics-market-summary span,
.analytics-market-summary small { color: var(--tc-text-muted); }
.analytics-market-summary strong { color: var(--tc-text-strong); }
.analytics-live-price-point { border-color: var(--tc-chart-surface); }
.analytics-live-price-point i { background: var(--tc-chart-surface); box-shadow: none; }

/* The published theme only partially covers analytics. Finish its semantic
 * color mapping here, preserving the existing chart geometry and controls. */
body[data-page="analytics"] :is(
  .analytics-signal-strip, .analytics-studio, .analytics-card,
  .analytics-linked-charts, .analytics-price-chart-stage,
  .analytics-transfer-chart-stage, .mining-history-chart-wrap,
  .mining-history-chart-wrap .chart-empty, .analytics-methodology
) {
  border-color: var(--tc-border);
  color: var(--tc-text);
  background: var(--tc-surface);
  box-shadow: none;
}
body[data-page="analytics"] :is(
  .analytics-signal-strip article + article, .analytics-card-head,
  .analytics-subchart-head, .analytics-studio-foot, .analytics-card-foot,
  .mining-history-inspector, .mining-history-inspector > div:first-child,
  .mining-history-method, .mining-history-tooltip-rates, .large-transfer-row
) { border-color: var(--tc-border); }
body[data-page="analytics"] :is(
  .analytics-signal-strip span, .analytics-signal-strip small,
  .analytics-section-title p, .analytics-card-head p,
  .analytics-alert-copy small, .analytics-alert-threshold span,
  .analytics-subchart-head small, .analytics-studio-foot,
  .analytics-card-foot, .analytics-card-foot small, .analytics-card-stat span,
  .analytics-chart-legend b, .analytics-chart-legend small,
  .mining-history-meta span, .mining-history-toolbar > span,
  .mining-history-legend-title, .mining-history-legend-title span,
  .mining-history-key small, .mining-history-inspector > div:first-child small,
  .mining-history-addresses p, .mining-history-method,
  .large-transfer-id small, .analytics-methodology
) { color: var(--tc-text-muted); }
body[data-page="analytics"] :is(
  .analytics-signal-strip strong, .analytics-section-title h2,
  .analytics-card-head h2, .analytics-alert-copy b,
  .mining-history-meta strong, .mining-history-key strong,
  .mining-history-inspector > div:first-child strong,
  .mining-history-addresses a b, .large-transfer-value
) { color: var(--tc-text-strong); }
body[data-page="analytics"] :is(
  .analytics-alert-control, .analytics-alert-threshold,
  .analytics-toggle, .analytics-range-tabs, .mining-history-inspector,
  .analytics-notification-feedback, .large-transfer-rank
) {
  border-color: var(--tc-border);
  color: var(--tc-text);
  background: var(--tc-bg-quiet);
  box-shadow: none;
}
body[data-page="analytics"] :is(
  .analytics-alert-control button, .analytics-alert-threshold select,
  .analytics-toggle button, .analytics-range-tabs button,
  .mining-history-key b
) { color: var(--tc-text); }
body[data-page="analytics"] :is(
  .analytics-toggle button:hover, .analytics-range-tabs button:hover
) { color: var(--tc-text-strong); }
body[data-page="analytics"] :is(
  .analytics-toggle button.active, .analytics-range-tabs button.active
) { color: var(--tc-button-text); background: var(--tc-button-bg); }
body[data-page="analytics"] .analytics-alert-control:focus-within {
  border-color: var(--tc-border-strong);
  box-shadow: 0 0 0 3px var(--tc-accent-soft);
}
body[data-page="analytics"] .analytics-alert-switch {
  background: var(--tc-border-strong);
  box-shadow: none;
}
body[data-page="analytics"] .analytics-alert-switch i {
  background: var(--tc-surface);
  box-shadow: none;
}
body[data-page="analytics"] .analytics-alert-control button[aria-pressed="true"] .analytics-alert-icon {
  color: var(--tc-ok);
  background: var(--tc-ok-soft);
}
body[data-page="analytics"] .analytics-alert-control button[aria-pressed="true"] .analytics-alert-copy small { color: var(--tc-ok); }
body[data-page="analytics"] .analytics-alert-control button[aria-pressed="true"] .analytics-alert-switch { background: var(--tc-ok); box-shadow: none; }
body[data-page="analytics"] .analytics-alert-control[data-state="blocked"] .analytics-alert-icon {
  color: var(--tc-oxide);
  background: var(--tc-oxide-soft);
}
body[data-page="analytics"] :is(.analytics-live-line, .analytics-live-line b, .analytics-hero-copy > p) { color: var(--tc-inverse-muted); }
body[data-page="analytics"] .analytics-live-line i {
  background: var(--tc-accent);
  box-shadow: none;
  animation: none;
}
body[data-page="analytics"] .analytics-dark-empty { color: var(--tc-inverse-muted) !important; }
body[data-page="analytics"] :is(.mining-history-key:hover b, .mining-history-key:hover strong) { color: var(--key-color); }
body[data-page="analytics"] :is(.mining-history-addresses a, .large-transfer-id strong) { color: var(--tc-link); }
body[data-page="analytics"] .mining-history-addresses a {
  border-color: var(--tc-border);
  background: var(--tc-surface);
}
body[data-page="analytics"] .mining-history-addresses a:hover {
  border-color: var(--tc-accent);
  background: var(--tc-surface-hover);
}
body[data-page="analytics"] :is(.analytics-chart-tooltip, .mining-history-tooltip) {
  border-color: var(--tc-border-strong);
  color: var(--tc-text);
  background: var(--tc-surface);
  box-shadow: var(--tc-shadow-float);
}
body[data-page="analytics"] :is(
  .analytics-chart-tooltip span, .analytics-chart-tooltip small,
  .analytics-whale-tooltip-list a small, .mining-history-tooltip span,
  .mining-history-tooltip small
) { color: var(--tc-text-muted); }
body[data-page="analytics"] :is(
  .analytics-chart-tooltip strong, .mining-history-tooltip strong,
  .mining-history-tooltip-rates em, .mining-history-tooltip-rates b
) { color: var(--tc-text-strong); }
body[data-page="analytics"] .analytics-chart-tooltip.has-transfer-list.is-pinned {
  border-color: var(--tc-accent);
  box-shadow: var(--tc-shadow-float);
}
body[data-page="analytics"] :is(.analytics-whale-tooltip-list, .analytics-whale-tooltip-list a) {
  border-color: var(--tc-border);
  scrollbar-color: var(--tc-border-strong) transparent;
}
body[data-page="analytics"] .analytics-whale-tooltip-list a span { color: var(--tc-link); }
body[data-page="analytics"] :is(.analytics-whale-tooltip-list a:hover, .analytics-tooltip-close:hover) {
  color: var(--tc-text-strong);
  background: var(--tc-surface-hover);
}
body[data-page="analytics"] .analytics-tooltip-close {
  color: var(--tc-text-muted);
  background: var(--tc-bg-quiet);
}

.address-scope-note p { color: var(--tc-text-muted); }
.address-scope-note > span {
  color: var(--tc-text-muted);
  border-color: var(--tc-border-strong);
  background: var(--tc-surface);
}
