/* ============================================================
   股票池样式 (Stock Pool) — Phase 1+2 重构版
   ============================================================ */

/* 局部 CSS 变量兜底（避免未定义导致透明） */
:root {
    --color-text-1:   #00194C;   /* 主文本 - 深海军蓝 */
    --color-bg-1:     #FFFFFF;   /* 一级背景 - 纯白 */
    --color-bg-2:     #F4F6FA;   /* 二级背景 - 浅灰蓝 */
    --color-bg-3:     #EDF0F7;   /* 三级背景 - 次背景 */
}

.pool-container {
    padding: var(--space-5);
    max-width: 1480px;
    margin: 0 auto;
}

/* ── 顶部状态栏 ── */
.pool-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    margin-bottom: var(--space-4);
    flex-wrap: wrap;
}

.pool-topbar-left {
    display: flex;
    align-items: center;
    gap: var(--space-3);
}

.pool-topbar-title {
    font-size: 20px;
    font-weight: 700;
    color: var(--color-text-1);
}

.pool-date-input {
    padding: 6px 10px;
    border-radius: var(--radius-sm);
    border: 1px solid var(--color-border);
    background: var(--color-bg-2);
    color: var(--color-text-1);
    font-size: 14px;
    font-family: inherit;
}

.pool-date-hint {
    font-size: 12px;
    color: var(--color-text-3);
}

.pool-topbar-right {
    display: flex;
    align-items: center;
    gap: var(--space-3);
}

.pool-version-strip {
    font-size: 12px;
    color: var(--color-text-3);
    background: var(--color-bg-3);
    padding: 4px 10px;
    border-radius: var(--radius-sm);
}

/* ── 一级视图切换 ── */
.pool-view-tabs {
    display: flex;
    gap: 6px;
    margin-bottom: var(--space-4);
    border-bottom: 1px solid var(--color-border);
    padding-bottom: var(--space-2);
}

.pool-view-tab {
    min-width: 84px;
    height: 34px;
    border: 1px solid transparent;
    border-radius: 6px;
    background: transparent;
    color: var(--color-text-2);
    font-weight: 600;
    font-size: 14px;
    cursor: pointer;
    transition: all .15s;
}

.pool-view-tab:hover {
    background: var(--color-bg-3);
}

.pool-view-tab.active {
    color: #fff;
    background: var(--color-primary);
    border-color: var(--color-primary);
}

/* ── 主内容区 Grid ── */
.pool-main-grid {
    display: grid;
    grid-template-columns: 240px minmax(0, 1fr);
    gap: var(--space-4);
    align-items: start;
}

@media (max-width: 900px) {
    .pool-main-grid {
        grid-template-columns: 1fr;
    }
}

/* ── 左侧筛选面板 ── */
.pool-filter-panel {
    background: var(--color-bg-2);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: var(--space-4);
    position: sticky;
    top: var(--space-4);
}

.pool-filter-group {
    border-bottom: 1px solid var(--color-border);
    padding-bottom: var(--space-3);
    margin-bottom: var(--space-3);
}

.pool-filter-group:last-child {
    border-bottom: 0;
    margin-bottom: 0;
    padding-bottom: 0;
}

.pool-filter-group h4 {
    font-size: 14px;
    font-weight: 600;
    color: var(--color-text-1);
    margin-bottom: var(--space-2);
}

.pool-check-list {
    display: grid;
    gap: 8px;
    font-size: 13px;
    color: var(--color-text-2);
}

.pool-check-list label {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 24px;
    cursor: pointer;
}

.pool-check-list input[type="checkbox"] {
    width: 15px;
    height: 15px;
    accent-color: var(--color-primary);
}

.pool-select-full {
    width: 100%;
}

/* ── 右侧内容区 ── */
.pool-content-area {
    min-width: 0;
}

/* ── 市场视图 ── */
.pool-market-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: var(--space-3);
    margin-bottom: var(--space-5);
}

.pool-market-card {
    background: var(--color-bg-2);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: var(--space-4);
    cursor: pointer;
    transition: transform .15s, box-shadow .15s;
}

.pool-market-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
    border-color: var(--color-primary);
}

.pool-market-card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--space-3);
}

.pool-market-name {
    font-size: 15px;
    font-weight: 700;
    color: var(--color-text-1);
}

.pool-market-count {
    font-size: 12px;
    color: var(--color-text-3);
    background: var(--color-bg-3);
    padding: 2px 8px;
    border-radius: var(--radius-sm);
}

