/* 中文注释：主样式从 index.html 的 <style> 标签中拆分 */
:root {
    --bg-deep: #030508;
    --bg-panel: rgba(8, 14, 28, 0.65);
    --bg-panel-solid: #0b1221;
    --neon-cyan: #00f3ff;
    --neon-blue: #0066ff;
    --neon-green: #0aff60;
    --neon-red: #ff2a2a;
    --neon-yellow: #fcee0a;
    --neon-purple: #bc13fe;
    --text-main: #e0f7ff;
    --text-dim: #5c7c8a;
    --border-glow: 0 0 10px rgba(0, 243, 255, 0.15);
    --text-glow: 0 0 5px rgba(0, 243, 255, 0.4);
    --font-display: 'Orbitron', sans-serif;
    --font-ui: 'Rajdhani', sans-serif;
    --font-mono: 'JetBrains Mono', monospace;
    /* 中文注释：为中文文本准备全局字体后备栈（系统原生优先，避免跨域加载） */
    --font-cn-sans: 'MiSans','PingFang SC','Microsoft YaHei','Hiragino Sans GB','Source Han Sans SC','Noto Sans SC','WenQuanYi Micro Hei','STHeiti','SimSun','SimHei',sans-serif;
    --font-cn-mono: 'Sarasa Mono SC','Noto Sans Mono CJK SC','Cascadia Mono','SFMono-Regular','Menlo','Monaco','Consolas','Liberation Mono','Courier New',monospace;
    --grid-line: rgba(0, 243, 255, 0.03);
    --ticker-duration: 50s; /* 中文注释：价格滚动速度，数值越大越慢 */
    --topbar-height: 66px; /* 中文注释：顶部导航栏的固定高度，用于计算行情条的粘性位置 */
    --ticker-height: 40px; /* 中文注释：滚动行情条高度，保持与样式一致 */
    --main-tabs-height: 62px; /* 中文注释：主导航Tab固定高度，用于配置页粘性工具栏定位 */
    --decision-action-card-height: 104px; /* 中文注释：首页最多展示 3 条工具动作时使用的单卡高度基准 */
    --decision-action-list-gap: 8px; /* 中文注释：工具动作卡片之间的固定间距 */
}

/* RESET & BASE */
* { margin: 0; padding: 0; box-sizing: border-box; scrollbar-width: thin; scrollbar-color: var(--neon-blue) var(--bg-deep); }
body {
    background-color: var(--bg-deep);
    color: var(--text-main);
    /* 中文注释：优先使用 UI 英文字体，中文文本自动回退到系统中文无衬线字体栈 */
    font-family: var(--font-ui), var(--font-cn-sans);
    overflow-x: hidden;
    background-image: 
        linear-gradient(var(--grid-line) 1px, transparent 1px),
        linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);
    background-size: 40px 40px;
    min-height: 100vh;
    /* 中文注释：字体平滑与连字设置（提升中文与英文字体显示质量） */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
    font-variant-ligatures: contextual;
    font-feature-settings: 'kern' 1, 'liga' 1;
}

/* Custom Scrollbar */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: var(--bg-deep); }
::-webkit-scrollbar-thumb { background: var(--neon-blue); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: var(--neon-cyan); box-shadow: 0 0 8px var(--neon-cyan); }

/* =========================================
   UTILITIES & ANIMATIONS
   ========================================= */
.cyber-text { 
    /* 中文注释：标题/展示字体，中文文本回退到系统中文无衬线 */
    font-family: var(--font-display), var(--font-cn-sans); 
    text-transform: uppercase; 
    letter-spacing: 2px; 
}

/* =========================================
   MODE TOGGLE BUTTONS
   ========================================= */
.mode-toggle { display:flex; gap:6px; }
.mode-toggle .cyber-btn { background: transparent; }
/* 当前模式按钮高亮填充，其它保持透明，仅边框与文字变色 */
.mode-toggle .cyber-btn.active { background: var(--neon-cyan); color:#000; box-shadow: 0 0 10px var(--neon-cyan); }
.mode-toggle .cyber-btn:hover:not(.active) { background: transparent; border-color: var(--neon-cyan); color: var(--neon-cyan); box-shadow: 0 0 6px rgba(0,243,255,0.3); }
.mode-toggle .cyber-btn:disabled {
  cursor: default;
  pointer-events: none;
  opacity: 0.6;
  background: transparent !important;
  box-shadow: none !important;
}
.text-cyan { color: var(--neon-cyan); text-shadow: var(--text-glow); }
.text-red { color: var(--neon-red); text-shadow: 0 0 5px rgba(255, 42, 42, 0.4); }
.text-green { color: var(--neon-green); text-shadow: 0 0 5px rgba(10, 255, 96, 0.4); }
.mono { 
    /* 中文注释：等宽字体，中文文本回退到中文等宽字体 */
    font-family: var(--font-mono), var(--font-cn-mono); 
}
@keyframes scanline { 0% { transform: translateY(-100%); } 100% { transform: translateY(100%); } }

/* =========================================
   LAYOUT STRUCTURE
   ========================================= */
.app-container {
    max-width: 1600px;
    margin: 0 auto;
    padding: 20px;
    display: grid;
    grid-template-columns: 3fr 1fr; /* Main Dashboard | Side Stats */
    grid-gap: 20px;
    position: relative;
    z-index: 2;
}

/* 中文注释：驾驶舱主栅格，优先展示资产与风控，移动端保持同一阅读顺序。 */
.dashboard-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(360px, 0.85fr);
  gap: 20px;
  align-items: stretch;
}
.dashboard-left-column,
.dashboard-right-column {
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.asset-performance-section { grid-area: asset; min-height: 0; }
.risk-security-section { grid-area: risk; }
.positions-summary-section { grid-area: positions; }
.decision-section { grid-area: decision; flex: 1; min-height: 360px; }
.dashboard-panel-header {
  gap: 12px;
}
.dashboard-badge-row {
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  min-width: 0;
}
.dashboard-badge-row .tag {
  max-width: 180px;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* HEADER */
.top-bar {
    grid-column: 1 / -1;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px 25px;
    background: rgba(0, 20, 40, 0.8);
    border-bottom: 2px solid var(--neon-blue);
    backdrop-filter: blur(10px);
    position: sticky;
    top: 0;
    z-index: 100;
    box-shadow: 0 5px 20px rgba(0,0,0,0.5);
    min-height: var(--topbar-height); /* 中文注释：确保顶部栏高度稳定，避免不同分辨率下重叠 */
}
.logo-area { display: flex; align-items: center; gap: 15px; }
.logo-text {
    font-size: 1.8rem;
    font-weight: 900;
    background: linear-gradient(90deg, var(--neon-cyan), #fff);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}
.system-status { display: flex; gap: 20px; font-size: 0.9rem; color: var(--text-dim); }
.status-dot { width: 8px; height: 8px; background: var(--neon-green); border-radius: 50%; display: inline-block; margin-right: 8px; box-shadow: 0 0 8px var(--neon-green); animation: pulse 2s infinite; }

/* TICKER */
.ticker-wrap {
    grid-column: 1 / -1;
    background: rgba(0, 0, 0, 0.6);
    border-top: 1px solid var(--neon-blue);
    border-bottom: 1px solid var(--neon-blue);
    overflow: hidden;
    height: var(--ticker-height); /* 中文注释：使用变量统一高度 */
    display: flex;
    align-items: center;
    position: sticky; /* 中文注释：与顶部栏一致，滚动到指定位置后固定 */
    top: var(--topbar-height); /* 中文注释：固定在顶部栏下方，避免相互覆盖 */
    z-index: 99; /* 中文注释：层级略低于顶部栏，保证视觉层级正确 */
}
.ticker-track { display: flex; gap: 40px; white-space: nowrap; will-change: transform; /* 中文注释：优化动画性能，避免抖动 */ }
.ticker-track.scrolling { /* 中文注释：仅在完成重复填充后启动动画，保证无缝滚动 */ animation: tickerScroll var(--ticker-duration, 30s) linear infinite; }
.ticker-wrap:hover .ticker-track.scrolling { animation-play-state: paused; /* 中文注释：鼠标悬停时暂停滚动，移开后继续 */ }
.ticker-item { font-family: var(--font-mono); font-size: 0.9rem; color: var(--text-dim); }
.ticker-item span { color: var(--text-main); font-weight: bold; }
@keyframes tickerScroll { /* 中文注释：向左滚动半个容器宽度，结合重复内容实现无缝 */ 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }

/* =========================================
   PANEL STYLES (HUD)
   ========================================= */
.hud-panel { background: var(--bg-panel); border: 1px solid rgba(0, 243, 255, 0.1); position: relative; backdrop-filter: blur(8px); padding: 20px; display: flex; flex-direction: column; overflow: visible; }
.hud-panel::before, .hud-panel::after { content: ''; position: absolute; width: 10px; height: 10px; transition: all 0.3s; }
.hud-panel::before { top: 0; left: 0; border-top: 2px solid var(--neon-cyan); border-left: 2px solid var(--neon-cyan); }
.hud-panel::after { bottom: 0; right: 0; border-bottom: 2px solid var(--neon-cyan); border-right: 2px solid var(--neon-cyan); }
.panel-header { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid rgba(255, 255, 255, 0.1); padding-bottom: 10px; margin-bottom: 15px; }
.panel-title { font-family: var(--font-display); font-size: 1rem; color: var(--neon-cyan); display: flex; align-items: center; gap: 10px; }
.panel-title::before { content: ''; display: block; width: 4px; height: 16px; background: var(--neon-cyan); box-shadow: 0 0 8px var(--neon-cyan); }
.portfolio-secondary-tools { display: flex; gap: 8px; align-items: center; margin-left: auto; }
.portfolio-secondary-tools .cyber-btn { min-width: 96px; }

/* =========================================
   SPECIFIC SECTIONS
   ========================================= */
.asset-performance-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.9fr) minmax(260px, 0.78fr);
  gap: 18px;
  min-height: 420px;
}
.asset-chart-pane {
  min-width: 0;
  min-height: 420px;
  display: flex;
  flex-direction: column;
}
.asset-chart-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
  min-width: 0;
}
.chart-kicker {
  color: var(--text-dim);
  font-family: var(--font-display), var(--font-cn-sans);
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0;
}
.segmented-control {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px;
  border: 1px solid rgba(0, 243, 255, 0.18);
  background: rgba(0, 0, 0, 0.24);
}
.equity-range-btn {
  border: 0;
  background: transparent;
  color: var(--text-dim);
  font-family: var(--font-mono), var(--font-cn-mono);
  font-size: 0.72rem;
  padding: 5px 8px;
  cursor: pointer;
}
.equity-range-btn.active,
.equity-range-btn:hover {
  background: rgba(0, 243, 255, 0.16);
  color: var(--neon-cyan);
}
.asset-summary-pane {
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  border-left: 1px solid rgba(255, 255, 255, 0.08);
  padding-left: 18px;
}
.asset-composition {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(255, 255, 255, 0.07);
}
.asset-subhead {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  color: var(--text-dim);
  font-size: 0.75rem;
  line-height: 1.3;
}
.asset-subhead strong {
  color: var(--text-main);
  font-family: var(--font-mono), var(--font-cn-mono);
  font-size: 0.78rem;
}
.asset-composition-bar {
  position: relative;
  display: flex;
  width: 100%;
  height: 8px;
  margin-top: 9px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(0, 243, 255, 0.12);
}
.asset-cash-fill,
.asset-margin-fill {
  display: block;
  height: 100%;
  min-width: 2px;
  transition: width 0.2s ease;
}
.asset-cash-fill {
  width: 100%;
  background: rgba(0, 243, 255, 0.32);
}
.asset-margin-fill {
  width: 0%;
  background: rgba(252, 238, 10, 0.72);
}
.asset-composition-legend,
.asset-risk-labels {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  margin-top: 7px;
  color: var(--text-dim);
  font-size: 0.68rem;
  line-height: 1.35;
}
.asset-composition-legend strong {
  color: var(--text-main);
  font-family: var(--font-mono), var(--font-cn-mono);
}
.asset-mini-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 12px;
}
.asset-mini-item {
  min-width: 0;
  padding: 8px 9px;
  border: 1px solid rgba(0, 243, 255, 0.11);
  background: rgba(0, 0, 0, 0.18);
}
.asset-mini-item .stat-label {
  display: block;
  font-size: 0.68rem;
  line-height: 1.1;
}
.asset-mini-item strong {
  display: block;
  margin-top: 5px;
  font-family: var(--font-mono), var(--font-cn-mono);
  font-size: 0.88rem;
  color: var(--text-main);
  overflow-wrap: anywhere;
}
.asset-risk-boundary {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(255, 255, 255, 0.07);
}
.asset-risk-meter {
  --risk-pos: 0%;
  position: relative;
  height: 10px;
  margin-top: 10px;
  border: 1px solid rgba(0, 243, 255, 0.13);
  background: rgba(255, 255, 255, 0.06);
}
.asset-risk-zone {
  position: absolute;
  top: 0;
  bottom: 0;
}
.asset-risk-zone.stop {
  left: 0;
  width: 16%;
  background: rgba(255, 42, 42, 0.36);
}
.asset-risk-zone.safe {
  left: 16%;
  right: 0;
  background: linear-gradient(90deg, rgba(252, 238, 10, 0.28), rgba(10, 255, 96, 0.36));
}
.asset-risk-marker {
  position: absolute;
  top: -5px;
  left: var(--risk-pos);
  width: 2px;
  height: 18px;
  background: var(--neon-cyan);
  box-shadow: 0 0 8px rgba(0, 243, 255, 0.75);
  transform: translateX(-1px);
}
.asset-risk-labels span {
  min-width: 0;
  overflow-wrap: anywhere;
}
.asset-risk-labels span:nth-child(2) {
  color: var(--text-main);
}
.strategy-badge {
  background: var(--neon-purple);
  color: #fff;
}
.strategy-inline-info {
  margin-top: auto;
  padding-top: 12px;
  color: var(--text-dim);
  font-size: 0.75rem;
  line-height: 1.45;
  text-align: right;
  overflow-wrap: anywhere;
}
.performance-metric-grid,
.positions-summary-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(104px, 1fr));
  gap: 10px;
}
.performance-metric-grid {
  margin-top: 16px;
}
.metric-tile {
  min-width: 0;
  min-height: 62px;
  padding: 10px 11px;
  border: 1px solid rgba(0, 243, 255, 0.12);
  background: rgba(0, 0, 0, 0.22);
  display: grid;
  align-content: center;
  gap: 6px;
}
.metric-tile .stat-label,
.metric-tile .stat-val {
  min-width: 0;
  overflow-wrap: anywhere;
}
.metric-tile .stat-val {
  font-size: 1rem;
}
.chart-section { min-width: 0; display: flex; flex-direction: column; }
.chart-container { width: 100%; flex: 1; min-height: 0; position: relative; }
#equityChart { position: absolute; inset: 0; width: 100%; height: 100%; }
.equity-chart-status { font-size: 11px; color: var(--text-dim); padding: 6px 0; min-height: 24px; }
.equity-chart-tooltip {
  position: absolute;
  z-index: 6;
  min-width: 210px;
  padding: 10px 12px;
  border: 1px solid rgba(0, 243, 255, 0.55);
  background: rgba(3, 7, 13, 0.96);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.45), 0 0 18px rgba(0, 243, 255, 0.12);
  color: var(--text-main);
  font-family: var(--font-mono);
  font-size: 12px;
  pointer-events: none;
}
.equity-chart-tooltip-title {
  color: var(--neon-cyan);
  font-weight: 700;
  margin-bottom: 8px;
}
.equity-chart-tooltip-row {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  padding: 4px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.05);
}
.equity-chart-tooltip-row span:first-child {
  color: var(--text-dim);
}
.account-big-val { font-family: var(--font-mono); font-size: 2.5rem; font-weight: 700; margin: 10px 0; text-align: right; color: var(--text-main); text-shadow: 0 0 10px rgba(255, 255, 255, 0.2); }
.stat-row { display: flex; justify-content: space-between; margin-bottom: 12px; border-bottom: 1px dashed rgba(255, 255, 255, 0.05); padding-bottom: 5px; }
.stat-label { color: var(--text-dim); font-size: 0.9rem; text-transform: uppercase; }
.stat-val { font-family: var(--font-mono); font-weight: bold; }

/* 中文注释：首页风控与系统安全面板专用排版，避免长状态文本挤压侧栏。 */
.ops-safety-section {
  padding: 18px;
}
.ops-safety-section .panel-header {
  margin-bottom: 12px;
  padding-bottom: 9px;
}
.ops-safety-section .panel-title {
  font-size: 0.92rem;
}
.ops-safety-section .tag {
  min-width: 48px;
  text-align: center;
  letter-spacing: 0;
}
.ops-status-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 10px;
}
.risk-core-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 10px;
}
.risk-core-wide {
  grid-column: 1 / -1;
}
.system-health-grid {
  margin-top: 4px;
}
.ops-status-item {
  min-width: 0;
  padding: 8px 9px;
  border-left: 1px solid rgba(0, 243, 255, 0.34);
  background: rgba(0, 0, 0, 0.18);
}
.ops-label {
  display: block;
  color: var(--text-dim);
  font-size: 0.68rem;
  line-height: 1;
}
.ops-value {
  display: block;
  margin-top: 5px;
  color: var(--text-main);
  font-family: var(--font-mono), var(--font-cn-mono);
  font-size: 0.82rem;
  font-weight: 700;
  line-height: 1.25;
  overflow-wrap: anywhere;
}
.ops-section {
  margin-top: 8px;
  padding-top: 10px;
  border-top: 1px solid rgba(255, 255, 255, 0.07);
}
.ops-section-title {
  margin-bottom: 6px;
  color: rgba(92, 124, 138, 0.9);
  font-family: var(--font-display), var(--font-cn-sans);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0;
}
.ops-metric-row,
.ops-gate-row {
  display: grid;
  grid-template-columns: minmax(74px, 0.72fr) minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  padding: 5px 0;
}
.ops-metric-row span,
.ops-gate-row span {
  color: var(--text-dim);
  font-size: 0.75rem;
  line-height: 1.35;
}
.ops-metric-row strong,
.ops-gate-val {
  min-width: 0;
  color: var(--text-main);
  font-family: var(--font-mono), var(--font-cn-mono);
  font-size: 0.78rem;
  font-weight: 700;
  line-height: 1.35;
  text-align: right;
  overflow-wrap: anywhere;
}
.ops-gate-row {
  grid-template-columns: 54px minmax(0, 1fr);
}
.ops-value.is-ok,
.ops-metric-row strong.is-ok,
.ops-gate-val.is-ok {
  color: var(--neon-green);
}
.ops-value.is-warn,
.ops-metric-row strong.is-warn,
.ops-gate-val.is-warn {
  color: var(--neon-yellow);
}
.ops-value.is-danger,
.ops-metric-row strong.is-danger,
.ops-gate-val.is-danger {
  color: var(--neon-red);
}
.ops-action-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
}
.ops-safety-section .cyber-btn {
  min-height: 32px;
  padding: 6px 8px;
  font-size: 0.68rem;
  line-height: 1.2;
  text-transform: none;
  white-space: nowrap;
}
.ops-btn-warning {
  border-color: var(--neon-yellow);
  color: var(--neon-yellow);
}
.ops-btn-warning:hover {
  background: var(--neon-yellow);
  color: #000;
  box-shadow: 0 0 15px var(--neon-yellow);
}
.ops-drill-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 64px;
  gap: 6px;
  align-items: stretch;
}
.ops-drill-row .cyber-input {
  min-height: 32px;
  margin: 0;
  padding: 7px 8px;
  font-size: 0.74rem;
}
.ops-drill-result {
  min-height: 22px;
  margin-top: 7px;
  font-size: 0.7rem;
  line-height: 1.5;
  word-break: break-word;
  overflow-wrap: anywhere;
}
.ops-drill-result strong {
  color: var(--text-main);
}
.ops-drill-result > div {
  padding: 1px 0;
}
.ops-emergency-details {
  margin-top: 8px;
  border-top: 1px solid rgba(255, 255, 255, 0.07);
  padding-top: 10px;
}
.ops-emergency-details summary {
  cursor: pointer;
  color: var(--neon-cyan);
  font-family: var(--font-display), var(--font-cn-sans);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0;
  list-style-position: inside;
}
#cb-reset-btn {
  width: 100%;
  margin-top: 10px;
  display: none;
}
/* Recovery evidence must fit the narrow operations panel without hiding IDs. */
.halt-recovery { margin-top: 14px; padding-top: 16px; border-top: 1px solid rgba(0,243,255,.16); min-width: 0; font-family: var(--font-cn-sans); font-size: 13px; font-weight: 400; line-height: 1.65; overflow-wrap: anywhere; }
.halt-recovery[hidden] { display: none; }
.halt-recovery-heading { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin-bottom: 10px; }
.halt-recovery-heading h3 { margin: 0; font-size: 15px; font-weight: 600; }
.halt-recovery-heading > span { color: var(--neon-yellow); font-size: 12px; }
.halt-recovery-summary { margin: 0 0 12px; }
.halt-recovery-meta { display: grid; grid-template-columns: 60px minmax(0,1fr); gap: 6px 12px; margin: 0; font-size: 12px; }
.halt-recovery-meta dt, .halt-recovery-caption, .halt-recovery-note { color: #a2b8c4; }
.halt-recovery-meta dd { margin: 0; min-width: 0; font-variant-numeric: tabular-nums; }
.halt-recovery-pending { margin: 16px 0; padding-left: 12px; border-left: 2px solid var(--neon-yellow); }
.halt-recovery-pending h4 { margin: 0 0 4px; font-size: 13px; font-weight: 600; }
.halt-recovery-pending p { margin: 0; }
.halt-recovery-pending ul { margin: 6px 0 0; padding-left: 18px; font-size: 12px; }
.halt-recovery-pending li + li { margin-top: 6px; }
.halt-recovery .halt-recovery-details summary { font-family: inherit; font-size: 12px; font-weight: 400; min-height: 32px; padding: 5px 0; }
.halt-recovery-caption { margin: 4px 0 8px; font-size: 12px; }
.halt-recovery-details pre { margin: 0; padding: 12px; background: rgba(0,0,0,.22); font-family: var(--font-mono),var(--font-cn-mono); font-size: 11px; line-height: 1.7; white-space: pre-wrap; overflow-wrap: anywhere; max-height: 220px; overflow-y: auto; }
.halt-recovery-note { margin: 14px 0; font-size: 12px; }
.halt-recovery-ack { display: flex; align-items: flex-start; gap: 9px; cursor: pointer; }
.halt-recovery-ack input { flex: 0 0 16px; width: 16px; height: 16px; margin-top: 3px; accent-color: var(--neon-cyan); }
.halt-recovery-password-label { display: block; margin: 14px 0 6px; font-size: 12px; }
.halt-recovery .cyber-input { width: 100%; min-width: 0; min-height: 42px; margin: 0; font-size: 14px; padding: 10px 12px; }
.halt-recovery-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.halt-recovery .cyber-btn { min-height: 40px; padding: 9px 14px; font-family: inherit; font-size: 12px; }
.halt-recovery .cyber-btn:disabled { opacity: .5; cursor: wait; }
.halt-recovery :is(button,input,summary):focus-visible { outline: 2px solid var(--neon-cyan); outline-offset: 3px; }
.halt-recovery-result { margin: 12px 0 0; padding: 10px 12px; background: rgba(255,255,255,.035); border-left: 2px solid var(--neon-cyan); font-family: var(--font-cn-sans); font-size: 13px; font-weight: 400; line-height: 1.65; overflow-wrap: anywhere; white-space: pre-line; }
.halt-recovery-result:empty { display: none; }
.halt-recovery-result[data-tone="error"] { border-left-color: var(--neon-yellow); }
.halt-recovery-result[data-tone="success"] { border-left-color: var(--neon-green); }
.positions-summary-section .cyber-btn {
  min-height: 32px;
  padding: 6px 10px;
  font-size: 0.72rem;
  white-space: nowrap;
}
.dashboard-position-list {
  margin-top: 12px;
  display: grid;
  gap: 8px;
  max-height: 360px;
  overflow-y: auto;
}
.dashboard-position-row {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(70px, 0.7fr) minmax(0, 1.45fr) minmax(70px, 0.62fr);
  gap: 8px 10px;
  align-items: center;
  padding: 9px 10px;
  border: 1px solid rgba(255, 255, 255, 0.07);
  background: rgba(0, 0, 0, 0.22);
}
.dashboard-position-symbol {
  min-width: 0;
  color: var(--neon-cyan);
  font-family: var(--font-mono), var(--font-cn-mono);
  font-weight: 700;
  overflow: hidden;
  text-overflow: ellipsis;
}
.dashboard-position-symbol-line {
  max-width: 100%;
}
.dashboard-position-symbol-name {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.dashboard-position-meta,
.dashboard-position-pnl {
  min-width: 0;
  font-family: var(--font-mono), var(--font-cn-mono);
  font-size: 0.78rem;
  overflow-wrap: anywhere;
}
.dashboard-position-meta {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 5px 8px;
  align-items: center;
}
.dashboard-position-tags {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 5px;
  flex-wrap: wrap;
}
.dashboard-position-meta .tag {
  max-width: 118px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.dashboard-position-notional {
  color: #dce7f3;
  white-space: nowrap;
}
.dashboard-position-pnl {
  text-align: right;
  font-weight: 700;
}
.dashboard-empty {
  padding: 14px 12px;
  color: var(--text-dim);
  text-align: center;
  border: 1px dashed rgba(255, 255, 255, 0.12);
  background: rgba(0, 0, 0, 0.16);
}
@media (min-width: 1025px) {
  /* 中文注释：桌面端左右列独立伸缩，当前仓位吃掉右列剩余空间，与最新AI决策底部对齐。 */
  .positions-summary-section {
    flex: 1;
    min-height: 0;
  }
  .positions-summary-section .dashboard-position-list {
    flex: 1;
    max-height: none;
    min-height: 0;
    align-content: start;
  }
}
@media (max-width: 480px) {
  .ops-status-grid,
  .risk-core-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
  }
  .ops-action-grid,
  .ops-drill-row {
    grid-template-columns: 1fr;
  }
  .ops-safety-section {
    padding: 14px;
  }
  .ops-status-item {
    padding: 7px 8px;
  }
  .ops-label {
    font-size: 0.64rem;
  }
  .ops-value {
    font-size: 0.78rem;
  }
  .ops-section {
    margin-top: 6px;
    padding-top: 8px;
  }
  .ops-metric-row,
  .ops-gate-row {
    grid-template-columns: minmax(72px, 0.75fr) minmax(0, 1fr);
    gap: 8px;
    padding: 4px 0;
  }
  .ops-safety-section .cyber-btn {
    width: 100%;
  }
}
.reconciliation-summary { display: grid; grid-template-columns: repeat(4, minmax(120px, 1fr)) auto; gap: 10px; align-items: stretch; margin-bottom: 10px; }
.reconciliation-metric { border: 1px solid rgba(255, 255, 255, 0.08); background: rgba(0, 0, 0, 0.24); padding: 10px 12px; display: flex; justify-content: space-between; align-items: center; min-height: 42px; }
.startup-check-details { margin-bottom: 15px; color: var(--text-dim); font-family: var(--font-mono); font-size: 0.78rem; word-break: break-word; overflow-wrap: anywhere; }
.reconciliation-table td { vertical-align: middle; }
.tag.reconciliation-ok { background: rgba(10, 255, 96, 0.15); color: var(--neon-green); border: 1px solid rgba(10, 255, 96, 0.5); }
.tag.reconciliation-alert { background: rgba(255, 42, 42, 0.16); color: var(--neon-red); border: 1px solid rgba(255, 42, 42, 0.5); }
.decision-section { /* 中文注释：AI决策日志区域 */ grid-area: decision; flex: 1; min-height: 360px; }
.decision-card { /* 中文注释：决策历史卡片统一风格 */ background: rgba(0,0,0,0.3); border-left: 2px solid #333; padding: 10px; cursor: pointer; transition: background 0.2s ease; }
.decision-card:hover { background: rgba(0, 243, 255, 0.05); }
.ai-logs-panel {
  min-height: calc(100vh - var(--topbar-height) - var(--ticker-height) - var(--main-tabs-height) - 80px);
  padding: 16px 18px 18px;
}
.ai-logs-header {
  align-items: center;
  gap: 14px;
  margin-bottom: 10px;
  padding-bottom: 10px;
}
.ai-logs-title-block {
  min-width: 180px;
  flex: 0 0 auto;
}
.ai-logs-subtitle {
  margin-top: 4px;
  color: var(--text-dim);
  font-size: 0.74rem;
  line-height: 1.35;
}
.ai-logs-controls {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: wrap;
  flex: 1 1 auto;
  min-width: 0;
}
.ai-logs-search {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) 68px 68px;
  gap: 8px;
  align-items: center;
  min-width: min(100%, 456px);
}
.ai-logs-search .cyber-input {
  height: 34px;
  margin-bottom: 0;
  min-width: 0;
}
.ai-logs-search .cyber-btn,
.ai-logs-pagination .cyber-btn {
  min-height: 34px;
  padding: 5px 10px;
}
.cyber-btn.btn-muted {
  border-color: rgba(255, 255, 255, 0.18);
  color: var(--text-dim);
}
.ai-logs-pagination {
  display: grid;
  grid-template-columns: 42px minmax(66px, auto) 42px;
  gap: 8px;
  align-items: center;
}
.decision-page-info {
  min-width: 66px;
  text-align: center;
  color: var(--text-main);
  font-family: var(--font-mono), var(--font-cn-mono);
  font-size: 0.78rem;
}
.cyber-btn:disabled {
  cursor: not-allowed;
  opacity: 0.45;
}
.decision-history-overview {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 10px;
}
.decision-history-stat {
  min-width: 0;
  min-height: 62px;
  display: grid;
  grid-template-rows: auto 1fr;
  gap: 4px;
  padding: 9px 10px;
  border: 1px solid rgba(0, 243, 255, 0.12);
  background: rgba(0, 0, 0, 0.2);
}
.decision-history-stat span {
  display: block;
  color: var(--text-dim);
  font-size: 0.72rem;
}
.decision-history-stat strong {
  display: block;
  margin-top: 0;
  align-self: end;
  color: var(--text-main);
  font-family: var(--font-mono), var(--font-cn-mono);
  font-size: 0.98rem;
  line-height: 1.15;
  overflow-wrap: anywhere;
}
.decision-history-list {
  display: grid;
  gap: 10px;
}
.decision-history-card {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(380px, 0.32fr);
  gap: 16px;
  padding: 14px 16px 14px 18px;
  border: 1px solid rgba(0, 243, 255, 0.12);
  background: rgba(3, 9, 18, 0.62);
  cursor: pointer;
  transition: border-color 0.18s ease, background 0.18s ease, transform 0.18s ease;
  word-break: break-word;
  overflow-wrap: anywhere;
}
.decision-history-card::before {
  content: "";
  position: absolute;
  top: 12px;
  bottom: 12px;
  left: 0;
  width: 3px;
  background: var(--neon-cyan);
  box-shadow: 0 0 12px rgba(0, 243, 255, 0.55);
}
.decision-history-card.is-success::before { background: var(--neon-green); box-shadow: 0 0 12px rgba(10, 255, 96, 0.45); }
.decision-history-card.is-warn::before { background: var(--neon-yellow); box-shadow: 0 0 12px rgba(255, 184, 0, 0.45); }
.decision-history-card.is-danger::before { background: var(--neon-red); box-shadow: 0 0 12px rgba(255, 42, 42, 0.45); }
.decision-history-card:hover,
.decision-history-card:focus-visible {
  border-color: rgba(0, 243, 255, 0.38);
  background: rgba(0, 243, 255, 0.045);
  outline: none;
  transform: translateY(-1px);
}
.decision-history-main {
  min-width: 0;
}
.decision-history-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: var(--text-dim);
  font-family: var(--font-mono), var(--font-cn-mono);
  font-size: 0.73rem;
}
.decision-history-iteration {
  color: var(--neon-cyan);
  flex: 0 0 auto;
}
.decision-history-title-row {
  display: grid;
  grid-template-columns: minmax(120px, 0.2fr) minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  margin-top: 10px;
}
.decision-history-title-row .decision-verdict {
  margin-top: 0;
}
.decision-chip-row.compact {
  justify-content: flex-start;
}
.decision-history-excerpt {
  margin: 10px 0 0;
  color: #d3dce6;
  font-size: 0.82rem;
  line-height: 1.65;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.decision-history-metrics {
  display: grid;
  grid-template-columns: minmax(140px, 1.35fr) minmax(92px, 0.82fr) minmax(58px, 0.52fr);
  gap: 8px;
  align-self: stretch;
}
.decision-history-metrics div {
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 9px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(0, 0, 0, 0.18);
}
.decision-history-metrics div:first-child {
  justify-content: flex-start;
}
.decision-history-metrics span {
  color: var(--text-dim);
  font-size: 0.68rem;
}
.decision-history-metrics strong {
  margin-top: 5px;
  color: var(--text-main);
  font-family: var(--font-ui), var(--font-cn-sans);
  font-size: 0.86rem;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0;
  overflow-wrap: anywhere;
}
/* AI 决策详情弹窗：结论头部 → 正文阅读区 + 执行动作侧栏 */
.decision-dashboard.is-detail {
  --decision-line: rgba(159, 194, 215, 0.16);
  --decision-muted: #93aab8;
  gap: 16px;
  font-family: var(--font-cn-sans);
}
.decision-detail-hero {
  position: relative;
  display: grid;
  gap: 14px;
  padding: 16px 20px 16px 22px;
  border: 1px solid var(--decision-line);
  background: rgba(3, 9, 18, 0.6);
}
.decision-detail-hero::before {
  content: "";
  position: absolute;
  top: 14px;
  bottom: 14px;
  left: 0;
  width: 3px;
  background: var(--neon-cyan);
  box-shadow: 0 0 12px rgba(0, 243, 255, 0.5);
}
.decision-detail-hero.is-success::before { background: var(--neon-green); box-shadow: 0 0 12px rgba(10, 255, 96, 0.42); }
.decision-detail-hero.is-warn::before { background: var(--neon-yellow); box-shadow: 0 0 12px rgba(255, 184, 0, 0.42); }
.decision-detail-hero.is-danger::before { background: var(--neon-red); box-shadow: 0 0 12px rgba(255, 42, 42, 0.42); }
.decision-detail-hero-top {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  color: var(--decision-muted);
  font-family: var(--font-mono), var(--font-cn-mono);
  font-size: 12px;
  line-height: 1.4;
}
.decision-detail-hero-main {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px 28px;
}
.decision-verdict.decision-detail-verdict {
  margin-top: 0;
  font-size: 22px;
  font-weight: 600;
  line-height: 1.2;
}
.decision-detail-facts {
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 0;
  margin: 0;
}
.decision-detail-fact {
  min-width: 0;
  padding: 0 20px;
  border-left: 1px solid var(--decision-line);
}
.decision-detail-fact dt {
  color: var(--decision-muted);
  font-size: 12px;
  line-height: 1.3;
}
.decision-detail-fact dd {
  margin: 4px 0 0;
  color: var(--text-main);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.35;
  overflow-wrap: anywhere;
}
.decision-detail-fact dd.is-mono {
  font-family: var(--font-mono), var(--font-cn-mono);
}
.decision-detail-fact dd.is-success,
.decision-detail-section-head .is-success { color: var(--neon-green); }
.decision-detail-fact dd.is-danger,
.decision-detail-section-head .is-danger { color: var(--neon-red); }
.decision-detail-prices {
  display: flex;
  align-items: baseline;
  gap: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--decision-line);
}
.decision-detail-prices-label {
  flex: 0 0 auto;
  color: var(--decision-muted);
  font-size: 12px;
}
.decision-detail-prices .decision-price-stack {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 22px;
}
.decision-detail-prices .decision-price-item {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
}
.decision-detail-prices .decision-price-detail {
  display: inline-flex;
  gap: 5px;
}
.decision-detail-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 340px);
  gap: 16px;
  align-items: start;
}
.decision-detail-reading,
.decision-detail-actions {
  min-width: 0;
  border: 1px solid var(--decision-line);
  background: rgba(6, 14, 24, 0.45);
}
.decision-detail-reading {
  padding: 4px 24px 22px;
}
.decision-detail-actions {
  position: sticky;
  top: 0;
  max-height: calc(min(760px, 100vh - 180px) - 34px);
  overflow-y: auto;
  padding: 4px 16px 12px;
  scrollbar-gutter: stable;
}
.decision-detail-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 12px 0 10px;
  margin-bottom: 4px;
  border-bottom: 1px solid var(--decision-line);
}
.decision-detail-reading .decision-detail-section-head {
  margin-bottom: 14px;
}
.decision-detail-section-head h4 {
  margin: 0;
  color: var(--neon-cyan);
  font-family: var(--font-display), var(--font-cn-sans);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0;
}
.decision-detail-section-head span {
  color: var(--decision-muted);
  font-family: var(--font-mono), var(--font-cn-mono);
  font-size: 12px;
}

