@layer base, header, gate, fpm, page, footer;
@layer base {/* ===== Trend Core: Base Reset ===== */
*, *::before, *::after { box-sizing: border-box; }
body {
  margin: 0; padding: 0;
  background: #0f172a;
  color: #e2e8f0;
  font-family: "Noto Sans TC", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
}
.screen-reader-text {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* ===== Trend Core: Design Tokens =====
   來源：.claude/skills/trend-core-design/colors_and_type.css
   所有頁面可用 var(--tc-*) 引用；純追加，不覆蓋既有樣式。 */
:root {
  /* Surface / background */
  --tc-bg:            #0f1419;
  --tc-bg-2:          #121720;
  --tc-bg-3:          #1c2128;
  --tc-bg-4:          #1e2126;
  --tc-surface:       rgba(18, 23, 30, 0.88);
  --tc-panel:         rgba(28, 33, 40, 0.88);
  --tc-panel-border:  rgba(60, 72, 90, 0.55);
  --tc-hairline:      rgba(125, 184, 255, 0.18);

  /* Text */
  --tc-fg:            #f5f7f8;
  --tc-fg-strong:     #ffffff;
  --tc-fg-2:          #dce7f2;
  --tc-fg-muted:      #b0b6bd;
  --tc-fg-dim:        #94a3b8;

  /* Brand — Mint (primary accent) */
  --tc-mint-50:       #e6fffb;
  --tc-mint-100:      #c9fff5;
  --tc-mint-200:      #aaf9eb;
  --tc-mint-300:      #72f2de;
  --tc-mint-400:      #22cfc1;
  --tc-mint-500:      #1ab9a8;
  --tc-mint-600:      #14a091;
  --tc-mint-700:      #05312d;

  /* Brand — Data Blue (secondary) */
  --tc-blue-100:      #cfe4ff;
  --tc-blue-200:      #b8d8ff;
  --tc-blue-300:      #8df3e6;
  --tc-blue-400:      #7db8ff;
  --tc-blue-500:      #5ea6ff;
  --tc-blue-600:      #3e8dea;

  /* Semantic */
  --tc-success:       #34d399;
  --tc-warn:          #facc15;
  --tc-error:         #fb7185;
  --tc-gold-400:      #ffd700;
  --tc-gold-500:      #ffb347;
  --tc-up:            #34d399;
  --tc-down:          #fb7185;
  --tc-flat:          #94a3b8;

  /* Aliases */
  --tc-accent:        var(--tc-mint-300);
  --tc-accent-2:      var(--tc-blue-400);
  --tc-border:        var(--tc-panel-border);
  --tc-border-soft:   var(--tc-hairline);

  /* Gradients */
  --tc-grad-primary:       linear-gradient(135deg, #72f2de 0%, #1ab9a8 100%);
  --tc-grad-primary-hover: linear-gradient(135deg, #aaf9eb 0%, #1aa89d 100%);
  --tc-grad-lifetime:      linear-gradient(135deg, #ffd700 0%, #ffb347 100%);
  --tc-grad-divider:       linear-gradient(90deg, rgba(125,184,255,0), rgba(125,184,255,0.38), rgba(136,200,185,0));

  /* Typography */
  --tc-font-sans:    "Noto Sans TC", "Segoe UI", system-ui, -apple-system, sans-serif;
  --tc-font-display: "Space Grotesk", "Noto Sans TC", system-ui, sans-serif;
  --tc-font-mono:    "JetBrains Mono", ui-monospace, "Roboto Mono", Menlo, monospace;

  --tc-size-display: clamp(2.1rem, 4.4vw, 3.1rem);
  --tc-size-h1:      clamp(1.8rem, 3.2vw, 2.3rem);
  --tc-size-h2:      clamp(1.45rem, 2.8vw, 1.95rem);
  --tc-size-h3:      1.25rem;
  --tc-size-h4:      1.1rem;
  --tc-size-lead:    clamp(1.12rem, 2.1vw, 1.3rem);
  --tc-size-body:    1rem;
  --tc-size-body-sm: 0.92rem;
  --tc-size-micro:   0.82rem;
  --tc-size-kicker:  0.78rem;

  --tc-weight-regular: 400;
  --tc-weight-medium:  500;
  --tc-weight-semi:    600;
  --tc-weight-bold:    700;
  --tc-weight-heavy:   900;

  --tc-lh-tight: 1.12;
  --tc-lh-head:  1.2;
  --tc-lh-snug:  1.4;
  --tc-lh-body:  1.6;
  --tc-lh-loose: 1.75;

  --tc-track-kicker: 0.08em;
  --tc-track-tight:  -0.01em;

  /* Spacing (4px base) */
  --tc-space-1:  4px;
  --tc-space-2:  8px;
  --tc-space-3:  12px;
  --tc-space-4:  16px;
  --tc-space-5:  20px;
  --tc-space-6:  24px;
  --tc-space-8:  32px;
  --tc-space-10: 40px;
  --tc-space-12: 48px;
  --tc-space-14: 56px;
  --tc-space-16: 64px;
  --tc-space-20: 80px;

  /* Radii */
  --tc-radius-sm:   6px;
  --tc-radius-md:   12px;
  --tc-radius-lg:   18px;
  --tc-radius-xl:   22px;
  --tc-radius-2xl:  28px;
  --tc-radius-pill: 999px;

  /* Shadows */
  --tc-shadow-card:    0 12px 28px rgba(8, 12, 18, 0.40);
  --tc-shadow-card-hi: 0 18px 38px rgba(10, 18, 26, 0.50);
  --tc-shadow-hero:    0 28px 68px rgba(12, 18, 24, 0.55);
  --tc-shadow-cta:     0 16px 40px rgba(26, 185, 168, 0.32);
  --tc-shadow-cta-hi:  0 22px 52px rgba(58, 217, 203, 0.33);
  --tc-shadow-lift:    0 16px 38px rgba(10, 16, 22, 0.42);
  --tc-inner-sheen:    inset 0 1px 0 rgba(255, 255, 255, 0.06);

  /* Motion */
  --tc-ease:     cubic-bezier(0.2, 0.8, 0.2, 1);
  --tc-ease-out: cubic-bezier(0, 0, 0.2, 1);
  --tc-dur-xs:   120ms;
  --tc-dur-sm:   180ms;
  --tc-dur-md:   250ms;
  --tc-dur-lg:   400ms;

  /* Layout */
  --tc-container:     min(1280px, 94vw);
  --tc-stack-section: 56px;
}

/* ============================================================
   In-page ticker switcher (CC / CSP / Wheel / 個股頁)
   讓使用者在同類型頁面間切換 ticker，不必回 hub 或改 URL
   ============================================================ */
.tc-page-search {
  display: inline-flex;
  align-items: stretch;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.4);
  border-radius: 999px;
  overflow: hidden;
  transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
  font-family: inherit;
}
.tc-page-search:focus-within {
  border-color: rgba(255, 255, 255, 0.8);
  background: rgba(255, 255, 255, 0.12);
  box-shadow: 0 4px 14px rgba(255, 255, 255, 0.15);
}
.tc-page-search-input {
  appearance: none;
  background: transparent;
  border: 0;
  outline: 0;
  color: #ffffff;
  font: inherit;
  font-size: 0.85rem;
  font-weight: 600;
  padding: 6px 4px 6px 14px;
  width: 110px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.tc-page-search-input::placeholder {
  color: rgba(255, 255, 255, 0.55);
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
}
.tc-page-search-input[aria-invalid="true"] {
  color: #fb7185;
}
.tc-page-search-btn {
  appearance: none;
  background: transparent;
  border: 0;
  color: #ffffff;
  cursor: pointer;
  padding: 0 14px;
  font-size: 0.85rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: color 0.2s ease, background 0.2s ease;
  font-family: inherit;
}
.tc-page-search-btn:hover,
.tc-page-search-btn:focus-visible {
  color: #ffffff;
  background: rgba(255, 255, 255, 0.2);
  outline: none;
}
@media (max-width: 480px) {
  .tc-page-search-input { width: 88px; padding-left: 12px; }
  .tc-page-search-btn { padding: 0 11px; }
}
} @layer header {/* ===== Trend Core: Header Styles =====
   ⚠️ 同時被 CF Workers (build.py) 和 Astro Blog (sync-header.mjs) 使用。
   修改後兩邊在各自 build 時自動同步。
===== */
.tch-header {
  position: sticky; top: 0; z-index: 40;
  background: #0b1119;
  backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(125,184,255,0.18);
  font-family: "Noto Sans TC","Segoe UI",Roboto,sans-serif;
}
.tch-header * { box-sizing: border-box; }
.tch-header__inner {
  width: min(1380px,96vw); margin: 0 auto;
  display: flex; align-items: center; justify-content: space-between;
  gap: 20px; padding: 14px 0;
}
.tch-header__brand { display: flex; align-items: center; gap: 16px; }
.tch-header__logo {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 6px 12px; border-radius: 999px; text-decoration: none;
  color: var(--accent-color,#7db8ff);
  background: rgba(125,184,255,0.14);
  border: 1px solid rgba(125,184,255,0.25);
  font-weight: 600; letter-spacing: 0.04em;
}
.tch-header__logo-mark {
  width: 30px; height: 30px; display: inline-block;
  background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMCAzMCI+CjxkZWZzPgogIDxsaW5lYXJHcmFkaWVudCBpZD0idHJpIiB4MT0iMCUiIHkxPSIwJSIgeDI9IjAlIiB5Mj0iMTAwJSI+CiAgICA8c3RvcCBvZmZzZXQ9IjAlIiBzdG9wLWNvbG9yPSIjYzlmZmY1Ii8+CiAgICA8c3RvcCBvZmZzZXQ9IjYwJSIgc3RvcC1jb2xvcj0iIzZlZjBkZCIvPgogICAgPHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjMWFiOWE4Ii8+CiAgPC9saW5lYXJHcmFkaWVudD4KICA8ZmlsdGVyIGlkPSJvdXRlckdsb3ciIHg9Ii0yMDAlIiB5PSItMjAwJSIgd2lkdGg9IjQwMCUiIGhlaWdodD0iNDAwJSI+CiAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIzIiByZXN1bHQ9ImJsdXIiLz4KICAgIDxmZUNvbG9yTWF0cml4IGluPSJibHVyIiB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAwLjEwNiAgMCAwIDAgMCAwLjc1ICAwIDAgMCAwIDAuNjgyICAwIDAgMCAxIDAiLz4KICA8L2ZpbHRlcj4KICA8ZmlsdGVyIGlkPSJpbm5lckdsb3ciIHg9Ii0yMDAlIiB5PSItMjAwJSIgd2lkdGg9IjQwMCUiIGhlaWdodD0iNDAwJSI+CiAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIxLjQiIHJlc3VsdD0iYmx1ciIvPgogICAgPGZlQ29sb3JNYXRyaXggaW49ImJsdXIiIHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwIDAgMCAwIDAuNDMgIDAgMCAwIDAgMC45MyAgMCAwIDAgMCAwLjg2ICAwIDAgMCAwLjkgMCIvPgogIDwvZmlsdGVyPgo8L2RlZnM+CjxnIGZpbHRlcj0idXJsKCNvdXRlckdsb3cpIj4KICA8cGF0aCBkPSJNMTUgNiBMNS43IDIzLjYgSDI0LjMgWiIgZmlsbD0iIzIyY2ZjMSIgZmlsbC1vcGFjaXR5PSIwLjM1Ii8+CjwvZz4KPGcgZmlsdGVyPSJ1cmwoI2lubmVyR2xvdykiPgogIDxwYXRoIGQ9Ik0xNSA2IEw2LjMgMjMgSDIzLjcgWiIgZmlsbD0iIzg2ZjVlNyIgZmlsbC1vcGFjaXR5PSIwLjY1Ii8+CjwvZz4KPHBhdGggZD0iTTE1IDYgTDYgMjQgSDI0IFoiIGZpbGw9InVybCgjdHJpKSIvPgo8L3N2Zz4=');
  background-repeat: no-repeat; background-position: center; background-size: contain;
}
.tch-header__logo-text { font-size: 1rem; color: #fff; }
.tch-header__toggle {
  display: none; flex-direction: column; gap: 5px; padding: 8px;
  border: 1px solid rgba(125,184,255,0.32); border-radius: 10px;
  background: rgba(12,18,24,0.9); cursor: pointer;
  transition: transform 0.2s ease, border-color 0.2s ease;
}
.tch-header__toggle:hover, .tch-header__toggle:focus-visible {
  transform: translateY(-1px); border-color: rgba(125,184,255,0.55); outline: none;
}
.tch-header__toggle-bar {
  width: 24px; height: 2px; background: #fff; border-radius: 999px;
  transition: transform 0.25s ease, opacity 0.25s ease;
}
.tch-header__toggle.is-active .tch-header__toggle-bar:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.tch-header__toggle.is-active .tch-header__toggle-bar:nth-child(2) { opacity: 0; }
.tch-header__toggle.is-active .tch-header__toggle-bar:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.tch-header__nav {
  display: flex; align-items: center; justify-content: flex-start;
  gap: 18px; flex: 1; min-width: 0;
}
.tch-header__menu {
  list-style: none; margin: 0; padding: 0;
  display: flex; align-items: center; gap: 18px;
  flex: 1 1 auto; justify-content: flex-start; min-width: 0;
}
.tch-header__menu-item { position: relative; }
.tch-header__menu-link, .tch-header__menu a {
  color: #dde2ea; text-decoration: none; font-size: 0.98rem; font-weight: 500;
  padding: 6px 10px; border-radius: 999px;
  transition: color 0.2s ease, background 0.2s ease;
  background: transparent; display: inline-flex; align-items: center;
  gap: 6px; white-space: nowrap;
}
.tch-header__menu-link { border: none; cursor: pointer; font-family: inherit; }
.tch-header__menu-link i, .tch-header__submenu-link i { font-size: 0.9rem; line-height: 1; }
.tch-header__menu-icon, .tch-header__submenu-icon {
  width: 15px; height: 15px; flex-shrink: 0;
  fill: currentColor; stroke: none; transform: translateY(1px);
}
.tch-header__search-icon {
  width: 16px; height: 16px; flex-shrink: 0;
  fill: none; stroke: currentColor; stroke-width: 2;
  stroke-linecap: round; stroke-linejoin: round;
}
.tch-header__menu a:hover, .tch-header__menu a:focus-visible {
  color: #fff; background: rgba(255,255,255,0.08); outline: none;
}
.tch-header__menu-toggle:focus-visible, .tch-header__menu-toggle:hover {
  color: #fff; background: rgba(255,255,255,0.08); outline: none;
}
.tch-header__menu-link--active {
  color: #fff; background: rgba(125,184,255,0.15);
}
.tch-header__caret {
  width: 8px; height: 8px;
  border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
  transform: rotate(45deg); transition: transform 0.2s ease; margin-top: -3px;
}
.tch-header__menu-item.is-open > .tch-header__menu-toggle .tch-header__caret {
  transform: rotate(-135deg); margin-top: 3px;
}
.tch-header__actions {
  display: inline-flex; align-items: center; gap: 12px;
  margin-left: auto; flex: 0 1 auto; min-width: 0;
}
.tch-header__search {
  display: flex; align-items: center; padding: 0 4px 0 14px;
  min-height: 36px; border-radius: 10px;
  border: 1px solid rgba(92,227,210,0.45);
  background: rgba(9,14,22,0.65); position: relative;
  transition: border-color 0.25s ease, background 0.25s ease, box-shadow 0.25s ease;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,0.35);
  width: clamp(150px,18vw,240px); min-width: 150px;
  flex: 0 1 clamp(150px,18vw,240px);
}
.tch-header__search-btn {
  display: inline-flex; align-items: center; justify-content: center;
  background: transparent; border: none; color: #8fe8dc;
  padding: 0 10px; cursor: pointer;
  transition: color 0.2s ease; height: 100%; font-size: 0.9rem; opacity: 0.9;
}
.tch-header__search-btn:hover, .tch-header__search-btn:focus-visible {
  color: #fff; opacity: 1; outline: none;
}
.tch-header__search-input {
  flex: 1; background: transparent !important; border: none !important;
  box-shadow: none !important; color: #f1f7ff; min-width: 0; width: 100%;
  font-size: 0.94rem; outline: none; padding: 0; height: 100%;
}
.tch-header__search-input::placeholder { color: #fff; }
.tch-header__search:focus-within {
  border-color: rgba(92,227,210,0.9);
  background: rgba(6,10,16,0.92);
  box-shadow: 0 0 0 2px rgba(92,227,210,0.25);
}
.tch-header__submenu {
  list-style: none; margin: 0; padding: 12px;
  position: absolute; top: 100%; left: 0; min-width: 190px;
  background: rgba(14,21,30,0.96);
  border: 1px solid rgba(125,184,255,0.22);
  border-radius: 12px;
  box-shadow: 0 18px 38px rgba(5,16,31,0.38);
  display: grid; gap: 6px;
  opacity: 0; transform: translateY(10px); pointer-events: none;
  transition: opacity 0.2s ease, transform 0.2s ease; z-index: 50;
}
.tch-header__submenu-link {
  display: inline-flex; align-items: center; gap: 8px;
  color: #dde2ea; padding: 6px 10px; border-radius: 8px;
  font-size: 0.94rem; transition: color 0.2s ease, background 0.2s ease;
  text-decoration: none;
}
.tch-header__submenu-link:hover, .tch-header__submenu-link:focus-visible {
  color: #fff; background: rgba(255,255,255,0.08); outline: none;
}
/* 佔位項（如「台股功能新增中」）：不可點、不吃 hover */
.tch-header__submenu-link--disabled,
.tch-header__submenu-link--disabled:hover {
  color: #7b8494; background: none; cursor: default; font-style: italic;
}
/* Mega-menu (multi-column dropdown) */
.tch-header__mega {
  position: absolute; top: 100%; left: 50%; transform: translateX(-50%) translateY(10px);
  display: flex; gap: 0; min-width: 340px;
  background: rgba(14,21,30,0.97);
  border: 1px solid rgba(125,184,255,0.22);
  border-radius: 14px;
  box-shadow: 0 20px 44px rgba(5,16,31,0.45);
  padding: 20px 8px;
  opacity: 0; pointer-events: none;
  transition: opacity 0.2s ease, transform 0.2s ease;
  z-index: 50;
}
.tch-header__menu-item--mega.is-open > .tch-header__mega,
.tch-header__menu-item--mega:hover > .tch-header__mega,
.tch-header__menu-item--mega:focus-within > .tch-header__mega {
  opacity: 1; transform: translateX(-50%) translateY(0); pointer-events: auto;
}
.tch-header__mega-col {
  flex: 1; min-width: 150px; padding: 0 16px;
  border-right: 1px solid rgba(125,184,255,0.10);
}
.tch-header__mega-col:last-child { border-right: none; }
.tch-header__mega-heading {
  display: block; font-size: 0.82rem; font-weight: 700;
  letter-spacing: 0.04em; margin-bottom: 10px; padding: 0 10px;
  user-select: none;
}
.tch-header__mega-heading--signal { color: #5ce3d2; }
.tch-header__mega-heading--lab { color: #c9a0ff; }
.tch-header__mega-heading--network { color: #ffd166; }
.tch-header__mega-list {
  list-style: none; margin: 0; padding: 0;
  display: grid; gap: 4px;
}
.tch-header__menu-item--has-children:hover > .tch-header__submenu,
.tch-header__menu-item--has-children:focus-within > .tch-header__submenu,
.tch-header__menu-item.is-open > .tch-header__submenu {
  opacity: 1; transform: translateY(0); pointer-events: auto;
}
.tch-header__cta-wrap { display: flex; align-items: center; gap: 10px; }
/* FB login button (FB/IG webview only) */
.tch-header__fb-login { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border-radius: 6px; background: #1877F2; color: #fff; font-size: 0.9rem; font-weight: 600; text-decoration: none; white-space: nowrap; }
.tch-header__fb-login:hover { background: #166fe0; }
/* User menu (logged in state) */
.tc-user-menu { display: flex; align-items: center; gap: 8px; }
.tc-user-avatar { width: 32px; height: 32px; border-radius: 50%; border: 2px solid rgba(255,255,255,0.3); }
.tc-user-name { color: #e8eef8; font-size: 0.9rem; font-weight: 500; max-width: 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.tch-header__cta-wrap--multi { flex-wrap: wrap; justify-content: flex-start; }
.tch-header__cta {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 8px 4px; border-radius: 8px; background: transparent;
  color: #e8eef8; font-weight: 600; text-decoration: none;
  font-size: 0.96rem; transition: color 0.2s ease; white-space: nowrap;
}
.tch-header__cta:hover, .tch-header__cta:focus-visible { color: #fff; outline: none; }
.tch-header__cta--outline {
  padding: 10px 20px; border-radius: 999px; background: transparent;
  border: 1px solid rgba(90,226,210,0.7); color: #8df3e6;
}
.tch-header__cta--outline:hover, .tch-header__cta--outline:focus-visible {
  background: rgba(90,226,210,0.18); border-color: rgba(58,217,203,0.45); color: #fff;
}
.tch-header__cta--link { padding: 0; gap: 6px; color: #e8eef8; }
.tch-header__cta--link:hover, .tch-header__cta--link:focus-visible { color: #fff; }

/* Responsive header: 1360px */
@media (max-width: 1360px) {
  .tch-header__inner { width: min(1260px,96vw); gap: 14px; }
  .tch-header__menu { gap: 12px; }
  .tch-header__menu-link, .tch-header__menu a { font-size: 0.94rem; padding: 6px 8px; }
  .tch-header__actions { gap: 8px; }
  .tch-header__search { width: clamp(128px,14vw,190px); min-width: 128px; flex: 0 1 clamp(128px,14vw,190px); }
}

/* Responsive header: 960px (hamburger) */
@media (max-width: 960px) {
  .tch-header__toggle { display: inline-flex; }
  .tch-header__nav {
    position: absolute; top: 100%; right: 0; left: 0;
    display: grid; gap: 16px;
    background: rgba(10,15,22,0.96);
    padding: 18px clamp(16px,5vw,26px) 24px;
    transform-origin: top; transform: scaleY(0);
    opacity: 0; visibility: hidden;
    transition: transform 0.25s ease, opacity 0.25s ease;
  }
  .tch-header__nav.is-open { transform: scaleY(1); opacity: 1; visibility: visible; }
  .tch-header__menu { flex-direction: column; align-items: flex-start; gap: 12px; }
  .tch-header__menu-link, .tch-header__menu a {
    font-size: 1.05rem; padding: 10px 14px; width: 100%; justify-content: space-between;
  }
  .tch-header__menu-item { width: 100%; }
  .tch-header__submenu {
    position: static; transform: none; opacity: 1; pointer-events: auto;
    margin: 8px 0 0; width: 100%; padding: 12px 14px;
    background: rgba(10,15,22,0.85); display: none;
  }
  .tch-header__mega {
    position: static; transform: none; flex-direction: column;
    min-width: 0; width: 100%; padding: 12px 14px;
    background: rgba(10,15,22,0.85); border-radius: 12px;
    opacity: 1; pointer-events: auto; display: none;
    border: 1px solid rgba(125,184,255,0.12);
    box-shadow: none; gap: 12px;
  }
  .tch-header__menu-item--mega.is-open > .tch-header__mega {
    display: flex; transform: none;
  }
  .tch-header__mega-col { border-right: none; padding: 0; }
  .tch-header__mega-heading { font-size: 0.78rem; margin-bottom: 6px; }
  .tch-header__mega-list .tch-header__submenu-link { padding: 8px 10px; width: 100%; }
  .tch-header__menu-item.is-open > .tch-header__submenu { display: grid; }
  .tch-header__submenu-link { padding: 8px 10px; width: 100%; }
  .tch-header__actions {
    width: 100%; flex-direction: column; align-items: stretch; gap: 12px;
  }
  .tch-header__search {
    width: 100%; padding: 0 14px 0 34px; min-height: 42px;
    background: rgba(25,30,40,0.85); min-width: 0; flex: 1 1 auto;
  }
  .tch-header__search-input {
    width: 100%; min-width: 0;
    background: transparent !important; border: none !important; box-shadow: none !important;
  }
  .tch-header__cta-wrap { justify-content: flex-start; width: 100%; gap: 10px; flex-wrap: wrap; }
  .tch-header__inner { position: relative; }
}
} @layer gate {/* ===== Trend Core: Gate & Floating CTA Styles ===== */

/* Gate overlay */
.tc-gate {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 50vh;
  padding: 40px 20px;
}
.tc-gate-inner {
  max-width: 520px;
  text-align: center;
  background: linear-gradient(165deg, #1e293b 0%, #0f172a 100%);
  border: 1px solid rgba(148, 163, 184, 0.15);
  border-radius: 16px;
  padding: 48px 40px;
  box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.5);
}
.tc-gate-title {
  font-size: 1.5rem;
  font-weight: 700;
  color: #f8fafc;
  margin: 0 0 12px;
}
.tc-gate-lead {
  font-size: 1.05rem;
  color: #94a3b8;
  line-height: 1.6;
  margin: 0 0 24px;
}
.tc-gate-actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.tc-gate-btn {
  display: inline-block;
  padding: 12px 32px;
  border-radius: 10px;
  font-size: 1.05rem;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.2s ease;
  cursor: pointer;
}
.tc-gate-btn--primary {
  background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
  color: #fff;
  box-shadow: 0 8px 16px -4px rgba(37, 99, 235, 0.4);
}
.tc-gate-btn--primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 20px -4px rgba(37, 99, 235, 0.5);
}
.tc-gate-btn--secondary {
  background: transparent;
  color: #38bdf8;
  border: 1px solid rgba(56, 189, 248, 0.3);
}
.tc-gate-btn--secondary:hover {
  background: rgba(56, 189, 248, 0.08);
  border-color: rgba(56, 189, 248, 0.5);
}
.tc-gate-password-login {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #94a3b8;
  font-size: 0.86rem;
  line-height: 1.4;
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color 0.15s ease;
}
.tc-gate-password-login:hover {
  color: #e2e8f0;
}
.tc-gate-fb-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 300px;
  max-width: 100%;
  box-sizing: border-box;
  padding: 11px 16px;
  border-radius: 10px;
  background: #1877F2;
  color: #fff;
  font-size: 1.05rem;
  font-weight: 600;
  text-decoration: none;
  transition: background 0.2s ease, transform 0.2s ease;
}
.tc-gate-fb-btn:hover {
  background: #166fe0;
  transform: translateY(-2px);
}
.tc-gate-fb-icon { flex: 0 0 auto; }

/* Floating CTA */
#floating-cta-container {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 50;
  text-align: center;
  padding: 0 16px 16px;
  pointer-events: none;
}
#floating-cta-container[hidden] { display: none; }
#floating-cta-container:not([data-entitlement-state]),
#floating-cta-container[data-entitlement-state="pending"] {
  display: none;
}

.tc-floating-cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 28px;
  background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
  color: #fff;
  font-size: 1.05rem;
  font-weight: 700;
  border-radius: 999px;
  text-decoration: none;
  box-shadow: 0 8px 24px -4px rgba(37, 99, 235, 0.5), 0 0 0 1px rgba(255, 255, 255, 0.1);
  pointer-events: auto;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  animation: tc-cta-pulse 3s ease-in-out infinite;
}
.tc-floating-cta:hover {
  transform: translateY(-3px) scale(1.02);
  box-shadow: 0 12px 28px -4px rgba(37, 99, 235, 0.6), 0 0 0 1px rgba(255, 255, 255, 0.15);
  color: #fff;
}
@keyframes tc-cta-pulse {
  0%, 100% { box-shadow: 0 8px 24px -4px rgba(37, 99, 235, 0.5), 0 0 0 1px rgba(255, 255, 255, 0.1); }
  50% { box-shadow: 0 8px 32px -2px rgba(37, 99, 235, 0.7), 0 0 0 1px rgba(255, 255, 255, 0.15); }
}

/* Gate container in page */
#tcGate { background: #0f172a; }
#tcGate[hidden] { display: none; }

/* ===== Google One Tap Login Modal (tc-checkout-login-modal) ===== */
/* Rendered by shared/login-flow.js when One Tap is suppressed     */
.tc-clm-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.65);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  padding: 20px;
}
.tc-clm-card {
  position: relative;
  background: linear-gradient(165deg, #1e2a3a 0%, #0f1929 100%);
  border: 1px solid rgba(125, 184, 255, 0.2);
  border-radius: 16px;
  padding: 36px 32px 32px;
  max-width: 460px;
  width: 100%;
  box-shadow: 0 24px 60px -12px rgba(0, 0, 0, 0.7), 0 0 0 1px rgba(255, 255, 255, 0.05);
  animation: tc-clm-in 0.2s ease;
}
@keyframes tc-clm-in {
  from { opacity: 0; transform: scale(0.95) translateY(8px); }
  to   { opacity: 1; transform: scale(1) translateY(0); }
}
.tc-clm-close {
  position: absolute;
  top: 12px;
  right: 14px;
  background: none;
  border: none;
  color: #64748b;
  font-size: 1.4rem;
  line-height: 1;
  cursor: pointer;
  padding: 4px 8px;
  border-radius: 6px;
  transition: color 0.15s, background 0.15s;
}
.tc-clm-close:hover {
  color: #cbd5e1;
  background: rgba(255, 255, 255, 0.08);
}
.tc-clm-title {
  font-size: 1.2rem;
  font-weight: 700;
  color: #f1f5f9;
  margin: 0 0 12px;
  line-height: 1.4;
  text-align: center;
}
.tc-clm-lead {
  font-size: 0.92rem;
  color: #94a3b8;
  line-height: 1.7;
  margin: 0 0 20px;
  text-align: left;
}
.tc-clm-google-btn {
  display: flex;
  justify-content: center;
}
.tc-clm-google-btn iframe,
.tc-clm-google-btn > div {
  border-radius: 8px !important;
  overflow: hidden;
}
.tc-clm-fb-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 300px;
  max-width: 100%;
  box-sizing: border-box;
  margin: 10px auto 0;
  padding: 11px 16px;
  border-radius: 8px;
  background: #1877F2;
  color: #fff;
  font-size: 1rem;
  font-weight: 600;
  text-decoration: none;
}
.tc-clm-fb-btn:hover { background: #166fe0; }
.tc-clm-fb-icon { flex: 0 0 auto; }

@media (max-width: 520px) {
  .tc-clm-card { padding: 28px 20px 24px; }
  .tc-clm-title { font-size: 1.05rem; }
  .tc-clm-lead { font-size: 0.88rem; }
}

@media (max-width: 768px) {
  .tc-gate-inner { padding: 36px 24px; }
  .tc-gate-title { font-size: 1.3rem; }
  .tc-floating-cta { font-size: 0.95rem; padding: 12px 24px; }
}
} @layer fpm {/* ===== Floating Pricing Module (FPM) — Shared Styles ===== */

.fpm {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 10000;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    transform: translateY(100%);
    opacity: 0;
    transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.4s ease;
}
.fpm.fpm--animate-in {
    transform: translateY(0);
    opacity: 1;
}
.fpm-collapsed {
    background: linear-gradient(135deg, #1e293b 0%, #0f172a 100%);
    border-top: 2px solid #f59e0b;
    padding: 12px 20px;
    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.5);
}
.fpm-collapsed-content {
    max-width: 800px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.fpm-collapsed-text {
    color: #fef3c7;
    font-size: 0.95rem;
    font-weight: 600;
}
.fpm-expand-btn {
    background: linear-gradient(135deg, #f59e0b, #d97706);
    color: #1e1b0f;
    font-weight: 700;
    font-size: 0.85rem;
    padding: 8px 20px;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    white-space: nowrap;
    transition: all 0.2s;
    box-shadow: 0 2px 8px rgba(245, 158, 11, 0.3);
}
.fpm-expand-btn:hover { background: linear-gradient(135deg, #fbbf24, #f59e0b); }
.fpm-expanded {
    background: linear-gradient(180deg, #1e293b 0%, #111827 100%);
    border-top: 2px solid #f59e0b;
    padding: 16px 20px 20px;
    max-height: 360px;
    overflow-y: auto;
    box-shadow: 0 -6px 30px rgba(0, 0, 0, 0.6);
}
.fpm-header {
    max-width: 900px;
    margin: 0 auto 12px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.fpm-title {
    color: #fef3c7;
    font-size: 1.05rem;
    font-weight: 700;
}
.fpm-close-btn {
    background: none;
    border: none;
    color: #64748b;
    font-size: 1rem;
    cursor: pointer;
    padding: 4px 8px;
}
.fpm-close-btn:hover { color: #94a3b8; }
.fpm-plans {
    max-width: 900px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.fpm--market-tw .fpm-plans {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.fpm-plan {
    background: rgba(30, 41, 59, 0.9);
    border: 1px solid rgba(148, 163, 184, 0.2);
    border-radius: 10px;
    padding: 14px;
    text-align: center;
    position: relative;
    transition: border-color 0.2s;
}
.fpm-plan:hover {
    border-color: rgba(148, 163, 184, 0.4);
}
.fpm-plan--lifetime {
    border-color: rgba(245, 158, 11, 0.5);
    box-shadow: 0 0 16px rgba(245, 158, 11, 0.1);
}
.fpm-plan--lifetime:hover {
    border-color: #f59e0b;
}
.fpm-plan-tag {
    position: absolute;
    top: -8px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 0.7rem;
    font-weight: 700;
    padding: 2px 10px;
    border-radius: 10px;
    white-space: nowrap;
}
.fpm-plan--lifetime .fpm-plan-tag {
    background: linear-gradient(135deg, #f59e0b, #d97706);
    color: #1e1b0f;
}
.fpm-plan--recommended .fpm-plan-tag {
    background: linear-gradient(135deg, #3b82f6, #6366f1);
    color: #ffffff;
}
.fpm-plan-name {
    color: #cbd5e1;
    font-size: 0.85rem;
    margin-bottom: 4px;
}
.fpm-plan-price {
    color: #f1f5f9;
    font-size: 1.2rem;
    font-weight: 700;
    margin-bottom: 2px;
}
.fpm-plan-price span {
    font-size: 0.75rem;
    font-weight: 400;
    color: #94a3b8;
}
.fpm-plan-billing {
    color: #64748b;
    font-size: 0.75rem;
    margin-bottom: 6px;
}
.fpm-plan-btn {
    width: 100%;
    padding: 10px 0;
    border: 1px solid rgba(148, 163, 184, 0.3);
    background: transparent;
    color: #cbd5e1;
    font-weight: 600;
    font-size: 0.85rem;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.2s;
}
.fpm-plan-btn:hover {
    background: rgba(148, 163, 184, 0.1);
    border-color: rgba(148, 163, 184, 0.5);
}
.fpm-plan-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}
.fpm-plan-btn--primary {
    background: linear-gradient(135deg, #3b82f6 0%, #6366f1 100%);
    color: #fff;
    border-color: transparent;
}
.fpm-plan-btn--primary:hover {
    background: linear-gradient(135deg, #2563eb 0%, #4f46e5 100%);
}

/* Scarcity badge */
.fpm-scarcity-badge {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 6px 0 8px;
    font-size: 0.85rem;
    font-weight: 700;
}
.fpm-scarcity-struck {
    text-decoration: line-through;
    color: #94a3b8;
    font-weight: 600;
}
.fpm-scarcity-remaining {
    display: inline-block;
    color: #fff;
    background: #ef4444;
    border: 2px solid #ef4444;
    border-radius: 6px;
    padding: 2px 10px;
    font-weight: 700;
    animation: fpmScarcityPulse 2s infinite ease-in-out;
}
@keyframes fpmScarcityPulse {
    0%   { transform: scale(1);    box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.6); }
    70%  { transform: scale(1.05); box-shadow: 0 0 0 8px rgba(239, 68, 68, 0); }
    100% { transform: scale(1);    box-shadow: 0 0 0 0 rgba(239, 68, 68, 0); }
}

/* Lifetime plan button */
.fpm-plan--lifetime .fpm-plan-btn {
    background: linear-gradient(135deg, #f59e0b, #d97706);
    color: #1e1b0f;
    border-color: #f59e0b;
    font-weight: 700;
    box-shadow: 0 2px 8px rgba(245, 158, 11, 0.3);
}
.fpm-plan--lifetime .fpm-plan-btn:hover {
    background: linear-gradient(135deg, #fbbf24, #f59e0b);
}

/* Discount code widget */
.fpm .tch-discount {
    margin-top: 6px;
    padding: 6px 8px;
    background: rgba(18, 23, 30, 0.6);
    border: 1px solid rgba(125, 184, 255, 0.12);
    border-radius: 8px;
}
.fpm .tch-discount__row {
    display: flex;
    align-items: center;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
    transition: border-color 0.2s;
    padding-bottom: 4px;
}
.fpm .tch-discount__row:focus-within {
    border-bottom-color: rgba(125, 184, 255, 0.6);
}
.fpm .tch-discount__input {
    flex: 1;
    min-width: 0;
    padding: 4px 0;
    border: none !important;
    background: transparent !important;
    color: #e2e8f0 !important;
    font-size: 0.8rem;
    letter-spacing: 0.04em;
    outline: none;
    -webkit-text-fill-color: #e2e8f0 !important;
    box-shadow: none !important;
}
.fpm .tch-discount__input:focus {
    border: none !important;
    box-shadow: none !important;
}
.fpm .tch-discount__input::placeholder {
    color: rgba(255, 255, 255, 0.6) !important;
    -webkit-text-fill-color: rgba(255, 255, 255, 0.6) !important;
}
.fpm .tch-discount__btn {
    padding: 4px 10px;
    border: none;
    background: transparent;
    color: #7db8ff;
    font-weight: 500;
    font-size: 0.75rem;
    cursor: pointer;
    transition: color 0.2s, opacity 0.2s;
    white-space: nowrap;
}
.fpm .tch-discount__btn:hover { color: #a8d1ff; }
.fpm .tch-discount__btn:disabled { opacity: 0.3; cursor: not-allowed; }
.fpm .tch-discount__status {
    margin-top: 4px;
    font-size: 0.78rem;
    padding: 4px 8px;
    border-radius: 6px;
    line-height: 1.4;
}
.fpm .tch-discount__status--success {
    color: #34d399;
    background: rgba(52, 211, 153, 0.1);
    border: 1px solid rgba(52, 211, 153, 0.25);
}
.fpm .tch-discount__status--error {
    color: #fb7185;
    background: rgba(251, 113, 133, 0.1);
    border: 1px solid rgba(251, 113, 133, 0.25);
}
.fpm .tch-discount__status--info {
    color: #7db8ff;
    background: rgba(125, 184, 255, 0.1);
    border: 1px solid rgba(125, 184, 255, 0.2);
}

/* Login prompt */
.fpm-login-prompt {
    max-width: 900px;
    margin: 12px auto 0;
    text-align: center;
}
.fpm-login-btn {
    display: inline-block;
    background: #3b82f6;
    color: #fff;
    font-weight: 700;
    font-size: 0.9rem;
    padding: 10px 28px;
    border-radius: 8px;
    text-decoration: none;
    transition: background 0.2s;
}
.fpm-login-btn:hover { background: #2563eb; color: #fff; }
.fpm-disclaimer {
    max-width: 900px;
    margin: 8px auto 0;
    text-align: center;
    color: #475569;
    font-size: 0.72rem;
}

/* Mobile */
@media (max-width: 767px) {
    .fpm-plans {
        grid-template-columns: 1fr;
        gap: 8px;
    }
    .fpm-expanded {
        max-height: 70vh;
    }
    /* 美股月／年繳均顯示；台股 campaign 行動版聚焦終生方案。 */
    .fpm--market-tw .fpm-plan:not([data-plan-sku="tw_lifetime"]) {
        display: none !important;
    }
    .fpm-plan {
        padding: 12px;
    }
    .fpm .tch-discount {
        margin-top: 8px;
    }
}

/* ===== Payment method modal（年繳一次付清／終生方案）===== */
/* 樣式對齊首頁 tch-paymethod-modal，class 改 fpm- 前綴避免與首頁衝突 */
.fpm-paymethod-modal {
    position: fixed;
    inset: 0;
    background: rgba(5, 10, 18, 0.8);
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 10010;
    padding: 20px;
    backdrop-filter: blur(2px);
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
.fpm-paymethod-modal.is-visible {
    display: flex;
}
.fpm-paymethod-modal__card {
    position: relative;
    background: #111823;
    border: 1px solid rgba(125, 184, 255, 0.32);
    border-radius: 18px;
    padding: 30px 28px 26px;
    max-width: 380px;
    width: 100%;
    text-align: center;
    box-shadow: 0 24px 60px rgba(3, 8, 14, 0.55);
}
.fpm-paymethod-modal__close {
    position: absolute;
    top: 8px;
    right: 14px;
    background: none;
    border: none;
    color: rgba(255, 255, 255, 0.5);
    font-size: 1.6rem;
    line-height: 1;
    cursor: pointer;
    padding: 4px 8px;
}
.fpm-paymethod-modal__close:hover {
    color: #ffffff;
}
.fpm-paymethod-modal__title {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 600;
    color: #ffffff;
}
.fpm-paymethod-modal__amount {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    margin: 6px 0 20px;
    padding: 0 0 18px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.fpm-paymethod-modal__amount-label {
    font-size: 0.8rem;
    color: #94a3b8;
    letter-spacing: 0.04em;
}
.fpm-paymethod-modal__amount-value {
    font-size: 1.9rem;
    font-weight: 800;
    color: #ffffff;
    line-height: 1.15;
}
.fpm-paymethod-modal__amount-note {
    font-size: 0.78rem;
    color: #94a3b8;
}
.fpm-paymethod-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    width: 100%;
    min-height: 58px;
    margin-top: 12px;
    padding: 12px 16px;
    border-radius: 12px;
    border: 1px solid rgba(125, 184, 255, 0.35);
    background: #18222f;
    color: #ffffff;
    font-weight: 600;
    cursor: pointer;
    transition: transform 0.12s ease, border-color 0.12s ease, background 0.12s ease;
}
.fpm-paymethod-btn:hover {
    transform: translateY(-1px);
    border-color: rgba(125, 184, 255, 0.7);
    background: #1d2937;
}
.fpm-paymethod-btn__main {
    font-size: 1.02rem;
    font-weight: 700;
}
.fpm-paymethod-btn__hint {
    font-size: 0.78rem;
    font-weight: 400;
    color: #94a3b8;
}
.fpm-paymethod-btn--oen {
    background: linear-gradient(135deg, #ffd700, #ffb347);
    border-color: #ffc24d;
    color: #1a1a1a;
}
.fpm-paymethod-btn--oen:hover {
    background: linear-gradient(135deg, #ffe34d, #ffc963);
    border-color: #ffd24d;
    color: #0f0f0f;
}
.fpm-paymethod-btn--oen .fpm-paymethod-btn__main {
    color: #1a1a1a;
}
.fpm-paymethod-btn--oen .fpm-paymethod-btn__hint {
    color: rgba(26, 26, 26, 0.72);
}
.fpm-paymethod-btn--linepay {
    background: #06c755;
    border-color: #06c755;
    padding: 14px 16px;
}
.fpm-paymethod-btn--linepay:hover {
    background: #05b34c;
    border-color: #05b34c;
}
.fpm-paymethod-btn__logo {
    display: block;
    height: 30px;
    width: auto;
}
.fpm-paymethod-btn--paypal {
    background: #0070ba;
    border-color: #0070ba;
    color: #ffffff;
}
.fpm-paymethod-btn--paypal:hover {
    background: #005ea6;
    border-color: #005ea6;
    color: #ffffff;
}
.fpm-paymethod-btn--paypal .fpm-paymethod-btn__main {
    color: #ffffff;
}
.fpm-paymethod-btn--paypal .fpm-paymethod-btn__hint {
    color: rgba(255, 255, 255, 0.8);
}
} @layer page {#trend-ticker-page {
        background-color: #0f1419;
        color: #e2e8f0;
        min-height: 100vh;
        font-family: "Noto Sans TC", "Segoe UI", Roboto, sans-serif;
        font-size: 0.95rem;
        padding: 32px 0 48px;
    }

    #trend-ticker-page .ticker-container {
        width: min(1100px, 92vw);
        margin: 0 auto;
    }

    #trend-ticker-page .trend-breadcrumbs {
        margin-bottom: 16px;
        font-size: 0.85rem;
        color: #94a3b8;
    }

    #trend-ticker-page .trend-breadcrumbs ol {
        list-style: none;
        padding: 0;
        margin: 0;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 4px;
    }

    #trend-ticker-page .trend-breadcrumbs li {
        display: inline-flex;
        align-items: center;
        gap: 6px;
    }

    #trend-ticker-page .trend-breadcrumbs li+li:before {
        content: ">";
        color: #475569;
        font-size: 0.85em;
    }

    #trend-ticker-page .trend-breadcrumbs a {
        color: #e2e8f0;
        text-decoration: none;
        font-weight: 500;
    }

    #trend-ticker-page .trend-breadcrumbs a:hover,
    #trend-ticker-page .trend-breadcrumbs a:focus-visible {
        color: #7dd3fc;
        text-decoration: underline;
        outline: none;
    }

    #trend-ticker-page .trend-breadcrumbs [aria-current="page"] {
        color: #cbd5f5;
        font-weight: 600;
    }

    #trend-ticker-page .ticker-hero {
        display: flex;
        flex-direction: column;
        gap: 12px;
        margin-bottom: 18px;
    }

    #trend-ticker-page .ticker-hero-top {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 12px;
    }

    #trend-ticker-page .ticker-hero-actions {
        margin-left: auto;
        display: inline-flex;
        align-items: center;
        gap: 10px;
        flex-wrap: wrap;
        justify-content: flex-end;
    }

    #trend-ticker-page .ticker-identity {
        display: flex;
        flex-direction: column;
        gap: 6px;
        min-width: 0;
    }

    #trend-ticker-page .ticker-actions {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: flex-end;
        gap: 8px;
        margin: 8px 0 28px;
        width: 100%;
    }

    #trend-ticker-page .ticker-quick-links {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        flex-wrap: wrap;
    }

    #trend-ticker-page .ticker-action-link {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        padding: 4px 12px;
        border-radius: 999px;
        border: 1px solid rgba(125, 184, 255, 0.35);
        background: rgba(125, 184, 255, 0.12);
        color: #7db8ff;
        font-size: 0.78rem;
        font-weight: 600;
        text-decoration: none;
        transition: transform 0.2s ease, background 0.2s ease, box-shadow 0.2s ease, color 0.2s ease;
    }

    #trend-ticker-page .ticker-action-button {
        appearance: none;
        font-family: inherit;
        cursor: pointer;
    }

    #trend-ticker-page .ticker-action-link:hover,
    #trend-ticker-page .ticker-action-link:focus-visible {
        transform: translateY(-1px);
        background: rgba(125, 184, 255, 0.2);
        box-shadow: 0 8px 18px rgba(125, 184, 255, 0.18);
        color: #e3f2ff;
        outline: none;
    }

    

    

    

    

    

    

    

    

    

    #trend-ticker-page .ticker-action-label {
        white-space: nowrap;
    }

    #trend-ticker-page .ticker-actions-status {
        flex-basis: 100%;
        margin: 2px 0 0;
        font-size: 0.76rem;
        line-height: 1.5;
        color: #94a3b8;
    }

    #trend-ticker-page .ticker-actions-status.is-success {
        color: #86efac;
    }

    #trend-ticker-page .ticker-actions-status.is-error {
        color: #fda4af;
    }

    #trend-ticker-page .ticker-actions-status.is-info {
        color: #93c5fd;
    }

    /* Hardening CTA Visibility */
    #floating-cta-container:not([data-entitlement-state]),
    #floating-cta-container[data-entitlement-state="pending"] {
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;
        pointer-events: none !important;
    }

    #trend-ticker-page .ticker-company-name {
        margin: 0;
        font-size: clamp(1.3rem, 2.4vw, 1.85rem);
        color: #f8fafc;
        font-weight: 700;
        letter-spacing: 0.02em;
        max-width: 720px;
        word-break: break-word;
    }

    #trend-ticker-page .ticker-fallback-ticker {
        font-size: 0.8rem;
        color: #38bdf8;
        letter-spacing: 0.12em;
        text-transform: uppercase;
    }

    #trend-ticker-page .ticker-meta {
        margin: 4px 0 0;
        color: #94a3b8;
        font-size: 0.78rem;
        line-height: 1.2;
        display: inline-flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 8px;
    }

    #trend-ticker-page .ticker-meta .ticker-meta-item {
        margin-left: 0;
        color: #94a3b8;
        display: inline-flex;
        align-items: center;
        gap: 4px;
    }

    #trend-ticker-page .ticker-meta .ticker-meta-item:not(:first-child)::before {
        content: "・";
        color: #475569;
    }

    #trend-ticker-page .ticker-meta .ticker-meta-item a {
        color: #e2e8f0;
        text-decoration: none;
        font-weight: 600;
    }

    #trend-ticker-page .ticker-meta .ticker-meta-item a:hover,
    #trend-ticker-page .ticker-meta .ticker-meta-item a:focus-visible {
        color: #7dd3fc;
        text-decoration: underline;
    }

    #trend-ticker-page .ticker-trend-state {
        display: inline-flex;
        align-items: center;
        font-weight: 600;
        margin-left: 0;
        font-size: 0.8rem;
        line-height: 1;
        letter-spacing: 0.04em;
    }

    #trend-ticker-page .ticker-trend-state.trend-up {
        color: #facc15;
    }

    #trend-ticker-page .ticker-trend-state.trend-down {
        color: #fb7185;
    }

    #trend-ticker-page .ticker-price-row {
        display: flex;
        align-items: baseline;
        gap: 12px;
    }

    #trend-ticker-page .ticker-price-value {
        font-size: clamp(1.6rem, 3vw, 2.4rem);
        font-weight: 700;
        color: #f8fafc;
        letter-spacing: 0.01em;
    }

    #trend-ticker-page .ticker-price-delta {
        font-size: clamp(0.85rem, 1.6vw, 1.1rem);
        font-weight: 600;
        letter-spacing: 0.03em;
    }

    #trend-ticker-page .ticker-price-delta--up {
        color: #fb7185;
    }

    #trend-ticker-page .ticker-price-delta--down {
        color: #4ade80;
    }

    #trend-ticker-page .ticker-price-delta--flat {
        color: #cbd5f5;
    }

    #trend-ticker-page .ticker-price-updated {
        font-size: 0.74rem;
        color: #94a3b8;
        display: inline-flex;
        align-items: center;
        gap: 4px;
    }

    #trend-ticker-page .ticker-watchlist-status {
        margin: 8px 0 0;
        font-size: 0.78rem;
        color: #94a3b8;
    }

    #trend-ticker-page .ticker-watchlist-status.is-error {
        color: #fb7185;
    }

    #trend-ticker-page .ticker-watchlist-status.is-success {
        color: #34d399;
    }

    #trend-ticker-page .ticker-watchlist-status.is-info {
        color: #7db8ff;
    }

    #trend-ticker-page .ticker-watchlist-status a {
        color: #7db8ff;
        text-decoration: underline;
    }

    #trend-ticker-page .ticker-watchlist-btn {
        margin-left: 0;
        display: inline-flex;
        align-items: center;
        gap: 6px;
        padding: 6px 18px;
        border-radius: 999px;
        border: 1px solid rgba(125, 184, 255, 0.35);
        background: rgba(125, 184, 255, 0.12);
        color: #7db8ff;
        font-size: 0.82rem;
        font-weight: 600;
        cursor: pointer;
        transition: transform 0.2s ease, background 0.2s ease, box-shadow 0.2s ease, color 0.2s ease;
    }

    #trend-ticker-page .ticker-watchlist-btn:hover,
    #trend-ticker-page .ticker-watchlist-btn:focus-visible {
        transform: translateY(-1px);
        background: rgba(125, 184, 255, 0.2);
        box-shadow: 0 8px 18px rgba(125, 184, 255, 0.18);
        color: #e3f2ff;
        outline: none;
    }

    #trend-ticker-page .ticker-watchlist-btn .watchlist-icon {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        font-size: 0.95rem;
    }

    #trend-ticker-page .ticker-watchlist-btn .watchlist-label {
        display: inline-flex;
        align-items: center;
        white-space: nowrap;
    }

    /* 分享按鈕 */
    #trend-ticker-page .ticker-share-btn {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        padding: 6px 14px;
        background: rgba(59, 130, 246, 0.15);
        border: 1px solid rgba(59, 130, 246, 0.4);
        border-radius: 999px;
        color: #60a5fa;
        font-size: 0.82rem;
        font-weight: 600;
        cursor: pointer;
        transition: all 0.2s ease;
        margin-left: 0;
    }

    #trend-ticker-page .ticker-share-btn:hover {
        background: rgba(59, 130, 246, 0.25);
        border-color: rgba(59, 130, 246, 0.6);
        transform: translateY(-1px);
        box-shadow: 0 4px 12px rgba(59, 130, 246, 0.2);
    }

    #trend-ticker-page .ticker-share-btn.is-copied {
        background: rgba(34, 197, 94, 0.15);
        border-color: rgba(34, 197, 94, 0.4);
        color: #4ade80;
    }

    #trend-ticker-page .ticker-valuation-btn {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        padding: 8px 20px;
        border-radius: 12px;
        background: #facc15;
        color: #0f172a;
        font-size: 0.95rem;
        font-weight: 700;
        border: none;
        text-decoration: none;
        box-shadow: 0 10px 24px rgba(250, 204, 21, 0.35);
        transition: transform 0.2s ease, box-shadow 0.2s ease;
        letter-spacing: 0.04em;
    }

    #trend-ticker-page .ticker-valuation-btn:hover,
    #trend-ticker-page .ticker-valuation-btn:focus-visible {
        transform: translateY(-1px);
        box-shadow: 0 14px 30px rgba(250, 204, 21, 0.45);
        outline: none;
    }

    #trend-ticker-page .ticker-valuation-btn .fas {
        font-size: 0.9em;
    }

    #trend-ticker-page .valuation-helper-card {
        margin-top: 18px;
        padding: 18px 20px;
        border-radius: 14px;
        border: 1px solid rgba(148, 163, 184, 0.2);
        background: rgba(15, 23, 42, 0.7);
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 18px;
    }

    #trend-ticker-page .valuation-helper-text h3 {
        margin: 0 0 6px;
        font-size: 0.95rem;
        color: #f8fafc;
        letter-spacing: 0.04em;
    }

    #trend-ticker-page .valuation-helper-text p {
        margin: 0 0 10px;
        color: #e2e8f0;
        font-size: 0.85rem;
        line-height: 1.6;
    }

    #trend-ticker-page .valuation-helper-list {
        margin: 0;
        padding-left: 18px;
        color: #e2e8f0;
        font-size: 0.8rem;
        line-height: 1.5;
    }

    #trend-ticker-page .valuation-helper-actions {
        display: flex;
        flex-direction: column;
        align-items: flex-end;
        gap: 8px;
        min-width: 200px;
    }

    #trend-ticker-page .valuation-helper-button {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        padding: 10px 22px;
        border-radius: 999px;
        border: none;
        background: #facc15;
        color: #0f172a;
        font-size: 0.95rem;
        font-weight: 700;
        letter-spacing: 0.04em;
        text-decoration: none;
        box-shadow: 0 12px 30px rgba(250, 204, 21, 0.35);
        transition: transform 0.2s ease, box-shadow 0.2s ease;
        white-space: nowrap;
    }

    #trend-ticker-page .valuation-helper-button:hover,
    #trend-ticker-page .valuation-helper-button:focus-visible {
        transform: translateY(-1px);
        box-shadow: 0 16px 36px rgba(250, 204, 21, 0.45);
        outline: none;
    }

    #trend-ticker-page .valuation-helper-note {
        margin: 0;
        font-size: 0.74rem;
        color: #e2e8f0;
        letter-spacing: 0.04em;
        text-align: right;
    }

    #trend-ticker-page .trend-strategy-card {
        margin-bottom: 24px;
    }

    #trend-ticker-page .trend-strategy-card .info-card-header {
        margin-bottom: 18px;
    }

    #trend-ticker-page .trend-strategy-insights {
        display: flex;
        flex-wrap: wrap;
        gap: 18px;
        width: 100%;
        align-items: stretch;
    }

    #trend-ticker-page .trend-strategy-insights .strategy-card {
        flex: 1 1 360px;
        min-width: 0;
        margin: 0;
    }

    #trend-ticker-page .trend-strategy-insights .strategy-card.info-card {
        margin-bottom: 0;
    }

    #trend-ticker-page .chart-card {
        background: rgba(30, 35, 40, 0.9);
        border: 1px solid rgba(148, 163, 184, 0.2);
        border-radius: 14px;
        padding: 16px 20px;
        margin-bottom: 24px;
        box-shadow: 0 18px 40px rgba(6, 8, 15, 0.45);
        display: flex;
        flex-direction: column;
        gap: 12px;
    }

    #trend-ticker-page .chart-card-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        flex-wrap: wrap;
    }

    #trend-ticker-page .chart-range-toggle {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        padding: 4px;
        border-radius: 999px;
        background: rgba(15, 23, 42, 0.6);
        border: 1px solid rgba(148, 163, 184, 0.2);
    }

    #trend-ticker-page .chart-range-button {
        border: none;
        background: transparent;
        color: #ffffff;
        font-size: 0.78rem;
        font-weight: 600;
        letter-spacing: 0.05em;
        padding: 6px 14px;
        border-radius: 999px;
        cursor: pointer;
        transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
    }

    #trend-ticker-page .chart-range-button:hover,
    #trend-ticker-page .chart-range-button:focus-visible {
        background: rgba(148, 163, 184, 0.18);
        outline: none;
    }

    #trend-ticker-page .chart-range-button.is-active {
        background: linear-gradient(120deg, #38bdf8, #22d3ee);
        box-shadow: 0 8px 18px rgba(34, 211, 238, 0.25);
        color: #ffffff;
        opacity: 1;
    }

    #trend-ticker-page .chart-range-button:disabled:not(.is-active) {
        opacity: 0.6;
        cursor: not-allowed;
    }

    #trend-ticker-page .chart-card-footer {
        display: flex;
        align-items: center;
        justify-content: space-between;
        flex-wrap: wrap;
        gap: 12px;
    }

    #trend-ticker-page .chart-card-tools {
        margin-left: auto;
        justify-content: flex-end;
    }

    #trend-ticker-page .chart-disclaimer {
        margin: 0;
        font-size: 0.74rem;
        color: #e2e8f0;
    }

    #trend-ticker-chart {
        width: 100%;
        height: 240px;
    }

    #trend-ticker-page .chart-empty {
        display: flex;
        align-items: center;
        justify-content: center;
        height: 240px;
        color: #64748b;
        border: 1px dashed rgba(148, 163, 184, 0.25);
        border-radius: 12px;
    }

    #trend-ticker-page .legend-swatch {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        margin-right: 12px;
        font-size: 0.78rem;
        color: #cbd5f5;
    }

    #trend-ticker-page .legend-swatch span {
        display: inline-flex;
        width: 12px;
        height: 12px;
        border-radius: 50%;
    }

    #trend-ticker-page .legend-up span {
        background: #facc15;
    }

    #trend-ticker-page .legend-down span {
        background: #fb7185;
    }

    #trend-ticker-page .chart-legends {
        display: flex;
        flex-wrap: wrap;
        justify-content: flex-start;
        gap: 12px;
        margin: 0;
        color: #cbd5f5;
        font-size: 0.8rem;
    }

    #trend-ticker-page .info-card {
        background: rgba(30, 35, 40, 0.9);
        border: 1px solid rgba(148, 163, 184, 0.2);
        border-radius: 14px;
        padding: 20px 24px;
        margin-bottom: 24px;
        box-shadow: 0 14px 32px rgba(6, 8, 15, 0.35);
    }

    /* ── Skeleton / CLS prevention ── */
    @keyframes skeletonPulse {
        0%, 100% { opacity: 0.4; }
        50% { opacity: 0.15; }
    }
    #trend-ticker-page .skeleton-bar {
        height: 14px;
        border-radius: 6px;
        background: rgba(148, 163, 184, 0.18);
        animation: skeletonPulse 1.5s ease-in-out infinite;
    }
    #trend-ticker-page .institutional-holdings-list:empty,
    #trend-ticker-page .trend-articles-list:empty {
        min-height: 80px;
        background: rgba(148, 163, 184, 0.06);
        border-radius: 10px;
        animation: skeletonPulse 1.5s ease-in-out infinite;
    }
    #trend-ticker-page .insider-table-wrapper[style*="display: none"] + .info-empty[style*="display: none"] ~ .info-card-header,
    #trend-ticker-page .company-metrics-list:empty {
        min-height: 60px;
    }

    #trend-ticker-page .info-card h2 {
        margin: 0;
        font-size: 0.95rem;
        color: #e2e8f0;
        display: flex;
        align-items: center;
        gap: 10px;
    }

    #trend-ticker-page .info-card-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin-bottom: 14px;
    }

    #trend-ticker-page .info-pill {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        font-size: 0.7rem;
        padding: 4px 10px;
        border-radius: 999px;
        background: rgba(148, 163, 184, 0.16);
        color: #f8fafc;
        letter-spacing: 0.04em;
    }

    #trend-ticker-page .info-meta {
        color: #94a3b8;
        font-size: 0.8rem;
        margin-bottom: 16px;
    }

    #trend-ticker-page .info-empty {
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 36px 12px;
        border: 1px dashed rgba(148, 163, 184, 0.25);
        border-radius: 12px;
        color: #64748b;
        font-size: 0.82rem;
        letter-spacing: 0.05em;
    }

    #trend-ticker-page .trend-articles-card {
        display: none;
    }

    #trend-ticker-page .trend-articles-status {
        font-size: 0.78rem;
        color: #94a3b8;
    }

    #trend-ticker-page .trend-articles-status.is-error {
        color: #f87171;
    }

    #trend-ticker-page .trend-articles-list {
        display: flex;
        flex-direction: column;
        list-style: none;
        margin: 0;
        padding: 0;
        gap: 12px;
    }

    #trend-ticker-page .trend-article-item {
        display: flex;
        flex-direction: column;
        gap: 6px;
        padding: 14px 16px;
        border-radius: 12px;
        background: rgba(15, 23, 42, 0.7);
        border: 1px solid rgba(148, 163, 184, 0.16);
    }

    #trend-ticker-page .trend-article-date {
        font-size: 0.78rem;
        color: #94a3b8;
        letter-spacing: 0.05em;
    }

    #trend-ticker-page .trend-article-link {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        font-size: 0.95rem;
        font-weight: 600;
        color: #67e8f9;
        text-decoration: none;
    }

    #trend-ticker-page .trend-article-link:hover,
    #trend-ticker-page .trend-article-link:focus-visible {
        color: #f0abfc;
        outline: none;
    }

    #trend-ticker-page .trend-article-link i {
        font-size: 0.85rem;
    }

    #trend-ticker-page .info-card--locked .info-meta,
    #trend-ticker-page .info-card--locked .backtest-table,
    #trend-ticker-page .info-card--locked .info-empty,
    #trend-ticker-page .info-card--locked .collapsible-toggle,
    #trend-ticker-page .info-card--locked .collapsible-content,
    #trend-ticker-page .info-card--locked .history-content {
        display: none !important;
    }

    #trend-ticker-page .info-locked {
        display: flex;
        align-items: center;
        justify-content: space-between;
        flex-wrap: wrap;
        gap: 12px;
        padding: 18px 16px;
        border: 1px dashed rgba(125, 184, 255, 0.35);
        border-radius: 12px;
        background: rgba(125, 184, 255, 0.08);
        color: #cbd5f5;
        letter-spacing: 0.03em;
        font-size: 0.88rem;
    }

    #trend-ticker-page .info-locked p {
        margin: 0;
        flex: 1 1 240px;
    }

    #trend-ticker-page .info-locked .locked-actions {
        display: inline-flex;
        align-items: center;
        gap: 10px;
        flex-wrap: wrap;
    }

    #trend-ticker-page .info-locked .locked-button {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        padding: 6px 18px;
        border-radius: 999px;
        border: 1px solid rgba(125, 184, 255, 0.4);
        background: rgba(125, 184, 255, 0.18);
        color: #7db8ff;
        font-size: 0.8rem;
        font-weight: 600;
        text-decoration: none;
        transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
    }

    #trend-ticker-page .info-locked .locked-button:hover,
    #trend-ticker-page .info-locked .locked-button:focus-visible {
        background: rgba(125, 184, 255, 0.28);
        color: #e3f2ff;
        transform: translateY(-1px);
        box-shadow: 0 10px 24px rgba(125, 184, 255, 0.22);
        outline: none;
    }

    #trend-ticker-page .is-hidden {
        display: none !important;
    }

    #trend-ticker-page .backtest-table {
        display: flex;
        flex-direction: column;
        gap: 12px;
    }

    #trend-ticker-page .backtest-row {
        display: flex;
        flex-direction: column;
        gap: 6px;
        padding: 12px 14px;
        border-radius: 12px;
        background: rgba(148, 163, 184, 0.12);
        border: 1px solid rgba(148, 163, 184, 0.18);
    }

    #trend-ticker-page .backtest-label {
        font-size: 0.85rem;
        font-weight: 600;
        color: #f8fafc;
        letter-spacing: 0.04em;
    }

    #trend-ticker-page .backtest-stats {
        font-size: 0.78rem;
        color: #cbd5f5;
        letter-spacing: 0.03em;
    }

    #trend-ticker-page .history-list {
        display: flex;
        flex-direction: column;
        gap: 10px;
    }

    #trend-ticker-page .history-entry {
        display: flex;
        flex-direction: column;
        gap: 4px;
        padding: 12px 14px;
        border-radius: 12px;
        background: rgba(15, 23, 42, 0.7);
        border: 1px solid rgba(148, 163, 184, 0.16);
    }

    #trend-ticker-page .history-label {
        font-size: 0.85rem;
        font-weight: 600;
        color: #f8fafc;
        letter-spacing: 0.05em;
        display: inline-flex;
        align-items: center;
        gap: 6px;
    }

    #trend-ticker-page .history-meta {
        display: flex;
        align-items: center;
        flex-wrap: wrap;
        gap: 6px;
        font-size: 0.82rem;
        color: #cbd5f5;
        letter-spacing: 0.04em;
    }

    #trend-ticker-page .history-type {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        font-size: 0.88rem;
        font-weight: 700;
        letter-spacing: 0.08em;
        text-transform: uppercase;
    }

    #trend-ticker-page .history-type.buy {
        color: #facc15;
    }

    #trend-ticker-page .history-type.sell {
        color: #fb7185;
    }

    #trend-ticker-page .history-type.buy::before,
    #trend-ticker-page .history-type.sell::before {
        font-size: 0.8rem;
        line-height: 1;
    }

    #trend-ticker-page .history-type.buy::before {
        content: '▲';
    }

    #trend-ticker-page .history-type.sell::before {
        content: '▼';
    }

    #trend-ticker-page .history-divider {
        color: rgba(148, 163, 184, 0.4);
    }

    #trend-ticker-page .history-price {
        font-size: 0.78rem;
        color: #e2e8f0;
        letter-spacing: 0.05em;
    }

    #trend-ticker-page .history-count {
        font-size: 0.75rem;
        letter-spacing: 0.05em;
        color: #94a3b8;
    }

    #trend-ticker-page .history-list::-webkit-scrollbar {
        width: 6px;
    }

    #trend-ticker-page .history-list::-webkit-scrollbar-thumb {
        background: rgba(148, 163, 184, 0.3);
        border-radius: 999px;
    }

    #trend-ticker-page .history-list::-webkit-scrollbar-track {
        background: rgba(15, 23, 42, 0.4);
    }

    #trend-ticker-page .insider-insights-card {
        display: flex;
        flex-direction: column;
        gap: 16px;
    }

    #trend-ticker-page .insider-chart-wrapper {
        position: relative;
        min-height: 260px;
        background: rgba(15, 23, 42, 0.45);
        border: 1px solid rgba(148, 163, 184, 0.18);
        border-radius: 12px;
        overflow: hidden;
    }

    #trend-ticker-page .insider-line-chart {
        width: 100%;
        height: 260px;
    }

    #trend-ticker-page .insider-chart-empty {
        position: absolute;
        inset: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        background: rgba(15, 23, 42, 0.6);
        color: #64748b;
        font-size: 0.85rem;
        letter-spacing: 0.04em;
    }

    #trend-ticker-page .insider-chart-legends {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: 12px;
        margin-top: 8px;
        font-size: 0.75rem;
        color: #cbd5f5;
    }

    #trend-ticker-page .insider-chart-legends .legend-swatch {
        display: inline-flex;
        align-items: center;
        gap: 6px;
    }

    #trend-ticker-page .insider-chart-legends .insider-legend-buy span {
        background: #34d399;
    }

    #trend-ticker-page .insider-chart-legends .insider-legend-sell span {
        background: #a855f7;
    }

    #trend-ticker-page .insider-table-wrapper {
        margin-top: 12px;
        overflow-x: auto;
        overflow-y: auto;
        max-height: 320px;
    }

    #trend-ticker-page .insider-table {
        width: 100%;
        border-collapse: collapse;
        min-width: 620px;
    }

    #trend-ticker-page .insider-table th,
    #trend-ticker-page .insider-table td {
        padding: 10px 12px;
        text-align: left;
        border-bottom: 1px solid rgba(148, 163, 184, 0.16);
    }

    #trend-ticker-page .insider-change {
        margin-top: 4px;
        font-size: 0.72rem;
        color: #94a3b8;
    }

    #trend-ticker-page .insider-change.positive {
        color: #34d399;
    }

    #trend-ticker-page .insider-change.negative {
        color: #f87171;
    }

    #trend-ticker-page .insider-table th {
        font-size: 0.72rem;
        letter-spacing: 0.08em;
        text-transform: uppercase;
        color: #94a3b8;
        font-weight: 600;
    }

    #trend-ticker-page .insider-table td {
        font-size: 0.82rem;
        color: #e2e8f0;
        vertical-align: top;
    }

    #trend-ticker-page .insider-source-note {
        margin: 8px 0 0;
        color: #94a3b8;
        font-size: 0.72rem;
        letter-spacing: 0.04em;
    }

    #trend-ticker-page .insider-name {
        font-weight: 600;
        letter-spacing: 0.03em;
    }

    #trend-ticker-page .insider-title {
        margin-top: 4px;
        font-size: 0.72rem;
        color: #94a3b8;
        letter-spacing: 0.04em;
    }

    #trend-ticker-page .insider-type {
        font-weight: 600;
        letter-spacing: 0.05em;
    }

    #trend-ticker-page .insider-type.buy {
        color: #34d399;
    }

    #trend-ticker-page .insider-type.sell {
        color: #a855f7;
    }

    #trend-ticker-page .insider-type.other {
        color: #38bdf8;
    }

    #trend-ticker-page .insider-badge {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        padding: 2px 10px;
        border-radius: 999px;
        background: rgba(148, 163, 184, 0.16);
        color: #cbd5f5;
        font-size: 0.75rem;
        letter-spacing: 0.06em;
    }

    #trend-ticker-page .insider-plan-tag {
        display: inline-flex;
        align-items: center;
        gap: 4px;
        margin-left: 6px;
        padding: 2px 7px;
        border-radius: 999px;
        background: rgba(250, 204, 21, 0.18);
        color: #facc15;
        font-size: 0.7rem;
        letter-spacing: 0.08em;
        text-transform: uppercase;
        line-height: 1;
        border: 1px solid rgba(250, 204, 21, 0.35);
    }

    #trend-ticker-page .insider-plan-tag.code-f {
        background: rgba(59, 130, 246, 0.18);
        border-color: rgba(59, 130, 246, 0.35);
        color: #93c5fd;
    }

    #trend-ticker-page .insider-plan-tag.code-sellcover {
        background: rgba(56, 189, 248, 0.16);
        border-color: rgba(56, 189, 248, 0.35);
        color: #7dd3fc;
    }

    #trend-ticker-page .insider-plan-tag.code-derivative {
        background: rgba(168, 85, 247, 0.18);
        border-color: rgba(168, 85, 247, 0.35);
        color: #c4b5fd;
    }

    #trend-ticker-page .insider-footnote-summary {
        margin-top: 6px;
        font-size: 0.72rem;
        line-height: 1.5;
        color: #94a3b8;
    }

    #trend-ticker-page .insider-link {
        color: #7db8ff;
        text-decoration: none;
        font-size: 0.82rem;
    }

    #trend-ticker-page .insider-link:hover,
    #trend-ticker-page .insider-link:focus-visible {
        text-decoration: underline;
    }

    #trend-ticker-page .collapsible {
        position: relative;
    }

    #trend-ticker-page .collapsible-toggle {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        padding: 6px 12px;
        border-radius: 999px;
        border: 1px solid rgba(148, 163, 184, 0.25);
        background: rgba(148, 163, 184, 0.12);
        color: #e2e8f0;
        font-size: 0.75rem;
        font-weight: 600;
        letter-spacing: 0.04em;
        cursor: pointer;
        transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
    }

    #trend-ticker-page .collapsible-toggle:hover,
    #trend-ticker-page .collapsible-toggle:focus-visible {
        background: rgba(148, 163, 184, 0.24);
        color: #f8fafc;
        transform: translateY(-1px);
        box-shadow: 0 10px 20px rgba(15, 23, 42, 0.35);
        outline: none;
    }

    #trend-ticker-page .collapsible-toggle .toggle-icon {
        width: 0;
        height: 0;
        border-left: 5px solid transparent;
        border-right: 5px solid transparent;
        border-top: 6px solid currentColor;
        transition: transform 0.2s ease, border-top-color 0.2s ease;
    }

    #trend-ticker-page .collapsible.is-expanded .collapsible-toggle .toggle-icon {
        transform: rotate(180deg);
    }

    #trend-ticker-page .collapsible-toggle .toggle-count {
        background: rgba(148, 163, 184, 0.2);
        border-radius: 999px;
        padding: 2px 8px;
        font-size: 0.7rem;
        color: #cbd5f5;
    }

    #trend-ticker-page .collapsible-toggle .toggle-label {
        font-size: 0.75rem;
        color: inherit;
    }

    #trend-ticker-page .collapsible-content {
        display: none;
        margin-top: 16px;
    }

    #trend-ticker-page .collapsible.is-expanded .collapsible-content {
        display: block;
    }

    #trend-ticker-page .company-profile-body {
        color: #cbd5f5;
        font-size: 0.9rem;
        line-height: 1.7;
        letter-spacing: 0.02em;
        white-space: pre-line;
    }

    #trend-ticker-page .company-metrics {
        margin-top: 18px;
        display: none;
        border-top: 1px solid rgba(148, 163, 184, 0.15);
        padding-top: 18px;
        transition: max-height 0.25s ease;
    }

    #trend-ticker-page .company-metrics-title {
        margin: 0 0 12px;
        font-size: 0.9rem;
        font-weight: 700;
        color: #e2e8f0;
        letter-spacing: 0.05em;
    }

    #trend-ticker-page .company-metrics-list {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
        gap: 12px 18px;
        margin: 0;
        padding: 0;
        list-style: none;
    }

    #trend-ticker-page .company-metrics-item {
        display: flex;
        flex-direction: column;
        gap: 4px;
        background: rgba(15, 23, 42, 0.45);
        border: 1px solid rgba(148, 163, 184, 0.18);
        border-radius: 10px;
        padding: 10px 12px;
    }

    #trend-ticker-page .company-metrics-label {
        font-size: 0.7rem;
        letter-spacing: 0.05em;
        color: #94a3b8;
        text-transform: uppercase;
    }

    #trend-ticker-page .company-metrics-value {
        font-size: 0.9rem;
        font-weight: 600;
        color: #f8fafc;
        letter-spacing: 0.03em;
    }

    #trend-ticker-page .company-metrics-toggle {
        margin-top: 12px;
        display: none;
        align-items: center;
        gap: 6px;
        border: 1px solid rgba(148, 163, 184, 0.25);
        background: rgba(148, 163, 184, 0.14);
        color: #e2e8f0;
        border-radius: 999px;
        padding: 6px 14px;
        font-size: 0.74rem;
        letter-spacing: 0.04em;
        font-weight: 600;
        cursor: pointer;
        transition: background 0.2s ease, transform 0.2s ease;
    }

    #trend-ticker-page .company-metrics-toggle:hover,
    #trend-ticker-page .company-metrics-toggle:focus-visible {
        background: rgba(148, 163, 184, 0.24);
        transform: translateY(-1px);
        outline: none;
    }

    #trend-ticker-page .company-metrics-toggle-icon {
        width: 0;
        height: 0;
        border-left: 4px solid transparent;
        border-right: 4px solid transparent;
        border-top: 6px solid currentColor;
        transition: transform 0.2s ease;
    }

    #trend-ticker-page .company-metrics.is-expanded .company-metrics-toggle-icon {
        transform: rotate(180deg);
    }

    #trend-ticker-page .financials-summary-card {
        gap: 16px;
        --financial-current-width: 112px;
        --financial-trend-width: 120px;
    }

    #trend-ticker-page .financials-summary-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin-bottom: 12px;
        font-size: 0.7rem;
        letter-spacing: 0.08em;
        text-transform: uppercase;
        color: #94a3b8;
    }

    #trend-ticker-page .financials-summary-header-columns {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: 24px;
        margin-left: auto;
    }

    #trend-ticker-page .financials-summary-header-label {
        font-size: inherit;
        color: inherit;
    }

    #trend-ticker-page .financials-summary-header-current,
    #trend-ticker-page .financials-summary-header-trend {
        display: inline-flex;
        align-items: center;
        justify-content: flex-end;
        color: #cbd5f5;
        font-weight: 600;
    }

    #trend-ticker-page .financials-summary-header-current {
        width: var(--financial-current-width);
        text-align: right;
    }

    #trend-ticker-page .financials-summary-header-trend {
        width: var(--financial-trend-width);
        justify-content: center;
        text-align: center;
    }

    #trend-ticker-page .financials-summary-item {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 20px;
        padding: 12px 16px;
        border-radius: 12px;
        background: rgba(15, 23, 42, 0.4);
        border: 1px solid rgba(148, 163, 184, 0.14);
    }

    #trend-ticker-page .financials-summary-item-label {
        font-size: 0.85rem;
        letter-spacing: 0.04em;
        color: #e2e8f0;
        flex: 1;
        text-align: left;
        line-height: 1.4;
    }

    #trend-ticker-page .financials-summary-item-current {
        font-size: 0.92rem;
        font-weight: 600;
        color: #f8fafc;
        letter-spacing: 0.03em;
        text-align: right;
        width: var(--financial-current-width);
    }

    #trend-ticker-page .financials-summary-item-data {
        display: flex;
        align-items: stretch;
        justify-content: flex-end;
        gap: 24px;
        flex-shrink: 0;
    }

    #trend-ticker-page .financials-summary-cell {
        display: flex;
        flex-direction: column;
        align-items: flex-end;
        gap: 6px;
    }

    #trend-ticker-page .financials-summary-cell-current {
        min-width: var(--financial-current-width);
    }

    #trend-ticker-page .financials-summary-cell-trend {
        min-width: var(--financial-trend-width);
    }

    #trend-ticker-page .financials-summary-cell-label {
        display: none;
        font-size: 0.65rem;
        letter-spacing: 0.08em;
        text-transform: uppercase;
        color: #94a3b8;
    }

    #trend-ticker-page .financials-summary-chart {
        width: var(--financial-trend-width);
        height: 44px;
        flex-shrink: 0;
    }

    #trend-ticker-page .company-insights {
        margin-top: 12px;
        display: none;
        width: 100%;
        gap: 18px;
        flex-direction: column;
        flex-wrap: nowrap;
        align-items: stretch;
    }

    #trend-ticker-page .company-insights .insight-card {
        flex: 0 0 auto;
        box-sizing: border-box;
        width: 100%;
        min-width: 0;
        display: flex;
        flex-direction: column;
        gap: 12px;
        background: rgba(30, 35, 40, 0.9);
        border: 1px solid rgba(148, 163, 184, 0.18);
        border-radius: 14px;
        padding: 18px 20px;
        box-shadow: 0 14px 32px rgba(6, 8, 15, 0.35);
    }

    #trend-ticker-page .financials-summary {
        flex: 1;
        display: flex;
        flex-direction: column;
        gap: 16px;
    }

    #trend-ticker-page .financials-summary-list {
        flex: 1;
        display: flex;
        flex-direction: column;
        gap: 12px;
        margin: 0;
        padding: 0;
        list-style: none;
    }

    #trend-ticker-page .insight-card h3 {
        margin: 0;
        font-size: 0.9rem;
        font-weight: 700;
        color: #e2e8f0;
        letter-spacing: 0.04em;
    }

    #trend-ticker-page .insight-chart {
        width: 100%;
        flex: 1 1 auto;
        min-height: 260px;
    }

    #trend-ticker-page .insight-empty {
        display: none;
        align-items: center;
        justify-content: center;
        flex: 1;
        color: #64748b;
        border: 1px dashed rgba(148, 163, 184, 0.25);
        border-radius: 12px;
        padding: 24px 12px;
        font-size: 0.8rem;
        letter-spacing: 0.05em;
    }

    @media (max-width: 768px) {
        #trend-ticker-page .info-locked {
            flex-direction: column;
            align-items: flex-start;
        }

        #trend-ticker-page .info-locked .locked-actions {
            width: 100%;
            justify-content: flex-start;
        }

        #trend-ticker-page .info-locked .locked-button {
            width: 100%;
            justify-content: center;
        }

        #trend-ticker-page .company-metrics.is-collapsed .company-metrics-item.is-extra {
            display: none;
        }

        #trend-ticker-page .company-metrics-toggle {
            display: inline-flex;
        }

        #trend-ticker-page .company-insights {
            flex-direction: column;
        }

        #trend-ticker-page .ticker-hero-top {
            display: grid;
            grid-template-columns: 1fr auto;
            gap: 12px;
            align-items: start;
            width: 100%;
        }

        #trend-ticker-page .ticker-hero-actions {
            width: auto;
            margin: 0;
            display: flex;
            gap: 8px;
            flex-wrap: nowrap;
        }

        #trend-ticker-page .ticker-watchlist-btn {
            width: 36px;
            height: 36px;
            padding: 0;
            display: flex;
            align-items: center;
            justify-content: center;
            border-radius: 50%;
            border: 1px solid rgba(248, 250, 252, 0.8);
            background: transparent;
            color: #f8fafc;
            box-shadow: none;
        }

        #trend-ticker-page .ticker-watchlist-btn.is-watchlisted {
            border-color: rgba(125, 184, 255, 0.65);
            color: #7db8ff;
            background: rgba(125, 184, 255, 0.15);
        }

        #trend-ticker-page .ticker-watchlist-btn .watchlist-label {
            display: none;
        }

        #trend-ticker-page .ticker-valuation-btn {
            font-size: 0 !important;
            width: 36px;
            height: 36px;
            padding: 0 !important;
            display: inline-flex !important;
            align-items: center;
            justify-content: center;
            border-radius: 50%;
            min-width: unset;
        }

        #trend-ticker-page .ticker-valuation-btn .fas,
        #trend-ticker-page .ticker-watchlist-btn .watchlist-icon {
            font-size: 1.1rem !important;
            margin: 0 !important;
            line-height: 1;
        }

        #trend-ticker-page .ticker-company-name {
            font-size: 1.4rem;
            line-height: 1.3;
        }

        #trend-ticker-page .ticker-actions {
            flex-direction: row;
            align-items: center;
            justify-content: flex-start;
        }

        #trend-ticker-page .chart-card-tools {
            width: 100%;
            margin-left: 0;
            gap: 4px;
            justify-content: flex-end;
        }

        #trend-ticker-page .valuation-helper-card {
            flex-direction: column;
            align-items: flex-start;
        }

        #trend-ticker-page .valuation-helper-actions {
            width: 100%;
            align-items: flex-start;
            min-width: 0;
        }

        #trend-ticker-page .valuation-helper-button {
            width: 100%;
            justify-content: center;
        }

        #trend-ticker-page .valuation-helper-note {
            text-align: left;
        }

        #trend-ticker-page .trend-strategy-insights {
            flex-direction: column;
        }

        #trend-ticker-chart {
            height: 200px;
        }

        #trend-ticker-page .chart-card-header {
            position: relative;
            width: 100%;
            justify-content: flex-start;
            align-items: flex-start;
            gap: 8px;
            padding-right: 120px;
        }

        #trend-ticker-page .chart-legends {
            width: 100%;
            min-width: 0;
        }

        #trend-ticker-page .chart-range-toggle {
            position: absolute;
            top: 0;
            right: 0;
            width: auto;
            justify-content: flex-end;
            transform: scale(0.9);
            transform-origin: top right;
            padding: 2px;
        }

        #trend-ticker-page .chart-range-button {
            font-size: 0.68rem;
            padding: 4px 10px;
        }

        #trend-ticker-page .history-entry {
            gap: 6px;
        }

        #trend-ticker-page .financials-summary-item {
            flex-direction: column;
            align-items: flex-start;
            gap: 8px;
        }

        #trend-ticker-page .financials-summary-item-label {
            width: 100%;
        }

        #trend-ticker-page .financials-summary-item-data {
            width: 100%;
            flex-direction: row;
            align-items: flex-start;
            justify-content: space-between;
            gap: 18px;
        }

        #trend-ticker-page .financials-summary-card {
            --financial-current-width: 100px;
            --financial-trend-width: 100%;
        }

        #trend-ticker-page .financials-summary-header-columns {
            width: 100%;
            justify-content: space-between;
            gap: 12px;
        }

        #trend-ticker-page .financials-summary-header-current,
        #trend-ticker-page .financials-summary-header-trend {
            width: auto;
            justify-content: flex-end;
        }

        #trend-ticker-page .financials-summary-header {
            flex-direction: column;
            align-items: flex-start;
            gap: 6px;
        }

        #trend-ticker-page .financials-summary-header-columns {
            gap: 16px;
        }

        #trend-ticker-page .financials-summary-chart {
            width: 100%;
            height: 64px;
        }

        #trend-ticker-page .financials-summary-cell {
            align-items: flex-start;
            gap: 4px;
        }

        #trend-ticker-page .financials-summary-item-current {
            width: 100%;
            text-align: left;
        }

        #trend-ticker-page .financials-summary-cell-label {
            display: inline-flex;
        }

        #trend-ticker-page .financials-summary-cell-current {
            flex: 0 1 40%;
            min-width: 0;
            width: auto;
        }

        #trend-ticker-page .financials-summary-cell-trend {
            flex: 1 1 60%;
            min-width: 0;
            width: auto;
        }

        #trend-ticker-page .financials-summary-chart {
            min-height: 64px;
            height: 64px;
        }

        #trend-ticker-page .insider-table th,
        #trend-ticker-page .insider-table td {
            padding: 8px 10px;
            font-size: 0.78rem;
        }

        #trend-ticker-page .insider-table-wrapper {
            max-height: 260px;
        }

        #trend-ticker-page .insider-name {
            font-size: 0.9rem;
        }

        #trend-ticker-page .insider-title {
            font-size: 0.72rem;
        }

        #trend-ticker-page .company-insights .insight-card {
            flex: 1 1 auto;
            width: 100%;
        }

        #trend-ticker-page .insight-chart {
            min-height: 220px;
        }

        #trend-ticker-page .insider-line-chart {
            height: 220px;
        }

        #trend-ticker-page .insider-chart-wrapper {
            min-height: 220px;
        }
    }

    /* Reversal Radar Badge */
    #trend-ticker-page .ticker-reversal-badge {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        padding: 6px 14px;
        background: rgba(255, 255, 255, 0.05);
        border: 1px solid rgba(255, 255, 255, 0.1);
        border-radius: 20px;
        font-size: 0.85rem;
        color: #ffffff;
        margin-top: 12px;
        transition: all 0.2s ease;
        line-height: 1.4;
    }

    /* Status Colors */
    #trend-ticker-page .ticker-reversal-badge.is-warning {
        background: rgba(245, 158, 11, 0.1);
        border-color: rgba(245, 158, 11, 0.3);
        color: #ffffff;
    }

    #trend-ticker-page .ticker-reversal-badge.is-danger {
        background: rgba(239, 68, 68, 0.1);
        border-color: rgba(239, 68, 68, 0.3);
        color: #ffffff;
    }

    #trend-ticker-page .ticker-reversal-badge.blink-red {
        animation: pulse-red 2s infinite;
    }

    #trend-ticker-page .ticker-reversal-badge.is-safe,
    #trend-ticker-page .ticker-reversal-badge.is-success {
        background: rgba(34, 197, 94, 0.1);
        border-color: rgba(34, 197, 94, 0.3);
        color: #ffffff;
    }

    #trend-ticker-page .ticker-reversal-badge.is-info,
    #trend-ticker-page .ticker-reversal-badge.is-primary {
        background: rgba(59, 130, 246, 0.1);
        border-color: rgba(59, 130, 246, 0.3);
        color: #ffffff;
    }

    #trend-ticker-page .ticker-reversal-badge.is-dark {
        background: rgba(148, 163, 184, 0.1);
        border-color: rgba(148, 163, 184, 0.3);
        color: #ffffff;
    }

    /* Internal Elements */
    #trend-ticker-page .ticker-reversal-badge .separator {
        color: rgba(255, 255, 255, 0.2);
        margin: 0 4px;
    }

    #trend-ticker-page .ticker-reversal-badge .detail-text {
        font-size: 0.8em;
        opacity: 0.7;
        margin-left: 4px;
    }

    #trend-ticker-page .ticker-reversal-badge .health-badge {
        font-weight: 600;
        font-size: 0.85em;
        padding: 1px 6px;
        border-radius: 4px;
        background: rgba(255, 255, 255, 0.1);
    }

    #trend-ticker-page .ticker-reversal-badge i {
        font-size: 1.1em;
        margin-right: 2px;
    }

    @keyframes pulse-red {
        0% {
            box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.4);
        }

        70% {
            box-shadow: 0 0 0 6px rgba(239, 68, 68, 0);
        }

        100% {
            box-shadow: 0 0 0 0 rgba(239, 68, 68, 0);
        }
    }

    /* New Score Colors */
    #trend-ticker-page .text-emerald-500 {
        color: #10b981 !important;
    }

    #trend-ticker-page .text-green-500 {
        color: #22c55e !important;
    }

    #trend-ticker-page .text-green-600 {
        color: #16a34a !important;
    }

    #trend-ticker-page .text-yellow-500 {
        color: #eab308 !important;
    }

    #trend-ticker-page .text-gray-400 {
        color: #9ca3af !important;
    }

    #trend-ticker-page .text-orange-500 {
        color: #f97316 !important;
    }

    #trend-ticker-page .text-red-500 {
        color: #ef4444 !important;
    }

    #trend-ticker-page .text-red-600 {
        color: #dc2626 !important;
    }

    /* New ATR Colors */
    #trend-ticker-page .text-orange-400 {
        color: #fb923c !important;
    }

    #trend-ticker-page .text-blue-400 {
        color: #60a5fa !important;
    }

    /* Animation */
    @keyframes pulse-opacity {

        0%,
        100% {
            opacity: 1;
        }

        50% {
            opacity: 0.5;
        }
    }

    #trend-ticker-page .animate-pulse {
        animation: pulse-opacity 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
    }

    /* ============================================
               Institutional Holdings (Schedule 13D/13G)
               ============================================ */
    #trend-ticker-page .institutional-holdings-card {
        display: flex;
        flex-direction: column;
        gap: 16px;
    }

    #trend-ticker-page .institutional-badge {
        font-size: 0.75rem;
        letter-spacing: 0.05em;
        color: #94a3b8;
        background: rgba(148, 163, 184, 0.16);
        padding: 2px 8px;
        border-radius: 999px;
    }

    #trend-ticker-page .institutional-holdings-list {
        display: flex;
        flex-direction: column;
        gap: 10px;
    }

    #trend-ticker-page .institutional-filer-row {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 8px;
        padding: 10px 14px;
        border-radius: 10px;
        background: rgba(15, 23, 42, 0.7);
        border: 1px solid rgba(148, 163, 184, 0.16);
        font-size: 0.88rem;
    }

    #trend-ticker-page .institutional-filer-name {
        flex: 1 1 200px;
        min-width: 0;
        color: #e2e8f0;
        font-weight: 500;
        word-break: break-word;
    }

    #trend-ticker-page .institutional-filer-pct {
        font-weight: 700;
        color: #facc15;
        min-width: 50px;
        text-align: right;
    }

    #trend-ticker-page .institutional-form-badge {
        display: inline-flex;
        align-items: center;
        padding: 2px 8px;
        border-radius: 999px;
        font-size: 0.72rem;
        font-weight: 600;
        background: rgba(148, 163, 184, 0.18);
        color: #cbd5f5;
    }

    #trend-ticker-page .institutional-form-badge.is-activist {
        background: rgba(248, 113, 113, 0.18);
        color: #fb7185;
    }

    #trend-ticker-page .institutional-filing-date {
        font-size: 0.78rem;
        color: #94a3b8;
    }

    #trend-ticker-page .institutional-source-note {
        margin: 8px 0 0;
        font-size: 0.74rem;
        color: #64748b;
    }

    /* Tracked activist investor highlighting */
    #trend-ticker-page .institutional-filer-name.is-tracked {
        color: #f59e0b;
        font-weight: 600;
    }

    #trend-ticker-page .institutional-filer-name.is-tracked a {
        color: #f59e0b;
        text-decoration: none;
    }

    #trend-ticker-page .institutional-filer-name.is-tracked a:hover {
        text-decoration: underline;
        color: #fbbf24;
    }

    /* Info icon for tooltips */
    #trend-ticker-page .institutional-info-icon {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        margin-left: 4px;
        font-size: 0.75rem;
        cursor: help;
        opacity: 0.7;
        color: #94a3b8;
        text-decoration: underline;
        transition: opacity 0.2s ease;
    }

    #trend-ticker-page .institutional-info-icon:hover {
        opacity: 1;
    }

    /* Tooltip styles */
    #trend-ticker-page .institutional-tooltip {
        position: absolute;
        background: #ffffff;
        color: #0f172a;
        padding: 12px 16px;
        border-radius: 10px;
        font-size: 0.88rem;
        line-height: 1.6;
        max-width: 320px;
        z-index: 9999;
        border: 1px solid rgba(226, 232, 240, 0.8);
        box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.3);
        pointer-events: none;
        opacity: 0;
        transition: opacity 0.2s ease;
        text-align: left;
        font-weight: 500;
    }

    #trend-ticker-page .institutional-tooltip.visible {
        opacity: 1;
        pointer-events: auto;
    }

    /* ==================================== */
    /* Intent Preservation - Notify Button */
    /* ==================================== */
    #trend-ticker-page .ticker-notify-cta {
        display: inline-flex;
    }

    #trend-ticker-page .ticker-reversal-badge {
        margin-top: 0;
        /* Reset margin when in flex row */
    }

    #trend-ticker-page .ticker-notify-btn {
        display: inline-flex;
        align-items: center;
        gap: 4px;
        padding: 4px 10px;
        border-radius: 999px;
        border: 1px solid rgba(59, 130, 246, 0.4);
        background: rgba(59, 130, 246, 0.12);
        color: #7dd3fc;
        font-size: 0.78rem;
        font-weight: 500;
        cursor: pointer;
        transition: all 0.2s ease;
    }

    #trend-ticker-page .ticker-notify-btn:hover,
    #trend-ticker-page .ticker-notify-btn:focus-visible {
        background: rgba(59, 130, 246, 0.25);
        border-color: rgba(59, 130, 246, 0.6);
        outline: none;
    }

    #trend-ticker-page .ticker-notify-btn .notify-icon {
        font-size: 0.85rem;
    }

    #trend-ticker-page .ticker-notify-btn .notify-label {
        white-space: nowrap;
    }

    #trend-ticker-page .ticker-notify-btn .notify-hint {
        font-size: 0.65rem;
        color: #94a3b8;
        margin-left: 2px;
    }

    #trend-ticker-page .ticker-notify-btn.is-tracked {
        background: rgba(34, 197, 94, 0.12);
        border-color: rgba(34, 197, 94, 0.4);
        color: #4ade80;
        cursor: default;
    }

    #trend-ticker-page .ticker-notify-btn.is-tracked:hover {
        background: rgba(34, 197, 94, 0.12);
    }

    /* ==================================== */
    /* Intent Preservation - Telegram Modal */
    /* ==================================== */
    .tc-modal {
        position: fixed;
        inset: 0;
        z-index: 10000;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 16px;
    }

    .tc-modal-overlay {
        position: absolute;
        inset: 0;
        background: rgba(0, 0, 0, 0.75);
        backdrop-filter: blur(4px);
    }

    .tc-modal-content {
        position: relative;
        width: min(440px, 90vw);
        background: linear-gradient(165deg, #1e293b 0%, #0f172a 100%);
        border: 1px solid rgba(148, 163, 184, 0.25);
        border-radius: 18px;
        box-shadow: 0 30px 60px -12px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(255, 255, 255, 0.05);
        overflow: hidden;
        animation: tcModalIn 0.25s ease-out;
    }

    @keyframes tcModalIn {
        from {
            opacity: 0;
            transform: scale(0.92) translateY(12px);
        }

        to {
            opacity: 1;
            transform: scale(1) translateY(0);
        }
    }

    .tc-modal-header {
        text-align: center;
        padding: 28px 24px 18px;
        background: linear-gradient(165deg, rgba(52, 211, 153, 0.1) 0%, rgba(59, 130, 246, 0.05) 100%);
    }

    .tc-modal-icon {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 52px;
        height: 52px;
        font-size: 1.7rem;
        background: rgba(34, 197, 94, 0.18);
        border-radius: 50%;
        margin-bottom: 10px;
    }

    .tc-modal-title {
        font-size: 1.2rem;
        font-weight: 700;
        color: #f8fafc;
        margin: 0;
        letter-spacing: 0.02em;
    }

    #tc-modal-ticker {
        color: #7dd3fc;
    }

    .tc-modal-body {
        padding: 0 28px 20px;
        text-align: center;
    }

    .tc-modal-body p {
        margin: 0 0 18px;
        font-size: 0.92rem;
        color: #cbd5f5;
        line-height: 1.6;
    }

    .tc-modal-features {
        display: flex;
        flex-direction: column;
        gap: 10px;
        background: rgba(15, 23, 42, 0.7);
        border: 1px solid rgba(148, 163, 184, 0.15);
        border-radius: 12px;
        padding: 16px;
    }

    .tc-feature {
        display: flex;
        align-items: center;
        gap: 10px;
        font-size: 0.85rem;
        color: #e2e8f0;
    }

    .tc-feature i {
        font-size: 0.9rem;
        color: #38bdf8;
        width: 20px;
    }

    .tc-modal-footer {
        padding: 20px 28px 28px;
        display: flex;
        flex-direction: column;
        gap: 10px;
    }

    .tc-telegram-btn {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 10px;
        padding: 14px 28px;
        background: linear-gradient(135deg, #229ED9 0%, #1d8fc5 100%);
        color: #fff;
        font-size: 1rem;
        font-weight: 700;
        letter-spacing: 0.04em;
        border: none;
        border-radius: 12px;
        text-decoration: none;
        cursor: pointer;
        box-shadow: 0 12px 28px rgba(34, 158, 217, 0.35);
        transition: all 0.2s ease;
    }

    .tc-telegram-btn:hover,
    .tc-telegram-btn:focus-visible {
        background: linear-gradient(135deg, #1d8fc5 0%, #187eb0 100%);
        transform: translateY(-2px);
        box-shadow: 0 16px 36px rgba(34, 158, 217, 0.45);
        outline: none;
    }

    .tc-telegram-btn i {
        font-size: 1.15rem;
    }

    .tc-skip-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 12px 24px;
        background: transparent;
        border: 1px solid rgba(148, 163, 184, 0.3);
        border-radius: 12px;
        color: #94a3b8;
        font-size: 0.88rem;
        font-weight: 500;
        cursor: pointer;
        transition: all 0.2s ease;
    }

    .tc-skip-btn:hover,
    .tc-skip-btn:focus-visible {
        background: rgba(148, 163, 184, 0.08);
        color: #e2e8f0;
        outline: none;
    }

    /* ==================================== */
    /* Feature Guide Modal                  */
    /* ==================================== */
    .fg-subtitle {
        font-size: 0.92rem;
        color: #94a3b8;
        margin: 6px 0 0;
        font-weight: 400;
    }

    .fg-subtitle #fg-modal-ticker {
        color: #7dd3fc;
        font-weight: 600;
    }

    .fg-features-btn {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 10px;
        padding: 14px 28px;
        background: linear-gradient(135deg, #10b981 0%, #059669 100%);
        color: #fff;
        font-size: 1rem;
        font-weight: 700;
        letter-spacing: 0.04em;
        border: none;
        border-radius: 12px;
        text-decoration: none;
        cursor: pointer;
        box-shadow: 0 12px 28px rgba(16, 185, 129, 0.35);
        transition: all 0.2s ease;
    }

    .fg-features-btn:hover,
    .fg-features-btn:focus-visible {
        background: linear-gradient(135deg, #059669 0%, #047857 100%);
        transform: translateY(-2px);
        box-shadow: 0 16px 36px rgba(16, 185, 129, 0.45);
        outline: none;
        color: #fff;
    }

    .fg-features-btn i {
        font-size: 1.15rem;
    }

    /* ==========================================
       Gating CTA — truncation upsell blocks
       ========================================== */
    .gating-cta-row td {
        padding: 12px 16px;
        background: rgba(16, 185, 129, 0.05);
        border-top: 1px dashed rgba(16, 185, 129, 0.3);
    }

    .gating-cta-block {
        padding: 12px 16px;
        background: rgba(16, 185, 129, 0.05);
        border-radius: 8px;
        border: 1px dashed rgba(16, 185, 129, 0.3);
        margin-top: 8px;
    }

    .gating-cta-inline {
        display: flex;
        align-items: center;
        gap: 10px;
        flex-wrap: wrap;
    }

    .gating-lock-icon {
        font-size: 1rem;
        flex-shrink: 0;
    }

    .gating-message {
        color: #9ca3af;
        font-size: 0.85rem;
        flex: 1;
        min-width: 0;
    }

    .gating-cta-button {
        display: inline-block;
        padding: 6px 14px;
        background: linear-gradient(135deg, #10b981 0%, #059669 100%);
        color: #fff !important;
        font-size: 0.82rem;
        font-weight: 600;
        border-radius: 6px;
        text-decoration: none;
        white-space: nowrap;
        transition: background 0.2s ease, transform 0.15s ease;
    }

    .gating-cta-button:hover {
        background: linear-gradient(135deg, #059669 0%, #047857 100%);
        transform: translateY(-1px);
        color: #fff !important;
        text-decoration: none;
    }

/* ═══ [CONTEXT_BANNER] 動態上下文 Banner ═══ */
.ticker-context-banner {
  background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
  border: 1px solid rgba(255, 214, 0, 0.3);
  border-radius: 12px;
  padding: 16px 20px;
  margin-bottom: 16px;
  position: relative;
}

/* Lab-only marker: keep the clone visibly distinct from the production page. */

.context-banner-content {
  display: flex;
  align-items: center;
  gap: 14px;
}
.context-banner-icon {
  font-size: 24px;
  flex-shrink: 0;
}
.context-banner-text {
  flex: 1;
  min-width: 0;
}
.context-banner-title {
  color: #ffd600;
  font-weight: 600;
  font-size: 14px;
  margin: 0 0 4px;
}
.context-banner-desc {
  color: rgba(255,255,255,0.75);
  font-size: 13px;
  margin: 0;
}
.context-banner-actions {
  display: flex;
  gap: 8px;
  flex-shrink: 0;
}
.context-banner-actions a {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 8px 14px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
  transition: all 0.2s;
}
.context-banner-actions .btn-primary {
  background: #ffd600;
  color: #1a1a2e;
}
.context-banner-actions .btn-primary:hover {
  background: #ffe033;
}
.context-banner-actions .btn-ghost {
  border: 1px solid rgba(255,255,255,0.3);
  color: rgba(255,255,255,0.85);
}
.context-banner-actions .btn-ghost:hover {
  background: rgba(255,255,255,0.08);
}
.context-banner-close {
  position: absolute;
  top: 8px;
  right: 10px;
  background: none;
  border: none;
  color: rgba(255,255,255,0.4);
  font-size: 18px;
  cursor: pointer;
  padding: 4px;
  line-height: 1;
}
.context-banner-close:hover {
  color: rgba(255,255,255,0.8);
}
@media (max-width: 640px) {
  .context-banner-content {
    flex-wrap: wrap;
  }
  .context-banner-actions {
    width: 100%;
    margin-top: 8px;
  }
  .context-banner-actions a {
    flex: 1;
    justify-content: center;
  }
}

/* ═══ [DEEP_RESEARCH] 相關深度研報列表 ═══ */
.deep-research-section {
  margin-top: 12px;
  margin-bottom: 16px;
  padding: 10px 14px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 8px;
}
.dr-list-header {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 8px;
  font-size: 12px;
  color: #94a3b8;
}
.dr-list-icon { font-size: 14px; }
.dr-list-title { font-weight: 500; letter-spacing: 0.02em; }
.deep-research-status {
  margin: 6px 0 2px;
  padding: 12px;
  border: 1px dashed rgba(148, 163, 184, 0.24);
  border-radius: 9px;
  color: #94a3b8;
  font-size: 0.82rem;
}
.deep-research-status[data-state="error"] {
  border-color: rgba(248, 113, 113, 0.4);
  color: #fecaca;
}
.deep-research-list {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.dr-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 6px;
  text-decoration: none;
  color: #cbd5e1;
  font-size: 13px;
  line-height: 1.4;
  transition: background 0.15s ease;
  min-width: 0;
}
.dr-item:hover {
  background: rgba(255, 255, 255, 0.04);
  color: #f1f5f9;
}
.dr-item-body {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}
.dr-item-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  min-width: 0;
}
.dr-item-tag {
  flex-shrink: 0;
  padding: 2px 7px;
  border-radius: 3px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.dr-item-tag--bull { background: rgba(74, 222, 128, 0.1); color: #86efac; }
.dr-item-tag--bear { background: rgba(248, 113, 113, 0.1); color: #fca5a5; }
.dr-item-tag--neutral { background: rgba(251, 191, 36, 0.1); color: #fcd34d; }
.dr-item-theme {
  min-width: 0;
  color: #94a3b8;
  font-size: 11px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.dr-item-title {
  display: block;
  min-width: 0;
  color: #e2e8f0;
  font-weight: 700;
  overflow-wrap: anywhere;
  white-space: normal;
}
.dr-item-summary {
  display: -webkit-box;
  min-width: 0;
  color: #94a3b8;
  font-size: 12px;
  line-height: 1.45;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.dr-item-tickers {
  display: block;
  max-width: 100%;
  color: #86efac;
  font-size: 11px;
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.dr-item-arrow {
  flex-shrink: 0;
  font-size: 10px;
  color: #64748b;
}
.dr-item:hover .dr-item-arrow { color: #2dd4bf; }

@media (max-width: 600px) {
  .deep-research-section {
    padding: 10px 12px;
  }
  .dr-item {
    align-items: start;
    font-size: 12px;
    padding: 10px;
  }
  .dr-item-theme {
    flex-basis: 100%;
  }
  .dr-item-arrow {
    padding-top: 4px;
  }
}

/* 額外篇章（預設摺疊）+ 展開按鈕 */
.dr-list-more {
  margin-top: 0;
}
/* !important 必要：機構持股區塊的 #trend-ticker-page .institutional-holdings-list
   specificity (1,1,0) 含 ID，會蓋掉一般 [hidden] (0,2,0)。
   用 !important 確保任何 cascade 衝突下都能正確隱藏。 */
.dr-list-more[hidden] {
  display: none !important;
}
.dr-show-more-btn[hidden] {
  display: none !important;
}
.dr-show-more-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
  padding: 8px 14px;
  background: transparent;
  border: 1px solid rgba(45, 212, 191, 0.35);
  border-radius: 999px;
  color: #2dd4bf;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.02em;
  cursor: pointer;
  transition: background 0.18s ease, border-color 0.18s ease;
}
.dr-show-more-btn:hover,
.dr-show-more-btn:focus-visible {
  background: rgba(45, 212, 191, 0.08);
  border-color: rgba(45, 212, 191, 0.6);
  outline: none;
}
.dr-show-more-icon {
  transition: transform 0.18s ease;
  font-size: 11px;
}
.dr-show-more-icon--open {
  transform: rotate(180deg);
}

/* ═══ [REPORT_MENTION] 報告關聯提示 ═══ */
.ticker-report-mention {
  background: rgba(255, 214, 0, 0.06);
  border: 1px solid rgba(255, 214, 0, 0.15);
  border-radius: 10px;
  padding: 12px 16px;
  margin-bottom: 16px;
}
.report-mention-content {
  display: flex;
  align-items: center;
  gap: 12px;
}
.report-mention-icon { font-size: 20px; flex-shrink: 0; }
.report-mention-text {
  flex: 1;
  color: rgba(255,255,255,0.7);
  font-size: 13px;
}
.report-mention-link {
  color: #ffd600;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
}
.report-mention-link:hover { text-decoration: underline; }

/* ============================================================
   SEO: Static content block for search engines
   ============================================================ */
/* 對使用者隱藏（sr-only 技巧），但爬蟲仍可讀取 HTML 內容 */
.ticker-seo-content {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
.ticker-seo-content h2 {
    color: #cbd5e1;
    font-size: 1.1rem;
    font-weight: 600;
    margin: 0 0 12px;
}
.ticker-seo-content h3 {
    color: #94a3b8;
    font-size: 0.95rem;
    font-weight: 600;
    margin: 24px 0 8px;
}
.ticker-seo-content p {
    margin: 0 0 12px;
}
.seo-data-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 4px 24px;
    margin: 0;
    padding: 0;
}
.seo-data-grid dt {
    color: #64748b;
    font-size: 0.82rem;
    margin: 0;
    padding-top: 6px;
}
.seo-data-grid dd {
    color: #cbd5e1;
    font-weight: 500;
    margin: 0 0 4px;
    padding: 0;
}
.seo-fundamentals + .seo-fundamentals {
    margin-top: 16px;
    padding-top: 12px;
    border-top: 1px dashed #1e293b;
}
.seo-positive { color: #4ade80; }
.seo-negative { color: #f87171; }
.seo-disclaimer {
    color: #475569;
    font-size: 0.78rem;
    font-style: italic;
}
.seo-disclaimer a {
    color: #60a5fa;
    text-decoration: none;
}
.seo-disclaimer a:hover { text-decoration: underline; }
.seo-backtest-subtitle {
    color: #64748b;
    font-size: 0.82rem;
    margin: 0 0 8px;
}
.seo-links {
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid #1e293b;
}
.seo-links h3 {
    margin-bottom: 6px;
}
.seo-links a {
    color: #60a5fa;
    text-decoration: none;
}
.seo-links a:hover {
    text-decoration: underline;
}
/* ═══ Insider Pattern Insight ═══ */
.insider-pattern-insight {
    background: rgba(34, 197, 94, 0.06);
    border: 1px solid rgba(34, 197, 94, 0.15);
    border-radius: 8px;
    padding: 10px 14px;
    margin: 0 0 12px 0;
    font-size: 0.88rem;
    color: #cbd5e1;
    line-height: 1.5;
}
.insider-pattern-insight .insight-highlight { color: #4ade80; font-weight: 600; }
.insider-pattern-insight .insight-detail { color: #94a3b8; font-size: 0.82rem; }
/* ═══ Research Path Guide ═══ */
.research-path-guide {
    flex-basis: 100%;
    width: 100%;
    background: rgba(30, 41, 59, 0.5);
    border: 1px solid rgba(148, 163, 184, 0.1);
    border-radius: 12px;
    padding: 20px;
}
.research-path-title { font-size: 0.95rem; font-weight: 700; color: #e2e8f0; margin: 0 0 14px; }
.research-path-list { display: flex; flex-direction: column; gap: 10px; margin-bottom: 16px; }
.research-path-item {
    display: flex; flex-direction: column; gap: 2px;
    padding: 10px 14px; background: rgba(255, 255, 255, 0.03);
    border-radius: 8px; text-decoration: none; transition: background 0.2s;
}
.research-path-item:hover { background: rgba(255, 255, 255, 0.06); }
.rp-label { font-size: 0.9rem; font-weight: 600; color: #60a5fa; }
.rp-desc { font-size: 0.82rem; color: #94a3b8; }
.research-path-cta { text-align: center; }
.research-path-trial-btn {
    display: inline-block;
    background: linear-gradient(135deg, #22c55e, #16a34a);
    color: #fff; font-weight: 700; font-size: 0.9rem;
    padding: 10px 24px; border-radius: 8px;
    text-decoration: none; transition: opacity 0.2s;
}
.research-path-trial-btn:hover { opacity: 0.9; color: #fff; }
.locked-hint {
    display: block;
    color: #64748b;
    font-size: 0.8rem;
    margin-top: 6px;
    text-align: center;
}
/* ═══ Soft Wall Summary ═══ */
.backtest-summary, .history-summary {
    padding: 16px;
    text-align: center;
}
.summary-stat-row {
    display: flex;
    justify-content: center;
    gap: 24px;
    margin-bottom: 12px;
    flex-wrap: wrap;
}
.summary-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
}
.summary-stat .stat-value {
    font-size: 1.6rem;
    font-weight: 700;
    color: #e2e8f0;
}
.summary-stat .stat-label {
    font-size: 0.8rem;
    color: #94a3b8;
    margin-top: 4px;
}
.summary-hint {
    color: #64748b;
    font-size: 0.85rem;
    margin: 12px 0;
}
.summary-text {
    color: #cbd5e1;
    font-size: 0.95rem;
}
/* ═══ Exit Tracking Prompt ═══ */
.exit-tracking-prompt {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 9998;
    background: linear-gradient(135deg, #1e293b, #0f172a);
    border-top: 1px solid rgba(59, 130, 246, 0.3);
    padding: 14px 20px;
    animation: etpSlideUp 0.4s ease-out;
}
.etp-content {
    max-width: 800px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}
.etp-text { flex: 1; min-width: 200px; color: #cbd5e1; font-size: 0.9rem; }
.etp-cta {
    background: #3b82f6; color: #fff; font-weight: 700; font-size: 0.85rem;
    padding: 8px 18px; border-radius: 6px; text-decoration: none;
    white-space: nowrap; transition: background 0.2s;
}
.etp-cta:hover { background: #2563eb; color: #fff; }
.etp-close {
    background: none; border: none; color: #64748b;
    font-size: 1rem; cursor: pointer; padding: 4px 8px;
}
.etp-close:hover { color: #94a3b8; }
@keyframes etpSlideUp {
    from { transform: translateY(100%); }
    to { transform: translateY(0); }
}

/* ═══ Checkout Login Modal ═══ */
.tc-clm-overlay {
    position: fixed; inset: 0; z-index: 10000;
    background: rgba(0,0,0,0.55); backdrop-filter: blur(2px);
    display: flex; align-items: center; justify-content: center;
    animation: tcClmFadeIn 0.2s ease;
}
@keyframes tcClmFadeIn { from { opacity: 0; } to { opacity: 1; } }
.tc-clm-card {
    background: #1a1a2e; border: 1px solid rgba(255,255,255,0.1);
    border-radius: 16px; padding: 40px 32px; max-width: 380px; width: 90%;
    text-align: center; position: relative;
    box-shadow: 0 8px 32px rgba(0,0,0,0.4);
}
.tc-clm-close {
    position: absolute; top: 12px; right: 16px;
    background: none; border: none; color: #888; font-size: 24px; cursor: pointer;
    line-height: 1;
}
.tc-clm-close:hover { color: #fff; }
.tc-clm-title { color: #fff; font-size: 1.3rem; margin: 0 0 8px; font-weight: 600; }
.tc-clm-lead { color: #aaa; font-size: 0.9rem; margin: 0 0 24px; line-height: 1.5; }
#tc-clm-google-btn { display: flex; justify-content: center; }

/* ── Reversal Radar lock styles (2026-04-29) ── */
.rr-locked {
  font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
  letter-spacing: 0.18em;
  color: #94a3b8;
  font-weight: 700;
}
.rr-unlock-cta {
  display: inline-block;
  margin-left: 6px;
  padding: 2px 10px;
  font-size: 0.78em;
  font-weight: 600;
  background: linear-gradient(135deg, #f59e0b, #d97706);
  color: #fff !important;
  border-radius: 999px;
  text-decoration: none !important;
  transition: filter 0.2s, transform 0.2s;
  vertical-align: middle;
  white-space: nowrap;
}
.rr-unlock-cta:hover {
  filter: brightness(1.1);
  transform: translateY(-1px);
  text-decoration: none !important;
}

/* ═══ TW Key Metrics Card ═══ */

/* ── 月營收動能卡（台股獨有高頻基本面）── */
#trend-ticker-page .tw-month-revenue-chart {
  width: 100%;
  min-height: 320px;
}
#trend-ticker-page .tw-month-revenue-note {
  margin-top: 10px;
  font-size: 0.72rem;
  color: #e2e8f0;
}

/* 2026-09-03 SEO：H1 補上公司名與主題，與 <title> 對齊 */
#trend-ticker-page .ticker-h1-symbol { font-weight: 800; }
#trend-ticker-page .ticker-h1-company { font-weight: 600; }
#trend-ticker-page .ticker-h1-company:empty { display: none; }
#trend-ticker-page .ticker-h1-topic {
    display: inline-block;
    font-size: 0.72em;
    font-weight: 500;
    color: rgba(248, 250, 252, 0.72);
    letter-spacing: 0.01em;
}

/* ═══ Phase 1 Lab information architecture ═══ */


/* ═══════════════════════════════════════════════════════════════════════
   台股個股／ETF 頁 2026-09 重新設計：共用 token 與元件（ticker-shell 層）
   一張卡＝一個研究問題；卡內只用 divider 與間距分層，不再有 panel／tile 邊框。
   ETF 頁（etf/page.css）透過 ticker-shell 層直接使用這些 class，不重定義。
   漲跌色照本站趨勢語意：上升／正值＝黃（--tc-up）、下降／負值＝紅（--tc-down），與歷史趨勢變化的 ▲黃／▼紅 一致。
   ═══════════════════════════════════════════════════════════════════════ */
#trend-ticker-page {
  --tc-row-h: 44px;
  --tc-row-divider: 1px solid rgba(148, 163, 184, 0.10);
  --tc-cell-bg: #141a22;
  --tc-grid-line: rgba(148, 163, 184, 0.12);
  --tc-label: #f1f5f9;
  --tc-value: #f8fafc;
  --tc-meta: #e2e8f0;
  --tc-blue: #7db8ff;
  --tc-bar: #3b82f6;
  --tc-page-bg: #0f1419;
  --tc-up: #facc15;
  --tc-down: #fb7185;
  line-height: 1.75;
  font-variant-numeric: tabular-nums;
}

/* 12px 以下註解 1.6；中文段落 1.75 */
#trend-ticker-page .chart-disclaimer,
#trend-ticker-page .info-meta,
#trend-ticker-page .summary-hint,
#trend-ticker-page .ticker-price-updated,
#trend-ticker-page .deep-research-status,
#trend-ticker-page .dr-item-meta,
#trend-ticker-page .valuation-helper-note {
  line-height: 1.6;
}
#trend-ticker-page .summary-text,
#trend-ticker-page .valuation-helper-text p,
#trend-ticker-page .dr-item-summary {
  line-height: 1.75;
}

/* icon：emoji 全數改 Font Awesome，色 #7DB8FF、1em、與文字 gap 8px */
#trend-ticker-page .dr-list-icon,
#trend-ticker-page .report-mention-icon,
#trend-ticker-page .research-path-title i,
#trend-ticker-page .notify-icon i,
#trend-ticker-page .tc-modal-icon i {
  color: var(--tc-blue);
}
#trend-ticker-page .dr-list-icon,
#trend-ticker-page .report-mention-icon,
#trend-ticker-page .research-path-title i {
  font-size: 1em;
  margin-right: 8px;
}
#trend-ticker-page .dr-list-header { gap: 0; }
#trend-ticker-page .report-mention-icon { flex-shrink: 0; }

/* ── 卡片標題列 ── */
#trend-ticker-page .tc-card { margin-bottom: 24px; }
#trend-ticker-page .tc-card-head {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}
#trend-ticker-page .tc-card-head h2 {
  margin: 0;
  font-size: 17px;
  font-weight: 700;
  color: var(--tc-value);
  line-height: 1.3;
}
#trend-ticker-page .tc-card-icon { color: var(--tc-blue); font-size: 15px; }
#trend-ticker-page .tc-card-meta {
  margin-left: auto;
  font-size: 11.5px;
  color: var(--tc-meta);
  line-height: 1.6;
  text-align: right;
}
#trend-ticker-page .tc-card-meta:empty { display: none; }
#trend-ticker-page .tc-card[hidden] { display: none; }

/* ── 訊號磚：1px gap 露出格線、外框一層、內層格 #141A22 ── */
#trend-ticker-page .tc-cell-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  background: var(--tc-grid-line);
  border: 1px solid var(--tc-grid-line);
  border-radius: 10px;
  overflow: hidden;
}
#trend-ticker-page .tc-cell-grid--6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
#trend-ticker-page .tc-cell-grid--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
#trend-ticker-page .tc-cell-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
#trend-ticker-page .tc-cell-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
#trend-ticker-page .tc-cell-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
#trend-ticker-page .tc-cell-grid[hidden] { display: none; }
#trend-ticker-page .tc-cell {
  display: flex;
  flex-direction: column;
  gap: 5px;
  min-width: 0;
  padding: 14px 16px;
  background: var(--tc-cell-bg);
}
#trend-ticker-page .tc-cell[hidden] { display: none; }
#trend-ticker-page .tc-cell-k { font-size: 11.5px; color: var(--tc-label); letter-spacing: 0.02em; line-height: 1.2; }
#trend-ticker-page .tc-cell-v { font-size: 19px; font-weight: 700; color: var(--tc-value); line-height: 1.2; overflow-wrap: anywhere; }
#trend-ticker-page .tc-cell-v.is-up { color: var(--tc-up); }
#trend-ticker-page .tc-cell-v.is-down { color: var(--tc-down); }
#trend-ticker-page .tc-cell-m { font-size: 11px; color: var(--tc-meta); line-height: 1.4; }

/* ── 兩行式資料列 ── */
#trend-ticker-page .tc-rows { display: flex; flex-direction: column; }
#trend-ticker-page .tc-rows--2col {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 40px;
}
#trend-ticker-page .tc-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;
  min-height: var(--tc-row-h);
  padding: 11px 0;
  border-bottom: var(--tc-row-divider);
  box-sizing: border-box;
}
#trend-ticker-page .tc-row--spark { grid-template-columns: minmax(0, 1fr) auto 96px; }
#trend-ticker-page .tc-row-k { margin: 0; font-size: 13.5px; color: var(--tc-label); line-height: 1.2; }
#trend-ticker-page .tc-row-p { margin: 3px 0 0; font-size: 11px; color: var(--tc-meta); line-height: 1.4; }
#trend-ticker-page .tc-row-v { font-size: 16px; font-weight: 600; color: var(--tc-value); line-height: 1.2; white-space: nowrap; }
#trend-ticker-page .tc-row-v.is-up { color: var(--tc-up); }
#trend-ticker-page .tc-row-v.is-down { color: var(--tc-down); }
#trend-ticker-page .tc-spark { height: 22px; display: flex; align-items: flex-end; gap: 2px; }
#trend-ticker-page .tc-spark i {
  flex: 1;
  display: block;
  min-height: 2px;
  background: var(--tc-bar);
  border-radius: 1px;
}
#trend-ticker-page .tc-spark i.is-neg { background: var(--tc-bar); }

/* ── 卡內文字 tab（唯一一種 active 樣式） ── */
#trend-ticker-page .tc-tabs {
  display: flex;
  gap: 24px;
  margin: 0 0 4px;
  border-bottom: 1px solid rgba(148, 163, 184, 0.14);
  overflow-x: auto;
  scrollbar-width: none;
}
#trend-ticker-page .tc-tabs::-webkit-scrollbar { display: none; }
#trend-ticker-page .tc-tab {
  appearance: none;
  margin: 0;
  padding: 0 0 10px;
  border: 0;
  background: none;
  font: inherit;
  font-size: 14px;
  font-weight: 500;
  color: var(--tc-label);
  line-height: 1.3;
  white-space: nowrap;
  cursor: pointer;
}
#trend-ticker-page .tc-tab[aria-selected="true"] {
  font-weight: 700;
  color: var(--tc-value);
  box-shadow: inset 0 -2px 0 var(--tc-blue);
}
#trend-ticker-page .tc-tab:focus-visible {
  outline: 2px solid rgba(125, 184, 255, 0.6);
  outline-offset: 2px;
  border-radius: 4px;
}
#trend-ticker-page .tc-tab[disabled] { color: #475569; cursor: default; }
#trend-ticker-page .tc-tab-note { margin-left: 5px; font-size: 11px; font-weight: 400; }
#trend-ticker-page .tc-tab-panel[hidden] { display: none; }

/* ── L2／L3 空狀態細條 ── */
#trend-ticker-page .tc-empty-hair {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 40px;
  margin: 0;
  padding: 0 14px;
  border: 1px dashed rgba(148, 163, 184, 0.18);
  border-radius: 10px;
  background: rgba(148, 163, 184, 0.06);
  color: var(--tc-meta);
  font-size: 13px;
  line-height: 1.4;
  box-sizing: border-box;
}
#trend-ticker-page .tc-empty-hair[hidden] { display: none; }
#trend-ticker-page .tc-empty-hair > span:first-child { display: inline-flex; align-items: center; gap: 8px; min-width: 0; }
#trend-ticker-page .tc-empty-hair-right { flex: none; font-size: 11.5px; }
#trend-ticker-page .tc-empty-hair + .tc-empty-hair { margin-top: 8px; }
#trend-ticker-page .tc-rows + .tc-empty-hair,
#trend-ticker-page .tc-cell-grid + .tc-empty-hair,
#trend-ticker-page .tc-tab-panel > .tc-empty-hair:first-child { margin-top: 14px; }
#trend-ticker-page .tc-retry {
  appearance: none;
  padding: 3px 10px;
  border: 1px solid rgba(125, 184, 255, 0.35);
  border-radius: 999px;
  background: rgba(125, 184, 255, 0.12);
  color: var(--tc-blue);
  font: inherit;
  font-size: 11.5px;
  cursor: pointer;
}

/* ── L3 頁尾「尚在建置中的資料」 ── */
#trend-ticker-page .tc-pending {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 8px 0 24px;
}
#trend-ticker-page .tc-pending[hidden] { display: none; }
#trend-ticker-page .tc-pending-title {
  margin: 0;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--tc-meta);
}
#trend-ticker-page .tc-pending-item { margin: 0; }
#trend-ticker-page .tc-pending-item + .tc-pending-item { margin-top: 8px; }
#trend-ticker-page .tc-pending-item > summary { list-style: none; cursor: pointer; font-size: 12.5px; }
#trend-ticker-page .tc-pending-item > summary::-webkit-details-marker { display: none; }
#trend-ticker-page .tc-pending-item > summary .fa-chevron-down { font-size: 10px; transition: transform 0.2s ease; }
#trend-ticker-page .tc-pending-item[open] > summary .fa-chevron-down { transform: rotate(180deg); }
#trend-ticker-page .tc-pending-body {
  margin: 6px 0 0;
  padding: 0 14px;
  font-size: 12.5px;
  color: var(--tc-label);
  line-height: 1.7;
}

/* ── 文字 ── */
#trend-ticker-page .tc-narrative { margin: 14px 0 0; font-size: 14.5px; color: #cbd5f5; line-height: 1.8; }
#trend-ticker-page .tc-narrative--lead { margin: 0 0 18px; line-height: 1.85; max-width: 82ch; }
#trend-ticker-page .tc-narrative[hidden] { display: none; }
#trend-ticker-page .tc-public-subheading { margin: 12px 0 0; font-size: 15px; font-weight: 600; line-height: 1.6; color: var(--tc-value); }
#trend-ticker-page .tc-revenue-insights { margin: 16px 0; padding: 12px 0; border-block: 1px solid var(--tc-border); }
#trend-ticker-page .tc-revenue-insights .tc-public-subheading { margin-top: 0; }
#trend-ticker-page .tc-revenue-insights-list { list-style: none; padding: 0; margin: 10px 0 0; }
#trend-ticker-page .tc-revenue-insights-list > li + li { margin-top: 14px; }
#trend-ticker-page .tc-revenue-insights-list > li > strong { font-size: 13px; color: var(--tc-value); }
#trend-ticker-page .tc-revenue-insights-list .tc-narrative { margin: 4px 0; }
#trend-ticker-page .tc-revenue-insights-list summary { cursor: pointer; font-size: 12px; color: var(--tc-meta); }
#trend-ticker-page .tc-revenue-insights-list .tc-footnote { overflow-wrap: anywhere; }
#trend-ticker-page [data-public-table] caption { padding: 8px 0; text-align: left; font-size: 12px; line-height: 1.6; color: var(--tc-meta); }
#trend-ticker-page [data-public-table-static] { margin-top: 12px; }
#trend-ticker-page [data-public-table-static] caption { font-size: 14px; font-weight: 600; color: var(--tc-value); }
#trend-ticker-page .tc-footnote { margin: 10px 0 0; font-size: 12px; color: var(--tc-meta); line-height: 1.6; }
#trend-ticker-page .tc-footnote[hidden] { display: none; }

/* ── 權重長條、定義列 ── */
#trend-ticker-page .tc-bar { height: 4px; margin-top: 6px; border-radius: 2px; background: rgba(148, 163, 184, 0.14); overflow: hidden; }
#trend-ticker-page .tc-bar-fill { height: 100%; border-radius: 2px; background: rgba(125, 184, 255, 0.7); }
#trend-ticker-page .tc-deflist { display: grid; grid-template-columns: 1fr; gap: 0 40px; margin: 0 0 18px; }
#trend-ticker-page .tc-deflist--3col { grid-template-columns: repeat(3, minmax(0, 1fr)); }
#trend-ticker-page .tc-deflist[hidden] { display: none; }
#trend-ticker-page .tc-def { display: flex; align-items: baseline; gap: 12px; padding: 9px 0; border-bottom: var(--tc-row-divider); }
#trend-ticker-page .tc-def dt { margin: 0; font-size: 13px; color: var(--tc-label); white-space: nowrap; line-height: 1.3; }
#trend-ticker-page .tc-def dd { margin: 0 0 0 auto; font-size: 13.5px; font-weight: 500; color: var(--tc-value); text-align: right; line-height: 1.4; overflow-wrap: anywhere; }
#trend-ticker-page .tc-def dd a { color: var(--tc-blue); text-decoration: none; }

/* ── 載入中骨架（沿用 .skeleton-bar） ── */
#trend-ticker-page .tc-skeleton { display: flex; flex-direction: column; gap: 10px; padding: 6px 0; }
#trend-ticker-page .tc-skeleton .skeleton-bar { width: 100%; }
#trend-ticker-page .tc-skeleton .skeleton-bar:nth-child(2) { width: 72%; }
#trend-ticker-page .tc-skeleton .skeleton-bar:nth-child(3) { width: 48%; }
#trend-ticker-page .tc-skeleton[hidden] { display: none; }

/* ── 重點指標搜尋（只索引有值項目） ── */
#trend-ticker-page .tc-metric-search-row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 0 0 14px; }
#trend-ticker-page .tc-metric-search-row[hidden] { display: none; }
#trend-ticker-page .tc-metric-search {
  display: flex;
  align-items: center;
  gap: 8px;
  width: min(280px, 100%);
  padding: 8px 14px;
  border: 1px solid rgba(148, 163, 184, 0.2);
  border-radius: 12px;
  background: rgba(15, 23, 42, 0.6);
  color: var(--tc-meta);
  font-size: 12px;
  box-sizing: border-box;
}
#trend-ticker-page .tc-metric-search:focus-within { border-color: rgba(125, 184, 255, 0.5); }
#trend-ticker-page .tc-metric-search input {
  flex: 1;
  min-width: 0;
  border: 0;
  background: none;
  color: var(--tc-value);
  font: inherit;
  font-size: 13px;
  outline: none;
}
#trend-ticker-page .tc-metric-search input::placeholder { color: var(--tc-meta); }
#trend-ticker-page .tc-metric-count { font-size: 12px; color: var(--tc-meta); }