.pool-market-metrics {
    display: flex;
    gap: var(--space-3);
    margin-bottom: var(--space-2);
}

.pool-market-metrics div {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.pool-market-metrics b {
    font-size: 16px;
    font-weight: 700;
    color: var(--color-text-1);
    line-height: 1.2;
}

.pool-market-metrics .pool-metric-pct {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.pool-market-metrics .pool-metric-pct > span:first-child {
    line-height: 1.2;
}

.pool-market-metrics span:not([class*="pool-pct"]) {
    font-size: 11px;
    color: var(--color-text-3);
    margin-top: 2px;
}

.pool-market-amount {
    font-size: 12px;
    color: var(--color-text-2);
    margin-bottom: var(--space-2);
}

.pool-market-heat {
    height: 6px;
    border-radius: 999px;
    background: var(--color-bg-3);
    overflow: hidden;
}

.pool-market-heat-bar {
    height: 100%;
    border-radius: inherit;
    transition: width .3s;
}

/* ── 板块视图 ── */
.pool-sector-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--space-3);
    margin-bottom: var(--space-4);
    flex-wrap: wrap;
}

.pool-sector-search {
    flex: 1;
    min-width: 200px;
}

.pool-sector-search-input {
    width: 100%;
    height: 36px;
    padding: 0 12px;
    border-radius: var(--radius-sm);
    border: 1px solid var(--color-border);
    background: var(--color-bg-2);
    color: var(--color-text-1);
    font-size: 14px;
    font-family: inherit;
}

.pool-sector-type-tabs {
    display: flex;
    gap: 6px;
}

.pool-sector-type-tab {
    height: 34px;
    padding: 0 14px;
    border: 1px solid var(--color-border);
    border-radius: 6px;
    background: var(--color-bg-2);
    color: var(--color-text-2);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: all .15s;
}

.pool-sector-type-tab:hover {
    background: var(--color-bg-3);
}

.pool-sector-type-tab.active {
    color: #fff;
    background: var(--color-primary);
    border-color: var(--color-primary);
}

.pool-sector-sort-controls {
    display: flex;
    gap: 6px;
    align-items: center;
}

.pool-sector-select {
    height: 34px;
    padding: 0 10px;
    border: 1px solid var(--color-border);
    border-radius: 6px;
    background: var(--color-bg-2);
    color: var(--color-text-1);
    font-size: 13px;
    font-family: inherit;
}

.pool-sector-filter-toggle,
.pool-sector-filter-reset,
.pool-sector-filter-apply,
.pool-sector-filter-chip {
    height: 34px;
    padding: 0 12px;
    border: 1px solid var(--color-border);
    border-radius: 6px;
    background: var(--color-bg-2);
    color: var(--color-text-2);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}

.pool-sector-filter-toggle.active,
.pool-sector-filter-chip.active,
.pool-sector-filter-apply {
    color: #fff;
    background: var(--color-primary);
    border-color: var(--color-primary);
}

.pool-sector-filter-panel {
    margin: -4px 0 var(--space-4);
    padding: var(--space-3);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-bg-2);
}

.pool-sector-filter-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: var(--space-3);
}

.pool-sector-filter-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: var(--space-2);
}

.pool-sector-filter-grid label {
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-size: 12px;
    color: var(--color-text-3);
}

.pool-sector-filter-grid input {
    height: 32px;
    padding: 0 9px;
    border: 1px solid var(--color-border);
    border-radius: 6px;
    background: var(--color-bg-1);
    color: var(--color-text-1);
    font-size: 13px;
    font-family: inherit;
}

.pool-sector-filter-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: var(--space-3);
}

.pool-sector-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: var(--space-3);
    margin-bottom: var(--space-5);
}

.pool-sector-card {
    background: var(--color-bg-2);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: var(--space-4);
    cursor: pointer;
    transition: transform .15s, box-shadow .15s;
}

.pool-sector-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
    border-color: var(--color-primary);
}

.pool-sector-card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--space-3);
}

.pool-sector-name {
    font-size: 15px;
    font-weight: 700;
    color: var(--color-text-1);
}

.pool-sector-type-tag {
    font-size: 11px;
    color: var(--color-text-3);
    background: var(--color-bg-3);
    padding: 2px 8px;
    border-radius: var(--radius-sm);
}

.pool-sector-metrics {
    display: flex;
    gap: var(--space-3);
    margin-bottom: var(--space-2);
}