/* 正文排版：.modal h3 默认居中，需在此恢复左对齐层级 */
.decision-dashboard.is-detail .decision-detail-markdown {
  max-height: none;
  margin-top: 0;
  padding: 0;
  overflow: visible;
  color: #d3dee8;
  font-family: var(--font-cn-sans);
  font-size: 14px;
  line-height: 1.8;
}
.decision-dashboard.is-detail .decision-detail-markdown > :first-child {
  margin-top: 0;
}
.decision-dashboard.is-detail .decision-detail-markdown :is(h1, h2, h3, h4, h5, h6) {
  margin: 22px 0 10px;
  color: var(--text-main);
  font-family: var(--font-cn-sans);
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0;
  text-align: left;
}
.decision-dashboard.is-detail .decision-detail-markdown :is(h1, h2) {
  padding-left: 10px;
  border-left: 2px solid var(--neon-cyan);
  font-size: 16px;
}
.decision-dashboard.is-detail .decision-detail-markdown h3 {
  padding-bottom: 6px;
  border-bottom: 1px solid var(--decision-line);
  color: var(--neon-cyan);
  font-size: 15px;
}
.decision-dashboard.is-detail .decision-detail-markdown :is(h4, h5, h6) {
  color: var(--decision-muted);
  font-size: 14px;
}
.decision-dashboard.is-detail .decision-detail-markdown p {
  margin: 0 0 10px;
}
.decision-dashboard.is-detail .decision-detail-markdown :is(ul, ol) {
  margin: 0 0 12px;
  padding-left: 22px;
}
.decision-dashboard.is-detail .decision-detail-markdown li {
  margin: 0 0 6px;
  padding-left: 2px;
}
.decision-dashboard.is-detail .decision-detail-markdown li::marker {
  color: rgba(0, 243, 255, 0.7);
  font-family: var(--font-mono), var(--font-cn-mono);
  font-size: 12px;
}
.decision-dashboard.is-detail .decision-detail-markdown strong {
  color: #f2f7fb;
  font-weight: 600;
}
.decision-dashboard.is-detail .decision-detail-markdown code {
  padding: 1px 5px;
  background: rgba(0, 243, 255, 0.07);
  color: #9fe7ef;
  font-family: var(--font-mono), var(--font-cn-mono);
  font-size: 12.5px;
}
.decision-dashboard.is-detail .decision-detail-markdown pre {
  margin: 0 0 12px;
  padding: 10px 12px;
  border: 1px solid var(--decision-line);
  border-radius: 0;
}
.decision-dashboard.is-detail .decision-detail-markdown pre code {
  padding: 0;
  background: transparent;
}
.decision-dashboard.is-detail .decision-detail-markdown blockquote {
  margin: 0 0 12px;
  padding: 2px 0 2px 12px;
  border-left: 2px solid var(--decision-line);
  color: var(--decision-muted);
}
.decision-dashboard.is-detail .decision-detail-markdown hr {
  margin: 18px 0;
  border: 0;
  border-top: 1px solid var(--decision-line);
}
.decision-dashboard.is-detail .decision-detail-markdown table {
  margin: 0 0 12px;
  border-collapse: collapse;
  font-size: 13px;
}
.decision-dashboard.is-detail .decision-detail-markdown :is(th, td) {
  padding: 6px 10px;
  border-bottom: 1px solid var(--decision-line);
  text-align: left;
}
.decision-dashboard.is-detail .decision-detail-markdown th {
  color: var(--decision-muted);
  font-weight: 500;
}
.decision-dashboard.is-detail .decision-detail-markdown > p[role="status"] {
  padding: 8px 12px;
  border-left: 2px solid var(--neon-red);
  background: rgba(255, 42, 42, 0.08);
}

