/* ═══════════════════════════════════════════════
   股票研究平台 - 全局样式
   ═══════════════════════════════════════════════ */
:root {
    --bg-base: #0a1320;
    --bg-panel: #111c2b;
    --bg-panel-soft: #15263a;
    --line-soft: rgba(145, 168, 196, 0.22);
    --text-main: #e6edf3;
    --text-sub: #9eb2c9;
    --brand: #4ea1ff;
    --brand-2: #2dc997;
    --warn: #f6bd16;
    --danger: #f97373;
}

/* ── 全局背景 ─── */
html {
    min-height: 100%;
    background: #0a1320 !important;
}

body {
    min-height: 100vh;
    background:
        radial-gradient(1200px 460px at 8% -15%, rgba(78,161,255,0.22), transparent 55%),
        radial-gradient(900px 380px at 95% 2%, rgba(45,201,151,0.15), transparent 50%),
        linear-gradient(180deg, #0a1320 0%, #0d1624 52%, #0b141f 100%) !important;
    color: var(--text-main);
    font-family: "Manrope", "Avenir Next", "PingFang SC", "Microsoft YaHei", sans-serif;
}

body::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    background-image: linear-gradient(rgba(255, 255, 255, 0.028) 1px, transparent 1px),
                      linear-gradient(90deg, rgba(255, 255, 255, 0.02) 1px, transparent 1px);
    background-size: 36px 36px;
    mask-image: radial-gradient(circle at 20% 10%, #000 10%, transparent 85%);
    z-index: 0;
}

#_dash-app-content, .dash-bootstrap {
    position: relative;
    z-index: 1;
}

/* ── 导航栏 ─── */
.navbar {
    position: relative;
    z-index: 3000;
    overflow: visible !important;
    border-bottom: 1px solid var(--line-soft) !important;
    backdrop-filter: blur(14px);
    background: rgba(8, 17, 31, 0.7) !important;
}

.navbar-collapse,
.navbar-nav {
    overflow: visible !important;
}

.brand-lockup {
    display: inline-flex;
    align-items: baseline;
    gap: 3px;
    letter-spacing: 1px;
    font-weight: 760;
}

.brand-pc-suffix {
    color: rgba(201, 216, 234, 0.68);
    font-size: 0.68em;
    font-weight: 650;
    letter-spacing: 0;
}

.nav-link {
    font-size: 0.92rem;
    padding: 7px 16px !important;
    border-radius: 8px;
    margin: 0 3px;
    transition: all 0.2s ease;
    color: #8b949e !important;
}
.nav-link:hover {
    background: rgba(78, 161, 255, 0.14);
    color: #9eccff !important;
}
.nav-link.active, .nav-link[aria-current="page"] {
    background: rgba(78, 161, 255, 0.18) !important;
    color: #9eccff !important;
}

.site-footer {
    position: relative;
    z-index: 1;
    margin: 18px auto 0;
    padding: 16px 24px 24px;
    border-top: 1px solid rgba(145, 168, 196, 0.14);
    color: #6f8198;
    background: rgba(8, 17, 31, 0.42);
}

.site-footer-disclaimer {
    max-width: 1180px;
    margin: 0 auto;
    font-size: 0.78rem;
    line-height: 1.6;
    text-align: center;
}

.site-footer-contact {
    max-width: 1180px;
    margin: 0 auto 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    color: #8fa3bd;
    font-size: 0.82rem;
    line-height: 1.4;
}

.site-footer-contact-qr-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    outline: none;
}

.site-footer-contact-qr-link:hover .site-footer-contact-qr {
    transform: translateY(-1px) scale(1.04);
    border-color: rgba(78, 209, 232, 0.5);
    box-shadow: 0 10px 30px rgba(45, 216, 232, 0.18);
}

.site-footer-contact-label {
    color: #d8e6f8;
    font-weight: 800;
    letter-spacing: 0.03em;
}

.site-footer-contact-qr {
    width: 46px;
    height: 46px;
    border-radius: 10px;
    border: 1px solid rgba(145, 168, 196, 0.22);
    background: #fff;
    padding: 3px;
    object-fit: cover;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
    transition: transform 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease;
}

.site-footer-contact-hint {
    color: #7f93ac;
}

.site-contact-lightbox {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.site-contact-lightbox:target {
    display: flex;
}

.site-contact-lightbox-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(3, 8, 16, 0.76);
    backdrop-filter: blur(8px);
}

.site-contact-lightbox-card {
    position: relative;
    z-index: 1;
    width: min(420px, calc(100vw - 40px));
    padding: 24px 24px 20px;
    border-radius: 24px;
    background: linear-gradient(180deg, rgba(18, 30, 48, 0.98), rgba(8, 17, 31, 0.98));
    border: 1px solid rgba(145, 168, 196, 0.24);
    box-shadow: 0 26px 80px rgba(0, 0, 0, 0.42);
    text-align: center;
}

.site-contact-lightbox-close {
    position: absolute;
    right: 14px;
    top: 10px;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #d8e6f8;
    text-decoration: none;
    font-size: 1.5rem;
    line-height: 1;
    background: rgba(145, 168, 196, 0.12);
}

.site-contact-lightbox-close:hover {
    color: #ffffff;
    background: rgba(78, 209, 232, 0.2);
}

.site-contact-lightbox-title {
    color: #f3f8ff;
    font-size: 1.05rem;
    font-weight: 900;
    margin-bottom: 14px;
}

.site-contact-lightbox-qr {
    width: min(320px, 78vw);
    height: min(320px, 78vw);
    border-radius: 18px;
    background: #fff;
    padding: 10px;
    object-fit: cover;
    border: 1px solid rgba(255, 255, 255, 0.72);
}

.site-contact-lightbox-hint {
    margin-top: 14px;
    color: #9fb2ca;
    font-size: 0.86rem;
    line-height: 1.6;
}

/* ── 滚动条 ─── */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-thumb { background: #30363d; border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #484f58; }
::-webkit-scrollbar-track { background: transparent; }

/* ── 卡片效果 ─── */
.card {
    border-radius: 10px !important;
    border: 1px solid var(--line-soft) !important;
    background: linear-gradient(180deg, rgba(18, 30, 46, 0.95) 0%, rgba(15, 24, 38, 0.95) 100%) !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.card:hover {
    transform: translateY(-1px);
    box-shadow: 0 10px 26px rgba(0,0,0,0.28);
}

/* ── 表格 ─── */
.table {
    --bs-table-bg: transparent !important;
    margin-bottom: 0;
}
.table > thead > tr > th {
    border-bottom: 1px solid #21262d !important;
    padding: 10px 12px;
    font-weight: 500;
}
.table > tbody > tr > td {
    padding: 10px 12px;
    vertical-align: middle;
    border-bottom: 1px solid rgba(33, 38, 45, 0.5) !important;
}
.table > tbody > tr:hover > td {
    background: rgba(78, 161, 255, 0.08) !important;
}
.table-dark {
    --bs-table-bg: transparent !important;
    --bs-table-hover-bg: rgba(78, 161, 255, 0.08) !important;
}

/* ── 按钮 ─── */
.btn {
    border-radius: 8px;
    font-weight: 500;
    transition: all 0.15s ease;
}
.btn:hover {
    transform: translateY(-1px);
}
.btn-primary {
    background: linear-gradient(135deg, #1689ff 0%, #2dc997 100%);
    border: none;
}
.btn-primary:hover {
    background: linear-gradient(135deg, #2e9cff 0%, #44d6aa 100%);
}

/* 全局下拉样式已禁用，改为使用 .zh-dropdown 定向样式，避免与报表冲突 */

/* ── Alert 柔和 ─── */
.alert { border-radius: 10px; }

/* ── Badge ─── */
.badge {
    font-weight: 500;
    border-radius: 6px;
}

/* ── Spinner ─── */
.spinner-border { width: 1.5rem; height: 1.5rem; }

/* ── 财务表格专用 ─── */
.finance-table-wrap {
    background: rgba(13, 21, 34, 0.86);
    border-radius: 10px;
    border: 1px solid var(--line-soft);
    overflow-x: auto;
    overflow-y: visible;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.18);
}

.finance-table-wrap .table {
    min-width: 980px;
}

.finance-table-wrap .table > thead > tr > th,
.finance-table-wrap .table > tbody > tr > td {
    white-space: nowrap;
}

.finance-table-wrap .table > tbody > tr.section-row > td {
    background: rgba(25, 39, 57, 0.95);
    padding: 6px 16px !important;
    border-bottom: 1px solid var(--line-soft);
}
.finance-table-wrap .table > thead > tr > th {
    background: rgba(20, 32, 49, 0.95);
    position: sticky;
    top: 0;
    z-index: 10;
}
.sticky-name {
    position: sticky;
    left: 0;
    z-index: 5;
    min-width: 168px;
    max-width: 220px;
    background: #0d1117 !important;
}
.finance-table-wrap .table > tbody > tr:hover .sticky-name {
    background: rgba(78, 161, 255, 0.08) !important;
}

/* ── Radio Items ─── */
.form-check-inline .form-check-label {
    font-size: 0.85rem;
}

/* ── Tab 样式 ─── */
.nav-tabs .nav-link {
    border: none !important;
    border-bottom: 2px solid transparent !important;
    border-radius: 0 !important;
    margin: 0;
    color: #8b949e !important;
    padding: 10px 20px !important;
}
.nav-tabs .nav-link:hover {
    border-bottom-color: #30363d !important;
    background: transparent !important;
    color: #e6edf3 !important;
}
.nav-tabs .nav-link.active {
    border-bottom-color: #58a6ff !important;
    background: transparent !important;
    color: #58a6ff !important;
}

/* ── 财务图表区 ─── */
.viz-card {
    border: 1px solid var(--line-soft);
    border-radius: 12px;
    overflow: hidden;
    background:
        radial-gradient(300px 120px at 10% 0%, rgba(78,161,255,0.14), transparent 70%),
        linear-gradient(180deg, rgba(20, 33, 50, 0.92) 0%, rgba(14, 24, 38, 0.96) 100%);
    box-shadow: 0 8px 20px rgba(0,0,0,0.22);
}

/* ── 行情页快照 ─── */
.market-control-card {
    position: relative;
    z-index: 60;
}

.market-search-card {
    position: relative;
    z-index: 70;
    border: 1px solid var(--line-soft);
    border-radius: 16px;
    padding: 16px;
    background:
        radial-gradient(420px 150px at 7% 0%, rgba(78,161,255,0.16), transparent 70%),
        linear-gradient(180deg, rgba(18, 30, 46, 0.95) 0%, rgba(14, 24, 38, 0.96) 100%);
    box-shadow: 0 12px 30px rgba(0,0,0,0.2);
}

.market-search-box {
    display: flex;
    align-items: center;
    min-height: 50px;
    border: 1px solid rgba(126, 154, 190, 0.22);
    border-radius: 14px;
    background: rgba(6, 16, 29, 0.82);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.04);
    transition: border-color 0.16s ease, box-shadow 0.16s ease, transform 0.16s ease;
}

.market-search-box:hover,
.market-search-box:focus,
.market-search-box:focus-visible,
.market-search-card *,
.market-search-card *:focus,
.market-search-card *:focus-visible,
.market-search-card *:active {
    outline: 0 solid transparent !important;
    outline-offset: 0 !important;
    box-shadow: none !important;
}

.market-search-box:focus-within {
    border-color: rgba(126,154,190,0.22) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.04) !important;
}

.market-search-prefix {
    color: #79c0ff;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    padding: 0 14px 0 16px;
    border-right: 1px solid rgba(145,168,196,0.22);
}

.market-search-input {
    flex: 1;
    border: 0;
    outline: 0;
    background: transparent;
    color: #f4f8ff;
    padding: 0 14px;
    font-size: 1rem;
    appearance: none;
    -webkit-appearance: none;
    border-radius: 0;
    caret-color: #79c0ff;
}

.market-search-input:focus,
.market-search-input:focus-visible,
.market-search-input:active {
    outline: none !important;
    border: 0 !important;
    box-shadow: none !important;
}

.market-search-input::-webkit-search-decoration,
.market-search-input::-webkit-search-cancel-button,
.market-search-input::-webkit-search-results-button,
.market-search-input::-webkit-search-results-decoration {
    -webkit-appearance: none;
}

.market-search-input::placeholder {
    color: #66788f;
}

.market-search-panel {
    margin-top: 12px;
    display: none;
}

.market-search-card:focus-within .market-search-panel {
    display: grid;
}

.market-search-section {
    border: 1px solid rgba(145,168,196,0.16);
    border-radius: 14px;
    overflow: hidden;
    background: rgba(8, 18, 31, 0.56);
}

.market-search-section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 9px 12px;
    border-bottom: 1px solid rgba(145,168,196,0.13);
}

.market-search-section-title {
    color: #dbeafe;
    font-weight: 800;
    font-size: 0.84rem;
}

.market-search-section-helper {
    color: #70839a;
    font-size: 0.75rem;
}

.market-search-section-body {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 8px;
    padding: 10px;
}

.market-search-result-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 8px;
}

.market-search-result {
    width: 100%;
    text-align: left;
    border: 1px solid rgba(145,168,196,0.16);
    border-radius: 12px;
    padding: 10px 12px;
    background: rgba(16, 30, 48, 0.76);
    color: #e6edf3;
    cursor: pointer;
    transition: all 0.15s ease;
    appearance: none;
    -webkit-appearance: none;
}

.market-search-result:hover,
.market-search-result:focus,
.market-search-result:focus-visible,
.market-search-result:active {
    transform: translateY(-1px);
    outline: none !important;
    box-shadow: none !important;
    border-color: rgba(145,168,196,0.24) !important;
    background: rgba(78,161,255,0.12);
}

.market-search-result-name {
    color: #f4f8ff;
    font-weight: 800;
    line-height: 1.2;
}

.market-search-result-meta {
    margin-top: 4px;
    color: #8fa5bd;
    font-size: 0.78rem;
}

.market-search-empty {
    border: 1px dashed rgba(145,168,196,0.24);
    border-radius: 12px;
    padding: 14px;
    color: #8fa5bd;
    background: rgba(8, 18, 31, 0.48);
}

.market-index-overview {
    border: 1px solid var(--line-soft);
    border-radius: 16px;
    padding: 14px 16px;
    background:
        radial-gradient(480px 140px at 8% 0%, rgba(45,201,151,0.14), transparent 72%),
        linear-gradient(180deg, rgba(18, 30, 46, 0.92) 0%, rgba(13, 23, 37, 0.96) 100%);
    box-shadow: 0 12px 28px rgba(0,0,0,0.18);
}

.market-index-overview-inner {
    display: grid;
    grid-template-columns: minmax(180px, 240px) 1fr;
    gap: 14px;
    align-items: stretch;
}

.market-index-title-block {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.market-index-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 9px;
}

.market-index-card {
    width: 100%;
    text-align: left;
    border: 1px solid rgba(145,168,196,0.18);
    border-radius: 14px;
    padding: 10px 12px;
    color: #e6edf3;
    background: rgba(8, 18, 31, 0.62);
    cursor: pointer;
    transition: transform 0.15s ease, border-color 0.15s ease, background 0.15s ease;
    appearance: none;
    -webkit-appearance: none;
}

.market-index-card:hover,
.market-index-card:focus,
.market-index-card:focus-visible,
.market-index-card:active {
    transform: translateY(-1px);
    outline: none !important;
    box-shadow: none !important;
    border-color: rgba(126,154,190,0.34);
    background: rgba(78,161,255,0.1);
}

.market-index-card.active {
    border-color: rgba(45,201,151,0.6);
    background:
        radial-gradient(220px 90px at 20% 0%, rgba(45,201,151,0.18), transparent 70%),
        rgba(16, 42, 48, 0.82);
}

.market-index-head {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    align-items: baseline;
}

.market-index-name {
    color: #f4f8ff;
    font-size: 0.92rem;
    font-weight: 780;
}

.market-index-code {
    color: #72839a;
    font-size: 0.72rem;
}

.market-index-close {
    margin-top: 8px;
    color: #f4f8ff;
    font-size: 1.15rem;
    font-weight: 500;
    line-height: 1;
}

.market-index-change {
    margin-top: 7px;
    font-size: 0.8rem;
    font-weight: 650;
}

.market-chart-toolbar {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    padding: 14px 16px 0 16px;
}

.market-chart-title {
    color: #f4f8ff;
    font-size: 1rem;
    font-weight: 850;
}

.market-chart-subtitle {
    margin-top: 3px;
    color: #7f8da3;
    font-size: 0.78rem;
}

.market-period-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    justify-content: flex-end;
}

.market-period-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    padding: 6px 12px;
    border: 1px solid rgba(145,168,196,0.22);
    border-radius: 999px;
    color: #9eb2c9 !important;
    text-decoration: none;
    font-size: 0.82rem;
    font-weight: 700;
    font-family: inherit;
    background: rgba(9, 19, 32, 0.58);
    transition: all 0.15s ease;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
}

.market-period-pill:hover,
.market-period-pill:focus,
.market-period-pill:focus-visible,
.market-period-pill:active {
    color: #dbeafe !important;
    outline: none !important;
    box-shadow: none !important;
    border-color: rgba(78,161,255,0.48);
    background: rgba(78,161,255,0.12);
}

.market-period-pill.active {
    color: #06101d !important;
    border-color: transparent;
    background: linear-gradient(135deg, #79c0ff 0%, #2dc997 100%);
}

.market-hero-card {
    position: relative;
    z-index: 1;
    border: 1px solid var(--line-soft);
    border-radius: 16px;
    padding: 15px 16px;
    background:
        radial-gradient(420px 160px at 4% 0%, rgba(78,161,255,0.18), transparent 70%),
        radial-gradient(360px 160px at 95% 10%, rgba(45,201,151,0.12), transparent 70%),
        linear-gradient(180deg, rgba(19, 32, 50, 0.94) 0%, rgba(12, 22, 36, 0.97) 100%);
    box-shadow: 0 14px 34px rgba(0, 0, 0, 0.24);
}

.market-hero-top,
.market-hero-main {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.market-hero-main {
    align-items: stretch;
    margin-top: 13px;
}

.market-stock-name {
    color: #f4f8ff;
    font-size: 1.12rem;
    font-weight: 720;
    letter-spacing: 0.02em;
}

.market-stock-code {
    margin-left: 10px;
    color: #7f8da3;
    font-size: 0.86rem;
}

.market-badge-row,
.market-action-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 8px;
}

.market-stock-badge,
.market-action-link,
.market-watch-action {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    line-height: 1.2;
}

.market-stock-badge {
    padding: 4px 10px;
    font-size: 0.78rem;
}

.market-stock-badge {
    border: 1px solid rgba(145, 168, 196, 0.28);
    background: rgba(145, 168, 196, 0.08);
    color: #9eb2c9;
}

.market-stock-badge.active-date {
    border-color: rgba(246,189,22,0.38);
    background: rgba(246,189,22,0.1);
    color: #f6bd16;
}

.market-action-link {
    min-height: 34px;
    padding: 8px 14px;
    border: 1px solid rgba(78,161,255,0.48);
    background:
        radial-gradient(120px 50px at 20% 0%, rgba(126,192,255,0.22), transparent 70%),
        rgba(78,161,255,0.14);
    color: #d8ecff !important;
    text-decoration: none;
    font-size: 0.9rem;
    font-weight: 800;
    transition: all 0.16s ease;
}

.market-action-link:hover,
.market-watch-action:hover {
    transform: translateY(-1px);
    border-color: rgba(78,161,255,0.62);
    background: rgba(78,161,255,0.18);
}

.market-watch-action {
    min-height: 34px;
    padding: 7px 14px !important;
    font-size: 0.88rem !important;
    font-weight: 800 !important;
    box-shadow: none !important;
}

.market-price-block {
    min-width: 150px;
    border-right: 1px solid rgba(145, 168, 196, 0.18);
    padding-right: 18px;
}

.market-price {
    font-size: 1.82rem;
    font-weight: 620;
    line-height: 1;
}

.market-change {
    margin-top: 6px;
    font-size: 0.88rem;
    font-weight: 650;
}

.market-metric-grid {
    flex: 1;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
    gap: 8px;
}

.market-metric-card {
    min-height: 66px;
    border: 1px solid rgba(145, 168, 196, 0.2);
    border-radius: 12px;
    padding: 8px 10px;
    background: rgba(9, 19, 32, 0.5);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.03);
}

.market-metric-label {
    color: #8fa5bd;
    font-size: 0.76rem;
}

.market-metric-value {
    margin-top: 4px;
    font-size: 0.92rem;
    font-weight: 650;
    color: var(--market-number-color, #e6edf3);
}

.market-metric-sub {
    min-height: 10px;
    margin-top: 3px;
    color: #617189;
    font-size: 0.72rem;
}

/* ── 行情页研究中枢 ─── */
.market-research-card {
    border: 1px solid rgba(145,168,196,0.18);
    border-radius: 18px;
    padding: 16px;
    background:
        radial-gradient(420px 150px at 0% 0%, rgba(246,189,22,0.12), transparent 72%),
        radial-gradient(360px 150px at 100% 0%, rgba(78,161,255,0.14), transparent 72%),
        linear-gradient(180deg, rgba(18,31,49,0.94), rgba(10,20,34,0.96));
    box-shadow: 0 14px 34px rgba(0,0,0,0.22);
}

.market-research-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 14px;
}

.market-research-title {
    color: #f3f8ff;
    font-size: 1.05rem;
    font-weight: 850;
}

.market-research-subtitle {
    color: #8fa3bd;
    font-size: 0.82rem;
    margin-top: 3px;
}