.pool-sector-metrics div {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.pool-sector-metrics b {
    font-size: 16px;
    font-weight: 700;
    color: var(--color-text-1);
    line-height: 1.2;
}

.pool-sector-metrics span {
    font-size: 11px;
    color: var(--color-text-3);
    margin-top: 2px;
}

.pool-sector-extra {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-3);
    margin-bottom: var(--space-2);
    font-size: 13px;
}

.pool-sector-extra div {
    display: flex;
    flex-direction: column;
}

.pool-sector-extra span:not([class*="pool-pct"]) {
    font-size: 11px;
    color: var(--color-text-3);
    margin-top: 2px;
}

.pool-sector-dim {
    font-size: 12px;
    color: var(--color-text-2);
    background: var(--color-bg-3);
    padding: 4px 10px;
    border-radius: var(--radius-sm);
    display: inline-block;
}

/* ── 聚类卡片样式（v1.2） ── */
.pool-sector-card[data-sector-type="cluster"] .pool-sector-type-tag {
    background: #8b5cf6;
    color: #fff;
}

.pool-sector-card .cluster-member-hint {
    font-size: 11px;
    color: var(--color-text-3);
    margin-top: 4px;
}

/* 抽屉成员标签云 */
.pool-drawer-members {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 10px 0;
    padding: 10px;
    background: var(--color-bg-3);
    border-radius: var(--radius-sm);
}

.pool-drawer-members .member-tag {
    font-size: 12px;
    color: var(--color-text-2);
    background: var(--color-bg-2);
    border: 1px solid var(--color-border);
    padding: 3px 8px;
    border-radius: var(--radius-sm);
    cursor: default;
}

/* 聚类并集股票表格 */
.pool-cluster-stock-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
    margin-top: 10px;
}

.pool-cluster-stock-table th,
.pool-cluster-stock-table td {
    padding: 8px 10px;
    text-align: left;
    border-bottom: 1px solid var(--color-border);
}

.pool-cluster-stock-table th {
    font-weight: 600;
    color: var(--color-text-2);
    background: var(--color-bg-3);
}

/* ── 市场标签（表格中） ── */
.pool-market-tag {
    display: inline-block;
    font-size: 11px;
    font-weight: 600;
    color: var(--color-text-2);
    background: var(--color-bg-3);
    padding: 2px 8px;
    border-radius: var(--radius-sm);
    white-space: nowrap;
}

/* ── 统计栏 ── */
.pool-stats-bar {
    display: flex;
    gap: var(--space-4);
    margin-bottom: var(--space-5);
    flex-wrap: wrap;
}

.pool-stat-card {
    background: var(--color-bg-2);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: var(--space-4) var(--space-5);
    min-width: 120px;
    text-align: center;
    flex: 1;
}

.pool-stat-val {
    font-size: 24px;
    font-weight: 700;
    color: var(--color-text-1);
    line-height: 1.2;
}

.pool-stat-label {
    font-size: 12px;
    color: var(--color-text-3);
    margin-top: 4px;
}

/* ── Top-N ── */
.pool-top-n-wrap {
    margin-bottom: var(--space-5);
}

.pool-section-title {
    font-size: 16px;
    font-weight: 600;
    color: var(--color-text-1);
    margin-bottom: var(--space-3);
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.pool-badge {
    font-size: 11px;
    font-weight: 500;
    color: var(--color-text-3);
    background: var(--color-bg-3);
    padding: 2px 8px;
    border-radius: var(--radius-sm);
}

.pool-top-n {
    display: flex;
    gap: var(--space-3);
    overflow-x: auto;
    padding-bottom: var(--space-2);
}

.pool-top-card {
    background: var(--color-bg-2);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: var(--space-3);
    min-width: 160px;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    cursor: pointer;
    transition: transform .15s, box-shadow .15s;
}

.pool-top-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}

.pool-top-rank {
    font-size: 12px;
    font-weight: 700;
    color: var(--color-primary);
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-bg-3);
    border-radius: 50%;
}

.pool-top-name {
    font-size: 14px;
    font-weight: 600;
    color: var(--color-text-1);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.pool-top-code {
    font-size: 11px;
    color: var(--color-text-3);
}

.pool-top-alpha {
    font-size: 18px;
    font-weight: 700;
}

.pool-top-spark {
    width: 120px;
    height: 40px;
}

/* ── 工具栏 ── */
.pool-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--space-3);
    flex-wrap: wrap;
    gap: var(--space-2);
}