/* 执行动作：分隔线列表，避免卡片堆叠 */
.decision-detail-actions .action-summary {
  margin-top: 0;
  gap: 0;
}
.decision-detail-actions .action-list {
  gap: 0;
}
.decision-detail-actions .action-card {
  padding: 12px 0;
  border: 0;
  border-bottom: 1px solid var(--decision-line);
  border-radius: 0;
  background: transparent;
}
.decision-detail-actions .action-card:last-child {
  border-bottom: 0;
}
.decision-detail-actions .action-head {
  margin-bottom: 6px;
}
.decision-detail-actions .action-status {
  border-radius: 0;
  font-size: 11px;
}
.decision-detail-actions .action-tool {
  font-size: 13px;
  font-weight: 600;
}
.decision-detail-actions .action-step {
  font-family: var(--font-mono), var(--font-cn-mono);
  font-size: 11px;
}
.decision-detail-actions .action-line {
  grid-template-columns: 32px minmax(0, 1fr);
  margin-top: 3px;
  font-size: 12px;
}
.decision-detail-actions .action-label {
  color: var(--decision-muted);
  font-size: 12px;
}
.decision-detail-actions .action-value {
  color: #b9c9d4;
  font-family: var(--font-mono), var(--font-cn-mono);
  line-height: 1.6;
}
.decision-detail-actions .action-line.result .action-value {
  color: var(--text-main);
}
.decision-detail-actions .action-empty {
  margin-top: 10px;
  border-radius: 0;
}
.decision-empty-state {
  padding: 28px 16px;
  border: 1px dashed rgba(255, 255, 255, 0.14);
  color: var(--text-dim);
  text-align: center;
}
.decision-empty-state.is-error {
  color: var(--neon-red);
  border-color: rgba(255, 42, 42, 0.28);
}
.decision-modal-meta:empty {
  display: none;
}
.modal-content.decision-modal-content {
  width: min(1280px, calc(100vw - 32px));
}
.decision-modal-meta {
  font-size: 0.8rem;
  margin-bottom: 10px;
}
.decision-modal-body {
  height: min(760px, calc(100vh - 180px));
}
.decision-modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 15px;
}
.log-content { flex: 1; min-height: 0; overflow-y: auto; font-family: var(--font-mono); font-size: 0.85rem; line-height: 1.6; color: #dcdcdc; background: rgba(0,0,0,0.3); padding: 16px; }
/* 中文注释：仅在 AI 决策面板中调整内容样式 —— 去掉左侧紫色边线，增加内边距与柔和边框 */
.decision-section .log-content {
  padding: 14px; /* 中文注释：结构化决策布局使用内部间距，避免文本贴边 */
  border-left: none; /* 中文注释：去除紫色左边线 */
  border: 1px solid rgba(255, 255, 255, 0.06); /* 中文注释：统一细线边框，视觉更柔和 */
  border-radius: 6px; /* 中文注释：圆角提升观感 */
  background: rgba(0, 0, 0, 0.18);
}
.decision-dashboard {
  min-height: 100%;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.decision-summary-band {
  display: grid;
  grid-template-columns: minmax(160px, 0.5fr) minmax(0, 1fr);
  gap: 12px;
  align-items: stretch;
}
.decision-verdict-block {
  min-width: 0;
  padding: 12px;
  border-left: 2px solid var(--neon-cyan);
  background: rgba(0, 243, 255, 0.06);
}
.decision-eyebrow {
  display: block;
  color: var(--text-dim);
  font-size: 0.72rem;
  line-height: 1.2;
}
.decision-verdict {
  display: block;
  margin-top: 6px;
  font-family: var(--font-display), var(--font-cn-sans);
  font-size: 1.08rem;
  letter-spacing: 0;
  overflow-wrap: anywhere;
}
.decision-verdict.is-success { color: var(--neon-green); }
.decision-verdict.is-warn { color: var(--neon-yellow); }
.decision-verdict.is-danger { color: var(--neon-red); }
.decision-verdict.is-info,
.decision-verdict.is-neutral { color: var(--neon-cyan); }
.decision-latest-card {
  position: relative;
  min-width: 0;
  padding: 14px 16px 14px 18px;
  border: 1px solid rgba(0, 243, 255, 0.12);
  background: rgba(3, 9, 18, 0.5);
}
.decision-latest-card::before {
  content: "";
  position: absolute;
  top: 12px;
  bottom: 12px;
  left: 0;
  width: 3px;
  background: var(--neon-cyan);
  box-shadow: 0 0 12px rgba(0, 243, 255, 0.55);
}
.decision-latest-card.is-success::before { background: var(--neon-green); box-shadow: 0 0 12px rgba(10, 255, 96, 0.42); }
.decision-latest-card.is-warn::before { background: var(--neon-yellow); box-shadow: 0 0 12px rgba(255, 184, 0, 0.42); }
.decision-latest-card.is-danger::before { background: var(--neon-red); box-shadow: 0 0 12px rgba(255, 42, 42, 0.42); }
.decision-latest-mainline {
  display: grid;
  grid-template-columns: minmax(170px, 0.2fr) minmax(0, 1fr);
  gap: 16px;
  align-items: start;
}
.decision-latest-mainline .decision-verdict-block {
  min-height: 0;
  padding: 4px 0;
  border-left: 0;
  background: transparent;
}
.decision-latest-context {
  min-width: 0;
  display: grid;
  gap: 8px;
}
.decision-latest-context .decision-chip-row {
  justify-content: flex-start;
}
.decision-latest-context .decision-chip.is-success {
  max-width: min(480px, 100%);
}
.decision-latest-pricebar {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 7px 10px;
  border: 1px solid rgba(0, 243, 255, 0.12);
  background: rgba(0, 243, 255, 0.035);
}
.decision-latest-pricebar > span {
  flex: 0 0 auto;
  color: var(--text-dim);
  font-size: 0.68rem;
  line-height: 1.25;
}
.decision-latest-pricebar > strong {
  min-width: 0;
  margin: 0;
}
.decision-latest-pricebar .decision-price-stack {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 12px;
  align-items: center;
}
.decision-latest-pricebar .decision-price-item {
  display: inline-flex;
  gap: 5px;
  align-items: baseline;
}
.decision-latest-pricebar .decision-price-detail {
  display: inline-flex;
  gap: 4px;
}
.decision-latest-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.decision-latest-meta > span {
  min-width: 0;
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  padding: 4px 8px;
  border: 1px solid rgba(255, 255, 255, 0.055);
  background: rgba(0, 0, 0, 0.18);
  color: var(--text-dim);
  font-size: 0.68rem;
  line-height: 1.3;
}
.decision-latest-meta strong {
  color: var(--text-main);
  font-family: var(--font-ui), var(--font-cn-sans);
  font-size: 0.78rem;
  font-weight: 700;
  white-space: nowrap;
}
.decision-chip-row {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}
.decision-chip {
  min-width: 0;
  max-width: 260px;
  padding: 5px 9px;
  border: 1px solid rgba(0, 243, 255, 0.16);
  background: rgba(0, 0, 0, 0.22);
  color: var(--text-main);
  font-size: 0.72rem;
  line-height: 1.35;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.decision-chip.is-success { color: var(--neon-green); border-color: rgba(10, 255, 96, 0.35); }
.decision-chip.is-danger { color: var(--neon-red); border-color: rgba(255, 42, 42, 0.42); }
.decision-chip.is-neutral { color: var(--text-dim); }
.decision-kpi-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.decision-kpi {
  min-width: 0;
  padding: 9px 10px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(0, 0, 0, 0.18);
}
.decision-kpi span {
  display: block;
  color: var(--text-dim);
  font-size: 0.68rem;
  line-height: 1.2;
}
.decision-kpi strong {
  display: block;
  margin-top: 5px;
  color: var(--text-main);
  font-family: var(--font-ui), var(--font-cn-sans);
  font-size: 0.9rem;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0;
  overflow-wrap: anywhere;
}
.decision-metric-value {
  min-width: 0;
}
.decision-signal-value {
  color: #dfefff;
}
.decision-muted-value {
  color: var(--text-dim);
  font-family: var(--font-mono), var(--font-cn-mono);
}
.decision-price-stack {
  display: grid;
  gap: 4px;
  min-width: 0;
  white-space: normal;
}
.decision-price-item {
  display: grid;
  grid-template-columns: minmax(34px, auto) minmax(0, 1fr);
  gap: 7px;
  align-items: baseline;
  min-width: 0;
}
.decision-price-symbol {
  color: var(--neon-cyan);
  font-family: var(--font-mono), var(--font-cn-mono);
  font-size: 0.74rem;
  font-weight: 800;
  line-height: 1.25;
  white-space: nowrap;
}
.decision-price-detail {
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 3px 5px;
  align-items: baseline;
  line-height: 1.25;
}
.decision-price-kind {
  color: var(--text-dim);
  font-size: 0.68rem;
  font-weight: 700;
}
.decision-price-amount {
  color: var(--text-main);
  font-family: var(--font-mono), var(--font-cn-mono);
  font-size: 0.78rem;
  font-weight: 800;
}
.decision-price-more {
  color: var(--text-dim);
  font-size: 0.68rem;
}
.decision-content-grid {
  flex: 1;
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  gap: 12px;
  align-items: stretch;
}
.decision-home-content-grid {
  grid-template-columns: minmax(0, 0.95fr) minmax(340px, 1.05fr);
}
.decision-text-panel {
  min-width: 0;
  min-height: 0;
  padding: 12px;
  border: 1px solid rgba(0, 243, 255, 0.12);
  background: rgba(6, 14, 24, 0.45);
  overflow: hidden;
}
.decision-dashboard.is-detail {
  min-height: auto;
}
.decision-card-title {
  color: var(--neon-cyan);
  font-family: var(--font-display), var(--font-cn-sans);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0;
}
.decision-excerpt {
  margin: 10px 0 0;
  color: #d9e2ec;
  line-height: 1.65;
}
.decision-detail {
  margin-top: 12px;
  border-top: 1px solid rgba(255, 255, 255, 0.07);
  padding-top: 10px;
}
.decision-detail summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  cursor: pointer;
  color: var(--text-dim);
  font-size: 0.75rem;
  list-style: none;
}
.decision-detail summary::-webkit-details-marker {
  display: none;
}
.decision-detail summary::before {
  content: "▸";
  color: var(--neon-cyan);
  transition: transform 0.18s ease;
}
.decision-detail summary::after {
  content: "展开阅读";
  color: var(--neon-cyan);
  font-family: var(--font-ui), var(--font-cn-sans);
  font-size: 0.68rem;
}
.decision-detail[open] summary {
  color: var(--neon-cyan);
}
.decision-detail[open] summary::before {
  transform: rotate(90deg);
}
.decision-detail[open] summary::after {
  content: "收起";
}
.decision-markdown {
  margin-top: 10px;
  max-height: 260px;
  overflow-y: auto;
  padding-right: 6px;
}
.decision-detail[open] .decision-markdown {
  max-height: clamp(420px, 58vh, 760px);
  padding: 14px 16px;
  border: 1px solid rgba(0, 243, 255, 0.14);
  background: rgba(0, 0, 0, 0.28);
  scrollbar-gutter: stable;
}
.decision-content-grid:has(.decision-detail[open]) {
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
}
.decision-content-grid:has(.decision-detail[open]) .decision-text-panel {
  overflow: visible;
}
.decision-content-grid:has(.decision-detail[open]) .action-summary {
  max-height: min(320px, 38vh);
}
.decision-section .decision-detail[open] .decision-markdown {
  max-height: min(560px, calc(100vh - 320px));
}
.decision-modal-content .decision-detail[open] .decision-markdown {
  max-height: min(660px, calc(100vh - 340px));
}
.decision-markdown p {
  margin-bottom: 8px;
}
.log-meta { font-size: 0.75rem; color: var(--neon-purple); margin-bottom: 10px; display: block; }
.log-content strong { color: var(--neon-cyan); }
.log-content h1, .log-content h2 { color: var(--neon-yellow); font-size: 1.1em; margin: 10px 0; font-family: var(--font-display); }

/* 中文注释：AI决策面板内容适配 —— 防止长文本/代码/表格撑破容器，保证响应式布局稳定 */
.log-content {
  /* 中文注释：允许任意位置换行，处理长单词/URL/无空格字符串 */
  word-break: break-word;
  overflow-wrap: anywhere;
}
.log-content p,
.log-content li,
.log-content blockquote {
  /* 中文注释：段落与列表同样启用断词，避免横向溢出 */
  word-break: break-word;
}
.log-content pre,
.log-content code {
  /* 中文注释：代码块在容器内换行显示，避免横向滚动影响布局 */
  white-space: pre-wrap;
  word-break: break-word;
}
.log-content pre {
  /* 中文注释：代码块超宽时提供横向滚动作为兜底 */
  overflow-x: auto;
  background: rgba(0, 0, 0, 0.45);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 4px;
}
.log-content img,
.log-content video,
.log-content canvas {
  /* 中文注释：媒体元素最大宽度不超过容器，防止撑破布局 */
  max-width: 100%;
  height: auto;
}
.log-content table {
  /* 中文注释：表格在小屏提供横向滚动，避免整体溢出 */
  display: block;
  width: 100%;
  overflow-x: auto;
}
.action-summary {
  margin-top: 18px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.decision-content-grid .action-summary {
  min-width: 0;
  min-height: 0;
  margin-top: 0;
  padding: 12px;
  border: 1px solid rgba(0, 243, 255, 0.12);
  background: rgba(6, 14, 24, 0.45);
  overflow-x: hidden;
  overflow-y: auto;
}
.action-list {
  display: flex;
  flex-direction: column;
  gap: var(--decision-action-list-gap);
  min-height: 0;
}
.decision-dashboard.is-home .action-summary {
  overflow: hidden;
}
.decision-dashboard.is-home .action-list {
  max-height: calc(3 * var(--decision-action-card-height) + 2 * var(--decision-action-list-gap));
  overflow-x: hidden;
  overflow-y: auto;
  padding-right: 4px;
  scrollbar-gutter: stable;
}
.action-summary h4 {
  margin: 0 0 4px;
  color: var(--neon-cyan);
  font-family: var(--font-display);
  font-size: 0.95rem;
  letter-spacing: 0;
}
.action-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid rgba(0, 243, 255, 0.14);
  background: rgba(6, 14, 24, 0.72);
  border-radius: 6px;
}
.decision-dashboard.is-home .action-card {
  min-height: var(--decision-action-card-height);
}
.action-index {
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: var(--text-dim);
  font-size: 0.75rem;
  border-radius: 4px;
}
.action-main { min-width: 0; }
.action-head {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  min-width: 0;
  margin-bottom: 8px;
}
.action-status {
  flex: 0 0 auto;
  padding: 2px 7px;
  border-radius: 4px;
  font-size: 0.72rem;
  line-height: 1.4;
  border: 1px solid rgba(255, 255, 255, 0.16);
}
.action-status.success { color: var(--neon-green); background: rgba(10, 255, 96, 0.1); border-color: rgba(10, 255, 96, 0.35); }
.action-status.error { color: var(--neon-red); background: rgba(255, 42, 42, 0.1); border-color: rgba(255, 42, 42, 0.35); }
.action-status.pending { color: var(--neon-yellow); background: rgba(255, 184, 0, 0.1); border-color: rgba(255, 184, 0, 0.35); }
.action-tool {
  min-width: 0;
  color: #f0f4f8;
  font-weight: 700;
  line-height: 1.45;
  overflow: hidden;
  text-overflow: ellipsis;
  overflow-wrap: normal;
  white-space: nowrap;
  word-break: keep-all;
}
.action-step {
  flex: 0 0 auto;
  justify-self: end;
  color: var(--text-dim);
  font-size: 0.74rem;
  white-space: nowrap;
}
.action-line {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 8px;
  align-items: start;
  margin-top: 4px;
}
.action-label {
  color: var(--text-dim);
  font-size: 0.74rem;
}
.action-value {
  color: #d9e2ec;
  line-height: 1.55;
  overflow-wrap: anywhere;
}
.action-line.result .action-value { color: #f3f6fa; }
.action-empty {
  color: var(--text-dim);
  border: 1px dashed rgba(255, 255, 255, 0.14);
  padding: 10px;
  border-radius: 6px;
}
.decision-card {
  /* 中文注释：历史卡片内文本断词处理，避免超长字符影响栅格 */
  word-break: break-word;
  overflow-wrap: anywhere;
}
.positions-section { grid-column: 1 / -1; }
.trades-section { grid-column: 1 / -1; }
.trade-chart-panel {
  margin-bottom: 16px;
  border: 1px solid rgba(0, 243, 255, 0.14);
  background: rgba(0, 0, 0, 0.22);
}
.trade-tools-row {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: nowrap;
  padding: 10px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
.trade-tools-row .cyber-input.trade-chart-input,
.trade-tools-row .cyber-input.trade-chart-select,
.trade-table-toolbar .cyber-input.trade-filter-input {
  width: auto;
  min-width: 0;
  margin: 0;
  padding: 8px 10px;
}
.trade-tools-row .cyber-input.trade-chart-input {
  flex: 0 0 150px;
  width: 150px;
}
.trade-table-toolbar .cyber-input.trade-filter-input {
  flex: 0 1 180px;
  width: 180px;
}
.trade-tools-row .cyber-input.trade-chart-select {
  flex: 0 0 86px;
  width: 86px;
}
.trade-tools-row .cyber-btn,
.trade-table-toolbar .cyber-btn {
  flex: 0 0 auto;
  white-space: nowrap;
}
.trade-table-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: -4px 0 10px;
  padding: 10px 12px;
  border: 1px solid rgba(0, 243, 255, 0.14);
  background: rgba(0, 0, 0, 0.18);
}
.trade-table-filter {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}
.trade-table-toolbar-label {
  flex: 0 0 auto;
  color: var(--text-dim);
  font-family: var(--font-display);
  font-size: 0.72rem;
  letter-spacing: 0;
  white-space: nowrap;
}
.trade-tools-spacer {
  flex: 1;
  min-width: 10px;
}
.trade-chart-meta {
  color: var(--text-dim);
  font-family: var(--font-mono);
  font-size: 0.75rem;
  white-space: nowrap;
}
.trade-page-btn {
  width: 34px;
  height: 34px;
  padding: 0;
  text-align: center;
}
.trade-chart-canvas-wrap {
  position: relative;
  height: 420px;
  min-height: 300px;
}
#trade-kline-chart {
  width: 100%;
  height: 100%;
}
.trade-marker-layer {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 3;
  overflow: hidden;
}
.trade-marker {
  position: absolute;
  display: flex;
  align-items: center;
  gap: 5px;
  transform: translate(-50%, -50%);
  color: #d9e2ec;
  font-family: var(--font-mono);
  font-size: 11px;
  line-height: 1;
  white-space: nowrap;
  pointer-events: auto;
  cursor: pointer;
  text-shadow: 0 1px 2px #000, 0 0 8px rgba(0, 0, 0, 0.8);
}
.trade-marker-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: currentColor;
  border: 2px solid #061019;
  box-shadow: 0 0 0 1px currentColor, 0 0 10px currentColor;
}
.trade-marker-label {
  font-weight: 700;
  letter-spacing: 0;
}
.trade-marker-line {
  position: absolute;
  left: -28px;
  right: -28px;
  top: 50%;
  border-top: 1px dashed currentColor;
  opacity: 0.35;
  transform: translateY(-50%);
  z-index: -1;
}
.trade-marker.trade-open-long,
.trade-marker.trade-loss {
  color: #ff5b5b;
}
.trade-marker.trade-open-short,
.trade-marker.trade-profit {
  color: #00ff7a;
}
.trade-marker.trade-close-neutral {
  color: #ffcc00;
}
.trade-marker.trade-active {
  color: #ffffff;
  z-index: 6;
}
.trade-marker.trade-active .trade-marker-dot {
  width: 12px;
  height: 12px;
  box-shadow: 0 0 0 2px #00f3ff, 0 0 18px #00f3ff;
}
.trade-extreme-marker {
  position: absolute;
  display: flex;
  align-items: center;
  gap: 5px;
  transform: translate(-50%, -50%);
  font-family: var(--font-mono);
  font-size: 11px;
  line-height: 1;
  white-space: nowrap;
  pointer-events: none;
  text-shadow: 0 1px 2px #000, 0 0 8px rgba(0, 0, 0, 0.85);
  z-index: 4;
}
.trade-extreme-high { color: var(--neon-yellow); }
.trade-extreme-low { color: var(--neon-cyan); }
.trade-extreme-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: currentColor;
  border: 2px solid #061019;
  box-shadow: 0 0 0 1px currentColor, 0 0 10px currentColor;
}
.trade-extreme-label {
  font-weight: 700;
  letter-spacing: 0;
  padding: 3px 5px;
  border: 1px solid currentColor;
  background: rgba(3, 7, 13, 0.72);
}
.trade-extreme-line {
  position: absolute;
  left: -42px;
  right: -24px;
  top: 50%;
  border-top: 1px dotted currentColor;
  opacity: 0.55;
  transform: translateY(-50%);
  z-index: -1;
}
.trade-marker-tooltip {
  position: absolute;
  z-index: 8;
  min-width: 230px;
  max-width: 360px;
  max-height: 360px;
  overflow-y: auto;
  padding: 10px 12px;
  border: 1px solid rgba(0, 243, 255, 0.55);
  background: rgba(3, 7, 13, 0.96);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.45), 0 0 18px rgba(0, 243, 255, 0.12);
  color: var(--text-main);
  font-family: var(--font-mono);
  font-size: 12px;
  pointer-events: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--neon-cyan) rgba(0, 0, 0, 0.3);
}
.trade-marker-tooltip::-webkit-scrollbar { width: 8px; }
.trade-marker-tooltip::-webkit-scrollbar-track { background: rgba(0, 0, 0, 0.3); }
.trade-marker-tooltip::-webkit-scrollbar-thumb { background: var(--neon-cyan); }
.trade-marker-tooltip-title {
  color: var(--neon-cyan);
  font-weight: 700;
  margin-bottom: 8px;
}
.trade-marker-tooltip-card {
  padding: 8px 0;
}
.trade-marker-tooltip-card + .trade-marker-tooltip-card {
  border-top: 1px solid rgba(0, 243, 255, 0.18);
}
.trade-marker-tooltip-card-title {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 6px;
  color: #f3f6fa;
  font-weight: 700;
}
.trade-marker-tooltip-row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 3px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.05);
}
.trade-marker-tooltip-row span:first-child {
  color: var(--text-dim);
}
.trade-chart-empty {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-dim);
  font-family: var(--font-display);
  pointer-events: none;
  background: rgba(0, 0, 0, 0.12);
}
.trade-row-active td {
  background: rgba(0, 243, 255, 0.12) !important;
}
@media (max-width: 768px) {
  .trade-tools-row {
    flex-wrap: wrap;
  }
  .trade-tools-row .cyber-input.trade-chart-input,
  .trade-table-toolbar .cyber-input.trade-filter-input {
    flex: 1 1 130px;
    width: auto;
  }
  .trade-tools-row .cyber-input.trade-chart-select {
    flex: 0 0 82px;
  }
  .trade-tools-spacer,
  .trade-chart-meta {
    flex-basis: 100%;
  }
}
.cyber-table { width: 100%; border-collapse: collapse; font-family: var(--font-mono); font-size: 0.85rem; }
.cyber-table th { text-align: left; padding: 12px; color: var(--neon-cyan); border-bottom: 2px solid rgba(0, 243, 255, 0.3); text-transform: uppercase; font-family: var(--font-display); font-size: 0.75rem; letter-spacing: 1px; white-space: nowrap; min-width: 110px; }
#scanner-funnel-coverage { min-width: 0; margin: 12px 0; line-height: 1.6; }
#scanner-funnel-coverage summary { cursor: pointer; padding: 8px 0; }
#scanner-funnel-coverage p { margin: 8px 0 12px; }
#scanner-funnel-coverage-table { max-width: 100%; overflow-x: auto; }
#scanner-funnel-coverage-table table { width: 100%; border-collapse: collapse; font-size: 0.8rem; }
#scanner-funnel-coverage-table th, #scanner-funnel-coverage-table td { padding: 10px 12px; text-align: left; white-space: nowrap; border-bottom: 1px solid rgba(0, 243, 255, 0.15); }
.cyber-table td { padding: 12px; border-bottom: 1px solid rgba(255, 255, 255, 0.05); color: var(--text-main); transition: background 0.2s; white-space: nowrap; min-width: 110px; }
.cyber-table tr:hover td { background: rgba(0, 243, 255, 0.05); color: #fff; }

/* 中文注释：持仓/交易页使用独立工作台布局，避免全局大表格规则压缩小屏体验。 */
.portfolio-layout {
  display: grid;
  gap: 20px;
  min-width: 0;
}
.portfolio-summary-strip {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 12px;
  padding: 14px 18px;
}
.portfolio-summary-item {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-left: 12px;
  border-left: 1px solid rgba(0, 243, 255, 0.22);
}
.portfolio-summary-item .stat-label {
  font-size: 0.72rem;
  line-height: 1.2;
}
.portfolio-summary-item .stat-val {
  min-width: 0;
  overflow: hidden;
  color: var(--text-main);
  font-family: var(--font-mono);
  font-size: 0.98rem;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.portfolio-summary-wide .stat-val {
  font-size: 0.82rem;
}
.portfolio-main-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(640px, 0.52fr);
  grid-template-areas: "trades side";
  gap: 20px;
  align-items: start;
  min-width: 0;
}
.portfolio-side-column,
.portfolio-trades-section {
  min-width: 0;
}
.portfolio-side-column {
  grid-area: side;
  display: grid;
  gap: 20px;
}
.portfolio-trades-section {
  grid-area: trades;
}
.portfolio-positions-section,
.portfolio-reconciliation-section {
  min-width: 0;
}
.portfolio-table-scroll {
  min-width: 0;
  overflow: auto;
  scrollbar-width: thin;
}
.portfolio-positions-scroll {
  max-height: 430px;
  overflow-x: hidden;
}
.portfolio-trades-scroll {
  max-height: min(54vh, 560px);
}
.portfolio-reconciliation-scroll {
  max-height: 320px;
}
.portfolio-responsive-table {
  table-layout: fixed;
}
.portfolio-responsive-table th,
.portfolio-responsive-table td {
  min-width: 0;
  padding: 10px 9px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.portfolio-responsive-table th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: rgba(8, 14, 28, 0.96);
  font-size: 0.68rem;
  letter-spacing: 0;
}
.portfolio-responsive-table td {
  font-size: 0.78rem;
}
.portfolio-responsive-table tr {
  cursor: default;
}
.portfolio-positions-table {
  min-width: 0;
  width: 100%;
  table-layout: fixed;
}
.portfolio-positions-table th,
.portfolio-positions-table td {
  padding: 9px 6px;
  box-sizing: border-box;
}
.portfolio-positions-table th:nth-child(1),
.portfolio-positions-table td:nth-child(1) {
  width: 21%;
  text-align: left;
}
.portfolio-positions-table th:nth-child(2),
.portfolio-positions-table td:nth-child(2) {
  width: 12%;
  text-align: center;
}
.portfolio-positions-table th:nth-child(3),
.portfolio-positions-table td:nth-child(3) {
  width: 22%;
  text-align: right;
}
.portfolio-positions-table th:nth-child(4),
.portfolio-positions-table td:nth-child(4) {
  width: 20%;
  text-align: right;
}
.portfolio-positions-table th:nth-child(5),
.portfolio-positions-table td:nth-child(5) {
  width: 11%;
  text-align: right;
}
.portfolio-positions-table th:nth-child(6),
.portfolio-positions-table td:nth-child(6) {
  width: 14%;
  text-align: right;
}
.portfolio-cell-value {
  display: inline-block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  vertical-align: bottom;
  white-space: nowrap;
}
.portfolio-symbol-cell {
  font-weight: 700;
}
.portfolio-symbol-stack {
  min-width: 0;
  max-width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
}
.portfolio-symbol-line {
  min-width: 0;
  max-width: 100%;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.portfolio-symbol-name {
  min-width: 0;
  overflow: hidden;
  color: var(--neon-cyan);
  text-overflow: ellipsis;
  white-space: nowrap;
}
.position-profile-mini {
  flex: 0 0 auto;
  min-width: 18px;
  height: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 4px;
  border: 1px solid rgba(0, 243, 255, 0.38);
  background: rgba(0, 243, 255, 0.1);
  color: var(--neon-cyan);
  font-family: var(--font-ui), var(--font-cn-sans);
  font-size: 0.64rem;
  font-weight: 800;
  line-height: 1;
}
.position-profile-mini.long-term {
  border-color: rgba(124, 92, 255, 0.46);
  color: #b6a8ff;
  background: rgba(124, 92, 255, 0.12);
}
.position-profile-mini.short-term {
  border-color: rgba(255, 184, 0, 0.44);
  color: var(--neon-yellow);
  background: rgba(255, 184, 0, 0.12);
}
.position-profile-mini.scalp {
  border-color: rgba(10, 255, 96, 0.42);
  color: var(--neon-green);
  background: rgba(10, 255, 96, 0.12);
}
.portfolio-side-leverage-cell {
  text-align: center;
}
.portfolio-side-leverage-cell .tag,
.portfolio-side-leverage-cell .portfolio-cell-sub {
  display: inline-block;
  vertical-align: middle;
}
.portfolio-side-leverage-cell .tag {
  min-width: 24px;
  padding: 2px 5px;
  font-size: 0.62rem;
  line-height: 1.2;
  text-align: center;
}
.portfolio-side-leverage-cell .portfolio-cell-sub {
  margin-top: 0;
  margin-left: 7px;
}
.portfolio-dual-cell {
  min-width: 0;
}
.portfolio-cell-main,
.portfolio-cell-sub {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.portfolio-cell-main {
  color: #dce7f3;
  font-weight: 800;
}
.portfolio-cell-sub {
  margin-top: 3px;
  color: var(--text-dim);
  font-size: 0.68rem;
}
.tag.profile {
  border-color: rgba(0, 243, 255, 0.35);
  color: var(--neon-cyan);
  background: rgba(0, 243, 255, 0.08);
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.position-uid-mini {
  display: block;
  max-width: 100%;
  margin-top: 3px;
  color: var(--text-dim);
  font-family: var(--font-mono, monospace);
  font-size: 0.65rem;
  line-height: 1.1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.portfolio-trades-table tbody tr {
  cursor: pointer;
}
.portfolio-positions-table td:first-child,
.portfolio-trades-table td:nth-child(2),
.reconciliation-table td:nth-child(2) {
  font-weight: 700;
}
.portfolio-positions-table td:last-child {
  overflow: visible;
}
.portfolio-close-btn {
  min-width: 48px;
  padding: 2px 6px;
  font-size: 0.62rem;
  line-height: 1.1;
  text-align: center;
}
.portfolio-closing-tag {
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  color: #111;
  background: var(--neon-yellow);
}
.portfolio-empty-row td {
  color: var(--text-dim);
  padding: 20px;
  text-align: center;
}
.portfolio-trades-head-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  justify-content: flex-end;
  font-family: var(--font-mono);
  font-size: 0.78rem;
  white-space: nowrap;
}
.trade-tools-row {
  display: grid;
  grid-template-columns: minmax(280px, auto) minmax(220px, 1fr);
  align-items: center;
  gap: 10px;
}
.trade-tools-group,
.trade-table-filter,
.trade-tools-status,
.trade-pager {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}
.trade-tools-status {
  justify-content: flex-end;
}
.trade-tools-row .cyber-input.trade-chart-input {
  flex: 0 1 150px;
}
.trade-table-toolbar .cyber-input.trade-filter-input {
  flex: 0 1 180px;
}
.trade-chart-meta {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}
.trade-page-info {
  min-width: 54px;
  color: var(--text-dim);
  font-family: var(--font-mono);
  font-size: 0.74rem;
  text-align: center;
  white-space: nowrap;
}
.trade-page-btn:disabled {
  cursor: default;
  opacity: 0.45;
  box-shadow: none;
}
.portfolio-trades-section .trade-chart-canvas-wrap {
  height: clamp(340px, 42vh, 460px);
}
.portfolio-reconciliation-section .reconciliation-summary {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.portfolio-reconciliation-section #reconciliation-refresh {
  grid-column: 1 / -1;
}
.portfolio-reconciliation-section .reconciliation-metric {
  min-width: 0;
}
.portfolio-reconciliation-section .startup-check-details {
  line-height: 1.45;
}

@media (max-width: 1200px) {
  .portfolio-main-grid {
    grid-template-columns: 1fr;
    grid-template-areas:
      "side"
      "trades";
  }
  .portfolio-reconciliation-section .reconciliation-summary {
    grid-template-columns: repeat(4, minmax(120px, 1fr)) auto;
  }
  .portfolio-reconciliation-section #reconciliation-refresh {
    grid-column: auto;
  }
}

@media (max-width: 900px) {
  .portfolio-summary-strip {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .trade-tools-row {
    grid-template-columns: 1fr;
    align-items: stretch;
  }
  .trade-tools-group,
  .trade-table-filter,
  .trade-tools-status {
    justify-content: flex-start;
    width: 100%;
  }
  .trade-table-toolbar {
    align-items: stretch;
    flex-direction: column;
  }
  .trade-tools-status {
    align-items: flex-start;
    flex-direction: column;
  }
  .trade-pager {
    width: 100%;
  }
  .trade-page-info {
    flex: 1;
  }
}

@media (max-width: 768px) {
  .portfolio-summary-strip {
    padding: 14px;
  }
  .portfolio-reconciliation-section .reconciliation-summary {
    grid-template-columns: 1fr;
  }
  .portfolio-reconciliation-section #reconciliation-refresh {
    grid-column: auto;
  }
  .portfolio-trades-section .trade-chart-canvas-wrap {
    height: 320px;
  }
  .trade-tools-row .cyber-input.trade-chart-input,
  .trade-table-toolbar .cyber-input.trade-filter-input {
    flex: 1 1 0;
  }
}

@media (max-width: 640px) {
  .portfolio-layout {
    gap: 14px;
  }
  .portfolio-main-grid,
  .portfolio-side-column {
    gap: 14px;
  }
  .portfolio-summary-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .portfolio-summary-wide {
    grid-column: 1 / -1;
  }
  .portfolio-summary-item .stat-val {
    font-size: 0.9rem;
  }
  .portfolio-secondary-tools {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .portfolio-secondary-tools .cyber-btn {
    min-width: 0;
    width: 100%;
  }
  .trade-tools-chart-group {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 82px;
  }
  .trade-tools-chart-group #trade-chart-refresh {
    grid-column: 1 / -1;
  }
  .trade-tools-filter-group {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
  }
  .trade-table-filter {
    align-items: stretch;
    flex-direction: column;
  }
  .portfolio-table-scroll,
  .portfolio-trades-scroll,
  .portfolio-reconciliation-scroll,
  .portfolio-positions-scroll {
    max-height: none;
    overflow: visible;
  }
  .portfolio-responsive-table,
  .portfolio-responsive-table thead,
  .portfolio-responsive-table tbody,
  .portfolio-responsive-table tr,
  .portfolio-responsive-table th,
  .portfolio-responsive-table td {
    display: block;
  }
  .portfolio-responsive-table thead {
    display: none;
  }
  .portfolio-responsive-table tbody {
    display: grid;
    gap: 10px;
  }
  .portfolio-positions-table {
    min-width: 0;
  }
  .portfolio-positions-table th:nth-child(n),
  .portfolio-positions-table td:nth-child(n) {
    width: auto;
    text-align: left;
  }
  .portfolio-responsive-table tr {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 12px;
    padding: 10px;
    border: 1px solid rgba(0, 243, 255, 0.14);
    background: rgba(0, 0, 0, 0.2);
  }
  .portfolio-responsive-table td {
    display: flex;
    min-width: 0;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 0;
    border-bottom: 0;
    overflow: visible;
    white-space: normal;
  }
  .portfolio-responsive-table td.hide-mobile {
    display: none;
  }
  .portfolio-responsive-table td::before {
    content: attr(data-label);
    flex: 0 0 auto;
    color: var(--text-dim);
    font-family: var(--font-ui), var(--font-cn-sans);
    font-size: 0.7rem;
    line-height: 1.1;
  }
  .portfolio-responsive-table td[data-priority="primary"],
  .portfolio-responsive-table td[data-label="操作"],
  .portfolio-responsive-table td[data-label="状态"] {
    grid-column: 1 / -1;
  }
  .portfolio-positions-table tbody {
    gap: 12px;
  }
  .portfolio-positions-table tr {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px 12px;
    padding: 12px;
  }
  .portfolio-positions-table td {
    display: grid;
    grid-template-columns: 66px minmax(0, 1fr);
    align-items: center;
    gap: 8px;
    overflow: hidden;
  }
  .portfolio-positions-table td.hide-mobile {
    display: none;
  }
  .portfolio-positions-table td::before {
    min-width: 0;
  }
  .portfolio-positions-table td[data-priority="primary"],
  .portfolio-positions-table td[data-label="操作"] {
    grid-column: 1 / -1;
  }
  .portfolio-positions-table .portfolio-cell-value,
  .portfolio-positions-table .portfolio-cell-main,
  .portfolio-positions-table .portfolio-cell-sub {
    grid-column: 2;
    justify-self: end;
    text-align: right;
  }
  .portfolio-positions-table .portfolio-dual-cell::before {
    grid-row: 1 / span 2;
    align-self: center;
  }
  .portfolio-positions-table .portfolio-symbol-stack {
    grid-column: 2;
    justify-self: end;
    align-items: flex-end;
    text-align: right;
  }
  .portfolio-positions-table .portfolio-symbol-line {
    justify-content: flex-end;
  }
  .portfolio-positions-table .portfolio-side-leverage-cell {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
  }
  .portfolio-positions-table .portfolio-side-leverage-cell::before {
    margin-right: auto;
  }
  .portfolio-positions-table .portfolio-side-leverage-cell .portfolio-cell-sub {
    display: inline;
    margin-top: 0;
  }
  .portfolio-positions-table td[data-label="操作"] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    overflow: visible;
  }
  .portfolio-positions-table td[data-label="操作"]::before {
    margin-right: auto;
  }
  .portfolio-positions-table .portfolio-close-btn {
    min-width: 84px;
  }
  .portfolio-responsive-table tr.portfolio-empty-row {
    display: block;
    padding: 16px;
    text-align: center;
  }
  .portfolio-responsive-table tr.portfolio-empty-row td::before {
    content: none;
  }
}

@media (max-width: 480px) {
  .portfolio-summary-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .portfolio-summary-wide {
    grid-column: 1 / -1;
  }
  .portfolio-trades-head-meta {
    width: 100%;
    justify-content: space-between;
  }
  .portfolio-trades-section .trade-chart-canvas-wrap {
    height: 300px;
  }
}
.paper-workbench { gap: 14px; }
.paper-header { align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.paper-header-sub { margin-top: 5px; color: var(--text-dim); font-size: 0.78rem; line-height: 1.45; }
.paper-toolbar { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.paper-refresh-meta { color: var(--text-dim); font-family: var(--font-mono), var(--font-cn-mono); font-size: 0.74rem; white-space: nowrap; }
.paper-overview-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.paper-kpi {
  min-width: 0;
  min-height: 116px;
  padding: 14px;
  display: grid;
  grid-template-rows: auto 1fr auto;
  gap: 8px;
  background: rgba(0, 0, 0, 0.22);
  border: 1px solid rgba(0, 243, 255, 0.11);
}
.paper-kpi-primary { border-color: rgba(0, 243, 255, 0.28); background: rgba(0, 243, 255, 0.055); }
.paper-kpi-label,
.paper-field-label { color: var(--text-dim); font-family: var(--font-ui), var(--font-cn-sans); font-size: 0.76rem; font-weight: 700; line-height: 1.25; }
.paper-kpi-value {
  color: var(--text-main);
  font-family: var(--font-mono), var(--font-cn-mono);
  font-size: 1.3rem;
  line-height: 1.25;
  align-self: center;
  text-align: right;
  overflow-wrap: anywhere;
}
.paper-kpi-sub { color: var(--text-dim); font-size: 0.74rem; line-height: 1.35; overflow-wrap: anywhere; }
.paper-kpi.is-positive .paper-kpi-value,
.paper-num-positive { color: var(--neon-green); }
.paper-kpi.is-negative .paper-kpi-value,
.paper-num-negative { color: var(--neon-red); }
.paper-kpi.is-enabled .paper-kpi-value { color: var(--neon-green); }
.paper-kpi.is-disabled .paper-kpi-value { color: var(--neon-red); }
.paper-source-panel,
.paper-config-panel,
.paper-table-section { min-width: 0; }
.paper-section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; margin: 2px 0 8px; padding-bottom: 8px; border-bottom: 1px solid rgba(0, 243, 255, 0.14); }
.paper-section-title { font-family: var(--font-display), var(--font-cn-sans); color: var(--text-main); font-size: 0.92rem; letter-spacing: 0; }
.paper-section-sub { margin-top: 4px; color: var(--text-dim); font-size: 0.74rem; line-height: 1.4; }
.paper-count { color: var(--text-dim); font-family: var(--font-mono), var(--font-cn-mono); font-size: 0.78rem; white-space: nowrap; }
.paper-count span { color: var(--neon-cyan); }
.paper-source-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; }
.paper-source-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  min-height: 46px;
  padding: 10px 12px;
  border: 1px solid rgba(255, 255, 255, 0.07);
  background: rgba(0, 0, 0, 0.2);
}
.paper-source-label { min-width: 0; color: var(--text-main); font-size: 0.78rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.paper-source-count { color: var(--neon-cyan); font-family: var(--font-mono), var(--font-cn-mono); font-weight: 800; }
.paper-source-empty { padding: 12px; color: var(--text-dim); border: 1px dashed rgba(0, 243, 255, 0.16); text-align: center; font-size: 0.78rem; }
.paper-config-grid { display: grid; grid-template-columns: minmax(150px, 0.8fr) repeat(3, minmax(160px, 1fr)) repeat(3, minmax(106px, 0.65fr)); gap: 10px; align-items: end; }
.paper-field { display: grid; gap: 6px; min-width: 0; }
.paper-field-inline { min-height: 42px; grid-template-columns: minmax(0, 1fr) auto; align-items: center; padding: 10px; border: 1px solid rgba(255, 255, 255, 0.07); background: rgba(0, 0, 0, 0.2); }
.paper-field .cyber-input { margin-bottom: 0; height: 42px; }
.paper-table-wrap { overflow-x: auto; }
.paper-responsive-table th,
.paper-responsive-table td { min-width: 96px; }
.paper-responsive-table th:first-child,
.paper-responsive-table td:first-child { min-width: 128px; }
.paper-responsive-table td { vertical-align: middle; }
.paper-empty-row td { text-align: center; color: var(--text-dim); padding: 16px; }
.paper-trades-controls {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: wrap;
}
.paper-trades-view-tabs {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding: 2px;
  border: 1px solid rgba(0, 243, 255, 0.24);
  background: rgba(0, 12, 18, 0.42);
}
.paper-trades-view-tab {
  min-width: 58px;
  height: 30px;
  border: 0;
  background: transparent;
  color: var(--text-dim);
  font-family: var(--font-ui), var(--font-cn-sans);
  font-size: 0.78rem;
  font-weight: 800;
  line-height: 1;
  cursor: pointer;
}
.paper-trades-view-tab:hover,
.paper-trades-view-tab.is-active {
  background: rgba(0, 243, 255, 0.16);
  color: var(--neon-cyan);
}
.paper-trades-view-panel[hidden] {
  display: none !important;
}
.paper-trades-chart-panel {
  position: relative;
  min-height: 320px;
  border: 1px solid rgba(0, 243, 255, 0.16);
  background: #03070d;
  overflow: hidden;
}
.paper-trades-chart {
  width: 100%;
  height: 320px;
}
.paper-trades-chart-empty {
  position: absolute;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  color: var(--text-dim);
  font-size: 0.82rem;
  pointer-events: none;
}
.paper-trades-chart-panel.is-empty .paper-trades-chart-empty {
  display: flex;
}
.paper-trades-chart-meta {
  position: absolute;
  left: 12px;
  top: 10px;
  z-index: 1;
  padding: 4px 8px;
  border: 1px solid rgba(0, 243, 255, 0.16);
  background: rgba(3, 7, 13, 0.72);
  color: var(--text-dim);
  font-size: 0.72rem;
  line-height: 1.2;
  pointer-events: none;
}
.paper-pager { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.paper-pager[hidden] { display: none !important; }
.paper-page-btn { min-width: 68px; padding: 5px 9px; font-size: 0.72rem; }
.paper-page-info { min-width: 44px; text-align: center; color: var(--text-main); font-family: var(--font-mono), var(--font-cn-mono); font-size: 0.78rem; }
.paper-action-modal-content { width: min(520px, calc(100vw - 32px)); }
.paper-action-message { color: var(--text-main); font-size: 0.86rem; line-height: 1.55; margin-bottom: 10px; }
.paper-action-detail { color: var(--text-dim); border: 1px dashed rgba(255, 42, 42, 0.45); padding: 10px; font-size: 0.78rem; line-height: 1.55; margin-bottom: 14px; }
.paper-action-actions { display: flex; justify-content: flex-end; gap: 10px; }
.paper-action-cancel { border-color: #555; color: #888; }
.tokenized-workbench { gap: 14px; }
.tokenized-header { align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.tokenized-header-sub { margin-top: 5px; color: var(--text-dim); font-size: 0.78rem; line-height: 1.45; }
.tokenized-toolbar { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.tokenized-refresh-meta { color: var(--text-dim); font-family: var(--font-mono), var(--font-cn-mono); font-size: 0.74rem; white-space: nowrap; }
.tokenized-risk-strip {
  min-height: 42px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid rgba(0, 243, 255, 0.16);
  background: rgba(0, 243, 255, 0.045);
  color: var(--text-main);
  font-size: 0.78rem;
  line-height: 1.45;
}
.tokenized-risk-strip.is-disabled {
  border-color: rgba(255, 42, 42, 0.35);
  background: rgba(255, 42, 42, 0.055);
}
.tokenized-workbench > .tokenized-risk-strip,
.tokenized-workbench > .tokenized-decision-grid,
.tokenized-workbench > .tokenized-layout,
.tokenized-workbench > .tokenized-suggestions-grid,
.tokenized-workbench > .paper-table-section:not(.tokenized-contract-panel) {
  display: none !important;
}
.legacy-tokenized-equity-config {
  display: none !important;
}
.tokenized-decision-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(420px, 1.05fr);
  gap: 14px;
  align-items: stretch;
}
.tokenized-command-stack {
  min-width: 0;
  display: grid;
  gap: 12px;
  align-content: start;
}
.tokenized-overview-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.tokenized-overview-grid .paper-kpi {
  min-height: 96px;
  padding: 12px;
}
.tokenized-overview-grid .paper-kpi-value {
  font-size: 1.1rem;
}
.tokenized-action-panel {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  align-items: end;
  padding: 12px;
  border: 1px solid rgba(0, 243, 255, 0.12);
  background: rgba(0, 0, 0, 0.18);
}
.tokenized-action-panel .paper-field:first-child {
  grid-column: 1 / -1;
}
.tokenized-trend-panel {
  display: flex;
  flex-direction: column;
  min-height: 100%;
}
.tokenized-trend-head {
  flex: 0 0 auto;
}
.tokenized-trend-tools {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.tokenized-selected-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 10px;
}
.tokenized-selected-grid > div {
  min-width: 0;
  padding: 9px 10px;
  border: 1px solid rgba(255, 255, 255, 0.07);
  background: rgba(0, 0, 0, 0.2);
}
.tokenized-selected-grid span {
  display: block;
  color: var(--text-dim);
  font-family: var(--font-ui), var(--font-cn-sans);
  font-size: 0.7rem;
  line-height: 1.2;
}
.tokenized-selected-grid strong {
  display: block;
  margin-top: 5px;
  color: var(--text-main);
  font-family: var(--font-mono), var(--font-cn-mono);
  font-size: 0.86rem;
  line-height: 1.25;
  text-align: right;
  overflow-wrap: anywhere;
}
.tokenized-trend-chart-wrap {
  position: relative;
  min-height: 280px;
  height: 100%;
  flex: 1 1 auto;
  border: 1px solid rgba(0, 243, 255, 0.12);
  background: #03070d;
}
#tokenized-trend-chart {
  width: 100%;
  height: 100%;
}
.tokenized-trend-empty {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 16px;
  color: var(--text-dim);
  font-size: 0.8rem;
  text-align: center;
  background: rgba(3, 7, 13, 0.72);
  pointer-events: none;
}
.tokenized-trend-empty.is-hidden {
  display: none;
}
.tokenized-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  gap: 14px;
  align-items: start;
}
.tokenized-suggestions-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  align-items: start;
}
.tokenized-contract-panel {
  display: grid;
  gap: 12px;
  align-content: start;
}
.tokenized-contract-tabs {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
  margin-bottom: 2px;
}
.tokenized-contract-tab-btn {
  min-width: 88px;
}
.tokenized-contract-tab-btn.is-active {
  background: var(--neon-cyan);
  color: #001018;
  box-shadow: 0 0 10px rgba(0, 243, 255, 0.28);
}
.tokenized-contract-tab-panel[hidden] {
  display: none !important;
}
.tokenized-contract-grid {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
}
.tokenized-contract-grid .paper-kpi {
  min-height: 92px;
  padding: 12px;
}
.tokenized-contract-grid .paper-kpi-value {
  font-size: 1rem;
}
.tokenized-contract-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  gap: 14px;
  align-items: start;
}
.tokenized-contract-dashboard {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(320px, 0.75fr);
  gap: 14px;
  align-items: stretch;
}
.tokenized-contract-chart {
  position: relative;
  min-height: 420px;
  height: 48vh;
  border: 1px solid rgba(0, 243, 255, 0.12);
  background: #03070d;
}
#tokenized-contract-kline-chart {
  width: 100%;
  height: 100%;
}
.tokenized-contract-side {
  display: grid;
  gap: 12px;
  align-content: start;
}
.tokenized-contract-result {
  max-height: 360px;
  min-height: 96px;
  padding: 12px;
  color: var(--text-main);
  border: 1px solid rgba(0, 243, 255, 0.12);
  background: rgba(0, 0, 0, 0.18);
  font-size: 0.8rem;
  line-height: 1.5;
  overflow-y: auto;
  overflow-wrap: anywhere;
}
.tokenized-contract-result-status {
  color: var(--text-main);
  font-weight: 700;
  margin-bottom: 10px;
}
.tokenized-contract-result-time {
  color: var(--text-dim);
  font-family: var(--font-mono), var(--font-cn-mono);
  font-size: 0.74rem;
  margin-bottom: 8px;
}
.tokenized-contract-result-title {
  color: var(--neon-cyan);
  font-weight: 700;
  margin: 8px 0;
}
.tokenized-contract-result-md {
  color: var(--text-main);
}
.tokenized-contract-result-md h1,
.tokenized-contract-result-md h2,
.tokenized-contract-result-md h3 {
  color: var(--text-main);
  font-size: 0.95rem;
  margin: 10px 0 6px;
}
.tokenized-contract-result-md p,
.tokenized-contract-result-md ul,
.tokenized-contract-result-md ol,
.tokenized-contract-result-md table {
  margin: 6px 0;
}
.tokenized-contract-result-md ul,
.tokenized-contract-result-md ol {
  padding-left: 18px;
}
.tokenized-contract-result-md table {
  width: 100%;
  border-collapse: collapse;
  display: block;
  overflow-x: auto;
}
.tokenized-contract-result-md th,
.tokenized-contract-result-md td {
  padding: 4px 6px;
  border: 1px solid rgba(0, 243, 255, 0.12);
  text-align: left;
}
.tokenized-contract-result-md code {
  color: var(--neon-cyan);
}
.tokenized-contract-result-tools {
  max-height: 220px;
  margin: 0;
  padding: 8px;
  overflow: auto;
  color: var(--text-dim);
  border: 1px solid rgba(0, 243, 255, 0.1);
  background: rgba(0, 0, 0, 0.24);
  white-space: pre-wrap;
}
.tokenized-contract-tool-summary {
  margin-top: 0;
}
.tokenized-contract-result .tokenized-contract-tool-summary .action-list,
.tokenized-contract-history-item .tokenized-contract-tool-summary .action-list {
  gap: 6px;
}
.tokenized-contract-result .tokenized-contract-tool-summary .action-card,
.tokenized-contract-history-item .tokenized-contract-tool-summary .action-card {
  padding: 8px 10px;
  background: rgba(4, 12, 20, 0.72);
}
.tokenized-contract-result .tokenized-contract-tool-summary .action-line,
.tokenized-contract-history-item .tokenized-contract-tool-summary .action-line {
  grid-template-columns: 38px minmax(0, 1fr);
}
.tokenized-contract-result .tokenized-contract-tool-summary .action-value,
.tokenized-contract-history-item .tokenized-contract-tool-summary .action-value {
  white-space: normal;
  overflow-wrap: anywhere;
}
.tokenized-contract-result-history {
  display: grid;
  gap: 8px;
  max-height: 420px;
  margin-top: 10px;
  overflow-y: auto;
}
.tokenized-contract-history-item {
  border: 1px solid rgba(0, 243, 255, 0.12);
  border-radius: 6px;
  background: rgba(0, 0, 0, 0.16);
}
.tokenized-contract-history-item summary {
  display: grid;
  grid-template-columns: minmax(112px, auto) minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  padding: 9px 10px;
  cursor: pointer;
  list-style: none;
}
.tokenized-contract-history-item summary::-webkit-details-marker {
  display: none;
}
.tokenized-contract-history-item summary strong {
  min-width: 0;
  color: var(--text-main);
  font-size: 0.78rem;
  overflow-wrap: anywhere;
}
.tokenized-contract-history-time {
  color: var(--text-dim);
  font-family: var(--font-mono), var(--font-cn-mono);
  font-size: 0.72rem;
}
.tokenized-contract-history-item .tokenized-contract-result-md {
  max-height: 360px;
  padding: 0 10px 10px;
  overflow-y: auto;
}
.tokenized-contract-history-empty {
  color: var(--text-dim);
  font-size: 0.78rem;
  padding: 10px 0;
}
.tokenized-contract-config-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  align-items: end;
}
.tokenized-contract-config-wide {
  grid-column: 1 / -1;
}
.paper-field-label-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 6px;
}
.tokenized-underlying-map-rows {
  display: grid;
  gap: 10px;
}
.tokenized-underlying-map-row {
  display: grid;
  grid-template-columns: 150px minmax(110px, 0.7fr) minmax(160px, 1fr) minmax(220px, 1.4fr);
  gap: 10px;
  align-items: end;
  padding: 10px;
  border: 1px solid rgba(0, 243, 255, 0.14);
  background: rgba(0, 243, 255, 0.03);
}
.tokenized-underlying-contract {
  min-height: 44px;
  display: flex;
  align-items: center;
  color: var(--neon-cyan);
  font-family: var(--font-mono, monospace);
  font-weight: 700;
}
.tokenized-underlying-empty {
  min-height: 48px;
  display: flex;
  align-items: center;
  padding: 0 12px;
  color: var(--text-dim);
  border: 1px dashed rgba(0, 243, 255, 0.16);
}
.tokenized-context-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 12px;
}
.tokenized-context-card,
.tokenized-context-empty {
  min-height: 140px;
  padding: 12px;
  border: 1px solid rgba(0, 243, 255, 0.12);
  background: rgba(0, 0, 0, 0.18);
}
.tokenized-context-card {
  display: grid;
  gap: 10px;
  align-content: start;
}
.tokenized-context-head {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: flex-start;
}
.tokenized-context-title {
  color: var(--text-main);
  font-weight: 700;
}
.tokenized-context-meta,
.tokenized-context-list {
  color: var(--text-dim);
  font-size: 0.78rem;
  line-height: 1.5;
}
.tokenized-context-badges {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.tokenized-context-badge {
  padding: 3px 7px;
  border: 1px solid rgba(0, 243, 255, 0.18);
  color: var(--neon-cyan);
  font-size: 0.7rem;
}
.tokenized-contract-table-wrap {
  max-height: 260px;
}
.tokenized-table-wrap { max-height: 430px; }
.tokenized-mini-btn { min-width: 64px; padding: 5px 9px; font-size: 0.7rem; }
@media (min-width: 1181px) {
  .tokenized-layout,
  .tokenized-suggestions-grid {
    grid-template-columns: minmax(0, 1.22fr) minmax(360px, 0.78fr);
    gap: 16px;
  }
  .tokenized-layout .paper-table-section,
  .tokenized-suggestions-grid .paper-table-section {
    display: flex;
    min-height: 0;
    flex-direction: column;
  }
  .tokenized-layout .paper-section-head > div,
  .tokenized-suggestions-grid .paper-section-head > div {
    min-width: 0;
  }
  .tokenized-layout .paper-section-sub,
  .tokenized-suggestions-grid .paper-section-sub {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .tokenized-layout .tokenized-table-wrap,
  .tokenized-suggestions-grid .tokenized-table-wrap {
    flex: 1 1 auto;
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-gutter: stable;
  }
  .tokenized-assets-section .tokenized-table-wrap,
  .tokenized-positions-section .tokenized-table-wrap {
    max-height: 350px;
  }
  .tokenized-rebalance-section .tokenized-table-wrap,
  .tokenized-exit-section .tokenized-table-wrap {
    max-height: 280px;
  }
  .tokenized-layout .paper-responsive-table,
  .tokenized-suggestions-grid .paper-responsive-table {
    table-layout: fixed;
    width: 100%;
  }
  .tokenized-layout .paper-responsive-table th,
  .tokenized-layout .paper-responsive-table td,
  .tokenized-suggestions-grid .paper-responsive-table th,
  .tokenized-suggestions-grid .paper-responsive-table td {
    min-width: 0;
    padding: 10px 12px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .tokenized-layout .paper-responsive-table th,
  .tokenized-suggestions-grid .paper-responsive-table th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: #03070d;
  }
  .tokenized-layout .paper-responsive-table td,
  .tokenized-suggestions-grid .paper-responsive-table td {
    font-size: 0.82rem;
  }
  .tokenized-assets-table th:nth-child(1),
  .tokenized-assets-table td:nth-child(1) { width: 16%; }
  .tokenized-assets-table th:nth-child(2),
  .tokenized-assets-table td:nth-child(2) { width: 10%; }
  .tokenized-assets-table th:nth-child(3),
  .tokenized-assets-table td:nth-child(3),
  .tokenized-assets-table th:nth-child(4),
  .tokenized-assets-table td:nth-child(4) { width: 12%; }
  .tokenized-assets-table th:nth-child(5),
  .tokenized-assets-table td:nth-child(5) { width: 9%; }
  .tokenized-assets-table th:nth-child(6),
  .tokenized-assets-table td:nth-child(6) { width: 14%; }
  .tokenized-assets-table th:nth-child(7),
  .tokenized-assets-table td:nth-child(7) { width: 14%; }
  .tokenized-assets-table th:nth-child(8),
  .tokenized-assets-table td:nth-child(8) { width: 9%; text-align: right; }
  .tokenized-positions-table th:nth-child(1),
  .tokenized-positions-table td:nth-child(1) { width: 16%; }
  .tokenized-positions-table th:nth-child(2),
  .tokenized-positions-table td:nth-child(2) { width: 18%; }
  .tokenized-positions-table th:nth-child(3),
  .tokenized-positions-table td:nth-child(3) { width: 15%; }
  .tokenized-positions-table th:nth-child(4),
  .tokenized-positions-table td:nth-child(4) { width: 23%; }
  .tokenized-positions-table th:nth-child(5),
  .tokenized-positions-table td:nth-child(5) { width: 18%; }
  .tokenized-positions-table th:nth-child(6),
  .tokenized-positions-table td:nth-child(6) { width: 10%; text-align: right; }
  .tokenized-rebalance-table th:nth-child(1),
  .tokenized-rebalance-table td:nth-child(1) { width: 13%; }
  .tokenized-rebalance-table th:nth-child(2),
  .tokenized-rebalance-table td:nth-child(2),
  .tokenized-rebalance-table th:nth-child(3),
  .tokenized-rebalance-table td:nth-child(3),
  .tokenized-rebalance-table th:nth-child(4),
  .tokenized-rebalance-table td:nth-child(4) { width: 9%; }
  .tokenized-rebalance-table th:nth-child(5),
  .tokenized-rebalance-table td:nth-child(5) { width: 12%; }
  .tokenized-rebalance-table th:nth-child(6),
  .tokenized-rebalance-table td:nth-child(6),
  .tokenized-rebalance-table th:nth-child(7),
  .tokenized-rebalance-table td:nth-child(7) { width: 13%; }
  .tokenized-rebalance-table th:nth-child(8),
  .tokenized-rebalance-table td:nth-child(8) { width: 12%; }
  .tokenized-rebalance-table th:nth-child(9),
  .tokenized-rebalance-table td:nth-child(9) { width: 9%; text-align: right; }
  .tokenized-exit-table th:nth-child(1),
  .tokenized-exit-table td:nth-child(1) { width: 13%; }
  .tokenized-exit-table th:nth-child(2),
  .tokenized-exit-table td:nth-child(2),
  .tokenized-exit-table th:nth-child(4),
  .tokenized-exit-table td:nth-child(4) { width: 9%; }
  .tokenized-exit-table th:nth-child(3),
  .tokenized-exit-table td:nth-child(3) { width: 10%; }
  .tokenized-exit-table th:nth-child(5),
  .tokenized-exit-table td:nth-child(5) { width: 12%; }
  .tokenized-exit-table th:nth-child(6),
  .tokenized-exit-table td:nth-child(6),
  .tokenized-exit-table th:nth-child(7),
  .tokenized-exit-table td:nth-child(7) { width: 12%; }
  .tokenized-exit-table th:nth-child(8),
  .tokenized-exit-table td:nth-child(8) { width: 14%; }
  .tokenized-exit-table th:nth-child(9),
  .tokenized-exit-table td:nth-child(9) { width: 9%; text-align: right; }
  .tokenized-layout .tokenized-mini-btn,
  .tokenized-suggestions-grid .tokenized-mini-btn {
    min-width: 54px;
    padding: 5px 8px;
  }
}
@media (max-width: 1180px) {
  .paper-overview-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .paper-config-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tokenized-decision-grid { grid-template-columns: 1fr; }
  .tokenized-layout { grid-template-columns: 1fr; }
  .tokenized-contract-layout { grid-template-columns: 1fr; }
  .tokenized-contract-dashboard { grid-template-columns: 1fr; }
  .tokenized-contract-config-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tokenized-suggestions-grid { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .paper-header { align-items: stretch; }
  .tokenized-header { align-items: stretch; }
  .paper-toolbar { width: 100%; justify-content: space-between; margin-left: 0; }
  .tokenized-toolbar { width: 100%; justify-content: space-between; margin-left: 0; }
  .paper-overview-grid,
  .paper-config-grid,
  .tokenized-action-panel { grid-template-columns: 1fr; }
  .tokenized-overview-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tokenized-contract-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tokenized-overview-grid .paper-kpi { min-height: 88px; }
  .tokenized-contract-grid .paper-kpi { min-height: 88px; }
  .tokenized-overview-grid .paper-kpi-value { font-size: 0.98rem; }
  .tokenized-contract-config-grid { grid-template-columns: 1fr; }
  .tokenized-underlying-map-row { grid-template-columns: 1fr; }
  .tokenized-contract-chart { min-height: 320px; height: 360px; }
  .tokenized-selected-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tokenized-trend-chart-wrap { min-height: 260px; }
  .tokenized-risk-strip { align-items: flex-start; flex-direction: column; }
  .paper-section-head { align-items: flex-start; flex-direction: column; }
  .paper-section-head > div {
    min-width: 0;
  }
  .paper-count {
    max-width: 100%;
    line-height: 1.35;
    white-space: normal;
    overflow-wrap: anywhere;
  }
  .paper-trades-controls { justify-content: flex-start; width: 100%; }
  .paper-trades-view-tabs { width: 100%; }
  .paper-trades-view-tab { flex: 1 1 0; }
  .paper-trades-chart-panel { min-height: 260px; }
  .paper-trades-chart { height: 260px; }
  .paper-pager { justify-content: flex-start; }
  .paper-responsive-table,
  .paper-responsive-table thead,
  .paper-responsive-table tbody,
  .paper-responsive-table tr,
  .paper-responsive-table th,
  .paper-responsive-table td { display: block; }
  .paper-responsive-table thead { display: none; }
  .paper-responsive-table tbody { display: grid; gap: 10px; }
  .paper-responsive-table tr {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 12px;
    padding: 10px;
    border: 1px solid rgba(0, 243, 255, 0.14);
    background: rgba(0, 0, 0, 0.2);
  }
  .paper-responsive-table td {
    min-width: 0;
    display: flex;
    justify-content: space-between;
    gap: 10px;
    padding: 0;
    border-bottom: 0;
    white-space: normal;
    overflow-wrap: anywhere;
  }
  .paper-responsive-table td::before {
    content: attr(data-label);
    flex: 0 0 auto;
    color: var(--text-dim);
    font-family: var(--font-ui), var(--font-cn-sans);
    font-size: 0.7rem;
  }
  .paper-responsive-table td[data-priority="primary"],
  .paper-responsive-table td[data-label="来源"] { grid-column: 1 / -1; }
  .tokenized-suggestions-grid .paper-responsive-table td[data-label="状态"],
  .tokenized-suggestions-grid .paper-responsive-table td[data-label="操作"] {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: minmax(54px, auto) minmax(0, 1fr);
    align-items: start;
  }
  .tokenized-suggestions-grid .paper-responsive-table td[data-label="操作"] .cyber-btn {
    width: 100%;
  }
  .paper-empty-row { display: block !important; }
  .paper-empty-row td { display: block; }
  .paper-empty-row td::before { content: none; }
}
@media (max-width: 420px) {
  .paper-responsive-table tr {
    grid-template-columns: 1fr;
  }
}
.tag { padding: 3px 8px; border-radius: 2px; font-size: 0.7rem; font-weight: bold; text-transform: uppercase; }
.tag.long { background: rgba(255, 42, 42, 0.15); color: var(--neon-red); border: 1px solid var(--neon-red); }
.tag.short { background: rgba(10, 255, 96, 0.15); color: var(--neon-green); border: 1px solid var(--neon-green); }
/* 模式徽标样式 */
.tag.mode-scanner { background: var(--neon-cyan); color: #000; border: 1px solid var(--neon-cyan); }
.tag.mode-loop { background: var(--neon-purple); color: #000; border: 1px solid var(--neon-purple); }

/* =========================================
   BUTTONS & INPUTS
   ========================================= */
.cyber-btn { background: transparent; border: 1px solid var(--neon-cyan); color: var(--neon-cyan); padding: 6px 16px; font-family: var(--font-display); font-size: 0.8rem; cursor: pointer; transition: all 0.3s; position: relative; overflow: hidden; text-transform: uppercase; }
.cyber-btn:hover { background: var(--neon-cyan); color: #000; box-shadow: 0 0 15px var(--neon-cyan); }
.cyber-btn:active { transform: scale(0.98); }
.cyber-btn:disabled { cursor: default; pointer-events: none; opacity: 0.6; background: transparent !important; box-shadow: none !important; border-color: rgba(0,243,255,0.4); color: var(--text-dim); }
.btn-danger { border-color: var(--neon-red); color: var(--neon-red); }
.btn-danger:hover { background: var(--neon-red); color: #000; box-shadow: 0 0 15px var(--neon-red); }

/* =========================================
   MODAL & TOAST
   ========================================= */
.modal { display: none; position: fixed; z-index: 999; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.8); backdrop-filter: blur(5px); align-items: center; justify-content: center; }
.modal.show { display: flex; }
.modal-content { background: var(--bg-panel-solid); border: 1px solid var(--neon-cyan); box-shadow: 0 0 30px rgba(0, 243, 255, 0.2); width: 400px; padding: 2px; position: relative; }
.modal-inner { background: rgba(0,0,0,0.5); padding: 20px; }
.modal h3 { color: var(--neon-cyan); font-family: var(--font-display); margin-bottom: 20px; text-align: center; }
#scanner-perf-modal { padding: 16px; }
.scanner-perf-modal-content {
  display: flex;
  max-height: calc(100vh - 32px);
  max-height: calc(100dvh - 32px);
  width: min(1080px, calc(100vw - 32px));
}
.scanner-perf-modal-inner {
  display: flex;
  flex-direction: column;
  max-height: calc(100vh - 36px);
  max-height: calc(100dvh - 36px);
  min-height: 0;
  overflow: hidden;
  padding: 16px;
  width: 100%;
}
.scanner-perf-head {
  align-items: flex-start;
  border-bottom: 1px solid rgba(0, 243, 255, 0.16);
  flex: 0 0 auto;
  gap: 12px;
  margin-bottom: 0;
  padding-bottom: 12px;
}
#perf-last-refresh {
  line-height: 1.4;
  white-space: nowrap;
}
.scanner-perf-body {
  align-content: start;
  display: grid;
  flex: 1 1 auto;
  gap: 10px 12px;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 0.9fr);
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 12px 4px 12px 0;
}
#perf-hint,
#perf-runtime-summary,
#perf-table-wrap {
  grid-column: 1 / -1;
}
.scanner-perf-summary {
  gap: 8px !important;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important;
  margin: 0 !important;
}
.scanner-perf-summary .stat-row {
  min-height: 52px;
  padding: 8px 10px;
}
.scanner-perf-table-wrap {
  background: rgba(0, 0, 0, 0.16);
  border: 1px solid rgba(0, 243, 255, 0.12);
  min-height: 0;
  overflow: auto !important;
}
.scanner-perf-table-main {
  max-height: min(36vh, 360px) !important;
}
.scanner-perf-table-secondary {
  grid-column: 1;
  max-height: min(25vh, 250px) !important;
}
.scanner-perf-table-review {
  max-height: min(30vh, 280px) !important;
}
.scanner-perf-section-title {
  align-self: end;
  grid-column: 1;
  line-height: 1.4;
  margin: 0 !important;
}
.scanner-perf-review-panel {
  border-top: 0;
  grid-column: 2;
  margin-top: 0;
  min-width: 0;
  padding-top: 0;
}
.scanner-perf-review-panel .scanner-review-head {
  margin-bottom: 8px;
}
.scanner-perf-modal-content .cyber-table {
  font-size: 0.74rem !important;
}
.scanner-perf-modal-content .cyber-table th,
.scanner-perf-modal-content .cyber-table td {
  padding: 7px 10px;
}
.scanner-perf-actions {
  border-top: 1px solid rgba(0, 243, 255, 0.16);
  flex: 0 0 auto;
  margin-top: 0 !important;
  padding-top: 12px;
}
@media (max-width: 900px) {
  #scanner-perf-modal {
    padding: 10px;
  }
  .scanner-perf-modal-content {
    max-height: calc(100vh - 20px);
    max-height: calc(100dvh - 20px);
    width: min(100%, calc(100vw - 20px));
  }
  .scanner-perf-modal-inner {
    max-height: calc(100vh - 24px);
    max-height: calc(100dvh - 24px);
    padding: 12px;
  }
  .scanner-perf-head {
    display: grid;
    grid-template-columns: 1fr;
  }
  #perf-last-refresh {
    margin-left: 0 !important;
  }
  .scanner-perf-body {
    grid-template-columns: 1fr;
  }
  .scanner-perf-section-title,
  .scanner-perf-table-secondary,
  .scanner-perf-review-panel {
    grid-column: 1;
  }
  .scanner-perf-table-main,
  .scanner-perf-table-secondary,
  .scanner-perf-table-review {
    max-height: 32vh !important;
  }
  .scanner-perf-actions .cyber-btn {
    flex: 1 1 0;
  }
}
@media (max-height: 720px) {
  .scanner-perf-summary .stat-row {
    min-height: 46px;
    padding: 7px 9px;
  }
  .scanner-perf-table-main {
    max-height: 30vh !important;
  }
  .scanner-perf-table-secondary,
  .scanner-perf-table-review {
    max-height: 24vh !important;
  }
  .scanner-perf-modal-content .cyber-table th,
  .scanner-perf-modal-content .cyber-table td {
    padding: 6px 8px;
  }
}
.tool-modal-content { width: min(1160px, calc(100vw - 36px)); max-height: calc(100vh - 48px); }
.tool-modal-inner { max-height: calc(100vh - 52px); display: flex; flex-direction: column; overflow: hidden; padding: 18px; }
.tool-modal-body { overflow-y: auto; overflow-x: hidden; padding-right: 4px; }
.tool-modal-actions { display: flex; gap: 8px; align-items: center; margin-left: auto; }
.cyber-input { width: 100%; background: rgba(0,0,0,0.5); border: 1px solid #333; color: var(--neon-cyan); padding: 10px; font-family: var(--font-mono); margin-bottom: 15px; outline: none; }
.cyber-input:focus { border-color: var(--neon-cyan); box-shadow: 0 0 10px rgba(0,243,255,0.2); }
.control-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px; align-items: end; }
.control-grid .cyber-input { margin-bottom: 0; }
.control-grid .cfg-item { margin: 0; min-height: 40px; justify-content: center; }
.control-btn { width: auto; min-width: 110px; height: 40px; padding: 6px 14px; justify-self: stretch; }
.reset-config-modal-content { width: min(500px, calc(100vw - 32px)); }
.reset-config-modal-inner { padding: 18px 20px 16px; }
.reset-config-modal-inner h3 { margin-bottom: 14px; font-size: 1.05rem; letter-spacing: 0; }
.reset-config-summary { margin: 0 0 10px; font-size: 0.84rem; line-height: 1.55; color: var(--text-main); }
.reset-config-list { margin: 0 0 14px 18px; padding: 0; font-size: 0.78rem; line-height: 1.65; }
.reset-config-input { height: 44px; margin-bottom: 10px; padding: 9px 12px; font-size: 0.82rem; }
#config-template-confirm-modal,
#config-backup-import-modal { align-items: flex-start; overflow-y: auto; padding: 24px 12px; }
#config-template-confirm-modal .reset-config-modal-content,
#config-backup-import-modal .reset-config-modal-content { width: min(640px, calc(100vw - 32px)); max-height: calc(100vh - 48px); }
#config-template-confirm-modal .reset-config-modal-inner,
#config-backup-import-modal .reset-config-modal-inner { max-height: calc(100vh - 52px); overflow-y: auto; overflow-x: hidden; }
#config-template-preview {
    height: auto;
    min-height: 132px;
    max-height: 180px;
    overflow-y: auto;
    overflow-x: hidden;
    white-space: pre-line;
    overflow-wrap: anywhere;
    line-height: 1.65;
    color: var(--text-primary);
    margin-bottom: 12px;
}
#config-backup-import-preview {
    display: block;
    box-sizing: border-box;
    height: 120px;
    min-height: 120px;
    max-height: 120px;
    flex: 0 0 120px;
	overflow-y: auto;
	overflow-x: hidden;
	white-space: pre-line;
	overflow-wrap: anywhere;
	line-height: 1.45;
	color: var(--text-primary);
	margin-bottom: 12px;
}
.reset-config-input::-ms-reveal,
.reset-config-input::-ms-clear { display: none; }
.reset-config-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 8px; }
.reset-config-actions .cyber-btn { min-width: 86px; padding: 8px 14px; white-space: nowrap; }
.reset-config-actions #reset-config-confirm { min-width: 150px; }
.toast-container { position: fixed; top: 80px; right: 20px; z-index: 1000; display: flex; flex-direction: column; gap: 10px; }
.toast { background: rgba(5, 10, 20, 0.95); border-left: 4px solid var(--neon-cyan); color: #fff; padding: 15px; min-width: 300px; box-shadow: 0 5px 15px rgba(0,0,0,0.5); animation: slideIn 0.3s ease-out; display: flex; align-items: center; gap: 10px; }
.toast.success { border-color: var(--neon-green); }
.toast.error { border-color: var(--neon-red); }
@keyframes slideIn { from { transform: translateX(100%); } to { transform: translateX(0); } }
@keyframes pulse { 0% { opacity: 0.5; } 50% { opacity: 1; } 100% { opacity: 0.5; } }

/* =========================================
   CONFIG PANEL (RESPONSIVE TABS)
   ========================================= */
.tabs { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 10px; }
.tab-btn { background: rgba(0,0,0,0.4); border: 1px solid #333; color: var(--text-main); padding: 6px 10px; font-family: var(--font-display); font-size: 0.8rem; cursor: pointer; }
.tab-btn.active { border-color: var(--neon-cyan); color: var(--neon-cyan); box-shadow: 0 0 10px rgba(0,243,255,0.2); }
.tab-panes { background: rgba(0,0,0,0.3); border: 1px solid rgba(255,255,255,0.08); padding: 10px; }
.tab-pane { display: none; }
.tab-pane.active { display: block; }
.cfg-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.cfg-grid-auto { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.cfg-item { display: flex; flex-direction: column; }
.cfg-item-inline { flex-direction: row; align-items: center; gap: 10px; }
.cfg-item-span { grid-column: 1 / -1; }
.cfg-choice-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 8px;
}
.cfg-choice {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto;
  column-gap: 8px;
  row-gap: 2px;
  align-items: start;
  min-width: 0;
  padding: 8px 10px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.03);
}
.cfg-choice input {
  grid-row: 1 / span 2;
  margin-top: 2px;
}
.cfg-choice span {
  min-width: 0;
  color: var(--text-main);
  font-size: 0.8rem;
  overflow-wrap: anywhere;
}
.cfg-choice small {
  min-width: 0;
  color: var(--text-dim);
  font-size: 0.68rem;
  line-height: 1.45;
  overflow-wrap: anywhere;
}
.cfg-switch-note {
  margin: 0 0 10px;
  padding: 9px 11px;
  border-left: 3px solid var(--neon-cyan);
  background: rgba(0, 243, 255, 0.06);
  color: var(--text-main);
  font-size: 0.78rem;
  line-height: 1.6;
}
.cfg-dependent-group {
  margin: 12px 0 16px;
  padding: 12px;
  border: 1px solid rgba(0, 243, 255, 0.16);
  background: rgba(0, 0, 0, 0.18);
}
.cfg-grid > .cfg-dependent-group {
  grid-column: 1 / -1;
}
.cfg-dependent-group.compact {
  margin: 0 0 12px;
}
.cfg-group-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}
.cfg-group-head .cfg-item {
  margin: 0;
}
.cfg-group-note {
  color: var(--text-dim);
  font-size: 0.74rem;
  line-height: 1.5;
  text-align: right;
}
.cfg-mini-title {
  margin: 12px 0 8px;
  color: var(--neon-cyan);
  font-family: var(--font-display);
  font-size: 0.76rem;
  letter-spacing: 0;
}
.cfg-dependent-group.is-disabled .cfg-grid,
.cfg-dependent-group.is-disabled .cfg-mini-title,
.cfg-dependent-group.is-disabled .text-dim {
  opacity: 0.45;
}
.cfg-dependent-group.is-disabled input:not([type="checkbox"]),
.cfg-dependent-group.is-disabled select {
  cursor: default;
}
.forward-regime-thresholds-grid {
  display: grid;
  gap: 8px;
  margin-top: 6px;
}
.forward-regime-header,
.forward-regime-row {
  display: grid;
  grid-template-columns: minmax(120px, 1.2fr) repeat(3, minmax(120px, 1fr));
  gap: 8px;
  align-items: center;
}
.forward-regime-name {
  min-width: 0;
  color: var(--text-main);
  overflow-wrap: anywhere;
}
.forward-regime-field {
  min-width: 0;
}
.forward-regime-field .stat-label {
  display: none;
}
.forward-regime-field .cyber-input {
  min-width: 0;
  margin-bottom: 0;
}
.cfg-actions { display: flex; gap: 10px; justify-content: flex-end; margin-top: 10px; flex-wrap: wrap; }
.config-sticky-toolbar {
  position: sticky;
  top: calc(var(--topbar-height) + var(--ticker-height) + var(--main-tabs-height));
  z-index: 80;
  padding-top: 1px;
  margin-bottom: 10px;
  background: #050a14;
  border-bottom: 1px solid rgba(0, 243, 255, 0.18);
  backdrop-filter: blur(10px);
  box-shadow: 0 -18px 0 18px #050a14, 0 12px 18px rgba(0, 0, 0, 0.35);
}
.config-panel-header {
  gap: 12px;
  flex-wrap: wrap;
}
.config-panel-header .cfg-actions {
  margin-top: 0;
  align-items: center;
}
.config-primary-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: nowrap;
}
.config-primary-actions .cyber-btn,
.config-maintenance-trigger {
  min-width: 96px;
}
.config-maintenance-menu {
  position: relative;
  flex: 0 0 auto;
}
.config-maintenance-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 38px;
  list-style: none;
  cursor: pointer;
  user-select: none;
}
.config-maintenance-trigger::-webkit-details-marker {
  display: none;
}
.config-maintenance-trigger::after {
  content: "";
  width: 7px;
  height: 7px;
  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  transform: rotate(45deg) translateY(-2px);
  transition: transform 0.18s ease;
}
.config-maintenance-menu[open] .config-maintenance-trigger::after {
  transform: rotate(225deg) translateY(-1px);
}
.config-maintenance-popover {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  z-index: 140;
  display: grid;
  grid-template-columns: minmax(132px, 1fr);
  gap: 8px;
  width: min(280px, calc(100vw - 36px));
  padding: 10px;
  background: #050a14;
  border: 1px solid rgba(0, 243, 255, 0.5);
  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.52), 0 0 16px rgba(0, 243, 255, 0.16);
}
.config-maintenance-popover .cyber-btn {
  width: 100%;
  min-height: 38px;
}
.config-maintenance-popover .btn-danger {
  border-color: var(--neon-red);
  color: var(--neon-red);
}
.config-sticky-toolbar .tabs {
  margin-bottom: 10px;
}
.config-note { margin-top: 8px; }
.config-section-save {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  margin: 14px 0 20px;
  padding-top: 10px;
  border-top: 1px solid rgba(0, 243, 255, 0.12);
}
.config-save-status {
  min-width: 96px;
  color: var(--text-dim);
  font-size: 0.75rem;
  text-align: right;
}
.config-save-status.is-dirty {
  color: var(--neon-yellow);
}
.config-save-status.is-saving {
  color: var(--neon-cyan);
}
.config-save-status.is-saved {
  color: var(--neon-green);
}
.config-save-status.is-error {
  color: var(--neon-red);
}
.config-save-action {
  min-width: 132px;
}
.llm-config-test-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 12px;
  border: 1px solid rgba(0, 243, 255, 0.16);
  background: rgba(0, 243, 255, 0.05);
}
.llm-config-test-copy .cfg-group-note {
  margin-top: 4px;
  text-align: left;
}
.llm-config-test-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  min-width: 0;
}
.llm-config-test-status {
  min-width: 118px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.scalp-optimization-board,
.short-cycle-status-board {
  margin-top: 14px;
  padding: 14px;
  border: 1px solid rgba(0, 243, 255, 0.18);
  background: rgba(0, 0, 0, 0.16);
}
.scalp-optimization-header,
.short-cycle-status-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}
.scalp-optimization-title,
.short-cycle-status-title {
  color: var(--text-primary);
  font-family: var(--font-display), var(--font-cn-sans);
  font-size: 0.95rem;
  font-weight: 800;
}
.scalp-optimization-actions {
  display: flex;
  flex: 0 0 auto;
  gap: 8px;
}
.scalp-optimization-actions .cyber-btn {
  min-height: 36px;
  white-space: nowrap;
}
.scalp-optimization-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 300px);
  gap: 12px;
  margin-top: 12px;
}
.scalp-optimization-status-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border: 1px solid rgba(0, 243, 255, 0.12);
  border-bottom: 0;
}
.scalp-optimization-metric {
  display: flex;
  min-height: 42px;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 8px 10px;
  border-right: 1px solid rgba(0, 243, 255, 0.1);
  background: rgba(0, 0, 0, 0.22);
}
.scalp-optimization-metric:last-child {
  border-right: 0;
}
.scalp-optimization-metric span {
  color: var(--text-dim);
  font-size: 0.72rem;
  white-space: nowrap;
}
.scalp-optimization-metric strong {
  min-width: 0;
  color: var(--neon-cyan);
  font-family: var(--font-mono), var(--font-cn-mono);
  font-size: 0.8rem;
  text-align: right;
  overflow-wrap: anywhere;
}
.scalp-optimization-list-shell {
  max-height: 328px;
  border: 1px solid rgba(0, 243, 255, 0.12);
  background: rgba(0, 0, 0, 0.18);
  overflow-y: auto;
}
.scalp-optimization-list-summary {
  position: sticky;
  top: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 8px 10px;
  border-bottom: 1px solid rgba(0, 243, 255, 0.1);
  background: rgba(4, 8, 18, 0.97);
  color: var(--text-dim);
  font-size: 0.72rem;
}
.scalp-optimization-empty {
  padding: 22px 12px;
  color: var(--text-dim);
  font-size: 0.78rem;
  text-align: center;
}
.scalp-optimization-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  padding: 11px 10px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.065);
}
.scalp-optimization-item:last-child {
  border-bottom: 0;
}
.scalp-optimization-item-main {
  min-width: 0;
}
.scalp-optimization-item-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 6px;
  color: var(--text-dim);
  font-size: 0.7rem;
}
.scalp-optimization-status {
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  padding: 2px 8px;
  border: 1px solid rgba(0, 243, 255, 0.28);
  color: var(--neon-cyan);
  font-size: 0.68rem;
  font-weight: 800;
}
.scalp-optimization-status.is-applied {
  border-color: rgba(10, 255, 96, 0.32);
  color: var(--neon-green);
}
.scalp-optimization-status.is-rejected {
  border-color: rgba(255, 42, 42, 0.34);
  color: var(--neon-red);
}
.scalp-optimization-item-summary {
  color: var(--text-primary);
  font-size: 0.82rem;
  font-weight: 700;
  line-height: 1.42;
}
.scalp-optimization-param-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 8px;
  margin-top: 8px;
}
.scalp-optimization-param-cell {
  min-width: 0;
  padding: 7px;
  border: 1px solid rgba(255, 255, 255, 0.07);
  background: rgba(255, 255, 255, 0.02);
}
.scalp-optimization-param-title {
  margin-bottom: 5px;
  color: var(--text-dim);
  font-size: 0.68rem;
}
.scalp-optimization-detail {
  margin-top: 7px;
  color: var(--text-dim);
  font-size: 0.72rem;
  line-height: 1.45;
}
.scalp-optimization-chips {
  display: flex;
  gap: 5px;
  flex-wrap: wrap;
}
.scalp-optimization-chip {
  max-width: 100%;
  padding: 2px 6px;
  border: 1px solid rgba(0, 243, 255, 0.18);
  color: var(--neon-cyan);
  font-family: var(--font-mono), var(--font-cn-mono);
  font-size: 0.68rem;
  line-height: 1.35;
  overflow-wrap: anywhere;
}
.scalp-optimization-chip.is-rejected {
  border-color: rgba(255, 213, 0, 0.3);
  color: var(--neon-yellow);
}
.scalp-optimization-chip.is-empty {
  border-color: rgba(255, 255, 255, 0.12);
  color: var(--text-dim);
}
.scalp-optimization-item-actions {
  display: grid;
  align-content: start;
  gap: 6px;
}
.scalp-optimization-item-actions .cyber-btn {
  min-width: 64px;
  min-height: 31px;
  padding: 5px 10px;
}
.scalp-optimization-more-hint {
  padding: 8px 10px;
  border-top: 1px solid rgba(0, 243, 255, 0.1);
  color: var(--text-dim);
  font-size: 0.7rem;
  text-align: center;
}
.scalp-optimization-side {
  padding: 10px 12px;
  border: 1px solid rgba(0, 243, 255, 0.12);
  background: rgba(0, 0, 0, 0.18);
}
.scalp-optimization-side-title,
.short-cycle-section-title {
  color: var(--neon-cyan);
  font-size: 0.76rem;
  font-weight: 800;
}
.scalp-optimization-side-line {
  margin-top: 9px;
  padding-left: 8px;
  border-left: 2px solid rgba(0, 243, 255, 0.22);
  color: var(--text-dim);
  font-size: 0.72rem;
  line-height: 1.5;
}
.short-cycle-status-head {
  margin-bottom: 10px;
}
.short-cycle-status-sections {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.short-cycle-status-section {
  min-width: 0;
  padding: 10px;
  border: 1px solid rgba(0, 243, 255, 0.12);
  background: rgba(0, 0, 0, 0.18);
}
.short-cycle-status-section-wide {
  grid-column: 1 / -1;
}
.short-cycle-status-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 8px;
}
.short-cycle-status-grid-two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.short-cycle-status-card {
  min-height: 62px;
  padding: 8px 10px;
  border: 1px solid rgba(0, 243, 255, 0.12);
  border-left: 3px solid rgba(0, 243, 255, 0.32);
  background: rgba(0, 0, 0, 0.22);
  transition: border-color 0.2s ease, background 0.2s ease;
}
.short-cycle-status-card .stat-label {
  margin-bottom: 5px;
  color: var(--text-dim);
  font-size: 0.68rem;
  line-height: 1.25;
}
.short-cycle-status-card .stat-value {
  color: var(--text-primary);
  font-family: var(--font-mono), var(--font-cn-mono);
  font-size: 0.78rem;
  font-weight: 800;
  line-height: 1.35;
  overflow-wrap: anywhere;
}
.short-cycle-status-card.tone-muted {
  border-left-color: rgba(255, 255, 255, 0.18);
}
.short-cycle-status-card.tone-active {
  border-color: rgba(0, 243, 255, 0.26);
  border-left-color: var(--neon-cyan);
  background: rgba(0, 243, 255, 0.045);
}
.short-cycle-status-card.tone-good {
  border-color: rgba(10, 255, 96, 0.24);
  border-left-color: var(--neon-green);
  background: rgba(10, 255, 96, 0.035);
}
.short-cycle-status-card.tone-warning {
  border-color: rgba(255, 213, 0, 0.28);
  border-left-color: var(--neon-yellow);
  background: rgba(255, 213, 0, 0.045);
}
.short-cycle-status-card.tone-danger {
  border-color: rgba(255, 42, 42, 0.3);
  border-left-color: var(--neon-red);
  background: rgba(255, 42, 42, 0.05);
}

