/* Shared palette and controls across all pages. */
:root {
  --control-bg: rgba(255, 255, 255, 0.64);
  --control-hover: rgba(255, 255, 255, 0.92);
  --control-edge: rgba(35, 45, 60, 0.1);
  --control-text: #283341;
  --control-track: rgba(100, 116, 139, 0.12);
  --control-selected: #ffffff;
  --control-accent: #0866d9;

  /* 全站动效令牌（权威来源）
     ----------------------------------------------------------------------
     本文件是唯一被所有页面加载的样式表：index.html 只引 home.css +
     theme-palette.css，内页引 styles.css + liquid-glass.css + 本文件。
     所以令牌必须在这里定义一份，否则首页拿不到变量、过渡会直接失效。
     styles.css 里有一份同名副本作为该文件的自洽兜底，改值请两处同步。
     曲线取向见 styles.css 顶部注释：起步柔和、中段加速、尾部平顺收住。 */
  --motion-instant: 140ms;
  --motion-fast: 240ms;
  --motion-base: 380ms;
  --motion-slow: 560ms;
  --ease-apple: cubic-bezier(.28, 0, .2, 1);
  --ease-soft: cubic-bezier(.28, 0, .2, 1);
}

:root[data-theme="dark"] {
  --bg: #11161d;
  --bg-top: #161e27;
  --panel: #1b232e;
  --panel-strong: #232e3b;
  --line: #35414f;
  --line-soft: #2a3542;
  --text: #d8e0ea;
  --muted: #97a5b7;
  --blue: #85b1ec;
  --green: #79bf99;
  --red: #e98a8d;
  --amber: #ddb86e;
  --home-accent: var(--blue);
  --home-green: var(--green);
  --home-red: var(--red);
  --home-amber: var(--amber);
  --liquid-card-sheen: rgba(210, 226, 245, 0.018);
  --muted-strong: #c9d3df;
  --liquid-edge: rgba(199, 215, 238, 0.12);
  --liquid-edge-subtle: rgba(199, 215, 238, 0.09);
  --liquid-content: rgba(27, 35, 46, 0.93);
  --liquid-content-hover: rgba(36, 46, 59, 0.94);
  --liquid-surface: rgba(28, 37, 49, 0.86);
  --liquid-control: rgba(40, 51, 66, 0.78);
  --control-bg: rgba(190, 207, 232, 0.055);
  --control-hover: rgba(190, 207, 232, 0.095);
  --control-edge: rgba(199, 215, 238, 0.085);
  --control-text: #dde4ec;
  --control-track: rgba(7, 11, 18, 0.3);
  --control-selected: #333e4d;
  --control-accent: #2263c7;
  --liquid-shadow: 0 10px 28px -18px rgba(4, 9, 16, 0.55);
  --liquid-inset: inset 0 1px 0 rgba(210, 226, 245, 0.055);
  --glass-edge: var(--liquid-edge);
  --glass-card: var(--liquid-content);
  --glass-surface-strong: var(--liquid-surface);
  --home-bg: var(--bg);
  --home-surface: var(--panel);
  --home-text: var(--text);
  --home-muted: var(--muted);
  --home-muted-soft: #93a1b4;
  --home-neutral-soft: var(--panel-strong);
  --home-glass: var(--liquid-content);
  --home-glass-strong: var(--liquid-surface);
  --home-glass-soft: rgba(32, 42, 55, 0.72);
  --home-glass-sheet: rgba(29, 38, 49, 0.96);
  --home-glass-line: var(--liquid-edge);
  --home-glass-edge: var(--liquid-edge-subtle);
  --home-glass-inset: var(--liquid-inset);
}

/* One inset track and one moving selection, rather than two outlined buttons. */
/* News categories share a quiet rail; only the current category carries colour. */
body .news-hub .news-categories {
  gap: 4px;
  padding: 4px;
  border: 0;
  border-radius: 18px;
  background: var(--control-track);
  box-shadow: none;
}

body .news-hub .news-category {
  min-height: 34px;
  padding: 0 12px;
  border: 1px solid transparent;
  border-radius: 14px;
  background: transparent;
  color: var(--muted);
  box-shadow: none;
  font-size: 12px;
  font-weight: 550;
  transform: none !important;
  filter: none;
  transition: color var(--motion-fast) var(--ease-soft), background-color var(--motion-fast) var(--ease-soft);
}

:root body .news-hub .news-category[aria-selected="true"] {
  background: color-mix(in srgb, var(--blue) 12%, var(--panel));
  color: var(--blue);
  border-color: color-mix(in srgb, var(--blue) 20%, transparent);
  font-weight: 650;
}

body .news-hub .news-scroll-actions { gap: 6px; }
body .news-hub :is(.news-icon-button, .news-refresh-button) {
  height: 34px;
  min-height: 34px;
  border-radius: 12px;
  font-size: 12px;
  transform: none !important;
}
body .news-hub .news-icon-button { width: 34px; }
body .news-hub .news-refresh-button { padding-inline: 14px; }
body .news-hub :is(.news-icon-button, .news-refresh-button):disabled { opacity: 0.35; cursor: default; }

@media (hover: hover) {
  body .news-hub .news-category:not([aria-selected="true"]):hover {
    color: var(--text);
    background: var(--control-bg);
  }
}

@media (pointer: coarse) {
  body .news-hub :is(.news-category, .news-icon-button, .news-refresh-button) { min-height: 44px; }
  body .news-hub .news-icon-button { width: 44px; }
}

/* Restore selective emphasis without recolouring semantic gain/loss values. */
:root[data-theme="dark"] :is(.eyebrow, .card-kicker, .home-eyebrow) { color: var(--blue); }
:root[data-theme="dark"] :is(.news-card h4, .news-title-row h3, .section-heading h2) { color: #e7edf6; }
:root[data-theme="dark"] .news-card-impact strong { color: var(--news-tone); }
:root[data-theme="dark"] :is(.news-card-foot b, .risk-command-links a) { color: var(--blue); }
body .holding-news-actions .holding-news-action:not(.subtle):not(:disabled) { color: var(--blue); }
body .holding-news-actions .holding-news-action:disabled {
  color: var(--green);
  background: var(--calm-soft);
  opacity: 0.85;
}

/* 主题切换：与手机端和首页一致 —— 一枚圆形玻璃图标按钮，图标画的是"点下去
   会切到"的那个模式（浅色下显示月亮，深色下显示太阳）。
   两枚 data-theme-option 按钮仍然保留在 DOM 里给各页的 applyTheme 读写
   aria-pressed，但同时只有当前可点的那一枚可见，另一枚 display:none
   不参与 tab 顺序，所以读屏与键盘拿到的都是一个按钮。 */
:root body .topbar .theme-control {
  position: relative;
  isolation: auto;
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  gap: 0;
  width: 34px;
  height: 34px;
  padding: 0;
  border: 1px solid var(--control-edge);
  border-radius: 50%;
  background: var(--control-bg);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.035);
  transition:
    background-color var(--motion-fast) var(--ease-soft),
    border-color var(--motion-fast) var(--ease-soft);
}