.pool-toolbar-left {
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.pool-toolbar-left label {
    font-size: 13px;
    color: var(--color-text-2);
}

.pool-search-input {
    padding: 4px 10px;
    border-radius: var(--radius-sm);
    border: 1px solid var(--color-border);
    background: var(--color-bg-2);
    color: var(--color-text-1);
    font-size: 13px;
    width: 140px;
    outline: none;
}
.pool-search-input:focus {
    border-color: var(--color-primary);
}

/* 涨跌幅颜色 */
.pool-pct-up {
    display: inline-block;
    padding: 1px 6px;
    border-radius: 3px;
    background: rgba(220, 38, 38, 0.12);
    color: #b91c1c;
    font-size: 12px;
    font-weight: 600;
}
.pool-pct-down {
    display: inline-block;
    padding: 1px 6px;
    border-radius: 3px;
    background: rgba(22, 163, 74, 0.12);
    color: #15803d;
    font-size: 12px;
    font-weight: 600;
}
.pool-pct-zero {
    display: inline-block;
    padding: 1px 6px;
    border-radius: 3px;
    background: rgba(100, 116, 139, 0.12);
    color: #475569;
    font-size: 12px;
    font-weight: 600;
}

.pool-select {
    padding: 4px 8px;
    border-radius: var(--radius-sm);
    border: 1px solid var(--color-border);
    background: var(--color-bg-2);
    color: var(--color-text-1);
    font-size: 13px;
}

.pool-date-label {
    font-size: 12px;
    color: var(--color-text-3);
    margin-right: var(--space-2);
}

/* ── 表格 ── */
.pool-table-wrap {
    background: var(--color-bg-2);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    overflow: hidden;
    margin-bottom: var(--space-3);
    overflow-x: auto;
}

.pool-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
    min-width: 1100px;
}

.pool-table thead {
    background: var(--color-bg-3);
    position: sticky;
    top: 0;
    z-index: 1;
}

.pool-table th {
    padding: 10px 8px;
    text-align: right;
    font-weight: 600;
    color: var(--color-text-2);
    font-size: 12px;
    white-space: nowrap;
}

.pool-table th:first-child,
.pool-table th:nth-child(2),
.pool-table th:nth-child(3),
.pool-table th:nth-child(8),
.pool-table th:nth-child(9) {
    text-align: left;
}

.pool-table td {
    padding: 8px;
    border-top: 1px solid var(--color-border);
    color: var(--color-text-1);
    text-align: right;
    white-space: nowrap;
}

.pool-table td:first-child,
.pool-table td:nth-child(2),
.pool-table td:nth-child(3),
.pool-table td:nth-child(8),
.pool-table td:nth-child(9) {
    text-align: left;
}

.pool-table tbody tr:hover {
    background: var(--color-bg-3);
}

.pool-rank {
    font-weight: 700;
    color: var(--color-primary);
}

.pool-code {
    font-family: 'Barlow Semi Condensed', monospace;
    font-size: 12px;
    color: var(--color-text-2);
}

.pool-name {
    font-weight: 500;
}

.pool-alpha {
    font-weight: 700;
}

.pool-spark-mini {
    width: 100px;
    height: 32px;
}

.pool-empty,
.pool-error {
    text-align: center;
    padding: var(--space-6);
    color: var(--color-text-3);
    font-size: 14px;
}

.pool-error {
    color: #ef4444;
}

/* ── 分页 ── */
.pool-pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-2) 0;
}

.pool-page-btn {
    padding: 6px 14px;
    border-radius: var(--radius-sm);
    border: 1px solid var(--color-border);
    background: var(--color-bg-2);
    color: var(--color-text-1);
    font-size: 13px;
    cursor: pointer;
}

.pool-page-btn:hover {
    background: var(--color-bg-3);
}

.pool-page-info {
    font-size: 13px;
    color: var(--color-text-2);
}

/* ── 板块卡片操作按钮 ── */
.pool-sector-actions {
    margin-top: var(--space-3);
    display: flex;
    justify-content: flex-end;
}

.pool-sector-view-btn {
    padding: 4px 10px;
    border-radius: var(--radius-sm);
    border: 1px solid var(--color-primary);
    background: transparent;
    color: var(--color-primary);
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    transition: all .15s;
}

.pool-sector-view-btn:hover {
    background: var(--color-primary);
    color: #fff;
}

/* ── 抽屉（Phase 3）── */
.pool-drawer-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.45);
    z-index: 1100;
    opacity: 0;
    pointer-events: none;
    transition: opacity .25s;
}

.pool-drawer-overlay.active,
.pool-drawer-overlay.show {
    opacity: 1;
    pointer-events: auto;
}