/* Preset bar responsive */
.preset-bar { display: flex; gap: 10px; align-items: center; justify-content: flex-end; flex-wrap: wrap; }
.preset-bar .cfg-item { min-width: 240px; }
@media (max-width: 1024px) {
  .preset-bar { justify-content: flex-start; }
}
@media (max-width: 768px) {
  .preset-bar { justify-content: flex-start; }
  .preset-bar .cfg-item { flex: 1 1 100%; min-width: 0; }
  .preset-bar .cyber-btn { width: 100%; }
}
@media (max-width: 480px) {
  .preset-bar { flex-direction: column; align-items: stretch; }
}

@media (max-width: 1024px) {
    .cfg-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
    .cfg-grid { grid-template-columns: 1fr; }
    .cfg-group-head { align-items: flex-start; flex-direction: column; }
    .cfg-group-note { text-align: left; }
    .forward-regime-header {
        display: none;
    }
    .forward-regime-row {
        grid-template-columns: 1fr;
        gap: 8px;
        padding: 10px;
        border: 1px solid rgba(0, 243, 255, 0.14);
        background: rgba(0, 0, 0, 0.18);
    }
    .forward-regime-name {
        padding-bottom: 2px;
        color: var(--neon-cyan);
        font-weight: 700;
    }
    .forward-regime-field {
        display: grid;
        grid-template-columns: minmax(86px, 0.74fr) minmax(0, 1fr);
        gap: 8px;
        align-items: center;
    }
    .forward-regime-field .stat-label {
        display: block;
        font-size: 0.7rem;
        line-height: 1.2;
    }
    .tabs { overflow-x: auto; -webkit-overflow-scrolling: touch; }
    .panel-header { align-items: flex-start; gap: 10px; flex-wrap: wrap; }
    .portfolio-secondary-tools,
    .tool-modal-actions { width: 100%; justify-content: flex-start; flex-wrap: wrap; margin-left: 0; }
    .portfolio-secondary-tools .cyber-btn,
    .tool-modal-actions .cyber-btn { flex: 1 1 140px; }
    .tool-modal-inner { padding: 14px; }
    .cfg-actions { flex-direction: column; align-items: stretch; }
    .cfg-actions .cyber-btn { width: 100%; }
    .config-panel-header .cfg-actions {
        flex-direction: row;
    }
    .config-primary-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        flex: 1 1 auto;
    }
    .config-primary-actions .cyber-btn,
    .config-maintenance-trigger {
        min-width: 0;
    }
    .config-maintenance-menu {
        flex: 0 0 118px;
    }
    .config-maintenance-popover {
        width: min(260px, calc(100vw - 32px));
    }
    .config-sticky-toolbar {
        top: calc(var(--topbar-height) + var(--ticker-height) + var(--main-tabs-height));
    }
    .config-panel-header {
        align-items: stretch;
    }
    .config-section-save {
        align-items: stretch;
        flex-direction: column;
    }
    .config-save-status {
        min-width: 0;
        text-align: left;
    }
    .config-save-action {
        width: 100%;
    }
    .llm-config-test-panel {
        grid-template-columns: 1fr;
    }
    .llm-config-test-actions {
        align-items: stretch;
        flex-direction: column;
    }
    .llm-config-test-actions .cyber-btn {
        width: 100%;
    }
    .llm-config-test-status {
        min-width: 0;
        text-align: left;
    }
    .scalp-optimization-header,
    .short-cycle-status-head {
        align-items: stretch;
        flex-direction: column;
    }
    .scalp-optimization-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: 100%;
    }
    .scalp-optimization-actions .cyber-btn {
        min-width: 0;
        padding-inline: 8px;
    }
    .scalp-optimization-layout,
    .short-cycle-status-sections {
        grid-template-columns: 1fr;
    }
    .scalp-optimization-status-strip,
    .short-cycle-status-grid,
    .short-cycle-status-grid-two {
        grid-template-columns: 1fr;
    }
    .scalp-optimization-metric {
        border-right: 0;
        border-bottom: 1px solid rgba(0, 243, 255, 0.1);
    }
    .scalp-optimization-metric:last-child {
        border-bottom: 0;
    }
    .scalp-optimization-item {
        grid-template-columns: 1fr;
    }
    .scalp-optimization-param-grid {
        grid-template-columns: 1fr;
    }
    .scalp-optimization-item-actions {
        justify-content: flex-end;
    }
}