/* ── 月營收動能 ── */
#trend-ticker-page .tw-month-revenue-chart { height: 220px; }

/* ── 三大報表分頁內的廣覆蓋財務摘要／EPS：不再是卡中卡 ── */
#trend-ticker-page .tw-legacy-financials { margin: 14px 0 0; }
#trend-ticker-page .tw-legacy-financials .company-insights { display: grid; gap: 18px; }
#trend-ticker-page .tw-legacy-financials .insight-card { border: 0; background: none; padding: 0; box-shadow: none; }
#trend-ticker-page .tw-legacy-financials .insight-card h3 { margin: 0 0 10px; font-size: 14px; font-weight: 700; color: var(--tc-value); }
#trend-ticker-page .tw-legacy-financials .tc-empty-hair[style*="display: flex"],
#trend-ticker-page .tw-legacy-financials .tc-empty-hair[style*="display:flex"] { display: flex; }

/* ── 手機 ── */
@media (max-width: 900px) {
  #trend-ticker-page .tc-rows--2col { grid-template-columns: 1fr; }
  #trend-ticker-page .tc-deflist--3col { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #trend-ticker-page .tc-cell-grid--6,
  #trend-ticker-page .tc-cell-grid--5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  #trend-ticker-page .tc-card-head h2 { font-size: 15px; }
  #trend-ticker-page .tc-card-meta { margin-left: 0; width: 100%; text-align: left; }
  #trend-ticker-page .tc-cell-grid,
  #trend-ticker-page .tc-cell-grid--6,
  #trend-ticker-page .tc-cell-grid--5,
  #trend-ticker-page .tc-cell-grid--4,
  #trend-ticker-page .tc-cell-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #trend-ticker-page .tc-cell { padding: 11px 12px; }
  #trend-ticker-page .tc-cell-v { font-size: 16px; }
  #trend-ticker-page .tc-deflist--3col { grid-template-columns: 1fr; }
  #trend-ticker-page .tc-row--spark { grid-template-columns: minmax(0, 1fr) auto; }
  #trend-ticker-page .tc-spark { display: none; }
  #trend-ticker-page .tc-tabs { gap: 16px; }
  #trend-ticker-page .tc-tab { font-size: 13px; }
  #trend-ticker-page .tc-empty-hair { font-size: 12.5px; padding: 0 12px; }
  #trend-ticker-page .tc-empty-hair-right { display: none; }
  #trend-ticker-page .tw-month-revenue-chart { height: 180px; }
}