.pool-drawer {
    position: fixed;
    right: 0;
    top: 0;
    bottom: 0;
    width: 520px;
    max-width: 92vw;
    background: var(--color-bg-1);
    border-left: 1px solid var(--color-border);
    box-shadow: -4px 0 24px rgba(0,0,0,0.12);
    z-index: 1101;
    transform: translateX(100%);
    transition: transform .3s cubic-bezier(.4,0,.2,1);
    display: flex;
    flex-direction: column;
}

.pool-drawer.open {
    transform: translateX(0);
}

.pool-drawer.open + .pool-drawer-overlay,
.pool-drawer-overlay:has(+ .pool-drawer.open) {
    opacity: 1;
    pointer-events: auto;
}

/* JS 手动控制 overlay 显示 */
.pool-drawer-overlay.show {
    opacity: 1;
    pointer-events: auto;
}

.pool-drawer-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--space-4) var(--space-5);
    border-bottom: 1px solid var(--color-border);
    flex-shrink: 0;
    min-height: 48px;
    box-sizing: border-box;
    position: relative;
    z-index: 2;
    background: var(--color-bg-1);
}

.pool-drawer-header h3 {
    font-size: 16px;
    font-weight: 700;
    color: var(--color-text-1);
    margin: 0;
}

.pool-drawer-close {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 1.5px solid var(--color-border);
    background: var(--color-bg-2);
    color: var(--color-text-2);
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all .15s ease;
    box-shadow: 0 1px 4px rgba(0,0,0,0.08);
}

.pool-drawer-close:hover {
    background: var(--color-primary-2);
    border-color: var(--color-primary-2);
    color: #fff;
    transform: scale(1.08);
}

/* 夜间模式：关闭按钮需高对比度可见 */
[data-theme="night"] .pool-drawer-header {
    background: rgba(255,255,255,0.06);
    border-bottom-color: rgba(2, 235, 253, 0.35);
}

[data-theme="night"] .pool-drawer-header h3 {
    color: #EAEAEC;
    text-shadow: 0 0 6px rgba(2, 235, 253, 0.15);
}

[data-theme="night"] .pool-drawer-close {
    background: rgba(255,255,255,0.10);
    border-color: rgba(2, 235, 253, 0.45);
    color: #EAEAEC;
    box-shadow: 0 0 10px rgba(2, 235, 253, 0.25);
    font-size: 24px;
    width: 36px;
    height: 36px;
}

[data-theme="night"] .pool-drawer-close:hover {
    background: var(--color-primary-2);
    border-color: var(--color-primary-2);
    color: #0C0C0D;
    box-shadow: 0 0 16px rgba(2, 235, 253, 0.45);
}

.pool-drawer-body {
    flex: 1;
    padding: var(--space-4) var(--space-5);
    overflow-y: auto;
}

.pool-drawer-chart {
    width: 100%;
    height: 320px;
    margin-bottom: var(--space-4);
    position: relative;
    z-index: 1;
}

.pool-drawer-actions {
    display: flex;
    justify-content: flex-end;
}

/* ── 自选股操作按钮 ── */
.pool-drawer-wide {
    width: min(860px, 92vw);
}

.pool-row-actions {
    display: flex;
    gap: 6px;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: nowrap;
}

.pool-factor-btn {
    padding: 3px 8px;
    border-radius: var(--radius-sm);
    border: 1px solid var(--color-primary);
    background: rgba(59, 130, 246, 0.08);
    color: var(--color-primary);
    font-size: 12px;
    cursor: pointer;
    transition: all .15s;
}

.pool-factor-btn:hover {
    background: var(--color-primary);
    color: #fff;
}

.pool-factor-meta {
    margin-top: 4px;
    font-size: 12px;
    color: var(--color-text-3);
    font-weight: 400;
}

.pool-factor-section {
    margin-bottom: var(--space-5);
}

.pool-factor-section h4 {
    margin: 0 0 8px;
    font-size: 14px;
    color: var(--color-text-1);
}

.pool-factor-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
}

.pool-factor-table th,
.pool-factor-table td {
    padding: 8px 10px;
    border-bottom: 1px solid var(--color-border);
    text-align: left;
    vertical-align: middle;
}

.pool-factor-table th {
    color: var(--color-text-3);
    font-weight: 600;
    background: var(--color-bg-2);
}

.pool-factor-name {
    color: var(--color-text-1);
    font-weight: 600;
}

.pool-factor-key {
    margin-top: 2px;
    color: var(--color-text-3);
    font-family: var(--font-mono, monospace);
    font-size: 11px;
}

