﻿:root {
      --bg-deep: #050508;
      --bg: #080a10;
      --surface: rgba(18, 20, 32, 0.72);
      --surface-solid: #12141f;
      --surface-hover: rgba(28, 32, 48, 0.9);
      --border: rgba(203, 208, 235, 0.08);
      --border-strong: rgba(203, 208, 235, 0.14);
      --text: #e8eaf4;
      --text-secondary: #9aa3b8;
      --text-muted: #6b7288;
      --accent: #8b9dff;
      --accent-bright: #a8b8ff;
      --accent-glow: rgba(139, 157, 255, 0.35);
      --buy: #34d399;
      --buy-bg: rgba(52, 211, 153, 0.12);
      --sell: #f87171;
      --sell-bg: rgba(248, 113, 113, 0.12);
      --warn: #fbbf24;
      --radius: 14px;
      --radius-sm: 10px;
      --shadow: 0 4px 24px rgba(0, 0, 0, 0.4);
      --font: "JetBrains Mono", Menlo, ui-monospace, SFMono-Regular, Consolas, monospace;
      --mono: "JetBrains Mono", Menlo, ui-monospace, SFMono-Regular, Consolas, monospace;
      --scrollbar-size: 7px;
      --scrollbar-track: rgba(255, 255, 255, 0.035);
      --scrollbar-thumb: rgba(203, 208, 235, 0.16);
      --scrollbar-thumb-hover: rgba(139, 157, 255, 0.45);
      --scrollbar-thumb-active: rgba(139, 157, 255, 0.62);
    }

    *, *::before, *::after { box-sizing: border-box; }

    html {
      height: 100%;
      scroll-behavior: smooth;
    }

    body {
      margin: 0;
      height: 100%;
      overflow: hidden;
      font-family: var(--font);
      font-size: 14px;
      color: var(--text);
      background: var(--bg-deep);
      line-height: 1.4;
      font-variant-numeric: tabular-nums;
      -webkit-font-smoothing: antialiased;
      text-rendering: optimizeLegibility;
    }

    .bg-layer {
      position: fixed;
      inset: 0;
      z-index: 0;
      pointer-events: none;
      background:
        radial-gradient(ellipse 80% 50% at 50% -20%, rgba(139, 157, 255, 0.15), transparent 50%),
        radial-gradient(ellipse 60% 40% at 100% 50%, rgba(99, 102, 241, 0.08), transparent 45%),
        radial-gradient(ellipse 50% 30% at 0% 80%, rgba(52, 211, 153, 0.06), transparent 40%),
        var(--bg);
    }

    .grid-overlay {
      position: fixed;
      inset: 0;
      z-index: 0;
      pointer-events: none;
      opacity: 0.35;
      background-image:
        linear-gradient(rgba(203, 208, 235, 0.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(203, 208, 235, 0.03) 1px, transparent 1px);
      background-size: 48px 48px;
      mask-image: radial-gradient(ellipse 70% 60% at 50% 30%, black, transparent);
    }

    .app {
      position: relative;
      z-index: 1;
      /* 原 1320 + Time 列约 108px，略留余量 */
      max-width: 1440px;
      margin: 0 auto;
      height: 100vh;
      max-height: 100vh;
      padding: 0 16px;
      display: flex;
      flex-direction: column;
      overflow: hidden;
      box-sizing: border-box;
    }

  /* ── Top bar ── */
    .topbar {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
      padding: 16px 0 14px;
      flex-wrap: nowrap;
      flex-shrink: 0;
      min-width: 0;
    }

    .brand {
      display: flex;
      align-items: center;
      gap: 14px;
      flex-shrink: 0;
    }

    .brand-mark {
      width: 42px;
      height: 42px;
      border-radius: 12px;
      background: #0a0a0a;
      display: flex;
      align-items: center;
      justify-content: center;
      font-weight: 700;
      font-size: 15px;
      color: #fff;
      box-shadow: 0 4px 20px var(--accent-glow);
      overflow: hidden;
      flex-shrink: 0;
      padding: 4px;
      box-sizing: border-box;
    }

    .brand-mark-img {
      width: 100%;
      height: 100%;
      object-fit: contain;
      object-position: center;
      display: block;
    }

    .brand h1 {
      margin: 0;
      font-size: 1.35rem;
      font-weight: 700;
      letter-spacing: -0.02em;
    }

    .brand p {
      margin: 2px 0 0;
      font-size: 0.8rem;
      color: var(--text-secondary);
    }

    .status-pill {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 10px 16px;
      background: var(--surface);
      backdrop-filter: blur(12px);
      border: 1px solid var(--border);
      border-radius: 999px;
      font-size: 0.8125rem;
      color: var(--text-secondary);
      max-width: min(72vw, 760px);
      width: max-content;
      min-width: 8rem;
      flex: 0 1 auto;
      overflow: hidden;
    }

    .bn-mcap-pill {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 4px 8px;
      background: var(--surface);
      backdrop-filter: blur(12px);
      border: 1px solid var(--border);
      border-radius: 999px;
      font-size: 0.8125rem;
      color: var(--text-secondary);
      width: 158px;
      max-width: 158px;
      min-width: 158px;
      flex: 0 0 158px;
      overflow: hidden;
      cursor: pointer;
      user-select: none;
    }

    .bn-mcap-pill:hover {
      border-color: rgba(26, 158, 178, 0.45);
    }

    .bn-mcap-pill[data-state="paused"] {
      border-color: rgba(251, 191, 36, 0.45);
      color: #fbbf24;
    }

    .bn-mcap-icon {
      width: 14px;
      height: 14px;
      border-radius: 50%;
      flex-shrink: 0;
      box-sizing: border-box;
      background: var(--text-muted);
      position: relative;
    }

    .bn-mcap-pill[data-state="idle"] .bn-mcap-icon,
    .bn-mcap-pill[data-state="wait"] .bn-mcap-icon {
      background: transparent;
      border: 2px solid var(--text-muted);
      opacity: 0.7;
    }

    .bn-mcap-pill[data-state="loading"] .bn-mcap-icon {
      background: conic-gradient(
        #4bffb3 calc(var(--bn-progress, 0) * 1%),
        rgba(148, 163, 184, 0.25) 0
      );
      border: none;
      -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 2.5px), #000 0);
      mask: radial-gradient(farthest-side, transparent calc(100% - 2.5px), #000 0);
      animation: bn-mcap-spin 1.1s linear infinite;
    }

    .bn-mcap-pill[data-state="loading"][data-determinate="1"] .bn-mcap-icon {
      animation: none;
    }

    .bn-mcap-pill[data-state="done"] .bn-mcap-icon {
      background: transparent;
      border: none;
      box-shadow: none;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      font-size: 12px;
      line-height: 1;
      width: 14px;
      height: 14px;
    }

    .bn-mcap-pill[data-state="done"] .bn-mcap-icon::after {
      content: "✅";
      position: static;
      left: auto;
      top: auto;
      width: auto;
      height: auto;
      border: none;
      transform: none;
      font-size: 12px;
      line-height: 1;
    }

    .bn-mcap-pill[data-state="paused"] .bn-mcap-icon {
      background: transparent;
      border: none;
      box-shadow: none;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      font-size: 11px;
      line-height: 1;
      width: 14px;
      height: 14px;
      animation: none;
    }

    .bn-mcap-pill[data-state="paused"] .bn-mcap-icon::after {
      content: "⏸";
      font-size: 11px;
      line-height: 1;
    }

    .bn-mcap-pill[data-state="paused"] .bn-mcap-bar-fill {
      transform: scaleX(0) !important;
      background: rgba(251, 191, 36, 0.55);
    }

    .bn-mcap-pill[data-state="paused"] .bn-mcap-text {
      color: #fbbf24;
    }

    .bn-mcap-body {
      display: flex;
      flex-direction: column;
      gap: 4px;
      min-width: 0;
      flex: 1 1 auto;
    }

    .bn-mcap-text {
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      line-height: 1.15;
      color: var(--text-secondary);
    }

    .bn-mcap-pill[data-state="loading"] .bn-mcap-text,
    .bn-mcap-pill[data-state="done"] .bn-mcap-text {
      color: var(--text);
    }

    .bn-mcap-bar {
      height: 2px;
      width: 100%;
      border-radius: 999px;
      background: rgba(148, 163, 184, 0.22);
      overflow: hidden;
    }

    .bn-mcap-bar-fill {
      height: 100%;
      width: 100%;
      transform-origin: left center;
      transform: scaleX(1);
      background: linear-gradient(90deg, #4bffb3, #1a9eb2);
      border-radius: inherit;
      transition: transform 0.35s linear;
    }

    .bn-mcap-pill[data-state="loading"] .bn-mcap-bar-fill {
      background: #4bffb3;
      transition: transform 0.15s ease-out;
    }

    @keyframes bn-mcap-spin {
      to { transform: rotate(360deg); }
    }

    #statusText {
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      min-width: 0;
      flex: 1 1 auto;
    }

    .status-dot {
      width: 8px;
      height: 8px;
      border-radius: 50%;
      background: var(--text-muted);
      flex-shrink: 0;
    }

    .status-dot.live {
      background: #22c55e;
      box-shadow: 0 0 8px rgba(34, 197, 94, 0.55);
    }

    .status-dot.err {
      background: #ef4444;
      box-shadow: 0 0 8px rgba(239, 68, 68, 0.55);
    }

    @keyframes pulse {
      0%, 100% { opacity: 1; transform: scale(1); }
      50% { opacity: 0.7; transform: scale(1.15); }
    }

    .status-pill strong { color: var(--text); font-weight: 600; }

    .topbar-right {
      display: flex;
      align-items: center;
      flex-wrap: wrap;
      gap: 8px 10px;
      flex: 1 1 auto;
      min-width: 0;
      justify-content: flex-end;
    }

    .btn-settings {
      width: 38px;
      height: 38px;
      border-radius: 10px;
      border: 1px solid var(--border);
      background: var(--surface);
      color: var(--text);
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
      transition: color 0.15s, border-color 0.15s, background 0.15s;
    }

    .btn-settings-icon {
      display: block;
      flex-shrink: 0;
      fill: currentColor;
      stroke: none;
      color: inherit;
    }

    .btn-settings-icon circle,
    .btn-settings-icon path {
      fill: currentColor;
      stroke: none;
    }

    .btn-settings:hover {
      color: var(--accent-bright);
      border-color: var(--border-strong);
      background: var(--surface-hover);
    }

    .btn-topbar {
      height: 38px;
      padding: 0 12px;
      border-radius: 10px;
      border: 1px solid var(--border);
      background: var(--surface);
      color: var(--text-secondary);
      cursor: pointer;
      font-size: 0.8125rem;
      font-weight: 500;
      flex-shrink: 0;
      transition: color 0.15s, border-color 0.15s, background 0.15s;
      white-space: nowrap;
    }

    .btn-topbar:hover {
      color: var(--accent-bright);
      border-color: var(--border-strong);
      background: var(--surface-hover);
    }

  /* ── Top control bar ── */
    .control-bar {
      display: flex;
      flex-direction: column;
      gap: 0;
      padding: 0;
      margin-bottom: 16px;
    }

    .control-bar-row {
      display: flex;
      align-items: flex-end;
      gap: 20px;
      padding: 14px 18px;
      flex-wrap: wrap;
    }

    .control-filters-row {
      display: flex;
      align-items: center;
      gap: 14px;
      flex-wrap: wrap;
      padding: 10px 18px 12px;
      border-top: 1px solid var(--border);
      background: rgba(255, 255, 255, 0.02);
    }

    .control-add-row {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 10px 18px 12px;
      border-top: 1px solid var(--border);
    }

    .control-add-ca {
      flex: 1 1 auto;
      min-width: 0;
      padding: 10px 12px;
      font-family: var(--font-mono);
      font-size: 0.8125rem;
    }

    .control-add-row .btn-start {
      flex: 0 0 auto;
      min-width: 72px;
    }

    .control-filter-inline {
      display: flex;
      align-items: center;
      gap: 6px;
      flex-shrink: 0;
    }

    .control-filter-inline-label {
      font-size: 0.75rem;
      font-weight: 500;
      color: var(--text-muted);
      white-space: nowrap;
    }

    .control-filter-check {
      display: flex;
      align-items: center;
      gap: 4px;
      font-size: 0.8125rem;
      font-weight: 500;
      color: var(--text-muted);
      cursor: pointer;
      user-select: none;
      white-space: nowrap;
      margin: 0;
      line-height: 1;
    }

    .control-filter-check input[type="checkbox"],
    .control-ws-topic-check input[type="checkbox"],
    .settings-push-cond-check input[type="checkbox"],
    .settings-inline-check input[type="checkbox"],
    .checkbox-field input[type="checkbox"],
    .holder-users-col-check input[type="checkbox"],
    .holder-users-row-check,
    .global-users-col-check input[type="checkbox"],
    .global-users-row-check,
    .global-users-col-block input[type="checkbox"],
    .global-users-row-block,
    .pushed-holders-col-check input[type="checkbox"],
    .pushed-holders-row-check,
    #pushedHoldersSelectAll {
      appearance: none;
      -webkit-appearance: none;
      box-sizing: border-box;
      width: 14px;
      height: 14px;
      min-width: 14px;
      min-height: 14px;
      max-width: 14px;
      max-height: 14px;
      flex: 0 0 14px;
      margin: 0;
      padding: 0;
      border: 1px solid var(--border-strong);
      border-radius: 2px;
      background-color: rgba(255, 255, 255, 0.06);
      background-repeat: no-repeat;
      background-position: center;
      background-size: 10px 10px;
      cursor: pointer;
      position: relative;
      transition: border-color 0.15s ease, background-color 0.15s ease;
      vertical-align: middle;
      aspect-ratio: 1;
      overflow: visible;
    }

    .control-filter-check input[type="checkbox"]:hover,
    .control-ws-topic-check input[type="checkbox"]:hover,
    .settings-push-cond-check input[type="checkbox"]:hover,
    .settings-inline-check input[type="checkbox"]:hover,
    .checkbox-field input[type="checkbox"]:hover,
    .holder-users-col-check input[type="checkbox"]:hover,
    .holder-users-row-check:hover,
    .global-users-col-check input[type="checkbox"]:hover,
    .global-users-row-check:hover,
    .global-users-col-block input[type="checkbox"]:hover,
    .global-users-row-block:hover,
    .pushed-holders-col-check input[type="checkbox"]:hover,
    .pushed-holders-row-check:hover,
    #pushedHoldersSelectAll:hover {
      border-color: rgba(139, 157, 255, 0.35);
      background-color: rgba(255, 255, 255, 0.09);
    }

    .control-filter-check input[type="checkbox"]:checked,
    .control-ws-topic-check input[type="checkbox"]:checked,
    .settings-push-cond-check input[type="checkbox"]:checked,
    .settings-inline-check input[type="checkbox"]:checked,
    .checkbox-field input[type="checkbox"]:checked,
    .holder-users-col-check input[type="checkbox"]:checked,
    .holder-users-row-check:checked,
    .global-users-col-check input[type="checkbox"]:checked,
    .global-users-row-check:checked,
    .global-users-col-block input[type="checkbox"]:checked,
    .global-users-row-block:checked,
    .pushed-holders-col-check input[type="checkbox"]:checked,
    .pushed-holders-row-check:checked,
    #pushedHoldersSelectAll:checked {
      background-color: rgba(139, 157, 255, 0.28);
      border-color: rgba(139, 157, 255, 0.65);
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23c4d0ff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M2.5 6.5l2 2 4.5-4.5'/%3E%3C/svg%3E");
    }

    .control-filter-check input[type="checkbox"]:indeterminate,
    .control-ws-topic-check input[type="checkbox"]:indeterminate,
    .settings-push-cond-check input[type="checkbox"]:indeterminate,
    .settings-inline-check input[type="checkbox"]:indeterminate,
    .checkbox-field input[type="checkbox"]:indeterminate,
    .holder-users-col-check input[type="checkbox"]:indeterminate,
    .holder-users-row-check:indeterminate,
    .global-users-col-check input[type="checkbox"]:indeterminate,
    .global-users-row-check:indeterminate,
    .pushed-holders-col-check input[type="checkbox"]:indeterminate,
    .pushed-holders-row-check:indeterminate,
    #pushedHoldersSelectAll:indeterminate {
      background-color: rgba(139, 157, 255, 0.28);
      border-color: rgba(139, 157, 255, 0.65);
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23c4d0ff' stroke-width='2' stroke-linecap='round' d='M2.5 6h7'/%3E%3C/svg%3E");
    }

    .control-filter-check input[type="checkbox"]:focus-visible,
    .control-ws-topic-check input[type="checkbox"]:focus-visible,
    .settings-push-cond-check input[type="checkbox"]:focus-visible,
    .settings-inline-check input[type="checkbox"]:focus-visible,
    .checkbox-field input[type="checkbox"]:focus-visible,
    .holder-users-col-check input[type="checkbox"]:focus-visible,
    .holder-users-row-check:focus-visible,
    .global-users-col-check input[type="checkbox"]:focus-visible,
    .global-users-row-check:focus-visible,
    .global-users-col-block input[type="checkbox"]:focus-visible,
    .global-users-row-block:focus-visible,
    .pushed-holders-col-check input[type="checkbox"]:focus-visible,
    .pushed-holders-row-check:focus-visible,
    #pushedHoldersSelectAll:focus-visible {
      outline: 1px solid rgba(139, 157, 255, 0.45);
      outline-offset: 1px;
    }

    .control-filter-check:hover {
      color: var(--text);
    }

    .control-filter {
      display: flex;
      flex-direction: column;
      gap: 6px;
    }

    .control-filter-row {
      display: flex;
      align-items: center;
      gap: 4px;
    }

    .control-filter-prefix {
      font-size: 0.8125rem;
      color: var(--text-muted);
      line-height: 1;
    }

    .control-filter-input {
      width: 72px;
      max-width: 72px;
      min-width: 72px;
      flex: 0 0 72px;
    }

    .control-filter-mcap-input {
      width: 56px;
      max-width: 56px;
      min-width: 56px;
      flex: 0 0 56px;
    }

    .control-filter-mcap-field {
      display: inline-flex;
      align-items: center;
      gap: 2px;
      flex-shrink: 0;
    }

    .control-filter-mcap-unit {
      margin-right: 0;
    }

    .control-auth {
      flex: 1 1 320px;
      min-width: 0;
    }

    .control-poll {
      flex: 0 1 auto;
    }

    .control-label {
      display: block;
      font-size: 0.6875rem;
      font-weight: 600;
      color: var(--text-muted);
      text-transform: uppercase;
      letter-spacing: 0.06em;
      margin-bottom: 6px;
    }

    .control-label-row {
      display: flex;
      align-items: baseline;
      gap: 8px;
      flex-wrap: wrap;
      margin-bottom: 6px;
    }

    .control-label-row .control-label {
      margin-bottom: 0;
    }

    .auth-captured-at {
      font-size: 0.6875rem;
      font-weight: 500;
      color: var(--accent);
      letter-spacing: 0;
      text-transform: none;
    }

    .control-auth-row,
    .control-poll-row {
      display: flex;
      align-items: center;
      gap: 10px;
      flex-wrap: wrap;
    }

    .control-auth-input {
      flex: 1 1 200px;
      min-width: 180px;
    }

    .control-auth-input input {
      padding-right: 42px;
    }

    .control-auth-change {
      margin-top: 0;
      white-space: nowrap;
    }

    .control-divider {
      width: 1px;
      align-self: stretch;
      min-height: 44px;
      background: var(--border);
      flex-shrink: 0;
    }

    .control-interval {
      width: 72px;
      max-width: 72px;
      min-width: 72px;
      flex: 0 0 72px;
      box-sizing: border-box;
      padding: 10px 12px;
      text-align: center;
      -moz-appearance: textfield;
      appearance: textfield;
    }

    .control-interval::-webkit-outer-spin-button,
    .control-interval::-webkit-inner-spin-button {
      -webkit-appearance: none;
      margin: 0;
    }

    .control-interval-unit {
      font-size: 0.8125rem;
      color: var(--text-muted);
      margin-right: 4px;
    }

    .control-poll-row .btn-start,
    .control-poll-row .btn-ghost {
      flex: 0 0 92px;
      width: 92px;
      min-width: 92px;
      max-width: 92px;
      padding: 10px 10px;
      justify-content: center;
      gap: 6px;
      box-sizing: border-box;
      white-space: nowrap;
    }

    .control-ws-toggle {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      margin-left: 4px;
      padding: 6px 10px;
      border-radius: 8px;
      border: 1px solid var(--border);
      background: rgba(255, 255, 255, 0.03);
      cursor: pointer;
      user-select: none;
      white-space: nowrap;
    }

    .control-ws-toggle input {
      position: absolute;
      opacity: 0;
      pointer-events: none;
    }

    .control-ws-track {
      width: 28px;
      height: 16px;
      border-radius: 999px;
      background: rgba(255, 255, 255, 0.12);
      position: relative;
      flex-shrink: 0;
      transition: background 0.15s ease;
    }

    .control-ws-track::after {
      content: "";
      position: absolute;
      top: 2px;
      left: 2px;
      width: 12px;
      height: 12px;
      border-radius: 50%;
      background: #fff;
      transition: transform 0.15s ease;
    }

    .control-ws-toggle:has(input:checked) .control-ws-track {
      background: var(--accent, #3ecf8e);
    }

    .control-ws-toggle:has(input:checked) .control-ws-track::after {
      transform: translateX(12px);
    }

    .control-ws-text {
      font-size: 0.75rem;
      font-weight: 700;
      letter-spacing: 0.04em;
      color: var(--text);
    }

    .control-ws-status {
      font-size: 0.6875rem;
      color: var(--text-muted);
      min-width: 2.5em;
    }

    .control-ws-status.is-on {
      color: var(--accent, #3ecf8e);
    }

    .control-ws-status.is-err {
      color: #f87171;
    }

    .control-poll .btn-clear {
      padding: 10px 14px;
    }

    .control-bar.panel {
      flex-shrink: 0;
      margin-bottom: 12px;
    }

    .feed-area {
      display: flex;
      flex-direction: column;
      gap: 0;
      flex: 1;
      min-height: 0;
      overflow: hidden;
    }

    /* ── 统一监控面板：添加 + 列表一体 ── */
    .watch-panel {
      flex: 1;
      min-height: 0;
      display: flex;
      flex-direction: column;
      overflow: hidden;
    }

    .watch-panel-add {
      flex-shrink: 0;
    }

    .watch-panel-meta {
      flex-shrink: 0;
      padding: 10px 16px;
      border-bottom: 1px solid var(--border);
      background: linear-gradient(180deg, rgba(255, 255, 255, 0.025) 0%, transparent 100%);
    }

    .watch-empty {
      flex-shrink: 0;
    }

    .monitor-panel {
      flex: 1;
      min-height: 0;
      display: flex;
      flex-direction: column;
      overflow: hidden;
    }

    .monitor-head-scroll {
      flex-shrink: 0;
      overflow-x: hidden;
      overflow-y: hidden;
      scrollbar-width: none;
      border-bottom: 1px solid var(--border);
      background: rgba(18, 20, 32, 0.98);
    }

    .monitor-head-scroll::-webkit-scrollbar {
      display: none;
    }

    .monitor-scroll {
      flex: 1;
      min-height: 0;
      overflow-x: hidden;
      overflow-y: auto;
      overscroll-behavior: contain;
      scrollbar-width: thin;
      scrollbar-color: var(--scrollbar-thumb) transparent;
    }

    .holders-table-wrap {
      padding: 0 12px 0;
      overflow: visible;
      flex-shrink: 0;
    }

    .holders-list {
      padding-bottom: 4px;
    }

    .monitor-scroll::-webkit-scrollbar,
    .holders-table-wrap::-webkit-scrollbar,
    .holder-users-list-scroll::-webkit-scrollbar,
    .settings-icons-col .chain-icons-list::-webkit-scrollbar,
    .monitor-table::-webkit-scrollbar {
      width: var(--scrollbar-size);
      height: var(--scrollbar-size);
    }

    .monitor-scroll::-webkit-scrollbar-track,
    .holders-table-wrap::-webkit-scrollbar-track,
    .holder-users-list-scroll::-webkit-scrollbar-track,
    .settings-icons-col .chain-icons-list::-webkit-scrollbar-track,
    .monitor-table::-webkit-scrollbar-track {
      background: transparent;
      margin: 4px 0;
    }

    .monitor-scroll::-webkit-scrollbar-thumb,
    .holders-table-wrap::-webkit-scrollbar-thumb,
    .holder-users-list-scroll::-webkit-scrollbar-thumb,
    .settings-icons-col .chain-icons-list::-webkit-scrollbar-thumb,
    .monitor-table::-webkit-scrollbar-thumb {
      background: var(--scrollbar-thumb);
      border-radius: 999px;
      border: 2px solid transparent;
      background-clip: padding-box;
      transition: background 0.15s ease;
    }

    .monitor-scroll::-webkit-scrollbar-thumb:hover,
    .holders-table-wrap::-webkit-scrollbar-thumb:hover,
    .holder-users-list-scroll::-webkit-scrollbar-thumb:hover,
    .settings-icons-col .chain-icons-list::-webkit-scrollbar-thumb:hover,
    .monitor-table::-webkit-scrollbar-thumb:hover {
      background: var(--scrollbar-thumb-hover);
      background-clip: padding-box;
    }

    .monitor-scroll::-webkit-scrollbar-thumb:active,
    .holders-table-wrap::-webkit-scrollbar-thumb:active,
    .holder-users-list-scroll::-webkit-scrollbar-thumb:active,
    .settings-icons-col .chain-icons-list::-webkit-scrollbar-thumb:active,
    .monitor-table::-webkit-scrollbar-thumb:active {
      background: var(--scrollbar-thumb-active);
      background-clip: padding-box;
    }

    .monitor-scroll::-webkit-scrollbar-corner,
    .holders-table-wrap::-webkit-scrollbar-corner,
    .holder-users-list-scroll::-webkit-scrollbar-corner,
    .settings-icons-col .chain-icons-list::-webkit-scrollbar-corner,
    .monitor-table::-webkit-scrollbar-corner {
      background: transparent;
    }

    .watch-panel-add {
      padding: 14px 16px;
      border-bottom: 1px solid var(--border);
      background: linear-gradient(180deg, rgba(255, 255, 255, 0.025) 0%, transparent 100%);
    }

    .watch-panel-add .bulk-import {
      margin-top: 10px;
      padding-top: 10px;
      border-top: 1px solid var(--border);
    }

    .watch-panel-add .bulk-import .btn-row {
      margin-top: 10px;
    }

    /* ── Monitor list (分列表格) ── */
    .monitor-table {
      min-width: 0;
      width: 100%;
    }

    .monitor-filter-empty {
      padding: 24px 12px;
      text-align: center;
      color: var(--text-muted);
      font-size: 0.875rem;
    }

    .monitor-head,
    .monitor-row {
      --monitor-link-col: 3rem;
      --monitor-icon-col: 80px;
      --monitor-col-gap: 6px;
      display: grid;
      /* 相对加 Time 前：仅在 No 后插入 Time 列宽，其余列宽/间隔不变 */
      grid-template-columns:
        33px 108px 40px 151px
        8px
        72px 96px 72px 96px 72px 100px
        32px
        repeat(7, var(--monitor-link-col))
        12px
        minmax(52px, 1fr)
        minmax(56px, 1fr)
        64px;
      align-items: center;
      gap: 6px;
      padding: 8px 12px;
      min-height: 0;
      box-sizing: border-box;
      min-width: 0;
      width: 100%;
    }

    .monitor-head {
      font-size: 0.625rem;
      font-weight: 600;
      color: var(--text-muted);
      text-transform: uppercase;
      letter-spacing: 0.04em;
      user-select: none;
      min-height: 0;
      padding: 8px 12px;
    }

    .monitor-head .monitor-col-link,
    .monitor-head .monitor-col-block {
      text-align: center;
      white-space: nowrap;
      justify-self: center;
    }

    .monitor-head .monitor-col-status {
      text-align: left;
      white-space: nowrap;
    }

    .monitor-head .monitor-col-num {
      text-align: right;
      justify-self: end;
    }

    .monitor-sort-btn {
      border: none;
      background: none;
      padding: 0;
      margin: 0;
      font: inherit;
      font-size: inherit;
      font-weight: inherit;
      color: inherit;
      text-transform: inherit;
      letter-spacing: inherit;
      cursor: pointer;
      line-height: 1.2;
      display: inline-flex;
      flex-direction: row;
      align-items: center;
      justify-content: flex-end;
      gap: 3px;
      justify-self: end;
      width: auto;
      max-width: 100%;
      text-align: right;
      white-space: nowrap;
    }

    .monitor-sort-btn.sort-active::after {
      display: inline-block;
      flex-shrink: 0;
      font-size: 0.5rem;
      line-height: 1;
      opacity: 0.75;
    }

    .monitor-sort-btn:hover {
      color: var(--text);
    }

    .monitor-sort-btn.sort-active {
      color: var(--text);
    }

    .monitor-sort-btn.sort-desc::after {
      content: "▼";
    }

    .monitor-sort-btn.sort-asc::after {
      content: "▲";
    }

    .monitor-col {
      min-width: 0;
    }

    .monitor-col-no {
      display: flex;
      align-items: center;
      justify-content: flex-end;
      font-variant-numeric: tabular-nums;
      color: var(--text-muted);
      font-size: 0.75rem;
      padding-right: 2px;
      user-select: none;
    }

    .monitor-col-time {
      display: flex;
      align-items: center;
      justify-content: flex-start;
      font-variant-numeric: tabular-nums;
      color: var(--text-muted);
      font-size: 0.6875rem;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      user-select: none;
    }

    .monitor-head .monitor-col-time.monitor-sort-btn {
      justify-content: flex-start;
      justify-self: start;
      text-align: left;
      color: inherit;
    }

    .monitor-col-icon {
      display: flex;
      justify-content: center;
    }

    .monitor-col-icon .monitor-icon-wrap {
      width: 80px;
      height: 80px;
      border-radius: 10px;
    }

    .monitor-col-icon .monitor-icon-inner {
      border-radius: 10px; /* 正方形，不要圆形 */
    }

    .monitor-col-icon .monitor-icon-wrap .monitor-icon,
    .monitor-col-icon .monitor-icon-wrap .monitor-icon-fallback {
      border-radius: 10px;
    }

    .monitor-col-icon .monitor-icon-fallback {
      font-size: 1.5rem;
    }

    .monitor-col-icon .chain-icon-overlay {
      width: 20px;
      height: 20px;
    }

    .monitor-col-symbol {
      min-width: 0;
    }

    .monitor-col-symbol .monitor-title {
      font-weight: 600;
      font-size: 0.8125rem;
      line-height: 1.25;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      min-width: 0;
    }

    .monitor-pair-tag {
      font-weight: 500;
      color: #1a9eb2;
      font-size: 0.75em;
    }

    .monitor-title-row {
      display: flex;
      align-items: center;
      gap: 6px;
      min-width: 0;
    }

    .monitor-title-row .btn-copy-ca {
      flex-shrink: 0;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 18px;
      height: 18px;
      padding: 0;
      border: none;
      border-radius: 4px;
      background: rgba(255, 255, 255, 0.04);
      color: var(--text-muted);
      cursor: pointer;
    }

    .monitor-title-row .btn-copy-ca svg {
      width: 12px;
      height: 12px;
      pointer-events: none;
    }

    .monitor-title-row .btn-copy-ca:hover {
      color: var(--accent-bright);
      background: rgba(255, 255, 255, 0.1);
    }

    .monitor-title-row .btn-copy-ca.is-copied {
      color: var(--buy);
      background: rgba(52, 211, 153, 0.14);
    }

    .monitor-title-row .btn-copy-ca.is-copied svg {
      display: none;
    }

    .monitor-title-row .btn-copy-ca.is-copied::after {
      content: "✓";
      font-size: 0.7rem;
      font-weight: 700;
      line-height: 1;
    }

    .monitor-col-symbol .monitor-title.err {
      color: var(--sell);
    }

    .monitor-col-symbol .monitor-title.pending {
      color: var(--warn);
    }

    .monitor-col-symbol .monitor-addr {
      font-family: var(--mono);
      font-size: 0.5625rem;
      color: #939090;
      margin-top: 2px;
      line-height: 1.25;
      opacity: 1;
      display: inline-block;
      width: fit-content;
      max-width: 100%;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      word-break: normal;
    }

    .monitor-col-copy {
      display: flex;
      align-items: center;
      justify-content: center;
      margin-left: 10px;
    }

    .monitor-col-header {
      display: flex;
      align-items: center;
      justify-content: center;
      min-width: 0;
    }

    .monitor-head .monitor-col-header {
      text-align: center;
      white-space: nowrap;
      justify-self: center;
    }

    .monitor-header-thumb {
      display: block;
      width: 450px;
      height: 140px;
      border-radius: 8px;
      overflow: hidden;
      border: 1px solid var(--border);
      background: rgba(255, 255, 255, 0.03);
      flex-shrink: 0;
    }

    .monitor-header-thumb img {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

    .monitor-col-copy .btn-copy-ca {
      flex-shrink: 0;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 22px;
      height: 22px;
      padding: 0;
      border: none;
      border-radius: 5px;
      background: rgba(255, 255, 255, 0.04);
      color: var(--text-muted);
      cursor: pointer;
      opacity: 0.9;
      position: relative;
      z-index: 2;
      pointer-events: auto;
    }

    .monitor-col-copy .btn-copy-ca svg {
      width: 13px;
      height: 13px;
      pointer-events: none;
    }

    .monitor-col-copy .btn-copy-ca:hover {
      color: var(--accent-bright);
      background: rgba(255, 255, 255, 0.1);
      opacity: 1;
    }

    .monitor-col-copy .btn-copy-ca.is-copied {
      color: var(--buy);
      background: rgba(52, 211, 153, 0.14);
      opacity: 1;
    }

    .monitor-col-copy .btn-copy-ca.is-copied svg {
      display: none;
    }

    .monitor-col-copy .btn-copy-ca.is-copied::after {
      content: "✓";
      font-size: 0.75rem;
      line-height: 1;
      font-weight: 700;
    }

    .monitor-sub-status {
      font-size: 0.625rem;
      color: var(--text-muted);
      margin-top: 2px;
    }

    .monitor-col-link {
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .monitor-col-link .monitor-platform-link,
    .monitor-col-link .token-social-link {
      width: 26px;
      height: 26px;
    }

    .monitor-col-link .monitor-platform-link img,
    .monitor-col-link .token-social-link svg {
      width: 12px;
      height: 12px;
    }

    .monitor-col-link .btn-kline-chart {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 26px;
      height: 26px;
      padding: 0;
      border: none;
      border-radius: 6px;
      background: transparent;
      cursor: pointer;
      font-size: 15px;
      line-height: 1;
      opacity: 0.92;
    }

    .monitor-col-link .btn-kline-chart:hover {
      background: color-mix(in srgb, var(--accent, #3b82f6) 16%, transparent);
      opacity: 1;
    }

    .monitor-col-link .btn-kline-chart:disabled {
      opacity: 0.35;
      cursor: not-allowed;
    }

    .modal-gmgn-chart,
    .modal.modal-gmgn-chart {
      position: relative;
      width: min(1150px, calc(100vw - 24px));
      max-width: min(1150px, calc(100vw - 24px));
      height: min(700px, calc(100vh - 24px));
      max-height: calc(100vh - 24px);
      padding: 0;
      overflow: hidden;
      display: flex;
      flex-direction: column;
    }

    .gmgn-chart-close {
      position: absolute;
      top: 6px;
      right: 8px;
      z-index: 2;
      width: 28px;
      height: 28px;
      border: 0;
      border-radius: 6px;
      background: rgba(0, 0, 0, 0.55);
      color: #fff;
      font-size: 18px;
      line-height: 1;
      cursor: pointer;
    }

    .gmgn-chart-close:hover {
      background: rgba(0, 0, 0, 0.75);
    }

    .modal-gmgn-chart-body {
      flex: 1;
      min-height: 0;
      padding: 0;
      display: flex;
    }

    .gmgn-chart-frame {
      width: 100%;
      height: 100%;
      min-height: 0;
      border: 0;
      background: #0b0e11;
    }

    .monitor-col-num {
      font-family: var(--mono);
      font-size: 0.75rem;
      text-align: right;
      color: var(--text-secondary);
      font-variant-numeric: tabular-nums;
      justify-self: end;
    }

    .monitor-fomo-delta-cell {
      display: inline-flex;
      align-items: center;
      justify-content: flex-end;
      flex-wrap: nowrap;
    }

    .monitor-fomo-delta {
      font-size: 0.625rem;
      font-weight: 700;
      line-height: 1;
      white-space: nowrap;
      letter-spacing: -0.02em;
    }

    .monitor-fomo-delta-up {
      color: var(--buy);
    }

    .monitor-fomo-delta-down {
      color: var(--sell);
    }

    .monitor-fdv-split-cell,
    .monitor-current-fdv-cell {
      display: inline-flex;
      align-items: baseline;
      justify-content: flex-end;
      gap: 5px;
      flex-wrap: nowrap;
      max-width: 100%;
    }

    .monitor-fdv-chg-cell {
      display: inline-flex;
      align-items: center;
      justify-content: flex-end;
      justify-self: end;
      white-space: nowrap;
    }

    .monitor-fdv-now {
      font-variant-numeric: tabular-nums;
    }

    .monitor-fdv-chg {
      font-size: 0.75rem;
      font-weight: 700;
      line-height: 1;
      white-space: nowrap;
      font-variant-numeric: tabular-nums;
      letter-spacing: -0.02em;
    }

    .monitor-fdv-chg-up {
      color: var(--buy);
    }

    .monitor-fdv-chg-down {
      color: var(--sell);
    }

    .monitor-fdv-chg-flat,
    .monitor-fdv-chg-empty {
      color: var(--text-muted);
      font-weight: 600;
    }

    .monitor-col-block {
      display: flex;
      justify-content: center;
      justify-self: center;
    }

    .monitor-col-banner {
      display: flex;
      justify-content: center;
      justify-self: center;
      align-items: center;
      cursor: default;
      user-select: none;
      font-size: 0.75rem;
      color: var(--text-muted);
      min-height: 22px;
    }

    .monitor-col-banner.has-banner {
      color: #1a9eb2;
      cursor: zoom-in;
    }

    .monitor-banner-ico {
      display: block;
      width: 18px;
      height: 18px;
      flex-shrink: 0;
      pointer-events: none;
    }

    .monitor-head .monitor-col-banner {
      text-align: center;
      white-space: nowrap;
      font-size: inherit;
      color: inherit;
      cursor: default;
    }

    .monitor-col-alerted {
      display: flex;
      justify-content: center;
      justify-self: center;
      align-items: center;
    }

    .monitor-alerted-check {
      -webkit-appearance: none;
      appearance: none;
      width: 14px;
      height: 14px;
      margin: 0;
      padding: 0;
      box-sizing: border-box;
      border: 1px solid #7a7a7a;
      border-radius: 3px;
      background-color: #1c1c1c;
      background-image: none;
      cursor: pointer;
      vertical-align: middle;
      flex-shrink: 0;
    }

    .monitor-alerted-check:hover {
      border-color: #1a9eb2;
      background-color: #252525;
    }

    .monitor-alerted-check:checked {
      border-color: #1a9eb2;
      background-color: #1a9eb2;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M2.2 6.2l2.4 2.4 5.2-5.2'/%3E%3C/svg%3E");
      background-repeat: no-repeat;
      background-position: center;
      background-size: 10px 10px;
    }

    .monitor-alerted-check:focus-visible {
      outline: 1px solid #1a9eb2;
      outline-offset: 2px;
    }

    .monitor-head .monitor-col-alerted {
      text-align: center;
      white-space: nowrap;
      font-size: inherit;
    }

    .monitor-col-gap,
    .monitor-col-status-gap,
    .monitor-col-symbol-gap {
      min-width: 0;
    }

    .monitor-col-block .btn-block-token {
      padding: 5px 8px;
      font-size: 0.6875rem;
    }

    .monitor-col-status {
      font-size: 0.6875rem;
      line-height: 1.25;
      color: var(--text-muted);
      white-space: nowrap;
      min-width: 0;
    }

    .monitor-col-status.monitor-poll-status-active {
      color: #7eb8ff;
    }

    .monitor-col-status.monitor-poll-status-done {
      color: var(--text-secondary);
    }

    .monitor-col-status.monitor-poll-status-stopped {
      color: var(--text-muted);
    }

    .monitor-col-status.monitor-poll-status-idle {
      color: var(--warn);
    }

    .monitor-col-status.monitor-poll-status-pending {
      color: var(--warn);
    }

    .monitor-col-status.monitor-poll-status-err {
      color: var(--sell);
    }

    .monitor-cell-empty {
      color: var(--text-muted);
      font-size: 0.75rem;
      opacity: 0.45;
    }

    .monitor-list {
      display: flex;
      flex-direction: column;
      min-width: 0;
      width: 100%;
    }

    .monitor-item {
      border-bottom: 1px solid var(--border);
      overflow: hidden;
      position: relative;
      min-width: 0;
      width: 100%;
    }

    .monitor-item.is-new {
      animation: fadeIn 0.25s ease;
    }

    .monitor-item.is-broadcast-flash > .monitor-row {
      animation: broadcastFlash 0.85s ease-in-out 6;
      border-radius: 8px;
    }

    @keyframes broadcastFlash {
      0%, 100% {
        box-shadow: inset 0 0 0 1px rgba(52, 211, 153, 0.35), 0 0 0 0 rgba(52, 211, 153, 0);
      }
      50% {
        box-shadow: inset 0 0 0 2px rgba(52, 211, 153, 0.95), 0 0 14px 2px rgba(52, 211, 153, 0.45);
      }
    }

    .monitor-item:last-child {
      border-bottom: none;
    }

    .monitor-item.expanded {
      background: rgba(0, 0, 0, 0.12);
    }

    .monitor-row {
      cursor: pointer;
      user-select: none;
    }

    .monitor-row > .chain-badge {
      display: none !important;
    }

    .monitor-row:hover {
      background: rgba(26, 158, 178, 0.16);
    }

    .monitor-item:hover > .monitor-row {
      background: rgba(26, 158, 178, 0.16);
    }

    .monitor-icon-wrap {
      position: relative;
      width: 50px;
      height: 50px;
      flex-shrink: 0;
    }

    .monitor-icon-inner {
      width: 100%;
      height: 100%;
      border-radius: 50%;
      overflow: hidden;
      background: rgba(255, 255, 255, 0.06);
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .monitor-icon {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }

    .monitor-icon-fallback {
      font-size: 0.875rem;
      font-weight: 700;
      color: var(--text-muted);
      line-height: 1;
    }

    .manual-icon-badge {
      position: absolute;
      bottom: -3px;
      left: -3px;
      font-size: 0.6875rem;
      line-height: 1;
      z-index: 2;
      pointer-events: none;
      user-select: none;
      filter: drop-shadow(0 0 1px var(--bg-deep));
    }

    .monitor-col-icon .manual-icon-badge {
      font-size: 0.625rem;
      bottom: -2px;
      left: -2px;
    }

    .chain-icon-overlay {
      position: absolute;
      bottom: -1px;
      right: -1px;
      width: 18px;
      height: 18px;
      border-radius: 50%;
      object-fit: cover;
      border: 1.5px solid var(--bg-deep);
      box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.12);
      z-index: 2;
      background: var(--bg-deep);
    }

    .chain-icon-overlay.chain-icon-letter {
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 0;
      font-size: 0.5625rem;
      font-weight: 800;
      line-height: 1;
      letter-spacing: 0;
      text-transform: uppercase;
      box-sizing: border-box;
      border: 2px solid var(--bg-deep);
      box-shadow: 0 1px 4px rgba(0, 0, 0, 0.55);
      color: #fff;
      background: #3f4456;
    }

    .chain-icon-overlay.chain-icon-letter.chain-solana {
      background: linear-gradient(145deg, #7c3aed, #059669);
    }

    .chain-icon-overlay.chain-icon-letter.chain-base {
      background: #1d4ed8;
    }

    .chain-icon-overlay.chain-icon-letter.chain-bnb {
      background: #b45309;
    }

    .chain-icon-overlay.chain-icon-letter.chain-ethereum {
      background: #4f46e5;
    }

    .chain-icon-overlay.chain-icon-letter.chain-monad {
      background: #7c3aed;
    }

    .chain-icon-overlay.chain-icon-letter.chain-robinhood {
      background: #047857;
    }

    .chain-icon-overlay.chain-icon-letter.chain-default {
      background: #4b5563;
    }

    .block-icon-wrap {
      width: 22px;
      height: 22px;
    }

    .block-icon-wrap .chain-icon-overlay {
      width: 9px;
      height: 9px;
    }

    .block-icon-wrap .chain-icon-overlay.chain-icon-letter {
      font-size: 0.4375rem;
    }

    .watch-panel-add .chain-icons-panel {
      margin-top: 10px;
      padding-top: 10px;
      border-top: 1px solid var(--border);
    }

    .modal-settings {
      width: min(98vw, 1320px);
      max-width: min(98vw, 1320px);
    }

    .modal-holder-users {
      width: min(98vw, 1320px);
      max-width: min(98vw, 1320px);
    }

    .modal-global-users,
    .modal.modal-global-users {
      width: min(98vw, 1320px);
      max-width: min(98vw, 1320px);
    }

    .modal.modal-holder-users {
      width: min(98vw, 1320px);
      max-width: min(98vw, 1320px);
    }

    .modal-pushed-holders,
    .modal.modal-pushed-holders {
      width: min(98vw, 1320px);
      max-width: min(98vw, 1320px);
    }

    .modal-block-list,
    .modal.modal-block-list {
      width: min(580px, calc(100vw - 32px));
      max-width: min(580px, calc(100vw - 32px));
      max-height: min(700px, calc(100vh - 32px));
    }

    .modal-user-blacklist,
    .modal.modal-user-blacklist {
      width: min(98vw, 1320px);
      max-width: min(98vw, 1320px);
    }

    .modal-user-blacklist-body {
      display: flex;
      flex-direction: column;
      max-height: min(88vh, 900px);
      overflow: hidden;
    }

    .user-blacklist-table-wrap {
      display: flex;
      flex-direction: column;
      min-height: 0;
      flex: 1;
    }

    .user-blacklist-table-head,
    .user-blacklist-row {
      display: grid;
      grid-template-columns: 36px minmax(118px, 0.78fr) minmax(160px, 1fr);
      align-items: center;
      gap: 8px;
      padding: 8px 10px;
    }

    .user-blacklist-table-head {
      font-size: 0.75rem;
      font-weight: 600;
      color: var(--text-muted);
      border-bottom: 1px solid var(--border);
      flex-shrink: 0;
    }

    .user-blacklist-list-scroll {
      flex: 1;
      min-height: 0;
      max-height: min(48vh, 480px);
      overflow: auto;
      overscroll-behavior: contain;
    }

    .user-blacklist-list {
      display: flex;
      flex-direction: column;
      gap: 4px;
    }

    .user-blacklist-row {
      border-radius: 8px;
      background: rgba(255, 255, 255, 0.02);
      border: 1px solid transparent;
      font-size: 0.875rem;
    }

    .user-blacklist-row:not(.user-blacklist-row-empty):hover {
      border-color: var(--border);
      background: rgba(255, 255, 255, 0.04);
    }

    .user-blacklist-col-handle {
      display: flex;
      align-items: center;
      gap: 8px;
      min-width: 0;
    }

    .user-blacklist-col-added,
    .holder-users-col-added {
      min-width: 0;
    }

    .user-blacklist-added,
    .holder-users-added {
      font-size: 0.75rem;
      color: var(--text-muted);
      font-variant-numeric: tabular-nums;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .user-blacklist-handle {
      color: var(--text);
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .user-blacklist-profile {
      flex-shrink: 0;
      color: var(--text-muted);
      text-decoration: none;
      font-size: 0.8125rem;
      line-height: 1;
    }

    .user-blacklist-profile:hover {
      color: var(--accent);
    }

    .user-blacklist-row-check {
      width: 16px;
      height: 16px;
    }

    .modal-ca-holders,
    .modal.modal-ca-holders,
    .modal-user-lookup,
    .modal.modal-user-lookup {
      width: min(98vw, 1200px);
      max-width: min(98vw, 1200px);
    }

    .modal-block-list-body {
      display: flex;
      flex-direction: column;
      max-height: min(560px, calc(100vh - 160px));
      overflow: hidden;
      padding-top: 0;
    }

    .block-modal-title-row {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 10px;
      min-width: 0;
    }

    .block-modal-title-row h3 {
      flex-shrink: 0;
    }

    .block-list-search {
      flex: 1;
      min-width: 0;
      max-width: 220px;
      margin-left: auto;
      height: 28px;
      padding: 0 10px;
      border: 1px solid var(--border, rgba(255, 255, 255, 0.12));
      border-radius: 6px;
      background: rgba(0, 0, 0, 0.25);
      color: var(--text, #e8e8e8);
      font-size: 0.75rem;
      font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
      outline: none;
    }

    .block-list-search::placeholder {
      color: var(--text-muted, #888);
      font-family: inherit;
    }

    .block-list-search:focus {
      border-color: rgba(139, 157, 255, 0.45);
    }

    .block-list-count {
      font-size: 0.75rem;
      color: var(--text-muted);
      white-space: nowrap;
      flex-shrink: 0;
    }

    .block-list-count strong {
      color: var(--text);
    }

    .block-list-scroll {
      flex: 1;
      min-height: 0;
      max-height: min(480px, calc(100vh - 200px));
      overflow: auto;
      overscroll-behavior: contain;
    }

    .modal-block-list .block-list {
      display: flex;
      flex-direction: column;
      gap: 0;
      max-height: none;
    }

    .modal-pushed-holders-body {
      display: flex;
      flex-direction: column;
      max-height: min(88vh, 900px);
      overflow: hidden;
    }

    .pushed-holders-toolbar {
      display: flex;
      flex-direction: column;
      gap: 10px;
      margin-bottom: 0;
      padding-top: 4px;
      font-size: 0.8125rem;
      color: var(--text-muted);
    }

    .pushed-holders-toolbar-row {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      min-width: 0;
    }

    .pushed-holders-search-row {
      justify-content: flex-start;
    }

    .pushed-holders-toolbar-actions {
      display: flex;
      align-items: center;
      gap: 10px;
      flex-shrink: 0;
    }

    .pushed-holders-search {
      width: min(280px, 100%);
      min-width: 160px;
      flex: 0 1 auto;
    }

    .pushed-holders-count strong {
      color: var(--text);
    }

    .pushed-holders-cache-title {
      margin: 0;
    }

    .pushed-holders-cache-hint {
      margin: 12px 0 18px;
    }

    .pushed-holders-table-head,
    .pushed-holders-row {
      display: grid;
      grid-template-columns:
        36px
        minmax(56px, 0.6fr)
        minmax(100px, 0.95fr)
        minmax(84px, 0.8fr)
        minmax(96px, 0.85fr)
        minmax(84px, 0.75fr)
        minmax(200px, 2.2fr)
        minmax(56px, 64px);
      gap: 10px 14px;
    }

    .pushed-holders-table-head {
      align-items: center;
    }

    .pushed-holders-row {
      align-items: start;
    }

    .pushed-holders-table-wrap {
      flex: 1;
      min-height: 0;
      display: flex;
      flex-direction: column;
      margin-top: 2px;
      --pushed-holders-row-slot: 44px;
      --pushed-holders-page-rows: 10;
      --pushed-holders-list-height: calc(
        var(--pushed-holders-page-rows) * var(--pushed-holders-row-slot)
        + (var(--pushed-holders-page-rows) - 1) * 6px
      );
    }

    .pushed-holders-list-scroll {
      flex: 0 0 auto;
      height: var(--pushed-holders-list-height);
      min-height: var(--pushed-holders-list-height);
      max-height: var(--pushed-holders-list-height);
      padding-top: 8px;
    }

    .pushed-holders-row {
      min-height: var(--pushed-holders-row-slot);
      padding: 4px 0;
      border-bottom: 1px solid rgba(255, 255, 255, 0.04);
      font-size: 0.8125rem;
    }

    .pushed-holders-row-empty {
      opacity: 0.25;
      pointer-events: none;
    }

    .pushed-holders-symbol,
    .pushed-holders-name {
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .pushed-holders-remark {
      overflow: hidden;
      display: -webkit-box;
      -webkit-box-orient: vertical;
      -webkit-line-clamp: 2;
      line-clamp: 2;
      white-space: normal;
      line-height: 1.3;
      font-size: 0.75rem;
      color: var(--text-secondary);
      word-break: break-word;
    }

    .pushed-holders-ca,
    .pushed-holders-handle,
    .pushed-holders-first-amt {
      font-family: var(--font-mono, ui-monospace, monospace);
      font-size: 0.75rem;
      color: var(--text-secondary);
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .pushed-holders-col-block {
      display: flex;
      justify-content: center;
      align-self: center;
    }

    .pushed-holders-col-block .btn-block-token {
      padding: 4px 8px;
      font-size: 0.68rem;
    }

    .pushed-holders-pager.holder-users-pager {
      margin-top: 8px;
      padding-top: 6px;
    }

    .pushed-holders-table-head {
      padding: 10px 0 12px;
      font-size: 0.6875rem;
      font-weight: 600;
      color: var(--text-muted);
      text-transform: uppercase;
      letter-spacing: 0.04em;
      border-bottom: 1px solid var(--border);
    }

    .pushed-holders-col-check {
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .pushed-holders-delete-selected:disabled {
      opacity: 0.45;
      cursor: not-allowed;
    }

    .modal-holder-users-body {
      display: flex;
      flex-direction: column;
      max-height: min(88vh, 900px);
      overflow: hidden;
    }

    .holder-users-fixed {
      flex-shrink: 0;
    }

    .holder-users-input-grid {
      display: grid;
      grid-template-columns: minmax(320px, 1fr) minmax(380px, 1.15fr);
      gap: 20px 28px;
      align-items: start;
    }

    .holder-users-manual-col .settings-section-title,
    .holder-users-import-col .settings-section-title {
      margin-bottom: 8px;
    }

    .holder-users-csv-hint {
      margin: 6px 0 0;
      font-size: 0.6875rem;
      line-height: 1.35;
    }

    .holder-users-csv-compact {
      min-height: 0;
      height: 56px;
      margin-bottom: 8px;
      resize: none;
    }

    .holder-users-toolbar {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      margin-bottom: 10px;
      font-size: 0.8125rem;
      color: var(--text-muted);
    }

    .holder-users-toolbar-right {
      display: flex;
      align-items: center;
      gap: 10px;
      flex: 1;
      min-width: 0;
      justify-content: flex-end;
    }

    .holder-users-search {
      width: min(200px, 100%);
      min-width: 120px;
      padding: 6px 10px;
      border-radius: 8px;
      border: 1px solid var(--border);
      background: var(--surface-solid);
      color: var(--text-primary);
      font-size: 0.8125rem;
      font-family: "JetBrains Mono", ui-monospace, monospace;
    }

    .holder-users-search::placeholder {
      color: var(--text-muted);
      font-family: inherit;
    }

    .holder-users-search:focus {
      outline: none;
      border-color: rgba(108, 140, 255, 0.45);
      box-shadow: 0 0 0 2px rgba(108, 140, 255, 0.12);
    }

    .holder-users-toolbar-actions {
      display: flex;
      align-items: center;
      gap: 10px;
      flex-shrink: 0;
    }

    .holder-users-delete-selected:disabled {
      opacity: 0.45;
      cursor: not-allowed;
    }

    .holder-users-count strong {
      color: var(--text);
    }

    .holder-users-search-empty {
      grid-column: 1 / -1;
      margin: 0;
      padding: 12px 4px;
      font-size: 0.8125rem;
      color: var(--text-muted);
      text-align: center;
    }

    .holder-users-table-head,
    .holder-users-row {
      display: grid;
      grid-template-columns: 36px minmax(118px, 0.78fr) minmax(140px, 1fr) minmax(168px, 1.05fr) minmax(260px, 2fr);
      gap: 12px 20px;
      align-items: center;
    }

    .holder-users-cache-section {
      flex: 1;
      min-height: 0;
      display: flex;
      flex-direction: column;
      margin-top: 16px;
      padding-top: 14px;
      border-top: 1px solid var(--border);
    }

    .holder-users-table-wrap {
      flex: 1;
      min-height: 0;
      display: flex;
      flex-direction: column;
      --holder-users-row-slot: 36px;
      --holder-users-page-rows: 10;
      --holder-users-list-height: calc(
        var(--holder-users-page-rows) * var(--holder-users-row-slot)
        + (var(--holder-users-page-rows) - 1) * 6px
      );
    }

    .holder-users-list-scroll {
      flex: 0 0 auto;
      height: var(--holder-users-list-height);
      min-height: var(--holder-users-list-height);
      max-height: var(--holder-users-list-height);
    }

    .holder-users-cache-title {
      margin: 0;
    }

    .holder-users-cache-hint {
      margin: 4px 0 10px;
    }

    .holder-users-name {
      font-size: 0.8125rem;
      color: var(--text);
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .holder-users-col-name {
      min-width: 0;
    }

    .holder-users-pager {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 2px;
      margin-top: 10px;
      padding-top: 8px;
    }

    .holder-users-pager-btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 28px;
      height: 28px;
      padding: 0;
      border: none;
      border-radius: 6px;
      background: transparent;
      color: #6b7280;
      cursor: pointer;
      line-height: 1;
    }

    .holder-users-pager-btn:hover:not(:disabled) {
      color: #d1d5db;
      background: transparent;
    }

    .holder-users-pager-btn:disabled {
      opacity: 0.35;
      cursor: default;
    }

    .holder-users-pager-pages {
      display: flex;
      align-items: center;
      gap: 2px;
    }

    .holder-users-pager-num {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 28px;
      height: 28px;
      padding: 0 6px;
      border-radius: 6px;
      border: none;
      background: transparent;
      color: #6b7280;
      font-size: 0.8125rem;
      font-variant-numeric: tabular-nums;
      cursor: pointer;
      line-height: 1;
    }

    .holder-users-pager-num:hover:not(:disabled) {
      color: #d1d5db;
      background: transparent;
    }

    .holder-users-pager-num-active,
    .holder-users-pager-num:disabled.holder-users-pager-num-active,
    .holder-users-pager-num-active:disabled {
      background: rgba(59, 99, 220, 0.28);
      color: #5b8fff;
      border: none;
      cursor: default;
    }

    .holder-users-pager-ellipsis {
      color: #6b7280;
      font-size: 0.75rem;
      padding: 0 4px;
      user-select: none;
    }

    .holder-users-table-head {
      flex-shrink: 0;
      font-size: 0.6875rem;
      text-transform: uppercase;
      letter-spacing: 0.06em;
      color: var(--text-muted);
      padding: 0 4px 6px;
      border-bottom: 1px solid var(--border);
    }

    .holder-users-col-check {
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .holder-users-list {
      display: flex;
      flex-direction: column;
      gap: 6px;
      min-height: var(--holder-users-list-height);
      padding-right: 2px;
      box-sizing: border-box;
    }

    .holder-users-row {
      padding: 6px 4px;
      border-radius: 8px;
      background: rgba(255, 255, 255, 0.02);
      min-height: var(--holder-users-row-slot, 36px);
      box-sizing: border-box;
    }

    .holder-users-row-empty {
      background: rgba(255, 255, 255, 0.015);
      pointer-events: none;
    }

    .holder-users-row-empty .holder-users-col {
      border-bottom: 1px dashed rgba(255, 255, 255, 0.04);
      min-height: calc(var(--holder-users-row-slot, 36px) - 12px);
    }

    .holder-users-row:hover:not(.holder-users-row-empty) {
      background: rgba(255, 255, 255, 0.04);
    }

    .holder-users-col-handle {
      display: flex;
      align-items: center;
      gap: 6px;
      min-width: 0;
    }

    .holder-users-handle {
      font-size: 0.8125rem;
      color: var(--text);
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .holder-users-col-handle {
      flex-wrap: wrap;
    }

    .holder-users-handle-legacy {
      color: var(--text-muted);
      font-family: var(--mono);
      font-size: 0.75rem;
    }

    .modal-global-users-body {
      display: flex;
      flex-direction: column;
      max-height: min(88vh, 900px);
      overflow: hidden;
    }

    .global-users-table-wrap.holder-users-table-wrap {
      --holder-users-page-rows: 11;
    }

    .global-users-toolbar {
      margin-bottom: 8px;
    }

    .global-users-toolbar-row {
      display: flex;
      align-items: center;
      gap: 8px 10px;
      flex-wrap: nowrap;
      width: 100%;
      min-width: 0;
    }

    .global-users-param {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      margin: 0;
      font-size: 0.75rem;
      color: var(--text-muted);
      white-space: nowrap;
      cursor: pointer;
      flex: 0 0 auto;
    }

    .global-users-concurrency,
    .global-users-gap {
      width: 6.375rem;
      min-width: 6.375rem;
      max-width: 6.375rem;
      flex: 0 0 auto;
      box-sizing: border-box;
      padding: 5px 8px;
      border: 1px solid var(--border);
      border-radius: 6px;
      background: rgba(255, 255, 255, 0.04);
      color: var(--text);
      font-size: 0.8125rem;
      font-family: var(--mono);
      line-height: 1.2;
    }

    .global-users-actions-group {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      flex: 0 0 auto;
      flex-wrap: nowrap;
    }

    .global-users-actions-io {
      flex: 0 0 auto;
    }

    .global-users-toolbar-row .btn-sm {
      flex: 0 0 auto;
      white-space: nowrap;
    }

    .global-users-search {
      width: 150px;
      min-width: 120px;
      flex: 0 1 auto;
      margin-left: auto;
    }

    .global-users-count {
      flex: 0 0 auto;
      white-space: nowrap;
      font-size: 0.8125rem;
      color: var(--text-muted);
    }

    .global-users-count strong {
      color: var(--text-primary);
      font-weight: 600;
    }

    .global-users-hint {
      margin: 0 0 8px;
    }

    .global-users-refresh-status {
      font-size: 0.75rem;
      color: var(--text-secondary);
      margin-bottom: 8px;
      display: none;
    }

    .global-users-refresh-status.show {
      display: block;
    }

    .global-users-refresh-status.err {
      color: var(--sell);
    }

    .global-users-table-head {
      padding: 8px 12px;
      font-size: 0.6875rem;
      text-transform: uppercase;
      letter-spacing: 0.06em;
      color: var(--text-muted);
      border-bottom: 1px solid var(--border);
      background: rgba(18, 20, 32, 0.95);
    }

    .global-users-table-head,
    .global-users-row {
      display: grid;
      grid-template-columns:
        36px
        minmax(72px, 0.8fr)
        minmax(96px, 0.95fr)
        56px
        52px
        minmax(84px, 1fr)
        minmax(84px, 1fr)
        minmax(84px, 1fr)
        52px
        36px
        44px;
      gap: 8px 10px;
      align-items: center;
    }

    .global-users-col-check {
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .global-users-col-block {
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .global-users-sort {
      cursor: pointer;
      user-select: none;
      color: var(--text-muted);
    }

    .global-users-sort:hover {
      color: var(--text);
    }

    .global-users-sort.is-active {
      color: var(--text);
    }

    .global-users-col-followers,
    .global-users-col-sync,
    .global-users-col-pnl {
      font-size: 0.8125rem;
      color: var(--text-secondary);
      font-variant-numeric: tabular-nums;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .global-users-col-link {
      text-align: center;
    }

    .global-users-remark {
      font-size: 0.75rem;
      color: var(--text-muted);
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      display: block;
    }

    .global-users-fetched {
      font-size: 0.6875rem;
      color: var(--text-muted);
      white-space: nowrap;
    }

    .global-users-row {
      padding: 8px 12px;
      border-radius: var(--radius-sm);
    }

    .global-users-row:not(.global-users-row-empty):hover {
      background: rgba(255, 255, 255, 0.04);
    }

    .holder-users-legacy-hint {
      font-size: 0.6875rem;
      color: var(--text-muted);
      line-height: 1.2;
    }

    .holder-users-profile {
      flex-shrink: 0;
      width: 22px;
      height: 22px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      border-radius: 4px;
      color: var(--text-muted);
      text-decoration: none;
      font-size: 0.75rem;
    }

    .holder-users-profile:hover {
      color: var(--accent-bright);
      background: rgba(139, 157, 255, 0.12);
    }

    .holder-users-profile-empty {
      opacity: 0.35;
    }

    .holder-users-remark-input {
      width: 100%;
      min-width: 0;
      padding: 6px 8px;
      border: 1px solid transparent;
      border-radius: 6px;
      background: rgba(255, 255, 255, 0.04);
      color: var(--text-secondary);
      font-size: 0.8125rem;
      font-family: inherit;
    }

    .holder-users-remark-input:focus {
      outline: none;
      border-color: rgba(139, 157, 255, 0.35);
      background: rgba(255, 255, 255, 0.06);
      color: var(--text);
    }

    .holder-users-delete {
      padding: 5px 10px;
      font-size: 0.6875rem;
    }

    .holder-users-empty {
      margin: 12px 4px;
      font-size: 0.8125rem;
      color: var(--text-muted);
    }

    .holder-users-add-row {
      display: grid;
      grid-template-columns: 1fr 1fr auto;
      gap: 8px;
      align-items: center;
      margin-bottom: 0;
    }

    .holder-users-input {
      min-width: 0;
      padding: 8px 10px;
      border: 1px solid var(--border);
      border-radius: 8px;
      background: rgba(0, 0, 0, 0.2);
      color: var(--text);
      font-size: 0.8125rem;
      font-family: inherit;
    }

    .holder-users-csv {
      width: 100%;
      min-height: 88px;
      margin-bottom: 10px;
      padding: 10px 12px;
      border: 1px solid var(--border);
      border-radius: 8px;
      background: rgba(0, 0, 0, 0.2);
      color: var(--text-secondary);
      font-size: 0.75rem;
      font-family: var(--mono);
      resize: vertical;
      box-sizing: border-box;
    }

    .holder-users-import-row {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      align-items: center;
    }

    .holder-users-file-label {
      cursor: pointer;
      display: inline-flex;
      align-items: center;
    }

    .holder-users-import-result {
      margin-top: 8px;
      font-size: 0.75rem;
      color: var(--buy);
      display: none;
    }

    .holder-users-import-result.show {
      display: block;
    }

    .modal-settings-body {
      display: flex;
      flex-direction: column;
      max-height: min(78vh, 760px);
      overflow: hidden;
      overscroll-behavior: contain;
    }

    .settings-tabs {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      padding-bottom: 12px;
      margin-bottom: 4px;
      border-bottom: 1px solid var(--border);
      flex-shrink: 0;
    }

    .settings-tab {
      padding: 7px 14px;
      border: 1px solid var(--border);
      border-radius: 8px;
      background: rgba(255, 255, 255, 0.02);
      color: var(--text-muted);
      font-size: 0.8125rem;
      font-weight: 500;
      cursor: pointer;
      transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
    }

    .settings-tab:hover {
      color: var(--text);
      background: rgba(255, 255, 255, 0.05);
    }

    .settings-tab.is-active {
      background: rgba(139, 157, 255, 0.12);
      border-color: rgba(139, 157, 255, 0.45);
      color: var(--text);
    }

    .settings-tab:focus-visible {
      outline: 2px solid rgba(139, 157, 255, 0.55);
      outline-offset: 2px;
    }

    .settings-tab-panels {
      flex: 1;
      min-height: 0;
      overflow-x: hidden;
      overflow-y: auto;
      overscroll-behavior: contain;
      scrollbar-width: thin;
      scrollbar-color: var(--scrollbar-thumb) transparent;
      padding-top: 4px;
    }

    .settings-tab-panel[hidden] {
      display: none !important;
    }

    .settings-category-title-spaced {
      margin-top: 28px;
    }

    .settings-data-actions {
      display: flex;
      align-items: center;
      gap: 12px;
      flex-wrap: wrap;
      margin: 8px 0 4px;
    }

    .settings-clear-user-status {
      font-size: 0.75rem;
      color: var(--text-secondary);
    }

    .settings-clear-user-status.err {
      color: var(--sell);
    }

    .settings-basic-section {
      margin-bottom: 8px;
    }

    .settings-inline-section {
      margin-bottom: 4px;
    }

    .settings-inline-section-spaced {
      margin-top: 28px;
    }

    .settings-inline-head {
      display: flex;
      align-items: center;
      flex-wrap: wrap;
      gap: 12px 20px;
      row-gap: 10px;
    }

    .settings-inline-title {
      margin: 0;
      flex: 0 0 auto;
      white-space: nowrap;
      align-self: center;
      line-height: 1;
    }

    .settings-inline-head .settings-category-title.settings-inline-title {
      margin: 0;
      font-size: 0.8125rem;
      font-weight: 600;
      line-height: 1;
      letter-spacing: 0.02em;
    }

    .settings-inline-field {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      margin: 0;
      flex: 0 0 auto;
      flex-shrink: 0;
    }

    .settings-inline-field + .settings-inline-field {
      padding-left: 20px;
      margin-left: 2px;
      border-left: 1px solid var(--border);
    }

    .settings-inline-label {
      font-size: 0.75rem;
      font-weight: 600;
      color: var(--text-secondary);
      letter-spacing: 0.02em;
      white-space: nowrap;
      flex: 0 0 auto;
    }

    .settings-inline-field .settings-field-input {
      width: auto;
      min-width: unset;
      max-width: none;
      flex: 0 0 auto;
      padding: 6px 10px;
      box-sizing: border-box;
    }

    #settingsTabBasic .settings-inline-input.settings-field-input,
    #settingsTabBasic .settings-push-cond-input.settings-field-input {
      width: 8rem;
      min-width: 8rem;
      max-width: 8rem;
      flex: 0 0 8rem;
    }

    #settingsTabBasic .settings-push-cond-input.settings-field-input {
      padding: 6px 10px;
      text-align: left;
    }

    #settingsTabBasic .settings-inline-hint {
      margin: 6px 0 0;
    }

    .settings-inline-head .settings-inline-actions {
      display: inline-flex;
      align-items: center;
      gap: 12px;
      flex-wrap: wrap;
    }

    .settings-inline-head .checkbox-field.settings-inline-check {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      margin: 0;
      padding: 0;
      white-space: nowrap;
    }

    .settings-inline-head .checkbox-field.settings-inline-check + .checkbox-field.settings-inline-check {
      padding-left: 20px;
      margin-left: 2px;
      border-left: 1px solid var(--border);
    }

    .settings-push-conds {
      display: flex;
      flex-direction: column;
      gap: 8px;
      margin-top: 10px;
    }

    .settings-push-cond-row {
      display: flex;
      align-items: center;
      flex-wrap: wrap;
      gap: 10px 20px;
    }

    .settings-push-cond-item {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      flex: 0 0 auto;
      min-width: 0;
    }

    .settings-push-cond-item + .settings-push-cond-item {
      padding-left: 20px;
      margin-left: 4px;
      border-left: 1px solid var(--border);
    }

    #settingsTabBasic .settings-basic-footnotes {
      margin-top: 24px;
      padding-top: 16px;
      border-top: 1px solid var(--border);
    }

    #settingsTabBasic .settings-basic-footnotes .chain-icons-hint {
      margin: 0 0 8px;
    }

    #settingsTabBasic .settings-basic-footnotes .chain-icons-hint:last-child {
      margin-bottom: 0;
    }

    .settings-tg-push-row {
      flex-wrap: wrap;
      align-items: center;
      gap: 8px 12px;
      margin-top: 10px;
    }

    .settings-tg-push-row .settings-inline-field {
      margin: 0;
    }

    .settings-tg-push-row .settings-inline-input-num {
      width: 72px;
      min-width: 72px;
    }

    .settings-tg-push-row .settings-inline-input-channel {
      width: 11.5rem;
      min-width: 9rem;
      max-width: 14rem;
    }

    .tg-sound-picker {
      position: relative;
      display: inline-flex;
      align-items: center;
      gap: 6px;
      flex-shrink: 0;
    }

    .tg-sound-btn {
      min-width: 7.5rem;
      max-width: 10rem;
      height: 28px;
      padding: 0 8px;
      border: 1px solid var(--border);
      border-radius: 4px;
      background: rgba(0, 0, 0, 0.2);
      color: var(--text);
      font-size: 0.75rem;
      font-family: inherit;
      text-align: left;
      cursor: pointer;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .tg-sound-btn:hover {
      border-color: #1a9eb2;
    }

    .tg-sound-menu {
      position: absolute;
      left: 0;
      top: calc(100% + 4px);
      z-index: 40;
      min-width: 11rem;
      max-height: 220px;
      overflow: auto;
      margin: 0;
      padding: 4px 0;
      border: 1px solid var(--border);
      border-radius: 6px;
      background: #0a0a0a;
      box-shadow: 0 8px 24px rgba(0, 0, 0, 0.45);
    }

    .tg-sound-option {
      display: block;
      width: 100%;
      padding: 6px 10px;
      border: 0;
      background: transparent;
      color: var(--text);
      font-size: 0.75rem;
      font-family: ui-monospace, Consolas, monospace;
      text-align: left;
      cursor: pointer;
    }

    .tg-sound-option:hover,
    .tg-sound-option.is-active {
      background: rgba(26, 158, 178, 0.18);
      color: #1a9eb2;
    }

    .settings-tg-save-btn {
      padding: 4px 12px !important;
      font-size: 11px !important;
      flex-shrink: 0;
    }

    .settings-tg-save-status {
      font-size: 11px;
      color: #1a9eb2;
      white-space: nowrap;
    }

    .settings-tg-save-status.err {
      color: var(--sell, #e85d5d);
    }

    .settings-telegram-form {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px 24px;
      margin-top: 4px;
    }

    .settings-params-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 16px 24px;
      margin-top: 4px;
    }

    .settings-field-hint {
      font-size: 0.6875rem;
      color: var(--text-muted);
      line-height: 1.35;
    }

    .settings-field {
      display: flex;
      flex-direction: column;
      gap: 6px;
      min-width: 0;
    }

    .settings-field-label {
      font-size: 0.75rem;
      font-weight: 600;
      color: var(--text-secondary);
      letter-spacing: 0.02em;
    }

    .settings-field-input {
      width: 100%;
      box-sizing: border-box;
      padding: 8px 10px;
      border: 1px solid var(--border);
      border-radius: 8px;
      background: rgba(0, 0, 0, 0.2);
      color: var(--text);
      font-size: 0.8125rem;
      font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
      outline: none;
      transition: border-color 0.15s ease;
      -moz-appearance: textfield;
      appearance: textfield;
    }

    .settings-field-input[type="number"]::-webkit-outer-spin-button,
    .settings-field-input[type="number"]::-webkit-inner-spin-button {
      -webkit-appearance: none;
      margin: 0;
    }

    .settings-field-input:focus {
      border-color: rgba(139, 157, 255, 0.55);
    }

    .settings-quote-map {
      width: 100%;
      min-height: 180px;
      resize: vertical;
      line-height: 1.45;
      white-space: pre;
      margin-top: 8px;
    }

    .settings-quote-map-status {
      margin: 6px 0 0;
      font-size: 0.75rem;
      color: var(--text-muted);
    }

    .settings-quote-map-status.err {
      color: var(--sell);
    }

    .settings-field-input::placeholder {
      color: var(--text-muted);
      opacity: 0.7;
    }

    .settings-push-cond-check {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      margin: 0;
      padding-right: 4px;
      font-size: 0.8125rem;
      color: var(--text-secondary);
      white-space: nowrap;
      cursor: pointer;
      user-select: none;
      flex-shrink: 0;
    }

    .settings-push-cond-check:hover {
      color: var(--text);
    }

    .settings-push-cond-select {
      width: 2.5rem;
      min-width: 2.5rem;
      flex: 0 0 2.5rem;
      padding: 4px 4px;
      border: 1px solid var(--border);
      border-radius: 6px;
      background: rgba(255, 255, 255, 0.04);
      color: var(--text);
      font-size: 0.8125rem;
      font-family: var(--mono);
    }

    .settings-push-cond-mid {
      font-size: 0.8125rem;
      color: var(--text-secondary);
      white-space: nowrap;
      flex-shrink: 0;
    }

    .settings-push-cond-err {
      margin: 0;
      font-size: 0.8125rem;
      color: var(--sell);
    }

    @media (max-width: 900px) {
      .settings-telegram-form,
      .settings-params-grid {
        grid-template-columns: 1fr;
      }
    }

    .settings-category-title {
      margin: 0 0 16px;
      font-size: 0.9375rem;
      font-weight: 600;
      color: var(--text);
    }

    .settings-brand-logo-section {
      margin-bottom: 14px;
    }

    .brand-logo-preview {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 36px;
      height: 36px;
      padding: 4px;
      box-sizing: border-box;
      border-radius: 6px;
      background: #0a0a0a;
      border: 1px solid var(--border);
      overflow: hidden;
      flex-shrink: 0;
    }

    .brand-logo-preview-img {
      width: 100%;
      height: 100%;
      object-fit: contain;
      object-position: center;
      display: block;
    }

    .settings-icons-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 24px 32px;
      align-items: start;
    }

    .settings-icons-col {
      min-width: 0;
      display: flex;
      flex-direction: column;
      min-height: 0;
    }

    .settings-icons-col .chain-icons-list {
      flex: 1;
      min-height: 0;
      max-height: min(62vh, 620px);
      overflow: auto;
      overscroll-behavior: contain;
      padding-right: 4px;
      scrollbar-width: thin;
      scrollbar-color: var(--scrollbar-thumb) transparent;
    }

    .settings-icons-col .settings-section-title {
      margin-bottom: 6px;
    }

    .settings-icons-col .chain-icons-hint {
      margin: 0 0 10px;
    }

    .settings-section-title {
      margin: 0 0 6px;
      font-size: 0.8125rem;
      font-weight: 600;
      color: var(--text-secondary);
      text-transform: uppercase;
      letter-spacing: 0.06em;
    }

    .chain-icons-hint {
      font-size: 0.75rem;
      color: var(--text-muted);
      margin: 8px 0 10px;
      line-height: 1.45;
    }

    .chain-icons-list {
      display: flex;
      flex-direction: column;
      gap: 8px;
    }

    .chain-icon-row {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 8px 10px;
      border-radius: 10px;
      background: rgba(255, 255, 255, 0.03);
      border: 1px solid var(--border);
    }

    .chain-icon-preview {
      width: 36px;
      height: 36px;
      flex-shrink: 0;
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .chain-icon-preview img {
      width: 28px;
      height: 28px;
      border-radius: 50%;
      object-fit: cover;
      border: 1px solid var(--border);
    }

    .chain-icon-preview .chain-badge {
      font-size: 0.5625rem;
      padding: 4px 6px;
    }

    .chain-icon-meta {
      flex: 1;
      min-width: 0;
    }

    .chain-icon-name {
      font-size: 0.8125rem;
      font-weight: 600;
      text-transform: uppercase;
      letter-spacing: 0.04em;
    }

    .chain-icon-actions {
      display: flex;
      align-items: center;
      gap: 6px;
      flex-shrink: 0;
    }

    .chain-icon-file {
      position: absolute;
      width: 0;
      height: 0;
      opacity: 0;
      pointer-events: none;
    }

    .monitor-main {
      flex: 1;
      min-width: 0;
    }

    .monitor-title {
      font-weight: 600;
      font-size: 0.875rem;
    }

    .monitor-addr {
      font-family: var(--mono);
      font-size: 0.6875rem;
      color: var(--text-muted);
      word-break: break-all;
    }

    .monitor-addr-row {
      display: flex;
      align-items: flex-start;
      gap: 4px;
      flex-wrap: nowrap;
      margin-top: 2px;
      min-width: 0;
    }

    .monitor-token-social {
      display: flex;
      align-items: center;
      gap: 4px;
      flex-shrink: 0;
    }

    .token-social-link {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 18px;
      height: 18px;
      border-radius: 4px;
      color: var(--text-muted);
      text-decoration: none;
      flex-shrink: 0;
    }

    .token-social-link svg {
      width: 12px;
      height: 12px;
      display: block;
    }

    .token-social-link:hover {
      color: var(--accent-bright);
      background: rgba(255, 255, 255, 0.06);
    }

    /* 官网带 launch 路由标记（URL 末尾 *） */
    .token-social-web.is-launch {
      color: #e8a317;
    }

    .token-social-web.is-launch:hover {
      color: #ffc107;
      background: rgba(232, 163, 23, 0.12);
    }

    .monitor-status {
      flex-shrink: 0;
      max-width: min(42vw, 360px);
      min-width: 10.5em;
      text-align: right;
      font-size: 0.6875rem;
      line-height: 1.35;
    }

    .monitor-status.pending {
      color: var(--warn);
      border-color: rgba(251, 191, 36, 0.25);
    }

    .monitor-link {
      flex-shrink: 0;
      color: var(--text-muted);
      text-decoration: none;
      padding: 4px 8px;
      border-radius: 6px;
      font-size: 0.875rem;
    }

    .monitor-link:hover {
      color: var(--accent-bright);
      background: rgba(255, 255, 255, 0.04);
    }

    .monitor-platform-links {
      display: flex;
      align-items: center;
      gap: 6px;
      flex-shrink: 0;
    }

    .monitor-platform-link {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 28px;
      height: 28px;
      border-radius: 8px;
      border: 1px solid var(--border);
      background: rgba(255, 255, 255, 0.04);
      text-decoration: none;
      overflow: hidden;
      flex-shrink: 0;
    }

    .monitor-platform-link img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }

    .monitor-platform-link.monitor-platform-fallback {
      font-size: 0.5625rem;
      font-weight: 700;
      color: var(--text-secondary);
      padding: 0 4px;
      line-height: 1;
    }

    .monitor-platform-link:hover {
      border-color: var(--border-strong);
      background: rgba(255, 255, 255, 0.08);
    }

    .platform-icon-preview img {
      width: 28px;
      height: 28px;
      object-fit: cover;
      border-radius: 8px;
    }

    .platform-icon-fallback {
      font-size: 0.6875rem;
      font-weight: 700;
      color: var(--text-secondary);
    }

    .modal-settings-body .settings-section-title:not(:first-child) {
      margin-top: 0;
    }

    .monitor-body {
      border-top: 1px solid var(--border);
      background: rgba(0, 0, 0, 0.15);
    }

    .monitor-body .holders-panel-layout {
      margin-left: calc(12px + var(--monitor-nest-indent, 66px));
      padding-left: 8px;
      border-left: 1px solid rgba(139, 157, 255, 0.12);
      box-sizing: border-box;
    }

    .monitor-body .panel-msg {
      margin-left: calc(12px + var(--monitor-nest-indent, 66px));
      padding-left: 8px;
      box-sizing: border-box;
    }

    .monitor-body .holders-table-wrap {
      padding-left: 0;
    }

    .monitor-body[hidden] {
      display: none;
    }

    .panel-msg {
      padding: 20px 16px;
      text-align: center;
      color: var(--text-muted);
      font-size: 0.8125rem;
    }

    .panel-msg.err {
      color: var(--sell);
    }

    .token-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      padding: 16px 20px;
      background: linear-gradient(180deg, rgba(255,255,255,0.03) 0%, transparent 100%);
      border-bottom: 1px solid var(--border);
      flex-wrap: wrap;
    }

    .btn-block-token {
      flex-shrink: 0;
      padding: 6px 12px;
      font-size: 0.75rem;
      font-weight: 600;
      background: transparent;
      color: var(--text-muted);
      border: 1px solid var(--border);
      border-radius: 8px;
      cursor: pointer;
    }

    .btn-block-token:hover {
      color: #fbbf24;
      border-color: rgba(251, 191, 36, 0.35);
      background: rgba(251, 191, 36, 0.08);
    }

    .btn-block-token.is-blocking,
    .btn-block-token:disabled {
      color: #fbbf24;
      border-color: rgba(251, 191, 36, 0.45);
      background: rgba(251, 191, 36, 0.12);
      cursor: wait;
      opacity: 1;
      pointer-events: none;
    }

    .btn-remove-token {
      flex-shrink: 0;
      padding: 6px 12px;
      font-size: 0.75rem;
      font-weight: 600;
      background: transparent;
      color: var(--text-muted);
      border: 1px solid var(--border);
      border-radius: 8px;
      cursor: pointer;
    }

    .btn-remove-token:hover {
      color: var(--sell);
      border-color: rgba(248, 113, 113, 0.35);
      background: var(--sell-bg);
    }

    .control-graduated {
      display: flex;
      flex-direction: column;
      gap: 8px;
      flex: 0 0 auto;
    }

    .control-ws-topics {
      display: inline-flex;
      align-items: center;
      flex-wrap: wrap;
      gap: 8px 14px;
    }

    .control-ws-topic-check {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      margin: 0;
      font-size: 0.8125rem;
      color: var(--text-secondary);
      cursor: pointer;
      user-select: none;
      white-space: nowrap;
    }

    .control-ws-topic-check:hover {
      color: var(--text);
    }

    @media (max-width: 768px) {
      .control-divider { display: none; }
      .control-auth,
      .control-poll,
      .control-graduated { flex: 1 1 100%; }
      .control-filters-row { align-items: stretch; }
      .control-filter-inline { flex: 1 1 100%; }
    }

    .block-panel {
      flex-shrink: 0;
      margin-top: 0;
      padding: 12px 16px 16px;
      border-top: 1px solid var(--border);
    }

    .block-panel summary {
      cursor: pointer;
      font-weight: 600;
      font-size: 0.875rem;
      color: var(--text-muted);
      user-select: none;
    }

    .block-hint {
      margin: 8px 0 10px;
      font-size: 0.75rem;
      color: var(--text-muted);
      line-height: 1.45;
    }

    .block-list {
      display: flex;
      flex-direction: column;
      gap: 6px;
      max-height: 200px;
      overflow-y: auto;
    }

    .block-list-header {
      display: grid;
      grid-template-columns: 28px minmax(64px, 1fr) minmax(88px, 0.95fr) 78px auto;
      gap: 8px;
      align-items: center;
      padding: 0 6px 6px;
      font-size: 0.625rem;
      font-weight: 600;
      letter-spacing: 0.04em;
      text-transform: uppercase;
      color: var(--text-muted);
      border-bottom: 1px solid var(--border);
      margin-bottom: 2px;
    }

    .block-list-col-icon {
      width: 28px;
    }

    .block-list-col-time {
      text-align: right;
    }

    .block-list-col-actions {
      text-align: right;
      min-width: 118px;
    }

    .block-item {
      display: grid;
      grid-template-columns: 28px minmax(64px, 1fr) minmax(88px, 0.95fr) 78px auto;
      align-items: center;
      gap: 8px;
      padding: 5px 6px;
      border-radius: 0;
      background: transparent;
      border: 0;
      border-bottom: 1px solid rgba(255, 255, 255, 0.06);
      font-size: 0.75rem;
    }

    .block-item:hover {
      background: rgba(255, 255, 255, 0.03);
    }

    .block-symbol {
      min-width: 0;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      font-weight: 600;
      color: var(--text-primary);
    }

    .block-addr {
      min-width: 0;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      color: var(--text-muted);
      font-family: "JetBrains Mono", ui-monospace, monospace;
      background: none !important;
      border: 0 !important;
      box-shadow: none !important;
      padding: 0 !important;
    }

    .block-time {
      min-width: 0;
      text-align: right;
      font-size: 0.6875rem;
      color: var(--text-muted);
      font-variant-numeric: tabular-nums;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .block-actions {
      display: inline-flex;
      align-items: center;
      justify-content: flex-end;
      gap: 4px;
      flex-shrink: 0;
    }

    .btn-block-unblock,
    .btn-block-del {
      flex-shrink: 0;
      padding: 3px 8px;
      font-size: 0.625rem;
      font-weight: 600;
      background: transparent;
      border-radius: 4px;
      cursor: pointer;
      line-height: 1.2;
    }

    .btn-block-unblock {
      color: #4ade80;
      border: 1px solid rgba(74, 222, 128, 0.35);
    }

    .btn-block-unblock:hover {
      background: rgba(74, 222, 128, 0.1);
      border-color: rgba(74, 222, 128, 0.55);
    }

    .btn-block-del {
      color: #f87171;
      border: 1px solid rgba(248, 113, 113, 0.35);
    }

    .btn-block-del:hover {
      background: rgba(248, 113, 113, 0.1);
      border-color: rgba(248, 113, 113, 0.55);
    }

    .block-empty {
      margin: 0;
      font-size: 0.8125rem;
      color: var(--text-muted);
    }

  /* ── Panels ── */
    .panel {
      background: var(--surface);
      backdrop-filter: blur(16px);
      border: 1px solid var(--border);
      border-radius: var(--radius);
      box-shadow: var(--shadow);
    }

    .panel-head {
      padding: 16px 18px;
      border-bottom: 1px solid var(--border);
      font-weight: 600;
      font-size: 0.8125rem;
      letter-spacing: 0.04em;
      text-transform: uppercase;
      color: var(--text-secondary);
      display: flex;
      align-items: center;
      gap: 8px;
    }

    .panel-head svg {
      width: 16px;
      height: 16px;
      opacity: 0.7;
    }

    .panel-body { padding: 18px; }

    .panel + .panel { margin-top: 16px; }

    .field { margin-bottom: 16px; }
    .field:last-child { margin-bottom: 0; }

    .field label {
      display: block;
      font-size: 0.75rem;
      font-weight: 600;
      color: var(--text-secondary);
      margin-bottom: 8px;
      letter-spacing: 0.02em;
    }

    .input-wrap {
      position: relative;
      display: flex;
      align-items: center;
    }

    input:not([type="checkbox"]):not([type="radio"]),
    textarea {
      width: 100%;
      font-family: inherit;
      font-size: 0.875rem;
      color: var(--text);
      background: rgba(5, 6, 10, 0.6);
      border: 1px solid var(--border);
      border-radius: var(--radius-sm);
      padding: 11px 14px;
      transition: border-color 0.2s, box-shadow 0.2s;
    }

    input:not([type="checkbox"]):not([type="radio"]):focus,
    textarea:focus {
      outline: none;
      border-color: rgba(139, 157, 255, 0.45);
      box-shadow: 0 0 0 3px rgba(139, 157, 255, 0.12);
    }

    .control-filters-row input.control-interval,
    .control-poll-row input.control-interval {
      width: 72px;
      max-width: 72px;
      min-width: 72px;
      flex: 0 0 72px;
      box-sizing: border-box;
    }

    .control-filters-row input.control-filter-mcap-input,
    .control-poll-row input.control-filter-mcap-input {
      width: 56px;
      max-width: 56px;
      min-width: 56px;
      flex: 0 0 56px;
    }

    textarea {
      min-height: 130px;
      resize: vertical;
      font-family: var(--mono);
      font-size: 0.75rem;
      line-height: 1.6;
    }

    .toggle-auth {
      position: absolute;
      right: 10px;
      background: transparent;
      border: none;
      color: var(--text-muted);
      cursor: pointer;
      padding: 6px;
      border-radius: 6px;
      display: flex;
    }

    .toggle-auth:hover { color: var(--text); background: rgba(255,255,255,0.05); }

    .interval-row {
      display: grid;
      grid-template-columns: 1fr auto;
      gap: 12px;
      align-items: end;
    }

    .checkbox-field {
      display: flex;
      align-items: center;
      gap: 8px;
      font-size: 0.8125rem;
      color: var(--text-secondary);
      cursor: pointer;
      user-select: none;
      padding: 10px 0;
    }

    .checkbox-field input[type="checkbox"] {
      flex-shrink: 0;
    }

    .chain-tags {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
      margin-top: 10px;
    }

    .chain-tag {
      font-size: 0.6875rem;
      font-weight: 600;
      padding: 4px 10px;
      border-radius: 6px;
      background: rgba(255,255,255,0.04);
      border: 1px solid var(--border);
      color: var(--text-muted);
      font-family: var(--mono);
    }

    .hint {
      margin-top: 10px;
      font-size: 0.75rem;
      color: var(--text-muted);
      line-height: 1.55;
    }

    .hint a { color: var(--accent); text-decoration: none; }
    .hint a:hover { text-decoration: underline; }
    .hint code {
      font-family: var(--mono);
      font-size: 0.6875rem;
      background: rgba(0,0,0,0.35);
      padding: 2px 6px;
      border-radius: 4px;
      color: var(--accent-bright);
    }

  /* ── Buttons ── */
    .btn-row {
      display: flex;
      gap: 10px;
      flex-wrap: wrap;
      margin-top: 18px;
    }

    button {
      font-family: inherit;
      font-size: 0.875rem;
      font-weight: 600;
      border: none;
      border-radius: var(--radius-sm);
      padding: 11px 18px;
      cursor: pointer;
      transition: transform 0.15s, box-shadow 0.15s, background 0.15s;
      display: inline-flex;
      align-items: center;
      gap: 8px;
    }

    button:active:not(:disabled) { transform: scale(0.98); }
    button:disabled { opacity: 0.45; cursor: not-allowed; }

    .btn-start {
      flex: 1;
      min-width: 120px;
      background: linear-gradient(135deg, #8b9dff, #6366f1);
      color: #fff;
      box-shadow: 0 4px 16px rgba(99, 102, 241, 0.35);
    }

    .btn-start:hover:not(:disabled) {
      box-shadow: 0 6px 24px rgba(99, 102, 241, 0.45);
    }

    .btn-ghost {
      background: rgba(255,255,255,0.04);
      color: var(--text);
      border: 1px solid var(--border);
    }

    .btn-ghost:hover:not(:disabled) {
      background: rgba(255,255,255,0.08);
      border-color: var(--border-strong);
    }

    .btn-clear {
      background: transparent;
      color: var(--sell);
      border: 1px solid rgba(248, 113, 113, 0.25);
    }

    .btn-clear:hover:not(:disabled) {
      background: var(--sell-bg);
    }

  /* ── Main feed area ── */
    .feed-header {
      display: flex;
      align-items: center;
      justify-content: flex-end;
      gap: 16px;
      margin-bottom: 20px;
      flex-wrap: wrap;
    }

    .stats-row {
      display: flex;
      gap: 12px;
      flex-wrap: wrap;
    }

    .stat-card {
      padding: 12px 16px;
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: var(--radius-sm);
      min-width: 100px;
    }

    .stat-card .val {
      font-size: 1.25rem;
      font-weight: 700;
      font-variant-numeric: tabular-nums;
      letter-spacing: -0.02em;
    }

    .stat-card .lbl {
      font-size: 0.6875rem;
      color: var(--text-muted);
      text-transform: uppercase;
      letter-spacing: 0.06em;
      margin-top: 2px;
    }

    .empty-state {
      text-align: center;
      padding: 64px 24px;
      border: 1px dashed var(--border);
      border-radius: var(--radius);
      background: rgba(0,0,0,0.2);
    }

    .empty-state.watch-empty {
      border: none;
      border-radius: 0;
      background: transparent;
      padding: 36px 24px 40px;
      border-bottom: 1px solid var(--border);
    }

    .empty-state.watch-empty .empty-icon {
      width: 48px;
      height: 48px;
      margin-bottom: 12px;
    }

    .empty-state.watch-empty h3 {
      font-size: 0.9375rem;
    }

    .empty-state.watch-empty p {
      font-size: 0.8125rem;
    }

    .empty-icon {
      width: 56px;
      height: 56px;
      margin: 0 auto 16px;
      border-radius: 16px;
      background: rgba(139, 157, 255, 0.1);
      display: flex;
      align-items: center;
      justify-content: center;
      color: var(--accent);
    }

    .empty-state h3 {
      margin: 0 0 8px;
      font-size: 1rem;
      font-weight: 600;
    }

    .empty-state p {
      margin: 0;
      color: var(--text-muted);
      font-size: 0.875rem;
      max-width: 360px;
      margin: 0 auto;
    }

  /* ── Token cards ── */
    .token-card {
      margin-bottom: 20px;
      border: 1px solid var(--border);
      border-radius: var(--radius);
      background: var(--surface);
      backdrop-filter: blur(12px);
      overflow: hidden;
      animation: fadeIn 0.35s ease;
    }

    @keyframes fadeIn {
      from { opacity: 0; transform: translateY(8px); }
      to { opacity: 1; transform: translateY(0); }
    }

    .token-head-left {
      display: flex;
      align-items: center;
      gap: 14px;
      min-width: 0;
    }

    .chain-badge {
      font-size: 0.6875rem;
      font-weight: 700;
      padding: 6px 10px;
      border-radius: 8px;
      text-transform: uppercase;
      letter-spacing: 0.05em;
      flex-shrink: 0;
    }

    .chain-solana { background: linear-gradient(135deg, #9945ff33, #14f19522); color: #c4b5fd; border: 1px solid rgba(153, 69, 255, 0.3); }
    .chain-base { background: rgba(0, 82, 255, 0.15); color: #60a5fa; border: 1px solid rgba(0, 82, 255, 0.25); }
    .chain-bnb { background: rgba(243, 186, 47, 0.12); color: #fcd34d; border: 1px solid rgba(243, 186, 47, 0.25); }
    .chain-ethereum { background: rgba(98, 126, 234, 0.15); color: #a5b4fc; border: 1px solid rgba(98, 126, 234, 0.25); }
    .chain-monad { background: rgba(168, 85, 247, 0.12); color: #d8b4fe; border: 1px solid rgba(168, 85, 247, 0.25); }
    .chain-robinhood { background: rgba(0, 200, 83, 0.12); color: #6ee7b7; border: 1px solid rgba(0, 200, 83, 0.25); }
    .chain-default { background: rgba(255,255,255,0.06); color: var(--text-secondary); border: 1px solid var(--border); }

    .token-info { min-width: 0; }
    .token-link {
      font-weight: 600;
      font-size: 0.9375rem;
      color: var(--text);
      text-decoration: none;
      display: inline-flex;
      align-items: center;
      gap: 6px;
    }

    .token-link:hover { color: var(--accent-bright); }
    .token-link svg { opacity: 0.5; }

    .token-addr {
      font-family: var(--mono);
      font-size: 0.75rem;
      color: var(--text-muted);
      margin-top: 4px;
      word-break: break-all;
    }

    .token-status {
      font-size: 0.75rem;
      font-weight: 600;
      padding: 6px 12px;
      border-radius: 999px;
      background: rgba(255,255,255,0.04);
      color: var(--text-muted);
      border: 1px solid var(--border);
      max-width: 280px;
      text-align: right;
    }

    .token-status.ok {
      background: var(--buy-bg);
      color: var(--buy);
      border-color: rgba(52, 211, 153, 0.25);
    }

    .token-status.err {
      background: var(--sell-bg);
      color: var(--sell);
      border-color: rgba(248, 113, 113, 0.25);
      text-align: left;
      max-width: 100%;
    }

    .trade-list { padding: 8px 12px 12px; }

    .trade-row {
      display: grid;
      grid-template-columns: auto 1fr auto auto auto auto;
      gap: 12px 16px;
      align-items: center;
      padding: 12px 14px;
      margin-bottom: 6px;
      border-radius: var(--radius-sm);
      border: 1px solid transparent;
      transition: background 0.2s, border-color 0.2s;
    }

    .trade-row:hover {
      background: rgba(255,255,255,0.03);
      border-color: var(--border);
    }

    .trade-row.new-row {
      background: rgba(139, 157, 255, 0.08);
      border-color: rgba(139, 157, 255, 0.2);
      animation: slideIn 0.4s ease;
    }

    @keyframes slideIn {
      from { opacity: 0; transform: translateX(-8px); }
      to { opacity: 1; transform: translateX(0); }
    }

  @media (max-width: 768px) {
      .trade-row {
        grid-template-columns: 1fr 1fr;
        gap: 8px;
      }
    }

    .side-pill {
      font-size: 0.6875rem;
      font-weight: 700;
      padding: 5px 10px;
      border-radius: 6px;
      letter-spacing: 0.04em;
      text-align: center;
      min-width: 52px;
    }

    .side-buy { background: var(--buy-bg); color: var(--buy); }
    .side-sell { background: var(--sell-bg); color: var(--sell); }
    .side-other { background: rgba(251, 191, 36, 0.12); color: var(--warn); }

    .trade-user {
      font-weight: 600;
      font-size: 0.875rem;
      color: var(--text);
    }

    .trade-time {
      font-size: 0.75rem;
      color: var(--text-muted);
      font-variant-numeric: tabular-nums;
    }

    .trade-metrics {
      display: flex;
      gap: 16px;
      flex-wrap: wrap;
    }

    .metric {
      display: flex;
      flex-direction: column;
      gap: 2px;
    }

    .metric .m-label {
      font-size: 0.625rem;
      text-transform: uppercase;
      letter-spacing: 0.06em;
      color: var(--text-muted);
    }

    .metric .m-val {
      font-size: 0.875rem;
      font-weight: 600;
      font-variant-numeric: tabular-nums;
    }

    .metric .m-val.positive { color: var(--buy); }
    .metric .m-val.negative { color: var(--sell); }

    .trade-detail-btn {
      background: transparent;
      border: 1px solid var(--border);
      color: var(--text-muted);
      padding: 6px 10px;
      font-size: 0.75rem;
      border-radius: 6px;
      cursor: pointer;
    }

    .trade-detail-btn:hover {
      color: var(--text);
      border-color: var(--border-strong);
      background: rgba(255,255,255,0.04);
    }

    .trade-json {
      grid-column: 1 / -1;
      margin-top: 4px;
    }

  .trade-json pre {
      margin: 0;
      padding: 12px;
      background: rgba(0,0,0,0.45);
      border-radius: 8px;
      font-family: var(--mono);
      font-size: 0.6875rem;
      line-height: 1.5;
      overflow: auto;
      max-height: 180px;
      border: 1px solid var(--border);
    }

    .trade-json[hidden] { display: none; }

    .list-head {
      display: grid;
      grid-template-columns: auto 1fr auto auto auto auto;
      gap: 12px 16px;
      padding: 8px 14px 4px;
      font-size: 0.625rem;
      text-transform: uppercase;
      letter-spacing: 0.08em;
      color: var(--text-muted);
    }

    @media (max-width: 768px) { .list-head { display: none; } }


    .auth-valid-badge {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      font-size: 0.75rem;
      font-weight: 600;
      padding: 6px 10px;
      border-radius: 8px;
      margin-top: 0;
      white-space: nowrap;
      flex-shrink: 0;
    }

    .auth-valid-badge.ok {
      background: var(--buy-bg);
      color: var(--buy);
      border: 1px solid rgba(52, 211, 153, 0.25);
    }

    .auth-valid-badge.bad {
      background: var(--sell-bg);
      color: var(--sell);
      border: 1px solid rgba(248, 113, 113, 0.25);
    }

    .auth-valid-badge.pending {
      background: rgba(139, 157, 255, 0.1);
      color: var(--accent);
      border: 1px solid rgba(139, 157, 255, 0.25);
    }

    .btn-link {
      margin-top: 10px;
      background: transparent;
      border: none;
      color: var(--accent);
      font-size: 0.8125rem;
      font-weight: 600;
      cursor: pointer;
      padding: 0;
    }

    .btn-link:hover { color: var(--accent-bright); text-decoration: underline; }

    /* Auth modal */
    .modal-overlay {
      position: fixed;
      inset: 0;
      z-index: 5000;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 20px;
      background: rgba(5, 6, 10, 0.75);
      backdrop-filter: blur(8px);
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
      transition: opacity 0.2s, visibility 0.2s;
    }

    .modal-overlay.show {
      opacity: 1;
      visibility: visible;
      pointer-events: auto;
    }

    /* 确认框必须盖住其它 modal（Block / Settings 等同为 5000） */
    .modal-overlay.modal-confirm-overlay {
      z-index: 5600;
    }

    .modal-confirm-message {
      margin: 0;
      font-size: 0.8125rem;
      line-height: 1.5;
      color: var(--text, #e8e8e8);
      word-break: break-word;
    }

    .modal.modal-confirm {
      max-width: 420px;
    }

    .modal.modal-confirm .modal-foot {
      display: flex;
      justify-content: flex-end;
      gap: 10px;
      padding: 14px 22px 18px;
    }

    .btn-confirm-danger,
    .modal-confirm .btn-start.btn-confirm-danger {
      background: rgba(248, 113, 113, 0.16) !important;
      border: 1px solid rgba(248, 113, 113, 0.45) !important;
      color: #fca5a5 !important;
    }

    .btn-confirm-danger:hover,
    .modal-confirm .btn-start.btn-confirm-danger:hover {
      background: rgba(248, 113, 113, 0.28) !important;
      border-color: rgba(248, 113, 113, 0.65) !important;
    }

    .modal {
      width: 100%;
      max-width: 480px;
      background: var(--surface-solid);
      border: 1px solid var(--border-strong);
      border-radius: var(--radius);
      box-shadow: 0 24px 64px rgba(0, 0, 0, 0.55);
      animation: modalIn 0.25s ease;
    }

    .modal.modal-holder-users {
      width: min(98vw, 1320px);
      max-width: min(98vw, 1320px);
    }

    .modal.modal-global-users {
      width: min(98vw, 1320px);
      max-width: min(98vw, 1320px);
    }

    .modal.modal-settings {
      width: min(98vw, 1320px);
      max-width: min(98vw, 1320px);
    }

    @keyframes modalIn {
      from { opacity: 0; transform: scale(0.96) translateY(8px); }
      to { opacity: 1; transform: scale(1) translateY(0); }
    }

    .modal-head {
      padding: 20px 22px 12px;
      border-bottom: 1px solid var(--border);
    }

    .modal-head h3 {
      margin: 0 0 8px;
      font-size: 1.125rem;
      font-weight: 700;
    }

    .modal-head p {
      margin: 0;
      font-size: 0.875rem;
      color: var(--text-secondary);
      line-height: 1.5;
    }

    .modal-body { padding: 18px 22px; }

    .modal.modal-holder-users .modal-body {
      padding: 20px 28px;
    }

    .modal.modal-holder-users .modal-head {
      padding: 22px 28px 14px;
    }

    .modal.modal-holder-users .modal-foot {
      padding: 14px 28px 20px;
    }

    .modal.modal-pushed-holders .modal-body {
      padding: 20px 28px;
    }

    .modal.modal-pushed-holders .modal-head {
      padding: 22px 28px 14px;
    }

    .modal.modal-pushed-holders .modal-foot {
      padding: 14px 28px 20px;
    }

    .modal.modal-block-list .modal-body {
      padding: 10px 14px 12px;
    }

    .modal.modal-block-list .modal-head {
      padding: 14px 14px 8px;
    }

    .modal.modal-block-list .modal-head h3 {
      font-size: 0.9375rem;
      margin: 0;
    }

    .modal.modal-block-list .modal-foot {
      padding: 8px 14px 12px;
    }

    .modal.modal-settings .modal-body {
      padding: 20px 28px;
    }

    .modal.modal-settings .modal-head {
      padding: 22px 28px 14px;
    }

    .modal.modal-settings .modal-foot {
      padding: 14px 28px 20px;
    }

    .auth-modal-toolbar {
      margin-bottom: 10px;
    }

    .btn-sm {
      padding: 6px 12px;
      font-size: 0.75rem;
    }

    .auth-modal-input {
      width: 100%;
      min-height: 120px;
      margin-top: 8px;
      font-family: var(--mono);
      font-size: 0.75rem;
      line-height: 1.45;
      resize: vertical;
    }

    .auth-modal-legacy {
      margin-top: 12px;
      font-size: 0.75rem;
      color: var(--text-muted);
    }

    .auth-modal-legacy summary {
      cursor: pointer;
      user-select: none;
    }

    .modal-error {
      margin-bottom: 12px;
      padding: 10px 12px;
      border-radius: 8px;
      background: var(--sell-bg);
      border: 1px solid rgba(248, 113, 113, 0.25);
      color: #fca5a5;
      font-size: 0.8125rem;
      display: none;
      white-space: pre-line;
      line-height: 1.55;
    }

    .modal-error.show { display: block; }

    .jwt-hint {
      margin-top: 8px;
      min-height: 1.2em;
      font-size: 0.8125rem;
    }

    .jwt-hint.expired { color: #fca5a5; }
    .jwt-hint.ok { color: var(--buy); }

    .modal-foot {
      padding: 14px 22px 20px;
      display: flex;
      gap: 10px;
      justify-content: flex-end;
      border-top: 1px solid var(--border);
    }

    .modal-foot .btn-start { flex: 0; min-width: 100px; }

    /* ── Watch token list ── */
    .add-token-form {
      display: flex;
      gap: 8px;
      align-items: stretch;
    }

    .add-token-form input {
      flex: 1;
      min-width: 0;
    }

    .add-token-form .btn-add {
      flex-shrink: 0;
    }

    @media (max-width: 480px) {
      .add-token-form {
        flex-direction: column;
      }
    }

    select {
      width: 100%;
      font-family: inherit;
      font-size: 0.875rem;
      color: var(--text);
      background: rgba(5, 6, 10, 0.6);
      border: 1px solid var(--border);
      border-radius: var(--radius-sm);
      padding: 11px 12px;
      cursor: pointer;
    }

    select:focus {
      outline: none;
      border-color: rgba(139, 157, 255, 0.45);
      box-shadow: 0 0 0 3px rgba(139, 157, 255, 0.12);
    }

    .btn-add {
      padding: 11px 14px;
      background: rgba(139, 157, 255, 0.15);
      color: var(--accent-bright);
      border: 1px solid rgba(139, 157, 255, 0.3);
      white-space: nowrap;
    }

    .btn-add:hover:not(:disabled) {
      background: rgba(139, 157, 255, 0.25);
    }

    .watch-token-list {
      list-style: none;
      margin: 14px 0 0;
      padding: 0;
      max-height: 280px;
      overflow-y: auto;
    }

    .watch-token-item {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 10px 12px;
      margin-bottom: 6px;
      border-radius: var(--radius-sm);
      background: rgba(0, 0, 0, 0.25);
      border: 1px solid var(--border);
      transition: border-color 0.15s;
    }

    .watch-token-item:hover {
      border-color: var(--border-strong);
    }

    .watch-token-item .chain-badge {
      font-size: 0.625rem;
      padding: 4px 8px;
    }

    .watch-token-item .addr {
      flex: 1;
      min-width: 0;
      font-family: var(--mono);
      font-size: 0.6875rem;
      color: var(--text-secondary);
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .btn-remove {
      flex-shrink: 0;
      padding: 6px 10px;
      font-size: 0.75rem;
      background: transparent;
      color: var(--text-muted);
      border: 1px solid var(--border);
    }

    .btn-remove:hover {
      color: var(--sell);
      border-color: rgba(248, 113, 113, 0.35);
      background: var(--sell-bg);
    }

    .token-list-empty {
      margin: 14px 0 0;
      padding: 20px;
      text-align: center;
      font-size: 0.8125rem;
      color: var(--text-muted);
      border: 1px dashed var(--border);
      border-radius: var(--radius-sm);
    }

    .token-list-empty.hidden { display: none; }

    .bulk-import {
      margin-top: 14px;
      border-top: 1px solid var(--border);
      padding-top: 12px;
    }

    .bulk-import summary {
      font-size: 0.75rem;
      color: var(--text-muted);
      cursor: pointer;
      user-select: none;
    }

    .bulk-import-summary {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      flex-wrap: wrap;
    }

    .bulk-import-summary-text {
      flex: 1 1 auto;
      min-width: 0;
    }

    .watch-token-count {
      margin: 0;
      font-size: 0.75rem;
      color: var(--text-muted);
      flex: 0 0 auto;
    }

    .watch-token-count strong {
      color: var(--text-secondary);
      font-variant-numeric: tabular-nums;
    }

    .bulk-import textarea {
      margin-top: 10px;
      min-height: 72px;
    }

    .bulk-import .btn-row { margin-top: 10px; }

    .form-error {
      margin-top: 8px;
      font-size: 0.75rem;
      color: var(--sell);
      display: none;
    }

    .form-error.show { display: block; }

    /* Holders table */
    .holders-panel-layout {
      display: flex;
      flex-direction: column;
      max-height: none;
    }

    .holders-panel-layout-v2 .holders-head,
    .holders-panel-layout-v2 .holder-row,
    .holders-panel-layout-v3 .holders-head,
    .holders-panel-layout-v3 .holder-row,
    .holders-panel-layout-v4 .holders-head,
    .holders-panel-layout-v4 .holder-row,
    .holders-panel-layout-v5 .holders-head,
    .holders-panel-layout-v5 .holder-row,
    .holders-panel-layout-v6 .holders-head,
    .holders-panel-layout-v6 .holder-row,
    .holders-panel-layout-v7 .holders-head,
    .holders-panel-layout-v7 .holder-row {
      padding-left: 0;
    }

    .holders-pager {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 2px;
      padding: 8px 12px 10px;
      border-top: 1px solid var(--border);
      flex-shrink: 0;
    }

    .holders-pager-pages {
      display: flex;
      align-items: center;
      gap: 2px;
      flex-wrap: wrap;
      justify-content: center;
    }

    .holders-pager-num {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 28px;
      height: 28px;
      padding: 0 6px;
      border: none;
      border-radius: 6px;
      background: transparent;
      color: #6b7280;
      font-size: 0.8125rem;
      font-variant-numeric: tabular-nums;
      cursor: pointer;
      line-height: 1;
    }

    .holders-pager-num:hover:not(:disabled) {
      background: transparent;
      color: #d1d5db;
    }

    .holders-pager-num-active,
    .holders-pager-num:disabled {
      background: rgba(59, 99, 220, 0.28);
      border: none;
      color: #5b8fff;
      cursor: default;
    }

    .holders-pager-ellipsis {
      padding: 0 4px;
      color: #6b7280;
      font-size: 0.75rem;
      user-select: none;
    }

    .holders-pager[hidden] {
      display: none;
    }

    .holders-pager-btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 28px;
      height: 28px;
      padding: 0;
      border: none;
      border-radius: 6px;
      background: transparent;
      color: #6b7280;
      cursor: pointer;
      line-height: 1;
    }

    .holders-pager-btn:hover:not(:disabled) {
      background: transparent;
      color: #d1d5db;
    }

    .holders-pager-btn:disabled {
      opacity: 0.35;
      cursor: not-allowed;
    }

    .fw-pager-chevron {
      display: block;
      flex-shrink: 0;
    }

    .holders-pager-info {
      font-size: 0.75rem;
      color: var(--text-muted);
      font-variant-numeric: tabular-nums;
      min-width: 4.5rem;
      text-align: center;
    }

    .holders-head,
    .holder-row {
      display: grid;
      grid-template-columns:
        minmax(76px, 0.62fr)
        minmax(50px, 0.36fr)
        minmax(50px, 0.38fr)
        minmax(50px, 0.42fr)
        minmax(62px, 0.46fr)
        minmax(96px, 1fr)
        minmax(120px, 1.05fr)
        34px;
      gap: 6px 5px;
      align-items: center;
      min-width: 900px;
    }

    .holders-col {
      min-width: 0;
    }

    .holders-col-num {
      font-family: var(--mono);
      font-size: 0.8125rem;
      text-align: right;
      font-variant-numeric: tabular-nums;
      color: var(--text-secondary);
    }

    .holders-col-text {
      font-size: 0.75rem;
      color: var(--text-muted);
      line-height: 1.35;
      overflow: hidden;
      text-overflow: ellipsis;
      display: -webkit-box;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
    }

    .holder-opinion {
      -webkit-line-clamp: 3;
    }

    .holder-scan-tag {
      color: var(--text-secondary);
      font-size: 0.72rem;
      -webkit-line-clamp: unset;
      display: flex;
      align-items: center;
      overflow: visible;
    }

    .holder-tag-input {
      width: 100%;
      min-width: 0;
      padding: 4px 6px;
      border: 1px solid transparent;
      border-radius: 6px;
      background: rgba(255, 255, 255, 0.04);
      color: var(--text-secondary);
      font-size: 0.72rem;
      font-family: inherit;
      line-height: 1.35;
    }

    .holder-tag-input::placeholder {
      color: var(--text-muted);
      opacity: 0.75;
    }

    .holder-tag-input:hover {
      border-color: rgba(255, 255, 255, 0.08);
    }

    .holder-tag-input:focus {
      outline: none;
      border-color: rgba(139, 157, 255, 0.35);
      background: rgba(255, 255, 255, 0.06);
      color: var(--text);
    }

    .holders-head .holders-col-num,
    .holders-head .holders-sort-btn {
      text-align: right;
    }

    .holders-sort-btn {
      border: none;
      background: none;
      padding: 0;
      margin: 0;
      font: inherit;
      font-size: inherit;
      font-weight: inherit;
      text-transform: inherit;
      letter-spacing: inherit;
      color: inherit;
      cursor: pointer;
      line-height: 1.2;
      display: inline-flex;
      flex-direction: row;
      align-items: center;
      justify-content: flex-end;
      gap: 3px;
      justify-self: end;
      white-space: nowrap;
    }

    .holders-sort-btn:hover {
      color: var(--text);
    }

    .holders-sort-btn.sort-active {
      color: var(--text);
    }

    .holders-sort-btn.sort-active::after {
      display: inline-block;
      flex-shrink: 0;
      font-size: 0.5rem;
      line-height: 1;
      opacity: 0.75;
    }

    .holders-sort-btn.sort-desc::after {
      content: "▼";
    }

    .holders-sort-btn.sort-asc::after {
      content: "▲";
    }

    .holders-col-profile {
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
    }

    .holder-profile-link {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 26px;
      height: 26px;
      flex-shrink: 0;
      color: var(--text-muted);
      border-radius: 6px;
      transition: color 0.15s, background 0.15s;
    }

    .holder-profile-link svg {
      width: 17px;
      height: 17px;
    }

    .holder-profile-link:hover {
      color: var(--accent-bright);
      background: rgba(139, 157, 255, 0.12);
    }

    .holders-head .holders-col:nth-child(5),
    .holder-row .holders-col:nth-child(5) {
      padding-right: 10px;
    }

    .holders-head .holders-col:nth-child(7),
    .holder-row .holders-col:nth-child(7) {
      padding-left: 14px;
    }

    .holder-remark-col {
      display: flex;
      flex-direction: column;
      gap: 3px;
      overflow: visible;
      -webkit-line-clamp: unset;
      -webkit-box-orient: unset;
    }

    .holder-user-remark {
      width: 100%;
      min-width: 0;
      padding: 4px 8px;
      border: 1px solid transparent;
      border-radius: 4px;
      background: rgba(255, 255, 255, 0.04);
      color: var(--text-secondary);
      font-size: 0.75rem;
      font-family: inherit;
      line-height: 1.35;
    }

    .holder-user-remark::placeholder {
      color: var(--text-muted);
    }

    .holder-user-remark:hover {
      border-color: var(--border);
    }

    .holder-user-remark:focus {
      border-color: rgba(139, 157, 255, 0.35);
      outline: none;
      background: rgba(255, 255, 255, 0.06);
      color: var(--text);
    }

    .holder-api-remark {
      font-size: 0.6875rem;
      color: var(--text-muted);
      line-height: 1.3;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .holder-amount-sym {
      font-size: 0.6875rem;
      color: var(--text-muted);
    }

    .holders-head {
      padding: 10px 14px;
      font-size: 0.6875rem;
      text-transform: uppercase;
      letter-spacing: 0.06em;
      color: var(--text-muted);
      border-bottom: 1px solid var(--border);
      background: rgba(18, 20, 32, 0.95);
    }

    .holder-row {
      width: 100%;
      text-align: left;
      padding: 12px 14px;
      margin-bottom: 4px;
      border: 1px solid transparent;
      border-radius: var(--radius-sm);
      background: transparent;
      color: inherit;
      font-family: inherit;
      font-weight: 400;
      cursor: pointer;
      transition: background 0.15s, border-color 0.15s;
    }

    .holder-row:hover {
      background: rgba(255, 255, 255, 0.04);
      border-color: var(--border);
    }

    .holder-name {
      font-size: 0.875rem;
    }

    .holder-sub {
      font-size: 0.6875rem;
      font-weight: 400;
      color: var(--text-muted);
      margin-top: 2px;
    }

    .holder-main {
      font-family: var(--mono);
      font-size: 0.8125rem;
      font-weight: 400;
      font-variant-numeric: tabular-nums;
    }

    .holder-row .holders-col-num {
      font-weight: 400;
    }

    .holder-main.positive,
    .holder-sub.positive { color: var(--buy); }

    .holder-main.negative,
    .holder-sub.negative { color: var(--sell); }

    /* Holder detail drawer */
    .holder-detail-overlay {
      /* 复用 modal-overlay 居中；保留旧 drawer 类名兼容 */
    }

    .drawer-overlay {
      position: fixed;
      inset: 0;
      background: rgba(0, 0, 0, 0.55);
      z-index: 200;
      display: none;
      justify-content: flex-end;
    }

    .drawer-overlay.show { display: flex; }

    .modal-holder-detail {
      width: min(560px, 100%);
      max-height: min(96vh, 980px);
      min-height: min(88vh, 860px);
      display: flex;
      flex-direction: column;
      overflow: hidden;
      border-radius: 16px;
      background: var(--surface-solid, #12141f);
      border: 1px solid var(--border);
      box-shadow: 0 24px 80px rgba(0, 0, 0, 0.55);
    }

    .holder-detail-head {
      display: flex;
      justify-content: space-between;
      align-items: flex-start;
      gap: 12px;
      flex-shrink: 0;
    }

    .holder-detail-head-main {
      min-width: 0;
      flex: 1;
    }

    .holder-detail-head-side {
      display: flex;
      align-items: flex-start;
      gap: 10px;
      flex-shrink: 0;
    }

    .holder-detail-side-stack {
      display: flex;
      flex-direction: column;
      align-items: flex-end;
      gap: 8px;
      min-width: 0;
    }

    .holder-detail-fans {
      text-align: right;
      min-width: 0;
      padding: 2px 0;
      white-space: nowrap;
    }

    .holder-detail-fans-text {
      font-size: 0.8125rem;
      color: var(--text-secondary);
      font-variant-numeric: tabular-nums;
    }

    .holder-detail-fans-text [data-profile="followers"] {
      color: var(--text);
      font-weight: 600;
    }

    .holder-detail-actions {
      display: flex;
      flex-wrap: wrap;
      justify-content: flex-end;
      gap: 6px;
      max-width: 220px;
    }

    .holder-detail-action-btn {
      padding: 4px 8px;
      border: 1px solid var(--border);
      border-radius: 6px;
      background: rgba(255, 255, 255, 0.04);
      color: var(--text-secondary);
      font-size: 0.6875rem;
      line-height: 1.2;
      cursor: pointer;
      white-space: nowrap;
    }

    .holder-detail-action-btn:hover:not(:disabled) {
      color: var(--text);
      border-color: rgba(139, 157, 255, 0.35);
      background: rgba(139, 157, 255, 0.1);
    }

    .holder-detail-action-btn:disabled {
      opacity: 0.45;
      cursor: not-allowed;
    }

    .holder-detail-fetch-status {
      flex-shrink: 0;
      padding: 6px 18px 8px;
      font-size: 0.75rem;
      color: var(--accent, #8b9dff);
      letter-spacing: 0.02em;
      border-bottom: 1px solid rgba(139, 157, 255, 0.1);
      background: rgba(139, 157, 255, 0.06);
    }

    .holder-detail-fetch-status[hidden] {
      display: none !important;
    }

    .drawer-token-plain {
      display: flex;
      flex-direction: column;
      gap: 6px;
      margin-bottom: 14px;
      font-size: 0.875rem;
      color: var(--text-secondary);
      line-height: 1.45;
    }

    .drawer-token-plain.drawer-token-split {
      flex-direction: row;
      align-items: center;
      gap: 16px;
    }

    .drawer-token-pnl {
      flex: 0 0 auto;
      min-width: 5.5rem;
      line-height: 1.25;
    }

    .drawer-token-pnl-val {
      font-size: 1.125rem;
      font-weight: 700;
      color: var(--text);
      font-variant-numeric: tabular-nums;
    }

    .drawer-token-pnl-pct {
      font-size: 0.8125rem;
      font-weight: 600;
      font-variant-numeric: tabular-nums;
      color: var(--text-muted);
    }

    .drawer-token-pnl.positive .drawer-token-pnl-val,
    .drawer-token-pnl.positive .drawer-token-pnl-pct {
      color: var(--buy, #34d399);
    }

    .drawer-token-pnl.negative .drawer-token-pnl-val,
    .drawer-token-pnl.negative .drawer-token-pnl-pct {
      color: var(--sell, #f87171);
    }

    .drawer-token-side {
      flex: 1;
      min-width: 0;
      display: flex;
      flex-direction: column;
      gap: 4px;
    }

    .drawer-token-side-row {
      display: flex;
      align-items: baseline;
      justify-content: flex-end;
      gap: 10px;
      min-width: 0;
    }

    .drawer-token-side-val {
      min-width: 0;
      text-align: right;
      font-variant-numeric: tabular-nums;
    }

    .drawer-token-side-lbl {
      flex: 0 0 auto;
      width: 4.5em;
      text-align: right;
      color: var(--text-muted);
      font-size: 0.75rem;
      white-space: nowrap;
    }

    .drawer-token-plain strong {
      color: var(--text);
      font-weight: 600;
    }

    .drawer-token-plain .muted {
      color: var(--text-muted);
      font-size: 0.8125rem;
    }

    .drawer-token-plain .sep {
      color: var(--text-muted);
    }

    .drawer-trades {
      padding-left: 12px;
      border-left: 1px solid rgba(139, 157, 255, 0.12);
      margin-left: 4px;
      margin-bottom: 0;
      max-height: none;
      overflow: visible;
    }

    .drawer-trade {
      display: grid;
      grid-template-columns: 3.25rem minmax(0, 1.1fr) minmax(0, 1.2fr) minmax(0, 1fr);
      gap: 12px;
      align-items: center;
      padding: 8px 0;
      border-bottom: 1px solid var(--border);
      min-height: 36px;
    }

    .drawer-trade > .side-pill {
      justify-self: start;
    }

    .drawer-trade-empty {
      opacity: 0.28;
      pointer-events: none;
    }

    .drawer-trade-usd,
    .drawer-trade-mc,
    .drawer-trade-time {
      text-align: left;
      justify-self: start;
      min-width: 0;
      font-variant-numeric: tabular-nums;
    }

    .drawer-trade-usd {
      font-weight: 600;
      font-size: 0.875rem;
      color: var(--text);
    }

    .drawer-trade-mc {
      font-size: 0.8125rem;
      color: var(--text-secondary);
    }

    .drawer-trade-time {
      font-size: 0.75rem;
      color: var(--text-muted);
      white-space: nowrap;
    }

    .drawer-trades-pager {
      margin: 4px 0 8px;
      border-top: none;
      padding-top: 8px;
    }

    .holder-detail-head h3 {
      margin: 0;
      font-size: 1.25rem;
      font-weight: 700;
      letter-spacing: 0.02em;
    }

    .drawer-summary-token {
      grid-template-columns: 1fr 1fr;
      margin-bottom: 14px;
    }

    .modal-holder-detail .drawer-body {
      padding-top: 8px;
      scrollbar-width: thin;
      scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
    }

    .modal-holder-detail .drawer-body::-webkit-scrollbar {
      width: var(--scrollbar-size);
      height: var(--scrollbar-size);
    }

    .modal-holder-detail .drawer-body::-webkit-scrollbar-track {
      background: var(--scrollbar-track);
      border-radius: 999px;
    }

    .modal-holder-detail .drawer-body::-webkit-scrollbar-thumb {
      background: var(--scrollbar-thumb);
      border-radius: 999px;
    }

    .modal-holder-detail .drawer-body::-webkit-scrollbar-thumb:hover {
      background: var(--scrollbar-thumb-hover);
    }

    .modal-holder-detail .drawer-body::-webkit-scrollbar-thumb:active {
      background: var(--scrollbar-thumb-active);
    }

    .modal-holder-detail .drawer-body::-webkit-scrollbar-corner {
      background: transparent;
    }

    .holder-drawer {
      width: min(420px, 100vw);
      height: 100%;
      background: var(--surface-solid, #12141f);
      border-left: 1px solid var(--border);
      display: flex;
      flex-direction: column;
      box-shadow: -8px 0 40px rgba(0, 0, 0, 0.4);
    }

    .drawer-head {
      display: flex;
      justify-content: space-between;
      align-items: flex-start;
      padding: 18px 20px;
      border-bottom: 1px solid var(--border);
    }

    .drawer-head h3 {
      margin: 0;
      font-size: 1.125rem;
    }

    .drawer-sub {
      margin: 4px 0 0;
      font-size: 0.75rem;
      color: var(--text-muted);
    }

    .drawer-handle {
      margin: 6px 0 0;
      font-size: 0.8125rem;
      color: var(--text-secondary);
      line-height: 1.3;
    }

    .drawer-handle-link {
      color: #7eb8ff;
      text-decoration: none;
    }

    .drawer-handle-link:hover {
      text-decoration: underline;
    }

    .drawer-close {
      background: transparent;
      border: none;
      color: var(--text-muted);
      font-size: 1.5rem;
      line-height: 1;
      cursor: pointer;
      padding: 0 4px;
      flex-shrink: 0;
    }

    .drawer-body {
      flex: 1;
      overflow-y: auto;
      padding: 16px 20px 24px;
    }

    .drawer-loading,
    .drawer-empty,
    .drawer-error {
      padding: 16px;
      font-size: 0.875rem;
      color: var(--text-muted);
    }

    .drawer-error { color: #fca5a5; }

    .drawer-summary {
      display: grid;
      grid-template-columns: 1fr 1fr 1fr;
      gap: 10px;
      margin-bottom: 14px;
    }

    .drawer-summary-secondary {
      grid-template-columns: 1fr 1fr;
      margin-bottom: 14px;
    }

    .drawer-hero-grid {
      display: grid;
      grid-template-columns: 1.1fr 1fr;
      gap: 10px;
      margin-bottom: 10px;
      align-items: stretch;
    }

    .drawer-hero-right {
      display: grid;
      grid-template-rows: 1fr 1fr;
      gap: 10px;
      min-height: 0;
    }

    .drawer-stat-fans {
      display: flex;
      flex-direction: column;
      justify-content: center;
      min-height: 100%;
    }

    .drawer-stat-fans .val {
      font-size: 1.5rem;
      margin-top: 8px;
    }

    .drawer-profile-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 10px;
      margin-bottom: 14px;
    }

    .drawer-top3-list {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 10px;
      margin-bottom: 14px;
    }

    .drawer-top3-row {
      display: flex;
      flex-direction: column;
      gap: 6px;
      line-height: 1.35;
      padding: 10px;
      border-radius: 10px;
      border: 1px solid var(--border);
      background: rgba(255, 255, 255, 0.03);
      min-width: 0;
    }

    .drawer-top3-rank {
      display: inline-flex;
      align-self: flex-start;
      font-size: 0.625rem;
      font-weight: 700;
      letter-spacing: 0.02em;
      line-height: 1;
      padding: 3px 6px;
      border-radius: 3px;
      color: var(--text-muted);
      background: rgba(203, 208, 235, 0.1);
    }

    /* FOMO 同款第1名黄 */
    .drawer-top3-rank.rank-1 {
      color: #ffbf17;
      background: rgba(225, 176, 72, 0.12);
    }

    /* 第2名银 */
    .drawer-top3-rank.rank-2 {
      color: #b7c0d4;
      background: rgba(183, 192, 212, 0.14);
    }

    /* 第3名铜 */
    .drawer-top3-rank.rank-3 {
      color: #d4a06a;
      background: rgba(212, 160, 106, 0.14);
    }

    .drawer-top3-line {
      font-size: 0.8125rem;
      font-weight: 600;
      color: var(--text);
      font-variant-numeric: tabular-nums;
      word-break: break-word;
    }

    .drawer-top3-line.positive { color: var(--buy, #34d399); }
    .drawer-top3-line.negative { color: var(--sell, #f87171); }
    .drawer-top3-line.muted { color: var(--text-muted); font-weight: 500; }

    .drawer-trade-card .val {
      font-size: 0.875rem;
    }

    .drawer-trade-card {
      display: flex;
      flex-direction: column;
      gap: 6px;
      align-items: flex-start;
    }

    .drawer-trade-card .side-pill {
      align-self: flex-start;
    }

    .drawer-trade-card-time {
      font-size: 0.6875rem;
      color: var(--text-muted);
      margin-top: 2px;
    }

    .drawer-stat {
      background: rgba(255, 255, 255, 0.03);
      border: 1px solid var(--border);
      border-radius: 10px;
      padding: 12px;
    }

    .drawer-stat.drawer-stat-wide {
      grid-column: 1 / -1;
    }

    .drawer-stat .lbl {
      display: block;
      font-size: 0.625rem;
      color: var(--text-muted);
      text-transform: uppercase;
      letter-spacing: 0.05em;
    }

    .drawer-stat .val {
      display: block;
      font-size: 0.9375rem;
      font-weight: 700;
      margin-top: 4px;
    }

    .drawer-stat .sub {
      display: block;
      font-size: 0.75rem;
      color: var(--text-muted);
      margin-top: 2px;
    }

    .drawer-stat .val.positive,
    .drawer-stat .sub.positive { color: var(--buy); }

    .drawer-stat .val.negative,
    .drawer-stat .sub.negative { color: var(--sell); }

    .drawer-tag-row {
      margin: 0 0 14px;
    }

    .drawer-tag-row .lbl {
      display: block;
      font-size: 0.625rem;
      color: var(--text-muted);
      text-transform: uppercase;
      letter-spacing: 0.05em;
      margin-bottom: 6px;
    }

    .drawer-tag-input {
      width: 100%;
      box-sizing: border-box;
      padding: 8px 10px;
      border: 1px solid var(--border);
      border-radius: 8px;
      background: rgba(255, 255, 255, 0.04);
      color: var(--text);
      font-size: 0.8125rem;
      font-family: inherit;
    }

    .drawer-tag-input:focus {
      outline: none;
      border-color: rgba(139, 157, 255, 0.4);
      background: rgba(255, 255, 255, 0.06);
    }

    .drawer-section-title {
      font-size: 0.8125rem;
      font-weight: 600;
      margin: 12px 0 8px;
      padding-left: 0;
      color: var(--text-muted);
    }

    .drawer-note {
      font-size: 0.75rem;
      color: var(--text-muted);
      margin: 0 0 8px;
    }

    @media (max-width: 560px) {
      .drawer-summary,
      .drawer-summary-secondary,
      .drawer-profile-grid,
      .drawer-hero-grid,
      .drawer-top3-list,
      .drawer-hero-right {
        grid-template-columns: 1fr;
        grid-template-rows: none;
      }
    }

    .drawer-note {
      font-size: 0.75rem;
      color: var(--text-muted);
      margin-bottom: 8px;
    }

    /* ── CA / 用户查询弹窗 ── */
    .modal-ca-holders,
    .modal.modal-ca-holders,
    .modal-user-lookup,
    .modal.modal-user-lookup {
      width: min(98vw, 1200px);
      max-width: min(98vw, 1200px);
      max-height: min(92vh, 920px);
      display: flex;
      flex-direction: column;
    }

    .modal.modal-ca-holders .modal-head,
    .modal.modal-user-lookup .modal-head {
      padding: 22px 28px 14px;
    }

    .modal.modal-ca-holders .modal-body,
    .modal.modal-user-lookup .modal-body {
      padding: 20px 28px;
    }

    .modal.modal-ca-holders .modal-foot,
    .modal.modal-user-lookup .modal-foot {
      padding: 14px 28px 20px;
    }

    .modal-query-body {
      flex: 1;
      min-height: 0;
      max-height: min(72vh, 760px);
      overflow: auto;
    }

    .modal-query-form-row {
      display: flex;
      gap: 12px;
      align-items: flex-end;
      margin-bottom: 4px;
    }

    .modal-query-form-row .btn-start {
      flex: 0 0 auto;
      min-width: 96px;
      white-space: nowrap;
    }

    .modal-query-field {
      flex: 1;
      min-width: 0;
      display: flex;
      flex-direction: column;
      gap: 6px;
    }

    .modal-query-field .ca-holders-input,
    .modal-query-field .user-lookup-input {
      width: 100%;
    }

    .modal-query-label {
      font-size: 0.75rem;
      color: var(--text-muted);
    }

    .modal-query-foot {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      flex-shrink: 0;
    }

    .lookup-modal-toast {
      flex: 1;
      font-size: 0.8125rem;
      color: var(--buy);
      min-height: 1.25rem;
    }

    .lookup-modal-toast[hidden] {
      display: none;
    }

    .modal-ca-holders .ca-holders-table-wrap {
      overflow-x: auto;
    }

    .modal-ca-holders .ca-holders-table-head,
    .modal-ca-holders .ca-holders-row {
      min-width: 720px;
    }

    .modal-ca-holders .ca-holders-list {
      max-height: none;
    }

    .modal-user-lookup .user-lookup-result {
      margin-top: 16px;
    }

    .modal-user-lookup .user-lookup-top-trades {
      flex-wrap: nowrap;
      overflow-x: auto;
      overflow-y: hidden;
    }

    .modal-user-lookup .user-lookup-trade-card {
      flex: 0 0 auto;
      width: 168px;
      min-width: 168px;
      max-width: none;
    }

    .modal-user-lookup .user-lookup-json {
      max-height: min(36vh, 360px);
    }

    .fw-toast {
      position: fixed;
      left: 50%;
      bottom: 28px;
      transform: translateX(-50%) translateY(12px);
      z-index: 3000;
      padding: 10px 16px;
      border-radius: 10px;
      background: rgba(18, 22, 36, 0.96);
      border: 1px solid rgba(139, 157, 255, 0.35);
      color: var(--text-primary);
      font-size: 0.8125rem;
      font-weight: 600;
      box-shadow: 0 8px 28px rgba(0, 0, 0, 0.45);
      opacity: 0;
      pointer-events: none;
      transition: opacity 0.18s ease, transform 0.18s ease;
    }

    .fw-toast.show {
      opacity: 1;
      transform: translateX(-50%) translateY(0);
    }

/* ═══════════════════════════════════════════
   Terminal style + banner 鼠标右上角预览
   （对齐 rhtrenches：JetBrains Mono + 高对比 + tabular-nums）
   ═══════════════════════════════════════════ */
:root {
  --bg-deep: #000000;
  --bg: #000000;
  --surface: #0a0a0a;
  --surface-solid: #0a0a0a;
  --surface-hover: #121212;
  --border: #222222;
  --border-strong: #333333;
  --text: #d8d8d8;
  --text-secondary: #a0a0a0;
  --text-muted: #7a7a7a;
  --accent: #5fd7ff;
  --accent-bright: #8be0ff;
  --accent-glow: transparent;
  --buy: #5ff05f;
  --buy-bg: rgba(95, 240, 95, 0.12);
  --sell: #ff5c5c;
  --sell-bg: rgba(255, 92, 92, 0.12);
  --warn: #e5e500;
  --radius: 4px;
  --radius-sm: 4px;
  --shadow: none;
  --font: "JetBrains Mono", Menlo, ui-monospace, SFMono-Regular, Consolas, monospace;
  --mono: "JetBrains Mono", Menlo, ui-monospace, SFMono-Regular, Consolas, monospace;
}
.bg-layer,
.grid-overlay { display: none !important; }
body {
  font-family: var(--font) !important;
  font-size: 12px !important;
  line-height: 1.4 !important;
  font-variant-numeric: tabular-nums !important;
  -webkit-font-smoothing: antialiased !important;
  text-rendering: optimizeLegibility !important;
  background: #000 !important;
  color: var(--text) !important;
}
.app {
  max-width: 1440px !important;
  margin: 0 auto !important;
  padding: 0 12px !important;
}
.topbar {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  padding: 8px 0 !important;
  gap: 6px !important;
  border-bottom: 1px solid var(--border);
}
.topbar-row {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 8px !important;
  min-width: 0 !important;
  width: 100% !important;
}
.topbar-row-main .topbar-left {
  display: flex !important;
  align-items: center !important;
  flex-wrap: nowrap !important;
  gap: 10px 14px !important;
  min-width: 0 !important;
  flex: 1 1 auto !important;
}
.topbar-row-main .topbar-right {
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  justify-content: flex-end !important;
  gap: 8px 10px !important;
  flex: 1 1 auto !important;
  min-width: 0 !important;
}
.auto-chg-sort {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
}
.alerted-pin-opt {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  cursor: pointer !important;
  color: var(--text) !important;
  user-select: none !important;
  white-space: nowrap !important;
  font-size: 11px !important;
  line-height: 1.2 !important;
}
.alerted-pin-opt input,
.auto-chg-sort-opt input,
input.topbar-check {
  -webkit-appearance: none !important;
  appearance: none !important;
  width: 14px !important;
  height: 14px !important;
  min-width: 14px !important;
  min-height: 14px !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 1px solid #8a8a8a !important;
  border-radius: 3px !important;
  background-color: #2a2a2a !important;
  background-image: none !important;
  box-shadow: none !important;
  color: transparent !important;
  cursor: pointer !important;
  accent-color: #1a9eb2 !important;
}
.alerted-pin-opt input:hover,
.auto-chg-sort-opt input:hover,
input.topbar-check:hover {
  border-color: #1a9eb2 !important;
  background-color: #333 !important;
}
.alerted-pin-opt input:checked,
.auto-chg-sort-opt input:checked,
input.topbar-check:checked {
  border-color: #1a9eb2 !important;
  background-color: #1a9eb2 !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M2.2 6.2l2.4 2.4 5.2-5.2'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 10px 10px !important;
}
.alerted-pin-opt:has(input:checked),
.auto-chg-sort-opt:has(input:checked) {
  color: #1a9eb2 !important;
  font-weight: 700 !important;
}
.auto-chg-sort-label {
  color: var(--text) !important;
  white-space: nowrap !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  line-height: 1.2 !important;
}
.auto-chg-sort-opt {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  cursor: pointer !important;
  color: var(--text) !important;
  user-select: none !important;
  white-space: nowrap !important;
  font-size: 11px !important;
  line-height: 1.2 !important;
}
.brand-mark {
  width: 22px !important;
  height: 22px !important;
  border-radius: 3px !important;
  font-size: 10px !important;
  box-shadow: none !important;
  background: #0a0a0a !important;
  color: var(--accent) !important;
  padding: 2px !important;
  overflow: hidden !important;
}
.brand-mark-img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center !important;
  display: block !important;
}
.brand h1 {
  font-size: 13px !important;
  font-weight: 700 !important;
  color: var(--text) !important;
}
.brand-text {
  display: flex !important;
  align-items: baseline !important;
  flex-wrap: wrap !important;
  gap: 8px 10px !important;
}
.home-link,
.home-link:link,
.home-link:visited,
.home-link:active {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  height: auto !important;
  padding: 0 !important;
  border: none !important;
  border-radius: 0 !important;
  background: transparent !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  color: #939090 !important;
  text-decoration: none !important;
  letter-spacing: 0.01em !important;
  white-space: nowrap !important;
  box-sizing: border-box !important;
}
.home-link:hover,
.home-link:focus,
.home-link:visited:hover {
  color: #4bffb3 !important;
  text-decoration: underline !important;
  background: transparent !important;
  border: none !important;
}
.home-link-icon {
  display: block !important;
  flex-shrink: 0 !important;
  color: inherit !important;
  fill: currentColor !important;
}
.home-link:hover .home-link-icon {
  color: inherit !important;
}
.brand-text .watch-token-count {
  font-size: 11px !important;
  font-weight: 500 !important;
  color: var(--text-muted) !important;
}
.brand-text .watch-token-count strong {
  color: var(--text) !important;
  font-weight: 700 !important;
}
.topbar .topbar-ws-toggle {
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px !important;
  margin-left: 0 !important;
  box-sizing: border-box !important;
  width: 92px !important;
  min-width: 92px !important;
  max-width: 92px !important;
  height: 26px !important;
  padding: 0 7px !important;
  border-radius: 4px !important;
  border: 1px solid var(--border) !important;
  background: #0a0a0a !important;
  font-size: 11px !important;
  cursor: pointer;
  overflow: hidden !important;
}
.topbar .topbar-ws-toggle .control-ws-text {
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em !important;
  color: var(--text) !important;
  text-transform: none !important;
}
.topbar .topbar-ws-toggle .control-ws-status {
  font-size: 11px !important;
  min-width: 1.6em !important;
  max-width: 1.6em !important;
  text-align: left !important;
  color: var(--text-muted) !important;
  overflow: hidden !important;
}
.topbar .topbar-ws-toggle .control-ws-status.is-on {
  color: #22c55e !important;
}
.topbar .topbar-ws-toggle .control-ws-status.is-err {
  color: #ef4444 !important;
}
.topbar .topbar-ws-toggle .ws-spin {
  display: none !important;
  width: 11px !important;
  height: 11px !important;
  border-radius: 50% !important;
  flex-shrink: 0 !important;
  box-sizing: border-box !important;
}
.topbar .topbar-ws-toggle[data-state="loading"] .ws-spin {
  display: inline-block !important;
  background: conic-gradient(
    #4bffb3 35%,
    rgba(148, 163, 184, 0.25) 0
  ) !important;
  -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 2px), #000 0) !important;
  mask: radial-gradient(farthest-side, transparent calc(100% - 2px), #000 0) !important;
  animation: bn-mcap-spin 1.1s linear infinite !important;
}
.topbar .topbar-ws-toggle[data-state="loading"] .control-ws-status {
  color: var(--text-muted) !important;
}
.topbar .topbar-ws-toggle[data-state="loading"] .control-ws-track {
  opacity: 0.55 !important;
}
.topbar .control-bar { display: none !important; }

.status-pill,
.bn-mcap-pill {
  padding: 4px 8px !important;
  border-radius: 4px !important;
  font-size: 11px !important;
  backdrop-filter: none !important;
  background: #0a0a0a !important;
  color: var(--text) !important;
  border: 1px solid var(--border) !important;
}
.bn-mcap-pill {
  width: 158px !important;
  max-width: 158px !important;
  min-width: 158px !important;
  flex: 0 0 158px !important;
  gap: 5px !important;
  padding: 3px 7px !important;
  cursor: pointer !important;
}
.fdv-update-interval {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--text) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  line-height: 1.2 !important;
  white-space: nowrap !important;
  flex-shrink: 0 !important;
  user-select: none !important;
  cursor: text !important;
}
.fdv-update-interval-input {
  width: 2.4rem !important;
  min-width: 2.4rem !important;
  height: 18px !important;
  margin: 0 !important;
  padding: 0 2px !important;
  border: 1px solid #8a8a8a !important;
  border-radius: 3px !important;
  background: #2a2a2a !important;
  color: var(--text) !important;
  font: inherit !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  font-variant-numeric: tabular-nums !important;
  text-align: center !important;
  outline: none !important;
  -moz-appearance: textfield !important;
  appearance: textfield !important;
}
.fdv-update-interval-input::-webkit-outer-spin-button,
.fdv-update-interval-input::-webkit-inner-spin-button {
  -webkit-appearance: none !important;
  margin: 0 !important;
}
.fdv-update-interval-input:hover {
  border-color: #1a9eb2 !important;
  background: #333 !important;
}
.fdv-update-interval-input:focus {
  border-color: #1a9eb2 !important;
  background: #333 !important;
  color: #1a9eb2 !important;
}
.bn-mcap-pill[data-state="paused"] {
  border-color: rgba(251, 191, 36, 0.5) !important;
  color: #fbbf24 !important;
}
.bn-mcap-pill[data-state="paused"] .bn-mcap-text {
  color: #fbbf24 !important;
}
.bn-mcap-pill[data-state="paused"] .bn-mcap-icon {
  background: transparent !important;
  border: none !important;
  animation: none !important;
  -webkit-mask: none !important;
  mask: none !important;
}
.bn-mcap-pill[data-state="paused"] .bn-mcap-icon::after {
  content: "⏸" !important;
  font-size: 11px !important;
}
.status-pill {
  flex: 0 1 auto !important;
  width: max-content !important;
  max-width: min(72vw, 760px) !important;
  min-width: 8rem !important;
  overflow: hidden !important;
}
.status-pill #statusText {
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  min-width: 0 !important;
  flex: 0 1 auto !important;
}
.status-dot {
  width: 8px !important;
  height: 8px !important;
  border-radius: 50% !important;
  background: #666 !important;
  flex-shrink: 0 !important;
  box-shadow: none !important;
  animation: none !important;
}
.status-dot.live {
  background: #22c55e !important;
  box-shadow: 0 0 8px rgba(34, 197, 94, 0.55) !important;
  animation: none !important;
}
.status-dot.err {
  background: #ef4444 !important;
  box-shadow: 0 0 8px rgba(239, 68, 68, 0.55) !important;
  animation: none !important;
}
.bn-mcap-icon {
  width: 12px !important;
  height: 12px !important;
}
.bn-mcap-pill[data-state="done"] .bn-mcap-icon {
  width: 14px !important;
  height: 14px !important;
  font-size: 12px !important;
}
.bn-mcap-pill[data-state="done"] .bn-mcap-icon::after {
  content: "✅" !important;
  position: static !important;
  left: auto !important;
  top: auto !important;
  width: auto !important;
  height: auto !important;
  border: none !important;
  transform: none !important;
  font-size: 12px !important;
  line-height: 1 !important;
}
.bn-mcap-bar {
  height: 2px !important;
}
.btn-topbar,
.btn-settings {
  height: 26px !important;
  min-height: 26px !important;
  padding: 0 8px !important;
  border-radius: 4px !important;
  font-size: 11px !important;
  background: #0a0a0a !important;
  color: var(--text) !important;
  backdrop-filter: none !important;
}
.btn-settings { width: 26px !important; padding: 0 !important; color: #e8e8e8 !important; }
.btn-settings-icon {
  width: 14px !important;
  height: 14px !important;
  fill: currentColor !important;
  stroke: none !important;
  color: #e8e8e8 !important;
}
.btn-settings-icon path {
  fill: currentColor !important;
  stroke: none !important;
}
.btn-settings:hover,
.btn-settings:hover .btn-settings-icon {
  color: #ffffff !important;
}
.panel,
.control-bar.panel,
.watch-panel.panel {
  background: #000 !important;
  backdrop-filter: none !important;
  border: 1px solid var(--border) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
}
.control-bar { margin-bottom: 8px !important; }
.control-bar-row { gap: 10px !important; padding: 8px 10px !important; }
.control-filters-row,
.control-add-row { gap: 8px !important; padding: 6px 10px !important; background: transparent !important; }
.control-interval,
.control-poll-row .btn-start,
.control-poll-row .btn-ghost,
.control-auth-input input {
  height: 28px !important;
  border-radius: 4px !important;
  font-size: 11px !important;
  color: var(--text) !important;
}
.control-poll-row .btn-start,
.control-poll-row .btn-ghost {
  width: auto !important;
  min-width: 56px !important;
  max-width: none !important;
  flex: 0 0 auto !important;
  padding: 0 8px !important;
}
.btn-start {
  background: #121212 !important;
  border: 1px solid var(--border-strong) !important;
  color: var(--text) !important;
  box-shadow: none !important;
}
.btn-ghost { background: #0a0a0a !important; border: 1px solid var(--border) !important; color: var(--text) !important; }
input, textarea, select {
  background: #000 !important;
  border: 1px solid var(--border) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  color: var(--text) !important;
  font-family: var(--mono) !important;
  font-variant-numeric: tabular-nums !important;
}
/* Alerted 勾选：盖过上面全局 input 黑底，未勾/已勾都要能看清 */
input.monitor-alerted-check {
  -webkit-appearance: none !important;
  appearance: none !important;
  width: 14px !important;
  height: 14px !important;
  min-width: 14px !important;
  min-height: 14px !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 1px solid #8a8a8a !important;
  border-radius: 3px !important;
  background-color: #2a2a2a !important;
  background-image: none !important;
  box-shadow: none !important;
  color: transparent !important;
  cursor: pointer !important;
}
input.monitor-alerted-check:hover {
  border-color: #1a9eb2 !important;
  background-color: #333 !important;
}
input.monitor-alerted-check:checked {
  border-color: #1a9eb2 !important;
  background-color: #1a9eb2 !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M2.2 6.2l2.4 2.4 5.2-5.2'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 10px 10px !important;
}
.watch-panel { padding: 0 !important; }
.monitor-head-scroll { background: #000 !important; }
.monitor-head,
.monitor-row {
  --monitor-link-col: 2.35rem;
  gap: 4px !important;
  padding: 4px 8px !important;
  min-height: 0 !important;
  min-width: 0 !important;
  width: 100% !important;
  font-variant-numeric: tabular-nums !important;
  /* Symbol 再-5 → No 列+5（右内边距），拉开 No/Time */
  grid-template-columns:
    33px 108px 40px 151px
    6px
    68px 96px 68px 96px 68px 96px
    30px
    repeat(7, var(--monitor-link-col))
    10px
    minmax(48px, 1fr)
    minmax(56px, 1fr)
    58px !important;
}
.monitor-head {
  font-size: 12px !important;
  text-transform: none !important;
  letter-spacing: 0.02em !important;
  min-height: 0 !important;
  padding: 4px 8px !important;
  color: var(--text) !important;
}
.monitor-head .monitor-col,
.monitor-head .monitor-sort-btn {
  font-size: 12px !important;
  font-weight: 500 !important;
  line-height: 1.2 !important;
}
.monitor-item { border-bottom: 1px solid var(--border); }
.monitor-item:hover > .monitor-row,
.monitor-row:hover {
  background: rgba(26, 158, 178, 0.16) !important;
}
.monitor-col-no {
  justify-content: flex-end !important;
  color: var(--text-muted) !important;
  font-size: 12px !important;
  font-variant-numeric: tabular-nums !important;
  padding-right: 5px !important;
  box-sizing: border-box !important;
}
.monitor-head .monitor-col-no {
  color: var(--text) !important;
  font-weight: 500 !important;
}
.monitor-col-time {
  color: var(--text-muted) !important;
  font-size: 11px !important;
  font-variant-numeric: tabular-nums !important;
  white-space: nowrap !important;
}
.monitor-head .monitor-col-time {
  color: var(--text) !important;
  font-weight: 500 !important;
  justify-content: flex-start !important;
  justify-self: start !important;
  text-align: left !important;
}
.monitor-col-icon .monitor-icon-wrap {
  width: 36px !important;
  height: 36px !important;
  border-radius: 4px !important;
  cursor: zoom-in;
}
.monitor-col-icon .monitor-icon-inner {
  border-radius: 4px !important; /* 方一点，别圆形 */
}
.monitor-col-icon .chain-icon-overlay {
  width: 13px !important;
  height: 13px !important;
}
.monitor-col-symbol .monitor-title {
  font-size: 12px !important;
  font-weight: 700 !important;
  color: var(--text) !important;
}
.monitor-pair-tag {
  font-weight: 500 !important;
  color: #1a9eb2 !important;
  font-size: 11px !important;
}
.monitor-col-symbol .monitor-addr {
  color: #939090 !important;
  font-size: 12px !important;
  margin-top: 1px !important;
  display: inline-block !important;
  width: fit-content !important;
  max-width: 100% !important;
}
.monitor-addr-copy {
  cursor: pointer;
}
.monitor-addr-copy:hover {
  color: #4bffb3 !important;
  text-decoration: underline;
}
.monitor-addr-copy.is-copied {
  color: var(--buy) !important;
}
.monitor-col-num,
.monitor-col-link,
.monitor-sort-btn,
.monitor-cell-empty,
.monitor-fdv-now {
  color: var(--text) !important;
}
.monitor-col-num {
  font-size: 12px !important;
  font-variant-numeric: tabular-nums !important;
}
/* 三个 %：加宽在右侧（padding-right 24），避免空白挤在 FDV 与 % 之间 */
.monitor-head [data-sort="currentFdvChg"],
.monitor-head [data-sort="lowestFdvChg"],
.monitor-head [data-sort="pinnedFdvChg"],
.monitor-row [data-col="currentFdvChg"],
.monitor-row [data-col="lowestFdvChg"],
.monitor-row [data-col="pinnedFdvChg"] {
  box-sizing: border-box !important;
  padding-right: 24px !important;
  justify-self: stretch !important;
  width: 100% !important;
  text-align: right !important;
}
.monitor-col-status {
  color: var(--text-secondary) !important;
}
/* 只有涨跌才上色 */
.monitor-fdv-chg-up,
.monitor-fomo-delta-up { color: var(--buy) !important; }
.monitor-fdv-chg-down,
.monitor-fomo-delta-down { color: var(--sell) !important; }
.monitor-fdv-chg-flat,
.monitor-fdv-chg-empty { color: var(--text-muted) !important; }
.monitor-fdv-chg-cell .monitor-fdv-chg {
  font-size: 12px !important;
  font-weight: 700 !important;
}
.monitor-col-header,
.monitor-header-thumb,
.monitor-header-open { display: none !important; }
.btn-block-token {
  font-size: 10px !important;
  padding: 2px 6px !important;
  border-radius: 3px !important;
}
.btn-block-token.is-blocking,
.btn-block-token:disabled {
  color: #fbbf24 !important;
  border-color: rgba(251, 191, 36, 0.45) !important;
  background: rgba(251, 191, 36, 0.12) !important;
  cursor: wait !important;
  pointer-events: none !important;
}
.holders-head,
.holder-row {
  padding: 4px 8px !important;
  margin: 0 !important;
  border-radius: 0 !important;
  border: none !important;
  border-bottom: 1px solid var(--border) !important;
  min-height: 0 !important;
}
.holders-head {
  font-size: 10px !important;
  text-transform: none !important;
  background: #0a0a0a !important;
  color: var(--text) !important;
}
.holder-name { font-size: 12px !important; color: var(--text) !important; }
.holder-sub,
.holders-col-text { font-size: 10px !important; color: var(--text-muted) !important; }
.holders-col-num {
  font-size: 11px !important;
  font-variant-numeric: tabular-nums !important;
  color: var(--text) !important;
}
.modal-holder-detail {
  border-radius: 4px !important;
  box-shadow: none !important;
  background: #000 !important;
}

/* banner 跟随鼠标：右上方（约为原尺寸 2/3） */
.token-media-preview {
  position: fixed;
  z-index: 10000;
  width: min(373px, calc(100vw - 24px));
  pointer-events: none;
}
.token-media-preview[hidden] { display: none !important; }
.token-media-preview-card {
  border: 1px solid var(--border);
  border-radius: 4px;
  background: #000;
  box-shadow: 0 10px 36px rgba(0, 0, 0, 0.55);
  overflow: hidden;
}
.token-media-preview-top {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 4px 6px;
  border-bottom: 1px solid var(--border);
  background: #0a0a0a;
}
.token-media-preview-icon {
  width: 24px;
  height: 24px;
  border-radius: 3px;
  object-fit: cover;
  border: 1px solid var(--border);
  flex-shrink: 0;
}
.token-media-preview-sym {
  font-size: 11px;
  font-weight: 700;
  color: var(--text);
}
.token-media-preview-hint {
  font-size: 9px;
  color: var(--text-muted);
}
.token-media-preview-banner-wrap { display: block; background: #000; }
.token-media-preview-banner {
  display: block;
  width: 100%;
  height: auto;
  max-height: min(24vh, 187px);
  object-fit: contain;
  background: #000;
}

/* Icon 悬停：鼠标右上方 160×160 放大；有 banner 时左 icon + 右 banner 组合 */
.token-icon-zoom {
  position: fixed;
  z-index: 10001;
  width: 160px;
  height: 160px;
  pointer-events: none;
  border-radius: 6px;
  overflow: hidden;
  border: 1px solid var(--border);
  background: #0a0a0a;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.55);
}
.token-icon-zoom[hidden] { display: none !important; }
.token-icon-zoom-icon-box {
  width: 100%;
  height: 100%;
}
.token-icon-zoom .token-icon-zoom-img,
.token-icon-zoom .token-icon-zoom-fallback {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}
.token-icon-zoom .token-icon-zoom-fallback {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 56px;
  font-weight: 700;
  color: var(--text-muted);
  background: #111;
}
.token-icon-zoom .token-icon-zoom-banner {
  display: none;
}
.token-icon-zoom.is-compose {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  width: auto;
  height: 160px;
  max-width: min(720px, calc(100vw - 28px));
  gap: 8px;
  padding: 0;
  background: #fff;
  border-color: rgba(0, 0, 0, 0.12);
}
.token-icon-zoom.is-compose .token-icon-zoom-icon-box {
  flex: 0 0 160px;
  width: 160px;
  height: 160px;
  box-sizing: border-box;
  padding: 10px;
  background: #fff;
}
.token-icon-zoom.is-compose .token-icon-zoom-img,
.token-icon-zoom.is-compose .token-icon-zoom-fallback {
  width: 100%;
  height: 100%;
  border-radius: 14px;
  object-fit: cover;
}
.token-icon-zoom.is-compose .token-icon-zoom-fallback {
  font-size: 48px;
  background: #eee;
  color: #666;
}
.token-icon-zoom.is-compose .token-icon-zoom-banner {
  display: block;
  height: 160px;
  width: auto;
  max-width: min(520px, calc(100vw - 200px));
  object-fit: contain;
  background: #fff;
}