/* ── 三大報表（正規化財報到齊時）：卡內子分頁＋表格 ── */
#trend-ticker-page .tc-tabs--sub { margin-top: 14px; gap: 18px; }
#trend-ticker-page .tc-tabs--sub .tc-tab { font-size: 13px; }
#trend-ticker-page .tc-table-wrap { overflow-x: auto; margin-top: 12px; }
#trend-ticker-page .tc-table-wrap table { width: 100%; border-collapse: collapse; font-size: 12.5px; }
#trend-ticker-page .tc-table-wrap th,
#trend-ticker-page .tc-table-wrap td { padding: 8px 10px; text-align: right; border-bottom: var(--tc-row-divider); white-space: nowrap; line-height: 1.3; vertical-align: top; }
#trend-ticker-page .tc-table-wrap th { color: var(--tc-label); font-weight: 500; }
#trend-ticker-page .tc-table-wrap th[scope="row"] { text-align: left; color: #cbd5f5; }
#trend-ticker-page .tc-table-wrap td strong { display: block; color: var(--tc-value); font-weight: 600; }
#trend-ticker-page .tc-table-wrap td small { display: block; color: var(--tc-meta); font-size: 10.5px; }
#trend-ticker-page .tc-success-icon i { color: var(--tc-blue); }


/* ═════════════════════════════════════════════════════════════════════════
   小字提亮：頁面上 12–13px 的註解、期別、來源、狀態一律近白，不再用灰
   ═════════════════════════════════════════════════════════════════════════ */