.pool-factor-value {
    font-family: var(--font-mono, monospace);
    color: var(--color-text-1);
}

.pool-factor-ok,
.pool-factor-status {
    display: inline-block;
    padding: 2px 6px;
    border-radius: var(--radius-sm);
    font-size: 11px;
}

.pool-factor-ok {
    color: #047857;
    background: rgba(16, 185, 129, .12);
}

.pool-factor-status {
    color: #92400e;
    background: rgba(245, 158, 11, .14);
}

.pool-watchlist-add,
.pool-watchlist-remove {
    padding: 3px 8px;
    border-radius: var(--radius-sm);
    border: 1px solid var(--color-border);
    background: var(--color-bg-2);
    color: var(--color-text-2);
    font-size: 12px;
    cursor: pointer;
    transition: all .15s;
}

.pool-watchlist-add:hover {
    background: var(--color-primary);
    color: #fff;
    border-color: var(--color-primary);
}

.pool-watchlist-remove:hover {
    background: #ef4444;
    color: #fff;
    border-color: #ef4444;
}

/* ── 当前过滤标签 ── */
.pool-active-filter {
    font-size: 13px;
    color: var(--color-text-2);
    margin-right: var(--space-3);
}

.pool-active-filter strong {
    color: var(--color-primary);
}

.pool-clear-filter {
    padding: 2px 8px;
    border-radius: var(--radius-sm);
    border: 1px solid var(--color-border);
    background: var(--color-bg-2);
    color: var(--color-text-2);
    font-size: 12px;
    cursor: pointer;
    margin-left: 6px;
}

.pool-clear-filter:hover {
    background: #ef4444;
    color: #fff;
    border-color: #ef4444;
}
/* ── 权重配置抽屉（Phase 1 Preview）── */
.pool-weight-presets {
    display: flex;
    gap: 8px;
    margin-bottom: var(--space-4);
    flex-wrap: wrap;
}

.pool-weight-preset {
    padding: 6px 12px;
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    background: var(--color-bg-2);
    color: var(--color-text-2);
    font-size: 13px;
    cursor: pointer;
    transition: all .15s;
}

.pool-weight-preset:hover,
.pool-weight-preset.active {
    background: var(--color-primary);
    color: #fff;
    border-color: var(--color-primary);
}

.pool-weight-sliders {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    margin-bottom: var(--space-4);
}

.pool-weight-row {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.pool-weight-row label {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    font-weight: 600;
    color: var(--color-text-1);
}

.pool-weight-val {
    color: var(--color-primary);
    font-weight: 700;
}

.pool-weight-slider {
    width: 100%;
    height: 6px;
    -webkit-appearance: none;
    appearance: none;
    background: var(--color-bg-3);
    border-radius: 3px;
    outline: none;
}

.pool-weight-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--color-primary);
    cursor: pointer;
    border: 2px solid #fff;
    box-shadow: 0 1px 4px rgba(0,0,0,0.2);
}

.pool-weight-slider::-moz-range-thumb {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--color-primary);
    cursor: pointer;
    border: 2px solid #fff;
    box-shadow: 0 1px 4px rgba(0,0,0,0.2);
}

.pool-weight-validation {
    display: flex;
    justify-content: space-between;
    padding: var(--space-3) var(--space-4);
    background: var(--color-bg-2);
    border-radius: var(--radius-md);
    margin-bottom: var(--space-4);
    font-size: 13px;
}

.pool-weight-validation .ok {
    color: #22c55e;
}

.pool-weight-validation .err {
    color: #ef4444;
    font-weight: 600;
}

.pool-weight-meta {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    margin-bottom: var(--space-4);
}

