/**
 * VIP Chart Terminal - ChanLun system panel and overlay.
 */

.td-vip-chanlun-overlay {
    position: absolute;
    inset: 0;
    z-index: 12;
    pointer-events: none;
    overflow: hidden;
}
.td-vip-chanlun-overlay.is-hidden {
    display: none;
}

.td-vip-chanlun-overlay-svg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.td-vip-chanlun-zone {
    opacity: 0.13;
    stroke-opacity: 0.58;
    stroke-width: 1;
    stroke-dasharray: 4 3;
}

.td-vip-chanlun-zone.is-inside {
    opacity: 0.18;
}

.td-vip-chanlun-pen {
    stroke-linecap: round;
    stroke-linejoin: round;
    filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.22));
}

.td-vip-chanlun-segment {
    opacity: 0.45;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 8 5;
}

.td-vip-chanlun-fractal {
    opacity: 0.9;
    stroke: rgba(7, 12, 22, 0.72);
    stroke-width: 1;
}

.td-vip-chanlun-signal-label rect {
    opacity: 0.94;
    filter: drop-shadow(0 8px 14px rgba(0, 0, 0, 0.26));
}

.td-vip-chanlun-signal-label.is-invalidated {
    opacity: 0.48;
}

.td-vip-chanlun-signal-label.is-invalidated rect {
    stroke: rgba(255, 255, 255, 0.55);
    stroke-width: 1;
    stroke-dasharray: 4 3;
}

.td-vip-chanlun-signal-label text {
    fill: #fff;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0;
}

.td-vip-chanlun-zone-label rect {
    fill: rgba(15, 23, 42, 0.84);
    stroke: rgba(245, 158, 11, 0.62);
    stroke-width: 1;
    filter: drop-shadow(0 6px 12px rgba(0, 0, 0, 0.22));
}

.td-vip-chanlun-zone-label.is-stable rect {
    stroke: rgba(56, 189, 248, 0.72);
}

.td-vip-chanlun-zone-label.is-strong rect {
    stroke: rgba(16, 185, 129, 0.78);
}

.td-vip-chanlun-zone-label text {
    fill: #f8fafc;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0;
}

.td-vip-chanlun-overlay-summary {
    position: absolute;
    left: 16px;
    top: 46px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    max-width: min(420px, calc(100% - 32px));
    padding: 7px 10px;
    color: rgba(226, 232, 240, 0.9);
    background: rgba(8, 13, 24, 0.7);
    border: 1px solid rgba(148, 163, 184, 0.22);
    border-radius: 8px;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.24);
    backdrop-filter: blur(10px);
    font-size: 12px;
    line-height: 1;
}

@media screen and (max-width: 900px) {
    .td-vip-chanlun-overlay-summary {
        top: 14px;
    }
}

.td-vip-chanlun-overlay-summary span {
    color: rgba(148, 163, 184, 0.92);
    font-weight: 700;
}

.td-vip-chanlun-overlay-summary strong {
    color: #f8fafc;
    font-weight: 800;
}

.td-vip-chanlun-overlay-summary em {
    color: rgba(203, 213, 225, 0.78);
    font-style: normal;
}

.td-vip-indicator-list--chanlun {
    gap: 12px;
}

.td-vip-top-tool--chanlun {
    margin-left: 2px;
}

.td-vip-chanlun-popover {
    width: min(640px, calc(100vw - 36px));
}

.td-vip-chanlun-popover-body {
    min-height: 0;
    max-height: min(72vh, 680px);
    overflow: auto;
    padding-right: 2px;
}

.td-vip-chanlun-panel {
    min-width: 0;
}