/* =========================================
   GLOBAL OVERLAY
   ========================================= */
.overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.6); backdrop-filter: blur(2px); display: flex; align-items: center; justify-content: center; z-index: 9999; }
.overlay-content { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:20px; border:1px solid rgba(0,243,255,0.4); background: rgba(0,0,0,0.4); }
.spinner { width: 36px; height: 36px; border: 3px solid rgba(0,243,255,0.3); border-top-color: var(--neon-cyan); border-radius: 50%; animation: spin 0.9s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

/* =========================================
   RESPONSIVE
   ========================================= */
@media (max-width: 1024px) {
    :root { --topbar-height: 100px; } /* 中文注释：中屏下顶部栏更高，调整粘性偏移 */
    .app-container { grid-template-columns: 1fr; }
    .app-container { display: block !important; }
    .dashboard-left-column,
    .dashboard-right-column {
      display: contents;
    }
    .dashboard-grid {
      display: grid !important;
      grid-template-columns: minmax(0, 1fr);
      grid-template-areas:
        "asset"
        "risk"
        "positions"
        "decision";
    }
    .asset-performance-section { min-height: auto; }
    .asset-performance-layout {
      grid-template-columns: minmax(0, 1.6fr) minmax(240px, 0.7fr);
    }
    .asset-chart-pane { min-height: 360px; }
    .top-bar { flex-direction: column; gap: 10px; }
.scanner-stats-grid { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 900px) {
    .ai-logs-header,
    .ai-logs-controls {
      align-items: stretch;
      flex-direction: column;
    }
    .ai-logs-search {
      grid-template-columns: minmax(0, 1fr) 68px 68px;
      min-width: 0;
      width: 100%;
    }
    .ai-logs-pagination {
      width: 100%;
      justify-content: stretch;
    }
    .decision-history-overview {
      grid-template-columns: repeat(4, minmax(0, 1fr));
    }
    .decision-history-card {
      grid-template-columns: 1fr;
    }
    .decision-history-title-row {
      grid-template-columns: 1fr;
    }
    .decision-history-metrics {
      grid-template-columns: minmax(150px, 1.4fr) minmax(96px, 0.82fr) minmax(58px, 0.52fr);
    }
    .decision-summary-band,
    .decision-content-grid {
      grid-template-columns: 1fr;
    }
    .decision-latest-mainline {
      grid-template-columns: 1fr;
      align-items: stretch;
    }
    .decision-latest-context .decision-chip-row {
      justify-content: flex-start;
    }
    .decision-latest-pricebar {
      align-items: flex-start;
    }
    .decision-home-content-grid {
      grid-template-columns: 1fr;
    }
    .decision-detail-layout {
      grid-template-columns: 1fr;
    }
    .decision-detail-actions {
      position: static;
      max-height: none;
      overflow: visible;
    }
    .decision-chip-row {
      justify-content: flex-start;
    }
    .decision-kpi-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 768px) {
    :root { --topbar-height: 120px; } /* 中文注释：小屏下顶部栏堆叠更高，进一步增加偏移量 */
    .cyber-table { font-size: 0.75rem; }
    .hide-mobile { display: none; }
    .account-big-val { font-size: 2rem; }
    .dashboard-panel-header { align-items: flex-start; flex-direction: column; }
    .dashboard-badge-row { justify-content: flex-start; }
    .asset-performance-layout { grid-template-columns: minmax(0, 1fr); }
    .asset-summary-pane {
      border-left: 0;
      border-top: 1px solid rgba(255, 255, 255, 0.08);
      padding-left: 0;
      padding-top: 14px;
    }
    .asset-chart-pane { min-height: 340px; }
    .asset-chart-toolbar { align-items: stretch; flex-direction: column; }
    .segmented-control { width: 100%; justify-content: space-between; }
    .equity-range-btn { flex: 1; }
    .strategy-inline-info { text-align: left; }
    .risk-core-grid,
    .ops-status-grid,
    .positions-summary-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .risk-core-wide { grid-column: 1 / -1; }
    .decision-section { min-height: 420px; }
    .decision-section .log-content { padding: 12px; }
    .ai-logs-subtitle { display: none; }
    .decision-detail-hero {
      gap: 12px;
      padding: 14px 16px 14px 18px;
    }
    .decision-detail-hero-main {
      flex-direction: column;
      align-items: flex-start;
    }
    .decision-verdict.decision-detail-verdict {
      font-size: 19px;
    }
    .decision-detail-facts {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px 16px;
      width: 100%;
    }
    .decision-detail-fact {
      padding: 0;
      border-left: 0;
    }
    .decision-detail-prices {
      flex-direction: column;
      gap: 6px;
    }
    .decision-detail-reading {
      padding: 4px 16px 16px;
    }
    .decision-dashboard.is-detail .decision-detail-markdown {
      font-size: 13px;
      line-height: 1.75;
    }
    .decision-latest-card {
      padding: 12px 12px 12px 16px;
    }
    .decision-latest-mainline {
      gap: 10px;
    }
    .decision-latest-pricebar {
      flex-direction: column;
      gap: 5px;
      padding: 7px 9px;
    }
    .decision-latest-meta {
      gap: 6px;
    }
    .decision-latest-meta > span {
      padding: 4px 7px;
    }
    /* 中文注释：移动端仅隐藏 TRANSACTION_HISTORY 的搜索输入与搜索按钮，保留分页按钮 */
    .trades-section .panel-header + div { display: flex !important; }
    .trades-section #trades-symbol, .trades-section #trades-search { display: none !important; }

    /* 中文注释：移动端 AI 决策历史改为纵向列表展示 */
    #decisions-list { display: grid !important; grid-template-columns: 1fr; gap: 10px; overflow-x: hidden; }
    .decision-history-card { width: 100%; }
    .modal-content.decision-modal-content { width: calc(100vw - 24px); }
    .decision-modal-body { height: min(720px, calc(100vh - 150px)); }
    .reconciliation-summary { grid-template-columns: 1fr; }
    #reconciliation-refresh { width: 100%; }

    /* 中文注释：移动端信号扫描筛选区栅格化，单列堆叠 */
    .scan-controls { grid-template-columns: 1fr; }
    .scan-clear-btn { justify-self: stretch; }
}
@media (max-width: 480px) {
    .dashboard-grid { gap: 14px; }
    .asset-performance-section,
    .risk-security-section,
    .positions-summary-section,
    .decision-section {
      padding: 16px;
    }
    .asset-chart-pane { min-height: 300px; }
    .decision-kpi-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .decision-kpi-grid .decision-kpi:first-child {
      grid-column: 1 / -1;
    }
    .decision-kpi {
      min-height: 54px;
      padding: 8px;
    }
    .decision-kpi strong {
      font-size: 0.82rem;
    }
    .decision-latest-mainline .decision-verdict-block {
      padding: 2px 0;
    }
    .decision-latest-pricebar .decision-price-stack {
      gap: 5px 9px;
    }
    .decision-latest-pricebar .decision-price-symbol,
    .decision-latest-pricebar .decision-price-amount {
      font-size: 0.72rem;
    }
    .decision-latest-meta {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .decision-latest-meta > span {
      justify-content: center;
      gap: 4px;
      padding: 5px 4px;
      text-align: center;
      white-space: nowrap;
    }
    .decision-latest-meta strong {
      font-size: 0.72rem;
    }
    .ai-logs-search {
      grid-template-columns: minmax(0, 1fr) 62px 62px;
    }
    .ai-logs-search .cyber-btn,
    .ai-logs-pagination .cyber-btn {
      width: auto;
      padding-left: 6px;
      padding-right: 6px;
    }
    .ai-logs-pagination {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    }
    .decision-history-overview {
      grid-template-columns: repeat(4, minmax(0, 1fr));
    }
    .decision-history-stat {
      min-height: 56px;
      padding: 8px 7px;
    }
    .decision-history-stat strong {
      font-size: 0.84rem;
    }
    .decision-history-metrics {
      grid-template-columns: 1fr;
    }
    .decision-detail-prices .decision-price-stack {
      gap: 5px 14px;
    }
    .decision-history-card {
      padding-right: 12px;
    }
    .decision-chip {
      max-width: 100%;
      white-space: normal;
    }
    .risk-core-grid,
    .ops-status-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .risk-core-wide {
      grid-column: 1 / -1;
    }
    .positions-summary-grid {
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 6px;
    }
    .positions-summary-grid .metric-tile {
      min-height: 56px;
      padding: 8px 7px;
      gap: 4px;
    }
    .positions-summary-grid .stat-label {
      font-size: 0.64rem;
    }
    .positions-summary-grid .stat-val {
      font-size: 0.82rem;
    }
    .dashboard-position-list {
      max-height: 260px;
      gap: 6px;
    }
    .dashboard-position-row {
      grid-template-columns: minmax(0, 1fr) auto;
      gap: 6px 8px;
      align-items: start;
      padding: 8px;
    }
    .dashboard-position-symbol {
      grid-column: 1;
    }
    .dashboard-position-meta {
      grid-column: 1 / -1;
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      align-items: center;
      gap: 6px;
      font-size: 0.74rem;
    }
    .dashboard-position-tags {
      gap: 4px;
    }
    .dashboard-position-meta .tag {
      max-width: 96px;
    }
    .dashboard-position-notional {
      justify-self: end;
    }
    .dashboard-position-pnl {
      grid-column: 2;
      grid-row: 1;
      text-align: right;
    }
}
@media (max-width: 360px) {
    .decision-history-overview {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
.scan-controls { display: grid; grid-auto-flow: row dense; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px; align-items: center; }
.scan-controls .cyber-input { width: 100%; min-width: 0; }
.scan-controls .cfg-item-inline { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 10px; }
.scan-controls .cfg-item-inline .stat-label { white-space: nowrap; }
.scan-controls .cfg-item { margin: 0; }
.scan-clear-btn { justify-self: end; }

/* Scanner workspace: status, signal stream, then diagnostics. */
.scanner-overview-panel {
  --scanner-muted: #93aab8;
  --scanner-line: rgba(159, 194, 215, 0.16);
  margin-bottom: 20px;
  padding: 24px;
}
.scanner-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 22px;
}
.scanner-heading { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.scanner-heading h2 { margin: 0; font: 600 22px var(--font-cn-sans), sans-serif; color: var(--text-main); }
.scanner-primary-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.scanner-primary-actions .cyber-btn { min-height: 38px; box-shadow: none; }
#scanner-status-indicator { position: static; margin: 0; }
#scanner-perf-open { color: var(--scanner-muted); border-color: var(--scanner-line); }
.scanner-overview-panel :is(button, input, select):focus-visible { outline: 2px solid var(--neon-cyan); outline-offset: 3px; }
.status-badge { display: inline-block; padding: 4px 10px; border-radius: 14px; font-family: var(--font-mono); font-size: 0.75rem; border: 1px solid rgba(255,255,255,0.1); }
.status-badge.running { background: rgba(10,255,96,0.18); color: var(--neon-green); border-color: rgba(10,255,96,0.35); box-shadow: 0 0 10px rgba(10,255,96,0.2); border-radius: 0; }
.status-badge.stopped { background: rgba(255,42,42,0.18); color: var(--neon-red); border-color: rgba(255,42,42,0.35); box-shadow: 0 0 10px rgba(255,42,42,0.2); }

/* Scanner stats cards */
.scanner-stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)) !important; gap: 12px; }
.scanner-stats-grid .stat-row {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: auto 1fr;
  align-items: start;
  gap: 6px;
  min-height: 96px;
  margin-bottom: 0;
  background: rgba(0,0,0,0.25);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 6px;
  padding: 12px;
}
.scanner-stats-grid .stat-label {
  min-width: 0;
  font-size: 0.78rem;
  line-height: 1.35;
  color: var(--text-dim);
  font-family: var(--font-ui), var(--font-cn-sans);
  font-weight: 600;
  text-transform: none;
  word-break: keep-all;
  overflow-wrap: break-word;
}
.scanner-stats-grid .stat-val {
  min-width: 0;
  max-width: none;
  width: 100%;
  font-size: 1.12rem;
  line-height: 1.35;
  text-align: right;
  font-family: var(--font-mono), var(--font-cn-mono);
  font-weight: 800;
  word-break: break-word;
  overflow-wrap: anywhere;
  align-self: start;
}
#scanner-forward-advice {
  max-width: none;
  text-align: left;
  font-size: 0.95rem;
  white-space: normal;
}
.scanner-stats-grid .stat-row:has(#scanner-forward-advice) {
  grid-column: span 2;
  min-height: 96px;
}
@media (max-width: 768px) {
  #scanner-status-indicator {
    margin-left: 0;
  }
  .scanner-stats-grid .stat-row:has(#scanner-forward-advice) {
    grid-column: span 1;
  }
}
#scanner-total-signals { color: var(--neon-cyan); }
.scanner-overview-stats {
  grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  gap: 0 !important;
  padding: 4px 0 22px;
  margin-bottom: 24px;
  border-bottom: 1px solid var(--scanner-line);
}
.scanner-overview-stats .stat-row {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  min-height: 0;
  padding: 0 20px;
  gap: 10px;
  border: 0;
  border-left: 1px solid var(--scanner-line);
  border-radius: 0;
  background: transparent;
}
.scanner-overview-stats .stat-row:first-child { padding-left: 0; border-left: 0; }
.scanner-overview-stats .stat-label { color: var(--scanner-muted); font: 400 12px/1.4 var(--font-cn-sans), sans-serif; }
#tab-scan .scanner-overview-stats .stat-val { color: var(--text-main); font-size: 21px; font-weight: 500; line-height: 1.3; text-align: left; font-variant-numeric: tabular-nums; }
#tab-scan .scanner-overview-stats #scanner-total-signals { color: var(--neon-cyan); }
.scanner-section-heading { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 0 0 16px; }
.scanner-section-heading h3 { margin: 0; font: 500 15px var(--font-cn-sans), sans-serif; color: var(--text-main); }
.scanner-section-heading > .text-dim { font-size: 12px; color: var(--scanner-muted); }
#tab-scan .scan-clear-btn { margin: 0; min-height: 34px; padding: 6px 12px; color: var(--scanner-muted); border-color: var(--scanner-line); box-shadow: none; }
#tab-scan .scan-controls { grid-template-columns: minmax(180px, 1fr) 150px auto; gap: 12px; margin-bottom: 16px; }
.scan-display-options { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; }
#tab-scan .scan-display-options .cfg-item-inline { display: flex; gap: 6px; }
#tab-scan .scan-display-options .stat-label { font-size: 12px; font-weight: 400; color: var(--scanner-muted); }
#tab-scan #scanner-signals-container { max-height: min(440px, 55vh) !important; min-height: 88px; overflow-y: auto; margin: 0; }
#scanner-signals-container > .text-dim { grid-column: 1 / -1; }
.scanner-diagnostics { margin-top: 24px; padding-top: 22px; border-top: 1px solid var(--scanner-line); }
.scanner-diagnostics-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 28px; align-items: start; }
.scanner-diagnostics-grid > .forward-calibration-panel { min-width: 0; margin: 0; border: 0; border-top: 1px solid var(--scanner-line); background: transparent; }
.scanner-diagnostics-grid > .forward-calibration-panel:not(.collapsed) { grid-column: 1 / -1; }
.scanner-diagnostics-grid .forward-calibration-toggle { grid-template-columns: minmax(0, 1fr) auto; gap: 6px 12px; padding: 16px 0; transition: background .15s; }
.scanner-diagnostics-grid .forward-calibration-toggle:hover { background: rgba(159, 194, 215, .035); }
.scanner-diagnostics-grid .forward-calibration-title { font: 500 14px var(--font-cn-sans), sans-serif; color: var(--text-main); }
.scanner-diagnostics-grid .forward-calibration-toggle > .mono { grid-column: 1; grid-row: 2; min-width: 0; color: var(--scanner-muted); font-size: 12px; white-space: normal; overflow-wrap: anywhere; }
.scanner-diagnostics-grid .forward-calibration-caret { grid-column: 2; grid-row: 1 / 3; font-size: 12px; }
@media (max-width: 1100px) {
  .scanner-overview-stats { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; row-gap: 22px !important; }
  .scanner-overview-stats .stat-row:nth-child(4) { padding-left: 0; border-left: 0; }
  #tab-scan .scan-controls { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .scan-display-options { grid-column: 1 / -1; }
}
@media (max-width: 768px) {
  .scanner-overview-panel { padding: 16px; }
  .scanner-toolbar { gap: 18px; }
  .scanner-primary-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); width: 100%; }
  .scanner-primary-actions .cyber-btn { min-width: 0; padding: 8px 6px; font-size: 12px; }
  #tab-scan .scanner-overview-stats .stat-val { font-size: 17px; }
  .scanner-overview-stats .stat-row { padding: 0 12px; }
  .scanner-overview-stats .stat-row:nth-child(3n+1) { padding-left: 0; }
  .scanner-diagnostics-grid { grid-template-columns: minmax(0, 1fr); }
  .scanner-section-heading { flex-wrap: wrap; }
  .scan-display-options { gap: 14px; }
}
@media (prefers-reduced-motion: reduce) { .scanner-overview-panel * { transition: none !important; } }