.pool-weight-meta-row {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.pool-weight-meta-row label {
    font-size: 13px;
    font-weight: 600;
    color: var(--color-text-1);
}

.pool-text-input {
    padding: 8px 12px;
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    background: var(--color-bg-1);
    color: var(--color-text-1);
    font-size: 14px;
    width: 100%;
}

.pool-text-input:focus {
    outline: none;
    border-color: var(--color-primary);
}

.pool-weight-actions {
    display: flex;
    gap: var(--space-3);
    margin-bottom: var(--space-4);
}

.pool-weight-actions .btn {
    flex: 1;
}

/* 预览结果面板 */
.pool-preview-result {
    border-top: 1px solid var(--color-border);
    padding-top: var(--space-4);
}

.pool-preview-result h4 {
    font-size: 14px;
    font-weight: 700;
    color: var(--color-text-1);
    margin: 0 0 var(--space-3);
}

.pool-preview-stats {
    background: var(--color-bg-2);
    border-radius: var(--radius-md);
    padding: var(--space-3) var(--space-4);
    margin-bottom: var(--space-3);
    font-size: 13px;
    line-height: 1.8;
}

.pool-preview-actions {
    display: flex;
    justify-content: center;
}

/* 预览模式横幅 */
.pool-preview-banner {
    position: fixed;
    top: 56px;
    left: 0;
    right: 0;
    z-index: 85;
    background: #fef3c7;
    border-bottom: 1px solid #f59e0b;
    color: #92400e;
    padding: 8px 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    font-size: 13px;
}

.pool-preview-banner-detail {
    opacity: 0.85;
}

.pool-preview-banner-close {
    padding: 3px 10px;
    border-radius: var(--radius-sm);
    border: 1px solid #f59e0b;
    background: #fff;
    color: #92400e;
    font-size: 12px;
    cursor: pointer;
    margin-left: 8px;
}

.pool-preview-banner-close:hover {
    background: #f59e0b;
    color: #fff;
}

/* 权重配置抽屉宽度调小一点 */
#pool-weight-drawer {
    width: 420px;
}


/* ── 发布确认弹窗（Phase 2）── */
.pool-modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.5);
    z-index: 95;
    display: flex;
    align-items: center;
    justify-content: center;
}

.pool-modal {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 460px;
    max-width: 92vw;
    background: var(--color-bg-1);
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    box-shadow: 0 20px 60px rgba(0,0,0,0.2);
    z-index: 96;
    display: flex;
    flex-direction: column;
}

.pool-modal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--space-4) var(--space-5);
    border-bottom: 1px solid var(--color-border);
}

.pool-modal-header h3 {
    font-size: 16px;
    font-weight: 700;
    color: var(--color-text-1);
    margin: 0;
}

.pool-modal-close {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 1px solid var(--color-border);
    background: var(--color-bg-2);
    color: var(--color-text-2);
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.pool-modal-close:hover {
    background: var(--color-bg-3);
    color: var(--color-text-1);
}

.pool-modal-body {
    padding: var(--space-4) var(--space-5);
    font-size: 14px;
    line-height: 1.7;
    color: var(--color-text-1);
}

.pool-publish-weights {
    background: var(--color-bg-2);
    border-radius: var(--radius-md);
    padding: var(--space-3) var(--space-4);
    margin: var(--space-3) 0;
    font-size: 13px;
}

.pool-modal-warning {
    color: #92400e;
    background: #fef3c7;
    padding: var(--space-3);
    border-radius: var(--radius-md);
    margin-top: var(--space-3);
    font-size: 13px;
}

.pool-modal-actions {
    display: flex;
    justify-content: flex-end;
    gap: var(--space-3);
    padding: var(--space-4) var(--space-5);
    border-top: 1px solid var(--color-border);
}

/* 回滚入口 */
.pool-rollback-bar {
    position: fixed;
    bottom: 16px;
    right: 16px;
    z-index: 84;
    background: var(--color-bg-1);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: 8px 12px;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

.pool-rollback-bar code {
    background: var(--color-bg-2);
    padding: 2px 6px;
    border-radius: var(--radius-sm);
    font-size: 11px;
}

/* 按钮样式扩展 */
.btn-warning {
    background: #f59e0b;
    color: #fff;
    border: 1px solid #f59e0b;
}

.btn-warning:hover {
    background: #d97706;
    border-color: #d97706;
}


/* ── 完整重算进度条（Phase 3）── */
.pool-recalc-progress {
    margin-bottom: var(--space-4);
    padding: var(--space-3) var(--space-4);
    background: var(--color-bg-2);
    border-radius: var(--radius-md);
}

.pool-recalc-label {
    font-size: 13px;
    font-weight: 600;
    color: var(--color-text-1);
    margin-bottom: 6px;
}

.pool-progress-bar-bg {
    width: 100%;
    height: 8px;
    background: var(--color-bg-3);
    border-radius: 4px;
    overflow: hidden;
}

.pool-progress-bar-fill {
    height: 100%;
    background: var(--color-primary);
    border-radius: 4px;
    transition: width .5s ease;
}

.pool-recalc-detail {
    font-size: 12px;
    color: var(--color-text-2);
    margin-top: 4px;
}

/* 历史记录列表 */
.pool-recalc-history {
    margin-top: var(--space-4);
    border-top: 1px solid var(--color-border);
    padding-top: var(--space-4);
}

.pool-recalc-history h4 {
    font-size: 14px;
    font-weight: 700;
    color: var(--color-text-1);
    margin: 0 0 var(--space-3);
}

.pool-recalc-history-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--space-2) var(--space-3);
    background: var(--color-bg-2);
    border-radius: var(--radius-md);
    margin-bottom: var(--space-2);
    font-size: 12px;
}