body .topbar .theme-control::before {
  content: none;
}

body .topbar .theme-control .theme-option {
  grid-area: 1 / 1;
  display: none;
  place-items: center;
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  box-shadow: none;
  color: var(--control-text);
  font-size: 0;
  line-height: 1;
  filter: none;
  transition: color var(--motion-fast) var(--ease-soft);
}

:root[data-theme="light"] body .topbar .theme-control .theme-option[data-theme-option="dark"],
:root[data-theme="dark"] body .topbar .theme-control .theme-option[data-theme-option="light"] {
  display: grid;
}

body .topbar .theme-control svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

@media (hover: hover) and (pointer: fine) {
  body .topbar .theme-control:hover {
    border-color: var(--control-edge);
    background: var(--control-hover);
  }
}

body :is(.refresh-button, .market-home-link, .topbar-home-link, .account-trigger, .workspace-account-link, .account-secondary-button, .secondary-button, .mobile-nav-toggle, .section-nav-collapse, .home-icon-button, .home-account-link, .home-menu-toggle, .workspace-row-action, .holding-news-action, .news-refresh-button, .news-icon-button, .signal-page-button, .indicator-history-toggle):not(.danger):not(.is-active):not([aria-pressed="true"]) {
  color: var(--control-text);
  background: var(--control-bg);
  border: 1px solid var(--control-edge);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.035);
  text-decoration: none;
  /* transform 必须留在这里：上面 :is() 选择器优先级高于 styles.css 的全局按钮规则，
     一旦漏掉 transform，按钮 hover 上浮和按下缩放就退化成瞬间跳变（"抽"的来源）。 */
  transition:
    background-color var(--motion-fast) var(--ease-soft),
    border-color var(--motion-fast) var(--ease-soft),
    box-shadow var(--motion-fast) var(--ease-soft),
    transform var(--motion-fast) var(--ease-apple);
  transform: none;
  filter: none;
}

body :is(.secondary-button, .account-secondary-button, .workspace-row-action, .holding-news-action, .news-refresh-button, .signal-page-button, .indicator-history-toggle) { border-radius: 12px; }

body :is(.account-primary-button, .register-submit, .login-submit, .home-primary-action) {
  color: #fff;
  background: var(--control-accent) !important;
  border-color: transparent !important;
  border-radius: var(--radius-control);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12) !important;
  text-decoration: none;
  transition: filter var(--motion-fast) var(--ease-soft), box-shadow var(--motion-fast) var(--ease-soft);
}

@media (hover: hover) and (pointer: fine) {
  body :is(.refresh-button, .market-home-link, .topbar-home-link, .account-trigger, .workspace-account-link, .account-secondary-button, .secondary-button, .section-nav-collapse, .home-icon-button, .home-account-link, .workspace-row-action, .holding-news-action, .news-refresh-button, .news-icon-button, .signal-page-button):not(:disabled):not(.danger):not(.is-active):hover {
    background: var(--control-hover);
    border-color: var(--control-edge);
    transform: none;
    filter: none;
  }
}

body :is(.theme-option, .refresh-button, .secondary-button, .account-primary-button, .account-secondary-button, .workspace-row-action, .holding-news-action, .home-icon-button):disabled {
  opacity: 0.42;
  cursor: not-allowed;
}

@media (pointer: coarse) {
  :root body .topbar .theme-control {
    width: 40px;
    height: 40px;
  }

  body .topbar .theme-control svg {
    width: 18px;
    height: 18px;
  }
}

@media (prefers-reduced-motion: reduce) {
  body .topbar .theme-control,
  body .topbar .theme-control .theme-option {
    transition: none;
  }
}

/* 窄屏下的持仓页历来把主题按钮收起来给账号区让位，这里按新尺寸保留该行为。 */
@media (max-width: 880px) {
  :root body.portfolio-page .topbar .theme-control {
    display: none;
  }
}

/* 环境光是玻璃成立的前提：模糊一片纯色等于没模糊，卡片后面必须有颜色。
   这里把四团光斑的半径与衰减推远，让中间的内容列也压在光斑上，而不是只在
   视口四角着色。首页自带一套 --home-wash-*，取值处给了它兜底，所以两边共用
   同一份几何。 */
:root[data-theme] body::before {
  opacity: 1;
  background:
    linear-gradient(180deg, var(--bg, var(--home-bg)) 0, transparent 32px),
    radial-gradient(52vw 52vw at 12% 3%, var(--aurora-1, var(--home-wash-1)), transparent 70%),
    radial-gradient(48vw 48vw at 92% 0%, var(--aurora-2, var(--home-wash-2)), transparent 68%),
    radial-gradient(54vw 54vw at 76% 99%, var(--aurora-3, var(--home-wash-3)), transparent 70%),
    radial-gradient(50vw 50vw at 3% 96%, var(--aurora-4, var(--home-wash-4)), transparent 68%),
    linear-gradient(180deg, var(--bg-top, var(--home-bg)) 0, var(--bg, var(--home-bg)) 320px, var(--bg, var(--home-bg)) 100%);
}

:root {
  /* 光斑范围放大后，原来的浓度在整屏上都看得见了，这里按手机端的比例收一档：
     手机端是蓝 36% / 青 30% / 琥珀 26% / 绿 24%。 */
  --aurora-1: color-mix(in srgb, var(--blue) 34%, transparent);
  --aurora-2: color-mix(in srgb, var(--cyan) 28%, transparent);
  --aurora-3: color-mix(in srgb, var(--amber) 20%, transparent);
  --aurora-4: color-mix(in srgb, var(--green) 24%, transparent);
}

:root[data-theme="dark"] {
  /* 手机端暗色光斑：蓝 40% / 青 30% / 琥珀 22% / 绿 26%，这里按网页调色板折算。 */
  --aurora-1: rgba(99, 139, 195, 0.3);
  --aurora-2: rgba(72, 216, 207, 0.18);
  --aurora-3: rgba(221, 184, 110, 0.13);
  --aurora-4: rgba(121, 191, 153, 0.2);
}

:root[data-theme="dark"] :is(.topbar, .section-nav, .account-popover, .workspace-anchor-nav, .custom-select-menu) {
  background: linear-gradient(125deg, rgba(210, 226, 245, 0.035), transparent 55%), var(--liquid-surface) !important;
  border-color: var(--liquid-edge) !important;
  box-shadow: var(--liquid-shadow), var(--liquid-inset) !important;
}

:root[data-theme="dark"] .section-nav-link.is-active {
  color: var(--blue);
  background: color-mix(in srgb, var(--blue) 13%, var(--panel));
  border-color: color-mix(in srgb, var(--blue) 22%, transparent);
}