.td-vip-chanlun-toggle .td-vip-chanlun-menu-icon svg {
    stroke-width: 1.8;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-card {
    border-color: #dbe7f4;
    border-radius: 12px;
    color: #0f172a;
    background:
        linear-gradient(180deg, #ffffff, #f8fbff);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.9),
        0 12px 28px rgba(15, 23, 42, 0.06);
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-card:hover {
    transform: none;
    border-color: #c7d8ec;
    background:
        linear-gradient(180deg, #ffffff, #f6faff);
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-card::before,
#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-card::after {
    display: none;
}

.td-vip-chanlun-card {
    border-color: rgba(148, 163, 184, 0.18);
    background:
        linear-gradient(180deg, rgba(15, 23, 42, 0.96), rgba(8, 13, 24, 0.98));
}

.td-vip-chanlun-card--hero {
    gap: 14px;
    padding: 14px;
}

.td-vip-chanlun-card--hero.is-bullish {
    border-color: rgba(34, 197, 94, 0.26);
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-card--hero.is-bullish {
    border-color: rgba(16, 185, 129, 0.38);
    box-shadow:
        inset 3px 0 0 #10b981,
        0 12px 28px rgba(15, 23, 42, 0.06);
}

.td-vip-chanlun-card--hero.is-bearish {
    border-color: rgba(244, 63, 94, 0.26);
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-card--hero.is-bearish {
    border-color: rgba(244, 63, 94, 0.34);
    box-shadow:
        inset 3px 0 0 #f43f5e,
        0 12px 28px rgba(15, 23, 42, 0.06);
}

.td-vip-chanlun-card--panel {
    padding: 12px;
}

.td-vip-chanlun-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.td-vip-chanlun-kicker {
    display: block;
    margin-bottom: 4px;
    color: rgba(125, 211, 252, 0.9);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-kicker {
    color: #2563eb;
    letter-spacing: 0.02em;
}

.td-vip-chanlun-head strong,
.td-vip-chanlun-lock-main strong {
    display: block;
    color: #f8fafc;
    font-size: 15px;
    font-weight: 850;
    letter-spacing: 0;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-head strong,
#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-lock-main strong {
    color: #0f172a;
}

.td-vip-chanlun-head p,
.td-vip-chanlun-lock-main p {
    margin: 5px 0 0;
    color: rgba(203, 213, 225, 0.78);
    font-size: 12px;
    line-height: 1.55;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-head p,
#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-lock-main p {
    color: #64748b;
}

.td-vip-chanlun-actions {
    display: inline-flex;
    flex-shrink: 0;
    gap: 8px;
}

.td-vip-chanlun-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.td-vip-chanlun-metrics span {
    min-width: 0;
    padding: 9px 8px;
    border: 1px solid rgba(148, 163, 184, 0.16);
    border-radius: 8px;
    background: rgba(15, 23, 42, 0.62);
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-metrics span {
    border-color: #dbe7f4;
    background:
        linear-gradient(180deg, #f8fbff, #eef6ff);
}

.td-vip-chanlun-metrics strong {
    display: block;
    color: #f8fafc;
    font-size: 15px;
    font-weight: 850;
    line-height: 1;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-metrics strong {
    color: #0f172a;
}

.td-vip-chanlun-metrics em {
    display: block;
    margin-top: 5px;
    color: rgba(148, 163, 184, 0.9);
    font-size: 11px;
    font-style: normal;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-metrics em {
    color: #64748b;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-indicator-toggle {
    min-height: 34px;
    border-color: #2962ff;
    color: #2962ff;
    background: #ffffff;
    box-shadow: none;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-indicator-toggle:hover,
#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-indicator-toggle:focus-visible {
    border-color: #1d4ed8;
    color: #1d4ed8;
    background: #f0f4ff;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-indicator-toggle.is-on {
    border-color: #2962ff;
    color: #ffffff;
    background: #2962ff;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-indicator-settings-trigger {
    min-width: 44px;
    min-height: 34px;
    border-color: #dbe7f4;
    color: #334155;
    background: #ffffff;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-indicator-settings-trigger:hover,
#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-indicator-settings-trigger:focus-visible {
    border-color: #b8cbe3;
    color: #0f172a;
    background: #f8fbff;
}

.td-vip-chanlun-tabs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
    padding: 4px;
    border: 1px solid rgba(148, 163, 184, 0.15);
    border-radius: 8px;
    background: rgba(2, 6, 23, 0.36);
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-tabs {
    border-color: #dbe7f4;
    background: #eef3f9;
}

.td-vip-chanlun-tab {
    min-height: 32px;
    border: 0;
    border-radius: 6px;
    color: rgba(203, 213, 225, 0.78);
    background: transparent;
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-tab {
    color: #64748b;
}

.td-vip-chanlun-tab:hover {
    color: #f8fafc;
    background: rgba(148, 163, 184, 0.1);
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-tab:hover {
    color: #0f172a;
    background: #ffffff;
}

.td-vip-chanlun-tab.is-active {
    color: #07111f;
    background: #e2e8f0;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-tab.is-active {
    color: #0f172a;
    background: #ffffff;
    box-shadow: 0 1px 4px rgba(15, 23, 42, 0.08);
}

.td-vip-chanlun-tab-panel {
    padding-top: 12px;
}

/*
 * 当前判断卡片紧凑化（panel-density v2）
 * - padding 12 -> 10 12（侧边略宽，上下减少）
 * - strong 字号 16 -> 15 / margin-top 5 -> 3
 * - p 字号 12 -> 11.5 / margin 6 -> 4
 */
.td-vip-chanlun-readout {
    padding: 10px 12px;
    border: 1px solid rgba(148, 163, 184, 0.17);
    border-radius: 8px;
    background: rgba(15, 23, 42, 0.52);
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-readout {
    border-color: #dbe7f4;
    background:
        linear-gradient(180deg, #f8fbff, #eef6ff);
}

.td-vip-chanlun-readout span,
.td-vip-chanlun-table span,
.td-vip-chanlun-field span {
    color: rgba(148, 163, 184, 0.9);
    font-size: 11px;
    font-weight: 800;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-readout span,
#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-table span,
#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-field span {
    color: #7c8da3;
}

.td-vip-chanlun-readout strong {
    display: block;
    margin-top: 3px;
    color: #f8fafc;
    font-size: 15px;
    font-weight: 850;
    line-height: 1.2;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-readout strong {
    color: #0f172a;
}

.td-vip-chanlun-readout strong.is-bullish {
    color: #86efac;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-readout strong.is-bullish {
    color: #059669;
}

.td-vip-chanlun-readout strong.is-bearish {
    color: #fda4af;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-readout strong.is-bearish {
    color: #e11d48;
}

.td-vip-chanlun-readout p {
    margin: 4px 0 0;
    color: rgba(203, 213, 225, 0.78);
    font-size: 11.5px;
    line-height: 1.45;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-readout p {
    color: #64748b;
}

/*
 * 缠论结构面板紧凑双列网格（2026-05 panel-density v2）
 * - 原 13 项单列 × 3-col 布局 → 双列 × 内部上下排版
 * - 高度 ~870px → ~430px（节省 ~50%），同样信息密度更高
 * - 项目内部："label 上 / 值居中 / em 描述下"
 * - em 多行描述自动 line-clamp(2)，鼠标 hover 通过 title 看完整内容
 */
.td-vip-chanlun-table {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
    margin-top: 10px;
}

.td-vip-chanlun-table div {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
    min-height: 0;
    padding: 7px 9px;
    border: 1px solid rgba(148, 163, 184, 0.14);
    border-radius: 7px;
    background: rgba(2, 6, 23, 0.28);
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-table div {
    border-color: #dbe7f4;
    background: #ffffff;
}

.td-vip-chanlun-table strong {
    color: #f8fafc;
    font-size: 12.5px;
    font-weight: 800;
    line-height: 1.25;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-table strong {
    color: #334155;
}

.td-vip-chanlun-table em {
    color: rgba(203, 213, 225, 0.68);
    font-size: 10.5px;
    font-style: normal;
    line-height: 1.32;
    /* 最多两行，超出 ellipsis；hover 时浏览器显示 title 完整文本 */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    word-break: break-word;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-table em {
    color: #94a3b8;
}

/* 项目内的 span（label）字号细化为 10.5px */
.td-vip-chanlun-table div > span {
    font-size: 10.5px;
    letter-spacing: 0.3px;
}

/* 窄屏退化为单列，避免双列下文本过挤 */
@media (max-width: 520px) {
    .td-vip-chanlun-table {
        grid-template-columns: 1fr;
    }
}

.td-vip-chanlun-layer-grid,
.td-vip-chanlun-param-grid,
.td-vip-chanlun-color-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.td-vip-chanlun-color-grid {
    margin-top: 10px;
}

.td-vip-chanlun-param-section {
    display: grid;
    gap: 10px;
    margin-bottom: 12px;
}

.td-vip-chanlun-param-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
}

.td-vip-chanlun-param-head strong {
    color: #e2e8f0;
    font-size: 13px;
    font-weight: 850;
}

.td-vip-chanlun-param-head span {
    color: rgba(148, 163, 184, 0.82);
    font-size: 11px;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-param-head strong {
    color: #0f172a;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-param-head span {
    color: #64748b;
}

.td-vip-chanlun-preset-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px;
}

.td-vip-chanlun-preset {
    display: grid;
    gap: 4px;
    min-width: 0;
    min-height: 58px;
    padding: 9px;
    border: 1px solid rgba(148, 163, 184, 0.18);
    border-radius: 8px;
    color: #dbeafe;
    background: rgba(15, 23, 42, 0.46);
    text-align: left;
    cursor: pointer;
}

.td-vip-chanlun-preset.is-active,
.td-vip-chanlun-preset:hover {
    border-color: rgba(56, 189, 248, 0.62);
    background: rgba(14, 116, 144, 0.22);
}

.td-vip-chanlun-preset strong {
    min-width: 0;
    overflow-wrap: anywhere;
    font-size: 12px;
    font-weight: 850;
}

.td-vip-chanlun-preset span {
    min-width: 0;
    overflow-wrap: anywhere;
    color: rgba(203, 213, 225, 0.78);
    font-size: 11px;
    line-height: 1.3;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-preset {
    border-color: #dbe7f4;
    color: #0f172a;
    background: #ffffff;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-preset.is-active,
#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-preset:hover {
    border-color: #38bdf8;
    background: #ecfeff;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-preset span {
    color: #64748b;
}

/* 信号解释紧凑化：padding 10 -> 8 10 / gap 6 -> 4 / margin-top 10 -> 8 */
.td-vip-chanlun-signal-reason {
    display: grid;
    gap: 4px;
    margin-top: 8px;
    padding: 8px 10px;
    border: 1px solid rgba(56, 189, 248, 0.18);
    border-radius: 8px;
    background: rgba(8, 47, 73, 0.28);
}

.td-vip-chanlun-signal-reason span {
    color: rgba(125, 211, 252, 0.92);
    font-size: 11px;
    font-weight: 850;
}

.td-vip-chanlun-signal-reason p {
    margin: 0;
    color: rgba(226, 232, 240, 0.88);
    font-size: 11.5px;
    line-height: 1.45;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-signal-reason {
    border-color: #bae6fd;
    background: #f0f9ff;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-signal-reason span {
    color: #0369a1;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-signal-reason p {
    color: #334155;
}

.td-vip-chanlun-toggle-row {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    align-items: center;
    gap: 9px;
    min-height: 46px;
    padding: 9px;
    border: 1px solid rgba(148, 163, 184, 0.14);
    border-radius: 8px;
    background: rgba(15, 23, 42, 0.42);
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-toggle-row,
#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-field {
    border-color: #dbe7f4;
    background: #ffffff;
}

.td-vip-chanlun-toggle-row input {
    width: 16px;
    height: 16px;
    accent-color: #38bdf8;
}

.td-vip-chanlun-toggle-row strong {
    display: block;
    color: #e2e8f0;
    font-size: 12px;
    font-weight: 850;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-toggle-row strong {
    color: #0f172a;
}

.td-vip-chanlun-toggle-row small {
    display: block;
    margin-top: 3px;
    color: rgba(148, 163, 184, 0.78);
    font-size: 11px;
    line-height: 1.35;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-toggle-row small {
    color: #64748b;
}

.td-vip-chanlun-field {
    display: grid;
    gap: 6px;
    min-width: 0;
    padding: 9px;
    border: 1px solid rgba(148, 163, 184, 0.14);
    border-radius: 8px;
    background: rgba(15, 23, 42, 0.42);
}

.td-vip-chanlun-field input,
.td-vip-chanlun-field select {
    width: 100%;
    min-width: 0;
    min-height: 32px;
    border: 1px solid rgba(148, 163, 184, 0.22);
    border-radius: 7px;
    color: #f8fafc;
    background: rgba(2, 6, 23, 0.5);
    font-size: 12px;
    font-weight: 700;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-field input,
#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-field select {
    border-color: #cbd8e8;
    color: #0f172a;
    background: #f8fbff;
}

.td-vip-chanlun-field input[type="color"] {
    padding: 3px;
}

.td-vip-chanlun-note {
    margin: 10px 0 0;
    color: rgba(203, 213, 225, 0.72);
    font-size: 12px;
    line-height: 1.55;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-note {
    color: #64748b;
}

.td-vip-chanlun-card--locked {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px;
    border-color: rgba(245, 158, 11, 0.3);
    background:
        linear-gradient(135deg, rgba(120, 53, 15, 0.32), rgba(8, 13, 24, 0.98));
}

.td-vip-chanlun-upgrade {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 0 12px;
    border-radius: 8px;
    color: #1f1303;
    background: #fbbf24;
    font-size: 12px;
    font-weight: 900;
    text-decoration: none;
}

/* TV-like standalone panel: light, compact, and restrained. */
#tdVipChanlunPopover.td-vip-chanlun-popover {
    width: min(620px, calc(100vw - 36px));
    padding: 10px;
    border-color: #e5e7eb;
    border-radius: 6px;
    background: #fbfbfc;
    box-shadow:
        0 1px 2px rgba(15, 23, 42, 0.06),
        0 16px 40px -20px rgba(15, 23, 42, 0.18);
}

#tdVipChanlunPopover .td-vip-chanlun-popover-body {
    max-height: min(62vh, 540px);
    padding-right: 0;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun {
    gap: 8px;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-card {
    gap: 10px;
    padding: 12px;
    border-color: #e2e8f0;
    border-radius: 6px;
    color: #0f172a;
    background: #ffffff;
    box-shadow: none;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-card:hover {
    transform: none;
    border-color: #cbd5e1;
    background: #ffffff;
    box-shadow: none;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-card--hero.is-bullish {
    border-color: #e2e8f0;
    box-shadow: none;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-card--hero.is-bearish {
    border-color: #e2e8f0;
    box-shadow: none;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-head {
    gap: 10px;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-kicker {
    margin-bottom: 3px;
    color: #2962ff;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-head strong,
#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-lock-main strong {
    color: #0f172a;
    font-size: 15px;
    font-weight: 650;
    line-height: 1.25;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-head p,
#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-lock-main p {
    margin-top: 4px;
    color: #64748b;
    font-size: 12px;
    line-height: 1.45;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-actions {
    gap: 6px;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-indicator-toggle,
#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-indicator-settings-trigger {
    width: auto;
    min-width: 64px;
    min-height: 30px;
    padding: 0 10px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
    box-shadow: none;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-indicator-toggle {
    justify-content: center;
    gap: 7px;
    border-color: #d6ddea;
    color: #2962ff;
    background: #ffffff;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-indicator-toggle::before {
    display: none;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-indicator-toggle::after {
    width: 6px;
    height: 6px;
    background: #94a3b8;
    box-shadow: none;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-indicator-toggle.is-on {
    border-color: #2962ff;
    color: #ffffff;
    background: #2962ff;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-indicator-toggle.is-on::after {
    background: #7dd3fc;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-indicator-toggle:hover,
#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-indicator-toggle:focus-visible,
#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-indicator-settings-trigger:hover,
#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-indicator-settings-trigger:focus-visible {
    transform: none;
    outline: none;
    box-shadow: none;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-indicator-settings-trigger {
    min-width: 50px;
    border-color: #d6ddea;
    color: #334155;
    background: #ffffff;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-metrics {
    gap: 7px;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-metrics span {
    padding: 8px 8px;
    border-color: #e2e8f0;
    border-radius: 6px;
    background: #f8fafc;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-metrics strong {
    color: #0f172a;
    font-size: 15px;
    font-weight: 650;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-metrics em {
    margin-top: 4px;
    color: #64748b;
    font-size: 11px;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-tabs {
    gap: 2px;
    padding: 3px;
    border-color: #e2e8f0;
    border-radius: 6px;
    background: #f1f5f9;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-tab {
    min-height: 30px;
    border-radius: 4px;
    color: #64748b;
    font-size: 12px;
    font-weight: 600;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-tab:hover {
    color: #0f172a;
    background: rgba(255, 255, 255, 0.72);
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-tab.is-active {
    color: #0f172a;
    background: #ffffff;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08);
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-tab-panel {
    padding-top: 10px;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-readout {
    padding: 11px;
    border-color: #e2e8f0;
    border-radius: 6px;
    background: #f8fafc;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-readout span,
#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-table span,
#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-field span {
    color: #64748b;
    font-size: 11px;
    font-weight: 600;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-readout strong {
    margin-top: 3px;
    color: #0f172a;
    font-size: 15px;
    font-weight: 650;
    line-height: 1.2;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-readout strong.is-bullish {
    color: #059669;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-readout strong.is-bearish {
    color: #dc2626;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-readout p {
    color: #64748b;
    line-height: 1.45;
}

/*
 * popover 模式 panel-density v2 适配（2026-05）
 * - 与主面板保持同样的双列紧凑布局
 * - 移除老的 3-col `grid-template-columns: 68px minmax(0,1fr) auto`
 *   (主样式已改 flex column)，这里只调字号、padding、color
 */
#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-table {
    gap: 6px;
    margin-top: 8px;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-table div {
    padding: 7px 9px;
    border-color: #e2e8f0;
    border-radius: 6px;
    background: #ffffff;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-table strong {
    color: #334155;
    font-size: 12.5px;
    font-weight: 650;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-table em {
    color: #94a3b8;
    font-size: 10.5px;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-toggle-row,
#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-field {
    border-color: #e2e8f0;
    border-radius: 6px;
    background: #ffffff;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-toggle-row {
    min-height: 42px;
    padding: 8px;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-toggle-row input {
    accent-color: #2962ff;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-toggle-row strong {
    color: #0f172a;
    font-size: 12px;
    font-weight: 650;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-toggle-row small {
    color: #64748b;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-field {
    padding: 8px;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-field input,
#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-field select {
    min-height: 30px;
    border-color: #d6ddea;
    border-radius: 4px;
    color: #0f172a;
    background: #ffffff;
    font-weight: 600;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-note {
    color: #64748b;
}

@media (max-width: 720px) {
    .td-vip-chanlun-head,
    .td-vip-chanlun-card--locked {
        flex-direction: column;
        align-items: stretch;
    }

    .td-vip-chanlun-actions {
        width: 100%;
    }

    .td-vip-chanlun-actions > * {
        flex: 1;
    }

    .td-vip-chanlun-metrics,
    .td-vip-chanlun-preset-grid,
    .td-vip-chanlun-layer-grid,
    .td-vip-chanlun-param-grid,
    .td-vip-chanlun-color-grid {
        grid-template-columns: 1fr;
    }

    .td-vip-chanlun-table div {
        grid-template-columns: 1fr;
        align-items: start;
    }

    .td-vip-chanlun-table em {
        white-space: normal;
    }
}

/* =============================================================
 * Layout rationalization (布局合理化)
 * =============================================================
 * 旧版「参数」标签页问题：
 *   • param-grid 固定 2 列 → 11 高级字段 = 6 行 ≈ 420px
 *   • 9 专家字段 = 5 行 ≈ 350px
 *   • parameterLevel 单字段也占 2 列网格 → 右半空白
 *   • 整页高度约 1085px，远超 popover 的 600px 视口，需大量滚动
 *
 * 优化目标：相同字段 / 功能 / 顺序，仅改栅格密度 + 收紧 field 控件：
 *   • param-grid → auto-fill minmax(170px, 1fr)（≈ 3 列）
 *   • field 内边距 8 → 6，input 高度 30 → 26，字号略减
 *   • parameterLevel 限制为单列 240px 宽，避免一半空白
 *   • section 头部加底分隔线 + 收紧 gap
 *   • layer-grid + color-grid 同步采用 auto-fill 提升宽屏密度
 * 字段总数 / 顺序 / 控件类型完全不变。
 * ============================================================= */

/* —— 参数网格切到 auto-fill：3 列宽屏 / 2 列窄屏 / 1 列移动端 —— */
.td-vip-chanlun-param-grid {
    grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
    gap: 6px;
}

/* parameterLevel 选择器单独占一列，宽度约束，避免半屏空白 */
.td-vip-chanlun-param-section .td-vip-chanlun-param-grid--level {
    grid-template-columns: minmax(180px, 240px);
    justify-content: start;
    gap: 0;
}

/* —— 字段控件收紧（label 在上 / input 在下，仅密度优化） —— */
.td-vip-chanlun-field {
    gap: 4px;
}

.td-vip-chanlun-field input,
.td-vip-chanlun-field select {
    min-height: 28px;
    padding: 4px 8px;
    font-size: 12px;
}

.td-vip-chanlun-field span {
    font-size: 10.5px;
    line-height: 1.15;
    letter-spacing: 0.01em;
}

/* popover 内进一步紧凑（覆盖 popover-specific 大尺寸） */
#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-field {
    padding: 6px 8px;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-field input,
#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-field select {
    min-height: 26px;
    padding: 3px 8px;
    font-size: 12px;
}

/* —— Section 间距与层级视觉 —— */
.td-vip-chanlun-param-section {
    gap: 6px;
    margin-bottom: 8px;
}

.td-vip-chanlun-param-head {
    padding: 0 0 4px;
    border-bottom: 1px solid rgba(148, 163, 184, 0.22);
}

.td-vip-chanlun-param-head strong {
    font-size: 12px;
}

.td-vip-chanlun-param-head span {
    font-size: 10.5px;
    letter-spacing: 0.01em;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-param-head {
    border-bottom-color: rgba(148, 163, 184, 0.32);
}

/* —— 专家段（红色调强提示）—— */
.td-vip-chanlun-param-section--expert .td-vip-chanlun-param-head {
    border-bottom-color: rgba(244, 114, 182, 0.35);
}

.td-vip-chanlun-param-section--expert .td-vip-chanlun-param-head strong::before {
    content: '⚠ ';
    color: rgba(244, 114, 182, 0.85);
    margin-right: 2px;
    font-size: 10px;
}

/* —— Note 段落收紧 —— */
.td-vip-chanlun-note {
    margin-top: 6px;
    padding: 8px 10px;
    border-radius: 8px;
    background: rgba(148, 163, 184, 0.08);
    font-size: 11px;
    line-height: 1.5;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-note {
    background: rgba(241, 245, 249, 0.7);
    border: 1px solid rgba(226, 232, 240, 0.7);
}

/* —— Preset grid：保留 5 列，但窄屏自动换行而非硬挤 —— */
.td-vip-chanlun-preset-grid {
    grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
    gap: 6px;
}

.td-vip-chanlun-preset {
    min-height: 50px;
    padding: 7px 9px;
    gap: 2px;
}

.td-vip-chanlun-preset strong {
    font-size: 11.5px;
}

.td-vip-chanlun-preset span {
    font-size: 10px;
    line-height: 1.25;
}

/* ——————————————————————————————————————————————————————
 * 图层 / 参数标签页 panel-density v3（2026-05-12）
 * - layer-grid minmax 170 → 130：让 popover (~290px) 也能 2 列
 * - toggle-row 更紧凑：min-height 36 → 32, padding 6 8 → 5 7
 * - small 文本 ellipsis 单行截断 + JS 端 title 看完整文本
 * - param-grid minmax 230 → 180：popover 也能 2 列
 * ——————————————————————————————————————————————————————
 */
.td-vip-chanlun-layer-grid {
    grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
    gap: 5px;
}

.td-vip-chanlun-param-grid {
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 6px;
}

.td-vip-chanlun-toggle-row {
    min-height: 32px;
    padding: 5px 7px;
    grid-template-columns: 14px minmax(0, 1fr);
    gap: 7px;
}

#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-toggle-row {
    min-height: 32px;
    padding: 5px 7px;
}

.td-vip-chanlun-toggle-row input {
    width: 14px;
    height: 14px;
}

.td-vip-chanlun-toggle-row strong {
    font-size: 11.5px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.td-vip-chanlun-toggle-row small {
    margin-top: 1px;
    font-size: 9.5px;
    line-height: 1.25;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* —— 颜色网格：宽屏 5-6 列 —— */
.td-vip-chanlun-color-grid {
    grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
    gap: 6px;
    margin-top: 6px;
}

.td-vip-chanlun-field--color input[type="color"] {
    min-height: 26px;
    height: 26px;
}

/* —— Tab panel 内边距收紧 —— */
#tdVipChanlunPopover .td-vip-indicator-list--chanlun .td-vip-chanlun-tab-panel {
    padding-top: 8px;
}

/* —— 移动端（< 720px）回退到旧的 1-2 列 —— */
@media (max-width: 720px) {
    .td-vip-chanlun-param-grid,
    .td-vip-chanlun-layer-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .td-vip-chanlun-param-section .td-vip-chanlun-param-grid--level {
        grid-template-columns: 1fr;
    }
    .td-vip-chanlun-color-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 480px) {
    .td-vip-chanlun-param-grid,
    .td-vip-chanlun-layer-grid,
    .td-vip-chanlun-color-grid {
        grid-template-columns: 1fr;
    }
}