.pool-recalc-history-item .status {
    font-weight: 600;
}

.pool-recalc-history-item .status.success { color: #22c55e; }
.pool-recalc-history-item .status.failed { color: #ef4444; }
.pool-recalc-history-item .status.running { color: #3b82f6; }
.pool-recalc-history-item .status.pending { color: #9ca3af; }


/* ============================================================
   夜间模式覆盖 (Night Mode Overrides)
   ============================================================ */

/* 夜间局部变量覆盖 — 让 pool 组件自动继承深色语义 */
[data-theme="night"] {
    --color-text-1:   #EAEAEC;
    --color-bg-1:     rgba(255,255,255,0.04);
    --color-bg-2:     rgba(255,255,255,0.04);
    --color-bg-3:     rgba(255,255,255,0.08);
}

/* 玻璃质感（半透明卡片加毛玻璃） */
[data-theme="night"] .pool-filter-panel,
[data-theme="night"] .pool-market-card,
[data-theme="night"] .pool-sector-card,
[data-theme="night"] .pool-stat-card,
[data-theme="night"] .pool-top-card,
[data-theme="night"] .pool-table-wrap,
[data-theme="night"] .pool-drawer,
[data-theme="night"] .pool-modal,
[data-theme="night"] .pool-recalc-progress,
[data-theme="night"] .pool-recalc-history-item,
[data-theme="night"] .pool-page-btn,
[data-theme="night"] .pool-rollback-bar,
[data-theme="night"] .pool-preview-result,
[data-theme="night"] .pool-weight-preset,
[data-theme="night"] .pool-weight-validation,
[data-theme="night"] .pool-publish-weights {
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
}

/* Tab 激活状态修复：夜间 --color-primary 是浅色，不适合做按钮背景 */
[data-theme="night"] .pool-view-tab.active,
[data-theme="night"] .pool-sector-type-tab.active {
    background: var(--color-primary-3);
    border-color: var(--color-primary-2);
    color: #fff;
}

/* 卡片 hover 改为青色发光 */
[data-theme="night"] .pool-market-card:hover,
[data-theme="night"] .pool-sector-card:hover,
[data-theme="night"] .pool-top-card:hover {
    box-shadow: var(--shadow-hover);
}

/* 表格 — 透明包装 + 青色表头 */
[data-theme="night"] .pool-table-wrap,
[data-theme="night"] .pool-table {
    background: transparent;
}

[data-theme="night"] .pool-table thead {
    background: rgba(2, 235, 253, 0.07);
}

[data-theme="night"] .pool-table th {
    color: var(--color-primary-2);
}

[data-theme="night"] .pool-table tbody tr:hover {
    background: rgba(2, 235, 253, 0.04);
}

/* 预览横幅 — 深色底 + 青色语义 */
[data-theme="night"] .pool-preview-banner {
    background: rgba(2, 235, 253, 0.08);
    border-bottom-color: var(--color-primary-2);
    color: var(--color-primary-2);
}

[data-theme="night"] .pool-preview-banner-close {
    background: transparent;
    border-color: var(--color-primary-2);
    color: var(--color-primary-2);
}

[data-theme="night"] .pool-preview-banner-close:hover {
    background: var(--color-primary-2);
    color: #0C0C0D;
}

/* 模态框警告 — 降低亮度 */
[data-theme="night"] .pool-modal-warning {
    background: rgba(245, 158, 11, 0.12);
    color: #fbbf24;
}

/* 关注按钮 / 板块查看按钮 hover — 避免浅色背景+白色文字看不见 */
[data-theme="night"] .pool-watchlist-add:hover,
[data-theme="night"] .pool-sector-view-btn:hover {
    background: var(--color-primary-2);
    color: #0C0C0D;
}

/* 进度条 — 青色更醒目 */
[data-theme="night"] .pool-progress-bar-fill {
    background: var(--color-primary-2);
}

/* 回滚条阴影 */
[data-theme="night"] .pool-rollback-bar {
    box-shadow: var(--shadow-card);
}

/* 分页按钮 hover */
[data-theme="night"] .pool-page-btn:hover {
    background: rgba(255,255,255,0.08);
    border-color: var(--color-primary-2);
}
