* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    -webkit-tap-highlight-color: transparent;
}

:root {
    --primary-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    --primary-color: #667eea;
    --primary-light: rgba(102, 126, 234, 0.1);
    --primary-medium: rgba(102, 126, 234, 0.3);
    --primary-dark: rgba(102, 126, 234, 0.5);
    --primary-shadow: rgba(102, 126, 234, 0.4);
    
    --success-color: #d06b87;
    --danger-color: #ef4444;
    --warning-color: #f59e0b;
    --neutral-color: #6366f1;
    
    --bg-color: #0a0e17;
    --bg-gradient: linear-gradient(180deg, #0a0e17 0%, #0f172a 100%);
    --card-bg: rgba(30, 41, 59, 0.7);
    --card-border: rgba(255, 255, 255, 0.06);
    --text-primary: #f8fafc;
    --text-secondary: #94a3b8;
    --text-muted: rgba(255, 255, 255, 0.7);
    
    --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.2);
    --shadow-md: 0 4px 16px rgba(0, 0, 0, 0.3);
    --shadow-lg: 0 8px 32px rgba(0, 0, 0, 0.4);
    --shadow-xl: 0 12px 48px rgba(0, 0, 0, 0.5);
}

html {
    font-size: 14px;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    background: var(--primary-gradient);
    color: var(--text-primary);
    min-height: 100vh;
    line-height: 1.6;
    overflow-x: hidden;
    transition: background 0.3s ease;
}

body::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: 
        radial-gradient(circle at 20% 80%, var(--primary-light) 0%, transparent 50%),
        radial-gradient(circle at 80% 20%, rgba(118, 75, 162, 0.08) 0%, transparent 50%),
        radial-gradient(circle at 50% 50%, var(--primary-light) 0%, transparent 70%);
    pointer-events: none;
    z-index: 0;
    transition: background 0.3s ease;
}

body.theme-blue {
    --primary-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    --primary-color: #667eea;
    --primary-light: rgba(102, 126, 234, 0.1);
    --primary-medium: rgba(102, 126, 234, 0.3);
    --primary-dark: rgba(102, 126, 234, 0.5);
    --primary-shadow: rgba(102, 126, 234, 0.4);
    --bg-dark: #0a0e17;
    --bg-primary: #0f172a;
    --fx13-page-bg: linear-gradient(135deg, #4a69bd 0%, #6a5acd 48%, #7b5fd3 100%);
    --fx13-topbar: rgba(30, 40, 80, 0.88);
}

body.theme-blue::before {
    background: 
        radial-gradient(circle at 20% 80%, rgba(102, 126, 234, 0.08) 0%, transparent 50%),
        radial-gradient(circle at 80% 20%, rgba(118, 75, 162, 0.08) 0%, transparent 50%),
        radial-gradient(circle at 50% 50%, rgba(102, 126, 234, 0.04) 0%, transparent 70%);
}


body.theme-orange {
    --primary-gradient: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
    --primary-color: #f59e0b;
    --primary-light: rgba(245, 158, 11, 0.1);
    --primary-medium: rgba(245, 158, 11, 0.3);
    --primary-dark: rgba(245, 158, 11, 0.5);
    --primary-shadow: rgba(245, 158, 11, 0.4);
    --bg-dark: #0a0e17;
    --bg-primary: #0f172a;
    --fx13-page-bg: linear-gradient(135deg, #d97706 0%, #f59e0b 48%, #fbbf24 100%);
    --fx13-topbar: rgba(60, 50, 20, 0.88);
}

body.theme-orange::before {
    background: 
        radial-gradient(circle at 20% 80%, rgba(245, 158, 11, 0.08) 0%, transparent 50%),
        radial-gradient(circle at 80% 20%, rgba(217, 119, 6, 0.08) 0%, transparent 50%),
        radial-gradient(circle at 50% 50%, rgba(245, 158, 11, 0.04) 0%, transparent 70%);
}

body.theme-purple {
    --primary-gradient: linear-gradient(135deg, #8b5cf6 0%, #7c3aed 100%);
    --primary-color: #8b5cf6;
    --primary-light: rgba(139, 92, 246, 0.1);
    --primary-medium: rgba(139, 92, 246, 0.3);
    --primary-dark: rgba(139, 92, 246, 0.5);
    --primary-shadow: rgba(139, 92, 246, 0.4);
    --bg-dark: #0a0e17;
    --bg-primary: #0f172a;
    --fx13-page-bg: linear-gradient(135deg, #7c3aed 0%, #8b5cf6 48%, #a78bfa 100%);
    --fx13-topbar: rgba(50, 30, 80, 0.88);
}

body.theme-purple::before {
    background: 
        radial-gradient(circle at 20% 80%, rgba(139, 92, 246, 0.08) 0%, transparent 50%),
        radial-gradient(circle at 80% 20%, rgba(124, 58, 237, 0.08) 0%, transparent 50%),
        radial-gradient(circle at 50% 50%, rgba(139, 92, 246, 0.04) 0%, transparent 70%);
}

body.theme-cyan {
    --primary-gradient: linear-gradient(135deg, #06b6d4 0%, #0891b2 100%);
    --primary-color: #06b6d4;
    --primary-light: rgba(6, 182, 212, 0.1);
    --primary-medium: rgba(6, 182, 212, 0.3);
    --primary-dark: rgba(6, 182, 212, 0.5);
    --primary-shadow: rgba(6, 182, 212, 0.4);
    --bg-dark: #0a0e17;
    --bg-primary: #0f172a;
    --fx13-page-bg: linear-gradient(135deg, #0891b2 0%, #06b6d4 48%, #22d3ee 100%);
    --fx13-topbar: rgba(20, 50, 60, 0.88);
}

body.theme-cyan::before {
    background: 
        radial-gradient(circle at 20% 80%, rgba(6, 182, 212, 0.08) 0%, transparent 50%),
        radial-gradient(circle at 80% 20%, rgba(8, 145, 178, 0.08) 0%, transparent 50%),
        radial-gradient(circle at 50% 50%, rgba(6, 182, 212, 0.04) 0%, transparent 70%);
}

body.day-theme {
    --bg-color: #ffffff;
    --bg-gradient: linear-gradient(180deg, #f8fafc 0%, #e2e8f0 100%);
    --card-bg: rgba(255, 255, 255, 0.9);
    --card-border: rgba(0, 0, 0, 0.08);
    --text-primary: #1e293b;
    --text-secondary: #64748b;
    --text-muted: rgba(0, 0, 0, 0.6);
    --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.06);
    --shadow-md: 0 4px 16px rgba(0, 0, 0, 0.08);
    --shadow-lg: 0 8px 32px rgba(0, 0, 0, 0.1);
    --shadow-xl: 0 12px 48px rgba(0, 0, 0, 0.12);
    --primary-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    --primary-color: #667eea;
    --primary-light: rgba(102, 126, 234, 0.08);
    --primary-medium: rgba(102, 126, 234, 0.2);
    --primary-dark: rgba(102, 126, 234, 0.4);
    --primary-shadow: rgba(102, 126, 234, 0.3);
}

body.day-theme::before {
    background: 
        radial-gradient(circle at 20% 80%, rgba(102, 126, 234, 0.04) 0%, transparent 50%),
        radial-gradient(circle at 80% 20%, rgba(118, 75, 162, 0.04) 0%, transparent 50%),
        radial-gradient(circle at 50% 50%, rgba(102, 126, 234, 0.02) 0%, transparent 70%);
}

body.day-theme.theme-blue {
    --primary-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    --primary-color: #667eea;
    --primary-light: rgba(102, 126, 234, 0.08);
    --primary-medium: rgba(102, 126, 234, 0.2);
    --primary-dark: rgba(102, 126, 234, 0.4);
    --primary-shadow: rgba(102, 126, 234, 0.3);
}


body.day-theme.theme-orange {
    --primary-gradient: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
    --primary-color: #f59e0b;
    --primary-light: rgba(245, 158, 11, 0.08);
    --primary-medium: rgba(245, 158, 11, 0.2);
    --primary-dark: rgba(245, 158, 11, 0.4);
    --primary-shadow: rgba(245, 158, 11, 0.3);
}

body.day-theme.theme-purple {
    --primary-gradient: linear-gradient(135deg, #8b5cf6 0%, #7c3aed 100%);
    --primary-color: #8b5cf6;
    --primary-light: rgba(139, 92, 246, 0.08);
    --primary-medium: rgba(139, 92, 246, 0.2);
    --primary-dark: rgba(139, 92, 246, 0.4);
    --primary-shadow: rgba(139, 92, 246, 0.3);
}

body.day-theme.theme-cyan {
    --primary-gradient: linear-gradient(135deg, #06b6d4 0%, #0891b2 100%);
    --primary-color: #06b6d4;
    --primary-light: rgba(6, 182, 212, 0.08);
    --primary-medium: rgba(6, 182, 212, 0.2);
    --primary-dark: rgba(6, 182, 212, 0.4);
    --primary-shadow: rgba(6, 182, 212, 0.3);
}

body.day-theme .header {
    color: white;
}

body.day-theme .header-content h1 {
    color: white;
}

body.day-theme .subtitle {
    color: rgba(255, 255, 255, 0.85);
}

body.day-theme .theme-btn {
    background: rgba(255, 255, 255, 0.15);
    border-color: rgba(255, 255, 255, 0.2);
    color: white;
}

body.day-theme .theme-btn:hover {
    background: rgba(255, 255, 255, 0.25);
}

body.day-theme .search-box {
    background: rgba(255, 255, 255, 0.95);
    border-color: rgba(0, 0, 0, 0.1);
}

body.day-theme .search-box:focus-within {
    border-color: var(--primary-color);
}

body.day-theme #stockInput {
    color: var(--text-primary);
}

body.day-theme #stockInput::placeholder {
    color: var(--text-secondary);
}

body.day-theme .suggestions {
    background: rgba(255, 255, 255, 0.98);
    border-color: rgba(0, 0, 0, 0.1);
}

body.day-theme .suggestions div {
    color: #1e293b;
    border-bottom-color: rgba(0, 0, 0, 0.06);
}

body.day-theme .suggestions div:hover {
    background: rgba(0, 0, 0, 0.04);
}

body.day-theme .suggestions .code {
    background: rgba(0, 0, 0, 0.05);
    color: #64748b;
}

body.day-theme .header .hero-copy h2 {
    color: white;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
}

body.day-theme .header .quick-picks button {
    background: rgba(255, 255, 255, 0.15);
    border-color: rgba(255, 255, 255, 0.2);
    color: white;
}

body.day-theme .header .quick-picks button:hover {
    background: rgba(255, 255, 255, 0.25);
    border-color: rgba(255, 255, 255, 0.3);
}

body.day-theme .header h1,
body.day-theme .header .subtitle,
body.day-theme .header .theme-btn {
    color: white;
}

body.day-theme .theme-menu {
    background: rgba(255, 255, 255, 0.98);
    border-color: rgba(0, 0, 0, 0.1);
}

body.day-theme .theme-option {
    color: var(--text-primary);
}

body.day-theme .theme-option:hover {
    background: rgba(0, 0, 0, 0.04);
}

body.day-theme .theme-option.active {
    background: var(--primary-light);
}

body.day-theme .theme-option.active::before {
    color: var(--primary-color);
}

body.day-theme .theme-option span {
    color: var(--text-primary);
}

body.day-theme .back-btn {
    background: rgba(0, 0, 0, 0.06);
    border-color: rgba(0, 0, 0, 0.1);
    color: var(--text-primary);
}

body.day-theme .back-btn:hover {
    background: rgba(0, 0, 0, 0.1);
}

body.day-theme .stock-info {
    background: rgba(255, 255, 255, 0.95);
    border-color: rgba(0, 0, 0, 0.08);
}

body.day-theme .summary-card {
    background: rgba(255, 255, 255, 0.95);
    border-color: rgba(0, 0, 0, 0.08);
}

body.day-theme .analysis-section {
    background: rgba(255, 255, 255, 0.95);
    border-color: rgba(0, 0, 0, 0.08);
}

body.day-theme .detail-section {
    background: rgba(255, 255, 255, 0.95);
    border-color: rgba(0, 0, 0, 0.08);
}

body.day-theme .metric-card {
    background: rgba(0, 0, 0, 0.02);
    border-color: rgba(0, 0, 0, 0.06);
}

body.day-theme .metric-card:hover {
    background: rgba(0, 0, 0, 0.04);
}

body.day-theme .section-tabs {
    background: rgba(0, 0, 0, 0.04);
}

body.day-theme .tab-btn {
    color: var(--text-secondary);
}

body.day-theme .tab-btn.active {
    color: white;
}

body.day-theme .analysis-text {
    background: rgba(0, 0, 0, 0.02);
}

body.day-theme .guide-content {
    background: rgba(0, 0, 0, 0.03);
    border-color: rgba(0, 0, 0, 0.06);
}

body.day-theme .score-rules {
    background: rgba(0, 0, 0, 0.02);
    border-color: rgba(0, 0, 0, 0.06);
}

body.day-theme .report-item {
    background: rgba(0, 0, 0, 0.02);
    border-color: rgba(0, 0, 0, 0.06);
}

body.day-theme .report-item:hover {
    background: rgba(0, 0, 0, 0.04);
}

body.day-theme .chart-container {
    background: rgba(0, 0, 0, 0.02);
    border-color: rgba(0, 0, 0, 0.06);
}

body.day-theme .index-card {
    background: rgba(0, 0, 0, 0.02);
    border-color: rgba(0, 0, 0, 0.06);
}

body.day-theme .index-card:hover {
    background: rgba(0, 0, 0, 0.04);
}

body.day-theme .hot-item {
    background: rgba(0, 0, 0, 0.02);
    border-color: rgba(0, 0, 0, 0.06);
}

body.day-theme .hot-item:hover {
    background: var(--primary-light);
}

body.day-theme .feature-card {
    background: rgba(0, 0, 0, 0.02);
    border-color: rgba(0, 0, 0, 0.06);
}

body.day-theme .feature-card:hover {
    background: rgba(0, 0, 0, 0.04);
}

.header {
    background: var(--primary-gradient);
    padding: 24px 16px 40px;
    text-align: center;
    position: relative;
    transition: background 0.3s ease;
    height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.header::after {
    content: '';
    position: absolute;
    bottom: -60%;
    left: -30%;
    width: 160%;
    height: 120%;
    background: radial-gradient(ellipse at center, rgba(255,255,255,0.08) 0%, transparent 70%);
}

.header-content {
    position: absolute;
    top: 20px;
    left: 0;
    right: 0;
    z-index: 1;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    width: 100%;
    max-width: 1200px;
    padding: 0 24px;
    margin: 0 auto;
}

.header-left {
    flex: 1;
    text-align: center;
}

.header.has-result {
    min-height: auto;
    padding: 12px 14px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    position: sticky;
    top: 0;
    z-index: 80;
}

.header-left {
    flex: 1;
    text-align: left;
}

.header-content h1 {
    font-size: 22px;
    font-weight: 700;
    margin-bottom: 6px;
    display: flex;
    align-items: center;
    gap: 10px;
    letter-spacing: 0.5px;
}

.header-content h1 i {
    font-size: 24px;
}

.subtitle {
    font-size: 11px;
    color: var(--text-muted);
    letter-spacing: 1.5px;
}

.theme-btn {
    width: 40px;
    height: 40px;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 12px;
    color: white;
    font-size: 16px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
    backdrop-filter: blur(5px);
    flex-shrink: 0;
}

.theme-btn:hover {
    background: rgba(255, 255, 255, 0.2);
    transform: scale(1.05);
}

.theme-btn:active {
    transform: scale(0.95);
}

.theme-menu {
    position: fixed;
    top: 80px;
    right: 16px;
    background: rgba(30, 41, 59, 0.95);
    border: 1px solid var(--card-border);
    border-radius: 16px;
    padding: 10px;
    display: none;
    flex-direction: column;
    gap: 8px;
    min-width: 150px;
    box-shadow: var(--shadow-xl);
    backdrop-filter: blur(20px);
    z-index: 1000;
    animation: fadeIn 0.2s ease;
}

.theme-menu.show {
    display: flex;
}

.theme-option {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    background: transparent;
    border: none;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.2s ease;
    text-align: left;
    position: relative;
}

.theme-option:hover {
    background: rgba(255, 255, 255, 0.06);
    transform: translateX(4px);
}

.theme-option.active {
    background: var(--primary-light);
}

.theme-option.active::before {
    content: '✓';
    position: absolute;
    right: 16px;
    color: var(--primary-color);
    font-weight: 700;
}

.theme-option span {
    color: var(--text-primary);
    font-size: 14px;
    font-weight: 500;
}

.theme-divider {
    padding: 8px 16px;
    font-size: 11px;
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin: 4px 0;
}

.theme-dot {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, 0.2);
    flex-shrink: 0;
    transition: transform 0.2s ease;
}

.theme-option:hover .theme-dot {
    transform: scale(1.1);
}

.main {
    padding: 20px 16px;
    max-width: 600px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
    transition: all 0.3s ease;
}

.search-section {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: 620px;
    margin-top: 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.hero-copy {
    margin-bottom: 24px;
    text-align: center;
}

.hero-copy h2 {
    font-size: 24px;
    font-weight: 600;
    color: white;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
    letter-spacing: 1px;
}

.quick-picks {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 24px;
}

.quick-picks button {
    padding: 8px 16px;
    background: rgba(255, 255, 255, 0.15);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 20px;
    color: white;
    font-size: 13px;
    cursor: pointer;
    transition: all 0.2s ease;
    backdrop-filter: blur(5px);
}

.quick-picks button:hover {
    background: rgba(255, 255, 255, 0.25);
    border-color: rgba(255, 255, 255, 0.3);
    transform: translateY(-1px);
}

.search-box {
    display: flex;
    gap: 8px;
    background: var(--card-bg);
    border-radius: 24px;
    padding: 6px;
    box-shadow: var(--shadow-lg);
    border: 1px solid var(--card-border);
    backdrop-filter: blur(10px);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    width: 100%;
}

.search-box:focus-within {
    border-color: var(--primary-dark);
    box-shadow: 0 0 0 4px var(--primary-light), var(--shadow-xl);
    transform: translateY(-2px);
}

#stockInput {
    flex: 1;
    padding: 14px 20px;
    border: none;
    background: transparent;
    color: var(--text-primary);
    font-size: 15px;
    outline: none;
    min-width: 0;
}

#stockInput::placeholder {
    color: var(--text-secondary);
    opacity: 1;
}

.search-btn {
    padding: 14px 24px;
    background: var(--primary-gradient);
    border: none;
    border-radius: 20px;
    color: white;
    font-size: 14px;
    font-weight: 600;
    flex-shrink: 0;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 4px 16px var(--primary-shadow);
}

.search-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px var(--primary-shadow);
}

.search-btn:active {
    transform: scale(0.96);
}

.suggestions {
    margin-top: 12px;
    background: var(--card-bg);
    border-radius: 20px;
    box-shadow: var(--shadow-xl);
    border: 1px solid var(--card-border);
    overflow: hidden;
    display: none;
    backdrop-filter: blur(10px);
    max-height: 400px;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--primary-medium) transparent;
    width: 100%;
}

.suggestions div {
    padding: 14px 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    transition: background 0.2s ease;
    border-bottom: 1px solid var(--card-border);
}

.suggestions div:last-child {
    border-bottom: none;
}

.suggestions div:hover {
    background: rgba(255, 255, 255, 0.06);
}

.suggestions div:active {
    background: rgba(255, 255, 255, 0.1);
}

.suggestions .code {
    color: var(--text-secondary);
    font-size: 12px;
    background: rgba(255, 255, 255, 0.05);
    padding: 5px 12px;
    border-radius: 10px;
    font-family: 'SF Mono', Monaco, 'Courier New', monospace;
}

.suggestions .more-tip {
    padding: 14px;
    text-align: center;
    color: var(--text-secondary);
    font-size: 12px;
    background: var(--primary-light);
    cursor: default;
}

.suggestions::-webkit-scrollbar {
    width: 5px;
}

.suggestions::-webkit-scrollbar-track {
    background: transparent;
}

.suggestions::-webkit-scrollbar-thumb {
    background: var(--primary-medium);
    border-radius: 3px;
}

.welcome-container {
    display: block;
    animation: fadeIn 0.4s ease;
}

.welcome-card {
    text-align: center;
    padding: 40px 24px;
    background: var(--card-bg);
    border-radius: 28px;
    border: 1px solid var(--card-border);
    box-shadow: var(--shadow-xl);
    margin-bottom: 24px;
    backdrop-filter: blur(10px);
}

.welcome-icon {
    width: 80px;
    height: 80px;
    margin: 0 auto 20px;
    background: var(--primary-gradient);
    border-radius: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 36px;
    box-shadow: 0 8px 24px var(--primary-shadow);
}

.welcome-card h2 {
    font-size: 24px;
    font-weight: 700;
    margin-bottom: 10px;
    letter-spacing: 1px;
}

.welcome-card p {
    font-size: 15px;
    color: var(--text-secondary);
}

.market-overview,
.hot-stocks,
.features {
    background: var(--card-bg);
    border-radius: 24px;
    padding: 24px;
    margin-bottom: 20px;
    border: 1px solid var(--card-border);
    box-shadow: var(--shadow-xl);
    backdrop-filter: blur(10px);
}

.market-overview h3,
.hot-stocks h3,
.features h3 {
    font-size: 17px;
    font-weight: 600;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--primary-color);
}

.index-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
}

.index-card {
    background: rgba(255, 255, 255, 0.02);
    border-radius: 16px;
    padding: 16px;
    border: 1px solid var(--card-border);
    display: flex;
    align-items: center;
    gap: 12px;
    transition: all 0.3s ease;
}

.index-card:hover {
    background: rgba(255, 255, 255, 0.04);
    transform: translateY(-2px);
}

.index-icon {
    width: 40px;
    height: 40px;
    background: rgba(255, 255, 255, 0.06);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    flex-shrink: 0;
}

.index-info {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.index-name {
    font-size: 12px;
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.index-value {
    font-size: 18px;
    font-weight: 700;
    font-family: 'SF Mono', Monaco, 'Courier New', monospace;
}

.index-change {
    font-size: 12px;
    font-weight: 600;
    font-family: 'SF Mono', Monaco, 'Courier New', monospace;
}

.index-change.positive {
    color: var(--success-color);
}

.index-change.negative {
    color: var(--danger-color);
}

.hot-list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}

.hot-item {
    background: rgba(255, 255, 255, 0.02);
    border-radius: 14px;
    padding: 16px 12px;
    border: 1px solid var(--card-border);
    text-align: center;
    cursor: pointer;
    transition: all 0.3s ease;
}

.hot-item:hover {
    background: var(--primary-light);
    border-color: var(--primary-dark);
    transform: translateY(-2px);
}

.hot-item:active {
    transform: scale(0.96);
}

.hot-name {
    font-size: 13px;
    font-weight: 600;
    margin-bottom: 4px;
}

.hot-code {
    font-size: 11px;
    color: var(--text-secondary);
    font-family: 'SF Mono', Monaco, 'Courier New', monospace;
}

.feature-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
}

.feature-card {
    background: rgba(255, 255, 255, 0.02);
    border-radius: 16px;
    padding: 20px;
    border: 1px solid var(--card-border);
    text-align: center;
    transition: all 0.3s ease;
}

.feature-card:hover {
    background: rgba(255, 255, 255, 0.04);
    transform: translateY(-2px);
    border-color: var(--primary-dark);
}

.feature-icon {
    width: 48px;
    height: 48px;
    margin: 0 auto 14px;
    background: var(--primary-gradient);
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    box-shadow: 0 4px 12px var(--primary-shadow);
}

.feature-title {
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 6px;
}

.feature-desc {
    font-size: 12px;
    color: var(--text-secondary);
    line-height: 1.5;
}

.loading {
    display: none;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 100px 20px;
    gap: 20px;
}

.loading i {
    font-size: 56px;
    color: var(--primary-color);
    animation: spin 1s linear infinite;
}

@keyframes spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

.loading p {
    color: var(--text-secondary);
    font-size: 15px;
}

.result-container {
    display: none;
    animation: fadeIn 0.4s ease;
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}

.stock-info {
    background: var(--card-bg);
    border-radius: 28px;
    padding: 28px;
    margin-bottom: 20px;
    box-shadow: var(--shadow-xl);
    border: 1px solid var(--card-border);
    backdrop-filter: blur(10px);
    position: relative;
    overflow: hidden;
}

.back-btn {
    position: absolute;
    top: 20px;
    left: 20px;
    padding: 10px 20px;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 14px;
    color: var(--text-primary);
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
    transition: all 0.3s ease;
    backdrop-filter: blur(10px);
    z-index: 10;
}

.back-btn:hover {
    background: rgba(255, 255, 255, 0.15);
    transform: translateX(-2px);
}

.back-btn:active {
    transform: scale(0.96);
}

.stock-info::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: var(--primary-gradient);
}

.stock-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
}

.stock-name {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.stock-name span:first-child {
    font-size: 26px;
    font-weight: 700;
    letter-spacing: 1px;
}

.stock-name .code {
    font-size: 13px;
    color: var(--text-secondary);
    background: rgba(255, 255, 255, 0.06);
    padding: 5px 14px;
    border-radius: 12px;
    display: inline-block;
    width: fit-content;
    font-family: 'SF Mono', Monaco, 'Courier New', monospace;
}

.stock-price {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 8px;
}

.stock-price span:first-child {
    font-size: 36px;
    font-weight: 700;
    font-family: 'SF Mono', Monaco, 'Courier New', monospace;
    letter-spacing: -1px;
}

.change {
    font-size: 15px;
    font-weight: 600;
    padding: 8px 16px;
    border-radius: 12px;
    font-family: 'SF Mono', Monaco, 'Courier New', monospace;
}

.change.positive {
    color: var(--success-color);
    background: rgba(208, 107, 135, 0.15);
}

.change.negative {
    color: var(--danger-color);
    background: rgba(239, 68, 68, 0.15);
}

.earnings-alert {
    background: linear-gradient(135deg, var(--warning-color) 0%, #d97706 100%);
    border-radius: 24px;
    padding: 20px;
    margin-bottom: 20px;
    box-shadow: 0 8px 28px rgba(245, 158, 11, 0.3);
    display: flex;
    align-items: flex-start;
    gap: 16px;
    animation: slideIn 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes slideIn {
    from { opacity: 0; transform: translateY(-15px); }
    to { opacity: 1; transform: translateY(0); }
}

.earnings-icon {
    width: 48px;
    height: 48px;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    flex-shrink: 0;
}

.earnings-content {
    flex: 1;
}

.earnings-title {
    font-size: 16px;
    font-weight: 700;
    margin-bottom: 6px;
}

.earnings-info {
    font-size: 13px;
    opacity: 0.9;
    line-height: 1.6;
}

.summary-card {
    background: var(--card-bg);
    border-radius: 28px;
    padding: 28px;
    margin-bottom: 20px;
    box-shadow: var(--shadow-xl);
    border: 1px solid var(--card-border);
    backdrop-filter: blur(10px);
}

.summary-header {
    margin-bottom: 24px;
}

.summary-header h2 {
    font-size: 18px;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 10px;
    letter-spacing: 0.5px;
}

.summary-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
}

.score-circle {
    width: 130px;
    height: 130px;
    border-radius: 50%;
    background: var(--primary-gradient);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-shadow: 0 10px 30px var(--primary-shadow);
    position: relative;
    transition: background 0.3s ease, box-shadow 0.3s ease;
}

.score-circle::before {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background: var(--primary-gradient);
    filter: blur(25px);
    opacity: 0.4;
    animation: pulse 2s ease-in-out infinite;
    transition: background 0.3s ease;
}

@keyframes pulse {
    0%, 100% { opacity: 0.4; transform: scale(1); }
    50% { opacity: 0.6; transform: scale(1.15); }
}

.score-value {
    font-size: 52px;
    font-weight: 700;
    position: relative;
    z-index: 1;
    letter-spacing: -2px;
}

.score-label {
    font-size: 12px;
    color: rgba(255, 255, 255, 0.85);
    position: relative;
    z-index: 1;
    letter-spacing: 1px;
}

.rating-badge {
    font-size: 20px;
    font-weight: 700;
    padding: 12px 32px;
    border-radius: 28px;
    color: white;
    box-shadow: var(--shadow-md);
}

.suggestion-box {
    width: 100%;
    text-align: center;
}

.suggestion-box p {
    font-size: 16px;
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1.5;
}

.score-guide {
    width: 100%;
    margin-top: 8px;
}

.guide-title {
    font-size: 12px;
    font-weight: 600;
    color: var(--text-secondary);
    margin-bottom: 12px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.guide-content {
    background: rgba(255, 255, 255, 0.03);
    border-radius: 16px;
    padding: 14px;
    border: 1px solid var(--card-border);
}

.guide-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}

.guide-item:last-child {
    border-bottom: none;
}

.guide-range {
    font-size: 12px;
    font-weight: 700;
    color: var(--primary-color);
    min-width: 40px;
    text-align: center;
}

.guide-desc {
    font-size: 12px;
    color: var(--text-secondary);
}

.score-rules {
    margin-top: 20px;
    background: rgba(255, 255, 255, 0.02);
    border-radius: 16px;
    padding: 16px;
    border: 1px solid var(--card-border);
}

.rules-title {
    font-size: 12px;
    font-weight: 600;
    color: var(--text-secondary);
    margin-bottom: 12px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rules-content {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.rule-item {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    font-size: 12px;
    padding: 8px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}

.rule-item:last-child {
    border-bottom: none;
}

.rule-item span:first-child {
    color: var(--primary-color);
    font-weight: 600;
    min-width: 75px;
    flex-shrink: 0;
}

.rule-item span:last-child {
    color: var(--text-secondary);
    flex: 1;
}

.analysis-section {
    background: var(--card-bg);
    border-radius: 28px;
    padding: 0;
    margin-bottom: 20px;
    box-shadow: var(--shadow-xl);
    border: 1px solid var(--card-border);
    backdrop-filter: blur(10px);
    overflow: hidden;
}

.section-tabs {
    display: flex;
    gap: 6px;
    padding: 14px;
    background: rgba(0, 0, 0, 0.2);
}

.tab-btn {
    flex: 1;
    min-width: 70px;
    padding: 14px 10px;
    background: transparent;
    border: none;
    border-radius: 14px;
    color: var(--text-secondary);
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    transition: all 0.3s ease;
}

.tab-btn.active {
    background: var(--primary-gradient);
    color: white;
    box-shadow: 0 4px 16px var(--primary-shadow);
}

.tab-btn i {
    font-size: 18px;
}

.tab-content {
    padding: 20px;
}

.tab-pane {
    display: none;
}

.tab-pane.active {
    display: block;
    animation: fadeIn 0.3s ease;
}

.metric-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
    margin-bottom: 20px;
}

.metric-card {
    background: rgba(255, 255, 255, 0.02);
    border-radius: 20px;
    padding: 20px;
    border: 1px solid var(--card-border);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}

.metric-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: var(--primary-gradient);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.metric-card:hover {
    background: rgba(255, 255, 255, 0.04);
    transform: translateY(-3px);
    border-color: var(--primary-dark);
}

.metric-card:hover::before {
    opacity: 1;
}

.metric-card:active {
    transform: scale(0.98);
}

.metric-icon {
    width: 44px;
    height: 44px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    margin-bottom: 12px;
    color: white;
}

.metric-icon.positive {
    background: linear-gradient(135deg, var(--success-color), #8f5bdc);
}

.metric-icon.warning {
    background: linear-gradient(135deg, var(--warning-color), #d97706);
}

.metric-icon.neutral {
    background: linear-gradient(135deg, var(--neutral-color), #4f46e5);
}

.metric-info {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

body.has-result .metric-info {
    gap: 8px;
}

body.has-result .metric-info > :nth-child(2),
body.has-result .metric-info > :nth-child(3) {
    display: inline-flex;
    align-items: center;
}

body.has-result .metric-info > :nth-child(2) {
    margin-right: 16px;
}

body.has-result .metric-info {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 8px;
}

body.has-result .metric-name {
    width: 100%;
    flex: 0 0 100%;
}

body.has-result .metric-value {
    flex: 1;
    min-width: 0;
}

body.has-result .metric-score {
    flex: none;
    margin-left: auto;
}

.metric-name {
    font-size: 11px;
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.metric-value {
    font-size: 20px;
    font-weight: 700;
    font-family: 'SF Mono', Monaco, 'Courier New', monospace;
}

.metric-score {
    font-size: 12px;
    color: var(--success-color);
    font-weight: 600;
}

.analysis-text {
    background: rgba(255, 255, 255, 0.02);
    border-radius: 16px;
    padding: 18px;
    font-size: 14px;
    color: var(--text-secondary);
    line-height: 1.8;
    border-left: 4px solid var(--primary-color);
}

.chart-container {
    height: 240px;
    margin-bottom: 20px;
    background: rgba(255, 255, 255, 0.02);
    border-radius: 16px;
    padding: 12px;
    border: 1px solid var(--card-border);
}

.detail-section {
    background: var(--card-bg);
    border-radius: 28px;
    padding: 28px;
    margin-bottom: 20px;
    box-shadow: var(--shadow-xl);
    border: 1px solid var(--card-border);
    backdrop-filter: blur(10px);
}

.detail-section h3 {
    font-size: 18px;
    font-weight: 600;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 10px;
    letter-spacing: 0.5px;
}

.report-content {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.report-item {
    background: rgba(255, 255, 255, 0.02);
    border-radius: 16px;
    padding: 20px;
    border: 1px solid var(--card-border);
    transition: all 0.3s ease;
}

.report-item:hover {
    background: rgba(255, 255, 255, 0.04);
    transform: translateY(-2px);
    border-color: var(--primary-dark);
}

.report-item:active {
    background: rgba(255, 255, 255, 0.05);
}

.report-item h4 {
    font-size: 15px;
    font-weight: 600;
    margin-bottom: 10px;
    color: var(--text-primary);
}

.report-item p {
    font-size: 13px;
    color: var(--text-secondary);
    line-height: 1.7;
}

.footer {
    text-align: center;
    padding: 30px 16px;
    color: var(--text-secondary);
    font-size: 11px;
    position: relative;
    z-index: 10;
}

.footer p {
    margin-bottom: 4px;
}

@media (min-width: 768px) {
    body {
        background: var(--bg-gradient);
    }
    
    .main {
        max-width: 900px;
        padding: 32px;
    }
    
    .header {
        padding: 32px 40px 36px;
    }
    
    .header-content h1 {
        font-size: 32px;
        gap: 12px;
    }
    
    .header-content h1 i {
        font-size: 28px;
    }
    
    .subtitle {
        font-size: 13px;
    }
    
    .header-content {
        justify-content: center;
        gap: 32px;
    }
    
    .header-left {
        text-align: center;
    }
    
    .theme-btn {
        width: 48px;
        height: 48px;
        font-size: 20px;
    }
    
    .metric-grid {
        grid-template-columns: repeat(3, 1fr);
    }
    
    .stock-price span:first-child {
        font-size: 44px;
    }
    
    .stock-info {
        padding: 36px;
    }
    
    .stock-name span:first-child {
        font-size: 32px;
    }
    
    .summary-card {
        padding: 36px;
    }
    
    .analysis-section {
        padding: 0;
    }
    
    .tab-content {
        padding: 28px;
    }
    
    .detail-section {
        padding: 36px;
    }
    
    .chart-container {
        height: 320px;
    }
    
    .metric-card {
        padding: 24px;
    }
    
    .metric-value {
        font-size: 22px;
    }
    
    .score-circle {
        width: 150px;
        height: 150px;
    }
    
    .score-value {
        font-size: 60px;
    }
    
    .search-box {
        padding: 10px;
    }
    
    #stockInput {
        padding: 16px 24px;
        font-size: 16px;
    }
    
    .search-btn {
        padding: 16px 32px;
        font-size: 15px;
    }
}

@media (min-width: 1024px) {
    body {
        min-height: 100vh;
    }
    
    .header {
        min-height: 100vh;
        padding: 40px 32px;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        text-align: center;
    }
    
    .header::after {
        bottom: -40%;
        left: -20%;
        width: 140%;
        height: 100%;
    }
    
    .header-content {
        flex-direction: row;
        justify-content: space-between;
        align-items: flex-start;
        gap: 0;
        width: 100%;
        max-width: 1200px;
        padding: 0 40px;
    }
    
    .header-left {
        text-align: center;
    }
    
    .header-content h1 {
        font-size: 32px;
        gap: 12px;
        justify-content: center;
    }
    
    .subtitle {
        font-size: 12px;
        letter-spacing: 2px;
    }
    
    .theme-btn {
        width: 52px;
        height: 52px;
        font-size: 22px;
    }
    
    .theme-menu {
        right: 40px;
        left: auto;
        transform: none;
        min-width: 170px;
    }
    
    .main {
        max-width: 1400px;
        padding: 40px;
        margin: 0 auto;
    }
    
    .search-section {
        max-width: 620px;
        width: 100%;
    }
    
    .header.has-result {
        min-height: auto;
        padding: 12px 32px;
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        gap: 20px;
        overflow: visible;
    }
    
    .result-container.active {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 24px;
    }
    
    .stock-info, .summary-card, .analysis-section, .detail-section {
        margin-bottom: 0;
    }
    
    .stock-info {
        grid-column: span 2;
        display: grid;
        grid-template-columns: 1fr 1fr;
        align-items: center;
    }
    
    .stock-header {
        justify-content: space-between;
        gap: 32px;
    }
    
    .stock-name {
        gap: 10px;
    }
    
    .stock-name span:first-child {
        font-size: 36px;
    }
    
    .stock-price span:first-child {
        font-size: 48px;
    }
    
    .summary-card {
        grid-column: span 2;
    }
    
    .summary-content {
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: center;
        align-items: flex-start;
        gap: 40px;
    }
    
    .score-circle {
        width: 140px;
        height: 140px;
    }
    
    .score-value {
        font-size: 56px;
    }
    
    .score-guide {
        max-width: 400px;
        text-align: left;
    }
    
    .analysis-section {
        grid-column: span 2;
    }
    
    .metric-grid {
        grid-template-columns: repeat(3, 1fr);
    }
    
    .detail-section {
        grid-column: span 2;
    }
    
    .report-content {
        flex-direction: row;
        gap: 20px;
    }
    
    .report-item {
        flex: 1;
    }
    
    .earnings-alert {
        grid-column: span 2;
    }
    
    .chart-container {
        height: 300px;
    }
}

@media (min-width: 1280px) {
    .main {
        max-width: calc(100% - 420px);
    }
    
    .result-container.active {
        grid-template-columns: repeat(3, 1fr);
        gap: 24px;
    }
    
    .stock-info {
        grid-column: span 3;
    }
    
    .summary-card {
        grid-column: span 3;
    }
    
    .analysis-section {
        grid-column: span 3;
    }
    
    .detail-section {
        grid-column: span 3;
    }
    
    .metric-grid {
        grid-template-columns: repeat(3, 1fr);
    }
    
    .earnings-alert {
        grid-column: span 3;
    }
}

@media (max-width: 375px) {
    .header {
        padding: 20px 12px 24px;
    }
    
    .header-content h1 {
        font-size: 20px;
        gap: 8px;
    }
    
    .header-content h1 i {
        font-size: 22px;
    }
    
    .main {
        padding: 16px 12px;
    }
    
    .stock-info {
        padding: 22px;
    }
    
    .stock-name span:first-child {
        font-size: 24px;
    }
    
    .stock-price span:first-child {
        font-size: 32px;
    }
    
    .metric-grid {
        gap: 12px;
    }
    
    .metric-card {
        padding: 16px;
    }
    
    .metric-value {
        font-size: 18px;
    }
    
    .theme-btn {
        width: 40px;
        height: 40px;
        font-size: 16px;
    }
    
    .search-box {
        padding: 6px;
    }
    
    #stockInput {
        padding: 12px 16px;
        font-size: 14px;
    }
    
    .search-btn {
        padding: 12px 20px;
        font-size: 13px;
    }
}

::-webkit-scrollbar {
    width: 6px;
}

::-webkit-scrollbar-track {
    background: transparent;
}

::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.2);
    border-radius: 3px;
}

::-webkit-scrollbar-thumb:hover {
    background: rgba(255, 255, 255, 0.3);
}
/* =========================
   UI V2 - responsive single-page layout
   手机端：App 卡片流；电脑端：投研工作台
   ========================= */

:root {
    --v2-bg: #070b14;
    --v2-bg-soft: #0b1220;
    --v2-panel: rgba(15, 23, 42, 0.78);
    --v2-panel-strong: rgba(15, 23, 42, 0.92);
    --v2-card: rgba(30, 41, 59, 0.68);
    --v2-border: rgba(148, 163, 184, 0.16);
    --v2-border-strong: rgba(148, 163, 184, 0.26);
    --v2-text: #f8fafc;
    --v2-muted: #94a3b8;
    --v2-soft: rgba(255, 255, 255, 0.055);
    --v2-up: #ef4444;
    --v2-down: #22c55e;
    --v2-radius-lg: 28px;
    --v2-radius-md: 22px;
    --v2-radius-sm: 16px;
}

body {
    background: var(--v2-bg);
    background-image:
        radial-gradient(circle at 12% 18%, rgba(37, 99, 235, 0.24), transparent 30%),
        radial-gradient(circle at 88% 8%, rgba(124, 58, 237, 0.22), transparent 34%),
        radial-gradient(circle at 50% 100%, rgba(8, 145, 178, 0.16), transparent 36%),
        linear-gradient(180deg, #070b14 0%, #0b1020 56%, #070b14 100%);
    color: var(--v2-text);
}

body.day-theme {
    --v2-bg: #eef4ff;
    --v2-bg-soft: #f8fbff;
    --v2-panel: rgba(255, 255, 255, 0.82);
    --v2-panel-strong: rgba(255, 255, 255, 0.95);
    --v2-card: rgba(255, 255, 255, 0.86);
    --v2-border: rgba(15, 23, 42, 0.10);
    --v2-border-strong: rgba(15, 23, 42, 0.18);
    --v2-text: #0f172a;
    --v2-muted: #64748b;
    --v2-soft: rgba(15, 23, 42, 0.045);
    background: #eef4ff;
    background-image:
        radial-gradient(circle at 8% 18%, rgba(37, 99, 235, 0.16), transparent 32%),
        radial-gradient(circle at 88% 12%, rgba(124, 58, 237, 0.14), transparent 34%),
        linear-gradient(180deg, #f8fbff 0%, #edf4ff 100%);
}

body::before {
    opacity: 0.85;
}

.header {
    height: auto;
    min-height: 100svh;
    padding: 28px 16px 36px;
    overflow: hidden;
}

.header::after {
    bottom: -54%;
    opacity: 0.7;
}

.header-content {
    top: 22px;
    align-items: center;
}

.header-left h1,
.header-content h1 {
    font-size: clamp(20px, 3.8vw, 28px);
    line-height: 1.1;
}

.subtitle {
    color: rgba(255, 255, 255, 0.78);
}

.search-section {
    max-width: 760px;
    margin-top: 56px;
    gap: 18px;
}

.hero-copy {
    text-align: center;
    margin-bottom: 8px;
    animation: fadeIn 0.5s ease both;
}

.hero-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.10);
    color: rgba(255, 255, 255, 0.86);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 1px;
    backdrop-filter: blur(14px);
}

.hero-copy h2 {
    margin-top: 18px;
    font-size: clamp(34px, 8vw, 68px);
    line-height: 1.02;
    letter-spacing: -2.6px;
    font-weight: 900;
}

.hero-copy p {
    max-width: 620px;
    margin: 16px auto 0;
    color: rgba(255, 255, 255, 0.76);
    font-size: clamp(14px, 2.2vw, 17px);
    line-height: 1.8;
}

.search-box {
    width: 100%;
    min-height: 64px;
    padding: 7px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.13);
    border: 1px solid rgba(255, 255, 255, 0.22);
    box-shadow: 0 22px 70px rgba(0, 0, 0, 0.28);
}

#stockInput {
    padding: 16px 22px;
    font-size: 16px;
}

.search-btn {
    min-width: 108px;
    border-radius: 999px;
    font-weight: 800;
    box-shadow: 0 12px 26px var(--primary-shadow);
}

.suggestions {
    top: calc(100% + 12px);
    width: 100%;
    border-radius: 22px;
    overflow: hidden;
    background: var(--v2-panel-strong);
    border: 1px solid var(--v2-border-strong);
}

.quick-picks {
    width: 100%;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px;
}

.quick-picks button {
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 999px;
    padding: 10px 14px;
    color: white;
    background: rgba(255, 255, 255, 0.09);
    cursor: pointer;
    font-weight: 700;
    transition: all 0.22s ease;
}

.quick-picks button:hover {
    background: rgba(255, 255, 255, 0.18);
    transform: translateY(-2px);
}

.main {
    max-width: 1120px;
    padding: 18px 14px 28px;
}

.result-container.active {
    display: block;
}

body.has-result .hero-copy,
body.has-result .quick-picks {
    display: none;
}

body.has-result .header {
    min-height: auto;
    height: auto;
    padding: 12px 24px;
    position: sticky;
    top: 0;
    z-index: 80;
    background: rgba(7, 11, 20, 0.82);
    backdrop-filter: blur(22px);
    border-bottom: 1px solid var(--v2-border);
    overflow: visible;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

body.day-theme.has-result .header {
    background: rgba(255, 255, 255, 0.82);
}

body.day-theme.has-result .header h1,
body.day-theme.has-result .header .subtitle,
body.day-theme.has-result .header .theme-btn {
    color: #1e293b;
}

body.has-result .header::after {
    display: none;
}

body.has-result .header-content {
    position: static;
    padding: 0;
    max-width: 1440px;
    align-items: center;
    width: auto;
    flex: none;
    display: flex;
    align-items: center;
}

body.has-result .header-left {
    text-align: left;
    flex: none;
}

body.has-result .header-content h1 {
    font-size: 16px;
    margin-bottom: 0;
}

body.has-result .header-content h1 svg {
    width: 18px;
    height: 18px;
}

body.has-result .subtitle {
    display: none;
}

body.has-result .theme-btn {
    width: 40px;
    height: 40px;
    border-radius: 14px;
    order: 3;
    flex: none;
}

body.has-result .search-section {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    margin-left: 20px !important;
    margin-right: 20px !important;
    max-width: 600px !important;
    width: 100% !important;
    flex: 1 !important;
    order: 2 !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
}

body.has-result .header-content {
    order: 1;
}

body.has-result .search-box {
    min-height: 48px;
    padding: 5px;
    border-radius: 18px;
    box-shadow: none;
    background: rgba(255, 255, 255, 0.10);
}

body.has-result #stockInput {
    padding: 10px 13px;
    font-size: 14px;
}

body.has-result .search-btn {
    min-width: 82px;
    padding: 10px 14px;
    border-radius: 14px;
}

body.has-result .main {
    padding-top: 16px;
}

.stock-info,
.summary-card,
.analysis-section,
.detail-section,
.earnings-alert {
    background: var(--v2-card);
    border: 1px solid var(--v2-border);
    box-shadow: 0 18px 50px rgba(0, 0, 0, 0.22);
    backdrop-filter: blur(18px);
}

body.day-theme .stock-info,
body.day-theme .summary-card,
body.day-theme .analysis-section,
body.day-theme .detail-section,
body.day-theme .earnings-alert {
    background: var(--v2-card);
    border-color: var(--v2-border);
    box-shadow: 0 18px 46px rgba(15, 23, 42, 0.08);
}

.stock-info,
.summary-card {
    border-radius: var(--v2-radius-lg);
}

.analysis-section,
.detail-section {
    border-radius: var(--v2-radius-lg);
}

.stock-header {
    align-items: flex-start;
}

.stock-name #stockName {
    font-size: clamp(24px, 6vw, 34px);
    letter-spacing: -1px;
}

.stock-name .code {
    margin-top: 8px;
    display: inline-flex;
    width: fit-content;
    padding: 7px 10px;
    border-radius: 999px;
    background: var(--v2-soft);
    border: 1px solid var(--v2-border);
}

.stock-price #currentPrice,
#currentPrice {
    font-size: clamp(32px, 8vw, 48px);
    font-weight: 900;
    letter-spacing: -1.8px;
}

.change.positive,
.index-change.positive {
    color: var(--v2-up);
}

.change.negative,
.index-change.negative {
    color: var(--v2-down);
}

.summary-card {
    position: relative;
    overflow: hidden;
}

.summary-card::before {
    content: '';
    position: absolute;
    inset: 0 0 auto 0;
    height: 110px;
    background: radial-gradient(circle at 50% 0%, var(--primary-light), transparent 70%);
    pointer-events: none;
}

.summary-header,
.summary-content {
    position: relative;
    z-index: 1;
}

.summary-header h2,
.detail-section h3 {
    font-size: 16px;
}

.score-circle {
    width: 118px;
    height: 118px;
    box-shadow: 0 22px 45px var(--primary-shadow);
}

.score-circle::before {
    animation: none;
    opacity: 0.22;
}

.score-value {
    font-size: 46px;
}

.rating-badge {
    padding: 9px 24px;
    border-radius: 999px;
}

.suggestion-box {
    padding: 14px 16px;
    border-radius: 18px;
    background: var(--v2-soft);
    border: 1px solid var(--v2-border);
}

.score-guide {
    display: none;
}

.section-tabs {
    gap: 8px;
    padding: 12px;
    overflow-x: auto;
    scrollbar-width: none;
    background: rgba(0, 0, 0, 0.16);
}

.section-tabs::-webkit-scrollbar {
    display: none;
}

.tab-btn {
    flex: 0 0 auto;
    min-width: 92px;
    flex-direction: row;
    justify-content: center;
    padding: 12px 14px;
    border-radius: 999px;
    font-weight: 800;
}

.tab-btn i {
    font-size: 14px;
}

.tab-content {
    padding: 16px;
}

.metric-grid {
    gap: 12px;
}

.metric-card {
    border-radius: 18px;
    padding: 16px;
    background: var(--v2-soft);
}

.metric-card:hover {
    transform: translateY(-2px);
}

.metric-icon {
    width: 38px;
    height: 38px;
    border-radius: 13px;
}

.metric-name {
    font-size: 12px;
}

.metric-value {
    font-size: 20px;
    letter-spacing: -0.4px;
}

.analysis-text,
.score-rules,
.report-item,
.chart-container {
    background: var(--v2-soft);
    border: 1px solid var(--v2-border);
}

.chart-container {
    border-radius: 22px;
    height: 260px;
}

.report-content {
    gap: 14px;
}

body.has-result .footer {
    margin-top: 30px;
    padding-bottom: 50px;
}

@media (max-width: 640px) {
    .header-content {
        padding: 0 16px;
    }

    .hero-copy h2 {
        letter-spacing: -1.8px;
    }

    .quick-picks {
        justify-content: flex-start;
        overflow-x: auto;
        flex-wrap: nowrap;
        padding-bottom: 4px;
    }

    .quick-picks button {
        flex: 0 0 auto;
    }

    body.has-result .header-content {
        display: flex;
    }

    body.has-result .search-section {
        width: 100%;
    }

    body.has-result .stock-info,
    body.has-result .summary-card,
    body.has-result .analysis-section,
    body.has-result .detail-section,
    body.has-result .earnings-alert {
        margin-bottom: 14px;
    }

    .stock-info,
    .summary-card,
    .detail-section {
        padding: 18px;
    }

    .stock-header {
        flex-direction: column;
        gap: 18px;
    }

    .stock-price {
        text-align: left;
    }

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

    .metric-card {
        min-height: 132px;
    }

    .score-rules {
        display: none;
    }
}

@media (max-width: 380px) {
    .metric-grid {
        grid-template-columns: 1fr;
    }

    .tab-btn {
        min-width: 86px;
    }
}

@media (min-width: 768px) {
    .metric-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .chart-container {
        height: 320px;
    }
}

@media (min-width: 1024px) {
    .header {
        padding: 36px 40px 48px;
    }

    .search-section {
        margin-top: 70px;
    }

    body.has-result .header {
        padding: 14px 40px;
    }

    body.has-result .header-content,
    body.has-result .search-section,
    body.has-result .main {
        max-width: 1480px;
    }

    body.has-result .header {
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        gap: 22px;
    }

    body.has-result .header-content {
        width: auto;
        margin: 0;
        flex: none;
    }

    body.has-result .search-section {
        margin: 0 20px;
        width: 100%;
        flex: 1;
        max-width: 600px;
    }

    body.has-result .main {
        padding: 24px 20px 44px;
        max-width: none !important;
        width: 100%;
    }

    body.has-result .result-container.active {
        display: grid;
        grid-template-columns: minmax(250px, 320px) minmax(0, 1fr) minmax(300px, 360px);
        grid-template-areas:
            "stock analysis summary"
            "earnings analysis summary"
            "detail detail detail";
        gap: 20px;
        align-items: start;
    }

    body.has-result .stock-info {
        grid-area: stock;
        position: sticky;
        top: 118px;
        margin-bottom: 0;
    }

    body.has-result .earnings-alert {
        grid-area: earnings;
        margin-bottom: 0;
    }

    body.has-result .summary-card {
        grid-area: summary;
        position: sticky;
        top: 118px;
        margin-bottom: 0;
    }

    body.has-result .analysis-section {
        grid-area: analysis;
        margin-bottom: 0;
    }

    body.has-result .detail-section {
        grid-area: detail;
        margin-bottom: 0;
    }

    .stock-header {
        flex-direction: column;
        gap: 18px;
    }

    .stock-price {
        text-align: left;
    }

    .chart-container {
        height: 420px;
    }

    body.has-result .metric-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .score-rules {
        display: none;
    }

    .report-content {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 1280px) {
    body.has-result .result-container.active {
        grid-template-columns: 310px minmax(0, 1fr) 360px;
        gap: 24px;
    }

    .chart-container {
        height: 480px;
    }
}


/* ===== V2 patch: center brand / clearer placeholder / simplify hero ===== */
body:not(.has-result) .header-content {
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
}

body:not(.has-result) .header-left {
    flex: 0 1 auto;
    width: 100%;
    text-align: center !important;
}

body:not(.has-result) .header-left h1,
body:not(.has-result) .header-content h1 {
    justify-content: center;
    text-align: center;
}

body:not(.has-result) .subtitle {
    text-align: center;
}

body:not(.has-result) .theme-btn {
    position: absolute;
    right: 24px;
    top: 50%;
    transform: translateY(-50%);
}

body:not(.has-result) .theme-btn:hover {
    transform: translateY(-50%) scale(1.05);
}

body:not(.has-result) .theme-btn:active {
    transform: translateY(-50%) scale(0.95);
}

#stockInput::placeholder {
    color: rgba(255, 255, 255, 0.66);
}

body.day-theme #stockInput::placeholder {
    color: rgba(15, 23, 42, 0.46);
}

.hero-copy {
    margin-bottom: 2px;
}

.hero-copy h2 {
    margin-top: 0;
}

.hero-kicker,
.hero-copy p {
    display: none !important;
}

body.has-result .header-content {
    justify-content: flex-start;
    position: static;
    flex: none;
}

body.has-result .header-left {
    text-align: left !important;
}

body.has-result .header-content h1 {
    justify-content: flex-start;
}

body.has-result .theme-btn {
    position: static;
    right: auto;
    top: auto;
    transform: none;
    flex-shrink: 0;
}

body.has-result .theme-btn:hover {
    transform: scale(1.05);
}

body.has-result .theme-btn:active {
    transform: scale(0.95);
}

@media (max-width: 640px) {
    .header-content {
        padding: 0 64px 0 16px;
    }

    .theme-btn {
        right: 16px;
    }
}

@media (min-width: 1024px) {
    body.has-result .header-content {
        position: static;
        padding-right: 0;
        flex: none;
    }

    body.has-result .theme-btn {
        position: static;
        right: auto;
        top: auto;
        transform: none;
        flex-shrink: 0;
    }
}


/* ===== V2 fix2: precise centered top title + clearer dark placeholder + remove redundant hero text ===== */
body:not(.has-result) .header-content {
    position: absolute !important;
    top: 22px !important;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;
    width: min(100%, 1200px) !important;
    max-width: 1200px !important;
    margin: 0 !important;
    padding: 0 72px !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    pointer-events: none;
}

body:not(.has-result) .header-left {
    flex: 0 1 auto !important;
    width: auto !important;
    min-width: 0;
    text-align: center !important;
    pointer-events: auto;
}

body:not(.has-result) .header-content h1,
body:not(.has-result) .header-left h1 {
    justify-content: center !important;
    text-align: center !important;
    white-space: nowrap;
}

body:not(.has-result) .subtitle {
    text-align: center !important;
}

body:not(.has-result) .theme-btn {
    position: absolute !important;
    right: 24px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    pointer-events: auto;
}

body:not(.has-result) .theme-btn:hover {
    transform: translateY(-50%) scale(1.05) !important;
}

body:not(.has-result) .theme-btn:active {
    transform: translateY(-50%) scale(0.95) !important;
}

.hero-kicker,
.hero-copy p {
    display: none !important;
}

.hero-copy {
    margin-bottom: 2px !important;
}

.hero-copy h2 {
    margin-top: 0 !important;
}

body:not(.day-theme) #stockInput {
    color: rgba(255, 255, 255, 0.96) !important;
}

body:not(.day-theme) #stockInput::placeholder {
    color: rgba(248, 250, 252, 0.82) !important;
    opacity: 1 !important;
}

body:not(.day-theme) .search-box {
    background: rgba(255, 255, 255, 0.18) !important;
    border-color: rgba(255, 255, 255, 0.30) !important;
}

body.day-theme #stockInput::placeholder {
    color: rgba(30, 41, 59, 0.58) !important;
    opacity: 1 !important;
}

body.has-result .header-content {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    transform: none !important;
    width: 100% !important;
    max-width: none !important;
    padding: 0 56px !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
}

body.has-result .header-left {
    flex: 0 1 auto !important;
    width: auto !important;
    text-align: center !important;
}

body.has-result .header-content h1,
body.has-result .header-left h1 {
    justify-content: center !important;
    text-align: center !important;
    white-space: nowrap;
}

body.has-result .theme-btn {
    position: static !important;
    right: auto !important;
    top: auto !important;
    transform: none !important;
    flex-shrink: 0;
}

@media (max-width: 640px) {
    body:not(.has-result) .header-content {
        top: 20px !important;
        width: 100% !important;
        padding: 0 64px !important;
    }

    body:not(.has-result) .theme-btn {
        right: 16px !important;
    }

    body.has-result .header-content {
        padding: 0 48px !important;
    }

    body.has-result .theme-btn {
        position: static !important;
        right: auto !important;
        top: auto !important;
        transform: none !important;
    }

    .hero-copy h2 {
        font-size: clamp(38px, 12vw, 58px) !important;
        letter-spacing: -1.8px !important;
    }
}

@media (min-width: 1024px) {
    body.has-result .header-content {
        padding: 0 64px !important;
    }
}


/* ===== V2 fix3: mobile font auto scale + hide hero stats on mobile ===== */
@media (max-width: 768px) {
    body:not(.has-result) .header {
        min-height: 100svh;
        padding: 20px 16px 34px !important;
    }

    body:not(.has-result) .header-content {
        top: 18px !important;
        padding: 0 62px !important;
    }

    body:not(.has-result) .header-content h1,
    body:not(.has-result) .header-left h1 {
        font-size: clamp(18px, 4.6vw, 23px) !important;
        letter-spacing: 0 !important;
    }

    body:not(.has-result) .header-content h1 svg,
    body:not(.has-result) .header-left h1 svg {
        width: clamp(17px, 4.2vw, 22px) !important;
        height: clamp(17px, 4.2vw, 22px) !important;
    }

    body:not(.has-result) .subtitle {
        margin-top: 6px !important;
        font-size: clamp(11px, 2.7vw, 13px) !important;
        letter-spacing: 0.8px !important;
        line-height: 1.35 !important;
    }

    body:not(.has-result) .theme-btn {
        width: clamp(38px, 9vw, 44px) !important;
        height: clamp(38px, 9vw, 44px) !important;
        border-radius: 14px !important;
    }

    body:not(.has-result) .search-section {
        margin-top: 48px !important;
        gap: 16px !important;
        width: 100% !important;
    }

    body:not(.has-result) .hero-copy h2 {
        font-size: clamp(30px, 8.4vw, 44px) !important;
        line-height: 1.08 !important;
        letter-spacing: -1.2px !important;
        white-space: nowrap !important;
    }

    body:not(.has-result) .search-box {
        min-height: clamp(52px, 12vw, 60px) !important;
        padding: 5px !important;
        border-radius: 22px !important;
    }

    body:not(.has-result) #stockInput {
        padding: 12px 16px !important;
        font-size: clamp(14px, 3.4vw, 16px) !important;
    }

    body:not(.has-result) .search-btn {
        min-width: clamp(82px, 22vw, 106px) !important;
        padding: 10px 14px !important;
        font-size: clamp(13px, 3.2vw, 15px) !important;
    }

    body:not(.has-result) .quick-picks {
        margin-top: 2px !important;
        gap: 9px !important;
    }

    body:not(.has-result) .quick-picks button {
        padding: 8px 12px !important;
        font-size: clamp(12px, 3vw, 14px) !important;
    }
}

@media (max-width: 420px) {
    body:not(.has-result) .header-content {
        padding: 0 56px !important;
    }

    body:not(.has-result) .hero-copy h2 {
        font-size: clamp(28px, 8vw, 34px) !important;
        letter-spacing: -0.8px !important;
    }

    body:not(.has-result) .search-section {
        margin-top: 38px !important;
    }

    body:not(.has-result) .search-box {
        border-radius: 20px !important;
    }
}

/* ===== V2 fix4: mobile search button symmetry + remove right white edge ===== */
html,
body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden !important;
    background: var(--primary-gradient);
}

html {
    min-height: 100%;
}

body:not(.has-result) {
    min-width: 0;
}

body:not(.has-result) .header {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden !important;
}

body:not(.has-result) .search-section,
body:not(.has-result) .search-box,
body:not(.has-result) .quick-picks {
    max-width: 100%;
    box-sizing: border-box;
}

body:not(.has-result) .search-box {
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
}

body:not(.has-result) .search-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
    white-space: nowrap !important;
}

body:not(.has-result) .search-btn i {
    line-height: 1 !important;
    display: inline-flex !important;
    align-items: center !important;
}

@media (max-width: 768px) {
    html,
    body {
        background: var(--primary-gradient) !important;
    }

    body:not(.has-result) .header {
        min-height: 100dvh !important;
        min-height: 100svh !important;
        margin: 0 !important;
        border-radius: 0 !important;
    }

    body:not(.has-result) .search-section {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    body:not(.has-result) .search-box {
        height: 58px !important;
        min-height: 58px !important;
        padding: 5px !important;
        border-radius: 23px !important;
        overflow: hidden !important;
    }

    body:not(.has-result) #stockInput {
        height: 48px !important;
        min-height: 48px !important;
        padding: 0 16px !important;
        line-height: 48px !important;
    }

    body:not(.has-result) .search-btn {
        height: 48px !important;
        min-height: 48px !important;
        min-width: 106px !important;
        padding: 0 18px !important;
        border-radius: 20px !important;
        margin: 0 !important;
        font-size: 14px !important;
        gap: 7px !important;
    }

    body:not(.has-result) .search-btn i {
        font-size: 14px !important;
    }
}

@media (max-width: 420px) {
    body:not(.has-result) .search-box {
        height: 56px !important;
        min-height: 56px !important;
        padding: 5px !important;
        border-radius: 22px !important;
    }

    body:not(.has-result) #stockInput {
        height: 46px !important;
        min-height: 46px !important;
        line-height: 46px !important;
        padding: 0 14px !important;
    }

    body:not(.has-result) .search-btn {
        height: 46px !important;
        min-height: 46px !important;
        min-width: 96px !important;
        padding: 0 15px !important;
        border-radius: 19px !important;
        font-size: 13px !important;
    }
}

@media (max-width: 360px) {
    body:not(.has-result) .search-btn {
        min-width: 88px !important;
        padding: 0 13px !important;
    }
}


/* ===== V2 fix6: desktop home page removes bottom white strip ===== */
/* 搜索前让首页成为真正的一屏，避免电脑端滚动到 header 下方露出浅色 main/body 区域 */
body:not(.has-result):not(.is-loading-stock) {
    min-height: 100dvh !important;
    overflow-y: hidden !important;
    background: var(--primary-gradient) !important;
}

body.has-result {
    overflow-y: auto !important;
}

body.day-theme:not(.has-result):not(.is-loading-stock) {
    background: var(--primary-gradient) !important;
}

body:not(.has-result):not(.is-loading-stock) .header {
    min-height: 100dvh !important;
    height: 100dvh !important;
    background: var(--primary-gradient) !important;
}

body.day-theme:not(.has-result):not(.is-loading-stock) .header {
    background: var(--primary-gradient) !important;
}

body:not(.has-result):not(.is-loading-stock) .main,
body:not(.has-result):not(.is-loading-stock) .footer {
    display: none !important;
}

/* 分析加载中仍然允许 loading 显示，避免点分析后看不到加载动画 */
body.is-loading-stock .main {
    display: block !important;
}

@media (min-width: 769px) {
    html,
    body:not(.has-result):not(.is-loading-stock) {
        background: var(--primary-gradient) !important;
    }

    body:not(.has-result):not(.is-loading-stock) .header {
        height: 100vh !important;
        min-height: 100vh !important;
        margin: 0 !important;
        border-radius: 0 !important;
    }
}


/* ===== V2 fix6: 老花友好布局 + 主题按钮独立 + 报告合并 + 图表优化 ===== */
:root {
    --read-font: clamp(16px, 0.38vw + 15px, 20px);
    --read-small: clamp(14px, 0.25vw + 13px, 17px);
    --read-title: clamp(22px, 0.9vw + 18px, 34px);
    --read-hero: clamp(42px, 7vw, 86px);
    --v2-up: #ef4444;
    --v2-down: #22c55e;
}

html, body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
}

body {
    font-size: var(--read-font);
    text-rendering: optimizeLegibility;
}

.header {
    overflow: hidden;
}

.header-content {
    pointer-events: none;
}

.header-left {
    pointer-events: auto;
    cursor: pointer;
    user-select: none;
    transition: transform 0.18s ease, opacity 0.18s ease;
}

.header-left:hover {
    transform: translateY(-1px);
    opacity: 0.96;
}

.header-left:focus-visible {
    outline: 3px solid rgba(255,255,255,0.45);
    outline-offset: 8px;
    border-radius: 14px;
}

/* 搜索前：主题按钮固定右上角，不再进入搜索框 */
body:not(.has-result) #themeBtn.theme-btn {
    position: absolute !important;
    top: 18px !important;
    right: clamp(16px, 3vw, 34px) !important;
    width: 52px !important;
    height: 52px !important;
    border-radius: 18px !important;
    z-index: 40 !important;
    pointer-events: auto;
}

body:not(.has-result) .search-box {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 8px !important;
    overflow: visible !important;
}

body:not(.has-result) #stockInput {
    font-size: clamp(16px, 1.1vw, 21px) !important;
    font-weight: 700;
    min-height: 54px;
}

body:not(.has-result) .search-btn {
    min-width: clamp(112px, 13vw, 150px) !important;
    min-height: 54px !important;
    justify-content: center !important;
    font-size: clamp(16px, 1vw, 20px) !important;
    border-radius: 999px !important;
    padding: 0 22px !important;
}

body:not(.has-result) .hero-copy h2 {
    font-size: var(--read-hero) !important;
    line-height: 1.08 !important;
    letter-spacing: -0.06em !important;
    text-wrap: balance;
}

body:not(.has-result) .quick-picks button {
    font-size: clamp(14px, 0.55vw + 12px, 18px) !important;
    font-weight: 900;
    padding: 10px 20px !important;
}

body:not(.has-result) .header-content h1,
body:not(.has-result) .header-left h1 {
    font-size: clamp(23px, 1.4vw, 34px) !important;
}

body:not(.has-result) .subtitle {
    font-size: clamp(14px, 0.6vw, 18px) !important;
    font-weight: 800;
}

/* 搜索后：顶部栏改为 logo / 搜索 / 主题 三列，彻底避免重叠 */
body.has-result .header {
    position: sticky !important;
    top: 0;
    z-index: 60;
    min-height: auto !important;
    height: auto !important;
    overflow: visible;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 20px !important;
    padding: 12px 24px !important;
}

body.has-result .header-content {
    position: static !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    width: auto !important;
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
    flex: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
}

body.has-result .search-section {
    flex: 1 !important;
    max-width: 600px !important;
    margin: 0 20px !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
}

body.has-result .header-content,
body.has-result .search-section,
body.has-result #themeBtn.theme-btn {
    pointer-events: auto;
}

body.has-result .search-box {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 6px !important;
}

body.has-result #stockInput {
    font-size: clamp(16px, 0.65vw + 13px, 20px) !important;
    font-weight: 700;
}

body.has-result .search-btn {
    min-width: 96px !important;
    min-height: 44px !important;
    justify-content: center !important;
    font-size: clamp(15px, 0.4vw + 13px, 18px) !important;
}

body.has-result #themeBtn.theme-btn {
    position: static !important;
    top: auto !important;
    right: auto !important;
    width: 48px !important;
    height: 48px !important;
    border-radius: 16px !important;
    flex-shrink: 0;
}

/* 搜索结果：整体放大，适合老花眼 */
body.has-result .main {
    width: 100%;
    max-width: min(96vw, 1720px) !important;
}

body.has-result .result-container.active {
    width: 100%;
}

.stock-info,
.summary-card,
.analysis-section,
.earnings-alert,
.detail-section,
.report-item,
.metric-card,
.analysis-text,
.score-rules,
.chart-container {
    border-width: 1.5px !important;
}

.stock-name #stockName {
    font-size: clamp(32px, 1.9vw, 46px) !important;
    line-height: 1.15;
}

.stock-name .code,
.earnings-info,
.metric-name,
.metric-score,
.report-item p,
.analysis-text,
.rule-item,
.suggestion-box p {
    font-size: var(--read-small) !important;
    line-height: 1.75 !important;
}

#currentPrice {
    font-size: clamp(42px, 3.2vw, 66px) !important;
    line-height: 1.1;
}

.change {
    font-size: clamp(15px, 0.45vw + 13px, 19px) !important;
}

.summary-header h2,
.detail-section h3 {
    font-size: clamp(18px, 0.55vw + 15px, 23px) !important;
    font-weight: 900;
}

.score-circle {
    width: clamp(130px, 9vw, 168px) !important;
    height: clamp(130px, 9vw, 168px) !important;
}

.score-value {
    font-size: clamp(50px, 3vw, 72px) !important;
}

.score-label,
.guide-desc,
.guide-range {
    font-size: clamp(13px, 0.3vw + 12px, 16px) !important;
}

.rating-badge {
    font-size: clamp(19px, 0.65vw + 16px, 26px) !important;
}

/* 详细报告合并到综合评估下方 */
.summary-card .detail-section.is-merged-report,
.summary-card .detail-section {
    margin: 24px 0 0 !important;
    padding: 22px 0 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    border-top: 1.5px solid var(--v2-border) !important;
}

.summary-card .detail-section h3 {
    margin-bottom: 16px !important;
}

.summary-card .report-content {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 14px !important;
}

.summary-card .report-item {
    padding: 18px !important;
    border-radius: 18px !important;
    min-height: auto !important;
}

.report-item h4 {
    font-size: clamp(16px, 0.45vw + 14px, 20px) !important;
    margin-bottom: 8px !important;
}

/* 指标卡：避免空图标显得像空图表 */
.metric-grid {
    gap: 16px !important;
}

.metric-card {
    min-height: 136px !important;
    padding: 20px !important;
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 16px !important;
}

.metric-icon {
    width: 48px !important;
    height: 48px !important;
    border-radius: 16px !important;
    font-size: 22px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.metric-icon i:empty::before,
.metric-icon:empty::before {
    content: '•';
    font-size: 24px;
    opacity: 0.75;
}

.metric-info {
    min-width: 0;
}

.metric-name {
    font-weight: 800 !important;
    color: rgba(226,232,240,0.78) !important;
}

.metric-value {
    font-size: clamp(26px, 1.35vw, 38px) !important;
    line-height: 1.25 !important;
    margin: 6px 0 !important;
    word-break: keep-all;
}

.metric-score {
    font-weight: 900 !important;
}

/* 分析区与图表增强 */
.section-tabs {
    gap: 10px !important;
    padding: 12px !important;
}

.tab-btn {
    min-width: 112px !important;
    min-height: 48px !important;
    font-size: clamp(15px, 0.35vw + 13px, 18px) !important;
    font-weight: 900 !important;
}

.tab-content {
    padding: clamp(18px, 1.2vw, 28px) !important;
}

.chart-container {
    position: relative;
    min-height: 360px !important;
    height: clamp(380px, 33vw, 560px) !important;
    border-radius: 24px !important;
    overflow: hidden;
}

.chart-container canvas {
    width: 100% !important;
    height: 100% !important;
}

.chart-container.chart-empty::after {
    content: attr(data-empty);
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: rgba(226,232,240,0.75);
    font-size: clamp(18px, 1vw, 24px);
    font-weight: 900;
    letter-spacing: 0.02em;
    background: repeating-linear-gradient(135deg, rgba(255,255,255,0.03) 0 10px, transparent 10px 20px), var(--v2-soft);
}

/* 桌面布局重排：报告随综合卡，右栏更宽 */
@media (min-width: 1024px) {
    body.has-result .header {
        display: grid !important;
        grid-template-columns: minmax(220px, 300px) minmax(460px, 1fr) 58px !important;
        gap: 18px !important;
        align-items: center !important;
        padding: 14px clamp(22px, 3vw, 56px) !important;
    }

    body.has-result .header-content {
        grid-column: 1 !important;
        position: static !important;
        transform: none !important;
        width: auto !important;
        padding: 0 !important;
        margin: 0 !important;
        justify-content: flex-start !important;
    }

    body.has-result .header-left,
    body.has-result .header-content h1,
    body.has-result .header-left h1,
    body.has-result .subtitle {
        text-align: left !important;
        justify-content: flex-start !important;
    }

    body.has-result .header-content h1,
    body.has-result .header-left h1 {
        font-size: clamp(20px, 1vw, 28px) !important;
    }

    body.has-result .subtitle {
        font-size: clamp(12px, 0.45vw, 16px) !important;
    }

    body.has-result .search-section {
        grid-column: 2 !important;
        position: static !important;
        margin: 0 !important;
        width: 100% !important;
        max-width: none !important;
    }

    body.has-result #themeBtn.theme-btn {
        grid-column: 3 !important;
        position: static !important;
        transform: none !important;
        margin: 0 !important;
        justify-self: end !important;
    }

    body.has-result .result-container.active {
        display: grid !important;
        grid-template-columns: minmax(220px, 280px) minmax(320px, 0.4fr) minmax(850px, 1.2fr) !important;
        grid-template-areas:
            "stock analysis summary"
            "earnings analysis summary" !important;
        gap: clamp(16px, 1.2vw, 24px) !important;
        align-items: start !important;
        max-width: none !important;
        margin: 0 24px !important;
        width: calc(100% - 48px) !important;
    }

    body.has-result .stock-info {
        grid-area: stock !important;
        top: 104px !important;
    }

    body.has-result .earnings-alert {
        grid-area: earnings !important;
        top: auto !important;
    }

    body.has-result .analysis-section {
        grid-area: analysis !important;
    }

    body.has-result .summary-card {
        grid-area: summary !important;
        top: 104px !important;
    }

    body.has-result .detail-section {
        grid-area: auto !important;
    }

    body.has-result .metric-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    #fundamental .metric-grid,
    #capital .metric-grid,
    #valuation .metric-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    #technical .metric-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (min-width: 1460px) {
    body.has-result .result-container.active {
        grid-template-columns: minmax(240px, 300px) minmax(350px, 0.3fr) minmax(900px, 1.5fr) !important;
        max-width: none !important;
        margin: 0 32px !important;
        width: calc(100% - 64px) !important;
    }

    body.has-result .metric-grid,
    #technical .metric-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

/* 手机端：主题按钮仍在右上；搜索后为清晰卡片流 */
@media (max-width: 768px) {
    body:not(.has-result) #themeBtn.theme-btn {
        top: 16px !important;
        right: 16px !important;
        width: 48px !important;
        height: 48px !important;
    }

    body:not(.has-result) .search-box {
        grid-template-columns: minmax(0, 1fr) auto !important;
        padding: 7px !important;
    }

    body:not(.has-result) #stockInput {
        min-height: 48px !important;
        padding: 0 14px !important;
        font-size: clamp(15px, 3.4vw, 18px) !important;
    }

    body:not(.has-result) .search-btn {
        min-width: 92px !important;
        min-height: 48px !important;
        padding: 0 14px !important;
        font-size: clamp(14px, 3.4vw, 17px) !important;
    }

    body.has-result .header {
        display: grid !important;
        grid-template-columns: 1fr auto !important;
        gap: 10px !important;
        padding: 12px 14px !important;
    }

    body.has-result .header-content {
        grid-column: 1 / 2 !important;
        position: static !important;
        width: auto !important;
        padding: 0 !important;
        margin: 0 !important;
        justify-content: flex-start !important;
        transform: none !important;
    }

    body.has-result #themeBtn.theme-btn {
        grid-column: 2 / 3 !important;
        grid-row: 1 !important;
        position: static !important;
        transform: none !important;
        width: 46px !important;
        height: 46px !important;
        justify-self: end !important;
    }

    body.has-result .search-section {
        grid-column: 1 / -1 !important;
        position: static !important;
        margin: 6px 0 0 !important;
        width: 100% !important;
        max-width: none !important;
    }

    body.has-result .header-content h1,
    body.has-result .header-left h1 {
        font-size: clamp(20px, 5vw, 25px) !important;
    }

    body.has-result .subtitle {
        font-size: clamp(12px, 3.2vw, 15px) !important;
        text-align: left !important;
    }

    body.has-result .main {
        padding: 16px 14px 34px !important;
    }

    body.has-result .result-container.active {
        display: block !important;
    }

    .stock-info,
    .summary-card,
    .analysis-section,
    .earnings-alert {
        padding: 18px !important;
        border-radius: 22px !important;
    }

    .summary-card .detail-section.is-merged-report,
    .summary-card .detail-section {
        padding-top: 18px !important;
    }

    .metric-grid,
    body.has-result .metric-grid,
    #technical .metric-grid {
        grid-template-columns: 1fr !important;
    }

    .metric-card {
        min-height: auto !important;
        padding: 18px !important;
        grid-template-columns: 46px 1fr !important;
    }

    .metric-value {
        font-size: clamp(24px, 7vw, 34px) !important;
    }

    .chart-container {
        height: clamp(320px, 82vw, 430px) !important;
        min-height: 320px !important;
    }

    .tab-btn {
        min-width: 104px !important;
    }
}

@media (max-width: 420px) {
    body:not(.has-result) .hero-copy h2 {
        font-size: clamp(38px, 11vw, 54px) !important;
    }

    body:not(.has-result) .search-section {
        width: calc(100% - 28px) !important;
    }

    body:not(.has-result) .search-btn {
        min-width: 84px !important;
        padding: 0 10px !important;
    }

    body:not(.has-result) .search-btn i {
        margin-right: 0 !important;
    }
}


/* ===== V2 fix7: 柔和粉红默认色 + 老花友好 + 图标/报告精修 ===== */
body.theme-rose {
    --primary-gradient: linear-gradient(135deg, #d06b87 0%, #a76ada 52%, #7b61d8 100%);
    --primary-color: #d06b87;
    --primary-light: rgba(208, 107, 135, 0.14);
    --primary-medium: rgba(208, 107, 135, 0.30);
    --primary-dark: rgba(208, 107, 135, 0.48);
    --primary-shadow: rgba(184, 92, 128, 0.34);
    --v2-up: #ef4444;
    --v2-down: #22c55e;
}

body.theme-rose::before {
    background:
        radial-gradient(circle at 18% 22%, rgba(208, 107, 135, 0.14) 0%, transparent 46%),
        radial-gradient(circle at 82% 20%, rgba(167, 106, 218, 0.12) 0%, transparent 52%),
        radial-gradient(circle at 50% 86%, rgba(123, 97, 216, 0.10) 0%, transparent 58%);
}

body.theme-rose:not(.has-result) .header {
    background: linear-gradient(135deg, #ce6d86 0%, #a261da 52%, #7d58dc 100%) !important;
}

body.theme-rose.has-result .header,
body.theme-rose.has-result .main {
    background-image:
        radial-gradient(circle at 14% 16%, rgba(208, 107, 135, 0.25), transparent 32%),
        radial-gradient(circle at 84% 12%, rgba(167, 106, 218, 0.22), transparent 36%),
        linear-gradient(135deg, rgba(83, 57, 150, 0.70), rgba(42, 31, 82, 0.82)) !important;
}

html { font-size: 17px; }
body {
    --read-font: clamp(18px, 0.45vw + 16px, 22px);
    --read-small: clamp(16px, 0.33vw + 15px, 20px);
    --read-title: clamp(24px, 1vw + 20px, 38px);
    --read-hero: clamp(48px, 7.2vw, 92px);
}

/* 搜索前：主题按钮不要贴边，保持右上但更舒服 */
body:not(.has-result) #themeBtn.theme-btn {
    top: clamp(30px, 4.2vw, 52px) !important;
    right: clamp(26px, 4.2vw, 56px) !important;
    width: 58px !important;
    height: 58px !important;
    border-radius: 20px !important;
    background: rgba(255, 255, 255, 0.14) !important;
    border: 1.5px solid rgba(255, 255, 255, 0.25) !important;
    box-shadow: 0 12px 30px rgba(39, 24, 90, 0.18) !important;
}

body:not(.has-result) #themeBtn.theme-btn svg { width: 22px; height: 22px; }

/* 搜索后：主题按钮独立在右侧，和搜索按钮彻底分离 */
body.has-result .header {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
}
body.has-result #themeBtn.theme-btn {
    width: 56px !important;
    height: 56px !important;
    border-radius: 18px !important;
    background: rgba(255, 255, 255, 0.12) !important;
    border: 1.5px solid rgba(255, 255, 255, 0.20) !important;
    box-shadow: 0 10px 24px rgba(0,0,0,0.20) !important;
}
body.has-result .search-box { padding-right: 8px !important; }
body.has-result .search-btn { min-width: 118px !important; }

.theme-menu { top: 96px !important; right: clamp(20px, 3vw, 54px) !important; }
body.has-result .theme-menu { top: 82px !important; }

/* 详细分析报告：改成清晰结论卡，不再像笨重面板 */
.summary-card .detail-section.is-merged-report,
.summary-card .detail-section,
.detail-section {
    background: linear-gradient(180deg, rgba(255,255,255,0.075), rgba(255,255,255,0.045)) !important;
    border: 1.5px solid rgba(255,255,255,0.13) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.06), 0 16px 32px rgba(0,0,0,0.12) !important;
    border-radius: 26px !important;
    padding: 22px !important;
    margin-top: 22px !important;
}

.summary-card .detail-section h3,
.detail-section h3 {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    font-size: clamp(22px, 0.75vw + 18px, 28px) !important;
    margin-bottom: 18px !important;
    color: #fff !important;
}

.summary-card .report-content,
.report-content {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 14px !important;
}

.report-item {
    position: relative !important;
    padding: 18px 20px 18px 22px !important;
    border-radius: 20px !important;
    background: rgba(255,255,255,0.055) !important;
    border: 1.5px solid rgba(255,255,255,0.12) !important;
    box-shadow: none !important;
    overflow: hidden;
}

.report-item::before {
    content: '';
    position: absolute;
    left: 0;
    top: 14px;
    bottom: 14px;
    width: 5px;
    border-radius: 999px;
    background: rgba(255,255,255,0.30);
}
.report-item:nth-child(1)::before { background: linear-gradient(180deg, #f5a3b8, #d85b70); }
.report-item:nth-child(2)::before { background: linear-gradient(180deg, #f6c15b, #e69310); }
.report-item:nth-child(3)::before { background: linear-gradient(180deg, #75d7ff, #6d7cff); }

.report-item h4 {
    font-size: clamp(19px, 0.5vw + 17px, 24px) !important;
    line-height: 1.35 !important;
    margin-bottom: 10px !important;
    color: #f8fafc !important;
    font-weight: 950 !important;
}
.report-item p {
    color: rgba(226,232,240,0.88) !important;
    font-size: clamp(17px, 0.38vw + 16px, 21px) !important;
    line-height: 1.85 !important;
    font-weight: 650 !important;
}

/* 指标卡：每个指标显示相关图标，不再显示小白点 */
.metric-card {
    min-height: 150px !important;
    padding: 22px !important;
    border-radius: 24px !important;
}
.metric-icon {
    width: 58px !important;
    height: 58px !important;
    border-radius: 18px !important;
    font-size: 28px !important;
    line-height: 1 !important;
    color: #fff !important;
    background: linear-gradient(135deg, rgba(208,107,135,0.95), rgba(123,97,216,0.92)) !important;
    box-shadow: 0 12px 24px rgba(0,0,0,0.16), inset 0 1px 0 rgba(255,255,255,0.18) !important;
}
.metric-icon > i { display: none !important; }
.metric-icon::before { content: attr(data-icon); display: block; transform: translateY(1px); }
.metric-icon:not([data-icon])::before { content: '📌'; }
.metric-icon i:empty::before,
.metric-icon:empty::before { content: attr(data-icon) !important; }
.metric-icon.positive { background: linear-gradient(135deg, #d96f8b, #9d67d9) !important; }
.metric-icon.warning { background: linear-gradient(135deg, #e9a23b, #d46a76) !important; }
.metric-icon.neutral { background: linear-gradient(135deg, #6d7cff, #a66add) !important; }

.metric-name {
    font-size: clamp(17px, 0.35vw + 16px, 21px) !important;
    color: rgba(226,232,240,0.86) !important;
    font-weight: 900 !important;
}
.metric-value {
    font-size: clamp(32px, 1.6vw, 46px) !important;
    font-weight: 950 !important;
    letter-spacing: 0.01em !important;
}
.metric-score {
    font-size: clamp(17px, 0.35vw + 16px, 21px) !important;
}

/* 图表更清晰：避免空白感，坐标文字更大 */
.chart-container {
    background:
        linear-gradient(180deg, rgba(255,255,255,0.075), rgba(255,255,255,0.035)),
        rgba(24, 20, 58, 0.46) !important;
    border: 1.5px solid rgba(255,255,255,0.14) !important;
    min-height: 420px !important;
}
.chart-container.chart-empty::after {
    font-size: clamp(20px, 1.1vw, 28px) !important;
    color: rgba(255,255,255,0.86) !important;
}

@media (min-width: 1024px) {
    body.has-result .summary-card { min-width: 390px !important; }
    body.has-result .result-container.active {
        grid-template-columns: minmax(330px, 410px) minmax(700px, 1fr) minmax(420px, 500px) !important;
    }
    body.has-result .metric-grid,
    #fundamental .metric-grid,
    #capital .metric-grid,
    #valuation .metric-grid,
    #technical .metric-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (min-width: 1500px) {
    body.has-result .metric-grid,
    #fundamental .metric-grid,
    #capital .metric-grid,
    #valuation .metric-grid,
    #technical .metric-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 768px) {
    html { font-size: 16px; }
    body:not(.has-result) #themeBtn.theme-btn {
        top: 22px !important;
        right: 22px !important;
        width: 52px !important;
        height: 52px !important;
        border-radius: 18px !important;
    }
    body.has-result .header { display: flex !important; flex-direction: row !important; align-items: center !important; justify-content: space-between !important; }
    body.has-result #themeBtn.theme-btn {
        width: 52px !important;
        height: 52px !important;
    }
    .metric-card {
        grid-template-columns: 58px 1fr !important;
        min-height: 132px !important;
    }
    .report-item { padding: 18px 18px 18px 22px !important; }
    .chart-container { min-height: 360px !important; }
}

/* ===== V2 fix8: 移除不适合股市的主题色 + 搜索建议可滚动 + 老人字体档位 ===== */
body.theme-rose {
    --primary-gradient: linear-gradient(135deg, #c66a83 0%, #a064cf 52%, #765ad4 100%);
    --primary-color: #c66a83;
    --primary-light: rgba(198, 106, 131, 0.15);
    --primary-medium: rgba(198, 106, 131, 0.30);
    --primary-dark: rgba(198, 106, 131, 0.50);
    --primary-shadow: rgba(155, 83, 122, 0.35);
    --success-color: #d06b87;
    --v2-up: #ef4444;
    --v2-down: #22c55e;
    --bg-dark: #0a0e17;
    --bg-primary: #0f172a;
}

body.theme-rose:not(.has-result) .header {
    background: linear-gradient(135deg, #c66a83 0%, #a064cf 52%, #765ad4 100%) !important;
}

.theme-menu {
    max-height: min(76vh, 620px) !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    scrollbar-width: thin;
}

.font-dot {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: rgba(255,255,255,0.14) !important;
    color: #fff !important;
    font-weight: 950 !important;
    font-size: 12px !important;
    border-color: rgba(255,255,255,0.24) !important;
}

body.day-theme .font-dot {
    background: rgba(15,23,42,0.08) !important;
    color: #1e293b !important;
    border-color: rgba(15,23,42,0.18) !important;
}

body.font-small {
    --read-font: clamp(16px, 0.32vw + 14px, 19px);
    --read-small: clamp(15px, 0.22vw + 13px, 18px);
    --read-title: clamp(22px, 0.8vw + 18px, 32px);
    --read-hero: clamp(42px, 6.4vw, 78px);
}

body.font-medium {
    --read-font: clamp(18px, 0.45vw + 16px, 22px);
    --read-small: clamp(16px, 0.33vw + 15px, 20px);
    --read-title: clamp(24px, 1vw + 20px, 38px);
    --read-hero: clamp(48px, 7.2vw, 92px);
}

body.font-large {
    --read-font: clamp(21px, 0.55vw + 18px, 26px);
    --read-small: clamp(19px, 0.42vw + 17px, 24px);
    --read-title: clamp(29px, 1.15vw + 24px, 46px);
    --read-hero: clamp(56px, 7.9vw, 104px);
}

body.font-large .search-btn,
body.font-large #stockInput,
body.font-large .quick-picks button,
body.font-large .suggestions div,
body.font-large .tab-btn,
body.font-large .theme-option span {
    font-size: var(--read-small) !important;
}

body.font-large .metric-value,
body.font-large #currentPrice,
body.font-large .score-value {
    letter-spacing: 0 !important;
}

/* 搜索建议：电脑端鼠标滚轮可以滚，手机端可滑动 */
.suggestions {
    max-height: min(58vh, 560px) !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
    z-index: 120 !important;
}

body.has-suggestions:not(.has-result):not(.is-loading-stock) {
    overflow-y: auto !important;
}

body.has-suggestions:not(.has-result):not(.is-loading-stock) .header {
    height: auto !important;
    min-height: 100dvh !important;
    overflow: visible !important;
    padding-bottom: clamp(90px, 16vh, 180px) !important;
}

body.has-suggestions:not(.has-result):not(.is-loading-stock) .search-section {
    overflow: visible !important;
}

body.has-suggestions:not(.has-result):not(.is-loading-stock) .search-box {
    position: relative !important;
    z-index: 121 !important;
}

.suggestions div {
    min-height: 64px !important;
    padding: 16px 22px !important;
    font-size: clamp(18px, 0.55vw + 16px, 24px) !important;
    font-weight: 900 !important;
    letter-spacing: 0.01em !important;
}

.suggestions .code {
    font-size: clamp(16px, 0.45vw + 14px, 21px) !important;
    font-weight: 950 !important;
    letter-spacing: 0.08em !important;
    padding: 8px 13px !important;
    border-radius: 12px !important;
    color: #f8fafc !important;
    background: rgba(255,255,255,0.10) !important;
    border: 1px solid rgba(255,255,255,0.10) !important;
}

body.day-theme .suggestions .code {
    color: #1e293b !important;
    background: rgba(15,23,42,0.08) !important;
    border-color: rgba(15,23,42,0.10) !important;
}

.suggestions .more-tip {
    font-size: clamp(16px, 0.4vw + 14px, 20px) !important;
    font-weight: 900 !important;
}

/* 色彩统一：上涨/优秀/分数用柔红，弱势用蓝紫 */
.metric-score,
.score.good,
.rating-aaa,
.positive {
    color: #f0a7ba !important;
}

.change.negative,
.index-change.negative {
    color: #9db7ff !important;
}

@media (max-width: 768px) {
    .suggestions {
        max-height: min(52vh, 460px) !important;
    }
    .suggestions div {
        min-height: 58px !important;
        padding: 15px 18px !important;
        font-size: clamp(18px, 4.4vw, 23px) !important;
    }
    .suggestions .code {
        font-size: clamp(15px, 3.7vw, 20px) !important;
        padding: 7px 11px !important;
    }
    body.has-suggestions:not(.has-result):not(.is-loading-stock) .header {
        padding-bottom: 130px !important;
    }
}

/* ===== V2 fix12: 顶部栏重排、主题菜单双列、评分科技感、桌面布局收敛 ===== */
:root {
    --fx12-bg-left: rgba(198, 106, 131, 0.42);
    --fx12-bg-mid: rgba(112, 76, 162, 0.70);
    --fx12-bg-right: rgba(118, 90, 212, 0.62);
    --fx12-panel: rgba(26, 24, 54, 0.86);
    --fx12-panel-2: rgba(45, 43, 82, 0.82);
    --fx12-line: rgba(255,255,255,0.13);
}

/* 搜索前：搜索框不再无限拉长 */
@media (min-width: 1024px) {
    body:not(.has-result) .search-section {
        max-width: min(920px, calc(100vw - 120px)) !important;
    }
    body:not(.has-result) .search-box {
        max-width: 920px !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }
}

/* 搜索后背景统一，去掉左右突兀色块 */
body.has-result {
    background:
        radial-gradient(circle at 52% 20%, rgba(208,107,135,0.18), transparent 28%),
        linear-gradient(135deg, #b66b9c 0%, #68429b 45%, #7659cc 100%) !important;
}
body.has-result .main {
    background: transparent !important;
}
body.theme-rose.has-result .header,
body.has-result .header {
    background: linear-gradient(90deg, rgba(39,31,68,0.94), rgba(61,42,97,0.94), rgba(48,38,82,0.94)) !important;
    border-bottom: 1px solid rgba(255,255,255,0.12) !important;
    box-shadow: 0 10px 30px rgba(17,13,42,0.22) !important;
}

/* 搜索后顶部栏：logo / 搜索框 / 主题按钮强制居中对齐 */
@media (min-width: 1024px) {
    body.has-result .header {
        display: flex !important;
        flex-direction: row !important;
        justify-content: space-between !important;
        align-items: center !important;
        gap: clamp(20px, 2.2vw, 40px) !important;
        min-height: 78px !important;
        padding: 10px 28px !important;
        overflow: visible !important;
    }
    body.has-result .header-content {
        position: static !important;
        width: auto !important;
        max-width: none !important;
        padding: 0 !important;
        margin: 0 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: flex-start !important;
        transform: none !important;
    }
    body.has-result .header-left,
    body.has-result .header-left h1 {
        width: auto !important;
        margin: 0 !important;
        text-align: left !important;
        justify-content: flex-start !important;
        align-items: center !important;
        cursor: pointer;
    }
    body.has-result .header-left h1 {
        font-size: 22px !important;
        line-height: 1.1 !important;
        white-space: nowrap !important;
    }
    body.has-result .subtitle {
        margin-top: 4px !important;
        font-size: 12px !important;
        white-space: nowrap !important;
    }
    body.has-result .search-section {
        width: 100% !important;
        max-width: 640px !important;
        margin: 0 20px !important;
        position: static !important;
        transform: none !important;
        display: flex !important;
        flex: 1 !important;
        align-items: center !important;
    }
    body.has-result .search-box {
        width: 100% !important;
        max-width: 640px !important;
        min-height: 56px !important;
        margin: 0 auto !important;
        padding: 6px !important;
        border-radius: 18px !important;
        transform: none !important;
        box-shadow: inset 0 1px 0 rgba(255,255,255,0.10), 0 10px 24px rgba(0,0,0,0.16) !important;
    }
    body.has-result #stockInput {
        min-height: 42px !important;
        padding: 0 18px !important;
        font-size: 20px !important;
        line-height: 42px !important;
    }
    body.has-result .search-btn {
        height: 44px !important;
        min-height: 44px !important;
        min-width: 108px !important;
        padding: 0 20px !important;
        border-radius: 14px !important;
        font-size: 19px !important;
        line-height: 1 !important;
    }
    body.has-result #themeBtn.theme-btn {
        position: static !important;
        width: 50px !important;
        height: 50px !important;
        border-radius: 16px !important;
        transform: none !important;
        margin: 0 !important;
        flex-shrink: 0 !important;
    }
    body.has-result .main {
        padding-top: 28px !important;
        max-width: min(96vw, 1560px) !important;
    }
}

/* 主题面板：双列全部显示，不使用滚轮 */
.theme-menu {
    display: none !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
    min-width: 0 !important;
    width: min(420px, calc(100vw - 24px)) !important;
    max-height: none !important;
    overflow: visible !important;
    padding: 12px !important;
    border-radius: 20px !important;
    transform: none !important;
    z-index: 1000 !important;
}
.theme-menu.show { display: grid !important; }
.theme-divider {
    grid-column: 1 / -1 !important;
    padding: 6px 8px 2px !important;
    margin: 0 !important;
    font-size: 12px !important;
    font-weight: 900 !important;
}
.theme-option {
    min-height: 46px !important;
    padding: 8px 10px !important;
    gap: 9px !important;
    border-radius: 14px !important;
    transform: none !important;
}
.theme-option:hover { transform: none !important; }
.theme-option span {
    font-size: 15px !important;
    line-height: 1.15 !important;
    font-weight: 900 !important;
    white-space: nowrap !important;
}
.theme-dot {
    width: 24px !important;
    height: 24px !important;
    flex: 0 0 24px !important;
}
.theme-option.active::before {
    right: 8px !important;
    font-size: 15px !important;
}
@media (max-width: 520px) {
    .theme-menu {
        width: min(360px, calc(100vw - 18px)) !important;
        gap: 6px !important;
        padding: 10px !important;
    }
    .theme-option span { font-size: 14px !important; }
    .theme-option { min-height: 42px !important; padding: 7px 8px !important; }
}

/* 搜索后主体：中间板块拉宽，整体不再挤 */
@media (min-width: 1180px) {
    body.has-result .result-container.active {
        display: grid !important;
        grid-template-columns: minmax(280px, 330px) minmax(760px, 900px) minmax(330px, 390px) !important;
        grid-template-areas:
            "stock analysis summary"
            "earnings analysis summary" !important;
        gap: clamp(22px, 1.8vw, 32px) !important;
        align-items: start !important;
        justify-content: center !important;
        width: 100% !important;
        max-width: 1540px !important;
        margin: 0 auto !important;
    }
    body.font-large.has-result .result-container.active {
        grid-template-columns: minmax(280px, 320px) minmax(820px, 940px) minmax(330px, 380px) !important;
        max-width: 1580px !important;
    }
    body.has-result .analysis-section { grid-area: analysis !important; min-width: 0 !important; }
    body.has-result .summary-card { grid-area: summary !important; min-width: 0 !important; }
    body.has-result .stock-info { grid-area: stock !important; min-width: 0 !important; }
    body.has-result .earnings-alert { grid-area: earnings !important; min-width: 0 !important; margin-top: 14px !important; }
}
@media (min-width: 1180px) and (max-width: 1450px) {
    body.has-result .result-container.active {
        grid-template-columns: 290px minmax(650px, 1fr) 340px !important;
        max-width: calc(100vw - 48px) !important;
    }
}

/* 指标卡：标题尽量一行，数字不拆行 */
.metric-grid,
#fundamental .metric-grid,
#capital .metric-grid,
#valuation .metric-grid,
#technical .metric-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px !important;
}
.metric-card {
    min-width: 0 !important;
    min-height: 138px !important;
    padding: 20px 18px !important;
    grid-template-columns: 56px minmax(0, 1fr) !important;
    align-items: center !important;
}
.metric-name {
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    word-break: keep-all !important;
    line-height: 1.25 !important;
    font-size: clamp(17px, 0.28vw + 15px, 20px) !important;
}
.metric-value {
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    font-size: clamp(28px, 1.2vw, 40px) !important;
    line-height: 1.15 !important;
}
body.font-large .metric-card {
    grid-template-columns: 52px minmax(0, 1fr) !important;
    padding: 18px 16px !important;
}
body.font-large .metric-icon {
    width: 52px !important;
    height: 52px !important;
    font-size: 24px !important;
}
body.font-large .metric-name {
    font-size: clamp(18px, 0.25vw + 16px, 21px) !important;
}
body.font-large .metric-value {
    font-size: clamp(30px, 1vw, 38px) !important;
}
@media (min-width: 1500px) {
    #fundamental .metric-grid,
    #capital .metric-grid,
    #valuation .metric-grid,
    #technical .metric-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

/* 综合评分：动态颜色、波纹、等级提示 */
.summary-card .summary-content {
    position: relative !important;
    display: grid !important;
    grid-template-columns: 1fr auto !important;
    align-items: center !important;
    justify-items: center !important;
    gap: 16px !important;
}
.score-circle {
    position: relative !important;
    cursor: help !important;
    isolation: isolate !important;
    background: radial-gradient(circle at 35% 28%, rgba(255,255,255,0.22), transparent 32%), linear-gradient(135deg, #c66a83, #8f5bdc) !important;
    box-shadow: 0 0 0 0 rgba(208,107,135,0.32), 0 20px 46px rgba(122,78,200,0.30) !important;
    animation: scorePulseSoft 2.6s ease-in-out infinite !important;
}
.score-circle::before {
    content: '';
    position: absolute;
    inset: -10px;
    border-radius: inherit;
    border: 2px solid rgba(255,255,255,0.18);
    opacity: 0;
    animation: scoreWave 2.4s ease-out infinite;
    z-index: -1;
}
.score-circle::after {
    content: attr(data-tip);
    position: absolute;
    left: 50%;
    bottom: calc(100% + 14px);
    transform: translateX(-50%) translateY(8px);
    min-width: 260px;
    max-width: 340px;
    padding: 12px 14px;
    border-radius: 14px;
    color: #fff;
    background: rgba(16, 18, 40, 0.96);
    border: 1px solid rgba(255,255,255,0.16);
    box-shadow: 0 18px 44px rgba(0,0,0,0.34);
    font-size: 15px;
    line-height: 1.55;
    font-weight: 800;
    text-align: left;
    opacity: 0;
    pointer-events: none;
    transition: all .18s ease;
    z-index: 50;
}
.score-circle:hover::after {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}
.score-circle.score-tier-aaa { background: radial-gradient(circle at 30% 24%, rgba(255,255,255,.24), transparent 30%), linear-gradient(135deg, #e3a0b3, #c66a83 45%, #8f5bdc) !important; }
.score-circle.score-tier-aa { background: radial-gradient(circle at 30% 24%, rgba(255,255,255,.22), transparent 30%), linear-gradient(135deg, #d88fa6, #b36bd8) !important; }
.score-circle.score-tier-a { background: radial-gradient(circle at 30% 24%, rgba(255,255,255,.22), transparent 30%), linear-gradient(135deg, #72a7ff, #8f5bdc) !important; }
.score-circle.score-tier-bbb { background: radial-gradient(circle at 30% 24%, rgba(255,255,255,.18), transparent 30%), linear-gradient(135deg, #e7a448, #c66a83) !important; }
.score-circle.score-tier-bb { background: radial-gradient(circle at 30% 24%, rgba(255,255,255,.16), transparent 30%), linear-gradient(135deg, #e2844f, #a064cf) !important; }
.score-circle.score-tier-b { background: radial-gradient(circle at 30% 24%, rgba(255,255,255,.16), transparent 30%), linear-gradient(135deg, #de6072, #6d5bd4) !important; }
@keyframes scoreWave {
    0% { transform: scale(.96); opacity: .55; }
    72%,100% { transform: scale(1.22); opacity: 0; }
}
@keyframes scorePulseSoft {
    0%,100% { filter: brightness(1); }
    50% { filter: brightness(1.08); }
}
.rating-badge {
    position: static !important;
    align-self: start !important;
    justify-self: center !important;
    min-width: 76px !important;
    height: 58px !important;
    padding: 0 20px !important;
    border-radius: 999px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 27px !important;
    font-weight: 950 !important;
    cursor: help !important;
    box-shadow: 0 14px 28px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.22) !important;
}
.suggestion-box {
    grid-column: 1 / -1 !important;
    width: 100% !important;
}
.score-guide { grid-column: 1 / -1 !important; }

/* 小屏和中屏兜底 */
@media (max-width: 1179px) {
    body.has-result .header {
        display: grid !important;
        grid-template-columns: 1fr 54px !important;
        gap: 12px !important;
        align-items: center !important;
        padding: 12px 16px !important;
    }
    body.has-result .header-content {
        grid-column: 1 / -1 !important;
        position: static !important;
        padding: 0 !important;
        margin: 0 !important;
        justify-content: center !important;
    }
    body.has-result .search-section {
        grid-column: 1 !important;
        max-width: none !important;
        width: 100% !important;
        margin: 0 !important;
    }
    body.has-result #themeBtn.theme-btn {
        grid-column: 2 !important;
        position: static !important;
        justify-self: end !important;
        margin: 0 !important;
        transform: none !important;
    }
    body.has-result .result-container.active {
        display: block !important;
        max-width: 960px !important;
        margin: 0 auto !important;
    }
    .metric-grid,
    #fundamental .metric-grid,
    #capital .metric-grid,
    #valuation .metric-grid,
    #technical .metric-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}
@media (max-width: 680px) {
    .metric-grid,
    #fundamental .metric-grid,
    #capital .metric-grid,
    #valuation .metric-grid,
    #technical .metric-grid {
        grid-template-columns: 1fr !important;
    }
    .summary-card .summary-content { grid-template-columns: 1fr !important; }
    .rating-badge { align-self: center !important; }
}

/* ===== V2 fix13: 收敛搜索后布局、统一背景、股票卡补充信息 ===== */
:root {
    --fx13-page-bg: linear-gradient(135deg, #b76b9a 0%, #7748b2 48%, #7b5fd3 100%);
    --fx13-topbar: rgba(39, 30, 68, 0.88);
    --fx13-panel: rgba(30, 27, 60, 0.86);
    --fx13-panel-soft: rgba(255,255,255,0.055);
    --fx13-line: rgba(255,255,255,0.13);
}

/* 1. 搜索后只保留统一大背景，去掉内层色块叠加造成的色差 */
body.has-result {
    background: var(--fx13-page-bg) !important;
    background-attachment: fixed !important;
}

body.theme-rose.has-result {
    background: linear-gradient(135deg, #b76b9a 0%, #7748b2 48%, #7b5fd3 100%) !important;
}

body.theme-blue.has-result {
    background: linear-gradient(135deg, #4a69bd 0%, #6a5acd 48%, #7b5fd3 100%) !important;
}

body.theme-orange.has-result {
    background: linear-gradient(135deg, #d97706 0%, #f59e0b 48%, #fbbf24 100%) !important;
}

body.theme-purple.has-result {
    background: linear-gradient(135deg, #7c3aed 0%, #8b5cf6 48%, #a78bfa 100%) !important;
}

body.theme-cyan.has-result {
    background: linear-gradient(135deg, #0891b2 0%, #06b6d4 48%, #22d3ee 100%) !important;
}

body.theme-red.has-result {
    background: linear-gradient(135deg, #c8424a 0%, #d86a5e 48%, #8f5bdc 100%) !important;
}
body.has-result::before {
    background:
        radial-gradient(circle at 18% 12%, rgba(255,255,255,0.10), transparent 28%),
        radial-gradient(circle at 82% 10%, rgba(255,255,255,0.07), transparent 30%) !important;
}
body.has-result .main,
body.theme-rose.has-result .main,
body.has-result .result-container,
body.has-result .result-container.active {
    background: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
}

/* 2. 顶部栏压低高度，所有元素居中对齐，搜索框不要过长 */
body.has-result .header,
body.theme-rose.has-result .header {
    background: var(--fx13-topbar) !important;
    backdrop-filter: blur(18px) !important;
    border-bottom: 1px solid rgba(255,255,255,0.11) !important;
    box-shadow: 0 8px 22px rgba(16, 12, 40, 0.18) !important;
}
@media (min-width: 1024px) {
    body.has-result .header {
        min-height: 62px !important;
        height: 62px !important;
        padding: 0 clamp(22px, 3vw, 52px) !important;
        display: grid !important;
        grid-template-columns: 260px minmax(420px, 560px) 52px !important;
        justify-content: center !important;
        align-items: center !important;
        gap: clamp(24px, 3.2vw, 72px) !important;
        overflow: visible !important;
    }
    body.has-result .header-content {
        position: static !important;
        grid-column: 1 !important;
        width: auto !important;
        height: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: flex-start !important;
    }
    body.has-result .header-left {
        display: flex !important;
        flex-direction: column !important;
        justify-content: center !important;
        align-items: flex-start !important;
        height: 100% !important;
        margin: 0 !important;
    }
    body.has-result .header-left h1 {
        font-size: 20px !important;
        line-height: 1 !important;
        margin: 0 !important;
        white-space: nowrap !important;
    }
    body.has-result .subtitle {
        font-size: 11px !important;
        line-height: 1 !important;
        margin-top: 5px !important;
        white-space: nowrap !important;
    }
    body.has-result .search-section {
        grid-column: 2 !important;
        width: 100% !important;
        max-width: 560px !important;
        height: 100% !important;
        margin: 0 !important;
        position: static !important;
        display: flex !important;
        align-items: center !important;
        justify-self: center !important;
    }
    body.has-result .search-box {
        width: 100% !important;
        max-width: 560px !important;
        min-height: 46px !important;
        height: 46px !important;
        border-radius: 16px !important;
        padding: 5px !important;
        margin: 0 !important;
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto !important;
        align-items: center !important;
        transform: none !important;
    }
    body.has-result #stockInput {
        height: 36px !important;
        min-height: 36px !important;
        line-height: 36px !important;
        padding: 0 14px !important;
        font-size: 18px !important;
    }
    body.has-result .search-btn {
        height: 36px !important;
        min-height: 36px !important;
        min-width: 96px !important;
        border-radius: 13px !important;
        padding: 0 16px !important;
        font-size: 17px !important;
        line-height: 1 !important;
    }
    body.has-result #themeBtn.theme-btn {
        grid-column: 3 !important;
        position: static !important;
        justify-self: center !important;
        align-self: center !important;
        width: 46px !important;
        height: 46px !important;
        border-radius: 15px !important;
        margin: 0 !important;
        transform: none !important;
    }
    body.has-result .main {
        padding-top: 24px !important;
        max-width: min(96vw, 1500px) !important;
    }
}

/* 3. 主题面板对齐主题按钮，两列紧凑显示，不用滚轮 */
.theme-menu {
    width: 392px !important;
    max-width: calc(100vw - 28px) !important;
    max-height: none !important;
    overflow: visible !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 6px !important;
    padding: 10px !important;
    border-radius: 18px !important;
}
.theme-menu.show { display: grid !important; }
.theme-divider {
    grid-column: 1 / -1 !important;
    min-height: 20px !important;
    padding: 5px 8px 0 !important;
    font-size: 11px !important;
    line-height: 1.1 !important;
}
.theme-option {
    min-height: 39px !important;
    padding: 7px 9px !important;
    gap: 8px !important;
}
.theme-option span { font-size: 14px !important; }
.theme-dot { width: 22px !important; height: 22px !important; flex-basis: 22px !important; }
@media (min-width: 1024px) {
    body.has-result .theme-menu {
        top: 68px !important;
        right: max(22px, calc((100vw - 1500px) / 2 + 24px)) !important;
    }
    body:not(.has-result) .theme-menu {
        top: 96px !important;
        right: clamp(24px, 4vw, 58px) !important;
    }
}

/* 4. 搜索后主体改成真正三列，左栏股票卡和财报卡贴合 */
@media (min-width: 1180px) {
    body.has-result .result-container.active {
        display: grid !important;
        grid-template-columns: minmax(280px, 330px) minmax(720px, 860px) minmax(330px, 390px) !important;
        grid-template-areas: "left analysis summary" !important;
        justify-content: center !important;
        align-items: start !important;
        gap: clamp(20px, 1.6vw, 30px) !important;
        max-width: 1500px !important;
        margin: 0 auto !important;
        width: 100% !important;
    }
    body.has-result .left-rail {
        grid-area: left !important;
        display: flex !important;
        flex-direction: column !important;
        gap: 14px !important;
        min-width: 0 !important;
    }
    body.has-result .analysis-section { grid-area: analysis !important; min-width: 0 !important; }
    body.has-result .summary-card { grid-area: summary !important; min-width: 0 !important; }
    body.has-result .stock-info,
    body.has-result .earnings-alert {
        position: relative !important;
        top: auto !important;
        margin: 0 !important;
    }
}
@media (min-width: 1500px) {
    body.has-result .result-container.active {
        grid-template-columns: minmax(300px, 350px) minmax(780px, 900px) minmax(340px, 410px) !important;
        max-width: 1580px !important;
    }
}

/* 5. 股票信息卡补充标签，让价格数字有语义，卡片不空 */
.stock-info {
    padding: 24px !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 20px !important;
}
.stock-info .stock-header {
    display: flex !important;
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
    width: 100% !important;
}
.stock-name {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    align-items: flex-start !important;
    flex: 1 !important;
    min-width: 0 !important;
}
.stock-name #stockName {
    font-size: clamp(28px, 1.45vw, 38px) !important;
    line-height: 1.12 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    max-width: 100% !important;
}
.stock-name .code {
    font-size: 15px !important;
    font-weight: 800 !important;
    letter-spacing: .06em !important;
    padding: 7px 13px !important;
    border-radius: 999px !important;
}
.stock-price {
    margin-top: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-end !important;
    gap: 10px !important;
    flex: none !important;
    white-space: nowrap !important;
}
.price-caption {
    color: rgba(226,232,240,.64) !important;
    font-size: 14px !important;
    font-weight: 900 !important;
    letter-spacing: .08em !important;
}
#currentPrice {
    font-size: clamp(44px, 2.6vw, 60px) !important;
    line-height: .95 !important;
    letter-spacing: .06em !important;
}
.change {
    padding: 8px 14px !important;
    border-radius: 12px !important;
    font-size: 17px !important;
    font-weight: 950 !important;
}
.stock-mini-grid {
    margin-top: 0 !important;
    padding-top: 18px !important;
    border-top: 1.5px solid rgba(255,255,255,.10) !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    gap: 12px !important;
    flex: none !important;
}
.stock-mini-item {
    min-width: 0 !important;
    border: 1px solid rgba(255,255,255,.10) !important;
    border-radius: 14px !important;
    background: rgba(255,255,255,.055) !important;
    padding: 10px 12px !important;
}
.stock-mini-item span {
    display: block !important;
    color: rgba(226,232,240,.62) !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    margin-bottom: 5px !important;
    white-space: nowrap !important;
}
.stock-mini-item strong {
    display: block !important;
    color: #fff !important;
    font-size: clamp(15px, .5vw + 13px, 19px) !important;
    font-weight: 950 !important;
    line-height: 1.25 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}
.earnings-alert {
    display: flex !important;
    gap: 14px !important;
    align-items: center !important;
    padding: 18px !important;
    border-radius: 20px !important;
}
.earnings-info { line-height: 1.65 !important; }

/* 6. 指标卡标题一行优先，中间区域更舒展 */
.metric-card {
    min-height: 128px !important;
    padding: 18px !important;
    grid-template-columns: 54px minmax(0,1fr) !important;
}
.metric-name {
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}
.metric-value {
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}
body.has-result .analysis-section { background: var(--fx13-panel) !important; }
body.has-result .summary-card,
body.has-result .stock-info,
body.has-result .earnings-alert { background: var(--fx13-panel) !important; }

@media (max-width: 1179px) {
    body.has-result .left-rail {
        display: flex !important;
        flex-direction: column !important;
        gap: 14px !important;
        margin-bottom: 16px !important;
    }
    body.has-result .result-container.active {
        display: block !important;
        max-width: 960px !important;
    }
}
@media (max-width: 680px) {
    .stock-mini-grid { grid-template-columns: 1fr 1fr !important; gap: 8px !important; }
    .stock-info { padding: 20px !important; }
    #currentPrice { font-size: clamp(42px, 11vw, 56px) !important; }
    body.has-result .header {
        min-height: auto !important;
        height: auto !important;
    }
}


/* ===== V2 fix14: 顶部栏/主题菜单/左右栏综合收敛 ===== */
/* 1. 亮度选项去掉前置圆点，只保留文字里的太阳/月亮图标 */
.theme-option[data-theme="day"] .theme-dot,
.theme-option[data-theme="night"] .theme-dot {
    display: none !important;
}
.theme-option[data-theme="day"],
.theme-option[data-theme="night"] {
    justify-content: center !important;
}

/* 2. 主题菜单双列紧凑显示，不出现内部滚轮 */
.theme-menu {
    display: none !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    width: 380px !important;
    max-width: calc(100vw - 20px) !important;
    max-height: none !important;
    overflow: visible !important;
    padding: 10px !important;
    gap: 6px !important;
    border-radius: 18px !important;
}
.theme-menu.show { display: grid !important; }
.theme-divider {
    grid-column: 1 / -1 !important;
    padding: 4px 8px 1px !important;
    min-height: 16px !important;
    font-size: 11px !important;
    line-height: 1.05 !important;
}
.theme-option {
    min-height: 36px !important;
    padding: 6px 9px !important;
    border-radius: 13px !important;
    gap: 7px !important;
}
.theme-option span {
    font-size: 13px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
}
.theme-dot {
    width: 20px !important;
    height: 20px !important;
    flex: 0 0 20px !important;
    font-size: 12px !important;
}
.theme-option.active::before {
    right: 7px !important;
    font-size: 13px !important;
}
@media (max-width: 520px) {
    .theme-menu {
        width: min(340px, calc(100vw - 18px)) !important;
        gap: 5px !important;
        padding: 8px !important;
    }
    .theme-option { min-height: 34px !important; padding: 5px 7px !important; }
    .theme-option span { font-size: 12px !important; }
}

/* 3. 搜索前首页搜索框不要无限拉长 */
@media (min-width: 1024px) {
    body:not(.has-result):not(.is-loading-stock) .search-section {
        width: min(860px, calc(100vw - 180px)) !important;
        max-width: 860px !important;
    }
    body:not(.has-result):not(.is-loading-stock) .search-box {
        max-width: 860px !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }
    body:not(.has-result):not(.is-loading-stock) #themeBtn.theme-btn {
        position: absolute !important;
        top: 28px !important;
        right: clamp(28px, 4vw, 66px) !important;
        width: 48px !important;
        height: 48px !important;
        border-radius: 15px !important;
    }
}

/* 4. 搜索后顶部栏：真正一行，logo/搜索/主题全部垂直居中 */
@media (min-width: 1024px) {
    body.has-result .header {
        height: 60px !important;
        min-height: 60px !important;
        padding: 0 clamp(22px, 3.6vw, 64px) !important;
        display: grid !important;
        grid-template-columns: 240px minmax(360px, 520px) 48px !important;
        justify-content: center !important;
        align-items: center !important;
        gap: clamp(22px, 3.2vw, 64px) !important;
        overflow: visible !important;
        background: rgba(43, 32, 78, 0.94) !important;
        border-bottom: 1px solid rgba(255,255,255,.12) !important;
    }
    body.has-result .header-content {
        grid-column: 1 !important;
        position: static !important;
        width: auto !important;
        height: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: flex-start !important;
        transform: none !important;
    }
    body.has-result .header-left {
        height: 100% !important;
        display: flex !important;
        flex-direction: column !important;
        justify-content: center !important;
        align-items: flex-start !important;
        margin: 0 !important;
    }
    body.has-result .header-left h1 {
        font-size: 20px !important;
        line-height: 1 !important;
        margin: 0 !important;
        white-space: nowrap !important;
    }
    body.has-result .subtitle {
        font-size: 11px !important;
        line-height: 1 !important;
        margin-top: 5px !important;
        white-space: nowrap !important;
    }
    body.has-result .search-section {
        grid-column: 2 !important;
        position: relative !important;
        width: 100% !important;
        max-width: 520px !important;
        height: 100% !important;
        margin: 0 !important;
        display: flex !important;
        align-items: center !important;
        justify-self: center !important;
        transform: none !important;
    }
    body.has-result .hero-copy,
    body.has-result .quick-picks {
        display: none !important;
    }
    body.has-result .search-box {
        width: 100% !important;
        max-width: 520px !important;
        height: 42px !important;
        min-height: 42px !important;
        padding: 4px !important;
        margin: 0 !important;
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto !important;
        align-items: center !important;
        border-radius: 15px !important;
        transform: none !important;
    }
    body.has-result #stockInput {
        height: 34px !important;
        min-height: 34px !important;
        line-height: 34px !important;
        padding: 0 14px !important;
        font-size: 17px !important;
    }
    body.has-result .search-btn {
        height: 34px !important;
        min-height: 34px !important;
        min-width: 92px !important;
        padding: 0 15px !important;
        border-radius: 12px !important;
        font-size: 16px !important;
        line-height: 1 !important;
    }
    body.has-result #themeBtn.theme-btn {
        grid-column: 3 !important;
        position: static !important;
        width: 44px !important;
        height: 44px !important;
        border-radius: 14px !important;
        margin: 0 !important;
        justify-self: center !important;
        align-self: center !important;
        transform: none !important;
    }
    body.has-result .suggestions {
        position: absolute !important;
        top: calc(100% + 8px) !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        max-height: 360px !important;
        overflow-y: auto !important;
        z-index: 1200 !important;
    }
    body.has-result .main {
        padding-top: 24px !important;
        max-width: min(96vw, 1760px) !important;
    }
}

/* 5. 搜索后桌面布局整体拉宽，右侧综合评估和左侧股票卡更舒展 */
@media (min-width: 1500px) {
    body.has-result .result-container.active {
        grid-template-columns: minmax(340px, 390px) minmax(760px, 1fr) minmax(420px, 500px) !important;
        gap: clamp(24px, 1.8vw, 34px) !important;
        max-width: min(96vw, 1780px) !important;
        justify-content: center !important;
    }
}
@media (min-width: 1180px) and (max-width: 1499px) {
    body.has-result .result-container.active {
        grid-template-columns: 300px minmax(560px, 1fr) 350px !important;
        gap: 20px !important;
        max-width: calc(100vw - 34px) !important;
    }
    body.has-result .stock-info { padding: 20px !important; }
    body.has-result #currentPrice { font-size: clamp(42px, 3.4vw, 54px) !important; }
}

/* 6. 股票卡：增加说明感，不空；财报卡贴近上方 */
.left-rail {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
}
.stock-info {
    width: 100% !important;
    min-height: auto !important;
    padding: 26px !important;
}
.stock-price {
    margin-top: 20px !important;
}
.price-caption::before {
    content: '● ';
    opacity: .65;
}
.stock-mini-grid {
    margin-top: 20px !important;
    padding-top: 16px !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}
.earnings-alert {
    width: 100% !important;
    margin-top: 0 !important;
}

/* 7. 综合评估卡拉宽后重新排版，报告内容不挤 */
.summary-card {
    width: 100% !important;
    padding: 26px !important;
}
.summary-card .summary-content {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    column-gap: 16px !important;
    row-gap: 18px !important;
    align-items: center !important;
    justify-items: center !important;
}
.score-circle {
    width: clamp(150px, 9vw, 190px) !important;
    height: clamp(150px, 9vw, 190px) !important;
}
.rating-badge {
    position: static !important;
    justify-self: end !important;
    align-self: start !important;
    min-width: 74px !important;
    height: 58px !important;
    border-radius: 22px !important;
    font-size: 26px !important;
}
.suggestion-box,
.summary-report {
    grid-column: 1 / -1 !important;
    width: 100% !important;
}
.summary-report .report-grid {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
}
.summary-report .report-item {
    padding: 18px 20px !important;
}
.summary-report .report-item h4 {
    white-space: nowrap !important;
}
.summary-report .report-item p {
    line-height: 1.7 !important;
}

/* 8. 指标卡标题一行优先，避免一行字拆成两三行 */
.metric-card {
    min-height: 120px !important;
    grid-template-columns: 54px minmax(0, 1fr) !important;
    align-items: center !important;
}
.metric-name {
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    max-width: 100% !important;
}
.metric-value {
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}
@media (min-width: 1500px) {
    .metric-card { padding: 18px 20px !important; }
}

/* 9. 中小屏自动收敛，避免硬挤 */
@media (max-width: 1179px) {
    body.has-result .header {
        height: auto !important;
        min-height: 72px !important;
        padding: 12px 16px !important;
    }
    body.has-result .search-section {
        max-width: 680px !important;
        margin: 12px auto 0 !important;
    }
    .summary-card .summary-content {
        grid-template-columns: 1fr auto !important;
    }
}
@media (max-width: 680px) {
    .summary-card .summary-content {
        grid-template-columns: 1fr !important;
    }
    .rating-badge {
        justify-self: center !important;
        align-self: center !important;
    }
}

/* ===== V2 fix15: 红色主题 / 顶栏回位 / 卡片布局再收敛 ===== */
/* 大涨红主题：偏柔和，不刺眼，适合老花眼阅读 */
body.theme-red {
    --primary-gradient: linear-gradient(135deg, #c8424a 0%, #d86a5e 48%, #8f5bdc 100%);
    --primary-color: #d84f58;
    --primary-light: rgba(216, 79, 88, 0.12);
    --primary-medium: rgba(216, 79, 88, 0.28);
    --primary-dark: rgba(216, 79, 88, 0.48);
    --primary-shadow: rgba(216, 79, 88, 0.34);
    --bg-dark: #0a0e17;
    --bg-primary: #0f172a;
    --fx13-page-bg: linear-gradient(135deg, #c8424a 0%, #d86a5e 48%, #8f5bdc 100%);
    --fx13-topbar: rgba(60, 30, 40, 0.88);
}
body.theme-red::before {
    background:
        radial-gradient(circle at 20% 80%, rgba(216,79,88,.10) 0%, transparent 50%),
        radial-gradient(circle at 80% 20%, rgba(143,91,220,.08) 0%, transparent 50%),
        radial-gradient(circle at 50% 50%, rgba(216,79,88,.05) 0%, transparent 70%);
}
body.day-theme.theme-red {
    --primary-gradient: linear-gradient(135deg, #c8424a 0%, #d86a5e 48%, #8f5bdc 100%);
    --primary-color: #c8424a;
    --primary-light: rgba(200, 66, 74, 0.10);
    --primary-medium: rgba(200, 66, 74, 0.22);
    --primary-dark: rgba(200, 66, 74, 0.42);
    --primary-shadow: rgba(200, 66, 74, 0.30);
}

/* 主题面板：紧凑两列，全部展开，不出现内部滚动条 */
.theme-menu {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    width: 410px !important;
    max-width: calc(100vw - 24px) !important;
    max-height: none !important;
    overflow: visible !important;
    align-items: stretch !important;
    transform: none !important;
}
.theme-menu.show { display: grid !important; }
.theme-divider { grid-column: 1 / -1 !important; }
.theme-option { min-width: 0 !important; }
.theme-option[data-theme="day"],
.theme-option[data-theme="night"] { justify-content: flex-start !important; }
.theme-option[data-theme="day"] .theme-dot,
.theme-option[data-theme="night"] .theme-dot { display: none !important; }
@media (max-width: 520px) {
    .theme-menu { width: min(360px, calc(100vw - 18px)) !important; }
}

/* 搜索后顶部栏：搜索框必须回到顶部栏内，全部垂直居中 */
@media (min-width: 1024px) {
    body.has-result .header {
        height: 68px !important;
        min-height: 68px !important;
        padding: 0 clamp(28px, 4vw, 76px) !important;
        display: grid !important;
        grid-template-columns: minmax(220px, 280px) minmax(420px, 560px) 54px !important;
        justify-content: center !important;
        align-content: center !important;
        align-items: center !important;
        gap: clamp(28px, 4vw, 86px) !important;
        overflow: visible !important;
        background: rgba(43, 32, 78, .94) !important;
        border-bottom: 1px solid rgba(255,255,255,.12) !important;
        z-index: 100 !important;
    }
    body.has-result .header-content,
    body.has-result .search-section,
    body.has-result #themeBtn.theme-btn {
        position: static !important;
        top: auto !important;
        left: auto !important;
        right: auto !important;
        bottom: auto !important;
        transform: none !important;
        margin: 0 !important;
    }
    body.has-result .header-content {
        grid-column: 1 !important;
        width: 100% !important;
        height: 68px !important;
        padding: 0 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: flex-start !important;
    }
    body.has-result .header-left {
        height: auto !important;
        min-height: 0 !important;
        display: flex !important;
        flex-direction: column !important;
        justify-content: center !important;
        align-items: flex-start !important;
        gap: 5px !important;
    }
    body.has-result .header-left h1 {
        font-size: 20px !important;
        line-height: 1 !important;
        margin: 0 !important;
        white-space: nowrap !important;
    }
    body.has-result .subtitle {
        font-size: 11px !important;
        line-height: 1 !important;
        margin: 0 !important;
        white-space: nowrap !important;
    }
    body.has-result .search-section {
        grid-column: 2 !important;
        width: 100% !important;
        max-width: 560px !important;
        height: 68px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        justify-self: center !important;
        z-index: 101 !important;
    }
    body.has-result .search-box {
        width: 100% !important;
        max-width: 560px !important;
        height: 44px !important;
        min-height: 44px !important;
        padding: 4px !important;
        margin: 0 !important;
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto !important;
        align-items: center !important;
        border-radius: 16px !important;
        transform: none !important;
    }
    body.has-result #stockInput {
        height: 36px !important;
        min-height: 36px !important;
        line-height: 36px !important;
        padding: 0 16px !important;
        font-size: 17px !important;
    }
    body.has-result .search-btn {
        height: 36px !important;
        min-height: 36px !important;
        min-width: 96px !important;
        padding: 0 17px !important;
        border-radius: 13px !important;
        font-size: 16px !important;
        line-height: 1 !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
    }
    body.has-result #themeBtn.theme-btn {
        grid-column: 3 !important;
        width: 46px !important;
        height: 46px !important;
        border-radius: 15px !important;
        justify-self: center !important;
        align-self: center !important;
        z-index: 102 !important;
    }
    body.has-result .suggestions {
        position: absolute !important;
        top: calc(100% - 6px) !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        z-index: 1400 !important;
    }
    body.has-result .main {
        padding-top: 22px !important;
    }
}

/* 首页搜索框限制长度：大屏也保持美观 */
@media (min-width: 1024px) {
    body:not(.has-result):not(.is-loading-stock) .search-section,
    body:not(.has-result):not(.is-loading-stock) .search-box {
        width: min(840px, calc(100vw - 220px)) !important;
        max-width: 840px !important;
    }
}

/* 搜索后主体：中间更宽，右侧更宽，但整体居中，不再硬挤 */
@media (min-width: 1380px) {
    body.has-result .result-container.active {
        grid-template-columns: minmax(320px, 360px) minmax(700px, 860px) minmax(420px, 500px) !important;
        gap: clamp(22px, 1.6vw, 34px) !important;
        max-width: min(94vw, 1760px) !important;
        margin-inline: auto !important;
        justify-content: center !important;
        align-items: start !important;
    }
}
@media (min-width: 1180px) and (max-width: 1379px) {
    body.has-result .result-container.active {
        grid-template-columns: minmax(290px, 330px) minmax(560px, 1fr) minmax(360px, 420px) !important;
        gap: 18px !important;
        max-width: calc(100vw - 28px) !important;
    }
}

/* 左侧股票卡：信息不再乱挤，核心数字有标签说明 */
body.has-result .stock-info {
    padding: 24px !important;
    border-radius: 24px !important;
}
body.has-result .stock-header {
    display: block !important;
}
body.has-result .stock-name {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 10px !important;
}
body.has-result .stock-name #stockName {
    font-size: clamp(28px, 1.35vw, 38px) !important;
    line-height: 1.12 !important;
}
body.has-result .stock-price {
    margin-top: 22px !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
}
body.has-result .price-caption {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    color: rgba(226,232,240,.68) !important;
    font-size: 14px !important;
    letter-spacing: .04em !important;
}
body.has-result .price-caption::before { content: '实时' !important; opacity: 1 !important; }
body.has-result #currentPrice {
    font-size: clamp(46px, 3.1vw, 62px) !important;
    line-height: 1 !important;
    letter-spacing: .04em !important;
}
body.has-result .change {
    justify-self: start !important;
    min-width: 94px !important;
    text-align: center !important;
}
body.has-result .stock-mini-grid {
    margin-top: 22px !important;
    padding-top: 18px !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
}
body.has-result .stock-mini-item {
    min-height: 68px !important;
    padding: 11px 12px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
}
body.has-result .stock-mini-item span,
body.has-result .stock-mini-item strong {
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
}
body.has-result .earnings-alert {
    margin-top: 0 !important;
    padding: 18px 20px !important;
    border-radius: 22px !important;
}
body.has-result .left-rail {
    gap: 12px !important;
}

/* 右侧综合评估：拉宽，分数和评级更协调 */
body.has-result .summary-card {
    padding: 28px !important;
    border-radius: 26px !important;
}
body.has-result .summary-card .summary-content {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    column-gap: 18px !important;
    row-gap: 18px !important;
    justify-items: center !important;
    align-items: center !important;
}
body.has-result .score-circle {
    width: clamp(170px, 9.5vw, 210px) !important;
    height: clamp(170px, 9.5vw, 210px) !important;
    cursor: default !important;
}
body.has-result .rating-badge {
    justify-self: center !important;
    align-self: center !important;
    min-width: 82px !important;
    height: 62px !important;
    border-radius: 999px !important;
    font-size: 28px !important;
    cursor: default !important;
}
body.has-result .suggestion-box,
body.has-result .summary-report {
    grid-column: 1 / -1 !important;
    width: 100% !important;
}
body.has-result .summary-report .report-grid {
    grid-template-columns: 1fr !important;
    gap: 13px !important;
}
body.has-result .summary-report .report-item {
    padding: 18px 20px !important;
}

/* 指标卡：标题优先一行，不把数值拆成竖排 */
body.has-result .metric-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px !important;
}
body.has-result .metric-card {
    min-height: 124px !important;
    grid-template-columns: 56px minmax(0, 1fr) !important;
    padding: 18px 20px !important;
}
body.has-result .metric-name {
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}
body.has-result .metric-value {
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    line-height: 1.15 !important;
}
body.has-result .analysis-text {
    line-height: 1.75 !important;
}

/* 移除“帮助问号”鼠标样式，但保留悬停说明卡 */
.score-circle,
.rating-badge {
    cursor: default !important;
}

@media (max-width: 1179px) {
    body.has-result .header {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: wrap !important;
        min-height: 78px !important;
        height: auto !important;
        padding: 10px 14px !important;
        align-items: center !important;
        justify-content: space-between !important;
    }
    body.has-result .search-section {
        width: min(680px, 100%) !important;
        height: auto !important;
        margin: 10px 0 0 !important;
        flex: 0 0 100% !important;
        order: 3 !important;
    }
    body.has-result #themeBtn.theme-btn {
        order: 2 !important;
    }
    body.has-result .header-content {
        order: 1 !important;
    }
    body.has-result .summary-card .summary-content {
        grid-template-columns: minmax(0, 1fr) auto !important;
    }
}
@media (max-width: 680px) {
    body.has-result .summary-card .summary-content {
        grid-template-columns: 1fr !important;
    }
    body.has-result .rating-badge {
        justify-self: center !important;
    }
    body.has-result .metric-grid {
        grid-template-columns: 1fr !important;
    }
}

/* ===== Final Fix: Ensure header layout in has-result state ===== */
body.has-result .header {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 16px !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 80 !important;
}

body.has-result .header-content {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    flex: none !important;
    order: 1 !important;
}

body.has-result .search-section {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    flex: 1 !important;
    max-width: 600px !important;
    order: 2 !important;
}

body.has-result #themeBtn.theme-btn {
    position: static !important;
    flex: none !important;
    order: 3 !important;
}

/* ===== COMPLETE FIX: Header layout for has-result state ===== */
/* This block overrides ALL previous conflicting styles */
body.has-result .header {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 20px !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 999 !important;
    min-height: auto !important;
    height: auto !important;
    padding: 10px 24px !important;
    overflow: visible !important;
    background: rgba(7, 11, 20, 0.95) !important;
    backdrop-filter: blur(20px) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2) !important;
}

body.has-result .header-content {
    position: static !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    width: auto !important;
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
    flex: none !important;
    order: 1 !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-start !important;
    transform: none !important;
}

body.has-result .header-left {
    text-align: left !important;
    flex: none !important;
    width: auto !important;
    margin: 0 !important;
}

body.has-result .header-content h1 {
    font-size: 16px !important;
    margin-bottom: 0 !important;
    justify-content: flex-start !important;
    text-align: left !important;
    white-space: nowrap !important;
}

body.has-result .subtitle {
    display: none !important;
}

body.has-result .search-section {
    position: static !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    width: 100% !important;
    max-width: 600px !important;
    margin: 0 20px !important;
    padding: 0 !important;
    flex: 1 !important;
    order: 2 !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;
    transform: none !important;
}

body.has-result .search-box {
    width: 100% !important;
    min-height: 48px !important;
    padding: 5px !important;
    border-radius: 18px !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: 8px !important;
}

body.has-result #stockInput {
    padding: 10px 16px !important;
    font-size: 14px !important;
}

body.has-result .search-btn {
    min-width: 80px !important;
    padding: 10px 16px !important;
    border-radius: 14px !important;
}

body.has-result .hero-copy,
body.has-result .quick-picks {
    display: none !important;
}

body.has-result #themeBtn.theme-btn {
    position: static !important;
    top: auto !important;
    right: auto !important;
    width: 44px !important;
    height: 44px !important;
    border-radius: 14px !important;
    flex: none !important;
    order: 3 !important;
    transform: none !important;
    margin: 0 !important;
}

body.day-theme.has-result .header {
    background: rgba(255, 255, 255, 0.95) !important;
}

body.day-theme.has-result .header h1,
body.day-theme.has-result .header .theme-btn {
    color: #1e293b !important;
}

/* ====================== FINAL FIX ====================== */
/* This block OVERRIDES ALL previous conflicting styles */
/* The header has 3 direct children: header-content, theme-btn, search-section */
/* We need them all to be in a horizontal flex row */
/* ======================================================= */

body.has-result .header,
body.has-result .header.has-result {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 20px !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 9999 !important;
    min-height: 60px !important;
    height: auto !important;
    max-height: none !important;
    padding: 10px 24px !important;
    margin: 0 !important;
    background: rgba(7, 11, 20, 0.65) !important;
    backdrop-filter: blur(24px) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
    box-shadow: 0 2px 15px rgba(0, 0, 0, 0.15) !important;
    overflow: visible !important;
}

body.has-result .header-content {
    position: static !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    width: auto !important;
    max-width: none !important;
    padding: 0 !important;
    margin-left: 20px !important;
    flex: none !important;
    order: 1 !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-start !important;
    transform: none !important;
    z-index: auto !important;
}

body.has-result .header-left {
    text-align: left !important;
    flex: none !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.has-result .header-content h1 {
    font-size: 20px !important;
    font-weight: 700 !important;
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
    justify-content: flex-start !important;
    text-align: left !important;
    white-space: nowrap !important;
    line-height: 1.3 !important;
    letter-spacing: normal !important;
    color: white !important;
}

body.has-result .header-content h1 svg {
    width: 24px !important;
    height: 24px !important;
    margin-right: 10px !important;
}

body.has-result .subtitle {
    display: none !important;
}

body.has-result .theme-btn,
body.has-result #themeBtn.theme-btn {
    position: static !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    width: 44px !important;
    height: 44px !important;
    border-radius: 14px !important;
    flex: none !important;
    order: 3 !important;
    transform: none !important;
    margin: 0 !important;
    padding: 0 !important;
    z-index: auto !important;
    background: rgba(255, 255, 255, 0.12) !important;
    border: 1px solid rgba(255, 255, 255, 0.18) !important;
    color: white !important;
}

body.has-result .search-section {
    position: static !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    width: 100% !important;
    max-width: 600px !important;
    margin: 0 !important;
    padding: 0 !important;
    flex: 1 !important;
    order: 2 !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;
    transform: none !important;
    z-index: auto !important;
    gap: 0 !important;
}

body.has-result .hero-copy {
    display: none !important;
}

body.has-result .quick-picks {
    display: none !important;
}

body.has-result .search-box {
    width: 100% !important;
    min-height: 48px !important;
    height: auto !important;
    padding: 6px !important;
    border-radius: 18px !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: 8px !important;
    background: rgba(255, 255, 255, 0.10) !important;
    border: 1px solid rgba(255, 255, 255, 0.15) !important;
    box-shadow: none !important;
}

body.has-result #stockInput {
    width: 100% !important;
    padding: 10px 16px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    background: transparent !important;
    border: none !important;
    outline: none !important;
    color: white !important;
    border-radius: 14px !important;
}

body.has-result #stockInput::placeholder {
    color: rgba(255, 255, 255, 0.5) !important;
}

body.has-result .search-btn {
    min-width: 80px !important;
    padding: 10px 16px !important;
    border-radius: 14px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    background: var(--primary-gradient) !important;
    border: none !important;
    color: white !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
}

body.has-result .search-btn:hover {
    opacity: 0.9 !important;
    transform: scale(1.02) !important;
}

body.day-theme.has-result .header {
    background: rgba(255, 255, 255, 0.98) !important;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08) !important;
}

body.day-theme.has-result .header h1,
body.day-theme.has-result .header .theme-btn,
body.day-theme.has-result #stockInput {
    color: #1e293b !important;
}

body.day-theme.has-result #stockInput::placeholder {
    color: rgba(0, 0, 0, 0.4) !important;
}

body.day-theme.has-result .search-box {
    background: rgba(0, 0, 0, 0.05) !important;
    border: 1px solid rgba(0, 0, 0, 0.1) !important;
}

body.day-theme.has-result .theme-btn {
    background: rgba(0, 0, 0, 0.08) !important;
    border: 1px solid rgba(0, 0, 0, 0.12) !important;
}

/* ====================== STOCK INFO CARD FIX ====================== */
/* Fix layout of the left-side stock info card */
/* ================================================================ */

body.has-result .stock-info {
    display: flex !important;
    flex-direction: column !important;
    gap: 20px !important;
    padding: 24px !important;
    overflow: hidden !important;
    border-radius: 24px !important;
}

body.has-result .stock-header {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    align-items: flex-start !important;
    width: 100% !important;
    flex: none !important;
    gap: 16px !important;
}

body.has-result .stock-name {
    display: flex !important;
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: center !important;
    width: 100% !important;
    gap: 12px !important;
    flex: none !important;
}

body.has-result .stock-name #stockName {
    font-size: clamp(28px, 1.45vw, 38px) !important;
    line-height: 1.12 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    flex: 1 !important;
    min-width: 0 !important;
}

body.has-result .stock-name .code {
    font-size: 14px !important;
    font-weight: 800 !important;
    letter-spacing: .06em !important;
    padding: 6px 12px !important;
    border-radius: 999px !important;
    flex: none !important;
    white-space: nowrap !important;
}

body.has-result .stock-price {
    margin-top: 0 !important;
    display: flex !important;
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: center !important;
    width: 100% !important;
    gap: 12px !important;
    flex: none !important;
}

body.has-result .price-caption {
    display: none !important;
}

body.has-result .price-caption::before {
    display: none !important;
}

body.has-result #currentPrice {
    font-size: clamp(44px, 2.6vw, 60px) !important;
    line-height: .95 !important;
    letter-spacing: .06em !important;
}

body.has-result .change {
    padding: 8px 14px !important;
    border-radius: 12px !important;
    font-size: 17px !important;
    font-weight: 950 !important;
    justify-self: flex-end !important;
    min-width: auto !important;
    text-align: center !important;
}

body.has-result .stock-mini-grid {
    margin-top: 0 !important;
    padding-top: 18px !important;
    border-top: 1.5px solid rgba(255,255,255,.10) !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    gap: 12px !important;
    flex: none !important;
}

body.has-result .stock-mini-item {
    min-width: 0 !important;
    border: 1px solid rgba(255,255,255,.10) !important;
    border-radius: 14px !important;
    background: rgba(255,255,255,.055) !important;
    padding: 10px 12px !important;
    min-height: 68px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
}

body.has-result .stock-mini-item span {
    display: block !important;
    color: rgba(226,232,240,.62) !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    margin-bottom: 5px !important;
    white-space: nowrap !important;
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
}

body.has-result .stock-mini-item strong {
    display: block !important;
    color: #fff !important;
    font-size: clamp(15px, .5vw + 13px, 19px) !important;
    font-weight: 950 !important;
    line-height: 1.25 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
}

/* ====================== RESULT CONTAINER LAYOUT FIX ====================== */
/* Ensure proper three-column layout on large screens */
/* ======================================================================= */

body.has-result .result-container.active {
    display: grid !important;
    grid-template-columns: minmax(300px, 380px) minmax(600px, 1fr) minmax(320px, 400px) !important;
    gap: 20px !important;
    max-width: calc(100vw - 40px) !important;
    margin: 0 auto !important;
    padding: 20px !important;
    width: 100% !important;
}

body.has-result .left-rail {
    display: flex !important;
    flex-direction: column !important;
    gap: 16px !important;
    min-width: 0 !important;
}

body.has-result .stock-info {
    display: flex !important;
    flex-direction: column !important;
    gap: 16px !important;
    padding: 24px !important;
    overflow: hidden !important;
    border-radius: 24px !important;
    min-width: 0 !important;
}

body.has-result .earnings-alert {
    margin-top: 0 !important;
}

body.has-result .analysis-section {
    min-width: 0 !important;
    order: 2 !important;
}

body.has-result .summary-card {
    min-width: 0 !important;
    order: 3 !important;
}

@media (max-width: 1023px) {
    body.has-result .result-container.active {
        display: block !important;
        max-width: none !important;
        padding: 16px !important;
    }
    
    body.has-result .left-rail {
        display: flex !important;
        flex-direction: column !important;
        gap: 16px !important;
        margin-bottom: 16px !important;
    }
}

@media (min-width: 1024px) and (max-width: 1179px) {
    body.has-result .result-container.active {
        grid-template-columns: minmax(280px, 340px) minmax(0, 1fr) minmax(300px, 360px) !important;
        gap: 16px !important;
    }
}

@media (min-width: 1180px) {
    body.has-result .result-container.active {
        grid-template-columns: minmax(300px, 380px) minmax(700px, 1fr) minmax(340px, 420px) !important;
        gap: 24px !important;
        max-width: 1700px !important;
    }
}

/* ====================== FINAL OVERRIDE ====================== */
/* Last resort to fix any remaining layout issues */
/* ============================================================= */

body.has-result .stock-header,
body.has-result .stock-info .stock-header {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    align-items: flex-start !important;
    width: 100% !important;
    flex: none !important;
    gap: 12px !important;
}

body.has-result .stock-header > .stock-name,
body.has-result .stock-info .stock-header .stock-name {
    display: flex !important;
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: center !important;
    width: 100% !important;
    gap: 10px !important;
    flex: none !important;
}

body.has-result .stock-header > .stock-price,
body.has-result .stock-info .stock-header .stock-price {
    display: flex !important;
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: center !important;
    width: 100% !important;
    gap: 10px !important;
    flex: none !important;
}

body.has-result .stock-header > .stock-price > .price-caption {
    display: none !important;
}

body.has-result .stock-header > .stock-price > #currentPrice {
    flex: 1 !important;
    text-align: left !important;
    font-size: 36px !important;
    font-weight: 700 !important;
}

body.has-result .stock-header > .stock-price > .change {
    flex: none !important;
}

body.has-result .stock-info .stock-header .stock-price::before,
body.has-result .stock-info .stock-header .stock-price::after,
body.has-result .stock-info .stock-header::before,
body.has-result .stock-info .stock-header::after {
    content: none !important;
    display: none !important;
}

@keyframes glow-pulse {
    0%, 100% {
        filter: drop-shadow(0 0 4px currentColor);
    }
    50% {
        filter: drop-shadow(0 0 12px currentColor) drop-shadow(0 0 20px currentColor);
    }
}

body.has-result .change {
    font-weight: 800 !important;
    animation: glow-pulse 2s ease-in-out infinite !important;
}

body.has-result .change.positive {
    color: #ef4444 !important;
    background: rgba(239, 68, 68, 0.15) !important;
    animation: glow-pulse 2s ease-in-out infinite !important;
}

body.has-result .change.negative {
    color: #22c55e !important;
    background: rgba(34, 197, 94, 0.15) !important;
    animation: glow-pulse 2s ease-in-out infinite !important;
}

/* Remove right white bar */
body:not(.has-result),
html {
    background-color: #0a0e17 !important;
    background-image: linear-gradient(180deg, #0a0e17 0%, #0f172a 100%) !important;
}

body.has-result .stock-info,
body.has-result .summary-card,
body.has-result .analysis-section,
body.has-result .earnings-alert {
    border: 1.5px solid rgba(255, 255, 255, 0.15) !important;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.08) !important;
}

body.has-result .main {
    padding-left: 24px !important;
    padding-right: 24px !important;
    max-width: 1700px !important;
    margin: 0 auto !important;
}

#mainContainer,
.main {
    background: transparent !important;
}

body.has-result {
    background-color: #0a0e17 !important;
    background-image: linear-gradient(180deg, #0a0e17 0%, #0f172a 100%) !important;
}

body.has-result::before {
    background: 
        radial-gradient(circle at 20% 80%, rgba(208, 107, 135, 0.1) 0%, transparent 50%),
        radial-gradient(circle at 80% 20%, rgba(118, 75, 162, 0.08) 0%, transparent 50%),
        radial-gradient(circle at 50% 50%, rgba(208, 107, 135, 0.04) 0%, transparent 70%) !important;
}

/* ===== V2 fix16：综合评估板块横向加宽 ===== */
/* 桌面端：扩大右侧“综合评估”栏，减少内容拥挤 */
@media (min-width: 1500px) {
    body.has-result .result-container.active {
        grid-template-columns: minmax(320px, 380px) minmax(650px, 1fr) minmax(460px, 540px) !important;
        gap: clamp(20px, 1.5vw, 30px) !important;
        max-width: min(96vw, 1820px) !important;
    }
}

@media (min-width: 1180px) and (max-width: 1499px) {
    body.has-result .result-container.active {
        grid-template-columns: minmax(270px, 320px) minmax(0, 1fr) minmax(390px, 450px) !important;
        gap: 18px !important;
        max-width: calc(100vw - 24px) !important;
        padding-left: 6px !important;
        padding-right: 6px !important;
    }
}

/* 平板与手机端：减少两层容器的左右留白，让卡片真正贴近两侧并明显变宽 */
@media (max-width: 1023px) {
    body.has-result .main {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    body.has-result .result-container.active {
        width: 100% !important;
        max-width: none !important;
        padding-left: 8px !important;
        padding-right: 8px !important;
    }

    body.has-result .summary-card {
        width: 100% !important;
        max-width: none !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
}

@media (max-width: 680px) {
    body.has-result .main {
        padding-left: 6px !important;
        padding-right: 6px !important;
    }

    body.has-result .result-container.active {
        padding-left: 6px !important;
        padding-right: 6px !important;
    }

    body.has-result .summary-card {
        padding-left: 22px !important;
        padding-right: 22px !important;
        border-radius: 24px !important;
    }
}

/* ===== V2 fix17：综合评估字体统一，不随板块加宽而放大 ===== */
/* 仅收紧综合评估区域的文字大小，卡片宽度与原有布局保持不变 */
body.has-result .summary-card .summary-header h2,
body.has-result .summary-card .detail-section h3 {
    font-size: 20px !important;
    line-height: 1.35 !important;
    font-weight: 800 !important;
}

body.has-result .summary-card .suggestion-box p {
    font-size: 15px !important;
    line-height: 1.65 !important;
    font-weight: 700 !important;
}

body.has-result .summary-card .report-item h4 {
    font-size: 17px !important;
    line-height: 1.45 !important;
    font-weight: 800 !important;
    letter-spacing: 0 !important;
}

body.has-result .summary-card .report-item p {
    font-size: 15px !important;
    line-height: 1.75 !important;
    font-weight: 600 !important;
    letter-spacing: 0 !important;
}

body.has-result .summary-card .score-label {
    font-size: 14px !important;
    line-height: 1.3 !important;
}

body.has-result .summary-card .rating-badge {
    font-size: 22px !important;
}

/* 手机和平板继续使用同一套字号，避免响应式规则再次放大 */
@media (max-width: 1023px) {
    body.has-result .summary-card .summary-header h2,
    body.has-result .summary-card .detail-section h3 {
        font-size: 20px !important;
    }

    body.has-result .summary-card .report-item h4 {
        font-size: 17px !important;
    }

    body.has-result .summary-card .suggestion-box p,
    body.has-result .summary-card .report-item p {
        font-size: 15px !important;
    }

    body.has-result .summary-card .score-label {
        font-size: 14px !important;
    }

    body.has-result .summary-card .rating-badge {
        font-size: 22px !important;
    }
}

/* ===== V2 fix18：综合评估继续加宽，详细分析报告正文缩小 ===== */
/* 桌面大屏：继续扩大右侧“综合评估”栏 */
@media (min-width: 1500px) {
    body.has-result .result-container.active {
        grid-template-columns: minmax(300px, 360px) minmax(600px, 1fr) minmax(540px, 640px) !important;
        gap: clamp(18px, 1.25vw, 26px) !important;
        max-width: min(98vw, 1900px) !important;
        padding-left: 4px !important;
        padding-right: 4px !important;
    }
}

/* 常见电脑宽度：右侧综合评估再增加约 60–80px */
@media (min-width: 1180px) and (max-width: 1499px) {
    body.has-result .result-container.active {
        grid-template-columns: minmax(250px, 300px) minmax(0, 1fr) minmax(460px, 530px) !important;
        gap: 14px !important;
        max-width: calc(100vw - 8px) !important;
        padding-left: 2px !important;
        padding-right: 2px !important;
    }
}

/* 平板和手机：进一步压缩页面两侧留白，让综合评估卡接近满宽 */
@media (max-width: 1023px) {
    body.has-result .main {
        padding-left: 2px !important;
        padding-right: 2px !important;
    }

    body.has-result .result-container.active {
        width: 100% !important;
        max-width: none !important;
        padding-left: 2px !important;
        padding-right: 2px !important;
    }

    body.has-result .summary-card {
        width: 100% !important;
        max-width: none !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
}

@media (max-width: 680px) {
    body.has-result .main,
    body.has-result .result-container.active {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    body.has-result .summary-card {
        padding-left: 18px !important;
        padding-right: 18px !important;
        border-radius: 22px !important;
    }
}

/* “详细分析报告”标题保持原大小，只缩小其下方三个报告卡片的文字 */
body.has-result .summary-card .report-item h4 {
    font-size: 15px !important;
    line-height: 1.4 !important;
    font-weight: 800 !important;
}

body.has-result .summary-card .report-item p {
    font-size: 13px !important;
    line-height: 1.65 !important;
    font-weight: 600 !important;
}

/* 小屏保持一致，防止旧响应式规则把文字再次放大 */
@media (max-width: 1023px) {
    body.has-result .summary-card .report-item h4 {
        font-size: 15px !important;
    }

    body.has-result .summary-card .report-item p {
        font-size: 13px !important;
        line-height: 1.65 !important;
    }
}


/* ===== V2 fix19：综合评估继续加宽 + 主题面板遮挡层优化 ===== */
/* 主题菜单打开时，用独立遮罩隔离下方内容，避免卡片文字透在菜单后面造成干扰 */
.theme-backdrop {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 9000;
    background: rgba(4, 7, 16, 0.58);
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
    opacity: 0;
    transition: opacity 0.18s ease;
}

.theme-backdrop.show {
    display: block;
    opacity: 1;
}

body.theme-menu-open {
    overflow: hidden !important;
}

/* 菜单始终位于所有分析卡片之上，并加强不透明度与边界 */
.theme-menu,
body.has-result .theme-menu {
    position: fixed !important;
    z-index: 10050 !important;
    width: 410px !important;
    max-width: calc(100vw - 20px) !important;
    max-height: calc(100vh - 20px) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    isolation: isolate !important;
    background: rgba(25, 36, 58, 0.985) !important;
    border: 1px solid rgba(255, 255, 255, 0.14) !important;
    box-shadow: 0 22px 70px rgba(0, 0, 0, 0.58), 0 0 0 1px rgba(255, 255, 255, 0.04) inset !important;
    -webkit-backdrop-filter: blur(26px) saturate(135%) !important;
    backdrop-filter: blur(26px) saturate(135%) !important;
}

body.day-theme .theme-menu,
body.day-theme.has-result .theme-menu {
    background: rgba(255, 255, 255, 0.985) !important;
    border-color: rgba(15, 23, 42, 0.12) !important;
    box-shadow: 0 22px 70px rgba(15, 23, 42, 0.25), 0 0 0 1px rgba(15, 23, 42, 0.03) inset !important;
}

body.theme-menu-open #themeBtn.theme-btn {
    position: relative !important;
    z-index: 10060 !important;
    box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.13), 0 8px 24px rgba(0, 0, 0, 0.34) !important;
}

@media (max-width: 520px) {
    .theme-menu,
    body.has-result .theme-menu {
        width: min(360px, calc(100vw - 16px)) !important;
        max-height: calc(100vh - 16px) !important;
        border-radius: 16px !important;
    }
}

/* 大屏：显著扩大右侧综合评估列，同时让中间分析区保持可读宽度 */
@media (min-width: 1500px) {
    body.has-result .result-container.active {
        grid-template-columns: minmax(270px, 330px) minmax(560px, 1fr) minmax(620px, 740px) !important;
        gap: clamp(16px, 1.1vw, 24px) !important;
        max-width: min(99vw, 2020px) !important;
        padding-left: 2px !important;
        padding-right: 2px !important;
    }
}

/* 常见电脑宽度：综合评估继续增加约 60–90px */
@media (min-width: 1180px) and (max-width: 1499px) {
    body.has-result .result-container.active {
        grid-template-columns: minmax(220px, 280px) minmax(360px, 1fr) minmax(520px, 610px) !important;
        gap: 12px !important;
        max-width: calc(100vw - 4px) !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
}

/* 较窄电脑：在不改成单列的情况下优先保证综合评估的宽度 */
@media (min-width: 1024px) and (max-width: 1179px) {
    body.has-result .result-container.active {
        grid-template-columns: minmax(210px, 250px) minmax(300px, 1fr) minmax(410px, 470px) !important;
        gap: 10px !important;
        max-width: calc(100vw - 4px) !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
}

/* 平板与手机仍保持整行满宽，不让旧规则重新加回左右空隙 */
@media (max-width: 1023px) {
    body.has-result .summary-card {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
}

/* ===== V2 fix20：综合评估收窄、文字放大、评分与评级重排 ===== */
/* 桌面端收窄右侧综合评估栏，把空间还给中间分析区 */
@media (min-width: 1500px) {
    body.has-result .result-container.active {
        grid-template-columns: minmax(280px, 340px) minmax(620px, 1fr) minmax(500px, 580px) !important;
        gap: clamp(18px, 1.2vw, 26px) !important;
        max-width: min(97vw, 1880px) !important;
        padding-left: 10px !important;
        padding-right: 10px !important;
    }
}

@media (min-width: 1180px) and (max-width: 1499px) {
    body.has-result .result-container.active {
        grid-template-columns: minmax(240px, 300px) minmax(420px, 1fr) minmax(430px, 500px) !important;
        gap: 16px !important;
        max-width: calc(100vw - 20px) !important;
        padding-left: 6px !important;
        padding-right: 6px !important;
    }
}

@media (min-width: 1024px) and (max-width: 1179px) {
    body.has-result .result-container.active {
        grid-template-columns: minmax(220px, 260px) minmax(330px, 1fr) minmax(380px, 430px) !important;
        gap: 12px !important;
        max-width: calc(100vw - 16px) !important;
        padding-left: 4px !important;
        padding-right: 4px !important;
    }
}

/* 平板与手机端不再贴满屏幕，左右留出更舒服的呼吸空间 */
@media (max-width: 1023px) {
    body.has-result .summary-card {
        width: calc(100% - 64px) !important;
        max-width: 740px !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding: 26px !important;
    }
}

@media (max-width: 680px) {
    body.has-result .summary-card {
        width: calc(100% - 30px) !important;
        padding: 22px 20px !important;
        border-radius: 22px !important;
    }
}

@media (max-width: 420px) {
    body.has-result .summary-card {
        width: calc(100% - 20px) !important;
        padding: 20px 16px !important;
    }
}

/* 综合评估内部统一改为纵向居中结构 */
body.has-result .summary-card .summary-content {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    justify-items: stretch !important;
    align-items: start !important;
    row-gap: 18px !important;
    column-gap: 0 !important;
}

body.has-result .score-visual {
    position: relative !important;
    width: min(100%, 330px) !important;
    min-height: 216px !important;
    margin: 0 auto 2px !important;
    padding: 8px 46px 8px 8px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    isolation: isolate !important;
}

/* 分数圆改成更干净的高质感渐变，不再大幅呼吸闪动 */
body.has-result .score-circle {
    width: 190px !important;
    height: 190px !important;
    min-width: 190px !important;
    min-height: 190px !important;
    border-radius: 50% !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 5px !important;
    animation: none !important;
    box-shadow:
        0 22px 46px rgba(15, 10, 45, 0.34),
        0 0 0 7px rgba(255, 255, 255, 0.055),
        inset 0 1px 0 rgba(255, 255, 255, 0.30),
        inset 0 -18px 32px rgba(53, 22, 91, 0.12) !important;
}

body.has-result .score-circle::before {
    inset: -8px !important;
    border: 1px solid rgba(255, 255, 255, 0.20) !important;
    opacity: 1 !important;
    animation: none !important;
}

body.has-result .score-circle::after {
    display: none !important;
}

body.has-result .summary-card .score-value {
    font-size: 60px !important;
    line-height: 0.95 !important;
    font-weight: 900 !important;
    letter-spacing: -2px !important;
    text-shadow: 0 4px 18px rgba(48, 20, 82, 0.28) !important;
}

body.has-result .summary-card .score-label {
    font-size: 15px !important;
    line-height: 1.35 !important;
    font-weight: 800 !important;
    letter-spacing: 0.2px !important;
}

body.has-result .summary-card .score-label span {
    margin-left: 3px !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    opacity: 0.72 !important;
}

/* 评级变成贴在评分圆右侧的独立小卡，分数与等级成为一个整体 */
body.has-result .rating-chip {
    position: absolute !important;
    top: 50% !important;
    right: 2px !important;
    transform: translateY(-50%) !important;
    width: 96px !important;
    padding: 9px !important;
    border-radius: 20px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 7px !important;
    background: linear-gradient(160deg, rgba(36, 31, 72, 0.96), rgba(45, 40, 83, 0.88)) !important;
    border: 1px solid rgba(255, 255, 255, 0.18) !important;
    box-shadow: 0 16px 34px rgba(16, 10, 42, 0.34), inset 0 1px 0 rgba(255, 255, 255, 0.10) !important;
    z-index: 4 !important;
}

body.has-result .rating-caption {
    color: rgba(255, 255, 255, 0.72) !important;
    font-size: 12px !important;
    line-height: 1 !important;
    font-weight: 800 !important;
    letter-spacing: 1.5px !important;
}

body.has-result .summary-card .rating-badge {
    position: static !important;
    width: 78px !important;
    min-width: 78px !important;
    height: 48px !important;
    padding: 0 10px !important;
    border-radius: 14px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 25px !important;
    line-height: 1 !important;
    font-weight: 950 !important;
    letter-spacing: 0.4px !important;
    color: #fff !important;
    border: 1px solid rgba(255, 255, 255, 0.20) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.24), 0 8px 18px rgba(0, 0, 0, 0.18) !important;
}

/* 标题和正文整体放大，重点解决报告正文偏小问题 */
body.has-result .summary-card .summary-header h2,
body.has-result .summary-card .detail-section h3 {
    font-size: 22px !important;
    line-height: 1.35 !important;
    font-weight: 850 !important;
}

body.has-result .summary-card .suggestion-box {
    margin-top: 0 !important;
    padding: 16px 18px !important;
    border-radius: 16px !important;
}

body.has-result .summary-card .suggestion-box p {
    font-size: 17px !important;
    line-height: 1.65 !important;
    font-weight: 800 !important;
    letter-spacing: 0.1px !important;
}

body.has-result .summary-card .detail-section,
body.has-result .summary-card .detail-section.is-merged-report {
    padding: 22px 20px !important;
    border-radius: 22px !important;
}

body.has-result .summary-card .report-content {
    gap: 14px !important;
}

body.has-result .summary-card .report-item {
    padding: 20px 20px 20px 24px !important;
    border-radius: 17px !important;
}

body.has-result .summary-card .report-item h4 {
    margin-bottom: 8px !important;
    font-size: 18px !important;
    line-height: 1.4 !important;
    font-weight: 850 !important;
}

body.has-result .summary-card .report-item p {
    font-size: 16px !important;
    line-height: 1.72 !important;
    font-weight: 650 !important;
    letter-spacing: 0 !important;
}

body.font-large.has-result .summary-card .suggestion-box p {
    font-size: 18px !important;
}

body.font-large.has-result .summary-card .report-item h4 {
    font-size: 19px !important;
}

body.font-large.has-result .summary-card .report-item p {
    font-size: 17px !important;
}

@media (max-width: 680px) {
    body.has-result .score-visual {
        width: min(100%, 300px) !important;
        min-height: 202px !important;
        padding-right: 40px !important;
    }

    body.has-result .score-circle {
        width: 176px !important;
        height: 176px !important;
        min-width: 176px !important;
        min-height: 176px !important;
    }

    body.has-result .summary-card .score-value {
        font-size: 54px !important;
    }

    body.has-result .rating-chip {
        right: 0 !important;
        width: 90px !important;
        padding: 8px !important;
    }

    body.has-result .summary-card .rating-badge {
        width: 72px !important;
        min-width: 72px !important;
        height: 46px !important;
        font-size: 23px !important;
    }

    body.has-result .summary-card .summary-header h2,
    body.has-result .summary-card .detail-section h3 {
        font-size: 21px !important;
    }

    body.has-result .summary-card .suggestion-box p {
        font-size: 16px !important;
    }

    body.has-result .summary-card .report-item h4 {
        font-size: 17px !important;
    }

    body.has-result .summary-card .report-item p {
        font-size: 15.5px !important;
        line-height: 1.72 !important;
    }
}

body.day-theme.has-result .rating-chip {
    background: rgba(255, 255, 255, 0.96) !important;
    border-color: rgba(15, 23, 42, 0.12) !important;
    box-shadow: 0 16px 34px rgba(15, 23, 42, 0.18), inset 0 1px 0 rgba(255, 255, 255, 0.80) !important;
}

body.day-theme.has-result .rating-caption {
    color: rgba(30, 41, 59, 0.66) !important;
}

body.has-result .rating-chip::before {
    content: '' !important;
    position: absolute !important;
    left: -1px !important;
    top: 18px !important;
    bottom: 18px !important;
    width: 3px !important;
    border-radius: 0 4px 4px 0 !important;
    background: var(--rating-color, #f59e0b) !important;
    box-shadow: 0 0 14px var(--rating-color, #f59e0b) !important;
}

/* =========================================================
   综合评分 HUD 科技感优化（评分 + 评级一体化）
   ========================================================= */
body.has-result .score-visual {
    position: relative !important;
    width: min(100%, 310px) !important;
    min-height: 232px !important;
    margin: 0 auto 2px !important;
    padding: 12px 10px 28px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    isolation: isolate !important;
}

/* HUD 两侧刻度装饰 */
body.has-result .score-visual::before,
body.has-result .score-visual::after {
    content: '' !important;
    position: absolute !important;
    top: 52% !important;
    width: 28px !important;
    height: 64px !important;
    opacity: .62 !important;
    pointer-events: none !important;
    background:
        linear-gradient(var(--rating-color, #60a5fa), var(--rating-color, #60a5fa)) 0 0 / 100% 1px no-repeat,
        linear-gradient(var(--rating-color, #60a5fa), var(--rating-color, #60a5fa)) 0 50% / 72% 1px no-repeat,
        linear-gradient(var(--rating-color, #60a5fa), var(--rating-color, #60a5fa)) 0 100% / 100% 1px no-repeat;
    filter: drop-shadow(0 0 7px var(--rating-color, #60a5fa));
}

body.has-result .score-visual::before {
    left: 7px !important;
    transform: translateY(-50%) !important;
}

body.has-result .score-visual::after {
    right: 7px !important;
    transform: translateY(-50%) scaleX(-1) !important;
}

/* 分数主体：由实心圆改成动态仪表环 */
body.has-result .score-circle {
    --score: 0;
    --rating-color: #60a5fa;
    width: 184px !important;
    height: 184px !important;
    min-width: 184px !important;
    min-height: 184px !important;
    border-radius: 50% !important;
    position: relative !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 5px !important;
    overflow: visible !important;
    animation: none !important;
    background:
        radial-gradient(circle at center,
            rgba(48, 37, 91, .98) 0 60%,
            transparent 60.8%),
        conic-gradient(from -90deg,
            var(--rating-color) 0 calc(var(--score) * 1%),
            rgba(255, 255, 255, .10) calc(var(--score) * 1%) 100%) !important;
    box-shadow:
        0 22px 48px rgba(12, 8, 36, .42),
        0 0 32px color-mix(in srgb, var(--rating-color) 28%, transparent),
        inset 0 0 0 1px rgba(255, 255, 255, .13) !important;
}

/* 内部玻璃面 */
body.has-result .score-circle::before {
    content: '' !important;
    position: absolute !important;
    inset: 13px !important;
    border-radius: 50% !important;
    background:
        radial-gradient(circle at 36% 24%, rgba(255,255,255,.16), transparent 34%),
        radial-gradient(circle at 50% 115%, rgba(139,92,246,.24), transparent 48%),
        linear-gradient(145deg, rgba(87,66,143,.98), rgba(44,34,82,.98)) !important;
    border: 1px solid rgba(255, 255, 255, .14) !important;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.20),
        inset 0 -18px 36px rgba(17, 11, 49, .24) !important;
    filter: none !important;
    opacity: 1 !important;
    animation: none !important;
    z-index: 0 !important;
}

/* 外轨道细圈 */
body.has-result .score-circle::after {
    content: '' !important;
    display: block !important;
    position: absolute !important;
    inset: -9px !important;
    border-radius: 50% !important;
    border: 1px solid rgba(255,255,255,.12) !important;
    border-left-color: color-mix(in srgb, var(--rating-color) 68%, transparent) !important;
    border-right-color: color-mix(in srgb, var(--rating-color) 35%, transparent) !important;
    box-shadow: 0 0 18px color-mix(in srgb, var(--rating-color) 18%, transparent) !important;
    opacity: .92 !important;
    pointer-events: none !important;
}

body.has-result .summary-card .score-value {
    position: relative !important;
    z-index: 2 !important;
    margin-top: -5px !important;
    font-family: "DIN Alternate", "Arial Narrow", Arial, sans-serif !important;
    font-size: 61px !important;
    line-height: .92 !important;
    font-weight: 900 !important;
    font-variant-numeric: tabular-nums !important;
    letter-spacing: -2.5px !important;
    text-shadow:
        0 0 16px rgba(255,255,255,.14),
        0 5px 18px rgba(10,6,30,.34) !important;
}

body.has-result .summary-card .score-label {
    position: relative !important;
    z-index: 2 !important;
    font-size: 13px !important;
    line-height: 1.25 !important;
    font-weight: 750 !important;
    letter-spacing: 1.1px !important;
    color: rgba(255,255,255,.76) !important;
}

body.has-result .summary-card .score-label span {
    margin-left: 2px !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    letter-spacing: .3px !important;
    opacity: .62 !important;
}

/* 评级不再做右侧悬浮大卡，改成嵌入圆环底部的一体化状态舱 */
body.has-result .rating-chip {
    position: absolute !important;
    left: 50% !important;
    right: auto !important;
    top: auto !important;
    bottom: 2px !important;
    transform: translateX(-50%) !important;
    width: 132px !important;
    height: 46px !important;
    padding: 5px 6px 5px 15px !important;
    border-radius: 15px !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 9px !important;
    background: linear-gradient(145deg, rgba(25,22,56,.96), rgba(43,37,78,.94)) !important;
    border: 1px solid rgba(255,255,255,.16) !important;
    box-shadow:
        0 14px 30px rgba(11,7,33,.42),
        0 0 20px color-mix(in srgb, var(--rating-color) 18%, transparent),
        inset 0 1px 0 rgba(255,255,255,.10) !important;
    clip-path: polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px) !important;
    z-index: 5 !important;
}

/* 圆环与状态舱之间的发光连接线 */
body.has-result .rating-chip::before {
    content: '' !important;
    position: absolute !important;
    left: 50% !important;
    top: -16px !important;
    bottom: auto !important;
    width: 1px !important;
    height: 16px !important;
    transform: translateX(-50%) !important;
    border-radius: 2px !important;
    background: linear-gradient(to bottom, transparent, var(--rating-color, #60a5fa)) !important;
    box-shadow: 0 0 10px var(--rating-color, #60a5fa) !important;
}

body.has-result .rating-chip::after {
    content: '' !important;
    position: absolute !important;
    left: 50% !important;
    top: -3px !important;
    width: 5px !important;
    height: 5px !important;
    transform: translate(-50%, -50%) !important;
    border-radius: 50% !important;
    background: #fff !important;
    box-shadow: 0 0 10px 3px var(--rating-color, #60a5fa) !important;
}

body.has-result .rating-caption {
    color: rgba(255,255,255,.62) !important;
    font-size: 10px !important;
    line-height: 1 !important;
    font-weight: 800 !important;
    letter-spacing: 1.8px !important;
    white-space: nowrap !important;
}

body.has-result .summary-card .rating-badge {
    position: static !important;
    width: 66px !important;
    min-width: 66px !important;
    height: 34px !important;
    padding: 0 8px !important;
    border-radius: 10px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 21px !important;
    line-height: 1 !important;
    font-weight: 950 !important;
    letter-spacing: .6px !important;
    color: #fff !important;
    border: 1px solid rgba(255,255,255,.22) !important;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.28),
        0 5px 13px rgba(0,0,0,.22),
        0 0 14px color-mix(in srgb, var(--rating-color) 22%, transparent) !important;
}

/* 日间主题适配 */
body.day-theme.has-result .score-circle {
    background:
        radial-gradient(circle at center, rgba(247,249,255,.98) 0 60%, transparent 60.8%),
        conic-gradient(from -90deg,
            var(--rating-color) 0 calc(var(--score) * 1%),
            rgba(15,23,42,.10) calc(var(--score) * 1%) 100%) !important;
    box-shadow:
        0 20px 42px rgba(76,63,130,.18),
        0 0 28px color-mix(in srgb, var(--rating-color) 18%, transparent),
        inset 0 0 0 1px rgba(15,23,42,.08) !important;
}

body.day-theme.has-result .score-circle::before {
    background:
        radial-gradient(circle at 36% 24%, rgba(255,255,255,.9), transparent 34%),
        linear-gradient(145deg, rgba(255,255,255,.98), rgba(237,232,250,.98)) !important;
    border-color: rgba(15,23,42,.08) !important;
}

body.day-theme.has-result .summary-card .score-value {
    color: #241d45 !important;
    text-shadow: 0 5px 18px rgba(76,63,130,.14) !important;
}

body.day-theme.has-result .summary-card .score-label {
    color: rgba(36,29,69,.66) !important;
}

body.day-theme.has-result .rating-chip {
    background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(241,238,250,.98)) !important;
    border-color: rgba(15,23,42,.10) !important;
    box-shadow:
        0 14px 28px rgba(76,63,130,.16),
        0 0 18px color-mix(in srgb, var(--rating-color) 14%, transparent),
        inset 0 1px 0 rgba(255,255,255,.9) !important;
}

body.day-theme.has-result .rating-caption {
    color: rgba(36,29,69,.58) !important;
}

@media (max-width: 680px) {
    body.has-result .score-visual {
        width: min(100%, 286px) !important;
        min-height: 220px !important;
        padding: 10px 8px 27px !important;
    }

    body.has-result .score-circle {
        width: 174px !important;
        height: 174px !important;
        min-width: 174px !important;
        min-height: 174px !important;
    }

    body.has-result .summary-card .score-value {
        font-size: 56px !important;
    }

    body.has-result .rating-chip {
        width: 126px !important;
        height: 44px !important;
        padding-left: 14px !important;
    }

    body.has-result .summary-card .rating-badge {
        width: 62px !important;
        min-width: 62px !important;
        height: 32px !important;
        font-size: 20px !important;
    }
}

/* HUD 伪元素尺寸兼容修正：覆盖旧版 width/height:100% */
body.has-result .score-circle::before,
body.has-result .score-circle::after {
    width: auto !important;
    height: auto !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
}

body.has-result .score-circle::before {
    inset: 13px !important;
}

body.has-result .score-circle::after {
    inset: -9px !important;
}

body.has-result .summary-card .score-value {
    color: #fff !important;
}

/* 清除旧版 hover 提示框残留，确保外轨道保持正圆 */
body.has-result .score-circle::after {
    content: '' !important;
    min-width: 0 !important;
    max-width: none !important;
    padding: 0 !important;
    transform: none !important;
    transition: none !important;
    background: transparent !important;
    color: transparent !important;
    font-size: 0 !important;
    line-height: 0 !important;
    opacity: .92 !important;
    pointer-events: none !important;
}

body.has-result .score-circle:hover::after {
    transform: none !important;
    opacity: .92 !important;
}

/* =========================================================
   综合评分 HUD 二次优化：满环呼吸光 / 放大评级与结论 / 移除侧边刻度
   ========================================================= */

/* 去掉评分圆左右两侧共 6 条横线 */
body.has-result .score-visual::before,
body.has-result .score-visual::after {
    content: none !important;
    display: none !important;
    background: none !important;
    filter: none !important;
}

/* 满环显示，并让环形光晕一亮一暗循环 */
body.has-result .score-circle {
    background:
        radial-gradient(circle at center,
            rgba(48, 37, 91, .98) 0 60%,
            transparent 60.8%),
        conic-gradient(from -90deg,
            var(--rating-color, #60a5fa) 0 100%) !important;
    animation: scoreFullRingGlow 2.35s ease-in-out infinite !important;
    will-change: box-shadow;
}

body.has-result .score-circle::after {
    border-color: color-mix(in srgb, var(--rating-color, #60a5fa) 72%, rgba(255,255,255,.22)) !important;
    box-shadow:
        0 0 12px color-mix(in srgb, var(--rating-color, #60a5fa) 26%, transparent),
        inset 0 0 10px color-mix(in srgb, var(--rating-color, #60a5fa) 10%, transparent) !important;
    animation: scoreOuterHaloGlow 2.35s ease-in-out infinite !important;
}

@keyframes scoreFullRingGlow {
    0%, 100% {
        box-shadow:
            0 22px 48px rgba(12, 8, 36, .42),
            0 0 14px color-mix(in srgb, var(--rating-color, #60a5fa) 24%, transparent),
            0 0 0 1px color-mix(in srgb, var(--rating-color, #60a5fa) 24%, transparent),
            inset 0 0 0 1px rgba(255, 255, 255, .13) !important;
    }
    50% {
        box-shadow:
            0 22px 48px rgba(12, 8, 36, .42),
            0 0 34px color-mix(in srgb, var(--rating-color, #60a5fa) 58%, transparent),
            0 0 62px color-mix(in srgb, var(--rating-color, #60a5fa) 32%, transparent),
            0 0 0 2px color-mix(in srgb, var(--rating-color, #60a5fa) 58%, transparent),
            inset 0 0 0 1px rgba(255, 255, 255, .20) !important;
    }
}

@keyframes scoreOuterHaloGlow {
    0%, 100% {
        opacity: .58;
        box-shadow:
            0 0 10px color-mix(in srgb, var(--rating-color, #60a5fa) 20%, transparent),
            inset 0 0 8px color-mix(in srgb, var(--rating-color, #60a5fa) 8%, transparent) !important;
    }
    50% {
        opacity: 1;
        box-shadow:
            0 0 26px color-mix(in srgb, var(--rating-color, #60a5fa) 55%, transparent),
            0 0 44px color-mix(in srgb, var(--rating-color, #60a5fa) 24%, transparent),
            inset 0 0 15px color-mix(in srgb, var(--rating-color, #60a5fa) 18%, transparent) !important;
    }
}

/* 放大评级状态舱和“评级 / A”字体 */
body.has-result .score-visual {
    min-height: 244px !important;
    padding-bottom: 35px !important;
}

body.has-result .rating-chip {
    width: 150px !important;
    height: 54px !important;
    padding: 6px 7px 6px 17px !important;
    gap: 10px !important;
    border-radius: 17px !important;
}

body.has-result .rating-caption {
    font-size: 13px !important;
    font-weight: 900 !important;
    letter-spacing: 1.5px !important;
}

body.has-result .summary-card .rating-badge {
    width: 76px !important;
    min-width: 76px !important;
    height: 40px !important;
    border-radius: 11px !important;
    font-size: 27px !important;
    font-weight: 950 !important;
}

/* 放大并加粗“合理持有，小仓参与”等综合结论 */
body.has-result .summary-card .suggestion-box {
    padding: 18px 20px !important;
}

body.has-result .summary-card .suggestion-box p {
    font-size: 21px !important;
    line-height: 1.5 !important;
    font-weight: 950 !important;
    letter-spacing: .25px !important;
}

/* 日间主题同样保持满环 */
body.day-theme.has-result .score-circle {
    background:
        radial-gradient(circle at center,
            rgba(247, 249, 255, .98) 0 60%,
            transparent 60.8%),
        conic-gradient(from -90deg,
            var(--rating-color, #60a5fa) 0 100%) !important;
}

@media (max-width: 680px) {
    body.has-result .score-visual {
        min-height: 232px !important;
        padding-bottom: 33px !important;
    }

    body.has-result .rating-chip {
        width: 142px !important;
        height: 51px !important;
        padding-left: 16px !important;
    }

    body.has-result .rating-caption {
        font-size: 12px !important;
    }

    body.has-result .summary-card .rating-badge {
        width: 72px !important;
        min-width: 72px !important;
        height: 38px !important;
        font-size: 25px !important;
    }

    body.has-result .summary-card .suggestion-box p {
        font-size: 19px !important;
        font-weight: 950 !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.has-result .score-circle,
    body.has-result .score-circle::after {
        animation: none !important;
    }
}


/* =========================================================
   fix24：字体大小恢复至字体适配改动之前的版本
   保留：三栏宽度固定、评分环满环与同步呼吸发光
   ========================================================= */

/* 三种字体档位共用同一套三栏布局，切换字体不改变综合评估板块宽度 */
@media (min-width: 1500px) {
    body.font-small.has-result .result-container.active,
    body.font-medium.has-result .result-container.active,
    body.font-large.has-result .result-container.active {
        grid-template-columns: minmax(280px, 340px) minmax(620px, 1fr) minmax(500px, 580px) !important;
        gap: clamp(18px, 1.2vw, 26px) !important;
        max-width: min(97vw, 1880px) !important;
        padding-left: 10px !important;
        padding-right: 10px !important;
    }
}

@media (min-width: 1180px) and (max-width: 1499px) {
    body.font-small.has-result .result-container.active,
    body.font-medium.has-result .result-container.active,
    body.font-large.has-result .result-container.active {
        grid-template-columns: minmax(240px, 300px) minmax(420px, 1fr) minmax(430px, 500px) !important;
        gap: 16px !important;
        max-width: calc(100vw - 20px) !important;
        padding-left: 6px !important;
        padding-right: 6px !important;
    }
}

@media (min-width: 1024px) and (max-width: 1179px) {
    body.font-small.has-result .result-container.active,
    body.font-medium.has-result .result-container.active,
    body.font-large.has-result .result-container.active {
        grid-template-columns: minmax(220px, 260px) minmax(330px, 1fr) minmax(380px, 430px) !important;
        gap: 12px !important;
        max-width: calc(100vw - 16px) !important;
        padding-left: 4px !important;
        padding-right: 4px !important;
    }
}

body.font-small.has-result .summary-card,
body.font-medium.has-result .summary-card,
body.font-large.has-result .summary-card {
    min-width: 0 !important;
    box-sizing: border-box !important;
}

/* 评分环始终加满 */
body.has-result .score-circle,
body.day-theme.has-result .score-circle {
    background:
        radial-gradient(circle at center,
            rgba(48, 37, 91, .98) 0 60%,
            transparent 60.8%),
        conic-gradient(from -90deg,
            var(--rating-color, #60a5fa) 0 100%) !important;
}

body.day-theme.has-result .score-circle {
    background:
        radial-gradient(circle at center,
            rgba(247, 249, 255, .98) 0 60%,
            transparent 60.8%),
        conic-gradient(from -90deg,
            var(--rating-color, #60a5fa) 0 100%) !important;
}

/* 与左侧涨跌幅一致：一亮一暗的 drop-shadow 呼吸发光 */
@keyframes score-ring-glow-like-change {
    0%, 100% {
        filter:
            brightness(.88)
            drop-shadow(0 0 4px var(--rating-color, #60a5fa));
    }
    50% {
        filter:
            brightness(1.15)
            drop-shadow(0 0 12px var(--rating-color, #60a5fa))
            drop-shadow(0 0 20px var(--rating-color, #60a5fa));
    }
}

body.has-result .score-circle,
body.day-theme.has-result .score-circle {
    animation: score-ring-glow-like-change 2s ease-in-out infinite !important;
    will-change: filter !important;
}

body.has-result .score-circle::after,
body.day-theme.has-result .score-circle::after {
    animation: none !important;
}

/* ===== V2 fix25：指标 Logo 随主题色自动切换 =====
   仅调整指标卡左侧 Logo 的配色，不改变卡片尺寸、字体和布局。 */
body.theme-rose {
    --metric-logo-a: #e37fa5;
    --metric-logo-b: #b56be0;
    --metric-logo-c: #7b61d8;
    --metric-logo-glow: rgba(208, 107, 135, 0.34);
}

body.theme-red {
    --metric-logo-a: #ef5b65;
    --metric-logo-b: #d93f50;
    --metric-logo-c: #a92f55;
    --metric-logo-glow: rgba(216, 79, 88, 0.36);
}

body.theme-blue {
    --metric-logo-a: #5cb8ff;
    --metric-logo-b: #667eea;
    --metric-logo-c: #5a55d6;
    --metric-logo-glow: rgba(102, 126, 234, 0.36);
}

body.theme-orange {
    --metric-logo-a: #ffc24c;
    --metric-logo-b: #f59e0b;
    --metric-logo-c: #e36b1f;
    --metric-logo-glow: rgba(245, 158, 11, 0.38);
}

body.theme-purple {
    --metric-logo-a: #b98cff;
    --metric-logo-b: #8b5cf6;
    --metric-logo-c: #6d3bd6;
    --metric-logo-glow: rgba(139, 92, 246, 0.38);
}

body.theme-cyan {
    --metric-logo-a: #39d9ee;
    --metric-logo-b: #06b6d4;
    --metric-logo-c: #0789b6;
    --metric-logo-glow: rgba(6, 182, 212, 0.36);
}

/* 所有状态类都跟随当前主题，不再固定为粉色/橙色/蓝色。 */
body .metric-icon,
body .metric-icon.positive,
body .metric-icon.warning,
body .metric-icon.neutral {
    position: relative !important;
    overflow: hidden !important;
    color: #fff !important;
    background: linear-gradient(135deg, var(--metric-logo-a), var(--metric-logo-b)) !important;
    border: 1px solid rgba(255, 255, 255, 0.24) !important;
    box-shadow:
        0 10px 22px var(--metric-logo-glow),
        inset 0 1px 0 rgba(255,255,255,0.32),
        inset 0 -8px 18px rgba(10, 14, 30, 0.10) !important;
    transition: background .25s ease, box-shadow .25s ease, transform .25s ease !important;
}

/* 同一主题内使用三组同色系渐变，避免所有 Logo 看起来完全一样。 */
body .metric-card:nth-child(3n + 2) .metric-icon,
body .metric-card:nth-child(3n + 2) .metric-icon.positive,
body .metric-card:nth-child(3n + 2) .metric-icon.warning,
body .metric-card:nth-child(3n + 2) .metric-icon.neutral {
    background: linear-gradient(135deg, var(--metric-logo-b), var(--metric-logo-c)) !important;
}

body .metric-card:nth-child(3n) .metric-icon,
body .metric-card:nth-child(3n) .metric-icon.positive,
body .metric-card:nth-child(3n) .metric-icon.warning,
body .metric-card:nth-child(3n) .metric-icon.neutral {
    background: linear-gradient(135deg, var(--metric-logo-c), var(--metric-logo-a)) !important;
}

/* 把彩色 Emoji 统一处理成白色单色图标，解决图标颜色与主题冲突。 */
body .metric-icon::before {
    position: relative !important;
    z-index: 2 !important;
    display: block !important;
    color: #fff !important;
    filter: grayscale(1) brightness(0) invert(1) !important;
    opacity: 0.96 !important;
    text-shadow: 0 2px 8px rgba(0,0,0,0.22) !important;
}

/* Logo 内部柔光，随主题一起变化。 */
body .metric-icon::after {
    content: '' !important;
    position: absolute !important;
    z-index: 1 !important;
    top: -38% !important;
    left: -18% !important;
    width: 76% !important;
    height: 76% !important;
    border-radius: 50% !important;
    background: rgba(255,255,255,0.28) !important;
    filter: blur(10px) !important;
    pointer-events: none !important;
}

body .metric-card:hover .metric-icon {
    transform: translateY(-2px) scale(1.035) !important;
    box-shadow:
        0 13px 28px var(--metric-logo-glow),
        inset 0 1px 0 rgba(255,255,255,0.38),
        inset 0 -8px 18px rgba(10, 14, 30, 0.08) !important;
}

/* 日间模式适度减弱阴影，仍保持主题色一致。 */
body.day-theme .metric-icon,
body.day-theme .metric-icon.positive,
body.day-theme .metric-icon.warning,
body.day-theme .metric-icon.neutral {
    border-color: rgba(255,255,255,0.50) !important;
    box-shadow:
        0 8px 18px var(--metric-logo-glow),
        inset 0 1px 0 rgba(255,255,255,0.48) !important;
}


/* ===== fix26：每个指标使用独立、与标题对应的 SVG Logo =====
   图形保持白色，Logo 底色继续随柔和粉红/大涨红/星空蓝/暖阳橙/梦幻紫/极光青切换。 */
body .metric-icon {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 auto !important;
}

/* 彻底停用旧版 Emoji，避免被滤镜处理后全部显示成相同白块。 */
body .metric-icon::before {
    content: none !important;
    display: none !important;
}

body .metric-icon svg {
    position: relative !important;
    z-index: 2 !important;
    display: block !important;
    width: 28px !important;
    height: 28px !important;
    color: #fff !important;
    overflow: visible !important;
    filter: drop-shadow(0 2px 6px rgba(0, 0, 0, .22)) !important;
    transition: transform .22s ease, opacity .22s ease !important;
}

body .metric-icon svg path,
body .metric-icon svg circle,
body .metric-icon svg rect,
body .metric-icon svg ellipse,
body .metric-icon svg line,
body .metric-icon svg polyline,
body .metric-icon svg polygon {
    fill: none;
    stroke: currentColor;
    stroke-width: 1.85;
    stroke-linecap: round;
    stroke-linejoin: round;
}

body .metric-icon svg .fill {
    fill: currentColor !important;
    stroke: none !important;
}

body .metric-card:hover .metric-icon svg {
    transform: scale(1.07) !important;
}

body.font-small .metric-icon svg {
    width: 25px !important;
    height: 25px !important;
}

body.font-large .metric-icon svg {
    width: 31px !important;
    height: 31px !important;
}

/* =========================================================
   fix27：综合评估标题悬浮说明卡
   鼠标移入“综合评估”自动展示全部评分阶段，当前阶段动态加粗高亮。
   ========================================================= */
body.has-result .summary-header {
    position: relative !important;
    z-index: 40 !important;
    overflow: visible !important;
}

body.has-result .score-help {
    position: relative;
    display: inline-block;
    max-width: 100%;
    z-index: 45;
}

body.has-result .score-help-trigger {
    width: fit-content;
    margin: 0;
    cursor: help;
    user-select: none;
    outline: none;
    border-radius: 11px;
    padding: 5px 8px 5px 0;
    transition: color .2s ease, text-shadow .2s ease, background .2s ease;
}

body.has-result .score-help-trigger:focus-visible {
    box-shadow: 0 0 0 3px var(--primary-light);
}

body.has-result .score-help-hint {
    width: 19px;
    height: 19px;
    margin-left: 2px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    color: rgba(255, 255, 255, .68);
    border: 1px solid rgba(255, 255, 255, .16);
    background: rgba(255, 255, 255, .055);
    transition: color .2s ease, border-color .2s ease, background .2s ease, transform .2s ease;
}

body.has-result .score-help:hover .score-help-trigger,
body.has-result .score-help:focus-within .score-help-trigger,
body.has-result .score-help.is-open .score-help-trigger {
    color: #fff;
    text-shadow: 0 0 18px var(--primary-shadow);
}

body.has-result .score-help:hover .score-help-hint,
body.has-result .score-help:focus-within .score-help-hint,
body.has-result .score-help.is-open .score-help-hint {
    color: #fff;
    border-color: color-mix(in srgb, var(--primary-color) 68%, rgba(255,255,255,.28));
    background: color-mix(in srgb, var(--primary-color) 28%, rgba(255,255,255,.08));
    transform: scale(1.06);
}

body.has-result .score-help-card {
    --current-rating-color: var(--primary-color);
    position: absolute;
    top: calc(100% + 10px);
    left: 0;
    width: min(455px, calc(100vw - 54px));
    max-width: calc(100vw - 54px);
    padding: 16px;
    border-radius: 18px;
    border: 1px solid color-mix(in srgb, var(--primary-color) 26%, rgba(255,255,255,.14));
    color: #f8fafc;
    background:
        linear-gradient(145deg, rgba(31, 34, 65, .98), rgba(21, 25, 52, .985)),
        var(--card-bg);
    box-shadow:
        0 24px 58px rgba(4, 6, 20, .54),
        0 0 28px color-mix(in srgb, var(--primary-color) 12%, transparent),
        inset 0 1px 0 rgba(255, 255, 255, .08);
    backdrop-filter: blur(22px);
    -webkit-backdrop-filter: blur(22px);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-7px) scale(.985);
    transform-origin: top left;
    transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
    z-index: 999;
}

body.has-result .score-help-card::before {
    content: '';
    position: absolute;
    top: -7px;
    left: 29px;
    width: 14px;
    height: 14px;
    transform: rotate(45deg);
    background: rgba(31, 34, 65, .98);
    border-left: 1px solid color-mix(in srgb, var(--primary-color) 24%, rgba(255,255,255,.12));
    border-top: 1px solid color-mix(in srgb, var(--primary-color) 24%, rgba(255,255,255,.12));
}

body.has-result .score-help:hover .score-help-card,
body.has-result .score-help:focus-within .score-help-card,
body.has-result .score-help.is-open .score-help-card {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0) scale(1);
}

body.has-result .score-help-card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding-bottom: 13px;
    margin-bottom: 10px;
    border-bottom: 1px solid rgba(255, 255, 255, .09);
}

body.has-result .score-help-title-wrap {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

body.has-result .score-help-title {
    font-size: 16px;
    line-height: 1.3;
    font-weight: 900;
    letter-spacing: .2px;
}

body.has-result .score-help-subtitle {
    max-width: 285px;
    color: rgba(226, 232, 240, .72);
    font-size: 11.5px;
    line-height: 1.55;
}

body.has-result .score-help-current {
    flex: 0 0 auto;
    min-width: 116px;
    padding: 8px 10px;
    border-radius: 12px;
    color: #fff;
    text-align: center;
    font-size: 11.5px;
    line-height: 1.35;
    font-weight: 700;
    white-space: nowrap;
    border: 1px solid color-mix(in srgb, var(--current-rating-color) 62%, rgba(255,255,255,.18));
    background: color-mix(in srgb, var(--current-rating-color) 23%, rgba(255,255,255,.04));
    box-shadow: 0 0 18px color-mix(in srgb, var(--current-rating-color) 20%, transparent);
}

body.has-result .score-help-current b {
    font-size: 14px;
    font-weight: 950;
}

body.has-result .score-stage-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

body.has-result .score-stage {
    --stage-color: #94a3b8;
    position: relative;
    display: grid;
    grid-template-columns: 8px 42px 70px minmax(0, 1fr);
    align-items: center;
    gap: 8px;
    min-height: 43px;
    padding: 8px 10px;
    border-radius: 12px;
    border: 1px solid transparent;
    background: rgba(255, 255, 255, .028);
    color: rgba(226, 232, 240, .72);
    transition: background .18s ease, border-color .18s ease, transform .18s ease, color .18s ease;
}

body.has-result .score-stage[data-rating-level="AAA"] { --stage-color: #d06b87; }
body.has-result .score-stage[data-rating-level="AA"]  { --stage-color: #e58aa5; }
body.has-result .score-stage[data-rating-level="A"]   { --stage-color: #60a5fa; }
body.has-result .score-stage[data-rating-level="BBB"] { --stage-color: #f59e0b; }
body.has-result .score-stage[data-rating-level="BB"]  { --stage-color: #f97316; }
body.has-result .score-stage[data-rating-level="B"]   { --stage-color: #ef4444; }

body.has-result .score-stage-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--stage-color);
    box-shadow: 0 0 9px color-mix(in srgb, var(--stage-color) 45%, transparent);
}

body.has-result .score-stage-level {
    color: rgba(248, 250, 252, .88);
    font-size: 12.5px;
    font-weight: 850;
}

body.has-result .score-stage-range {
    color: rgba(203, 213, 225, .76);
    font-size: 11.5px;
    font-weight: 700;
    white-space: nowrap;
}

body.has-result .score-stage-desc {
    min-width: 0;
    font-size: 11.5px;
    line-height: 1.48;
}

body.has-result .score-stage-current-tag {
    display: none;
    position: absolute;
    right: 9px;
    top: 7px;
    padding: 2px 7px;
    border-radius: 999px;
    color: #fff;
    background: var(--stage-color);
    font-size: 9.5px;
    line-height: 1.4;
    font-weight: 900;
    letter-spacing: .3px;
    box-shadow: 0 0 12px color-mix(in srgb, var(--stage-color) 35%, transparent);
}

body.has-result .score-stage.is-current {
    padding-right: 72px;
    color: #fff;
    border-color: color-mix(in srgb, var(--stage-color) 62%, rgba(255,255,255,.14));
    background:
        linear-gradient(90deg,
            color-mix(in srgb, var(--stage-color) 22%, rgba(255,255,255,.03)),
            color-mix(in srgb, var(--stage-color) 8%, rgba(255,255,255,.02)));
    box-shadow:
        0 0 20px color-mix(in srgb, var(--stage-color) 13%, transparent),
        inset 3px 0 0 var(--stage-color);
    transform: translateX(2px);
    font-weight: 850;
}

body.has-result .score-stage.is-current .score-stage-dot {
    width: 9px;
    height: 9px;
    box-shadow:
        0 0 10px var(--stage-color),
        0 0 18px color-mix(in srgb, var(--stage-color) 48%, transparent);
}

body.has-result .score-stage.is-current .score-stage-level,
body.has-result .score-stage.is-current .score-stage-range,
body.has-result .score-stage.is-current .score-stage-desc {
    color: #fff;
    font-weight: 950;
}

body.has-result .score-stage.is-current .score-stage-current-tag {
    display: inline-flex;
}

body.has-result .score-help-footnote {
    margin-top: 11px;
    padding-top: 10px;
    color: rgba(203, 213, 225, .58);
    border-top: 1px dashed rgba(255, 255, 255, .09);
    font-size: 10.5px;
    line-height: 1.55;
}

body.day-theme.has-result .score-help-hint {
    color: rgba(51, 65, 85, .62);
    border-color: rgba(51, 65, 85, .13);
    background: rgba(51, 65, 85, .045);
}

body.day-theme.has-result .score-help-card {
    color: #172033;
    background: rgba(255, 255, 255, .985);
    border-color: color-mix(in srgb, var(--primary-color) 25%, rgba(15,23,42,.11));
    box-shadow:
        0 24px 58px rgba(30, 41, 59, .20),
        0 0 24px color-mix(in srgb, var(--primary-color) 10%, transparent),
        inset 0 1px 0 rgba(255, 255, 255, .95);
}

body.day-theme.has-result .score-help-card::before {
    background: rgba(255, 255, 255, .985);
}

body.day-theme.has-result .score-help-subtitle,
body.day-theme.has-result .score-stage,
body.day-theme.has-result .score-stage-desc {
    color: rgba(51, 65, 85, .72);
}

body.day-theme.has-result .score-stage {
    background: rgba(15, 23, 42, .025);
}

body.day-theme.has-result .score-stage-level {
    color: #334155;
}

body.day-theme.has-result .score-stage-range {
    color: #64748b;
}

body.day-theme.has-result .score-stage.is-current,
body.day-theme.has-result .score-stage.is-current .score-stage-level,
body.day-theme.has-result .score-stage.is-current .score-stage-range,
body.day-theme.has-result .score-stage.is-current .score-stage-desc {
    color: #172033;
}

body.day-theme.has-result .score-help-footnote {
    color: rgba(71, 85, 105, .66);
    border-top-color: rgba(15, 23, 42, .10);
}

@media (max-width: 680px) {
    body.has-result .score-help-card {
        left: 0;
        width: min(420px, calc(100vw - 42px));
        max-width: calc(100vw - 42px);
        padding: 14px;
        border-radius: 16px;
    }

    body.has-result .score-help-card-head {
        flex-direction: column;
        gap: 9px;
    }

    body.has-result .score-help-subtitle {
        max-width: none;
    }

    body.has-result .score-help-current {
        min-width: 0;
        align-self: flex-start;
    }

    body.has-result .score-stage {
        grid-template-columns: 8px 38px 64px minmax(0, 1fr);
        gap: 6px;
        min-height: 42px;
        padding: 7px 8px;
    }

    body.has-result .score-stage.is-current {
        padding-right: 8px;
        padding-top: 27px;
    }

    body.has-result .score-stage-current-tag {
        left: 9px;
        right: auto;
        top: 6px;
    }
}

@media (max-width: 430px) {
    body.has-result .score-help-card {
        position: fixed;
        top: 88px;
        left: 12px;
        right: 12px;
        width: auto;
        max-width: none;
        max-height: calc(100vh - 112px);
        overflow-y: auto;
        transform-origin: top center;
    }

    body.has-result .score-help-card::before {
        display: none;
    }

    body.has-result .score-stage {
        grid-template-columns: 8px 42px 64px minmax(0, 1fr);
    }
}

@media (prefers-reduced-motion: reduce) {
    body.has-result .score-help-card,
    body.has-result .score-help-hint,
    body.has-result .score-stage {
        transition: none !important;
    }
}

/* =========================================================
   fix28：综合评估说明卡可读性与科技感增强
   - 说明文字整体放大，三档字体都保持清晰可读
   - 卡片外围增加主题色呼吸发光与科技描边
   - 不修改综合评估主卡片和页面栏宽
   ========================================================= */
body.has-result .score-help-card {
    --score-help-title-size: 20px;
    --score-help-text-size: 15px;
    --score-help-meta-size: 14px;
    --score-help-tag-size: 11px;

    width: min(590px, calc(100vw - 54px));
    max-width: calc(100vw - 54px);
    padding: 20px;
    border-radius: 21px;
    border-color: color-mix(in srgb, var(--primary-color) 62%, rgba(255,255,255,.22));
    isolation: isolate;
    box-shadow:
        0 28px 72px rgba(4, 6, 20, .62),
        0 0 18px color-mix(in srgb, var(--primary-color) 42%, transparent),
        0 0 44px color-mix(in srgb, var(--primary-color) 24%, transparent),
        inset 0 1px 0 rgba(255, 255, 255, .11),
        inset 0 0 24px color-mix(in srgb, var(--primary-color) 6%, transparent);
    animation: scoreHelpCardGlow 2.25s ease-in-out infinite;
}

/* 外围科技发光框，不覆盖卡片内容 */
body.has-result .score-help-card::after {
    content: '';
    position: absolute;
    inset: -3px;
    border-radius: 23px;
    border: 1px solid color-mix(in srgb, var(--primary-color) 78%, rgba(255,255,255,.26));
    background:
        linear-gradient(90deg,
            transparent 0 5%,
            color-mix(in srgb, var(--primary-color) 52%, transparent) 5% 18%,
            transparent 18% 82%,
            color-mix(in srgb, var(--primary-color) 52%, transparent) 82% 95%,
            transparent 95% 100%) top / 100% 1px no-repeat,
        linear-gradient(90deg,
            transparent 0 14%,
            color-mix(in srgb, var(--primary-color) 42%, transparent) 14% 28%,
            transparent 28% 72%,
            color-mix(in srgb, var(--primary-color) 42%, transparent) 72% 86%,
            transparent 86% 100%) bottom / 100% 1px no-repeat;
    box-shadow:
        0 0 10px color-mix(in srgb, var(--primary-color) 55%, transparent),
        0 0 26px color-mix(in srgb, var(--primary-color) 30%, transparent);
    opacity: .74;
    pointer-events: none;
    z-index: -1;
    animation: scoreHelpFrameGlow 2.25s ease-in-out infinite;
}

body.has-result .score-help-card::before {
    z-index: 2;
    box-shadow: -3px -3px 10px color-mix(in srgb, var(--primary-color) 20%, transparent);
}

body.has-result .score-help-card-head {
    gap: 16px;
    padding-bottom: 16px;
    margin-bottom: 13px;
}

body.has-result .score-help-title-wrap {
    gap: 6px;
}

body.has-result .score-help-title {
    font-size: var(--score-help-title-size);
    line-height: 1.35;
    letter-spacing: .3px;
}

body.has-result .score-help-subtitle {
    max-width: 370px;
    font-size: var(--score-help-meta-size);
    line-height: 1.65;
}

body.has-result .score-help-current {
    min-width: 140px;
    padding: 10px 13px;
    border-radius: 14px;
    font-size: var(--score-help-meta-size);
    line-height: 1.45;
}

body.has-result .score-help-current b {
    font-size: calc(var(--score-help-title-size) - 2px);
}

body.has-result .score-stage-list {
    gap: 9px;
}

body.has-result .score-stage {
    grid-template-columns: 10px 50px 82px minmax(0, 1fr);
    gap: 10px;
    min-height: 56px;
    padding: 10px 12px;
    border-radius: 14px;
}

body.has-result .score-stage-dot {
    width: 8px;
    height: 8px;
}

body.has-result .score-stage-level {
    font-size: var(--score-help-text-size);
}

body.has-result .score-stage-range {
    font-size: var(--score-help-meta-size);
}

body.has-result .score-stage-desc {
    font-size: var(--score-help-text-size);
    line-height: 1.58;
}

body.has-result .score-stage-current-tag {
    right: 11px;
    top: 9px;
    padding: 3px 9px;
    font-size: var(--score-help-tag-size);
}

body.has-result .score-stage.is-current {
    padding-right: 88px;
    box-shadow:
        0 0 24px color-mix(in srgb, var(--stage-color) 18%, transparent),
        0 0 8px color-mix(in srgb, var(--stage-color) 28%, transparent),
        inset 4px 0 0 var(--stage-color);
}

body.has-result .score-help-footnote {
    margin-top: 14px;
    padding-top: 13px;
    font-size: var(--score-help-meta-size);
    line-height: 1.65;
}

/* 三档字体：小号也不再小到费眼，大号明显放大 */
body.font-small.has-result .score-help-card {
    --score-help-title-size: 18px;
    --score-help-text-size: 13.5px;
    --score-help-meta-size: 12.5px;
    --score-help-tag-size: 10px;
}

body.font-medium.has-result .score-help-card {
    --score-help-title-size: 20px;
    --score-help-text-size: 15px;
    --score-help-meta-size: 14px;
    --score-help-tag-size: 11px;
}

body.font-large.has-result .score-help-card {
    --score-help-title-size: 22px;
    --score-help-text-size: 17px;
    --score-help-meta-size: 15.5px;
    --score-help-tag-size: 12px;
    width: min(650px, calc(100vw - 54px));
}

@keyframes scoreHelpCardGlow {
    0%, 100% {
        box-shadow:
            0 28px 72px rgba(4, 6, 20, .58),
            0 0 13px color-mix(in srgb, var(--primary-color) 32%, transparent),
            0 0 34px color-mix(in srgb, var(--primary-color) 18%, transparent),
            inset 0 1px 0 rgba(255, 255, 255, .10),
            inset 0 0 20px color-mix(in srgb, var(--primary-color) 5%, transparent);
    }
    50% {
        box-shadow:
            0 30px 78px rgba(4, 6, 20, .67),
            0 0 24px color-mix(in srgb, var(--primary-color) 62%, transparent),
            0 0 62px color-mix(in srgb, var(--primary-color) 34%, transparent),
            inset 0 1px 0 rgba(255, 255, 255, .14),
            inset 0 0 32px color-mix(in srgb, var(--primary-color) 10%, transparent);
    }
}

@keyframes scoreHelpFrameGlow {
    0%, 100% {
        opacity: .55;
        filter: brightness(.92);
    }
    50% {
        opacity: 1;
        filter: brightness(1.25);
    }
}

body.day-theme.has-result .score-help-card {
    box-shadow:
        0 24px 60px rgba(30, 41, 59, .24),
        0 0 18px color-mix(in srgb, var(--primary-color) 34%, transparent),
        0 0 38px color-mix(in srgb, var(--primary-color) 18%, transparent),
        inset 0 1px 0 rgba(255, 255, 255, .98);
}

@media (max-width: 680px) {
    body.has-result .score-help-card,
    body.font-large.has-result .score-help-card {
        width: min(500px, calc(100vw - 42px));
        max-width: calc(100vw - 42px);
        padding: 17px;
        border-radius: 18px;
    }

    body.has-result .score-stage {
        grid-template-columns: 9px 46px 74px minmax(0, 1fr);
        gap: 8px;
        min-height: 52px;
        padding: 9px 10px;
    }

    body.has-result .score-stage.is-current {
        padding-right: 10px;
        padding-top: 33px;
    }

    body.has-result .score-stage-current-tag {
        left: 11px;
        right: auto;
        top: 7px;
    }
}

@media (max-width: 430px) {
    body.has-result .score-help-card,
    body.font-large.has-result .score-help-card {
        left: 10px;
        right: 10px;
        width: auto;
        max-width: none;
        padding: 16px;
    }

    body.has-result .score-help-card-head {
        gap: 11px;
    }

    body.has-result .score-help-current {
        min-width: 0;
    }

    body.has-result .score-stage {
        grid-template-columns: 9px 45px 70px minmax(0, 1fr);
        gap: 7px;
    }

    body.font-large.has-result .score-help-card {
        --score-help-title-size: 20px;
        --score-help-text-size: 15.5px;
        --score-help-meta-size: 14px;
        --score-help-tag-size: 11px;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.has-result .score-help-card,
    body.has-result .score-help-card::after {
        animation: none !important;
    }
}

/* =========================================================
   fix29：综合评估说明卡自适应与防裁切
   - 说明卡以综合评估标题栏的完整宽度为定位基准
   - 不再按标题文字自身宽度定位，避免向右溢出后被裁切
   - 桌面、平板和大字体模式下均限制在可用区域内
   ========================================================= */
body.has-result .summary-card {
    overflow: visible !important;
}

body.has-result .summary-header {
    position: relative !important;
    width: 100% !important;
    overflow: visible !important;
}

/* 让绝对定位的说明卡改为相对完整标题栏定位，而不是相对“综合评估”几个字定位 */
body.has-result .score-help {
    position: static !important;
}

body.has-result .score-help-card,
body.font-large.has-result .score-help-card {
    left: 0 !important;
    right: auto !important;
    width: min(620px, 100%) !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    transform-origin: top left !important;
}

/* 头部允许收缩和自然换行，当前分数标签不会再被挤出右侧 */
body.has-result .score-help-card-head {
    min-width: 0 !important;
}

body.has-result .score-help-title-wrap {
    flex: 1 1 auto !important;
    min-width: 0 !important;
}

body.has-result .score-help-subtitle {
    max-width: none !important;
    overflow-wrap: anywhere !important;
}

body.has-result .score-help-current {
    flex: 0 0 auto !important;
    max-width: 100% !important;
}

body.has-result .score-stage {
    min-width: 0 !important;
}

body.has-result .score-stage-desc {
    min-width: 0 !important;
    overflow-wrap: anywhere !important;
}

/* 箭头继续对准左侧标题区域 */
body.has-result .score-help-card::before {
    left: 29px !important;
    right: auto !important;
}

/* 窄栏时先把卡片头部改为上下结构，避免右上角状态框挤压标题 */
@media (max-width: 760px) {
    body.has-result .score-help-card,
    body.font-large.has-result .score-help-card {
        width: 100% !important;
        max-width: 100% !important;
    }

    body.has-result .score-help-card-head {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 11px !important;
    }

    body.has-result .score-help-current {
        align-self: flex-start !important;
        min-width: 0 !important;
        white-space: normal !important;
    }
}

/* 手机端继续采用固定弹层，但确保始终位于屏幕范围内 */
@media (max-width: 430px) {
    body.has-result .score-help-card,
    body.font-large.has-result .score-help-card {
        position: fixed !important;
        top: 88px !important;
        left: 10px !important;
        right: 10px !important;
        width: auto !important;
        max-width: none !important;
        box-sizing: border-box !important;
    }
}

/* =========================================================
   fix30：分析界面全局字号联动修复
   - 小 / 中 / 大不再只修改少数元素
   - 覆盖分析页中被固定 px 与 !important 锁死的文字
   - 仅改变文字，不改变三栏宽度、卡片宽度和网格列宽
   ========================================================= */
body.font-small {
    --ui-micro: 11px;
    --ui-caption: 12px;
    --ui-meta: 13px;
    --ui-body: 14px;
    --ui-body-strong: 15px;
    --ui-tab: 14px;
    --ui-section-title: 19px;
    --ui-card-title: 16px;
    --ui-metric-name: 17px;
    --ui-metric-value: 24px;
    --ui-stock-name: 28px;
    --ui-stock-price: 34px;
    --ui-score-value: 54px;
    --ui-rating-value: 24px;
    --ui-report-title: 15px;
    --ui-report-text: 13px;
}

body.font-medium {
    --ui-micro: 12px;
    --ui-caption: 13px;
    --ui-meta: 14px;
    --ui-body: 16px;
    --ui-body-strong: 17px;
    --ui-tab: 16px;
    --ui-section-title: 22px;
    --ui-card-title: 18px;
    --ui-metric-name: 20px;
    --ui-metric-value: 29px;
    --ui-stock-name: 32px;
    --ui-stock-price: 38px;
    --ui-score-value: 60px;
    --ui-rating-value: 27px;
    --ui-report-title: 18px;
    --ui-report-text: 16px;
}

body.font-large {
    --ui-micro: 13px;
    --ui-caption: 15px;
    --ui-meta: 16px;
    --ui-body: 19px;
    --ui-body-strong: 20px;
    --ui-tab: 18px;
    --ui-section-title: 26px;
    --ui-card-title: 21px;
    --ui-metric-name: 24px;
    --ui-metric-value: 34px;
    --ui-stock-name: 36px;
    --ui-stock-price: 44px;
    --ui-score-value: 68px;
    --ui-rating-value: 31px;
    --ui-report-title: 21px;
    --ui-report-text: 19px;
}

/* 顶部分析栏 */
body.has-result .header-content h1,
body.has-result .header-left h1 {
    font-size: var(--ui-section-title) !important;
}

body.has-result .subtitle {
    font-size: var(--ui-meta) !important;
}

body.has-result #stockInput,
body.has-result .search-btn {
    font-size: var(--ui-body) !important;
}

/* 左侧股票核心信息 */
body.has-result .stock-name #stockName {
    font-size: var(--ui-stock-name) !important;
}

body.has-result .stock-name .code {
    font-size: var(--ui-meta) !important;
}

body.has-result .stock-header > .stock-price > #currentPrice,
body.has-result #currentPrice {
    font-size: var(--ui-stock-price) !important;
}

body.has-result .change {
    font-size: var(--ui-body-strong) !important;
}

body.has-result .stock-mini-item span {
    font-size: var(--ui-caption) !important;
}

body.has-result .stock-mini-item strong {
    font-size: var(--ui-body-strong) !important;
}

body.has-result .earnings-title {
    font-size: var(--ui-body-strong) !important;
}

body.has-result .earnings-info {
    font-size: var(--ui-body) !important;
}

/* 综合评估、分析标题与标签页 */
body.has-result .summary-card .summary-header h2,
body.has-result .score-help-trigger,
body.has-result .detail-section h3 {
    font-size: var(--ui-section-title) !important;
}

body.has-result .tab-btn {
    font-size: var(--ui-tab) !important;
}

body.has-result .guide-title,
body.has-result .rules-title {
    font-size: var(--ui-card-title) !important;
}

/* 指标卡：名称、数值、得分全部跟随 */
body.has-result .metric-name {
    font-size: var(--ui-metric-name) !important;
}

body.has-result .metric-value {
    font-size: var(--ui-metric-value) !important;
}

body.has-result .metric-score {
    font-size: var(--ui-body-strong) !important;
}

/* 分析文字、评分标准与评分说明 */
body.has-result .analysis-text {
    font-size: var(--ui-body) !important;
    line-height: 1.75 !important;
}

body.has-result .rule-item,
body.has-result .rule-item span,
body.has-result .guide-desc {
    font-size: var(--ui-body) !important;
}

body.has-result .guide-range {
    font-size: var(--ui-body-strong) !important;
}

/* 评分圆、评级与结论 */
body.has-result .summary-card .score-value {
    font-size: var(--ui-score-value) !important;
}

body.has-result .summary-card .score-label {
    font-size: var(--ui-body) !important;
}

body.has-result .summary-card .score-label span,
body.has-result .rating-caption {
    font-size: var(--ui-caption) !important;
}

body.has-result .summary-card .rating-badge {
    font-size: var(--ui-rating-value) !important;
}

body.has-result .summary-card .suggestion-box p {
    font-size: var(--ui-body-strong) !important;
}

/* 详细分析报告 */
body.has-result .report-item h4,
body.has-result .summary-card .report-item h4 {
    font-size: var(--ui-report-title) !important;
}

body.has-result .report-item p,
body.has-result .summary-card .report-item p {
    font-size: var(--ui-report-text) !important;
    line-height: 1.72 !important;
}

/* 综合评分悬浮说明卡也跟随同一档位 */
body.font-small.has-result .score-help-card {
    --score-help-title-size: 18px;
    --score-help-text-size: 14px;
    --score-help-meta-size: 13px;
    --score-help-tag-size: 10px;
}

body.font-medium.has-result .score-help-card {
    --score-help-title-size: 21px;
    --score-help-text-size: 16px;
    --score-help-meta-size: 14px;
    --score-help-tag-size: 11px;
}

body.font-large.has-result .score-help-card {
    --score-help-title-size: 24px;
    --score-help-text-size: 19px;
    --score-help-meta-size: 17px;
    --score-help-tag-size: 13px;
}

/* 页脚与空数据提示 */
body.has-result .footer,
body.has-result .chart-container.chart-empty::after {
    font-size: var(--ui-meta) !important;
}

/* 小屏仍保持三档差异，但避免大号文字挤出卡片；只收字号，不改栏宽 */
@media (max-width: 680px) {
    body.font-small {
        --ui-body: 13px;
        --ui-body-strong: 14px;
        --ui-tab: 13px;
        --ui-section-title: 18px;
        --ui-card-title: 15px;
        --ui-metric-name: 16px;
        --ui-metric-value: 23px;
        --ui-stock-name: 26px;
        --ui-stock-price: 32px;
        --ui-score-value: 52px;
        --ui-rating-value: 23px;
        --ui-report-title: 14px;
        --ui-report-text: 13px;
    }

    body.font-medium {
        --ui-body: 15px;
        --ui-body-strong: 16px;
        --ui-tab: 15px;
        --ui-section-title: 21px;
        --ui-card-title: 17px;
        --ui-metric-name: 19px;
        --ui-metric-value: 27px;
        --ui-stock-name: 30px;
        --ui-stock-price: 36px;
        --ui-score-value: 58px;
        --ui-rating-value: 26px;
        --ui-report-title: 17px;
        --ui-report-text: 15px;
    }

    body.font-large {
        --ui-body: 17px;
        --ui-body-strong: 18px;
        --ui-tab: 17px;
        --ui-section-title: 24px;
        --ui-card-title: 20px;
        --ui-metric-name: 22px;
        --ui-metric-value: 31px;
        --ui-stock-name: 34px;
        --ui-stock-price: 41px;
        --ui-score-value: 64px;
        --ui-rating-value: 29px;
        --ui-report-title: 20px;
        --ui-report-text: 17px;
    }
}

/* ===== fix31：全屏“正在分析中”科技动画 ===== */
body.is-loading-stock {
    overflow: hidden !important;
}

.loading.analysis-loader {
    position: fixed;
    inset: 0;
    z-index: 3000;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 24px;
    overflow: hidden;
    isolation: isolate;
    background:
        radial-gradient(circle at 50% 42%, color-mix(in srgb, var(--primary-color) 24%, transparent) 0%, transparent 34%),
        linear-gradient(145deg, rgba(7, 10, 24, .90), rgba(15, 18, 43, .86));
    backdrop-filter: blur(18px) saturate(135%);
    -webkit-backdrop-filter: blur(18px) saturate(135%);
}

.loading.analysis-loader::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -3;
    background:
        linear-gradient(115deg, transparent 0 42%, color-mix(in srgb, var(--primary-color) 10%, transparent) 50%, transparent 58% 100%);
    transform: translateX(-65%);
    animation: analysisLoaderSweep 3.4s ease-in-out infinite;
}

.analysis-loader-grid {
    position: absolute;
    inset: -20%;
    z-index: -2;
    opacity: .22;
    background-image:
        linear-gradient(color-mix(in srgb, var(--primary-color) 18%, transparent) 1px, transparent 1px),
        linear-gradient(90deg, color-mix(in srgb, var(--primary-color) 18%, transparent) 1px, transparent 1px);
    background-size: 48px 48px;
    transform: perspective(700px) rotateX(62deg) translateY(28%);
    transform-origin: center bottom;
    animation: analysisGridMove 8s linear infinite;
    mask-image: radial-gradient(ellipse at center, #000 10%, transparent 70%);
    -webkit-mask-image: radial-gradient(ellipse at center, #000 10%, transparent 70%);
}

.analysis-loader-aura {
    position: absolute;
    width: min(52vw, 700px);
    aspect-ratio: 1;
    border-radius: 50%;
    filter: blur(80px);
    opacity: .16;
    z-index: -1;
    pointer-events: none;
}

.analysis-loader-aura-one {
    top: -28%;
    left: -12%;
    background: var(--primary-color);
    animation: analysisAuraFloat 5s ease-in-out infinite alternate;
}

.analysis-loader-aura-two {
    right: -16%;
    bottom: -34%;
    background: color-mix(in srgb, var(--primary-color) 58%, #56c7ff);
    animation: analysisAuraFloat 6s ease-in-out 1s infinite alternate-reverse;
}

.analysis-loader-panel {
    position: relative;
    width: min(720px, calc(100vw - 32px));
    padding: 38px 42px 34px;
    border: 1px solid color-mix(in srgb, var(--primary-color) 54%, rgba(255,255,255,.18));
    border-radius: 30px;
    overflow: hidden;
    background:
        linear-gradient(145deg, rgba(27, 34, 66, .91), rgba(14, 18, 41, .94)),
        color-mix(in srgb, var(--primary-color) 8%, transparent);
    box-shadow:
        0 28px 90px rgba(0, 0, 0, .52),
        0 0 0 1px rgba(255,255,255,.05) inset,
        0 0 38px color-mix(in srgb, var(--primary-color) 30%, transparent),
        0 0 90px color-mix(in srgb, var(--primary-color) 14%, transparent);
    animation: analysisPanelIn .46s cubic-bezier(.2,.8,.2,1) both,
               analysisPanelGlow 2.2s ease-in-out .46s infinite;
}

.analysis-loader-panel::before {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(90deg, transparent, rgba(255,255,255,.14), transparent) top / 48% 1px no-repeat,
        radial-gradient(circle at 50% 0%, color-mix(in srgb, var(--primary-color) 26%, transparent), transparent 38%);
}

.analysis-loader-panel::after {
    content: '';
    position: absolute;
    inset: 10px;
    border: 1px solid rgba(255,255,255,.035);
    border-radius: 22px;
    pointer-events: none;
}

.analysis-loader-scanner {
    position: relative;
    width: 176px;
    height: 176px;
    margin: 0 auto 24px;
    display: grid;
    place-items: center;
}

.analysis-loader-orbit {
    position: absolute;
    border-radius: 50%;
}

.analysis-loader-orbit-outer {
    inset: 0;
    border: 1px solid color-mix(in srgb, var(--primary-color) 65%, transparent);
    box-shadow:
        0 0 20px color-mix(in srgb, var(--primary-color) 30%, transparent),
        inset 0 0 18px color-mix(in srgb, var(--primary-color) 12%, transparent);
}

.analysis-loader-orbit-outer::before,
.analysis-loader-orbit-inner::before {
    content: '';
    position: absolute;
    inset: -3px;
    border-radius: inherit;
    background: conic-gradient(from 0deg, transparent 0 63%, var(--primary-color) 76%, rgba(255,255,255,.95) 80%, transparent 91% 100%);
    mask: radial-gradient(farthest-side, transparent calc(100% - 4px), #000 calc(100% - 3px));
    -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 4px), #000 calc(100% - 3px));
    filter: drop-shadow(0 0 8px var(--primary-color));
    animation: analysisOrbitSpin 2.5s linear infinite;
}

.analysis-loader-orbit-inner {
    inset: 22px;
    border: 1px dashed color-mix(in srgb, var(--primary-color) 45%, transparent);
    animation: analysisOrbitReverse 8s linear infinite;
}

.analysis-loader-orbit-inner::before {
    inset: -2px;
    opacity: .75;
    animation-duration: 3.6s;
    animation-direction: reverse;
}

.analysis-loader-core {
    width: 94px;
    height: 94px;
    display: grid;
    place-items: center;
    border-radius: 28px;
    color: white;
    background:
        linear-gradient(145deg, color-mix(in srgb, var(--primary-color) 90%, white 10%), color-mix(in srgb, var(--primary-color) 64%, #171d43));
    border: 1px solid rgba(255,255,255,.34);
    box-shadow:
        0 14px 35px color-mix(in srgb, var(--primary-color) 42%, transparent),
        0 0 30px color-mix(in srgb, var(--primary-color) 45%, transparent),
        inset 0 1px 1px rgba(255,255,255,.38);
    animation: analysisCorePulse 1.55s ease-in-out infinite;
}

.analysis-loader-core svg {
    width: 52px;
    height: 52px;
    filter: drop-shadow(0 3px 8px rgba(0,0,0,.22));
}

.analysis-loader-node {
    position: absolute;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: white;
    border: 2px solid var(--primary-color);
    box-shadow: 0 0 8px 2px var(--primary-color);
    animation: analysisNodeBlink 1.4s ease-in-out infinite;
}

.analysis-loader-node.node-one { top: 18px; right: 31px; }
.analysis-loader-node.node-two { left: 7px; bottom: 55px; animation-delay: .42s; }
.analysis-loader-node.node-three { right: 18px; bottom: 25px; animation-delay: .84s; }

.analysis-loader-copy {
    text-align: center;
}

.analysis-loader-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 10px;
    color: color-mix(in srgb, var(--primary-color) 70%, white 30%);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 2.2px;
}

.analysis-loader-eyebrow span {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--primary-color);
    box-shadow: 0 0 10px var(--primary-color);
    animation: analysisNodeBlink 1.1s ease-in-out infinite;
}

.analysis-loader-copy h2 {
    margin: 0;
    color: #fff;
    font-size: clamp(26px, 3.2vw, 38px);
    line-height: 1.25;
    letter-spacing: .5px;
    text-shadow: 0 4px 18px rgba(0,0,0,.28);
}

.analysis-loader-copy p {
    min-height: 26px;
    margin: 10px 0 0;
    color: rgba(229, 235, 255, .76);
    font-size: clamp(15px, 1.4vw, 18px);
    font-weight: 600;
    transition: opacity .2s ease, transform .2s ease;
}

.analysis-loader-progress {
    position: relative;
    width: 100%;
    height: 10px;
    margin-top: 28px;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 999px;
    background: rgba(255,255,255,.07);
    box-shadow: inset 0 2px 6px rgba(0,0,0,.28);
}

.analysis-loader-progress span {
    position: absolute;
    inset: 0 auto 0 0;
    width: 12%;
    border-radius: inherit;
    background: linear-gradient(90deg,
        color-mix(in srgb, var(--primary-color) 72%, #5bd8ff),
        var(--primary-color),
        color-mix(in srgb, var(--primary-color) 70%, white 30%));
    box-shadow: 0 0 18px var(--primary-color);
    transition: width .52s cubic-bezier(.22,.8,.3,1);
}

.analysis-loader-progress span::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 74px;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,.95));
    filter: blur(1px);
}

.analysis-loader-progress i {
    position: absolute;
    top: 50%;
    left: -25%;
    width: 20%;
    height: 150%;
    border-radius: 50%;
    background: rgba(255,255,255,.62);
    filter: blur(6px);
    transform: translateY(-50%);
    animation: analysisProgressShine 1.6s ease-in-out infinite;
}

.analysis-loader-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 10px;
    color: rgba(224,231,255,.72);
    font-size: 14px;
    font-weight: 700;
}

.analysis-loader-meta strong {
    color: #fff;
    font-size: 15px;
    font-variant-numeric: tabular-nums;
}

.analysis-loader-stages {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-top: 24px;
}

.analysis-loader-stage {
    position: relative;
    min-width: 0;
    padding: 14px 8px 12px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 7px;
    color: rgba(207,215,244,.46);
    border: 1px solid rgba(255,255,255,.055);
    border-radius: 15px;
    background: rgba(255,255,255,.025);
    transition: color .28s ease, border-color .28s ease, background .28s ease, transform .28s ease, box-shadow .28s ease;
}

.analysis-loader-stage i {
    font-size: 17px;
    color: inherit;
    animation: none;
}

.analysis-loader-stage span {
    overflow: hidden;
    max-width: 100%;
    font-size: 13px;
    font-weight: 700;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.analysis-loader-stage.is-active {
    color: #fff;
    border-color: color-mix(in srgb, var(--primary-color) 68%, transparent);
    background: color-mix(in srgb, var(--primary-color) 16%, rgba(255,255,255,.025));
    box-shadow: 0 0 20px color-mix(in srgb, var(--primary-color) 16%, transparent);
    transform: translateY(-2px);
}

.analysis-loader-stage.is-active i {
    color: color-mix(in srgb, var(--primary-color) 58%, white 42%);
    filter: drop-shadow(0 0 6px var(--primary-color));
}

.analysis-loader-stage.is-done {
    color: rgba(235,240,255,.76);
}

.analysis-loader-stage.is-done::after {
    content: '✓';
    position: absolute;
    top: 6px;
    right: 8px;
    color: color-mix(in srgb, var(--primary-color) 52%, white 48%);
    font-size: 11px;
    font-weight: 900;
}

.analysis-loader.is-complete .analysis-loader-core {
    animation: analysisCompletePop .48s cubic-bezier(.2,.9,.3,1.3) both;
}

.analysis-loader.is-complete .analysis-loader-panel {
    box-shadow:
        0 28px 90px rgba(0, 0, 0, .52),
        0 0 0 1px rgba(255,255,255,.08) inset,
        0 0 58px color-mix(in srgb, var(--primary-color) 45%, transparent),
        0 0 120px color-mix(in srgb, var(--primary-color) 22%, transparent);
}

.search-btn.is-analyzing {
    pointer-events: none;
    opacity: .82;
}

.search-btn.is-analyzing i {
    animation: spin 1s linear infinite;
}

@keyframes analysisPanelIn {
    from { opacity: 0; transform: translateY(18px) scale(.96); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes analysisPanelGlow {
    0%, 100% { border-color: color-mix(in srgb, var(--primary-color) 44%, rgba(255,255,255,.12)); }
    50% { border-color: color-mix(in srgb, var(--primary-color) 78%, white 12%); }
}

@keyframes analysisLoaderSweep {
    0%, 18% { transform: translateX(-70%); opacity: 0; }
    48% { opacity: 1; }
    82%, 100% { transform: translateX(70%); opacity: 0; }
}

@keyframes analysisGridMove {
    from { background-position: 0 0, 0 0; }
    to { background-position: 0 48px, 48px 0; }
}

@keyframes analysisAuraFloat {
    from { transform: translate3d(-3%, -2%, 0) scale(.92); }
    to { transform: translate3d(5%, 4%, 0) scale(1.08); }
}

@keyframes analysisOrbitSpin {
    to { transform: rotate(360deg); }
}

@keyframes analysisOrbitReverse {
    to { transform: rotate(-360deg); }
}

@keyframes analysisCorePulse {
    0%, 100% { transform: scale(.96); filter: brightness(.86); }
    50% { transform: scale(1.04); filter: brightness(1.22); }
}

@keyframes analysisNodeBlink {
    0%, 100% { opacity: .35; transform: scale(.76); }
    50% { opacity: 1; transform: scale(1.16); }
}

@keyframes analysisProgressShine {
    from { left: -25%; }
    to { left: 110%; }
}

@keyframes analysisCompletePop {
    0% { transform: scale(.94); }
    55% { transform: scale(1.14); filter: brightness(1.4); }
    100% { transform: scale(1); filter: brightness(1.12); }
}

@media (max-width: 640px) {
    .loading.analysis-loader {
        padding: 14px;
    }

    .analysis-loader-panel {
        width: 100%;
        padding: 30px 18px 24px;
        border-radius: 24px;
    }

    .analysis-loader-scanner {
        width: 148px;
        height: 148px;
        margin-bottom: 20px;
    }

    .analysis-loader-core {
        width: 82px;
        height: 82px;
        border-radius: 24px;
    }

    .analysis-loader-core svg {
        width: 46px;
        height: 46px;
    }

    .analysis-loader-stages {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (prefers-reduced-motion: reduce) {
    .analysis-loader *,
    .analysis-loader *::before,
    .analysis-loader *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}


/* ===== fix32：简洁旋转加载，不占用大面积视野 ===== */
body.is-loading-stock {
    overflow: hidden !important;
}

.loading.simple-analysis-loader {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: none;
    padding: 0;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 16px;
    background: rgba(10, 12, 27, .28);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
}

.simple-analysis-spinner {
    width: 58px;
    height: 58px;
    border-radius: 50%;
    border: 5px solid rgba(255, 255, 255, .2);
    border-top-color: var(--primary-color);
    border-right-color: color-mix(in srgb, var(--primary-color) 62%, white 38%);
    box-shadow:
        0 0 18px color-mix(in srgb, var(--primary-color) 55%, transparent),
        inset 0 0 10px rgba(255, 255, 255, .08);
    animation: simpleAnalysisSpin .82s linear infinite;
}

.loading.simple-analysis-loader p {
    margin: 0;
    color: #fff;
    font-size: 18px;
    font-weight: 800;
    letter-spacing: 1px;
    text-shadow:
        0 2px 8px rgba(0, 0, 0, .42),
        0 0 16px color-mix(in srgb, var(--primary-color) 38%, transparent);
}

.search-btn.is-analyzing {
    pointer-events: none;
    opacity: .82;
}

.search-btn.is-analyzing i {
    animation: simpleAnalysisSpin .82s linear infinite;
}

@keyframes simpleAnalysisSpin {
    to { transform: rotate(360deg); }
}

@media (max-width: 640px) {
    .simple-analysis-spinner {
        width: 50px;
        height: 50px;
        border-width: 4px;
    }

    .loading.simple-analysis-loader p {
        font-size: 16px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .simple-analysis-spinner,
    .search-btn.is-analyzing i {
        animation-duration: 1.6s !important;
    }
}


/* ===== fix33：加载提示置顶可见 + 零人为延迟 ===== */
body.is-loading-stock {
    /* 保持当前页面稳定，但不再用全屏遮罩浪费视野 */
    overflow: auto !important;
}

.loading.simple-analysis-loader {
    position: fixed !important;
    inset: auto auto auto 50% !important;
    top: 88px !important;
    z-index: 2147483647 !important;
    width: auto !important;
    min-width: 176px;
    height: 54px;
    padding: 0 20px !important;
    display: none;
    flex-direction: row !important;
    align-items: center;
    justify-content: center;
    gap: 11px !important;
    border: 1px solid color-mix(in srgb, var(--primary-color) 62%, rgba(255,255,255,.28));
    border-radius: 999px;
    background: rgba(20, 24, 46, .92) !important;
    box-shadow:
        0 10px 30px rgba(0, 0, 0, .34),
        0 0 22px color-mix(in srgb, var(--primary-color) 32%, transparent),
        inset 0 1px 0 rgba(255,255,255,.10);
    backdrop-filter: blur(12px) saturate(130%) !important;
    -webkit-backdrop-filter: blur(12px) saturate(130%) !important;
    transform: translateX(-50%);
    pointer-events: none;
    animation: simpleLoaderAppear .16s ease-out both;
}

.simple-analysis-spinner {
    flex: 0 0 auto;
    width: 24px !important;
    height: 24px !important;
    border-width: 3px !important;
    border-color: rgba(255,255,255,.22) !important;
    border-top-color: color-mix(in srgb, var(--primary-color) 68%, white 32%) !important;
    border-right-color: var(--primary-color) !important;
    box-shadow: 0 0 12px color-mix(in srgb, var(--primary-color) 52%, transparent) !important;
    animation: simpleAnalysisSpin .68s linear infinite !important;
}

.loading.simple-analysis-loader p {
    margin: 0 !important;
    color: #fff !important;
    font-size: 15px !important;
    line-height: 1 !important;
    font-weight: 800 !important;
    letter-spacing: .4px !important;
    white-space: nowrap;
    text-shadow: none !important;
}

.search-btn.is-analyzing {
    opacity: 1 !important;
}

.search-btn.is-analyzing i {
    animation: simpleAnalysisSpin .68s linear infinite !important;
}

@keyframes simpleLoaderAppear {
    from { opacity: 0; transform: translateX(-50%) translateY(-7px) scale(.96); }
    to { opacity: 1; transform: translateX(-50%) translateY(0) scale(1); }
}

@media (max-width: 640px) {
    .loading.simple-analysis-loader {
        top: 76px !important;
        min-width: 162px;
        height: 48px;
        padding: 0 16px !important;
    }

    .simple-analysis-spinner {
        width: 21px !important;
        height: 21px !important;
    }

    .loading.simple-analysis-loader p {
        font-size: 14px !important;
    }
}


/* =========================================================
   fix34：四个分析页签的汇总说明统一前置
   只调整显示顺序与上下间距，不改变卡片宽度或网格布局
   ========================================================= */
body.has-result .tab-pane > .analysis-text.analysis-summary-top {
    display: block !important;
    width: 100% !important;
    margin: 0 0 20px 0 !important;
}

@media (max-width: 640px) {
    body.has-result .tab-pane > .analysis-text.analysis-summary-top {
        margin-bottom: 14px !important;
    }
}

/* =========================================================
   fix35：基本面 / 技术面 / 资金面 / 估值面汇总卡片美化
   统一为带语义图标、主题光效和层次标题的科技感总结卡
   不改变指标网格、卡片宽度和数据逻辑
   ========================================================= */
body.has-result .tab-pane > .analysis-summary-card {
    --summary-accent: var(--primary-color);
    position: relative;
    isolation: isolate;
    width: 100%;
    margin: 0 0 22px;
    padding: 18px 20px 17px;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--summary-accent) 34%, rgba(255, 255, 255, .12));
    border-radius: 19px;
    background:
        linear-gradient(135deg, color-mix(in srgb, var(--summary-accent) 10%, rgba(255, 255, 255, .035)) 0%, rgba(255, 255, 255, .035) 44%, rgba(255, 255, 255, .018) 100%),
        rgba(20, 24, 49, .28);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .08),
        inset 0 -1px 0 rgba(0, 0, 0, .12),
        0 13px 30px rgba(4, 8, 25, .18),
        0 0 20px color-mix(in srgb, var(--summary-accent) 9%, transparent);
    backdrop-filter: blur(15px);
    -webkit-backdrop-filter: blur(15px);
}

body.has-result .tab-pane > .analysis-summary-card::before {
    content: '';
    position: absolute;
    z-index: -1;
    top: 0;
    left: 18px;
    right: 18px;
    height: 2px;
    border-radius: 0 0 999px 999px;
    background: linear-gradient(90deg, transparent, var(--summary-accent) 16%, rgba(255,255,255,.9) 50%, var(--summary-accent) 84%, transparent);
    box-shadow: 0 0 13px color-mix(in srgb, var(--summary-accent) 70%, transparent);
    opacity: .9;
}

body.has-result .tab-pane > .analysis-summary-card::after {
    content: '';
    position: absolute;
    z-index: -2;
    top: -76px;
    right: -42px;
    width: 190px;
    height: 190px;
    border-radius: 50%;
    background: radial-gradient(circle, color-mix(in srgb, var(--summary-accent) 21%, transparent) 0%, color-mix(in srgb, var(--summary-accent) 7%, transparent) 42%, transparent 72%);
    pointer-events: none;
}

body.has-result .analysis-summary-heading {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    min-width: 0;
    gap: 12px;
}

body.has-result .analysis-summary-icon {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 13px;
    color: #fff;
    background: var(--primary-gradient);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.24),
        0 7px 18px color-mix(in srgb, var(--summary-accent) 31%, transparent),
        0 0 13px color-mix(in srgb, var(--summary-accent) 20%, transparent);
}

body.has-result .analysis-summary-icon svg {
    width: 22px;
    height: 22px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}

body.has-result .analysis-summary-icon svg .fill {
    fill: currentColor;
    stroke: none;
}

body.has-result .analysis-summary-title-group {
    min-width: 0;
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 1px;
}

body.has-result .analysis-summary-eyebrow {
    color: color-mix(in srgb, var(--summary-accent) 67%, #fff);
    font-family: 'SF Mono', Monaco, Consolas, 'Courier New', monospace;
    font-size: 9px;
    font-weight: 800;
    line-height: 1.25;
    letter-spacing: 1.35px;
    opacity: .92;
}

body.has-result .analysis-summary-title-group strong {
    overflow: hidden;
    color: var(--text-primary);
    font-size: var(--ui-card-title, 16px);
    font-weight: 800;
    line-height: 1.35;
    letter-spacing: .25px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.has-result .analysis-summary-tag {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 30px;
    padding: 0 11px;
    border: 1px solid color-mix(in srgb, var(--summary-accent) 38%, rgba(255,255,255,.12));
    border-radius: 999px;
    color: color-mix(in srgb, var(--summary-accent) 54%, #fff);
    background: color-mix(in srgb, var(--summary-accent) 10%, rgba(255,255,255,.035));
    box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
    font-size: var(--ui-caption, 11px);
    font-weight: 750;
    letter-spacing: .2px;
    white-space: nowrap;
}

body.has-result .analysis-summary-tag i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--summary-accent);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--summary-accent) 13%, transparent), 0 0 11px var(--summary-accent);
    animation: summaryStatusPulse 2.2s ease-in-out infinite;
}

body.has-result .analysis-summary-divider {
    position: relative;
    height: 1px;
    margin: 14px 0 13px;
    overflow: hidden;
    background: linear-gradient(90deg, rgba(255,255,255,.11), rgba(255,255,255,.04) 72%, transparent);
}

body.has-result .analysis-summary-divider span {
    position: absolute;
    top: 0;
    left: 0;
    width: 62px;
    height: 1px;
    background: linear-gradient(90deg, var(--summary-accent), transparent);
    box-shadow: 0 0 8px color-mix(in srgb, var(--summary-accent) 65%, transparent);
}

body.has-result .analysis-summary-card > .analysis-text.analysis-summary-top {
    position: relative;
    display: block !important;
    width: 100% !important;
    min-height: 0;
    margin: 0 !important;
    padding: 0 0 0 14px !important;
    border: 0 !important;
    border-left: 2px solid color-mix(in srgb, var(--summary-accent) 60%, transparent) !important;
    border-radius: 0 !important;
    color: color-mix(in srgb, var(--text-primary) 70%, var(--text-secondary));
    background: transparent !important;
    box-shadow: none !important;
    font-size: var(--ui-body) !important;
    font-weight: 520;
    line-height: 1.82 !important;
    letter-spacing: .08px;
}

body.has-result .analysis-summary-card:hover {
    border-color: color-mix(in srgb, var(--summary-accent) 49%, rgba(255,255,255,.14));
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.09),
        inset 0 -1px 0 rgba(0,0,0,.1),
        0 15px 34px rgba(4,8,25,.21),
        0 0 27px color-mix(in srgb, var(--summary-accent) 14%, transparent);
}

body.day-theme.has-result .tab-pane > .analysis-summary-card {
    background:
        linear-gradient(135deg, color-mix(in srgb, var(--summary-accent) 8%, rgba(255,255,255,.96)) 0%, rgba(255,255,255,.92) 60%, rgba(248,250,252,.86) 100%);
    border-color: color-mix(in srgb, var(--summary-accent) 25%, rgba(15,23,42,.1));
    box-shadow: 0 12px 28px rgba(15,23,42,.08), inset 0 1px 0 rgba(255,255,255,.9);
}

body.day-theme.has-result .analysis-summary-card > .analysis-text.analysis-summary-top {
    color: color-mix(in srgb, var(--text-primary) 80%, var(--text-secondary));
}

@keyframes summaryStatusPulse {
    0%, 100% { opacity: .65; transform: scale(.88); }
    50% { opacity: 1; transform: scale(1.12); }
}

@media (max-width: 640px) {
    body.has-result .tab-pane > .analysis-summary-card {
        margin-bottom: 15px;
        padding: 15px 15px 14px;
        border-radius: 16px;
    }

    body.has-result .analysis-summary-heading {
        gap: 10px;
    }

    body.has-result .analysis-summary-icon {
        width: 38px;
        height: 38px;
        flex-basis: 38px;
        border-radius: 12px;
    }

    body.has-result .analysis-summary-icon svg {
        width: 20px;
        height: 20px;
    }

    body.has-result .analysis-summary-tag {
        min-height: 27px;
        padding: 0 9px;
    }

    body.has-result .analysis-summary-eyebrow {
        font-size: 8px;
        letter-spacing: 1px;
    }

    body.has-result .analysis-summary-divider {
        margin: 12px 0 11px;
    }

    body.has-result .analysis-summary-card > .analysis-text.analysis-summary-top {
        padding-left: 11px !important;
        line-height: 1.74 !important;
    }
}

@media (max-width: 420px) {
    body.has-result .analysis-summary-tag {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.has-result .analysis-summary-tag i {
        animation: none;
    }
}


/* =========================================================
   fix36：汇总卡片简化
   仅保留总结正文，删除图标、英文副标题、额外标题、状态标签与分割线；
   提升正文可读性，并保留克制的主题色边框发光。
   ========================================================= */
body.has-result .tab-pane > .analysis-summary-card {
    --summary-accent: var(--primary-color);
    position: relative;
    isolation: isolate;
    width: 100%;
    margin: 0 0 20px !important;
    padding: 20px 22px !important;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--summary-accent) 44%, rgba(255, 255, 255, .14)) !important;
    border-radius: 17px !important;
    background:
        linear-gradient(135deg,
            color-mix(in srgb, var(--summary-accent) 7%, rgba(255,255,255,.035)) 0%,
            rgba(255,255,255,.028) 58%,
            rgba(255,255,255,.018) 100%) !important;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.07),
        0 8px 22px rgba(4,8,25,.14),
        0 0 15px color-mix(in srgb, var(--summary-accent) 17%, transparent),
        0 0 3px color-mix(in srgb, var(--summary-accent) 48%, transparent) !important;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

body.has-result .tab-pane > .analysis-summary-card::before {
    content: '';
    position: absolute;
    z-index: -1;
    inset: 0;
    border-radius: inherit;
    background: radial-gradient(circle at 9% 0%, color-mix(in srgb, var(--summary-accent) 10%, transparent), transparent 39%);
    opacity: .8;
    pointer-events: none;
}

body.has-result .tab-pane > .analysis-summary-card::after {
    content: '';
    position: absolute;
    z-index: 0;
    top: 0;
    left: 20px;
    right: 20px;
    height: 1px;
    border-radius: 999px;
    background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--summary-accent) 75%, #fff), transparent);
    box-shadow: 0 0 9px color-mix(in srgb, var(--summary-accent) 45%, transparent);
    opacity: .75;
    pointer-events: none;
}

body.has-result .analysis-summary-card > .analysis-text.analysis-summary-top {
    position: relative;
    z-index: 1;
    display: block !important;
    width: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    color: color-mix(in srgb, var(--text-primary) 92%, #fff) !important;
    background: transparent !important;
    box-shadow: none !important;
    font-size: var(--ui-body-strong, 17px) !important;
    font-weight: 700 !important;
    line-height: 1.78 !important;
    letter-spacing: .1px !important;
    text-shadow: 0 1px 8px rgba(0,0,0,.18);
}

body.has-result .tab-pane > .analysis-summary-card:hover {
    border-color: color-mix(in srgb, var(--summary-accent) 58%, rgba(255,255,255,.16)) !important;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.08),
        0 10px 24px rgba(4,8,25,.17),
        0 0 20px color-mix(in srgb, var(--summary-accent) 22%, transparent),
        0 0 4px color-mix(in srgb, var(--summary-accent) 56%, transparent) !important;
}

body.day-theme.has-result .tab-pane > .analysis-summary-card {
    background: color-mix(in srgb, var(--summary-accent) 4%, rgba(255,255,255,.94)) !important;
    border-color: color-mix(in srgb, var(--summary-accent) 30%, rgba(15,23,42,.1)) !important;
    box-shadow:
        0 8px 20px rgba(15,23,42,.07),
        0 0 12px color-mix(in srgb, var(--summary-accent) 10%, transparent),
        inset 0 1px 0 rgba(255,255,255,.9) !important;
}

body.day-theme.has-result .analysis-summary-card > .analysis-text.analysis-summary-top {
    color: color-mix(in srgb, var(--text-primary) 94%, #000) !important;
    text-shadow: none;
}

@media (max-width: 640px) {
    body.has-result .tab-pane > .analysis-summary-card {
        margin-bottom: 15px !important;
        padding: 16px 17px !important;
        border-radius: 15px !important;
    }

    body.has-result .analysis-summary-card > .analysis-text.analysis-summary-top {
        line-height: 1.72 !important;
    }
}


/* =========================================================
   fix39：分析汇总卡片的柔和磨砂玻璃跟随光
   - 去除明显的圆形光边和折射环
   - 光线藏在玻璃层下方，边缘自然扩散
   - 正文固定在最上层，不被光效覆盖
   ========================================================= */
.cursor-glass-card {
    --glass-x: 50%;
    --glass-y: 50%;
    --glass-opacity: 0;
    position: relative;
    isolation: isolate;
    overflow: hidden !important;
}

/* 正文、按钮等内容永远处于最高层。 */
.cursor-glass-card > :not(.cursor-glass-layer) {
    position: relative;
    z-index: 10;
    isolation: isolate;
    mix-blend-mode: normal;
}

/* 对汇总正文再做一次明确保护，避免亮色背景降低文字对比度。 */
body.has-result .analysis-summary-card.cursor-glass-card > .analysis-text.analysis-summary-top {
    position: relative !important;
    z-index: 12 !important;
    mix-blend-mode: normal !important;
    filter: none !important;
    text-shadow:
        0 1px 2px rgba(0, 0, 0, .72),
        0 3px 14px rgba(0, 0, 0, .36) !important;
}

.cursor-glass-layer {
    position: absolute;
    inset: 0;
    z-index: 1;
    overflow: hidden;
    border-radius: inherit;
    pointer-events: none;
}

/* 底层柔光：亮度较低、扩散范围更大，不再出现明显圆边。 */
.cursor-glass-glow {
    position: absolute;
    inset: -45px;
    opacity: calc(var(--glass-opacity) * .82);
    background:
        radial-gradient(
            circle 235px at calc(var(--glass-x) + 45px) calc(var(--glass-y) + 45px),
            rgba(255, 255, 255, .18) 0%,
            color-mix(in srgb, var(--primary-color) 23%, rgba(255, 255, 255, .08)) 22%,
            color-mix(in srgb, var(--primary-color) 12%, transparent) 48%,
            color-mix(in srgb, var(--primary-color) 5%, transparent) 67%,
            transparent 88%
        );
    filter: blur(25px) saturate(118%);
    mix-blend-mode: normal;
    transform: scale(1.08);
    transition: opacity .28s ease;
    will-change: background, opacity;
}

/* 局部玻璃雾层：无边框、无圆环，只保留朦胧折射。 */
.cursor-glass-frost {
    position: absolute;
    left: var(--glass-x);
    top: var(--glass-y);
    width: 320px;
    height: 320px;
    border: 0;
    border-radius: 50%;
    opacity: calc(var(--glass-opacity) * .72);
    transform: translate(-50%, -50%);
    background:
        radial-gradient(circle at 39% 34%, rgba(255, 255, 255, .13) 0%, transparent 31%),
        radial-gradient(circle at center,
            color-mix(in srgb, var(--primary-color) 11%, rgba(255, 255, 255, .035)) 0%,
            color-mix(in srgb, var(--primary-color) 6%, transparent) 48%,
            transparent 78%);
    box-shadow: none;
    filter: blur(12px) saturate(112%);
    backdrop-filter: blur(9px) saturate(118%);
    -webkit-backdrop-filter: blur(9px) saturate(118%);
    mask-image: radial-gradient(circle, #000 0%, rgba(0,0,0,.94) 42%, rgba(0,0,0,.45) 64%, transparent 86%);
    -webkit-mask-image: radial-gradient(circle, #000 0%, rgba(0,0,0,.94) 42%, rgba(0,0,0,.45) 64%, transparent 86%);
    transition: opacity .28s ease;
    will-change: left, top, opacity;
}

/* 很轻的磨砂颗粒，只增强玻璃质感，不形成明显光圈。 */
.cursor-glass-noise {
    position: absolute;
    inset: 0;
    opacity: 0;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.62'/%3E%3C/svg%3E");
    background-size: 165px 165px;
    mix-blend-mode: soft-light;
    mask-image: radial-gradient(circle 190px at var(--glass-x) var(--glass-y), #000 0%, rgba(0,0,0,.72) 48%, transparent 86%);
    -webkit-mask-image: radial-gradient(circle 190px at var(--glass-x) var(--glass-y), #000 0%, rgba(0,0,0,.72) 48%, transparent 86%);
    transition: opacity .28s ease;
    will-change: mask-image, opacity;
}

/* 柔和玻璃反光，不再使用带边缘的折射弧。 */
.cursor-glass-layer::after {
    content: '';
    position: absolute;
    left: var(--glass-x);
    top: var(--glass-y);
    width: 255px;
    height: 255px;
    border-radius: 50%;
    opacity: calc(var(--glass-opacity) * .52);
    transform: translate(-50%, -50%);
    background: radial-gradient(circle at 37% 32%, rgba(255,255,255,.16) 0%, rgba(255,255,255,.055) 24%, transparent 56%);
    filter: blur(20px);
    transition: opacity .28s ease;
}

/* 鼠标进入时只轻微提升卡片质感，不加强边缘发光。 */
.cursor-glass-card.is-glass-active {
    --glass-opacity: 1;
    border-color: color-mix(in srgb, var(--primary-color) 46%, rgba(255, 255, 255, .16)) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .085),
        inset 0 0 18px rgba(255, 255, 255, .018),
        0 10px 26px rgba(4, 8, 25, .18),
        0 0 13px color-mix(in srgb, var(--primary-color) 10%, transparent) !important;
}

.cursor-glass-card.is-glass-active .cursor-glass-noise {
    opacity: .105;
}

/* 卡片原有装饰留在底层，跟随光位于其上、正文位于最上。 */
body.has-result .analysis-summary-card.cursor-glass-card::before,
body.has-result .analysis-summary-card.cursor-glass-card::after {
    z-index: 0;
}

body.day-theme .cursor-glass-glow {
    opacity: calc(var(--glass-opacity) * .68);
    background:
        radial-gradient(
            circle 235px at calc(var(--glass-x) + 45px) calc(var(--glass-y) + 45px),
            rgba(255, 255, 255, .48) 0%,
            color-mix(in srgb, var(--primary-color) 15%, rgba(255, 255, 255, .18)) 25%,
            color-mix(in srgb, var(--primary-color) 7%, transparent) 52%,
            transparent 88%
        );
    filter: blur(27px) saturate(108%);
}

body.day-theme .cursor-glass-frost {
    opacity: calc(var(--glass-opacity) * .58);
    background:
        radial-gradient(circle at 39% 34%, rgba(255, 255, 255, .38) 0%, transparent 32%),
        radial-gradient(circle at center, color-mix(in srgb, var(--primary-color) 7%, rgba(255,255,255,.08)), transparent 76%);
    filter: blur(13px) saturate(106%);
    backdrop-filter: blur(8px) saturate(110%);
    -webkit-backdrop-filter: blur(8px) saturate(110%);
}

body.day-theme.has-result .analysis-summary-card.cursor-glass-card > .analysis-text.analysis-summary-top {
    text-shadow:
        0 1px 0 rgba(255,255,255,.9),
        0 2px 10px rgba(15,23,42,.08) !important;
}

@media (hover: none), (pointer: coarse) {
    .cursor-glass-layer {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .cursor-glass-glow,
    .cursor-glass-frost,
    .cursor-glass-noise,
    .cursor-glass-layer::after {
        transition: none;
    }
}


/* =========================================================
   fix40：综合评估建议条也启用鼠标跟随磨砂玻璃光
   - 复用 cursor-glass-card 的光效与事件逻辑
   - 光效只在建议条内部显示
   - 建议文字始终位于最上层
   - 保持边框柔和，不出现明显发亮的轮廓
   ========================================================= */
body.has-result .summary-card .suggestion-box.cursor-glass-card {
    isolation: isolate;
    overflow: hidden !important;
}

body.has-result .summary-card .suggestion-box.cursor-glass-card > p {
    position: relative !important;
    z-index: 12 !important;
    isolation: isolate;
    mix-blend-mode: normal !important;
    filter: none !important;
}

body.has-result .summary-card .suggestion-box.cursor-glass-card.is-glass-active {
    border-color: color-mix(
        in srgb,
        var(--primary-color) 25%,
        rgba(255, 255, 255, .14)
    ) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .075),
        inset 0 0 16px rgba(255, 255, 255, .016),
        0 8px 22px rgba(4, 8, 25, .12) !important;
}

body.day-theme.has-result .summary-card .suggestion-box.cursor-glass-card > p {
    text-shadow:
        0 1px 0 rgba(255, 255, 255, .9),
        0 2px 8px rgba(15, 23, 42, .06) !important;
}

/* fix41：左侧股票卡片的 A 股交易状态 / 下次开盘时间 */
body.has-result .market-session-card {
    position: relative;
    z-index: 2;
    width: 100%;
    padding: 12px 14px;
    border-radius: 15px;
    border: 1px solid rgba(255, 255, 255, 0.11);
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.075), rgba(255, 255, 255, 0.025)),
        rgba(20, 17, 43, 0.2);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.06),
        0 8px 22px rgba(0, 0, 0, 0.1);
    backdrop-filter: blur(14px) saturate(118%);
    -webkit-backdrop-filter: blur(14px) saturate(118%);
    overflow: hidden;
}

body.has-result .market-session-card::before {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: radial-gradient(circle at 15% 20%, rgba(255, 255, 255, 0.065), transparent 48%);
    opacity: 0.8;
}

body.has-result .market-session-head,
body.has-result .market-session-time-row {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-width: 0;
}

body.has-result .market-session-head {
    margin-bottom: 8px;
}

body.has-result .market-session-state {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
}

body.has-result .market-session-state strong {
    color: var(--text-primary);
    font-size: 12px;
    font-weight: 750;
    white-space: nowrap;
}

body.has-result .market-session-dot {
    width: 8px;
    height: 8px;
    flex: 0 0 8px;
    border-radius: 50%;
    background: #94a3b8;
    box-shadow: 0 0 0 4px rgba(148, 163, 184, 0.1);
}

body.has-result .market-session-clock {
    color: var(--text-secondary);
    font-size: 10px;
    white-space: nowrap;
}

body.has-result .market-session-time-row {
    padding-top: 8px;
    border-top: 1px solid rgba(255, 255, 255, 0.075);
}

body.has-result .market-session-time-row span {
    color: var(--text-secondary);
    font-size: 11px;
}

body.has-result .market-session-time-row strong {
    color: var(--text-primary);
    font-size: 12px;
    font-weight: 800;
    text-align: right;
    letter-spacing: 0.1px;
}

body.has-result .market-session-card.is-open .market-session-dot {
    background: #ef4444;
    box-shadow: 0 0 0 4px rgba(239, 68, 68, 0.11), 0 0 14px rgba(239, 68, 68, 0.52);
    animation: market-dot-pulse 1.8s ease-in-out infinite;
}

body.has-result .market-session-card.is-open .market-session-time-row strong {
    color: #ff9caa;
}

body.has-result .market-session-card.is-auction .market-session-dot,
body.has-result .market-session-card.is-break .market-session-dot {
    background: #f59e0b;
    box-shadow: 0 0 0 4px rgba(245, 158, 11, 0.1), 0 0 12px rgba(245, 158, 11, 0.38);
}

body.has-result .market-session-card.is-closed .market-session-dot {
    background: #94a3b8;
    box-shadow: 0 0 0 4px rgba(148, 163, 184, 0.09);
}

@keyframes market-dot-pulse {
    0%, 100% { transform: scale(1); opacity: 1; }
    50% { transform: scale(0.82); opacity: 0.72; }
}

body.day-theme.has-result .market-session-card {
    border-color: rgba(15, 23, 42, 0.1);
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.88), rgba(248, 250, 252, 0.7)),
        rgba(255, 255, 255, 0.76);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.95),
        0 8px 22px rgba(15, 23, 42, 0.07);
}

body.day-theme.has-result .market-session-time-row {
    border-top-color: rgba(15, 23, 42, 0.08);
}

@media (max-width: 480px) {
    body.has-result .market-session-head {
        align-items: flex-start;
        flex-direction: column;
        gap: 4px;
    }

    body.has-result .market-session-time-row {
        align-items: flex-start;
        flex-direction: column;
        gap: 2px;
    }

    body.has-result .market-session-time-row strong {
        text-align: left;
    }
}

/* fix42：交易状态拆成独立卡片，置于左侧股票信息卡上方，并放大文字 */
body.has-result .left-rail > .market-session-card.market-session-standalone {
    order: -1;
    width: 100% !important;
    margin: 0 !important;
    padding: 17px 19px !important;
    border-radius: 20px !important;
    border: 1.5px solid rgba(255, 255, 255, 0.14) !important;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.09), rgba(255, 255, 255, 0.03)),
        rgba(28, 23, 55, 0.72) !important;
    box-shadow:
        0 10px 28px rgba(5, 7, 22, 0.22),
        inset 0 1px 0 rgba(255, 255, 255, 0.075) !important;
    backdrop-filter: blur(18px) saturate(125%) !important;
    -webkit-backdrop-filter: blur(18px) saturate(125%) !important;
    flex: none !important;
}

body.has-result .left-rail > .market-session-card.market-session-standalone::after {
    content: '';
    position: absolute;
    top: 0;
    left: 18px;
    right: 18px;
    height: 2px;
    border-radius: 0 0 999px 999px;
    background: linear-gradient(90deg, transparent, var(--primary-color), transparent);
    opacity: 0.72;
    pointer-events: none;
}

body.has-result .market-session-standalone .market-session-head {
    margin-bottom: 12px !important;
    gap: 14px !important;
}

body.has-result .market-session-standalone .market-session-state {
    gap: 9px !important;
}

body.has-result .market-session-standalone .market-session-state strong {
    font-size: 15px !important;
    line-height: 1.35 !important;
    font-weight: 850 !important;
    letter-spacing: 0.01em !important;
}

body.has-result .market-session-standalone .market-session-dot {
    width: 10px !important;
    height: 10px !important;
    flex-basis: 10px !important;
}

body.has-result .market-session-standalone .market-session-clock {
    font-size: 12px !important;
    line-height: 1.35 !important;
    font-weight: 600 !important;
}

body.has-result .market-session-standalone .market-session-time-row {
    padding-top: 11px !important;
    gap: 14px !important;
}

body.has-result .market-session-standalone .market-session-time-row span {
    font-size: 13px !important;
    line-height: 1.35 !important;
    font-weight: 650 !important;
}

body.has-result .market-session-standalone .market-session-time-row strong {
    font-size: 15px !important;
    line-height: 1.35 !important;
    font-weight: 900 !important;
    letter-spacing: 0.02em !important;
}

body.day-theme.has-result .left-rail > .market-session-card.market-session-standalone {
    border-color: rgba(15, 23, 42, 0.1) !important;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(248, 250, 252, 0.82)),
        rgba(255, 255, 255, 0.82) !important;
    box-shadow:
        0 10px 26px rgba(15, 23, 42, 0.08),
        inset 0 1px 0 rgba(255, 255, 255, 0.98) !important;
}

@media (max-width: 480px) {
    body.has-result .left-rail > .market-session-card.market-session-standalone {
        padding: 15px 16px !important;
        border-radius: 18px !important;
    }

    body.has-result .market-session-standalone .market-session-state strong,
    body.has-result .market-session-standalone .market-session-time-row strong {
        font-size: 14px !important;
    }

    body.has-result .market-session-standalone .market-session-clock,
    body.has-result .market-session-standalone .market-session-time-row span {
        font-size: 12px !important;
    }
}


/* =========================================================
   fix43：交易状态字号、成交额缺失隐藏、图表右侧悬浮提示
   ========================================================= */

/* 交易状态独立卡片：整体字号再放大，提高远距离阅读性。 */
body.has-result .left-rail > .market-session-card.market-session-standalone {
    padding: 20px 22px !important;
    min-height: 116px;
}

body.has-result .market-session-standalone .market-session-head {
    margin-bottom: 15px !important;
}

body.has-result .market-session-standalone .market-session-state strong {
    font-size: clamp(18px, 1vw, 21px) !important;
    line-height: 1.3 !important;
    letter-spacing: .015em !important;
}

body.has-result .market-session-standalone .market-session-dot {
    width: 12px !important;
    height: 12px !important;
    flex-basis: 12px !important;
    box-shadow: 0 0 0 5px rgba(148, 163, 184, .08), 0 0 12px currentColor;
}

body.has-result .market-session-standalone .market-session-clock {
    font-size: clamp(14px, .72vw, 16px) !important;
    font-weight: 700 !important;
}

body.has-result .market-session-standalone .market-session-time-row {
    padding-top: 14px !important;
}

body.has-result .market-session-standalone .market-session-time-row span {
    font-size: clamp(15px, .78vw, 17px) !important;
    font-weight: 750 !important;
}

body.has-result .market-session-standalone .market-session-time-row strong {
    font-size: clamp(19px, 1.04vw, 22px) !important;
    line-height: 1.25 !important;
}

/* 无有效成交额时，整张指标卡直接从布局中移除。 */
#stockAmountMiniCard[hidden],
#amountMetricCard[hidden] {
    display: none !important;
}

/* 图表提示框预留区域保持清晰，不让画布边缘裁切。 */
body.has-result .chart-container {
    overflow: hidden !important;
}

@media (max-width: 680px) {
    body.has-result .left-rail > .market-session-card.market-session-standalone {
        padding: 17px 18px !important;
        min-height: 104px;
    }

    body.has-result .market-session-standalone .market-session-state strong {
        font-size: 17px !important;
    }

    body.has-result .market-session-standalone .market-session-clock,
    body.has-result .market-session-standalone .market-session-time-row span {
        font-size: 13px !important;
    }

    body.has-result .market-session-standalone .market-session-time-row strong {
        font-size: 18px !important;
    }
}


/* =========================================================
   fix44：K线恢复完整宽度、结果页搜索框收短、加载提示下移
   ========================================================= */

/* K线区域不再为了提示框预留一大块空白，图形重新铺满卡片。 */
body.has-result .chart-container {
    height: clamp(410px, 28vw, 520px) !important;
    min-height: 410px !important;
    padding: 16px 14px 12px !important;
    overflow: hidden !important;
}

body.has-result .chart-container canvas {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
}

/* K线悬浮信息采用画布外的固定浮层：不压缩图形，仍优先跟在数据点右边。 */
.kline-external-tooltip {
    position: fixed;
    z-index: 10050;
    min-width: 176px;
    max-width: min(260px, calc(100vw - 24px));
    padding: 13px 15px;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 10px;
    background: rgba(15, 23, 42, .96);
    box-shadow:
        0 14px 34px rgba(0, 0, 0, .34),
        inset 0 1px 0 rgba(255, 255, 255, .06);
    backdrop-filter: blur(14px) saturate(125%);
    -webkit-backdrop-filter: blur(14px) saturate(125%);
    color: #f8fafc;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    transform: translateY(3px) scale(.985);
    transition: opacity .12s ease, transform .12s ease;
}

.kline-external-tooltip.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0) scale(1);
}

.kline-external-tooltip-title {
    margin-bottom: 8px;
    font-size: 16px;
    line-height: 1.25;
    font-weight: 850;
    letter-spacing: .01em;
}

.kline-external-tooltip-rows {
    display: grid;
    gap: 7px;
}

.kline-external-tooltip-row {
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 0;
}

.kline-external-tooltip-swatch {
    width: 14px;
    height: 14px;
    flex: 0 0 14px;
    border: 2px solid var(--tooltip-series-color);
    background: color-mix(in srgb, var(--tooltip-series-color) 20%, transparent);
    box-shadow: 0 0 8px color-mix(in srgb, var(--tooltip-series-color) 42%, transparent);
}

.kline-external-tooltip-label {
    min-width: 0;
    font-size: 15px;
    line-height: 1.35;
    font-weight: 720;
    white-space: nowrap;
}

/* 首页点击分析后，搜索框先平滑收短，不再突然拉长。 */
body:not(.has-result).is-loading-stock .search-section {
    width: min(680px, calc(100% - 48px)) !important;
    max-width: 680px !important;
    transition: width .22s ease, max-width .22s ease !important;
}

body:not(.has-result).is-loading-stock .search-box {
    width: 100% !important;
    max-width: 680px !important;
}

/* 进入详情页后，顶部搜索框保持短而紧凑。 */
@media (min-width: 900px) {
    body.has-result .search-section {
        width: min(46vw, 480px) !important;
        max-width: 480px !important;
        flex: 0 1 480px !important;
        margin-inline: auto !important;
    }

    body.has-result .search-box {
        width: 100% !important;
        max-width: 480px !important;
    }
}

/* “正在分析中”向下移动，避免贴近页面顶部。 */
body.is-loading-stock .loading.simple-analysis-loader {
    top: clamp(132px, 15vh, 168px) !important;
}

@media (max-width: 899px) {
    body.has-result .chart-container {
        height: clamp(360px, 62vw, 460px) !important;
        min-height: 360px !important;
    }

    body:not(.has-result).is-loading-stock .search-section {
        width: min(620px, calc(100% - 32px)) !important;
        max-width: 620px !important;
    }

    body.is-loading-stock .loading.simple-analysis-loader {
        top: 118px !important;
    }
}

@media (max-width: 560px) {
    body.has-result .chart-container {
        height: 350px !important;
        min-height: 350px !important;
        padding: 12px 8px 10px !important;
    }

    .kline-external-tooltip {
        min-width: 156px;
        padding: 11px 12px;
    }

    .kline-external-tooltip-title {
        font-size: 14px;
    }

    .kline-external-tooltip-label {
        font-size: 13px;
    }
}


/* =========================================================
   fix45：分析时首页布局锁定 + 开发者联系按钮/弹窗
   ========================================================= */

/* 点击分析后只让搜索框本身收短，标题、搜索区域中心和快捷入口都不移动。 */
body:not(.has-result).is-loading-stock .search-section {
    width: min(860px, calc(100vw - 180px)) !important;
    max-width: 860px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    transform: none !important;
}

body:not(.has-result).is-loading-stock .hero-copy {
    width: max-content !important;
    max-width: none !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

body:not(.has-result).is-loading-stock .hero-copy h2 {
    width: max-content !important;
    max-width: none !important;
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
}

body:not(.has-result).is-loading-stock .search-box {
    width: min(680px, 100%) !important;
    max-width: 680px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* 分析/分析中使用完全相同的按钮宽度，避免输入框和按钮左右跳动。 */
body:not(.has-result) .search-btn {
    width: 150px !important;
    min-width: 150px !important;
    justify-content: center !important;
    white-space: nowrap !important;
}

body:not(.has-result) .search-btn.is-analyzing {
    width: 150px !important;
    min-width: 150px !important;
}

/* 开发者按钮：与主题按钮完全同尺寸，位于主题按钮左侧。 */
#developerBtn.developer-btn {
    cursor: pointer;
}

body:not(.has-result) #developerBtn.developer-btn {
    position: absolute !important;
    top: clamp(30px, 4.2vw, 52px) !important;
    right: calc(clamp(26px, 4.2vw, 56px) + 72px) !important;
    width: 58px !important;
    height: 58px !important;
    border-radius: 20px !important;
    background: rgba(255, 255, 255, 0.14) !important;
    border: 1.5px solid rgba(255, 255, 255, 0.25) !important;
    box-shadow: 0 12px 30px rgba(39, 24, 90, 0.18) !important;
    z-index: 10 !important;
}

body:not(.has-result) #developerBtn.developer-btn svg {
    width: 22px !important;
    height: 22px !important;
}

@media (min-width: 1024px) {
    body:not(.has-result) #developerBtn.developer-btn {
        top: 28px !important;
        right: calc(clamp(28px, 4vw, 66px) + 60px) !important;
        width: 48px !important;
        height: 48px !important;
        border-radius: 15px !important;
    }
}

/* 结果页顶部栏同时保留“开发者”和“主题”两个同尺寸按钮。 */
body.has-result #developerBtn.developer-btn {
    position: static !important;
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    border-radius: 14px !important;
    flex: none !important;
    order: 3 !important;
    margin: 0 0 0 8px !important;
    padding: 0 !important;
    transform: none !important;
    background: rgba(255, 255, 255, 0.12) !important;
    border: 1px solid rgba(255, 255, 255, 0.18) !important;
    color: white !important;
}

body.has-result #themeBtn.theme-btn {
    order: 4 !important;
}

body.day-theme #developerBtn.developer-btn {
    color: inherit;
}

/* 开发者联系方式磨砂弹窗。 */
.developer-contact-backdrop {
    position: fixed;
    inset: 0;
    z-index: 2147483646;
    display: grid;
    place-items: center;
    padding: 24px;
    background: rgba(7, 9, 20, .48);
    backdrop-filter: blur(9px) saturate(115%);
    -webkit-backdrop-filter: blur(9px) saturate(115%);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .2s ease, visibility .2s ease;
}

.developer-contact-backdrop.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.developer-contact-dialog {
    position: relative;
    width: min(460px, calc(100vw - 32px));
    padding: 30px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 26px;
    color: #f8fafc;
    background:
        linear-gradient(145deg, rgba(63, 46, 91, .96), rgba(32, 29, 61, .96));
    box-shadow:
        0 30px 80px rgba(5, 7, 18, .48),
        inset 0 1px 0 rgba(255, 255, 255, .10);
    transform: translateY(12px) scale(.97);
    transition: transform .22s ease;
}

.developer-contact-backdrop.is-open .developer-contact-dialog {
    transform: translateY(0) scale(1);
}

.developer-contact-dialog::before {
    content: '';
    position: absolute;
    width: 230px;
    height: 230px;
    right: -92px;
    top: -112px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(208, 107, 135, .36), transparent 68%);
    pointer-events: none;
}

.developer-contact-close {
    position: absolute;
    top: 16px;
    right: 16px;
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: 12px;
    color: #fff;
    background: rgba(255, 255, 255, .08);
    cursor: pointer;
    transition: background .18s ease, transform .18s ease;
}

.developer-contact-close:hover {
    background: rgba(255, 255, 255, .15);
    transform: rotate(4deg);
}

.developer-contact-avatar {
    width: 62px;
    height: 62px;
    display: grid;
    place-items: center;
    margin-bottom: 18px;
    border: 1px solid rgba(255, 255, 255, .24);
    border-radius: 20px;
    color: #fff;
    background: var(--primary-gradient);
    box-shadow: 0 12px 28px var(--primary-shadow);
}

.developer-contact-copy,
.developer-contact-info,
.developer-contact-actions {
    position: relative;
    z-index: 1;
}

.developer-contact-kicker {
    display: block;
    margin-bottom: 6px;
    color: rgba(255, 255, 255, .66);
    font-size: 13px;
    font-weight: 750;
    letter-spacing: .12em;
}

.developer-contact-copy h2 {
    margin: 0 0 10px;
    color: #fff;
    font-size: 28px;
    line-height: 1.2;
}

.developer-contact-copy p {
    margin: 0;
    color: rgba(255, 255, 255, .72);
    font-size: 15px;
    line-height: 1.75;
}

.developer-contact-info {
    display: grid;
    gap: 10px;
    margin-top: 22px;
    padding: 16px 18px;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 18px;
    background: rgba(255, 255, 255, .055);
}

.developer-contact-row {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    align-items: center;
    gap: 14px;
    min-width: 0;
}

.developer-contact-row > span {
    color: rgba(255, 255, 255, .56);
    font-size: 14px;
    font-weight: 700;
}

.developer-contact-row strong,
.developer-contact-row a {
    min-width: 0;
    color: #fff;
    font-size: 16px;
    font-weight: 800;
    text-decoration: none;
    overflow-wrap: anywhere;
}

.developer-contact-row a:hover {
    color: color-mix(in srgb, var(--primary-color) 58%, white 42%);
}

.developer-contact-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-top: 18px;
}

.developer-mail-btn,
.developer-copy-btn {
    min-height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 0 16px;
    border-radius: 14px;
    font-size: 15px;
    font-weight: 800;
    cursor: pointer;
    text-decoration: none;
    transition: transform .18s ease, filter .18s ease, background .18s ease;
}

.developer-mail-btn {
    border: 0;
    color: #fff;
    background: var(--primary-gradient);
    box-shadow: 0 10px 24px var(--primary-shadow);
}

.developer-copy-btn {
    border: 1px solid rgba(255, 255, 255, .15);
    color: #fff;
    background: rgba(255, 255, 255, .08);
}

.developer-mail-btn:hover,
.developer-copy-btn:hover {
    transform: translateY(-1px);
    filter: brightness(1.06);
}

.developer-copy-btn.is-copied {
    background: rgba(34, 197, 94, .20);
    border-color: rgba(74, 222, 128, .40);
}

body.developer-contact-open {
    overflow: hidden !important;
}

@media (max-width: 700px) {
    body:not(.has-result).is-loading-stock .search-section {
        width: min(620px, calc(100% - 32px)) !important;
        max-width: 620px !important;
    }

    body:not(.has-result) .search-btn,
    body:not(.has-result) .search-btn.is-analyzing {
        width: 118px !important;
        min-width: 118px !important;
    }

    body:not(.has-result) #developerBtn.developer-btn {
        right: 78px !important;
        top: 18px !important;
        width: 46px !important;
        height: 46px !important;
        border-radius: 15px !important;
    }

    body:not(.has-result) #themeBtn.theme-btn {
        top: 18px !important;
        right: 20px !important;
        width: 46px !important;
        height: 46px !important;
        border-radius: 15px !important;
    }

    .developer-contact-dialog {
        padding: 24px 20px 20px;
        border-radius: 22px;
    }

    .developer-contact-copy h2 {
        font-size: 24px;
    }

    .developer-contact-actions {
        grid-template-columns: 1fr;
    }
}


/* =========================================================
   fix46：邮箱点击复制 / 结果页搜索框精确居中 / 财报卡升级 / 行情去重
   ========================================================= */

/* 开发者弹窗：去掉底部动作按钮，邮箱本身就是复制按钮。 */
.developer-contact-info {
    margin-bottom: 0 !important;
}

.developer-email-copy {
    width: 100%;
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border: 1px solid transparent;
    border-radius: 12px;
    color: #fff;
    background: rgba(255, 255, 255, .035);
    cursor: pointer;
    text-align: left;
    transition: background .18s ease, border-color .18s ease, transform .18s ease;
}

.developer-email-copy:hover {
    background: rgba(255, 255, 255, .085);
    border-color: rgba(255, 255, 255, .13);
    transform: translateY(-1px);
}

.developer-email-copy strong {
    min-width: 0;
    color: #fff;
    font-size: 16px;
    font-weight: 850;
    overflow-wrap: anywhere;
}

.developer-email-copy small {
    flex: none;
    color: rgba(255, 255, 255, .56);
    font-size: 12px;
    font-weight: 750;
    white-space: nowrap;
}

.developer-email-copy.is-copied {
    background: rgba(34, 197, 94, .15);
    border-color: rgba(74, 222, 128, .34);
}

.developer-email-copy.is-copied small {
    color: #86efac;
}

.developer-contact-actions {
    display: none !important;
}

/* 结果页桌面端：搜索栏以视口中心为基准，不再受左右按钮宽度影响。 */
@media (min-width: 900px) {
    body.has-result .header,
    body.has-result .header.has-result {
        position: sticky !important;
        padding-left: 24px !important;
        padding-right: 24px !important;
    }

    body.has-result .search-section {
        position: absolute !important;
        left: 50% !important;
        top: 50% !important;
        width: min(480px, calc(100vw - 520px)) !important;
        max-width: 480px !important;
        margin: 0 !important;
        transform: translate(-50%, -50%) !important;
        z-index: 2 !important;
    }

    body.has-result #developerBtn.developer-btn {
        position: absolute !important;
        right: 76px !important;
        top: 50% !important;
        margin: 0 !important;
        transform: translateY(-50%) !important;
        z-index: 3 !important;
    }

    body.has-result #themeBtn.theme-btn {
        position: absolute !important;
        right: 24px !important;
        top: 50% !important;
        margin: 0 !important;
        transform: translateY(-50%) !important;
        z-index: 3 !important;
    }
}

/* 财报卡：从一句话提醒升级为日期、倒计时、类型、提示四层信息。 */
body.has-result .earnings-alert.earnings-calendar-card {
    align-items: flex-start !important;
    gap: 14px !important;
    padding: 18px !important;
    border: 1px solid rgba(255, 255, 255, .10) !important;
    background:
        linear-gradient(145deg, rgba(255,255,255,.055), rgba(255,255,255,.025)),
        var(--fx13-panel) !important;
    box-shadow: 0 12px 30px rgba(20, 15, 42, .18) !important;
}

body.has-result .earnings-calendar-card .earnings-icon {
    width: 46px !important;
    height: 46px !important;
    flex: 0 0 46px !important;
    border-radius: 15px !important;
    background: linear-gradient(145deg, rgba(255,255,255,.18), rgba(255,255,255,.08)) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.12) !important;
}

.earnings-topline,
.earnings-date-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

body.has-result .earnings-title {
    margin: 0 !important;
    color: var(--text-primary) !important;
    font-size: 15px !important;
    font-weight: 850 !important;
}

.earnings-type {
    flex: none;
    padding: 4px 9px;
    border: 1px solid rgba(255,255,255,.11);
    border-radius: 999px;
    color: rgba(255,255,255,.78);
    background: rgba(255,255,255,.055);
    font-size: 11px;
    font-weight: 800;
}

.earnings-date-row {
    margin-top: 8px;
}

.earnings-date-row strong {
    color: #fff;
    font-size: 16px;
    line-height: 1.25;
    font-weight: 900;
}

.earnings-date-row span {
    flex: none;
    color: color-mix(in srgb, var(--primary-color) 44%, white 56%);
    font-size: 12px;
    font-weight: 850;
}

body.has-result .earnings-info {
    margin-top: 7px !important;
    color: rgba(255,255,255,.78) !important;
    font-size: 13px !important;
    line-height: 1.55 !important;
}

.earnings-note {
    margin-top: 7px;
    color: rgba(255,255,255,.42);
    font-size: 11px;
    line-height: 1.4;
}

.earnings-calendar-card[data-urgency="today"],
.earnings-calendar-card[data-urgency="near"] {
    border-color: color-mix(in srgb, var(--primary-color) 46%, transparent) !important;
}

.earnings-calendar-card[data-urgency="today"] .earnings-date-row span,
.earnings-calendar-card[data-urgency="near"] .earnings-date-row span {
    color: #fecaca;
}

/* 左侧股票卡只保留不与详情面板重复的即时行情。 */
body.has-result .stock-mini-item strong {
    font-variant-numeric: tabular-nums;
}

@media (max-width: 560px) {
    .developer-contact-row {
        grid-template-columns: 52px minmax(0, 1fr);
    }

    .developer-email-copy {
        align-items: flex-start;
        flex-direction: column;
        gap: 4px;
    }

    .earnings-topline,
    .earnings-date-row {
        align-items: flex-start;
    }
}


/* =========================================================
   fix47：邮箱悬停整块变蓝 / 财报倒计时放大 / 新增板块云图入口
   ========================================================= */

/* 邮箱区域只保留邮箱本身：悬停时整块变蓝，点击即可复制。 */
.developer-email-copy {
    justify-content: flex-start !important;
    padding: 11px 14px !important;
    color: #fff !important;
    background: rgba(255, 255, 255, .035) !important;
    border-color: transparent !important;
    box-shadow: none !important;
}

.developer-email-copy strong {
    color: inherit !important;
    font-size: 16px !important;
    transition: color .18s ease;
}

.developer-email-copy:hover,
.developer-email-copy:focus-visible {
    color: #fff !important;
    background: linear-gradient(135deg, #3b82f6, #2563eb) !important;
    border-color: rgba(147, 197, 253, .72) !important;
    box-shadow: 0 8px 24px rgba(37, 99, 235, .30) !important;
    transform: translateY(-1px);
    outline: none;
}

.developer-email-copy.is-copied {
    color: #fff !important;
    background: linear-gradient(135deg, #2563eb, #1d4ed8) !important;
    border-color: rgba(191, 219, 254, .76) !important;
}
.developer-email-copy {
    position: relative;
}

/* “还有 xx 天”略微放大，增强识别度。 */
.earnings-date-row span {
    font-size: 14px !important;
    line-height: 1.2;
    letter-spacing: .1px;
}

/* 左栏新增板块云图入口卡片。 */
.sector-cloud-card {
    width: 100%;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 18px;
    border: 1px solid rgba(255, 255, 255, .10);
    border-radius: 22px;
    color: var(--text-primary);
    text-decoration: none;
    background:
        linear-gradient(145deg, rgba(255, 255, 255, .055), rgba(255, 255, 255, .025)),
        var(--fx13-panel, var(--card-bg));
    box-shadow: 0 12px 30px rgba(20, 15, 42, .18);
    overflow: hidden;
    position: relative;
    transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease, background .22s ease;
}

.sector-cloud-card::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 18% 20%, color-mix(in srgb, var(--primary-color) 22%, transparent), transparent 52%);
    opacity: .65;
    pointer-events: none;
}

.sector-cloud-card:hover,
.sector-cloud-card:focus-visible {
    transform: translateY(-2px);
    border-color: color-mix(in srgb, var(--primary-color) 48%, rgba(255,255,255,.16));
    box-shadow: 0 16px 34px rgba(20, 15, 42, .25), 0 0 0 3px color-mix(in srgb, var(--primary-color) 10%, transparent);
    outline: none;
}

.sector-cloud-icon,
.sector-cloud-copy,
.sector-cloud-arrow {
    position: relative;
    z-index: 1;
}

.sector-cloud-icon {
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    display: grid;
    place-items: center;
    border-radius: 15px;
    color: #fff;
    background: var(--primary-gradient);
    box-shadow: 0 8px 20px var(--primary-shadow);
}

.sector-cloud-copy {
    min-width: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.sector-cloud-copy strong {
    color: #fff;
    font-size: 16px;
    font-weight: 900;
    line-height: 1.2;
}

.sector-cloud-copy small {
    color: rgba(255, 255, 255, .62);
    font-size: 12px;
    font-weight: 650;
    line-height: 1.45;
}

.sector-cloud-arrow {
    flex: none;
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    color: rgba(255,255,255,.82);
    background: rgba(255,255,255,.07);
    font-size: 18px;
    font-weight: 800;
    transition: transform .22s ease, background .22s ease;
}

.sector-cloud-card:hover .sector-cloud-arrow {
    transform: translate(2px, -2px);
    background: rgba(255,255,255,.12);
}

body.day-theme .sector-cloud-card {
    color: var(--text-primary);
    background: rgba(255,255,255,.94);
    border-color: rgba(15,23,42,.10);
}

body.day-theme .sector-cloud-copy strong {
    color: var(--text-primary);
}

body.day-theme .sector-cloud-copy small {
    color: var(--text-secondary);
}

@media (max-width: 560px) {
    .sector-cloud-card {
        padding: 16px;
    }

    .sector-cloud-copy strong {
        font-size: 15px;
    }
}


/* =========================================================
   fix48：邮箱仅文字悬停变蓝 / 首页新增特色板块云图入口
   ========================================================= */

/* 邮箱与“苏木”保持同一种纯文字呈现：无底色、无边框、无胶囊。 */
.developer-email-copy,
.developer-email-copy:hover,
.developer-email-copy:focus-visible,
.developer-email-copy.is-copied {
    width: fit-content !important;
    max-width: 100% !important;
    min-width: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    transform: none !important;
    outline: none !important;
    text-align: left !important;
    cursor: pointer;
}

.developer-email-copy strong {
    color: #fff !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    line-height: 1.45;
    text-decoration: none;
    transition: color .18s ease, text-shadow .18s ease;
}

.developer-email-copy:hover strong,
.developer-email-copy:focus-visible strong {
    color: #60a5fa !important;
    text-shadow: 0 0 14px rgba(96, 165, 250, .24);
}

/* 点击复制后仍不出现背景，只让文字短暂变为更亮的蓝色。 */
.developer-email-copy.is-copied strong {
    color: #93c5fd !important;
    text-shadow: 0 0 16px rgba(96, 165, 250, .34);
}

/* 首页专用的特色“板块云图”入口。 */
.home-sector-cloud-card {
    width: min(460px, 100%);
    min-height: 84px;
    margin-top: 24px;
    padding: 14px 16px;
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    position: relative;
    isolation: isolate;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .26);
    border-radius: 24px;
    color: #fff;
    text-decoration: none;
    background:
        radial-gradient(circle at 12% 20%, rgba(255,255,255,.20), transparent 34%),
        linear-gradient(135deg, rgba(255,255,255,.16), rgba(255,255,255,.075));
    box-shadow:
        0 18px 38px rgba(74, 31, 73, .22),
        inset 0 1px 0 rgba(255,255,255,.22);
    backdrop-filter: blur(16px) saturate(135%);
    -webkit-backdrop-filter: blur(16px) saturate(135%);
    transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease;
}

.home-sector-cloud-card::before {
    content: '';
    position: absolute;
    inset: -45%;
    z-index: -2;
    background: conic-gradient(
        from 120deg,
        transparent 0 25%,
        rgba(255, 214, 102, .24) 34%,
        rgba(255, 120, 145, .18) 47%,
        rgba(180, 112, 255, .25) 58%,
        transparent 72% 100%
    );
    filter: blur(22px);
    opacity: .62;
    transform: rotate(-8deg);
    transition: transform .55s ease, opacity .3s ease;
}

.home-sector-cloud-card::after {
    content: '';
    position: absolute;
    top: -45%;
    left: -22%;
    width: 25%;
    height: 190%;
    z-index: -1;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,.20), transparent);
    transform: rotate(18deg) translateX(-170%);
    transition: transform .65s ease;
    pointer-events: none;
}

.home-sector-cloud-card:hover,
.home-sector-cloud-card:focus-visible {
    transform: translateY(-3px) scale(1.012);
    border-color: rgba(255,255,255,.48);
    box-shadow:
        0 22px 48px rgba(74, 31, 73, .30),
        0 0 0 4px rgba(255,255,255,.08),
        inset 0 1px 0 rgba(255,255,255,.30);
    outline: none;
}

.home-sector-cloud-card:hover::before,
.home-sector-cloud-card:focus-visible::before {
    opacity: .9;
    transform: rotate(16deg) scale(1.05);
}

.home-sector-cloud-card:hover::after,
.home-sector-cloud-card:focus-visible::after {
    transform: rotate(18deg) translateX(610%);
}

.home-sector-cloud-heatmap {
    width: 58px;
    height: 58px;
    padding: 7px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: repeat(3, 1fr);
    gap: 4px;
    border-radius: 18px;
    background: rgba(20, 18, 43, .28);
    border: 1px solid rgba(255,255,255,.20);
    box-shadow: inset 0 1px 8px rgba(0,0,0,.10), 0 8px 22px rgba(38,20,61,.18);
}

.home-sector-cloud-heatmap i {
    display: block;
    border-radius: 4px;
    background: rgba(255,255,255,.24);
    transform: scale(.92);
    transition: transform .22s ease, filter .22s ease;
}

.home-sector-cloud-heatmap i:nth-child(1),
.home-sector-cloud-heatmap i:nth-child(5),
.home-sector-cloud-heatmap i:nth-child(8) {
    background: linear-gradient(135deg, #ff6b6b, #ff3d6e);
}
.home-sector-cloud-heatmap i:nth-child(2),
.home-sector-cloud-heatmap i:nth-child(6) {
    background: linear-gradient(135deg, #fbbf24, #fb7185);
}
.home-sector-cloud-heatmap i:nth-child(3),
.home-sector-cloud-heatmap i:nth-child(7) {
    background: linear-gradient(135deg, #a78bfa, #7c3aed);
}
.home-sector-cloud-heatmap i:nth-child(4),
.home-sector-cloud-heatmap i:nth-child(9) {
    background: linear-gradient(135deg, #34d399, #10b981);
}

.home-sector-cloud-card:hover .home-sector-cloud-heatmap i:nth-child(odd),
.home-sector-cloud-card:focus-visible .home-sector-cloud-heatmap i:nth-child(odd) {
    transform: scale(1.06) translateY(-1px);
    filter: brightness(1.10);
}

.home-sector-cloud-copy {
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
}

.home-sector-cloud-copy small {
    color: rgba(255,255,255,.68);
    font-size: 10px;
    font-weight: 750;
    letter-spacing: 1.4px;
}

.home-sector-cloud-copy strong {
    color: #fff;
    font-size: 18px;
    font-weight: 900;
    line-height: 1.25;
    letter-spacing: .5px;
}

.home-sector-cloud-copy span {
    color: rgba(255,255,255,.72);
    font-size: 11px;
    font-weight: 650;
    line-height: 1.35;
}

.home-sector-cloud-action {
    min-width: 84px;
    height: 38px;
    padding: 0 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    border: 1px solid rgba(255,255,255,.20);
    border-radius: 14px;
    color: #fff;
    background: rgba(20,18,43,.20);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.13);
    transition: transform .22s ease, background .22s ease;
}

.home-sector-cloud-action b {
    font-size: 12px;
    font-weight: 850;
    white-space: nowrap;
}

.home-sector-cloud-card:hover .home-sector-cloud-action,
.home-sector-cloud-card:focus-visible .home-sector-cloud-action {
    transform: translateX(3px);
    background: rgba(255,255,255,.16);
}

body.has-result .home-sector-cloud-card {
    display: none !important;
}

body.day-theme .home-sector-cloud-card {
    color: #fff;
    border-color: rgba(255,255,255,.36);
}

@media (max-width: 560px) {
    .home-sector-cloud-card {
        width: 100%;
        grid-template-columns: 52px minmax(0, 1fr) 34px;
        gap: 11px;
        padding: 12px 13px;
        border-radius: 20px;
    }

    .home-sector-cloud-heatmap {
        width: 52px;
        height: 52px;
        border-radius: 16px;
    }

    .home-sector-cloud-action {
        min-width: 34px;
        width: 34px;
        height: 34px;
        padding: 0;
    }

    .home-sector-cloud-action b {
        display: none;
    }

    .home-sector-cloud-copy strong {
        font-size: 16px;
    }

    .home-sector-cloud-copy span {
        font-size: 10px;
    }
}

/* =========================================================
   fix49：分析中右上角按钮统一 / 板块云图鼠标横向扩散光效
   ========================================================= */

/* 分析过程中，开发者按钮和主题按钮使用完全一致的尺寸、位置、圆角和透明度。 */
@media (min-width: 701px) {
    body:not(.has-result).is-loading-stock #developerBtn.developer-btn,
    body:not(.has-result).is-loading-stock #themeBtn.theme-btn {
        position: absolute !important;
        top: 28px !important;
        width: 48px !important;
        height: 48px !important;
        min-width: 48px !important;
        min-height: 48px !important;
        padding: 0 !important;
        margin: 0 !important;
        border-radius: 15px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        color: #fff !important;
        background: rgba(255, 255, 255, .14) !important;
        border: 1px solid rgba(255, 255, 255, .24) !important;
        box-shadow: 0 10px 26px rgba(39, 24, 90, .16) !important;
        transform: none !important;
        z-index: 30 !important;
    }

    body:not(.has-result).is-loading-stock #themeBtn.theme-btn {
        right: clamp(28px, 4vw, 66px) !important;
    }

    body:not(.has-result).is-loading-stock #developerBtn.developer-btn {
        right: calc(clamp(28px, 4vw, 66px) + 60px) !important;
    }

    body:not(.has-result).is-loading-stock #developerBtn.developer-btn svg,
    body:not(.has-result).is-loading-stock #themeBtn.theme-btn svg {
        width: 22px !important;
        height: 22px !important;
        flex: 0 0 22px !important;
    }
}

@media (max-width: 700px) {
    body:not(.has-result).is-loading-stock #developerBtn.developer-btn,
    body:not(.has-result).is-loading-stock #themeBtn.theme-btn {
        top: 18px !important;
        width: 46px !important;
        height: 46px !important;
        min-width: 46px !important;
        min-height: 46px !important;
        padding: 0 !important;
        margin: 0 !important;
        border-radius: 15px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        background: rgba(255, 255, 255, .14) !important;
        border: 1px solid rgba(255, 255, 255, .24) !important;
        box-shadow: 0 9px 22px rgba(39, 24, 90, .15) !important;
        transform: none !important;
    }

    body:not(.has-result).is-loading-stock #themeBtn.theme-btn {
        right: 20px !important;
    }

    body:not(.has-result).is-loading-stock #developerBtn.developer-btn {
        right: 78px !important;
    }

    body:not(.has-result).is-loading-stock #developerBtn.developer-btn svg,
    body:not(.has-result).is-loading-stock #themeBtn.theme-btn svg {
        width: 21px !important;
        height: 21px !important;
    }
}

/* 第三行说明字稍微放大，提高可读性。 */
.home-sector-cloud-copy span {
    font-size: 13px !important;
    line-height: 1.4 !important;
    font-weight: 700 !important;
}

/*
 * 板块云图背景不再使用斜向、向下扫过的高光。
 * 光源跟随鼠标，并以鼠标位置为中心同时向左右两侧横向扩散。
 */
.home-sector-cloud-card {
    --cloud-pointer-x: 50%;
    --cloud-pointer-y: 50%;
}

.home-sector-cloud-card::before {
    inset: auto !important;
    left: var(--cloud-pointer-x) !important;
    top: var(--cloud-pointer-y) !important;
    width: 185% !important;
    height: 185% !important;
    background: radial-gradient(
        ellipse 58% 42% at center,
        rgba(255, 255, 255, .27) 0%,
        rgba(255, 186, 210, .18) 24%,
        rgba(177, 117, 255, .14) 44%,
        transparent 72%
    ) !important;
    filter: blur(18px) !important;
    opacity: .34 !important;
    transform: translate(-50%, -50%) scaleX(.34) !important;
    transform-origin: center !important;
    transition: opacity .22s ease, transform .34s cubic-bezier(.2,.8,.2,1) !important;
    pointer-events: none !important;
}

.home-sector-cloud-card::after {
    left: var(--cloud-pointer-x) !important;
    top: var(--cloud-pointer-y) !important;
    width: 170% !important;
    height: 92% !important;
    background: linear-gradient(
        90deg,
        transparent 0%,
        rgba(255, 255, 255, .035) 20%,
        rgba(255, 220, 231, .16) 43%,
        rgba(255, 255, 255, .25) 50%,
        rgba(206, 173, 255, .16) 57%,
        rgba(255, 255, 255, .035) 80%,
        transparent 100%
    ) !important;
    filter: blur(10px) !important;
    opacity: 0 !important;
    transform: translate(-50%, -50%) scaleX(.22) !important;
    transform-origin: center !important;
    transition: opacity .18s ease, transform .34s cubic-bezier(.2,.8,.2,1) !important;
    pointer-events: none !important;
}

.home-sector-cloud-card:hover::before,
.home-sector-cloud-card:focus-visible::before {
    opacity: .82 !important;
    transform: translate(-50%, -50%) scaleX(1) !important;
}

.home-sector-cloud-card:hover::after,
.home-sector-cloud-card:focus-visible::after {
    opacity: .72 !important;
    transform: translate(-50%, -50%) scaleX(1) !important;
}

@media (max-width: 560px) {
    .home-sector-cloud-copy span {
        font-size: 11.5px !important;
    }
}

/* =========================================================
   fix51：首页隐藏顶部品牌说明 / 恢复旧版按钮 + 悬停单次扫光
   ========================================================= */

/* 首页隐藏顶部“A股全维分析 + 四个分析面标签”；结果页仍正常显示。 */
body:not(.has-result) .header-content {
    display: none !important;
}

/* 保留上一版按钮本身的红紫渐变、尺寸、圆角和阴影，只提供扫光容器。 */
.search-btn {
    position: relative !important;
    isolation: isolate;
    overflow: hidden !important;
    animation: none !important;
}

/* 默认不自动扫光；鼠标移入或键盘聚焦时，仅横向扫过一次。 */
.search-btn::before {
    content: '';
    position: absolute;
    top: -65%;
    bottom: -65%;
    left: -58%;
    width: 34%;
    z-index: 1;
    border-radius: 50%;
    background: linear-gradient(
        90deg,
        transparent 0%,
        rgba(255, 255, 255, .04) 22%,
        rgba(255, 255, 255, .46) 50%,
        rgba(255, 255, 255, .10) 72%,
        transparent 100%
    );
    filter: blur(4px);
    opacity: 0;
    transform: translateX(0) skewX(-18deg);
    pointer-events: none;
}

.search-btn:hover::before,
.search-btn:focus-visible::before {
    animation: searchButtonHoverSweep .82s cubic-bezier(.22, .72, .24, 1) 1;
}

@keyframes searchButtonHoverSweep {
    0% {
        left: -58%;
        opacity: 0;
    }
    15% {
        opacity: .78;
    }
    72% {
        opacity: .48;
    }
    100% {
        left: 128%;
        opacity: 0;
    }
}

/* 文字和图标永远处于扫光上方。 */
.search-btn > i,
.search-btn .search-btn-label {
    position: relative;
    z-index: 2;
}

.search-btn .search-btn-label {
    display: inline-block;
    white-space: nowrap;
}

.search-btn:focus-visible {
    outline: 2px solid rgba(255,255,255,.92) !important;
    outline-offset: 3px !important;
}

@media (prefers-reduced-motion: reduce) {
    .search-btn:hover::before,
    .search-btn:focus-visible::before {
        animation: none !important;
    }
}

/* ===== fix52：分析结果页免责声明高亮发光 ===== */
body.has-result .footer {
    padding-top: 38px;
    color: rgba(255, 255, 255, 0.96) !important;
}

body.has-result .footer p {
    margin: 0 0 7px;
    color: rgba(255, 255, 255, 0.98) !important;
    font-size: 14px !important;
    font-weight: 800;
    line-height: 1.55;
    letter-spacing: 0.6px;
    text-shadow:
        0 0 5px rgba(255, 255, 255, 0.95),
        0 0 12px rgba(255, 255, 255, 0.62),
        0 0 22px var(--primary-shadow),
        0 0 34px var(--primary-medium);
    animation: footerDisclaimerGlow 2.8s ease-in-out infinite;
}

body.has-result .footer p:last-child {
    margin-bottom: 0;
    color: rgba(255, 245, 248, 1) !important;
    font-size: 13px !important;
    font-weight: 750;
    animation-delay: 0.18s;
}

@keyframes footerDisclaimerGlow {
    0%, 100% {
        opacity: 0.92;
        filter: brightness(1);
        text-shadow:
            0 0 4px rgba(255, 255, 255, 0.82),
            0 0 10px rgba(255, 255, 255, 0.48),
            0 0 18px var(--primary-shadow),
            0 0 28px var(--primary-medium);
    }
    50% {
        opacity: 1;
        filter: brightness(1.18);
        text-shadow:
            0 0 7px rgba(255, 255, 255, 1),
            0 0 16px rgba(255, 255, 255, 0.78),
            0 0 28px var(--primary-shadow),
            0 0 44px var(--primary-medium);
    }
}

@media (max-width: 640px) {
    body.has-result .footer p {
        font-size: 13px !important;
        letter-spacing: 0.35px;
    }

    body.has-result .footer p:last-child {
        font-size: 12px !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.has-result .footer p {
        animation: none;
    }
}


/* =========================================================
   fix53：开发者卡片 3D 跟随 / 分析态股票名+代码 / 搜索历史
   ========================================================= */

/* 1. 开发者联系信息板：桌面鼠标悬停时产生真实的 3D 倾斜与高光。 */
.developer-contact-backdrop {
    perspective: 1200px;
    perspective-origin: center;
}

.developer-contact-dialog {
    --developer-tilt-x: 0deg;
    --developer-tilt-y: 0deg;
    --developer-glare-x: 50%;
    --developer-glare-y: 50%;
    --developer-glare-opacity: 0;
    transform-style: preserve-3d;
    will-change: transform;
    transform:
        translateY(12px)
        scale(.97)
        rotateX(var(--developer-tilt-x))
        rotateY(var(--developer-tilt-y));
    transition:
        transform .34s cubic-bezier(.2, .8, .2, 1),
        box-shadow .25s ease;
}

.developer-contact-backdrop.is-open .developer-contact-dialog {
    transform:
        translateY(0)
        scale(1)
        rotateX(var(--developer-tilt-x))
        rotateY(var(--developer-tilt-y));
}

.developer-contact-dialog.is-tilting {
    transition: transform .075s linear, box-shadow .16s ease;
    box-shadow:
        0 38px 95px rgba(5, 7, 18, .58),
        0 14px 36px color-mix(in srgb, var(--primary-color) 20%, transparent),
        inset 0 1px 0 rgba(255, 255, 255, .13);
}

.developer-contact-dialog::after {
    content: '';
    position: absolute;
    inset: -1px;
    z-index: 0;
    border-radius: inherit;
    pointer-events: none;
    opacity: var(--developer-glare-opacity);
    background:
        radial-gradient(
            circle at var(--developer-glare-x) var(--developer-glare-y),
            rgba(255, 255, 255, .48) 0,
            rgba(255, 255, 255, .16) 17%,
            transparent 48%
        );
    mix-blend-mode: screen;
    transition: opacity .2s ease;
}

.developer-contact-avatar,
.developer-contact-copy,
.developer-contact-info {
    position: relative;
    z-index: 2;
    transform-style: preserve-3d;
}

.developer-contact-close {
    z-index: 3;
    transform: translateZ(34px);
}

.developer-contact-close:hover {
    transform: translateZ(34px) rotate(4deg);
}

.developer-contact-avatar {
    transform: translateZ(30px);
}

.developer-contact-copy {
    transform: translateZ(22px);
}

.developer-contact-info {
    transform: translateZ(16px);
}

/* 2. 分析过程中让搜索区域再收短，并保证股票名称 + 代码完整显示。 */
body:not(.has-result).is-loading-stock .search-section {
    width: min(600px, calc(100vw - 48px)) !important;
    max-width: 600px !important;
}

body:not(.has-result).is-loading-stock .search-box {
    width: min(600px, 100%) !important;
    max-width: 600px !important;
    transition: width .3s cubic-bezier(.22, .8, .3, 1), max-width .3s cubic-bezier(.22, .8, .3, 1) !important;
}

body.is-loading-stock #stockInput {
    font-weight: 800;
    letter-spacing: .35px;
    text-overflow: ellipsis;
    cursor: default;
}

body.is-loading-stock #stockInput::selection {
    background: transparent;
}

@media (max-width: 700px) {
    body:not(.has-result).is-loading-stock .search-section,
    body:not(.has-result).is-loading-stock .search-box {
        width: min(540px, calc(100vw - 28px)) !important;
        max-width: 540px !important;
    }
}

@media (max-width: 480px) {
    body:not(.has-result).is-loading-stock .search-section,
    body:not(.has-result).is-loading-stock .search-box {
        width: calc(100vw - 24px) !important;
        max-width: calc(100vw - 24px) !important;
    }

    body:not(.has-result).is-loading-stock .search-btn,
    body:not(.has-result).is-loading-stock .search-btn.is-analyzing {
        width: 104px !important;
        min-width: 104px !important;
        padding-inline: 12px !important;
    }

    body.is-loading-stock #stockInput {
        padding-left: 16px !important;
        padding-right: 8px !important;
        font-size: 14px !important;
    }
}

/* 3. 点击搜索框先展示搜索历史；开始输入后仍展示原有代码/中文/拼音匹配结果。 */
.suggestions .search-history-head {
    position: sticky;
    top: 0;
    z-index: 4;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 16px !important;
    border-bottom: 1px solid var(--card-border) !important;
    color: var(--text-primary);
    background: color-mix(in srgb, var(--card-bg) 94%, transparent);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    cursor: default !important;
}

.suggestions .search-history-head:hover {
    background: color-mix(in srgb, var(--card-bg) 94%, transparent) !important;
}

.search-history-head strong {
    font-size: 13px;
    font-weight: 850;
    letter-spacing: .4px;
}

.search-history-clear {
    padding: 4px 9px;
    border: 1px solid var(--card-border);
    border-radius: 999px;
    color: var(--text-secondary);
    background: rgba(255,255,255,.045);
    font-size: 12px;
    font-weight: 750;
    cursor: pointer;
    transition: color .18s ease, background .18s ease, border-color .18s ease;
}

.search-history-clear:hover {
    color: #fff;
    border-color: var(--primary-medium);
    background: var(--primary-light);
}

.suggestions .suggestion-item {
    min-height: 52px;
}

.suggestions .suggestion-item:focus-visible {
    outline: 2px solid var(--primary-color);
    outline-offset: -3px;
    background: var(--primary-light);
}

.suggestion-name {
    min-width: 0;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    font-weight: 700;
}

.suggestion-item.is-history .suggestion-name i {
    width: 16px;
    color: var(--text-secondary);
    font-size: 12px;
    text-align: center;
}

.suggestions .search-history-empty,
.suggestions .search-no-result {
    min-height: 112px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 22px 16px !important;
    color: var(--text-secondary);
    text-align: center;
    cursor: default !important;
}

.suggestions .search-history-empty:hover,
.suggestions .search-no-result:hover {
    background: transparent !important;
}

.search-history-empty i,
.search-no-result i {
    margin-bottom: 2px;
    color: var(--primary-color);
    font-size: 20px;
    opacity: .82;
}

.search-history-empty span,
.search-no-result span {
    color: var(--text-primary);
    font-size: 13px;
    font-weight: 800;
}

.search-history-empty small {
    color: var(--text-secondary);
    font-size: 11px;
}

body.day-theme .search-history-clear {
    background: rgba(0,0,0,.035);
}

@media (prefers-reduced-motion: reduce) {
    .developer-contact-dialog,
    .developer-contact-dialog.is-tilting {
        transition: none !important;
        transform: translateY(0) scale(1) !important;
    }

    .developer-contact-dialog::after {
        display: none;
    }
}

/* =========================================================
   fix54：搜索历史字体档位 / 新输入自动替换旧搜索 / 下拉层不挤动搜索栏
   ========================================================= */

/* 搜索框与搜索历史使用同一套小、中、大字体档位。 */
body.font-small {
    --search-control-font: 15px;
    --search-history-head-font: 13px;
    --search-history-item-font: 16px;
    --search-history-code-font: 14px;
    --search-history-action-font: 12px;
    --search-history-help-font: 11px;
    --search-history-row-height: 56px;
}

body.font-medium {
    --search-control-font: 18px;
    --search-history-head-font: 15px;
    --search-history-item-font: 19px;
    --search-history-code-font: 17px;
    --search-history-action-font: 14px;
    --search-history-help-font: 13px;
    --search-history-row-height: 64px;
}

body.font-large {
    --search-control-font: 21px;
    --search-history-head-font: 18px;
    --search-history-item-font: 23px;
    --search-history-code-font: 20px;
    --search-history-action-font: 16px;
    --search-history-help-font: 15px;
    --search-history-row-height: 74px;
}

#stockInput,
.search-btn,
.search-btn .search-btn-label {
    font-size: var(--search-control-font) !important;
}

.suggestions .search-history-head strong {
    font-size: var(--search-history-head-font) !important;
}

.suggestions .search-history-clear {
    font-size: var(--search-history-action-font) !important;
}

.suggestions .suggestion-item {
    min-height: var(--search-history-row-height) !important;
    font-size: var(--search-history-item-font) !important;
}

.suggestions .suggestion-item .suggestion-name {
    font-size: var(--search-history-item-font) !important;
}

.suggestions .suggestion-item .code {
    font-size: var(--search-history-code-font) !important;
}

.suggestions .search-history-empty span,
.suggestions .search-no-result span {
    font-size: var(--search-history-head-font) !important;
}

.suggestions .search-history-empty small {
    font-size: var(--search-history-help-font) !important;
}

.suggestions .search-history-empty i,
.suggestions .search-no-result i {
    font-size: calc(var(--search-history-head-font) + 7px) !important;
}

/* 下拉建议改为悬浮层，不再参与页面排版，因此点击时标题和搜索栏不会上移或闪动。 */
.search-combobox {
    position: relative;
    z-index: 130;
    width: 100%;
    max-width: 100%;
}

.search-combobox > .search-box {
    width: 100% !important;
    max-width: 100% !important;
}

.search-combobox > .suggestions {
    position: absolute !important;
    top: 100% !important;
    right: 0 !important;
    left: 0 !important;
    width: 100% !important;
    margin-top: 12px !important;
}

/* 取消旧版“出现建议时重新计算整页高度”的处理，保持搜索栏原来的位置。 */
body.has-suggestions:not(.has-result):not(.is-loading-stock) .header {
    height: 100vh !important;
    min-height: 100vh !important;
    padding: 24px 16px 40px !important;
    overflow: visible !important;
}

body.has-suggestions:not(.has-result):not(.is-loading-stock) .search-section {
    overflow: visible !important;
}

body.is-loading-stock #stockInput {
    font-size: var(--search-control-font) !important;
}

@media (max-width: 480px) {
    body.font-small {
        --search-control-font: 14px;
        --search-history-item-font: 15px;
        --search-history-code-font: 13px;
    }

    body.font-medium {
        --search-control-font: 16px;
        --search-history-item-font: 17px;
        --search-history-code-font: 15px;
    }

    body.font-large {
        --search-control-font: 18px;
        --search-history-item-font: 20px;
        --search-history-code-font: 17px;
    }
}

/* =========================================================
   fix55：免责声明局部光标发光 + 开发者卡片原地视线跟随
   ========================================================= */

/* 免责声明默认保持低调灰色；发光层与原文字完全重合，不引起位移。 */
body.has-result .footer .footer-glow-line {
    --footer-glow-x: 50%;
    --footer-glow-y: 50%;
    --footer-glow-opacity: 0;
    position: relative;
    display: block;
    width: fit-content;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    color: rgba(196, 201, 216, .56) !important;
    text-shadow: none !important;
    filter: none !important;
    animation: none !important;
    isolation: isolate;
}

body.has-result .footer .footer-glow-line::before {
    content: attr(data-text);
    position: absolute;
    inset: 0;
    z-index: 1;
    display: block;
    width: 100%;
    height: 100%;
    color: rgba(255, 255, 255, .99);
    font: inherit;
    font-weight: inherit;
    line-height: inherit;
    letter-spacing: inherit;
    text-align: inherit;
    white-space: inherit;
    pointer-events: none;
    opacity: var(--footer-glow-opacity);
    text-shadow:
        0 0 4px rgba(255, 255, 255, .98),
        0 0 10px rgba(255, 255, 255, .86),
        0 0 18px color-mix(in srgb, var(--primary-color) 78%, white 22%),
        0 0 30px var(--primary-shadow);
    -webkit-mask-image: radial-gradient(
        circle 74px at var(--footer-glow-x) var(--footer-glow-y),
        #000 0%,
        rgba(0, 0, 0, .98) 34%,
        rgba(0, 0, 0, .60) 62%,
        transparent 100%
    );
    mask-image: radial-gradient(
        circle 74px at var(--footer-glow-x) var(--footer-glow-y),
        #000 0%,
        rgba(0, 0, 0, .98) 34%,
        rgba(0, 0, 0, .60) 62%,
        transparent 100%
    );
    transition: opacity .12s ease-out;
}

body.day-theme.has-result .footer .footer-glow-line {
    color: rgba(71, 85, 105, .62) !important;
}

body.day-theme.has-result .footer .footer-glow-line::before {
    color: #ffffff;
}

/* 作者卡片始终由遮罩层网格固定在正中心，只围绕自身中心轻微旋转。 */
.developer-contact-backdrop {
    perspective: 1450px;
    perspective-origin: 50% 50%;
}

.developer-contact-dialog {
    transform-origin: 50% 50% !important;
    transform-box: border-box;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    will-change: transform;
}

.developer-contact-backdrop.is-open .developer-contact-dialog,
.developer-contact-backdrop.is-open .developer-contact-dialog.is-tilting {
    transform:
        translate3d(0, 0, 0)
        scale(1)
        rotateX(var(--developer-tilt-x))
        rotateY(var(--developer-tilt-y)) !important;
}

.developer-contact-dialog.is-tilting {
    transition:
        transform .14s cubic-bezier(.22, .72, .24, 1),
        box-shadow .2s ease !important;
}

/* 离开或关闭时柔和回正；不改变卡片中心位置。 */
.developer-contact-dialog:not(.is-tilting) {
    transition:
        transform .42s cubic-bezier(.2, .85, .24, 1),
        box-shadow .25s ease !important;
}

@media (hover: none), (pointer: coarse), (prefers-reduced-motion: reduce) {
    .developer-contact-backdrop.is-open .developer-contact-dialog,
    .developer-contact-backdrop.is-open .developer-contact-dialog.is-tilting {
        transform: translate3d(0, 0, 0) scale(1) rotateX(0deg) rotateY(0deg) !important;
    }

    body.has-result .footer .footer-glow-line::before {
        display: none;
    }
}


/* =========================================================
   fix56：真实逐字光标发光 / 作者卡片原地 3D 朝向 / 分析标题严格居中
   ========================================================= */

/* 彻底取消旧版“整行常亮”和伪元素遮罩；所有页面状态默认都为灰色。 */
body .footer .footer-glow-line,
body.has-result .footer .footer-glow-line {
    position: relative !important;
    display: block !important;
    width: fit-content !important;
    max-width: 100% !important;
    margin: 0 auto 7px !important;
    color: inherit !important;
    text-shadow: none !important;
    filter: none !important;
    animation: none !important;
    opacity: 1 !important;
    white-space: nowrap;
}

body .footer .footer-glow-line:last-child,
body.has-result .footer .footer-glow-line:last-child {
    margin-bottom: 0 !important;
    color: inherit !important;
    text-shadow: none !important;
    animation: none !important;
}

body .footer .footer-glow-line::before,
body .footer .footer-glow-line::after,
body.has-result .footer .footer-glow-line::before,
body.has-result .footer .footer-glow-line::after {
    content: none !important;
    display: none !important;
}

.footer-glow-char {
    --char-glow: 0;
    display: inline-block;
    color: rgba(
        calc(170 + var(--char-glow) * 85),
        calc(176 + var(--char-glow) * 79),
        calc(194 + var(--char-glow) * 61),
        calc(.55 + var(--char-glow) * .45)
    ) !important;
    filter: brightness(calc(.92 + var(--char-glow) * .38));
    text-shadow:
        0 0 calc(var(--char-glow) * 3px) rgba(255, 255, 255, calc(var(--char-glow) * .98)),
        0 0 calc(var(--char-glow) * 9px) rgba(255, 255, 255, calc(var(--char-glow) * .82)),
        0 0 calc(var(--char-glow) * 18px) color-mix(in srgb, var(--primary-color) calc(var(--char-glow) * 88%), transparent) !important;
    transition: color .055s linear, filter .055s linear, text-shadow .055s linear;
    will-change: color, filter, text-shadow;
}

/* 作者卡片始终由 fixed 遮罩的网格锁在正中央；transform 中没有任何 X/Y 平移。 */
.developer-contact-backdrop {
    perspective: none !important;
    perspective-origin: 50% 50% !important;
}

.developer-contact-dialog {
    transform-origin: 50% 50% !important;
    transform-style: preserve-3d !important;
    backface-visibility: hidden !important;
    -webkit-backface-visibility: hidden !important;
    will-change: transform, box-shadow !important;
}

.developer-contact-backdrop.is-open .developer-contact-dialog,
.developer-contact-backdrop.is-open .developer-contact-dialog.is-tilting {
    transition: transform .08s linear, box-shadow .14s ease !important;
}

.developer-contact-dialog.is-tilting {
    box-shadow:
        0 42px 105px rgba(5, 7, 18, .62),
        0 18px 42px color-mix(in srgb, var(--primary-color) 24%, transparent),
        inset 0 1px 0 rgba(255, 255, 255, .18) !important;
}

/* 不再因系统的“减少动态效果”设置而把用户明确要求的鼠标卡片功能强制归零。 */
@media (prefers-reduced-motion: reduce) and (hover: hover) and (pointer: fine) {
    .developer-contact-backdrop.is-open .developer-contact-dialog,
    .developer-contact-backdrop.is-open .developer-contact-dialog.is-tilting {
        transition-duration: .08s !important;
    }
}

/* 分析中标题占满整个视口宽度后做真正的几何居中，不再受缩短后的搜索框宽度影响。 */
body:not(.has-result).is-loading-stock .hero-copy {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    padding: 0 !important;
    text-align: center !important;
    transform: none !important;
}

body:not(.has-result).is-loading-stock .hero-copy h2 {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding: 0 !important;
    text-align: center !important;
    white-space: nowrap !important;
    transform: none !important;
}

@media (max-width: 560px) {
    body .footer .footer-glow-line,
    body.has-result .footer .footer-glow-line {
        white-space: normal;
    }
}


/* =========================================================
   fix57：免责声明真实局部发光 / 开发者卡片可见倾斜 / 分析标题居中
   ========================================================= */

/* 无论首页还是结果页，两行免责声明在鼠标未靠近时都必须保持同一种灰色。 */
body .footer,
body.has-result .footer {
    color: rgba(174, 181, 199, .58) !important;
}

body .footer .footer-glow-line,
body .footer .footer-glow-line:last-child,
body.has-result .footer .footer-glow-line,
body.has-result .footer .footer-glow-line:last-child {
    color: rgba(174, 181, 199, .58) !important;
    text-shadow: none !important;
    filter: none !important;
    animation: none !important;
    opacity: 1 !important;
}

body .footer .footer-glow-line::before,
body .footer .footer-glow-line::after,
body.has-result .footer .footer-glow-line::before,
body.has-result .footer .footer-glow-line::after {
    content: none !important;
    display: none !important;
}

body .footer .footer-glow-char,
body.has-result .footer .footer-glow-char {
    display: inline-block !important;
    color: rgba(174, 181, 199, .58) !important;
    text-shadow: none !important;
    filter: none !important;
    animation: none !important;
    transition: color .045s linear, text-shadow .045s linear, filter .045s linear !important;
    will-change: color, text-shadow, filter;
}

/* 卡片自身不平移，transform 只由 JS 写入 perspective/scale/rotate。 */
.developer-contact-backdrop {
    perspective: 1200px !important;
    perspective-origin: 50% 50% !important;
}

.developer-contact-dialog {
    transform-origin: 50% 50% !important;
    transform-style: preserve-3d !important;
    backface-visibility: hidden !important;
    -webkit-backface-visibility: hidden !important;
    will-change: transform, box-shadow !important;
}

.developer-contact-backdrop.is-open .developer-contact-dialog,
.developer-contact-backdrop.is-open .developer-contact-dialog.is-tilting {
    transition: transform .075s linear, box-shadow .14s ease !important;
}

.developer-contact-dialog.is-tilting {
    box-shadow:
        0 46px 112px rgba(5, 7, 18, .66),
        0 18px 48px color-mix(in srgb, var(--primary-color) 28%, transparent),
        inset 0 1px 0 rgba(255, 255, 255, .20) !important;
}

/* 分析过程中标题始终以浏览器视口为基准居中，不跟随缩短后的搜索框偏移。 */
body:not(.has-result).is-loading-stock .hero-copy {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    align-self: center !important;
    width: 100vw !important;
    max-width: 100vw !important;
    margin: 0 0 24px !important;
    padding: 0 !important;
    transform: none !important;
    text-align: center !important;
}

body:not(.has-result).is-loading-stock .hero-copy h2 {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    text-align: center !important;
    white-space: nowrap !important;
}


/* =========================================================
   fix58：加强作者卡片的可见倾斜幅度与响应速度
   ========================================================= */
.developer-contact-backdrop {
    perspective: 980px !important;
}

.developer-contact-backdrop.is-open .developer-contact-dialog,
.developer-contact-backdrop.is-open .developer-contact-dialog.is-tilting {
    transition: transform .055s linear, box-shadow .12s ease !important;
}

.developer-contact-dialog.is-tilting {
    box-shadow:
        0 54px 128px rgba(5, 7, 18, .70),
        0 22px 58px color-mix(in srgb, var(--primary-color) 32%, transparent),
        inset 0 1px 0 rgba(255, 255, 255, .22) !important;
}


/* =========================================================
   fix59：历史图表滚轮缩放、左键拖动及历史加载状态
   ========================================================= */
body.has-result .chart-container {
    position: relative !important;
}

body.has-result .chart-container canvas {
    cursor: grab !important;
    touch-action: none;
    user-select: none;
    -webkit-user-select: none;
}

body.has-result .chart-container.is-dragging canvas {
    cursor: grabbing !important;
}

.chart-history-status,
.chart-interaction-hint {
    position: absolute;
    z-index: 5;
    top: 13px;
    padding: 5px 9px;
    border: 1px solid rgba(255, 255, 255, .10);
    border-radius: 999px;
    background: rgba(15, 23, 42, .50);
    color: rgba(226, 232, 240, .72);
    font-size: 11px;
    font-weight: 650;
    line-height: 1.2;
    letter-spacing: .2px;
    pointer-events: none;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    transition: opacity .18s ease, background .18s ease, color .18s ease;
}

.chart-history-status {
    left: 14px;
    max-width: 45%;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.chart-interaction-hint {
    right: 14px;
}

.chart-container.is-history-loading .chart-history-status {
    color: #fff;
    background: rgba(139, 92, 246, .72);
    border-color: rgba(255, 255, 255, .22);
}

.chart-container.is-history-loading .chart-history-status::before {
    content: '';
    display: inline-block;
    width: 8px;
    height: 8px;
    margin-right: 6px;
    border: 2px solid rgba(255, 255, 255, .35);
    border-top-color: #fff;
    border-radius: 50%;
    vertical-align: -1px;
    animation: chart-history-spin .7s linear infinite;
}

@keyframes chart-history-spin {
    to { transform: rotate(360deg); }
}

@media (max-width: 720px) {
    .chart-interaction-hint {
        display: none;
    }
    .chart-history-status {
        max-width: calc(100% - 28px);
        font-size: 10px;
    }
}


/* =========================================================
   fix60：移除图表顶部信息胶囊，悬浮日期按年份智能显示
   ========================================================= */
.chart-history-status,
.chart-interaction-hint {
    display: none !important;
}

/* ===== fix61：搜索框聚焦前后位置完全锁定 ===== */
/* 原版 focus-within 带有 translateY(-2px)，会让输入框点击后向上跳。 */
body:not(.has-result):not(.is-loading-stock) .search-box,
body:not(.has-result):not(.is-loading-stock) .search-box:focus-within {
    transform: none !important;
}

/* 搜索历史只作为框下方的内部滚动悬浮层，不再把页面撑高或触发浏览器自动滚动。 */
body.has-suggestions:not(.has-result):not(.is-loading-stock) {
    overflow-y: hidden !important;
}

body.has-suggestions:not(.has-result):not(.is-loading-stock) .header {
    height: 100vh !important;
    height: 100dvh !important;
    min-height: 100vh !important;
    min-height: 100dvh !important;
    padding: 24px 16px 40px !important;
    overflow: visible !important;
}

body.has-suggestions:not(.has-result):not(.is-loading-stock) .search-section,
body.has-suggestions:not(.has-result):not(.is-loading-stock) .hero-copy,
body.has-suggestions:not(.has-result):not(.is-loading-stock) .search-combobox,
body.has-suggestions:not(.has-result):not(.is-loading-stock) .search-box {
    transform: none !important;
}

.search-combobox > .suggestions {
    max-height: min(46dvh, 430px) !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
}

@media (max-height: 720px) {
    .search-combobox > .suggestions {
        max-height: min(42dvh, 320px) !important;
    }
}

@media (max-width: 768px) {
    body.has-suggestions:not(.has-result):not(.is-loading-stock) .header {
        height: 100svh !important;
        min-height: 100svh !important;
    }

    .search-combobox > .suggestions {
        max-height: min(44svh, 360px) !important;
    }
}


/* fix65：没有读取到明确财报日期和类型时，不占位置、不显示空卡片。 */
#earningsAlert[hidden],
#earningsAlert:not(.has-earnings-data) {
    display: none !important;
}

#earningsAlert.has-earnings-data:not([hidden]) {
    display: flex !important;
}

/* =========================================================
   fix68：仅手机版重新排版（桌面端 769px 以上完全不改）
   ========================================================= */
@media (max-width: 768px) {
    html,
    body {
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: hidden !important;
    }

    /* ---------- 手机首页 ---------- */
    body:not(.has-result) .header {
        width: 100% !important;
        min-height: 100svh !important;
        height: auto !important;
        padding: 86px 12px 28px !important;
        justify-content: center !important;
        overflow: hidden !important;
    }

    body:not(.has-result) .header-content {
        position: absolute !important;
        top: 12px !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        max-width: none !important;
        padding: 0 118px 0 14px !important;
        align-items: center !important;
    }

    body:not(.has-result) .header-left {
        min-width: 0 !important;
        text-align: left !important;
    }

    body:not(.has-result) .header-left h1 {
        margin: 0 !important;
        gap: 7px !important;
        font-size: 16px !important;
        line-height: 1.2 !important;
        white-space: nowrap !important;
    }

    body:not(.has-result) .header-left h1 svg {
        width: 19px !important;
        height: 19px !important;
    }

    body:not(.has-result) .subtitle {
        margin-top: 3px !important;
        font-size: 9px !important;
        letter-spacing: .55px !important;
        white-space: nowrap !important;
    }

    body:not(.has-result) #developerBtn.developer-btn,
    body:not(.has-result) #themeBtn.theme-btn {
        position: absolute !important;
        top: 12px !important;
        width: 44px !important;
        height: 44px !important;
        min-width: 44px !important;
        border-radius: 14px !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    body:not(.has-result) #developerBtn.developer-btn {
        right: 62px !important;
    }

    body:not(.has-result) #themeBtn.theme-btn {
        right: 12px !important;
    }

    body:not(.has-result) .search-section,
    body:not(.has-result).is-loading-stock .search-section {
        width: 100% !important;
        max-width: 520px !important;
        margin: 0 auto !important;
        padding: 0 2px !important;
        transform: none !important;
    }

    body:not(.has-result) .hero-copy,
    body:not(.has-result).is-loading-stock .hero-copy {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 0 22px !important;
        padding: 0 4px !important;
        text-align: center !important;
    }

    body:not(.has-result) .hero-copy h2,
    body:not(.has-result).is-loading-stock .hero-copy h2 {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        font-size: clamp(29px, 9.2vw, 38px) !important;
        line-height: 1.15 !important;
        letter-spacing: -.5px !important;
        white-space: nowrap !important;
        text-align: center !important;
    }

    body:not(.has-result) .search-combobox {
        width: 100% !important;
        max-width: 100% !important;
    }

    body:not(.has-result) .search-box,
    body:not(.has-result).is-loading-stock .search-box {
        width: 100% !important;
        max-width: 100% !important;
        min-height: 58px !important;
        gap: 5px !important;
        padding: 5px !important;
        border-radius: 20px !important;
        transform: none !important;
    }

    body:not(.has-result) #stockInput {
        min-width: 0 !important;
        padding: 12px 12px !important;
        font-size: 14px !important;
    }

    body:not(.has-result) .search-btn,
    body:not(.has-result) .search-btn.is-analyzing {
        width: 94px !important;
        min-width: 94px !important;
        height: 48px !important;
        padding: 0 12px !important;
        border-radius: 16px !important;
        font-size: 14px !important;
        gap: 6px !important;
    }

    body:not(.has-result) .quick-picks {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 9px !important;
        width: 100% !important;
        margin-top: 18px !important;
    }

    body:not(.has-result) .quick-picks button {
        width: 100% !important;
        min-width: 0 !important;
        min-height: 40px !important;
        padding: 8px 8px !important;
        font-size: 13px !important;
        border-radius: 15px !important;
        white-space: nowrap !important;
    }

    .home-sector-cloud-card {
        width: 100% !important;
        max-width: none !important;
        min-height: 82px !important;
        margin-top: 18px !important;
        padding: 12px 13px !important;
        gap: 11px !important;
        border-radius: 20px !important;
    }

    .home-sector-cloud-heatmap {
        width: 52px !important;
        height: 52px !important;
        flex: 0 0 52px !important;
        border-radius: 15px !important;
    }

    .home-sector-cloud-copy {
        min-width: 0 !important;
    }

    .home-sector-cloud-copy small {
        font-size: 10px !important;
    }

    .home-sector-cloud-copy strong {
        font-size: 17px !important;
    }

    .home-sector-cloud-copy > span {
        display: block !important;
        max-width: 100% !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
        font-size: 11px !important;
    }

    .home-sector-cloud-action {
        flex: 0 0 auto !important;
        min-width: 72px !important;
        padding: 9px 10px !important;
    }

    .home-sector-cloud-action b {
        font-size: 11px !important;
    }

    .search-combobox > .suggestions {
        position: absolute !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        margin-top: 8px !important;
        border-radius: 17px !important;
        max-height: min(42svh, 340px) !important;
        z-index: 1200 !important;
    }

    .suggestions div {
        min-height: 48px !important;
        padding: 11px 13px !important;
        gap: 8px !important;
        font-size: 13px !important;
    }

    /* ---------- 手机结果页顶部栏 ---------- */
    body.has-result .header.has-result {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) 42px 42px !important;
        grid-template-areas:
            "brand developer theme"
            "search search search" !important;
        align-items: center !important;
        gap: 8px !important;
        width: 100% !important;
        min-height: auto !important;
        padding: max(8px, env(safe-area-inset-top)) 10px 10px !important;
        overflow: visible !important;
    }

    body.has-result .header-content {
        position: static !important;
        grid-area: brand !important;
        width: 100% !important;
        max-width: none !important;
        min-width: 0 !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    body.has-result .header-left {
        min-width: 0 !important;
        text-align: left !important;
    }

    body.has-result .header-left h1 {
        margin: 0 !important;
        gap: 6px !important;
        font-size: 16px !important;
        line-height: 1.2 !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }

    body.has-result .header-left h1 svg {
        width: 18px !important;
        height: 18px !important;
        flex: 0 0 18px !important;
    }

    body.has-result .subtitle {
        display: none !important;
    }

    body.has-result #developerBtn.developer-btn,
    body.has-result #themeBtn.theme-btn {
        position: static !important;
        width: 42px !important;
        height: 42px !important;
        min-width: 42px !important;
        margin: 0 !important;
        padding: 0 !important;
        border-radius: 13px !important;
    }

    body.has-result #developerBtn.developer-btn {
        grid-area: developer !important;
    }

    body.has-result #themeBtn.theme-btn {
        grid-area: theme !important;
    }

    body.has-result .search-section {
        position: relative !important;
        grid-area: search !important;
        width: 100% !important;
        max-width: none !important;
        flex: none !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    body.has-result .hero-copy,
    body.has-result .quick-picks,
    body.has-result .home-sector-cloud-card {
        display: none !important;
    }

    body.has-result .search-combobox,
    body.has-result .search-box {
        width: 100% !important;
        max-width: none !important;
    }

    body.has-result .search-box {
        min-height: 50px !important;
        padding: 4px !important;
        gap: 4px !important;
        border-radius: 17px !important;
        transform: none !important;
    }

    body.has-result #stockInput {
        min-width: 0 !important;
        padding: 10px 11px !important;
        font-size: 13px !important;
    }

    body.has-result .search-btn,
    body.has-result .search-btn.is-analyzing {
        width: 86px !important;
        min-width: 86px !important;
        height: 42px !important;
        padding: 0 9px !important;
        border-radius: 14px !important;
        justify-content: center !important;
        font-size: 13px !important;
    }

    /* ---------- 手机结果内容 ---------- */
    body.has-result .main {
        width: 100% !important;
        max-width: none !important;
        padding: 9px 8px 24px !important;
        margin: 0 !important;
    }

    body.has-result .result-container.active {
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
        max-width: none !important;
        gap: 11px !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    body.has-result .left-rail {
        display: flex !important;
        flex-direction: column !important;
        gap: 11px !important;
        width: 100% !important;
        margin: 0 !important;
    }

    body.has-result .market-session-card,
    body.has-result .stock-info,
    body.has-result .earnings-alert,
    body.has-result .sector-cloud-card,
    body.has-result .summary-card,
    body.has-result .analysis-section,
    body.has-result .detail-section {
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
        border-radius: 20px !important;
    }

    body.has-result .market-session-card {
        padding: 14px 15px !important;
    }

    body.has-result .market-session-head {
        align-items: flex-start !important;
        gap: 8px !important;
    }

    body.has-result .market-session-state strong {
        font-size: 14px !important;
    }

    body.has-result .market-session-clock {
        max-width: 48% !important;
        font-size: 11px !important;
        text-align: right !important;
        white-space: normal !important;
    }

    body.has-result .market-session-time-row {
        margin-top: 10px !important;
        padding-top: 10px !important;
    }

    body.has-result .stock-info {
        gap: 13px !important;
        padding: 17px !important;
    }

    body.has-result .stock-header,
    body.has-result .stock-info .stock-header {
        gap: 10px !important;
    }

    body.has-result .stock-header > .stock-name,
    body.has-result .stock-info .stock-header .stock-name,
    body.has-result .stock-header > .stock-price,
    body.has-result .stock-info .stock-header .stock-price {
        gap: 8px !important;
    }

    body.has-result .stock-name span:first-child {
        min-width: 0 !important;
        font-size: 21px !important;
        line-height: 1.25 !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    body.has-result .stock-name .code {
        flex: 0 0 auto !important;
        padding: 4px 9px !important;
        font-size: 11px !important;
    }

    body.has-result .stock-header > .stock-price > #currentPrice {
        font-size: 31px !important;
        line-height: 1 !important;
    }

    body.has-result .change {
        padding: 7px 10px !important;
        border-radius: 10px !important;
        font-size: 13px !important;
        animation: none !important;
    }

    body.has-result .stock-mini-grid {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 9px !important;
    }

    body.has-result .stock-mini-item {
        min-width: 0 !important;
        min-height: 64px !important;
        padding: 10px 11px !important;
        border-radius: 14px !important;
    }

    body.has-result .stock-mini-item span {
        font-size: 11px !important;
        margin-bottom: 4px !important;
    }

    body.has-result .stock-mini-item strong {
        font-size: 15px !important;
    }

    body.has-result .earnings-alert {
        padding: 15px !important;
        gap: 12px !important;
    }

    body.has-result .earnings-icon {
        width: 42px !important;
        height: 42px !important;
        flex: 0 0 42px !important;
        border-radius: 13px !important;
    }

    body.has-result .sector-cloud-card {
        min-height: 70px !important;
        padding: 13px 14px !important;
        gap: 11px !important;
    }

    body.has-result .summary-card,
    body.has-result .analysis-section,
    body.has-result .detail-section {
        padding: 17px !important;
    }

    body.has-result .summary-header {
        margin-bottom: 15px !important;
    }

    body.has-result .summary-card .summary-header h2,
    body.has-result .detail-section h3 {
        font-size: 18px !important;
    }

    body.has-result .summary-content {
        gap: 15px !important;
    }

    body.has-result .score-visual {
        width: 100% !important;
        display: flex !important;
        flex-direction: row !important;
        justify-content: center !important;
        align-items: center !important;
        gap: 18px !important;
    }

    body.has-result .score-circle {
        width: 112px !important;
        height: 112px !important;
        flex: 0 0 112px !important;
    }

    body.has-result .summary-card .score-value {
        font-size: 34px !important;
    }

    body.has-result .rating-chip {
        min-width: 92px !important;
        padding: 13px 15px !important;
        border-radius: 17px !important;
    }

    body.has-result .summary-card .rating-badge {
        font-size: 23px !important;
    }

    body.has-result .suggestion-box {
        width: 100% !important;
        padding: 15px !important;
        border-radius: 16px !important;
    }

    body.has-result .summary-card .suggestion-box p {
        font-size: 14px !important;
        line-height: 1.7 !important;
    }

    body.has-result .guide-content {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 7px !important;
    }

    body.has-result .guide-item {
        min-width: 0 !important;
        gap: 8px !important;
        padding: 9px 10px !important;
    }

    body.has-result .score-help-card {
        position: fixed !important;
        top: max(74px, calc(env(safe-area-inset-top) + 64px)) !important;
        left: 10px !important;
        right: 10px !important;
        bottom: 12px !important;
        width: auto !important;
        max-width: none !important;
        max-height: none !important;
        overflow-y: auto !important;
        border-radius: 18px !important;
        padding: 15px !important;
        z-index: 3000 !important;
    }

    body.has-result .score-stage {
        grid-template-columns: 9px 44px 64px minmax(0, 1fr) !important;
        gap: 7px !important;
        padding: 9px !important;
    }

    body.has-result .score-stage-current-tag {
        display: none !important;
    }

    body.has-result .section-tabs {
        display: grid !important;
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 5px !important;
        width: 100% !important;
        padding: 5px !important;
        margin-bottom: 13px !important;
        overflow: visible !important;
        border-radius: 15px !important;
    }

    body.has-result .tab-btn {
        min-width: 0 !important;
        min-height: 45px !important;
        padding: 6px 3px !important;
        border-radius: 11px !important;
        font-size: 11px !important;
        line-height: 1.15 !important;
        gap: 4px !important;
        white-space: nowrap !important;
    }

    body.has-result .tab-btn i {
        font-size: 12px !important;
    }

    body.has-result .analysis-summary-card {
        padding: 14px !important;
        border-radius: 16px !important;
    }

    body.has-result .analysis-text {
        font-size: 14px !important;
        line-height: 1.75 !important;
    }

    body.has-result .metric-grid,
    body.has-result #fundamental .metric-grid,
    body.has-result #technical .metric-grid,
    body.has-result #capital .metric-grid,
    body.has-result #valuation .metric-grid {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 9px !important;
    }

    body.has-result .metric-card {
        min-width: 0 !important;
        min-height: 104px !important;
        padding: 12px 10px !important;
        border-radius: 15px !important;
        gap: 8px !important;
    }

    body.has-result .metric-icon {
        width: 36px !important;
        height: 36px !important;
        min-width: 36px !important;
        border-radius: 11px !important;
    }

    body.has-result .metric-name {
        font-size: 11px !important;
    }

    body.has-result .metric-value {
        max-width: 100% !important;
        font-size: 16px !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    body.has-result .metric-score {
        font-size: 11px !important;
    }

    body.has-result .score-rules {
        margin-top: 13px !important;
        padding: 13px !important;
        border-radius: 15px !important;
    }

    body.has-result .rule-item {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 3px !important;
        padding: 8px 0 !important;
    }

    body.has-result .rule-item > span:last-child {
        text-align: left !important;
        font-size: 11px !important;
        line-height: 1.5 !important;
        overflow-wrap: anywhere !important;
    }

    body.has-result .chart-container {
        height: 310px !important;
        min-height: 310px !important;
        padding: 10px 6px 8px !important;
        border-radius: 16px !important;
    }

    body.has-result .chart-container canvas {
        touch-action: pan-y !important;
    }

    body.has-result .report-content {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }

    body.has-result .report-item {
        min-width: 0 !important;
        padding: 14px !important;
        border-radius: 15px !important;
    }

    body.has-result .report-item h4 {
        font-size: 15px !important;
    }

    body.has-result .report-item p {
        font-size: 14px !important;
        line-height: 1.72 !important;
    }

    /* 移动端减少大面积模糊和持续动画，滚动与切换更顺滑。 */
    body.has-result .header.has-result,
    body.has-result .market-session-card,
    body.has-result .stock-info,
    body.has-result .earnings-alert,
    body.has-result .sector-cloud-card,
    body.has-result .summary-card,
    body.has-result .analysis-section,
    body.has-result .detail-section,
    body.has-result .metric-card,
    .search-box,
    .suggestions {
        -webkit-backdrop-filter: none !important;
        backdrop-filter: none !important;
    }

    body.has-result .cursor-glass-card,
    body.has-result .metric-card,
    body.has-result .change,
    body.has-result .score-circle {
        animation-duration: 0s !important;
    }

    .developer-contact-backdrop {
        padding: 12px !important;
    }

    .developer-contact-dialog {
        width: 100% !important;
        max-width: 430px !important;
        max-height: calc(100svh - 24px) !important;
        overflow-y: auto !important;
        padding: 23px 18px 18px !important;
        border-radius: 21px !important;
        transform: none !important;
    }

    .developer-contact-actions {
        grid-template-columns: 1fr !important;
    }

    .theme-menu {
        top: max(66px, calc(env(safe-area-inset-top) + 58px)) !important;
        left: 10px !important;
        right: 10px !important;
        width: auto !important;
        min-width: 0 !important;
        max-height: calc(100svh - 82px) !important;
        overflow-y: auto !important;
        display: none;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 7px !important;
        padding: 10px !important;
        border-radius: 18px !important;
    }

    .theme-menu.show {
        display: grid !important;
    }

    .theme-divider {
        grid-column: 1 / -1 !important;
        margin: 2px 0 !important;
        padding: 6px 8px !important;
    }

    .theme-option {
        min-width: 0 !important;
        padding: 10px !important;
        gap: 8px !important;
    }

    .theme-option span {
        min-width: 0 !important;
        font-size: 12px !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    body .footer,
    body.has-result .footer {
        padding-left: 14px !important;
        padding-right: 14px !important;
        font-size: 11px !important;
        line-height: 1.65 !important;
    }
}

@media (max-width: 420px) {
    body:not(.has-result) .hero-copy h2,
    body:not(.has-result).is-loading-stock .hero-copy h2 {
        font-size: 29px !important;
    }

    body:not(.has-result) #stockInput,
    body.has-result #stockInput {
        font-size: 12px !important;
    }

    body:not(.has-result) .search-btn,
    body:not(.has-result) .search-btn.is-analyzing {
        width: 86px !important;
        min-width: 86px !important;
    }

    .home-sector-cloud-action b {
        display: none !important;
    }

    .home-sector-cloud-action {
        min-width: 42px !important;
        width: 42px !important;
        height: 42px !important;
        padding: 0 !important;
        justify-content: center !important;
    }

    body.has-result .metric-grid,
    body.has-result #fundamental .metric-grid,
    body.has-result #technical .metric-grid,
    body.has-result #capital .metric-grid,
    body.has-result #valuation .metric-grid {
        gap: 7px !important;
    }

    body.has-result .metric-card {
        min-height: 100px !important;
        padding: 11px 8px !important;
    }

    body.has-result .tab-btn {
        font-size: 10px !important;
    }
}

/* =========================================================
   fix69：仅修正手机版首页、联系卡片和主题面板
   桌面端（769px 以上）保持 fix68 原样。
   ========================================================= */
@media (max-width: 768px) {
    /* 1. 联系开发者卡片严格按手机视口居中，避免受滚动条或 3D 内联样式影响。 */
    .developer-contact-backdrop,
    .developer-contact-backdrop.is-open {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        padding:
            max(12px, env(safe-area-inset-top))
            max(12px, env(safe-area-inset-right))
            max(12px, env(safe-area-inset-bottom))
            max(12px, env(safe-area-inset-left)) !important;
    }

    .developer-contact-dialog,
    .developer-contact-backdrop.is-open .developer-contact-dialog,
    .developer-contact-backdrop.is-open .developer-contact-dialog.is-tilting {
        position: relative !important;
        left: auto !important;
        right: auto !important;
        top: auto !important;
        bottom: auto !important;
        flex: 0 1 auto !important;
        width: min(430px, calc(100vw - 24px)) !important;
        max-width: calc(100vw - 24px) !important;
        margin: 0 auto !important;
        transform: none !important;
        transform-origin: center center !important;
    }

    /* 2. 手机版首页不显示四个热门股票按钮，取消横向挤压与左右滑动。 */
    body:not(.has-result) .quick-picks,
    body:not(.has-result).is-loading-stock .quick-picks {
        display: none !important;
    }

    body:not(.has-result) .home-sector-cloud-card {
        margin-top: 18px !important;
    }

    /* 3. 手机版搜索框：文字完整、按钮缩小并在上下方向严格居中。 */
    body:not(.has-result) .search-box,
    body:not(.has-result).is-loading-stock .search-box {
        min-height: 54px !important;
        height: 54px !important;
        padding: 5px 6px 5px 8px !important;
        gap: 4px !important;
        align-items: center !important;
    }

    body:not(.has-result) #stockInput,
    body:not(.has-result).is-loading-stock #stockInput {
        height: 44px !important;
        min-height: 44px !important;
        padding: 0 8px !important;
        font-size: 13px !important;
        line-height: 44px !important;
        text-overflow: ellipsis !important;
    }

    body:not(.has-result) .search-btn,
    body:not(.has-result) .search-btn.is-analyzing {
        align-self: center !important;
        width: 80px !important;
        min-width: 80px !important;
        height: 40px !important;
        min-height: 40px !important;
        margin: 0 !important;
        padding: 0 10px !important;
        border-radius: 14px !important;
        justify-content: center !important;
        font-size: 13px !important;
        line-height: 1 !important;
        gap: 5px !important;
    }

    body:not(.has-result) .search-btn i,
    body:not(.has-result) .search-btn.is-analyzing i {
        font-size: 12px !important;
    }

    /* 4. 主题菜单打开时，右上角主题按钮保持原位，不再跳进菜单中间。 */
    body.theme-menu-open:not(.has-result) #themeBtn.theme-btn {
        position: absolute !important;
        top: 12px !important;
        right: 12px !important;
        left: auto !important;
        bottom: auto !important;
        width: 44px !important;
        height: 44px !important;
        min-width: 44px !important;
        margin: 0 !important;
        transform: none !important;
    }

    body.theme-menu-open.has-result #themeBtn.theme-btn {
        position: static !important;
        grid-area: theme !important;
        width: 42px !important;
        height: 42px !important;
        min-width: 42px !important;
        margin: 0 !important;
        transform: none !important;
    }

    .theme-menu,
    body.has-result .theme-menu {
        top: max(68px, calc(env(safe-area-inset-top) + 62px)) !important;
        left: max(10px, env(safe-area-inset-left)) !important;
        right: max(10px, env(safe-area-inset-right)) !important;
        bottom: auto !important;
        width: auto !important;
        max-width: none !important;
        max-height: calc(100svh - 82px - env(safe-area-inset-bottom)) !important;
        margin: 0 !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        transform: none !important;
    }
}

@media (max-width: 380px) {
    body:not(.has-result) #stockInput,
    body:not(.has-result).is-loading-stock #stockInput {
        font-size: 12px !important;
    }

    body:not(.has-result) .search-btn,
    body:not(.has-result) .search-btn.is-analyzing {
        width: 74px !important;
        min-width: 74px !important;
        padding: 0 8px !important;
    }
}

/* =========================================================
   fix70：仅优化手机版首页细节（桌面端 769px 以上不改）
   1. 右上角开发者与主题按钮下移
   2. 小屏板块云图使用“立即查看 + 箭头”，中等手机继续仅显示箭头
   3. 首页核心内容整体上移
   4. 首页底部显示免责声明
   ========================================================= */
@media (max-width: 768px) {
    /* 右上角两个按钮与手机顶部留出更自然的呼吸空间。 */
    body:not(.has-result) #developerBtn.developer-btn,
    body:not(.has-result) #themeBtn.theme-btn,
    body.theme-menu-open:not(.has-result) #themeBtn.theme-btn {
        top: max(22px, calc(env(safe-area-inset-top) + 14px)) !important;
    }

    /* 菜单跟着下移后的主题按钮展开，避免按钮与菜单发生重叠。 */
    .theme-menu,
    body.has-result .theme-menu {
        top: max(80px, calc(env(safe-area-inset-top) + 72px)) !important;
    }

    /* 首页标题、搜索框、板块入口作为一组向上移动。 */
    body:not(.has-result):not(.is-loading-stock) .search-section {
        transform: translateY(clamp(-54px, -5.6svh, -34px)) !important;
    }

    /* 首页底部免责声明：固定在安全区上方，不参与页面排版。 */
    body:not(.has-result):not(.is-loading-stock) .footer {
        display: flex !important;
        position: fixed !important;
        left: max(12px, env(safe-area-inset-left)) !important;
        right: max(12px, env(safe-area-inset-right)) !important;
        bottom: max(12px, env(safe-area-inset-bottom)) !important;
        z-index: 18 !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        width: auto !important;
        margin: 0 !important;
        padding: 0 !important;
        color: rgba(255, 255, 255, .28) !important;
        font-size: 11px !important;
        font-weight: 700 !important;
        line-height: 1.7 !important;
        letter-spacing: .2px !important;
        text-align: center !important;
        pointer-events: none !important;
    }

    body:not(.has-result):not(.is-loading-stock) .footer .footer-glow-line,
    body:not(.has-result):not(.is-loading-stock) .footer .footer-glow-line:last-child,
    body:not(.has-result):not(.is-loading-stock) .footer .footer-glow-char {
        margin: 0 !important;
        color: rgba(255, 255, 255, .28) !important;
        text-shadow: none !important;
        filter: none !important;
        animation: none !important;
    }
}

/*
   极窄手机（图三比例）：按钮改成图四的“立即查看 + 箭头”。
   421px～560px 继续保持原来的纯箭头按钮，因此图二比例不变化。
 */
@media (max-width: 420px) {
    .home-sector-cloud-card {
        grid-template-columns: 52px minmax(0, 1fr) auto !important;
    }

    .home-sector-cloud-action {
        width: auto !important;
        min-width: 80px !important;
        height: 38px !important;
        padding: 0 9px !important;
        gap: 4px !important;
        border-radius: 13px !important;
        justify-content: center !important;
    }

    .home-sector-cloud-action b {
        display: inline-block !important;
        font-size: 10px !important;
        line-height: 1 !important;
        white-space: nowrap !important;
    }

    .home-sector-cloud-action svg {
        width: 15px !important;
        height: 15px !important;
        flex: 0 0 15px !important;
    }
}

@media (max-width: 350px) {
    .home-sector-cloud-action {
        min-width: 74px !important;
        padding-inline: 7px !important;
    }

    .home-sector-cloud-copy > span {
        display: none !important;
    }
}