/* ============================================================================
   统一控件语言（iOS 27 液态玻璃）
   ----------------------------------------------------------------------------
   本文件在每个页面的最后加载，所以这里是"最后一票"。前面几层留下的问题是：
     1. 圆角有 0 / 7 / 10 / 12 / 14 / 15 / 16 / 20 / 26 / 28px 十个档位
        （顶栏 26px、侧边栏 28px、状态条 26px、卡片 16px 同屏出现）；
     2. 同样的按钮有两套材质：一套是半透明白（--control-bg），另一套是实心
        --panel / --panel-strong，于是并排的两个按钮一个发灰一个发亮；
     3. styles.css 里几十处历史 7px 直角，让输入框比旁边的按钮方一档。
   这里不再逐个改散落的历史规则，只用一份阶梯把上面三类收口：
     面板 / 常驻框架 22px · 卡片 18px · 浮层菜单 16px · 控件 12px · 圆形与胶囊除外
   ============================================================================ */

:root {
  --radius-chip: 10px;
  --radius-control: 12px;
  --radius-group: 16px;
  --radius-menu: 16px;
  --radius-card: 18px;
  --radius-panel: 22px;
}

/* —— 1) 常驻框架与面板：顶栏 / 侧边栏 / 状态条 / 弹层同为一档 —— */
:root body :is(
  .topbar,
  .section-nav,
  .status-strip,
  .workspace-anchor-nav,
  .risk-command,
  .professional-desk,
  .app-notice-panel,
  .holding-add-panel,
  .avatar-crop-panel,
  .opportunity-popup-panel
) {
  border-radius: var(--radius-panel) !important;
}

/* —— 2) 浮层菜单：比面板小一档，避免下拉框圆得像气泡 —— */
:root body :is(.custom-select-menu, .account-popover) {
  border-radius: var(--radius-menu) !important;
}

/* —— 3) 输入类控件：清掉历史 7px，与按钮同圆角 —— */
:root body :is(
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]),
  select,
  textarea
) {
  border-radius: var(--radius-control) !important;
}

/* —— 4) 控件材质：统一到同一组令牌，不再有"实心 panel"混进来 —— */
:root body :is(
  .home-refresh,
  .home-menu-toggle,
  .home-icon-button,
  .portfolio-home-link,
  .market-home-link,
  .topbar-home-link,
  .account-trigger,
  .refresh-button,
  .secondary-button,
  .account-secondary-button,
  .news-icon-button,
  .news-refresh-button,
  .indicator-history-toggle,
  .signal-page-button,
  .workspace-row-action,
  .holding-news-action,
  .section-nav-collapse,
  .custom-select-trigger,
  .mobile-nav-toggle
) {
  background: var(--control-bg);
  border-color: var(--control-edge);
  color: var(--control-text);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03);
}

/* 阈值胶囊 / 策略触发块：只统一材质，保留各自的红黄绿语义色 */
:root body :is(.threshold-chip, .strategy-trigger) {
  background: var(--control-bg);
  border-color: var(--control-edge);
  border-radius: var(--radius-control);
}

:root body .threshold-chip.neutral {
  color: var(--muted-strong);
}

/* 小徽标一律用胶囊，与"持仓配额 / 发布置顶 / VIP"同类元素对齐 */
:root body :is(.threshold-chip, .holding-quota, .macro-release-pin, .admin-vip-button) {
  border-radius: 999px;
}

/* —— 5) 分段控件：轨道 + 选中块，两者共用一组圆角与底色 —— */
:root body :is(.indicator-tabs, .news-categories) {
  gap: 4px;
  padding: 4px;
  border: 0;
  border-radius: var(--radius-group);
  background: var(--control-track);
  box-shadow: none;
}

:root body :is(.indicator-tab, .news-categories .news-category) {
  border: 1px solid transparent;
  border-radius: var(--radius-control);
  background: transparent;
  box-shadow: none;
  color: var(--muted);
}

:root body :is(
  .indicator-tab.active,
  .indicator-tab[aria-selected="true"],
  .news-category[aria-selected="true"]
) {
  border-color: var(--control-edge);
  background: var(--control-selected);
  color: var(--control-text);
}

/* —— 6) 侧边栏导航项：市场页曾是 15px，其它页 10px —— */
:root body :is(.section-nav-link, .section-nav-collapse) {
  border-radius: var(--radius-control);
}

/* —— 7) 首页"今日确认"原本是无类名的裸 button，落成 0 圆角文字块 —— */
:root body .home-command-action-controls button {
  min-height: 44px;
  padding: 0 14px;
  border: 1px solid var(--control-edge);
  border-radius: var(--radius-control);
  background: var(--control-bg);
  color: var(--blue);
}

:root body .home-command-action-controls button:disabled {
  border-color: transparent;
  background: transparent;
  color: var(--muted);
}

/* —— 8) 首页顶栏：其它页面都是"悬浮圆角玻璃条"，这里原本是通栏+下边框 —— */
@media (min-width: 621px) {
  :root body .home-header {
    padding: 12px 0;
    border-bottom: 0;
  }

  /* 左右缩进取内容列的位置，保证玻璃条与 .home-main 严格同宽 */
  :root body .home-header::before {
    inset: 12px max(24px, calc((100% - 1240px) / 2)) 12px;
    border: 1px solid var(--home-glass-edge);
    border-radius: var(--radius-panel);
    box-shadow: var(--home-glass-shadow), var(--home-glass-inset);
  }
}

/* —— 9) 版本更新弹窗：网页版与桌面版共用，沿用页面的毛玻璃令牌 —— */
.release-popup {
  position: fixed;
  z-index: 400;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 20px;
  background: color-mix(in srgb, var(--bg) 42%, transparent);
  -webkit-backdrop-filter: saturate(150%) blur(20px);
  backdrop-filter: saturate(150%) blur(20px);
  animation: release-popup-in var(--motion-base) var(--ease-apple);
}

.release-panel {
  width: min(392px, 100%);
  padding: 24px 22px 20px;
  border: 1px solid var(--glass-edge, var(--control-edge));
  border-radius: var(--radius-panel);
  background:
    linear-gradient(140deg, var(--glass-sheen, transparent), transparent 52%),
    var(--glass-surface, var(--panel));
  -webkit-backdrop-filter: saturate(180%) blur(24px);
  backdrop-filter: saturate(180%) blur(24px);
  box-shadow:
    0 24px 60px rgba(10, 14, 20, 0.22),
    inset 0 1px 0 var(--glass-highlight, transparent);
  color: var(--text);
  text-align: center;
}

.release-mark {
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  margin: 0 auto 14px;
  border: 1px solid var(--glass-edge, var(--control-edge));
  border-radius: var(--radius-group);
  background: #000 url("/favicon.svg") center / cover;
  color: transparent;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0;
}

.release-title {
  display: block;
  font-size: 18px;
  font-weight: 700;
}

.release-meta,
.release-count {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 12.5px;
}

.release-list {
  margin: 18px 0 0;
  padding: 0;
  list-style: none;
  text-align: left;
}

.release-list li {
  position: relative;
  padding: 7px 0 7px 16px;
  color: var(--text);
  font-size: 14px;
  line-height: 1.55;
}

.release-list li::before {
  position: absolute;
  top: 14px;
  left: 2px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--blue);
  content: "";
}

.release-list li + li {
  border-top: 1px solid var(--line-soft);
}

.release-actions {
  display: flex;
  gap: 10px;
  margin-top: 20px;
}