/* Backtest research workspace: quiet surfaces, chronological validation, readable data. */
#tab-intelligent-backtest { --text-dim: #8c9daa; }
#tab-intelligent-backtest .backtest-workbench { gap: 24px; grid-template-columns: minmax(0, 1fr) 290px; }
#tab-intelligent-backtest .backtest-summary-grid { grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 0; border-bottom: 1px solid #26323d; margin-bottom: 26px; }
#tab-intelligent-backtest .backtest-summary-card { background: none; border: 0; padding: 16px 18px; min-height: 116px; }
#tab-intelligent-backtest .backtest-summary-primary { padding-left: 0; }
#tab-intelligent-backtest .backtest-summary-card + .backtest-summary-card { border-left: 1px solid #26323d; }
#tab-intelligent-backtest .backtest-section-title { border: 0; padding: 0; color: #dce7ed; font-weight: 600; }
#tab-intelligent-backtest .backtest-config-section { border: 1px solid #26323d; background: #0d141d; border-radius: 8px; overflow: hidden; }
#tab-intelligent-backtest .backtest-config-section summary { color: #dce7ed; border-color: #26323d; padding: 14px; }
#tab-intelligent-backtest .backtest-config-section .cfg-grid { padding: 14px; gap: 12px; }
#tab-intelligent-backtest .cyber-input { max-width: 100%; }
#tab-intelligent-backtest #bt-run { background: #77e5de; border-color: #77e5de; color: #08191c; border-radius: 5px; }
#tab-intelligent-backtest #bt-apply { border-color: #3b5961; color: #bdd8df; border-radius: 5px; }
#tab-intelligent-backtest .backtest-danger-action { border-color: transparent; color: #c78c92; }
#tab-intelligent-backtest .cyber-btn { transition: background 150ms ease, border-color 150ms ease; }
#tab-intelligent-backtest .cyber-btn:disabled { opacity: .45; cursor: not-allowed; }
#tab-intelligent-backtest .backtest-candidate-list { border: 0; padding: 0; }
#tab-intelligent-backtest .backtest-candidate-row { border: 0; border-bottom: 1px solid #26323d; background: transparent; margin: 0; }
#tab-intelligent-backtest .backtest-candidate-row summary { transition: background 150ms ease; }
#tab-intelligent-backtest .backtest-candidate-row summary:hover { background: #111d27; }
#tab-intelligent-backtest .backtest-ai-card { border: 1px solid #26323d; background: #0d141d; border-radius: 7px; }
.backtest-mode-help, .backtest-section-note { color: var(--text-dim); font-size: .74rem; line-height: 1.6; margin: 0; }
.backtest-inactive-setting { opacity: .5; }
.backtest-validation-path { margin: 0 0 28px; padding: 0 0 20px; border-bottom: 1px solid #26323d; color: #dce7ed; }
.backtest-validation-heading { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 18px; flex-wrap: wrap; }
.backtest-validation-heading h3 { font-size: 1rem; font-weight: 600; margin: 0; }
.backtest-validation-heading > span { color: #8c9daa; font-size: .76rem; }
.backtest-validation-stages { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-bottom: 20px; }
.backtest-validation-stages > div { min-width: 0; }
.backtest-stage-number { color: #6f8f99; font: .72rem var(--font-mono), monospace; letter-spacing: .08em; }
.backtest-validation-stages h4 { font-size: .84rem; font-weight: 500; margin: 7px 0 10px; color: #b3c1cb; }
.backtest-validation-stages strong { font: 600 1.65rem var(--font-mono), monospace; letter-spacing: -.035em; }
.backtest-validation-stages small { font: .74rem var(--font-cn-mono), sans-serif; color: #8c9daa; letter-spacing: 0; }
.backtest-validation-stages p { color: #8c9daa; font-size: .73rem; line-height: 1.6; margin: 8px 0 0; }
.backtest-time-split { display: flex; gap: 3px; height: 30px; border-radius: 4px; overflow: hidden; }
.backtest-time-split span { display: flex; align-items: center; padding-left: 12px; font-size: .72rem; min-width: 0; white-space: nowrap; background: #284954; color: #d5e6ec; }
.backtest-time-split span + span { background: #77e5de; color: #082c30; }
.backtest-validation-dates { display: flex; justify-content: space-between; gap: 12px; margin: 8px 0 18px; color: #8c9daa; font-size: .69rem; flex-wrap: wrap; }
.backtest-fold-row { border-top: 1px solid #23303a; }
.backtest-fold-row > summary { display: grid; grid-template-columns: 26px minmax(0, 1fr) 56px 90px 60px; gap: 16px; align-items: center; list-style: none; padding: 14px 0; cursor: pointer; transition: background 150ms ease; }
.backtest-fold-row > summary::-webkit-details-marker { display: none; }
.backtest-fold-row > summary:hover { background: #111d27; }
.backtest-fold-index { font: .75rem var(--font-mono), monospace; color: #8c9daa; }
.backtest-fold-main { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.backtest-fold-main > strong { font-size: .78rem; overflow-wrap: anywhere; font-weight: 500; }
.backtest-fold-main > span { color: #8c9daa; font-size: .68rem; line-height: 1.5; }
.backtest-fold-track { display: flex; height: 4px; background: #1b2731; border-radius: 2px; overflow: hidden; }
.backtest-fold-track i { background: #3e6471; }
.backtest-fold-track b { background: #77e5de; }
.backtest-fold-value { display: flex; flex-direction: column; gap: 4px; text-align: right; }
.backtest-fold-value strong { font: .79rem var(--font-mono), monospace; }
.backtest-fold-value span { font-size: .68rem; color: #8c9daa; }
.backtest-validation-state { font-size: .72rem; font-weight: 500; white-space: nowrap; }
.backtest-validation-path .is-good { color: #77d6b0; }
.backtest-validation-path .is-bad { color: #e3a0a4; }
.backtest-fold-detail { padding: 4px 0 16px 42px; color: #9dabb6; font-size: .74rem; line-height: 1.8; overflow-wrap: anywhere; }
.backtest-holdout-verdict { margin-top: 14px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px; background: #101d24; border-left: 2px solid #77e5de; border-radius: 0 5px 5px 0; }
.backtest-holdout-verdict h4 { font-size: .82rem; font-weight: 500; margin: 0 0 7px; display: flex; gap: 14px; flex-wrap: wrap; }
.backtest-holdout-verdict p { margin: 0; font-size: .74rem; color: #a9bac4; line-height: 1.7; }
.backtest-lock-label { color: #77c6c7; font-size: .68rem; white-space: nowrap; }
.backtest-validation-note { color: #8c9daa; font-size: .74rem; line-height: 1.7; margin: 12px 0 0; }
#tab-intelligent-backtest summary:focus-visible, #tab-intelligent-backtest button:focus-visible { outline: 2px solid #77e5de; outline-offset: 3px; }
@media (max-width: 1400px) {
  #tab-intelligent-backtest .backtest-workbench { grid-template-columns: minmax(0, 1fr) 260px; gap: 18px; }
  #tab-intelligent-backtest .backtest-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #tab-intelligent-backtest .backtest-summary-card:nth-child(3) { border-left: 0; padding-left: 0; }
}
@media (max-width: 960px) {
  #tab-intelligent-backtest .backtest-workbench { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
  #tab-intelligent-backtest .backtest-summary-grid { grid-template-columns: minmax(0, 1fr); }
  #tab-intelligent-backtest .backtest-summary-card { padding: 12px 0; min-height: auto; }
  #tab-intelligent-backtest .backtest-summary-card + .backtest-summary-card { border-left: 0; }
  .backtest-validation-stages { gap: 12px; }
  .backtest-validation-stages strong { font-size: 1.3rem; }
  .backtest-validation-stages small { display: block; margin-top: 5px; }
  .backtest-fold-row > summary { grid-template-columns: 20px minmax(0, 1fr) 48px; gap: 8px; }
  .backtest-fold-value { display: none; }
  .backtest-holdout-verdict { align-items: flex-start; padding: 12px; }
  .backtest-lock-label { display: none; }
  .backtest-section-header { flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) {
  #tab-intelligent-backtest * { transition: none !important; }
}

.backtest-workbench {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 348px);
  grid-template-areas: "main config";
  gap: 18px;
  align-items: start;
}
.backtest-main-lane {
  grid-area: main;
  min-width: 0;
}
.backtest-config-rail {
  grid-area: config;
  position: sticky;
  top: calc(var(--topbar-height) + var(--ticker-height) + var(--main-tabs-height) + 14px);
  max-height: calc(100vh - var(--topbar-height) - var(--ticker-height) - var(--main-tabs-height) - 72px);
  overflow-y: auto;
  padding-right: 2px;
}
.backtest-config-section {
  border: 1px solid rgba(0, 243, 255, 0.16);
  background: rgba(0, 12, 18, 0.22);
  margin-bottom: 10px;
}
.backtest-config-save-bar { position:sticky; top:0; z-index:2; padding:10px; margin-bottom:10px; background:#0c151d; border:1px solid rgba(0,243,255,.25); }
.backtest-config-save-bar button { width:100%; }
.backtest-config-save-bar p { margin:8px 0 0; font-size:.75rem; line-height:1.6; }
.backtest-config-section summary {
  cursor: pointer;
  padding: 10px 12px;
  color: var(--neon-cyan);
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0;
  list-style: none;
  border-bottom: 1px solid rgba(0, 243, 255, 0.12);
}
.backtest-config-section summary::-webkit-details-marker {
  display: none;
}
.backtest-config-section summary::after {
  content: "收起";
  float: right;
  color: var(--text-dim);
  font-size: 0.72rem;
  font-weight: 600;
}
.backtest-config-section:not([open]) summary {
  border-bottom: 0;
}
.backtest-config-section:not([open]) summary::after {
  content: "展开";
}
.backtest-config-section .cfg-grid {
  grid-template-columns: 1fr;
  gap: 8px;
  padding: 10px;
}
.backtest-config-section .cfg-item {
  min-width: 0;
}
.backtest-action-bar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 10px;
  align-items: stretch;
  margin: 0 0 14px 0;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(0, 243, 255, 0.14);
}
.backtest-action-bar .cyber-btn {
  min-height: 36px;
}
.backtest-primary-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  min-width: 0;
}
.backtest-primary-actions .cyber-btn {
  min-width: 118px;
}
.backtest-primary-actions #bt-run,
.backtest-primary-actions #bt-apply {
  border-color: var(--neon-cyan);
  color: var(--neon-cyan);
  font-weight: 800;
}
.backtest-data-actions {
  position: relative;
  min-width: 128px;
}
.backtest-data-actions summary {
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 8px 14px;
  border: 1px solid rgba(0, 243, 255, 0.32);
  color: var(--text-main);
  background: rgba(0, 12, 18, 0.28);
  cursor: pointer;
  font-size: 0.8rem;
  font-weight: 800;
  list-style: none;
}
.backtest-data-actions summary::-webkit-details-marker {
  display: none;
}
.backtest-data-actions summary::after {
  content: "展开";
  margin-left: 8px;
  color: var(--text-dim);
  font-size: 0.68rem;
  font-weight: 600;
}
.backtest-data-actions[open] summary::after {
  content: "收起";
}
.backtest-data-action-menu {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  z-index: 20;
  width: min(420px, calc(100vw - 40px));
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  padding: 10px;
  border: 1px solid rgba(0, 243, 255, 0.24);
  background: rgba(3, 7, 13, 0.98);
  box-shadow: 0 16px 32px rgba(0, 0, 0, 0.45);
}
.backtest-data-action-menu .cyber-btn {
  width: 100%;
}
.backtest-danger-action {
  border-color: var(--neon-red);
  color: var(--neon-red);
}
.backtest-job-progress {
  margin: 0 0 12px 0;
  padding: 12px;
  border: 1px solid rgba(0, 243, 255, 0.18);
  background: rgba(0, 12, 18, 0.3);
}
.backtest-job-progress-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}
.backtest-job-progress-head strong {
  display: block;
  color: var(--text-main);
  font-size: 0.86rem;
  line-height: 1.3;
}
.backtest-job-progress-head span {
  color: var(--text-dim);
  font-size: 0.76rem;
  line-height: 1.4;
}
#bt-job-percent {
  flex: 0 0 auto;
  color: var(--neon-cyan);
  font-weight: 800;
}
.backtest-job-progress-track {
  width: 100%;
  height: 8px;
  overflow: hidden;
  border: 1px solid rgba(0, 243, 255, 0.2);
  background: rgba(0, 0, 0, 0.35);
}
#bt-job-progress-fill {
  width: 0%;
  height: 100%;
  background: linear-gradient(90deg, var(--neon-cyan), #9dffcb);
  transition: width 0.25s ease;
}
.backtest-job-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 10px;
}
.backtest-job-actions .cyber-btn {
  min-width: 96px;
}
.backtest-stats-grid {
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)) !important;
  margin-bottom: 12px;
}
.backtest-stats-grid .stat-row {
  min-height: 74px;
  padding: 10px 12px;
  gap: 4px;
}
.backtest-stats-grid .stat-label {
  font-size: 0.72rem;
}
.backtest-stats-grid .stat-val {
  font-size: 0.82rem;
  line-height: 1.3;
  font-weight: 700;
  text-align: left;
}
.backtest-summary-grid {
  display: grid;
  grid-template-columns: minmax(260px, 1.45fr) repeat(3, minmax(190px, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}
.backtest-summary-card {
  min-width: 0;
  min-height: 112px;
  padding: 12px;
  border: 1px solid rgba(0, 243, 255, 0.14);
  background: rgba(0, 12, 18, 0.26);
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.backtest-summary-primary {
  border-left: 3px solid var(--neon-cyan);
}
.backtest-summary-title {
  color: var(--text-main);
  font-family: var(--font-mono), var(--font-cn-mono);
  font-size: 0.96rem;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  overflow-wrap: anywhere;
}
.backtest-summary-pairs {
  display: grid;
  gap: 6px;
  min-width: 0;
}
.backtest-summary-pairs div {
  display: grid;
  grid-template-columns: minmax(64px, 0.55fr) minmax(0, 1fr);
  gap: 8px;
  align-items: start;
  min-width: 0;
}
.backtest-summary-pairs span,
.backtest-summary-muted {
  color: var(--text-dim);
  font-size: 0.72rem;
  line-height: 1.35;
}
.backtest-summary-pairs strong {
  min-width: 0;
  color: var(--text-main);
  font-family: var(--font-mono), var(--font-cn-mono);
  font-size: 0.76rem;
  line-height: 1.35;
  text-align: right;
  overflow-wrap: anywhere;
}
.backtest-gate-status {
  color: var(--text-main);
  font-family: var(--font-mono), var(--font-cn-mono);
  font-size: 1.05rem;
  line-height: 1.25;
}
.backtest-gate-status.is-good {
  color: var(--neon-green);
}
.backtest-gate-status.is-bad {
  color: var(--neon-red);
}
.backtest-gate-status.is-warn {
  color: var(--neon-yellow);
}
.backtest-metric-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  min-width: 0;
}
.backtest-metric-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 24px;
  max-width: 100%;
  padding: 2px 7px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.03);
  color: var(--text-dim);
  font-size: 0.72rem;
  line-height: 1.35;
}
.backtest-metric-chip strong {
  min-width: 0;
  color: var(--text-main);
  font-family: var(--font-mono), var(--font-cn-mono);
  font-size: 0.74rem;
  overflow-wrap: anywhere;
}
.backtest-metric-chip.is-good strong,
.backtest-metric-chip .positive {
  color: var(--neon-green);
}
.backtest-metric-chip.is-warn strong {
  color: var(--neon-yellow);
}
.backtest-metric-chip.is-bad strong,
.backtest-metric-chip .negative {
  color: var(--neon-red);
}
.backtest-result-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(280px, 0.9fr);
  gap: 12px;
  margin-bottom: 12px;
}
.backtest-section {
  margin-top: 14px;
}
.backtest-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 8px;
}
.backtest-section-header .backtest-section-title {
  margin-bottom: 0;
}
.backtest-section-header .cyber-btn {
  padding: 5px 9px;
  font-size: 0.72rem;
  flex: 0 0 auto;
}
.backtest-section-title {
  color: var(--neon-cyan);
  font-size: 0.95rem;
  font-weight: 800;
  margin-bottom: 8px;
  padding-left: 10px;
  border-left: 4px solid var(--neon-cyan);
}
.backtest-candidate-list {
  max-height: 520px;
  overflow-y: auto;
  overflow-x: hidden;
  border: 1px dashed var(--border-color);
  padding: 10px;
}
#bt-data-file {
  font-size: 0.72rem;
}
#bt-llm-decision {
  line-height: 1.55;
}
.backtest-ai-card {
  margin: 0 0 12px 0;
  padding: 12px 14px;
  border: 1px solid rgba(0, 243, 255, 0.18);
  border-left: 3px solid var(--neon-cyan);
  border-radius: 6px;
  background: rgba(0, 12, 18, 0.32);
}
.backtest-ai-card-title {
  color: var(--neon-cyan);
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0;
  margin-bottom: 6px;
}
.backtest-ai-card-summary {
  color: var(--text-main);
  font-family: var(--font-mono), var(--font-cn-mono);
  font-size: 0.82rem;
  font-weight: 700;
  margin-bottom: 6px;
}
.backtest-ai-card-body {
  color: var(--text-dim);
  font-size: 0.78rem;
  line-height: 1.55;
  white-space: normal;
}
.backtest-diagnostics-card {
  min-width: 0;
}
.backtest-diagnostics-summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: start;
  cursor: pointer;
  list-style: none;
}
.backtest-diagnostics-summary::-webkit-details-marker {
  display: none;
}
.backtest-diagnostics-summary .backtest-ai-card-title {
  margin-bottom: 0;
}
.backtest-diagnostics-summary-text {
  color: var(--text-dim);
  font-size: 0.74rem;
  line-height: 1.35;
  text-align: right;
}
.backtest-diagnostics-summary-text.is-good {
  color: var(--neon-green);
}
.backtest-diagnostics-summary-text.is-warn {
  color: var(--neon-yellow);
}
.backtest-diagnostics-summary-text.is-bad {
  color: var(--neon-red);
}
.backtest-diagnostics-card:not([open]) #bt-diagnostics {
  display: none;
}
.backtest-diagnostics-card[open] .backtest-diagnostics-summary {
  margin-bottom: 8px;
}
.backtest-diagnostics-list {
  display: grid;
  gap: 5px;
}
.backtest-diagnostics-item {
  padding: 5px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}
.backtest-diagnostics-warn {
  color: var(--neon-yellow);
}
.backtest-diagnostics-ok {
  color: var(--neon-green);
}
.backtest-cost-line {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 6px;
}
.backtest-cost-line.compact {
  margin-top: 0;
}
.backtest-cost-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 24px;
  padding: 2px 7px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 4px;
  color: var(--text-dim);
  background: rgba(255, 255, 255, 0.03);
  font-size: 0.72rem;
  line-height: 1.35;
}
.backtest-cost-chip strong {
  color: var(--text-main);
  font-family: var(--font-mono), var(--font-cn-mono);
  font-size: 0.74rem;
}
.backtest-cost-chip.is-good strong {
  color: var(--neon-green);
}
.backtest-cost-chip.is-warn strong {
  color: var(--neon-yellow);
}
.backtest-cost-chip.is-bad strong {
  color: var(--neon-red);
}
.backtest-cost-chip.ok,
.backtest-cost-chip.ok strong {
  color: var(--neon-green);
}
.backtest-cost-chip.warn,
.backtest-cost-chip.warn strong {
  color: var(--neon-yellow);
}
.backtest-candidate-summary {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
  margin-bottom: 8px;
  color: var(--text-dim);
  font-size: 0.78rem;
}
.backtest-candidate-rows {
  display: grid;
  gap: 8px;
}
.backtest-candidate-row {
  min-width: 0;
  border: 1px solid rgba(0, 243, 255, 0.14);
  background: rgba(0, 12, 18, 0.2);
}
.backtest-candidate-row summary {
  display: grid;
  grid-template-columns: 44px minmax(180px, 1.2fr) minmax(360px, 1.7fr) auto;
  gap: 10px;
  align-items: center;
  padding: 10px;
  cursor: pointer;
  list-style: none;
}
.backtest-candidate-row summary::-webkit-details-marker {
  display: none;
}
.backtest-candidate-rank {
  color: var(--neon-cyan);
  font-family: var(--font-mono), var(--font-cn-mono);
  font-size: 0.9rem;
  font-weight: 800;
}
.backtest-candidate-title {
  min-width: 0;
  display: grid;
  gap: 4px;
}
.backtest-candidate-title strong {
  color: var(--text-main);
  font-family: var(--font-mono), var(--font-cn-mono);
  font-size: 0.84rem;
  line-height: 1.35;
  overflow-wrap: anywhere;
}
.backtest-candidate-title p {
  color: var(--text-dim);
  font-size: 0.72rem;
  line-height: 1.35;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.backtest-candidate-style {
  display: inline-flex;
  width: fit-content;
  min-height: 20px;
  align-items: center;
  padding: 1px 7px;
  border: 1px solid rgba(0, 243, 255, 0.26);
  color: var(--neon-cyan);
  font-size: 0.68rem;
  font-weight: 800;
}
.backtest-candidate-style.conservative {
  border-color: rgba(74, 222, 128, 0.45);
  color: var(--neon-green);
}
.backtest-candidate-style.aggressive {
  border-color: rgba(255, 92, 122, 0.5);
  color: var(--neon-red);
}
.backtest-candidate-metrics {
  display: grid;
  grid-template-columns: repeat(8, minmax(56px, 1fr));
  gap: 6px;
  min-width: 0;
}
.backtest-candidate-metric {
  min-width: 0;
  color: var(--text-dim);
  font-size: 0.68rem;
  line-height: 1.2;
}
.backtest-candidate-metric strong {
  display: block;
  margin-top: 3px;
  color: var(--text-main);
  font-family: var(--font-mono), var(--font-cn-mono);
  font-size: 0.76rem;
  overflow-wrap: anywhere;
}
.backtest-candidate-metric.is-good strong {
  color: var(--neon-green);
}
.backtest-candidate-metric.is-warn strong {
  color: var(--neon-yellow);
}
.backtest-candidate-metric.is-bad strong {
  color: var(--neon-red);
}
.backtest-candidate-detail {
  display: grid;
  gap: 7px;
  padding: 0 10px 10px 64px;
  color: var(--text-dim);
  font-size: 0.74rem;
  line-height: 1.45;
}
.backtest-candidate-samples {
  display: grid;
  gap: 4px;
  margin-top: 2px;
}
.backtest-candidate-samples summary {
  cursor: pointer;
  color: var(--neon-cyan);
  font-weight: 800;
  list-style: none;
}
.backtest-candidate-samples summary::-webkit-details-marker {
  display: none;
}
.backtest-candidate-samples summary::after {
  content: "展开";
  margin-left: 8px;
  color: var(--text-dim);
  font-size: 0.68rem;
}
.backtest-candidate-samples[open] summary::after {
  content: "收起";
}
.backtest-candidate-sample-row {
  display: grid;
  grid-template-columns: 1.2fr 0.7fr 1fr 0.85fr 0.9fr 0.9fr 1.2fr;
  gap: 6px;
  padding: 4px 0;
  border-top: 1px dashed rgba(255, 255, 255, 0.08);
  overflow-wrap: anywhere;
}
.backtest-candidate-actions {
  display: flex;
  justify-content: flex-end;
}
.backtest-candidate-actions .cyber-btn {
  padding: 5px 10px;
  font-size: 0.72rem;
}
.backtest-apply-preview-content {
  max-height: 480px;
  overflow-y: auto;
  overflow-x: hidden;
  border: 1px dashed var(--border-color);
  padding: 10px;
}
.backtest-apply-preview-modal {
  width: min(1080px, calc(100vw - 64px));
  max-width: none;
}
.backtest-preview-section {
  margin-bottom: 12px;
}
.backtest-preview-title {
  color: var(--neon-cyan);
  font-size: 0.82rem;
  font-weight: 800;
  margin-bottom: 8px;
}
.backtest-preview-row {
  display: grid;
  grid-template-columns: minmax(180px, 0.9fr) minmax(180px, 1fr) minmax(180px, 1fr);
  gap: 8px;
  padding: 7px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  font-size: 0.78rem;
}
.backtest-preview-row.header {
  color: var(--text-dim);
  font-weight: 700;
}
.backtest-preview-row.changed {
  color: var(--text-main);
}
.backtest-preview-cell {
  min-width: 0;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.backtest-preview-new {
  color: var(--neon-green);
}
.backtest-preview-old {
  color: var(--text-dim);
}
.backtest-preview-param {
  font-family: var(--font-mono), var(--font-cn-mono);
}
.backtest-history-list {
  max-height: 340px;
  overflow-y: auto;
  overflow-x: hidden;
  border: 1px dashed var(--border-color);
  padding: 10px;
}
.backtest-spec-list {
  max-height: 420px;
  overflow-y: auto;
  overflow-x: hidden;
  border: 1px dashed var(--border-color);
  padding: 10px;
}
.backtest-archive-header {
  flex-wrap: wrap;
}
.backtest-archive-tabs {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px;
  margin-left: auto;
  border: 1px solid rgba(0, 243, 255, 0.18);
  background: rgba(0, 0, 0, 0.24);
}
.backtest-archive-tabs button {
  min-height: 26px;
  border: 0;
  background: transparent;
  color: var(--text-dim);
  padding: 4px 9px;
  cursor: pointer;
  font-family: var(--font-ui), var(--font-cn-sans);
  font-size: 0.72rem;
  font-weight: 800;
}
.backtest-archive-tabs button.active,
.backtest-archive-tabs button:hover {
  background: rgba(0, 243, 255, 0.16);
  color: var(--neon-cyan);
}
.backtest-archive-pane {
  display: none;
}
.backtest-archive-pane.active {
  display: block;
}
.backtest-spec-compare-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 10px;
  margin-bottom: 10px;
}
.backtest-spec-compare-item {
  min-width: 0;
  border: 1px solid rgba(0, 243, 255, 0.14);
  background: rgba(0, 12, 18, 0.2);
  padding: 10px;
}
.backtest-spec-compare-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: start;
}
.backtest-spec-compare-score {
  color: var(--text-dim);
  font-family: var(--font-mono), var(--font-cn-mono);
  font-size: 0.9rem;
  font-weight: 800;
  white-space: nowrap;
}
.backtest-spec-compare-score.positive,
.backtest-spec-compare-grid .positive {
  color: var(--neon-green);
}
.backtest-spec-compare-score.negative,
.backtest-spec-compare-grid .negative {
  color: var(--neon-red);
}
.backtest-spec-compare-grid {
  display: grid;
  gap: 5px;
  margin-top: 8px;
  color: var(--text-main);
  font-size: 0.74rem;
  line-height: 1.45;
  overflow-wrap: anywhere;
}
.backtest-trend-panel {
  margin-bottom: 10px;
  border: 1px solid rgba(0, 243, 255, 0.12);
  background: rgba(0, 12, 18, 0.24);
  padding: 10px;
}
.backtest-trend-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 8px;
}
.backtest-trend-cell {
  min-height: 58px;
  padding: 8px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(0, 0, 0, 0.22);
}
.backtest-trend-label {
  color: var(--text-dim);
  font-size: 0.72rem;
  margin-bottom: 5px;
}
.backtest-trend-value {
  color: var(--text-main);
  font-family: var(--font-mono), var(--font-cn-mono);
  font-size: 0.9rem;
  font-weight: 800;
  overflow-wrap: anywhere;
}
.backtest-spec-attribution-section {
  margin-top: 12px;
}
.backtest-spec-attribution-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(180px, 1fr));
  gap: 10px;
  align-items: stretch;
}
.backtest-spec-attribution-card {
  min-width: 0;
  min-height: 112px;
  border: 1px solid rgba(0, 243, 255, 0.14);
  background: rgba(0, 12, 18, 0.22);
  padding: 10px;
}
.backtest-spec-attribution-title {
  color: var(--neon-cyan);
  font-size: 0.78rem;
  font-weight: 800;
  margin-bottom: 8px;
}
.backtest-spec-attribution-list {
  display: grid;
  gap: 6px;
}
.backtest-spec-attribution-row {
  display: grid;
  grid-template-columns: minmax(74px, 1fr) auto;
  gap: 8px;
  min-height: 22px;
  align-items: center;
  color: var(--text-main);
  font-family: var(--font-mono), var(--font-cn-mono);
  font-size: 0.74rem;
}
.backtest-spec-attribution-key {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.backtest-spec-attribution-value {
  color: var(--text-dim);
  text-align: right;
  white-space: nowrap;
}
.backtest-spec-attribution-value.positive {
  color: var(--neon-green);
}
.backtest-spec-attribution-value.negative {
  color: var(--neon-red);
}
.backtest-history-item {
  display: grid;
  grid-template-columns: minmax(150px, 1.1fr) minmax(180px, 1.6fr) minmax(260px, 2fr) auto;
  gap: 10px;
  align-items: center;
  padding: 9px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  font-size: 0.78rem;
}
.backtest-history-title {
  color: var(--neon-cyan);
  font-family: var(--font-mono), var(--font-cn-mono);
  font-weight: 800;
  overflow-wrap: anywhere;
}
.backtest-history-meta {
  color: var(--text-dim);
  line-height: 1.5;
}
.backtest-history-actions {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
  flex-wrap: wrap;
}
.backtest-history-actions .cyber-btn {
  padding: 5px 9px;
  font-size: 0.72rem;
}
.backtest-spec-chip {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 2px 7px;
  margin: 2px 5px 2px 0;
  border: 1px solid rgba(0, 243, 255, 0.2);
  color: var(--text-main);
  background: rgba(0, 243, 255, 0.06);
  font-family: var(--font-mono), var(--font-cn-mono);
  font-size: 0.72rem;
}
.agent-admin-shell {
  display: grid;
  grid-template-columns: minmax(320px, 0.9fr) minmax(0, 1.1fr);
  gap: 14px;
  align-items: start;
}
.agent-admin-create,
.agent-admin-overview {
  min-width: 0;
}
.agent-admin-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 10px;
}
.agent-token-created {
  margin-top: 10px;
  padding: 10px;
  border: 1px solid rgba(0, 243, 255, 0.22);
  background: rgba(0, 12, 18, 0.32);
}
.agent-token-created-title {
  color: var(--neon-yellow);
  font-size: 0.76rem;
  font-weight: 800;
  margin-bottom: 6px;
}
.agent-token-created code {
  display: block;
  color: var(--text-main);
  white-space: normal;
  overflow-wrap: anywhere;
  font-family: var(--font-mono), var(--font-cn-mono);
}
.agent-admin-list {
  max-height: 330px;
  overflow-y: auto;
  overflow-x: hidden;
  border: 1px dashed var(--border-color);
  padding: 8px 10px;
}
.agent-admin-filter-bar {
  display: grid;
  grid-template-columns: minmax(130px, 0.8fr) minmax(160px, 1fr) minmax(120px, 0.7fr) minmax(100px, 0.6fr) auto auto;
  gap: 8px;
  align-items: end;
  margin: 8px 0 10px;
}
.agent-admin-filter {
  min-width: 0;
}
.agent-admin-filter .cyber-input {
  width: 100%;
}
.agent-admin-row {
  display: grid;
  grid-template-columns: minmax(180px, 1.2fr) minmax(140px, 0.9fr) minmax(120px, 0.8fr) minmax(120px, 0.8fr) minmax(180px, 1.1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 9px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  font-size: 0.78rem;
}
.agent-admin-row-compact {
  grid-template-columns: minmax(240px, 1.4fr) minmax(130px, 0.7fr) minmax(180px, 1fr) minmax(220px, 1.2fr);
}
.agent-admin-title {
  color: var(--neon-cyan);
  font-family: var(--font-mono), var(--font-cn-mono);
  font-weight: 800;
  overflow-wrap: anywhere;
}
.agent-admin-meta {
  color: var(--text-dim);
  line-height: 1.5;
  overflow-wrap: anywhere;
}
.agent-job-status {
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  padding: 1px 7px;
  border: 1px solid rgba(0, 243, 255, 0.28);
  color: var(--neon-cyan);
  font-size: 0.72rem;
  font-weight: 800;
}
.agent-job-status.success {
  border-color: rgba(74, 222, 128, 0.45);
  color: var(--neon-green);
}
.agent-job-status.danger {
  border-color: rgba(255, 92, 122, 0.5);
  color: var(--neon-red);
}
.agent-job-status.queued {
  border-color: rgba(255, 214, 10, 0.45);
  color: var(--neon-yellow);
}
.agent-job-progress {
  min-width: 0;
}
.agent-job-progress-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  color: var(--text-main);
  font-family: var(--font-mono), var(--font-cn-mono);
  font-size: 0.74rem;
  font-weight: 800;
  overflow-wrap: anywhere;
}
.agent-job-progress-track {
  width: 100%;
  height: 6px;
  margin: 6px 0;
  border: 1px solid rgba(0, 243, 255, 0.18);
  background: rgba(255, 255, 255, 0.05);
}
.agent-job-progress-fill {
  height: 100%;
  background: var(--neon-cyan);
}
.agent-job-progress-fill.success {
  background: var(--neon-green);
}
.agent-job-progress-fill.danger {
  background: var(--neon-red);
}
.agent-job-progress-fill.queued {
  background: var(--neon-yellow);
}
@media (max-width: 1280px) {
  .backtest-workbench {
    grid-template-columns: minmax(0, 1fr) minmax(280px, 320px);
    gap: 14px;
  }
  .backtest-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .backtest-summary-primary {
    grid-column: auto;
  }
  .backtest-candidate-row summary {
    grid-template-columns: 40px minmax(160px, 1.1fr) minmax(300px, 1.4fr) auto;
  }
  .backtest-candidate-metrics {
    grid-template-columns: repeat(4, minmax(62px, 1fr));
  }
  .agent-admin-filter-bar {
    grid-template-columns: repeat(2, minmax(180px, 1fr));
  }
}
@media (max-width: 960px) {
  .backtest-workbench {
    grid-template-columns: 1fr;
    grid-template-areas:
      "main"
      "config";
  }
  .backtest-config-rail {
    position: static;
    max-height: none;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 10px;
    padding-right: 0;
  }
  .backtest-config-section {
    margin-bottom: 0;
  }
}
@media (max-width: 1040px) {
  .backtest-result-grid {
    grid-template-columns: 1fr;
  }
  .backtest-action-bar {
    grid-template-columns: minmax(0, 1fr) auto auto;
  }
  .backtest-danger-action {
    grid-column: auto;
    justify-self: stretch;
  }
  .backtest-candidate-row summary {
    grid-template-columns: 40px minmax(0, 1fr) auto;
  }
  .backtest-candidate-metrics {
    grid-column: 1 / -1;
    grid-template-columns: repeat(4, minmax(64px, 1fr));
  }
  .backtest-candidate-detail {
    padding-left: 10px;
  }
  .backtest-candidate-sample-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .agent-admin-shell {
    grid-template-columns: 1fr;
  }
  .agent-admin-row,
  .agent-admin-row-compact {
    grid-template-columns: 1fr;
    align-items: start;
  }
  .agent-admin-actions {
    justify-content: flex-start;
  }
}
@media (max-width: 960px) {
  .backtest-spec-attribution-grid {
    grid-template-columns: repeat(2, minmax(180px, 1fr));
  }
  .backtest-history-item {
    grid-template-columns: 1fr;
    align-items: start;
  }
  .backtest-history-actions {
    justify-content: flex-start;
  }
}
@media (max-width: 760px) {
  .backtest-action-bar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .backtest-primary-actions {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .backtest-primary-actions .cyber-btn {
    min-width: 0;
  }
  .backtest-action-bar {
    align-items: stretch;
  }
  .backtest-action-bar .cyber-btn {
    width: 100%;
  }
  .backtest-data-actions {
    min-width: 0;
  }
  .backtest-data-actions[open] {
    grid-column: 1 / -1;
  }
  .backtest-data-actions summary {
    padding-inline: 8px;
  }
  .backtest-data-action-menu {
    grid-column: 1 / -1;
    position: static;
    width: 100%;
    margin-top: 8px;
    grid-template-columns: 1fr;
  }
  .backtest-danger-action {
    justify-self: stretch;
  }
  .backtest-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }
  .backtest-summary-card {
    min-height: auto;
    padding: 10px;
    gap: 6px;
  }
  .backtest-summary-title {
    font-size: 0.8rem;
    -webkit-line-clamp: 1;
  }
  .backtest-summary-pairs {
    gap: 4px;
  }
  .backtest-summary-pairs div {
    grid-template-columns: 1fr;
    gap: 2px;
  }
  .backtest-summary-pairs strong {
    text-align: left;
    font-size: 0.72rem;
  }
  .backtest-gate-status {
    font-size: 0.88rem;
  }
  .backtest-metric-chip {
    min-height: 22px;
    padding-inline: 5px;
    font-size: 0.68rem;
  }
  .backtest-metric-chip strong {
    font-size: 0.7rem;
  }
  .backtest-summary-primary .backtest-metric-chip:nth-child(n+5),
  .backtest-summary-card:nth-child(2) .backtest-summary-pairs div:nth-child(n+3),
  .backtest-summary-card:nth-child(4) .backtest-summary-pairs div:nth-child(1),
  .backtest-summary-card:nth-child(4) .backtest-summary-pairs div:nth-child(n+3) {
    display: none;
  }
  .backtest-candidate-list {
    max-height: 430px;
  }
  .backtest-candidate-rows .backtest-candidate-row:nth-child(n+4) {
    display: none;
  }
  .backtest-candidate-row summary {
    grid-template-columns: 34px minmax(0, 1fr);
  }
  .backtest-candidate-actions {
    grid-column: 1 / -1;
  }
  .backtest-candidate-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .backtest-candidate-title p {
    white-space: normal;
  }
  .backtest-diagnostics-summary {
    grid-template-columns: 1fr;
  }
  .backtest-diagnostics-summary-text {
    text-align: left;
  }
  .backtest-archive-header {
    align-items: stretch;
  }
  .backtest-archive-tabs {
    order: 3;
    width: 100%;
    margin-left: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .backtest-archive-tabs button {
    width: 100%;
    padding-inline: 4px;
  }
  .backtest-config-rail {
    grid-template-columns: 1fr;
  }
  .backtest-spec-attribution-grid {
    grid-template-columns: 1fr;
  }
  .backtest-apply-preview-modal {
    width: calc(100vw - 24px);
  }
  .backtest-preview-row {
    grid-template-columns: 1fr;
    gap: 3px;
  }
  .backtest-preview-row.header {
    display: none;
  }
  .backtest-preview-cell:nth-child(2)::before {
    content: "当前值：";
    color: var(--text-dim);
  }
  .backtest-preview-cell:nth-child(3)::before {
    content: "应用后：";
    color: var(--text-dim);
  }
}

.forward-calibration-panel {
  margin: 8px 0 12px 0;
  border: 1px solid rgba(0, 243, 255, 0.18);
  background: rgba(0, 0, 0, 0.18);
}
.forward-calibration-toggle {
  width: 100%;
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 12px;
  align-items: center;
  padding: 10px 12px;
  border: 0;
  border-bottom: 1px solid rgba(0, 243, 255, 0.12);
  background: transparent;
  color: var(--neon-cyan);
  font-family: var(--font-ui), var(--font-cn-sans);
  text-align: left;
  cursor: pointer;
}
.forward-calibration-content {
  display: block;
  padding: 12px;
  font-size: 0.82rem;
}
.forward-calibration-panel.collapsed .forward-calibration-content {
  display: none;
}
.forward-calibration-panel.collapsed .forward-calibration-toggle {
  border-bottom: 0;
}
.forward-calibration-caret {
  color: var(--text-dim);
  font-family: var(--font-mono), var(--font-cn-mono);
}
.forward-calibration-title {
  font-family: var(--font-display), var(--font-cn-sans);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0;
}
.forward-subsection-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin: 12px 0 8px 0;
  padding-top: 10px;
  border-top: 1px solid rgba(0, 243, 255, 0.12);
}
.forward-subsection-title {
  color: var(--neon-cyan);
  font-family: var(--font-ui), var(--font-cn-sans);
  font-size: 0.82rem;
  font-weight: 700;
  line-height: 1.25;
}
.forward-stats-grid {
  margin-bottom: 10px;
  gap: 8px;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)) !important;
}
.scanner-attribution-controls {
  display: grid;
  grid-template-columns: 120px 150px auto;
  gap: 8px;
  align-items: center;
  margin-bottom: 10px;
}
.scanner-attribution-controls .cyber-input {
  width: 100%;
  min-width: 0;
  margin-bottom: 0;
}
.scanner-attribution-controls .cyber-btn {
  justify-self: start;
}
.scanner-funnel-controls {
  display: grid;
  grid-template-columns: minmax(110px, 0.8fr) minmax(130px, 0.9fr) minmax(140px, 1fr) minmax(126px, 0.8fr) auto;
  gap: 8px;
  align-items: center;
  margin-bottom: 10px;
}
.scanner-funnel-controls .cyber-input {
  width: 100%;
  min-width: 0;
  margin-bottom: 0;
}
.scanner-funnel-controls .cyber-btn {
  justify-self: start;
}
.scanner-funnel-stage-grid,
.scanner-funnel-mini-grid {
  grid-template-columns: repeat(auto-fit, minmax(118px, 1fr)) !important;
  gap: 8px;
  margin-bottom: 10px;
}
.scanner-funnel-stage-grid {
  grid-template-columns: repeat(auto-fit, minmax(124px, 1fr)) !important;
}
.scanner-stage-cell {
  min-height: 58px !important;
  padding: 9px 10px !important;
}
.scanner-stage-head {
  align-items: flex-start;
  display: flex;
  gap: 8px;
  justify-content: space-between;
  min-width: 0;
}
.scanner-stage-count {
  color: var(--text-main);
  flex: 0 0 auto;
  font-family: var(--font-mono), var(--font-cn-mono);
  font-size: 1.02rem;
  font-weight: 800;
  line-height: 1.1;
}
.scanner-stage-meta {
  align-items: baseline;
  color: var(--text-dim);
  display: flex;
  font-family: var(--font-mono), var(--font-cn-mono);
  gap: 6px;
  justify-content: flex-end;
  line-height: 1.15;
  min-height: 15px;
  white-space: nowrap;
}
.scanner-stage-rate {
  color: var(--neon-cyan);
  font-size: 0.76rem;
  font-weight: 800;
}
.scanner-stage-basis {
  font-size: 0.68rem;
}
.scanner-stage-meta.is-count-only {
  justify-content: flex-end;
}
.scanner-gate-summary-compact {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-bottom: 10px;
}
.scanner-gate-summary-group {
  background: rgba(0, 0, 0, 0.18);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 6px;
  min-width: 0;
  padding: 8px 10px;
}
.scanner-gate-summary-title {
  color: var(--neon-cyan);
  font-family: var(--font-ui), var(--font-cn-sans);
  font-size: 0.7rem;
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 6px;
}
.scanner-gate-list {
  display: grid;
  gap: 3px;
}
.scanner-gate-list .stat-row {
  align-items: center;
  background: transparent;
  border: 0;
  border-bottom: 1px dashed rgba(255, 255, 255, 0.06);
  border-radius: 0;
  display: grid;
  gap: 8px;
  grid-template-columns: minmax(0, 1fr) auto;
  min-height: 24px;
  padding: 2px 0 4px;
}
.scanner-gate-list .stat-row:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}
.scanner-gate-list .stat-label {
  font-size: 0.7rem;
  line-height: 1.2;
}
.scanner-gate-list .stat-val {
  font-size: 0.82rem;
  line-height: 1.1;
  text-align: right;
}
.scanner-gate-grid .stat-label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.scanner-gate-table-wrap {
  margin-bottom: 10px;
  max-height: 220px;
  overflow-x: auto;
}
.scanner-gate-table th,
.scanner-gate-table td {
  max-width: 180px;
}
.scanner-gate-text {
  display: inline-block;
  max-width: 170px;
  overflow: hidden;
  text-overflow: ellipsis;
  vertical-align: bottom;
  white-space: nowrap;
}
.scanner-review-panel {
  margin-top: 14px;
  border-top: 1px solid var(--border-color);
  padding-top: 12px;
}
.scanner-review-head {
  align-items: flex-start;
  gap: 10px;
  margin-top: 0;
}
.scanner-review-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
  margin-left: auto;
}
.scanner-review-table th,
.scanner-review-table td {
  max-width: 220px;
  vertical-align: middle;
}
.scanner-review-mini-btn {
  min-height: 28px;
  padding: 4px 8px;
  margin: 2px;
  white-space: nowrap;
}
.scanner-review-mini-btn.danger {
  border-color: var(--neon-red);
  color: var(--neon-red);
}
@media (max-width: 640px) {
  .scanner-attribution-controls {
    grid-template-columns: 1fr;
  }
  .scanner-attribution-controls .cyber-btn {
    justify-self: stretch;
  }
  .scanner-funnel-controls {
    grid-template-columns: 1fr;
  }
  .scanner-funnel-controls .cyber-btn {
    justify-self: stretch;
  }
  .scanner-gate-summary-compact {
    grid-template-columns: 1fr;
  }
  .scanner-review-head,
  .scanner-review-actions {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }
}
.forward-calibration-panel .stat-row {
  min-height: 62px;
  padding: 10px 12px;
  gap: 4px;
}
.forward-calibration-panel .stat-label {
  font-size: 0.72rem;
  line-height: 1.25;
}
.forward-calibration-panel .stat-val {
  font-size: 0.92rem;
  line-height: 1.25;
}
.forward-calibration-panel #scanner-forward-advice {
  font-size: 0.82rem;
  line-height: 1.25;
}
.forward-calibration-panel .scanner-stats-grid .stat-row:has(#scanner-forward-advice) {
  min-height: 62px;
}
.forward-calibration-panel .cyber-table {
  font-size: 0.72rem !important;
}
.forward-calibration-panel .cyber-table th,
.forward-calibration-panel .cyber-table td {
  padding: 8px 14px;
}
.forward-calibration-panel .cyber-btn {
  font-size: 0.72rem;
  padding: 6px 10px;
}
.forward-validation-toolbar {
  display: grid;
  grid-template-columns: minmax(180px, 1.2fr) repeat(3, minmax(130px, 0.7fr)) auto auto;
  gap: 8px;
  align-items: stretch;
  margin: 6px 0 10px 0;
}
.forward-validation-toolbar .cyber-input {
  font-size: 0.78rem;
  height: 38px;
  padding: 8px 10px;
  margin-bottom: 0;
}
.forward-validation-merge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 38px;
  padding: 0 10px;
  border: 1px solid rgba(0, 243, 255, 0.25);
  color: var(--text-dim);
  font-size: 0.76rem;
  white-space: nowrap;
}
.forward-validation-toolbar > .cyber-btn {
  height: 38px;
  align-self: stretch;
}
.forward-validation-pagination {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 10px;
  margin-top: 10px;
}
@media (max-width: 900px) {
  .forward-validation-toolbar {
    grid-template-columns: 1fr 1fr;
  }
  .forward-validation-pagination {
    justify-content: space-between;
  }
}
#scanner-s-signals { color: var(--neon-purple); }
#scanner-a-signals { color: var(--neon-green); }
#scanner-enabled-filters { color: var(--neon-yellow); }

/* =========================================
   FILTER CARD GRID
   ========================================= */
.filter-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 20px;
    padding: 5px;
}

.filter-card {
    background: rgba(8, 14, 28, 0.65);
    border: 1px solid rgba(0, 243, 255, 0.15);
    border-radius: 8px;
    padding: 16px;
    position: relative;
    overflow: hidden;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    backdrop-filter: blur(10px);
    display: flex;
    flex-direction: column;
    gap: 12px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
}

/* Hover Effect */
.filter-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.4), 
                0 0 15px rgba(0, 243, 255, 0.1);
    border-color: rgba(0, 243, 255, 0.4);
    background: rgba(12, 20, 35, 0.8);
    z-index: 1;
}