#trend-ticker-page .chart-disclaimer,
#trend-ticker-page .info-meta,
#trend-ticker-page .summary-hint,
#trend-ticker-page .summary-text,
#trend-ticker-page .ticker-price-updated,
#trend-ticker-page .ticker-meta,
#trend-ticker-page .ticker-meta-item,
#trend-ticker-page .valuation-helper-note,
#trend-ticker-page .valuation-helper-text p,
#trend-ticker-page .dr-item-meta,
#trend-ticker-page .dr-item-summary,
#trend-ticker-page .deep-research-status,
#trend-ticker-page .history-count,
#trend-ticker-page .tw-month-revenue-note,
#trend-ticker-page .tc-narrative,
#trend-ticker-page .tc-pending-body,
#trend-ticker-page .tc-chart-workspace-summary span,
#trend-ticker-page .tc-chart-workspace-toggle,
#trend-ticker-page .tc-chart-workspace-view button {
  color: var(--tc-meta);
}
#trend-ticker-page .tc-chart-workspace-view button[aria-pressed="true"] { color: var(--tc-accent); }

/* ═════════════════════════════════════════════════════════════════════════
   .tc-chart-workspace — 資料列／數字磚之下可展開的完整圖表
   預設收合；沒有可畫的 tab 時 JS 完全不渲染這個節點，不留空框
   ═════════════════════════════════════════════════════════════════════════ */