.release-button {
  flex: 1;
  min-height: 46px;
  border: 1px solid var(--glass-edge, var(--control-edge));
  border-radius: var(--radius-control);
  background: color-mix(in srgb, var(--panel) 58%, transparent);
  color: var(--blue);
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  transition:
    transform var(--motion-instant) var(--ease-apple),
    background var(--motion-fast) var(--ease-apple);
}

.release-button.primary {
  border-color: transparent;
  background: var(--blue);
  color: var(--bg);
}

.release-button:active {
  transform: scale(0.97);
}

.release-button:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--blue) 45%, transparent);
  outline-offset: 2px;
}

@keyframes release-popup-in {
  from {
    opacity: 0;
    transform: scale(0.96);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

@media (prefers-reduced-motion: reduce) {
  .release-popup,
  .release-button {
    animation: none;
    transition: none;
  }
}

/* ============================================================================
   玻璃材质对齐手机端（GlassSurface）
   ----------------------------------------------------------------------------
   手机端的毛玻璃由四件事组成，网页此前缺了三件：
     1. 真实背景模糊（BackdropPane）：网页的内容卡片是纯色半透明，没有模糊；
     2. 斜向镜面高光 + 顶部 1px 亮边：网页的 sheen 被后加载的
        `background: var(--glass-card)` 覆盖成了单色，卡片因此发平；
     3. 底色透过率：手机端浅色卡片只有 56% 白、深色 47%，网页分别是 84% 与
        93%，等于不透明，背后的环境光完全透不过来。
   这里按手机端的配方补齐：底色令牌对齐手机端色值，卡片补上模糊、斜向高光与
   顶部亮边，顶栏与侧边栏的模糊半径向手机端的 26dp 靠拢。
   卡片数量最多的市场页有 80 个卡片级表面，模糊半径因此收在 18px（手机端同级
   表面也是 18dp），既跟得上手机端观感，也不会把滚动拖慢。
   ============================================================================ */

:root {
  --liquid-content: rgba(255, 255, 255, 0.58);
  --liquid-content-hover: rgba(255, 255, 255, 0.74);
  --liquid-surface: rgba(255, 255, 255, 0.72);
  --liquid-control: rgba(255, 255, 255, 0.64);
  --liquid-card-sheen: rgba(255, 255, 255, 0.26);
  --glass-sheen: rgba(255, 255, 255, 0.26);
  --glass-highlight: rgba(255, 255, 255, 0.72);
  --glass-card: var(--liquid-content);
  --glass-surface: var(--liquid-surface);
  --glass-surface-strong: var(--liquid-surface);
  --home-glass: var(--liquid-content);
  --home-glass-strong: var(--liquid-surface);
  --glass-card-blur: saturate(180%) blur(18px);
  --glass-chrome-blur: saturate(185%) blur(20px);
}

:root[data-theme="dark"] {
  --liquid-content: rgba(34, 44, 56, 0.62);
  --liquid-content-hover: rgba(43, 55, 70, 0.74);
  --liquid-surface: rgba(27, 35, 46, 0.72);
  --liquid-control: rgba(40, 51, 66, 0.62);
  --liquid-card-sheen: rgba(210, 226, 245, 0.06);
  --glass-sheen: rgba(255, 255, 255, 0.06);
  --glass-highlight: rgba(210, 226, 245, 0.14);
  --glass-card: var(--liquid-content);
  --glass-surface: var(--liquid-surface);
  --glass-surface-strong: var(--liquid-surface);
  --home-glass: var(--liquid-content);
  --home-glass-strong: var(--liquid-surface);
}

/* —— 内容卡片：手机端 GlassSurface 的配方 —— */
:root body :is(
  .card,
  .event-board,
  .strategy-board,
  .tactical-board,
  .signal-board,
  .portfolio-board,
  .release-card,
  .news-card,
  .news-impact-card,
  .holding-news-card,
  .holding-news-item,
  .news-detail-panel,
  .indicator-card,
  .tactical-card,
  .tactical-watch-card,
  .buffett-card,
  .stress-card,
  .asset-card,
  .daily-focus-card,
  .daily-focus-grid,
  .workspace-card,
  .workspace-metric-card,
  .workspace-hero,
  .workspace-kpis,
  .watchlist-card,
  .alert-rule-card,
  .alert-event-history,
  .macro-release-card,
  .journal-card,
  .transaction-attribution,
  .settings-audit-panel,
  .settings-panel,
  .settings-session-panel,
  .portfolio-summary-panel,
  .portfolio-stress-panel
) {
  background:
    linear-gradient(128deg, var(--liquid-card-sheen), transparent 38%),
    var(--liquid-content) !important;
  -webkit-backdrop-filter: var(--glass-card-blur) !important;
  backdrop-filter: var(--glass-card-blur) !important;
  box-shadow:
    0 18px 40px -26px rgba(16, 24, 40, 0.34),
    0 2px 8px -4px rgba(16, 24, 40, 0.12),
    inset 0 1px 0 var(--glass-highlight) !important;
}

:root[data-theme="dark"] body :is(
  .card,
  .event-board,
  .strategy-board,
  .tactical-board,
  .signal-board,
  .portfolio-board,
  .release-card,
  .news-card,
  .news-impact-card,
  .holding-news-card,
  .holding-news-item,
  .news-detail-panel,
  .indicator-card,
  .tactical-card,
  .tactical-watch-card,
  .buffett-card,
  .stress-card,
  .asset-card,
  .daily-focus-card,
  .daily-focus-grid,
  .workspace-card,
  .workspace-metric-card,
  .workspace-hero,
  .workspace-kpis,
  .watchlist-card,
  .alert-rule-card,
  .alert-event-history,
  .macro-release-card,
  .journal-card,
  .transaction-attribution,
  .settings-audit-panel,
  .settings-panel,
  .settings-session-panel,
  .portfolio-summary-panel,
  .portfolio-stress-panel
) {
  box-shadow:
    0 20px 44px -28px rgba(0, 0, 0, 0.72),
    0 2px 8px -4px rgba(0, 0, 0, 0.44),
    inset 0 1px 0 var(--glass-highlight) !important;
}

@media (hover: hover) and (pointer: fine) {
  :root body :is(.card, .news-card, .workspace-card, .indicator-card, .asset-card, .tactical-card):hover {
    background:
      linear-gradient(128deg, var(--liquid-card-sheen), transparent 38%),
      var(--liquid-content-hover) !important;
  }
}

/* 首页卡片沿用自己的 --home-glass-* 令牌（home.css 已带模糊与高光），
   这里只让暗色那套跟随新的透过率，见上面的 :root[data-theme="dark"] 令牌块。 */
/* —— 常驻导航：模糊向手机端的 26dp 靠拢 —— */
:root body :is(.topbar, .section-nav, .account-popover, .workspace-anchor-nav, .custom-select-menu) {
  -webkit-backdrop-filter: var(--glass-chrome-blur) !important;
  backdrop-filter: var(--glass-chrome-blur) !important;
}

@media (max-width: 720px) {
  :root {
    --glass-card-blur: saturate(170%) blur(14px);
    --glass-chrome-blur: saturate(180%) blur(16px);
  }
}

/* Black/white liquid material shared by web pages. Risk colors stay semantic. */
:root {
  --bg: #fff; --bg-top: #f5f5f5; --panel: #fff; --panel-strong: #f5f5f5;
  --text: #171717; --muted: #666; --muted-strong: #454545;
  --line: #ddd; --line-soft: #ebebeb; --blue: #242424; --cyan: #777;
  --control-bg: rgba(238,238,238,.88); --control-hover: rgba(224,224,224,.96);
  --control-edge: rgba(0,0,0,.10); --control-text: #242424;
  --control-track: rgba(0,0,0,.055); --control-selected: #fff; --control-accent: #242424;
  --liquid-content: rgba(255,255,255,.56); --liquid-content-hover: rgba(255,255,255,.72);
  --liquid-surface: rgba(255,255,255,.64); --liquid-control: rgba(255,255,255,.58);
  --liquid-edge: rgba(255,255,255,.90); --liquid-edge-subtle: rgba(0,0,0,.09);
  --liquid-card-sheen: rgba(255,255,255,.46); --glass-sheen: rgba(255,255,255,.46);
  --glass-highlight: rgba(255,255,255,.96);
  --liquid-inset: inset 0 1px 0 rgba(255,255,255,.96), inset 0 -1px 0 rgba(0,0,0,.045);
  --liquid-shadow: 0 16px 40px -24px rgba(0,0,0,.34), 0 2px 8px -5px rgba(0,0,0,.15);
  --aurora-1: rgba(0,0,0,.07); --aurora-2: rgba(0,0,0,.035);
  --aurora-3: rgba(0,0,0,.045); --aurora-4: rgba(0,0,0,.025);
  --home-bg: var(--bg); --home-surface: var(--panel); --home-text: var(--text);
  --home-muted: var(--muted); --home-muted-soft: #777; --home-accent: var(--blue);
  --home-neutral-soft: var(--panel-strong);
  --home-glass: var(--liquid-content); --home-glass-strong: var(--liquid-surface);
  --home-glass-soft: rgba(255,255,255,.40); --home-glass-sheet: rgba(255,255,255,.86);
  --home-glass-edge: var(--liquid-edge-subtle); --home-glass-line: var(--liquid-edge);
  --home-glass-inset: var(--liquid-inset); --home-glass-shadow: var(--liquid-shadow);
  --home-wash-1: var(--aurora-1); --home-wash-2: var(--aurora-2);
  --home-wash-3: var(--aurora-3); --home-wash-4: var(--aurora-4);
  --liquid-blur: blur(18px); --liquid-blur-strong: blur(26px);
  --home-glass-blur: blur(24px); --glass-card-blur: blur(18px); --glass-chrome-blur: blur(26px);
  --liquid-radius-card: 24px; --home-radius: 24px;
  --ease-glass: cubic-bezier(.22,1,.36,1);
}
:root[data-theme="dark"] {
  --bg: #000; --bg-top: #090909; --panel: #151515; --panel-strong: #222;
  --text: #f5f5f5; --muted: #a3a3a3; --muted-strong: #d4d4d4;
  --line: #333; --line-soft: #252525; --blue: #e5e5e5; --cyan: #aaa;
  --control-bg: rgba(26,26,26,.79); --control-hover: rgba(38,38,38,.92);
  --control-edge: rgba(255,255,255,.14); --control-text: #f5f5f5;
  --control-track: rgba(255,255,255,.055); --control-selected: #252525; --control-accent: #353535;
  --liquid-content: rgba(22,22,22,.56); --liquid-content-hover: rgba(34,34,34,.72);
  --liquid-surface: rgba(20,20,20,.66); --liquid-control: rgba(26,26,26,.79);
  --liquid-edge: rgba(255,255,255,.22); --liquid-edge-subtle: rgba(255,255,255,.12);
  --liquid-card-sheen: rgba(255,255,255,.08); --glass-sheen: rgba(255,255,255,.08);
  --glass-highlight: rgba(255,255,255,.26);
  --liquid-inset: inset 0 1px 0 rgba(255,255,255,.24), inset 0 -1px 0 rgba(255,255,255,.035);
  --liquid-shadow: 0 18px 44px -22px rgba(0,0,0,.8), 0 2px 8px rgba(0,0,0,.25);
  --aurora-1: rgba(255,255,255,.09); --aurora-2: rgba(255,255,255,.035);
  --aurora-3: rgba(255,255,255,.06); --aurora-4: rgba(255,255,255,.025);
  --home-muted-soft: #999; --home-glass-soft: rgba(22,22,22,.40);
  --home-glass-sheet: rgba(18,18,18,.88);
}
:root body :is(.brand-mark,.home-brand-mark) {
  background: #000; border-radius: 24%; color: #fff; box-shadow: 0 0 0 1px rgba(128,128,128,.22);
}
:root body :is(.brand-mark,.home-brand-mark) .brand-glyph { width: 100%; height: 100%; }
:root[data-theme="dark"] :is(.news-card h4,.news-title-row h3,.section-heading h2) { color: var(--text); }
:root[data-theme="dark"] body :is(.preference-switch input:checked + i,.switch-control input:checked + .switch-track) {
  background: #333; border: 1px solid rgba(255,255,255,.22);
}
:root body :is(.home-header,.topbar,.section-nav,.account-popover,.custom-select-menu,.app-notice-panel) {
  background: linear-gradient(125deg,var(--glass-sheen),transparent 48%),var(--liquid-surface) !important;
  border-color: var(--liquid-edge) !important;
  box-shadow: var(--liquid-shadow),var(--liquid-inset) !important;
  -webkit-backdrop-filter: var(--glass-chrome-blur) !important;
  backdrop-filter: var(--glass-chrome-blur) !important;
}
@media (prefers-reduced-motion: no-preference) {
  :root body :is(button,.home-nav a,.section-nav-link) {
    transition: background-color 180ms,transform 180ms var(--ease-glass);
  }
  :root body :is(button,.home-nav a,.section-nav-link) { scale: 1; }
  :root body :is(.account-popover,.custom-select-menu,.app-notice-panel) {
    transform-origin: top right;
    animation: glass-unfold 420ms var(--ease-glass) both;
  }
  @keyframes glass-unfold {
    from { opacity: 0; translate: 0 -6px; scale: .94; }
    to { opacity: 1; translate: 0 0; scale: 1; }
  }
}
@media (prefers-reduced-motion: reduce) {
  :root body *, :root body *::before, :root body *::after {
    animation-duration: .01ms !important; animation-iteration-count: 1 !important;
    transition-duration: .01ms !important; scroll-behavior: auto !important;
  }
}
@supports not (backdrop-filter: blur(1px)) {
  :root { --liquid-content: #fff; --liquid-surface: #fff; --home-glass-soft: #f5f5f5; }
  :root[data-theme="dark"] { --liquid-content: #151515; --liquid-surface: #151515; --home-glass-soft: #191919; }
}

/* Filled actions keep readable contrast in both themes. */
:root body :is(.account-primary-button,.home-primary-action,.register-submit,.login-submit) {
  background: var(--blue) !important;
  color: var(--bg) !important;
  border-color: transparent !important;
}

/* Video reference: thin optical edges, floating chrome, quiet reading surfaces. */
:root {
  --glass-card-blur: none;
  --glass-chrome-blur: blur(18px);
  --home-glass-blur: none;
  --home-shadow: 0 6px 20px -16px rgba(0,0,0,.20);
  --home-glass-shadow: 0 12px 28px -20px rgba(0,0,0,.30);
  --home-glass-inset: inset 0 .6px 0 rgba(255,255,255,.88);
  --home-glass-edge: rgba(0,0,0,.20);
  --home-glass-soft: rgba(255,255,255,.35);
  --liquid-content: rgba(255,255,255,.48);
  --liquid-surface: rgba(255,255,255,.48);
  --liquid-edge: rgba(255,255,255,.72);
  --liquid-inset: inset 0 1px 0 rgba(255,255,255,.9), inset 0 -0.5px 0 rgba(0,0,0,.06);
  --liquid-shadow: 0 10px 24px -15px rgba(0,0,0,.26);
}
:root[data-theme="dark"] {
  --home-shadow: 0 8px 24px -18px rgba(0,0,0,.45);
  --home-glass-shadow: var(--home-shadow);
  --home-glass-inset: inset 0 .6px 0 rgba(255,255,255,.16);
  --home-glass-edge: rgba(255,255,255,.07);
  --home-glass-soft: rgba(255,255,255,.025);
  --liquid-content: rgba(20,20,20,.46);
  --liquid-surface: rgba(24,24,24,.54);
  --liquid-edge: rgba(255,255,255,.16);
  --liquid-inset: inset 0 .7px 0 rgba(255,255,255,.24), inset 0 -.5px 0 rgba(255,255,255,.04);
  --liquid-shadow: 0 12px 28px -18px rgba(0,0,0,.7);
}
:root body :is(.card,.news-card,.indicator-card,.workspace-card,.workspace-hero,.workspace-kpis,.asset-card,.settings-panel,.portfolio-summary-panel,.tactical-card,.event-board,.signal-board,.strategy-board,.portfolio-board,.release-card,.news-impact-card,.holding-news-card,.holding-news-item,.daily-focus-card,.daily-focus-grid,.watchlist-card,.alert-rule-card,.macro-release-card,.journal-card,.settings-audit-panel,.settings-session-panel,.portfolio-stress-panel) {
  backdrop-filter: none !important; -webkit-backdrop-filter: none !important;
  box-shadow: var(--home-shadow),var(--home-glass-inset) !important;
  border-color: var(--home-glass-edge) !important;
}
:root body :is(.home-header,.topbar,.section-nav,.account-popover,.custom-select-menu,.release-panel,.app-notice-panel) {
  -webkit-backdrop-filter: var(--glass-chrome-blur) !important;
  backdrop-filter: var(--glass-chrome-blur) !important;
  box-shadow: var(--liquid-shadow),var(--liquid-inset) !important;
}
:root body .home-header { background: transparent !important; box-shadow: none !important; backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
:root body .home-header-inner {
  border: .7px solid var(--liquid-edge); border-radius: 28px;
  background: linear-gradient(125deg,var(--glass-sheen),transparent 55%),var(--liquid-surface);
  backdrop-filter: var(--glass-chrome-blur); -webkit-backdrop-filter: var(--glass-chrome-blur);
  box-shadow: var(--liquid-shadow),var(--liquid-inset);
}
:root body .home-header::before { display: none; }
:root body .liquid-managed { animation: none !important; transition: none !important; }
:root body .liquid-rail { position: relative; isolation: isolate; }
:root body .liquid-rail > :is(a,button) { position: relative; z-index: 1; }
:root body .liquid-rail > :is(.is-active,[aria-selected="true"],[aria-current="page"]) {
  background: transparent !important; box-shadow: none !important; border-color: transparent !important;
}
:root body .liquid-selection {
  position: absolute; z-index: 0; left: 0; top: 0; width: 100px; height: 40px;
  pointer-events: none; box-sizing: border-box; border: 1px solid var(--control-border); border-radius: 999px;
  background: linear-gradient(135deg,var(--glass-sheen),transparent),var(--control-selected);
  box-shadow: var(--liquid-inset),0 2px 5px -3px rgba(0,0,0,.16);
}
:root body :is(.account-popover,.custom-select-menu,.release-panel) { border-radius: 24px; }
:root body .custom-select-menu { transition: opacity 180ms,transform 380ms var(--ease-glass) !important; }
:root body .custom-select.is-open .custom-select-menu { transform: translateY(0) scale(1); }
:root body .custom-select.is-closing .custom-select-menu { transform: translateY(-4px); opacity: 0; pointer-events: none; }
/* Large cards do not jump or run staggered entrance animations during scrolling. */
:root body :is(main,.home-main,main > section,main > article,.home-main > section) { animation: none !important; }
@media (hover:hover) {
  :root body :is(.card,.news-card,.workspace-card,.asset-card,.indicator-card):hover { transform: none !important; }
}

/* Reference 2: regular capsules with readable edges on white surfaces. */
:root { --control-border: rgba(0,0,0,.20); --control-track: rgba(0,0,0,.08); }
:root[data-theme="dark"] { --control-border: rgba(255,255,255,.22); --control-track: rgba(255,255,255,.07); }
:root body :is(button,.button,.btn,.custom-select-trigger,.account-trigger,.theme-toggle) { border-color: var(--control-border); }
:root body :is(.home-nav,.indicator-tabs,.news-categories).liquid-rail { border-radius: 999px; }
:root body .section-nav-links.liquid-rail { border-radius: 0; }
:root body :is(button,a,input,select,textarea):focus-visible { outline: 2px solid var(--text); outline-offset: 3px; }
:root { --ease-glass: var(--ease-apple); --ease-out: var(--ease-apple); --ease-soft: var(--ease-apple); }
:root body *, :root body *::before, :root body *::after { transition-timing-function: var(--ease-glass) !important; animation-timing-function: var(--ease-glass) !important; }

/* A single, small press response. Navigation labels never scale beneath their selection. */
:root body :is(button,.account-primary-button,.account-secondary-button,.secondary-button,.refresh-button,.market-home-link,.topbar-home-link,.workspace-row-action,.holding-news-action):not(:disabled):hover {
  transform: none; filter: none;
}
:root body :is(button,.account-primary-button,.account-secondary-button,.secondary-button,.refresh-button,.market-home-link,.topbar-home-link,.workspace-row-action,.holding-news-action):not(:disabled):not(.liquid-control):active {
  transform: scale(.985) !important; scale: 1 !important; transition-duration: 100ms !important;
}
:root body .liquid-rail > :is(a,button):not(.liquid-control), :root body .liquid-rail > :is(a,button):not(:disabled):not(.liquid-control):active {
  transform: none !important; scale: 1 !important;
}

/* The shell changes layout once; LiquidMotion moves its retained layer. */
body.dashboard-page .shell { transition: none; }
body.dashboard-page .section-nav { transition-property: transform; transition-timing-function: var(--ease-apple); }
body.dashboard-page .section-nav { contain: layout style; }
body.dashboard-page .section-nav :is(.section-nav-link,.section-nav-brand,.section-nav-brand-copy,.section-nav-label,.section-nav-collapse) {
  transition-property: opacity, transform, color, background-color !important;
}
/* Floating chrome keeps its glass; transient menus avoid repeatedly sampling it. */
:root body :is(.account-popover,.custom-select-menu,.app-notice-panel) {
  background: linear-gradient(125deg,var(--glass-sheen),transparent 55%),var(--panel) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* Content hierarchy: compact summaries, clear values, consistent grouped surfaces. */
:root {
  --home-radius-lg: 22px;
  --home-radius: 18px;
  --home-radius-sm: 16px;
  --radius-panel: 22px;
  --home-shadow: 0 3px 12px -9px rgba(0, 0, 0, .16);
}
:root[data-theme="dark"] { --home-shadow: 0 3px 12px -9px rgba(0, 0, 0, .4); }
body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", sans-serif; }
body :is(.home-hero, .workspace-hero, .settings-hero) { padding: 22px; }
body :is(.home-hero h1, .workspace-hero h1, .portfolio-board-head h1, .settings-page-head h1, .doc-hero h1, .investor-title h1) {
  font-size: clamp(24px, 2.2vw, 30px);
  line-height: 1.25;
  font-weight: 650;
  letter-spacing: -.025em;
}
body :is(.home-section-head h2, .home-command-panel-head h2, .workspace-section-head h2, .section-heading h2, .settings-panel-head h2) {
  font-size: 18px;
  line-height: 1.35;
  font-weight: 650;
  letter-spacing: -.015em;
}
body :is(.eyebrow, .home-eyebrow, .card-kicker) { font-weight: 550; letter-spacing: .02em; }
body :is(.home-hero-slogan, .workspace-hero-copy > p:last-child) { margin-top: 6px; color: var(--muted, var(--home-muted)); font-size: 13px; }
body :is(.home-section, .workspace-section) { margin-top: 20px; }
body :is(.home-command-grid, .home-command-detail-grid, .home-priority-grid, .workspace-route-grid) { gap: 12px; }
body .home-command-detail-grid { align-items: start; }
body :is(.home-command-card, .home-change-panel, .home-action-panel, .workspace-card, .settings-panel, .portfolio-summary-panel) { padding: 18px; }
body :is(.home-command-card strong, .workspace-kpis strong, .portfolio-metric strong) {
  font-variant-numeric: tabular-nums;
  letter-spacing: -.025em;
  font-weight: 650;
}
body .home-command-card strong { font-size: 24px; line-height: 1.2; }
body .home-command-card b { font-size: 12px; font-weight: 500; }
body .workspace-kpis article { padding: 14px 16px; }
body .workspace-kpis strong { font-size: 24px; }
body :is(.risk-command, .professional-desk) { padding: 20px; }
body .daily-focus-card { padding: 18px; }
body .daily-focus-card::before { left: 18px; }

/* A header, a category rail and a separate page control make the reading flow clear. */
body .news-hub-head { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; align-items: start; }
body .news-title-row h3 { font-size: 20px; font-weight: 650; letter-spacing: -.02em; }
body .news-toolbar { display: flex; width: 100%; flex-wrap: wrap; align-items: center; gap: 10px; }
body .news-categories { flex: 1 1 500px; min-width: 0; }
body .news-scroll-actions { margin-left: auto; flex: 0 0 auto; }
body .news-meta { font-size: 11px; line-height: 1.5; }
body .news-hub-foot { margin-top: 12px; font-size: 11px; }
body .news-pagination { margin-top: 14px; }

/* The home preview uses the same small, readable cards as the market feed. */
body .home-news-grid { grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); gap: 12px; }
body .home-news-card { min-height: 190px; padding: 14px; }
body .home-news-meta { gap: 6px; font-size: 12px; }
body .home-news-meta > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body .home-news-meta b { flex: 0 1 auto; min-width: 0; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body .home-evidence-head { flex-wrap: wrap; }
body .home-evidence-head b { min-width: 0; max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
body .home-news-card h3 { margin-top: 10px; font-size: 15px; line-height: 1.4; font-weight: 650; -webkit-line-clamp: 3; }
body .home-news-card p { padding-top: 10px; font-size: 12px; line-height: 1.5; }
body .holding-news-card { padding: 14px; }
body .holding-news-card h3 { font-size: 15px; line-height: 1.45; }
body .holding-news-card p { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; font-size: 12px; line-height: 1.5; }

/* Reading pages retain full text; only overview cards have line limits. */
body .news-detail-panel { max-width: 900px; }
body :is(#newsDetailTitle, #holdingNewsDetailTitle) { font-size: clamp(21px, 2vw, 27px); line-height: 1.4; }
body .news-detail-section { padding: 18px; }
body .news-detail-section h3 { font-size: 16px; font-weight: 650; }
body .news-reading-copy { font-size: 14px; line-height: 1.8; }
body :is(.settings-field, .preference-row) { border-radius: 14px; }

@media (min-width: 901px) {
  body .home-command-action-controls { display: flex; align-items: center; gap: 8px; }
}

@media (max-width: 600px) {
  body :is(.home-hero, .workspace-hero, .settings-hero) { padding: 16px; }
  body :is(.home-command-card, .home-change-panel, .home-action-panel, .workspace-card, .settings-panel, .portfolio-summary-panel) { padding: 14px; }
  body :is(.home-section-head h2, .workspace-section-head h2, .section-heading h2) { font-size: 17px; }
  body .news-title-row h3 { font-size: 18px; }
  body .news-categories { flex-basis: 100%; }
  body .home-news-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  body .home-news-card { padding: 12px; min-height: 192px; }
  body .home-news-card h3 { font-size: 14px; }
  body .home-news-card p { font-size: 12px; }
  body .home-news-meta { flex-wrap: wrap; }
  body .workspace-kpis article { padding: 12px; }
  body .workspace-kpis strong { font-size: 21px; }
  body .news-detail-section { padding: 14px; }
}
@media (max-width: 359px) { body .home-news-grid { grid-template-columns: minmax(0, 1fr); } }

/* Shared optical material: blur the backdrop, keep the foreground crisp. */
:root {
  --glass-chrome-blur: saturate(145%) blur(30px);
  --glass-sheen: rgba(255,255,255,.24);
  --glass-highlight: rgba(255,255,255,.86);
  --liquid-card-sheen: rgba(255,255,255,.18);
  --liquid-content: rgba(255,255,255,.76);
  --liquid-surface: rgba(255,255,255,.38);
  --liquid-edge: rgba(255,255,255,.48);
  --liquid-shadow: 0 16px 36px -22px rgba(0,0,0,.28),0 3px 8px -5px rgba(0,0,0,.16);
  --liquid-inset: inset 0 .75px 0 rgba(255,255,255,.92),inset 0 -.75px 0 rgba(0,0,0,.12),inset 0 0 0 .5px rgba(0,0,0,.055);
  --home-glass-edge: rgba(0,0,0,.14);
  --home-glass-inset: inset 0 .75px 0 rgba(255,255,255,.9),inset 0 -.5px 0 rgba(0,0,0,.035);
  --desktop-wash: rgba(0,0,0,.075);
}
:root[data-theme="dark"] {
  --glass-sheen: rgba(255,255,255,.10);
  --glass-highlight: rgba(255,255,255,.40);
  --liquid-card-sheen: rgba(255,255,255,.045);
  --liquid-content: rgba(14,14,14,.78);
  --liquid-surface: rgba(12,12,12,.42);
  --liquid-edge: rgba(255,255,255,.20);
  --liquid-shadow: 0 16px 36px -20px rgba(0,0,0,.66),0 3px 8px -4px rgba(0,0,0,.42);
  --liquid-inset: inset 0 .75px 0 rgba(255,255,255,.40),inset 0 -.75px 0 rgba(255,255,255,.07),inset 0 0 0 .5px rgba(0,0,0,.20);
  --home-glass-edge: rgba(255,255,255,.14);
  --home-glass-inset: inset 0 .75px 0 rgba(255,255,255,.20),inset 0 -.5px 0 rgba(255,255,255,.025);
  --desktop-wash: rgba(255,255,255,.10);
}
:root body :is(.home-header-inner,.topbar,.section-nav,.account-popover,.custom-select-menu,.release-panel,.app-notice-panel),
:root[data-theme="dark"] body :is(.home-header-inner,.topbar,.section-nav,.account-popover,.custom-select-menu,.release-panel,.app-notice-panel) {
  background:linear-gradient(155deg,var(--glass-sheen),transparent 38%,rgba(255,255,255,.035) 100%),var(--liquid-surface) !important;
  border-color:var(--liquid-edge) !important;
  box-shadow:var(--liquid-shadow),var(--liquid-inset) !important;
  backdrop-filter:var(--glass-chrome-blur) !important;
  -webkit-backdrop-filter:var(--glass-chrome-blur) !important;
}
:root body :is(.card,.news-card,.workspace-card,.workspace-hero,.workspace-kpis,.asset-card,.settings-panel,.portfolio-summary-panel),
:root[data-theme="dark"] body :is(.card,.news-card,.workspace-card,.workspace-hero,.workspace-kpis,.asset-card,.settings-panel,.portfolio-summary-panel) {
  background:linear-gradient(155deg,var(--liquid-card-sheen),transparent 36%,rgba(0,0,0,.018) 100%),var(--liquid-content) !important;
}
body.dashboard-page:not(.nav-collapsed) .section-nav-link {
  display:grid;grid-template-columns:22px minmax(0,1fr) 22px;gap:8px;
}
body.dashboard-page:not(.nav-collapsed) .section-nav-label {
  grid-column:2;max-width:none;min-width:0;text-align:center;text-overflow:ellipsis;
}
@media (min-width:900px) and (hover:hover) {
  :root body {
    background-color:var(--bg);
    background-image:radial-gradient(ellipse at 12% 0%,var(--desktop-wash),transparent 52%),radial-gradient(ellipse at 90% 38%,var(--desktop-wash),transparent 56%);
  }
}
@supports not (backdrop-filter:blur(1px)) {
  :root { --liquid-surface:rgba(255,255,255,.96); }
  :root[data-theme="dark"] { --liquid-surface:rgba(14,14,14,.96); }
}
@media (prefers-reduced-transparency:reduce) {
  :root { --liquid-surface:#fff;--glass-chrome-blur:none; }
  :root[data-theme="dark"] { --liquid-surface:#111; }
}

/* Clear navigation glass: preserve the scrolling backdrop and light the rim.
   Browsers use their native backdrop compositor; no DOM snapshots on scroll. */
:root { --glass-navigation-fill:rgba(255,255,255,.24); }
:root[data-theme="dark"] { --glass-navigation-fill:rgba(12,12,12,.22); }
:root body :is(.segmented-control,.investor-tabs,.indicator-tabs,.watch-view-switch,#sections,#intervals) {
  background:linear-gradient(155deg,var(--glass-sheen),transparent 28%),var(--glass-navigation-fill) !important;
  backdrop-filter:blur(5px) saturate(135%) !important;
  -webkit-backdrop-filter:blur(5px) saturate(135%) !important;
  border-color:var(--liquid-edge) !important;
  box-shadow:var(--liquid-shadow),var(--liquid-inset) !important;
}
:root body :is(button,.account-trigger,.account-secondary-button,.home-icon-button,.home-account-link,.secondary-button,.refresh-button,.symbol-report-link) {
  backdrop-filter:blur(2px) saturate(125%);
  -webkit-backdrop-filter:blur(2px) saturate(125%);
  box-shadow:inset 0 .75px 1px var(--glass-highlight),inset 0 -.75px 1px var(--liquid-edge-subtle);
}
:root body .liquid-rail > :is(a,button) {
  backdrop-filter:none !important;-webkit-backdrop-filter:none !important;
}
:root body .liquid-selection {
  background:linear-gradient(155deg,var(--glass-sheen),transparent 48%),var(--glass-navigation-fill);
  border-color:var(--liquid-edge);backdrop-filter:blur(1.5px) saturate(135%);
  -webkit-backdrop-filter:blur(1.5px) saturate(135%);
}
:root body :is(.home-header-inner,.topbar,.section-nav),
:root[data-theme="dark"] body :is(.home-header-inner,.topbar,.section-nav) {
  background:linear-gradient(155deg,var(--glass-sheen),transparent 28%,rgba(255,255,255,.025)),var(--glass-navigation-fill) !important;
  backdrop-filter:blur(5px) saturate(135%) !important;
  -webkit-backdrop-filter:blur(5px) saturate(135%) !important;
  box-shadow:var(--liquid-shadow),inset 0 .75px 1px var(--glass-highlight),inset 0 -.75px 1px var(--liquid-edge-subtle) !important;
}
@supports not (backdrop-filter:blur(1px)) {
  :root { --glass-navigation-fill:rgba(255,255,255,.96); }
  :root[data-theme="dark"] { --glass-navigation-fill:rgba(14,14,14,.96); }
}
@media (prefers-reduced-transparency:reduce) {
  :root { --glass-navigation-fill:#fff; }
  :root[data-theme="dark"] { --glass-navigation-fill:#111; }
  :root body :is(.home-header-inner,.topbar,.section-nav,.segmented-control,.investor-tabs,.indicator-tabs,.watch-view-switch,#sections,#intervals,button,.liquid-selection),
  :root[data-theme="dark"] body :is(.home-header-inner,.topbar,.section-nav,.segmented-control,.investor-tabs,.indicator-tabs,.watch-view-switch,#sections,#intervals,button,.liquid-selection) {
    backdrop-filter:none !important;-webkit-backdrop-filter:none !important;
  }
}
