:root {
    --bg: #f4f7fb;
    --card: #ffffff;
    --text: #162033;
    --muted: #667085;
    --line: #d8e2f0;
    --primary: #2563eb;
    --primary-deep: #1d4ed8;
    --primary-soft: #dbeafe;
    --success: #16a34a;
    --danger: #dc2626;
    --warning: #f59e0b;
    --shadow: 0 18px 40px rgba(15, 23, 42, 0.08);
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    font-family: "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
    background: linear-gradient(180deg, #eff4fb 0%, var(--bg) 100%);
    color: var(--text);
}

.container {
    width: min(1120px, calc(100% - 32px));
    margin: 0 auto;
}

.site-header {
    position: sticky;
    top: 0;
    z-index: 20;
    backdrop-filter: blur(14px);
    background: linear-gradient(180deg, rgba(248, 251, 255, 0.96) 0%, rgba(241, 246, 255, 0.92) 100%);
    border-bottom: 1px solid rgba(191, 219, 254, 0.85);
    box-shadow: 0 10px 30px rgba(37, 99, 235, 0.06);
}

.site-header .container {
    width: min(1600px, calc(100% - 48px));
}

.nav-wrap {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-height: 104px;
    gap: 8px;
    padding: 12px 0 14px;
}

.brand {
    position: relative;
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    padding: 8px 0 7px;
    font-size: 22px;
    font-weight: 800;
    letter-spacing: 0.01em;
    line-height: 1;
    text-decoration: none;
    background: linear-gradient(135deg, #0f172a 0%, #1d4ed8 55%, #2563eb 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.brand::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 4px;
    width: 44px;
    height: 3px;
    border-radius: 999px;
    background: linear-gradient(90deg, #60a5fa 0%, #2563eb 100%);
    opacity: 0.9;
}

.nav-links {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 8px 10px;
    width: 100%;
    margin-left: 0;
}

.nav-links a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 0 14px;
    border-radius: 999px;
    color: #5b6b8c;
    text-decoration: none;
    font-size: 14px;
    font-weight: 600;
    line-height: 1;
    white-space: nowrap;
    transition: color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.nav-links a:hover,
.text-link:hover {
    color: var(--primary-deep);
}

.nav-links a:hover {
    background: rgba(255, 255, 255, 0.82);
    box-shadow: 0 6px 18px rgba(37, 99, 235, 0.1);
    transform: translateY(-1px);
}

.page-content {
    padding: 32px 0 56px;
}

.card {
    background: var(--card);
    border: 1px solid rgba(216, 226, 240, 0.9);
    border-radius: 22px;
    box-shadow: var(--shadow);
}

.hero-grid,
.info-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    margin-bottom: 24px;
}

.hero-grid-enhanced {
    align-items: stretch;
}

.hero-card,
.chart-card,
.section-card,
.info-card,
.form-card {
    padding: 28px;
}

.hero-card-accent {
    position: relative;
    overflow: hidden;
    background: linear-gradient(135deg, #ffffff 0%, #f6f9ff 45%, #eef4ff 100%);
}

.hero-card-accent::after {
    content: "";
    position: absolute;
    inset: auto -40px -40px auto;
    width: 180px;
    height: 180px;
    background: radial-gradient(circle, rgba(37, 99, 235, 0.12) 0%, rgba(37, 99, 235, 0) 72%);
}

.hero-title {
    max-width: 640px;
    margin: 0 0 24px;
    font-size: 34px;
    line-height: 1.3;
}

.hero-main-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 18px;
}

.hero-side-note {
    min-width: 120px;
    padding: 16px 18px;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.85);
    border: 1px solid rgba(216, 226, 240, 0.9);
}

.side-note-label,
.mini-stat-label {
    display: block;
    margin-bottom: 6px;
    color: var(--muted);
    font-size: 13px;
}

.eyebrow {
    margin: 0 0 10px;
    color: var(--muted);
    font-size: 14px;
}

.hero-value {
    font-size: 72px;
    line-height: 1;
    font-weight: 800;
    margin-bottom: 16px;
}

.hero-description {
    max-width: 720px;
    margin: 0 0 18px;
    color: #2f3b52;
    line-height: 1.8;
    font-size: 15px;
}

.hero-note {
    margin-top: 0;
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 22px;
}

.hero-stats-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin: 20px 0 18px;
}

.mini-stat {
    padding: 16px 18px;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.82);
    border: 1px solid rgba(216, 226, 240, 0.9);
}

.mini-stat strong {
    display: block;
    line-height: 1.6;
}

.hero-empty {
    font-size: 34px;
    font-weight: 700;
    margin-bottom: 12px;
}

.meta-text,
.help-text,
.section-header p,
.prose-block p,
.prose-block li,
.feature-item p {
    color: var(--muted);
    line-height: 1.7;
}

.status-chip {
    display: inline-flex;
    align-items: center;
    padding: 8px 14px;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 16px;
}



.status-pending {
    background: #fef3c7;
    color: #92400e;
}