#trend-ticker-page .tc-chart-workspace { margin-top: 14px; border-top: var(--tc-row-divider); }
#trend-ticker-page .tc-chart-workspace-toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 10px 0 0;
  padding: 6px 12px;
  border: 1px solid var(--tc-grid-line);
  border-radius: 999px;
  background: none;
  color: var(--tc-label);
  font: inherit;
  font-size: 12.5px;
  cursor: pointer;
  transition: color 180ms cubic-bezier(0.2, 0.8, 0.2, 1), border-color 180ms cubic-bezier(0.2, 0.8, 0.2, 1);
}
#trend-ticker-page .tc-chart-workspace-toggle:hover { color: var(--tc-value); border-color: var(--tc-blue); }
#trend-ticker-page .tc-chart-workspace-toggle:focus-visible { outline: 2px solid var(--tc-blue); outline-offset: 2px; }
#trend-ticker-page .tc-chart-workspace-toggle i:first-child { color: var(--tc-blue); }
#trend-ticker-page .tc-chart-workspace-chevron { font-size: 10px; transition: transform 180ms cubic-bezier(0.2, 0.8, 0.2, 1); }
#trend-ticker-page .tc-chart-workspace[data-expanded="true"] .tc-chart-workspace-chevron { transform: rotate(180deg); }
#trend-ticker-page .tc-chart-workspace[data-expanded="true"] .tc-chart-workspace-toggle { color: var(--tc-value); border-color: var(--tc-accent); }
#trend-ticker-page .tc-chart-workspace[data-expanded="false"] .tc-chart-workspace-body { display: none; }
#trend-ticker-page .tc-chart-workspace-body { padding-top: 4px; }
#trend-ticker-page .tc-chart-workspace-panel[hidden] { display: none; }
#trend-ticker-page .tc-chart-workspace-summary {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px 18px;
  margin-top: 12px;
}
#trend-ticker-page .tc-chart-workspace-summary > div { display: flex; align-items: baseline; gap: 8px; }
#trend-ticker-page .tc-chart-workspace-summary span { font-size: 11.5px; color: var(--tc-meta); }
#trend-ticker-page .tc-chart-workspace-summary strong { font-size: 18px; font-weight: 700; color: var(--tc-value); }
#trend-ticker-page .tc-chart-workspace-summary p { display: flex; flex-wrap: wrap; gap: 4px 14px; margin: 0; }
#trend-ticker-page .tc-chart-workspace-toolbar { display: flex; justify-content: flex-end; margin-top: 10px; }
#trend-ticker-page .tc-chart-workspace-view {
  display: inline-flex;
  gap: 2px;
  padding: 2px;
  border-radius: 999px;
  background: var(--tc-cell-bg);
}
#trend-ticker-page .tc-chart-workspace-view button {
  padding: 4px 12px;
  border: 0;
  border-radius: 999px;
  background: none;
  color: var(--tc-meta);
  font: inherit;
  font-size: 12px;
  cursor: pointer;
}
#trend-ticker-page .tc-chart-workspace-view button[aria-pressed="true"] { color: var(--tc-accent); background: var(--tc-grid-line); }
#trend-ticker-page .tc-chart-workspace-view button:focus-visible { outline: 2px solid var(--tc-blue); outline-offset: 2px; }
#trend-ticker-page .tc-chart-workspace-host { width: 100%; height: 280px; margin-top: 8px; }
#trend-ticker-page [data-tc-chart-workspace-trigger] { cursor: pointer; }
@media (max-width: 640px) {
  #trend-ticker-page .tc-chart-workspace-host { height: 208px; }
  #trend-ticker-page .tc-chart-workspace-summary strong { font-size: 16px; }
}