/* Active/Enabled State */
.filter-card.enabled {
    border-left: 4px solid var(--neon-green);
    background: linear-gradient(145deg, rgba(10, 255, 96, 0.03) 0%, rgba(8, 14, 28, 0.7) 100%);
}

.filter-card.enabled::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 60px;
    height: 60px;
    background: radial-gradient(circle at top right, rgba(10, 255, 96, 0.15), transparent 70%);
    pointer-events: none;
}

/* Disabled State */
.filter-card.disabled {
    border-left: 4px solid #444;
    opacity: 0.85;
    background: rgba(20, 20, 20, 0.5);
    filter: grayscale(0.8);
}

.filter-card.disabled:hover {
    filter: grayscale(0.5);
    opacity: 1;
}

/* Header Section */
.filter-card .card-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
    padding-bottom: 10px;
    margin-bottom: 4px;
}

.filter-card .card-header-info {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.filter-card .card-title-row {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.filter-card .card-title {
    font-family: var(--font-display);
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--text-main);
    letter-spacing: 0.5px;
    line-height: 1.2;
}

.filter-card .card-meta {
    font-family: var(--font-mono);
    font-size: 0.7rem;
    color: var(--text-dim);
    opacity: 0.8;
}

/* Tags */
.tag {
    font-size: 0.7rem;
    padding: 2px 8px;
    border-radius: 4px;
    font-weight: 600;
    letter-spacing: 0.5px;
}

.tag-enabled {
    background: rgba(10, 255, 96, 0.2);
    color: var(--neon-green);
    border: 1px solid rgba(10, 255, 96, 0.3);
    box-shadow: 0 0 8px rgba(10, 255, 96, 0.2);
}

.tag-disabled {
    background: rgba(100, 100, 100, 0.2);
    color: #aaa;
    border: 1px solid #555;
}

/* Stats & Info */
.filter-card .stat-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: rgba(0, 0, 0, 0.2);
    padding: 6px 10px;
    border-radius: 4px;
    border: 1px solid rgba(255, 255, 255, 0.03);
    font-size: 0.85rem;
}