.status-极度恐惧 { background: #dbeafe; color: #1d4ed8; }
.status-恐惧 { background: #e0f2fe; color: #0369a1; }
.status-中性 { background: #e5e7eb; color: #374151; }
.status-贪婪 { background: #ffedd5; color: #c2410c; }
.status-极度贪婪 { background: #fee2e2; color: #b91c1c; }

.chart-card-highlight {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.panel-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.panel-heading h2,
.panel-heading h3 {
    margin: 4px 0 0;
}

.compact-heading {
    margin-bottom: 18px;
}

.panel-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    padding: 0 12px;
    border-radius: 999px;
    background: var(--primary-soft);
    color: var(--primary-deep);
    font-size: 13px;
    font-weight: 700;
}

.muted-badge {
    background: #eef2f7;
    color: #475467;
}

.danger-badge {
    background: #fee2e2;
    color: #991b1b;
}

.panel-badge-admin {
    background: #dbeafe;
    color: #1d4ed8;
}

.panel-badge-vip {
    background: #fff7ed;
    color: #c2410c;
}

.chart-box {
    width: 100%;
    height: 320px;
}

.chart-wide {
    height: 360px;
}

.section-header,
.admin-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.section-header-rich {
    margin-bottom: 16px;
}

.section-header h1,
.section-header h2,
.hero-card h1,
.form-card h1,
.info-card h3,
.prose-block h1 {
    margin-top: 0;
}

.text-link {
    color: var(--primary);
    text-decoration: none;
    font-weight: 600;
}

.legend-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 12px;
}

.legend-list li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 14px;
    border-radius: 14px;
    background: #f8fafc;
}

.legend-list-rich li:nth-child(1) { background: #eff6ff; }
.legend-list-rich li:nth-child(2) { background: #f0f9ff; }
.legend-list-rich li:nth-child(3) { background: #f3f4f6; }
.legend-list-rich li:nth-child(4) { background: #fff7ed; }
.legend-list-rich li:nth-child(5) { background: #fef2f2; }

.feature-list {
    display: grid;
    gap: 16px;
}

.feature-item {
    padding: 16px 18px;
    border-radius: 16px;
    background: #f8fafc;
}

.feature-item strong {
    display: inline-block;
    margin-bottom: 6px;
}

.form-shell {
    display: flex;
    justify-content: center;
    padding-top: 24px;
}

.form-card {
    width: min(100%, 520px);
}

.experience-shell {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: calc(100vh - 220px);
    padding-top: 0;
}

.experience-menu-panel {
    width: min(100%, 760px);
    padding: 28px;
    border: 1px solid rgba(191, 219, 254, 0.8);
    border-radius: 16px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.08);
}

.experience-menu-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.experience-entry {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 92px;
    padding: 20px 22px;
    border: 2px solid #111827;
    border-radius: 10px;
    background: #ffffff;
    color: #0f172a;
    text-align: center;
    text-decoration: none;
    font-size: 24px;
    font-weight: 800;
    line-height: 1.25;
    transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, color 0.18s ease;
}

.experience-entry::after {
    content: "";
    width: 9px;
    height: 9px;
    margin-left: 12px;
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
    transform: rotate(45deg);
    opacity: 0.48;
    transition: transform 0.18s ease, opacity 0.18s ease;
}

.experience-entry:hover,
.experience-entry:focus-visible {
    border-color: var(--primary);
    color: var(--primary-deep);
    box-shadow: 0 8px 18px rgba(37, 99, 235, 0.14);
    transform: translateY(-2px);
}

.experience-entry:hover::after,
.experience-entry:focus-visible::after {
    opacity: 0.85;
    transform: translateX(3px) rotate(45deg);
}

.experience-entry:focus-visible {
    outline: 3px solid rgba(37, 99, 235, 0.2);
    outline-offset: 3px;
}

.experience-entry-primary {
    background: linear-gradient(180deg, #f8fbff 0%, #eef5ff 100%);
}

.stack-form {
    display: grid;
    gap: 16px;
}

.stack-form label {
    display: grid;
    gap: 8px;
    font-size: 14px;
    color: var(--text);
}

.input {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #fff;
    font-size: 14px;
}

.field-error {
    color: #b91c1c;
    font-size: 13px;
    line-height: 1.5;
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 12px;
    padding: 12px 18px;
    cursor: pointer;
    font-weight: 600;
    text-decoration: none;
    transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.btn:hover {
    transform: translateY(-1px);
}

.btn-primary {
    background: var(--primary);
    color: #fff;
    box-shadow: 0 10px 24px rgba(37, 99, 235, 0.2);
}

.btn-secondary {
    background: #fff;
    color: var(--text);
    border: 1px solid var(--line);
}

.btn-danger {
    background: #fee2e2;
    color: #b91c1c;
    border: 1px solid #fecaca;
}

.btn-sm {
    min-height: 36px;
    padding: 8px 12px;
    border-radius: 10px;
    font-size: 13px;
}

.flash-list {
    display: grid;
    gap: 10px;
    margin-bottom: 20px;
}

.flash-item {
    padding: 12px 14px;
    border-radius: 12px;
}

.flash-success { background: #dcfce7; color: #166534; }
.flash-danger { background: #fee2e2; color: #991b1b; }
.flash-warning { background: #fef3c7; color: #92400e; }
.flash-info { background: #dbeafe; color: #1d4ed8; }

.table-wrap {
    overflow-x: auto;
}

.data-table {
    width: 100%;
    border-collapse: collapse;
}

.data-table th,
.data-table td {
    text-align: left;
    padding: 14px 12px;
    border-bottom: 1px solid #edf2f7;
    font-size: 14px;
    vertical-align: top;
}

.table-status {
    margin-bottom: 0;
}

.table-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.table-actions form {
    margin: 0;
}

.data-table form {
    margin: 0;
}

.table-inline-tip {
    display: inline-flex;
    margin-left: 8px;
    padding: 2px 8px;
    border-radius: 999px;
    background: #eef2f7;
    color: #475467;
    font-size: 12px;
    font-weight: 600;
}

.history-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(280px, 0.9fr);
    gap: 24px;
    margin-bottom: 24px;
}

.history-hero-card h1 {
    margin: 0 0 14px;
    font-size: 32px;
    line-height: 1.35;
}

.history-stats-grid {
    margin-bottom: 0;
}

.history-info-card,
.admin-panel-card,
.history-table-card {
    overflow: hidden;
}

.compliance-note {
    display: grid;
    gap: 12px;
    margin: 24px 0 18px;
    padding: 18px 20px;
    border: 1px solid rgba(216, 226, 240, 0.9);
    border-radius: 18px;
    background: #f8fafc;
}

.compliance-note p {
    margin: 0;
    color: #475467;
    line-height: 1.75;
}

.form-card-elevated {
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}

.preview-panel {
    padding: 16px 18px;
    border-radius: 18px;
    background: #f8fafc;
    border: 1px solid rgba(216, 226, 240, 0.9);
}

.preview-panel-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.preview-panel-row strong {
    font-size: 28px;
    line-height: 1.2;
}

.preview-description {
    margin: 14px 0 12px;
    color: #475467;
    line-height: 1.7;
}

.preview-risk {
    padding: 12px 14px;
    border-radius: 14px;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.6;
    background: #eff6ff;
    color: #1d4ed8;
}

.preview-risk-extreme-fear {
    background: #dbeafe;
    color: #1d4ed8;
}

.preview-risk-fear {
    background: #e0f2fe;
    color: #0369a1;
}

.preview-risk-neutral {
    background: #e5e7eb;
    color: #374151;
}

.preview-risk-greed {
    background: #ffedd5;
    color: #c2410c;
}

.preview-risk-extreme-greed {
    background: #fee2e2;
    color: #b91c1c;
}

.preview-risk-home {
    margin: 0 0 18px;
    border: 1px solid rgba(99, 102, 241, 0.16);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.45);
}

.home-classic-grid {
    gap: 20px;
    margin-bottom: 20px;
}

.home-classic-hero,
.home-classic-info-card,
.home-classic-trend {
    padding: 24px;
}

.home-classic-hero {
    position: relative;
    overflow: hidden;
    background: linear-gradient(145deg, #fdfefe 0%, #eef4ff 55%, #e6ecff 100%);
    border-color: rgba(147, 197, 253, 0.45);
}

.home-classic-hero::before,
.home-classic-trend::before,
.home-classic-info-card::before {
    content: "";
    position: absolute;
    pointer-events: none;
    border-radius: 999px;
    filter: blur(2px);
}

.home-classic-hero::before {
    top: -56px;
    right: -36px;
    width: 180px;
    height: 180px;
    background: radial-gradient(circle, rgba(96, 165, 250, 0.3) 0%, rgba(96, 165, 250, 0) 72%);
}

.home-classic-title {
    max-width: 620px;
    margin: 0 0 18px;
    font-size: 28px;
    line-height: 1.45;
    font-weight: 700;
}

.home-classic-hero .eyebrow,
.home-classic-trend .eyebrow {
    color: #5b6b8c;
}

.home-classic-hero .hero-value {
    margin-bottom: 12px;
    font-size: 64px;
    background: linear-gradient(135deg, #1d4ed8 0%, #2563eb 45%, #7c3aed 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.home-classic-hero .status-chip {
    box-shadow: 0 10px 24px rgba(59, 130, 246, 0.12);
}

.home-classic-hero .hero-description {
    margin-bottom: 14px;
    color: #334155;
}

.home-classic-hero .meta-text {
    color: #60708f;
}

.home-classic-hero .hero-actions {
    margin-top: 18px;
}

.vip-lock-panel {
    display: grid;
    gap: 12px;
    max-width: 620px;
    padding: 18px;
    border: 1px solid rgba(251, 146, 60, 0.32);
    border-radius: 8px;
    background: #fff7ed;
    color: #7c2d12;
}

.vip-lock-panel h2 {
    margin: 0;
    font-size: 24px;
    line-height: 1.35;
    color: #162033;
}

.vip-lock-panel p {
    margin: 0;
}

.vip-chart-lock {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 24px;
    text-align: center;
    border: 1px dashed rgba(251, 146, 60, 0.42);
    border-radius: 8px;
    background: #fffaf5;
    color: #7c2d12;
}

.vip-chart-lock strong {
    font-size: 18px;
    color: #162033;
}

.vip-chart-lock p {
    max-width: 380px;
    margin: 0;
    color: #9a3412;
}

.table-lock-cell {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 10px;
    color: #7c2d12;
}

.table-lock-cell strong {
    color: #c2410c;
}

.form-secondary-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 18px;
}

.home-classic-trend {
    position: relative;
    overflow: hidden;
    background: linear-gradient(180deg, #ffffff 0%, #f7faff 100%);
    border-color: rgba(191, 219, 254, 0.8);
}

.home-classic-trend::before {
    top: -42px;
    left: -28px;
    width: 160px;
    height: 160px;
    background: radial-gradient(circle, rgba(56, 189, 248, 0.16) 0%, rgba(56, 189, 248, 0) 72%);
}

.home-classic-info-grid {
    gap: 20px;
}

.home-classic-info-card {
    position: relative;
    overflow: hidden;
    background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
}

.home-classic-info-card::before {
    top: -50px;
    right: -26px;
    width: 120px;
    height: 120px;
    background: radial-gradient(circle, rgba(129, 140, 248, 0.12) 0%, rgba(129, 140, 248, 0) 72%);
}

.home-classic-info-card:first-child {
    border-color: rgba(191, 219, 254, 0.9);
}

.home-classic-info-card:last-child {
    background: linear-gradient(180deg, #fffdf8 0%, #fff7ed 100%);
    border-color: rgba(253, 186, 116, 0.5);
}

.home-classic-info-card h3 {
    margin-bottom: 14px;
}

.home-classic-legend-list {
    gap: 10px;
}

.home-classic-legend-list li {
    padding: 12px 14px;
    border-radius: 14px;
    border: 1px solid transparent;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4);
}

.home-classic-legend-list li:nth-child(1) {
    background: linear-gradient(90deg, #fff1f2 0%, #ffe4e6 100%);
    border-color: #fecdd3;
}

.home-classic-legend-list li:nth-child(2) {
    background: linear-gradient(90deg, #fff7ed 0%, #ffedd5 100%);
    border-color: #fdba74;
}

.home-classic-legend-list li:nth-child(3) {
    background: linear-gradient(90deg, #f8fafc 0%, #eef2f7 100%);
    border-color: #d7deea;
}

.home-classic-legend-list li:nth-child(4) {
    background: linear-gradient(90deg, #f0f9ff 0%, #e0f2fe 100%);
    border-color: #7dd3fc;
}

.home-classic-legend-list li:nth-child(5) {
    background: linear-gradient(90deg, #eef4ff 0%, #dbeafe 100%);
    border-color: #93c5fd;
}

.home-classic-legend-list strong {
    color: #1f2a44;
}

.home-classic-info-card p {
    margin: 0;
    color: #4b5565;
    line-height: 1.8;
}

.admin-actions {
    justify-content: flex-end;
}

.vip-admin-grid {
    align-items: start;
}

.vip-summary-list {
    display: grid;
    gap: 12px;
    color: #2f3b52;
    line-height: 1.7;
}

.audit-meta-block {
    margin-top: 8px;
    display: grid;
    gap: 4px;
    color: #667085;
    font-size: 13px;
    line-height: 1.6;
    word-break: break-all;
}

.audit-user-agent {
    max-width: 260px;
    color: #667085;
    word-break: break-all;
}

.visitor-stats-grid {
    margin-bottom: 24px;
}

.visitor-day-card {
    margin-bottom: 18px;
}

.visitor-path {
    max-width: 220px;
    word-break: break-all;
}

.about-preview-card {
    display: grid;
    gap: 18px;
}

.about-preview-card h1 {
    text-align: center;
}

.about-tutorial-download {
    display: flex;
    justify-content: center;
    margin: -2px 0 4px;
}

.tutorial-download-link {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) 34px;
    align-items: center;
    gap: 12px;
    width: min(100%, 520px);
    padding: 12px 14px;
    border: 1px solid rgba(37, 99, 235, 0.24);
    border-radius: 10px;
    background: #f8fbff;
    color: #17253f;
    box-shadow: 0 8px 22px rgba(37, 99, 235, 0.08);
    text-decoration: none;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.tutorial-download-link:hover {
    border-color: rgba(37, 99, 235, 0.48);
    box-shadow: 0 12px 28px rgba(37, 99, 235, 0.14);
    transform: translateY(-1px);
}

.tutorial-file-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 8px;
    background: #d94a12;
    color: #ffffff;
    font-size: 22px;
    font-weight: 800;
    line-height: 1;
}

.tutorial-download-copy {
    display: grid;
    min-width: 0;
    gap: 2px;
}

.tutorial-download-copy strong {
    color: #1746a2;
    font-size: 16px;
    line-height: 1.35;
}

.tutorial-download-copy span {
    overflow-wrap: anywhere;
    color: #64748b;
    font-size: 13px;
    line-height: 1.45;
}

.tutorial-download-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #e7efff;
    color: #1d4ed8;
    font-size: 20px;
    font-weight: 700;
    line-height: 1;
}

.about-preview-card ul {
    margin: 0;
    padding-left: 30px;
}

.about-preview-card li {
    color: #51627f;
    line-height: 1.8;
}

@media (max-width: 767px) {
    .tutorial-download-link {
        grid-template-columns: 40px minmax(0, 1fr) 30px;
        gap: 10px;
        padding: 11px 12px;
    }

    .tutorial-file-mark {
        width: 40px;
        height: 40px;
        font-size: 20px;
    }

    .tutorial-download-copy strong {
        font-size: 15px;
    }

    .tutorial-download-copy span {
        font-size: 12px;
    }

    .tutorial-download-arrow {
        width: 30px;
        height: 30px;
        font-size: 18px;
    }
}

.about-factor-block {
    display: grid;
    gap: 6px;
}

.about-factor-block p,
.about-factor-block ol {
    margin: 0;
}

.about-factor-block ol {
    padding-left: 28px;
}

.about-factor-block li {
    color: #17253f;
    line-height: 1.8;
}

.about-preview-tip {
    display: inline-flex;
    align-items: center;
    padding: 10px 14px;
    border-radius: 14px;
    background: #eff6ff;
    color: #1d4ed8;
    font-weight: 600;
}

.article-page {
    max-width: 920px;
    margin: 0 auto;
}

.article-heading {
    margin-bottom: 24px;
    text-align: center;
}

.article-heading h1 {
    margin-bottom: 12px;
}

.article-content {
    display: grid;
    gap: 14px;
    padding-top: 8px;
}

.article-content p {
    margin: 0;
    color: #24324a;
    font-size: 16px;
    line-height: 1.9;
    text-wrap: pretty;
}

.article-figure {
    margin: 10px 0 18px;
}

.article-figure img {
    display: block;
    width: min(100%, 860px);
    max-width: 100%;
    height: auto;
    margin: 0 auto;
    border-radius: 14px;
    border: 1px solid rgba(216, 226, 240, 0.9);
    background: #ffffff;
}

.about-reference-chart {
    margin-top: 24px;
}

.about-reference-chart-wide,
.about-reference-chart-secondary {
    overflow: hidden;
}

.about-reference-chart-wide img {
    width: min(100%, 640px);
    max-width: 100%;
    margin: 0 auto;
}

.about-reference-chart-secondary img {
    width: min(100%, 700px);
    max-width: 100%;
    margin: 0 auto;
}

.about-reference-chart img {
    display: block;
    width: 100%;
    max-width: 720px;
    border-radius: 18px;
    border: 1px solid rgba(216, 226, 240, 0.9);
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.08);
}

.site-footer {
    padding: 24px 0 40px;
    color: var(--muted);
    text-align: center;
}

.site-footer-copy {
    display: flex;
    flex-direction: column;
    gap: 8px;
    line-height: 1.7;
}

.site-footer-contact {
    color: var(--primary-deep);
    font-weight: 600;
}

.pay-shell,
.pay-order-list,
.pay-result-card {
    margin-bottom: 24px;
}

.pay-plan-grid,
.pay-result-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 16px;
}

.pay-shell .section-header-rich {
    align-items: flex-start;
}

.pay-sale-eyebrow {
    display: inline-flex;
    width: fit-content;
    margin-bottom: 10px;
    padding: 6px 12px;
    border-radius: 999px;
    background: #fee2e2;
    color: #b91c1c;
    font-size: 14px;
    font-weight: 700;
}

.pay-shell .section-header-rich h1 {
    margin-bottom: 10px;
}

.pay-shell .section-header-rich p {
    max-width: 680px;
}

.pay-shell .pay-plan-grid {
    grid-template-columns: minmax(280px, 560px) minmax(240px, 360px);
    justify-content: center;
    align-items: start;
}

.pay-plan-card {
    display: grid;
    gap: 18px;
    padding: 22px;
    border: 1px solid rgba(216, 226, 240, 0.95);
    border-radius: 16px;
    background: #f8fafc;
}

.pay-plan-card-featured {
    position: relative;
    overflow: hidden;
    gap: 20px;
    padding: 30px;
    border-color: #bfdbfe;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}

.pay-plan-topline {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.pay-plan-topline span,
.pay-plan-topline strong {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 700;
}

.pay-plan-topline span {
    padding: 8px 12px;
    background: #dc2626;
    color: #ffffff;
}

.pay-plan-topline strong {
    padding: 8px 12px;
    background: #eff6ff;
    color: var(--primary-deep);
}

.pay-plan-card h2 {
    margin: 0 0 8px;
    font-size: 22px;
}

.pay-plan-card p {
    margin: 0;
    color: var(--muted);
}

.pay-price-stack {
    display: grid;
    gap: 8px;
}

.pay-original-price {
    width: fit-content;
    color: #64748b;
    font-size: 18px;
    text-decoration: line-through;
    text-decoration-thickness: 2px;
}

.pay-price-stack div {
    display: flex;
    align-items: flex-end;
    gap: 10px;
}

.pay-price-stack strong {
    font-size: 34px;
    line-height: 1.1;
    color: #0f172a;
}

.pay-price-stack div span {
    padding-bottom: 4px;
    color: #475569;
    font-size: 18px;
    font-weight: 700;
}

.pay-price-stack p,
.pay-sale-note {
    color: #475569;
}

.pay-sale-button {
    min-height: 52px;
    font-size: 17px;
}

.pay-sale-note {
    font-size: 14px;
    line-height: 1.7;
}

.pay-plan-visual {
    display: grid;
    gap: 14px;
    align-self: stretch;
}

.pay-plan-visual-frame {
    overflow: hidden;
    border: 1px solid rgba(191, 219, 254, 0.95);
    border-radius: 20px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
    box-shadow: 0 18px 50px rgba(148, 163, 184, 0.14);
}

.pay-plan-visual-image {
    display: block;
    width: 100%;
    height: auto;
}

.pay-plan-visual-copy {
    color: #64748b;
    font-size: 14px;
    line-height: 1.7;
}

.redeem-code-box,
.pay-wait-box {
    display: grid;
    gap: 12px;
    margin-top: 22px;
    padding: 22px;
    border-radius: 16px;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
}

@media (max-width: 980px) {
    .pay-shell .pay-plan-grid {
        grid-template-columns: minmax(280px, 560px);
    }
}

.redeem-code-box span {
    color: var(--muted);
    font-size: 14px;
}

.redeem-code-box strong {
    font-family: Consolas, "SFMono-Regular", monospace;
    font-size: clamp(22px, 5vw, 36px);
    letter-spacing: 0;
    color: var(--primary-deep);
    word-break: break-all;
}

.redeem-code-box p,
.pay-wait-box p {
    margin: 0;
    color: #334155;
    line-height: 1.7;
}

@media (max-width: 900px) {
    .hero-grid,
    .info-grid,
    .hero-stats-grid,
    .history-hero-grid {
        grid-template-columns: 1fr;
    }

    .nav-wrap,
    .section-header,
    .admin-head,
    .hero-main-row,
    .panel-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .brand {
        margin-right: 0;
    }

    .nav-wrap {
        gap: 14px;
    }

    .nav-links {
        width: 100%;
        flex-wrap: wrap;
        justify-content: flex-start;
    }

    .hero-title,
    .history-hero-card h1 {
        font-size: 28px;
    }

    .hero-value {
        font-size: 58px;
    }

    .chart-box {
        height: 320px;
    }

    .chart-wide {
        height: 340px;
    }

    .section-card,
    .chart-card,
    .info-card,
    .hero-card,
    .form-card {
        padding: 22px;
    }

    .experience-shell {
        min-height: calc(100vh - 300px);
        align-items: flex-start;
        padding-top: 28px;
    }

    .experience-menu-panel {
        padding: 18px;
    }

    .experience-menu-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .experience-entry {
        min-height: 76px;
        padding: 18px;
        font-size: 21px;
    }
}


/* ===== 盘中大盘恐贪 ===== */
.intraday-banner {
    margin-bottom: 24px;
}
.intraday-banner-inner {
    background: linear-gradient(135deg, #faf5ff 0%, #f0f9ff 50%, #fff1f2 100%);
    border: 1px solid #e9d5ff;
    border-radius: 16px;
    padding: 16px 20px;
    box-shadow: 0 4px 20px rgba(139, 92, 246, 0.06);
}
.intraday-banner-head {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
}
.intraday-banner-badge {
    display: inline-flex;
    align-items: center;
    padding: 2px 10px;
    border-radius: 999px;
    background: linear-gradient(135deg, #8b5cf6, #6366f1);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.5px;
}
.intraday-banner-head h2 {
    margin: 0;
    font-size: 16px;
    font-weight: 700;
    color: #1e1b4b;
}
.intraday-banner-date {
    margin-left: auto;
    font-size: 13px;
    color: #6b7280;
    font-weight: 500;
}
.intraday-banner-cards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.intraday-banner-single {
    display: block;
}
.intraday-banner-card-single {
    max-width: 520px;
}
.intraday-banner-card {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.85);
    border: 1px solid #ede9fe;
    backdrop-filter: blur(4px);
}
.intraday-card-label {
    font-size: 14px;
    font-weight: 600;
    color: #374151;
    min-width: 64px;
}
.intraday-card-value {
    font-size: 28px;
    font-weight: 800;
    color: #111827;
    line-height: 1;
}
.intraday-card-status {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 600;
    white-space: nowrap;
}
.intraday-card-note {
    margin-left: auto;
    font-size: 12px;
    color: #9ca3af;
}

/* status chip colors match existing .status-xxx patterns */
.status-极度贪婪 { background: #fecaca; color: #991b1b; }
.status-贪婪 { background: #fde68a; color: #92400e; }
.status-中性 { background: #e5e7eb; color: #374151; }
.status-恐惧 { background: #bae6fd; color: #0369a1; }
.status-极度恐惧 { background: #a7f3d0; color: #065f46; }


.intraday-banner-lock {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 14px;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.82);
    border: 1px solid #ede9fe;
}
.intraday-lock-copy {
    min-width: 0;
}
.intraday-lock-title {
    display: inline-flex;
    align-items: center;
    padding: 2px 10px;
    border-radius: 999px;
    background: #ede9fe;
    color: #6d28d9;
    font-size: 11px;
    font-weight: 700;
    margin-bottom: 8px;
}
.intraday-banner-lock p {
    font-size: 13px;
    color: #475569;
    margin: 0;
    line-height: 1.55;
}
.intraday-lock-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    padding: 9px 18px;
    border-radius: 999px;
    background: linear-gradient(135deg, #8b5cf6, #6366f1);
    color: #fff;
    text-decoration: none;
    font-size: 13px;
    font-weight: 600;
    transition: opacity 0.2s;
}
.intraday-lock-btn:hover {
    opacity: 0.9;
}
@media (max-width: 640px) {
    .intraday-banner {
        margin: 10px 0 18px;
    }

    .intraday-banner-inner {
        border-radius: 18px;
        padding: 14px;
    }

    .intraday-banner-head {
        align-items: flex-start;
        gap: 8px;
        margin-bottom: 12px;
    }

    .intraday-banner-head h2 {
        flex: 1;
        font-size: 17px;
        line-height: 1.35;
    }

    .intraday-banner-date {
        margin-left: 0;
        padding-top: 2px;
        font-size: 12px;
    }

    .intraday-banner-cards {
        grid-template-columns: 1fr;
    }

    .intraday-banner-card {
        display: grid;
        grid-template-columns: 1fr auto;
        gap: 8px 12px;
        align-items: center;
        padding: 14px;
        border-radius: 16px;
        background: rgba(255, 255, 255, 0.92);
    }

    .intraday-banner-card-single {
        max-width: none;
    }

    .intraday-card-label {
        min-width: 0;
        font-size: 14px;
        line-height: 1.35;
    }

    .intraday-card-value {
        grid-row: 2;
        font-size: 34px;
        letter-spacing: 0;
    }

    .intraday-card-status {
        justify-self: end;
        grid-column: 2;
        grid-row: 2;
        align-self: center;
    }

    .intraday-card-note {
        grid-column: 1 / -1;
        margin-left: 0;
        font-size: 13px;
        color: #64748b;
    }

    .intraday-banner-lock {
        display: block;
        padding: 14px;
        border-radius: 16px;
    }

    .intraday-lock-copy {
        margin-bottom: 12px;
    }

    .intraday-lock-title {
        margin-bottom: 6px;
    }

    .intraday-lock-btn {
        width: 100%;
        padding: 10px 16px;
    }
}



.notice-modal-shell {
    position: fixed;
    inset: 0;
    z-index: 120;
}

.notice-modal-shell.is-hidden {
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.18s ease;
}

.notice-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.45);
    backdrop-filter: blur(2px);
}

.notice-modal-card {
    position: relative;
    width: min(1100px, calc(100% - 48px));
    margin: 48px auto 0;
    background: #fff;
    border-radius: 20px;
    box-shadow: 0 30px 80px rgba(15, 23, 42, 0.22);
    overflow: hidden;
}

.notice-modal-topbar {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 14px;
    padding: 22px 24px 0;
}

.notice-modal-tabs {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-right: auto;
}

.notice-modal-tab {
    color: #64748b;
    font-size: 15px;
}

.notice-modal-tab-active {
    padding: 10px 18px;
    border-radius: 14px;
    background: #eff6ff;
    color: #2563eb;
    font-weight: 700;
}

.notice-modal-x {
    border: 0;
    background: transparent;
    color: #475569;
    font-size: 30px;
    line-height: 1;
    cursor: pointer;
}

.notice-modal-body {
    padding: 8px 32px 24px;
}

.notice-modal-body h2 {
    margin: 0 0 24px;
    font-size: 24px;
    color: #0f172a;
}

.notice-modal-content {
    color: #111827;
    font-size: 18px;
    line-height: 1.9;
}

.notice-modal-actions {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    padding: 0 32px 30px;
}

.notice-modal-action {
    min-width: 112px;
}

.textarea {
    min-height: 180px;
    resize: vertical;
}

@media (max-width: 640px) {
    .notice-modal-card {
        width: calc(100% - 24px);
        margin-top: 24px;
        border-radius: 18px;
    }

    .notice-modal-topbar {
        padding: 16px 16px 0;
        align-items: flex-start;
    }

    .notice-modal-tabs {
        gap: 8px;
        flex-wrap: wrap;
    }

    .notice-modal-tab,
    .notice-modal-tab-active {
        font-size: 13px;
    }

    .notice-modal-tab-active {
        padding: 8px 12px;
        border-radius: 12px;
    }

    .notice-modal-x {
        font-size: 26px;
    }

    .notice-modal-body {
        padding: 8px 18px 18px;
    }

    .notice-modal-body h2 {
        margin-bottom: 16px;
        font-size: 20px;
    }

    .notice-modal-content {
        font-size: 16px;
        line-height: 1.75;
    }

    .notice-modal-actions {
        padding: 0 18px 20px;
        justify-content: stretch;
        gap: 10px;
    }

    .notice-modal-action {
        flex: 1 1 0;
        min-width: 0;
    }
}



.pay-plan-visual-frame-store {
    display: grid;
    gap: 16px;
    padding: 22px;
}

.pay-plan-store-top {
    display: grid;
    gap: 8px;
}

.pay-plan-store-top h3 {
    margin: 0;
    font-size: 24px;
    color: #0f172a;
}

.pay-plan-store-top p {
    margin: 0;
    color: #475569;
    line-height: 1.7;
}

.pay-plan-store-badge {
    display: inline-flex;
    width: fit-content;
    padding: 6px 12px;
    border-radius: 999px;
    background: #eff6ff;
    color: var(--primary-deep);
    font-size: 13px;
    font-weight: 700;
}

.pay-plan-visual-image-qr {
    max-width: 320px;
    width: 100%;
    margin: 0 auto;
    border-radius: 18px;
    border: 1px solid rgba(191, 219, 254, 0.95);
    background: #ffffff;
}

.pay-store-link {
    justify-self: stretch;
    text-align: center;
}

.site-header {
    position: sticky;
    top: 0;
    z-index: 80;
    backdrop-filter: blur(10px);
    background: rgba(248, 250, 252, 0.94);
    border-bottom: 1px solid rgba(216, 226, 240, 0.96);
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
}

.site-header .container {
    width: min(1120px, calc(100% - 32px));
}

.page-content {
    padding: 20px 0 56px;
}

.brand,
.brand-solid {
    display: inline-flex;
    align-items: center;
    padding: 0;
    color: #0f172a;
    font-size: 22px;
    font-weight: 800;
    line-height: 1;
    text-decoration: none;
    background: none;
    -webkit-background-clip: border-box;
    background-clip: border-box;
}

.brand::after {
    display: none;
}

.official-desktop-header {
    display: flex;
    align-items: center;
    gap: 14px;
    min-height: 68px;
}

.official-desktop-nav {
    display: flex;
    align-items: center;
    flex: 1 1 auto;
    gap: 8px;
    min-width: 0;
}

.official-desktop-nav a,
.official-desktop-popover a,
.official-mobile-nav-group a {
    color: #24324a;
    text-decoration: none;
}

.official-desktop-nav a,
.official-desktop-menu summary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 0 14px;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 600;
    line-height: 1;
    white-space: nowrap;
    cursor: pointer;
    transition: background 0.18s ease, color 0.18s ease, box-shadow 0.18s ease;
}

.official-desktop-nav a:hover,
.official-desktop-menu summary:hover,
.official-desktop-popover a:hover,
.official-mobile-nav-group a:hover,
.official-mobile-account:hover {
    background: #eef4ff;
    color: var(--primary-deep);
}

.official-desktop-menu {
    position: relative;
}

.official-desktop-menu summary {
    list-style: none;
    color: #475569;
}

.official-desktop-menu summary::-webkit-details-marker {
    display: none;
}

.official-desktop-menu[open] summary {
    background: #eef4ff;
    color: var(--primary-deep);
}

.official-desktop-popover {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    display: grid;
    gap: 4px;
    min-width: 176px;
    padding: 10px;
    border: 1px solid rgba(216, 226, 240, 0.96);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.12);
}

.official-desktop-popover a {
    display: flex;
    align-items: center;
    min-height: 40px;
    padding: 0 12px;
    border-radius: 10px;
    font-size: 14px;
}

.official-mobile-header,
.official-mobile-direct-nav,
.official-mobile-nav-overlay,
.official-mobile-nav-sheet {
    display: none;
}

.official-mobile-header {
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.official-mobile-brand {
    display: inline-flex;
    align-items: center;
    flex: 1 1 auto;
    min-width: 0;
    min-height: 44px;
    color: #0f172a;
    font-size: 14px;
    font-weight: 800;
    line-height: 1;
    white-space: nowrap;
    text-decoration: none;
}

.official-mobile-actions {
    display: flex;
    align-items: center;
    flex: 0 0 auto;
    gap: 8px;
    min-width: 0;
}

.official-mobile-account,
.official-icon-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    min-width: 44px;
    border-radius: 999px;
}

.official-mobile-account {
    gap: 8px;
    max-width: 180px;
    padding: 0 12px;
    border: 1px solid rgba(216, 226, 240, 0.96);
    background: rgba(255, 255, 255, 0.98);
    color: #24324a;
    text-decoration: none;
}

.official-mobile-account-icon {
    width: 18px;
    height: 18px;
    border-radius: 999px;
    border: 2px solid #1d4ed8;
    position: relative;
    flex: 0 0 auto;
}

.official-mobile-account-icon::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -6px;
    width: 14px;
    height: 8px;
    border: 2px solid #1d4ed8;
    border-top: 0;
    border-radius: 0 0 999px 999px;
    transform: translateX(-50%);
}

.official-mobile-account-label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 14px;
    font-weight: 600;
}

.official-icon-button {
    border: 1px solid rgba(216, 226, 240, 0.96);
    background: rgba(255, 255, 255, 0.98);
    color: #0f172a;
    cursor: pointer;
}

.official-menu-icon,
.official-menu-icon::before,
.official-menu-icon::after {
    display: block;
    width: 18px;
    height: 2px;
    border-radius: 999px;
    background: currentColor;
    transition: transform 0.18s ease, opacity 0.18s ease;
}

.official-menu-icon {
    position: relative;
}

.official-menu-icon::before,
.official-menu-icon::after {
    content: "";
    position: absolute;
    left: 0;
}

.official-menu-icon::before {
    top: -6px;
}

.official-menu-icon::after {
    top: 6px;
}

.official-mobile-nav-overlay {
    position: fixed;
    inset: 0;
    z-index: 84;
    background: rgba(15, 23, 42, 0.42);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.18s ease;
}

.official-mobile-nav-sheet {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 85;
    width: 100%;
    max-height: min(82vh, 720px);
    border-radius: 16px 16px 0 0;
    background: #ffffff;
    box-shadow: 0 -18px 44px rgba(15, 23, 42, 0.18);
    transform: translateY(104%);
    transition: transform 0.18s ease;
}

.official-mobile-nav-scroll {
    overflow-y: auto;
    padding: 18px 16px calc(24px + env(safe-area-inset-bottom));
}

.official-mobile-nav-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
}

.official-mobile-nav-head h2 {
    margin: 0 0 6px;
    font-size: 20px;
}

.official-mobile-nav-head p {
    margin: 0;
    color: var(--muted);
    line-height: 1.6;
}

.official-mobile-nav-groups {
    display: grid;
    gap: 14px;
}

.official-mobile-nav-group {
    display: grid;
    gap: 6px;
    padding: 14px;
    border: 1px solid rgba(216, 226, 240, 0.9);
    border-radius: 14px;
    background: #f8fafc;
}

.official-mobile-nav-label {
    color: #64748b;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.official-mobile-nav-group a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 44px;
    padding: 0 4px;
    border-radius: 10px;
    font-size: 15px;
    font-weight: 600;
}

.nav-vip-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 22px;
    padding: 0 8px;
    border-radius: 999px;
    background: #fff7ed;
    color: #c2410c;
    font-size: 11px;
    font-weight: 700;
}

.official-mobile-nav-sheet.is-open {
    transform: translateY(0);
}

.official-mobile-nav-overlay.is-open {
    opacity: 1;
    pointer-events: auto;
}

.is-scroll-locked {
    overflow: hidden;
}

.flash-list {
    position: fixed;
    top: calc(env(safe-area-inset-top) + 16px);
    right: 16px;
    z-index: 90;
    display: grid;
    gap: 10px;
    width: min(360px, calc(100vw - 32px));
    pointer-events: none;
}

.flash-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 14px;
    border: 1px solid rgba(216, 226, 240, 0.96);
    border-radius: 14px;
    box-shadow: 0 18px 32px rgba(15, 23, 42, 0.12);
    background: rgba(255, 255, 255, 0.98);
    pointer-events: auto;
}

.flash-item-copy {
    flex: 1 1 auto;
    line-height: 1.6;
}

.flash-item-close {
    flex: 0 0 auto;
    min-width: 32px;
    min-height: 32px;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: currentColor;
    cursor: pointer;
    font-size: 20px;
    line-height: 1;
}

.flash-success {
    background: rgba(236, 253, 245, 0.98);
    color: #166534;
}

.flash-danger {
    background: rgba(254, 242, 242, 0.98);
    color: #991b1b;
}

.flash-warning {
    background: rgba(255, 251, 235, 0.98);
    color: #92400e;
}

.flash-info {
    background: rgba(239, 246, 255, 0.98);
    color: #1d4ed8;
}

a:focus-visible,
button:focus-visible,
summary:focus-visible {
    outline: 3px solid rgba(37, 99, 235, 0.22);
    outline-offset: 2px;
}

@media (max-width: 767px) {
    .official-desktop-header {
        display: none;
    }

    .official-mobile-header {
        display: flex;
        min-height: calc(56px + env(safe-area-inset-top));
        padding-top: env(safe-area-inset-top);
    }

    .official-mobile-nav-overlay {
        display: block;
    }

    .official-mobile-nav-sheet {
        display: flex;
    }

    .page-content {
        padding-top: 16px;
    }

    .flash-list {
        top: calc(env(safe-area-inset-top) + 64px);
        left: 16px;
        right: 16px;
        width: auto;
    }
}

@media (max-width: 359px) {
    .official-mobile-header {
        gap: 8px;
    }

    .official-mobile-account {
        width: 44px;
        padding-inline: 0;
    }

    .official-mobile-account-label {
        display: none;
    }

    .official-mobile-brand {
        font-size: 13px;
    }
}

@media (min-width: 768px) {
    .official-mobile-header,
    .official-mobile-nav-overlay,
    .official-mobile-nav-sheet {
        display: none !important;
    }

    .flash-list {
        top: 16px;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}

.today-market-snapshot,
.home-trend-section,
.home-tool-links,
.home-announcement,
.home-methodology {
    margin-bottom: 16px;
    padding: 20px;
    border: 1px solid rgba(216, 226, 240, 0.9);
    border-radius: 16px;
    background: #ffffff;
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.06);
}

.today-market-head,
.compact-section-header,
.home-tool-links,
.home-announcement {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.today-market-head h1,
.compact-section-header h2,
.home-tool-links h2,
.home-announcement h2,
.homeMethodology h2,
.home-methodology h2 {
    margin: 0 0 8px;
}

.today-market-head p,
.compact-section-header p,
.home-tool-links p,
.home-announcement p,
.home-methodology p {
    margin: 0;
    color: var(--muted);
    line-height: 1.65;
}

.sentiment-tabs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 18px 0 16px;
    padding: 4px;
    border-radius: 14px;
    background: #f1f5f9;
}

.sentiment-tabs button {
    min-height: 44px;
    border: 0;
    border-radius: 12px;
    background: transparent;
    color: #475569;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.18s ease, color 0.18s ease, box-shadow 0.18s ease;
}

.sentiment-tabs button[aria-selected="true"] {
    background: #ffffff;
    color: var(--primary-deep);
    box-shadow: 0 8px 18px rgba(37, 99, 235, 0.14);
}

.sentiment-panel[hidden] {
    display: none !important;
}

.sentiment-panel {
    display: grid;
    gap: 14px;
}

.sentiment-reading-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
}

.sentiment-reading-label {
    color: #475569;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.sentiment-reading-date {
    margin-top: 6px;
    color: #64748b;
    font-size: 14px;
}

.sentiment-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 0 12px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
    white-space: nowrap;
}

.sentiment-value {
    font-size: clamp(56px, 12vw, 72px);
    line-height: 0.95;
    font-weight: 800;
    letter-spacing: 0;
    color: #0f172a;
}

.sentiment-scale {
    position: relative;
    height: 16px;
    border-radius: 999px;
    background:
        linear-gradient(
            90deg,
            #2563eb 0%,
            #0ea5e9 15%,
            #94a3b8 30%,
            #94a3b8 70%,
            #f59e0b 85%,
            #ef4444 100%
        );
}

.sentiment-scale-marker {
    position: absolute;
    top: 50%;
    left: clamp(0%, var(--sentiment-position), 100%);
    width: 24px;
    height: 24px;
    border: 3px solid #ffffff;
    border-radius: 999px;
    background: #0f172a;
    box-shadow: 0 6px 18px rgba(15, 23, 42, 0.18);
    transform: translate(-50%, -50%);
}

.sentiment-scale-labels {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    color: #64748b;
    font-size: 12px;
    font-weight: 600;
}

.sentiment-reference,
.sentiment-summary {
    margin: 0;
    color: #334155;
    line-height: 1.75;
}

.sentiment-lock-state,
.sentiment-empty-state {
    display: grid;
    gap: 12px;
    padding: 18px;
    border-radius: 14px;
    border: 1px solid rgba(216, 226, 240, 0.96);
    background: #f8fafc;
}

.sentiment-lock-state h2,
.sentiment-empty-state h2 {
    margin: 0;
    font-size: 22px;
    line-height: 1.4;
}

.sentiment-lock-state p,
.sentiment-empty-state p {
    margin: 0;
    color: #475569;
    line-height: 1.7;
}

.sentiment-actions,
.sentiment-footer-actions,
.home-tool-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.sentiment-footer-actions {
    margin-top: 16px;
}

.home-trend-section {
    padding-bottom: 16px;
}

.home-index-fear-greed-board {
    margin-top: 16px;
}

.index-board-summary {
    margin-top: 12px;
    color: #64748b;
    font-size: 13px;
    line-height: 1.6;
}

.index-board-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 14px;
    border: 1px solid rgba(37, 99, 235, 0.22);
    border-radius: 10px;
    background: #f8fbff;
    color: #1d4ed8;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
}

.index-board-toggle:focus-visible {
    outline: 3px solid rgba(37, 99, 235, 0.45);
    outline-offset: 2px;
}

.index-board-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}

.index-board-filter {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 36px;
    padding: 0 12px;
    border: 1px solid rgba(148, 163, 184, 0.35);
    border-radius: 999px;
    background: #f8fafc;
    color: #475569;
    font-size: 13px;
    cursor: pointer;
}

.index-board-filter.is-active {
    border-color: rgba(37, 99, 235, 0.5);
    background: #eff6ff;
    color: #1d4ed8;
    font-weight: 600;
}

.index-board-filter-count {
    opacity: 0.75;
}

.index-fear-greed-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 12px;
}

.index-fear-greed-card {
    min-width: 0;
    padding: 12px;
    border: 1px solid rgba(216, 226, 240, 0.96);
    border-radius: 14px;
    background: #ffffff;
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.06);
}

.index-fear-greed-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.index-fear-greed-card-name {
    color: #172033;
    font-size: 14px;
    font-weight: 700;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    min-width: 0;
}

.index-fear-greed-card-code {
    color: #94a3b8;
    font-size: 11px;
    font-weight: 500;
    line-height: 1.3;
    white-space: nowrap;
}

.index-fear-greed-card-meta {
    margin-top: 4px;
    color: #64748b;
    font-size: 12px;
}

.index-fear-greed-chart {
    height: 190px;
    margin-top: 8px;
}

.home-trend-chart-shell {
    position: relative;
}

.home-trend-skeleton {
    height: 200px;
    border-radius: 14px;
    background:
        linear-gradient(90deg, rgba(226, 232, 240, 0.86) 0%, rgba(241, 245, 249, 0.96) 50%, rgba(226, 232, 240, 0.86) 100%);
    background-size: 220% 100%;
    animation: homeTrendPulse 1.25s ease-in-out infinite;
}

.home-trend-chart {
    height: 200px;
}

.home-trend-expand {
    position: absolute;
    top: 4px;
    right: 4px;
    z-index: 2;
    display: none;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    padding: 0;
    border: 1px solid rgba(148, 163, 184, 0.45);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.92);
    color: #172554;
    font-size: 24px;
    line-height: 1;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.12);
    cursor: pointer;
}

.home-trend-expand:focus-visible,
.home-trend-viewer-close:focus-visible {
    outline: 3px solid rgba(37, 99, 235, 0.55);
    outline-offset: 2px;
}

body.home-trend-viewer-open {
    overflow: hidden;
    overscroll-behavior: none;
}

.home-trend-viewer {
    position: fixed;
    inset: 0;
    z-index: 1200;
    overflow: hidden;
    background: #e8eef7;
}

.home-trend-viewer[hidden] {
    display: none !important;
}

.home-trend-viewer-stage {
    position: absolute;
    inset: 0;
    overflow: hidden;
    background: #ffffff;
}

.home-trend-viewer-chart {
    width: 100%;
    height: 100%;
    touch-action: none;
}

.home-trend-viewer-close {
    position: fixed;
    top: max(10px, env(safe-area-inset-top, 0px));
    right: max(10px, env(safe-area-inset-right, 0px));
    z-index: 1202;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, 0.5);
    border-radius: 8px;
    background: rgba(15, 23, 42, 0.88);
    color: #ffffff;
    font-size: 30px;
    line-height: 1;
    box-shadow: 0 6px 18px rgba(15, 23, 42, 0.24);
    cursor: pointer;
}

@media (orientation: portrait) and (max-width: 767px) {
    .home-trend-viewer-stage {
        top: 50%;
        left: 50%;
        width: 100vh;
        height: 100vw;
        width: 100dvh;
        height: 100dvw;
        transform: translate(-50%, -50%) rotate(90deg);
        transform-origin: center;
    }
}

@media (orientation: landscape) and (max-width: 1023px) {
    .home-trend-viewer-stage {
        inset: 0;
        width: 100%;
        height: 100%;
        transform: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .home-trend-viewer-stage {
        transition: none;
    }
}

.home-trend-error {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 16px;
    border-radius: 14px;
    background: #fff7ed;
    color: #9a3412;
}

.home-trend-error[hidden] {
    display: none !important;
}

.home-trend-error button {
    min-height: 40px;
    padding: 0 14px;
    border: 1px solid rgba(251, 146, 60, 0.45);
    border-radius: 10px;
    background: #ffffff;
    color: #9a3412;
    font-weight: 700;
    cursor: pointer;
}

.trend-lock-note {
    margin: 14px 0 0;
    color: #64748b;
    line-height: 1.7;
}

.home-tool-links a,
.home-announcement > a,
.home-methodology .text-link {
    align-self: center;
}

.home-tool-actions a,
.home-announcement > a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 0 14px;
    border-radius: 12px;
    color: #1f2a44;
    text-decoration: none;
    font-weight: 700;
    background: #f8fafc;
    border: 1px solid rgba(216, 226, 240, 0.96);
}

.home-sentiment-legend {
    list-style: none;
    margin: 16px 0 0;
    padding: 0;
    display: grid;
    gap: 10px;
}

.home-sentiment-legend li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
    border-radius: 12px;
    background: #f8fafc;
}

.home-sentiment-legend li:nth-child(1) {
    background: #eff6ff;
}

.home-sentiment-legend li:nth-child(2) {
    background: #f0f9ff;
}

.home-sentiment-legend li:nth-child(3) {
    background: #f8fafc;
}

.home-sentiment-legend li:nth-child(4) {
    background: #fff7ed;
}

.home-sentiment-legend li:nth-child(5) {
    background: #fef2f2;
}

.home-sentiment-legend span {
    color: #64748b;
}

.home-sentiment-legend strong {
    color: #0f172a;
}

.status-极度恐惧 {
    background: #dbeafe;
    color: #1d4ed8;
}

.status-恐惧 {
    background: #e0f2fe;
    color: #0369a1;
}

.status-中性 {
    background: #e2e8f0;
    color: #475569;
}

.status-贪婪 {
    background: #ffedd5;
    color: #c2410c;
}

.status-极度贪婪 {
    background: #fee2e2;
    color: #b91c1c;
}

@keyframes homeTrendPulse {
    0% {
        background-position: 100% 0;
    }

    100% {
        background-position: -100% 0;
    }
}

@media (max-width: 899px) {
    .today-market-head,
    .compact-section-header,
    .home-tool-links,
    .home-announcement,
    .sentiment-reading-head,
    .home-trend-error {
        flex-direction: column;
        align-items: flex-start;
    }
}

@media (min-width: 900px) {
    .today-market-snapshot {
        display: grid;
        gap: 0;
    }

    .home-trend-chart {
        height: 280px;
    }

    .home-trend-skeleton {
        height: 280px;
    }
}

/* Desktop keeps the 2026-07-18 public layout; mobile keeps the compact data view. */
.legacy-desktop-header,
.legacy-desktop-home {
    display: block;
}

.official-mobile-shell,
.mobile-data-home {
    display: none;
}

@media (min-width: 768px) {
    .home-trend-expand {
        display: none !important;
    }

    .legacy-desktop-header,
    .legacy-desktop-home {
        display: block;
    }

    .official-mobile-shell,
    .mobile-data-home {
        display: none;
    }
}

@media (max-width: 767px) {
    .index-fear-greed-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .home-trend-expand {
        display: flex;
    }

    .home-trend-chart {
        cursor: zoom-in;
    }

    .legacy-desktop-header,
    .legacy-desktop-home {
        display: none;
    }

    .home-classic-info-grid {
        display: none;
    }

    .official-mobile-shell {
        display: block;
    }

    .official-mobile-header {
        display: flex;
    }

    .official-mobile-direct-nav {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        width: 100%;
        border-top: 1px solid #dbe5f3;
        border-bottom: 1px solid #dbe5f3;
        background: rgba(255, 255, 255, 0.98);
    }

    .official-mobile-direct-nav-link {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
        min-width: 0;
        min-height: 50px;
        padding: 6px 4px;
        color: #557091;
        font-size: 12px;
        font-weight: 500;
        line-height: 1.25;
        text-align: center;
        text-decoration: none;
        overflow-wrap: anywhere;
    }

    .official-mobile-direct-nav-link.is-active {
        color: #075ee5;
        font-weight: 700;
    }

    .official-mobile-direct-nav-link.is-active::after {
        content: "";
        position: absolute;
        left: 28%;
        right: 28%;
        bottom: 0;
        height: 3px;
        border-radius: 999px 999px 0 0;
        background: #25b7f3;
    }

    .official-mobile-nav-overlay,
    .official-mobile-nav-sheet {
        display: none !important;
    }

    .mobile-data-home {
        display: block;
    }

    /* Mobile home emotion-spectrum surfaces. */
    .today-market-snapshot,
    .mobile-gauge-section {
        position: relative;
        overflow: hidden;
    }

    .today-market-snapshot {
        border-color: rgba(147, 197, 253, 0.72);
        background: linear-gradient(155deg, #ffffff 0%, #f5faff 58%, #eef9f6 100%);
        box-shadow: 0 14px 34px rgba(30, 64, 175, 0.1);
    }

    .today-market-snapshot::before {
        content: "";
        position: absolute;
        top: 0;
        right: 0;
        left: 0;
        height: 5px;
        background: linear-gradient(
            90deg,
            #2563eb 0%,
            #0ea5e9 25%,
            #16a34a 50%,
            #f59e0b 75%,
            #dc2626 100%
        );
    }

    .today-market-head h1 {
        color: #102a56;
    }

    .sentiment-tabs {
        border: 1px solid rgba(147, 197, 253, 0.45);
        background: #eaf3fd;
    }

    .sentiment-tabs button[aria-selected="true"] {
        background: #ffffff;
        box-shadow: 0 8px 18px rgba(30, 64, 175, 0.16);
    }

    .sentiment-lock-state {
        border-color: rgba(245, 158, 11, 0.34);
        background: linear-gradient(145deg, #fffdf8 0%, #fff7e8 100%);
        box-shadow: inset 4px 0 0 rgba(245, 158, 11, 0.82);
    }

    .sentiment-lock-state .nav-vip-badge {
        background: #ffedbd;
        color: #9a3412;
    }

    .sentiment-footer-actions {
        padding-top: 16px;
        border-top: 1px solid rgba(147, 197, 253, 0.38);
    }

    .mobile-data-home .mobile-gauge-section {
        border-color: rgba(125, 211, 252, 0.62);
        background: linear-gradient(155deg, #ffffff 0%, #f7fcff 62%, #eef8ff 100%);
        box-shadow: 0 14px 32px rgba(14, 116, 144, 0.09);
    }

    .mobile-gauge-head .eyebrow {
        color: #0e7490;
        font-weight: 700;
    }

    .mobile-gauge-section .panel-badge {
        border-color: #bae6fd;
        background: #e0f2fe;
        color: #075985;
    }

    .mobile-gauge-section .mobile-gauge-lock,
    .mobile-gauge-section .mobile-gauge-empty {
        padding: 18px;
        border: 1px solid rgba(125, 211, 252, 0.52);
        border-radius: 14px;
    }
}

@media (min-width: 768px) {
    .legacy-desktop-header {
        backdrop-filter: blur(14px);
        background: linear-gradient(180deg, rgba(248, 251, 255, 0.96) 0%, rgba(241, 246, 255, 0.92) 100%);
        border-bottom: 1px solid rgba(191, 219, 254, 0.85);
        box-shadow: 0 10px 30px rgba(37, 99, 235, 0.06);
    }

    .legacy-desktop-header .container {
        width: min(1600px, calc(100% - 48px));
    }

    .legacy-desktop-header .brand {
        position: relative;
        flex: 0 0 auto;
        padding: 8px 0 7px;
        letter-spacing: 0.01em;
        background: linear-gradient(135deg, #0f172a 0%, #1d4ed8 55%, #2563eb 100%);
        -webkit-background-clip: text;
        background-clip: text;
        color: transparent;
    }

    .legacy-desktop-header .brand::after {
        content: "";
        position: absolute;
        left: 0;
        bottom: 4px;
        display: block;
        width: 44px;
        height: 3px;
        border-radius: 999px;
        background: linear-gradient(90deg, #60a5fa 0%, #2563eb 100%);
        opacity: 0.9;
    }

    .page-content {
        padding: 32px 0 56px;
    }
}

.mobile-gauge-section {
    margin-bottom: 16px;
    padding: 20px;
    border: 1px solid rgba(216, 226, 240, 0.9);
    border-radius: 16px;
    background: #ffffff;
}

.mobile-gauge-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.mobile-gauge-head .eyebrow {
    margin-bottom: 6px;
}

.mobile-gauge-head h2 {
    margin: 0;
    font-size: 24px;
    line-height: 1.3;
}

.mobile-gauge-chart {
    width: 100%;
    height: 280px;
    margin-top: 4px;
}

.mobile-gauge-interpretation {
    display: grid;
    gap: 12px;
    padding-top: 16px;
    border-top: 1px solid #e2e8f0;
}

.mobile-gauge-summary,
.mobile-gauge-updated {
    margin: 0;
    color: #475569;
    line-height: 1.7;
}

.mobile-gauge-risk {
    padding: 13px 14px;
    border: 1px solid transparent;
    border-radius: 12px;
    font-weight: 700;
    line-height: 1.65;
}

.mobile-gauge-risk-extreme-fear {
    border-color: #bfdbfe;
    background: #eff6ff;
    color: #1d4ed8;
}

.mobile-gauge-risk-fear {
    border-color: #bae6fd;
    background: #f0f9ff;
    color: #0369a1;
}

.mobile-gauge-risk-neutral {
    border-color: #cbd5e1;
    background: #f8fafc;
    color: #475569;
}

.mobile-gauge-risk-greed {
    border-color: #fed7aa;
    background: #fff7ed;
    color: #c2410c;
}

.mobile-gauge-risk-extreme-greed {
    border-color: #fecaca;
    background: #fef2f2;
    color: #b91c1c;
}

.mobile-gauge-lock,
.mobile-gauge-empty {
    margin-top: 18px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

@media (max-width: 359px) {
    .official-mobile-account {
        width: auto;
        padding-inline: 10px;
    }

    .official-mobile-account-label {
        display: inline;
        font-size: 12px;
    }

    .official-mobile-direct-nav-link {
        min-height: 48px;
        padding-inline: 2px;
        font-size: 11px;
    }

    .sentiment-tabs {
        gap: 4px;
    }

    .sentiment-tabs button {
        padding-inline: 4px;
        font-size: 12px;
        white-space: nowrap;
    }

    .mobile-gauge-section {
        padding: 16px;
    }

    .mobile-gauge-head h2 {
        font-size: 22px;
    }

    .mobile-gauge-chart {
        height: 250px;
    }
}


.home-industry-fear-greed-board {
  margin-top: 28px;
  padding: 24px;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 14px 40px rgba(148, 163, 184, 0.14);
}

.industry-board-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin-top: 16px;
}


.industry-board-favorite-tabs {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px;
  border: 1px solid #dbeafe;
  border-radius: 999px;
  background: #f0f9ff;
}

.industry-board-favorite-tab {
  border: 0;
  padding: 7px 13px;
  border-radius: 999px;
  background: transparent;
  color: #475569;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
}

.industry-board-favorite-tab.is-active {
  background: #fff;
  color: #0284c7;
  box-shadow: 0 1px 4px rgba(14, 116, 144, 0.18);
}

.industry-board-favorite-count {
  margin-left: 4px;
  color: #64748b;
  font-weight: 700;
}

.industry-board-star-col {
  width: 56px;
  text-align: center;
}

.industry-favorite-toggle {
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: #cbd5e1;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  transition: color 0.15s ease, background 0.15s ease;
}

.industry-favorite-toggle:hover {
  background: #fefce8;
  color: #eab308;
}

.industry-favorite-toggle.is-active {
  color: #eab308;
}
.industry-board-search {
  min-width: 240px;
  flex: 1;
  height: 40px;
  padding: 0 14px;
  border: 1px solid #dbeafe;
  border-radius: 12px;
  background: #f0f9ff;
  font-size: 14px;
  color: #0f172a;
  outline: none;
}

.industry-board-search:focus {
  border-color: #38bdf8;
  box-shadow: 0 0 0 3px rgba(56, 189, 248, 0.12);
}

.industry-board-table-wrap {
  margin-top: 16px;
  overflow-x: auto;
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  background: #fff;
}

.industry-board-table {
  width: 100%;
  min-width: 720px;
  border-collapse: collapse;
  font-size: 14px;
}

.industry-board-table th {
  padding: 12px 14px;
  text-align: left;
  background: #f1f5f9;
  color: #475569;
  font-weight: 600;
  white-space: nowrap;
}

.industry-board-table td {
  padding: 11px 14px;
  border-top: 1px solid #f1f5f9;
  color: #334155;
  white-space: nowrap;
}

.industry-board-table tbody tr {
  cursor: pointer;
  transition: background 0.15s ease;
}

.industry-board-table tbody tr:hover {
  background: #f0f9ff;
}

.industry-fear-greed-detail {
  margin-top: 16px;
  padding: 16px;
  border: 1px solid #dbeafe;
  border-radius: 16px;
  background: #fff;
}

.industry-fear-greed-detail-chart {
  width: 100%;
  height: 260px;
}

.industry-board-lock-note {
  margin: 12px 0 0;
  padding: 10px 12px;
  border: 1px dashed rgba(251, 146, 60, 0.42);
  border-radius: 12px;
  background: #fffaf5;
  color: #9a3412;
  font-size: 13px;
  font-weight: 600;
}

@media (max-width: 768px) {
  .home-industry-fear-greed-board {
    padding: 16px;
  }

.industry-board-search {
    min-width: 100%;
  }

  .industry-board-lock-note {
    font-size: 12px;
  }
}


.industry-status-chip {
  display: inline-block;
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
}

.industry-status-extreme-greed { background: #fef2f2; color: #b91c1c; }
.industry-status-greed { background: #fff7ed; color: #c2410c; }
.industry-status-neutral { background: #f5f3ff; color: #6d28d9; }
.industry-status-fear { background: #ecfeff; color: #0e7490; }
.industry-status-extreme-fear { background: #eff6ff; color: #1d4ed8; }
.industry-status-locked { background: #f1f5f9; color: #64748b; }

.stock-fear-greed-scale-label {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  border: 1px solid #fecaca;
  background: #fff1f2;
  color: #b91c1c;
  padding: 4px 10px;
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
}

.stock-fear-greed-toolbar {
  position: relative;
}

.stock-fear-greed-search-wrap {
  position: relative;
  flex: 1 1 220px;
  min-width: 0;
}

.stock-fear-greed-suggest {
  position: absolute;
  z-index: 30;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  max-height: 240px;
  overflow: auto;
  border: 1px solid #d8e2f0;
  border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 12px 30px rgba(22, 32, 51, 0.14);
}

.stock-fear-greed-suggest-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  width: 100%;
  border: 0;
  border-bottom: 1px solid #edf2f9;
  background: transparent;
  color: #162033;
  padding: 10px 14px;
  text-align: left;
  cursor: pointer;
}

.stock-fear-greed-suggest-item:hover,
.stock-fear-greed-suggest-item:focus {
  background: #f4f7fb;
}

.stock-fear-greed-suggest-main {
  display: flex;
  align-items: baseline;
  gap: 8px;
  min-width: 0;
}

.stock-fear-greed-suggest-main strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.stock-fear-greed-suggest-main small {
  flex: 0 0 auto;
  color: #64748b;
  font-size: 12px;
}

.stock-fear-greed-suggest-action {
  flex: 0 0 auto;
  padding: 4px 9px;
  border-radius: 999px;
  background: #e0f2fe;
  color: #0369a1;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
}

.stock-fear-greed-suggest-action.is-added {
  background: #f1f5f9;
  color: #64748b;
}

.stock-fear-greed-suggest-item[aria-busy="true"] {
  cursor: wait;
  opacity: 0.65;
}

/* ---------- 自选股恐贪：上限放宽到 500 后的长列表展示 ----------
   20 行时无需滚动，500 行必须限制高度：否则这一个区块会把首页下方
   其它内容推到两万多像素之外。容器内滚动 + 表头吸顶，页面高度不变。

   ⚠ 必须放在 .stock-fear-greed-suggest-empty 这条规则之前！
   该规则缺一个闭合大括号（历史遗留，见 HANDOFF 第 88 节），其后所有
   规则（含 2026-09-19 视觉焕肤层）都会被 CSS 解析器吞掉、不生效。 */

.stock-fear-greed-table-wrap {
    max-height: 60vh;
    overflow-y: auto;
    overscroll-behavior: contain;
}

.stock-fear-greed-table-wrap thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: #f1f5f9; /* 与线上生效的 .industry-board-table th 一致，避免吸顶时透出行内容 */
}

.stock-fear-greed-suggest-empty {
  padding: 14px;
  color: #667085;
  font-size: 13px;
  text-align: center;

/* ==========================================================================
   2026-09-19 视觉焕肤层（浅色精致金融风）
   仅追加覆盖，不改写既有规则。
   注意：tests 对 767/359/min-768 三个断点字面量及 display 隐藏声明
   有 rindex 位置断言，本层刻意绕开这些字面量，请勿在本层引入。
   ========================================================================== */

:root {
    --rf-ink: #0b1a33;
    --rf-ink-soft: #33415e;
    --rf-muted: #5d6c89;
    --rf-faint: #8a97b1;
    --rf-line: #e3e9f5;
    --rf-brand: #2f6bf0;
    --rf-brand-deep: #1e4fd8;
    --rf-indigo: #4f46e5;
    --rf-gold: #d97706;
    --rf-gold-deep: #b45309;
    --rf-card-shadow: 0 1px 2px rgba(11, 26, 51, 0.04), 0 16px 40px rgba(11, 26, 51, 0.06);
    --rf-card-shadow-hover: 0 2px 4px rgba(11, 26, 51, 0.05), 0 24px 56px rgba(11, 26, 51, 0.1);
}

/* ---------- 页面背景与全局质感 ---------- */

body {
    background:
        radial-gradient(1100px 480px at 8% -6%, rgba(47, 107, 240, 0.1), rgba(47, 107, 240, 0) 60%),
        radial-gradient(900px 420px at 96% -4%, rgba(79, 70, 229, 0.08), rgba(79, 70, 229, 0) 55%),
        linear-gradient(180deg, #edf1f9 0%, #f3f6fc 100%);
    color: var(--rf-ink);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

::selection {
    background: rgba(47, 107, 240, 0.18);
}

.hero-value,
.sentiment-value,
.intraday-card-value,
.hero-empty,
.industry-board-table td,
.index-board-summary,
.pay-price-stack strong {
    font-variant-numeric: tabular-nums;
    font-feature-settings: "tnum" 1;
}

/* ---------- 顶部导航（桌面单行玻璃导航） ---------- */

.site-header {
    background: linear-gradient(180deg, rgba(252, 253, 255, 0.94) 0%, rgba(246, 249, 255, 0.88) 100%);
    border-bottom: 1px solid rgba(203, 213, 235, 0.7);
    box-shadow: 0 6px 24px rgba(11, 26, 51, 0.05);
    backdrop-filter: blur(18px) saturate(1.4);
    -webkit-backdrop-filter: blur(18px) saturate(1.4);
}

.legacy-desktop-header .nav-wrap {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    min-height: 70px;
    padding: 0;
}

.legacy-desktop-header .brand {
    align-items: center;
    gap: 10px;
    padding: 0;
    font-size: 19px;
    letter-spacing: 0;
}

.legacy-desktop-header .brand::after {
    opacity: 0;
}

.brand-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 34px;
    height: 34px;
    border-radius: 11px;
    background: linear-gradient(145deg, #eef4ff 0%, #dfe9ff 100%);
    box-shadow: inset 0 0 0 1px rgba(47, 107, 240, 0.16), 0 3px 8px rgba(47, 107, 240, 0.14);
}

.brand-mark svg {
    width: 20px;
    height: 20px;
    display: block;
}

.legacy-desktop-header .nav-links {
    width: auto;
    flex-wrap: nowrap;
    gap: 2px;
}

.legacy-desktop-header .nav-links a {
    min-height: 36px;
    padding: 0 11px;
    border-radius: 10px;
    color: var(--rf-ink-soft);
    font-size: 13.5px;
}

.legacy-desktop-header .nav-links a:hover {
    color: var(--rf-brand-deep);
    background: rgba(47, 107, 240, 0.08);
    box-shadow: none;
    transform: none;
}

.legacy-desktop-header .nav-links a.is-active {
    color: var(--rf-brand-deep);
    background: rgba(47, 107, 240, 0.1);
}

.legacy-desktop-header .nav-links a[href="/app?official=1"] {
    border: 1px solid rgba(47, 107, 240, 0.32);
    background: rgba(255, 255, 255, 0.72);
    color: var(--rf-brand-deep);
}

.legacy-desktop-header .nav-links a[href^="https://wzyp.cn"] {
    margin-left: 4px;
    padding: 0 16px;
    border-radius: 999px;
    background: linear-gradient(135deg, #f6a821 0%, #d97706 100%);
    color: #fff;
    box-shadow: 0 6px 16px rgba(217, 119, 6, 0.3);
}

.legacy-desktop-header .nav-links a[href^="https://wzyp.cn"]:hover {
    background: linear-gradient(135deg, #f59e0b 0%, #c2620a 100%);
    color: #fff;
    box-shadow: 0 10px 22px rgba(217, 119, 6, 0.38);
    transform: translateY(-1px);
}

@media (max-width: 1279px) {
    .legacy-desktop-header .brand {
        font-size: 16px;
    }

    .legacy-desktop-header .brand-mark {
        width: 30px;
        height: 30px;
    }

    .legacy-desktop-header .nav-links a {
        padding: 0 8px;
        font-size: 12.5px;
    }
}

/* ---------- 按钮 ---------- */

.btn {
    border-radius: 12px;
    letter-spacing: 0.01em;
}

.btn-primary {
    background: linear-gradient(135deg, #3d78f5 0%, #2f5fe8 55%, #4f46e5 100%);
    box-shadow: 0 10px 26px rgba(47, 107, 240, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.22);
}

.btn-primary:hover {
    box-shadow: 0 14px 32px rgba(47, 107, 240, 0.38), inset 0 1px 0 rgba(255, 255, 255, 0.22);
}

.btn-secondary {
    background: rgba(255, 255, 255, 0.88);
    border: 1px solid rgba(47, 107, 240, 0.24);
    color: var(--rf-brand-deep);
}

.btn-secondary:hover {
    border-color: rgba(47, 107, 240, 0.45);
    box-shadow: 0 8px 20px rgba(47, 107, 240, 0.12);
}

/* ---------- 卡片与版块 ---------- */

.card {
    border: 1px solid rgba(227, 233, 245, 0.95);
    border-radius: 20px;
    box-shadow: var(--rf-card-shadow);
}

.section-header h2,
.panel-heading h2,
.info-card h3 {
    color: var(--rf-ink);
    letter-spacing: -0.01em;
}

.section-header h2 {
    font-size: 21px;
}

.section-header p {
    color: var(--rf-muted);
    font-size: 13.5px;
}

.home-index-fear-greed-board {
    margin-top: 28px;
    padding: 24px;
    border: 1px solid rgba(227, 233, 245, 0.95);
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: var(--rf-card-shadow);
}

.home-industry-fear-greed-board {
    border: 1px solid rgba(227, 233, 245, 0.95);
    background: rgba(255, 255, 255, 0.94);
    box-shadow: var(--rf-card-shadow);
}

/* ---------- 首屏 Hero ---------- */

.home-classic-hero {
    background: linear-gradient(150deg, #ffffff 0%, #f5f8ff 52%, #edf2ff 100%);
}

.home-classic-hero .eyebrow,
.home-classic-trend .eyebrow {
    color: var(--rf-brand-deep);
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: 0.14em;
}

.home-classic-title {
    font-size: clamp(28px, 3vw, 38px);
    line-height: 1.28;
    letter-spacing: -0.02em;
    font-weight: 800;
    color: var(--rf-ink);
    text-wrap: balance;
}

.home-classic-hero .hero-value {
    font-size: 88px;
    letter-spacing: -0.03em;
    background: linear-gradient(135deg, #0b1a33 18%, #2f5fe8 82%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.status-chip {
    gap: 7px;
    padding: 7px 13px;
    font-size: 13px;
    letter-spacing: 0.02em;
    box-shadow: inset 0 0 0 1px rgba(11, 26, 51, 0.05);
}

.status-chip::before {
    content: "";
    flex: 0 0 auto;
    width: 7px;
    height: 7px;
    border-radius: 999px;
    background: currentColor;
}

.panel-badge {
    background: rgba(47, 107, 240, 0.09);
    color: var(--rf-brand-deep);
    box-shadow: inset 0 0 0 1px rgba(47, 107, 240, 0.14);
    font-size: 12.5px;
    letter-spacing: 0.03em;
}

.panel-badge-vip {
    background: linear-gradient(135deg, #fdf0d5 0%, #fce8c3 100%);
    color: var(--rf-gold-deep);
    box-shadow: inset 0 0 0 1px rgba(217, 119, 6, 0.22);
}

.vip-lock-panel {
    border: 1px solid rgba(217, 119, 6, 0.24);
    border-radius: 16px;
    background: linear-gradient(150deg, #fffaf0 0%, #fdf3e0 100%);
    box-shadow: 0 10px 28px rgba(217, 119, 6, 0.08);
}

.vip-chart-lock {
    border-radius: 16px;
}

/* ---------- 上午收盘横幅 ---------- */

.intraday-banner-inner {
    border: 1px solid rgba(227, 233, 245, 0.95);
    border-radius: 20px;
    background: linear-gradient(150deg, #ffffff 0%, #f6f9ff 58%, #fdf6e7 135%);
    box-shadow: var(--rf-card-shadow);
}

.intraday-banner-badge {
    background: linear-gradient(135deg, #f6a821 0%, #d97706 100%);
    box-shadow: 0 4px 10px rgba(217, 119, 6, 0.3);
}

.intraday-banner-head h2 {
    color: var(--rf-ink);
    letter-spacing: -0.01em;
}

.intraday-lock-btn {
    border-radius: 12px;
    background: linear-gradient(135deg, #3d78f5 0%, #2f5fe8 55%, #4f46e5 100%);
    box-shadow: 0 10px 26px rgba(47, 107, 240, 0.3);
}

/* ---------- 指数看板筛选与卡片 ---------- */

.index-board-filters {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 4px;
    padding: 4px;
    border: 1px solid var(--rf-line);
    border-radius: 999px;
    background: #f2f6fd;
}

.index-board-filter {
    border: 0;
    border-radius: 999px;
    background: transparent;
    min-height: 34px;
    padding: 0 14px;
    color: var(--rf-muted);
    font-weight: 600;
    transition: color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}

.index-board-filter:hover {
    color: var(--rf-brand-deep);
}

.index-board-filter.is-active {
    border: 0;
    background: #fff;
    color: var(--rf-brand-deep);
    box-shadow: 0 2px 8px rgba(11, 26, 51, 0.1);
}

.index-board-toggle {
    min-height: 40px;
    padding: 0 18px;
    border: 1px solid rgba(47, 107, 240, 0.28);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.88);
    color: var(--rf-brand-deep);
    transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.index-board-toggle:hover {
    background: rgba(47, 107, 240, 0.07);
    border-color: rgba(47, 107, 240, 0.45);
    box-shadow: 0 6px 16px rgba(47, 107, 240, 0.12);
}

.index-fear-greed-card {
    border: 1px solid rgba(227, 233, 245, 0.95);
    border-radius: 16px;
    box-shadow: 0 1px 2px rgba(11, 26, 51, 0.04), 0 10px 26px rgba(11, 26, 51, 0.05);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.index-fear-greed-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--rf-card-shadow-hover);
}

/* ---------- 数据表格 ---------- */

.industry-board-table-wrap {
    border: 1px solid var(--rf-line);
    border-radius: 16px;
    box-shadow: 0 1px 2px rgba(11, 26, 51, 0.03);
}

.industry-board-table th {
    padding: 11px 14px;
    background: #f6f9fe;
    border-bottom: 1px solid var(--rf-line);
    color: var(--rf-muted);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.05em;
}

.industry-board-table td {
    padding: 12px 14px;
    border-top: 1px solid #eef2f9;
    color: var(--rf-ink-soft);
}

.industry-board-table tbody tr:hover {
    background: #f6f9ff;
}

.industry-status-chip {
    padding: 4px 10px;
    letter-spacing: 0.02em;
    box-shadow: inset 0 0 0 1px rgba(11, 26, 51, 0.05);
}

.industry-favorite-toggle:hover {
    background: #fef6d8;
    color: var(--rf-gold);
}

.industry-favorite-toggle.is-active {
    color: var(--rf-gold);
    text-shadow: 0 1px 6px rgba(217, 119, 6, 0.35);
}

.industry-board-search {
    border: 1px solid var(--rf-line);
    border-radius: 12px;
    background: #f7fafd;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.industry-board-search:focus {
    background: #fff;
    border-color: rgba(47, 107, 240, 0.5);
    box-shadow: 0 0 0 4px rgba(47, 107, 240, 0.12);
}

.industry-board-favorite-tabs {
    border: 1px solid var(--rf-line);
    background: #f2f6fd;
}

.industry-board-favorite-tab.is-active {
    background: #fff;
    color: var(--rf-brand-deep);
    box-shadow: 0 2px 8px rgba(11, 26, 51, 0.1);
}

/* ---------- 区间说明 ---------- */

.home-classic-legend-list li {
    border-radius: 12px;
    box-shadow: inset 0 0 0 1px rgba(11, 26, 51, 0.04);
}

/* ---------- 公告弹窗 ---------- */

.notice-modal-backdrop {
    background: rgba(9, 17, 34, 0.5);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}

.notice-modal-card {
    border: 1px solid rgba(227, 233, 245, 0.9);
    border-radius: 24px;
    box-shadow: 0 36px 96px rgba(9, 17, 34, 0.32);
}

.notice-modal-tab-active {
    border-radius: 999px;
    background: rgba(47, 107, 240, 0.1);
    color: var(--rf-brand-deep);
}

/* ---------- 表单 ---------- */

.input {
    border: 1px solid var(--rf-line);
    background: #f7fafd;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.input:focus {
    background: #fff;
    border-color: rgba(47, 107, 240, 0.5);
    box-shadow: 0 0 0 4px rgba(47, 107, 240, 0.12);
    outline: none;
}

/* ---------- 页脚 ---------- */

.site-footer {
    margin-top: 64px;
    padding: 36px 0 44px;
    background: linear-gradient(180deg, #0d1c36 0%, #0a1628 100%);
    border-top: 1px solid rgba(255, 255, 255, 0.06);
    color: #93a3c2;
    text-align: center;
}

.site-footer-copy {
    font-size: 13px;
    line-height: 1.9;
}

.site-footer-contact {
    color: #c8d5ee;
    font-weight: 700;
    letter-spacing: 0.02em;
}

/* ---------- 移动端质感（避开 767/359/768 断点断言） ---------- */

@media (max-width: 1023px) {
    .official-mobile-header {
        background: linear-gradient(180deg, rgba(252, 253, 255, 0.94) 0%, rgba(246, 249, 255, 0.88) 100%);
    }

    .official-mobile-brand {
        align-items: center;
        gap: 8px;
    }

    .official-mobile-direct-nav-link {
        font-weight: 600;
    }

    .official-mobile-direct-nav-link.is-active {
        color: var(--rf-brand-deep);
    }

    .sentiment-value {
        letter-spacing: -0.03em;
        background: linear-gradient(135deg, #0b1a33 18%, #2f5fe8 82%);
        -webkit-background-clip: text;
        background-clip: text;
        color: transparent;
    }

    .sentiment-tabs {
        border: 1px solid var(--rf-line);
        background: #eef3fb;
    }

    .sentiment-tabs button[aria-selected="true"] {
        color: var(--rf-brand-deep);
        box-shadow: 0 2px 8px rgba(11, 26, 51, 0.12);
    }

    .today-market-head h1,
    .home-tool-links h2,
    .home-announcement h2,
    .home-methodology h2 {
        color: var(--rf-ink);
        letter-spacing: -0.01em;
    }
}

@media (max-width: 640px) {
    .home-index-fear-greed-board {
        padding: 16px;
        border-radius: 20px;
    }

    .index-board-filters {
        width: 100%;
    }

    .home-classic-title {
        font-size: 26px;
    }

    .home-classic-hero .hero-value {
        font-size: 64px;
    }

    .site-footer {
        margin-top: 44px;
        padding: 28px 0 36px;
    }
}

/* 触控目标：.text-link 实测仅 21px 高，低于 WCAG 2.2 SC 2.5.8 的 24px。
   桌面与移动端都要满足，因此放在全局而非断点内。 */

.text-link {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
}