.market-research-links {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.market-research-link {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: 7px 12px;
    border-radius: 999px;
    color: #d8ecff;
    text-decoration: none;
    font-size: 0.82rem;
    font-weight: 800;
    background: rgba(78,161,255,0.12);
    border: 1px solid rgba(78,161,255,0.32);
}

.market-research-link:hover {
    color: #ffffff;
    background: rgba(78,161,255,0.20);
}

.market-research-body {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
    gap: 12px;
}

.market-research-section {
    padding: 13px;
    border-radius: 15px;
    background: rgba(7,16,29,0.58);
    border: 1px solid rgba(145,168,196,0.13);
}

.market-research-section-title {
    color: #dce8f8;
    font-size: 0.88rem;
    font-weight: 850;
    margin-bottom: 10px;
}

.market-research-metric-grid {
    display: grid;
    gap: 8px;
}

.market-research-metric-grid.quality {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.market-research-metric-grid.returns,
.market-research-metric-grid.growth {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.market-research-metric {
    min-height: 78px;
    padding: 9px 10px;
    border-radius: 12px;
    background: rgba(12,25,41,0.72);
    border: 1px solid rgba(145,168,196,0.12);
}

.market-research-metric-label {
    color: #8fa3bd;
    font-size: 0.73rem;
}

.market-research-metric-value {
    margin-top: 4px;
    color: #e6edf3;
    font-size: 0.98rem;
    font-weight: 820;
    white-space: nowrap;
}

.market-research-metric-value.up {
    color: #ef5350;
}

.market-research-metric-value.down {
    color: #26a69a;
}

.market-research-metric-helper {
    margin-top: 3px;
    color: #64758e;
    font-size: 0.70rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.market-source-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.market-source-chip {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    max-width: 100%;
    padding: 6px 9px;
    border-radius: 999px;
    border: 1px solid rgba(78,161,255,0.26);
    background: rgba(78,161,255,0.10);
}

.market-source-chip.red {
    border-color: rgba(239,83,80,0.30);
    background: rgba(239,83,80,0.10);
}

.market-source-chip.green {
    border-color: rgba(45,201,151,0.30);
    background: rgba(45,201,151,0.10);
}

.market-source-chip.orange {
    border-color: rgba(246,189,22,0.32);
    background: rgba(246,189,22,0.10);
}

.market-source-chip.purple {
    border-color: rgba(151,129,255,0.32);
    background: rgba(151,129,255,0.10);
}

.market-source-type {
    color: #9ecbff;
    font-size: 0.72rem;
    font-weight: 850;
    white-space: nowrap;
}

.market-source-label {
    color: #dce8f8;
    font-size: 0.78rem;
    font-weight: 760;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.market-research-empty {
    color: #8fa3bd;
    font-size: 0.82rem;
    line-height: 1.55;
}

.market-research-note {
    margin-top: 10px;
    color: #8fa3bd;
    font-size: 0.78rem;
    line-height: 1.45;
}

.market-research-note-label {
    color: #c9d8ea;
    font-weight: 800;
}

.market-ann-card {
    background:
        radial-gradient(400px 140px at 0% 0%, rgba(45,201,151,0.12), transparent 72%),
        linear-gradient(180deg, rgba(17,30,45,0.94), rgba(9,18,31,0.96));
}

.market-ann-head {
    margin-bottom: 8px;
}

.market-ann-count {
    color: #9ecbff;
    font-size: 0.78rem;
    font-weight: 800;
    padding: 6px 10px;
    border-radius: 999px;
    background: rgba(78,161,255,0.10);
    border: 1px solid rgba(78,161,255,0.22);
    white-space: nowrap;
    text-decoration: none;
}

.market-ann-count:hover {
    color: #ffffff;
    background: rgba(78,161,255,0.18);
}

.market-ann-list {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
}

.market-ann-item {
    min-height: 86px;
    padding: 11px 12px;
    border-radius: 14px;
    text-decoration: none;
    background: rgba(7,16,29,0.58);
    border: 1px solid rgba(145,168,196,0.13);
    transition: border-color .16s ease, transform .16s ease, background .16s ease;
}

.market-ann-item:hover {
    transform: translateY(-1px);
    background: rgba(18,35,55,0.72);
    border-color: rgba(78,161,255,0.34);
}

.market-ann-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 8px;
}

.market-ann-category {
    color: #2dd4bf;
    font-size: 0.70rem;
    font-weight: 850;
    white-space: nowrap;
}

.market-ann-date {
    color: #6f829b;
    font-size: 0.70rem;
    white-space: nowrap;
}

.market-ann-title {
    color: #dce8f8;
    font-size: 0.82rem;
    line-height: 1.45;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ── 公告中心 / 公告详情 ─── */
.ann-page {
    color: #dce8f8;
}

.ann-hero,
.ann-detail-hero {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    padding: 20px;
    border-radius: 22px;
    background:
        radial-gradient(520px 180px at 0% 0%, rgba(45,201,151,0.15), transparent 72%),
        radial-gradient(420px 180px at 100% 0%, rgba(78,161,255,0.13), transparent 72%),
        linear-gradient(180deg, rgba(18,31,49,0.96), rgba(9,18,31,0.96));
    border: 1px solid rgba(145,168,196,0.18);
    box-shadow: 0 18px 44px rgba(0,0,0,0.22);
}

.ann-eyebrow {
    color: #2dd4bf;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.14em;
}

.ann-title,
.ann-detail-title {
    margin: 8px 0 0;
    color: #f3f8ff;
    font-size: 1.55rem;
    font-weight: 900;
    line-height: 1.25;
}

.ann-detail-title {
    max-width: 980px;
    font-size: 1.38rem;
}

.ann-subtitle {
    margin-top: 8px;
    color: #8fa3bd;
    font-size: 0.9rem;
    line-height: 1.55;
}

.ann-top-actions,
.ann-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.ann-top-link,
.ann-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    padding: 7px 12px;
    border-radius: 999px;
    color: #d8ecff;
    text-decoration: none;
    font-size: 0.80rem;
    font-weight: 850;
    background: rgba(78,161,255,0.10);
    border: 1px solid rgba(78,161,255,0.24);
}

.ann-action.primary,
.ann-top-link:hover,
.ann-action:hover {
    color: #ffffff;
    background: rgba(78,161,255,0.20);
}

.ann-filter-row {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin: 16px 0 12px;
}

.ann-filter-chip {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 8px 12px;
    border-radius: 999px;
    text-decoration: none;
    color: #9eb2c9;
    background: rgba(145,168,196,0.08);
    border: 1px solid rgba(145,168,196,0.14);
}

.ann-filter-chip.active {
    color: #ffffff;
    background: rgba(45,201,151,0.15);
    border-color: rgba(45,201,151,0.34);
}

.ann-filter-label {
    font-size: 0.82rem;
    font-weight: 850;
}

.ann-filter-count {
    color: #6be6b9;
    font-size: 0.76rem;
    font-weight: 900;
}

.ann-result-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin: 4px 0 10px;
}

.ann-result-count {
    color: #f3f8ff;
    font-size: 1rem;
    font-weight: 880;
}

.ann-result-note {
    color: #70839b;
    font-size: 0.80rem;
}

.ann-list {
    display: grid;
    gap: 10px;
}

.ann-list-card {
    padding: 14px;
    border-radius: 18px;
    background: rgba(7,16,29,0.66);
    border: 1px solid rgba(145,168,196,0.14);
}

.ann-list-card:hover {
    border-color: rgba(78,161,255,0.28);
    background: rgba(12,25,41,0.78);
}

.ann-card-top,
.ann-card-stockline,
.ann-card-meta,
.ann-detail-badges,
.ann-related-meta {
    display: flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
}

.ann-card-top {
    justify-content: space-between;
}

.ann-card-source {
    color: #6f8198;
    font-size: 0.74rem;
}

.ann-card-title {
    display: block;
    margin-top: 9px;
    color: #f3f8ff;
    text-decoration: none;
    font-size: 1rem;
    font-weight: 850;
    line-height: 1.45;
}

.ann-card-title:hover {
    color: #9ecbff;
}

.ann-card-stockline {
    margin: 7px 0 12px;
}

.ann-card-stock,
.ann-detail-stock {
    color: #c9d8ea;
    font-weight: 850;
}

.ann-card-code,
.ann-detail-code {
    color: #70839b;
    font-size: 0.78rem;
}

.ann-badge {
    display: inline-flex;
    align-items: center;
    padding: 3px 8px;
    border-radius: 999px;
    color: #9ecbff;
    background: rgba(78,161,255,0.11);
    border: 1px solid rgba(78,161,255,0.22);
    font-size: 0.72rem;
    font-weight: 850;
    white-space: nowrap;
}

.ann-badge.red {
    color: #ff8f88;
    background: rgba(239,83,80,0.12);
    border-color: rgba(239,83,80,0.26);
}

.ann-badge.gold {
    color: #f6d36b;
    background: rgba(246,189,22,0.11);
    border-color: rgba(246,189,22,0.24);
}

.ann-badge.muted {
    color: #9eb2c9;
    background: rgba(145,168,196,0.08);
    border-color: rgba(145,168,196,0.14);
}

.ann-pager {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin-top: 16px;
}

.ann-pager-btn {
    min-width: 84px;
    padding: 8px 12px;
    border-radius: 999px;
    text-align: center;
    color: #d8ecff;
    text-decoration: none;
    background: rgba(78,161,255,0.10);
    border: 1px solid rgba(78,161,255,0.22);
    font-weight: 850;
}

.ann-pager-btn.disabled {
    pointer-events: none;
    opacity: 0.38;
}

.ann-pager-info {
    color: #8fa3bd;
    font-size: 0.84rem;
}

.ann-empty {
    padding: 18px;
    border-radius: 16px;
    color: #8fa3bd;
    background: rgba(145,168,196,0.06);
    border: 1px dashed rgba(145,168,196,0.18);
}

.ann-back-link {
    color: #79c0ff;
    text-decoration: none;
    font-size: 0.82rem;
    font-weight: 850;
}

.ann-detail-hero {
    display: block;
}

.ann-detail-badges,
.ann-detail-stockline,
.ann-detail-hero .ann-actions {
    margin-top: 12px;
}

.ann-detail-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(280px, 0.5fr);
    gap: 14px;
    margin-top: 14px;
}

.ann-detail-main,
.ann-detail-side,
.ann-related-panel {
    padding: 16px;
    border-radius: 18px;
    background: rgba(7,16,29,0.66);
    border: 1px solid rgba(145,168,196,0.14);
}

.ann-section-title,
.ann-side-title {
    color: #f3f8ff;
    font-size: 1rem;
    font-weight: 900;
}

.ann-section-subtitle {
    margin-top: 5px;
    color: #8fa3bd;
    font-size: 0.84rem;
}

.ann-tip-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 12px;
}

.ann-tip-card {
    padding: 13px;
    border-radius: 16px;
    background: rgba(12,25,41,0.72);
    border: 1px solid rgba(145,168,196,0.13);
}

.ann-tip-title {
    color: #9ecbff;
    font-weight: 900;
    font-size: 0.9rem;
}

.ann-tip-title.green { color: #6be6b9; }
.ann-tip-title.gold { color: #f6d36b; }
.ann-tip-title.red { color: #ff8f88; }

.ann-tip-body {
    margin-top: 7px;
    color: #b8c7da;
    line-height: 1.62;
    font-size: 0.84rem;
}

.ann-side-table {
    margin-top: 12px;
    display: grid;
    gap: 8px;
}

.ann-side-row {
    padding-bottom: 8px;
    border-bottom: 1px dashed rgba(145,168,196,0.14);
}

.ann-side-label {
    color: #70839b;
    font-size: 0.74rem;
}

.ann-side-value {
    margin-top: 3px;
    color: #dce8f8;
    font-size: 0.86rem;
    line-height: 1.45;
}

.ann-related-panel {
    margin-top: 14px;
}

.ann-related-list {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
    margin-top: 12px;
}

.ann-related-item {
    min-height: 104px;
    padding: 11px;
    border-radius: 14px;
    color: #dce8f8;
    text-decoration: none;
    background: rgba(12,25,41,0.72);
    border: 1px solid rgba(145,168,196,0.12);
}

.ann-related-item:hover {
    color: #ffffff;
    border-color: rgba(78,161,255,0.28);
}

.ann-related-date,
.ann-related-kind {
    color: #8fa3bd;
    font-size: 0.70rem;
}

.ann-related-title {
    margin-top: 8px;
    font-size: 0.78rem;
    line-height: 1.45;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

@media (max-width: 768px) {
    .ann-hero,
    .ann-detail-grid,
    .ann-result-head {
        grid-template-columns: 1fr;
        flex-direction: column;
        align-items: flex-start;
    }

    .ann-top-actions,
    .ann-actions {
        justify-content: flex-start;
    }

    .ann-tip-grid,
    .ann-related-list {
        grid-template-columns: 1fr;
    }

    .market-index-overview-inner {
        grid-template-columns: 1fr;
    }

    .market-chart-toolbar {
        flex-direction: column;
    }

    .market-period-pills {
        justify-content: flex-start;
    }

    .market-search-section-body {
        grid-template-columns: 1fr;
    }

    .market-hero-top,
    .market-hero-main {
        flex-direction: column;
    }

    .market-price-block {
        width: 100%;
        border-right: 0;
        border-bottom: 1px solid rgba(145, 168, 196, 0.18);
        padding-right: 0;
        padding-bottom: 14px;
    }

    .market-price {
        font-size: 1.62rem;
    }

    .market-research-head {
        flex-direction: column;
    }

    .market-research-body {
        grid-template-columns: 1fr;
    }

    .market-research-metric-grid.quality,
    .market-research-metric-grid.returns,
    .market-research-metric-grid.growth {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .market-ann-list {
        grid-template-columns: 1fr;
    }
}

.metric-chip-wrap {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 10px;
}

.metric-chip {
    border: 1px solid var(--line-soft);
    border-radius: 10px;
    background: linear-gradient(180deg, rgba(22, 35, 52, 0.95) 0%, rgba(14, 24, 37, 0.95) 100%);
    padding: 10px 12px;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.03);
}

.data-table-shell {
    background: rgba(13, 21, 34, 0.86);
    border-radius: 10px;
    border: 1px solid var(--line-soft);
    overflow-x: auto;
    overflow-y: visible;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.18);
}

.signal-chip-wrap {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.signal-chip {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 999px;
    border: 1px solid rgba(230, 219, 116, 0.55);
    background: rgba(230, 219, 116, 0.08);
    color: #f0dc78;
    font-size: 0.75rem;
    line-height: 1.4;
    white-space: nowrap;
}

/* ── 通用股票列表表格：统一列宽，避免股票名称换行 ─── */
.stock-list-table {
    min-width: 1120px;
    table-layout: auto;
}

.stock-list-table th,
.stock-list-table td {
    vertical-align: middle;
}

.stock-list-table th {
    white-space: nowrap;
}

.stock-list-col-rank {
    min-width: 58px;
    width: 58px;
    white-space: nowrap;
}

.stock-list-col-stock {
    min-width: 158px;
    width: 158px;
}

.stock-list-stock-cell {
    max-width: 146px;
}

.stock-list-stock-name,
.stock-list-stock-cell .home-stock-link {
    display: block;
    max-width: 146px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #58a6ff;
    text-decoration: none;
    font-size: 0.90rem;
    font-weight: 720;
    line-height: 1.35;
}

.stock-list-stock-name:hover,
.stock-list-stock-cell .home-stock-link:hover {
    color: #9ecbff;
}

.stock-list-code {
    display: block;
    max-width: 146px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #6b7f96;
    text-decoration: none;
    font-size: 0.72rem;
    line-height: 1.35;
}

.stock-list-code:hover {
    color: #9ecbff;
}

.stock-list-col-industry {
    min-width: 104px;
    max-width: 148px;
}

.stock-list-industry-badge {
    display: inline-block;
    max-width: 132px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    padding: 3px 8px;
    border-radius: 999px;
    background: rgba(33,38,45,0.92);
    border: 1px solid rgba(145,168,196,0.16);
    color: #a9b8cc;
    font-size: 0.74rem;
    font-weight: 600;
}

.stock-list-ellipsis {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.stock-list-col-num {
    min-width: 86px;
    white-space: nowrap;
}

.stock-list-col-wide-num {
    min-width: 128px;
    white-space: nowrap;
}

.stock-list-col-action {
    min-width: 112px;
    white-space: nowrap;
}

.stock-list-action-cell {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: nowrap;
}

.stock-list-col-signal {
    min-width: 190px;
    max-width: 320px;
    white-space: normal !important;
}

.stock-list-signal-wrap {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    min-width: 170px;
}

.stock-list-signal-chip {
    border-color: rgba(246,189,22,0.42);
    background: rgba(246,189,22,0.10);
    color: #f5d76e;
    max-width: 142px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.font-mono {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.earnings-growth-table {
    min-width: 1280px;
}

.screener-table {
    min-width: 1180px;
}

.opportunity-list-table {
    min-width: 1040px;
}

.chase-stock-table {
    min-width: 1080px;
}

.chase-industry-table {
    min-width: 980px;
}

/* ── 资金与交易表格 ─── */
.flow-table {
    min-width: 1040px;
}

.flow-top-table {
    min-width: 1060px;
}

.flow-block-table {
    min-width: 1260px;
}

.flow-margin-table {
    min-width: 1040px;
}

.flow-margin-detail-table {
    min-width: 1120px;
}

.flow-col-date {
    min-width: 96px;
    white-space: nowrap;
    color: #c9d8ea;
}

.flow-col-exchange {
    min-width: 96px;
    white-space: nowrap;
}

.flow-col-reason {
    min-width: 260px;
    max-width: 360px;
}

.flow-col-broker {
    min-width: 260px;
    max-width: 320px;
}

.flow-reason-text,
.flow-broker-text {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    color: #c9d8ea;
    line-height: 1.45;
}

.flow-reason-text {
    max-width: 340px;
    padding: 5px 9px;
    border-radius: 10px;
    border: 1px solid rgba(246,189,22,0.24);
    background: rgba(246,189,22,0.08);
    color: #f0dc78;
    white-space: nowrap;
}

.flow-broker-text {
    max-width: 300px;
    white-space: nowrap;
}

.flow-exchange-link {
    color: #79c0ff;
    text-decoration: none;
    font-weight: 720;
}

.flow-exchange-link:hover {
    color: #ffffff;
}

/* ── Dropdown 专用隔离样式（避免与报表区域冲突） ─── */
.zh-dropdown .Select-control,
.zh-dropdown .Select-menu-outer,
.zh-dropdown .Select-menu,
.zh-dropdown .Select-input,
.zh-dropdown .Select-input > input,
.zh-dropdown .VirtualizedSelectOption,
.zh-dropdown .VirtualizedSelectFocusedOption,
.zh-dropdown div[class*='-control'],
.zh-dropdown div[class*='-menu'],
.zh-dropdown div[class*='-menuList'],
.zh-dropdown div[class*='-option'] {
    background: #ffffff !important;
    color: #111827 !important;
}

.zh-dropdown .Select-menu-outer {
    z-index: 5000 !important;
    border: 1px solid #c9d1d9 !important;
    box-shadow: 0 18px 45px rgba(0, 0, 0, 0.28) !important;
}

/* Dash 新版 Dropdown 使用 radix portal，菜单不一定在 .zh-dropdown 内部 */
div[data-radix-popper-content-wrapper] {
    z-index: 5000 !important;
}

.dash-dropdown-content {
    background: #ffffff !important;
    color: #111827 !important;
    border: 1px solid #c9d1d9 !important;
    border-radius: 8px !important;
    box-shadow: 0 18px 45px rgba(0, 0, 0, 0.28) !important;
    overflow: hidden;
}

.dash-dropdown-search {
    background: #ffffff !important;
    color: #111827 !important;
    -webkit-text-fill-color: #111827 !important;
}

.dash-dropdown-option {
    background: #ffffff !important;
    color: #111827 !important;
}

.dash-dropdown-option:hover,
.dash-dropdown-option.focused,
.dash-dropdown-option[aria-selected='true'] {
    background: #eaf3ff !important;
    color: #111827 !important;
}

.zh-dropdown .Select-control,
.zh-dropdown div[class*='-control'] {
    border: 1px solid #c9d1d9 !important;
    box-shadow: none !important;
}

.zh-dropdown .Select-placeholder,
.zh-dropdown div[class*='-placeholder'] {
    color: #6b7280 !important;
}

.zh-dropdown .Select-value,
.zh-dropdown .Select-value-label,
.zh-dropdown .Select--single > .Select-control .Select-value,
.zh-dropdown .Select--single > .Select-control .Select-value .Select-value-label,
.zh-dropdown div[class*='-valueContainer'],
.zh-dropdown div[class*='-singleValue'] {
    background: #ffffff !important;
    color: #111827 !important;
}

.zh-dropdown .Select-value-label,
.zh-dropdown .Select-input > input,
.zh-dropdown div[class*='-singleValue'],
.zh-dropdown div[class*='-input'] input {
    color: #111827 !important;
    opacity: 1 !important;
    -webkit-text-fill-color: #111827 !important;
}

.zh-dropdown .Select.has-value.Select--single > .Select-control .Select-value .Select-value-label,
.zh-dropdown .Select.has-value.is-focused.Select--single > .Select-control .Select-value .Select-value-label {
    color: #111827 !important;
}

.zh-dropdown .Select-option.is-focused,
.zh-dropdown .VirtualizedSelectFocusedOption,
.zh-dropdown div[class*='-option']:hover {
    background: #eaf3ff !important;
    color: #111827 !important;
}

.zh-dropdown .Select-option.is-selected,
.zh-dropdown div[class*='-option'][aria-selected='true'] {
    background: #dbeafe !important;
    color: #111827 !important;
}

/* react-select portal 层（脱离组件树）也强制白底深字 */
div[id*='react-select'][id*='-listbox'],
div[id*='react-select'][id*='-option-'] {
    background: #ffffff !important;
    color: #111827 !important;
}

div[id*='react-select'][id*='-option-']:hover,
div[id*='react-select'][id*='-option-'][aria-selected='true'] {
    background: #dbeafe !important;
    color: #111827 !important;
}

/* ── 首页工作台 / 机会中心 ─── */
.home-page {
    position: relative;
}

.home-hero {
    display: flex;
    justify-content: space-between;
    gap: 22px;
    padding: 24px;
    border: 1px solid var(--line-soft);
    border-radius: 22px;
    background:
        radial-gradient(520px 170px at 8% 0%, rgba(78,161,255,0.20), transparent 70%),
        radial-gradient(420px 160px at 100% 5%, rgba(45,201,151,0.13), transparent 68%),
        linear-gradient(145deg, rgba(18,30,46,0.95), rgba(10,20,34,0.96));
    box-shadow: 0 18px 42px rgba(0,0,0,0.24);
    margin: 12px 0 16px;
}

.home-hero.compact {
    display: block;
}

.home-eyebrow {
    color: #79c0ff;
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    margin-bottom: 8px;
}

.home-title {
    color: #f3f8ff;
    font-weight: 850;
    letter-spacing: -0.03em;
    margin-bottom: 8px;
}

.home-subtitle {
    color: #a9b8cc;
    margin: 0;
    max-width: 760px;
}

.home-hero-actions {
    margin-top: 18px;
}

.home-hero-status {
    min-width: 260px;
    padding: 18px;
    border-radius: 18px;
    background: rgba(255,255,255,0.055);
    border: 1px solid rgba(145,168,196,0.18);
    align-self: stretch;
}

.home-hero-label,
.home-hero-note {
    color: #8fa3bd;
    font-size: 0.82rem;
}

.home-hero-date {
    color: #f6bd16;
    font-size: 1.7rem;
    font-weight: 850;
    margin: 8px 0;
}

.home-hero-account {
    color: #eaf2ff;
    font-size: 0.9rem;
    font-weight: 820;
}

.home-panel {
    border: 1px solid var(--line-soft);
    border-radius: 18px;
    padding: 16px;
    background:
        radial-gradient(360px 140px at 0% 0%, rgba(78,161,255,0.11), transparent 68%),
        linear-gradient(180deg, rgba(18,30,46,0.92), rgba(13,24,38,0.96));
    box-shadow: 0 12px 28px rgba(0,0,0,0.18);
}

.home-onboarding-panel,
.watch-empty-guide {
    margin: 0 0 16px;
    padding: 16px;
    border-radius: 20px;
    border: 1px solid rgba(145,168,196,0.18);
    background:
        radial-gradient(520px 150px at 0% 0%, rgba(246,189,22,0.12), transparent 70%),
        radial-gradient(440px 150px at 100% 10%, rgba(78,161,255,0.14), transparent 68%),
        linear-gradient(180deg, rgba(16,28,45,0.94), rgba(9,18,31,0.96));
    box-shadow: 0 14px 34px rgba(0,0,0,0.20);
}

.watch-empty-guide {
    margin-top: 10px;
}

.onboarding-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 12px;
}

.onboarding-eyebrow {
    color: #f6bd16;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.14em;
    white-space: nowrap;
}

.onboarding-title {
    color: #f3f8ff;
    font-size: 1.05rem;
    font-weight: 880;
}

.onboarding-subtitle {
    color: #8fa3bd;
    font-size: 0.84rem;
    max-width: 720px;
    line-height: 1.55;
}

.onboarding-step-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.onboarding-step-card {
    display: block;
    min-height: 138px;
    padding: 14px;
    border-radius: 16px;
    text-decoration: none;
    background: rgba(7,16,29,0.62);
    border: 1px dashed rgba(145,168,196,0.22);
    transition: transform 0.16s ease, border-color 0.16s ease, background 0.16s ease;
}

.onboarding-step-card:hover {
    transform: translateY(-2px);
    background: rgba(13,28,48,0.82);
    border-color: rgba(121,192,255,0.42);
}

.onboarding-step-num {
    color: #79c0ff;
    font-size: 0.74rem;
    font-weight: 900;
    letter-spacing: 0.12em;
}

.onboarding-step-title {
    color: #f3f8ff;
    font-size: 0.92rem;
    font-weight: 850;
    margin-top: 8px;
}

.onboarding-step-desc {
    color: #8fa3bd;
    font-size: 0.78rem;
    line-height: 1.55;
    margin-top: 7px;
}

.onboarding-step-action {
    color: #f6bd16;
    font-size: 0.78rem;
    font-weight: 850;
    margin-top: 10px;
}

.onboarding-note {
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px dashed rgba(145,168,196,0.20);
    color: #7f94ad;
    font-size: 0.78rem;
    line-height: 1.55;
}

.home-section-head {
    margin-bottom: 12px;
}

.home-section-head.inline {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
}

.home-section-title {
    color: #f3f8ff;
    font-weight: 800;
    font-size: 1.02rem;
}

.home-section-subtitle {
    color: #8fa3bd;
    font-size: 0.86rem;
}

.home-section-link {
    color: #79c0ff;
    text-decoration: none;
    font-size: 0.84rem;
    font-weight: 700;
}

/* ── 研究工具页统一视觉：财报 / 选股 / 追涨 / 资金 ─── */
.research-page {
    position: relative;
}

.research-hero {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    padding: 24px;
    border-radius: 22px;
    border: 1px solid var(--line-soft);
    background:
        radial-gradient(520px 180px at 7% 0%, rgba(78,161,255,0.20), transparent 72%),
        radial-gradient(420px 160px at 100% 4%, rgba(246,189,22,0.12), transparent 70%),
        linear-gradient(145deg, rgba(18,30,46,0.95), rgba(10,20,34,0.96));
    box-shadow: 0 18px 42px rgba(0,0,0,0.24);
    margin: 12px 0 16px;
}

.research-hero-content {
    min-width: 0;
}

.research-eyebrow {
    color: #79c0ff;
    font-size: 0.74rem;
    font-weight: 860;
    letter-spacing: 0.16em;
    margin-bottom: 8px;
}

.research-title {
    color: #f3f8ff;
    font-size: clamp(1.5rem, 2.5vw, 2.15rem);
    font-weight: 900;
    letter-spacing: -0.04em;
    margin: 0 0 8px;
}

.research-subtitle {
    color: #a9b8cc;
    max-width: 760px;
    margin: 0;
    line-height: 1.58;
}

.research-hero-side {
    flex: 0 0 auto;
    min-width: 230px;
    display: grid;
    gap: 10px;
}

.research-hero-chip {
    padding: 12px 14px;
    border-radius: 16px;
    background: rgba(255,255,255,0.055);
    border: 1px solid rgba(145,168,196,0.16);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.035);
}

.research-hero-chip-label {
    color: #8fa3bd;
    font-size: 0.74rem;
}

.research-hero-chip-value {
    color: #f3f8ff;
    margin-top: 5px;
    font-size: 1.05rem;
    font-weight: 880;
}

.research-panel {
    border: 1px solid var(--line-soft);
    border-radius: 18px;
    padding: 16px;
    background:
        radial-gradient(360px 140px at 0% 0%, rgba(78,161,255,0.10), transparent 68%),
        linear-gradient(180deg, rgba(18,30,46,0.92), rgba(13,24,38,0.96));
    box-shadow: 0 12px 28px rgba(0,0,0,0.18);
}

.research-toolbar-panel {
    margin-bottom: 14px;
    padding: 18px 20px;
}

.research-toolbar-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 13px;
}

.research-toolbar-title {
    color: #f3f8ff;
    font-size: 1rem;
    font-weight: 850;
}

.research-toolbar-subtitle {
    color: #8fa3bd;
    font-size: 0.82rem;
    line-height: 1.5;
}

.industry-sentence-head {
    display: flex;
    align-items: baseline;
    gap: 12px;
    margin-bottom: 12px;
}

.industry-sentence-line {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    min-height: 42px;
    padding: 12px 14px;
    border-radius: 16px;
    color: #dce8f7;
    background:
        linear-gradient(90deg, rgba(7,16,29,0.74), rgba(13,24,38,0.52)),
        radial-gradient(420px 120px at 12% 0%, rgba(76,211,235,0.10), transparent 70%);
    border: 1px solid rgba(145,168,196,0.16);
}

.industry-sentence-muted {
    color: #8fa3bd;
    font-size: 0.94rem;
    font-weight: 760;
}

.industry-inline-control {
    display: inline-flex;
    align-items: center;
    min-width: 0;
}

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

.industry-inline-options label {
    position: relative;
    display: inline-flex !important;
    align-items: center;
    min-height: 28px !important;
    padding: 0 2px 3px !important;
    border: none !important;
    border-bottom: 2px solid transparent !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: #93a9c2 !important;
    box-shadow: none !important;
    font-size: 0.96rem !important;
    font-weight: 900 !important;
    letter-spacing: 0.01em;
    cursor: pointer;
    transition: color 0.16s ease, border-color 0.16s ease;
}

.industry-inline-options input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
    width: 0;
    height: 0;
    margin: 0 !important;
}

.industry-inline-options label:hover {
    color: #eaf7ff !important;
    transform: none !important;
}

.industry-inline-options label:has(input:checked) {
    color: #35d9ef !important;
    border-bottom-color: #35d9ef !important;
    background: transparent !important;
    box-shadow: none !important;
}

.industry-inline-selected {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 3px 12px;
    border-radius: 999px;
    color: #081421;
    background: linear-gradient(135deg, #f6d365, #fda085);
    font-size: 0.92rem;
    font-weight: 900;
}

.industry-chip-prefix {
    color: #7f94ad;
    font-size: 0.78rem;
    font-weight: 820;
    margin-right: 2px;
}

.industry-hot-chip-row-sentence {
    margin-top: 11px;
    align-items: center;
    max-height: 76px;
}

.research-toolbar-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    align-items: end;
}

.industry-control-grid {
    display: grid;
    grid-template-columns: minmax(260px, 0.85fr) minmax(260px, 0.85fr) minmax(360px, 1.6fr);
    gap: 16px;
    align-items: start;
}

.research-field {
    min-width: 0;
}

.research-label {
    display: block;
    color: #8fa3bd;
    font-size: 0.74rem;
    font-weight: 760;
    margin-bottom: 6px;
}

.research-actions {
    display: flex;
    align-items: center;
    gap: 9px;
    flex-wrap: wrap;
    margin-top: 14px;
}

.research-input-group .form-control,
.research-input-group .input-group-text {
    background: rgba(7,16,29,0.74) !important;
    border-color: rgba(145,168,196,0.22) !important;
    color: #e6edf3 !important;
    box-shadow: none !important;
}

.research-input-group .input-group-text {
    color: #8fa3bd !important;
}

.research-page .zh-dropdown .Select-control,
.research-page .zh-dropdown .Select-menu-outer,
.research-page .zh-dropdown .Select-menu,
.research-page .zh-dropdown .Select-input,
.research-page .zh-dropdown .Select-input > input,
.research-page .zh-dropdown .VirtualizedSelectOption,
.research-page .zh-dropdown .VirtualizedSelectFocusedOption,
.research-page .zh-dropdown div[class*='-control'],
.research-page .zh-dropdown div[class*='-menu'],
.research-page .zh-dropdown div[class*='-menuList'],
.research-page .zh-dropdown div[class*='-option'] {
    background: rgba(7,16,29,0.94) !important;
    color: #e6edf3 !important;
}

.research-page .zh-dropdown .Select-control,
.research-page .zh-dropdown div[class*='-control'] {
    min-height: 32px;
    border: 1px solid rgba(145,168,196,0.22) !important;
    border-radius: 8px !important;
    box-shadow: none !important;
}

.research-page .zh-dropdown .Select-menu-outer,
.research-page .zh-dropdown div[class*='-menu'] {
    border: 1px solid rgba(145,168,196,0.26) !important;
    box-shadow: 0 18px 45px rgba(0,0,0,0.36) !important;
}

.research-page .zh-dropdown .Select-placeholder,
.research-page .zh-dropdown div[class*='-placeholder'] {
    color: #7d90a8 !important;
}

.research-page .zh-dropdown .Select-value,
.research-page .zh-dropdown .Select-value-label,
.research-page .zh-dropdown .Select--single > .Select-control .Select-value,
.research-page .zh-dropdown .Select--single > .Select-control .Select-value .Select-value-label,
.research-page .zh-dropdown div[class*='-valueContainer'],
.research-page .zh-dropdown div[class*='-singleValue'],
.research-page .zh-dropdown .Select-input > input,
.research-page .zh-dropdown div[class*='-input'] input {
    background: transparent !important;
    color: #e6edf3 !important;
    -webkit-text-fill-color: #e6edf3 !important;
}

.research-page .zh-dropdown .Select-option.is-focused,
.research-page .zh-dropdown .VirtualizedSelectFocusedOption,
.research-page .zh-dropdown div[class*='-option']:hover {
    background: rgba(78,161,255,0.18) !important;
    color: #ffffff !important;
}

.research-page .zh-dropdown .Select-option.is-selected,
.research-page .zh-dropdown div[class*='-option'][aria-selected='true'] {
    background: rgba(78,161,255,0.24) !important;
    color: #ffffff !important;
}

.research-tabs {
    border-bottom: 1px solid rgba(145,168,196,0.18) !important;
    margin-bottom: 14px;
}

.research-tabs .nav-link {
    color: #8fa3bd !important;
    font-size: 0.84rem;
    font-weight: 820;
    border: none !important;
    border-bottom: 2px solid transparent !important;
    border-radius: 0 !important;
    background: transparent !important;
}

.research-tabs .nav-link.active {
    color: #f3f8ff !important;
    border-bottom-color: #58a6ff !important;
    background: rgba(78,161,255,0.10) !important;
}

.research-dcc-tabs {
    border-bottom: 1px solid rgba(145,168,196,0.18) !important;
}

.research-dcc-tabs .tab {
    color: #8fa3bd !important;
    background: transparent !important;
    border: none !important;
    border-bottom: 2px solid transparent !important;
    padding: 10px 15px !important;
    font-size: 0.84rem;
    font-weight: 820;
}

.research-dcc-tabs .tab--selected {
    color: #f3f8ff !important;
    background: rgba(78,161,255,0.10) !important;
    border-bottom-color: #58a6ff !important;
}

.research-radio-group {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.research-radio-group label {
    color: #c9d8ea !important;
    padding: 5px 12px;
    border-radius: 999px;
    border: 1px solid rgba(145,168,196,0.18);
    background: rgba(7,16,29,0.56);
    font-size: 0.80rem;
    font-weight: 800;
    cursor: pointer;
}

.research-radio-group input {
    margin-right: 6px;
}

.research-radio-group label:has(input:checked) {
    color: #f3f8ff !important;
    border-color: rgba(78,161,255,0.42);
    background: rgba(78,161,255,0.16);
}

.industry-period-segment,
.industry-scope-segment {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
}

.industry-period-segment label,
.industry-scope-segment label {
    position: relative;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 8px 16px !important;
    color: #c9d8ea !important;
    border: 1px solid rgba(145,168,196,0.18);
    border-radius: 999px;
    background:
        linear-gradient(180deg, rgba(17,31,49,0.82), rgba(9,20,34,0.72));
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.04);
    font-size: 0.84rem !important;
    font-weight: 850 !important;
    cursor: pointer;
    transition: border-color 0.18s ease, background 0.18s ease, transform 0.18s ease;
}

.industry-period-segment input,
.industry-scope-segment input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
    width: 0;
    height: 0;
    margin: 0 !important;
}

.industry-period-segment label:hover,
.industry-scope-segment label:hover,
.industry-hot-chip:hover {
    border-color: rgba(76,211,235,0.45);
    transform: translateY(-1px);
}

.industry-period-segment label:has(input:checked),
.industry-scope-segment label:has(input:checked) {
    color: #081421 !important;
    border-color: rgba(76,211,235,0.72);
    background: linear-gradient(135deg, #5bdcff, #68f0c8);
    box-shadow: 0 10px 24px rgba(76,211,235,0.16);
}

.industry-chip-field {
    min-width: 0;
}

.industry-chip-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 6px;
}

.industry-selected-label {
    color: #6ee7d8;
    font-size: 0.76rem;
    font-weight: 820;
    white-space: nowrap;
}

.industry-hot-chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    max-height: 88px;
    overflow: hidden;
}

.industry-hot-chip {
    appearance: none;
    border: 1px solid rgba(145,168,196,0.18);
    border-radius: 999px;
    background: rgba(7,16,29,0.54);
    color: #c9d8ea;
    padding: 7px 12px;
    font-size: 0.80rem;
    line-height: 1;
    font-weight: 820;
    cursor: pointer;
    transition: border-color 0.18s ease, color 0.18s ease, background 0.18s ease, transform 0.18s ease;
}

.industry-hot-chip-all {
    color: #081421;
    border-color: rgba(246,189,22,0.72);
    background: linear-gradient(135deg, #f6d365, #fda085);
}

.industry-sentence-line .industry-inline-options label {
    min-height: 28px !important;
    padding: 0 2px 3px !important;
    border: none !important;
    border-bottom: 2px solid transparent !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: #93a9c2 !important;
    box-shadow: none !important;
    font-size: 0.96rem !important;
    font-weight: 900 !important;
}

.industry-sentence-line .industry-inline-options label:hover {
    color: #eaf7ff !important;
    border-bottom-color: rgba(53,217,239,0.42) !important;
    transform: none !important;
}

.industry-sentence-line .industry-inline-options label:has(input:checked) {
    color: #35d9ef !important;
    border-bottom-color: #35d9ef !important;
    background: transparent !important;
    box-shadow: none !important;
}

.research-pagination-wrap {
    display: flex;
    justify-content: center;
    padding-top: 14px;
}

.research-pagination {
    gap: 6px;
}

.research-pagination .page-link {
    min-width: 34px;
    text-align: center;
    color: #9ecbff !important;
    background: rgba(7,16,29,0.62) !important;
    border: 1px solid rgba(145,168,196,0.18) !important;
    border-radius: 999px !important;
    box-shadow: none !important;
    font-size: 0.80rem;
    font-weight: 820;
}

.research-pagination .page-link:hover {
    color: #ffffff !important;
    background: rgba(78,161,255,0.16) !important;
    border-color: rgba(78,161,255,0.34) !important;
}

.research-pagination .page-item.active .page-link {
    color: #ffffff !important;
    background: linear-gradient(135deg, #1689ff 0%, #2dc997 100%) !important;
    border-color: transparent !important;
}

.research-pagination .page-item.disabled .page-link {
    color: #53657a !important;
    background: rgba(7,16,29,0.36) !important;
    border-color: rgba(145,168,196,0.10) !important;
}

.research-kpi-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 14px;
}

.research-kpi-grid.four {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.research-kpi-grid.six {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.research-kpi-card {
    min-height: 88px;
    padding: 12px;
    border-radius: 15px;
    background:
        radial-gradient(180px 90px at 100% 0%, rgba(255,255,255,0.06), transparent 72%),
        rgba(7,16,29,0.62);
    border: 1px solid rgba(145,168,196,0.14);
}

.research-kpi-label {
    color: #8fa3bd;
    font-size: 0.72rem;
}

.research-kpi-value {
    margin-top: 6px;
    color: #f3f8ff;
    font-size: 1.06rem;
    font-weight: 900;
    letter-spacing: -0.02em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.research-kpi-value.red { color: #ef5350; }
.research-kpi-value.green { color: #2dc997; }
.research-kpi-value.blue { color: #79c0ff; }
.research-kpi-value.yellow { color: #f6bd16; }

.research-kpi-helper {
    margin-top: 5px;
    color: #6f8198;
    font-size: 0.72rem;
    line-height: 1.4;
}

.research-note {
    padding: 12px 14px;
    border-radius: 14px;
    color: #a9b8cc;
    background: rgba(7,16,29,0.56);
    border: 1px solid rgba(145,168,196,0.14);
    font-size: 0.82rem;
    line-height: 1.55;
}

.research-section-title {
    color: #f3f8ff;
    font-size: 0.98rem;
    font-weight: 850;
    margin-bottom: 10px;
}

.research-empty,
.research-alert {
    padding: 14px 16px;
    border-radius: 15px;
    color: #a9b8cc;
    background: rgba(7,16,29,0.58);
    border: 1px solid rgba(145,168,196,0.16);
}

.research-content-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
    color: #8fa3bd;
    font-size: 0.82rem;
}

.research-content-title {
    color: #f3f8ff;
    font-weight: 850;
}

.research-content-subtitle {
    color: #8fa3bd;
    font-size: 0.82rem;
    line-height: 1.5;
    margin-top: 3px;
}

.industry-chart-subtitle {
    color: #d6e4f3;
    font-size: 0.88rem;
    font-weight: 720;
    letter-spacing: 0.01em;
}

.research-inline-link {
    color: #79c0ff;
    text-decoration: none;
    font-weight: 800;
}

.research-inline-link:hover {
    color: #ffffff;
}

/* ── 财务分析页：新版研究页风格 ─── */
.finance-hero {
    overflow: hidden;
}

.finance-stock-line {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}

.finance-stock-name {
    color: #f3f8ff;
    font-size: 1.06rem;
    font-weight: 880;
}

.finance-stock-code,
.finance-stock-industry {
    padding: 4px 9px;
    border-radius: 999px;
    color: #b8c8dc;
    font-size: 0.78rem;
    font-weight: 760;
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(145,168,196,0.16);
}

.finance-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 14px;
}

.finance-hero-action {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: 6px 12px;
    border-radius: 999px;
    border: 1px solid rgba(121,192,255,0.28);
    background: rgba(78,161,255,0.10);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.04);
}

.finance-summary-wrap {
    display: grid;
    gap: 12px;
    margin-bottom: 14px;
}

.finance-summary-grid {
    display: grid;
    grid-template-columns: minmax(240px, 0.72fr) minmax(0, 1.8fr);
    gap: 12px;
    align-items: stretch;
}

.finance-score-card {
    min-height: 190px;
    padding: 18px;
    overflow: hidden;
}

.finance-score-card.good {
    background:
        radial-gradient(280px 140px at 100% 0%, rgba(45,201,151,0.22), transparent 72%),
        linear-gradient(180deg, rgba(18,43,38,0.94), rgba(12,27,36,0.96));
}

.finance-score-card.stable {
    background:
        radial-gradient(280px 140px at 100% 0%, rgba(78,161,255,0.22), transparent 72%),
        linear-gradient(180deg, rgba(18,34,52,0.94), rgba(12,24,38,0.96));
}

.finance-score-card.watch {
    background:
        radial-gradient(280px 140px at 100% 0%, rgba(246,189,22,0.22), transparent 72%),
        linear-gradient(180deg, rgba(45,37,18,0.94), rgba(20,25,36,0.96));
}

.finance-score-card.risk {
    background:
        radial-gradient(280px 140px at 100% 0%, rgba(239,83,80,0.24), transparent 72%),
        linear-gradient(180deg, rgba(48,24,28,0.94), rgba(24,24,36,0.96));
}

.finance-summary-eyebrow {
    color: #8fa3bd;
    font-size: 0.74rem;
    font-weight: 860;
    letter-spacing: 0.12em;
}

.finance-score-line {
    display: flex;
    align-items: baseline;
    gap: 4px;
    margin-top: 14px;
}

.finance-score-number {
    color: #f3f8ff;
    font-size: clamp(2.4rem, 5vw, 3.35rem);
    font-weight: 950;
    letter-spacing: -0.06em;
    line-height: 0.92;
}

.finance-score-unit {
    color: #7f93ad;
    font-size: 0.95rem;
    font-weight: 800;
}

.finance-score-label {
    color: #f3f8ff;
    margin-top: 10px;
    font-size: 1rem;
    font-weight: 900;
}

.finance-score-desc {
    color: #a9b8cc;
    margin-top: 8px;
    font-size: 0.82rem;
    line-height: 1.55;
}

.finance-score-footnote {
    color: #6f8198;
    margin-top: 12px;
    font-size: 0.74rem;
}

.finance-score-basis {
    margin-top: 7px;
    color: #8fa3bd;
    font-size: 0.72rem;
    line-height: 1.42;
}

.finance-basis-note {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 10px;
    padding: 10px 13px;
    border-radius: 15px;
    color: #a9b8cc;
    background:
        radial-gradient(240px 80px at 0% 0%, rgba(78,161,255,0.10), transparent 70%),
        rgba(7,16,29,0.52);
    border: 1px solid rgba(145,168,196,0.14);
}

.finance-basis-label {
    padding: 3px 8px;
    border-radius: 999px;
    color: #dbeafe;
    font-size: 0.70rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    background: rgba(78,161,255,0.14);
    border: 1px solid rgba(78,161,255,0.26);
    white-space: nowrap;
}

.finance-basis-text {
    color: #dbeafe;
    font-size: 0.76rem;
    font-weight: 760;
}

.finance-basis-helper {
    color: #7f93ad;
    font-size: 0.74rem;
}

.finance-summary-kpi-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.finance-summary-kpi-stack {
    display: grid;
    gap: 10px;
}

.finance-summary-kpi-grid-four {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.finance-summary-block-title {
    color: #dbeafe;
    font-size: 0.78rem;
    font-weight: 900;
    letter-spacing: 0.08em;
}

.finance-summary-block-title.second {
    margin-top: 4px;
    color: #f6bd16;
}

.finance-summary-kpi-card {
    min-height: 90px;
    padding: 13px;
    border-radius: 16px;
    background:
        radial-gradient(160px 82px at 100% 0%, rgba(255,255,255,0.055), transparent 72%),
        rgba(7,16,29,0.64);
    border: 1px solid rgba(145,168,196,0.14);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.035);
    min-width: 0;
}

.finance-summary-kpi-label {
    color: #8fa3bd;
    font-size: 0.72rem;
    font-weight: 760;
}

.finance-term-label {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    max-width: 100%;
    vertical-align: middle;
}

.finance-term-label-text {
    color: inherit;
    min-width: 0;
}

.finance-term-label-help {
    cursor: help;
    border-bottom: 1px dotted rgba(121,192,255,0.42);
    outline: none;
}

.finance-term-label-help:focus-visible {
    color: #f3f8ff;
    border-bottom-color: rgba(246,189,22,0.75);
}

.finance-term-help-dot {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 14px;
    height: 14px;
    flex: 0 0 14px;
    border-radius: 50%;
    color: #9fc8ff;
    font-size: 0.62rem;
    font-weight: 900;
    line-height: 1;
    background: rgba(78,161,255,0.12);
    border: 1px solid rgba(78,161,255,0.28);
}

.finance-term-tooltip .tooltip-inner {
    max-width: 320px;
    padding: 10px 12px;
    color: #e8f2ff;
    text-align: left;
    font-size: 0.78rem;
    line-height: 1.55;
    border-radius: 12px;
    background:
        radial-gradient(220px 90px at 0% 0%, rgba(78,161,255,0.18), transparent 72%),
        rgba(10,20,34,0.98);
    border: 1px solid rgba(145,168,196,0.22);
    box-shadow: 0 16px 36px rgba(0,0,0,0.36);
}

.finance-term-tooltip.bs-tooltip-top .tooltip-arrow::before,
.finance-term-tooltip.bs-tooltip-auto[data-popper-placement^="top"] .tooltip-arrow::before {
    border-top-color: rgba(10,20,34,0.98);
}

.finance-summary-kpi-value {
    margin-top: 7px;
    color: #f3f8ff;
    font-size: 1.04rem;
    font-weight: 920;
    letter-spacing: -0.02em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.finance-summary-kpi-value.green { color: #2dc997; }
.finance-summary-kpi-value.red { color: #ef5350; }
.finance-summary-kpi-value.blue { color: #79c0ff; }
.finance-summary-kpi-value.yellow { color: #f6bd16; }

.finance-summary-kpi-helper {
    margin-top: 6px;
    color: #6f8198;
    font-size: 0.72rem;
    line-height: 1.35;
}

.finance-alert-panel {
    padding: 15px;
}

.finance-alert-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.finance-alert-item {
    min-height: 112px;
    padding: 12px;
    border-radius: 15px;
    background: rgba(7,16,29,0.58);
    border: 1px solid rgba(145,168,196,0.14);
}

.finance-alert-item.good {
    border-color: rgba(45,201,151,0.24);
    background: rgba(45,201,151,0.07);
}

.finance-alert-item.info {
    border-color: rgba(78,161,255,0.24);
    background: rgba(78,161,255,0.07);
}

.finance-alert-item.warn {
    border-color: rgba(246,189,22,0.28);
    background: rgba(246,189,22,0.075);
}

.finance-alert-item.risk {
    border-color: rgba(239,83,80,0.30);
    background: rgba(239,83,80,0.075);
}

.finance-alert-title {
    color: #f3f8ff;
    font-size: 0.84rem;
    font-weight: 880;
}

.finance-alert-body {
    color: #8fa3bd;
    margin-top: 6px;
    font-size: 0.76rem;
    line-height: 1.48;
}

.finance-alert-details {
    display: grid;
    gap: 5px;
    margin-top: 9px;
    padding-top: 8px;
    border-top: 1px solid rgba(145,168,196,0.12);
}

.finance-alert-detail-row {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 7px;
    align-items: start;
}

.finance-alert-detail-label {
    color: #6f8198;
    font-size: 0.68rem;
    font-weight: 850;
    white-space: nowrap;
}

.finance-alert-detail-text {
    color: #b8c8dc;
    font-size: 0.70rem;
    line-height: 1.38;
}

.finance-industry-panel {
    padding: 15px;
    margin-bottom: 14px;
}

.finance-industry-head {
    align-items: flex-start;
}

.finance-industry-summary-pill {
    flex: 0 0 auto;
    padding: 6px 12px;
    border-radius: 999px;
    color: #f3f8ff;
    font-size: 0.78rem;
    font-weight: 860;
    background: rgba(78,161,255,0.13);
    border: 1px solid rgba(78,161,255,0.28);
}

.finance-industry-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 9px;
}

.finance-industry-card {
    min-height: 118px;
    padding: 12px;
    border-radius: 15px;
    background:
        radial-gradient(150px 80px at 100% 0%, rgba(255,255,255,0.052), transparent 72%),
        rgba(7,16,29,0.62);
    border: 1px solid rgba(145,168,196,0.14);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.035);
}

.finance-industry-label {
    color: #8fa3bd;
    font-size: 0.72rem;
    font-weight: 780;
}

.finance-industry-value {
    margin-top: 7px;
    color: #f3f8ff;
    font-size: 1rem;
    font-weight: 920;
    letter-spacing: -0.02em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.finance-industry-value.green { color: #2dc997; }
.finance-industry-value.red { color: #ef5350; }
.finance-industry-value.yellow { color: #f6bd16; }

.finance-industry-rank {
    margin-top: 6px;
    color: #c9d8ea;
    font-size: 0.72rem;
    line-height: 1.35;
}

.finance-industry-helper {
    margin-top: 5px;
    color: #6f8198;
    font-size: 0.70rem;
    line-height: 1.35;
}

.finance-peer-section {
    margin-top: 13px;
    padding-top: 13px;
    border-top: 1px solid rgba(145,168,196,0.14);
}

.finance-peer-head {
    margin-bottom: 9px;
}

.finance-peer-table-wrap {
    overflow-x: auto;
    border-radius: 13px;
    border: 1px solid rgba(145,168,196,0.14);
    background: rgba(7,16,29,0.44);
}

.finance-peer-table {
    color: #c9d8ea;
    font-size: 0.78rem;
}

.finance-peer-table thead th {
    color: #8fa3bd;
    font-weight: 760;
    border-bottom: 1px solid rgba(145,168,196,0.14) !important;
    background: rgba(20,32,49,0.74);
    white-space: nowrap;
}

.finance-peer-table tbody td {
    border-bottom: 1px solid rgba(145,168,196,0.08) !important;
    white-space: nowrap;
}

.finance-peer-table tbody tr.current td {
    background: rgba(78,161,255,0.10) !important;
}

.finance-peer-link {
    color: #f3f8ff;
    font-weight: 850;
    text-decoration: none;
}

.finance-peer-link:hover {
    color: #79c0ff;
}

.finance-peer-code {
    margin-top: 2px;
    color: #6f8198;
    font-size: 0.70rem;
}

.finance-master-panel {
    padding: 15px;
    margin-bottom: 14px;
    background:
        radial-gradient(360px 140px at 100% 0%, rgba(246,189,22,0.10), transparent 70%),
        linear-gradient(180deg, rgba(18,30,46,0.92), rgba(13,24,38,0.96));
}

.finance-master-head {
    align-items: flex-start;
}

.finance-master-link {
    flex: 0 0 auto;
    color: #f6bd16;
    text-decoration: none;
    font-size: 0.78rem;
    font-weight: 880;
    padding: 6px 12px;
    border-radius: 999px;
    background: rgba(246,189,22,0.08);
    border: 1px solid rgba(246,189,22,0.24);
}

.finance-master-link:hover {
    color: #ffffff;
    background: rgba(246,189,22,0.14);
}

.finance-master-headline {
    color: #f3f8ff;
    font-size: 0.92rem;
    font-weight: 900;
    margin: -2px 0 12px;
    padding: 10px 12px;
    border-radius: 14px;
    background: rgba(7,16,29,0.50);
    border: 1px solid rgba(145,168,196,0.13);
}

.finance-master-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 11px;
}

.finance-master-card {
    min-height: 320px;
    padding: 14px;
    border-radius: 17px;
    background:
        radial-gradient(180px 95px at 100% 0%, rgba(255,255,255,0.06), transparent 72%),
        rgba(7,16,29,0.62);
    border: 1px solid rgba(145,168,196,0.14);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.035);
}

.finance-master-card.good {
    border-color: rgba(45,201,151,0.25);
}

.finance-master-card.stable {
    border-color: rgba(78,161,255,0.26);
}

.finance-master-card.watch {
    border-color: rgba(246,189,22,0.28);
}

.finance-master-card.risk {
    border-color: rgba(239,83,80,0.26);
}

.finance-master-card-head {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
}

.finance-master-name {
    color: #f3f8ff;
    font-size: 1rem;
    font-weight: 940;
}

.finance-master-subtitle {
    color: #8fa3bd;
    margin-top: 5px;
    font-size: 0.75rem;
    line-height: 1.48;
}

.finance-master-scorebox {
    flex: 0 0 auto;
    text-align: right;
}

.finance-master-score {
    color: #f3f8ff;
    font-size: 1.55rem;
    font-weight: 950;
    line-height: 1;
    letter-spacing: -0.04em;
}

.finance-master-level {
    display: inline-flex;
    margin-top: 6px;
    padding: 3px 8px;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 880;
    color: #8fa3bd;
    background: rgba(255,255,255,0.055);
    border: 1px solid rgba(145,168,196,0.14);
}

.finance-master-level.good {
    color: #9ef0cf;
    background: rgba(45,201,151,0.08);
    border-color: rgba(45,201,151,0.24);
}

.finance-master-level.stable {
    color: #9ecbff;
    background: rgba(78,161,255,0.08);
    border-color: rgba(78,161,255,0.24);
}

.finance-master-level.watch {
    color: #ffe08a;
    background: rgba(246,189,22,0.08);
    border-color: rgba(246,189,22,0.26);
}

.finance-master-level.risk {
    color: #ffb4b0;
    background: rgba(239,83,80,0.08);
    border-color: rgba(239,83,80,0.28);
}

.finance-master-meta-row {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 12px;
}

.finance-master-pass-pill {
    color: #c9d8ea;
    font-size: 0.70rem;
    font-weight: 820;
    padding: 4px 8px;
    border-radius: 999px;
    background: rgba(78,161,255,0.08);
    border: 1px solid rgba(78,161,255,0.18);
}

.finance-master-pass-pill.muted {
    color: #8fa3bd;
    background: rgba(255,255,255,0.045);
    border-color: rgba(145,168,196,0.13);
}

.finance-master-check-list {
    display: grid;
    gap: 7px;
    margin-top: 12px;
}

.finance-master-check-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 34px;
    padding: 7px 8px;
    border-radius: 11px;
    background: rgba(255,255,255,0.035);
    border: 1px solid rgba(145,168,196,0.10);
}

.finance-master-check-left {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 7px;
}

.finance-master-check-state {
    flex: 0 0 auto;
    min-width: 42px;
    text-align: center;
    padding: 2px 6px;
    border-radius: 999px;
    font-size: 0.65rem;
    font-weight: 880;
}

.finance-master-check-state.pass {
    color: #9ef0cf;
    background: rgba(45,201,151,0.10);
}

.finance-master-check-state.fail {
    color: #ffb4b0;
    background: rgba(239,83,80,0.10);
}

.finance-master-check-state.unknown {
    color: #8fa3bd;
    background: rgba(145,168,196,0.08);
}

.finance-master-check-label {
    min-width: 0;
    color: #c9d8ea;
    font-size: 0.74rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.finance-master-check-value {
    flex: 0 0 auto;
    color: #f3f8ff;
    font-size: 0.74rem;
    font-weight: 880;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
}

.finance-master-conclusion {
    color: #a9b8cc;
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px solid rgba(145,168,196,0.12);
    font-size: 0.76rem;
    line-height: 1.5;
}

.finance-trend-panel {
    padding: 14px;
    margin-bottom: 13px;
    border-radius: 17px;
}

.finance-trend-panel.good {
    background:
        radial-gradient(320px 110px at 0% 0%, rgba(45,201,151,0.12), transparent 70%),
        linear-gradient(180deg, rgba(18,30,46,0.92), rgba(13,24,38,0.96));
}

.finance-trend-panel.warn,
.finance-trend-panel.watch {
    background:
        radial-gradient(320px 110px at 0% 0%, rgba(246,189,22,0.12), transparent 70%),
        linear-gradient(180deg, rgba(18,30,46,0.92), rgba(13,24,38,0.96));
}

.finance-trend-panel.risk {
    background:
        radial-gradient(320px 110px at 0% 0%, rgba(239,83,80,0.14), transparent 70%),
        linear-gradient(180deg, rgba(18,30,46,0.92), rgba(13,24,38,0.96));
}

.finance-trend-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 11px;
}

.finance-trend-title {
    color: #f3f8ff;
    font-size: 0.95rem;
    font-weight: 900;
}

.finance-trend-lead {
    color: #a9b8cc;
    margin-top: 5px;
    font-size: 0.84rem;
    line-height: 1.55;
}

.finance-trend-badge {
    flex: 0 0 auto;
    padding: 5px 10px;
    border-radius: 999px;
    color: #dbeafe;
    font-size: 0.72rem;
    font-weight: 880;
    border: 1px solid rgba(145,168,196,0.18);
    background: rgba(7,16,29,0.48);
}

.finance-trend-badge.good {
    color: #9ef0cf;
    border-color: rgba(45,201,151,0.26);
    background: rgba(45,201,151,0.08);
}

.finance-trend-badge.warn,
.finance-trend-badge.watch {
    color: #ffe08a;
    border-color: rgba(246,189,22,0.28);
    background: rgba(246,189,22,0.08);
}

.finance-trend-badge.risk {
    color: #ffb4b0;
    border-color: rgba(239,83,80,0.30);
    background: rgba(239,83,80,0.08);
}

.finance-trend-chip-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 8px;
}

.finance-trend-chip {
    min-height: 76px;
    padding: 10px 11px;
    border-radius: 14px;
    background: rgba(7,16,29,0.54);
    border: 1px solid rgba(145,168,196,0.13);
}

.finance-trend-chip-label {
    color: #8fa3bd;
    font-size: 0.70rem;
    font-weight: 760;
}

.finance-trend-chip-value {
    margin-top: 6px;
    color: #f3f8ff;
    font-size: 0.95rem;
    font-weight: 900;
    letter-spacing: -0.02em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.finance-trend-chip-value.good { color: #2dc997; }
.finance-trend-chip-value.bad { color: #ef5350; }
.finance-trend-chip-value.blue { color: #79c0ff; }
.finance-trend-chip-value.yellow { color: #f6bd16; }

.finance-trend-chip-helper {
    margin-top: 5px;
    color: #6f8198;
    font-size: 0.68rem;
    line-height: 1.3;
}

.finance-cash-quality-wrap {
    display: grid;
    gap: 12px;
    margin-bottom: 14px;
}

.finance-cash-score-card {
    min-height: 178px;
}

.finance-cash-kpi-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.finance-cash-alert-panel {
    padding: 15px;
}

.finance-quick-view-toggle label {
    transition: background .16s ease, border-color .16s ease, color .16s ease, transform .16s ease;
}

.finance-quick-view-toggle label:hover {
    color: #ffffff !important;
    border-color: rgba(78,161,255,0.36);
    background: rgba(78,161,255,0.13);
    transform: translateY(-1px);
}

.finance-quick-panel {
    padding: 15px;
}

.finance-quick-body {
    display: grid;
    gap: 12px;
}

.finance-quick-controls {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) auto;
    gap: 12px;
    align-items: end;
}

.finance-metric-tabs-wrap {
    border-bottom: 0 !important;
    overflow-x: auto;
    padding-bottom: 2px;
}

.finance-metric-tabs-wrap .tab {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    padding: 7px 13px !important;
    margin: 0 7px 7px 0;
    border: 1px solid rgba(145,168,196,0.18) !important;
    border-radius: 999px !important;
    background: rgba(7,16,29,0.56) !important;
    color: #c9d8ea !important;
    font-size: 0.80rem !important;
    font-weight: 820 !important;
    white-space: nowrap;
    transition: background .16s ease, border-color .16s ease, color .16s ease, transform .16s ease;
}

.finance-metric-tabs-wrap .tab:hover {
    color: #ffffff !important;
    border-color: rgba(78,161,255,0.36) !important;
    background: rgba(78,161,255,0.13) !important;
    transform: translateY(-1px);
}

.finance-metric-tabs-wrap .tab--selected {
    color: #f3f8ff !important;
    border-color: rgba(78,161,255,0.46) !important;
    background: rgba(78,161,255,0.18) !important;
}

.finance-metric-tabs {
    border-bottom: 0 !important;
    min-height: auto !important;
}

.finance-quick-view-field {
    min-width: 190px;
}

@media (max-width: 1200px) {
    .research-kpi-grid,
    .research-kpi-grid.six {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .finance-summary-grid {
        grid-template-columns: 1fr;
    }

    .finance-industry-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .finance-master-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 992px) {
    .research-hero {
        flex-direction: column;
    }

    .research-hero-side {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        min-width: 0;
    }

    .research-toolbar-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .industry-control-grid {
        grid-template-columns: 1fr;
    }

    .finance-quick-controls {
        grid-template-columns: 1fr;
    }

    .finance-quick-view-field {
        min-width: 0;
    }

    .finance-summary-kpi-grid,
    .finance-summary-kpi-grid-four,
    .finance-industry-grid,
    .finance-trend-chip-grid,
    .finance-master-grid,
    .finance-alert-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .finance-table-wrap .table {
        min-width: 900px;
    }
}

@media (max-width: 640px) {
    .research-hero,
    .research-panel {
        padding: 16px;
    }

    .research-hero-side,
    .research-toolbar-grid,
    .industry-control-grid,
    .research-kpi-grid,
    .research-kpi-grid.four,
    .research-kpi-grid.six,
    .finance-summary-kpi-grid,
    .finance-summary-kpi-grid-four,
    .finance-industry-grid,
    .finance-trend-chip-grid,
    .finance-master-grid,
    .finance-alert-list {
        grid-template-columns: 1fr;
    }

    .finance-trend-head {
        flex-direction: column;
    }

    .finance-score-card {
        min-height: auto;
        padding: 16px;
    }

    .finance-score-number {
        font-size: 2.35rem;
    }

    .finance-basis-note {
        align-items: flex-start;
        flex-direction: column;
    }

    .finance-basis-text,
    .finance-basis-helper {
        font-size: 0.72rem;
        line-height: 1.45;
    }

    .finance-table-wrap .table {
        min-width: 820px;
    }

    .sticky-name {
        min-width: 140px;
        max-width: 170px;
    }

    .finance-alert-item {
        min-height: auto;
    }

    .finance-alert-detail-row {
        grid-template-columns: 52px minmax(0, 1fr);
    }

    .finance-master-head,
    .finance-master-card-head {
        flex-direction: column;
    }

    .finance-master-scorebox {
        text-align: left;
    }

    .research-toolbar-head,
    .research-content-head {
        flex-direction: column;
        align-items: flex-start;
    }
}

.home-index-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
}

.home-index-card {
    display: block;
    padding: 14px;
    border-radius: 16px;
    background: rgba(9,18,31,0.72);
    border: 1px solid rgba(145,168,196,0.18);
    text-decoration: none;
    transition: transform 0.16s ease, border-color 0.16s ease, background 0.16s ease;
}

.home-index-card:hover {
    transform: translateY(-2px);
    border-color: rgba(78,161,255,0.45);
    background: rgba(17,32,51,0.92);
}

.home-index-name {
    color: #dce8f8;
    font-weight: 800;
    font-size: 0.94rem;
}

.home-index-point {
    font-size: 1.35rem;
    font-weight: 500;
    margin-top: 8px;
}

.home-index-change {
    font-size: 0.84rem;
    margin-top: 2px;
}

.home-mini-panel {
    border: 1px solid rgba(145,168,196,0.18);
    border-radius: 16px;
    padding: 13px;
    background: rgba(7,16,29,0.62);
    height: 100%;
}

.home-mini-title {
    color: #f3f8ff;
    font-weight: 800;
    margin-bottom: 8px;
}

.home-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.home-row {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    padding: 9px 0;
    border-bottom: 1px solid rgba(145,168,196,0.10);
    min-width: 0;
    overflow: hidden;
}

.home-row:last-child {
    border-bottom: 0;
}

.home-stock-link {
    display: block;
    max-width: 150px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #dce8f8;
    text-decoration: none;
    font-weight: 750;
}

.home-stock-link:hover {
    color: #79c0ff;
}

.home-row-meta {
    display: block;
    color: #8193aa;
    font-size: 0.76rem;
    margin-top: 2px;
    max-width: 150px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.home-row-value {
    flex: 0 0 auto;
    min-width: 58px;
    max-width: 86px;
    overflow: hidden;
    text-overflow: ellipsis;
    text-align: right;
    color: #f3f8ff;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.84rem;
    font-weight: 800;
    white-space: nowrap;
}

.home-row > div:first-child {
    min-width: 0;
    flex: 1 1 auto;
}

.home-row-value.blue {
    color: #79c0ff;
}

.home-empty,
.home-empty-title {
    color: #8fa3bd;
    font-size: 0.88rem;
}

.home-empty-title {
    color: #dce8f8;
    font-weight: 800;
    margin-bottom: 4px;
}

.home-kpi-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
    margin-bottom: 10px;
}

.home-kpi {
    border-radius: 12px;
    padding: 9px;
    background: rgba(255,255,255,0.055);
    border: 1px solid rgba(145,168,196,0.12);
}

.home-kpi-number {
    display: block;
    color: #f3f8ff;
    font-weight: 850;
    font-size: 1rem;
}

.home-kpi-number.red { color: #ef5350; }
.home-kpi-number.green { color: #26a69a; }

.home-kpi-label {
    color: #8fa3bd;
    font-size: 0.72rem;
}

.home-module-grid,
.opp-feature-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.opp-feature-grid {
    margin-top: 14px;
}

.home-module-card,
.opp-feature-card {
    display: block;
    min-height: 142px;
    padding: 16px;
    border-radius: 18px;
    text-decoration: none;
    border: 1px solid rgba(145,168,196,0.18);
    background: rgba(8,18,31,0.72);
    transition: transform 0.16s ease, border-color 0.16s ease;
}

.home-module-card:hover,
.opp-feature-card:hover {
    transform: translateY(-2px);
    border-color: rgba(78,161,255,0.48);
}

.home-module-card.blue,
.opp-feature-card.blue { background: linear-gradient(145deg, rgba(36,82,142,0.46), rgba(8,18,31,0.78)); }
.home-module-card.green,
.opp-feature-card.green { background: linear-gradient(145deg, rgba(30,116,84,0.38), rgba(8,18,31,0.78)); }
.home-module-card.orange,
.opp-feature-card.orange { background: linear-gradient(145deg, rgba(151,95,32,0.38), rgba(8,18,31,0.78)); }
.home-module-card.purple,
.opp-feature-card.purple { background: linear-gradient(145deg, rgba(104,94,205,0.36), rgba(8,18,31,0.78)); }

.home-module-title,
.opp-card-title {
    color: #f3f8ff;
    font-weight: 850;
    font-size: 1rem;
}

.home-module-desc,
.opp-card-desc {
    color: #a9b8cc;
    font-size: 0.84rem;
    margin-top: 8px;
    min-height: 42px;
}

.home-module-action,
.opp-card-action {
    color: #79c0ff;
    font-size: 0.82rem;
    font-weight: 800;
    margin-top: 12px;
}

.opp-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 4px 8px;
    border-radius: 999px;
    color: #9ecbff;
    background: rgba(78,161,255,0.16);
    border: 1px solid rgba(78,161,255,0.26);
    font-size: 0.72rem;
    font-weight: 850;
    margin-bottom: 12px;
}

.opp-principle {
    height: 100%;
    padding: 14px;
    border-radius: 14px;
    background: rgba(7,16,29,0.58);
    border: 1px solid rgba(145,168,196,0.16);
    color: #dce8f8;
}

.opp-principle p {
    color: #8fa3bd;
    font-size: 0.84rem;
    margin: 8px 0 0;
}

.dropdown-menu {
    z-index: 3100 !important;
    background: rgba(13, 24, 38, 0.98) !important;
    border: 1px solid var(--line-soft) !important;
    border-radius: 12px !important;
    box-shadow: 0 14px 34px rgba(0,0,0,0.28);
}

.dropdown-item {
    color: #c9d8ea !important;
    font-size: 0.9rem;
}

.dropdown-item:hover,
.dropdown-item:focus {
    color: #ffffff !important;
    background: rgba(78,161,255,0.14) !important;
}

@media (max-width: 992px) {
    .home-hero {
        flex-direction: column;
    }
    .home-index-grid,
    .home-module-grid,
    .opp-feature-grid,
    .onboarding-step-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .onboarding-head {
        display: block;
    }
    .onboarding-subtitle {
        margin-top: 6px;
    }
}

@media (max-width: 640px) {
    .home-index-grid,
    .home-module-grid,
    .opp-feature-grid,
    .onboarding-step-grid,
    .home-kpi-grid {
        grid-template-columns: 1fr;
    }
    .home-hero {
        padding: 18px;
    }
}

/* ── 机会中心标签整合 ─── */
.opp-hero {
    position: relative;
    overflow: hidden;
}

.opp-hero::after {
    content: "";
    position: absolute;
    right: -80px;
    top: -90px;
    width: 260px;
    height: 260px;
    border-radius: 999px;
    background: radial-gradient(circle, rgba(246,189,22,0.20), transparent 68%);
    pointer-events: none;
}

.opp-cockpit-panel {
    margin-bottom: 14px;
}

.opp-kpi-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
}

.opp-kpi-card {
    min-height: 116px;
    padding: 14px;
    border-radius: 16px;
    background:
        radial-gradient(180px 90px at 100% 0%, rgba(255,255,255,0.08), transparent 72%),
        rgba(7,16,29,0.62);
    border: 1px solid rgba(145,168,196,0.14);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.035);
}

.opp-kpi-card.orange { border-color: rgba(246,189,22,0.25); }
.opp-kpi-card.blue { border-color: rgba(78,161,255,0.24); }
.opp-kpi-card.red { border-color: rgba(239,83,80,0.24); }
.opp-kpi-card.purple { border-color: rgba(184,166,255,0.24); }
.opp-kpi-card.green { border-color: rgba(45,201,151,0.24); }

.opp-kpi-label {
    color: #8fa3bd;
    font-size: 0.76rem;
}

.opp-kpi-value {
    margin-top: 7px;
    font-size: 1.34rem;
    font-weight: 900;
    letter-spacing: -0.02em;
}

.opp-kpi-value.orange { color: #f6bd16; }
.opp-kpi-value.blue { color: #9ecbff; }
.opp-kpi-value.red { color: #ef5350; }
.opp-kpi-value.purple { color: #b8a6ff; }
.opp-kpi-value.green { color: #2dc997; }

.opp-kpi-helper {
    margin-top: 5px;
    color: #6f8198;
    font-size: 0.74rem;
    line-height: 1.4;
}

.opp-feed-panel {
    background:
        radial-gradient(520px 170px at 0% 0%, rgba(78,161,255,0.12), transparent 72%),
        radial-gradient(420px 150px at 100% 0%, rgba(246,189,22,0.10), transparent 72%),
        rgba(8,18,31,0.74);
}

.opp-feed-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 14px;
}

.opp-feed-tabs {
    min-width: 560px;
    border-bottom: 1px solid rgba(145,168,196,0.18) !important;
}

.opp-feed-switcher {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.opp-feed-tabs .nav-link {
    font-size: 0.82rem;
    font-weight: 800;
    color: #8fa3bd;
}

.opp-feed-tabs .nav-link.active {
    color: #f3f8ff !important;
    background: rgba(78,161,255,0.12) !important;
    border-color: rgba(78,161,255,0.28) rgba(78,161,255,0.28) transparent !important;
}

.opp-feed-next-btn {
    white-space: nowrap;
    border-radius: 999px !important;
    font-weight: 850 !important;
    padding: 5px 13px !important;
}

.opp-feed-next-btn:disabled {
    opacity: 0.42;
    cursor: not-allowed;
    transform: none;
}

.opp-feed-batch-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
    padding: 10px 12px;
    border-radius: 14px;
    background: rgba(7,16,29,0.50);
    border: 1px solid rgba(145,168,196,0.12);
}

.opp-feed-batch-main {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.opp-feed-batch-title {
    color: #f3f8ff;
    font-size: 0.84rem;
    font-weight: 850;
}

.opp-feed-batch-count {
    color: #9ecbff;
    font-size: 0.72rem;
    font-weight: 820;
    padding: 3px 8px;
    border-radius: 999px;
    background: rgba(78,161,255,0.10);
    border: 1px solid rgba(78,161,255,0.22);
}

.opp-feed-batch-desc {
    color: #7d90a8;
    font-size: 0.76rem;
    line-height: 1.45;
}

.opp-detail-batch-meta {
    margin-top: 14px;
}

.opp-signal-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.opp-signal-card {
    min-height: 300px;
    display: flex;
    flex-direction: column;
    padding: 14px;
    border-radius: 18px;
    background: rgba(7,16,29,0.68);
    border: 1px solid rgba(145,168,196,0.15);
    box-shadow: 0 10px 26px rgba(0,0,0,0.18);
}

.opp-signal-card.orange { border-color: rgba(246,189,22,0.25); }
.opp-signal-card.blue { border-color: rgba(78,161,255,0.24); }
.opp-signal-card.red { border-color: rgba(239,83,80,0.24); }
.opp-signal-card.purple { border-color: rgba(184,166,255,0.24); }
.opp-signal-card.green { border-color: rgba(45,201,151,0.24); }

.opp-signal-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    margin-bottom: 11px;
}

.opp-source-badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 9px;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 880;
    border: 1px solid rgba(145,168,196,0.18);
    background: rgba(145,168,196,0.08);
}

.opp-source-badge.orange { color: #f6bd16; border-color: rgba(246,189,22,0.28); background: rgba(246,189,22,0.10); }
.opp-source-badge.blue { color: #9ecbff; border-color: rgba(78,161,255,0.28); background: rgba(78,161,255,0.10); }
.opp-source-badge.red { color: #ff9d9d; border-color: rgba(239,83,80,0.28); background: rgba(239,83,80,0.10); }
.opp-source-badge.purple { color: #c8b7ff; border-color: rgba(184,166,255,0.28); background: rgba(184,166,255,0.10); }
.opp-source-badge.green { color: #6be6b9; border-color: rgba(45,201,151,0.28); background: rgba(45,201,151,0.10); }

.opp-card-score {
    color: #f3f8ff;
    font-size: 0.82rem;
    font-weight: 900;
    white-space: nowrap;
}

.opp-signal-title {
    display: block;
    color: #f3f8ff;
    text-decoration: none;
    font-size: 1.02rem;
    font-weight: 900;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.opp-signal-title:hover {
    color: #79c0ff;
}

.opp-signal-subtitle {
    margin-top: 4px;
    color: #7d90a8;
    font-size: 0.78rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.opp-metric-strip {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-top: 12px;
}

.opp-metric {
    padding: 8px;
    border-radius: 12px;
    background: rgba(255,255,255,0.045);
    border: 1px solid rgba(145,168,196,0.10);
}

.opp-metric-label {
    color: #6f8198;
    font-size: 0.68rem;
}

.opp-metric-value {
    margin-top: 3px;
    color: #c9d8ea;
    font-size: 0.82rem;
    font-weight: 850;
    white-space: nowrap;
}

.opp-metric-value.red { color: #ef5350; }
.opp-metric-value.green { color: #26a69a; }
.opp-metric-value.blue { color: #79c0ff; }
.opp-metric-value.purple { color: #b8a6ff; }

.opp-reason-list {
    margin: 12px 0 0;
    padding-left: 16px;
    color: #9dafc4;
    font-size: 0.78rem;
    line-height: 1.48;
}

.opp-reason-list li + li {
    margin-top: 5px;
}

.opp-card-actions {
    display: flex;
    gap: 7px;
    flex-wrap: wrap;
    margin-top: auto;
    padding-top: 13px;
}

.opp-card-mini-action {
    color: #79c0ff;
    text-decoration: none;
    font-size: 0.74rem;
    font-weight: 850;
    padding: 4px 8px;
    border-radius: 999px;
    background: rgba(78,161,255,0.08);
    border: 1px solid rgba(78,161,255,0.22);
}

.opp-card-mini-action:hover {
    color: #ffffff;
    background: rgba(78,161,255,0.18);
}

.opp-lazy-block {
    min-height: 118px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 18px;
    border-radius: 16px;
    background:
        radial-gradient(260px 110px at 0% 0%, rgba(78,161,255,0.12), transparent 72%),
        rgba(7,16,29,0.58);
    border: 1px dashed rgba(145,168,196,0.22);
}

.opp-lazy-block.detail {
    min-height: 180px;
    align-items: center;
    text-align: center;
}

.opp-lazy-title {
    color: #f3f8ff;
    font-size: 0.96rem;
    font-weight: 850;
}

.opp-lazy-desc {
    margin-top: 6px;
    color: #8fa3bd;
    font-size: 0.84rem;
    line-height: 1.55;
}

.opp-lazy-chip-row {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: center;
    margin-top: 14px;
}

.opp-lazy-chip {
    padding: 4px 9px;
    border-radius: 999px;
    color: #9ecbff;
    background: rgba(78,161,255,0.10);
    border: 1px solid rgba(78,161,255,0.22);
    font-size: 0.74rem;
    font-weight: 820;
}

.opp-tabs {
    margin-bottom: 16px;
    border-bottom: 1px solid rgba(145,168,196,0.18) !important;
}

.opp-tabs .nav-link {
    font-weight: 750;
    letter-spacing: 0.01em;
}

.opp-tab-content {
    min-height: 360px;
}

.opp-tab-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 14px;
}

.opp-detail-switcher {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    flex-wrap: wrap;
}

.opp-detail-switcher .opp-tabs {
    margin-bottom: 0;
}

.opp-detail-next-btn {
    flex: 0 0 auto;
}

.opp-subtitle {
    color: #f3f8ff;
    font-weight: 850;
    margin-bottom: 10px;
}

.opp-board-card {
    min-height: 250px;
}

.opp-master-card {
    height: 100%;
    padding: 14px;
    border-radius: 16px;
    background:
        radial-gradient(260px 110px at 100% 0%, rgba(184,166,255,0.10), transparent 72%),
        rgba(7,16,29,0.58);
    border: 1px solid rgba(145,168,196,0.14);
}

.opp-master-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 12px;
}

.opp-master-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 0;
    border-top: 1px solid rgba(145,168,196,0.10);
}

.opp-master-row:first-child {
    border-top: 0;
}

.opp-master-left {
    min-width: 0;
}

.opp-master-stock {
    display: block;
    color: #f3f8ff;
    text-decoration: none;
    font-size: 0.88rem;
    font-weight: 850;
    max-width: 170px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.opp-master-stock:hover {
    color: #79c0ff;
}

.opp-master-meta {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-top: 2px;
}

.opp-master-code {
    color: #6f8198;
    font-size: 0.70rem;
}

.opp-master-level {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    border-radius: 999px;
    color: #c8b7ff;
    background: rgba(184,166,255,0.12);
    border: 1px solid rgba(184,166,255,0.22);
    font-size: 0.66rem;
    font-weight: 900;
}

.opp-master-right {
    flex: 0 0 auto;
    text-align: right;
}

.opp-master-score {
    color: #9ecbff;
    font-size: 0.92rem;
    font-weight: 900;
}

.opp-master-score-label {
    color: #6f8198;
    font-size: 0.66rem;
}

.opp-master-empty {
    margin-top: 12px;
    padding: 12px;
}

.opp-table-shell {
    border-radius: 14px;
    overflow: auto;
}

.opp-table th {
    color: #8fa3bd !important;
    background: rgba(20,32,49,0.95) !important;
    font-size: 0.78rem;
    white-space: nowrap;
}

.opp-table td {
    white-space: nowrap;
}

.opp-code {
    color: #8193aa;
    font-size: 0.74rem;
    margin-top: 2px;
}

.opp-action-row {
    display: flex;
    gap: 6px;
    align-items: center;
    justify-content: flex-start;
}

.opp-action-link {
    color: #79c0ff;
    text-decoration: none;
    font-weight: 760;
    font-size: 0.78rem;
    padding: 3px 7px;
    border-radius: 999px;
    border: 1px solid rgba(78,161,255,0.25);
    background: rgba(78,161,255,0.08);
}

.opp-action-link:hover {
    color: #ffffff;
    background: rgba(78,161,255,0.20);
}

.opp-signal-cell {
    color: #a9b8cc;
    max-width: 280px;
    overflow: hidden;
    text-overflow: ellipsis;
}

@media (max-width: 768px) {
    .opp-tab-head {
        flex-direction: column;
    }
}

@media (max-width: 1280px) {
    .opp-kpi-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .opp-signal-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 992px) {
    .opp-feed-head {
        flex-direction: column;
    }

    .opp-feed-tabs {
        min-width: 0;
        width: 100%;
    }

    .opp-feed-switcher {
        width: 100%;
        justify-content: flex-start;
    }

    .opp-detail-switcher {
        width: 100%;
        justify-content: flex-start;
    }

    .opp-feed-batch-meta {
        flex-direction: column;
        align-items: flex-start;
    }

    .opp-signal-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .opp-kpi-grid,
    .opp-signal-grid {
        grid-template-columns: 1fr;
    }

    .opp-signal-card {
        min-height: auto;
    }
}

/* ── 首页机会解释卡 ─── */
.home-focus-wrap {
    margin-bottom: 14px;
    padding: 14px;
    border-radius: 18px;
    background:
        radial-gradient(320px 120px at 0% 0%, rgba(246,189,22,0.12), transparent 70%),
        rgba(7,16,29,0.52);
    border: 1px solid rgba(145,168,196,0.16);
}

.home-focus-title {
    color: #f3f8ff;
    font-size: 0.98rem;
    font-weight: 850;
}

.home-focus-subtitle {
    color: #8fa3bd;
    font-size: 0.82rem;
    margin: 2px 0 12px;
}

.home-focus-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.home-focus-card {
    min-height: 182px;
    padding: 13px;
    border-radius: 16px;
    background:
        linear-gradient(145deg, rgba(21,38,58,0.82), rgba(8,18,31,0.82));
    border: 1px solid rgba(145,168,196,0.16);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.04);
}

.home-focus-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.home-focus-code,
.home-focus-industry {
    display: block;
    color: #8193aa;
    font-size: 0.74rem;
    margin-top: 2px;
}

.home-focus-tags {
    display: flex;
    gap: 5px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.home-focus-tag {
    color: #ffe3a1;
    background: rgba(246,189,22,0.13);
    border: 1px solid rgba(246,189,22,0.26);
    border-radius: 999px;
    padding: 2px 7px;
    font-size: 0.68rem;
    font-weight: 850;
}

.home-focus-reasons {
    margin: 9px 0 10px 18px;
    padding: 0;
    color: #c9d8ea;
    font-size: 0.80rem;
}

.home-focus-reasons li {
    margin: 4px 0;
}

.home-focus-actions {
    display: flex;
    gap: 7px;
    flex-wrap: wrap;
    margin-top: auto;
}

.home-focus-action {
    color: #79c0ff;
    text-decoration: none;
    font-size: 0.76rem;
    font-weight: 800;
    padding: 3px 8px;
    border-radius: 999px;
    background: rgba(78,161,255,0.08);
    border: 1px solid rgba(78,161,255,0.22);
}

.home-focus-action:hover {
    color: #ffffff;
    background: rgba(78,161,255,0.18);
}

@media (max-width: 768px) {
    .home-focus-grid {
        grid-template-columns: 1fr;
    }
}

/* ── 自选股观察池增强 ─── */
.watch-overview-panel {
    margin: 10px 0 14px;
    padding: 15px;
    border-radius: 20px;
    background:
        radial-gradient(460px 150px at 0% 0%, rgba(78,161,255,0.16), transparent 72%),
        radial-gradient(380px 150px at 100% 0%, rgba(45,201,151,0.12), transparent 72%),
        linear-gradient(180deg, rgba(18,31,49,0.94), rgba(9,18,31,0.96));
    border: 1px solid rgba(145,168,196,0.18);
    box-shadow: 0 14px 34px rgba(0,0,0,0.22);
}

.watch-overview-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 13px;
}

.watch-overview-title {
    color: #f3f8ff;
    font-size: 1.05rem;
    font-weight: 880;
}

.watch-overview-subtitle {
    color: #8fa3bd;
    font-size: 0.82rem;
    margin-top: 3px;
}

.watch-overview-source-row {
    display: flex;
    gap: 7px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.watch-overview-source-chip {
    padding: 4px 9px;
    border-radius: 999px;
    color: #9ecbff;
    background: rgba(78,161,255,0.11);
    border: 1px solid rgba(78,161,255,0.24);
    font-size: 0.72rem;
    font-weight: 820;
    white-space: nowrap;
}

.watch-overview-source-chip.muted {
    color: #8fa3bd;
    border-color: rgba(145,168,196,0.16);
    background: rgba(145,168,196,0.08);
}

.watch-overview-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
}

.watch-overview-card {
    min-height: 92px;
    padding: 12px;
    border-radius: 16px;
    background: rgba(7,16,29,0.62);
    border: 1px solid rgba(145,168,196,0.14);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.035);
}

.watch-overview-label {
    color: #8fa3bd;
    font-size: 0.74rem;
}

.watch-overview-value {
    margin-top: 5px;
    color: #dce8f8;
    font-size: 1.18rem;
    font-weight: 880;
}

.watch-overview-value.red { color: #ef5350; }
.watch-overview-value.green { color: #26a69a; }
.watch-overview-value.orange { color: #f6bd16; }
.watch-overview-value.purple { color: #b8a6ff; }
.watch-overview-value.blue { color: #9ecbff; }

.watch-overview-helper {
    margin-top: 4px;
    color: #6f8198;
    font-size: 0.72rem;
    line-height: 1.4;
}

.watch-review-panel {
    margin: 0 0 16px;
    padding: 14px;
    border-radius: 18px;
    background:
        radial-gradient(420px 140px at 0% 0%, rgba(246,189,22,0.12), transparent 72%),
        linear-gradient(180deg, rgba(18,30,46,0.92), rgba(9,18,31,0.92));
    border: 1px solid rgba(145,168,196,0.18);
}

.watch-review-title-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
}

.watch-review-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.watch-review-card {
    min-height: 190px;
    padding: 12px;
    border-radius: 16px;
    background: rgba(7,16,29,0.66);
    border: 1px solid rgba(145,168,196,0.14);
    display: flex;
    flex-direction: column;
}

.watch-review-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 10px;
}

.watch-review-stock {
    display: block;
    color: #dce8f8;
    text-decoration: none;
    font-weight: 850;
    max-width: 150px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.watch-review-stock:hover {
    color: #79c0ff;
}

.watch-review-code {
    display: block;
    color: #6f8198;
    font-size: 0.72rem;
    margin-top: 2px;
}

.watch-review-ret {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-weight: 880;
    white-space: nowrap;
}

.watch-review-meta {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-top: 9px;
}

.watch-review-tag,
.watch-review-source {
    display: inline-flex;
    align-items: center;
    padding: 3px 7px;
    border-radius: 999px;
    border: 1px solid rgba(145,168,196,0.18);
    background: rgba(145,168,196,0.08);
    font-size: 0.70rem;
    font-weight: 820;
    white-space: nowrap;
}

.watch-review-source {
    color: #8fa3bd;
}

.watch-review-text {
    margin-top: 9px;
    font-size: 0.82rem;
    font-weight: 780;
    line-height: 1.45;
}

.watch-review-reason {
    margin-top: 7px;
    color: #8fa3bd;
    font-size: 0.76rem;
    line-height: 1.45;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.watch-review-actions {
    display: flex;
    gap: 7px;
    flex-wrap: wrap;
    margin-top: auto;
    padding-top: 12px;
}

.watch-review-action {
    color: #79c0ff;
    text-decoration: none;
    font-size: 0.74rem;
    font-weight: 850;
    padding: 3px 8px;
    border-radius: 999px;
    background: rgba(78,161,255,0.08);
    border: 1px solid rgba(78,161,255,0.22);
}

.watch-review-button {
    line-height: 1.2 !important;
    margin: 0 !important;
}

.watch-review-action:hover {
    color: #ffffff;
    background: rgba(78,161,255,0.18);
}

.watch-ann-panel {
    margin: 0 0 16px;
    padding: 14px;
    border-radius: 18px;
    background:
        radial-gradient(420px 140px at 100% 0%, rgba(246,189,22,0.12), transparent 72%),
        linear-gradient(180deg, rgba(16,27,42,0.92), rgba(8,17,29,0.92));
    border: 1px solid rgba(246,189,22,0.18);
}

.watch-ann-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.watch-ann-card {
    min-height: 142px;
    padding: 12px;
    border-radius: 16px;
    background: rgba(7,16,29,0.66);
    border: 1px solid rgba(145,168,196,0.14);
    display: flex;
    flex-direction: column;
}

.watch-ann-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.watch-ann-stock {
    color: #dce8f8;
    text-decoration: none;
    font-weight: 850;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.watch-ann-stock:hover {
    color: #79c0ff;
}

.watch-ann-card-title {
    margin-top: 9px;
    color: #b8c7da;
    text-decoration: none;
    font-size: 0.78rem;
    line-height: 1.45;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.watch-ann-card-title:hover {
    color: #ffffff;
}

.watch-ann-card-meta {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-top: 8px;
}

.watch-ann-meta {
    color: #8fa3bd;
    font-size: 0.70rem;
    padding: 2px 7px;
    border-radius: 999px;
    background: rgba(145,168,196,0.08);
    border: 1px solid rgba(145,168,196,0.14);
}

.watch-ann-actions {
    margin-top: auto;
    padding-top: 10px;
    display: flex;
    gap: 7px;
}

.watch-ann-action {
    color: #79c0ff;
    text-decoration: none;
    font-size: 0.72rem;
    font-weight: 850;
    padding: 3px 8px;
    border-radius: 999px;
    background: rgba(78,161,255,0.08);
    border: 1px solid rgba(78,161,255,0.20);
}

.watch-ann-action:hover {
    color: #ffffff;
    background: rgba(78,161,255,0.18);
}

.watch-review-status-badge {
    display: inline-flex;
    padding: 3px 8px;
    border-radius: 999px;
    font-size: 0.70rem;
    font-weight: 850;
    white-space: nowrap;
}

.watch-review-status-badge.pending {
    color: #9ecbff;
    background: rgba(78,161,255,0.10);
    border: 1px solid rgba(78,161,255,0.24);
}

.watch-review-status-badge.ok {
    color: #2dc997;
    background: rgba(45,201,151,0.10);
    border: 1px solid rgba(45,201,151,0.24);
}

.watch-review-status-badge.due {
    color: #f6bd16;
    background: rgba(246,189,22,0.10);
    border: 1px solid rgba(246,189,22,0.28);
}

.watch-review-status-sub {
    margin-top: 4px;
    color: #6f8198;
    font-size: 0.72rem;
    max-width: 150px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.watch-review-radio .form-check-label {
    color: #c9d8ea;
    font-size: 0.84rem;
}

.watch-history-panel {
    margin: 0 0 16px;
    padding: 14px;
    border-radius: 18px;
    background:
        radial-gradient(420px 140px at 100% 0%, rgba(78,161,255,0.12), transparent 72%),
        linear-gradient(180deg, rgba(14,26,42,0.92), rgba(8,17,30,0.92));
    border: 1px solid rgba(145,168,196,0.16);
}

.watch-history-timeline {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.watch-history-item {
    position: relative;
    padding: 12px 12px 12px 16px;
    border-radius: 15px;
    background: rgba(7,16,29,0.64);
    border: 1px solid rgba(145,168,196,0.14);
    overflow: hidden;
}

.watch-history-item::before {
    content: "";
    position: absolute;
    left: 0;
    top: 12px;
    bottom: 12px;
    width: 3px;
    border-radius: 999px;
    background: linear-gradient(180deg, #79c0ff, #f6bd16);
}

.watch-history-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.watch-history-stock {
    display: block;
    color: #dce8f8;
    text-decoration: none;
    font-weight: 850;
    max-width: 150px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.watch-history-stock:hover {
    color: #79c0ff;
}

.watch-history-code,
.watch-history-date,
.watch-history-next {
    color: #6f8198;
    font-size: 0.72rem;
    white-space: nowrap;
}

.watch-history-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 9px;
}

.watch-history-result {
    display: inline-flex;
    align-items: center;
    padding: 3px 8px;
    border-radius: 999px;
    color: #f6bd16;
    background: rgba(246,189,22,0.10);
    border: 1px solid rgba(246,189,22,0.26);
    font-size: 0.72rem;
    font-weight: 850;
}

.watch-history-trigger {
    margin-top: 8px;
    color: #9ecbff;
    font-size: 0.76rem;
    line-height: 1.45;
}

.watch-history-note {
    margin-top: 7px;
    color: #c9d8ea;
    font-size: 0.78rem;
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.watch-history-empty {
    padding: 16px;
    border-radius: 15px;
    color: #8fa3bd;
    background: rgba(7,16,29,0.54);
    border: 1px dashed rgba(145,168,196,0.20);
    font-size: 0.84rem;
}

.watch-filter-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin: 0 0 10px;
    padding: 12px;
    border-radius: 16px;
    background: rgba(7,16,29,0.58);
    border: 1px solid rgba(145,168,196,0.14);
}

.watch-filter-title {
    color: #f3f8ff;
    font-weight: 850;
    font-size: 0.92rem;
}

.watch-filter-subtitle {
    color: #6f8198;
    font-size: 0.76rem;
    margin-top: 3px;
}

.watch-filter-chip-row {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.watch-filter-chip {
    display: inline-flex !important;
    align-items: center;
    gap: 7px;
    min-height: 30px;
    padding: 4px 10px !important;
    border-radius: 999px !important;
    color: #9ecbff !important;
    text-decoration: none !important;
    background: rgba(78,161,255,0.08) !important;
    border: 1px solid rgba(78,161,255,0.18) !important;
    box-shadow: none !important;
}

.watch-filter-chip.active {
    color: #06101d !important;
    background: linear-gradient(135deg, #9ecbff, #f6bd16) !important;
    border-color: rgba(255,255,255,0.20) !important;
}

.watch-filter-label {
    font-size: 0.76rem;
    font-weight: 850;
}

.watch-filter-count {
    min-width: 22px;
    padding: 1px 7px;
    border-radius: 999px;
    color: #dce8f8;
    background: rgba(255,255,255,0.10);
    font-size: 0.70rem;
    font-weight: 900;
    text-align: center;
}

.watch-filter-chip.active .watch-filter-count {
    color: #06101d;
    background: rgba(6,16,29,0.14);
}

.watch-filter-empty {
    padding: 22px;
    border-radius: 16px;
    color: #8fa3bd;
    background: rgba(7,16,29,0.62);
    border: 1px dashed rgba(145,168,196,0.20);
    font-size: 0.86rem;
}

.watch-default-tools {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin: 0 0 12px;
    padding: 12px 14px;
    border-radius: 16px;
    color: #c9d8ea;
    background:
        radial-gradient(360px 120px at 100% 0%, rgba(246,189,22,0.12), transparent 72%),
        rgba(7,16,29,0.58);
    border: 1px dashed rgba(246,189,22,0.28);
}

.watch-default-title {
    color: #f3f8ff;
    font-size: 0.9rem;
    font-weight: 850;
}

.watch-default-subtitle {
    color: #8fa3bd;
    font-size: 0.76rem;
    margin-top: 3px;
    line-height: 1.45;
}

.watch-default-clear-btn {
    border-radius: 999px !important;
    white-space: nowrap;
}

.watch-detail-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 4px 0 10px;
}

.watch-detail-title {
    color: #f3f8ff;
    font-size: 0.98rem;
    font-weight: 850;
}

.watch-alert-panel {
    margin: 10px 0 16px;
    padding: 14px;
    border-radius: 18px;
    background:
        radial-gradient(360px 120px at 0% 0%, rgba(246,189,22,0.12), transparent 72%),
        linear-gradient(180deg, rgba(18,30,46,0.92), rgba(9,18,31,0.92));
    border: 1px solid rgba(145,168,196,0.18);
}

.watch-alert-title {
    color: #f3f8ff;
    font-weight: 850;
    margin-bottom: 10px;
}

.watch-alert-muted {
    color: #8fa3bd;
    font-size: 0.86rem;
}

.watch-alert-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.watch-alert-card {
    padding: 12px;
    border-radius: 15px;
    background: rgba(7,16,29,0.64);
    border: 1px solid rgba(145,168,196,0.15);
}

.watch-alert-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
}

.watch-alert-stock {
    color: #dce8f8;
    text-decoration: none;
    font-weight: 820;
}

.watch-alert-stock:hover {
    color: #79c0ff;
}

.watch-alert-ret {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-weight: 850;
    white-space: nowrap;
}

.watch-alert-reason {
    margin-top: 6px;
    font-size: 0.80rem;
    font-weight: 760;
}

.watch-alert-note {
    margin-top: 7px;
    color: #8fa3bd;
    font-size: 0.76rem;
    line-height: 1.45;
}

.watch-source-badge {
    display: inline-flex;
    padding: 3px 8px;
    border-radius: 999px;
    color: #9ecbff;
    background: rgba(78,161,255,0.12);
    border: 1px solid rgba(78,161,255,0.23);
    font-size: 0.72rem;
    font-weight: 800;
    white-space: nowrap;
}

.watch-source-detail {
    color: #6f8198;
    font-size: 0.72rem;
    margin-top: 4px;
    max-width: 130px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.watch-reason-text {
    color: #c9d8ea;
    font-size: 0.78rem;
    line-height: 1.45;
    max-width: 260px;
    white-space: normal;
}

.watch-alert-text {
    font-size: 0.78rem;
    line-height: 1.45;
    max-width: 220px;
    white-space: normal;
    font-weight: 760;
}

@media (max-width: 1200px) {
    .watch-overview-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .watch-review-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .watch-ann-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .watch-history-timeline {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .watch-alert-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .watch-overview-head,
    .watch-review-title-row,
    .watch-detail-head,
    .watch-filter-bar {
        flex-direction: column;
        align-items: flex-start;
    }

    .watch-overview-source-row,
    .watch-filter-chip-row {
        justify-content: flex-start;
    }

    .watch-overview-grid,
    .watch-review-grid,
    .watch-ann-grid,
    .watch-history-timeline {
        grid-template-columns: 1fr;
    }

    .watch-alert-grid {
        grid-template-columns: 1fr;
    }
}

/* ── 自选股表格宽度和编辑理由 ─── */
.watch-col-stock {
    min-width: 118px;
    width: 118px;
}

.watch-col-industry {
    min-width: 76px;
}

.watch-col-source {
    min-width: 118px;
}

.watch-col-reason {
    min-width: 280px;
    max-width: 340px;
}

.watch-col-alert {
    min-width: 220px;
    max-width: 280px;
}

.watch-col-review {
    min-width: 150px;
    max-width: 180px;
}

.watch-col-num {
    min-width: 72px;
    white-space: nowrap;
}

.watch-col-date {
    min-width: 82px;
    white-space: nowrap;
}

.watch-col-action {
    min-width: 58px;
    white-space: nowrap;
}

.watch-stock-name {
    color: #58a6ff;
    text-decoration: none;
    font-weight: 720;
    display: block;
    font-size: 0.86rem;
    max-width: 118px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.watch-stock-name:hover {
    color: #9ecbff;
}

.watch-stock-code {
    color: #6b7f96;
    font-size: 0.68rem;
    text-decoration: none;
    display: block;
    white-space: nowrap;
}

.watch-edit-link {
    color: #79c0ff !important;
    padding: 2px 0 !important;
    margin-top: 4px;
    font-size: 0.74rem !important;
    text-decoration: none !important;
}

.watch-edit-link:hover {
    color: #ffffff !important;
}

.watch-action-cell {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 4px;
}

.watchlist-table {
    min-width: 900px;
    table-layout: fixed;
}

.watchlist-table th,
.watchlist-table td {
    padding-left: 0.42rem;
    padding-right: 0.42rem;
}

/* ── 链条分析页 ─── */
.ai-insight-shell {
    color: var(--text-main);
}

.ai-chain-page {
    display: grid;
    gap: 14px;
}

.ai-chain-hero {
    position: relative;
    overflow: hidden;
}

.ai-chain-hero::after {
    content: "";
    position: absolute;
    right: -120px;
    top: -90px;
    width: 360px;
    height: 260px;
    background: radial-gradient(circle, rgba(246,189,22,0.18), transparent 70%);
    pointer-events: none;
}

.ai-chain-summary-text {
    max-width: 880px;
}

.research-inline-link.warning {
    color: #f6bd16;
    border-color: rgba(246,189,22,0.28);
    background: rgba(246,189,22,0.08);
}

.ai-chain-kpi-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.ai-chain-kpi-card {
    min-height: 142px;
    padding: 15px;
    border-radius: 18px;
    background:
        radial-gradient(180px 90px at 100% 0%, rgba(255,255,255,0.07), transparent 72%),
        rgba(7,16,29,0.66);
    border: 1px solid rgba(145,168,196,0.15);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.035), 0 12px 26px rgba(0,0,0,0.18);
}

.ai-chain-kpi-card.gold { border-color: rgba(246,189,22,0.28); }
.ai-chain-kpi-card.red { border-color: rgba(239,83,80,0.26); }
.ai-chain-kpi-card.green { border-color: rgba(45,201,151,0.26); }
.ai-chain-kpi-card.blue { border-color: rgba(78,161,255,0.25); }

.ai-chain-kpi-label {
    color: #8fa3bd;
    font-size: 0.76rem;
    font-weight: 850;
}

.ai-chain-kpi-value {
    margin-top: 9px;
    color: #f3f8ff;
    font-size: 1.32rem;
    font-weight: 930;
    letter-spacing: -0.03em;
    line-height: 1.05;
}

.ai-chain-kpi-value.gold { color: #f6bd16; }
.ai-chain-kpi-value.red { color: #ef5350; }
.ai-chain-kpi-value.green { color: #2dc997; }
.ai-chain-kpi-value.blue { color: #79c0ff; }
.ai-chain-kpi-value.neutral { color: #c9d8ea; }

.ai-chain-kpi-helper {
    margin-top: 8px;
    color: #7f93ad;
    font-size: 0.76rem;
    line-height: 1.48;
}

.ai-chain-map-panel,
.ai-chain-detail-panel,
.ai-chain-valuation-panel {
    padding: 16px;
}

.ai-chain-map {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) 34px minmax(220px, 0.82fr) 34px minmax(0, 1.2fr);
    gap: 10px;
    align-items: stretch;
}

.ai-chain-node,
.ai-chain-current-node {
    min-height: 188px;
    padding: 15px;
    border-radius: 18px;
    background:
        radial-gradient(180px 90px at 100% 0%, rgba(255,255,255,0.06), transparent 72%),
        rgba(7,16,29,0.62);
    border: 1px solid rgba(145,168,196,0.15);
}

button.ai-chain-node,
button.ai-chain-current-node {
    width: 100%;
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
}

.ai-chain-node.upstream { border-color: rgba(78,161,255,0.28); }
.ai-chain-node.downstream { border-color: rgba(45,201,151,0.28); }

.ai-chain-current-node {
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
    border-color: rgba(246,189,22,0.34);
    background:
        radial-gradient(170px 120px at 50% 0%, rgba(246,189,22,0.17), transparent 72%),
        rgba(23,25,29,0.72);
}

button.ai-chain-current-node {
    text-align: center;
}

.ai-chain-node.clickable,
.ai-chain-current-node.clickable {
    transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.ai-chain-node.clickable:hover,
.ai-chain-current-node.clickable:hover,
.ai-chain-node.clickable.active,
.ai-chain-current-node.clickable.active {
    transform: translateY(-2px);
    border-color: rgba(246,189,22,0.44);
    box-shadow: 0 14px 32px rgba(0,0,0,0.22), 0 0 0 1px rgba(246,189,22,0.08);
}

.ai-chain-node-title,
.ai-chain-current-name {
    color: #f3f8ff;
    font-size: 1rem;
    font-weight: 920;
}

.ai-chain-node-kicker {
    color: #f6bd16;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    margin-bottom: 8px;
}

.ai-chain-current-code,
.ai-chain-current-industry,
.ai-chain-current-position,
.ai-chain-node-industries,
.ai-chain-node-note {
    color: #8fa3bd;
    font-size: 0.76rem;
    line-height: 1.45;
}

.ai-chain-current-code { margin-top: 5px; color: #9ecbff; }
.ai-chain-current-industry { margin-top: 7px; }
.ai-chain-current-position { margin-top: 8px; color: #f6bd16; font-weight: 850; }
.ai-chain-node-industries { margin-top: 7px; min-height: 34px; }
.ai-chain-node-note { margin-top: 10px; }

.ai-chain-node-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
    margin-top: 12px;
}

.ai-chain-pill {
    padding: 7px 8px;
    border-radius: 12px;
    background: rgba(255,255,255,0.045);
    border: 1px solid rgba(145,168,196,0.10);
}

.ai-chain-pill-label {
    color: #6f8198;
    font-size: 0.65rem;
}

.ai-chain-pill-value {
    margin-top: 3px;
    color: #c9d8ea;
    font-size: 0.78rem;
    font-weight: 900;
    white-space: nowrap;
}

.ai-chain-pill-value.red { color: #ef5350; }
.ai-chain-pill-value.green { color: #26a69a; }
.ai-chain-pill-value.neutral { color: #c9d8ea; }

.ai-chain-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #79c0ff;
    font-size: 1.6rem;
    font-weight: 900;
    opacity: 0.78;
}

.ai-chain-mini-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.ai-chain-valuation-panel {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(260px, 0.7fr);
    gap: 12px;
}

.ai-chain-keyword-panel {
    padding: 14px;
    border-radius: 18px;
    background: rgba(7,16,29,0.56);
    border: 1px solid rgba(145,168,196,0.14);
}

.ai-chain-keyword-title {
    color: #8fa3bd;
    font-size: 0.76rem;
    font-weight: 850;
    margin-bottom: 10px;
}

.ai-chain-keyword-row {
    display: flex;
    gap: 7px;
    flex-wrap: wrap;
}

.ai-chain-keyword {
    padding: 4px 9px;
    border-radius: 999px;
    color: #9ecbff;
    font-size: 0.72rem;
    font-weight: 820;
    background: rgba(78,161,255,0.10);
    border: 1px solid rgba(78,161,255,0.22);
}

.ai-chain-keyword.muted {
    color: #8fa3bd;
    border-color: rgba(145,168,196,0.16);
    background: rgba(145,168,196,0.08);
}

.ai-chain-list-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.ai-chain-list-card {
    padding: 15px;
}

.ai-chain-list-title {
    color: #9ecbff;
    font-weight: 900;
    margin-bottom: 10px;
}

.ai-chain-list-title.red { color: #ff9d9d; }
.ai-chain-list-title.green { color: #6be6b9; }

.ai-chain-list {
    margin: 0;
    padding-left: 17px;
    color: #a9b8cc;
    font-size: 0.82rem;
    line-height: 1.55;
}

.ai-chain-list li + li {
    margin-top: 6px;
}

.ai-chain-tab-body {
    margin-top: 14px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border-radius: 16px;
    border: 1px solid rgba(145,168,196,0.10);
    background: rgba(7,16,29,0.24);
}

.ai-chain-tab-body .table-responsive {
    margin-bottom: 0;
}

.ai-chain-scroll-hint {
    display: none;
    margin-top: 12px;
    color: #7f93ad;
    font-size: 0.74rem;
    line-height: 1.4;
}

.ai-chain-empty-state {
    margin-top: 14px;
    padding: 18px;
    border-radius: 18px;
    background:
        radial-gradient(220px 110px at 0% 0%, rgba(78,161,255,0.10), transparent 72%),
        rgba(7,16,29,0.46);
    border: 1px solid rgba(145,168,196,0.14);
}

.ai-chain-empty-state.green {
    background:
        radial-gradient(220px 110px at 0% 0%, rgba(45,201,151,0.10), transparent 72%),
        rgba(7,16,29,0.46);
}

.ai-chain-empty-state.gold {
    background:
        radial-gradient(220px 110px at 0% 0%, rgba(246,189,22,0.10), transparent 72%),
        rgba(7,16,29,0.46);
}

.ai-chain-empty-title {
    color: #9ecbff;
    font-size: 0.98rem;
    font-weight: 920;
}

.ai-chain-empty-title.green { color: #6be6b9; }
.ai-chain-empty-title.gold { color: #f6bd16; }

.ai-chain-empty-detail {
    margin-top: 8px;
    color: #91a8c4;
    font-size: 0.82rem;
    line-height: 1.58;
}

.ai-chain-empty-list {
    margin: 10px 0 0;
    padding-left: 18px;
    color: #7f93ad;
    font-size: 0.78rem;
    line-height: 1.56;
}

.ai-chain-empty-list li + li {
    margin-top: 5px;
}

.ai-chain-detail-toolbar {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
    flex-wrap: wrap;
    margin-bottom: 14px;
}

.ai-chain-view-switch,
.ai-chain-sort-switch {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    align-items: center;
}

.ai-chain-view-chip,
.ai-chain-sort-chip {
    border: 1px solid rgba(145,168,196,0.16);
    background: rgba(7,16,29,0.56);
    color: #9dafc4;
    border-radius: 999px;
    cursor: pointer;
    transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease, transform 0.18s ease;
    appearance: none;
    -webkit-appearance: none;
}

.ai-chain-view-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    font-size: 0.8rem;
    font-weight: 850;
}

.ai-chain-view-chip-count {
    color: #6f8198;
    font-size: 0.72rem;
}

.ai-chain-view-chip:hover,
.ai-chain-sort-chip:hover,
.ai-chain-view-chip.active,
.ai-chain-sort-chip.active {
    transform: translateY(-1px);
    color: #f3f8ff;
    border-color: rgba(246,189,22,0.38);
    background: rgba(246,189,22,0.10);
}

.ai-chain-view-chip.blue.active { border-color: rgba(78,161,255,0.42); background: rgba(78,161,255,0.13); }
.ai-chain-view-chip.green.active { border-color: rgba(45,201,151,0.42); background: rgba(45,201,151,0.12); }
.ai-chain-view-chip.gold.active { border-color: rgba(246,189,22,0.42); background: rgba(246,189,22,0.12); }

.ai-chain-sort-label {
    color: #6f8198;
    font-size: 0.76rem;
    font-weight: 850;
}

.ai-chain-sort-chip {
    padding: 7px 10px;
    font-size: 0.74rem;
    font-weight: 850;
}

.ai-chain-detail-title-row {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-end;
    flex-wrap: wrap;
    margin-bottom: 12px;
}

.ai-chain-detail-title {
    color: #f3f8ff;
    font-size: 1rem;
    font-weight: 920;
}

.ai-chain-detail-desc {
    color: #7f93ad;
    font-size: 0.78rem;
}

.ai-chain-signal-card {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(230px, 0.55fr) minmax(260px, 0.85fr);
    gap: 12px;
    padding: 14px;
    border-radius: 18px;
    background:
        radial-gradient(190px 100px at 0% 0%, rgba(78,161,255,0.09), transparent 72%),
        rgba(7,16,29,0.50);
    border: 1px solid rgba(145,168,196,0.13);
}

.ai-chain-signal-card.blue { border-color: rgba(78,161,255,0.22); }
.ai-chain-signal-card.green { border-color: rgba(45,201,151,0.22); }
.ai-chain-signal-card.gold { border-color: rgba(246,189,22,0.22); }

.ai-chain-signal-kicker {
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.06em;
}

.ai-chain-signal-kicker.blue { color: #79c0ff; }
.ai-chain-signal-kicker.green { color: #6be6b9; }
.ai-chain-signal-kicker.gold { color: #f6bd16; }

.ai-chain-signal-title {
    margin-top: 6px;
    color: #f3f8ff;
    font-size: 0.96rem;
    font-weight: 900;
}

.ai-chain-signal-detail {
    margin-top: 7px;
    color: #8fa3bd;
    font-size: 0.79rem;
    line-height: 1.55;
}

.ai-chain-signal-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
    align-content: start;
}

.ai-chain-signal-points {
    display: grid;
    gap: 7px;
}

.ai-chain-signal-note,
.ai-chain-signal-point {
    color: #91a8c4;
    font-size: 0.76rem;
    line-height: 1.42;
}

.ai-chain-signal-note {
    color: #6f8198;
}

.ai-chain-signal-point {
    padding: 7px 9px;
    border-radius: 12px;
    background: rgba(78,161,255,0.08);
    border: 1px solid rgba(78,161,255,0.14);
}

.ai-chain-signal-point.danger {
    background: rgba(239,83,80,0.07);
    border-color: rgba(239,83,80,0.14);
}

.ai-chain-peer-compare-panel {
    display: grid;
    gap: 12px;
    margin-top: 12px;
}

.ai-chain-peer-position-panel,
.ai-chain-peer-segment-panel {
    padding: 14px;
    border-radius: 18px;
    background:
        radial-gradient(220px 110px at 100% 0%, rgba(246,189,22,0.08), transparent 72%),
        rgba(7,16,29,0.46);
    border: 1px solid rgba(145,168,196,0.13);
}

.ai-chain-peer-block-head {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-end;
    flex-wrap: wrap;
    margin-bottom: 11px;
}

.ai-chain-peer-block-title {
    color: #f3f8ff;
    font-size: 0.96rem;
    font-weight: 920;
}

.ai-chain-peer-block-desc {
    color: #8196b0;
    font-size: 0.78rem;
    line-height: 1.5;
    max-width: 760px;
}

.ai-chain-peer-position-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.ai-chain-peer-position-card {
    padding: 12px;
    border-radius: 16px;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(145,168,196,0.10);
}

.ai-chain-peer-position-top {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    align-items: center;
}

.ai-chain-peer-position-label {
    color: #8fa3bd;
    font-size: 0.75rem;
    font-weight: 850;
}

.ai-chain-peer-position-value {
    color: #f3f8ff;
    font-size: 1.05rem;
    font-weight: 930;
}

.ai-chain-peer-position-value.green { color: #6be6b9; }
.ai-chain-peer-position-value.red { color: #ff9d9d; }
.ai-chain-peer-position-value.blue { color: #79c0ff; }

.ai-chain-peer-position-bar {
    height: 7px;
    margin-top: 9px;
    border-radius: 999px;
    overflow: hidden;
    background: rgba(145,168,196,0.12);
}

.ai-chain-peer-position-bar-fill {
    height: 100%;
    border-radius: 999px;
    background: linear-gradient(90deg, rgba(78,161,255,0.45), rgba(78,161,255,0.95));
}

.ai-chain-peer-position-bar-fill.green {
    background: linear-gradient(90deg, rgba(45,201,151,0.45), rgba(45,201,151,0.95));
}

.ai-chain-peer-position-bar-fill.red {
    background: linear-gradient(90deg, rgba(239,83,80,0.45), rgba(239,83,80,0.95));
}

.ai-chain-peer-position-helper {
    margin-top: 8px;
    color: #7f93ad;
    font-size: 0.74rem;
    line-height: 1.45;
}

.ai-chain-peer-segment-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.ai-chain-peer-segment-card {
    min-height: 164px;
    padding: 12px;
    border-radius: 16px;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(145,168,196,0.10);
}

.ai-chain-peer-segment-card.green { border-color: rgba(45,201,151,0.20); }
.ai-chain-peer-segment-card.red { border-color: rgba(239,83,80,0.20); }
.ai-chain-peer-segment-card.blue { border-color: rgba(78,161,255,0.20); }

.ai-chain-peer-segment-head {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    align-items: center;
}

.ai-chain-peer-segment-title {
    color: #c9d8ea;
    font-size: 0.84rem;
    font-weight: 900;
}

.ai-chain-peer-segment-title.green { color: #6be6b9; }
.ai-chain-peer-segment-title.red { color: #ff9d9d; }
.ai-chain-peer-segment-title.blue { color: #79c0ff; }
.ai-chain-peer-segment-title.neutral { color: #c9d8ea; }

.ai-chain-peer-segment-count {
    color: #6f8198;
    font-size: 0.72rem;
    font-weight: 850;
}

.ai-chain-peer-segment-hint {
    margin-top: 8px;
    color: #8095ad;
    font-size: 0.73rem;
    line-height: 1.45;
}

.ai-chain-peer-tag-row {
    min-height: 24px;
    margin-top: 8px;
}

.ai-chain-peer-current-tag {
    display: inline-flex;
    padding: 3px 8px;
    border-radius: 999px;
    color: #f6bd16;
    font-size: 0.68rem;
    font-weight: 850;
    background: rgba(246,189,22,0.10);
    border: 1px solid rgba(246,189,22,0.22);
}

.ai-chain-peer-segment-list {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-top: 8px;
    font-size: 0.73rem;
}

.ai-chain-current-row > td {
    background: rgba(246,189,22,0.075) !important;
    border-top: 1px solid rgba(246,189,22,0.16);
    border-bottom: 1px solid rgba(246,189,22,0.16);
}

.ai-chain-current-row .ai-chain-stock-link::after {
    content: " 当前";
    margin-left: 5px;
    color: #f6bd16;
    font-size: 0.68rem;
    font-weight: 900;
}

.ai-chain-finance-head,
.ai-chain-finance-col {
    min-width: 0;
    width: 74px;
    max-width: 74px;
}

.ai-chain-finance-plain {
    color: #c9d8ea;
    font-size: 0.78rem;
    font-weight: 850;
    cursor: help;
    white-space: nowrap;
}

.ai-chain-finance-plain.red { color: #ef5350; }
.ai-chain-finance-plain.green { color: #26a69a; }
.ai-chain-finance-plain.neutral { color: #c9d8ea; }

.ai-chain-finance-empty {
    color: #6f8198;
    font-size: 0.74rem;
}

.ai-chain-finance-tip-title {
    color: #f3f8ff;
    font-weight: 900;
    margin-bottom: 4px;
}

.ai-chain-table {
    width: 100% !important;
    min-width: 0 !important;
    table-layout: fixed;
    color: #e6edf3;
    font-size: 0.78rem;
}

.ai-chain-table th,
.ai-chain-table td {
    min-width: 0 !important;
    padding: 0.5rem 0.34rem;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ai-chain-table .stock-list-col-rank {
    width: 42px;
    max-width: 42px;
}

.ai-chain-table .stock-list-col-stock {
    width: 78px;
    max-width: 78px;
}

.ai-chain-table .stock-list-col-industry {
    width: 72px;
    max-width: 72px;
}

.ai-chain-table .stock-list-col-num {
    width: 62px;
    max-width: 62px;
}

.ai-chain-table .stock-list-col-action {
    width: 76px;
    max-width: 76px;
    overflow: visible;
    text-overflow: clip;
}

.ai-chain-stock-link {
    display: inline-block;
    max-width: 70px;
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: middle;
    white-space: nowrap;
    color: #79c0ff;
    text-decoration: none;
    font-weight: 800;
}

.ai-chain-stock-link:hover {
    color: #ffffff;
}

.ai-chain-action-row {
    display: inline-flex;
    gap: 4px;
    justify-content: center;
    flex-wrap: nowrap;
}

.ai-chain-action-link {
    color: #79c0ff;
    text-decoration: none;
    font-size: 0.66rem;
    font-weight: 850;
    padding: 2px 4px;
    line-height: 1.35;
    border-radius: 999px;
    background: rgba(78,161,255,0.08);
    border: 1px solid rgba(78,161,255,0.20);
}

.ai-chain-action-link:hover {
    color: #ffffff;
    background: rgba(78,161,255,0.18);
}

.ai-chain-reason-head,
.ai-chain-reason-cell {
    width: 150px;
    max-width: 150px;
}

.ai-chain-reason-cell {
    color: #9dafc4;
    font-size: 0.72rem;
    line-height: 1.38;
    white-space: normal;
    word-break: break-word;
}

@media (max-width: 1200px) {
    .ai-chain-kpi-grid,
    .ai-chain-list-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ai-chain-map,
    .ai-chain-valuation-panel,
    .ai-chain-signal-card,
    .ai-chain-peer-position-grid,
    .ai-chain-peer-segment-grid {
        grid-template-columns: 1fr;
    }

    .ai-chain-arrow {
        transform: rotate(90deg);
        min-height: 26px;
    }
}

@media (max-width: 640px) {
    .ai-insight-shell {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    .ai-chain-map-panel,
    .ai-chain-detail-panel,
    .ai-chain-valuation-panel {
        padding: 12px;
    }

    .ai-chain-kpi-grid,
    .ai-chain-mini-grid,
    .ai-chain-list-grid,
    .ai-chain-node-metrics {
        grid-template-columns: 1fr;
    }

    .ai-chain-kpi-card,
    .ai-chain-node,
    .ai-chain-current-node {
        min-height: auto;
    }

    .ai-chain-detail-toolbar,
    .ai-chain-detail-title-row {
        align-items: stretch;
    }

    .ai-chain-view-switch,
    .ai-chain-sort-switch {
        width: 100%;
        flex-wrap: nowrap;
        overflow-x: auto;
        padding-bottom: 4px;
        -webkit-overflow-scrolling: touch;
    }

    .ai-chain-view-chip,
    .ai-chain-sort-chip {
        flex: 0 0 auto;
        justify-content: center;
    }

    .ai-chain-signal-metrics {
        grid-template-columns: 1fr;
    }

    .ai-chain-signal-card,
    .ai-chain-peer-position-panel,
    .ai-chain-peer-segment-panel {
        padding: 12px;
    }

    .ai-chain-scroll-hint {
        display: block;
    }

    .ai-chain-table {
        width: 980px !important;
        min-width: 980px !important;
        font-size: 0.72rem;
    }

    .ai-chain-table .stock-list-col-stock {
        width: 72px;
        max-width: 72px;
    }

    .ai-chain-table .stock-list-col-industry {
        width: 66px;
        max-width: 66px;
    }

    .ai-chain-table .stock-list-col-num {
        width: 56px;
        max-width: 56px;
    }

    .ai-chain-table .stock-list-col-action {
        width: 70px;
        max-width: 70px;
    }

    .ai-chain-stock-link {
        max-width: 62px;
    }

    .ai-chain-finance-head,
    .ai-chain-finance-col {
        width: 68px;
        max-width: 68px;
    }

    .ai-chain-reason-head,
    .ai-chain-reason-cell {
        width: 126px;
        max-width: 126px;
    }

    .ai-chain-empty-state {
        padding: 15px;
    }
}

/* ── 关于我们 ─── */
.about-hero {
    margin-bottom: 16px;
}

.about-hero-subtitle {
    max-width: 860px;
}

.about-hero-actions {
    margin-top: 18px;
}

.about-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 16px;
}

.about-card {
    min-height: 150px;
    padding: 18px;
    border-radius: 20px;
    border: 1px solid rgba(145,168,196,0.16);
    background:
        radial-gradient(220px 110px at 100% 0%, rgba(78,161,255,0.09), transparent 72%),
        rgba(7,16,29,0.58);
}

.about-card.green {
    background:
        radial-gradient(220px 110px at 100% 0%, rgba(45,201,151,0.10), transparent 72%),
        rgba(7,16,29,0.58);
}

.about-card.gold {
    background:
        radial-gradient(220px 110px at 100% 0%, rgba(246,189,22,0.10), transparent 72%),
        rgba(7,16,29,0.58);
}

.about-card-title {
    color: #9ecbff;
    font-size: 1.04rem;
    font-weight: 920;
}

.about-card-title.green { color: #6be6b9; }
.about-card-title.gold { color: #f6bd16; }

.about-card-desc {
    margin-top: 10px;
    color: #91a8c4;
    font-size: 0.86rem;
    line-height: 1.66;
}

.about-principle-panel,
.about-disclaimer-panel {
    padding: 18px;
    margin-bottom: 16px;
}

.about-principle-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.about-principle-item {
    padding: 15px;
    border-radius: 16px;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(145,168,196,0.10);
}

.about-principle-title {
    color: #f3f8ff;
    font-size: 0.94rem;
    font-weight: 900;
}

.about-principle-body,
.about-disclaimer-body {
    color: #91a8c4;
    font-size: 0.84rem;
    line-height: 1.68;
}

.about-principle-body {
    margin-top: 8px;
}

.about-disclaimer-body p {
    margin-bottom: 10px;
}

.about-disclaimer-body p:last-child {
    margin-bottom: 0;
}

@media (max-width: 900px) {
    .about-card-grid,
    .about-principle-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .site-footer {
        padding: 14px 14px 20px;
    }

    .site-footer-disclaimer {
        text-align: left;
        font-size: 0.74rem;
    }

    .site-footer-contact {
        justify-content: flex-start;
        gap: 8px;
        font-size: 0.76rem;
    }

    .site-footer-contact-qr {
        width: 42px;
        height: 42px;
    }

    .site-contact-lightbox-card {
        padding: 22px 18px 18px;
        border-radius: 20px;
    }
}

/* ── 财报解读 ─── */
.fr-hero {
    max-width: 1280px;
    margin: 12px auto 16px;
}

.fr-panel {
    max-width: 1280px;
    padding: 18px;
    margin: 0 auto 16px;
}

.fr-back-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: 8px 14px;
    border-radius: 999px;
    color: #dbe7f6;
    text-decoration: none;
    font-size: 0.82rem;
    font-weight: 840;
    border: 1px solid rgba(145,168,196,0.18);
    background: rgba(8,17,31,0.36);
    transition: border-color 160ms ease, background 160ms ease, transform 160ms ease;
}

.fr-back-link:hover {
    color: #ffffff;
    text-decoration: none;
    border-color: rgba(78,161,255,0.36);
    background: rgba(78,161,255,0.12);
    transform: translateY(-1px);
}

.fr-input.form-control,
.fr-input textarea,
.fr-input {
    background: rgba(8, 17, 31, 0.74) !important;
    border: 1px solid rgba(145, 168, 196, 0.22) !important;
    color: #e6edf3 !important;
    border-radius: 12px !important;
    box-shadow: none !important;
}

.fr-input:focus {
    border-color: rgba(78, 161, 255, 0.42) !important;
    box-shadow: 0 0 0 2px rgba(78, 161, 255, 0.08) !important;
}

.fr-status-line {
    margin-top: 10px;
    color: #91a8c4;
    font-size: 0.84rem;
}

.fr-candidate-shell {
    min-height: 72px;
}

.fr-status-inline {
    margin-top: 0;
    text-align: right;
}

.fr-table {
    color: #dbe7f6;
    font-size: 0.84rem;
}

.fr-table th {
    color: #91a8c4;
    white-space: nowrap;
}

.fr-table th,
.fr-table td {
    text-align: center;
    vertical-align: middle;
}

.fr-table .fr-candidate-title,
.fr-table .fr-summary-cell {
    text-align: left;
}

.fr-candidate-title {
    min-width: 260px;
    color: #f3f8ff;
    font-weight: 760;
}

.fr-switches {
    color: #a8bed8;
    font-size: 0.86rem;
    padding-top: 8px;
}

.fr-empty-card {
    padding: 18px;
    border-radius: 16px;
    color: #91a8c4;
    background: rgba(8, 17, 31, 0.58);
    border: 1px solid rgba(145, 168, 196, 0.13);
}

.fr-empty-text {
    color: #7e91aa;
    font-size: 0.84rem;
}

.fr-report-list-shell {
    min-height: 180px;
}

.fr-report-list {
    display: grid;
    gap: 12px;
}

.fr-report-card {
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr) 190px;
    gap: 14px;
    align-items: center;
    padding: 15px;
    border-radius: 18px;
    border: 1px solid rgba(145,168,196,0.13);
    background:
        radial-gradient(240px 120px at 0% 0%, rgba(78,161,255,0.08), transparent 70%),
        rgba(255,255,255,0.045);
}

.fr-report-period-cell {
    display: grid;
    gap: 8px;
}

.fr-report-period {
    color: #f3f8ff;
    font-size: 1.04rem;
    font-weight: 920;
    letter-spacing: -0.02em;
}

.fr-report-main {
    min-width: 0;
}

.fr-report-title {
    color: #f3f8ff;
    font-size: 0.94rem;
    font-weight: 850;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fr-report-meta {
    margin-top: 6px;
    color: #7e91aa;
    font-size: 0.78rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fr-report-side {
    display: grid;
    justify-items: end;
    gap: 7px;
}

.fr-report-time-label {
    color: #7489a4;
    font-size: 0.72rem;
    font-weight: 780;
}

.fr-report-time-value {
    color: #dbe7f6;
    font-size: 0.86rem;
    font-weight: 820;
}

.fr-report-actions {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 7px;
}

.fr-report-action {
    border-radius: 999px !important;
    font-size: 0.76rem !important;
    font-weight: 820 !important;
}

.fr-pager {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    margin-top: 14px;
}

.fr-pager-info {
    color: #91a8c4;
    font-size: 0.82rem;
    min-width: 130px;
    text-align: center;
}

.fr-result-wrap {
    padding: 18px;
    margin-bottom: 16px;
    border-radius: 22px;
    border: 1px solid rgba(145, 168, 196, 0.16);
    background:
        radial-gradient(620px 260px at 4% 0%, rgba(78,161,255,0.14), transparent 60%),
        rgba(7,16,29,0.70);
}

.fr-result-head {
    align-items: flex-start;
    gap: 12px;
}

.fr-metric-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin: 14px 0 16px;
}

.fr-metric-card {
    min-height: 112px;
    padding: 15px;
    border-radius: 18px;
    border: 1px solid rgba(145,168,196,0.14);
    background: rgba(255,255,255,0.045);
}

.fr-metric-label {
    color: #91a8c4;
    font-size: 0.78rem;
    font-weight: 740;
}

.fr-metric-value {
    margin-top: 9px;
    color: #f3f8ff;
    font-size: 1.28rem;
    font-weight: 900;
    letter-spacing: -0.02em;
}

.fr-metric-value.red { color: #ff6b6b; }
.fr-metric-value.green { color: #49d4a2; }
.fr-metric-value.gold { color: #f6bd16; }
.fr-metric-value.muted { color: #9eb2c9; }

.fr-metric-helper {
    margin-top: 5px;
    color: #7489a4;
    font-size: 0.76rem;
}

.fr-summary-card,
.fr-half-card,
.fr-analysis-block {
    padding: 16px;
    border-radius: 18px;
    border: 1px solid rgba(145, 168, 196, 0.13);
    background: rgba(255,255,255,0.045);
    margin-bottom: 12px;
}

.fr-summary-card.muted {
    background: rgba(145,168,196,0.045);
}

.fr-summary-card.compact,
.fr-half-card.compact {
    margin-bottom: 0;
}

.fr-retail-card {
    background:
        radial-gradient(360px 160px at 0% 0%, rgba(246,189,22,0.09), transparent 70%),
        rgba(255,255,255,0.045);
}

.fr-action-card {
    background:
        radial-gradient(460px 180px at 0% 0%, rgba(45,201,151,0.13), transparent 72%),
        radial-gradient(340px 150px at 100% 0%, rgba(246,189,22,0.10), transparent 72%),
        rgba(255,255,255,0.05);
    border-color: rgba(45,201,151,0.18);
}

.fr-action-head {
    display: grid;
    grid-template-columns: 180px minmax(0, 1fr);
    gap: 12px;
    margin: 12px 0;
}

.fr-action-main {
    padding: 10px 12px;
    border-radius: 14px;
    border: 1px solid rgba(145,168,196,0.13);
    background: rgba(8,17,31,0.34);
}

.fr-action-plain {
    margin-top: 5px;
    color: #f3f8ff;
    font-size: 0.94rem;
    line-height: 1.66;
    font-weight: 780;
}

.fr-action-note {
    margin-top: 12px;
    color: #7e91aa;
    font-size: 0.78rem;
    line-height: 1.55;
}

.fr-gap-card {
    background:
        radial-gradient(420px 180px at 0% 0%, rgba(246,189,22,0.12), transparent 72%),
        radial-gradient(360px 160px at 100% 10%, rgba(78,161,255,0.10), transparent 72%),
        rgba(255,255,255,0.045);
}

.fr-management-card {
    background:
        radial-gradient(420px 180px at 0% 0%, rgba(78,161,255,0.12), transparent 72%),
        radial-gradient(360px 160px at 100% 10%, rgba(45,201,151,0.08), transparent 72%),
        rgba(255,255,255,0.045);
}

.fr-management-grid {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr) minmax(0, 1fr);
    gap: 10px;
    margin: 16px 0;
    align-items: stretch;
}

.fr-management-wide {
    display: block;
}

.fr-management-wide .fr-body-text {
    margin-top: 7px;
    font-size: 0.96rem;
    line-height: 1.68;
}

.fr-tracking-card {
    background:
        radial-gradient(460px 190px at 0% 0%, rgba(45,201,151,0.12), transparent 72%),
        rgba(255,255,255,0.045);
}

.fr-track-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 18px;
    margin-top: 16px;
}

.fr-track-item {
    padding: 15px 0;
    border-top: 1px dashed rgba(145,168,196,0.20);
}

.fr-track-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
}

.fr-track-category {
    color: #91a8c4;
    font-size: 0.9rem;
    font-weight: 860;
}

.fr-track-title {
    color: #f3f8ff;
    font-size: 1.03rem;
    line-height: 1.66;
    font-weight: 880;
}

.fr-track-detail {
    margin-top: 7px;
    color: #aebfd4;
    font-size: 0.94rem;
    line-height: 1.72;
}

.fr-gap-summary {
    margin-top: 10px;
    color: #f3f8ff;
    font-size: 1rem;
    line-height: 1.72;
    font-weight: 820;
}

.fr-gap-count {
    color: #dbe7f6;
    font-size: 0.9rem;
    font-weight: 900;
}

.fr-gap-value {
    border-color: rgba(45,201,151,0.18);
    background: radial-gradient(260px 140px at 100% 0%, rgba(45,201,151,0.10), transparent 70%), rgba(255,255,255,0.04);
}

.fr-gap-risk {
    border-color: rgba(246,189,22,0.18);
    background: radial-gradient(260px 140px at 100% 0%, rgba(246,189,22,0.11), transparent 70%), rgba(255,255,255,0.04);
}

.fr-gap-point-list {
    display: grid;
    gap: 10px;
    margin-top: 9px;
}

.fr-gap-point {
    padding: 11px 12px;
    border-radius: 14px;
    border: 1px solid rgba(145,168,196,0.12);
    background: rgba(8,17,31,0.32);
}

.fr-gap-point-title {
    color: #f3f8ff;
    font-size: 0.86rem;
    font-weight: 880;
    line-height: 1.55;
}

.fr-gap-point-details {
    display: grid;
    gap: 5px;
    margin-top: 8px;
}

.fr-gap-detail {
    color: #9eb2c9;
    font-size: 0.78rem;
    line-height: 1.58;
}

.fr-gap-label {
    color: #d0dded;
    font-weight: 840;
}

.fr-section-title,
.fr-block-title {
    color: #f3f8ff;
    font-size: 0.98rem;
    font-weight: 900;
}

.fr-section-subtitle {
    margin-top: 4px;
    color: #7e91aa;
    font-size: 0.78rem;
}

.fr-summary-text,
.fr-body-text,
.fr-block-body {
    margin-top: 9px;
    color: #b8c7da;
    font-size: 0.9rem;
    line-height: 1.72;
}

.fr-analysis-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.fr-level-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin: 12px 0;
}

.fr-level-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 10px 12px;
    border-radius: 14px;
    border: 1px solid rgba(145,168,196,0.13);
    background: rgba(8,17,31,0.34);
}

.fr-question-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 10px;
}

.fr-question-card {
    padding: 11px 12px;
    border-radius: 14px;
    border: 1px solid rgba(145,168,196,0.12);
    background: rgba(8,17,31,0.30);
}

.fr-question-title {
    color: #dbe7f6;
    font-size: 0.82rem;
    font-weight: 880;
}

.fr-question-body {
    margin-top: 5px;
    color: #9eb2c9;
    font-size: 0.78rem;
    line-height: 1.55;
}

.fr-analysis-block.blue {
    background: radial-gradient(260px 120px at 100% 0%, rgba(78,161,255,0.10), transparent 70%), rgba(255,255,255,0.045);
}

.fr-analysis-block.green {
    background: radial-gradient(260px 120px at 100% 0%, rgba(45,201,151,0.10), transparent 70%), rgba(255,255,255,0.045);
}

.fr-analysis-block.gold {
    background: radial-gradient(260px 120px at 100% 0%, rgba(246,189,22,0.10), transparent 70%), rgba(255,255,255,0.045);
}

.fr-block-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.fr-status-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 3px 8px;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 860;
    white-space: nowrap;
    border: 1px solid rgba(145,168,196,0.16);
}

.fr-status-badge.blue { color: #9ecbff; background: rgba(78,161,255,0.12); }
.fr-status-badge.green { color: #6be6b9; background: rgba(45,201,151,0.12); }
.fr-status-badge.gold { color: #f6d36b; background: rgba(246,189,22,0.12); }

.fr-mini-title {
    margin-top: 12px;
    color: #91a8c4;
    font-size: 0.78rem;
    font-weight: 820;
}

.fr-list {
    margin: 7px 0 0;
    padding-left: 18px;
    color: #aebfd4;
    font-size: 0.82rem;
    line-height: 1.62;
}

.fr-list li {
    margin-bottom: 4px;
}

.fr-two-col {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

@media (max-width: 1100px) {
    .fr-metric-grid,
    .fr-analysis-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .fr-report-card {
        grid-template-columns: 100px minmax(0, 1fr);
    }

    .fr-report-side {
        grid-column: 1 / -1;
        justify-items: start;
    }

    .fr-report-actions {
        justify-content: flex-start;
    }

    .fr-action-head {
        grid-template-columns: 1fr;
    }

    .fr-level-grid,
    .fr-question-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 720px) {
    .fr-metric-grid,
    .fr-analysis-grid,
    .fr-two-col,
    .fr-level-grid,
    .fr-question-grid {
        grid-template-columns: 1fr;
    }

    .fr-result-wrap,
    .fr-panel {
        padding: 14px;
    }

    .fr-report-card {
        grid-template-columns: 1fr;
    }

    .fr-status-inline,
    .fr-report-side {
        text-align: left;
        justify-items: start;
    }

    .fr-pager {
        justify-content: space-between;
    }
}

/* ── 自选股 x 财报解读 ─── */
.watch-col-report {
    min-width: 76px;
    width: 76px;
    max-width: 82px;
}

.watch-col-ann {
    min-width: 122px;
    width: 122px;
    max-width: 138px;
}

.watch-report-cell {
    display: grid;
    gap: 5px;
    min-width: 0;
}

.watch-report-cell.compact {
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.watch-report-meta {
    display: flex;
    align-items: center;
    gap: 5px;
    flex-wrap: wrap;
}

.watch-report-period,
.watch-report-rating,
.watch-report-risk,
.watch-report-empty {
    display: inline-flex;
    align-items: center;
    padding: 2px 7px;
    border-radius: 999px;
    font-size: 0.70rem;
    font-weight: 820;
    white-space: nowrap;
}

.watch-report-period.compact,
.watch-report-empty.compact {
    padding: 2px 7px;
    font-size: 0.68rem;
}

.watch-report-period {
    color: #9ecbff;
    background: rgba(78,161,255,0.12);
    border: 1px solid rgba(78,161,255,0.20);
}

.watch-report-rating.good {
    color: #6be6b9;
    background: rgba(45,201,151,0.12);
    border: 1px solid rgba(45,201,151,0.20);
}

.watch-report-rating.warn {
    color: #f6d36b;
    background: rgba(246,189,22,0.12);
    border: 1px solid rgba(246,189,22,0.20);
}

.watch-report-rating.muted,
.watch-report-risk,
.watch-report-empty {
    color: #91a8c4;
    background: rgba(145,168,196,0.10);
    border: 1px solid rgba(145,168,196,0.16);
}

.watch-report-summary {
    max-width: 178px;
    color: #b8c7da;
    font-size: 0.75rem;
    line-height: 1.38;
    white-space: normal;
}

.watch-ann-cell {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.watch-ann-top {
    display: flex;
    align-items: center;
    gap: 5px;
    min-width: 0;
}

.watch-ann-badge,
.watch-ann-empty {
    display: inline-flex;
    align-items: center;
    padding: 2px 7px;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 850;
    white-space: nowrap;
}

.watch-ann-badge.today {
    color: #f6bd16;
    background: rgba(246,189,22,0.12);
    border: 1px solid rgba(246,189,22,0.24);
}

.watch-ann-badge.major {
    color: #ff7b72;
    background: rgba(239,83,80,0.12);
    border: 1px solid rgba(239,83,80,0.24);
}

.watch-ann-badge.report {
    color: #79c0ff;
    background: rgba(78,161,255,0.12);
    border: 1px solid rgba(78,161,255,0.22);
}

.watch-ann-badge.normal {
    color: #9ecbff;
    background: rgba(145,168,196,0.10);
    border: 1px solid rgba(145,168,196,0.16);
}

.watch-ann-empty {
    color: #6f8198;
    background: rgba(145,168,196,0.08);
    border: 1px solid rgba(145,168,196,0.12);
}

.watch-ann-date {
    color: #6f8198;
    font-size: 0.66rem;
    white-space: nowrap;
}

.watch-ann-title {
    max-width: 124px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #8fa3bd;
    text-decoration: none;
    font-size: 0.70rem;
    line-height: 1.3;
}

.watch-ann-title:hover {
    color: #ffffff;
}

.watch-report-link {
    color: #9ecbff;
    font-size: 0.74rem;
    font-weight: 760;
    text-decoration: none;
}

.watch-report-link:hover {
    color: #c5e1ff;
    text-decoration: underline;
}

/* 财报解读：报告化阅读优化 */
.fr-page {
    font-size: 17px;
}

.fr-result-wrap {
    padding: 26px;
    max-width: 1280px;
    margin-left: auto;
    margin-right: auto;
    display: grid;
    row-gap: 18px;
}

.fr-result-head .research-content-title {
    font-size: 1.36rem;
}

.fr-result-head .research-content-subtitle {
    font-size: 0.96rem;
}

.fr-pdf-link {
    color: #f6d36b !important;
    border-color: rgba(246, 189, 22, 0.26) !important;
    background: rgba(246, 189, 22, 0.10) !important;
}

.fr-summary-card,
.fr-half-card,
.fr-analysis-block {
    padding: 22px;
    border-radius: 22px;
    margin-bottom: 0;
}

.fr-section-title,
.fr-block-title {
    font-size: 1.24rem;
    letter-spacing: -0.01em;
}

.fr-section-subtitle {
    font-size: 0.96rem;
}

.fr-summary-text,
.fr-body-text,
.fr-block-body,
.fr-action-plain,
.fr-gap-summary {
    font-size: 1.08rem;
    line-height: 1.9;
}

.fr-list {
    font-size: 1.02rem;
    line-height: 1.82;
}

.fr-mini-title,
.fr-metric-label,
.fr-report-meta,
.fr-status-line,
.fr-empty-text {
    font-size: 0.9rem;
}

.fr-status-badge {
    font-size: 0.82rem;
    padding: 5px 10px;
}

.fr-metric-value {
    font-size: 1.36rem;
}

/* 指标区改成一整条数据带，减少“四个小盒子”的模板感。 */
.fr-metric-grid {
    gap: 0;
    overflow: hidden;
    border: 1px solid rgba(145,168,196,0.13);
    border-radius: 20px;
    background: rgba(255,255,255,0.045);
    margin: 4px 0 2px;
}

.fr-metric-card {
    min-height: 104px;
    border: 0;
    border-radius: 0;
    background: transparent;
    border-right: 1px solid rgba(145,168,196,0.11);
}

.fr-metric-card:last-child {
    border-right: 0;
}

/* 内部小模块去盒子化：外层保留报告卡片，内层用线条分隔。 */
.fr-summary-card.compact,
.fr-half-card.compact,
.fr-level-card,
.fr-action-main {
    background: transparent;
    border-color: rgba(145,168,196,0.10);
}

.fr-level-grid {
    gap: 8px;
    margin: 16px 0;
    align-items: start;
}

.fr-level-card {
    align-items: flex-start;
    border-style: dashed;
    border-radius: 14px;
    min-height: 54px;
}

.fr-level-card .fr-mini-title,
.fr-action-head .fr-mini-title,
.fr-two-col > .fr-summary-card.compact > .fr-mini-title:first-child,
.fr-two-col > .fr-half-card.compact > .fr-mini-title:first-child,
.fr-report-section > .fr-section-title:first-child {
    margin-top: 0;
}

.fr-level-card .fr-status-badge {
    margin-top: -1px;
}

.fr-gap-card .fr-level-grid {
    gap: 0;
    margin: 18px 0 20px;
    border-top: 1px solid rgba(145,168,196,0.14);
    border-bottom: 1px solid rgba(145,168,196,0.14);
}

.fr-gap-card .fr-level-card {
    min-height: 0;
    padding: 13px 16px;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.fr-gap-card .fr-level-card + .fr-level-card {
    border-left: 1px dashed rgba(145,168,196,0.18);
}

.fr-action-head {
    margin: 16px 0 18px;
    align-items: start;
    display: block;
}

.fr-action-main {
    border: 0;
    border-top: 1px dashed rgba(45,201,151,0.28);
    border-radius: 0;
    padding: 14px 0 0;
}

.fr-action-head .fr-level-card {
    display: inline-flex;
    min-height: 0;
    padding: 0 0 13px;
    border: 0;
    border-radius: 0;
    justify-content: flex-start;
    align-items: center;
    gap: 10px;
}

.fr-two-col {
    gap: 16px;
    margin: 16px 0;
    align-items: start;
}

.fr-two-col:last-child {
    margin-bottom: 0;
}

.fr-two-col > .fr-summary-card.compact,
.fr-two-col > .fr-half-card.compact {
    border: 0;
    border-top: 1px dashed rgba(145,168,196,0.18);
    border-radius: 0;
    padding: 16px 18px 4px 0;
    align-self: start;
}

.fr-two-col > .fr-summary-card.compact:nth-child(2),
.fr-two-col > .fr-half-card.compact:nth-child(2) {
    border-left: 1px solid rgba(145,168,196,0.12);
    padding-left: 18px;
}

.fr-gap-point-list {
    gap: 0;
    margin-top: 14px;
}

.fr-gap-point {
    padding: 14px 0 15px;
    border: 0;
    border-radius: 0;
    border-top: 1px dashed rgba(145,168,196,0.20);
    background: transparent;
}

.fr-gap-point:first-child {
    border-top-style: solid;
}

.fr-gap-point-title {
    font-size: 1.03rem;
    line-height: 1.72;
    font-weight: 860;
}

.fr-gap-point-details {
    gap: 7px;
    margin-top: 10px;
}

.fr-gap-detail {
    font-size: 0.95rem;
    line-height: 1.76;
}

.fr-summary-card.compact + .fr-summary-card.compact,
.fr-half-card.compact + .fr-half-card.compact {
    margin-top: 14px;
}

.fr-quality-card {
    background:
        radial-gradient(420px 180px at 0% 0%, rgba(78,161,255,0.10), transparent 72%),
        rgba(255,255,255,0.045);
}

.fr-quality-list {
    display: grid;
    gap: 14px;
    margin-top: 16px;
}

.fr-quality-row {
    display: grid;
    grid-template-columns: 110px 90px minmax(0, 1fr);
    gap: 12px;
    align-items: start;
    padding: 15px 0;
    border-radius: 0;
    border: 0;
    border-top: 1px dashed rgba(145,168,196,0.18);
    background: transparent;
}

.fr-quality-row > * {
    margin-top: 0;
}

.fr-quality-row:first-child {
    border-top-style: solid;
}

.fr-quality-name {
    color: #f3f8ff;
    font-size: 0.98rem;
    font-weight: 900;
}

.fr-quality-text {
    color: #aebfd4;
    font-size: 0.96rem;
    line-height: 1.76;
}

.fr-review-card {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    align-items: start;
    background:
        radial-gradient(360px 160px at 0% 0%, rgba(246,189,22,0.08), transparent 72%),
        rgba(255,255,255,0.045);
}

.fr-report-section {
    padding-top: 2px;
    padding-bottom: 2px;
}

.fr-report-section + .fr-report-section {
    border-left: 1px solid rgba(145,168,196,0.12);
    padding-left: 16px;
}

@media (max-width: 1100px) {
    .fr-review-card {
        grid-template-columns: 1fr;
    }

    .fr-report-section + .fr-report-section {
        border-left: 0;
        padding-left: 0;
        border-top: 1px solid rgba(145,168,196,0.12);
        padding-top: 14px;
    }

    .fr-quality-row {
        grid-template-columns: 1fr;
    }

    .fr-management-grid,
    .fr-track-grid {
        grid-template-columns: 1fr;
    }

    .fr-two-col > .fr-summary-card.compact:nth-child(2),
    .fr-two-col > .fr-half-card.compact:nth-child(2) {
        border-left: 0;
        padding-left: 0;
    }
}

/* ═══════════════════════════════════════════════
   用户系统 / 后台管理第一版
   ═══════════════════════════════════════════════ */
.nav-auth-area {
    display: flex;
    align-items: center;
    margin-left: 10px;
}
.nav-auth-actions {
    display: flex;
    align-items: center;
    gap: 0;
}
.nav-auth-btn {
    border-radius: 999px !important;
    padding: 5px 13px !important;
    font-size: 0.82rem !important;
    white-space: nowrap;
}
.nav-user-pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 31px;
    padding: 4px 10px 4px 12px;
    border-radius: 999px;
    text-decoration: none;
    color: #dce8f8;
    background: rgba(78, 161, 255, 0.10);
    border: 1px solid rgba(121, 192, 255, 0.24);
}
.nav-user-pill:hover {
    color: #ffffff;
    background: rgba(78, 161, 255, 0.18);
}
.nav-user-name {
    max-width: 110px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.82rem;
    font-weight: 820;
}
.nav-user-role {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 2px 7px;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 850;
    color: #06121f;
    background: #9ecbff;
}
.nav-user-role.free {
    color: #c9d8ea;
    background: rgba(145, 168, 196, 0.18);
}
.nav-user-role.active {
    color: #06121f;
    background: #f6bd16;
}

.auth-page {
    min-height: 100vh;
    padding: 48px 26px;
}
.auth-shell {
    max-width: 1180px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(0, 0.95fr) minmax(320px, 0.75fr);
    gap: 24px;
    align-items: stretch;
}
.auth-main,
.auth-side,
.auth-logout-card {
    border: 1px solid rgba(145, 168, 196, 0.2);
    border-radius: 26px;
    background:
        linear-gradient(145deg, rgba(17, 29, 45, 0.94), rgba(10, 19, 32, 0.92)),
        radial-gradient(500px 260px at 20% 0%, rgba(78, 161, 255, 0.22), transparent 70%);
    box-shadow: 0 22px 70px rgba(0, 0, 0, 0.26);
}
.auth-main {
    padding: 34px;
}
.auth-side {
    padding: 32px;
    background:
        radial-gradient(540px 320px at 85% 8%, rgba(45, 201, 151, 0.22), transparent 62%),
        linear-gradient(145deg, rgba(19, 34, 52, 0.9), rgba(12, 21, 35, 0.94));
}
.auth-logout-card {
    max-width: 720px;
    margin: 60px auto;
    padding: 42px;
}
.auth-eyebrow,
.auth-side-kicker {
    color: #78c2ff;
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    margin-bottom: 12px;
}
.auth-title {
    color: #f5f9ff;
    font-size: clamp(2rem, 4vw, 3.45rem);
    font-weight: 820;
    letter-spacing: -0.05em;
    line-height: 1.05;
    margin-bottom: 12px;
}
.auth-subtitle {
    color: #9eb2c9;
    font-size: 1rem;
    line-height: 1.75;
    max-width: 620px;
    margin-bottom: 26px;
}
.auth-form-card {
    max-width: 520px;
    padding: 24px;
    border: 1px dashed rgba(145, 168, 196, 0.32);
    border-radius: 20px;
    background: rgba(8, 17, 31, 0.38);
}
.auth-label {
    color: #c9d8ea;
    font-size: 0.86rem;
    font-weight: 700;
    margin-bottom: 7px;
}
.auth-input.form-control {
    height: 44px;
    color: #eaf2ff;
    border: 1px solid rgba(145, 168, 196, 0.24);
    background: rgba(7, 15, 27, 0.78);
    border-radius: 13px;
}
.auth-input.form-control:focus {
    color: #fff;
    background: rgba(7, 15, 27, 0.95);
    border-color: rgba(78, 161, 255, 0.72);
    box-shadow: 0 0 0 3px rgba(78, 161, 255, 0.12);
}
.auth-submit {
    width: 100%;
    height: 44px;
    border-radius: 13px !important;
}
.auth-switch {
    margin-top: 18px;
    color: #91a6bf;
    font-size: 0.9rem;
    text-align: center;
}
.auth-inline-link {
    margin-left: 8px;
    color: #78c2ff;
    text-decoration: none;
    font-weight: 760;
}
.auth-side-title {
    color: #f5f9ff;
    font-size: 1.65rem;
    font-weight: 800;
    letter-spacing: -0.03em;
    margin-bottom: 22px;
}
.auth-side-item {
    display: grid;
    grid-template-columns: 38px 1fr;
    gap: 12px;
    padding: 15px 0;
    border-top: 1px dashed rgba(145, 168, 196, 0.22);
}
.auth-side-item span {
    color: #2dc997;
    font-weight: 820;
}
.auth-side-item p {
    margin: 0;
    color: #b3c2d6;
    line-height: 1.65;
}

.account-hero {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: flex-start;
    padding: 28px;
    margin-bottom: 18px;
    border: 1px solid rgba(145, 168, 196, 0.18);
    border-radius: 24px;
    background:
        radial-gradient(520px 260px at 90% 0%, rgba(78, 161, 255, 0.16), transparent 66%),
        rgba(12, 22, 36, 0.72);
}
.account-hero-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    padding-top: 4px;
}
.account-metric-grid,
.mmn-metric-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 18px;
}
.account-metric,
.mmn-metric {
    padding: 18px;
    border-radius: 18px;
    border: 1px solid rgba(145, 168, 196, 0.18);
    background: rgba(13, 24, 38, 0.72);
}
.account-metric-label,
.mmn-metric-label {
    color: #8ea4bd;
    font-size: 0.8rem;
    margin-bottom: 8px;
}
.account-metric-value,
.mmn-metric-value {
    color: #f5f9ff;
    font-size: 1.45rem;
    font-weight: 820;
    letter-spacing: -0.02em;
    line-height: 1.15;
}
.account-metric-value.blue { color: #78c2ff; }
.account-metric-value.green { color: #62d9b2; }
.account-metric-value.gold { color: #ffd166; }
.account-metric-value.red { color: #ff8b8b; }
.account-metric-hint,
.mmn-metric-hint {
    color: #7e91a8;
    font-size: 0.78rem;
    margin-top: 8px;
}
.account-feature-list {
    display: grid;
    gap: 12px;
}
.account-feature {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 15px 16px;
    border: 1px dashed rgba(145, 168, 196, 0.25);
    border-radius: 16px;
    background: rgba(8, 17, 31, 0.28);
}
.account-feature-title {
    color: #eaf2ff;
    font-weight: 780;
    margin-bottom: 4px;
}
.account-feature-desc {
    color: #92a6bf;
    font-size: 0.86rem;
    line-height: 1.55;
}
.account-feature-action {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
}
.account-feature-badge {
    display: inline-flex;
    align-items: center;
    min-width: 66px;
    justify-content: center;
    padding: 4px 9px;
    border-radius: 999px;
    color: #06121f;
    background: #78c2ff;
    font-size: 0.75rem;
    font-weight: 800;
}
.account-feature-badge.muted {
    color: #9eb2c9;
    background: rgba(145, 168, 196, 0.13);
}
.account-bottom-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    margin-top: 20px;
}
.account-bottom-link {
    color: #9ecbff;
    text-decoration: none;
    padding: 7px 12px;
    border-radius: 999px;
    background: rgba(78, 161, 255, 0.1);
}

/* 用户端会员套餐 */
.membership-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.8fr);
    gap: 18px;
    align-items: stretch;
    padding: 30px;
    margin-bottom: 18px;
    border: 1px solid rgba(145, 168, 196, 0.18);
    border-radius: 28px;
    background:
        radial-gradient(620px 320px at 12% 0%, rgba(255, 209, 102, 0.13), transparent 62%),
        radial-gradient(620px 320px at 92% 18%, rgba(78, 161, 255, 0.16), transparent 64%),
        rgba(10, 20, 34, 0.74);
}
.membership-status-card {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: flex-end;
    padding: 20px;
    border: 1px dashed rgba(255, 209, 102, 0.28);
    border-radius: 22px;
    background: rgba(8, 17, 31, 0.42);
}
.membership-status-label {
    color: #9aacbf;
    font-size: 0.78rem;
    margin-bottom: 7px;
}
.membership-status-value {
    color: #ffd166;
    font-size: 1.45rem;
    font-weight: 860;
    line-height: 1.15;
}
.membership-status-hint {
    color: #8ca0b8;
    font-size: 0.8rem;
    margin-top: 8px;
}
.membership-status-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
}
.membership-plan-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 18px;
}
.membership-plan-card {
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    min-height: 410px;
    padding: 22px;
    border: 1px solid rgba(145, 168, 196, 0.18);
    border-radius: 24px;
    background:
        radial-gradient(360px 180px at 100% 0%, rgba(78, 161, 255, 0.12), transparent 64%),
        rgba(11, 22, 36, 0.78);
}
.membership-plan-card.featured {
    border-color: rgba(255, 209, 102, 0.38);
    box-shadow: 0 22px 70px rgba(255, 209, 102, 0.08);
}
.membership-plan-top {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    align-items: center;
    margin-bottom: 18px;
}
.membership-plan-status {
    display: inline-flex;
    align-items: center;
    padding: 5px 10px;
    border-radius: 999px;
    font-size: 0.74rem;
    font-weight: 840;
}
.membership-plan-status.active {
    color: #06121f;
    background: #ffd166;
}
.membership-plan-status.draft {
    color: #9ecbff;
    background: rgba(78, 161, 255, 0.12);
    border: 1px solid rgba(78, 161, 255, 0.28);
}
.membership-plan-status.disabled {
    color: #9eb2c9;
    background: rgba(145, 168, 196, 0.13);
}
.membership-plan-duration {
    color: #8ea4bd;
    font-size: 0.82rem;
}
.membership-plan-name {
    color: #f4f8ff;
    font-size: 1.28rem;
    font-weight: 860;
    margin-bottom: 10px;
}
.membership-price {
    display: flex;
    align-items: flex-start;
    gap: 4px;
    margin-bottom: 12px;
}
.membership-price-symbol {
    color: #ffd166;
    font-weight: 820;
    margin-top: 8px;
}
.membership-price-main {
    color: #ffd166;
    font-size: 2.45rem;
    font-weight: 900;
    letter-spacing: -0.05em;
    line-height: 1;
}
.membership-plan-desc {
    color: #96aac1;
    font-size: 0.9rem;
    line-height: 1.65;
    min-height: 48px;
}
.membership-benefit-box {
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px dashed rgba(145, 168, 196, 0.24);
}
.membership-benefit-title {
    color: #eaf2ff;
    font-size: 0.84rem;
    font-weight: 780;
    margin-bottom: 10px;
}
.membership-benefit-list {
    display: grid;
    gap: 8px;
    color: #b8c8d9;
    font-size: 0.86rem;
    line-height: 1.55;
    padding-left: 18px;
    margin-bottom: 0;
}
.membership-plan-button {
    width: 100%;
    margin-top: auto;
    border-radius: 999px !important;
}
.membership-pay-summary {
    display: grid;
    gap: 8px;
    padding: 16px;
    border-radius: 18px;
    border: 1px solid rgba(255, 209, 102, 0.22);
    background: rgba(255, 209, 102, 0.08);
    margin-bottom: 16px;
}
.membership-pay-product {
    color: #f4f8ff;
    font-weight: 860;
    font-size: 1.05rem;
}
.membership-pay-price {
    display: flex;
    align-items: flex-start;
    gap: 4px;
    color: #ffd166;
}
.membership-pay-symbol {
    font-size: 1rem;
    font-weight: 820;
    margin-top: 6px;
}
.membership-pay-amount {
    font-size: 2.2rem;
    font-weight: 900;
    line-height: 1;
    letter-spacing: -0.04em;
}
.membership-pay-order,
.membership-pay-expire,
.membership-pay-tip,
.membership-pay-status-text {
    color: #91a6bf;
    font-size: 0.82rem;
    line-height: 1.6;
}
.membership-pay-qrbox {
    display: grid;
    place-items: center;
    gap: 10px;
    padding: 18px;
    border-radius: 20px;
    background: rgba(8, 17, 31, 0.32);
    border: 1px dashed rgba(145, 168, 196, 0.24);
}
.membership-pay-qr {
    width: 220px;
    height: 220px;
    padding: 10px;
    border-radius: 16px;
    background: #fff;
}
.membership-pay-code-url {
    display: block;
    max-width: 100%;
    padding: 10px;
    border-radius: 12px;
    color: #9ecbff;
    background: rgba(8, 17, 31, 0.72);
    word-break: break-all;
    white-space: normal;
}
.membership-pay-message {
    color: #c8d6e6;
    line-height: 1.75;
}
.membership-pay-message.error {
    color: #ffb4b4;
    padding: 14px;
    border-radius: 16px;
    border: 1px dashed rgba(255, 123, 114, 0.3);
    background: rgba(255, 123, 114, 0.08);
}
.membership-pay-success {
    display: grid;
    gap: 10px;
    text-align: center;
    padding: 18px 6px;
}
.membership-pay-success-title {
    color: #4ade80;
    font-size: 1.25rem;
    font-weight: 880;
}
.membership-pay-success-line {
    color: #dce8f7;
}
.membership-pay-done-btn {
    justify-self: center;
    margin-top: 8px;
    border-radius: 999px !important;
}
.membership-pay-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
}
.membership-empty {
    grid-column: 1 / -1;
    color: #91a6bf;
    padding: 24px;
    border: 1px dashed rgba(145, 168, 196, 0.25);
    border-radius: 18px;
    background: rgba(8, 17, 31, 0.24);
}
.membership-panel {
    margin-bottom: 16px;
}
.membership-scenario-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}
.membership-scenario {
    padding: 18px;
    border: 1px dashed rgba(145, 168, 196, 0.24);
    border-radius: 18px;
    background: rgba(8, 17, 31, 0.24);
}
.membership-scenario-no {
    color: #ffd166;
    font-weight: 900;
    letter-spacing: 0.08em;
    margin-bottom: 10px;
}
.membership-scenario-text {
    color: #c8d6e6;
    line-height: 1.7;
}
.membership-disclaimer {
    color: #91a6bf;
    text-align: center;
    font-size: 0.84rem;
    line-height: 1.7;
    padding: 14px;
}

.mmn-panel {
    margin-bottom: 18px;
}
.mmn-empty {
    color: #91a6bf;
    padding: 18px;
    border: 1px dashed rgba(145, 168, 196, 0.25);
    border-radius: 14px;
    background: rgba(8, 17, 31, 0.22);
}
.mmn-table {
    color: #dce8f7 !important;
    font-size: 0.88rem;
}
.mmn-table th {
    color: #9ecbff !important;
    white-space: nowrap;
}
.mmn-table td {
    color: #dce8f7 !important;
    white-space: nowrap;
}
.mmn-users-table {
    min-width: 1080px;
}
.mmn-permission-table {
    min-width: 1180px;
}
.mmn-permission-role-cell {
    min-width: 180px;
}
.mmn-permission-note {
    color: #8ea4bd;
    font-size: 0.72rem;
    line-height: 1.45;
    margin-top: 5px;
    max-width: 220px;
    white-space: normal;
}
.mmn-permission-input {
    min-width: 94px;
    max-width: 118px;
    color: #eaf2ff !important;
    border-color: rgba(145, 168, 196, 0.28) !important;
    background: rgba(8, 17, 31, 0.55) !important;
}
.mmn-permission-input:disabled {
    opacity: 0.55;
}
.mmn-permission-desc {
    min-width: 180px;
    max-width: 280px;
    color: #91a6bf !important;
    white-space: normal !important;
    line-height: 1.45;
}
.mmn-permission-switch {
    display: inline-flex;
    min-width: 54px;
    justify-content: center;
}
.mmn-permission-switch .form-check-input {
    cursor: pointer;
    border-color: rgba(145, 168, 196, 0.35);
    background-color: rgba(145, 168, 196, 0.22);
}
.mmn-permission-switch .form-check-input:checked {
    border-color: #4ea1ff;
    background-color: #4ea1ff;
}
.mmn-permission-switch .form-check-input:disabled {
    cursor: not-allowed;
    opacity: 0.45;
}
.mmn-products-table {
    min-width: 1120px;
}
.mmn-product-form-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(120px, 1fr));
    gap: 14px;
    align-items: end;
}
.mmn-product-text-grid {
    display: grid;
    grid-template-columns: minmax(260px, 0.8fr) minmax(360px, 1.2fr);
    gap: 14px;
    margin-top: 14px;
}
.mmn-product-input,
.mmn-product-textarea {
    color: #eaf2ff !important;
    border-color: rgba(145, 168, 196, 0.28) !important;
    background: rgba(8, 17, 31, 0.55) !important;
}
.mmn-product-name-cell {
    min-width: 190px;
}
.mmn-product-desc {
    color: #8ea4bd;
    font-size: 0.74rem;
    line-height: 1.45;
    margin-top: 5px;
    max-width: 260px;
    white-space: normal;
}
.mmn-product-price {
    color: #ffd166 !important;
    font-weight: 820;
}
.mmn-product-benefits {
    min-width: 240px;
    max-width: 360px;
    color: #91a6bf !important;
    white-space: normal !important;
    line-height: 1.45;
}
.mmn-setting-form {
    display: grid;
    gap: 16px;
}
.mmn-setting-group {
    padding: 14px;
    border-radius: 18px;
    background: rgba(7, 16, 29, 0.48);
    border: 1px solid rgba(145, 168, 196, 0.14);
}
.mmn-setting-group-title {
    color: #f3f8ff;
    font-size: 0.98rem;
    font-weight: 850;
    margin-bottom: 12px;
}
.mmn-setting-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.mmn-setting-field {
    min-width: 0;
    padding: 12px;
    border-radius: 15px;
    background: rgba(13, 24, 38, 0.72);
    border: 1px dashed rgba(145, 168, 196, 0.18);
}
.mmn-setting-label-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 10px;
    margin-bottom: 7px;
}
.mmn-setting-key {
    color: #6f8198;
    font-size: 0.70rem;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.mmn-setting-desc {
    margin-top: 7px;
    color: #7f94ad;
    font-size: 0.74rem;
    line-height: 1.45;
}
.mmn-setting-switch .form-check-label {
    color: #c9d8ea;
    font-size: 0.82rem;
    font-weight: 750;
}
.mmn-setting-textarea {
    min-height: 88px !important;
}
.mmn-action-cell.compact {
    min-width: 120px;
}
.mmn-action-cell.compact .btn {
    min-width: 52px;
}

@media (max-width: 992px) {
    .auth-shell {
        grid-template-columns: 1fr;
    }
    .membership-hero,
    .membership-plan-grid,
    .membership-scenario-grid {
        grid-template-columns: 1fr;
    }
    .membership-status-card {
        align-items: flex-start;
        flex-direction: column;
    }
    .account-metric-grid,
    .mmn-metric-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .account-hero {
        flex-direction: column;
    }
}
@media (max-width: 576px) {
    .auth-page {
        padding: 28px 14px;
    }
    .auth-main,
    .auth-side,
    .auth-logout-card {
        padding: 22px;
        border-radius: 20px;
    }
    .auth-form-card {
        padding: 18px;
    }
    .account-metric-grid,
    .mmn-metric-grid {
        grid-template-columns: 1fr;
    }
    .account-feature {
        align-items: flex-start;
        flex-direction: column;
    }
    .membership-hero {
        padding: 22px;
    }
    .membership-plan-card {
        min-height: auto;
    }
    .nav-auth-actions {
        margin-top: 8px;
    }
}
@media (max-width: 1280px) {
    .mmn-product-form-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
@media (max-width: 760px) {
    .mmn-product-form-grid,
    .mmn-product-text-grid,
    .mmn-setting-grid {
        grid-template-columns: 1fr;
    }
}

/* 后台用户管理增强 */
.mmn-action-cell {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    justify-content: center;
    min-width: 270px;
}
.mmn-action-cell .btn {
    padding: 3px 8px !important;
    font-size: 0.74rem !important;
    border-radius: 999px !important;
}
.mmn-user-name {
    color: #eaf2ff;
    font-weight: 760;
    line-height: 1.25;
}
.mmn-user-sub {
    color: #7f91a8;
    font-size: 0.76rem;
    line-height: 1.35;
    margin-top: 2px;
}
.mmn-status-badge,
.mmn-role-badge {
    min-width: 46px;
    justify-content: center;
}
.mmn-info-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
}
.mmn-info-item {
    border: 1px dashed rgba(145, 168, 196, 0.25);
    border-radius: 14px;
    padding: 13px 14px;
    background: rgba(8, 17, 31, 0.22);
    min-height: 76px;
}
.mmn-info-label {
    color: #8798ad;
    font-size: 0.76rem;
    margin-bottom: 7px;
}
.mmn-info-value {
    color: #eaf2ff;
    font-size: 0.9rem;
    font-weight: 720;
    word-break: break-word;
}
.mmn-inline-link {
    color: #9ecbff;
    font-weight: 760;
    text-decoration: none;
}
.mmn-inline-link:hover {
    color: #c8e2ff;
    text-decoration: underline;
}
.mmn-user-behavior-grid {
    display: grid;
    grid-template-columns: minmax(360px, 0.9fr) minmax(0, 1.1fr);
    gap: 18px;
    align-items: start;
}
.mmn-timeline {
    display: grid;
    gap: 12px;
}
.mmn-timeline-item {
    display: grid;
    grid-template-columns: 116px minmax(0, 1fr);
    gap: 12px;
    padding: 13px 14px;
    border: 1px dashed rgba(145, 168, 196, 0.26);
    border-radius: 16px;
    background: rgba(8, 17, 31, 0.22);
}
.mmn-timeline-time {
    color: #8ea4bd;
    font-size: 0.78rem;
    line-height: 1.45;
}
.mmn-timeline-body {
    min-width: 0;
}
.mmn-timeline-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin-bottom: 6px;
}
.mmn-timeline-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 3px 8px;
    border-radius: 999px;
    color: #06121f;
    font-size: 0.72rem;
    font-weight: 820;
}
.mmn-timeline-badge.watch { background: #ffd166; }
.mmn-timeline-badge.feature { background: #b996ff; }
.mmn-timeline-badge.view { background: #78c2ff; }
.mmn-timeline-badge.search { background: #62d9b2; }
.mmn-timeline-badge.page { color: #c7d6e8; background: rgba(145, 168, 196, 0.18); }
.mmn-timeline-source,
.mmn-timeline-sub {
    color: #7f91a8;
    font-size: 0.75rem;
}
.mmn-timeline-title {
    color: #eaf2ff;
    font-weight: 780;
    line-height: 1.45;
    word-break: break-word;
}
@media (max-width: 1180px) {
    .mmn-info-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .mmn-user-behavior-grid {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 680px) {
    .mmn-info-grid {
        grid-template-columns: 1fr;
    }
    .mmn-action-cell {
        min-width: 220px;
    }
    .mmn-timeline-item {
        grid-template-columns: 1fr;
    }
}

/* 后台经典左右框架 */
.mmn-shell {
    min-height: calc(100vh - 58px);
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    background:
        radial-gradient(820px 360px at 100% 0%, rgba(78, 161, 255, 0.12), transparent 60%),
        rgba(7, 15, 27, 0.2);
}
.mmn-shell-sidebar {
    position: sticky;
    top: 58px;
    align-self: start;
    height: calc(100vh - 58px);
    display: flex;
    flex-direction: column;
    border-right: 1px solid rgba(145, 168, 196, 0.16);
    background:
        linear-gradient(180deg, rgba(10, 19, 32, 0.95), rgba(8, 15, 26, 0.98)),
        radial-gradient(420px 260px at 0% 0%, rgba(45, 201, 151, 0.16), transparent 70%);
    padding: 22px 16px;
    z-index: 20;
}
.mmn-shell-brand {
    padding: 10px 10px 20px;
    border-bottom: 1px dashed rgba(145, 168, 196, 0.22);
    margin-bottom: 16px;
}
.mmn-shell-brand-main {
    color: #f4f8ff;
    font-weight: 860;
    font-size: 1.15rem;
    letter-spacing: 0.05em;
}
.mmn-shell-brand-sub {
    color: #7f94ad;
    font-size: 0.78rem;
    margin-top: 4px;
}
.mmn-shell-nav {
    display: grid;
    gap: 8px;
}
.mmn-shell-nav-item {
    display: block;
    padding: 12px 13px;
    border: 1px solid transparent;
    border-radius: 16px;
    color: #aabdce;
    text-decoration: none;
    background: rgba(255, 255, 255, 0.02);
    transition: all 0.16s ease;
}
.mmn-shell-nav-item:hover {
    color: #eaf2ff;
    border-color: rgba(78, 161, 255, 0.24);
    background: rgba(78, 161, 255, 0.1);
    transform: translateX(2px);
}
.mmn-shell-nav-item.active {
    color: #ffffff;
    border-color: rgba(78, 161, 255, 0.42);
    background: linear-gradient(135deg, rgba(78, 161, 255, 0.18), rgba(45, 201, 151, 0.12));
    box-shadow: inset 3px 0 0 #4ea1ff;
}
.mmn-shell-nav-label {
    font-weight: 800;
    font-size: 0.94rem;
    line-height: 1.25;
}
.mmn-shell-nav-desc {
    color: #7f94ad;
    font-size: 0.74rem;
    margin-top: 4px;
    line-height: 1.35;
}
.mmn-shell-footer {
    margin-top: auto;
    padding: 16px 8px 2px;
    border-top: 1px dashed rgba(145, 168, 196, 0.18);
}
.mmn-shell-main {
    min-width: 0;
    padding: 24px;
}
.mmn-shell-topbar {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    padding: 28px;
    margin-bottom: 18px;
    border: 1px solid rgba(145, 168, 196, 0.18);
    border-radius: 24px;
    background:
        radial-gradient(520px 260px at 90% 0%, rgba(78, 161, 255, 0.16), transparent 66%),
        rgba(12, 22, 36, 0.72);
}
.mmn-shell-content {
    min-width: 0;
}
@media (max-width: 992px) {
    .mmn-shell {
        grid-template-columns: 1fr;
    }
    .mmn-shell-sidebar {
        position: relative;
        top: auto;
        height: auto;
        border-right: none;
        border-bottom: 1px solid rgba(145, 168, 196, 0.16);
    }
    .mmn-shell-nav {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .mmn-shell-footer {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }
    .mmn-shell-main {
        padding: 16px;
    }
    .mmn-shell-topbar {
        flex-direction: column;
        padding: 22px;
    }
}
@media (max-width: 560px) {
    .mmn-shell-nav,
    .mmn-shell-footer {
        grid-template-columns: 1fr;
    }
}

/* 后台运营看板 */
.mmn-analytics-metric-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 18px;
}
.mmn-analytics-two-col {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    align-items: start;
}
.mmn-analytics-metric-grid.compact-mp {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    margin: 14px 0;
}
.mmn-filter-panel {
    display: grid;
    grid-template-columns: minmax(180px, 0.45fr) minmax(320px, 1fr);
    gap: 14px;
    align-items: start;
    padding: 14px;
    margin-bottom: 14px;
    border: 1px dashed rgba(145, 168, 196, 0.22);
    border-radius: 18px;
    background: rgba(7, 16, 29, 0.42);
}
.mmn-filter-block {
    min-width: 0;
}
.mmn-filter-block.wide {
    min-width: 0;
}
.mmn-filter-label {
    color: #8ea4bd;
    font-size: 0.76rem;
    font-weight: 780;
    margin-bottom: 9px;
}
.mmn-filter-chip-row {
    display: flex;
    flex-wrap: nowrap;
    gap: 8px;
    align-items: center;
}
.mmn-filter-chip-row.wrap {
    flex-wrap: wrap;
}
.mmn-filter-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    padding: 6px 11px;
    border-radius: 999px;
    color: #9db1c8;
    text-decoration: none;
    font-size: 0.78rem;
    font-weight: 780;
    border: 1px solid rgba(145, 168, 196, 0.18);
    background: rgba(13, 24, 38, 0.66);
}
.mmn-filter-chip:hover {
    color: #eaf2ff;
    border-color: rgba(78, 161, 255, 0.36);
    background: rgba(78, 161, 255, 0.12);
}
.mmn-filter-chip.active {
    color: #07111d;
    border-color: rgba(78, 161, 255, 0.72);
    background: linear-gradient(135deg, #9ecbff, #62d9b2);
}
.mmn-filter-current {
    grid-column: 1 / -1;
    color: #91a6bf;
    font-size: 0.82rem;
    line-height: 1.55;
    padding-top: 2px;
}
.mmn-metric-grid.compact {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-bottom: 16px;
}
.mmn-mini-title {
    color: #f3f8ff;
    font-size: 0.92rem;
    font-weight: 850;
    margin-bottom: 10px;
}
.mmn-mini-panel {
    min-width: 0;
    padding: 12px;
    border-radius: 16px;
    background: rgba(7, 16, 29, 0.54);
    border: 1px solid rgba(145, 168, 196, 0.14);
}
.mmn-mp-table {
    min-width: 920px;
}
.mmn-mp-recent-table {
    min-width: 1180px;
}
.mmn-two-col-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}
.mmn-funnel-list {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 10px;
}
.mmn-funnel-item {
    min-height: 128px;
    padding: 12px;
    border-radius: 16px;
    background: rgba(7, 16, 29, 0.58);
    border: 1px solid rgba(145, 168, 196, 0.16);
}
.mmn-funnel-head {
    min-height: 86px;
}
.mmn-funnel-step {
    color: #f3f8ff;
    font-size: 0.86rem;
    font-weight: 850;
}
.mmn-funnel-meta {
    display: flex;
    flex-direction: column;
    gap: 3px;
    margin-top: 8px;
}
.mmn-funnel-count {
    color: #9ecbff;
    font-size: 1.24rem;
    font-weight: 900;
    line-height: 1.15;
}
.mmn-funnel-rate {
    color: #8fa3bd;
    font-size: 0.72rem;
    line-height: 1.3;
}
.mmn-funnel-rate.muted {
    color: #6f8198;
}
.mmn-funnel-bar {
    height: 7px;
    border-radius: 999px;
    background: rgba(145, 168, 196, 0.14);
    overflow: hidden;
}
.mmn-funnel-bar-fill {
    height: 100%;
    min-width: 4px;
    border-radius: 999px;
    background: linear-gradient(90deg, #4ea1ff, #2dc997, #ffd166);
}
.mmn-analytics-chart {
    border-radius: 18px;
    overflow: hidden;
}
.mmn-metric-value.blue { color: #78c2ff; }
.mmn-metric-value.green { color: #62d9b2; }
.mmn-metric-value.gold { color: #ffd166; }
@media (max-width: 1320px) {
    .mmn-analytics-metric-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .mmn-funnel-list {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
@media (max-width: 980px) {
    .mmn-analytics-two-col,
    .mmn-two-col-grid {
        grid-template-columns: 1fr;
    }
    .mmn-analytics-metric-grid.compact-mp {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .mmn-filter-panel {
        grid-template-columns: 1fr;
    }
    .mmn-metric-grid.compact {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .mmn-funnel-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 620px) {
    .mmn-analytics-metric-grid,
    .mmn-analytics-metric-grid.compact-mp,
    .mmn-metric-grid.compact,
    .mmn-funnel-list {
        grid-template-columns: 1fr;
    }
}

/* ── 行业研究页 ───────────────────────────── */
.industry-research-page .industry-switch .form-check-label {
    color: #c9d8ea;
    font-weight: 800;
    font-size: 0.84rem;
}

.industry-research-page .industry-kpi-grid {
    margin-top: 0;
}

.industry-profit-graph {
    min-height: 420px;
}

.industry-change-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.industry-change-card {
    border: 1px solid rgba(145,168,196,0.14);
    border-radius: 16px;
    background: rgba(7,16,29,0.54);
    padding: 13px;
}

.industry-change-title {
    color: #f3f8ff;
    font-size: 0.92rem;
    font-weight: 880;
    margin-bottom: 8px;
}

.industry-change-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 7px 0;
    border-top: 1px dashed rgba(145,168,196,0.14);
}

.industry-change-row:first-child {
    border-top: none;
}

.industry-change-name {
    min-width: 0;
    color: #c9d8ea;
    font-size: 0.85rem;
    font-weight: 780;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.industry-change-value {
    flex: 0 0 auto;
    font-weight: 900;
    font-size: 0.88rem;
}

.industry-change-value.red,
.profit-tone.red {
    color: #ef5350;
}

.industry-change-value.green,
.profit-tone.green {
    color: #2dc997;
}

.industry-link-btn {
    padding: 0 !important;
    color: #79c0ff !important;
    font-weight: 880 !important;
    text-decoration: none !important;
    box-shadow: none !important;
}

.industry-link-btn:hover {
    color: #ffffff !important;
}

.industry-category-pill {
    display: inline-flex;
    align-items: center;
    max-width: 86px;
    padding: 3px 8px;
    border-radius: 999px;
    color: #c9d8ea;
    background: rgba(121,192,255,0.10);
    border: 1px solid rgba(121,192,255,0.18);
    font-size: 0.76rem;
    font-weight: 820;
    white-space: nowrap;
}

.industry-judgement {
    margin-top: 10px;
    padding: 14px 16px;
    border-radius: 16px;
    color: #dce8f6;
    background: linear-gradient(135deg, rgba(121,192,255,0.12), rgba(246,189,22,0.07));
    border: 1px dashed rgba(145,168,196,0.26);
    font-size: 0.92rem;
    line-height: 1.7;
}

.industry-profit-table,
.industry-company-table {
    min-width: 1120px;
}

@media (max-width: 992px) {
    .industry-change-grid {
        grid-template-columns: 1fr;
    }
}

.industry-change-value-wrap {
    flex: 0 0 auto;
    text-align: right;
    min-width: 96px;
}

.industry-change-value.yellow {
    color: #f6bd16;
}

.industry-change-helper {
    margin-top: 2px;
    color: #6f8198;
    font-size: 0.70rem;
    font-weight: 720;
    white-space: nowrap;
}

.industry-trend-graph {
    min-height: 360px;
}

/* ════════════════════════════════════════════════════════════════════
 *  行业研究页 · 极简改版 (Industry Research · Minimal Skin)
 *  覆盖原 hero / 句子 / KPI 样式,实现"研报抬头"质感
 * ════════════════════════════════════════════════════════════════════ */

/* ─── 极简 Hero ─── */
.research-hero-min {
    padding: 22px 24px 18px;
    margin: 12px 0 14px;
    border-radius: 16px;
    border: 1px solid rgba(145, 168, 196, 0.14);
    background:
        radial-gradient(620px 200px at 4% 0%, rgba(78, 161, 255, 0.10), transparent 70%),
        linear-gradient(180deg, rgba(14, 26, 42, 0.92), rgba(9, 18, 30, 0.96));
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.20);
    display: block;            /* 取消 flex,不再有右侧 chip */
}

.research-hero-min .research-eyebrow {
    color: #6fa8d6;
    font-size: 0.70rem;
    letter-spacing: 0.22em;
    margin-bottom: 8px;
    font-weight: 800;
    opacity: 0.82;
}

.research-hero-title-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px;
    margin-bottom: 6px;
}

.research-hero-min .research-title {
    font-size: clamp(1.45rem, 2.2vw, 1.85rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    margin: 0;
    color: #f3f8ff;
}

.research-hero-min .research-subtitle {
    color: #8fa3bd;
    font-size: 0.92rem;
    line-height: 1.6;
    margin: 0;
    max-width: 760px;
}

/* ─── 顶部披露率印章 ─── */
.research-hero-stamp {
    display: inline-flex;
    align-items: center;
}

.research-hero-stamp-inner {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 4px 12px;
    border: 1px solid rgba(145, 168, 196, 0.28);
    border-radius: 6px;
    background: rgba(7, 16, 29, 0.6);
    color: #c9d8ea;
    font-size: 0.78rem;
    font-weight: 720;
    letter-spacing: 0.04em;
}

.research-hero-stamp-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #34d399;
    box-shadow: 0 0 8px rgba(52, 211, 153, 0.7);
    animation: ir-stamp-pulse 2.4s ease-in-out infinite;
}

@keyframes ir-stamp-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.45; }
}

.research-hero-stamp-text {
    line-height: 1.2;
}

.research-hero-stamp-meta {
    color: #7c8ea4;
    margin-left: 4px;
    font-size: 0.72rem;
}

/* ─── 极简口径句(无标题,单行) ─── */
.industry-sentence-line-min {
    margin: 0 0 14px;
    padding: 14px 18px;
    border-radius: 12px;
    border: 1px solid rgba(145, 168, 196, 0.14);
    background:
        linear-gradient(90deg, rgba(7, 16, 29, 0.7), rgba(13, 24, 38, 0.55));
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    min-height: auto;
}

.industry-sentence-line-min .industry-sentence-muted {
    color: #8497ac;
    font-size: 0.92rem;
    font-weight: 600;
}

/* 选中的行业徽章变得克制:不再用大胆橙色 */
.industry-sentence-line-min .industry-inline-selected {
    padding: 3px 12px;
    border-radius: 4px;
    color: #5bdcff;
    background: rgba(91, 220, 255, 0.10);
    border: 1px solid rgba(91, 220, 255, 0.32);
    font-size: 0.92rem;
    font-weight: 800;
    letter-spacing: 0.02em;
}

/* 取代原"全市场" chip,改成轻量重置链接 */
.industry-clear-link {
    appearance: none;
    border: none;
    background: transparent;
    color: #6a7e94;
    font-size: 0.78rem;
    font-weight: 700;
    cursor: pointer;
    padding: 4px 6px;
    margin-left: 2px;
    border-radius: 4px;
    transition: color 0.15s, background 0.15s;
}

.industry-clear-link:hover {
    color: #ef5350;
    background: rgba(239, 83, 80, 0.08);
}

/* 句子里的小段 segment(报告期/口径) */
.industry-sentence-line-min .industry-period-segment label,
.industry-sentence-line-min .industry-scope-segment label {
    min-height: 28px !important;
    padding: 4px 10px !important;
    color: #93a9c2 !important;
    background: transparent !important;
    border: 1px solid rgba(145, 168, 196, 0.22) !important;
    border-radius: 999px !important;
    box-shadow: none !important;
    font-size: 0.86rem !important;
    font-weight: 700 !important;
    letter-spacing: 0;
}

.industry-sentence-line-min .industry-period-segment label:hover,
.industry-sentence-line-min .industry-scope-segment label:hover {
    color: #eaf7ff !important;
    border-color: rgba(91, 220, 255, 0.5) !important;
    transform: none !important;
}

.industry-sentence-line-min .industry-period-segment label:has(input:checked),
.industry-sentence-line-min .industry-scope-segment label:has(input:checked) {
    color: #5bdcff !important;
    background: rgba(91, 220, 255, 0.10) !important;
    border-color: rgba(91, 220, 255, 0.42) !important;
    box-shadow: inset 0 0 0 1px rgba(91, 220, 255, 0.06) !important;
}

/* ─── 4 张 KPI 共享一个容器:用细分割线,无色 ─── */
.industry-kpi-grid-min {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1px;
    margin: 0 0 18px;
    padding: 0;
    background: rgba(145, 168, 196, 0.14);   /* 细线颜色 */
    border: 1px solid rgba(145, 168, 196, 0.14);
    border-radius: 14px;
    overflow: hidden;
}

.industry-kpi-grid-min .research-kpi-card {
    border: none;
    border-radius: 0;
    background: rgba(9, 18, 30, 0.96);
    padding: 18px 22px;
    min-height: 100px;
    transition: background 0.15s ease;
}

.industry-kpi-grid-min .research-kpi-card:hover {
    background: rgba(15, 28, 45, 0.96);
}

.industry-kpi-grid-min .research-kpi-label {
    color: #8497ac;
    font-size: 0.76rem;
    letter-spacing: 0.04em;
    margin-bottom: 10px;
}

.industry-kpi-grid-min .research-kpi-value {
    font-size: 1.55rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: #f3f8ff;
}

/* KPI 主数字不再使用红/绿/蓝色,统一全白 */
.industry-kpi-grid-min .research-kpi-value.red,
.industry-kpi-grid-min .research-kpi-value.green,
.industry-kpi-grid-min .research-kpi-value.blue,
.industry-kpi-grid-min .research-kpi-value.yellow {
    color: #f3f8ff;
}

.industry-kpi-grid-min .research-kpi-helper {
    margin-top: 6px;
    color: #8497ac;
    font-size: 0.78rem;
    font-weight: 600;
}

/* helper 里的同比文字单独着色(轻微强调) */
.industry-kpi-grid-min .research-kpi-helper {
    position: relative;
}

/* 行业研究页特有:.research-content-head 微调 */
.industry-research-page .research-content-head {
    margin-bottom: 14px;
}

.research-content-title-wrap {
    display: inline-flex;
    align-items: baseline;
    gap: 10px;
}

.research-content-badge {
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    padding: 2px 8px;
    border-radius: 4px;
    background: rgba(91, 220, 255, 0.12);
    color: #5bdcff;
    border: 1px solid rgba(91, 220, 255, 0.28);
}

.industry-rank-focus-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(340px, 0.75fr);
    gap: 16px;
    align-items: start;
}

.industry-rank-table-shell {
    min-width: 0;
}

.industry-rank-focus-grid .industry-profit-table {
    min-width: 760px;
}

.industry-focus-side {
    position: sticky;
    top: 82px;
    min-width: 0;
    padding: 14px;
    border-radius: 16px;
    border: 1px solid rgba(91, 220, 255, 0.18);
    background:
        radial-gradient(360px 160px at 0% 0%, rgba(91, 220, 255, 0.10), transparent 70%),
        rgba(7, 16, 29, 0.58);
}

.industry-focus-head {
    margin-bottom: 10px !important;
}

.industry-focus-side .research-kpi-grid.four {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 10px;
}

.industry-focus-side .research-kpi-card {
    padding: 12px;
    min-height: 86px;
    border-radius: 12px;
    background: rgba(12, 24, 39, 0.86);
}

.industry-focus-side .research-kpi-label {
    font-size: 0.72rem;
    margin-bottom: 7px;
}

.industry-focus-side .research-kpi-value {
    font-size: 1.08rem;
}

.industry-focus-side .research-kpi-helper {
    font-size: 0.72rem;
}

.industry-focus-side .industry-judgement {
    margin-top: 8px;
    padding: 12px;
    border-radius: 12px;
    font-size: 0.84rem;
    line-height: 1.65;
    background: rgba(91, 220, 255, 0.06);
}

.industry-focus-status-head {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 2px 0 10px;
}

.industry-focus-status-badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 9px;
    border-radius: 999px;
    color: #9fb2ca;
    background: rgba(145, 168, 196, 0.10);
    border: 1px solid rgba(145, 168, 196, 0.18);
    font-size: 0.70rem;
    font-weight: 900;
    letter-spacing: 0.04em;
    white-space: nowrap;
}

.industry-focus-status-badge.red {
    color: #ff7b72;
    background: rgba(239, 83, 80, 0.12);
    border-color: rgba(239, 83, 80, 0.28);
}

.industry-focus-status-badge.green {
    color: #40d39b;
    background: rgba(45, 201, 151, 0.10);
    border-color: rgba(45, 201, 151, 0.24);
}

.industry-focus-status-badge.yellow {
    color: #f6bd16;
    background: rgba(246, 189, 22, 0.10);
    border-color: rgba(246, 189, 22, 0.24);
}

.industry-focus-status-badge.blue {
    color: #5bdcff;
    background: rgba(91, 220, 255, 0.10);
    border-color: rgba(91, 220, 255, 0.24);
}

.industry-focus-status-title {
    color: #f3f8ff;
    font-size: 1.02rem;
    font-weight: 900;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.industry-focus-status-text {
    margin-bottom: 12px;
    padding-bottom: 12px;
    color: #c9d8ea;
    border-bottom: 1px dashed rgba(145, 168, 196, 0.20);
    font-size: 0.86rem;
    line-height: 1.65;
}

.industry-focus-metric-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 13px;
}

.industry-focus-metric {
    min-width: 0;
    padding: 11px 12px;
    border-radius: 12px;
    background: rgba(12, 24, 39, 0.66);
    border: 1px solid rgba(145, 168, 196, 0.12);
}

.industry-focus-metric-label {
    color: #7f91a7;
    font-size: 0.70rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    margin-bottom: 7px;
}

.industry-focus-metric-value {
    color: #f3f8ff;
    font-size: 1.06rem;
    font-weight: 900;
    letter-spacing: -0.02em;
    line-height: 1.1;
}

.industry-focus-metric-value.red {
    color: #ff7b72;
}

.industry-focus-metric-value.green {
    color: #40d39b;
}

.industry-focus-metric-value.yellow {
    color: #f6bd16;
}

.industry-focus-metric-helper {
    margin-top: 6px;
    color: #7f91a7;
    font-size: 0.70rem;
    font-weight: 680;
    line-height: 1.35;
}

.industry-focus-section {
    padding-top: 12px;
    border-top: 1px dashed rgba(145, 168, 196, 0.20);
}

.industry-focus-section-title {
    color: #f3f8ff;
    font-size: 0.94rem;
    font-weight: 900;
    margin-bottom: 4px;
}

.industry-focus-section-subtitle {
    color: #7f91a7;
    font-size: 0.74rem;
    line-height: 1.45;
    margin-bottom: 8px;
}

.industry-focus-company-list {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.industry-focus-company {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 9px 10px;
    border-radius: 11px;
    background: rgba(7, 16, 29, 0.46);
    border: 1px solid rgba(145, 168, 196, 0.10);
}

.industry-focus-company-main {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.industry-focus-company-rank {
    flex: 0 0 auto;
    color: #5bdcff;
    font-size: 0.70rem;
    font-weight: 900;
}

.industry-focus-company-name {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #dce8f6;
    font-size: 0.84rem;
    font-weight: 880;
    text-decoration: none;
}

.industry-focus-company-name:hover {
    color: #ffffff;
}

.industry-focus-company-side {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
}

.industry-focus-company-profit {
    color: #dce8f6;
    font-size: 0.76rem;
    font-weight: 800;
}

.industry-focus-company-yoy {
    color: #8fa3bd;
    font-size: 0.72rem;
    font-weight: 900;
}

.industry-focus-company-yoy.red {
    color: #ff7b72;
}

.industry-focus-company-yoy.green {
    color: #40d39b;
}

.industry-focus-empty {
    padding: 18px 14px;
    border: 1px dashed rgba(145, 168, 196, 0.18);
    border-radius: 14px;
    background: rgba(8, 17, 31, 0.28);
}

.industry-focus-empty-title {
    color: #f3f8ff;
    font-size: 0.96rem;
    font-weight: 800;
    margin-bottom: 8px;
}

.industry-profit-table tr.industry-row-selected td {
    background: rgba(91, 220, 255, 0.075) !important;
    box-shadow: inset 0 1px 0 rgba(91, 220, 255, 0.08), inset 0 -1px 0 rgba(91, 220, 255, 0.08);
}

.industry-profit-table tr.industry-row-selected td:first-child {
    box-shadow:
        inset 3px 0 0 #5bdcff,
        inset 0 1px 0 rgba(91, 220, 255, 0.08),
        inset 0 -1px 0 rgba(91, 220, 255, 0.08);
}

.industry-profit-table tr.industry-row-selected .industry-link-btn {
    color: #5bdcff !important;
}

/* 行业研究页背景:稍微克制 */
.industry-research-page {
    background:
        radial-gradient(900px 280px at 50% 0%, rgba(78, 161, 255, 0.06), transparent 70%);
}

/* 响应式:小屏堆叠 */
@media (max-width: 900px) {
    .industry-kpi-grid-min {
        grid-template-columns: repeat(2, 1fr);
    }
    .industry-rank-focus-grid {
        grid-template-columns: 1fr;
    }
    .industry-focus-side {
        position: static;
    }
    .research-hero-title-row {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }
}

@media (max-width: 540px) {
    .industry-kpi-grid-min {
        grid-template-columns: 1fr;
    }
    .industry-sentence-line-min {
        flex-direction: column;
        align-items: flex-start;
    }
}