/* ── 趨勢持續中（趨勢策略洞察標題列下方，橫跨兩欄） ── */
#trend-ticker-page .trend-run { margin: 0 0 18px; }
#trend-ticker-page .trend-run[hidden] { display: none; }
#trend-ticker-page .trend-run .tc-cell-v { font-size: 22px; }
#trend-ticker-page .trend-run-narrative { margin-top: 12px; }
@media (max-width: 640px) {
  #trend-ticker-page .trend-run .tc-cell:last-child { grid-column: 1 / -1; }
  #trend-ticker-page .trend-run .tc-cell-v { font-size: 18px; }
}

/* ── 財務體質各分頁與三大報表：圖表直接放上、不做收合開關 ── */
#trend-ticker-page .tc-chart-workspace--static { margin-top: 0; border-top: 0; }
#trend-ticker-page .tc-chart-workspace--static .tc-chart-workspace-body { padding-top: 0; }
#trend-ticker-page #tw-chip-body .tc-chart-workspace--static { margin-top: 16px; padding-top: 14px; border-top: var(--tc-row-divider); }
#trend-ticker-page .tc-rows + .tc-chart-workspace--static,
#trend-ticker-page .tc-empty-hair + .tc-chart-workspace--static { margin-top: 16px; }

/* Keep the stock name readable when the tutorial action joins the mobile row. */
@media (max-width: 640px) {
  #trend-ticker-page .ticker-hero-top { grid-template-columns: minmax(0, 1fr); }
  #trend-ticker-page .ticker-hero-actions { justify-content: flex-end; flex-wrap: wrap; }
}
.tw-public-footer .tw-related-companies a {color: var(--tc-blue, #75b7ff); text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere;}
#trend-ticker-page .trend-breadcrumbs ol {flex-wrap: wrap;}
.tw-public-footer .tw-related-companies {margin: 24px 0; padding: 20px; border: 1px solid var(--tc-border, #dfe5ec); border-radius: 12px; background: var(--tc-panel, #1c2128); color: var(--tc-fg, #f5f7f8); min-width: 0; scroll-margin-top: 110px;}
.tw-public-footer .tw-related-companies h3 {font-size: 17px; margin: 0 0 8px;}
.tw-public-footer .tw-related-companies p {font-size: 13px; color: var(--tc-text-secondary, #b7c2d3);}
.tw-public-footer .tw-related-companies ul {display: flex; flex-wrap: wrap; gap: 12px 24px; list-style: none; padding: 0; margin: 12px 0;}
.tw-public-footer .tw-related-companies li {font-size: 14px;}
#trend-ticker-page #tw-company-public-details .tc-table-wrap table {table-layout: fixed;}
#trend-ticker-page #tw-company-public-details .tc-table-wrap th,
#trend-ticker-page #tw-company-public-details .tc-table-wrap td {white-space: normal; overflow-wrap: anywhere;}

/* URL-bearing tabs retain the existing button typography and active treatment. */
#trend-ticker-page a.tc-tab { text-decoration: none; }

/* Seven crawlable intent links share the existing tab appearance. */
#tw-intent-tabs { flex-wrap: wrap; margin: 20px 0; }
#tw-intent-tabs a[aria-current="page"] { color: var(--tc-blue, #93c5fd); border-bottom: 2px solid currentColor; }
#tw-intent-view[aria-busy="true"] { cursor: progress; }

/* ═════════════════════════════════════════════════════════════════════════
   .tc-section-nav — 章節導覽
   ≥1280px（--rail）：版心左側 96px sticky rail，icon 在上、白字在下；內容欄維持 1100px
   <1280px（--bar）：日 K／工具下方一列文字連結，sticky 避開頂端仍可見的站台 header
   只使用既有 --tc-* token，不新增色碼
   ═════════════════════════════════════════════════════════════════════════ */
#trend-ticker-page .tc-section-nav-item {
  color: var(--tc-value);
  text-decoration: none;
  white-space: nowrap;
  transition: color 180ms cubic-bezier(0.2, 0.8, 0.2, 1), border-color 180ms cubic-bezier(0.2, 0.8, 0.2, 1);
}
#trend-ticker-page .tc-section-nav-item i { color: var(--tc-blue); }
#trend-ticker-page .tc-section-nav-item:hover,
#trend-ticker-page .tc-section-nav-item.is-active,
#trend-ticker-page .tc-section-nav-item.is-active i { color: var(--tc-warn); }
#trend-ticker-page .tc-section-nav-item:focus-visible { outline: 2px solid var(--tc-blue); outline-offset: 2px; }
/* 手機／平板：subheader 列 */
#trend-ticker-page .tc-section-nav--bar {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  gap: 22px;
  margin: -8px 0 18px;
  padding: 10px 0;
  overflow-x: auto;
  background: var(--tc-page-bg);
  border-bottom: 1px solid var(--tc-grid-line);
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
#trend-ticker-page .tc-section-nav--bar::-webkit-scrollbar { display: none; }
#trend-ticker-page .tc-section-nav--bar .tc-section-nav-item {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 0 6px;
  border-bottom: 2px solid transparent;
  font-size: 13.5px;
  font-weight: 500;
  line-height: 1.2;
}
#trend-ticker-page .tc-section-nav--bar .tc-section-nav-item i { font-size: 12px; }
#trend-ticker-page .tc-section-nav--bar .tc-section-nav-item.is-active { border-bottom-color: var(--tc-warn); }
/* 桌機：左側 rail */
@media (min-width: 1280px) {
  #trend-ticker-page .ticker-container {
    width: min(1260px, 96vw);
    display: grid;
    grid-template-columns: 96px minmax(0, 1100px);
    column-gap: 32px;
    justify-content: center;
    align-items: start;
  }
  #trend-ticker-page .ticker-container > * { grid-column: 2; min-width: 0; }
  #trend-ticker-page .tc-section-nav--rail {
    grid-column: 1;
    grid-row: 1 / span 60;
    position: sticky;
    top: 88px;
    max-height: calc(100dvh - 104px);
    overflow-y: auto;
    overscroll-behavior: contain;
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin: 0;
    padding: 0;
  }
  #trend-ticker-page .tc-section-nav--rail .tc-section-nav-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 10px 4px;
    border-left: 2px solid transparent;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.25;
    text-align: center;
    white-space: normal;
  }
  #trend-ticker-page .tc-section-nav--rail .tc-section-nav-item i { font-size: 18px; }
  #trend-ticker-page .tc-section-nav--rail .tc-section-nav-item.is-active { border-left-color: var(--tc-warn); }
}
/* 章節錨點：跳轉時留出 sticky header 的高度 */
#trend-ticker-page [data-tc-nav] { scroll-margin-top: var(--tc-section-scroll-offset, 12px); }

/* Current trend summary, shared by US and TW ticker pages. */
#trend-ticker-page .trend-run { margin: 0 0 20px; }
#trend-ticker-page .trend-run[hidden] { display: none; }
#trend-ticker-page .trend-run-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  background: var(--tc-grid-line, rgba(148, 163, 184, 0.12));
  border: 1px solid var(--tc-grid-line, rgba(148, 163, 184, 0.12));
  border-radius: 10px;
  overflow: hidden;
}
#trend-ticker-page .trend-run .tc-cell { display: flex; flex-direction: column; gap: 6px; min-width: 0; padding: 16px; background: var(--tc-cell-bg, #141a22); }
#trend-ticker-page .trend-run .tc-cell-k { font-size: 12px; color: var(--tc-label, #f1f5f9); line-height: 1.4; }
#trend-ticker-page .trend-run .tc-cell-v { font-size: 24px; font-weight: 700; color: var(--tc-value, #f8fafc); line-height: 1.3; }
#trend-ticker-page .trend-run .tc-cell-m { font-size: 12px; color: var(--tc-meta, #e2e8f0); line-height: 1.5; }
#trend-ticker-page .trend-run .is-up { color: var(--tc-up, #facc15); }
#trend-ticker-page .trend-run .is-down { color: var(--tc-down, #fb7185); }
#trend-ticker-page .trend-run #trend-run-direction.is-up { color: var(--tc-warn, #facc15); }
#trend-ticker-page .trend-run-narrative { margin: 14px 0 6px; font-size: 14px; line-height: 1.75; color: var(--tc-value, #f8fafc); }
#trend-ticker-page .trend-run .tc-footnote { margin: 0; font-size: 12px; line-height: 1.6; color: var(--tc-meta, #e2e8f0); }
@media (max-width: 640px) {
  #trend-ticker-page .trend-run-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #trend-ticker-page .trend-run .tc-cell:last-child { grid-column: 1 / -1; }
  #trend-ticker-page .trend-run .tc-cell-v { font-size: 20px; }
}
/* Non-modal learning surfaces; existing product layout remains in place. */
.tc-guide-entry[hidden],.tc-guide[hidden],.tc-guide-invite[hidden],.tc-strategy-inspect[hidden],.tc-strategy-detail[hidden]{display:none!important}
.tc-guide-entry,.tc-guide button,.tc-guide a,.tc-guide-invite button,.tc-strategy-inspect{font:600 13px/1.5 "Noto Sans TC",sans-serif;min-height:44px;padding:6px 18px;border-radius:999px;border:1px solid rgba(125,184,255,.4);background:rgba(125,184,255,.18);color:#7DB8FF;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box}
.tc-guide-entry:focus-visible,.tc-guide :focus-visible,.tc-guide-invite :focus-visible,.tc-strategy-inspect:focus-visible{outline:2px solid #7DB8FF;outline-offset:2px}
.tc-guide,.tc-guide-invite{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));width:min(360px,calc(100vw - 32px));max-height:calc(100dvh - 100px);overflow:auto;z-index:8900;background:#141A22;color:#F8FAFC;border:1px solid rgba(148,163,184,.24);border-radius:10px;padding:18px;box-sizing:border-box;font:14px/1.8 "Noto Sans TC",sans-serif;font-variant-numeric:tabular-nums;box-shadow:none}
.tc-guide-invite{width:min(320px,calc(100vw - 32px))}
.tc-guide[data-side="left"]{right:auto;left:16px}
.tc-guide h2{font-size:17px;line-height:1.4;margin:0 44px 8px 0;color:#F8FAFC}.tc-guide p,.tc-guide-invite p{margin:8px 0 12px}
.tc-guide .tc-guide-close,.tc-guide-invite .tc-guide-close{position:absolute;right:4px;top:4px;width:44px;padding:0;border:0;background:transparent}
.tc-guide-meta,.tc-guide-note{color:#E2E8F0;font-size:12px;line-height:1.6}.tc-guide-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.tc-guide button:disabled{opacity:.5;cursor:default}.tc-guide .tc-guide-text{background:transparent;border-color:transparent;color:#E2E8F0}
.tc-guide-target{outline:2px solid #7DB8FF!important;outline-offset:5px;scroll-margin-top:100px}
.tc-guide-results{padding-left:20px}.tc-guide-results li{margin-bottom:5px}.tc-strategy-inspect{margin:8px 0 0;min-width:100px}.tc-strategy-detail{flex-basis:100%;width:100%;font-size:13px;line-height:1.8;color:#E2E8F0;border-top:1px solid rgba(148,163,184,.14);padding:12px 0}.tc-strategy-detail p{margin:4px 0}.backtest-row:has(.tc-strategy-detail){flex-wrap:wrap}
html.tc-guide-active #floating-cta-container,html.tc-guide-active #floating-pricing-module,html.tc-guide-active .floating-pricing-module,html.tc-guide-active #exit-tracking-prompt{display:none!important}
@media(max-width:640px){.tc-guide,.tc-guide-invite{left:8px!important;right:8px!important;bottom:calc(8px + env(safe-area-inset-bottom));width:auto;padding:14px;max-height:min(52dvh,440px)}.tc-guide-actions>*{flex:1 1 auto}.tc-guide h2{font-size:15px}}
@media(prefers-reduced-motion:reduce){.tc-guide-target{scroll-behavior:auto}}

/* User-approved warm yellow / dark text; below the unchanged trial CTA's z-index. */
#tc-tutorial-bubble{position:fixed;left:50%;bottom:calc(16px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:49;box-sizing:border-box;width:min(300px,calc(100vw - 24px));padding:10px 72px 8px 16px;border:1px solid #fcd34d;border-radius:12px;background:#fcd34d;color:#1f2937;font-family:"Noto Sans TC",sans-serif;line-height:1.6;transition:width .18s ease,padding .18s ease,border-radius .18s ease}
#tc-tutorial-bubble a{display:block;min-height:54px;color:#1f2937;text-decoration:none}
#tc-tutorial-bubble strong{display:block;color:inherit;font-size:13px;font-weight:600}
#tc-tutorial-bubble a span{display:block;margin-top:6px;color:inherit;font-size:13px;font-weight:500;text-decoration:underline;text-underline-offset:4px}
#tc-tutorial-bubble .tc-tutorial-bubble-compact{display:none}
#tc-tutorial-bubble button{position:absolute;top:0;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:0;border-radius:50%;background:transparent;color:#1f2937;font-size:21px;cursor:pointer}
#tc-tutorial-bubble .tc-tutorial-bubble-close{right:0}
#tc-tutorial-bubble .tc-tutorial-bubble-minimize{right:36px}
#tc-tutorial-bubble.is-collapsed{width:min(132px,calc(100vw - 24px));padding:4px 36px 4px 12px;border-radius:999px}
#tc-tutorial-bubble.is-collapsed a{display:flex;align-items:center;min-height:28px}
#tc-tutorial-bubble.is-collapsed strong,#tc-tutorial-bubble.is-collapsed a>span:not(.tc-tutorial-bubble-compact),#tc-tutorial-bubble.is-collapsed .tc-tutorial-bubble-close{display:none}
#tc-tutorial-bubble.is-collapsed .tc-tutorial-bubble-compact{display:block;margin:0;font-size:12px;font-weight:600;text-decoration:none;white-space:nowrap}
#tc-tutorial-bubble.is-collapsed .tc-tutorial-bubble-minimize{right:0;width:36px;height:36px;font-size:18px}
#tc-tutorial-bubble :focus-visible{outline:2px solid #1f2937;outline-offset:3px}
@media(pointer:coarse){#tc-tutorial-bubble{padding-right:88px}#tc-tutorial-bubble button{width:44px;height:44px}#tc-tutorial-bubble .tc-tutorial-bubble-minimize{right:44px}#tc-tutorial-bubble.is-collapsed{padding-right:44px}#tc-tutorial-bubble.is-collapsed .tc-tutorial-bubble-minimize{right:0;width:44px;height:44px}}
} @layer footer {/* ============================================================
   Trend Core Footer — shared across all CF Worker pages
   Design tokens align with base.css / header.css
   ============================================================ */

.tch-footer {
  margin-top: 0;
  padding: 136px 24px 32px;
  background: linear-gradient(180deg, rgba(18, 23, 30, 0.95), rgba(10, 14, 20, 1));
  border-top: 1px solid rgba(60, 72, 90, 0.45);
  color: #b0b6bd;
  font-family: "Noto Sans TC", "Segoe UI", sans-serif;
  font-size: 0.95rem;
  line-height: 1.7;
}

.tch-footer__inner {
  width: min(1280px, 94vw);
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(240px, 1.4fr) repeat(3, minmax(180px, 1fr));
  gap: 40px 32px;
}

@media (max-width: 900px) {
  .tch-footer__inner {
    grid-template-columns: 1fr 1fr;
    gap: 32px 24px;
  }
  .tch-footer__brand {
    grid-column: 1 / -1;
  }
}

@media (max-width: 560px) {
  .tch-footer__inner {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .tch-footer {
    padding: 40px 20px 24px;
  }
}

/* ===== Brand block ===== */
.tch-footer__brand {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.tch-footer__logo {
  display: inline-block;
  font-size: 1.35rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  background: linear-gradient(90deg, #72f2de, #7db8ff);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.tch-footer__tagline {
  margin: 0;
  color: #facc15;
  font-size: 1rem;
  font-weight: 600;
}

.tch-footer__mission {
  margin: 0;
  color: #b0b6bd;
  font-size: 0.92rem;
  line-height: 1.65;
  max-width: 320px;
}

/* ===== Link columns ===== */
.tch-footer__col h4 {
  margin: 0 0 14px;
  color: #f5f7f8;
  font-size: 0.98rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.tch-footer__col ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 10px;
}

.tch-footer__col li {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  color: #b0b6bd;
  font-size: 0.92rem;
  line-height: 1.6;
}

.tch-footer__col li i {
  color: #7db8ff;
  margin-top: 4px;
  font-size: 0.85rem;
  width: 16px;
  flex-shrink: 0;
}

.tch-footer__col li .tch-footer__svg-icon {
  color: #7db8ff;
  margin-top: 4px;
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  fill: currentColor;
}

.tch-footer__col a {
  color: #d8e3ee;
  text-decoration: none;
  transition: color 0.2s ease;
}

.tch-footer__col a:hover {
  color: #72f2de;
  text-decoration: underline;
}

/* ===== Bottom bar ===== */
.tch-footer__bottom {
  width: min(1280px, 94vw);
  margin: 40px auto 0;
  padding-top: 24px;
  border-top: 1px solid rgba(60, 72, 90, 0.35);
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.tch-footer__disclaimer {
  margin: 0;
  color: rgba(176, 182, 189, 0.72);
  font-size: 0.85rem;
  line-height: 1.7;
}

.tch-footer__disclaimer strong {
  color: #facc15;
  font-weight: 600;
}

.tch-footer__copyright {
  margin: 0;
  color: rgba(176, 182, 189, 0.55);
  font-size: 0.82rem;
  letter-spacing: 0.02em;
}
}