.filter-card .stat-val.highlight {
    color: var(--neon-cyan);
    font-weight: 700;
    text-shadow: 0 0 5px rgba(0, 243, 255, 0.3);
}

/* Parameters Section */
.filter-card .card-body {
    background: rgba(0, 0, 0, 0.15);
    border-radius: 6px;
    padding: 10px;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.filter-card .section-label {
    font-size: 0.75rem;
    color: var(--text-dim);
    text-transform: uppercase;
    margin-bottom: 4px;
    border-bottom: 1px dashed rgba(255, 255, 255, 0.1);
    padding-bottom: 4px;
}

.filter-card .param-item {
    font-family: var(--font-mono);
    font-size: 0.75rem;
    color: #9fb8c1;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 2px 0;
}

.filter-card .param-item .val {
    color: var(--text-main);
    font-weight: 500;
    background: rgba(255, 255, 255, 0.05);
    padding: 1px 6px;
    border-radius: 3px;
}

/* Buttons */
.filter-card .btn-sm {
    padding: 4px 10px;
    font-size: 0.75rem;
    height: auto;
    line-height: 1.2;
}

.btn-danger {
    border-color: var(--neon-red);
    color: var(--neon-red);
}
.btn-danger:hover {
    background: var(--neon-red);
    color: #fff;
    box-shadow: 0 0 15px var(--neon-red);
}

.btn-success {
    border-color: var(--neon-green);
    color: var(--neon-green);
}
.btn-success:hover {
    background: var(--neon-green);
    color: #000;
    box-shadow: 0 0 15px var(--neon-green);
}
/* =========================================
   SIGNAL STREAM CARDS (RESPONSIVE)
   ========================================= */
/* 中文注释：信号流卡片容器在移动端提升可见高度，避免内容拥挤溢出 */
#scanner-signals-container {
  width: 100%;
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  align-items: start;
}
@media (min-width: 1500px) {
  #scanner-signals-container {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 1024px) {
  #scanner-signals-container { max-height: 65vh !important; }
}
@media (max-width: 768px) {
  #scanner-signals-container { max-height: calc(100vh - var(--topbar-height) - var(--ticker-height) - 140px) !important; }
}

/* 中文注释：统一信号卡片的基础外观，覆盖内联背景/间距以保证一致性与可读性 */
.signal-item {
  background: rgba(0, 0, 0, 0.25) !important;
  border-radius: 8px;
  padding: 12px 12px !important;
  margin-bottom: 0 !important;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.25), inset 0 0 0 1px rgba(255, 255, 255, 0.04);
}
.signal-item:hover {
  background: rgba(10, 10, 10, 0.35) !important;
  transform: translateY(-1px);
  transition: background 0.2s ease, transform 0.2s ease;
}

/* 中文注释：卡片头部行 — 符号与等级标签在左，时间戳在右；小屏自动换行 */
.signal-item > div:nth-child(1),
.signal-card-header {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  gap: 8px;
  margin-bottom: 8px !important;
  flex-wrap: wrap;
}
.signal-card-title { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; min-width: 0; }
.signal-card-time,
.signal-item > div:nth-child(1) .mono.text-dim { font-size: 0.75rem !important; margin-left: auto; }

/* 中文注释：卡片主体行 — 评分、触发过滤器文本与操作按钮；PC端横向，移动端纵向堆叠 */
.signal-item > div:nth-child(2),
.signal-card-body {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr);
  align-items: flex-start !important;
  gap: 12px;
  font-size: 0.85rem !important;
}
/* 中文注释：过滤器区域占满剩余空间，允许换行断词 */
.signal-filters-block { min-width: 0; word-break: break-word; overflow-wrap: anywhere; }
.signal-side-panel { min-width: 0; display: grid; gap: 8px; }
.signal-metrics { display:grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap:8px; }
.signal-outcome-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.signal-forward-reasons {
  font-size: 0.72rem !important;
  line-height: 1.45;
  word-break: break-word;
  overflow-wrap: anywhere;
}
/* 中文注释：操作按钮区域在PC端靠右；在移动端占满一行并右对齐 */
.signal-item > div:nth-child(2) > div:last-child,
.signal-action-block {
  display: flex;
  justify-content: stretch;
}
.signal-item button[data-action="manual-order"] {
  white-space: nowrap;
  width: 100%;
}

/* 中文注释：卡片尾部的明细行（每个过滤器的评分/原因），作为直接子元素统一样式 */
.signal-item > .mono.text-dim {
  font-size: 0.72rem !important;
  line-height: 1.5;
  margin-top: 6px;
  word-break: break-word;
  overflow-wrap: anywhere;
}
.signal-item > .mono.text-dim + .mono.text-dim { margin-top: 4px; }

/* 中文注释：标签与数值在卡片上下文内的微调（继承全局样式但更紧凑） */
.signal-item .stat-label { font-size: 0.75rem; color: var(--text-dim); }
.signal-item .stat-val { font-family: var(--font-mono); font-weight: 700; color: var(--text-main); }

.filters-stack { display: grid; grid-template-columns: 1fr; gap: 4px; margin-top: 4px; }
.filter-line { font-family: var(--font-mono); font-size: 0.74rem; color: var(--text-main); }
@media (max-width: 768px) {
  .filter-line { font-size: 0.72rem; }
}

/* 中文注释：移动端纵向堆叠，按钮占满整行，阅读体验更佳 */
@media (max-width: 1200px) {
  .signal-item > div:nth-child(2),
  .signal-card-body { grid-template-columns: minmax(0, 1fr); }
  .signal-action-block { width: 100%; justify-content: stretch; }
  .signal-item button[data-action="manual-order"] { width: 100%; }
}
@media (max-width: 768px) {
  .signal-item > div:nth-child(2) { gap: 8px; }
  .signal-item > div:nth-child(2) > div:last-child { width: 100%; }
  .signal-item button[data-action="manual-order"] { width: 100%; }
  .signal-metrics,
  .signal-outcome-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* 中文注释：超小屏优化，缩小内边距与字号避免拥挤 */
@media (max-width: 480px) {
  .signal-item { padding: 10px !important; }
  .signal-item > div:nth-child(1) .mono.text-dim { font-size: 0.7rem !important; }
  .signal-item > .mono.text-dim { font-size: 0.7rem !important; }
  .signal-metrics,
  .signal-outcome-grid { grid-template-columns: 1fr; }
}
/* 中文注释：头部评分胶囊（内联插入），与符号/等级同一行显示 */
.score-pill { display: inline-flex; align-items: center; gap: 6px; background: rgba(0, 243, 255, 0.08); border: 1px solid rgba(0, 243, 255, 0.25); color: var(--text-main); padding: 2px 8px; border-radius: 14px; margin-left: 10px; }
.score-pill .label { font-size: 0.7rem; color: var(--text-dim); }
.score-pill .val { font-family: var(--font-mono); font-weight: 700; }
#position-cycle-candidates-list td:last-child {
    min-width: 220px;
    max-width: 340px;
    white-space: normal;
    overflow-wrap: anywhere;
}

/* Strict forward observations: preserve readable spacing and contain wide group tables. */
#scanner-strict-forward-report { min-width: 0; padding: 12px 0; }
#scanner-strict-forward-report p { margin: 10px 0; line-height: 1.65; overflow-wrap: anywhere; }
#scanner-strict-forward-report label { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; }
#scanner-strict-forward-report select { max-width: 100%; padding: 5px 8px; background: var(--bg-panel-solid); color: var(--text-main); border: 1px solid var(--text-dim); }
#scanner-strict-forward-report table { min-width: 900px; }
#scanner-strict-forward-report details { margin: 12px 0; }
#scanner-strict-forward-report li { overflow-wrap: anywhere; margin: 4px 0 4px 18px; }

#scanner-strict-forward-report button { color: var(--neon-cyan); background: var(--bg-panel-solid); }
#scanner-strict-forward-report button:hover { color: var(--bg-deep); background: var(--neon-cyan); }

#ai-efficiency-report { padding: 16px; margin-bottom: 16px; min-width: 0; }
#ai-efficiency-report p { margin: 12px 0; line-height: 1.6; overflow-wrap: anywhere; }
#ai-efficiency-report .ai-efficiency-controls { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
#ai-efficiency-report label { display: inline-flex; align-items: center; gap: 6px; }
#ai-efficiency-report select { padding: 6px; max-width: 100%; background: var(--bg-panel-solid); color: var(--text-main); border: 1px solid var(--text-dim); }
#ai-efficiency-report small { display: block; font-size: 0.75rem; line-height: 1.5; color: var(--text-dim); white-space: normal; overflow-wrap: anywhere; }
#ai-efficiency-report .ai-efficiency-scroll { max-width: 100%; overflow-x: auto; margin: 12px 0; }
#ai-efficiency-report table { min-width: 1300px; table-layout: fixed; font-size: 0.82rem; line-height: 1.5; }
#ai-efficiency-report [aria-label^="调用间隔"] table { min-width: 900px; }
#ai-efficiency-report th, #ai-efficiency-report td { white-space: normal; overflow-wrap: anywhere; vertical-align: top; }
#ai-efficiency-report [aria-label^="用量分组"] th:nth-child(2) { width: 210px; }
#ai-efficiency-report h4 { margin-top: 24px; }

/* Config hierarchy and help work with mouse, keyboard and touch. */
.config-field-section { margin: 24px 0; }
.config-field-section > h4, .config-grid-heading { color: var(--text-main); font-size: .88rem; font-weight: 600; margin: 12px 0 4px; padding-top: 12px; border-top: 1px solid var(--border-color); }
.config-grid-heading { grid-column: 1 / -1; }
.config-help-trigger { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; align-self: flex-start; width: 22px; height: 22px; border: 1px solid var(--border-color); border-radius: 50%; color: var(--text-dim); cursor: help; font-size: 12px; line-height: 1; margin-left: 4px; }
.config-help-trigger:hover, .config-help-trigger:focus-visible { color: var(--neon-cyan); border-color: var(--neon-cyan); outline: 2px solid var(--neon-cyan); outline-offset: 2px; }
.config-help-description { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.config-help-popover { position: fixed; z-index: 30000; box-sizing: border-box; width: min(360px, calc(100vw - 16px)); max-height: min(300px, calc(100vh - 16px)); overflow-y: auto; padding: 12px 14px; border: 1px solid var(--border-color); border-radius: 6px; background: #101720; color: #e2e8f0; box-shadow: 0 8px 24px #0006; font-size: 13px; line-height: 1.65; overflow-wrap: anywhere; }
.config-help-popover[hidden] { display: none; }

#tab-config .tabs.config-nav-scroll { display: flex; flex-direction: row; flex-wrap: nowrap; gap: 6px; overflow-x: auto; overscroll-behavior-x: contain; padding-bottom: 8px; scrollbar-width: thin; }
.config-nav-scroll .tab-btn { flex: 0 0 auto; white-space: nowrap; }
.advanced-settings-section { margin-top: 24px; }
.advanced-settings-section > .cfg-group-note { text-align: left; margin: 8px 0 16px; }
.advanced-settings-section .cfg-item { min-width: 0; }
.advanced-setting-effect { display: block; color: var(--text-dim); font-size: 12px; overflow-wrap: anywhere; }
.advanced-save-status { color: var(--text-dim); }
.advanced-save-status.error { color: #ff7272; }
.config-field-section .stat-label { display: inline-flex; align-items: center; gap: 4px; }
@media (max-width: 600px) { .config-nav-scroll .tab-btn { font-size: 12px; padding: 6px 8px; } }

@media (max-width: 600px) { .config-sticky-toolbar { position: static; } }

.module-advanced-config { margin: 16px 0; padding: 12px; border: 1px solid var(--border-color); }
.module-advanced-config > summary { cursor: pointer; color: var(--neon-cyan); }
.embedded-config-section { margin-top: 20px; }

.config-maintenance-popover { max-height: min(50vh, 480px); overflow-y: auto; }
.advanced-settings-section .config-section-save { flex-wrap: wrap; }

/* First batch: verdict before training metrics; mobile config stays reachable. */
#tab-intelligent-backtest .backtest-experiment-verdict { padding: 18px 0 20px; border-bottom: 1px solid #334550; color: #dae6ee; font-family: Arial, "Microsoft YaHei", sans-serif; }
#tab-intelligent-backtest .backtest-experiment-verdict h3 { margin: 4px 0 10px; font-size: 22px; }
#tab-intelligent-backtest .backtest-experiment-verdict p { margin: 8px 0; font-size: 14px; line-height: 1.65; }
#tab-intelligent-backtest .backtest-experiment-verdict small { font-size: 13px; color: #aabcc8; overflow-wrap: anywhere; }
#tab-intelligent-backtest .backtest-experiment-verdict ul { margin: 10px 0; padding-left: 22px; font-size: 14px; line-height: 1.7; }
#tab-intelligent-backtest .backtest-experiment-verdict .is-bad { color: #f2b2b6; }
#tab-intelligent-backtest .backtest-experiment-verdict .is-good { color: #8addba; }
#tab-intelligent-backtest .backtest-context-actions { display:flex; align-items:center; gap:12px; flex-wrap:wrap; padding:14px 0; }
#tab-intelligent-backtest .backtest-context-actions button, #tab-intelligent-backtest .backtest-mobile-config { min-height:44px; }
#tab-intelligent-backtest :focus-visible { outline:2px solid #77e5de; outline-offset:3px; }
#tab-intelligent-backtest .backtest-mobile-config { display:none; }
#tab-intelligent-backtest .backtest-metric-chip.is-good strong { color:#d4e1e8; }
#tab-intelligent-backtest .backtest-validation-dates { font-size:13px; }
#tab-intelligent-backtest .backtest-comparability { padding:12px; border-left:3px solid #77e5de; font-size:14px; line-height:1.6; overflow-wrap:anywhere; }
@media(max-width:960px) {
  #tab-intelligent-backtest .backtest-workbench { grid-template-areas:"config" "main"; }
  #tab-intelligent-backtest .backtest-config-rail { display:none; max-height:none; }
  #tab-intelligent-backtest .backtest-workbench.backtest-config-open .backtest-config-rail { display:block; }
  #tab-intelligent-backtest .backtest-mobile-config { display:block; margin-bottom:12px; }
  #tab-intelligent-backtest .backtest-summary-primary .backtest-metric-chip:nth-child(5) { display:inline-flex; }
  #tab-intelligent-backtest .backtest-summary-grid { grid-template-columns:1fr; }
  #tab-intelligent-backtest .backtest-summary-card:not(.backtest-summary-primary) { display:none; }
}
