/**
 * TradeVae Styles V2
 * Complete redesign using design tokens
 * Replaces styles.css and app.css
 */

@import url('./tokens.css');

/* ============================================
   RESET & BASE
   ============================================ */
* {
    box-sizing: border-box;
}

html {
    font-size: 16px;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    scroll-padding-top: calc(var(--z-sticky) + 16px);
    overflow-x: hidden;
}

body {
    margin: 0;
    padding: 0;
    font-family: var(--font-sans);
    font-size: var(--text-base);
    line-height: var(--line-height-normal);
    color: var(--color-text);
    background: linear-gradient(180deg, #ffffff 0%, #fafbfc 50%, #ffffff 100%);
    /* Avoid background-attachment: fixed; it can break position: sticky on some browsers (notably iOS Safari). */
    min-height: 100vh;
    overflow-x: hidden;
    width: 100%;
}

:root {
    /* Used for fixed-header offsets (also used by JS sticky fallback). */
    --header-height: 64px;
}

/* Ensure main doesn't create stacking context issues */
main {
    z-index: 1;
    min-height: 100vh;
}

/* Keep page content (sibling of .user-subnav) below subnav so dropdown is not hidden */
main > .container-main {
    position: relative;
    z-index: 0;
}

/* Respect user's motion preferences */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

/* ============================================
   TYPOGRAPHY
   ============================================ */
h1, h2, h3, h4, h5, h6 {
    margin: 0 0 var(--spacing-4) 0;
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-tight);
    color: var(--color-text);
}

h1 { font-size: var(--text-4xl); }
h2 { font-size: var(--text-3xl); }
h3 { font-size: var(--text-2xl); }
h4 { font-size: var(--text-xl); }
h5 { font-size: var(--text-lg); }
h6 { font-size: var(--text-base); }

p {
    margin: 0 0 var(--spacing-4) 0;
    line-height: var(--line-height-relaxed);
}

a {
    color: var(--color-brand);
    text-decoration: none;
    transition: color var(--transition-fast);
}

a:hover {
    color: var(--color-brand-dark);
    text-decoration: underline;
}

/* ============================================
   LAYOUT
   ============================================ */
.container-main {
    max-width: var(--container-max-width);
    margin: 0 auto;
    padding: 0 var(--container-padding-x);
    width: 100%;
    box-sizing: border-box;
    overflow-x: visible;
}

@media (max-width: 767px) {
    .container-main {
        overflow-x: visible;
        width: 100%;
        max-width: 100%;
    }
}

.section {
    padding: var(--section-padding-y-mobile) 0;
}

@media (min-width: 768px) {
    .section {
        padding: var(--section-padding-y-tablet) 0;
    }
}

@media (min-width: 1024px) {
    .section {
        padding: var(--section-padding-y-desktop) 0;
    }
}

/* ============================================
   HEADER & NAVIGATION
   ============================================ */
.header {
    /* CSS sticky has been unreliable across pages due to browser/scroll-container quirks.
       Use fixed for deterministic behavior site-wide. */
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: var(--z-sticky);
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(12px) saturate(180%);
    -webkit-backdrop-filter: blur(12px) saturate(180%);
    border-bottom: 1px solid var(--color-border);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04), 0 1px 2px rgba(0, 0, 0, 0.06);
    transition: box-shadow var(--transition-base), background var(--transition-base);
    width: 100%;
    margin: 0;
    padding: 0;
}

.header + main {
    padding-top: var(--header-height);
}

/* ============================================
   USER AREA: SUB NAVIGATION
   ============================================ */
.user-subnav {
    position: sticky;
    top: var(--header-height);
    z-index: var(--z-sticky);
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(14px) saturate(160%);
    -webkit-backdrop-filter: blur(14px) saturate(160%);
    border-bottom: 1px solid var(--color-border);
}

.user-subnav-inner {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    padding: var(--spacing-3) 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.user-subnav-inner::-webkit-scrollbar {
    display: none;
}

/* Mobile: hide bar, show trigger + drawer */
.user-subnav-mobile-trigger {
    display: none;
}

@media (max-width: 991px) {
    .user-subnav-bar {
        display: none !important;
    }

    .user-subnav-mobile-trigger {
        display: block;
    }

    .user-subnav-mobile-trigger-btn {
        display: flex;
        align-items: center;
        gap: var(--spacing-3);
        width: 100%;
        min-height: 48px;
        padding: var(--spacing-3) var(--container-padding-x);
        border: none;
        border-bottom: 1px solid var(--color-border);
        background: var(--color-surface);
        color: var(--color-text);
        font-size: var(--text-base);
        font-weight: var(--font-weight-medium);
        cursor: pointer;
        transition: background var(--transition-fast);
        -webkit-tap-highlight-color: transparent;
    }

    .user-subnav-mobile-trigger-btn:hover {
        background: var(--color-surface-2);
    }

    .user-subnav-mobile-trigger-btn i:first-child {
        font-size: 1.25rem;
        color: var(--color-brand);
    }

    .user-subnav-mobile-trigger-btn span {
        flex: 1;
        text-align: left;
    }

    .user-subnav-mobile-trigger-btn .bi-chevron-right {
        font-size: 0.875rem;
        color: var(--color-text-muted);
    }
}

@media (min-width: 992px) {
    .user-subnav-mobile-trigger {
        display: none !important;
    }

    .user-subnav-drawer {
        display: none !important;
    }
}

/* User subnav drawer (mobile) – same pattern as .mobile-drawer */
.user-subnav-drawer {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100vw;
    height: 100vh;
    z-index: 9999;
    pointer-events: none;
    display: none;
    overflow: hidden;
    isolation: isolate;
}

@media (max-width: 991px) {
    .user-subnav-drawer[aria-hidden="false"] {
        display: block;
        pointer-events: all;
    }

    body:has(.user-subnav-drawer[aria-hidden="false"]) {
        overflow: hidden;
        position: fixed;
        width: 100%;
        height: 100%;
    }
}

.user-subnav-drawer-backdrop {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100vw;
    height: 100vh;
    background-color: rgba(0, 0, 0, 0.5);
    opacity: 0;
    transition: opacity var(--transition-base);
    z-index: 9998;
}

.user-subnav-drawer[aria-hidden="false"] .user-subnav-drawer-backdrop {
    opacity: 1;
}

.user-subnav-drawer-panel {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: 300px;
    max-width: 85vw;
    height: 100vh;
    background-color: var(--color-surface);
    box-shadow: -4px 0 24px rgba(0, 0, 0, 0.15);
    transform: translateX(100%);
    transition: transform var(--transition-base);
    display: flex;
    flex-direction: column;
    z-index: 10000;
    overflow-y: auto;
    overflow-x: hidden;
}

.user-subnav-drawer[aria-hidden="false"] .user-subnav-drawer-panel {
    transform: translateX(0);
}

.user-subnav-drawer-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--spacing-4);
    border-bottom: 1px solid var(--color-border);
    flex-shrink: 0;
}

.user-subnav-drawer-header h3 {
    margin: 0;
    font-size: var(--text-lg);
    font-weight: var(--font-weight-semibold);
}

.user-subnav-drawer-close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border: none;
    background: transparent;
    color: var(--color-text);
    cursor: pointer;
    border-radius: var(--radius-md);
    transition: background var(--transition-fast);
    -webkit-tap-highlight-color: transparent;
}

.user-subnav-drawer-close:hover {
    background-color: var(--color-surface-2);
}

.user-subnav-drawer-body {
    flex: 1;
    padding: var(--spacing-2) 0;
    overflow-y: auto;
}

.user-subnav-drawer-links {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.user-subnav-drawer-link {
    display: flex;
    align-items: center;
    gap: var(--spacing-3);
    padding: var(--spacing-3) var(--spacing-4);
    color: var(--color-text);
    font-weight: var(--font-weight-medium);
    text-decoration: none;
    transition: background var(--transition-fast), color var(--transition-fast);
    min-height: 48px;
    -webkit-tap-highlight-color: transparent;
}

a.user-subnav-drawer-link:hover {
    background-color: var(--color-surface-2);
    color: var(--color-text);
    text-decoration: none;
}

.user-subnav-drawer-link.active {
    color: var(--color-brand);
    background-color: rgba(103, 78, 153, 0.1);
}

.user-subnav-drawer-link.disabled {
    opacity: 0.6;
    pointer-events: none;
    color: var(--color-text-muted);
}

.user-subnav-drawer-link .bi {
    font-size: 1.25rem;
    width: 1.5rem;
    text-align: center;
    flex-shrink: 0;
}

.user-subnav-drawer-label {
    flex: 1;
}

.user-subnav-drawer-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    padding: 0 7px;
    border-radius: 999px;
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    color: var(--color-brand);
    background: rgba(103, 78, 153, 0.12);
}

.user-subnav-drawer-badge.is-zero {
    opacity: 0.55;
}

.user-subnav-drawer-soon {
    font-size: var(--text-xs);
    color: var(--color-text-muted);
}

.user-subnav-link {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2);
    padding: var(--spacing-2) var(--spacing-4);
    border-radius: var(--radius-lg);
    border: 1.5px solid var(--color-border);
    background: linear-gradient(135deg,
        rgba(0, 0, 0, 0.02) 0%,
        rgba(0, 0, 0, 0.01) 100%);
    color: var(--color-text-secondary);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
    text-decoration: none;
    white-space: nowrap;
    transition: transform var(--transition-base), box-shadow var(--transition-base), color var(--transition-base), background var(--transition-base);
    position: relative;
    box-shadow:
        0 2px 8px rgba(0, 0, 0, 0.04),
        0 1px 3px rgba(0, 0, 0, 0.02),
        inset 0 1px 2px rgba(255, 255, 255, 0.8);
}

.user-subnav-link:hover {
    color: var(--color-text);
    transform: translateY(-1px);
    text-decoration: none;
}

.user-subnav-link.active {
    background: linear-gradient(135deg,
        var(--color-surface) 0%,
        rgba(255, 255, 255, 0.98) 100%);
    color: var(--color-brand);
    font-weight: var(--font-weight-semibold);
    border-color: rgba(103, 78, 153, 0.2);
    box-shadow:
        0 4px 12px rgba(103, 78, 153, 0.15),
        0 2px 6px rgba(0, 0, 0, 0.08),
        inset 0 1px 2px rgba(255, 255, 255, 0.9);
}

.user-subnav-link.disabled {
    opacity: 0.6;
    pointer-events: none;
    filter: saturate(0.9);
}

.user-subnav-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    padding: 0 7px;
    border-radius: 999px;
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    color: var(--color-brand);
    background: rgba(103, 78, 153, 0.10);
    border: 1px solid rgba(103, 78, 153, 0.16);
}

.user-subnav-badge.is-zero {
    opacity: 0.55;
}

.user-subnav-soon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 8px;
    height: 22px;
    border-radius: 999px;
    font-size: var(--text-xs);
    color: var(--color-text-muted);
    background: rgba(0, 0, 0, 0.03);
    border: 1px solid var(--color-border-light);
}

.header.scrolled {
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08), 0 2px 4px rgba(0, 0, 0, 0.06);
    background: rgba(255, 255, 255, 0.98);
}

.header-container {
    width: 100%;
    max-width: 100%;
    overflow: visible;
}

.header-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-4);
    height: 64px;
    padding: 0 var(--container-padding-x);
    max-width: var(--container-max-width);
    margin: 0 auto;
}

.header-brand {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    margin-right:30px;
}

.header-logo-img {
    height: 32px;
    width: auto;
}

.header-what-is-link {
    display: none;
    align-items: center;
    gap: var(--spacing-1);
    padding: var(--spacing-1) var(--spacing-2);
    margin-left: var(--spacing-3);
    border: none;
    background: transparent;
    color: var(--color-text-secondary);
    font-size: var(--text-xs);
    cursor: pointer;
    border-radius: var(--radius-sm);
    transition: all var(--transition-fast);
}

.header-what-is-link:hover {
    color: var(--color-brand);
    background-color: var(--color-surface-2);
}

.header-what-is-text {
    display: none;
}

@media (min-width: 1200px) {
    .header-what-is-link {
        display: flex;
    }
    
    .header-what-is-text {
        display: inline;
    }
}

.header-nav {
    display: none;
    flex: 1;
    justify-content: center;
    align-items: center;
    gap: var(--spacing-6);
}

.header-nav-primary {
    display: flex;
    align-items: center;
    gap: var(--spacing-1);
}

.header-nav-secondary {
    display: flex;
    align-items: center;
    gap: var(--spacing-1);
    padding-left: var(--spacing-4);
    border-left: 1px solid var(--color-border);
    margin-left: var(--spacing-4);
}

.header-nav-link {
    padding: var(--spacing-2) var(--spacing-3);
    color: var(--color-text-secondary);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
    border-radius: var(--radius-md);
    transition: all var(--transition-base);
    white-space: nowrap;
    position: relative;
}

.header-nav-link::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%) scaleX(0);
    width: 80%;
    height: 2px;
    background: linear-gradient(90deg, var(--color-brand) 0%, var(--color-brand-light) 100%);
    border-radius: 2px;
    transition: transform var(--transition-base);
}

.header-nav-link:hover {
    color: var(--color-text);
    background-color: var(--color-surface-2);
    text-decoration: none;
    transform: translateY(-1px);
}

.header-nav-link:hover::after {
    transform: translateX(-50%) scaleX(1);
}

.header-nav-link.active {
    color: var(--color-brand);
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.1) 0%, rgba(103, 78, 153, 0.05) 100%);
}

.header-nav-link.active::after {
    transform: translateX(-50%) scaleX(1);
}

.header-nav-link-secondary {
    font-size: var(--text-xs);
    color: var(--color-text-tertiary);
}

.header-nav-link-secondary:hover {
    color: var(--color-text-secondary);
}

.header-nav-link-start {
    color: var(--color-brand);
    font-weight: var(--font-weight-semibold);
}

.header-nav-link-start i {
    font-size: 0.85em;
    margin-right: var(--spacing-1);
}

.mobile-drawer-link-start {
    color: var(--color-brand);
    font-weight: var(--font-weight-semibold);
}

.header-search {
    display: none;
    flex: 0 1 360px;
    min-width: 220px;
}

.header-search-form {
    position: relative;
    display: flex;
    align-items: center;
}

.header-search-input {
    width: 100%;
    height: var(--input-height-md);
    padding: 0 var(--spacing-4) 0 var(--spacing-10);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    background-color: var(--color-surface);
    transition: all var(--transition-base);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}

.header-search-input:focus {
    outline: none;
    border-color: var(--color-brand);
    box-shadow: 0 0 0 4px rgba(103, 78, 153, 0.12), 0 2px 4px rgba(0, 0, 0, 0.08);
    transform: translateY(-1px);
    background-color: #ffffff;
}

.header-search-button {
    position: absolute;
    left: var(--spacing-2);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border: none;
    background: transparent;
    color: var(--color-text-muted);
    cursor: pointer;
    border-radius: var(--radius-sm);
    transition: all var(--transition-fast);
}

.header-search-button:hover {
    background-color: var(--color-surface-2);
    color: var(--color-text);
}

.header-actions {
    display: none;
    align-items: center;
    gap: var(--spacing-3);
    flex-shrink: 0;
}

.mobile-nav {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
}

.mobile-menu-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border: none;
    background: transparent;
    color: var(--color-text);
    cursor: pointer;
    border-radius: var(--radius-md);
    transition: all var(--transition-fast);
}

.mobile-menu-toggle:hover {
    background-color: var(--color-surface-2);
}

@media (min-width: 992px) {
    .header-nav,
    .header-search,
    .header-actions {
        display: flex;
    }
    
    .mobile-nav {
        display: none;
    }
    
    .mobile-drawer,
    .tv-mobile-search {
        display: none !important;
    }
}

@media (max-width: 991px) {
    .header-nav-secondary {
        display: none;
    }
}

/* Mobile Search Panel */
.tv-mobile-search {
    display: none;
    padding: var(--spacing-4) 0;
    border-top: 1px solid var(--color-border);
    background-color: var(--color-surface);
}

@media (max-width: 991px) {
    .tv-mobile-search[aria-hidden="false"] {
        display: block;
    }
}

/* Mobile Drawer */
.mobile-drawer {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100vw;
    height: 100vh;
    z-index: 9999;
    pointer-events: none;
    display: none;
    overflow: hidden;
    isolation: isolate;
    contain: layout style paint;
}

@media (max-width: 991px) {
    .mobile-drawer[aria-hidden="false"] {
        display: block;
        pointer-events: all;
    }
    
    /* Prevent body scroll when drawer is open */
    body:has(.mobile-drawer[aria-hidden="false"]) {
        overflow: hidden;
        position: fixed;
        width: 100%;
        height: 100%;
    }
}

.mobile-drawer-backdrop {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100vw;
    height: 100vh;
    background-color: rgba(0, 0, 0, 0.75);
    opacity: 0;
    transition: opacity var(--transition-base);
    z-index: 9998;
    margin: 0;
    padding: 0;
}

.mobile-drawer[aria-hidden="false"] .mobile-drawer-backdrop {
    opacity: 1;
}

.mobile-drawer-content {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: 320px;
    max-width: 85vw;
    height: 100vh;
    background-color: var(--color-surface);
    box-shadow: -4px 0 24px rgba(0, 0, 0, 0.15), -2px 0 8px rgba(0, 0, 0, 0.1);
    transform: translateX(100%);
    transition: transform var(--transition-base);
    display: flex;
    flex-direction: column;
    z-index: 10000;
    overflow-y: auto;
    overflow-x: hidden;
    margin: 0;
    padding: 0;
}

.mobile-drawer[aria-hidden="false"] .mobile-drawer-content {
    transform: translateX(0);
}

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

.mobile-drawer-header h3 {
    margin: 0;
    font-size: var(--text-lg);
}

.mobile-drawer-close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border: none;
    background: transparent;
    color: var(--color-text);
    cursor: pointer;
    border-radius: var(--radius-md);
    transition: all var(--transition-fast);
}

.mobile-drawer-close:hover {
    background-color: var(--color-surface-2);
}

.mobile-drawer-links {
    flex: 1;
    padding: var(--spacing-2) 0;
}

.mobile-drawer-section {
    margin-bottom: var(--spacing-4);
}

.mobile-drawer-section-label {
    padding: var(--spacing-2) var(--spacing-4);
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-muted);
    margin-bottom: var(--spacing-1);
}

.mobile-drawer-link {
    display: flex;
    align-items: center;
    gap: var(--spacing-3);
    padding: var(--spacing-3) var(--spacing-4);
    color: var(--color-text);
    font-weight: var(--font-weight-medium);
    transition: all var(--transition-fast);
}

.mobile-drawer-link:hover {
    background-color: var(--color-surface-2);
    text-decoration: none;
}

.mobile-drawer-link.active {
    color: var(--color-brand);
    background-color: rgba(103, 78, 153, 0.1);
}

.mobile-drawer-search {
    padding: var(--spacing-4);
    border-top: 1px solid var(--color-border);
}

/* Search Suggestions */
.search-suggestions {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    margin-top: var(--spacing-1);
    background-color: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-3);
    max-height: 400px;
    overflow-y: auto;
    z-index: var(--z-dropdown);
    display: none;
}

.search-suggestions.active {
    display: block;
}

.search-suggestion-item {
    display: block;
    padding: var(--spacing-3) var(--spacing-4);
    text-decoration: none;
    color: var(--color-text);
    border-bottom: 1px solid var(--color-border);
    transition: background-color var(--transition-fast);
}

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

.search-suggestion-item:hover,
.search-suggestion-item.active {
    background-color: var(--color-surface-2);
}

.search-suggestion-content {
    display: flex;
    align-items: center;
    gap: var(--spacing-3);
}

.search-suggestion-logo {
    width: 32px;
    height: 32px;
    border-radius: var(--radius-sm);
    object-fit: cover;
    flex-shrink: 0;
}

.search-suggestion-text {
    flex: 1;
    min-width: 0;
}

.search-suggestion-title {
    font-weight: var(--font-weight-semibold);
    font-size: var(--text-sm);
    color: var(--color-text);
    margin-bottom: 2px;
}

.search-suggestion-ticker {
    font-weight: var(--font-weight-bold);
    color: var(--color-brand);
}

.search-suggestion-meta {
    font-size: var(--text-xs);
    color: var(--color-text-tertiary);
    margin-top: var(--spacing-1);
}

.search-suggestion-subtitle {
    font-size: var(--text-xs);
    color: var(--color-text-secondary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.search-suggestions-dark {
    background-color: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

/* ============================================
   BUTTONS
   ============================================ */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-2);
    padding: var(--spacing-2) var(--spacing-4);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
    line-height: 1;
    text-align: center;
    text-decoration: none;
    border: 1px solid transparent;
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all var(--transition-fast);
}

.btn-primary {
    background: linear-gradient(135deg, var(--color-brand) 0%, var(--color-brand-dark) 100%);
    color: white;
    border-color: var(--color-brand);
    box-shadow: 0 2px 4px rgba(103, 78, 153, 0.2), 0 1px 2px rgba(103, 78, 153, 0.15);
    position: relative;
    overflow: hidden;
    transition: all var(--transition-base);
}

.btn-primary::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    transition: left var(--transition-slow);
}

.btn-primary:hover {
    background: linear-gradient(135deg, var(--color-brand-light) 0%, var(--color-brand) 100%);
    border-color: var(--color-brand-light);
    color: white;
    text-decoration: none;
    box-shadow: 0 4px 12px rgba(103, 78, 153, 0.3), 0 2px 4px rgba(103, 78, 153, 0.2);
    transform: translateY(-1px);
}

.btn-primary:hover::before {
    left: 100%;
}

.btn-primary:active {
    transform: translateY(0);
    box-shadow: 0 1px 2px rgba(103, 78, 153, 0.2);
}

.btn-link {
    background-color: transparent;
    color: var(--color-brand);
    border-color: transparent;
    padding: var(--spacing-2) var(--spacing-3);
}

.btn-link:hover {
    background-color: var(--color-surface-2);
    color: var(--color-brand-dark);
    text-decoration: none;
}

/* ============================================
   ALERTS
   ============================================ */
.alert {
    padding: var(--spacing-4);
    border-radius: var(--radius-md);
    border-left: 4px solid;
    margin-bottom: var(--spacing-4);
}

.alert-success {
    background-color: rgba(16, 185, 129, 0.1);
    border-color: var(--color-success);
    color: var(--color-success-dark);
}

.alert-warning {
    background-color: rgba(245, 158, 11, 0.1);
    border-color: var(--color-warning);
    color: var(--color-warning-dark);
}

.alert-danger {
    background-color: rgba(239, 68, 68, 0.1);
    border-color: var(--color-danger);
    color: var(--color-danger-dark);
}

.alert-info {
    background-color: rgba(59, 130, 246, 0.1);
    border-color: var(--color-info);
    color: var(--color-info-dark);
}

/* ============================================
   FOOTER
   ============================================ */
.footer {
    background-color: var(--color-surface-2);
    border-top: 1px solid var(--color-border);
    padding: var(--spacing-12) 0 var(--spacing-6);
    margin-top: var(--spacing-16);
}

.footer-content {
    max-width: var(--container-max-width);
    margin: 0 auto;
    padding: 0 var(--container-padding-x);
}

.footer-intro {
    margin-bottom: var(--spacing-8);
}

.footer-logo {
    height: 32px;
    width: auto;
    margin-bottom: var(--spacing-4);
}

.footer-intro p {
    color: var(--color-text-secondary);
    max-width: 60ch;
    margin-bottom: var(--spacing-3);
}

.footer-what-is-link {
    display: inline-block;
    color: var(--color-brand);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
    text-decoration: none;
    transition: color var(--transition-fast);
}

.footer-what-is-link:hover {
    color: var(--color-brand-dark);
    text-decoration: underline;
}

.footer-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: var(--spacing-8);
    margin-bottom: var(--spacing-8);
}

.footer-section h4 {
    font-size: var(--text-sm);
    font-weight: var(--font-weight-semibold);
    margin-bottom: var(--spacing-4);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.footer-links {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-links li {
    margin-bottom: var(--spacing-2);
}

.footer-links a {
    color: var(--color-text-secondary);
    font-size: var(--text-sm);
}

.footer-links a:hover {
    color: var(--color-brand);
}

.footer-bottom {
    padding-top: var(--spacing-6);
    border-top: 1px solid var(--color-border);
    text-align: center;
}

.footer-bottom p {
    margin: 0;
    color: var(--color-text-muted);
    font-size: var(--text-sm);
}

.footer-disclaimer {
    margin-top: var(--spacing-6);
    padding: var(--spacing-4);
    max-width: var(--container-max-width);
    margin-left: auto;
    margin-right: auto;
}

.footer-disclaimer details {
    color: var(--color-text-secondary);
}

.footer-disclaimer summary {
    cursor: pointer;
    user-select: none;
}

.footer-disclaimer summary:hover {
    color: var(--color-text);
}

.footer-disclaimer small {
    color: var(--color-text-secondary);
    font-size: var(--text-xs);
    line-height: var(--line-height-relaxed);
}

/* ============================================
   FLASH MESSAGES
   ============================================ */
.flash-messages {
    margin-top: var(--spacing-6);
    margin-bottom: var(--spacing-4);
}

/* ============================================
   BOOTSTRAP OVERRIDES
   ============================================ */
/* Override Bootstrap primary color with our brand */
.btn-primary {
    --bs-btn-bg: var(--color-brand);
    --bs-btn-border-color: var(--color-brand);
    --bs-btn-hover-bg: var(--color-brand-dark);
    --bs-btn-hover-border-color: var(--color-brand-dark);
    --bs-btn-active-bg: var(--color-brand-dark);
    --bs-btn-active-border-color: var(--color-brand-dark);
}

/* Ensure Bootstrap alerts use our tokens */
.alert-success {
    --bs-alert-color: var(--color-success-dark);
    --bs-alert-bg: rgba(16, 185, 129, 0.1);
    --bs-alert-border-color: var(--color-success);
}

.alert-warning {
    --bs-alert-color: var(--color-warning-dark);
    --bs-alert-bg: rgba(245, 158, 11, 0.1);
    --bs-alert-border-color: var(--color-warning);
}

.alert-danger {
    --bs-alert-color: var(--color-danger-dark);
    --bs-alert-bg: rgba(239, 68, 68, 0.1);
    --bs-alert-border-color: var(--color-danger);
}

.alert-info {
    --bs-alert-color: var(--color-info-dark);
    --bs-alert-bg: rgba(59, 130, 246, 0.1);
    --bs-alert-border-color: var(--color-info);
}

/* ============================================
   BREADCRUMBS
   ============================================ */
.breadcrumbs {
    margin-bottom: var(--spacing-6);
}

.breadcrumbs-list {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--spacing-2);
    list-style: none;
    padding: 0;
    margin: 0;
}

.breadcrumbs-item {
    display: flex;
    align-items: center;
}

.breadcrumbs-link {
    color: var(--color-text-secondary);
    font-size: var(--text-sm);
    text-decoration: none;
    transition: color var(--transition-fast);
}

.breadcrumbs-link:hover {
    color: var(--color-brand);
    text-decoration: none;
}

.breadcrumbs-current {
    color: var(--color-text);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
}

.breadcrumbs-separator {
    color: var(--color-text-muted);
    font-size: var(--text-xs);
    margin: 0 var(--spacing-1);
}

/* ============================================
   UTILITIES
   ============================================ */
.text-center { text-align: center; }
.text-left { text-align: left; }
.text-right { text-align: right; }

.text-success { color: var(--color-success); }
.text-danger { color: var(--color-danger); }
.text-warning { color: var(--color-warning); }
.text-info { color: var(--color-info); }

.mt-0 { margin-top: 0; }
.mb-0 { margin-bottom: 0; }

/* ============================================
   WHAT IS TRADEVAE MODAL
   ============================================ */
.what-is-tradevae-content {
    padding: var(--spacing-2);
}

.what-is-tradevae-intro {
    font-size: var(--text-lg);
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-6);
    line-height: var(--line-height-relaxed);
}

.what-is-tradevae-features {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: var(--spacing-6);
    margin-bottom: var(--spacing-8);
}

.what-is-tradevae-feature h3 {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    font-size: var(--text-lg);
    margin-bottom: var(--spacing-2);
    color: var(--color-text);
}

.what-is-tradevae-feature h3 i {
    color: var(--color-brand);
    font-size: var(--text-xl);
}

.what-is-tradevae-feature p {
    color: var(--color-text-secondary);
    font-size: var(--text-sm);
    line-height: var(--line-height-relaxed);
    margin: 0;
}

.what-is-tradevae-cta {
    display: flex;
    gap: var(--spacing-3);
    padding-top: var(--spacing-4);
    border-top: 1px solid var(--color-border);
}

/* ============================================
   SIDEBAR RULES BY TEMPLATE
   ============================================ */
/* Quote Page: Right rail for signals/summary - Consolidated below */

/* News Article: Right rail for takeaways/related */
.news-article-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--spacing-6);
}

@media (min-width: 1024px) {
    .news-article-layout {
        grid-template-columns: 2fr 1fr;
    }
}



/* State of Market Reports: Right rail for snapshot/sectors */
.state-market-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--spacing-6);
}

@media (min-width: 1024px) {
    .state-market-layout {
        grid-template-columns: 2fr 1fr;
    }
}



/* Sidebar Module Base Styles */
.sidebar-module {
    background-color: var(--color-surface-2);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: var(--spacing-4);
    margin-bottom: var(--spacing-4);
}

.sidebar-module-title {
    font-size: var(--text-sm);
    font-weight: var(--font-weight-semibold);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-3);
    padding-bottom: var(--spacing-2);
    border-bottom: 1px solid var(--color-border);
}

.sidebar-module-content {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
}

/* ============================================
   STATE OF MARKET SCHEDULE NAVIGATION
   ============================================ */
.state-market-filters {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-4);
    align-items: flex-start;
}

@media (min-width: 768px) {
    .state-market-filters {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        width: 100%;
    }
}

.state-market-date-filters {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-2);
    align-items: center;
}

.state-market-date-filter {
    display: inline-flex;
    align-items: center;
    padding: var(--spacing-2) var(--spacing-3);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary);
    text-decoration: none;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    transition: all var(--transition-fast);
    background: linear-gradient(135deg, 
        rgba(255, 255, 255, 0.98) 0%, 
        rgba(255, 255, 255, 0.95) 100%);
}

.state-market-date-filter:hover {
    color: var(--color-brand);
    border-color: var(--color-brand);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.08) 0%, 
        rgba(103, 78, 153, 0.05) 100%);
    text-decoration: none;
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(103, 78, 153, 0.15);
}

.state-market-date-filter.active {
    color: var(--color-brand);
    border-color: var(--color-brand);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.15) 0%, 
        rgba(103, 78, 153, 0.1) 100%);
    font-weight: var(--font-weight-semibold);
    box-shadow: 0 2px 8px rgba(103, 78, 153, 0.2);
}

.state-market-date-selector-form {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2);
    padding: var(--spacing-1);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: linear-gradient(135deg, 
        rgba(255, 255, 255, 0.98) 0%, 
        rgba(255, 255, 255, 0.95) 100%);
    transition: all var(--transition-fast);
}

.state-market-date-selector-form:focus-within {
    border-color: var(--color-brand);
    box-shadow: 0 0 0 3px rgba(103, 78, 153, 0.1);
}

.state-market-date-selector {
    border: none;
    background: transparent;
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-text);
    padding: var(--spacing-1) var(--spacing-2);
    outline: none;
    min-width: 140px;
}

.state-market-date-selector::-webkit-calendar-picker-indicator {
    cursor: pointer;
    opacity: 0.6;
    transition: opacity var(--transition-fast);
}

.state-market-date-selector::-webkit-calendar-picker-indicator:hover {
    opacity: 1;
}

.state-market-date-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: var(--spacing-1) var(--spacing-2);
    border: none;
    background: transparent;
    color: var(--color-brand);
    cursor: pointer;
    border-radius: var(--radius-sm);
    transition: all var(--transition-fast);
    font-size: var(--text-base);
}

.state-market-date-submit:hover {
    background: rgba(103, 78, 153, 0.1);
    transform: scale(1.1);
}

.state-market-schedule-nav {
    display: flex;
    gap: var(--spacing-2);
    align-items: center;
    flex-wrap: wrap;
}

.state-market-schedule-link {
    display: flex;
    align-items: center;
    gap: var(--spacing-1);
    padding: var(--spacing-2) var(--spacing-3);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary);
    text-decoration: none;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background-color: var(--color-surface);
    transition: all var(--transition-fast);
}

.state-market-schedule-link:hover {
    color: var(--color-brand);
    border-color: var(--color-brand);
    background-color: rgba(103, 78, 153, 0.05);
    text-decoration: none;
}

.state-market-schedule-link.active {
    color: var(--color-brand);
    border-color: var(--color-brand);
    background-color: rgba(103, 78, 153, 0.1);
}

.state-market-schedule-link i {
    font-size: var(--text-base);
}

/* ============================================
   COMPONENT LIBRARY STYLES
   ============================================ */

/* Buttons */
.btn-ghost {
    background-color: transparent;
    color: var(--color-text);
    border: 1px solid var(--color-border);
    transition: all var(--transition-base);
    position: relative;
    overflow: hidden;
}

.btn-ghost::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    border-radius: 50%;
    background: var(--color-surface-2);
    transform: translate(-50%, -50%);
    transition: width var(--transition-base), height var(--transition-base);
}

.btn-ghost:hover {
    background-color: var(--color-surface-2);
    border-color: var(--color-text);
    color: var(--color-text);
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.btn-ghost:hover::before {
    width: 300px;
    height: 300px;
}

.btn-black {
    background-color: var(--color-ink);
    color: white;
    border-color: var(--color-ink);
}

.btn-black:hover {
    background-color: rgba(0, 0, 0, 0.9);
    color: white;
}

.btn-outline {
    background-color: transparent;
    color: var(--color-brand);
    border: 1.5px solid var(--color-brand);
    position: relative;
    overflow: hidden;
    transition: all var(--transition-base);
    box-shadow: 0 1px 2px rgba(103, 78, 153, 0.1);
}

.btn-outline::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, var(--color-brand) 0%, var(--color-brand-dark) 100%);
    transition: left var(--transition-base);
    z-index: -1;
}

.btn-outline:hover {
    background-color: var(--color-brand);
    color: white;
    border-color: var(--color-brand-dark);
    box-shadow: 0 4px 12px rgba(103, 78, 153, 0.3), 0 2px 4px rgba(103, 78, 153, 0.2);
    transform: translateY(-1px);
}

.btn-outline:hover::before {
    left: 0;
}

.btn-outline:active {
    transform: translateY(0);
    box-shadow: 0 1px 2px rgba(103, 78, 153, 0.2);
}

.btn-sm {
    height: var(--button-height-sm);
    padding: 0 var(--button-padding-x-sm);
    font-size: var(--text-xs);
}

.btn-md {
    height: var(--button-height-md);
    padding: 0 var(--button-padding-x-md);
    font-size: var(--text-sm);
}

.btn-lg {
    height: var(--button-height-lg);
    padding: 0 var(--button-padding-x-lg);
    font-size: var(--text-base);
}

/* Badges/Chips */
.badge {
    display: inline-flex;
    align-items: center;
    padding: var(--spacing-1) var(--spacing-3);
    font-size: var(--text-xs);
    font-weight: var(--font-weight-medium);
    border-radius: var(--radius-full);
    line-height: 1;
    text-decoration: none;
    transition: all var(--transition-base);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
    position: relative;
    overflow: hidden;
    transition: all var(--transition-fast);
}

.badge-sm {
    padding: 2px var(--spacing-2);
    font-size: 10px;
}

.badge-lg {
    padding: var(--spacing-2) var(--spacing-4);
    font-size: var(--text-sm);
}

.badge-ticker {
    background-color: var(--color-surface-2);
    color: var(--color-text);
    border: 1px solid var(--color-border);
    font-family: var(--font-mono);
    font-weight: var(--font-weight-semibold);
}

.badge-ticker:hover {
    background-color: var(--color-surface-3);
    border-color: var(--color-brand);
    color: var(--color-brand);
    transform: translateY(-1px);
    box-shadow: 0 2px 4px rgba(103, 78, 153, 0.15);
}

.badge-category {
    background-color: rgba(103, 78, 153, 0.1);
    color: var(--color-brand);
}

.badge-sentiment-positive {
    background-color: rgba(16, 185, 129, 0.1);
    color: var(--color-success-dark);
    border: 1px solid var(--color-success);
}

.badge-sentiment-negative {
    background-color: rgba(239, 68, 68, 0.1);
    color: var(--color-danger-dark);
    border: 1px solid var(--color-danger);
}

.badge-sentiment-neutral {
    background-color: var(--color-surface-2);
    color: var(--color-text-secondary);
    border: 1px solid var(--color-border);
}

.badge-live {
    background-color: var(--color-success);
    color: white;
    animation: pulse 2s infinite;
}

.badge-success {
    background-color: var(--color-success);
    color: white;
    border: 1px solid rgba(16, 185, 129, 0.3);
}

.badge-danger {
    background-color: var(--color-danger);
    color: white;
    border: 1px solid rgba(239, 68, 68, 0.3);
}

.badge-warning {
    background-color: var(--color-warning);
    color: white;
    border: 1px solid rgba(245, 158, 11, 0.3);
}

.badge-secondary {
    background-color: var(--color-surface-2);
    color: var(--color-text-secondary);
    border: 1px solid var(--color-border);
}

@keyframes pulse {
    0%, 100% { 
        opacity: 1;
        transform: scale(1);
    }
    50% { 
        opacity: 0.8;
        transform: scale(1.05);
    }
}

/* Subtle fade-in animation for cards on load */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Stagger animation for grid items */
.academy-topics-grid > *,
.academy-featured-grid > *,
.academy-lessons-grid > *,
.news-articles > * {
    animation: fadeInUp 0.6s ease-out backwards;
}

.academy-topics-grid > *:nth-child(1) { animation-delay: 0.05s; }
.academy-topics-grid > *:nth-child(2) { animation-delay: 0.1s; }
.academy-topics-grid > *:nth-child(3) { animation-delay: 0.15s; }
.academy-topics-grid > *:nth-child(4) { animation-delay: 0.2s; }
.academy-topics-grid > *:nth-child(5) { animation-delay: 0.25s; }
.academy-topics-grid > *:nth-child(6) { animation-delay: 0.3s; }

.academy-featured-grid > *:nth-child(1) { animation-delay: 0.05s; }
.academy-featured-grid > *:nth-child(2) { animation-delay: 0.1s; }
.academy-featured-grid > *:nth-child(3) { animation-delay: 0.15s; }

.academy-lessons-grid > *:nth-child(1) { animation-delay: 0.05s; }
.academy-lessons-grid > *:nth-child(2) { animation-delay: 0.1s; }
.academy-lessons-grid > *:nth-child(3) { animation-delay: 0.15s; }
.academy-lessons-grid > *:nth-child(4) { animation-delay: 0.2s; }

.news-articles > *:nth-child(1) { animation-delay: 0.05s; }
.news-articles > *:nth-child(2) { animation-delay: 0.1s; }
.news-articles > *:nth-child(3) { animation-delay: 0.15s; }
.news-articles > *:nth-child(4) { animation-delay: 0.2s; }

.badge-default {
    background-color: var(--color-surface-2);
    color: var(--color-text-secondary);
}

/* Cards */
.card {
    background: linear-gradient(180deg, var(--color-surface) 0%, rgba(255, 255, 255, 0.98) 100%);
    border: 1px solid var(--color-border);
    border-radius: var(--card-border-radius);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);
    transition: all var(--transition-base);
    display: flex;
    flex-direction: column;
    position: relative;
    overflow: hidden;
}

.card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--color-brand) 0%, var(--color-brand-light) 100%);
    opacity: 0;
    transition: opacity var(--transition-base);
}

.card:hover {
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12), 0 4px 8px rgba(0, 0, 0, 0.08);
    transform: translateY(-4px);
    border-color: rgba(103, 78, 153, 0.3);
}

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

.card a {
    text-decoration: none;
    color: inherit;
}

.card-padding-sm .card-body {
    padding: var(--card-padding-sm);
}

.card-padding-md .card-body {
    padding: var(--card-padding);
}

.card-padding-lg .card-body {
    padding: var(--card-padding-lg);
}

.card-image {
    width: 100%;
    overflow: hidden;
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
}

.card-image img {
    width: 100%;
    height: auto;
    display: block;
}

.card-title {
    font-size: var(--text-lg);
    font-weight: var(--font-weight-semibold);
    margin-bottom: var(--spacing-2);
    color: var(--color-text);
}

.card-subtitle {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-3);
}

.card-content {
    color: var(--color-text-secondary);
    font-size: var(--text-sm);
    line-height: var(--line-height-relaxed);
}

.card-footer {
    padding: var(--spacing-3) var(--card-padding);
    border-top: 1px solid var(--color-border);
    margin-top: auto;
}

.card-metric {
    text-align: center;
}

.card-metric .card-title {
    font-size: var(--text-2xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    margin-bottom: var(--spacing-1);
}

.card-metric .card-subtitle {
    font-size: var(--text-xs);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-muted);
}

.card-quote-stat {
    background-color: var(--color-surface-2);
}
a.card.card-padding-md:hover {
    text-decoration: none;
}
/* Tables */
.table-wrapper {
    margin-bottom: var(--spacing-6);
}

.table-responsive {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--text-sm);
}

.table thead {
    background-color: var(--color-surface-2);
}

.table th {
    padding: var(--spacing-3) var(--spacing-4);
    text-align: left;
    font-weight: var(--font-weight-semibold);
    font-size: var(--text-xs);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-secondary);
    border-bottom: 2px solid var(--color-border);
}

.table td {
    padding: var(--spacing-3) var(--spacing-4);
    border-bottom: 1px solid var(--color-border);
    color: var(--color-text);
}

.table tbody tr:hover {
    background-color: var(--color-surface-2);
}

.table-sticky thead {
    position: sticky;
    top: 64px; /* Header height */
    z-index: 10;
}

/* Pagination */
.pagination {
    display: flex;
    justify-content: center;
    margin: var(--spacing-8) 0;
}

.pagination-list {
    display: flex;
    align-items: center;
    gap: var(--spacing-1);
    list-style: none;
    padding: 0;
    margin: 0;
}

.pagination-item {
    display: flex;
}

.pagination-link {
    display: flex;
    align-items: center;
    gap: var(--spacing-1);
    padding: var(--spacing-2) var(--spacing-3);
    color: var(--color-text-secondary);
    text-decoration: none;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    transition: all var(--transition-fast);
    min-width: 40px;
    justify-content: center;
}

.pagination-link:hover {
    color: var(--color-brand);
    border-color: var(--color-brand);
    background-color: rgba(103, 78, 153, 0.05);
    text-decoration: none;
}

.pagination-link-active {
    background-color: var(--color-brand);
    color: white;
    border-color: var(--color-brand);
    font-weight: var(--font-weight-semibold);
}

.pagination-ellipsis {
    padding: var(--spacing-2) var(--spacing-1);
    color: var(--color-text-muted);
}

.pagination-link-prev,
.pagination-link-next {
    min-width: auto;
    padding: var(--spacing-2) var(--spacing-4);
}

/* Key Takeaways */
.key-takeaways {
    background-color: var(--color-surface-2);
    border-left: 4px solid var(--color-brand);
    border-radius: var(--radius-md);
    padding: var(--spacing-4);
    margin: var(--spacing-6) 0;
}

.key-takeaways-title {
    font-size: var(--text-lg);
    font-weight: var(--font-weight-semibold);
    margin-bottom: var(--spacing-3);
    color: var(--color-text);
}

.key-takeaways-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.key-takeaways-item {
    padding: var(--spacing-2) 0;
    padding-left: var(--spacing-5);
    position: relative;
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
}

.key-takeaways-item::before {
    content: '•';
    position: absolute;
    left: var(--spacing-2);
    color: var(--color-brand);
    font-weight: var(--font-weight-bold);
    font-size: var(--text-lg);
}

/* Skeleton Loaders */
.skeleton-loader {
    animation: skeleton-loading 1.5s ease-in-out infinite;
}

@keyframes skeleton-loading {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}

.skeleton-line {
    height: 12px;
    background: linear-gradient(90deg, var(--color-surface-2) 25%, var(--color-surface-3) 50%, var(--color-surface-2) 75%);
    background-size: 200% 100%;
    animation: skeleton-shimmer 1.5s infinite;
    border-radius: var(--radius-sm);
    margin-bottom: var(--spacing-2);
}

@keyframes skeleton-shimmer {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

.skeleton-title {
    height: 20px;
    width: 60%;
    margin-bottom: var(--spacing-3);
}

.skeleton-card {
    padding: var(--spacing-4);
    background-color: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
}

.skeleton-table-row {
    display: flex;
    gap: var(--spacing-4);
    padding: var(--spacing-3) 0;
    border-bottom: 1px solid var(--color-border);
}

.skeleton-list-item {
    padding: var(--spacing-2) 0;
}

/* Alert Banners */
.alert-dismissible {
    position: relative;
    padding-right: var(--spacing-10);
}

.alert-close {
    position: absolute;
    top: var(--spacing-2);
    right: var(--spacing-2);
    background: none;
    border: none;
    color: inherit;
    cursor: pointer;
    padding: var(--spacing-1);
    opacity: 0.6;
    transition: opacity var(--transition-fast);
}

.alert-close:hover {
    opacity: 1;
}

.alert-message {
    display: inline-block;
}

.alert-disclaimer {
    background-color: rgba(245, 158, 11, 0.1);
    border-color: var(--color-warning);
    color: var(--color-warning-dark);
}

/* Form Components */
.search-input-form {
    position: relative;
}

.search-input-wrapper {
    position: relative;
    display: flex;
    align-items: center;
}

.search-input {
    width: 100%;
    height: var(--input-height-md);
    padding: 0 var(--spacing-10) 0 var(--spacing-4);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    background-color: var(--color-surface);
    transition: all var(--transition-fast);
}

.search-input:focus {
    outline: none;
    border-color: var(--color-brand);
    box-shadow: 0 0 0 3px rgba(103, 78, 153, 0.1);
}

.search-input-button {
    position: absolute;
    right: var(--spacing-1);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border: none;
    background: transparent;
    color: var(--color-text-muted);
    cursor: pointer;
    border-radius: var(--radius-sm);
    transition: all var(--transition-fast);
}

.search-input-button:hover {
    background-color: var(--color-surface-2);
    color: var(--color-text);
}

.select-filter {
    width: 100%;
    height: var(--input-height-md);
    padding: 0 var(--spacing-4);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    background-color: var(--color-surface);
    color: var(--color-text);
    cursor: pointer;
    transition: all var(--transition-fast);
}

.select-filter:focus {
    outline: none;
    border-color: var(--color-brand);
    box-shadow: 0 0 0 3px rgba(103, 78, 153, 0.1);
}

.select-filter-label {
    display: block;
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-text);
    margin-bottom: var(--spacing-2);
}

/* ============================================
   HOMEPAGE STYLES
   ============================================ */

/* Hero Section */
.home-hero {
    position: relative;
    padding: var(--spacing-20) 0 var(--spacing-16);
    background: 
        linear-gradient(135deg, 
            var(--color-surface) 0%, 
            rgba(103, 78, 153, 0.03) 25%,
            var(--color-surface-2) 50%,
            rgba(147, 51, 234, 0.02) 75%,
            var(--color-surface) 100%
        ),
        url('/public/assets/img/hero-bg.png');
    background-size: 400% 400%, cover;
    background-position: 0% 50%, center;
    background-repeat: no-repeat, no-repeat;
    animation: home-hero-gradient 20s ease infinite;
    overflow: hidden;
    box-shadow: 
        inset 0 -2px 30px rgba(103, 78, 153, 0.08),
        0 4px 40px rgba(0, 0, 0, 0.02);
}

@keyframes home-hero-gradient {
    0%, 100% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
}

.home-hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: 
        radial-gradient(ellipse at top left, rgba(103, 78, 153, 0.08) 0%, transparent 50%),
        radial-gradient(ellipse at top right, rgba(147, 51, 234, 0.06) 0%, transparent 50%),
        radial-gradient(ellipse at bottom center, rgba(59, 130, 246, 0.04) 0%, transparent 60%),
        linear-gradient(180deg, 
            rgba(255, 255, 255, 0.1) 0%, 
            transparent 30%,
            transparent 70%,
            rgba(0, 0, 0, 0.02) 100%
        );
    pointer-events: none;
    z-index: 1;
    animation: home-hero-overlay 15s ease-in-out infinite;
}

@keyframes home-hero-overlay {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: 0.85;
    }
}

/* Background decorative elements */
.home-hero-bg-elements {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    pointer-events: none;
    z-index: 1;
    overflow: hidden;
}

.home-hero-shape {
    position: absolute;
    border-radius: 50%;
    background: rgba(103, 78, 153, 0.06);
    filter: blur(60px);
    animation: home-hero-float 25s ease-in-out infinite;
}

.home-hero-shape-1 {
    width: 400px;
    height: 400px;
    top: -150px;
    left: 5%;
    animation-delay: 0s;
    animation-duration: 30s;
}

.home-hero-shape-2 {
    width: 300px;
    height: 300px;
    top: 40%;
    right: 10%;
    animation-delay: -8s;
    animation-duration: 25s;
}

.home-hero-shape-3 {
    width: 350px;
    height: 350px;
    bottom: -100px;
    left: 55%;
    animation-delay: -15s;
    animation-duration: 35s;
}

.home-hero-shape-4 {
    width: 250px;
    height: 250px;
    top: 25%;
    right: 35%;
    animation-delay: -20s;
    animation-duration: 28s;
}

@keyframes home-hero-float {
    0%, 100% {
        transform: translate(0, 0) scale(1);
    }
    25% {
        transform: translate(40px, -40px) scale(1.1);
    }
    50% {
        transform: translate(-30px, 30px) scale(0.9);
    }
    75% {
        transform: translate(30px, 40px) scale(1.05);
    }
}

.home-hero-pattern {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: 
        radial-gradient(circle at 3px 3px, rgba(103, 78, 153, 0.08) 1.5px, transparent 0);
    background-size: 50px 50px;
    opacity: 0.4;
    animation: home-hero-pattern-move 25s linear infinite;
}

@keyframes home-hero-pattern-move {
    0% {
        background-position: 0 0;
    }
    100% {
        background-position: 50px 50px;
    }
}

.home-hero-layout {
    position: relative;
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--spacing-12);
    align-items: center;
    z-index: 2;
}

@media (min-width: 1024px) {
    .home-hero-layout {
        grid-template-columns: 1.2fr 1fr;
    }
}

.home-hero-title-wrapper {
    position: relative;
    display: inline-block;
    margin-bottom: var(--spacing-5);
}

.home-hero-title {
    font-size: clamp(2.5rem, 6vw, 4rem);
    font-weight: var(--font-weight-extrabold);
    line-height: 1.15;
    margin: 0;
    color: var(--color-text);
    display: flex;
    flex-direction: column;
    gap: var(--spacing-2);
    filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.05));
    animation: home-hero-title-entrance 1s ease-out;
    padding-bottom: 0.1em;
}

@keyframes home-hero-title-entrance {
    0% {
        opacity: 0;
        transform: translateY(20px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

.title-line-1 {
    display: inline-block;
    position: relative;
    color: #333;
    line-height: 1.2;
    padding-bottom: 0.05em;
}

.title-line-2 {
    display: inline-block;
    position: relative;
    color: #674E99;
    line-height: 1.2;
    padding-bottom: 0.05em;
    background: linear-gradient(135deg, 
        #674E99 0%, 
        #9333EA 50%,
        #674E99 100%
    );
    background-size: 200% 100%;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    animation: home-hero-text-shimmer 4s ease-in-out infinite;
}

@keyframes home-hero-text-shimmer {
    0%, 100% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
}

.home-hero-title-accent {
    position: absolute;
    bottom: -12px;
    left: 0;
    width: 140px;
    height: 5px;
    background: linear-gradient(90deg, 
        var(--color-brand) 0%, 
        rgba(147, 51, 234, 0.8) 50%,
        transparent 100%
    );
    border-radius: var(--radius-full);
    box-shadow: 
        0 0 12px rgba(103, 78, 153, 0.4),
        0 0 24px rgba(147, 51, 234, 0.2);
    animation: home-hero-accent-glow 2.5s ease-in-out infinite;
}

@keyframes home-hero-accent-glow {
    0%, 100% {
        opacity: 0.8;
        transform: scaleX(1);
    }
    50% {
        opacity: 1;
        transform: scaleX(1.15);
    }
}

.home-hero-subtitle {
    font-size: var(--text-lg);
    line-height: var(--line-height-relaxed);
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-6);
    max-width: 60ch;
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-2);
    animation: home-hero-subtitle-entrance 1.2s ease-out;
}

@keyframes home-hero-subtitle-entrance {
    0% {
        opacity: 0;
        transform: translateY(15px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

.home-hero-icon {
    font-size: var(--text-xl);
    color: var(--color-brand);
    margin-top: 2px;
    animation: home-hero-icon-pulse 2s ease-in-out infinite;
    filter: drop-shadow(0 2px 4px rgba(103, 78, 153, 0.2));
}

@keyframes home-hero-icon-pulse {
    0%, 100% {
        transform: scale(1);
        opacity: 1;
    }
    50% {
        transform: scale(1.1);
        opacity: 0.9;
    }
}

.home-hero-proof {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-2);
    margin-bottom: var(--spacing-8);
    animation: home-hero-proof-entrance 1.4s ease-out;
}

@keyframes home-hero-proof-entrance {
    0% {
        opacity: 0;
        transform: translateY(10px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

.home-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-3);
    margin-bottom: var(--spacing-4);
    animation: home-hero-actions-entrance 1.6s ease-out;
}

@keyframes home-hero-actions-entrance {
    0% {
        opacity: 0;
        transform: translateY(10px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

.home-hero-disclaimer {
    color: var(--color-text-muted);
    font-size: var(--text-xs);
    margin: 0;
    animation: home-hero-disclaimer-entrance 1.8s ease-out;
}

@keyframes home-hero-disclaimer-entrance {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}

/* Hero Preview Card / Market Context Panel Container */
.home-hero-preview {
    display: none;
    position: relative;
    z-index: 2;
    animation: home-hero-preview-entrance 1.8s ease-out;
    background-color:#FFF;
    padding:10px;
    border-radius:10px;
}

@keyframes home-hero-preview-entrance {
    0% {
        opacity: 0;
        transform: translateX(30px);
    }
    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

@media (min-width: 1024px) {
    .home-hero-preview {
        display: flex;
        align-items: center;
        justify-content: flex-end;
    }
}

.home-hero-image {
    width: 100%;
    max-width: 560px;
    height: auto;
    object-fit: contain;
    border-radius: var(--radius-xl);
    box-shadow: 0 20px 48px rgba(0, 0, 0, 0.12), 0 8px 16px rgba(103, 78, 153, 0.08);
}

.home-hero-preview-card {
    background-color: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-3);
    overflow: hidden;
}

.home-hero-preview-header {
    padding: var(--spacing-3) var(--spacing-4);
    border-bottom: 1px solid var(--color-border);
    background-color: var(--color-surface-2);
}

.home-hero-preview-content {
    padding: var(--spacing-4);
}

.home-hero-preview-ticker {
    margin-bottom: var(--spacing-4);
}

.home-hero-preview-label {
    font-family: var(--font-mono);
    font-weight: var(--font-weight-semibold);
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-1);
}

.home-hero-preview-price {
    font-size: var(--text-2xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    margin-bottom: var(--spacing-1);
}

.home-hero-preview-change {
    font-size: var(--text-sm);
    font-weight: var(--font-weight-semibold);
}

.home-hero-preview-change.negative {
    color: var(--color-danger);
}

.home-hero-preview-change.positive {
    color: var(--color-success);
}

/* ============================================
   MARKET CONTEXT PANEL (Editorial, Horizontal)
   ============================================ */
.market-context-panel {
    display: flex;
    flex-direction: row;
    gap: var(--spacing-8);
    align-items: center;
    padding: var(--spacing-6);
    background: linear-gradient(180deg, var(--color-surface) 0%, rgba(255, 255, 255, 0.98) 100%);
    border: 1px solid var(--color-border);
    border-radius: var(--card-border-radius);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);
    transition: all var(--transition-base);
    position: relative;
    overflow: hidden;
    height: auto;
}

.market-context-panel--pulse-only {
    gap: var(--spacing-5);
}

.market-context-panel--pulse-only .market-context-pulse {
    flex: 1 1 auto;
}

.market-context-panel--pulse-only .market-context-signals {
    display: none;
}

.market-context-panel-age {
    position: absolute;
    top: var(--spacing-3);
    right: var(--spacing-3);
    font-size: var(--text-xs);
    color: var(--color-text-tertiary);
    font-weight: var(--font-weight-semibold);
    padding: 6px 10px;
    border-radius: 999px;
    background: linear-gradient(135deg, rgba(2, 26, 56, 0.04) 0%, rgba(2, 26, 56, 0.02) 100%);
    border: 1px solid var(--color-border-light);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
    z-index: 3;
    pointer-events: none;
}

.market-context-panel::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--color-brand) 0%, var(--color-brand-light) 100%);
    opacity: 0;
    transition: opacity var(--transition-base);
}

.market-context-panel:hover {
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12), 0 4px 8px rgba(0, 0, 0, 0.08);
    transform: translateY(-2px);
    border-color: rgba(103, 78, 153, 0.3);
}

.market-context-panel:hover::before {
    opacity: 1;
}

/* Left: Market Pulse (40%) */
.market-context-pulse {
    flex: 0 0 40%;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-3);
    position: relative;
}

.market-context-pulse-label {
    font-size: var(--text-xs);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.2em;
    margin: 0;
    line-height: 1.2;
    position: relative;
    padding-left: var(--spacing-3);
}

.market-context-pulse-label::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 3px;
    height: 12px;
    background: linear-gradient(180deg, var(--color-brand) 0%, rgba(103, 78, 153, 0.6) 100%);
    border-radius: var(--radius-full);
}

.market-context-pulse-headline {
    margin: 0;
    color: var(--color-text);
    font-size: var(--text-lg);
    font-weight: var(--font-weight-bold);
    letter-spacing: -0.02em;
    line-height: var(--line-height-tight);
}

.market-context-pulse-headline-state {
    display: inline-block;
    background: linear-gradient(135deg, var(--color-brand) 0%, rgba(103, 78, 153, 0.75) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* Gauge (homepage Market Pulse) */
.market-context-pulse-gauge {
    --gauge-size: 240px;
    --gauge-thickness: 14px;
    --gauge-inner-gap: 16px;
    --gauge-surface: color-mix(in srgb, var(--color-surface) 86%, rgba(255, 255, 255, 1));
    --gauge-border: color-mix(in srgb, var(--color-border) 70%, rgba(103, 78, 153, 0.18));
    --gauge-shadow: 0 10px 24px rgba(0, 0, 0, 0.10), 0 2px 8px rgba(0, 0, 0, 0.06);
    display: grid;
    gap: var(--spacing-3);
    padding: var(--spacing-4);
    border: 1px solid var(--gauge-border);
    border-radius: var(--radius-xl);
    background: linear-gradient(180deg, var(--gauge-surface) 0%, rgba(255, 255, 255, 0.96) 100%);
    box-shadow: var(--gauge-shadow);
    position: relative;
    overflow: hidden;
}

.market-context-pulse-gauge::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 20% 10%, rgba(103, 78, 153, 0.10) 0%, transparent 55%),
                radial-gradient(circle at 80% 40%, rgba(34, 197, 94, 0.08) 0%, transparent 58%);
    opacity: 0.9;
    pointer-events: none;
}

.pulse-gauge-wrap {
    width: min(100%, var(--gauge-size));
    height: calc(min(100%, var(--gauge-size)) / 2);
    margin: 0 auto;
    position: relative;
    overflow: hidden;
    z-index: 1;
}

/* Full circle lives below the fold; we only show the top half via overflow hidden */
.pulse-gauge-ring {
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: min(100%, var(--gauge-size));
    height: min(100%, var(--gauge-size));
    border-radius: 999px;
    background:
        conic-gradient(
            from 180deg,
            rgba(239, 68, 68, 0.85) 0deg,
            rgba(245, 158, 11, 0.70) 42deg,
            rgba(148, 163, 184, 0.55) 90deg,
            rgba(34, 197, 94, 0.75) 138deg,
            rgba(16, 185, 129, 0.85) 180deg
        );
    box-shadow: inset 0 0 0 1px rgba(2, 26, 56, 0.08);
    filter: saturate(0.9);
}

/* Track overlay (muted) */
.pulse-gauge-ring::after {
    content: '';
    position: absolute;
    inset: calc(var(--gauge-inner-gap) - 2px);
    border-radius: 999px;
    background:
        conic-gradient(
            from 180deg,
            rgba(2, 26, 56, 0.18) 0deg,
            rgba(2, 26, 56, 0.14) 180deg,
            rgba(2, 26, 56, 0.18) 360deg
        );
    mask: radial-gradient(circle, transparent calc(100% - var(--gauge-thickness)), #000 calc(100% - var(--gauge-thickness) + 1px));
    -webkit-mask: radial-gradient(circle, transparent calc(100% - var(--gauge-thickness)), #000 calc(100% - var(--gauge-thickness) + 1px));
    opacity: 0.35;
}

/* Inner cutout (keeps it light / non-black) */
.pulse-gauge-inner {
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: calc(min(100%, var(--gauge-size)) - (var(--gauge-inner-gap) * 2));
    height: calc(min(100%, var(--gauge-size)) - (var(--gauge-inner-gap) * 2));
    border-radius: 999px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, var(--color-surface) 100%);
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.06);
}

/* Dotted inner arc (visual detail like the reference gauge) */
.pulse-gauge-dots {
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: calc(min(100%, var(--gauge-size)) - (var(--gauge-inner-gap) * 1.4));
    height: calc(min(100%, var(--gauge-size)) - (var(--gauge-inner-gap) * 1.4));
    border-radius: 999px;
    background:
        repeating-conic-gradient(
            from 180deg,
            rgba(103, 78, 153, 0.55) 0deg 3deg,
            transparent 3deg 9deg
        );
    mask: radial-gradient(circle, transparent calc(100% - 10px), #000 calc(100% - 10px + 1px));
    -webkit-mask: radial-gradient(circle, transparent calc(100% - 10px), #000 calc(100% - 10px + 1px));
    opacity: 0.55;
    pointer-events: none;
    filter: saturate(0.9);
}

/* Needle */
.pulse-gauge-needle {
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    z-index: 3;
}

.pulse-gauge-needle-line {
    position: absolute;
    left: 0;
    bottom: 10px;
    width: 2px;
    height: calc((min(100%, var(--gauge-size)) / 2) - 26px);
    background: linear-gradient(180deg, rgba(2, 26, 56, 0.92) 0%, rgba(2, 26, 56, 0.60) 100%);
    border-radius: 2px;
    transform-origin: bottom center;
    transform: rotate(var(--pulse-needle-deg, 0deg));
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.20);
}

.pulse-gauge-needle-cap {
    position: absolute;
    left: 0;
    bottom: 2px;
    width: 20px;
    height: 20px;
    transform: translateX(-50%);
    border-radius: 999px;
    background: radial-gradient(circle at 30% 30%, rgba(255, 255, 255, 0.95) 0%, rgba(255, 255, 255, 0.6) 32%, rgba(2, 26, 56, 0.18) 100%);
    border: 1px solid rgba(2, 26, 56, 0.16);
    box-shadow: 0 6px 14px rgba(0, 0, 0, 0.16);
}

.pulse-gauge-center {
    position: relative;
    z-index: 2;
    text-align: center;
    margin-top: calc(-1 * var(--spacing-1));
}

.pulse-gauge-center-label {
    font-size: var(--text-xl);
    font-weight: var(--font-weight-bold);
    letter-spacing: -0.02em;
    color: var(--color-text);
}

.pulse-gauge-center-timestamp {
    margin-top: var(--spacing-1);
    font-size: var(--text-xs);
    color: var(--color-text-tertiary);
}

.pulse-gauge-scale {
    position: relative;
    z-index: 2;
    display: flex;
    justify-content: space-between;
    gap: var(--spacing-2);
    font-size: var(--text-xs);
    color: var(--color-text-secondary);
    font-weight: var(--font-weight-semibold);
}

.pulse-gauge-scale-mid {
    opacity: 0.8;
}

@media (max-width: 420px) {
    .market-context-pulse-gauge {
        --gauge-size: 210px;
        padding: var(--spacing-3);
    }
    .market-context-pulse-headline {
        font-size: var(--text-base);
    }
}

.market-context-pulse-status {
    margin: 0;
    position: relative;
}

.market-context-pulse-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2);
    padding: var(--spacing-2) var(--spacing-4);
    border-radius: var(--radius-md);
    font-size: var(--text-base);
    font-weight: var(--font-weight-bold);
    letter-spacing: 0.03em;
    border: 1px solid rgba(0, 0, 0, 0.08);
    box-shadow: 
        0 2px 6px rgba(0, 0, 0, 0.08),
        inset 0 1px 2px rgba(255, 255, 255, 0.4),
        inset 0 -1px 2px rgba(0, 0, 0, 0.05);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}

.market-context-pulse-badge::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, 
        transparent 0%, 
        rgba(255, 255, 255, 0.4) 50%, 
        transparent 100%);
    transition: left 0.6s ease;
}

.market-context-pulse-badge:hover {
    transform: translateY(-1px);
    box-shadow: 
        0 4px 12px rgba(0, 0, 0, 0.12),
        inset 0 1px 2px rgba(255, 255, 255, 0.5),
        inset 0 -1px 2px rgba(0, 0, 0, 0.08);
}

.market-context-pulse-badge:hover::before {
    left: 100%;
}

.market-context-pulse-badge::after {
    content: '●';
    font-size: var(--text-xs);
    line-height: 1;
    animation: pulse-indicator 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
    opacity: 0.8;
}

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

.market-context-pulse-explanation {
    font-size: var(--text-sm);
    line-height: var(--line-height-relaxed);
    color: var(--color-text);
    margin: var(--spacing-1) 0 0 0;
    padding: var(--spacing-3) 0;
    background: transparent;
    border: none;
    box-shadow: none;
    position: relative;
    padding-left: var(--spacing-4);
}

.market-context-pulse-explanation::before {
    content: '';
    position: absolute;
    left: 0;
    top: var(--spacing-3);
    bottom: var(--spacing-3);
    width: 2px;
    background: linear-gradient(180deg, 
        var(--color-border) 0%, 
        transparent 100%);
    opacity: 0.3;
}

.market-context-pulse-explanation:hover {
    background: transparent;
    border: none;
}

.market-context-pulse-timestamp {
    font-size: var(--text-xs);
    color: var(--color-text-tertiary);
    font-weight: var(--font-weight-medium);
    margin-top: var(--spacing-1);
    padding: var(--spacing-1) var(--spacing-2);
    background: linear-gradient(135deg, 
        rgba(0, 0, 0, 0.02) 0%, 
        rgba(0, 0, 0, 0.01) 100%);
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-sm);
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.02);
    width: fit-content;
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-1);
    transition: all 0.2s ease;
}

.market-context-pulse-timestamp::before {
    content: '🕐';
    font-size: var(--text-xs);
    opacity: 0.6;
    line-height: 1;
}

.market-context-pulse-timestamp:hover {
    background: linear-gradient(135deg, 
        rgba(0, 0, 0, 0.04) 0%, 
        rgba(0, 0, 0, 0.02) 100%);
    border-color: var(--color-border);
}

/* Right: Signal Distribution (60%) */
.market-context-signals {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.market-context-signals-list {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-3);
}

.market-context-signal-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-3);
    padding: 0;
    transition: none;
}

.market-context-signal-item:hover {
    transform: none;
}

.market-context-signal-label {
    font-size: var(--text-xs);
    color: var(--color-text-secondary);
    font-weight: var(--font-weight-normal);
    min-width: 120px;
    flex-shrink: 0;
    letter-spacing: 0.01em;
    text-align: left;
}

.market-context-signal-bar-container {
    flex: 1;
    height: 4px;
    background: var(--color-surface-2);
    border-radius: var(--radius-full);
    overflow: hidden;
    position: relative;
    box-shadow: none;
    border: none;
}

.market-context-signal-bar {
    height: 100%;
    border-radius: var(--radius-full);
    transition: width 0.8s cubic-bezier(0.4, 0, 0.2, 1);
    min-width: 1px;
    position: relative;
    box-shadow: none;
    opacity: 0.6;
}

.market-context-signal-bar::after {
    display: none;
}

.market-context-signal-item:hover .market-context-signal-bar {
    box-shadow: none;
    transform: none;
    opacity: 0.8;
}

/* Muted color overrides for signal bars */
.market-context-signal-bar[data-signal="BULLISH"] {
    background-color: rgba(34, 197, 94, 0.4) !important;
}

.market-context-signal-bar[data-signal="BEARISH"] {
    background-color: rgba(239, 68, 68, 0.4) !important;
}

.market-context-signal-bar[data-signal="NEUTRAL"] {
    background-color: rgba(156, 163, 175, 0.4) !important;
}

.market-context-signal-bar[data-signal="MIXED"] {
    background-color: rgba(245, 158, 11, 0.4) !important;
}

.market-context-signal-bar[data-signal="HIGH_RISK"] {
    background-color: rgba(251, 113, 133, 0.4) !important;
}

/* Mobile adjustments */
@media (max-width: 1023px) {
    .market-context-panel {
        flex-direction: column;
        gap: var(--spacing-6);
        align-items: stretch;
    }
    
    .market-context-pulse {
        flex: 1;
    }
    
    .market-context-signals {
        flex: 1;
    }
}

@media (max-width: 767px) {
    .market-context-panel {
        padding: var(--spacing-4) 0;
        gap: var(--spacing-5);
    }
    
    .market-context-pulse {
        gap: var(--spacing-2);
    }
    
    .market-context-pulse-badge {
        font-size: var(--text-sm);
        padding: var(--spacing-1) var(--spacing-2);
    }
    
    .market-context-pulse-explanation {
        font-size: var(--text-xs);
    }
    
    .market-context-signals-list {
        gap: var(--spacing-2);
    }
    
    .market-context-signal-item {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--spacing-2);
    }
    
    .market-context-signal-label {
        min-width: auto;
    }
    
    .market-context-signal-bar-container {
        width: 100%;
    }
}

/* Mobile adjustments for Market Context Panel */
@media (max-width: 767px) {
    .market-context-panel {
        padding: var(--spacing-4);
        gap: var(--spacing-4);
    }
    
    .market-context-panel:hover {
        transform: none;
    }
    
    .market-context-section:not(:last-of-type) {
        padding-bottom: var(--spacing-4);
    }
    
    .signal-distribution-item {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--spacing-2);
    }
    
    .signal-distribution-item:hover {
        transform: none;
    }
    
    .signal-distribution-label {
        min-width: auto;
    }
    
    .signal-distribution-bar-container {
        width: 100%;
    }
    
    .market-pulse-badge {
        padding: var(--spacing-2) var(--spacing-4);
        font-size: var(--text-xs);
    }
    
    .market-insight-text {
        padding: var(--spacing-3);
        font-size: var(--text-xs);
    }
}

.mini-chart-bars {
    display: flex;
    align-items: flex-end;
    gap: var(--spacing-1);
    height: 60px;
}

.chart-bar {
    flex: 1;
    background-color: var(--color-brand);
    border-radius: var(--radius-sm) var(--radius-sm) 0 0;
    min-height: 20%;
}

/* Section Headers */
.home-section-header {
    text-align: center;
    margin-bottom: var(--spacing-12);
}

.home-section-title {
    font-size: clamp(var(--text-2xl), 4vw, var(--text-4xl));
    font-weight: var(--font-weight-bold);
    margin-bottom: var(--spacing-3);
    color: var(--color-text);
}

/* Section title accent for dynamic sections (after Features) */
.home-workflows .home-section-title,
.home-how-it-works .home-section-title,
.home-testimonials .home-section-title,
.home-pricing .home-section-title,
.home-faq .home-section-title {
    position: relative;
    display: inline-block;
    letter-spacing: -0.02em;
}

.home-workflows .home-section-header,
.home-how-it-works .home-section-header,
.home-testimonials .home-section-header,
.home-pricing .home-section-header,
.home-faq .home-section-header {
    position: relative;
}

.home-workflows .home-section-title::after,
.home-how-it-works .home-section-title::after,
.home-testimonials .home-section-title::after,
.home-pricing .home-section-title::after,
.home-faq .home-section-title::after {
    content: '';
    display: block;
    width: 48px;
    height: 4px;
    margin: var(--spacing-3) auto 0;
    background: linear-gradient(90deg, var(--color-brand), rgba(103, 78, 153, 0.5));
    border-radius: 2px;
}

.home-section-subtitle {
    font-size: var(--text-lg);
    color: var(--color-text-secondary);
    max-width: 60ch;
    margin: 0 auto;
}

/* Features Grid */
.home-features-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: var(--spacing-6);
}

.feature-icon {
    font-size: var(--text-4xl);
    color: var(--color-brand);
    margin-bottom: var(--spacing-4);
    text-align:center;
}

.feature-icon i {
    display: block;
}

/* Strategies Grid (legacy) */
.home-strategies-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--spacing-6);
}

@media (min-width: 768px) {
    .home-strategies-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* Workflows section – dynamic */
.home-workflows.section {
    background: linear-gradient(180deg, var(--color-surface-2) 0%, rgba(249, 250, 251, 0.5) 100%);
    position: relative;
}

.home-workflows.section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(103, 78, 153, 0.2), transparent);
    opacity: 0.6;
}

.home-workflows-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--spacing-6);
}

@media (min-width: 768px) {
    .home-workflows-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 992px) {
    .home-workflows-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

.home-workflows-grid .card {
    border-radius: var(--radius-xl);
    border: 1px solid rgba(103, 78, 153, 0.12);
    background: linear-gradient(165deg, #ffffff 0%, rgba(255, 255, 255, 0.97) 100%);
    box-shadow: 0 4px 12px rgba(103, 78, 153, 0.06), 0 1px 3px rgba(0, 0, 0, 0.04);
    overflow: hidden;
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.2s ease;
}

.home-workflows-grid .card::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: linear-gradient(180deg, var(--color-brand), rgba(103, 78, 153, 0.6));
    border-radius: 4px 0 0 4px;
    opacity: 0;
    transition: opacity 0.2s ease;
}

.home-workflows-grid .card {
    position: relative;
}

.home-workflows-grid .card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 28px rgba(103, 78, 153, 0.12), 0 4px 12px rgba(0, 0, 0, 0.06);
    border-color: rgba(103, 78, 153, 0.2);
}

.home-workflows-grid .card:hover::before {
    opacity: 1;
}

.home-workflows-grid .card-title {
    font-weight: var(--font-weight-bold);
    letter-spacing: -0.02em;
}

.workflow-description {
    font-size: var(--text-base);
    line-height: var(--line-height-relaxed);
    color: var(--color-text-secondary);
    margin: 0 0 var(--spacing-4);
}

.home-section-disclaimer {
    margin-top: var(--spacing-6);
    text-align: center;
    color: var(--color-text-muted);
    font-size: var(--text-sm);
}

/* Quick nav (Markets / News / Academy / Reports) */
.home-quick-nav {
    padding: var(--spacing-8) 0;
    background: linear-gradient(180deg, rgba(103, 78, 153, 0.04) 0%, transparent 50%, rgba(103, 78, 153, 0.04) 100%);
    border-top: 1px solid rgba(103, 78, 153, 0.12);
    border-bottom: 1px solid rgba(103, 78, 153, 0.12);
}

.home-quick-nav-inner {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--spacing-4);
}

.home-quick-nav-link {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-3);
    padding: var(--spacing-4) var(--spacing-6);
    border-radius: var(--radius-xl);
    border: 1px solid rgba(103, 78, 153, 0.18);
    background: linear-gradient(145deg, rgba(255, 255, 255, 0.95) 0%, rgba(249, 250, 251, 0.98) 100%);
    color: var(--color-text);
    font-weight: var(--font-weight-semibold);
    font-size: var(--text-sm);
    text-decoration: none;
    box-shadow: 0 2px 8px rgba(103, 78, 153, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
}

.home-quick-nav-link:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 24px rgba(103, 78, 153, 0.12), 0 4px 8px rgba(0, 0, 0, 0.06);
    border-color: rgba(103, 78, 153, 0.4);
    color: var(--color-brand);
    background: linear-gradient(145deg, #ffffff 0%, rgba(255, 255, 255, 0.98) 100%);
}

.home-quick-nav-link i {
    font-size: 1.25rem;
    color: var(--color-brand);
    opacity: 0.9;
}

.home-quick-nav-link:hover i {
    opacity: 1;
}

.strategy-description {
    font-size: var(--text-base);
    line-height: var(--line-height-relaxed);
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-3);
}

.strategy-note {
    font-size: var(--text-sm);
    color: var(--color-text-tertiary);
    margin: 0;
}

.strategy-note strong {
    color: var(--color-text);
}

/* How It Works / Start here in 60 seconds */
.home-how-it-works.section {
    position: relative;
}

.home-how-it-works .home-section-header {
    margin-bottom: var(--spacing-8);
}

.home-steps {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--spacing-8);
    max-width: 960px;
    margin: 0 auto;
}

@media (min-width: 768px) {
    .home-steps {
        grid-template-columns: repeat(3, 1fr);
        gap: var(--spacing-6);
    }
}

.home-step {
    text-align: center;
    padding: var(--spacing-6);
    border-radius: var(--radius-xl);
    background: linear-gradient(165deg, #ffffff 0%, rgba(255, 255, 255, 0.95) 100%);
    border: 1px solid rgba(103, 78, 153, 0.1);
    box-shadow: 0 4px 16px rgba(103, 78, 153, 0.06);
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.2s ease;
}

.home-step:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 28px rgba(103, 78, 153, 0.1);
    border-color: rgba(103, 78, 153, 0.18);
}

.home-step-number {
    width: 72px;
    height: 72px;
    margin: 0 auto var(--spacing-4);
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(145deg, var(--color-brand) 0%, rgba(74, 58, 120, 0.95) 100%);
    color: white;
    border-radius: var(--radius-full);
    font-size: var(--text-2xl);
    font-weight: var(--font-weight-bold);
    box-shadow: 0 6px 20px rgba(103, 78, 153, 0.35);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.home-step:hover .home-step-number {
    transform: scale(1.05);
    box-shadow: 0 8px 24px rgba(103, 78, 153, 0.4);
}

.home-step-title {
    font-size: var(--text-xl);
    font-weight: var(--font-weight-semibold);
    margin-bottom: var(--spacing-2);
    color: var(--color-text);
}

.home-step-description {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
    margin: 0;
}

.home-step-title a.home-step-link {
    color: var(--color-text);
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: color var(--transition-base), border-color var(--transition-base);
}

.home-step-title a.home-step-link:hover {
    color: var(--color-brand);
    border-bottom-color: var(--color-brand);
}

.home-step-description a {
    color: var(--color-brand);
    text-decoration: none;
}

.home-step-description a:hover {
    text-decoration: underline;
}

.home-steps-academy {
    margin-top: var(--spacing-6);
    text-align: center;
    font-size: var(--text-sm);
}

.home-steps-academy a {
    color: var(--color-brand);
    font-weight: var(--font-weight-medium);
    text-decoration: none;
}

.home-steps-academy a:hover {
    text-decoration: underline;
}

/* Testimonials – dynamic cards */
.home-testimonials.section {
    background: linear-gradient(180deg, transparent 0%, rgba(103, 78, 153, 0.03) 50%, transparent 100%);
}

.home-testimonials-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--spacing-6);
}

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

.home-testimonials-grid .card {
    border-radius: var(--radius-xl);
    border: 1px solid rgba(103, 78, 153, 0.1);
    background: linear-gradient(165deg, #ffffff 0%, rgba(255, 255, 255, 0.98) 100%);
    box-shadow: 0 4px 16px rgba(103, 78, 153, 0.06);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.home-testimonials-grid .card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 32px rgba(103, 78, 153, 0.1);
}

.testimonial-stat {
    font-size: var(--text-2xl);
    font-weight: var(--font-weight-extrabold);
    color: var(--color-brand);
    margin-bottom: var(--spacing-2);
    letter-spacing: -0.02em;
    background: linear-gradient(135deg, var(--color-brand), rgba(103, 78, 153, 0.75));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

@supports not (background-clip: text) {
    .testimonial-stat {
        color: var(--color-brand);
        background: none;
        -webkit-text-fill-color: inherit;
    }
}

.testimonial-label {
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--color-text-muted);
    margin-bottom: var(--spacing-3);
}

.testimonial-quote {
    font-size: var(--text-sm);
    line-height: var(--line-height-relaxed);
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-4);
    font-style: italic;
    border-left: 3px solid rgba(103, 78, 153, 0.25);
    padding-left: var(--spacing-4);
}

.testimonial-author {
    font-size: var(--text-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
    margin-bottom: var(--spacing-1);
}

.testimonial-source {
    font-size: var(--text-xs);
    color: var(--color-text-muted);
}

/* Pricing section – dynamic */
.home-pricing.section {
    background: linear-gradient(180deg, rgba(103, 78, 153, 0.03) 0%, var(--color-surface-2) 30%, var(--color-surface-2) 70%, rgba(103, 78, 153, 0.03) 100%);
    position: relative;
}

.home-pricing.section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(103, 78, 153, 0.15), transparent);
    opacity: 0.8;
}

/* Pricing Grid */
.home-pricing-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--spacing-6);
    max-width: 1100px;
    margin: 0 auto;
}

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

.home-pricing-grid-4 {
    grid-template-columns: 1fr;
    max-width: 1200px;
}

@media (min-width: 576px) {
    .home-pricing-grid-4 {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 992px) {
    .home-pricing-grid-4 {
        grid-template-columns: repeat(4, 1fr);
    }
}

.home-pricing-grid .card {
    border-radius: var(--radius-xl);
    border: 1px solid rgba(103, 78, 153, 0.12);
    background: linear-gradient(165deg, #ffffff 0%, rgba(255, 255, 255, 0.98) 100%);
    box-shadow: 0 4px 16px rgba(103, 78, 153, 0.06);
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.2s ease;
}

.home-pricing-grid .card:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 28px rgba(103, 78, 153, 0.1);
    border-color: rgba(103, 78, 153, 0.2);
}

.pricing-card-popular {
    border: 2px solid var(--color-brand);
    background: linear-gradient(165deg, rgba(255, 255, 255, 1) 0%, rgba(103, 78, 153, 0.04) 100%) !important;
    box-shadow: 0 8px 32px rgba(103, 78, 153, 0.15), 0 0 0 1px rgba(103, 78, 153, 0.1);
    transform: scale(1.02);
}

.pricing-card-popular:hover {
    transform: scale(1.02) translateY(-3px);
    box-shadow: 0 16px 40px rgba(103, 78, 153, 0.18), 0 0 0 1px rgba(103, 78, 153, 0.1);
}

@media (max-width: 767px) {
    .pricing-card-popular {
        transform: none;
    }
    .pricing-card-popular:hover {
        transform: translateY(-3px);
    }
}

.pricing-badge {
    display: inline-block;
    padding: var(--spacing-2) var(--spacing-4);
    background: linear-gradient(135deg, var(--color-brand), rgba(74, 58, 120, 0.9));
    color: white;
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-radius: var(--radius-full);
    margin-bottom: var(--spacing-4);
    box-shadow: 0 2px 8px rgba(103, 78, 153, 0.3);
}

.pricing-price {
    margin-bottom: var(--spacing-2);
}

.pricing-amount {
    font-size: var(--text-3xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
}

.pricing-period {
    font-size: var(--text-base);
    color: var(--color-text-secondary);
}

.pricing-savings {
    font-size: var(--text-sm);
    color: var(--color-success);
    font-weight: var(--font-weight-medium);
    margin-bottom: var(--spacing-4);
}

.pricing-features {
    list-style: none;
    padding: 0;
    margin: 0 0 var(--spacing-4) 0;
}

.pricing-features li {
    padding: var(--spacing-2) 0;
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
}

.pricing-features li i {
    color: var(--color-success);
    font-size: var(--text-base);
}

.pricing-features li.pricing-feature-guarantee {
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.08), rgba(103, 78, 153, 0.04));
    border-radius: var(--radius-md);
    padding: var(--spacing-2) var(--spacing-3);
    margin: var(--spacing-2) 0;
    border-left: 3px solid var(--color-brand);
}

.pricing-features li.pricing-feature-guarantee i {
    color: var(--color-brand);
}

/* =========================================================
   Pricing Page (/pricing/) – dynamic layout
   ========================================================= */
.pricing-page {
    min-height: 100%;
}

.pricing-page-hero {
    position: relative;
    padding: var(--spacing-4) 0 var(--spacing-6);
    overflow: hidden;
}

.pricing-page-hero-bg {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg,
        rgba(103, 78, 153, 0.06) 0%,
        rgba(103, 78, 153, 0.02) 40%,
        transparent 70%);
    pointer-events: none;
}

.pricing-page-hero-bg::before {
    content: '';
    position: absolute;
    top: -20%;
    right: -10%;
    width: 50%;
    max-width: 400px;
    aspect-ratio: 1;
    background: radial-gradient(circle, rgba(103, 78, 153, 0.08) 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
}

.pricing-page-hero-bg::after {
    content: '';
    position: absolute;
    bottom: -15%;
    left: -5%;
    width: 40%;
    max-width: 320px;
    aspect-ratio: 1;
    background: radial-gradient(circle, rgba(103, 78, 153, 0.05) 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
}

.pricing-page-hero-inner {
    position: relative;
    text-align: center;
    padding: var(--spacing-4) 0;
}

.pricing-page-hero-title {
    font-size: clamp(var(--text-3xl), 5vw, var(--text-5xl));
    font-weight: var(--font-weight-bold);
    letter-spacing: -0.03em;
    margin: 0 0 var(--spacing-4);
    background: linear-gradient(135deg, var(--color-text) 0%, rgba(103, 78, 153, 0.9) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    line-height: var(--line-height-tight);
}

.pricing-page-hero-subtitle {
    font-size: var(--text-lg);
    color: var(--color-text-secondary);
    max-width: 42ch;
    margin: 0 auto var(--spacing-5);
    line-height: var(--line-height-relaxed);
}

@media (min-width: 768px) {
    .pricing-page-hero-subtitle {
        font-size: var(--text-xl);
    }
}

.pricing-page-hero-accent {
    width: 80px;
    height: 4px;
    margin: 0 auto;
    background: linear-gradient(90deg, var(--color-brand), var(--color-brand-light));
    border-radius: 2px;
}

.pricing-page-plans-section {
    padding-top: var(--spacing-2);
    padding-bottom: var(--spacing-6);
}

.pricing-page-plans-section .section {
    /* Add breathing room between major sections on /pricing/ */
    padding-top: var(--spacing-10);
    padding-bottom: var(--spacing-10);
}

.pricing-page-plans-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--spacing-6);
    max-width: 1280px;
    margin: 0 auto var(--spacing-10);
}

@media (min-width: 576px) {
    .pricing-page-plans-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 992px) {
    .pricing-page-plans-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

.pricing-page-plans-grid .card {
    border-radius: var(--radius-xl);
    border: 1px solid rgba(103, 78, 153, 0.12);
    background: linear-gradient(165deg, #ffffff 0%, rgba(255, 255, 255, 0.98) 100%);
    box-shadow: 0 4px 16px rgba(103, 78, 153, 0.06);
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.2s ease;
}

.pricing-page-plans-grid .card:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 40px rgba(103, 78, 153, 0.12);
    border-color: rgba(103, 78, 153, 0.2);
}

.pricing-page-section-title {
    font-size: clamp(var(--text-xl), 3vw, var(--text-3xl));
    font-weight: var(--font-weight-bold);
    letter-spacing: -0.02em;
    margin: 0 0 var(--spacing-5);
    text-align: center;
    color: var(--color-text);
}

.pricing-page-comparison {
    margin-bottom: var(--spacing-8);
}

.pricing-page-comparison-card {
    border-radius: var(--radius-xl);
    border: 1px solid rgba(103, 78, 153, 0.18);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.99) 0%, rgba(249, 250, 251, 0.97) 50%, rgba(103, 78, 153, 0.02) 100%);
    box-shadow:
        0 4px 6px rgba(103, 78, 153, 0.04),
        0 12px 32px rgba(103, 78, 153, 0.08),
        0 0 0 1px rgba(103, 78, 153, 0.06) inset;
    overflow: hidden;
    transition: box-shadow 0.3s ease, border-color 0.3s ease;
}

.pricing-page-comparison-card:hover {
    box-shadow:
        0 8px 16px rgba(103, 78, 153, 0.06),
        0 20px 48px rgba(103, 78, 153, 0.1),
        0 0 0 1px rgba(103, 78, 153, 0.08) inset;
    border-color: rgba(103, 78, 153, 0.22);
}

.pricing-page-comparison .table-responsive {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.pricing-page-comparison-table {
    margin: 0;
    border-collapse: separate;
    border-spacing: 0;
}

.pricing-page-comparison-table thead {
    position: sticky;
    top: 0;
    z-index: 2;
    background: linear-gradient(165deg,
        rgba(103, 78, 153, 0.12) 0%,
        rgba(103, 78, 153, 0.06) 50%,
        rgba(103, 78, 153, 0.08) 100%);
    border-bottom: 2px solid rgba(103, 78, 153, 0.2);
    box-shadow: 0 4px 12px rgba(103, 78, 153, 0.06);
}

.pricing-page-comparison-table thead tr {
    border: none;
}

.pricing-page-comparison-table th {
    padding: var(--spacing-4) var(--spacing-5);
    font-weight: var(--font-weight-bold);
    font-size: var(--text-sm);
    text-transform: none;
    letter-spacing: 0.02em;
    color: var(--color-text);
    border: none;
    border-bottom: 2px solid rgba(103, 78, 153, 0.2);
    white-space: nowrap;
}

.pricing-page-comparison-table th:first-child {
    text-align: left;
    color: var(--color-text-secondary);
    font-weight: var(--font-weight-semibold);
}

.pricing-page-comparison-table th:not(:first-child) {
    text-align: center;
    min-width: 100px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.5) 0%, transparent 100%);
}

.pricing-page-comparison-table tbody tr {
    transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
    border-bottom: 1px solid rgba(103, 78, 153, 0.08);
}

.pricing-page-comparison-table tbody tr.pricing-comparison-feature-row:nth-child(even) {
    background: rgba(103, 78, 153, 0.02);
}

.pricing-comparison-section-row {
    border-bottom: none !important;
}

.pricing-comparison-section-header {
    font-weight: var(--font-weight-bold);
    font-size: var(--text-sm);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text);
    background: linear-gradient(90deg, rgba(103, 78, 153, 0.08) 0%, rgba(103, 78, 153, 0.03) 100%) !important;
    padding: var(--spacing-3) var(--spacing-5);
    border-bottom: 1px solid rgba(103, 78, 153, 0.15);
}

.pricing-comparison-section-header:first-child {
    border-radius: 0;
}

/* Alpha column: subtle highlight */
.pricing-page-comparison-table th.plan-alpha,
.pricing-page-comparison-table td.plan-alpha {
    background: linear-gradient(180deg, rgba(103, 78, 153, 0.06) 0%, rgba(103, 78, 153, 0.02) 100%);
}

.pricing-page-comparison-table tbody tr.pricing-comparison-feature-row:hover td.plan-alpha {
    background: linear-gradient(90deg, transparent 0%, rgba(103, 78, 153, 0.05) 100%);
}

/* Most Popular column: light accent */
.pricing-page-comparison-table th.plan-popular,
.pricing-page-comparison-table td.plan-popular {
    background: linear-gradient(180deg, rgba(103, 78, 153, 0.04) 0%, transparent 100%);
}

.pricing-page-comparison-table tbody tr.pricing-comparison-feature-row:hover {
    background: linear-gradient(90deg,
        rgba(103, 78, 153, 0.06) 0%,
        rgba(103, 78, 153, 0.03) 30%,
        transparent 100%);
    box-shadow: 0 2px 12px rgba(103, 78, 153, 0.06);
}

.pricing-page-comparison-table .pricing-cell-included {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-1);
    color: var(--color-success);
    font-weight: var(--font-weight-medium);
    font-size: var(--text-sm);
}

.pricing-page-comparison-table .pricing-cell-included i {
    font-size: 1.1em;
}

.pricing-page-comparison-table .pricing-cell-not-included {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-1);
    color: var(--color-text-tertiary);
    font-size: var(--text-sm);
}

.pricing-page-comparison-table .pricing-cell-not-included i {
    font-size: 1em;
}

.pricing-page-comparison-table .pricing-cell-none {
    color: var(--color-text-tertiary);
    font-size: var(--text-sm);
}

.pricing-page-comparison-table .pricing-cell-guarantee {
    font-size: var(--text-xs);
    font-weight: var(--font-weight-medium);
    color: var(--color-text);
    cursor: help;
}

/* Mobile: show accordion, hide table */
.pricing-comparison-accordion {
    display: none;
}

.pricing-comparison-table-wrap {
    display: block;
}

@media (max-width: 767px) {
    .pricing-comparison-table-wrap {
        display: none;
    }
    .pricing-comparison-accordion {
        display: block;
    }
}

.pricing-comparison-accordion-section {
    border: 1px solid rgba(103, 78, 153, 0.12);
    border-radius: var(--radius-lg);
    margin-bottom: var(--spacing-3);
    overflow: hidden;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(249, 250, 251, 0.95) 100%);
}

.pricing-comparison-accordion-summary {
    font-weight: var(--font-weight-bold);
    font-size: var(--text-sm);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: var(--spacing-4) var(--spacing-5);
    background: linear-gradient(90deg, rgba(103, 78, 153, 0.08) 0%, rgba(103, 78, 153, 0.03) 100%);
    cursor: pointer;
    list-style: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.pricing-comparison-accordion-summary::-webkit-details-marker {
    display: none;
}

.pricing-comparison-accordion-summary::after {
    content: '\25BE';
    font-size: var(--text-lg);
    color: var(--color-brand);
    transition: transform 0.2s ease;
}

.pricing-comparison-accordion-section[open] .pricing-comparison-accordion-summary::after {
    transform: rotate(180deg);
}

.pricing-comparison-accordion-body {
    padding: var(--spacing-2) var(--spacing-4) var(--spacing-4);
}

.pricing-comparison-accordion-feature {
    padding: var(--spacing-3) 0;
    border-bottom: 1px solid rgba(103, 78, 153, 0.08);
}

.pricing-comparison-accordion-feature:last-child {
    border-bottom: none;
}

.pricing-comparison-accordion-feature-name {
    font-weight: var(--font-weight-medium);
    font-size: var(--text-sm);
    color: var(--color-text);
    margin-bottom: var(--spacing-2);
}

.pricing-comparison-accordion-feature-values {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-2);
}

.pricing-comparison-accordion-plan-value {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: var(--text-sm);
    padding: var(--spacing-2) var(--spacing-3);
    background: rgba(103, 78, 153, 0.03);
    border-radius: var(--radius-md);
}

.pricing-comparison-accordion-plan-name {
    font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary);
}

.pricing-comparison-accordion-cell {
    flex-shrink: 0;
}

.pricing-page-comparison-table tbody tr:last-child {
    border-bottom: none;
}

.pricing-page-comparison-table td {
    padding: var(--spacing-4) var(--spacing-5);
    color: var(--color-text);
    border: none;
    border-bottom: 1px solid rgba(103, 78, 153, 0.08);
    vertical-align: middle;
}

.pricing-page-comparison-table tbody tr:last-child td {
    border-bottom: none;
}

.pricing-page-comparison-table td:not(:first-child) {
    text-align: center;
}

.pricing-page-comparison-label {
    font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary);
    font-size: var(--text-sm);
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
}

.pricing-comparison-tooltip-icon {
    color: var(--color-brand);
    font-size: var(--text-sm);
    opacity: 0.6;
    cursor: help;
    transition: opacity 0.2s ease;
}

.pricing-comparison-tooltip-icon:hover {
    opacity: 1;
}

/* Cell value styles */
.pricing-page-comparison-table .pricing-cell-unlimited {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-1);
    padding: var(--spacing-1) var(--spacing-3);
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    color: var(--color-brand);
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.12) 0%, rgba(103, 78, 153, 0.06) 100%);
    border-radius: var(--radius-full);
    border: 1px solid rgba(103, 78, 153, 0.2);
    white-space: nowrap;
}

.pricing-page-comparison-table .pricing-cell-unlimited i {
    font-size: 1em;
    opacity: 0.9;
}

.pricing-page-comparison-table .pricing-cell-checkmark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--color-success, #16a34a);
    font-size: var(--text-lg);
}

.pricing-page-comparison-table .pricing-cell-checkmark i {
    font-size: 1.25em;
}

.pricing-page-comparison-table .pricing-cell-no,
.pricing-page-comparison-table .pricing-cell-dash {
    color: var(--color-text-tertiary);
    font-weight: var(--font-weight-medium);
}

.pricing-page-comparison-table .pricing-cell-value {
    font-weight: var(--font-weight-medium);
    color: var(--color-text);
}

.pricing-page-alpha {
    margin-bottom: var(--spacing-8);
}

.pricing-page-alpha-card {
    border-radius: var(--radius-xl);
    border: 1px solid rgba(103, 78, 153, 0.2);
    background: linear-gradient(145deg, rgba(255, 255, 255, 0.98) 0%, rgba(103, 78, 153, 0.04) 100%);
    box-shadow: 0 8px 32px rgba(103, 78, 153, 0.08);
    overflow: hidden;
    transition: box-shadow 0.25s ease, border-color 0.25s ease;
}

.pricing-page-alpha-card:hover {
    box-shadow: 0 12px 40px rgba(103, 78, 153, 0.12);
    border-color: rgba(103, 78, 153, 0.25);
}

.pricing-page-alpha-header {
    display: flex;
    align-items: center;
    gap: var(--spacing-3);
    padding: var(--spacing-5) var(--spacing-6);
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.08) 0%, rgba(103, 78, 153, 0.03) 100%);
    border-bottom: 1px solid rgba(103, 78, 153, 0.1);
}

.pricing-page-alpha-icon {
    font-size: var(--text-2xl);
    color: var(--color-brand);
}

.pricing-page-alpha-title {
    font-size: var(--text-xl);
    font-weight: var(--font-weight-bold);
    margin: 0;
    color: var(--color-text);
}

.pricing-page-alpha-body {
    padding: var(--spacing-5) var(--spacing-6);
}

.pricing-page-alpha-text {
    margin: 0;
    font-size: var(--text-base);
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
}

.pricing-page-faq {
    margin-bottom: var(--spacing-8);
}

.pricing-page-faq-list {
    max-width: 720px;
    margin: 0 auto;
}

.pricing-page-faq-item {
    padding: var(--spacing-5) var(--spacing-6);
    margin-bottom: var(--spacing-4);
    border-radius: var(--radius-lg);
    border: 1px solid rgba(103, 78, 153, 0.1);
    background: linear-gradient(145deg, rgba(255, 255, 255, 0.95) 0%, rgba(249, 250, 251, 0.98) 100%);
    border-left: 4px solid transparent;
    transition: border-left-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.pricing-page-faq-item:hover {
    border-left-color: var(--color-brand);
    box-shadow: 0 4px 20px rgba(103, 78, 153, 0.08);
    background: linear-gradient(145deg, #ffffff 0%, rgba(249, 250, 251, 0.98) 100%);
}

.pricing-page-faq-question {
    font-size: var(--text-base);
    font-weight: var(--font-weight-semibold);
    margin: 0 0 var(--spacing-2);
    color: var(--color-text);
}

.pricing-page-faq-answer {
    margin: 0;
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
}

/* Hero trust signals */
.pricing-page-hero-trust {
    list-style: none;
    padding: 0;
    margin: 0 auto var(--spacing-5);
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--spacing-4);
    max-width: 600px;
}

.pricing-page-hero-trust li {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    font-size: var(--text-base);
    color: var(--color-text-secondary);
}

.pricing-page-hero-trust li i {
    color: var(--color-success);
    font-size: var(--text-lg);
}

/* Hero CTA */
.pricing-page-hero-cta {
    margin-top: var(--spacing-5);
}

.pricing-page-hero-cta-secondary {
    margin-top: var(--spacing-3);
    font-size: var(--text-sm);
}

.pricing-page-hero-cta-secondary a {
    color: var(--color-brand);
    text-decoration: none;
}

.pricing-page-hero-cta-secondary a:hover {
    text-decoration: underline;
}

/* Section intro text */
.pricing-page-section-intro {
    font-size: var(--text-lg);
    color: var(--color-text-secondary);
    text-align: center;
    max-width: 65ch;
    margin: 0 auto var(--spacing-6);
    line-height: var(--line-height-relaxed);
}

/* Why Upgrade section */
.pricing-page-why {
    margin-bottom: var(--spacing-8);
}

.pricing-page-why-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--spacing-4);
    margin-top: var(--spacing-5);
}

@media (min-width: 768px) {
    .pricing-page-why-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 992px) {
    .pricing-page-why-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

.pricing-page-why-card {
    padding: var(--spacing-5);
    border-radius: var(--radius-lg);
    border: 1px solid rgba(103, 78, 153, 0.1);
    background: linear-gradient(145deg, rgba(255, 255, 255, 0.95) 0%, rgba(249, 250, 251, 0.98) 100%);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.pricing-page-why-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(103, 78, 153, 0.08);
}

.pricing-page-why-card-title {
    font-size: var(--text-lg);
    font-weight: var(--font-weight-semibold);
    margin: 0 0 var(--spacing-2);
    color: var(--color-text);
}

.pricing-page-why-card-text {
    margin: 0;
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
}

/* Comparison intro */
.pricing-page-comparison-intro {
    font-size: var(--text-base);
    color: var(--color-text-secondary);
    text-align: center;
    max-width: 70ch;
    margin: 0 auto var(--spacing-5);
    line-height: var(--line-height-relaxed);
}

/* Alpha deep dive */
.pricing-page-alpha-deep {
    margin-bottom: var(--spacing-8);
}

.pricing-page-alpha-deep-card {
    border-radius: var(--radius-xl);
    border: 1px solid rgba(103, 78, 153, 0.2);
    background: linear-gradient(145deg, rgba(255, 255, 255, 0.98) 0%, rgba(103, 78, 153, 0.04) 100%);
    box-shadow: 0 8px 32px rgba(103, 78, 153, 0.1);
    padding: var(--spacing-6);
    text-align: center;
}

.pricing-page-alpha-deep-list {
    list-style: none;
    padding: 0;
    margin: 0 0 var(--spacing-5);
    text-align: left;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

.pricing-page-alpha-deep-list li {
    padding: var(--spacing-2) 0;
    font-size: var(--text-base);
    color: var(--color-text);
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
}

.pricing-page-alpha-deep-list li::before {
    content: '✓';
    color: var(--color-brand);
    font-weight: var(--font-weight-bold);
    font-size: var(--text-lg);
}

.pricing-page-alpha-deep-cta {
    margin-bottom: var(--spacing-4);
}

.pricing-page-alpha-deep-disclaimer {
    margin: var(--spacing-4) 0 0;
    font-size: var(--text-xs);
    color: var(--color-text-tertiary);
    line-height: var(--line-height-relaxed);
}

/* CTA footer */
.pricing-page-cta-footer {
    margin-bottom: var(--spacing-8);
    text-align: center;
    padding: var(--spacing-8) var(--spacing-4);
    background: linear-gradient(180deg, rgba(103, 78, 153, 0.03) 0%, transparent 100%);
    border-radius: var(--radius-xl);
}

.pricing-page-cta-footer-copy {
    font-size: var(--text-lg);
    color: var(--color-text-secondary);
    max-width: 60ch;
    margin: 0 auto var(--spacing-5);
    line-height: var(--line-height-relaxed);
}

.pricing-page-cta-footer-buttons {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--spacing-3);
    margin-bottom: var(--spacing-4);
}

.pricing-page-cta-footer-links {
    margin: var(--spacing-4) 0 0;
    font-size: var(--text-sm);
    color: var(--color-text-tertiary);
}

.pricing-page-cta-footer-links a {
    color: var(--color-brand);
    text-decoration: none;
}

.pricing-page-cta-footer-links a:hover {
    text-decoration: underline;
}

/* Plan card enhancements */
.pricing-plan-subtitle {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    margin: var(--spacing-2) 0 var(--spacing-3);
    font-style: italic;
}

.pricing-price-subtext {
    font-size: var(--text-xs);
    color: var(--color-brand);
    margin: var(--spacing-1) 0 var(--spacing-3);
    font-weight: var(--font-weight-medium);
}

.pricing-urgency-copy {
    font-size: var(--text-xs);
    color: var(--color-text-tertiary);
    margin: var(--spacing-3) 0 0;
    text-align: center;
    font-style: italic;
}

.pricing-page-empty {
    padding: var(--spacing-8) var(--spacing-4);
}

/* Home FAQ – dynamic */
.home-faq.section {
    position: relative;
}

.home-faq-list {
    max-width: 720px;
    margin: 0 auto;
}

.home-faq-item {
    padding: var(--spacing-5) var(--spacing-6);
    margin-bottom: var(--spacing-3);
    border-radius: var(--radius-lg);
    border: 1px solid rgba(103, 78, 153, 0.1);
    background: linear-gradient(145deg, rgba(255, 255, 255, 0.9) 0%, rgba(249, 250, 251, 0.95) 100%);
    border-left: 4px solid transparent;
    transition: border-left-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.home-faq-item:hover {
    border-left-color: var(--color-brand);
    box-shadow: 0 4px 16px rgba(103, 78, 153, 0.08);
    background: linear-gradient(145deg, #ffffff 0%, rgba(255, 255, 255, 0.98) 100%);
}

.home-faq-item:last-child {
    margin-bottom: 0;
}

.home-faq-question {
    font-size: var(--text-lg);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
    margin: 0 0 var(--spacing-2);
}

.home-faq-answer {
    font-size: var(--text-base);
    line-height: var(--line-height-relaxed);
    color: var(--color-text-secondary);
}

.home-faq-answer p {
    margin: 0;
}

/* Final CTA Section */
.home-cta {
    position: relative;
    background: 
        linear-gradient(135deg, 
            rgba(103, 78, 153, 0.85) 0%, 
            rgba(74, 58, 120, 0.9) 100%
        ),
        url('/public/assets/img/hp-cta-bg.png');
    background-size: 100% 100%, cover;
    background-position: center, center;
    background-repeat: no-repeat, no-repeat;
    color: white;
    padding: var(--spacing-20) 0;
    overflow: hidden;
}

.home-cta-content {
    text-align: center;
    max-width: 700px;
    margin: 0 auto;
}

.home-cta-title {
    font-size: clamp(var(--text-2xl), 4vw, var(--text-4xl));
    font-weight: var(--font-weight-bold);
    margin-bottom: var(--spacing-4);
    color: white;
}

.home-cta-subtitle {
    font-size: var(--text-lg);
    color: rgba(255, 255, 255, 0.9);
    margin-bottom: var(--spacing-8);
}

.home-cta-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-3);
    justify-content: center;
}

.home-cta-actions .btn-primary {
    background-color: white;
    border-color: white;
}

.home-cta-actions .btn-primary:hover {
    background-color: var(--color-surface-2);
    color:#FFF;
}

.home-cta-actions .btn-ghost {
    background-color: transparent;
    color: white;
    border-color: rgba(255, 255, 255, 0.5);
}

.home-cta-actions .btn-ghost:hover {
    background-color: var(--color-surface-2);
    border-color: white;
    color: var(--color-brand);
}
.home-cta-actions .btn-ghost::before{
    background-color: var(--color-surface-2) !important;
}

.home-cta-actions .btn-outline {
    background-color: transparent;
    color: white;
    border-color: rgba(255, 255, 255, 0.7);
}

.home-cta-actions .btn-outline:hover {
    background-color: rgba(255, 255, 255, 0.15);
    border-color: white;
    color: white;
}

.home-cta-actions .btn {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.home-cta-actions .btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.2);
}

/* Utility Classes */
.w-100 {
    width: 100%;
}

/* ============================================
   SEGMENTED CONTROL
   ============================================ */
.segmented-control {
    display: inline-flex;
    background: linear-gradient(135deg, 
        rgba(0, 0, 0, 0.03) 0%, 
        rgba(0, 0, 0, 0.01) 100%);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: var(--spacing-1);
    gap: var(--spacing-1);
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
    position: relative;
    box-shadow: 
        0 2px 8px rgba(0, 0, 0, 0.04),
        0 1px 3px rgba(0, 0, 0, 0.02),
        inset 0 1px 2px rgba(255, 255, 255, 0.8);
}

.segmented-control::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, 
        transparent 0%, 
        var(--color-brand) 50%, 
        transparent 100%);
    opacity: 0.3;
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
    pointer-events: none;
}

.segmented-control::-webkit-scrollbar {
    display: none;
}

@media (max-width: 767px) {
    .segmented-control {
        flex-wrap: nowrap;
    }
}

.segmented-control-item {
    padding: var(--spacing-2) var(--spacing-4);
    border: none;
    background: transparent;
    color: var(--color-text-secondary);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    white-space: nowrap;
    position: relative;
    z-index: 1;
}

.segmented-control-item::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.05) 0%, 
        rgba(103, 78, 153, 0.02) 100%);
    opacity: 0;
    transition: opacity 0.3s ease;
    z-index: -1;
}

.segmented-control-item:hover {
    color: var(--color-text);
    transform: translateY(-1px);
}

.segmented-control-item:hover::before {
    opacity: 1;
}

.segmented-control-item.active {
    background: linear-gradient(135deg, 
        var(--color-surface) 0%, 
        rgba(255, 255, 255, 0.98) 100%);
    color: var(--color-brand);
    font-weight: var(--font-weight-semibold);
    box-shadow: 
        0 4px 12px rgba(103, 78, 153, 0.15),
        0 2px 6px rgba(0, 0, 0, 0.08),
        inset 0 1px 2px rgba(255, 255, 255, 0.9);
    border: 1.5px solid rgba(103, 78, 153, 0.2);
    transform: translateY(-1px);
    position: relative;
    z-index: 2;
}

.segmented-control-item.active::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, 
        var(--color-brand) 0%, 
        rgba(103, 78, 153, 0.8) 50%, 
        var(--color-brand) 100%);
    border-radius: 0 0 var(--radius-md) var(--radius-md);
    box-shadow: 0 2px 8px rgba(103, 78, 153, 0.3);
}

.segmented-control-item.active::before {
    opacity: 0;
}

.segmented-control-item:active {
    transform: translateY(0);
    transition: transform 0.1s ease;
}

/* ============================================
   TICKER HEADER
   ============================================ */
.ticker-header {
    background: linear-gradient(135deg, 
        var(--color-surface) 0%, 
        rgba(255, 255, 255, 0.98) 50%,
        rgba(103, 78, 153, 0.02) 100%);
    border-bottom: 2px solid var(--color-border);
    padding: var(--spacing-5) 0;
    width: 100%;
    position: relative;
    box-shadow: 
        0 2px 12px rgba(0, 0, 0, 0.04),
        0 1px 4px rgba(0, 0, 0, 0.02),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    overflow: hidden;
}

.ticker-header::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, 
        transparent 0%, 
        var(--color-brand) 20%, 
        var(--color-brand) 80%, 
        transparent 100%);
    opacity: 0.6;
    z-index: 1;
}

.ticker-header::after {
    content: '';
    position: absolute;
    top: -50%;
    right: -10%;
    width: 300px;
    height: 300px;
    background: radial-gradient(circle, 
        rgba(103, 78, 153, 0.08) 0%, 
        transparent 70%);
    opacity: 0.5;
    pointer-events: none;
    z-index: 0;
}

.ticker-header-sticky {
    /* Default state: in-flow (JS toggles .is-fixed when it should stick). */
    position: relative;
    top: auto;
    left: 0;
    right: 0;
    z-index: calc(var(--z-sticky) - 1);
    box-shadow: 
        0 4px 20px rgba(0, 0, 0, 0.08),
        0 2px 8px rgba(0, 0, 0, 0.04),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    background: linear-gradient(135deg, 
        rgba(255, 255, 255, 0.95) 0%, 
        rgba(255, 255, 255, 0.98) 50%,
        rgba(103, 78, 153, 0.03) 100%);
    backdrop-filter: blur(16px) saturate(180%);
    -webkit-backdrop-filter: blur(16px) saturate(180%);
    width: 100%;
    margin: 0;
    border-bottom: 2px solid var(--color-border);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.ticker-header-sticky.is-fixed {
    position: fixed;
    top: var(--header-height);
    left: 0;
    right: 0;
    width: 100%;
    margin: 0;
    box-shadow: 
        0 6px 24px rgba(0, 0, 0, 0.12),
        0 3px 12px rgba(0, 0, 0, 0.08),
        inset 0 1px 0 rgba(255, 255, 255, 0.95);
    border-bottom: 2px solid rgba(103, 78, 153, 0.2);
}

.ticker-header-sticky-placeholder {
    display: none;
    width: 100%;
}

.ticker-header-sticky-placeholder.is-active {
    display: block;
}

.ticker-header-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-6);
    position: relative;
    z-index: 2;
}

.ticker-header-left {
    flex: 1;
    min-width: 0;
}

.ticker-logo-group {
    display: flex;
    align-items: center;
    gap: var(--spacing-4);
    transition: all 0.3s ease;
    position: relative;
}

.ticker-logo-group::before {
    content: '';
    position: absolute;
    left: -8px;
    top: 50%;
    transform: translateY(-50%);
    width: 4px;
    height: 0;
    background: linear-gradient(180deg, 
        var(--color-brand) 0%, 
        rgba(103, 78, 153, 0.6) 100%);
    border-radius: 2px;
    transition: height 0.3s ease;
    opacity: 0;
}

.ticker-logo-group:hover::before {
    height: 60%;
    opacity: 1;
}

.ticker-logo {
    width: 56px;
    height: 56px;
    border-radius: var(--radius-lg);
    object-fit: contain;
    box-shadow: 
        0 4px 12px rgba(0, 0, 0, 0.1),
        0 2px 6px rgba(0, 0, 0, 0.08),
        inset 0 1px 2px rgba(255, 255, 255, 0.8);
    border: 2px solid rgba(255, 255, 255, 0.9);
    background: rgba(255, 255, 255, 0.95);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    z-index: 1;
}

.ticker-logo:hover {
    transform: translateY(-2px) scale(1.05);
    box-shadow: 
        0 6px 16px rgba(0, 0, 0, 0.15),
        0 3px 8px rgba(0, 0, 0, 0.1),
        inset 0 1px 2px rgba(255, 255, 255, 0.9);
}

.ticker-logo-placeholder {
    width: 56px;
    height: 56px;
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg, 
        var(--color-brand) 0%, 
        rgba(103, 78, 153, 0.9) 50%,
        var(--color-brand-dark) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: var(--text-2xl);
    font-weight: var(--font-weight-bold);
    box-shadow: 
        0 4px 12px rgba(103, 78, 153, 0.3),
        0 2px 6px rgba(0, 0, 0, 0.1),
        inset 0 1px 2px rgba(255, 255, 255, 0.3);
    border: 2px solid rgba(255, 255, 255, 0.2);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
    z-index: 1;
}

.ticker-logo-placeholder::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: linear-gradient(45deg, 
        transparent 30%, 
        rgba(255, 255, 255, 0.2) 50%, 
        transparent 70%);
    animation: shimmer-logo 3s infinite;
    z-index: 1;
}

@keyframes shimmer-logo {
    0% {
        transform: translateX(-100%) translateY(-100%) rotate(45deg);
    }
    100% {
        transform: translateX(100%) translateY(100%) rotate(45deg);
    }
}

.ticker-logo-placeholder:hover {
    transform: translateY(-2px) scale(1.05);
    box-shadow: 
        0 6px 16px rgba(103, 78, 153, 0.4),
        0 3px 8px rgba(0, 0, 0, 0.15),
        inset 0 1px 2px rgba(255, 255, 255, 0.4);
}

.ticker-logo-placeholder > span {
    position: relative;
    z-index: 2;
}

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

.ticker-symbol {
    font-size: var(--text-2xl);
    font-weight: var(--font-weight-bold);
    background: linear-gradient(135deg, 
        var(--color-text) 0%, 
        rgba(103, 78, 153, 0.9) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    font-family: var(--font-mono);
    margin-bottom: var(--spacing-1);
    letter-spacing: -0.02em;
    position: relative;
    display: inline-block;
    transition: all 0.3s ease;
}

.ticker-symbol::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 0;
    height: 2px;
    background: linear-gradient(90deg, 
        var(--color-brand) 0%, 
        rgba(103, 78, 153, 0.6) 100%);
    transition: width 0.3s ease;
}

.ticker-logo-group:hover .ticker-symbol::after {
    width: 100%;
}

.ticker-company-name {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-2);
    line-height: var(--line-height-normal);
    font-weight: var(--font-weight-medium);
    transition: color 0.3s ease;
    position: relative;
}

.ticker-logo-group:hover .ticker-company-name {
    color: var(--color-text);
}

.ticker-meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-2);
    margin-top: var(--spacing-2);
}

.ticker-meta .badge,
.ticker-meta .tv-badge {
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 
        0 2px 4px rgba(0, 0, 0, 0.06),
        0 1px 2px rgba(0, 0, 0, 0.04);
}

.ticker-meta .badge:hover,
.ticker-meta .tv-badge:hover {
    transform: translateY(-2px);
    box-shadow: 
        0 4px 8px rgba(0, 0, 0, 0.1),
        0 2px 4px rgba(0, 0, 0, 0.06);
}

.ticker-header-right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: var(--spacing-2);
}

.ticker-header-top {
    display: flex;
    align-items: center;
}

.ticker-price {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}

.ticker-price-value {
    font-size: var(--text-3xl);
    font-weight: var(--font-weight-bold);
    background: linear-gradient(135deg, 
        var(--color-text) 0%, 
        rgba(103, 78, 153, 0.8) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    line-height: var(--line-height-tight);
    letter-spacing: -0.02em;
    position: relative;
    display: inline-block;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.ticker-price-value::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 120%;
    height: 120%;
    background: radial-gradient(circle, 
        rgba(103, 78, 153, 0.1) 0%, 
        transparent 70%);
    opacity: 0;
    transition: opacity 0.3s ease;
    z-index: -1;
}

.ticker-price:hover .ticker-price-value::before {
    opacity: 1;
}

.ticker-price-change {
    font-size: var(--text-base);
    font-weight: var(--font-weight-bold);
    margin-top: var(--spacing-2);
    padding: var(--spacing-1) var(--spacing-3);
    border-radius: var(--radius-md);
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-1);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}

.ticker-price-change::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, 
        transparent 0%, 
        rgba(255, 255, 255, 0.3) 50%, 
        transparent 100%);
    transition: left 0.5s ease;
}

.ticker-price-change:hover::before {
    left: 100%;
}

.ticker-price-change.positive {
    color: var(--color-success);
    background: linear-gradient(135deg, 
        rgba(16, 185, 129, 0.12) 0%, 
        rgba(16, 185, 129, 0.06) 100%);
    border: 1.5px solid rgba(16, 185, 129, 0.3);
    box-shadow: 
        0 2px 6px rgba(16, 185, 129, 0.15),
        0 1px 3px rgba(0, 0, 0, 0.05);
}

.ticker-price-change.positive:hover {
    transform: translateY(-2px);
    box-shadow: 
        0 4px 12px rgba(16, 185, 129, 0.25),
        0 2px 6px rgba(0, 0, 0, 0.08);
    border-color: rgba(16, 185, 129, 0.5);
}

.ticker-price-change.negative {
    color: var(--color-danger);
    background: linear-gradient(135deg, 
        rgba(239, 68, 68, 0.12) 0%, 
        rgba(239, 68, 68, 0.06) 100%);
    border: 1.5px solid rgba(239, 68, 68, 0.3);
    box-shadow: 
        0 2px 6px rgba(239, 68, 68, 0.15),
        0 1px 3px rgba(0, 0, 0, 0.05);
}

.ticker-price-change.negative:hover {
    transform: translateY(-2px);
    box-shadow: 
        0 4px 12px rgba(239, 68, 68, 0.25),
        0 2px 6px rgba(0, 0, 0, 0.08);
    border-color: rgba(239, 68, 68, 0.5);
}

/* Update sticky price change class */
#quotePriceChangeSticky.positive {
    color: var(--color-success);
}

#quotePriceChangeSticky.negative {
    color: var(--color-danger);
}

/* Price update animation */
@keyframes price-update {
    0% {
        transform: scale(1);
        opacity: 1;
    }
    50% {
        transform: scale(1.05);
        opacity: 0.8;
    }
    100% {
        transform: scale(1);
        opacity: 1;
    }
}

.ticker-price-value.price-updated {
    animation: price-update 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

.ticker-price-change.price-updated {
    animation: price-update 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

@media (max-width: 767px) {
    .ticker-header-content {
        flex-direction: column;
        align-items: flex-start;
    }
    
    .ticker-header-right {
        align-items: flex-start;
        width: 100%;
    }
    
    .ticker-price {
        align-items: flex-start;
    }
}

/* ============================================
   QUOTE PAGE STYLES
   ============================================ */

.quote-page {
    min-height: 100vh;
    width: 100%;
    position: relative;
    overflow-x: hidden;
    box-sizing: border-box;
}

/* Prevent horizontal overflow on child elements, but allow sticky to work */
.quote-page > section {
    overflow-x: hidden;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

@media (max-width: 767px) {
    .quote-page {
        overflow-x: visible;
        width: 100%;
        max-width: 100vw;
    }
    
    .quote-page > section {
        overflow-x: visible;
        width: 100%;
        max-width: 100%;
    }
    
    /* Ensure all panels are visible on mobile */
    #signals-panel,
    #news-panel,
    #trade-ideas-panel,
    #financials-panel,
    #technicals-panel,
    #earnings-panel,
    #options-panel {
        width: 100%;
        max-width: 100%;
        overflow-x: visible;
        box-sizing: border-box;
    }
}

/* Snapshot Grid */
.quote-snapshot-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: var(--spacing-4);
    width: 100%;
    max-width: 100%;
}

@media (max-width: 767px) {
    .quote-snapshot-grid {
        grid-template-columns: 1fr;
        gap: var(--spacing-3);
    }
}

.quote-snapshot-card {
    background: linear-gradient(135deg, 
        var(--color-surface) 0%, 
        rgba(255, 255, 255, 0.98) 100%);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: var(--spacing-4) var(--spacing-5);
    position: relative;
    overflow: hidden;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 
        0 2px 8px rgba(0, 0, 0, 0.06),
        0 1px 3px rgba(0, 0, 0, 0.04),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    cursor: default;
}

.quote-snapshot-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, 
        transparent 0%, 
        var(--color-brand) 20%, 
        var(--color-brand) 80%, 
        transparent 100%);
    opacity: 0;
    transition: opacity 0.3s ease, height 0.3s ease;
    z-index: 1;
}

.quote-snapshot-card::after {
    content: '';
    position: absolute;
    top: -50%;
    right: -50%;
    width: 100%;
    height: 100%;
    background: radial-gradient(circle, 
        rgba(103, 78, 153, 0.08) 0%, 
        transparent 70%);
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
}

.quote-snapshot-card:hover {
    transform: translateY(-4px);
    border-color: var(--color-brand);
    box-shadow: 
        0 8px 24px rgba(0, 0, 0, 0.12),
        0 4px 12px rgba(0, 0, 0, 0.08),
        0 0 0 1px rgba(103, 78, 153, 0.1),
        inset 0 1px 0 rgba(255, 255, 255, 0.95);
    background: linear-gradient(135deg, 
        rgba(255, 255, 255, 1) 0%, 
        rgba(255, 255, 255, 0.98) 100%);
}

.quote-snapshot-card:hover::before {
    opacity: 0.6;
    height: 4px;
}

.quote-snapshot-card:hover::after {
    opacity: 1;
}

.snapshot-label {
    font-size: var(--text-xs);
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-bottom: var(--spacing-3);
    font-weight: var(--font-weight-semibold);
    display: flex;
    align-items: center;
    gap: var(--spacing-1);
    position: relative;
    z-index: 2;
}

.snapshot-label::before {
    content: '';
    width: 4px;
    height: 4px;
    background: var(--color-brand);
    border-radius: 50%;
    opacity: 0.5;
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.quote-snapshot-card:hover .snapshot-label::before {
    opacity: 1;
    transform: scale(1.2);
}

.snapshot-value {
    font-size: var(--text-2xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    margin-top: var(--spacing-1);
    line-height: var(--line-height-tight);
    letter-spacing: -0.02em;
    position: relative;
    z-index: 2;
    transition: color 0.3s ease;
    background: linear-gradient(135deg, 
        var(--color-text) 0%, 
        rgba(0, 0, 0, 0.8) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.quote-snapshot-card:hover .snapshot-value {
    background: linear-gradient(135deg, 
        var(--color-brand) 0%, 
        rgba(103, 78, 153, 0.8) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.snapshot-context {
    font-size: var(--text-xs);
    color: var(--color-text-muted);
    margin-top: var(--spacing-2);
    position: relative;
    z-index: 2;
    padding: var(--spacing-1) var(--spacing-2);
    background: rgba(0, 0, 0, 0.02);
    border-radius: var(--radius-sm);
    display: inline-block;
    transition: all 0.3s ease;
}

.quote-snapshot-card:hover .snapshot-context {
    background: rgba(103, 78, 153, 0.08);
    color: var(--color-text-secondary);
}

.snapshot-range-bar {
    height: 5px;
    background: linear-gradient(90deg, 
        var(--color-brand) 0%, 
        rgba(103, 78, 153, 0.8) 100%);
    border-radius: var(--radius-full);
    margin-top: var(--spacing-3);
    position: relative;
    overflow: hidden;
    box-shadow: 
        0 2px 6px rgba(103, 78, 153, 0.3),
        inset 0 1px 2px rgba(255, 255, 255, 0.2);
    transition: all 0.3s ease;
    z-index: 2;
}

.quote-snapshot-card:hover .snapshot-range-bar {
    box-shadow: 
        0 4px 12px rgba(103, 78, 153, 0.4),
        inset 0 1px 2px rgba(255, 255, 255, 0.3);
    height: 6px;
}

.snapshot-range-bar::after {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, 
        transparent 0%, 
        rgba(255, 255, 255, 0.4) 50%, 
        transparent 100%);
    animation: shimmer 2s infinite;
}

@keyframes shimmer {
    0% {
        left: -100%;
    }
    100% {
        left: 100%;
    }
}

/* ============================================
   QUOTE OPTIONS CHAIN
   ============================================ */
.quote-options-chain-card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06), 0 1px 3px rgba(0, 0, 0, 0.04);
    overflow: hidden;
}

.quote-options-chain-controls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--spacing-4);
    padding: var(--spacing-4);
    background: var(--color-surface-2);
    border-bottom: 1px solid var(--color-border);
}

.quote-options-chain-title {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    font-size: var(--text-base);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
}

.quote-options-chain-title .bi {
    color: var(--color-brand);
}

.quote-options-chain-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: var(--spacing-4);
    margin-left: auto;
}

.quote-options-filter-group {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-1);
}

.quote-options-filter-group label {
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.quote-options-checkbox-group {
    flex-direction: row;
    align-items: center;
}

.quote-options-checkbox-group .quote-options-checkbox-label {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    font-size: var(--text-sm);
    color: var(--color-text);
    cursor: pointer;
    margin: 0;
}

.quote-options-checkbox-group .form-check-input {
    margin: 0;
    cursor: pointer;
}

.quote-options-chain-summary {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-6);
    padding: var(--spacing-4);
    background: var(--color-surface-2);
    border-bottom: 1px solid var(--color-border);
}

.quote-options-summary-item {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-1);
}

.quote-options-summary-label {
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.quote-options-summary-value {
    font-size: var(--text-base);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
}

.quote-options-chain-table-wrapper {
    overflow-x: auto;
    padding: var(--spacing-4);
}

.quote-options-chain-table-wrapper .table {
    margin-bottom: 0;
    font-size: var(--text-sm);
}

.quote-options-chain-table th {
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    white-space: nowrap;
    padding: var(--spacing-2) var(--spacing-3);
    border-bottom: 1px solid var(--color-border);
    background: var(--color-surface-2);
}

.quote-options-chain-table td {
    padding: var(--spacing-2) var(--spacing-3);
    border-bottom: 1px solid var(--color-border-light);
    vertical-align: middle;
}

.quote-options-chain-table tbody tr:hover {
    background: var(--color-surface-2);
}

/* At-the-money row: green border around row and bold */
.quote-options-chain-atm {
    background: rgba(16, 185, 129, 0.06) !important;
    border-left: 3px solid var(--color-success) !important;
    outline: 2px solid var(--color-success);
    outline-offset: -2px;
}

.quote-options-chain-atm td {
    font-weight: var(--font-weight-semibold);
}

/* Options: login required message */
.quote-options-login-required {
    background: linear-gradient(135deg, var(--color-surface) 0%, rgba(103, 78, 153, 0.04) 100%);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06);
    overflow: hidden;
}

.quote-options-login-required-body {
    text-align: center;
    padding: var(--spacing-10) var(--spacing-8);
    max-width: 420px;
    margin: 0 auto;
}

.quote-options-login-required-icon {
    width: 64px;
    height: 64px;
    margin: 0 auto var(--spacing-5);
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--color-brand) 0%, rgba(103, 78, 153, 0.7) 100%);
    color: #fff;
    font-size: 1.75rem;
    border-radius: 50%;
    box-shadow: 0 8px 24px rgba(103, 78, 153, 0.35);
    animation: quote-options-lock-pulse 2.5s ease-in-out infinite;
}

@keyframes quote-options-lock-pulse {
    0%, 100% { box-shadow: 0 8px 24px rgba(103, 78, 153, 0.35); transform: scale(1); }
    50% { box-shadow: 0 8px 32px rgba(103, 78, 153, 0.5); transform: scale(1.03); }
}

.quote-options-login-required-title {
    font-size: var(--text-xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    margin: 0 0 var(--spacing-3);
    letter-spacing: -0.02em;
}

.quote-options-login-required-text {
    font-size: var(--text-base);
    color: var(--color-text-muted);
    line-height: var(--line-height-relaxed);
    margin: 0 0 var(--spacing-6);
}

.quote-options-login-required-cta {
    display: inline-flex;
    align-items: center;
    padding: var(--spacing-3) var(--spacing-5);
    font-weight: var(--font-weight-semibold);
    border-radius: var(--radius-md);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    color: #fff !important;
}

.quote-options-login-required-cta:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(103, 78, 153, 0.35);
}

/* Greeks tooltip on row hover */
.quote-options-greeks-tooltip {
    position: fixed;
    z-index: 9999;
    padding: var(--spacing-2) var(--spacing-3);
    background: var(--color-text);
    color: var(--color-surface);
    font-size: var(--text-xs);
    font-family: var(--font-mono), monospace;
    border-radius: var(--radius-md);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
    line-height: 1.5;
    pointer-events: none;
}

/* Positive values (moneyness, change, %change) */
.quote-options-chain-positive {
    color: var(--color-success);
    font-weight: var(--font-weight-medium);
}

/* Negative values */
.quote-options-chain-negative {
    color: var(--color-danger);
    font-weight: var(--font-weight-medium);
}

@media (max-width: 767px) {
    .quote-options-chain-controls {
        flex-direction: column;
        align-items: stretch;
    }

    .quote-options-chain-filters {
        margin-left: 0;
    }

    .quote-options-chain-summary {
        flex-direction: column;
        gap: var(--spacing-3);
    }
}

/* Special styling for specific snapshot cards */
.quote-snapshot-card[id*="MarketCap"],
.quote-snapshot-card[id*="Volume"],
.quote-snapshot-card[id*="VWAP"] {
    border-left: 3px solid var(--color-brand);
}

.quote-snapshot-card[id*="PE"],
.quote-snapshot-card[id*="EPS"],
.quote-snapshot-card[id*="DebtEquity"],
.quote-snapshot-card[id*="EVEBITDA"] {
    border-left: 3px solid rgba(103, 78, 153, 0.3);
}

.quote-snapshot-card[id*="52W"],
.quote-snapshot-card[id*="TodayRange"] {
    border-left: 3px solid var(--color-success);
}

/* Mobile adjustments */
@media (max-width: 767px) {
    .quote-snapshot-card {
        padding: var(--spacing-3) var(--spacing-4);
    }
    
    .snapshot-value {
        font-size: var(--text-xl);
    }
    
    .quote-snapshot-card:hover {
        transform: translateY(-2px);
    }
}

/* Quote Page SEO Header */
.quote-seo-header {
    margin: 0 auto;
    position: relative;
    padding: var(--spacing-6) var(--spacing-5);
    background: linear-gradient(135deg, 
        rgba(255, 255, 255, 0.98) 0%, 
        rgba(255, 255, 255, 0.95) 50%,
        rgba(103, 78, 153, 0.02) 100%);
    border-radius: var(--radius-lg);
    overflow: hidden;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.quote-seo-header::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, 
        transparent 0%, 
        var(--color-brand) 20%, 
        var(--color-brand) 80%, 
        transparent 100%);
    opacity: 0.7;
    z-index: 1;
}

.quote-seo-header::after {
    content: '';
    position: absolute;
    top: -50%;
    right: -10%;
    width: 400px;
    height: 400px;
    background: radial-gradient(circle, 
        rgba(103, 78, 153, 0.06) 0%, 
        transparent 70%);
    opacity: 0.6;
    pointer-events: none;
    z-index: 0;
}

.quote-seo-header:hover {
    transform: translateY(-2px);
}

.quote-h1 {
    font-size: var(--text-3xl);
    font-weight: var(--font-weight-bold);
    background: linear-gradient(135deg, 
        var(--color-text) 0%, 
        rgba(103, 78, 153, 0.9) 50%,
        var(--color-text) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    line-height: var(--line-height-tight);
    margin-bottom: var(--spacing-4);
    letter-spacing: -0.02em;
    position: relative;
    z-index: 2;
    transition: all 0.3s ease;
}

.quote-h1::after {
    content: '';
    position: absolute;
    bottom: -8px;
    left: 0;
    width: 60px;
    height: 3px;
    background: linear-gradient(90deg, 
        var(--color-brand) 0%, 
        rgba(103, 78, 153, 0.6) 100%);
    border-radius: 2px;
    opacity: 0.8;
    transition: width 0.3s ease;
}

.quote-seo-header:hover .quote-h1::after {
    width: 120px;
}

@media (min-width: 768px) {
    .quote-h1 {
        font-size: var(--text-4xl);
    }
}

.quote-subhead {
    font-size: var(--text-base);
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
    margin-bottom: var(--spacing-5);
    position: relative;
    z-index: 2;
    font-weight: var(--font-weight-medium);
    padding-left: var(--spacing-4);
    border-left: 3px solid rgba(103, 78, 153, 0.2);
    background: linear-gradient(90deg, 
        rgba(103, 78, 153, 0.03) 0%, 
        transparent 100%);
    padding: var(--spacing-3) var(--spacing-4);
    border-radius: var(--radius-sm);
    transition: all 0.3s ease;
}

.quote-seo-header:hover .quote-subhead {
    border-left-color: rgba(103, 78, 153, 0.4);
    background: linear-gradient(90deg, 
        rgba(103, 78, 153, 0.05) 0%, 
        transparent 100%);
    color: var(--color-text);
}

.seo-support {
    font-size: var(--text-sm);
    color: var(--color-text-muted);
    line-height: var(--line-height-relaxed);
    max-width: 800px;
    margin-bottom: 0;
    position: relative;
    z-index: 2;
    padding: var(--spacing-4);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.02) 0%, 
        rgba(255, 255, 255, 0.5) 100%);
    border-radius: var(--radius-md);
    border: 1px solid rgba(103, 78, 153, 0.1);
    transition: all 0.3s ease;
}

.quote-seo-header:hover .seo-support {
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.04) 0%, 
        rgba(255, 255, 255, 0.6) 100%);
    border-color: rgba(103, 78, 153, 0.2);
    color: var(--color-text-secondary);
    box-shadow: 
        0 2px 8px rgba(0, 0, 0, 0.04),
        0 1px 4px rgba(0, 0, 0, 0.02);
}

.quote-inline-nav {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--spacing-2);
    font-size: var(--text-sm);
    margin-top: var(--spacing-3);
}

.quote-inline-nav a {
    color: var(--color-brand);
    text-decoration: none;
    transition: color var(--transition-fast);
}

.quote-inline-nav a:hover {
    color: var(--color-brand-dark);
    text-decoration: underline;
}

.nav-separator {
    color: var(--color-text-muted);
    margin: 0 var(--spacing-1);
}

/* Quote Layout with Right Rail */
.quote-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--spacing-6);
    width: 100%;
    max-width: 100%;
    overflow-x: visible;
    box-sizing: border-box;
}

@media (max-width: 767px) {
    .quote-layout {
        overflow-x: visible;
        width: 100%;
        max-width: 100%;
    }
}

@media (min-width: 1024px) {
    .quote-layout {
        grid-template-columns: 2fr 1fr;
    }
}

.quote-main {
    /* Main content area */
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.quote-sidebar {
    /* Right rail */
    position: sticky;
    align-self: start;
    overflow-y: auto;
    overflow-x: hidden;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

@media (max-width: 1023px) {
    .quote-sidebar {
        position: relative;
        top: 0;
    }
}

/* Segmented Control for Quote Navigation */
.quote-segmented-nav {
    margin-bottom: var(--spacing-6);
    padding-bottom: var(--spacing-4);
    border-bottom: 1px solid var(--color-border);
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    position: relative;
}

.quote-segmented-nav::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 1px;
    background: linear-gradient(90deg, 
        transparent 0%, 
        var(--color-border) 50%, 
        transparent 100%);
    opacity: 0.5;
}

@media (max-width: 767px) {
    .quote-segmented-nav {
        margin-left: calc(-1 * var(--container-padding-x));
        margin-right: calc(-1 * var(--container-padding-x));
        padding-left: var(--container-padding-x);
        padding-right: var(--container-padding-x);
        width: calc(100% + 2 * var(--container-padding-x));
        max-width: 100vw;
        box-sizing: border-box;
        overflow: visible;
        position: relative;
    }
    
    .quote-segmented-nav #quoteMainNav {
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none; /* Firefox */
        -ms-overflow-style: none; /* IE and Edge */
        padding-bottom: var(--spacing-1);
    }
    
    .quote-segmented-nav #quoteMainNav::-webkit-scrollbar {
        display: none; /* Chrome, Safari, Opera */
    }
    
    /* Left fade indicator - shows when scrolled right */
    .quote-segmented-nav::before {
        content: '';
        position: absolute;
        left: var(--container-padding-x);
        top: 0;
        bottom: 0;
        width: 30px;
        background: linear-gradient(90deg, 
            var(--color-surface) 0%, 
            rgba(255, 255, 255, 0.95) 40%,
            transparent 100%
        );
        pointer-events: none;
        z-index: 3;
        opacity: 0;
        transition: opacity 0.3s ease;
    }
    
    /* Right fade indicator - shows when more content to scroll */
    .quote-segmented-nav::after {
        content: '';
        position: absolute;
        right: var(--container-padding-x);
        top: 0;
        bottom: 0;
        width: 30px;
        background: linear-gradient(270deg, 
            var(--color-surface) 0%, 
            rgba(255, 255, 255, 0.95) 40%,
            transparent 100%
        );
        pointer-events: none;
        z-index: 3;
        opacity: 1;
        transition: opacity 0.3s ease;
    }
    
    /* Show left indicator when scrolled */
    .quote-segmented-nav.scrolled::before {
        opacity: 1;
    }
    
    /* Hide right indicator when scrolled to end */
    .quote-segmented-nav.scrolled-end::after {
        opacity: 0;
    }
}

/* Chart Container */
.quote-chart-container {
    background-color: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: var(--spacing-4);
    margin-bottom: var(--spacing-6);
    width: 100%;
    max-width: 100%;
    overflow: hidden;
    box-sizing: border-box;
}

@media (max-width: 767px) {
    .quote-chart-container {
        padding: var(--spacing-3);
        margin-left: calc(-1 * var(--container-padding-x));
        margin-right: calc(-1 * var(--container-padding-x));
        border-radius: 0;
        border-left: none;
        border-right: none;
        width: calc(100% + 2 * var(--container-padding-x));
        max-width: 100vw;
        box-sizing: border-box;
    }
}

.chart-type-selector {
    display: flex;
    gap: var(--spacing-2);
}

.chart-controls {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--spacing-4);
    flex-wrap: wrap;
    gap: var(--spacing-3);
    width: 100%;
    max-width: 100%;
}

@media (max-width: 767px) {
    .chart-controls {
        flex-direction: column;
        align-items: stretch;
        gap: var(--spacing-2);
    }
}

.chart-timeframe-selector {
    display: flex;
    gap: var(--spacing-1);
    flex-wrap: wrap;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.chart-timeframe-selector::-webkit-scrollbar {
    display: none;
}

.timeframe-btn {
    padding: var(--spacing-2) var(--spacing-3);
    border: 1px solid var(--color-border);
    background-color: var(--color-surface);
    color: var(--color-text-secondary);
    font-size: var(--text-sm);
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: all var(--transition-fast);
}

.timeframe-btn:hover {
    background-color: var(--color-surface-2);
    color: var(--color-text);
}

.timeframe-btn.active {
    background-color: var(--color-brand);
    color: white;
    border-color: var(--color-brand);
}

.chart-container {
    position: relative;
    width: 100%;
    max-width: 100%;
    height: 500px;
    margin-top: var(--spacing-4);
    overflow: hidden;
}

.chart-svg {
    width: 100%;
    height: 100%;
    max-width: 100%;
    overflow: visible;
}

@media (max-width: 767px) {
    .chart-container {
        height: 400px;
    }
}

/* Overview Two Column Layout */
.overview-two-column {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--spacing-6);
    margin-top: var(--spacing-6);
}

@media (min-width: 768px) {
    .overview-two-column {
        grid-template-columns: 1fr 1fr;
        gap: var(--spacing-8);
    }
}

.overview-column-left,
.overview-column-right {
    display: flex;
    flex-direction: column;
    position: relative;
}

.overview-column-left .card,
.overview-column-right .card {
    background: linear-gradient(135deg, 
        var(--color-surface) 0%, 
        rgba(255, 255, 255, 0.98) 50%,
        rgba(103, 78, 153, 0.02) 100%);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: 
        0 4px 16px rgba(0, 0, 0, 0.06),
        0 2px 8px rgba(0, 0, 0, 0.04),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    overflow: hidden;
    position: relative;
}

.overview-column-left .card::before,
.overview-column-right .card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, 
        transparent 0%, 
        var(--color-brand) 20%, 
        var(--color-brand) 80%, 
        transparent 100%);
    opacity: 0.7;
    z-index: 1;
}

.overview-column-left .card::after,
.overview-column-right .card::after {
    content: '';
    position: absolute;
    top: -50%;
    right: -10%;
    width: 300px;
    height: 300px;
    background: radial-gradient(circle, 
        rgba(103, 78, 153, 0.06) 0%, 
        transparent 70%);
    opacity: 0.5;
    pointer-events: none;
    z-index: 0;
    transition: opacity 0.3s ease;
}

.overview-column-left .card:hover,
.overview-column-right .card:hover {
    transform: translateY(-4px);
    box-shadow: 
        0 8px 24px rgba(0, 0, 0, 0.1),
        0 4px 12px rgba(0, 0, 0, 0.06),
        inset 0 1px 0 rgba(255, 255, 255, 0.95);
    border-color: rgba(103, 78, 153, 0.2);
}

.overview-column-left .card:hover::after,
.overview-column-right .card:hover::after {
    opacity: 0.8;
}

/* Enhanced Card Headers for Overview Sections */
.overview-column-left .card-header,
.overview-column-right .card-header {
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.05) 0%, 
        rgba(103, 78, 153, 0.02) 50%,
        transparent 100%);
    border-bottom: 2px solid rgba(103, 78, 153, 0.1);
    padding: var(--spacing-4) var(--spacing-5);
    position: relative;
    z-index: 2;
}

.overview-column-left .card-header::before,
.overview-column-right .card-header::before {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 60px;
    height: 2px;
    background: linear-gradient(90deg, 
        var(--color-brand) 0%, 
        rgba(103, 78, 153, 0.6) 100%);
    border-radius: 2px;
}

.overview-column-left .card-header h5,
.overview-column-right .card-header h5 {
    margin: 0;
    font-size: var(--text-lg);
    font-weight: var(--font-weight-bold);
    background: linear-gradient(135deg, 
        var(--color-text) 0%, 
        rgba(103, 78, 153, 0.8) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    letter-spacing: -0.01em;
    position: relative;
}

.overview-column-left .card-body,
.overview-column-right .card-body {
    padding: var(--spacing-5);
    position: relative;
    z-index: 2;
}

/* Company Description */
.company-description {
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
    font-size: var(--text-base);
    position: relative;
    z-index: 2;
    padding: var(--spacing-2) 0;
}

.company-description p {
    margin: 0;
    position: relative;
}

.company-description p::first-letter {
    font-size: 1.5em;
    font-weight: var(--font-weight-bold);
    color: var(--color-brand);
    float: left;
    line-height: 1;
    margin-right: var(--spacing-2);
    margin-top: 0.1em;
    background: linear-gradient(135deg, 
        var(--color-brand) 0%, 
        rgba(103, 78, 153, 0.8) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* Company Info Styles */
.company-info-list {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-3);
    position: relative;
    z-index: 2;
}

.company-info-item {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-2);
    padding: var(--spacing-3) var(--spacing-4);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.02) 0%, 
        rgba(255, 255, 255, 0.5) 100%);
    border-radius: var(--radius-md);
    border: 1px solid rgba(103, 78, 153, 0.1);
    border-left: 3px solid rgba(103, 78, 153, 0.2);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}

.company-info-item::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 100%;
    background: linear-gradient(90deg, 
        rgba(103, 78, 153, 0.05) 0%, 
        transparent 100%);
    transition: width 0.3s ease;
    z-index: 0;
}

.company-info-item:hover {
    transform: translateX(4px);
    border-left-color: var(--color-brand);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.04) 0%, 
        rgba(255, 255, 255, 0.6) 100%);
    box-shadow: 
        0 2px 8px rgba(0, 0, 0, 0.06),
        0 1px 4px rgba(0, 0, 0, 0.04);
}

.company-info-item:hover::before {
    width: 100%;
}

.company-info-label {
    font-size: var(--text-xs);
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: var(--font-weight-bold);
    margin-bottom: var(--spacing-1);
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
}

.company-info-label::before {
    content: '';
    width: 4px;
    height: 4px;
    background: var(--color-brand);
    border-radius: 50%;
    opacity: 0.6;
    transition: all 0.3s ease;
}

.company-info-item:hover .company-info-label::before {
    opacity: 1;
    transform: scale(1.5);
    box-shadow: 0 0 8px rgba(103, 78, 153, 0.4);
}

.company-info-value {
    font-size: var(--text-base);
    color: var(--color-text);
    line-height: var(--line-height-relaxed);
    font-weight: var(--font-weight-semibold);
    position: relative;
    z-index: 1;
    transition: color 0.3s ease;
}

.company-info-item:hover .company-info-value {
    color: var(--color-text);
}

.company-info-value a {
    color: var(--color-brand);
    text-decoration: none;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-1);
    padding: var(--spacing-1) var(--spacing-2);
    border-radius: var(--radius-sm);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.08) 0%, 
        rgba(103, 78, 153, 0.04) 100%);
    border: 1px solid rgba(103, 78, 153, 0.2);
}

.company-info-value a:hover {
    color: var(--color-brand-dark);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.12) 0%, 
        rgba(103, 78, 153, 0.06) 100%);
    border-color: rgba(103, 78, 153, 0.3);
    transform: translateY(-2px);
    box-shadow: 
        0 2px 6px rgba(103, 78, 153, 0.2),
        0 1px 3px rgba(0, 0, 0, 0.1);
    text-decoration: none;
}

.company-info-value a i {
    transition: transform 0.3s ease;
}

.company-info-value a:hover i {
    transform: translate(2px, -2px);
}

.company-info-value p {
    margin: 0;
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
}

/* Chart Axis Labels */
.chart-axis-label {
    font-size: 12px;
    fill: var(--color-text-secondary);
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
}

/* Chart Grid Lines */
.chart-grid-line {
    stroke: var(--color-border);
    stroke-width: 1;
    opacity: 0.5;
}

/* Chart Price Line */
.chart-price-line {
    stroke: var(--color-brand);
    stroke-width: 2;
    stroke-dasharray: 5, 5;
    opacity: 0.7;
}

/* Candlestick Colors - Standard Red/Green */
.candle-wick-up,
.candle-body-up {
    stroke: #10b981;
    fill: #10b981;
}

.candle-wick-down,
.candle-body-down {
    stroke: #ef4444;
    fill: #ef4444;
}

.candle-wick-up,
.candle-wick-down {
    stroke-width: 1;
}

.candle-body-up,
.candle-body-down {
    stroke-width: 1;
}

/* Key Stats Grid */
.quote-key-stats {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--spacing-4);
    margin-bottom: var(--spacing-6);
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    overflow-x: visible;
}

@media (max-width: 767px) {
    .quote-key-stats {
        overflow-x: visible;
        width: 100%;
        max-width: 100%;
    }
}

@media (min-width: 768px) {
    .quote-key-stats {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 480px) {
    .quote-key-stats {
        grid-template-columns: 1fr;
        gap: var(--spacing-3);
    }
}

.quote-stat-item {
    padding: var(--spacing-3);
    background-color: var(--color-surface-2);
    border-radius: var(--radius-md);
}

/* Stat Card Styling for Signals Panel */
.quote-stat-card {
    padding: var(--spacing-4);
    background: linear-gradient(180deg, var(--color-surface) 0%, rgba(255, 255, 255, 0.98) 100%);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-xl);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);
    transition: all var(--transition-base);
    display: flex;
    flex-direction: column;
    gap: var(--spacing-2);
    position: relative;
    overflow: hidden;
}

.quote-stat-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--color-brand) 0%, var(--color-brand-light) 100%);
    opacity: 0;
    transition: opacity var(--transition-base);
}

.quote-stat-card:hover {
    border-color: rgba(103, 78, 153, 0.3);
    box-shadow: 0 8px 24px rgba(103, 78, 153, 0.12), 0 4px 8px rgba(0, 0, 0, 0.08);
    transform: translateY(-4px);
    background: linear-gradient(180deg, #ffffff 0%, #fafbfc 100%);
}

.quote-stat-card:hover::before {
    opacity: 1;
}

.quote-stat-label {
    font-size: var(--text-xs);
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: var(--spacing-1);
    font-weight: var(--font-weight-medium);
}

.quote-stat-value {
    font-size: var(--text-xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    line-height: 1.2;
}

/* AI Summary Card */
.quote-ai-summary {
    margin-bottom: var(--spacing-6);
}

/* Signals Table */
.quote-signals-table {
    margin-bottom: var(--spacing-6);
}

.signal-state-buy {
    color: var(--color-success);
    font-weight: var(--font-weight-semibold);
}

.signal-state-sell {
    color: var(--color-danger);
    font-weight: var(--font-weight-semibold);
}

.signal-state-hold {
    color: var(--color-text-secondary);
    font-weight: var(--font-weight-semibold);
}

/* =========================================================
   Quote Page - Signals Panel Styles
   ========================================================= */

/* Signal Card Container */
.quote-signal-card {
    margin-bottom: var(--spacing-6);
}

.quote-signal-section {
    margin-bottom: var(--spacing-6);
}

/* Signal Badge */
#signalBadgeContainer {
    margin-bottom: var(--spacing-5);
}

.signal-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: var(--spacing-3) var(--spacing-6);
    border-radius: var(--radius-lg);
    font-size: var(--text-lg);
    font-weight: var(--font-weight-bold);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    box-shadow: var(--shadow-2);
    border: 2px solid transparent;
    transition: all var(--transition-fast);
    position: relative;
    overflow: hidden;
}

.signal-badge::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
    transition: left 0.5s;
}

.signal-badge:hover::before {
    left: 100%;
}

.signal-badge.bullish {
    background: linear-gradient(135deg, var(--color-success) 0%, rgba(16, 185, 129, 0.9) 100%);
    color: #ffffff;
    border-color: rgba(16, 185, 129, 0.3);
    box-shadow: 0 4px 12px rgba(16, 185, 129, 0.3);
}

.signal-badge.bearish {
    background: linear-gradient(135deg, var(--color-danger) 0%, rgba(239, 68, 68, 0.9) 100%);
    color: #ffffff;
    border-color: rgba(239, 68, 68, 0.3);
    box-shadow: 0 4px 12px rgba(239, 68, 68, 0.3);
}

.signal-badge.watch {
    background: linear-gradient(135deg, var(--color-warning) 0%, rgba(245, 158, 11, 0.9) 100%);
    color: #ffffff;
    border-color: rgba(245, 158, 11, 0.3);
    box-shadow: 0 4px 12px rgba(245, 158, 11, 0.3);
}

/* Confidence Section */
#signalConfidence {
    margin: var(--spacing-5) 0;
    padding: var(--spacing-4);
    background: var(--color-surface-2);
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
}

.confidence-label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--spacing-2);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.confidence-percentage {
    font-size: var(--text-base);
    font-weight: var(--font-weight-bold);
    color: var(--color-brand);
}

.confidence-bar {
    position: relative;
    height: 32px;
    background: var(--color-surface);
    border-radius: var(--radius-md);
    overflow: hidden;
    border: 2px solid var(--color-border);
    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.05);
}

.confidence-fill {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    background: linear-gradient(90deg, 
        var(--color-brand) 0%, 
        rgba(103, 78, 153, 0.8) 50%,
        var(--color-success) 100%);
    transition: width var(--transition-normal);
    border-radius: var(--radius-md);
    box-shadow: 0 2px 4px rgba(103, 78, 153, 0.3);
    position: relative;
}

.confidence-fill::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(90deg, 
        transparent 0%, 
        rgba(255, 255, 255, 0.2) 50%,
        transparent 100%);
    animation: shimmer 2s infinite;
}

@keyframes shimmer {
    0% { transform: translateX(-100%); }
    100% { transform: translateX(100%); }
}

/* Timeframe Section */
#signalTimeframe {
    margin: var(--spacing-4) 0;
    padding: var(--spacing-3) var(--spacing-4);
    background: var(--color-surface);
    border-left: 4px solid var(--color-brand);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary);
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
}

#signalTimeframe::before {
    font-size: var(--text-base);
}

/* Signal Reasons Section */
#signalReasons {
    margin: var(--spacing-5) 0;
    padding: var(--spacing-4);
    background: var(--color-surface-2);
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
}

.signal-reasons-header {
    margin-bottom: var(--spacing-3);
    padding-bottom: var(--spacing-2);
    border-bottom: 1px solid var(--color-border);
}

.signal-reasons-title {
    margin: 0;
    font-size: var(--text-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

#signalReasons ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-3);
}

#signalReasons ul li {
    position: relative;
    padding: var(--spacing-2) 0 var(--spacing-2) calc(22px + var(--spacing-4));
    color: var(--color-text);
    font-size: var(--text-sm);
    line-height: var(--line-height-relaxed);
    transition: transform var(--transition-fast);
    min-height: 22px;
}

#signalReasons ul li:hover {
    transform: translateX(4px);
}

#signalReasons ul li::before {
    content: '✓';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 22px;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-brand);
    color: #ffffff;
    border-radius: 50%;
    font-size: var(--text-xs);
    font-weight: var(--font-weight-bold);
    box-shadow: var(--shadow-1);
    flex-shrink: 0;
    z-index: 1;
}

/* Dynamic checkmark color based on signal type */
.quote-signal-card.signal-bullish #signalReasons ul li::before {
    background: var(--color-success);
}

.quote-signal-card.signal-bearish #signalReasons ul li::before {
    background: var(--color-danger);
}

.quote-signal-card.signal-watch #signalReasons ul li::before {
    background: var(--color-warning);
}

/* Signal card border accent based on type */
.quote-signal-card.signal-bullish {
    border-top: 3px solid var(--color-success);
}

.quote-signal-card.signal-bearish {
    border-top: 3px solid var(--color-danger);
}

.quote-signal-card.signal-watch {
    border-top: 3px solid var(--color-warning);
}

/* Risk Note */
.signal-risk-note {
    margin-top: var(--spacing-5);
    padding: var(--spacing-3) var(--spacing-4);
    background: rgba(245, 158, 11, 0.05);
    border: 1px solid rgba(245, 158, 11, 0.2);
    border-left: 4px solid var(--color-warning);
    border-radius: var(--radius-md);
    font-size: var(--text-xs);
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
}

.signal-risk-note small {
    display: block;
    color: var(--color-text-secondary);
}

/* Signal Actions */
.signal-actions {
    margin-top: var(--spacing-4);
}

/* Signals Panel Container */
#signals-panel {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: var(--spacing-4);
    margin-bottom: var(--spacing-6);
}

@media (min-width: 768px) {
    #signals-panel {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (min-width: 1024px) {
    #signals-panel {
        grid-template-columns: repeat(5, 1fr);
    }
}

/* Signal Section Wrapper */
.quote-signal-section {
    position: relative;
}

/* Enhanced Card Styling for Signal Card */
.quote-signal-card .tv-card {
    position: relative;
    overflow: hidden;
}

.quote-signal-card .tv-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: var(--color-border);
    z-index: 1;
}

.quote-signal-card.signal-bullish .tv-card::before {
    background: linear-gradient(90deg, var(--color-success) 0%, rgba(16, 185, 129, 0.5) 100%);
}

.quote-signal-card.signal-bearish .tv-card::before {
    background: linear-gradient(90deg, var(--color-danger) 0%, rgba(239, 68, 68, 0.5) 100%);
}

.quote-signal-card.signal-watch .tv-card::before {
    background: linear-gradient(90deg, var(--color-warning) 0%, rgba(245, 158, 11, 0.5) 100%);
}

/* Signal Card Footer Button */
.quote-signal-card .tv-card-footer .btn {
    font-weight: var(--font-weight-semibold);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-size: var(--text-sm);
    padding: var(--spacing-3) var(--spacing-5);
    transition: all var(--transition-fast);
}

.quote-signal-card .tv-card-footer .btn:hover {
    transform: translateY(-1px);
    box-shadow: var(--shadow-2);
}

/* Responsive Adjustments */
@media (max-width: 768px) {
    .signal-badge {
        font-size: var(--text-base);
        padding: var(--spacing-2) var(--spacing-4);
    }
    
    .confidence-bar {
        height: 28px;
    }
    
    #signalReasons > ul > li {
        padding-left: var(--spacing-4);
    }
}

/* =========================================================
   AI Analysis Section - Enhanced Dynamic Styling
   ========================================================= */

.quote-ai-analysis-section {
    position: relative;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

@media (max-width: 767px) {
    .quote-ai-analysis-section {
        overflow-x: visible;
        width: 100%;
        max-width: 100%;
    }
}

.quote-ai-analysis-section .card {
    background: linear-gradient(135deg, var(--color-surface) 0%, rgba(255, 255, 255, 0.98) 100%);
    border: 1.5px solid var(--color-border);
    box-shadow: 
        0 4px 16px rgba(0, 0, 0, 0.08),
        0 2px 8px rgba(0, 0, 0, 0.04),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    overflow: hidden;
}

.quote-ai-analysis-section .card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, 
        var(--color-brand) 0%, 
        rgba(103, 78, 153, 0.6) 50%, 
        var(--color-brand) 100%);
    opacity: 0.8;
    z-index: 1;
}

.quote-ai-analysis-section .card:hover {
    box-shadow: 
        0 8px 24px rgba(0, 0, 0, 0.12),
        0 4px 12px rgba(0, 0, 0, 0.06),
        inset 0 1px 0 rgba(255, 255, 255, 0.95);
    transform: translateY(-2px);
}

/* AI Analysis Tabs - Enhanced */
.ai-analysis-tabs {
    border-bottom: 2px solid var(--color-border-light);
    margin-bottom: var(--spacing-5);
    padding-bottom: 0;
    position: relative;
    display: flex;
    gap: var(--spacing-1);
    flex-wrap: wrap;
}

.ai-analysis-tabs::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    height: 2px;
    background: linear-gradient(90deg, 
        transparent 0%, 
        var(--color-brand) 50%, 
        transparent 100%);
    width: 100%;
    opacity: 0.3;
    transition: opacity 0.3s ease;
}

.ai-analysis-tabs:hover::after {
    opacity: 0.5;
}

.ai-analysis-tabs .nav-link {
    color: var(--color-text-secondary);
    border: none;
    border-bottom: 3px solid transparent;
    padding: var(--spacing-3) var(--spacing-4);
    margin-right: 0;
    margin-bottom: -2px;
    font-weight: var(--font-weight-semibold);
    font-size: var(--text-sm);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    position: relative;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    background: transparent;
    border-radius: var(--radius-md) var(--radius-md) 0 0;
    overflow: hidden;
}

.ai-analysis-tabs .nav-link::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.05) 0%, 
        rgba(103, 78, 153, 0.02) 100%);
    opacity: 0;
    transition: opacity 0.3s ease;
    z-index: 0;
}

.ai-analysis-tabs .nav-link:hover {
    color: var(--color-text);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.08) 0%, 
        rgba(103, 78, 153, 0.03) 100%);
    border-bottom-color: var(--color-border);
    transform: translateY(-2px);
}

.ai-analysis-tabs .nav-link:hover::before {
    opacity: 1;
}

.ai-analysis-tabs .nav-link.active {
    color: var(--color-brand);
    border-bottom-color: var(--color-brand);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.12) 0%, 
        rgba(103, 78, 153, 0.05) 100%);
    font-weight: var(--font-weight-bold);
    box-shadow: 
        0 -2px 8px rgba(103, 78, 153, 0.15),
        inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

.ai-analysis-tabs .nav-link.active::before {
    opacity: 1;
}

/* AI Analysis Content */
.ai-tab-content {
    line-height: var(--line-height-relaxed);
    color: var(--color-text);
    font-size: var(--text-base);
    padding: var(--spacing-1) 0;
}

/* AI Analysis Verdict Section */
.ai-analysis-verdict {
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.08) 0%, 
        rgba(103, 78, 153, 0.03) 100%);
    border-left: 4px solid var(--color-brand);
    border-radius: var(--radius-md);
    padding: var(--spacing-4) var(--spacing-5);
    margin-bottom: var(--spacing-5);
    position: relative;
    overflow: hidden;
    box-shadow: 
        inset 0 1px 3px rgba(103, 78, 153, 0.1),
        0 2px 8px rgba(0, 0, 0, 0.04);
}

.ai-analysis-verdict::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 100px;
    height: 100px;
    background: radial-gradient(circle, 
        rgba(103, 78, 153, 0.1) 0%, 
        transparent 70%);
    opacity: 0.5;
    transform: translate(30%, -30%);
    pointer-events: none;
}

.ai-analysis-verdict h6 {
    color: var(--color-brand);
    font-weight: var(--font-weight-bold);
    font-size: var(--text-sm);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-bottom: var(--spacing-3);
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
}

.ai-analysis-verdict h6 i {
    font-size: var(--text-lg);
    filter: drop-shadow(0 2px 4px rgba(103, 78, 153, 0.3));
}

.ai-analysis-verdict p {
    color: var(--color-text);
    font-size: var(--text-lg);
    line-height: var(--line-height-relaxed);
    margin: 0;
    position: relative;
    z-index: 1;
}

/* AI Analysis Text */
.ai-analysis-text {
    color: var(--color-text);
    line-height: var(--line-height-relaxed);
    font-size: var(--text-base);
    margin-bottom: var(--spacing-5);
}

.ai-analysis-text p {
    margin-bottom: var(--spacing-3);
}

/* AI Tab Content Lists */
.ai-tab-content ul {
    list-style: none;
    padding: 0;
    margin: 0 0 var(--spacing-4) 0;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-3);
}

.ai-tab-content ul.list-unstyled {
    list-style: none;
    padding: 0;
}

.ai-tab-content li {
    position: relative;
    padding: var(--spacing-3) var(--spacing-4) var(--spacing-3) calc(32px + var(--spacing-3));
    background: linear-gradient(135deg, 
        rgba(0, 0, 0, 0.02) 0%, 
        rgba(0, 0, 0, 0.01) 100%);
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-md);
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    font-size: var(--text-sm);
    line-height: var(--line-height-relaxed);
    color: var(--color-text);
    min-height: 48px;
    display: flex;
    align-items: center;
}

.ai-tab-content li:hover {
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.05) 0%, 
        rgba(103, 78, 153, 0.02) 100%);
    border-color: var(--color-brand);
    transform: translateX(4px);
    box-shadow: 
        0 2px 8px rgba(103, 78, 153, 0.1),
        0 1px 3px rgba(0, 0, 0, 0.05);
}

.ai-tab-content li i {
    position: absolute;
    left: var(--spacing-3);
    top: 50%;
    transform: translateY(-50%);
    font-size: var(--text-lg);
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    flex-shrink: 0;
    z-index: 1;
}

/* Bull Case Icons */
.ai-tab-content li .bi-check-circle-fill {
    background: rgba(16, 185, 129, 0.15);
    color: var(--color-success);
    box-shadow: 0 2px 6px rgba(16, 185, 129, 0.2);
}

/* Bear Case Icons */
.ai-tab-content li .bi-x-circle-fill {
    background: rgba(239, 68, 68, 0.15);
    color: var(--color-danger);
    box-shadow: 0 2px 6px rgba(239, 68, 68, 0.2);
}

/* Risks Icons */
.ai-tab-content li .bi-exclamation-triangle-fill {
    background: rgba(245, 158, 11, 0.15);
    color: var(--color-warning);
    box-shadow: 0 2px 6px rgba(245, 158, 11, 0.2);
}

/* Watch Icons */
.ai-tab-content li .bi-eye-fill {
    background: rgba(103, 78, 153, 0.15);
    color: var(--color-brand);
    box-shadow: 0 2px 6px rgba(103, 78, 153, 0.2);
}

/* Keywords Badges */
.ai-analysis-text .badge,
#aiAnalysisContent .badge {
    background: linear-gradient(135deg, 
        var(--color-brand) 0%, 
        rgba(103, 78, 153, 0.9) 100%);
    color: #ffffff;
    padding: var(--spacing-1) var(--spacing-3);
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    border-radius: var(--radius-full);
    box-shadow: 
        0 2px 6px rgba(103, 78, 153, 0.3),
        inset 0 1px 0 rgba(255, 255, 255, 0.2);
    transition: all 0.2s ease;
    border: 1px solid rgba(255, 255, 255, 0.2);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.ai-analysis-text .badge:hover,
#aiAnalysisContent .badge:hover {
    transform: translateY(-2px);
    box-shadow: 
        0 4px 12px rgba(103, 78, 153, 0.4),
        inset 0 1px 0 rgba(255, 255, 255, 0.3);
}

/* Cache indicator */
.ai-analysis-text .text-muted.small {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2);
    padding: var(--spacing-2) var(--spacing-3);
    background: var(--color-surface-2);
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    font-size: var(--text-xs);
    color: var(--color-text-secondary);
}

.ai-analysis-text .text-muted.small i {
    color: var(--color-brand);
}

/* Mobile adjustments */
@media (max-width: 767px) {
    .ai-analysis-tabs {
        gap: 0;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }
    
    .ai-analysis-tabs::-webkit-scrollbar {
        display: none;
    }
    
    .ai-analysis-tabs .nav-link {
        padding: var(--spacing-2) var(--spacing-3);
        font-size: var(--text-xs);
        white-space: nowrap;
    }
    
    .ai-analysis-verdict {
        padding: var(--spacing-3) var(--spacing-4);
    }
    
    .ai-tab-content li {
        padding: var(--spacing-2) var(--spacing-3) var(--spacing-2) calc(28px + var(--spacing-2));
        min-height: 44px;
        font-size: var(--text-xs);
    }
    
    .ai-tab-content li i {
        font-size: var(--text-base);
        width: 20px;
        height: 20px;
    }
}

/* =========================================================
   Earnings Links List (Quote Page)
   ========================================================= */

.card-content .earnings-links-list,
#earningsContent .earnings-links-list,
.earnings-links-list {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-4);
    margin: 0;
    padding: 0;
}

.card-content .earnings-link-item,
#earningsContent .earnings-link-item,
.earnings-link-item {
    padding: var(--spacing-4) var(--spacing-5);
    background: linear-gradient(135deg, 
        rgba(0, 0, 0, 0.02) 0%, 
        rgba(0, 0, 0, 0.01) 100%);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-lg);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
    box-shadow: 
        0 2px 8px rgba(0, 0, 0, 0.04),
        0 1px 3px rgba(0, 0, 0, 0.02);
}

.card-content .earnings-link-item::before,
#earningsContent .earnings-link-item::before,
.earnings-link-item::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 4px;
    height: 100%;
    background: linear-gradient(180deg, 
        var(--color-brand) 0%, 
        rgba(103, 78, 153, 0.6) 100%);
    opacity: 0;
    transition: opacity 0.3s ease;
    z-index: 1;
}

.card-content .earnings-link-item:hover,
#earningsContent .earnings-link-item:hover,
.earnings-link-item:hover {
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.08) 0%, 
        rgba(103, 78, 153, 0.03) 100%);
    border-color: var(--color-brand);
    transform: translateX(4px);
    box-shadow: 
        0 6px 16px rgba(103, 78, 153, 0.15),
        0 3px 8px rgba(0, 0, 0, 0.08);
}

.card-content .earnings-link-item:hover::before,
#earningsContent .earnings-link-item:hover::before,
.earnings-link-item:hover::before {
    opacity: 1;
}

.card-content .earnings-link-header,
#earningsContent .earnings-link-header,
.earnings-link-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--spacing-3);
    margin-bottom: var(--spacing-3);
    flex-wrap: wrap;
    position: relative;
    z-index: 2;
}

.card-content .earnings-link-title,
#earningsContent .earnings-link-title,
.earnings-link-title {
    margin: 0;
    font-size: var(--text-lg);
    font-weight: var(--font-weight-semibold);
    line-height: var(--line-height-tight);
    flex: 1;
    min-width: 0;
}

.card-content .earnings-link-title a,
#earningsContent .earnings-link-title a,
.earnings-link-title a {
    color: var(--color-text);
    text-decoration: none;
    transition: color 0.2s ease;
    display: block;
}

.card-content .earnings-link-title a:hover,
#earningsContent .earnings-link-title a:hover,
.earnings-link-title a:hover {
    color: var(--color-brand);
    text-decoration: underline;
}

.card-content .earnings-link-date,
#earningsContent .earnings-link-date,
.earnings-link-date {
    font-size: var(--text-xs);
    color: var(--color-text-muted);
    font-weight: var(--font-weight-semibold);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    white-space: nowrap;
    padding: var(--spacing-1) var(--spacing-3);
    background: linear-gradient(135deg, 
        var(--color-surface-2) 0%, 
        rgba(0, 0, 0, 0.02) 100%);
    border-radius: var(--radius-sm);
    border: 1px solid var(--color-border);
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.03);
    position: relative;
    z-index: 2;
}

.card-content .earnings-link-summary,
#earningsContent .earnings-link-summary,
.earnings-link-summary {
    color: var(--color-text-secondary);
    font-size: var(--text-sm);
    line-height: var(--line-height-relaxed);
    margin: 0 0 var(--spacing-4) 0;
    position: relative;
    z-index: 2;
}

.card-content .earnings-link-item .btn,
#earningsContent .earnings-link-item .btn,
.earnings-link-item .btn {
    margin-top: var(--spacing-2);
    position: relative;
    z-index: 2;
}

/* =========================================================
   Financial Statements Section - Enhanced Dynamic Styling
   ========================================================= */

.financials-subtabs {
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.03) 0%, 
        rgba(255, 255, 255, 0.5) 100%);
    border-radius: var(--radius-lg);
    padding: var(--spacing-2);
    margin-bottom: var(--spacing-5);
    border: 1.5px solid var(--color-border);
    box-shadow: 
        0 2px 8px rgba(0, 0, 0, 0.04),
        0 1px 4px rgba(0, 0, 0, 0.02);
    display: flex;
    gap: var(--spacing-2);
    flex-wrap: wrap;
}

.financials-subtabs .nav-item {
    flex: 1;
    min-width: 120px;
}

.financials-subtabs .nav-link {
    padding: var(--spacing-3) var(--spacing-4);
    border: 1.5px solid transparent;
    border-radius: var(--radius-md);
    background: transparent;
    color: var(--color-text-secondary);
    font-weight: var(--font-weight-semibold);
    font-size: var(--text-sm);
    text-align: center;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}

.financials-subtabs .nav-link::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, 
        var(--color-brand) 0%, 
        rgba(103, 78, 153, 0.6) 100%);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.financials-subtabs .nav-link:hover {
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.08) 0%, 
        rgba(103, 78, 153, 0.04) 100%);
    border-color: rgba(103, 78, 153, 0.2);
    color: var(--color-text);
    transform: translateY(-2px);
    box-shadow: 
        0 4px 12px rgba(103, 78, 153, 0.15),
        0 2px 6px rgba(0, 0, 0, 0.08);
}

.financials-subtabs .nav-link:hover::before {
    opacity: 1;
}

.financials-subtabs .nav-link.active {
    background: linear-gradient(135deg, 
        var(--color-brand) 0%, 
        rgba(103, 78, 153, 0.9) 100%);
    color: #ffffff;
    border-color: var(--color-brand);
    box-shadow: 
        0 4px 16px rgba(103, 78, 153, 0.3),
        0 2px 8px rgba(0, 0, 0, 0.1);
    font-weight: var(--font-weight-bold);
}

.financials-subtabs .nav-link.active::before {
    opacity: 1;
    background: linear-gradient(90deg, 
        rgba(255, 255, 255, 0.3) 0%, 
        rgba(255, 255, 255, 0.2) 100%);
}

/* Financial Statements Card Content */
#incomeContent,
#balanceContent,
#cashflowContent {
    position: relative;
}

#incomeContent .card,
#balanceContent .card,
#cashflowContent .card {
    background: linear-gradient(135deg, 
        var(--color-surface) 0%, 
        rgba(255, 255, 255, 0.98) 50%,
        rgba(103, 78, 153, 0.02) 100%);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: 
        0 4px 16px rgba(0, 0, 0, 0.06),
        0 2px 8px rgba(0, 0, 0, 0.04),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    overflow: hidden;
    position: relative;
}

#incomeContent .card::before,
#balanceContent .card::before,
#cashflowContent .card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, 
        transparent 0%, 
        var(--color-brand) 20%, 
        var(--color-brand) 80%, 
        transparent 100%);
    opacity: 0.7;
    z-index: 1;
}

/* Financial Tables */
#incomeContent table,
#balanceContent table,
#cashflowContent table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    margin: 0;
}

#incomeContent table thead,
#balanceContent table thead,
#cashflowContent table thead {
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.08) 0%, 
        rgba(103, 78, 153, 0.04) 100%);
    position: sticky;
    top: 0;
    z-index: 10;
}

#incomeContent table th,
#balanceContent table th,
#cashflowContent table th {
    padding: var(--spacing-3) var(--spacing-4);
    text-align: left;
    font-weight: var(--font-weight-bold);
    font-size: var(--text-sm);
    color: var(--color-text);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-bottom: 2px solid rgba(103, 78, 153, 0.2);
    border-right: 1px solid rgba(103, 78, 153, 0.1);
}

#incomeContent table th:last-child,
#balanceContent table th:last-child,
#cashflowContent table th:last-child {
    border-right: none;
}

#incomeContent table td,
#balanceContent table td,
#cashflowContent table td {
    padding: var(--spacing-3) var(--spacing-4);
    border-bottom: 1px solid var(--color-border);
    border-right: 1px solid rgba(103, 78, 153, 0.05);
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    transition: all 0.2s ease;
}

#incomeContent table td:last-child,
#balanceContent table td:last-child,
#cashflowContent table td:last-child {
    border-right: none;
}

#incomeContent table tbody tr:hover,
#balanceContent table tbody tr:hover,
#cashflowContent table tbody tr:hover {
    background: linear-gradient(90deg, 
        rgba(103, 78, 153, 0.04) 0%, 
        transparent 100%);
}

#incomeContent table tbody tr:hover td,
#balanceContent table tbody tr:hover td,
#cashflowContent table tbody tr:hover td {
    color: var(--color-text);
    transform: translateX(4px);
}

#incomeContent table tbody tr:last-child td,
#balanceContent table tbody tr:last-child td,
#cashflowContent table tbody tr:last-child td {
    border-bottom: none;
}

@media (max-width: 767px) {
    .card-content .earnings-link-item,
    #earningsContent .earnings-link-item,
    .earnings-link-item {
        padding: var(--spacing-3) var(--spacing-4);
    }
    
    .card-content .earnings-link-title,
    #earningsContent .earnings-link-title,
    .earnings-link-title {
        font-size: var(--text-base);
    }
    
    .card-content .earnings-link-header,
    #earningsContent .earnings-link-header,
    .earnings-link-header {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--spacing-2);
    }
    
    .card-content .earnings-link-date,
    #earningsContent .earnings-link-date,
    .earnings-link-date {
        align-self: flex-start;
    }
}

/* Sticky Trade Idea CTA (Desktop Only) */
.quote-trade-idea-rail {
    display: none;
}

@media (min-width: 1024px) {
    .quote-trade-idea-rail {
        display: block;
        position: sticky;
        top: calc(64px + 80px);
        margin-top: var(--spacing-6);
    }
}

/* More utilities will be added as needed */

/* =========================================================
   News V2 (Apple-clean 3-column + Wire)
   ========================================================= */

.news-v2 {
    background-color: var(--color-surface);
}

.news-hero {
    background: transparent !important;
    position: relative;
    isolation: isolate;
    padding: var(--spacing-8) 0 var(--spacing-10);
    overflow: hidden;
}

.news-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    left: 50%;
    width: 100vw;
    transform: translateX(-50%);
    background: linear-gradient(135deg, 
        #674e99 0%, 
        #5a4288 30%,
        #4a3a6b 60%,
        #3d2f5a 100%);
    z-index: -1;
}

.news-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    left: 50%;
    width: 100vw;
    transform: translateX(-50%);
    background: 
        radial-gradient(circle at 20% 50%, rgba(255, 255, 255, 0.08) 0%, transparent 50%),
        radial-gradient(circle at 80% 50%, rgba(255, 255, 255, 0.06) 0%, transparent 50%),
        radial-gradient(circle at 50% 0%, rgba(255, 255, 255, 0.04) 0%, transparent 60%);
    z-index: -1;
    pointer-events: none;
    animation: heroShimmer 8s ease-in-out infinite;
}

@keyframes heroShimmer {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: 0.7;
    }
}

.news-hero-content {
    max-width: 980px;
    position: relative;
    z-index: 2;
}

.news-hero-title {
    background: linear-gradient(135deg, 
        #ffffff 0%, 
        rgba(255, 255, 255, 0.98) 50%,
        rgba(255, 255, 255, 0.95) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    letter-spacing: -0.04em;
    margin: 0 0 var(--spacing-4);
    font-size: var(--text-3xl);
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-tight);
    text-shadow: 0 2px 20px rgba(255, 255, 255, 0.1);
    position: relative;
    padding-bottom: var(--spacing-3);
}

.news-hero-title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 80px;
    height: 4px;
    background: linear-gradient(90deg, 
        rgba(255, 255, 255, 0.6) 0%, 
        rgba(255, 255, 255, 0.3) 100%);
    border-radius: 2px;
    animation: titleUnderline 2s ease-in-out infinite;
}

@keyframes titleUnderline {
    0%, 100% {
        width: 80px;
        opacity: 0.6;
    }
    50% {
        width: 120px;
        opacity: 1;
    }
}

@media (min-width: 768px) {
    .news-hero-title {
        font-size: var(--text-4xl);
        margin-bottom: var(--spacing-5);
    }
}

@media (min-width: 1024px) {
    .news-hero-title {
        font-size: var(--text-5xl);
    }
}

.news-hero-subtitle {
    color: rgba(255, 255, 255, 0.88) !important;
    margin: 0 0 var(--spacing-5);
    max-width: 100%;
    font-size: var(--text-lg);
    line-height: var(--line-height-relaxed);
    font-weight: var(--font-weight-normal);
    text-shadow: 0 1px 10px rgba(0, 0, 0, 0.1);
}

.news-hero-subtitle strong {
    color: rgba(255, 255, 255, 0.98);
    font-weight: var(--font-weight-semibold);
    background: linear-gradient(135deg, 
        rgba(255, 255, 255, 0.98) 0%, 
        rgba(255, 255, 255, 0.85) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* News Search Form */
.news-search-form {
    margin-top: var(--spacing-5);
}

.news-search-wrapper {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    background: rgba(255, 255, 255, 0.10);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 999px;
    padding: var(--spacing-2) var(--spacing-3);
    backdrop-filter: blur(14px) saturate(140%);
    -webkit-backdrop-filter: blur(14px) saturate(140%);
    max-width: 600px;
}

.news-search-input {
    flex: 1;
    min-width: 0;
    border: none;
    outline: none;
    background: transparent;
    color: rgba(255, 255, 255, 0.92);
    font-size: var(--text-base);
    padding: var(--spacing-2) 0;
}

.news-search-input::placeholder {
    color: rgba(255, 255, 255, 0.62);
}

.news-search-button {
    border: none;
    background: rgba(255, 255, 255, 0.12);
    color: rgba(255, 255, 255, 0.92);
    padding: var(--spacing-2) var(--spacing-4);
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-2);
    cursor: pointer;
    transition: background 0.2s ease;
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
}

.news-search-button:hover {
    background: rgba(255, 255, 255, 0.18);
}

.news-search-button i {
    font-size: var(--text-base);
}

/* News Empty State */
.news-empty-state {
    padding: var(--spacing-8) var(--spacing-4);
    text-align: center;
}

.news-empty-message {
    color: var(--color-text-secondary);
    font-size: var(--text-base);
    line-height: var(--line-height-relaxed);
    margin: 0;
}

.news-empty-message a {
    color: var(--color-brand);
    text-decoration: underline;
}

.news-empty-message a:hover {
    text-decoration: none;
}

.news-snapshot {
    padding: 16px 0 6px;
}

.news-snapshot-card {
    background: #ffffff;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-xl);
    overflow: hidden;
}

.news-snapshot-toggle {
    width: 100%;
    background: transparent;
    border: none;
    padding: 0;
    cursor: pointer;
    text-align: left;
    transition: background-color var(--transition-fast);
}

.news-snapshot-toggle:hover {
    background-color: var(--color-surface-2);
}

.news-snapshot-toggle[aria-expanded="true"] .news-snapshot-chevron {
    transform: rotate(180deg);
}

.news-snapshot-head {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    flex-wrap: wrap;
    padding: 16px;
}

.news-snapshot-kicker {
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    color: rgba(2, 26, 56, 0.72);
}

.news-snapshot-meta {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.news-snapshot-chevron {
    font-size: var(--text-sm);
    color: var(--color-text-muted);
    transition: transform var(--transition-fast);
    margin-left: var(--spacing-1);
}

.news-snapshot-time {
    color: rgba(2, 26, 56, 0.60);
    font-size: 12px;
}

.news-snapshot-sentiment {
    border-radius: 999px;
    padding: 6px 10px;
    font-size: 12px;
    font-weight: 600;
    border: 1px solid;
    background: rgba(255, 255, 255, 0.7);
}

.news-snapshot-sentiment-positive {
    color: rgba(16, 185, 129, 0.95);
    border-color: rgba(16, 185, 129, 0.5);
}

.news-snapshot-sentiment-negative {
    color: rgba(239, 68, 68, 0.95);
    border-color: rgba(239, 68, 68, 0.5);
}

.news-snapshot-sentiment-neutral {
    color: rgba(2, 26, 56, 0.72);
    border-color: rgba(2, 26, 56, 0.25);
}

.news-snapshot-body {
    color: rgba(2, 26, 56, 0.82);
    line-height: 1.65;
    padding: 0 16px 16px;
}

.news-snapshot-body p {
    margin: 0;
}

.news-snapshot-list {
    margin: 0;
    padding-left: 20px;
    list-style-type: disc;
}

.news-snapshot-list li {
    margin-bottom: 8px;
    line-height: 1.65;
}

.news-snapshot-list li:last-child {
    margin-bottom: 0;
}

.news-body {
    padding: 18px 0 40px;
}

.news-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
}

@media (min-width: 1024px) {
    .news-layout {
        grid-template-columns: 320px 1fr;
        align-items: start;
        gap: 18px;
    }
    .news-layout-reversed {
        grid-template-columns: 1fr 320px;
    }
}

.news-left {
    background: transparent;
    border: none;
    padding: 0;
}

.news-left-stack {
    display: grid;
    gap: 12px;
}

.news-right {
    background: transparent;
    border: none;
    padding: 0;
}

.news-right-stack {
    display: grid;
    gap: 12px;
}

.news-panel {
    background: #ffffff;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-xl);
    overflow: hidden;
}

.news-panel-search {
    padding: 12px;
}

.news-search-form-sidebar {
    margin: 0;
}

.news-search-wrapper-sidebar {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    background: var(--color-surface-2);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: var(--spacing-2);
}

.news-search-input-sidebar {
    flex: 1;
    min-width: 0;
    border: none;
    outline: none;
    background: transparent;
    color: var(--color-text);
    font-size: var(--text-sm);
    padding: 0;
}

.news-search-input-sidebar::placeholder {
    color: var(--color-text-muted);
}

.news-search-button-sidebar {
    border: none;
    background: transparent;
    color: var(--color-text-muted);
    padding: var(--spacing-1);
    border-radius: var(--radius-sm);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background-color var(--transition-fast), color var(--transition-fast);
    flex-shrink: 0;
}

.news-search-button-sidebar:hover {
    background-color: var(--color-surface-3);
    color: var(--color-text);
}

.news-search-button-sidebar i {
    font-size: var(--text-base);
}

.news-categories-toggle {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 12px 14px;
    border: none;
    background: linear-gradient(180deg, #ffffff 0%, #f6f7fb 100%);
    color: rgba(2, 26, 56, 0.92);
    font-weight: 800;
    letter-spacing: -0.01em;
    cursor: pointer;
    transition: all 0.2s ease;
}

.news-categories-toggle:hover {
    background: linear-gradient(180deg, #f6f7fb 0%, #eef0f4 100%);
}

.news-categories-toggle[aria-expanded="true"] .bi-chevron-down {
    transform: rotate(180deg);
}

.news-categories-toggle .bi-chevron-down {
    transition: transform 0.3s ease;
    font-size: 14px;
    color: rgba(2, 26, 56, 0.60);
    flex-shrink: 0;
}

.news-wire-toggle {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 12px 14px;
    border: none;
    background: linear-gradient(180deg, #ffffff 0%, #f6f7fb 100%);
    color: rgba(2, 26, 56, 0.92);
    font-weight: 800;
    letter-spacing: -0.01em;
    cursor: pointer;
    transition: all 0.2s ease;
}

.news-wire-toggle:hover {
    background: linear-gradient(180deg, #f6f7fb 0%, #eef0f4 100%);
}

.news-wire-toggle[aria-expanded="true"] .bi-chevron-down {
    transform: rotate(180deg);
}

.news-wire-toggle .bi-chevron-down {
    transition: transform 0.3s ease;
    font-size: 14px;
    color: rgba(2, 26, 56, 0.60);
    flex-shrink: 0;
}

.news-wire-toggle span {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1;
}

.news-wire-toggle-title {
    font-size: 14px;
    letter-spacing: -0.01em;
    font-weight: 800;
    color: rgba(2, 26, 56, 0.92);
}

.news-wire-live-badge {
    font-size: 11px;
    color: #10b981;
    font-weight: 700;
    padding: 3px 8px;
    background: rgba(16, 185, 129, 0.1);
    border: 1px solid rgba(16, 185, 129, 0.3);
    border-radius: 999px;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    position: relative;
    animation: pulseLive 2s ease-in-out infinite;
}

.news-wire-live-badge::before {
    content: '';
    position: absolute;
    inset: -2px;
    border-radius: 999px;
    background: rgba(16, 185, 129, 0.2);
    opacity: 0;
    animation: pulseRing 2s ease-in-out infinite;
}

@keyframes pulseLive {
    0%, 100% {
        opacity: 1;
        box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.4);
    }
    50% {
        opacity: 0.9;
        box-shadow: 0 0 0 4px rgba(16, 185, 129, 0);
    }
}

@keyframes pulseRing {
    0% {
        opacity: 0;
        transform: scale(1);
    }
    50% {
        opacity: 0.5;
        transform: scale(1.1);
    }
    100% {
        opacity: 0;
        transform: scale(1.2);
    }
}

.news-categories-body {
    padding: 12px 14px 14px;
}

.news-cat-group {
    margin-bottom: 14px;
}

.news-cat-group:last-child {
    margin-bottom: 0;
}

.news-cat-group-title {
    font-size: 11px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(2, 26, 56, 0.56);
    font-weight: 800;
    margin: 10px 0 10px;
}

.news-cat-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 8px;
}

.news-cat-link {
    display: block;
    text-decoration: none;
    color: rgba(2, 26, 56, 0.78);
    font-size: 14px;
    padding: 8px 10px;
    border-radius: 12px;
}

.news-cat-link:hover {
    background: rgba(103, 78, 153, 0.06);
    color: rgba(2, 26, 56, 0.96);
}

.news-cat-link.active {
    background: rgba(103, 78, 153, 0.10);
    border: 1px solid rgba(103, 78, 153, 0.22);
    color: rgba(2, 26, 56, 0.96);
}

.news-breadcrumbs {
    margin-bottom: var(--spacing-5);
    position: relative;
    z-index: 2;
}

.news-breadcrumbs-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-2);
    align-items: center;
    font-size: var(--text-sm);
    color: rgba(255, 255, 255, 0.75);
}

.news-breadcrumbs-list li {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2);
    position: relative;
}

.news-breadcrumbs-list li::after {
    content: "/";
    color: rgba(255, 255, 255, 0.35);
    font-weight: var(--font-weight-normal);
    margin-left: var(--spacing-1);
    opacity: 0.6;
    transition: opacity 0.3s ease;
}

.news-breadcrumbs-list li:hover::after {
    opacity: 1;
}

.news-breadcrumbs-list li:last-child::after {
    content: "";
}

.news-breadcrumbs a {
    color: rgba(255, 255, 255, 0.85);
    text-decoration: none;
    padding: var(--spacing-1) var(--spacing-2);
    border-radius: var(--radius-sm);
    transition: all 0.3s ease;
    font-weight: var(--font-weight-medium);
    position: relative;
}

.news-breadcrumbs a::before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, 0.1);
    border-radius: var(--radius-sm);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.news-breadcrumbs a:hover {
    color: #ffffff;
    text-decoration: none;
    background: rgba(255, 255, 255, 0.12);
    transform: translateY(-1px);
}

.news-breadcrumbs a:hover::before {
    opacity: 1;
}

.news-breadcrumbs .active {
    color: rgba(255, 255, 255, 0.95);
    font-weight: var(--font-weight-semibold);
    padding: var(--spacing-1) var(--spacing-2);
    background: rgba(255, 255, 255, 0.08);
    border-radius: var(--radius-sm);
    position: relative;
}

.news-breadcrumbs .active::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: var(--spacing-2);
    right: var(--spacing-2);
    height: 2px;
    background: linear-gradient(90deg, 
        rgba(255, 255, 255, 0.6) 0%, 
        rgba(255, 255, 255, 0.3) 100%);
    border-radius: 1px;
}

.news-article-hero-meta,
.news-article-hero-meta2 {
    display: flex;
    gap: var(--spacing-3);
    align-items: center;
    flex-wrap: wrap;
    color: rgba(255, 255, 255, 0.75);
    font-size: var(--text-sm);
    margin-bottom: var(--spacing-4);
    position: relative;
    z-index: 2;
}

.news-article-hero-meta2 {
    margin-top: var(--spacing-4);
    margin-bottom: 0;
    padding-top: var(--spacing-4);
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.news-article-hero-category {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: var(--spacing-2) var(--spacing-4);
    border-radius: 999px;
    border: 1.5px solid rgba(255, 255, 255, 0.2);
    background: linear-gradient(135deg, 
        rgba(255, 255, 255, 0.15) 0%, 
        rgba(255, 255, 255, 0.10) 100%);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    color: rgba(255, 255, 255, 0.98);
    text-decoration: none;
    font-weight: var(--font-weight-bold);
    letter-spacing: 0.05em;
    text-transform: uppercase;
    font-size: var(--text-xs);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 
        0 2px 8px rgba(0, 0, 0, 0.1),
        0 1px 4px rgba(0, 0, 0, 0.06),
        inset 0 1px 0 rgba(255, 255, 255, 0.2);
    position: relative;
    overflow: hidden;
}

.news-article-hero-category::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, 
        rgba(255, 255, 255, 0.2) 0%, 
        transparent 100%);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.news-article-hero-category:hover {
    background: linear-gradient(135deg, 
        rgba(255, 255, 255, 0.25) 0%, 
        rgba(255, 255, 255, 0.18) 100%);
    border-color: rgba(255, 255, 255, 0.3);
    transform: translateY(-2px) scale(1.05);
    box-shadow: 
        0 4px 16px rgba(0, 0, 0, 0.15),
        0 2px 8px rgba(0, 0, 0, 0.1),
        inset 0 1px 0 rgba(255, 255, 255, 0.3);
}

.news-article-hero-category:hover::before {
    opacity: 1;
}

.news-article-hero-date {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-1);
    padding: var(--spacing-2) var(--spacing-3);
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.15);
    background: linear-gradient(135deg, 
        rgba(255, 255, 255, 0.12) 0%, 
        rgba(255, 255, 255, 0.08) 100%);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    color: rgba(255, 255, 255, 0.9);
    font-weight: var(--font-weight-medium);
    font-size: var(--text-xs);
    transition: all 0.3s ease;
    box-shadow: 
        0 1px 4px rgba(0, 0, 0, 0.08),
        inset 0 1px 0 rgba(255, 255, 255, 0.15);
}

.news-article-hero-date::before {
    content: '📅';
    font-size: 0.9em;
    opacity: 0.8;
}

.news-article-hero-date:hover {
    background: linear-gradient(135deg, 
        rgba(255, 255, 255, 0.18) 0%, 
        rgba(255, 255, 255, 0.12) 100%);
    border-color: rgba(255, 255, 255, 0.25);
    transform: translateY(-1px);
    box-shadow: 
        0 2px 8px rgba(0, 0, 0, 0.12),
        inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

.news-article-hero-author {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-1);
    padding: var(--spacing-2) var(--spacing-3);
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.15);
    background: linear-gradient(135deg, 
        rgba(255, 255, 255, 0.12) 0%, 
        rgba(255, 255, 255, 0.08) 100%);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    color: rgba(255, 255, 255, 0.9);
    font-weight: var(--font-weight-medium);
    font-size: var(--text-xs);
    transition: all 0.3s ease;
    box-shadow: 
        0 1px 4px rgba(0, 0, 0, 0.08),
        inset 0 1px 0 rgba(255, 255, 255, 0.15);
}

.news-article-hero-author::before {
    content: '✍️';
    font-size: 0.9em;
    opacity: 0.8;
}

.news-article-hero-author:hover {
    background: linear-gradient(135deg, 
        rgba(255, 255, 255, 0.18) 0%, 
        rgba(255, 255, 255, 0.12) 100%);
    border-color: rgba(255, 255, 255, 0.25);
    transform: translateY(-1px);
    box-shadow: 
        0 2px 8px rgba(0, 0, 0, 0.12),
        inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

.news-article-hero-ticker {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: var(--spacing-2) var(--spacing-3) var(--spacing-2) var(--spacing-5);
    border-radius: 999px;
    border: 1.5px solid rgba(255, 255, 255, 0.2);
    background: linear-gradient(135deg, 
        rgba(255, 255, 255, 0.15) 0%, 
        rgba(255, 255, 255, 0.10) 100%);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    color: rgba(255, 255, 255, 0.98);
    text-decoration: none;
    font-weight: var(--font-weight-bold);
    letter-spacing: 0.05em;
    text-transform: uppercase;
    font-size: var(--text-xs);
    position: relative;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 
        0 2px 8px rgba(0, 0, 0, 0.1),
        0 1px 4px rgba(0, 0, 0, 0.06),
        inset 0 1px 0 rgba(255, 255, 255, 0.2);
    overflow: hidden;
}

.news-article-hero-ticker::before {
    content: "";
    width: 10px;
    height: 10px;
    border-radius: 999px;
    position: absolute;
    left: var(--spacing-3);
    top: 50%;
    transform: translateY(-50%);
    background: rgba(255, 255, 255, 0.5);
    transition: all 0.3s ease;
    box-shadow: 0 0 8px rgba(255, 255, 255, 0.3);
}

.news-article-hero-ticker::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, 
        rgba(255, 255, 255, 0.2) 0%, 
        transparent 100%);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.news-article-hero-ticker:hover {
    background: linear-gradient(135deg, 
        rgba(255, 255, 255, 0.25) 0%, 
        rgba(255, 255, 255, 0.18) 100%);
    border-color: rgba(255, 255, 255, 0.3);
    transform: translateY(-2px) scale(1.05);
    box-shadow: 
        0 4px 16px rgba(0, 0, 0, 0.15),
        0 2px 8px rgba(0, 0, 0, 0.1),
        inset 0 1px 0 rgba(255, 255, 255, 0.3);
}

.news-article-hero-ticker:hover::before {
    transform: translateY(-50%) scale(1.3);
    box-shadow: 0 0 12px rgba(255, 255, 255, 0.5);
}

.news-article-hero-ticker:hover::after {
    opacity: 1;
}

.news-article-hero-ticker[data-sentiment="positive"]::before {
    background: rgba(16, 185, 129, 1);
    box-shadow: 0 0 12px rgba(16, 185, 129, 0.6);
}

.news-article-hero-ticker[data-sentiment="positive"]:hover::before {
    box-shadow: 0 0 16px rgba(16, 185, 129, 0.8);
}

.news-article-hero-ticker[data-sentiment="neutral"]::before {
    background: rgba(255, 255, 255, 0.7);
    box-shadow: 0 0 8px rgba(255, 255, 255, 0.4);
}

.news-article-hero-ticker[data-sentiment="neutral"]:hover::before {
    box-shadow: 0 0 12px rgba(255, 255, 255, 0.6);
}

.news-article-hero-ticker[data-sentiment="negative"]::before {
    background: rgba(239, 68, 68, 1);
    box-shadow: 0 0 12px rgba(239, 68, 68, 0.6);
}

.news-article-hero-ticker[data-sentiment="negative"]:hover::before {
    box-shadow: 0 0 16px rgba(239, 68, 68, 0.8);
}

.news-article-reader {
    background: linear-gradient(135deg, 
        #ffffff 0%, 
        rgba(255, 255, 255, 0.98) 50%,
        rgba(103, 78, 153, 0.01) 100%);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-xl);
    padding: 25px;
    box-shadow: 
        0 4px 16px rgba(0, 0, 0, 0.06),
        0 2px 8px rgba(0, 0, 0, 0.04),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    position: relative;
    overflow: hidden;
}

.news-article-reader::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, 
        transparent 0%, 
        var(--color-brand) 20%, 
        var(--color-brand) 80%, 
        transparent 100%);
    opacity: 0.7;
    z-index: 1;
}

.news-article-reader::after {
    content: '';
    position: absolute;
    top: -50%;
    right: -10%;
    width: 400px;
    height: 400px;
    background: radial-gradient(circle, 
        rgba(103, 78, 153, 0.04) 0%, 
        transparent 70%);
    opacity: 0.5;
    pointer-events: none;
    z-index: 0;
}

@media (min-width: 768px) {
    .news-article-reader {
        padding: 25px;
    }
}

.news-article-image {
    position: relative;
    margin-bottom: var(--spacing-6);
    border-radius: var(--radius-xl);
    overflow: hidden;
    box-shadow: 
        0 8px 24px rgba(0, 0, 0, 0.12),
        0 4px 12px rgba(0, 0, 0, 0.08);
    z-index: 2;
}

.news-article-image img {
    width: 100%;
    height: auto;
    border-radius: var(--radius-xl);
    border: 1.5px solid var(--color-border);
    display: block;
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.news-article-image:hover img {
    transform: scale(1.02);
}

.news-article-summary-box {
    margin-top: var(--spacing-6);
    margin-bottom: var(--spacing-6);
    padding: var(--spacing-5) var(--spacing-6);
    border-radius: var(--radius-lg);
    border: 1.5px solid rgba(103, 78, 153, 0.2);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.05) 0%, 
        rgba(103, 78, 153, 0.02) 50%,
        rgba(255, 255, 255, 0.95) 100%);
    box-shadow: 
        0 4px 12px rgba(103, 78, 153, 0.1),
        0 2px 6px rgba(0, 0, 0, 0.05),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    position: relative;
    z-index: 2;
    border-left: 4px solid var(--color-brand);
}

.news-article-summary-text {
    margin: 0;
    color: var(--color-text);
    line-height: 1.8;
    font-size: var(--text-base);
    font-weight: var(--font-weight-medium);
}

@media (min-width: 768px) {
    .news-article-summary-text {
        font-size: var(--text-lg);
        line-height: 1.85;
    }
}

.news-article-module {
    margin-top: var(--spacing-8);
    padding-top: var(--spacing-6);
    border-top: 2px solid rgba(103, 78, 153, 0.1);
    position: relative;
    z-index: 2;
}

.news-article-section-title {
    margin: 0 0 var(--spacing-4);
    background: linear-gradient(135deg, 
        var(--color-text) 0%, 
        rgba(103, 78, 153, 0.9) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    letter-spacing: -0.02em;
    font-size: var(--text-xl);
    font-weight: var(--font-weight-bold);
    position: relative;
    padding-bottom: var(--spacing-2);
}

.news-article-section-title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 60px;
    height: 3px;
    background: linear-gradient(90deg, 
        var(--color-brand) 0%, 
        rgba(103, 78, 153, 0.6) 100%);
    border-radius: 2px;
}

@media (min-width: 768px) {
    .news-article-section-title {
        font-size: var(--text-2xl);
    }
}

.news-article-key-points-list,
.news-article-risks-list {
    margin: 0;
    padding-left: 0;
    color: var(--color-text);
    line-height: 1.8;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-3);
}

.news-article-key-points-list li,
.news-article-risks-list li {
    padding: var(--spacing-3) var(--spacing-4);
    padding-left: var(--spacing-6);
    background: linear-gradient(90deg, 
        rgba(103, 78, 153, 0.03) 0%, 
        transparent 100%);
    border-left: 3px solid rgba(103, 78, 153, 0.2);
    border-radius: var(--radius-sm);
    position: relative;
    transition: all 0.3s ease;
    font-size: var(--text-base);
}

.news-article-key-points-list li::before,
.news-article-risks-list li::before {
    content: '';
    left: var(--spacing-4);
    top: 50%;
    transform: translateY(-50%);
    width: 6px;
    height: 6px;
    background: var(--color-brand);
    border-radius: 50%;
    opacity: 0.6;
    transition: all 0.3s ease;
}

.news-article-key-points-list li:hover,
.news-article-risks-list li:hover {
    background: linear-gradient(90deg, 
        rgba(103, 78, 153, 0.06) 0%, 
        transparent 100%);
    border-left-color: var(--color-brand);
    transform: translateX(4px);
}

.news-article-key-points-list li:hover::before,
.news-article-risks-list li:hover::before {
    opacity: 1;
    transform: translateY(-50%) scale(1.5);
    box-shadow: 0 0 8px rgba(103, 78, 153, 0.4);
}

.news-article-risks-list li {
    border-left-color: rgba(239, 68, 68, 0.3);
    background: linear-gradient(90deg, 
        rgba(239, 68, 68, 0.03) 0%, 
        transparent 100%);
}

.news-article-risks-list li::before {
    background: var(--color-danger);
}

.news-article-risks-list li:hover {
    background: linear-gradient(90deg, 
        rgba(239, 68, 68, 0.06) 0%, 
        transparent 100%);
    border-left-color: var(--color-danger);
}

.news-article-risks-list li:hover::before {
    box-shadow: 0 0 8px rgba(239, 68, 68, 0.4);
}

.news-article-prose {
    margin-top: var(--spacing-6);
    color: var(--color-text);
    line-height: 1.85;
    font-size: var(--text-base);
    position: relative;
    z-index: 2;
    max-width: 100%;
}

@media (min-width: 768px) {
    .news-article-prose {
        font-size: var(--text-lg);
        line-height: 1.9;
    }
}

@media (min-width: 1024px) {
    .news-article-prose {
        font-size: var(--text-xl);
        line-height: 1.95;
    }
}

.news-article-prose :where(p) {
    color: var(--color-text) !important;
    margin-bottom: var(--spacing-5);
    font-weight: var(--font-weight-normal);
    text-align: justify;
    text-justify: inter-word;
}

.news-article-prose :where(p:first-of-type) {
    font-size: 1.15em;
    line-height: 1.9;
    color: var(--color-text) !important;
    font-weight: var(--font-weight-medium);
    margin-bottom: var(--spacing-6);
    padding-left: var(--spacing-4);
    border-left: 4px solid rgba(103, 78, 153, 0.3);
    background: linear-gradient(90deg, 
        rgba(103, 78, 153, 0.02) 0%, 
        transparent 100%);
    padding: var(--spacing-4);
    border-radius: var(--radius-sm);
}

.news-article-prose :where(li) {
    color: var(--color-text) !important;
    margin-bottom: var(--spacing-2);
    padding-left: var(--spacing-2);
    position: relative;
}

.news-article-prose :where(ul, ol) {
    margin-bottom: var(--spacing-5);
    padding-left: var(--spacing-6);
}

.news-article-prose :where(ul li) {
    list-style: none;
    position: relative;
    padding-left: var(--spacing-5);
}

.news-article-prose :where(ul li::before) {
    content: '•';
    position: absolute;
    left: 0;
    color: var(--color-brand);
    font-weight: var(--font-weight-bold);
    font-size: 1.2em;
}

.news-article-prose :where(ol li) {
    counter-increment: list-counter;
}

.news-article-prose :where(ol) {
    counter-reset: list-counter;
}

.news-article-prose :where(ol li::marker) {
    color: var(--color-brand);
    font-weight: var(--font-weight-bold);
}

.news-article-prose :where(h2) {
    margin-top: var(--spacing-8);
    margin-bottom: var(--spacing-4);
    padding-top: var(--spacing-6);
    border-top: 2px solid rgba(103, 78, 153, 0.1);
    letter-spacing: -0.03em;
    background: linear-gradient(135deg, 
        var(--color-text) 0%, 
        rgba(103, 78, 153, 0.9) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    font-size: var(--text-2xl);
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-tight);
    position: relative;
}

.news-article-prose :where(h2:first-of-type) {
    margin-top: 0;
    padding-top: 0;
    border-top: none;
}

.news-article-prose :where(h3) {
    margin-top: var(--spacing-6);
    margin-bottom: var(--spacing-3);
    letter-spacing: -0.02em;
    background: linear-gradient(135deg, 
        var(--color-text) 0%, 
        rgba(103, 78, 153, 0.8) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    font-size: var(--text-xl);
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-tight);
}

.news-article-prose :where(h4) {
    margin-top: var(--spacing-5);
    margin-bottom: var(--spacing-2);
    color: var(--color-text) !important;
    font-size: var(--text-lg);
    font-weight: var(--font-weight-semibold);
}

.news-article-prose :where(a) {
    color: var(--color-brand) !important;
    text-decoration: none;
    border-bottom: 1.5px solid rgba(103, 78, 153, 0.3);
    transition: all 0.3s ease;
    font-weight: var(--font-weight-medium);
    padding-bottom: 2px;
}

.news-article-prose :where(a:hover) {
    color: var(--color-brand-dark) !important;
    border-bottom-color: var(--color-brand);
    background: linear-gradient(90deg, 
        rgba(103, 78, 153, 0.05) 0%, 
        transparent 100%);
    padding-left: var(--spacing-1);
    padding-right: var(--spacing-1);
    margin-left: calc(-1 * var(--spacing-1));
    margin-right: calc(-1 * var(--spacing-1));
    border-radius: var(--radius-sm);
}

.news-article-prose :where(strong, b) {
    color: var(--color-text);
    font-weight: var(--font-weight-bold);
}

.news-article-prose :where(em, i) {
    font-style: italic;
    color: var(--color-text-secondary);
}

.news-article-prose :where(blockquote) {
    margin: var(--spacing-6) 0;
    padding: var(--spacing-4) var(--spacing-5);
    padding-left: var(--spacing-6);
    border-left: 4px solid var(--color-brand);
    background: linear-gradient(90deg, 
        rgba(103, 78, 153, 0.05) 0%, 
        rgba(103, 78, 153, 0.02) 50%,
        transparent 100%);
    border-radius: var(--radius-sm);
    font-style: italic;
    color: var(--color-text-secondary);
    position: relative;
}

.news-article-prose :where(blockquote::before) {
    content: '"';
    position: absolute;
    left: var(--spacing-4);
    top: var(--spacing-2);
    font-size: 3em;
    color: var(--color-brand);
    opacity: 0.3;
    font-family: Georgia, serif;
    line-height: 1;
}

.news-article-prose :where(code) {
    background: rgba(103, 78, 153, 0.08);
    border: 1px solid rgba(103, 78, 153, 0.2);
    border-radius: var(--radius-sm);
    padding: 2px 6px;
    font-size: 0.9em;
    color: var(--color-brand-dark);
    font-family: 'Courier New', monospace;
}

.news-article-prose :where(pre) {
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.05) 0%, 
        rgba(103, 78, 153, 0.02) 100%);
    border: 1.5px solid rgba(103, 78, 153, 0.2);
    border-radius: var(--radius-md);
    padding: var(--spacing-4);
    overflow-x: auto;
    margin-bottom: var(--spacing-5);
    box-shadow: 
        0 2px 8px rgba(0, 0, 0, 0.04),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.news-article-prose :where(pre code) {
    background: transparent;
    border: none;
    padding: 0;
    color: var(--color-text);
}

.news-article-prose :where(img) {
    max-width: 100%;
    height: auto;
    border-radius: var(--radius-md);
    margin: var(--spacing-6) 0;
    box-shadow: 
        0 4px 12px rgba(0, 0, 0, 0.1),
        0 2px 6px rgba(0, 0, 0, 0.06);
    border: 1px solid var(--color-border);
}

.news-article-prose :where(hr) {
    border: none;
    height: 2px;
    background: linear-gradient(90deg, 
        transparent 0%, 
        rgba(103, 78, 153, 0.2) 50%, 
        transparent 100%);
    margin: var(--spacing-8) 0;
}

.news-article-related-list {
    display: grid;
    gap: var(--spacing-3);
}

.news-article-related-item {
    display: grid;
    gap: var(--spacing-2);
    padding: var(--spacing-4) var(--spacing-5);
    border-radius: var(--radius-lg);
    border: 1.5px solid var(--color-border);
    background: linear-gradient(135deg, 
        var(--color-surface) 0%, 
        rgba(255, 255, 255, 0.98) 50%,
        rgba(103, 78, 153, 0.02) 100%);
    text-decoration: none;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
    box-shadow: 
        0 2px 8px rgba(0, 0, 0, 0.04),
        0 1px 4px rgba(0, 0, 0, 0.02);
}

.news-article-related-item::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 4px;
    height: 100%;
    background: linear-gradient(180deg, 
        var(--color-brand) 0%, 
        rgba(103, 78, 153, 0.6) 100%);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.news-article-related-item:hover {
    border-color: rgba(103, 78, 153, 0.3);
    transform: translateX(4px) translateY(-2px);
    box-shadow: 
        0 6px 20px rgba(103, 78, 153, 0.15),
        0 3px 10px rgba(0, 0, 0, 0.08);
    background: linear-gradient(135deg, 
        rgba(255, 255, 255, 0.98) 0%, 
        rgba(255, 255, 255, 0.95) 50%,
        rgba(103, 78, 153, 0.04) 100%);
}

.news-article-related-item:hover::before {
    opacity: 1;
}

.news-article-related-title-item {
    color: var(--color-text);
    font-weight: var(--font-weight-bold);
    letter-spacing: -0.01em;
    font-size: var(--text-base);
    line-height: var(--line-height-tight);
    transition: color 0.3s ease;
}

.news-article-related-item:hover .news-article-related-title-item {
    background: linear-gradient(135deg, 
        var(--color-text) 0%, 
        rgba(103, 78, 153, 0.8) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.news-article-related-date {
    color: var(--color-text-muted);
    font-size: var(--text-xs);
    font-weight: var(--font-weight-medium);
    display: flex;
    align-items: center;
    gap: var(--spacing-1);
}

.news-article-related-date::before {
    content: '📅';
    font-size: 0.9em;
}

.news-article-tickers-below-image {
    margin-top: 12px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.news-article-ticker-chip {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 12px 8px 20px;
    border-radius: 999px;
    border: 1px solid var(--color-border);
    background: linear-gradient(180deg, #ffffff 0%, #f6f7fb 100%);
    color: rgba(2, 26, 56, 0.86);
    text-decoration: none;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-size: 12px;
}

.news-article-ticker-chip:hover {
    border-color: rgba(103, 78, 153, 0.22);
    color: rgba(2, 26, 56, 0.96);
}

.news-article-ticker-chip::before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 999px;
    position: absolute;
    left: 8px;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(2, 26, 56, 0.25);
}

.news-article-ticker-chip[data-sentiment="positive"]::before {
    background: rgba(16, 185, 129, 0.90);
}

.news-article-ticker-chip[data-sentiment="neutral"]::before {
    background: rgba(2, 26, 56, 0.35);
}

.news-article-ticker-chip[data-sentiment="negative"]::before {
    background: rgba(239, 68, 68, 0.90);
}

.news-center-head {
    margin-bottom: 12px;
}

.news-center-title {
    margin: 0 0 6px;
    letter-spacing: -0.03em;
    color: rgba(2, 26, 56, 0.96);
}

.news-center-subtitle {
    margin: 0;
    color: rgba(2, 26, 56, 0.72);
}

.news-articles {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--spacing-5);
}

@media (min-width: 768px) {
    .news-articles {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--spacing-6);
    }
}

.news-article {
    display: flex;
    flex-direction: column;
    background: linear-gradient(180deg, #ffffff 0%, #fafbfc 100%);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-xl);
    overflow: hidden;
    transition: all var(--transition-base);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);
    position: relative;
}

.news-article::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--color-brand) 0%, var(--color-brand-light) 100%);
    opacity: 0;
    transition: opacity var(--transition-base);
}

.news-article:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.12), 0 4px 12px rgba(0, 0, 0, 0.08);
    border-color: rgba(103, 78, 153, 0.3);
}

.news-article:hover::before {
    opacity: 1;
}

.news-article-image-wrapper {
    position: relative;
    width: 100%;
    overflow: hidden;
}

.news-article-thumb {
    display: block;
    width: 100%;
    height: 200px;
    overflow: hidden;
    position: relative;
}

.news-article-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform var(--transition-slow) ease-out;
    will-change: transform;
}

.news-article:hover .news-article-thumb img {
    transform: scale(1.08);
}

.news-article-thumb-placeholder {
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.1) 0%, rgba(103, 78, 153, 0.05) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
}

.news-article-thumb-placeholder-content {
    color: rgba(103, 78, 153, 0.3);
    font-size: 48px;
}

.news-article-meta-header {
    display: flex;
    align-items: center;
    gap: var(--spacing-3);
    padding: var(--spacing-3) var(--spacing-4);
    flex-wrap: wrap;
    border-bottom: 1px solid var(--color-border);
    margin-bottom: var(--spacing-2);
}

.news-article-date {
    display: flex;
    align-items: center;
    gap: var(--spacing-1);
    font-size: var(--text-xs);
    color: var(--color-text-secondary);
}

.news-article-date i {
    font-size: var(--text-xs);
    color: var(--color-text-muted);
}

.news-article-content {
    padding: var(--spacing-4);
    display: flex;
    flex-direction: column;
    gap: var(--spacing-3);
    flex: 1;
}

.news-article-title {
    margin: 0;
    font-size: var(--text-lg);
    font-weight: var(--font-weight-bold);
    letter-spacing: -0.02em;
    line-height: var(--line-height-tight);
}

.news-article-title a {
    color: var(--color-text);
    text-decoration: none;
    transition: color var(--transition-fast);
}

.news-article-title a:hover {
    color: var(--color-brand);
}

.news-article-summary {
    margin: 0;
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
    font-size: var(--text-sm);
}

.news-article-author {
    display: flex;
    align-items: center;
    gap: var(--spacing-1);
    font-size: var(--text-xs);
    color: var(--color-text-secondary);
}

.news-article-author i {
    font-size: var(--text-xs);
    color: var(--color-text-muted);
}

.news-article-category {
    margin-left: auto;
    background: linear-gradient(135deg, var(--color-brand) 0%, rgba(103, 78, 153, 0.8) 100%);
    color: #ffffff;
    padding: var(--spacing-1) var(--spacing-3);
    border-radius: 999px;
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    transition: opacity var(--transition-fast);
}

.news-article-category:hover {
    opacity: 0.9;
    color:#FFF;
    text-decoration: none;
}

.news-article-tags {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-2);
    margin-top: var(--spacing-2);
}

.news-article-tag {
    display: inline-block;
    padding: var(--spacing-1) var(--spacing-2);
    background: var(--color-surface-2);
    border: 1px solid var(--color-border);
    border-radius: 999px;
    font-size: var(--text-xs);
    color: var(--color-text);
    text-decoration: none;
    transition: all var(--transition-fast);
}

.news-article-tag:hover {
    background: var(--color-brand);
    color: #ffffff;
    border-color: var(--color-brand);
}

.news-article-meta {
    margin-top: 10px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    color: rgba(2, 26, 56, 0.60);
    font-size: 12px;
}

.news-article-meta-tickers {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}

.news-article-meta-ticker {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 5px 9px 5px 17px;
    border-radius: 999px;
    border: 1px solid var(--color-border);
    background: linear-gradient(180deg, #ffffff 0%, #f6f7fb 100%);
    color: rgba(2, 26, 56, 0.82);
    text-decoration: none;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-size: 12px;
}

.news-article-meta-ticker:hover {
    border-color: rgba(103, 78, 153, 0.22);
    color: rgba(2, 26, 56, 0.96);
}

.news-article-meta-ticker::before {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 999px;
    position: absolute;
    left: 7px;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(2, 26, 56, 0.25);
}

.news-article-meta-ticker[data-sentiment="positive"]::before {
    background: rgba(16, 185, 129, 0.90);
}

.news-article-meta-ticker[data-sentiment="neutral"]::before {
    background: rgba(2, 26, 56, 0.35);
}

.news-article-meta-ticker[data-sentiment="negative"]::before {
    background: rgba(239, 68, 68, 0.90);
}

.news-pagination {
    margin-top: 14px;
}

.news-pagination-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.news-page-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 12px;
    border-radius: 999px;
    border: 1px solid var(--color-border);
    background: #ffffff;
    color: rgba(2, 26, 56, 0.90);
    text-decoration: none;
    font-size: 13px;
}

.news-page-link:hover {
    border-color: rgba(103, 78, 153, 0.28);
    color: var(--color-brand);
}

.news-page-link.active {
    border-color: rgba(103, 78, 153, 0.40);
    background: rgba(103, 78, 153, 0.08);
}

.news-page-link.disabled {
    opacity: 0.55;
    pointer-events: none;
}

.news-page-ellipsis {
    color: rgba(2, 26, 56, 0.55);
    padding: 0 4px;
}

.news-wire-head {
    padding: 14px 14px 10px;
    border-bottom: 1px solid var(--color-border);
}

.news-wire-title-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.news-wire-title {
    font-size: 14px;
    letter-spacing: -0.01em;
    font-weight: 800;
    color: rgba(2, 26, 56, 0.92);
}

.news-wire-subtitle {
    font-size: 12px;
    color: rgba(2, 26, 56, 0.60);
}

.news-wire-body {
    padding: 12px 14px 14px;
    display: grid;
    gap: 12px;
}

@media (min-width: 1024px) {
    .news-left {
        position: sticky;
        top: calc(64px + 18px);
    }
    .news-right {
        position: sticky;
        top: calc(64px + 18px);
    }
    .news-wire-body {
        max-height: calc(100vh - 64px - 220px);
        overflow: auto;
        overscroll-behavior: contain;
    }
}

.news-wire-item {
    padding-bottom: 12px;
    border-bottom: 1px solid var(--color-border);
}

.news-wire-item:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.news-wire-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.news-wire-time {
    font-size: 12px;
    color: rgba(2, 26, 56, 0.60);
}

.news-wire-hints {
    display: inline-flex;
    gap: 6px;
    align-items: center;
}

.news-wire-dot {
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: rgba(2, 26, 56, 0.25);
}

.news-wire-dot.is-impact {
    background: rgba(103, 78, 153, 0.90);
}

.news-wire-dot.sentiment-positive {
    background: rgba(16, 185, 129, 0.85);
}

.news-wire-dot.sentiment-negative {
    background: rgba(239, 68, 68, 0.85);
}

.news-wire-dot.sentiment-neutral {
    background: rgba(2, 26, 56, 0.35);
}

.news-wire-headline {
    margin-top: 6px;
    font-size: 13px;
    font-weight: 700;
    color: rgba(2, 26, 56, 0.92);
    overflow: hidden;
    text-overflow: ellipsis;
}

.news-wire-headline a {
    color: inherit;
    text-decoration: none;
}

.news-wire-headline a:hover {
    color: var(--color-brand);
    text-decoration: underline;
}

.news-wire-meta {
    display: none;
}

.news-empty {
    padding: 40px 20px;
    text-align: center;
    color: rgba(2, 26, 56, 0.60);
}

.news-article-main {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding:20px;
}

.news-article-kicker {
    margin-bottom: 4px;
}
/* =========================================================
   Trade Ideas Section - Quote Page (Accordion Style)
   ========================================================= */

.trade-ideas-header {
    margin-bottom: var(--spacing-5);
    padding-bottom: var(--spacing-4);
    border-bottom: 1px solid var(--color-border-light);
}

.trade-ideas-subline {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    margin: 0 0 var(--spacing-2) 0;
}

.trade-ideas-timestamp {
    margin: 0;
}

.trade-ideas-accordion {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-3);
    margin-bottom: var(--spacing-6);
}

.trade-idea-accordion-item {
    background: linear-gradient(180deg, var(--color-surface) 0%, rgba(255, 255, 255, 0.98) 100%);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: 
        0 2px 8px rgba(0, 0, 0, 0.06),
        0 1px 3px rgba(0, 0, 0, 0.04);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}

.trade-idea-accordion-item::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, 
        var(--color-brand) 0%, 
        rgba(103, 78, 153, 0.6) 50%, 
        var(--color-brand) 100%);
    opacity: 0;
    transition: opacity 0.3s ease;
    z-index: 1;
}

.trade-idea-accordion-item:hover {
    border-color: rgba(103, 78, 153, 0.3);
    box-shadow: 
        0 8px 24px rgba(0, 0, 0, 0.12),
        0 4px 8px rgba(0, 0, 0, 0.08);
    transform: translateY(-2px);
}

.trade-idea-accordion-item:hover::before {
    opacity: 0.6;
}

.trade-idea-accordion-item.show .trade-idea-accordion-item::before,
.trade-idea-accordion-item:has(.show)::before {
    opacity: 0.8;
}

.trade-idea-accordion-header {
    margin: 0;
    border: none;
}

.trade-idea-accordion-button {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--spacing-4) var(--spacing-5);
    background: transparent;
    border: none;
    text-align: left;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    z-index: 2;
}

.trade-idea-accordion-button:hover {
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.05) 0%, 
        rgba(103, 78, 153, 0.02) 100%);
}

.trade-idea-accordion-button:not(.collapsed) {
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.08) 0%, 
        rgba(103, 78, 153, 0.03) 100%);
    border-bottom: 1px solid var(--color-border-light);
}

.trade-idea-accordion-button:focus {
    box-shadow: none;
    outline: none;
}

.trade-idea-accordion-title {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    flex: 1;
}

.trade-idea-accordion-horizon {
    font-size: var(--text-lg);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    letter-spacing: -0.01em;
}

.trade-idea-accordion-days {
    font-size: var(--text-base);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary);
}

.trade-idea-accordion-badges {
    display: flex;
    align-items: center;
    gap: var(--spacing-3);
}

.trade-idea-direction-badge {
    font-size: var(--text-xs);
    font-weight: var(--font-weight-bold);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    padding: var(--spacing-1) var(--spacing-3);
    border-radius: var(--radius-sm);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.trade-idea-accordion-chevron {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    color: var(--color-text-secondary);
}

.trade-idea-accordion-button:not(.collapsed) .trade-idea-accordion-chevron {
    transform: rotate(180deg);
}

.trade-idea-accordion-button:not(.collapsed) .trade-idea-accordion-chevron i {
    color: var(--color-brand);
}

.trade-idea-accordion-collapse {
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.trade-idea-accordion-body {
    padding: var(--spacing-5);
    display: flex;
    flex-direction: column;
    gap: var(--spacing-4);
}

.trade-idea-structure {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-3);
    padding: var(--spacing-4);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.05) 0%, 
        rgba(103, 78, 153, 0.02) 50%,
        rgba(0, 0, 0, 0.01) 100%);
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border-light);
    box-shadow: 
        inset 0 1px 2px rgba(255, 255, 255, 0.8),
        0 1px 3px rgba(0, 0, 0, 0.04);
    transition: all 0.3s ease;
}

.trade-idea-accordion-item.show .trade-idea-structure {
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.08) 0%, 
        rgba(103, 78, 153, 0.04) 50%,
        rgba(0, 0, 0, 0.02) 100%);
    border-color: rgba(103, 78, 153, 0.2);
}

.trade-idea-level {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--spacing-2) 0;
    border-bottom: 1px solid var(--color-border-light);
}

.trade-idea-level:last-child {
    border-bottom: none;
}

.trade-idea-level-label {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    font-weight: var(--font-weight-medium);
}

.trade-idea-level-value {
    font-size: var(--text-base);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    background: linear-gradient(135deg, 
        var(--color-text) 0%, 
        rgba(0, 0, 0, 0.7) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    transition: all 0.3s ease;
}

.trade-idea-accordion-item.show .trade-idea-level-value {
    background: linear-gradient(135deg, 
        var(--color-brand) 0%, 
        rgba(103, 78, 153, 0.8) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.trade-idea-metrics {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-3);
    padding: var(--spacing-4);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.08) 0%, 
        rgba(103, 78, 153, 0.04) 50%,
        rgba(103, 78, 153, 0.02) 100%);
    border-radius: var(--radius-md);
    border: 1.5px solid rgba(103, 78, 153, 0.15);
    box-shadow: 
        0 2px 8px rgba(103, 78, 153, 0.1),
        inset 0 1px 2px rgba(255, 255, 255, 0.9);
    transition: all 0.3s ease;
}

.trade-idea-accordion-item.show .trade-idea-metrics {
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.12) 0%, 
        rgba(103, 78, 153, 0.06) 50%,
        rgba(103, 78, 153, 0.03) 100%);
    border-color: rgba(103, 78, 153, 0.25);
    box-shadow: 
        0 4px 12px rgba(103, 78, 153, 0.15),
        inset 0 1px 2px rgba(255, 255, 255, 0.95);
}

.trade-idea-metric {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--spacing-1);
}

.trade-idea-metric-label {
    font-size: var(--text-xs);
    color: var(--color-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: var(--font-weight-medium);
}

.trade-idea-metric-value {
    font-size: var(--text-lg);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    background: linear-gradient(135deg, 
        var(--color-text) 0%, 
        rgba(0, 0, 0, 0.7) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    transition: all 0.3s ease;
}

.trade-idea-accordion-item.show .trade-idea-metric-value {
    background: linear-gradient(135deg, 
        var(--color-brand) 0%, 
        rgba(103, 78, 153, 0.8) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.trade-idea-thesis {
    padding: var(--spacing-3) 0;
    border-top: 1px solid var(--color-border-light);
    border-bottom: 1px solid var(--color-border-light);
}

.trade-idea-thesis p {
    font-size: var(--text-sm);
    line-height: var(--line-height-relaxed);
    color: var(--color-text);
    margin: 0;
}

.trade-idea-expandable {
    margin-top: var(--spacing-2);
}

.trade-idea-expand-btn {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--spacing-2) var(--spacing-3);
    background: transparent;
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-sm);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-text);
    cursor: pointer;
    transition: all 0.2s ease;
}

.trade-idea-expand-btn:hover {
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.08) 0%, 
        rgba(103, 78, 153, 0.04) 100%);
    border-color: rgba(103, 78, 153, 0.3);
    transform: translateX(2px);
    box-shadow: 0 2px 6px rgba(103, 78, 153, 0.1);
}

.trade-idea-expand-btn[aria-expanded="true"] {
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.1) 0%, 
        rgba(103, 78, 153, 0.05) 100%);
    border-color: rgba(103, 78, 153, 0.3);
}

.trade-idea-expand-btn i {
    transition: transform 0.2s ease;
}

.trade-idea-expand-btn[aria-expanded="true"] i {
    transform: rotate(180deg);
}

.trade-idea-expandable-content {
    padding: var(--spacing-3);
    background: linear-gradient(135deg, 
        rgba(0, 0, 0, 0.01) 0%, 
        transparent 100%);
    border-radius: var(--radius-sm);
    margin-top: var(--spacing-2);
}

.trade-idea-expandable-content ul {
    margin: 0;
    padding-left: var(--spacing-4);
    list-style: none;
}

.trade-idea-expandable-content ul li {
    font-size: var(--text-sm);
    line-height: var(--line-height-relaxed);
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-2);
    position: relative;
    padding-left: var(--spacing-3);
}

.trade-idea-expandable-content ul li::before {
    content: '•';
    position: absolute;
    left: 0;
    color: var(--color-brand);
    font-weight: var(--font-weight-bold);
}

.trade-idea-expandable-content ul li:last-child {
    margin-bottom: 0;
}

.trade-idea-footer {
    margin-top: var(--spacing-3);
    padding-top: var(--spacing-3);
    border-top: 1px solid var(--color-border-light);
}

.trade-idea-invalidation {
    font-size: var(--text-sm);
    line-height: var(--line-height-relaxed);
    color: var(--color-text);
    margin: 0 0 var(--spacing-2) 0;
}

.trade-idea-invalidation strong {
    color: var(--color-text);
    font-weight: var(--font-weight-semibold);
}

.trade-idea-time-invalidation {
    margin: 0;
    font-style: italic;
}

.trade-ideas-disclaimer {
    margin-top: var(--spacing-6);
    padding: var(--spacing-4);
    background: linear-gradient(135deg, 
        rgba(0, 0, 0, 0.02) 0%, 
        rgba(0, 0, 0, 0.01) 100%);
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border-light);
    text-align: center;
}

/* =========================================================
   Markets Page Styles
   ========================================================= */

.market-snapshot {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--spacing-4);
    padding: var(--spacing-4) 0;
}

@media (min-width: 768px) {
    .market-snapshot {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--spacing-5);
    }
}

@media (min-width: 1024px) {
    .market-snapshot {
        grid-template-columns: repeat(4, 1fr);
    }
}

.market-index {
    background: linear-gradient(180deg, 
        var(--color-surface) 0%, 
        rgba(255, 255, 255, 0.98) 50%,
        var(--color-surface-2) 100%);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: var(--spacing-5);
    display: flex;
    flex-direction: column;
    gap: var(--spacing-3);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
    box-shadow: 
        0 2px 8px rgba(0, 0, 0, 0.06),
        0 1px 3px rgba(0, 0, 0, 0.04),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.market-index::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, 
        transparent 0%, 
        var(--color-brand) 20%, 
        var(--color-brand) 80%, 
        transparent 100%);
    opacity: 0;
    transition: opacity 0.3s ease, height 0.3s ease;
    z-index: 1;
}

.market-index::after {
    content: '';
    position: absolute;
    top: -50%;
    right: -50%;
    width: 100%;
    height: 100%;
    background: radial-gradient(circle, 
        rgba(103, 78, 153, 0.08) 0%, 
        transparent 70%);
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
}

.market-index:hover {
    transform: translateY(-4px);
    border-color: var(--color-brand);
    box-shadow: 
        0 8px 24px rgba(0, 0, 0, 0.12),
        0 4px 12px rgba(0, 0, 0, 0.08),
        0 0 0 1px rgba(103, 78, 153, 0.1),
        inset 0 1px 0 rgba(255, 255, 255, 0.95);
    background: linear-gradient(135deg, 
        rgba(255, 255, 255, 1) 0%, 
        rgba(255, 255, 255, 0.98) 100%);
}

.market-index:hover::before {
    opacity: 0.6;
    height: 4px;
}

.market-index:hover::after {
    opacity: 1;
}

.market-index-name {
    font-size: var(--text-xs);
    color: var(--color-text-secondary);
    font-weight: var(--font-weight-bold);
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
}

.market-index-name::before {
    content: '';
    width: 4px;
    height: 4px;
    background: var(--color-brand);
    border-radius: 50%;
    opacity: 0.5;
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.market-index:hover .market-index-name::before {
    opacity: 1;
    transform: scale(1.2);
}

.market-index-value {
    font-size: var(--text-2xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    margin: 0;
    line-height: var(--line-height-tight);
    letter-spacing: -0.02em;
    position: relative;
    z-index: 2;
    transition: color 0.3s ease;
    background: linear-gradient(135deg, 
        var(--color-text) 0%, 
        rgba(0, 0, 0, 0.8) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.market-index:hover .market-index-value {
    background: linear-gradient(135deg, 
        var(--color-brand) 0%, 
        rgba(103, 78, 153, 0.8) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.market-index-change {
    font-size: var(--text-sm);
    font-weight: var(--font-weight-bold);
    margin: 0;
    position: relative;
    z-index: 2;
    padding: var(--spacing-1) var(--spacing-2);
    border-radius: var(--radius-sm);
    display: inline-block;
    width: fit-content;
    transition: all 0.3s ease;
}

.market-index-change.positive {
    color: var(--color-success);
    background: linear-gradient(135deg, 
        rgba(16, 185, 129, 0.1) 0%, 
        rgba(16, 185, 129, 0.05) 100%);
    border: 1px solid rgba(16, 185, 129, 0.2);
}

.market-index:hover .market-index-change.positive {
    background: linear-gradient(135deg, 
        rgba(16, 185, 129, 0.15) 0%, 
        rgba(16, 185, 129, 0.08) 100%);
    border-color: rgba(16, 185, 129, 0.3);
    transform: translateX(2px);
}

.market-index-change.negative {
    color: var(--color-danger);
    background: linear-gradient(135deg, 
        rgba(239, 68, 68, 0.1) 0%, 
        rgba(239, 68, 68, 0.05) 100%);
    border: 1px solid rgba(239, 68, 68, 0.2);
}

.market-index:hover .market-index-change.negative {
    background: linear-gradient(135deg, 
        rgba(239, 68, 68, 0.15) 0%, 
        rgba(239, 68, 68, 0.08) 100%);
    border-color: rgba(239, 68, 68, 0.3);
    transform: translateX(2px);
}

/* Markets Page Tables */
.markets-page .table {
    margin: 0;
}

.markets-page .table thead th {
    background: linear-gradient(180deg, 
        var(--color-surface-2) 0%, 
        rgba(255, 255, 255, 0.98) 100%);
    border-bottom: 2px solid var(--color-border);
    font-weight: var(--font-weight-bold);
    font-size: var(--text-xs);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--color-text-secondary);
    padding: var(--spacing-3) var(--spacing-4);
    position: sticky;
    top: 0;
    z-index: 10;
}

.markets-page .table tbody tr {
    transition: all 0.2s ease;
    border-bottom: 1px solid var(--color-border-light);
}

.markets-page .table tbody tr:hover {
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.05) 0%, 
        rgba(103, 78, 153, 0.02) 50%,
        transparent 100%);
    transform: translateX(4px);
    box-shadow: -4px 0 0 0 var(--color-brand);
}

.markets-page .table tbody td {
    padding: var(--spacing-3) var(--spacing-4);
    vertical-align: middle;
}

.markets-page .table tbody td a {
    color: var(--color-text);
    text-decoration: none;
    font-weight: var(--font-weight-semibold);
    transition: color 0.2s ease;
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-1);
}

.markets-page .table tbody td a:hover {
    color: var(--color-brand);
}

.markets-page .table tbody td a::after {
    content: '→';
    opacity: 0;
    transition: opacity 0.2s ease, transform 0.2s ease;
    transform: translateX(-4px);
}

.markets-page .table tbody tr:hover td a::after {
    opacity: 0.6;
    transform: translateX(0);
}

/* Earnings Calls List */
.earnings-calls-list {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-4);
}

.earnings-call-item {
    padding: var(--spacing-5);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: linear-gradient(180deg, 
        var(--color-surface) 0%, 
        rgba(255, 255, 255, 0.98) 100%);
    box-shadow: 
        0 2px 8px rgba(0, 0, 0, 0.06),
        0 1px 3px rgba(0, 0, 0, 0.04);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
    margin-bottom: 0 !important;
}

.earnings-call-item::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, 
        transparent 0%, 
        var(--color-brand) 20%, 
        var(--color-brand) 80%, 
        transparent 100%);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.earnings-call-item:hover {
    transform: translateY(-2px);
    border-color: var(--color-brand);
    box-shadow: 
        0 8px 24px rgba(0, 0, 0, 0.12),
        0 4px 8px rgba(0, 0, 0, 0.08);
}

.earnings-call-item:hover::before {
    opacity: 0.6;
}

.earnings-call-item h3 {
    margin: 0 0 var(--spacing-2) 0 !important;
    font-size: var(--text-lg) !important;
}

.earnings-call-item h3 a {
    color: var(--color-text) !important;
    text-decoration: none !important;
    transition: color 0.2s ease;
    display: inline-block;
}

.earnings-call-item:hover h3 a {
    color: var(--color-brand) !important;
}

.earnings-call-item p {
    margin: var(--spacing-3) 0 0 0 !important;
    color: var(--color-text-secondary) !important;
    font-size: var(--text-sm) !important;
    line-height: var(--line-height-relaxed) !important;
}

.earnings-call-item > div:last-child {
    margin-top: var(--spacing-4) !important;
}

.earnings-call-item > div:last-child a {
    font-size: var(--text-sm) !important;
    color: var(--color-brand) !important;
    text-decoration: none !important;
    font-weight: var(--font-weight-semibold);
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-1);
    transition: all 0.2s ease;
    padding: var(--spacing-2) var(--spacing-3);
    border-radius: var(--radius-sm);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.1) 0%, 
        rgba(103, 78, 153, 0.05) 100%);
    border: 1px solid rgba(103, 78, 153, 0.2);
}

.earnings-call-item > div:last-child a:hover {
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.15) 0%, 
        rgba(103, 78, 153, 0.08) 100%);
    border-color: rgba(103, 78, 153, 0.3);
    transform: translateX(4px);
}

.earnings-call-item > div:last-child a::after {
    content: '→';
    transition: transform 0.2s ease;
}

.earnings-call-item > div:last-child a:hover::after {
    transform: translateX(4px);
}

/* =========================================================
   Pricing Page Styles
   ========================================================= */

.pricing-badge-popular {
    position: absolute;
    top: -12px;
    right: 20px;
    background: var(--color-brand);
    color: #ffffff;
    padding: 6px 12px;
    border-radius: 999px;
    font-size: var(--text-xs);
    font-weight: var(--font-weight-bold);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    z-index: 1;
}

/* =========================================================
   Academy Page Styles (Complete - Redesigned)
   ========================================================= */

/* Shared section header */
.academy-section-header {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-2);
    margin-bottom: var(--spacing-8);
}

.academy-section-title {
    letter-spacing: -0.03em;
    margin: 0;
    color: var(--color-text);
    font-size: var(--text-2xl);
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-tight);
    position: relative;
    display: inline-block;
    padding-bottom: var(--spacing-2);
}

.academy-section-title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 50px;
    height: 3px;
    background: linear-gradient(90deg, var(--color-brand) 0%, var(--color-brand-light) 100%);
    border-radius: 2px;
}

.academy-section-subtitle {
    color: var(--color-text-secondary);
    margin: var(--spacing-4) 0 0;
    font-size: var(--text-lg);
    line-height: var(--line-height-relaxed);
}

/* Hero sections (dark gradient) */
.academy-hero,
.academy-topic-hero,
.academy-scope-hero,
.academy-search-hero {
    background: var(--tv-hero-gradient);
    color: rgba(255, 255, 255, 0.92);
    padding: var(--spacing-10) 0 var(--spacing-8);
}

.academy-hero-content,
.academy-topic-hero-content,
.academy-scope-hero-content,
.academy-search-hero-content {
    max-width: 980px;
}

.academy-hero-title,
.academy-topic-hero-title,
.academy-scope-hero-title,
.academy-search-title {
    color: #ffffff;
    letter-spacing: -0.05em;
    margin: 0 0 var(--spacing-3);
    font-size: var(--text-3xl);
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-tight);
}

.academy-hero-subtitle,
.academy-topic-hero-subtitle,
.academy-scope-hero-subtitle {
    color: rgba(255, 255, 255, 0.85);
    margin: 0 0 var(--spacing-5);
    font-size: var(--text-lg);
    line-height: var(--line-height-relaxed);
}

.academy-hero-helper,
.academy-hero-disclaimer,
.academy-topic-hero-helper,
.academy-topic-hero-disclaimer,
.academy-scope-hero-meta {
    color: rgba(255, 255, 255, 0.72);
    font-size: var(--text-sm);
    margin: 12px 0 0;
}

.academy-scope-hero-meta a {
    color: rgba(255, 255, 255, 0.90);
    text-decoration: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.28);
}

.academy-scope-hero-meta a:hover {
    border-bottom-color: rgba(255, 255, 255, 0.55);
}

/* Search inputs in hero */
.academy-hero-search-group,
.academy-topic-search-group,
.academy-scope-search-group,
.academy-search-input-group {
    display: flex;
    align-items: center;
    gap: 10px;
    background: rgba(255, 255, 255, 0.10);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 999px;
    padding: 10px 12px;
    backdrop-filter: blur(14px) saturate(140%);
    -webkit-backdrop-filter: blur(14px) saturate(140%);
    margin: 18px 0;
}

.academy-hero-search-input,
.academy-topic-search-input,
.academy-scope-search-input,
.academy-search-input {
    flex: 1;
    min-width: 0;
    border: none;
    outline: none;
    background: transparent;
    color: rgba(255, 255, 255, 0.92);
    font-size: 15px;
}

.academy-hero-search-input::placeholder,
.academy-topic-search-input::placeholder,
.academy-scope-search-input::placeholder,
.academy-search-input::placeholder {
    color: rgba(255, 255, 255, 0.62);
}

.academy-hero-search-button,
.academy-topic-search-button,
.academy-scope-search-button,
.academy-search-button {
    border: none;
    background: rgba(255, 255, 255, 0.12);
    color: rgba(255, 255, 255, 0.92);
    width: 40px;
    height: 40px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.2s ease;
}

.academy-hero-search-button:hover,
.academy-topic-search-button:hover,
.academy-scope-search-button:hover,
.academy-search-button:hover {
    background: rgba(255, 255, 255, 0.18);
}

.academy-hero-actions {
    display: flex;
    gap: 12px;
    margin: 18px 0 12px;
    flex-wrap: wrap;
}

/* Ensure non-hero academy sections are LIGHT */
.academy-paths,
.academy-topics,
.academy-featured,
.academy-how-it-works,
.academy-cta,
.academy-topic-overview,
.academy-scopes,
.academy-popular,
.academy-lessons,
.academy-article,
.academy-related-scopes,
.academy-continue-learning,
.academy-disclaimer,
.academy-search-results,
.academy-search-empty {
    background: transparent;
    padding: var(--spacing-10) 0;
}

/* Cards/grids */
.academy-paths-grid,
.academy-topics-grid,
.academy-featured-grid,
.academy-scopes-grid,
.academy-popular-grid,
.academy-continue-grid,
.academy-related-scopes-grid {
    display: grid;
    gap: var(--spacing-4);
}

@media (min-width: 768px) {
    .academy-paths-grid { grid-template-columns: repeat(3, 1fr); }
    .academy-topics-grid { grid-template-columns: repeat(2, 1fr); }
    .academy-featured-grid { grid-template-columns: repeat(3, 1fr); }
    .academy-scopes-grid { grid-template-columns: repeat(3, 1fr); }
    .academy-popular-grid { grid-template-columns: repeat(3, 1fr); }
    .academy-continue-grid { grid-template-columns: repeat(3, 1fr); }
    .academy-related-scopes-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 1024px) {
    .academy-topics-grid { grid-template-columns: repeat(3, 1fr); }
}

.academy-path-card,
.academy-topic-card,
.academy-featured-card,
.academy-scope-card,
.academy-popular-card,
.academy-continue-card,
.academy-related-scope-card {
    background: linear-gradient(180deg, #ffffff 0%, #fafbfc 100%);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-xl);
    padding: var(--spacing-6);
    transition: all var(--transition-base);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06), 0 1px 3px rgba(0, 0, 0, 0.04);
    display: flex;
    flex-direction: column;
    position: relative;
    overflow: hidden;
}

.academy-path-card::before,
.academy-topic-card::before,
.academy-featured-card::before,
.academy-scope-card::before,
.academy-popular-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--color-brand) 0%, var(--color-brand-light) 100%);
    opacity: 0;
    transition: opacity var(--transition-base);
    z-index: 1;
}

.academy-path-card:hover::before,
.academy-topic-card:hover::before,
.academy-featured-card:hover::before,
.academy-scope-card:hover::before,
.academy-popular-card:hover::before {
    opacity: 1;
}

.academy-path-card:hover,
.academy-topic-card:hover,
.academy-featured-card:hover,
.academy-scope-card:hover,
.academy-popular-card:hover {
    border-color: rgba(103, 78, 153, 0.3);
    box-shadow: 0 12px 32px rgba(103, 78, 153, 0.15), 0 4px 12px rgba(0, 0, 0, 0.1);
    transform: translateY(-6px) scale(1.01);
    background: linear-gradient(180deg, #ffffff 0%, #f8f9fa 100%);
}

.academy-topic-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
}

.academy-topic-name,
.academy-path-title,
.academy-scope-name {
    margin: 0;
    font-size: var(--text-xl);
    font-weight: var(--font-weight-bold);
    letter-spacing: -0.02em;
    color: var(--color-text);
    line-height: var(--line-height-tight);
    position: relative;
}

.academy-path-title {
    font-size: var(--text-lg);
    margin-bottom: var(--spacing-2);
}

.academy-topic-count,
.academy-scope-count,
.academy-featured-time,
.academy-popular-time {
    font-size: var(--text-xs);
    color: var(--color-brand);
    padding: var(--spacing-1) var(--spacing-3);
    border-radius: 999px;
    background: rgba(103, 78, 153, 0.08);
    border: 1px solid rgba(103, 78, 153, 0.2);
    font-weight: var(--font-weight-semibold);
    white-space: nowrap;
}

.academy-topic-description,
.academy-scope-description,
.academy-path-copy,
.academy-featured-excerpt,
.academy-popular-excerpt {
    color: var(--color-text-secondary);
    margin: var(--spacing-3) 0 var(--spacing-4);
    max-width: 62ch;
    line-height: var(--line-height-relaxed);
    flex-grow: 1;
}

/* Topic overview (syllabus-like) */
.academy-topic-overview {
    padding: 40px 0;
}

.academy-overview-grid {
    display: grid;
    gap: 14px;
}

@media (min-width: 900px) {
    .academy-overview-grid {
        grid-template-columns: 1fr 1fr;
        gap: 18px;
    }
}

.academy-overview-column {
    background: linear-gradient(180deg, #ffffff 0%, #fafbfc 100%);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-xl);
    padding: var(--spacing-6);
    box-shadow: var(--shadow-1);
    transition: all var(--transition-fast);
}

.academy-overview-column:hover {
    box-shadow: var(--shadow-2);
    transform: translateY(-2px);
    border-color: var(--color-brand);
}

.academy-overview-title {
    margin: 0 0 10px;
    letter-spacing: -0.02em;
    font-size: var(--text-lg);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
}

.academy-overview-list,
.academy-overview-ordered {
    margin: 0;
    padding-left: 18px;
    color: var(--color-text-secondary);
    line-height: 1.7;
}

.academy-overview-ordered a {
    color: var(--color-text);
    text-decoration: none;
}

.academy-overview-ordered a:hover {
    color: var(--color-brand);
    text-decoration: underline;
}

/* Featured/Popular cards */
.academy-featured-header,
.academy-popular-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
    flex-wrap: wrap;
}

.academy-featured-badge,
.academy-popular-badge {
    font-size: var(--text-xs);
    color: var(--color-text-secondary);
    padding: var(--spacing-1) var(--spacing-3);
    border-radius: 999px;
    background: var(--color-surface-2);
    border: 1px solid var(--color-border);
    font-weight: var(--font-weight-medium);
}

.academy-featured-image,
.academy-popular-image {
    width: 100%;
    height: auto;
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    margin: var(--spacing-3) 0;
    object-fit: cover;
    aspect-ratio: 16 / 9;
    background: linear-gradient(135deg, var(--color-surface-2) 0%, var(--color-surface-3) 100%);
    transition: transform var(--transition-slow) ease-out;
    will-change: transform;
    overflow: hidden;
}

.academy-featured-image img,
.academy-popular-image img {
    transition: transform var(--transition-slow) ease-out;
    will-change: transform;
}

.academy-featured-card:hover .academy-featured-image img,
.academy-popular-card:hover .academy-popular-image img {
    transform: scale(1.1);
}

.academy-featured-title,
.academy-popular-title {
    margin: var(--spacing-3) 0;
    font-size: var(--text-lg);
    letter-spacing: -0.02em;
    font-weight: var(--font-weight-semibold);
    line-height: var(--line-height-tight);
}

.academy-featured-title a,
.academy-popular-title a {
    color: var(--color-text);
    text-decoration: none;
    transition: color var(--transition-fast);
}

.academy-featured-title a:hover,
.academy-popular-title a:hover {
    color: var(--color-brand);
    text-decoration: underline;
}

.academy-featured-excerpt,
.academy-popular-excerpt {
    margin: var(--spacing-2) 0 0;
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
    font-size: var(--text-sm);
}

/* How it works section */
.academy-how-it-works {
    padding: var(--spacing-10) 0;
    background: var(--color-surface-2);
}

.academy-how-content {
    max-width: 72ch;
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
    background: var(--color-surface);
    padding: var(--spacing-6);
    border-radius: var(--radius-xl);
    border: 1px solid var(--color-border);
    box-shadow: var(--shadow-1);
}

.academy-how-content p {
    margin-bottom: var(--spacing-4);
    font-size: var(--text-base);
}

.academy-how-content p:last-child {
    margin-bottom: 0;
}

.academy-how-content strong {
    color: var(--color-text);
    font-weight: var(--font-weight-semibold);
}

/* Scope what section */
.academy-scope-what {
    padding: 32px 0;
    background-color: var(--color-surface-2);
}

.academy-scope-what-copy {
    color: var(--color-text-secondary);
    line-height: 1.7;
    max-width: 72ch;
}

/* Lessons grid - matches news articles layout */
.academy-lessons-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--spacing-5);
}

@media (min-width: 768px) {
    .academy-lessons-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--spacing-6);
    }
}

.academy-lessons-list,
.academy-search-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

/* Academy lesson card - matches news article structure */
.academy-lesson-card {
    display: flex;
    flex-direction: column;
    background: linear-gradient(180deg, #ffffff 0%, #fafbfc 100%);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-xl);
    overflow: hidden;
    transition: all var(--transition-base);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);
    position: relative;
}

.academy-lesson-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--color-brand) 0%, var(--color-brand-light) 100%);
    opacity: 0;
    transition: opacity var(--transition-base);
}

.academy-lesson-card:hover {
    border-color: rgba(103, 78, 153, 0.3);
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.12), 0 4px 12px rgba(0, 0, 0, 0.08);
    transform: translateY(-4px);
    background: linear-gradient(180deg, #ffffff 0%, #f8f9fa 100%);
}

.academy-lesson-card:hover::before {
    opacity: 1;
}

.academy-lesson-image-wrapper {
    width: 100%;
    overflow: hidden;
}

.academy-lesson-thumb {
    display: block;
    width: 100%;
    height: 0;
    padding-bottom: 56.25%; /* 16:9 aspect ratio */
    position: relative;
    overflow: hidden;
    background: var(--color-surface-2);
}

.academy-lesson-thumb img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--transition-slow) ease-out;
    will-change: transform;
}

.academy-lesson-card:hover .academy-lesson-thumb img {
    transform: scale(1.1);
}

.academy-lesson-thumb-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--color-surface-2) 0%, var(--color-surface-3) 100%);
}

.academy-lesson-thumb-placeholder-content {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: var(--color-text-muted);
    font-size: 2.5rem;
}

.academy-lesson-meta-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-2);
    padding: var(--spacing-3) var(--spacing-4);
    border-bottom: 1px solid var(--color-border);
    flex-wrap: wrap;
}

.academy-lesson-time {
    display: flex;
    align-items: center;
    gap: var(--spacing-1);
    font-size: var(--text-xs);
    color: var(--color-text-secondary);
}

.academy-lesson-time i {
    font-size: var(--text-xs);
    color: var(--color-text-muted);
}

.academy-lesson-content {
    padding: var(--spacing-4);
    display: flex;
    flex-direction: column;
    gap: var(--spacing-2);
    flex-grow: 1;
}

.academy-lesson-title {
    margin: 0;
    font-size: var(--text-lg);
    font-weight: var(--font-weight-semibold);
    letter-spacing: -0.02em;
    line-height: var(--line-height-tight);
}

.academy-lesson-title a {
    color: var(--color-text);
    text-decoration: none;
    transition: color var(--transition-fast);
}

.academy-lesson-title a:hover {
    color: var(--color-brand);
}

.academy-lesson-excerpt {
    margin: 0;
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
    font-size: var(--text-sm);
}

.academy-search-result-card {
    background: linear-gradient(180deg, #ffffff 0%, #fafbfc 100%);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-xl);
    padding: var(--spacing-5);
    display: grid;
    gap: var(--spacing-3);
    transition: all var(--transition-fast);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 2px rgba(0, 0, 0, 0.1);
    position: relative;
}

.academy-search-result-card::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: linear-gradient(180deg, var(--color-brand) 0%, var(--color-brand-light) 100%);
    opacity: 0;
    transition: opacity var(--transition-fast);
    border-radius: var(--radius-xl) 0 0 var(--radius-xl);
}

.academy-search-result-card:hover::before {
    opacity: 1;
}

.academy-search-result-card:hover {
    border-color: var(--color-brand);
    box-shadow: 0 4px 12px rgba(103, 78, 153, 0.15), 0 2px 4px rgba(0, 0, 0, 0.1);
    transform: translateY(-3px);
    background: linear-gradient(180deg, #ffffff 0%, #f8f9fa 100%);
}

.academy-lessons-header {
    margin-bottom: 18px;
}

.academy-lessons-note {
    color: var(--color-text-secondary);
    font-size: var(--text-sm);
    margin: 8px 0 0;
}

.academy-lesson-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
}

.academy-lesson-difficulty {
    flex-shrink: 0;
}

.tv-lesson-row {
    display: grid;
    grid-template-columns: 88px 1fr;
    gap: 14px;
    align-items: start;
}

@media (min-width: 768px) {
    .tv-lesson-row {
        grid-template-columns: 140px 1fr;
        gap: 18px;
    }
}

.tv-lesson-thumb img {
    width: 100%;
    height: 88px;
    object-fit: cover;
    border-radius: 12px;
    border: 1px solid var(--color-border);
    background: var(--color-surface-2);
}

@media (min-width: 768px) {
    .tv-lesson-thumb img { height: 96px; }
}

.tv-lesson-title {
    margin: 0;
    letter-spacing: -0.02em;
    font-size: var(--text-lg);
    font-weight: var(--font-weight-semibold);
}

.tv-lesson-title a {
    color: var(--color-text);
    text-decoration: none;
}

.tv-lesson-title a:hover {
    color: var(--color-brand);
    text-decoration: underline;
}

.tv-lesson-meta {
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
    margin-top: 8px;
    color: var(--color-text-muted);
    font-size: var(--text-xs);
}

.academy-lesson-excerpt,
.academy-search-result-excerpt {
    color: var(--color-text-secondary);
    margin: 6px 0 0;
    max-width: 78ch;
    line-height: 1.6;
}

.academy-lesson-actions,
.academy-search-result-meta {
    display: flex;
    justify-content: flex-end;
    margin-top: 8px;
}

.academy-empty-state {
    padding: 40px 20px;
    text-align: center;
    color: var(--color-text-secondary);
}

/* CTA sections */
.academy-cta,
.academy-topic-cta {
    padding: var(--spacing-12) 0;
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.03) 0%, rgba(103, 78, 153, 0.08) 100%);
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
}

.academy-cta-content {
    text-align: center;
    max-width: 72ch;
    margin: 0 auto;
    padding: var(--spacing-6);
    background: var(--color-surface);
    border-radius: var(--radius-xl);
    border: 1px solid var(--color-border);
    box-shadow: var(--shadow-1);
}

.academy-cta-title {
    margin: 0 0 var(--spacing-3);
    letter-spacing: -0.03em;
    font-size: var(--text-2xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    line-height: var(--line-height-tight);
}

.academy-cta-copy {
    margin: 0 0 var(--spacing-5);
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
    font-size: var(--text-base);
}

/* Continue learning section */
.academy-continue-learning {
    padding: 40px 0;
}

.academy-continue-label {
    font-size: var(--text-xs);
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: var(--font-weight-bold);
    margin-bottom: 8px;
    display: block;
}

.academy-continue-title {
    margin: 0 0 12px;
    font-size: var(--text-lg);
    letter-spacing: -0.02em;
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
}

/* Related scopes section */
.academy-related-scopes {
    padding: 40px 0;
}

.academy-related-scope-label {
    font-size: var(--text-xs);
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: var(--font-weight-bold);
    margin-bottom: 8px;
    display: block;
}

.academy-related-scope-name {
    margin: 0 0 12px;
    font-size: var(--text-lg);
    letter-spacing: -0.02em;
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
}

/* Disclaimer section */
.academy-disclaimer {
    padding: 40px 0;
}

.academy-disclaimer-text {
    color: var(--color-text-secondary);
    font-size: var(--text-sm);
    line-height: 1.65;
    margin: 0;
    max-width: 72ch;
}

/* Breadcrumbs */
.academy-breadcrumbs {
    padding: 12px 0;
}

.academy-breadcrumbs .breadcrumb-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    color: var(--color-text-muted);
    font-size: var(--text-sm);
}

.academy-breadcrumbs .breadcrumb-list li {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.academy-breadcrumbs .breadcrumb-list li::after {
    content: "/";
    color: rgba(2, 26, 56, 0.35);
}

.academy-breadcrumbs .breadcrumb-list li:last-child::after {
    content: "";
}

.academy-breadcrumbs a {
    color: var(--color-text);
    text-decoration: none;
}

.academy-breadcrumbs a:hover {
    color: var(--color-brand);
    text-decoration: underline;
}

.academy-breadcrumbs .active {
    color: var(--color-text);
}

.academy-scope-meta {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 12px;
}

.academy-scope-meta {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 12px;
}

.academy-lessons-header {
    margin-bottom: 18px;
}

.academy-lesson-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
}

.academy-lesson-difficulty {
    flex-shrink: 0;
}

.academy-empty-state {
    padding: 40px 20px;
    text-align: center;
    color: var(--color-text-secondary);
}

.academy-search-header {
    margin-bottom: 18px;
}

.academy-search-results-title {
    margin: 0 0 6px;
    letter-spacing: -0.03em;
    color: var(--color-text);
}

.academy-search-message {
    padding: 40px 20px;
    text-align: center;
    color: var(--color-text-secondary);
}

.academy-search-message h2 {
    margin-bottom: 12px;
}

.academy-search-message ul {
    text-align: left;
    display: inline-block;
    margin-top: 12px;
}

.academy-search-result-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
    flex-wrap: wrap;
}

.academy-search-result-badge {
    font-size: 12px;
}

.academy-search-result-time {
    font-size: 12px;
    color: var(--color-text-muted);
}

.academy-search-result-title {
    margin: 0;
}

.academy-search-result-excerpt {
    margin: 8px 0 0;
    color: var(--color-text-secondary);
}

.academy-search-result-meta {
    margin-top: 10px;
}

.academy-search-result-difficulty {
    font-size: 11px;
}

/* Article layout */
.academy-article-layout {
    display: grid;
    gap: var(--spacing-6);
}

@media (min-width: 1024px) {
    .academy-article-layout {
        grid-template-columns: 1fr 300px;
        align-items: start;
        gap: var(--spacing-8);
    }
}

.academy-article-main {
    min-width: 0;
}

.academy-article-sidebar {
    position: relative;
}

@media (min-width: 1024px) {
    .academy-article-sidebar {
        position: sticky;
        top: calc(var(--header-height) + 20px);
    }
}

.academy-sidebar-section {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-xl);
    padding: var(--spacing-4);
    margin-bottom: var(--spacing-3);
    box-shadow: var(--shadow-1);
}

.academy-sidebar-title {
    margin: 0 0 var(--spacing-3);
    font-size: var(--text-sm);
    letter-spacing: -0.01em;
    color: var(--color-text);
    font-weight: var(--font-weight-semibold);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-size: var(--text-xs);
}

.academy-toc-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.academy-toc-link {
    color: var(--color-text-secondary);
    text-decoration: none;
    font-size: var(--text-sm);
    line-height: 1.35;
}

.academy-toc-link:hover {
    color: var(--color-brand);
}

.academy-toc-link.active {
    color: var(--color-text);
    font-weight: var(--font-weight-bold);
}

.academy-toc-link-sub {
    padding-left: 10px;
    color: var(--color-text-muted);
}

.academy-sidebar-nav {
    list-style: none;
    padding: 0;
    margin: 0;
}

.academy-sidebar-related {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.academy-sidebar-related li {
    margin: 0;
}

.academy-sidebar-related a {
    color: var(--color-text-secondary);
    text-decoration: none;
    font-size: 13px;
    line-height: 1.5;
}

.academy-sidebar-related a:hover {
    color: var(--color-brand);
    text-decoration: underline;
}

.academy-sidebar-links {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.academy-sidebar-links li {
    margin: 0;
}

.academy-sidebar-links a {
    color: var(--color-text-secondary);
    text-decoration: none;
    font-size: 13px;
    line-height: 1.5;
}

.academy-sidebar-links a:hover {
    color: var(--color-brand);
    text-decoration: underline;
}

.academy-continue-label {
    font-size: 12px;
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: var(--font-weight-bold);
    margin-bottom: 8px;
    display: block;
}

.academy-continue-title {
    margin: 0 0 12px;
    font-size: var(--text-lg);
    letter-spacing: -0.02em;
}

.academy-disclaimer-text {
    color: var(--color-text-secondary);
    font-size: var(--text-sm);
    line-height: 1.65;
    margin: 0;
}

.academy-related-scope-label {
    font-size: 12px;
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: var(--font-weight-bold);
    margin-bottom: 8px;
    display: block;
}

.academy-related-scope-name {
    margin: 0 0 12px;
    font-size: var(--text-lg);
    letter-spacing: -0.02em;
}

.academy-topic-cta {
    padding: 40px 0;
    background-color: var(--color-surface-2);
}

/* =========================================================
   State of Market Reports - Index Page Styles
   ========================================================= */

/* State of Market Reports - Index Page Hero */
.state-market-hero {
    position: relative;
    background-image: 
        linear-gradient(135deg, 
            rgba(103, 78, 153, 0.85) 0%, 
            rgba(90, 61, 140, 0.80) 25%,
            rgba(74, 42, 122, 0.75) 50%,
            rgba(90, 61, 140, 0.80) 75%,
            rgba(103, 78, 153, 0.85) 100%
        ),
        url('/public/assets/img/state-of-market-bg.webp');
    background-size: 400% 400%, cover;
    background-position: 0% 50%, center center;
    background-repeat: no-repeat;
    animation: gradient-shift 15s ease infinite;
    color: rgba(255, 255, 255, 0.92);
    padding: var(--spacing-10) 0 var(--spacing-8);
    border-bottom: 0;
    overflow: hidden;
    box-shadow: 
        inset 0 -2px 20px rgba(0, 0, 0, 0.1),
        0 4px 30px rgba(103, 78, 153, 0.3);
}

@keyframes gradient-shift {
    0%, 100% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
}

.state-market-hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: 
        radial-gradient(ellipse at top left, rgba(147, 51, 234, 0.4) 0%, transparent 50%),
        radial-gradient(ellipse at top right, rgba(59, 130, 246, 0.3) 0%, transparent 50%),
        radial-gradient(ellipse at bottom center, rgba(168, 85, 247, 0.2) 0%, transparent 60%),
        linear-gradient(180deg, 
            rgba(255, 255, 255, 0.15) 0%, 
            transparent 20%,
            transparent 80%,
            rgba(0, 0, 0, 0.1) 100%
        );
    pointer-events: none;
    z-index: 1;
    animation: overlay-pulse 12s ease-in-out infinite;
}

@keyframes overlay-pulse {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: 0.8;
    }
}

.state-market-hero::after {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: 
        radial-gradient(circle, 
            rgba(255, 255, 255, 0.1) 0%, 
            transparent 50%
        );
    animation: pulse-glow 10s ease-in-out infinite;
    pointer-events: none;
    z-index: 1;
}

@keyframes pulse-glow {
    0%, 100% {
        transform: translate(0, 0) scale(1) rotate(0deg);
        opacity: 0.4;
    }
    33% {
        transform: translate(5%, 5%) scale(1.05) rotate(120deg);
        opacity: 0.6;
    }
    66% {
        transform: translate(-5%, -5%) scale(1.1) rotate(240deg);
        opacity: 0.5;
    }
}

/* Background decorative elements */
.state-market-hero-bg-elements {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    pointer-events: none;
    z-index: 1;
    overflow: hidden;
}

.hero-shape {
    position: absolute;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.08);
    filter: blur(40px);
    animation: float 20s ease-in-out infinite;
}

.hero-shape-1 {
    width: 300px;
    height: 300px;
    top: -100px;
    left: 10%;
    animation-delay: 0s;
    animation-duration: 25s;
}

.hero-shape-2 {
    width: 200px;
    height: 200px;
    top: 50%;
    right: 15%;
    animation-delay: -5s;
    animation-duration: 20s;
}

.hero-shape-3 {
    width: 250px;
    height: 250px;
    bottom: -50px;
    left: 60%;
    animation-delay: -10s;
    animation-duration: 30s;
}

.hero-shape-4 {
    width: 180px;
    height: 180px;
    top: 20%;
    right: 40%;
    animation-delay: -15s;
    animation-duration: 22s;
}

@keyframes float {
    0%, 100% {
        transform: translate(0, 0) scale(1);
    }
    25% {
        transform: translate(30px, -30px) scale(1.1);
    }
    50% {
        transform: translate(-20px, 20px) scale(0.9);
    }
    75% {
        transform: translate(20px, 30px) scale(1.05);
    }
}

.hero-pattern {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: 
        radial-gradient(circle at 2px 2px, rgba(255, 255, 255, 0.15) 1px, transparent 0);
    background-size: 40px 40px;
    opacity: 0.3;
    animation: pattern-move 20s linear infinite;
}

@keyframes pattern-move {
    0% {
        background-position: 0 0;
    }
    100% {
        background-position: 40px 40px;
    }
}

.state-market-hero-content {
    position: relative;
    max-width: 980px;
    margin: 0;
    text-align: left;
    z-index: 2;
}

.hero-title-wrapper {
    position: relative;
    display: inline-block;
    margin-bottom: var(--spacing-4);
}

.state-market-hero-title {
    color: #ffffff;
    letter-spacing: -0.05em;
    margin: 0;
    font-size: clamp(2.5rem, 5vw, 3.5rem);
    font-weight: var(--font-weight-bold);
    line-height: 1.1;
    text-shadow: 
        0 2px 10px rgba(0, 0, 0, 0.2),
        0 4px 20px rgba(0, 0, 0, 0.15),
        0 0 40px rgba(255, 255, 255, 0.15),
        0 0 80px rgba(147, 51, 234, 0.2);
    position: relative;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-1);
    filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.15));
    animation: title-entrance 1s ease-out;
}

@keyframes title-entrance {
    0% {
        opacity: 0;
        transform: translateY(20px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

/* State of Market hero title lines - using white for dark background */
.state-market-hero .title-line-1,
.state-market-hero .title-line-2 {
    display: inline-block;
    position: relative;
    background: linear-gradient(135deg, 
        rgba(255, 255, 255, 1) 0%, 
        rgba(255, 255, 255, 0.95) 50%,
        rgba(255, 255, 255, 1) 100%
    );
    background-size: 200% 100%;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    animation: text-shimmer 3s ease-in-out infinite;
}

.state-market-hero .title-line-2 {
    animation-delay: 0.5s;
    color: rgba(255, 255, 255, 0.98);
    background: linear-gradient(135deg, 
        rgba(255, 255, 255, 1) 0%, 
        rgba(220, 191, 255, 0.9) 50%,
        rgba(255, 255, 255, 1) 100%
    );
    background-size: 200% 100%;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

@keyframes text-shimmer {
    0%, 100% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
}

.hero-title-accent {
    position: absolute;
    bottom: -8px;
    left: 0;
    width: 120px;
    height: 4px;
    background: linear-gradient(90deg, 
        rgba(255, 255, 255, 0.9) 0%, 
        rgba(220, 191, 255, 0.8) 50%,
        transparent 100%
    );
    border-radius: var(--radius-full);
    box-shadow: 
        0 0 10px rgba(255, 255, 255, 0.5),
        0 0 20px rgba(147, 51, 234, 0.4);
    animation: accent-glow 2s ease-in-out infinite;
}

@keyframes accent-glow {
    0%, 100% {
        opacity: 0.8;
        transform: scaleX(1);
    }
    50% {
        opacity: 1;
        transform: scaleX(1.1);
    }
}

.state-market-hero-subtitle {
    color: rgba(255, 255, 255, 0.95);
    max-width: 70ch;
    margin: 0 0 var(--spacing-5);
    font-size: var(--text-lg);
    line-height: var(--line-height-relaxed);
    text-shadow: 
        0 1px 4px rgba(0, 0, 0, 0.15),
        0 2px 8px rgba(0, 0, 0, 0.1);
    font-weight: var(--font-weight-medium);
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-2);
    animation: subtitle-entrance 1.2s ease-out;
}

@keyframes subtitle-entrance {
    0% {
        opacity: 0;
        transform: translateY(15px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

.hero-icon {
    font-size: var(--text-xl);
    color: rgba(255, 255, 255, 0.9);
    margin-top: 2px;
    animation: icon-bounce 2s ease-in-out infinite;
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2));
}

@keyframes icon-bounce {
    0%, 100% {
        transform: translateY(0) rotate(0deg);
    }
    50% {
        transform: translateY(-3px) rotate(5deg);
    }
}

.state-market-hero-description {
    color: rgba(255, 255, 255, 0.88);
    font-style: normal;
    max-width: 70ch;
    margin: 0;
    font-size: var(--text-base);
    line-height: var(--line-height-relaxed);
    text-shadow: 
        0 1px 3px rgba(0, 0, 0, 0.12),
        0 2px 6px rgba(0, 0, 0, 0.08);
    position: relative;
    animation: description-entrance 1.4s ease-out;
    padding-left: var(--spacing-6);
    border-left: 2px solid rgba(255, 255, 255, 0.2);
}

@keyframes description-entrance {
    0% {
        opacity: 0;
        transform: translateX(-10px);
    }
    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

/* State of Market Reports - Index Page Body */
.state-market-reports {
    background: transparent;
    padding: var(--spacing-5) 0;
}

.state-market-section-header {
    position: relative;
    text-align: left;
    margin-bottom: var(--spacing-6);
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--spacing-4);
    flex-wrap: wrap;
    padding: var(--spacing-5) var(--spacing-5);
    background: linear-gradient(135deg, 
        rgba(255, 255, 255, 0.98) 0%, 
        rgba(255, 255, 255, 0.95) 100%
    );
    border: 1px solid rgba(103, 78, 153, 0.12);
    border-radius: var(--radius-lg);
    box-shadow: 
        0 2px 8px rgba(0, 0, 0, 0.04),
        0 4px 16px rgba(103, 78, 153, 0.06),
        inset 0 1px 0 rgba(255, 255, 255, 0.8);
    transition: all 0.3s ease;
}

.state-market-section-header::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, 
        var(--color-brand) 0%, 
        rgba(147, 51, 234, 0.8) 50%,
        var(--color-brand) 100%
    );
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
    background-size: 200% 100%;
    animation: gradient-shift 3s ease infinite;
}

@keyframes gradient-shift {
    0%, 100% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
}

.state-market-section-header:hover {
    transform: translateY(-2px);
    box-shadow: 
        0 4px 12px rgba(0, 0, 0, 0.06),
        0 8px 24px rgba(103, 78, 153, 0.1),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    border-color: rgba(103, 78, 153, 0.2);
}

.state-market-section-title {
    color: var(--color-text);
    letter-spacing: -0.03em;
    margin: 0 0 var(--spacing-2);
    font-size: var(--text-2xl);
    font-weight: var(--font-weight-bold);
    background: linear-gradient(135deg, 
        var(--color-text) 0%, 
        rgba(103, 78, 153, 0.9) 100%
    );
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    position: relative;
}

.state-market-section-subtitle {
    color: var(--color-text-secondary);
    margin: 0;
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
    position: relative;
    padding-left: var(--spacing-3);
}

.state-market-section-subtitle::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 3px;
    height: 16px;
    background: linear-gradient(180deg, 
        var(--color-brand) 0%, 
        rgba(147, 51, 234, 0.6) 100%
    );
    border-radius: var(--radius-full);
}

.state-market-reports-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--spacing-4);
}

@media (min-width: 900px) {
    .state-market-reports-list {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--spacing-5);
    }
}

.state-market-report-card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-xl);
    padding: var(--spacing-4);
    box-shadow: var(--shadow-1);
    display: grid;
    gap: var(--spacing-3);
    transition: all var(--transition-fast);
}

.state-market-report-card:hover {
    border-color: var(--color-brand);
    box-shadow: var(--shadow-2);
}

.state-market-report-header {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-3);
}

.state-market-report-meta {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    flex-wrap: wrap;
    margin-bottom: 0;
}

.state-market-report-date {
    color: var(--color-text-muted);
    font-size: var(--text-xs);
}

.state-market-report-image {
    width: 100%;
}

.state-market-report-thumb {
    width: 100%;
    height: 160px;
    object-fit: cover;
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
}

@media (min-width: 900px) {
    .state-market-report-thumb {
        height: 180px;
    }
}

.state-market-report-content {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-2);
}

.state-market-report-title {
    margin: 0;
    font-size: var(--text-xl);
    font-weight: var(--font-weight-semibold);
}

.state-market-report-title a {
    color: var(--color-text);
    text-decoration: none;
    transition: color var(--transition-fast);
}

.state-market-report-title a:hover {
    color: var(--color-brand);
    text-decoration: underline;
}

.state-market-report-subhead {
    color: var(--color-text-secondary);
    margin: var(--spacing-2) 0 0;
    font-size: var(--text-sm);
    line-height: var(--line-height-relaxed);
}

.state-market-report-highlights {
    margin: var(--spacing-2) 0 0;
}

.state-market-report-highlights li {
    color: var(--color-text-secondary);
    font-size: var(--text-sm);
}

.state-market-report-footer {
    border-top: 1px solid var(--color-border);
    padding-top: var(--spacing-3);
    margin-top: var(--spacing-2);
}

.state-market-report-footer-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--spacing-3);
    flex-wrap: wrap;
}

.state-market-report-tickers {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--spacing-2);
    flex: 1;
    min-width: 0;
}

.state-market-read-btn {
    flex-shrink: 0;
    white-space: nowrap;
}

/* Session Badge */
.state-market-session-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2);
    padding: var(--spacing-1) var(--spacing-2);
    border-radius: 999px;
    font-size: var(--text-xs);
    font-weight: var(--font-weight-bold);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    background: linear-gradient(180deg, #ffffff 0%, #f6f7fb 100%);
    border: 1px solid var(--color-border);
    color: var(--color-text);
}

.state-market-session-badge::before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: var(--color-brand);
}

.session-open::before {
    background: var(--color-brand);
}

.session-midday::before {
    background: var(--color-text-muted);
}

.session-close::before {
    background: var(--color-brand);
    opacity: 0.95;
}

/* Ticker Tags */
.state-market-ticker-tag {
    background: linear-gradient(180deg, #ffffff 0%, #f6f7fb 100%);
    border: 1px solid var(--color-border);
    color: var(--color-text);
    border-radius: 999px;
    padding: var(--spacing-1) var(--spacing-2);
    font-size: var(--text-xs);
    transition: all var(--transition-fast);
}

.state-market-ticker-tag:hover {
    border-color: var(--color-brand);
}

.ticker-up {
    border-color: rgba(16, 185, 129, 0.35);
}

.ticker-down {
    border-color: rgba(239, 68, 68, 0.35);
}

.ticker-mixed {
    border-color: rgba(0, 0, 0, 0.20);
}

/* Detail Page Hero */
.somr-hero {
    background: linear-gradient(135deg, var(--color-brand) 0%, rgba(103, 78, 153, 0.9) 100%);
    color: rgba(255, 255, 255, 0.92);
    padding: var(--spacing-6) 0 var(--spacing-5);
}

.somr-hero-content {
    max-width: 980px;
}

.somr-hero-title {
    color: #ffffff;
    letter-spacing: -0.05em;
    margin: 0 0 var(--spacing-2);
    font-size: var(--text-4xl);
    font-weight: var(--font-weight-bold);
}

.somr-hero-subtitle {
    color: rgba(255, 255, 255, 0.78);
    margin: 0;
    max-width: 72ch;
    font-size: var(--text-lg);
    line-height: var(--line-height-relaxed);
}

.somr-article {
    background: transparent;
    padding: var(--spacing-5) 0 var(--spacing-8);
}

.somr-layout {
    display: grid;
    gap: var(--spacing-4);
}

@media (min-width: 1024px) {
    .somr-layout {
        grid-template-columns: 1fr 320px;
        gap: var(--spacing-5);
        align-items: start;
    }
}

/* =========================================================
   State of Market Reports Styles (Additional)
   ========================================================= */

.somr-index-header {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin-bottom: 24px;
}

@media (min-width: 768px) {
    .somr-index-header {
        flex-direction: row;
        align-items: flex-end;
        justify-content: space-between;
    }
}

.state-market-empty {
    padding: 60px 20px;
    text-align: center;
    color: var(--color-text-secondary);
}

.state-market-tickers-grid {
    display: grid;
    gap: 10px;
}

.state-market-ticker-card {
    background: linear-gradient(180deg, #ffffff 0%, #f6f7fb 100%);
    border: 1px solid var(--color-border);
    border-radius: 12px;
    padding: 12px;
}

.state-market-ticker-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 6px;
}

.state-market-ticker-link {
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    text-decoration: none;
    font-size: var(--text-base);
}

.state-market-ticker-link:hover {
    color: var(--color-brand);
    text-decoration: underline;
}

.state-market-ticker-direction {
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    padding: 4px 8px;
    border-radius: 999px;
    text-transform: uppercase;
}

.state-market-ticker-direction.direction-up {
    background: rgba(16, 185, 129, 0.1);
    color: var(--color-success);
}

.state-market-ticker-direction.direction-down {
    background: rgba(239, 68, 68, 0.1);
    color: var(--color-danger);
}

.state-market-ticker-direction.direction-mixed {
    background: rgba(2, 26, 56, 0.06);
    color: var(--color-text-secondary);
}

.state-market-ticker-context {
    font-size: var(--text-xs);
    color: var(--color-text-secondary);
    margin: var(--spacing-2) 0 0;
    line-height: var(--line-height-relaxed);
}

.state-market-highlights-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-3);
}

.state-market-highlights-list li {
    padding-left: var(--spacing-4);
    position: relative;
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
    font-size: var(--text-sm);
}

.state-market-highlights-list li::before {
    content: "•";
    position: absolute;
    left: 0;
    top: 2px;
    width: auto;
    height: auto;
    display: inline-block;
    color: var(--color-brand);
    font-size: var(--text-lg);
    font-weight: var(--font-weight-bold);
    line-height: 1;
}

.state-market-sources-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
}

.state-market-related-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--spacing-4);
}

@media (min-width: 768px) {
    .state-market-related-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

.state-market-related-card {
    background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: var(--spacing-4);
    transition: all var(--transition-fast);
}

.state-market-related-card:hover {
    border-color: var(--color-brand);
    box-shadow: var(--shadow-2);
    transform: translateY(-2px);
}

.state-market-related-title {
    margin: 0 0 6px;
    font-size: var(--text-base);
    font-weight: var(--font-weight-semibold);
}

/* Market Snapshot Panel */
.somr-snapshot-panel {
    margin-bottom: var(--spacing-6);
}

.state-market-snapshot-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: var(--spacing-4);
    margin-top: var(--spacing-4);
}

.state-market-snapshot-item {
    background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: var(--spacing-4);
    transition: all var(--transition-fast);
}

.state-market-snapshot-item:hover {
    border-color: var(--color-brand);
    box-shadow: var(--shadow-1);
    transform: translateY(-1px);
}

.snapshot-label {
    display: block;
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: var(--spacing-3);
}

.snapshot-indicators {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-2);
}

.snapshot-indicator {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-2);
    font-size: var(--text-sm);
    padding: var(--spacing-2) 0;
    border-bottom: 1px solid var(--color-border);
}

.snapshot-indicator:last-child {
    border-bottom: none;
}

.snapshot-ticker {
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
    font-size: var(--text-sm);
}

.snapshot-indicator-value,
.snapshot-value {
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    font-size: var(--text-sm);
}

/* =========================================================
   Earnings Calls Styles (Additional)
   ========================================================= */

.earnings-list-section {
    padding: 24px 0 44px;
}

/* Earnings Layout */
.earnings-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--spacing-6);
}

@media (min-width: 1024px) {
    .earnings-layout {
        grid-template-columns: 1fr 320px;
    }
}

.earnings-main {
    min-width: 0;
}

.earnings-sidebar {
    min-width: 0;
}

.earnings-hero {
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.12) 0%, 
        rgba(147, 51, 234, 0.08) 50%,
        rgba(2, 26, 56, 0.05) 100%);
    border: 1.5px solid rgba(103, 78, 153, 0.2);
    border-radius: var(--radius-xl);
    padding: var(--spacing-8) var(--spacing-6);
    box-shadow: 
        0 8px 32px rgba(103, 78, 153, 0.12),
        0 4px 16px rgba(0, 0, 0, 0.08),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    margin-bottom: var(--spacing-6);
    position: relative;
    overflow: hidden;
    isolation: isolate;
}

.earnings-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 30% 20%, rgba(103, 78, 153, 0.25), transparent 60%);
    pointer-events: none;
    z-index: 0;
}

.earnings-hero::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, 
        transparent 0%, 
        var(--color-brand) 20%, 
        rgba(147, 51, 234, 0.8) 50%,
        var(--color-brand) 80%, 
        transparent 100%);
    background-size: 200% 100%;
    animation: earnings-hero-gradient-shift 4s ease infinite;
    z-index: 1;
}

@keyframes earnings-hero-gradient-shift {
    0%, 100% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
}

.earnings-hero-bg-elements {
    position: absolute;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
    z-index: 0;
}

.earnings-hero-shape {
    position: absolute;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(103, 78, 153, 0.15), transparent 70%);
    filter: blur(40px);
    animation: earnings-hero-float 8s ease-in-out infinite;
}

.earnings-hero-shape-1 {
    width: 200px;
    height: 200px;
    top: -50px;
    right: 10%;
    animation-delay: 0s;
}

.earnings-hero-shape-2 {
    width: 150px;
    height: 150px;
    bottom: -30px;
    left: 15%;
    animation-delay: 2s;
}

.earnings-hero-shape-3 {
    width: 120px;
    height: 120px;
    top: 50%;
    right: 5%;
    animation-delay: 4s;
}

@keyframes earnings-hero-float {
    0%, 100% {
        transform: translate(0, 0) scale(1);
        opacity: 0.6;
    }
    50% {
        transform: translate(20px, -20px) scale(1.1);
        opacity: 0.8;
    }
}

.earnings-hero-pattern {
    position: absolute;
    inset: 0;
    background-image: 
        radial-gradient(circle at 2px 2px, rgba(103, 78, 153, 0.15) 1px, transparent 0);
    background-size: 40px 40px;
    opacity: 0.4;
    animation: earnings-hero-pattern-move 20s linear infinite;
}

@keyframes earnings-hero-pattern-move {
    0% {
        background-position: 0 0;
    }
    100% {
        background-position: 40px 40px;
    }
}

.earnings-hero-content {
    position: relative;
    z-index: 2;
}

.earnings-hero-title-wrapper {
    margin-bottom: var(--spacing-4);
    position: relative;
}

.earnings-hero-title {
    margin: 0 0 var(--spacing-3) 0;
    font-size: var(--text-4xl);
    letter-spacing: -0.04em;
    line-height: 1.1;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-1);
}

.earnings-title-line-1,
.earnings-title-line-2 {
    display: block;
    background: linear-gradient(135deg, 
        var(--color-text) 0%, 
        rgba(103, 78, 153, 0.9) 50%,
        var(--color-text) 100%);
    background-size: 200% 100%;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    animation: earnings-title-shimmer 3s ease-in-out infinite;
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.1));
}

.earnings-title-line-2 {
    background: linear-gradient(135deg, 
        var(--color-brand) 0%, 
        rgba(147, 51, 234, 0.9) 50%,
        var(--color-brand) 100%);
    background-size: 200% 100%;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

@keyframes earnings-title-shimmer {
    0%, 100% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
}

.earnings-hero-title-accent {
    width: 80px;
    height: 4px;
    background: linear-gradient(90deg, 
        var(--color-brand) 0%, 
        rgba(147, 51, 234, 0.8) 100%);
    border-radius: 2px;
    margin-top: var(--spacing-2);
    animation: earnings-hero-accent-pulse 2s ease-in-out infinite;
}

@keyframes earnings-hero-accent-pulse {
    0%, 100% {
        opacity: 1;
        transform: scaleX(1);
    }
    50% {
        opacity: 0.7;
        transform: scaleX(1.1);
    }
}

.earnings-hero-subtitle {
    margin: 0;
    color: var(--color-text-secondary);
    max-width: 72ch;
    line-height: var(--line-height-relaxed);
    font-size: var(--text-lg);
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    position: relative;
    padding-left: var(--spacing-1);
}

.earnings-hero-icon {
    color: var(--color-brand);
    font-size: var(--text-xl);
    animation: earnings-hero-icon-bounce 2s ease-in-out infinite;
}

@keyframes earnings-hero-icon-bounce {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-4px);
    }
}

/* Earnings Search */
.earnings-search-wrapper {
    position: relative;
    width: 100%;
    margin-bottom: var(--spacing-6);
}

.earnings-search-wrapper .search-suggestions {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    margin-top: var(--spacing-1);
    z-index: var(--z-dropdown);
    max-width: 600px;
}

.earnings-search-form {
    margin: 0;
}

.earnings-search-container {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: var(--spacing-2) var(--spacing-3);
    box-shadow: 
        0 2px 8px rgba(0, 0, 0, 0.04),
        0 1px 2px rgba(0, 0, 0, 0.06);
    transition: all 0.2s ease;
    max-width: 600px;
}

.earnings-search-container:focus-within {
    border-color: var(--color-brand);
    box-shadow: 
        0 4px 12px rgba(103, 78, 153, 0.12),
        0 2px 4px rgba(0, 0, 0, 0.08);
}

.earnings-search-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-text-secondary);
    font-size: var(--text-lg);
    flex-shrink: 0;
}

.earnings-search-input {
    flex: 1;
    min-width: 0;
    border: none;
    outline: none;
    background: transparent;
    color: var(--color-text);
    font-size: var(--text-base);
    font-family: inherit;
    padding: var(--spacing-1) 0;
}

.earnings-search-input::placeholder {
    color: var(--color-text-tertiary);
}

.earnings-search-button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border: none;
    outline: none;
    background: linear-gradient(135deg, var(--color-brand) 0%, rgba(147, 51, 234, 0.9) 100%);
    color: white;
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all 0.2s ease;
    flex-shrink: 0;
    font-size: var(--text-base);
}

.earnings-search-button:hover {
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.95) 0%, var(--color-brand) 100%);
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(103, 78, 153, 0.3);
}

.earnings-search-button:active {
    transform: translateY(0);
}

.earnings-search-query {
    margin: var(--spacing-2) 0 0 0;
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
}

.earnings-search-query strong {
    color: var(--color-text);
    font-weight: var(--font-weight-semibold);
}

.earnings-section-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--spacing-3);
    flex-wrap: wrap;
    margin: var(--spacing-6) 0 var(--spacing-4);
    padding-bottom: var(--spacing-3);
    border-bottom: 2px solid rgba(103, 78, 153, 0.15);
    position: relative;
}

.earnings-section-header::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 60px;
    height: 2px;
    background: linear-gradient(90deg, 
        var(--color-brand) 0%, 
        rgba(147, 51, 234, 0.8) 100%);
    border-radius: 2px;
}

.earnings-section-title {
    margin: 0;
    font-size: var(--text-2xl);
    letter-spacing: -0.03em;
    font-weight: var(--font-weight-bold);
    background: linear-gradient(135deg, 
        var(--color-text) 0%, 
        rgba(103, 78, 153, 0.9) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.earnings-section-subtitle {
    margin: 0;
    font-size: var(--text-sm);
    color: var(--color-text-tertiary);
}

.earnings-empty {
    background: linear-gradient(135deg, 
        var(--color-surface) 0%, 
        rgba(255, 255, 255, 0.98) 100%);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-xl);
    padding: var(--spacing-8);
    color: var(--color-text-secondary);
    box-shadow: 
        0 4px 16px rgba(0, 0, 0, 0.06),
        0 2px 8px rgba(0, 0, 0, 0.04);
    text-align: center;
    position: relative;
    overflow: hidden;
}

.earnings-empty::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, 
        transparent 0%, 
        var(--color-brand) 50%, 
        transparent 100%);
    opacity: 0.5;
}

.earnings-calls-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--spacing-5);
}

.earnings-call-card {
    animation: earnings-card-entrance 0.5s ease-out backwards;
}

.earnings-call-card:nth-child(1) { animation-delay: 0.1s; }
.earnings-call-card:nth-child(2) { animation-delay: 0.2s; }
.earnings-call-card:nth-child(3) { animation-delay: 0.3s; }
.earnings-call-card:nth-child(4) { animation-delay: 0.4s; }
.earnings-call-card:nth-child(5) { animation-delay: 0.5s; }
.earnings-call-card:nth-child(n+6) { animation-delay: 0.6s; }

@keyframes earnings-card-entrance {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (min-width: 768px) {
    .earnings-calls-list {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--spacing-6);
    }
}

.earnings-call-card {
    background: linear-gradient(135deg, 
        var(--color-surface) 0%, 
        rgba(255, 255, 255, 0.98) 50%,
        rgba(103, 78, 153, 0.02) 100%);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-xl);
    padding: var(--spacing-6);
    box-shadow: 
        0 4px 16px rgba(0, 0, 0, 0.06),
        0 2px 8px rgba(0, 0, 0, 0.04),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
    isolation: isolate;
}

.earnings-call-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, 
        transparent 0%, 
        var(--color-brand) 20%, 
        var(--color-brand) 80%, 
        transparent 100%);
    opacity: 0;
    transition: opacity 0.3s ease, height 0.3s ease;
    z-index: 1;
}

.earnings-call-card::after {
    content: '';
    position: absolute;
    top: -50%;
    right: -10%;
    width: 200px;
    height: 200px;
    background: radial-gradient(circle, 
        rgba(103, 78, 153, 0.08) 0%, 
        transparent 70%);
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
    z-index: 0;
}

.earnings-call-card:hover {
    transform: translateY(-6px) scale(1.01);
    box-shadow: 
        0 12px 32px rgba(103, 78, 153, 0.15),
        0 6px 16px rgba(0, 0, 0, 0.1),
        0 0 0 1px rgba(103, 78, 153, 0.1),
        inset 0 1px 0 rgba(255, 255, 255, 0.95);
    border-color: rgba(103, 78, 153, 0.4);
    background: linear-gradient(135deg, 
        rgba(255, 255, 255, 1) 0%, 
        rgba(255, 255, 255, 0.98) 50%,
        rgba(103, 78, 153, 0.04) 100%);
}

.earnings-call-card:hover::before {
    opacity: 0.8;
    height: 4px;
}

.earnings-call-card:hover::after {
    opacity: 1;
}

.earnings-call-meta {
    display: flex;
    align-items: center;
    gap: var(--spacing-3);
    flex-wrap: wrap;
}

.earnings-call-ticker {
    display: inline-flex;
    align-items: center;
    padding: var(--spacing-2) var(--spacing-4);
    border-radius: 999px;
    font-weight: var(--font-weight-bold);
    letter-spacing: 0.02em;
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.12) 0%, 
        rgba(147, 51, 234, 0.08) 100%);
    border: 1.5px solid rgba(103, 78, 153, 0.25);
    color: var(--color-text);
    text-decoration: none;
    transition: all 0.2s ease;
    box-shadow: 
        0 2px 4px rgba(103, 78, 153, 0.1),
        inset 0 1px 0 rgba(255, 255, 255, 0.5);
}

.earnings-call-ticker:hover {
    background: linear-gradient(135deg, 
        var(--color-brand) 0%, 
        rgba(147, 51, 234, 0.9) 100%);
    color: white;
    border-color: var(--color-brand);
    text-decoration: none;
    transform: translateY(-1px);
    box-shadow: 
        0 4px 8px rgba(103, 78, 153, 0.25),
        inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

.earnings-call-date {
    font-size: var(--text-xs);
    color: var(--color-text-tertiary);
}

.earnings-call-title {
    margin: 0 0 var(--spacing-3) 0;
    font-size: var(--text-xl);
    line-height: var(--line-height-tight);
    letter-spacing: -0.02em;
    font-weight: var(--font-weight-bold);
    position: relative;
    z-index: 2;
}

.earnings-call-title a {
    color: var(--color-text);
    text-decoration: none;
    transition: all 0.2s ease;
    display: block;
    background: linear-gradient(135deg, 
        var(--color-text) 0%, 
        rgba(103, 78, 153, 0.9) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.earnings-call-title a:hover {
    background: linear-gradient(135deg, 
        var(--color-brand) 0%, 
        rgba(147, 51, 234, 0.9) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    text-decoration: none;
    transform: translateX(2px);
}

.earnings-call-summary {
    margin: 0 0 var(--spacing-3) 0;
    color: var(--color-text-secondary);
    font-size: var(--text-base);
    line-height: var(--line-height-relaxed);
    position: relative;
    z-index: 2;
}

.earnings-call-footer {
    display: flex;
    justify-content: flex-end;
    padding-top: var(--spacing-4);
    border-top: 1px solid rgba(103, 78, 153, 0.15);
    margin-top: var(--spacing-4);
    position: relative;
    z-index: 2;
}

.earnings-call-footer::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 60px;
    height: 1px;
    background: linear-gradient(90deg, 
        var(--color-brand) 0%, 
        transparent 100%);
}

.earnings-call-footer .btn {
    white-space: nowrap;
    position: relative;
    overflow: hidden;
}

.earnings-call-footer .btn::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, 
        transparent, 
        rgba(255, 255, 255, 0.3), 
        transparent);
    transition: left 0.5s ease;
}

.earnings-call-footer .btn:hover::before {
    left: 100%;
}

.earnings-breadcrumbs {
    margin-bottom: 16px;
}

.earnings-call-header {
    margin-bottom: var(--spacing-4);
    position: relative;
    z-index: 2;
}

.earnings-call-content {
    flex: 1;
    position: relative;
    z-index: 2;
}

.earnings-call-date {
    font-size: var(--text-xs);
    color: var(--color-text-tertiary);
    font-weight: var(--font-weight-medium);
    padding: var(--spacing-1) var(--spacing-2);
    background: rgba(103, 78, 153, 0.05);
    border-radius: var(--radius-sm);
    display: inline-block;
}

.earnings-call-takeaways {
    list-style: none;
    padding: 0;
    margin: var(--spacing-3) 0 0;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-2);
    position: relative;
    z-index: 2;
}

.earnings-call-takeaways li {
    padding-left: var(--spacing-5);
    position: relative;
    color: var(--color-text-secondary);
    line-height: 1.6;
    font-size: var(--text-sm);
    transition: all 0.2s ease;
}

.earnings-call-takeaways li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.5em;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: linear-gradient(135deg, 
        var(--color-brand) 0%, 
        rgba(147, 51, 234, 0.8) 100%);
    box-shadow: 0 0 0 2px rgba(103, 78, 153, 0.1);
    transition: all 0.2s ease;
}

.earnings-call-card:hover .earnings-call-takeaways li::before {
    box-shadow: 0 0 0 3px rgba(103, 78, 153, 0.2);
    transform: scale(1.2);
}

.earnings-call-takeaways li:hover {
    color: var(--color-text);
    transform: translateX(4px);
}

.takeaway-more {
    color: var(--color-text-tertiary);
    font-style: italic;
    font-size: var(--text-xs);
}

.earnings-pagination {
    margin-top: var(--spacing-8);
    margin-bottom: var(--spacing-6);
    padding: var(--spacing-5) 0;
    position: relative;
}

.earnings-pagination::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100px;
    height: 2px;
    background: linear-gradient(90deg, 
        transparent 0%, 
        rgba(103, 78, 153, 0.3) 50%, 
        transparent 100%);
}

.earnings-pagination .pagination-list {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-2);
    list-style: none;
    padding: 0;
    margin: 0;
    flex-wrap: wrap;
}

.earnings-pagination .pagination-link {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-1);
    padding: var(--spacing-2) var(--spacing-4);
    min-width: 44px;
    height: 44px;
    color: var(--color-text);
    text-decoration: none;
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-semibold);
    background: linear-gradient(135deg, 
        var(--color-surface) 0%, 
        rgba(255, 255, 255, 0.98) 100%);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 
        0 2px 4px rgba(0, 0, 0, 0.04),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    position: relative;
    overflow: hidden;
}

.earnings-pagination .pagination-link::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, 
        var(--color-brand) 0%, 
        rgba(147, 51, 234, 0.9) 100%);
    opacity: 0;
    transition: opacity 0.3s ease;
    z-index: 0;
}

.earnings-pagination .pagination-link span,
.earnings-pagination .pagination-link {
    position: relative;
    z-index: 1;
}

.earnings-pagination .pagination-link:hover {
    color: white;
    border-color: var(--color-brand);
    background: linear-gradient(135deg, 
        var(--color-brand) 0%, 
        rgba(147, 51, 234, 0.9) 100%);
    text-decoration: none;
    transform: translateY(-2px);
    box-shadow: 
        0 6px 16px rgba(103, 78, 153, 0.25),
        0 2px 8px rgba(0, 0, 0, 0.1),
        inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

.earnings-pagination .pagination-link:hover::before {
    opacity: 1;
}

.earnings-pagination .pagination-link.active {
    background: linear-gradient(135deg, 
        var(--color-brand) 0%, 
        rgba(147, 51, 234, 0.9) 100%);
    color: white;
    border-color: var(--color-brand);
    font-weight: var(--font-weight-bold);
    box-shadow: 
        0 4px 12px rgba(103, 78, 153, 0.3),
        0 2px 6px rgba(0, 0, 0, 0.15),
        inset 0 1px 0 rgba(255, 255, 255, 0.2),
        inset 0 -1px 0 rgba(0, 0, 0, 0.1);
    transform: scale(1.05);
    position: relative;
}

.earnings-pagination .pagination-link.active::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, 
        transparent 0%, 
        rgba(255, 255, 255, 0.5) 50%, 
        transparent 100%);
    border-radius: var(--radius-md) var(--radius-md) 0 0;
}

.earnings-pagination .pagination-link.disabled {
    background: var(--color-surface-2);
    color: var(--color-text-tertiary);
    border-color: var(--color-border);
    cursor: not-allowed;
    opacity: 0.5;
    box-shadow: none;
    transform: none;
}

.earnings-pagination .pagination-link.disabled:hover {
    background: var(--color-surface-2);
    color: var(--color-text-tertiary);
    border-color: var(--color-border);
    transform: none;
    box-shadow: none;
}

.earnings-pagination .pagination-link.disabled::before {
    display: none;
}

.earnings-pagination .pagination-ellipsis {
    padding: var(--spacing-2) var(--spacing-2);
    color: var(--color-text-tertiary);
    font-weight: var(--font-weight-semibold);
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    height: 44px;
}

@media (max-width: 767px) {
    .earnings-pagination .pagination-list {
        gap: var(--spacing-1);
    }
    
    .earnings-pagination .pagination-link {
        min-width: 40px;
        height: 40px;
        padding: var(--spacing-2) var(--spacing-3);
        font-size: var(--text-xs);
    }
    
    .earnings-pagination .pagination-ellipsis {
        min-width: 40px;
        height: 40px;
    }
}

.earnings-show-main {
    min-width: 0;
}

.earnings-show-hero {
    position: relative;
    padding: var(--spacing-8) 0 var(--spacing-6);
    background: 
        linear-gradient(135deg, 
            rgba(103, 78, 153, 0.12) 0%, 
            rgba(103, 78, 153, 0.06) 50%,
            rgba(2, 26, 56, 0.04) 100%
        );
    border-bottom: 1px solid var(--color-border);
    overflow: hidden;
}

.earnings-show-hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: 
        radial-gradient(ellipse at top left, rgba(103, 78, 153, 0.08) 0%, transparent 50%),
        radial-gradient(ellipse at top right, rgba(147, 51, 234, 0.06) 0%, transparent 50%);
    pointer-events: none;
    z-index: 1;
}


.earnings-show-meta {
    display: flex;
    align-items: center;
    gap: var(--spacing-3);
    flex-wrap: wrap;
    margin-bottom: var(--spacing-3);
}

.earnings-show-ticker {
    display: inline-flex;
    align-items: center;
    padding: var(--spacing-2) var(--spacing-3);
    border-radius: var(--radius-full);
    font-weight: var(--font-weight-bold);
    letter-spacing: 0.02em;
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.15) 0%, 
        rgba(103, 78, 153, 0.1) 100%
    );
    border: 1.5px solid rgba(103, 78, 153, 0.3);
    color: var(--color-brand);
    text-decoration: none;
    box-shadow: 
        0 2px 8px rgba(103, 78, 153, 0.1),
        inset 0 1px 0 rgba(255, 255, 255, 0.1);
    transition: all 0.3s ease;
}

.earnings-show-ticker:hover {
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.2) 0%, 
        rgba(103, 78, 153, 0.15) 100%
    );
    border-color: rgba(103, 78, 153, 0.4);
    transform: translateY(-1px);
    box-shadow: 
        0 4px 12px rgba(103, 78, 153, 0.15),
        inset 0 1px 0 rgba(255, 255, 255, 0.15);
    text-decoration: none;
}

.earnings-show-date {
    font-size: var(--text-sm);
    color: var(--color-text-tertiary);
}

.earnings-show-title {
    margin: 0;
    font-size: clamp(24px, 4vw, 40px);
    line-height: 1.2;
    letter-spacing: -0.03em;
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    background: linear-gradient(135deg, 
        var(--color-text) 0%, 
        rgba(103, 78, 153, 0.9) 100%
    );
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.earnings-show-content {
    padding: 22px 0 44px;
}

.earnings-show-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--spacing-6);
}

@media (min-width: 1024px) {
    .earnings-show-layout {
        grid-template-columns: 2fr 1fr;
        align-items: start;
    }
    .earnings-show-sidebar {
        position: sticky;
        top: calc(var(--header-height) + 18px);
    }
}

.earnings-summary-box,
.earnings-takeaways-box,
.earnings-transcript-box,
.earnings-related-box,
.earnings-quote-link-box {
    position: relative;
    background: linear-gradient(135deg, 
        rgba(255, 255, 255, 0.98) 0%, 
        rgba(255, 255, 255, 0.95) 100%
    );
    border: 1px solid rgba(103, 78, 153, 0.15);
    border-radius: var(--radius-xl);
    padding: var(--spacing-6);
    box-shadow: 
        0 2px 12px rgba(0, 0, 0, 0.04),
        0 4px 24px rgba(103, 78, 153, 0.08),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    transition: all 0.3s ease;
}

.earnings-summary-box:hover,
.earnings-takeaways-box:hover,
.earnings-transcript-box:hover,
.earnings-related-box:hover,
.earnings-quote-link-box:hover {
    transform: translateY(-2px);
    box-shadow: 
        0 4px 16px rgba(0, 0, 0, 0.06),
        0 8px 32px rgba(103, 78, 153, 0.12),
        inset 0 1px 0 rgba(255, 255, 255, 0.95);
    border-color: rgba(103, 78, 153, 0.25);
}

.live-quote-box {
    margin-bottom: var(--spacing-4);
    padding: var(--spacing-4);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.05) 0%, 
        rgba(255, 255, 255, 0.8) 100%
    );
    border-radius: var(--radius-lg);
    border: 1px solid rgba(103, 78, 153, 0.12);
}

.live-quote-box-content {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-3);
    align-items: flex-start;
}

/* Desktop: 3-column grid */
@media (min-width: 768px) {
    .live-quote-box-content {
        display: grid;
        grid-template-columns: auto 1fr auto;
        gap: var(--spacing-4);
        align-items: center;
        width: 100%;
    }
}

.live-quote-logo {
    width: 48px;
    height: 48px;
    border-radius: var(--radius-md);
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.live-quote-logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    background: var(--color-surface);
}

.live-quote-logo-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.1) 0%, rgba(147, 51, 234, 0.1) 100%);
    color: var(--color-brand);
    font-weight: var(--font-weight-bold);
    font-size: var(--text-sm);
    text-transform: uppercase;
}

.live-quote-price {
    font-size: var(--text-2xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    line-height: 1.2;
    min-height: 1.5em;
}

@media (min-width: 768px) {
    .live-quote-price {
        text-align: center;
        justify-self: center;
    }
}

.live-quote-price .live-quote-loading {
    color: var(--color-text-secondary);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-normal);
    font-style: italic;
}

.live-quote-price .live-quote-error {
    color: var(--color-text-tertiary);
    font-size: var(--text-base);
    font-weight: var(--font-weight-normal);
}

.live-quote-change {
    font-size: var(--text-base);
    font-weight: var(--font-weight-semibold);
    line-height: 1.4;
    min-height: 1.5em;
}

@media (min-width: 768px) {
    .live-quote-change {
        text-align: right;
        justify-self: end;
    }
}

.live-quote-change .positive {
    color: #16a34a;
}

.live-quote-change .negative {
    color: #dc2626;
}

.live-quote-change .live-quote-loading {
    color: var(--color-text-secondary);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-normal);
    font-style: italic;
}

.live-quote-change .live-quote-error {
    color: var(--color-text-tertiary);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-normal);
}

.earnings-summary-box::before,
.earnings-takeaways-box::before,
.earnings-transcript-box::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, 
        var(--color-brand) 0%, 
        rgba(147, 51, 234, 0.8) 50%,
        var(--color-brand) 100%
    );
    border-radius: var(--radius-xl) var(--radius-xl) 0 0;
    background-size: 200% 100%;
    animation: earnings-gradient-shift 3s ease infinite;
}

@keyframes earnings-gradient-shift {
    0%, 100% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
}

.earnings-summary-box,
.earnings-takeaways-box,
.earnings-transcript-box {
    margin-bottom: var(--spacing-6);
}

.earnings-section-heading {
    margin: 0 0 var(--spacing-4) 0;
    font-size: var(--text-xl);
    font-weight: var(--font-weight-bold);
    letter-spacing: -0.02em;
    color: var(--color-text);
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    padding-bottom: var(--spacing-2);
    border-bottom: 2px solid rgba(103, 78, 153, 0.15);
}

.earnings-section-heading::before {
    content: '';
    width: 4px;
    height: 20px;
    background: linear-gradient(180deg, 
        var(--color-brand) 0%, 
        rgba(147, 51, 234, 0.8) 100%
    );
    border-radius: var(--radius-full);
}

.earnings-summary-text {
    margin: 0;
    color: var(--color-text);
    line-height: 1.75;
    font-size: var(--text-base);
    padding: var(--spacing-4);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.03) 0%, 
        rgba(255, 255, 255, 0.5) 100%
    );
    border-radius: var(--radius-lg);
    border-left: 3px solid var(--color-brand);
}

.earnings-takeaways-list {
    margin: 0;
    padding: 0;
    list-style: none;
    color: var(--color-text);
    line-height: 1.8;
}

.earnings-takeaways-list li {
    position: relative;
    padding: var(--spacing-3) var(--spacing-3) var(--spacing-3) var(--spacing-6);
    margin-bottom: var(--spacing-2);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.04) 0%, 
        rgba(255, 255, 255, 0.6) 100%
    );
    border-radius: var(--radius-md);
    border-left: 3px solid var(--color-brand);
    transition: all 0.2s ease;
}

.earnings-takeaways-list li:hover {
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.08) 0%, 
        rgba(255, 255, 255, 0.8) 100%
    );
    transform: translateX(4px);
    box-shadow: 0 2px 8px rgba(103, 78, 153, 0.1);
}

.earnings-takeaways-list li::before {
    content: '✓';
    position: absolute;
    left: var(--spacing-2);
    top: var(--spacing-3);
    color: var(--color-brand);
    font-weight: var(--font-weight-bold);
    font-size: var(--text-lg);
}

.earnings-transcript-content {
    color: var(--color-text);
    line-height: 1.85;
    font-size: var(--text-base);
    max-width: 100%;
}

.earnings-transcript-content p {
    margin: 0 0 var(--spacing-5) 0;
    color: var(--color-text);
    text-align: justify;
    hyphens: auto;
}

.earnings-transcript-content h2,
.earnings-transcript-content h3 {
    margin: var(--spacing-8) 0 var(--spacing-4);
    padding-top: var(--spacing-4);
    border-top: 2px solid rgba(103, 78, 153, 0.15);
    color: var(--color-text);
    letter-spacing: -0.02em;
    font-weight: var(--font-weight-bold);
    background: linear-gradient(135deg, 
        var(--color-text) 0%, 
        rgba(103, 78, 153, 0.9) 100%
    );
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.earnings-transcript-content h2:first-of-type,
.earnings-transcript-content h3:first-of-type {
    margin-top: 0;
    padding-top: 0;
    border-top: none;
}

.earnings-transcript-content blockquote {
    margin: var(--spacing-6) 0;
    padding: var(--spacing-5);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.06) 0%, 
        rgba(255, 255, 255, 0.8) 100%
    );
    border-left: 4px solid var(--color-brand);
    border-radius: var(--radius-lg);
    color: var(--color-text);
    box-shadow: 
        0 2px 8px rgba(103, 78, 153, 0.1),
        inset 0 1px 0 rgba(255, 255, 255, 0.5);
    font-style: italic;
    position: relative;
}

.earnings-transcript-content blockquote::before {
    content: '"';
    position: absolute;
    top: -10px;
    left: var(--spacing-4);
    font-size: 4rem;
    color: rgba(103, 78, 153, 0.2);
    font-family: Georgia, serif;
    line-height: 1;
}

.earnings-sidebar-heading {
    margin: 0 0 var(--spacing-4) 0;
    font-size: var(--text-lg);
    font-weight: var(--font-weight-bold);
    letter-spacing: -0.01em;
    color: var(--color-text);
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    padding-bottom: var(--spacing-2);
    border-bottom: 2px solid rgba(103, 78, 153, 0.15);
}

.earnings-sidebar-heading::before {
    content: '';
    width: 3px;
    height: 18px;
    background: linear-gradient(180deg, 
        var(--color-brand) 0%, 
        rgba(147, 51, 234, 0.8) 100%
    );
    border-radius: var(--radius-full);
}

.earnings-sidebar-text {
    margin: 0 0 var(--spacing-4) 0;
    color: var(--color-text-secondary);
    font-size: var(--text-sm);
    line-height: var(--line-height-relaxed);
}

.earnings-related-item {
    border-bottom: 1px solid rgba(103, 78, 153, 0.1);
    transition: all 0.2s ease;
}

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

.earnings-related-item:hover {
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.04) 0%, 
        rgba(255, 255, 255, 0.6) 100%
    );
    border-radius: var(--radius-md);
    margin: 0 calc(-1 * var(--spacing-2));
    padding: 0 var(--spacing-2);
}

.earnings-related-title {
    color: var(--color-text);
    font-weight: var(--font-weight-semibold);
    line-height: 1.4;
    transition: color 0.2s ease;
}

.earnings-related-item:hover .earnings-related-title {
    color: var(--color-brand);
}

.earnings-related-date {
    font-size: var(--text-xs);
    color: var(--color-text-tertiary);
    margin-top: var(--spacing-1);
}

/* Earnings Sidebar */
.earnings-sidebar {
    min-width: 0;
}

.earnings-sidebar-card {
    background: linear-gradient(135deg, 
        var(--color-surface) 0%, 
        rgba(255, 255, 255, 0.98) 50%,
        rgba(103, 78, 153, 0.02) 100%);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-xl);
    padding: var(--spacing-5);
    box-shadow: 
        0 4px 16px rgba(0, 0, 0, 0.06),
        0 2px 8px rgba(0, 0, 0, 0.04),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    position: sticky;
    top: var(--spacing-6);
    max-height: calc(100vh - var(--spacing-12));
    overflow-y: auto;
}

.earnings-sidebar-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, 
        transparent 0%, 
        var(--color-brand) 20%, 
        var(--color-brand) 80%, 
        transparent 100%);
    opacity: 0.6;
    border-radius: var(--radius-xl) var(--radius-xl) 0 0;
}

.earnings-sidebar-header {
    margin-bottom: var(--spacing-4);
    padding-bottom: var(--spacing-3);
    border-bottom: 2px solid rgba(103, 78, 153, 0.15);
    position: relative;
}

.earnings-sidebar-header::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 60px;
    height: 2px;
    background: linear-gradient(90deg, 
        var(--color-brand) 0%, 
        rgba(147, 51, 234, 0.8) 100%);
    border-radius: 2px;
}

.earnings-sidebar-title {
    font-size: var(--text-lg);
    font-weight: var(--font-weight-bold);
    margin: 0 0 var(--spacing-1) 0;
    color: var(--color-text);
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
}

.earnings-sidebar-title i {
    color: var(--color-brand);
    font-size: var(--text-xl);
}

.earnings-sidebar-subtitle {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    margin: 0;
}

.earnings-sidebar-list {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-4);
}

.earnings-sidebar-date-group {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-2);
}

.earnings-sidebar-date-header {
    margin-bottom: var(--spacing-1);
}

.earnings-sidebar-date-label {
    font-size: var(--text-sm);
    font-weight: var(--font-weight-bold);
    color: var(--color-brand);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.earnings-sidebar-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-3);
    padding: var(--spacing-3);
    background: linear-gradient(135deg, 
        var(--color-surface-2) 0%, 
        rgba(255, 255, 255, 0.98) 100%);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    text-decoration: none;
    color: inherit;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
    position: relative;
    overflow: hidden;
}

.earnings-sidebar-item::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 3px;
    height: 100%;
    background: linear-gradient(180deg, 
        var(--color-brand) 0%, 
        rgba(147, 51, 234, 0.8) 100%);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.earnings-sidebar-item:hover {
    transform: translateX(4px);
    box-shadow: 
        0 4px 12px rgba(103, 78, 153, 0.15),
        0 2px 6px rgba(0, 0, 0, 0.08);
    border-color: rgba(103, 78, 153, 0.4);
    background: linear-gradient(135deg, 
        rgba(255, 255, 255, 1) 0%, 
        rgba(255, 255, 255, 0.98) 100%);
    text-decoration: none;
}

.earnings-sidebar-item:hover::before {
    opacity: 1;
}

.earnings-sidebar-item-ticker {
    flex: 1;
    font-size: var(--text-sm);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    min-width: 0;
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
}

.earnings-sidebar-item:hover .earnings-sidebar-item-ticker {
    color: var(--color-brand);
}

.earnings-sidebar-item-prediction-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    background: linear-gradient(135deg, 
        var(--color-brand) 0%, 
        rgba(147, 51, 234, 0.9) 100%);
    border-radius: var(--radius-sm);
    color: white;
    font-size: var(--text-xs);
    animation: earnings-sidebar-prediction-pulse 2s ease-in-out infinite;
}

.earnings-sidebar-item-prediction-badge i {
    font-size: 10px;
    color: white;
}

@keyframes earnings-sidebar-prediction-pulse {
    0%, 100% {
        transform: scale(1);
        opacity: 1;
    }
    50% {
        transform: scale(1.1);
        opacity: 0.9;
    }
}

.earnings-sidebar-item-has-prediction {
    border-left: 3px solid var(--color-brand);
}

.earnings-sidebar-item-has-prediction::before {
    opacity: 1;
}

.earnings-sidebar-item-time {
    font-size: var(--text-xs);
    color: var(--color-text-secondary);
    text-transform: capitalize;
    white-space: nowrap;
}

.earnings-sidebar-item-quarter {
    font-size: var(--text-xs);
    color: var(--color-text-tertiary);
    background: rgba(103, 78, 153, 0.1);
    padding: 2px var(--spacing-2);
    border-radius: var(--radius-sm);
    font-weight: var(--font-weight-semibold);
    white-space: nowrap;
}

.earnings-sidebar-item-arrow {
    flex-shrink: 0;
    color: var(--color-text-tertiary);
    transition: all 0.3s ease;
}

.earnings-sidebar-item:hover .earnings-sidebar-item-arrow {
    color: var(--color-brand);
    transform: translateX(4px);
}

/* Upcoming Earnings Page */
.earnings-upcoming-section {
    padding: 24px 0 44px;
}

.earnings-upcoming-filters {
    background: linear-gradient(135deg, 
        var(--color-surface) 0%, 
        rgba(255, 255, 255, 0.98) 50%,
        rgba(103, 78, 153, 0.02) 100%);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-xl);
    padding: var(--spacing-5);
    box-shadow: 
        0 4px 16px rgba(0, 0, 0, 0.06),
        0 2px 8px rgba(0, 0, 0, 0.04),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    margin-bottom: var(--spacing-6);
    position: relative;
    overflow: hidden;
}

.earnings-upcoming-filters::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, 
        transparent 0%, 
        var(--color-brand) 20%, 
        var(--color-brand) 80%, 
        transparent 100%);
    opacity: 0.6;
    border-radius: var(--radius-xl) var(--radius-xl) 0 0;
}

.earnings-upcoming-filter-form {
    position: relative;
    z-index: 1;
}

.earnings-upcoming-filter-group {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-3);
    margin-bottom: var(--spacing-4);
}

.earnings-upcoming-filter-label {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
}

.earnings-upcoming-filter-label i {
    color: var(--color-brand);
    font-size: var(--text-base);
}

.earnings-upcoming-filter-inputs {
    display: flex;
    gap: var(--spacing-3);
    flex-wrap: wrap;
    align-items: center;
}

.earnings-upcoming-filter-input {
    flex: 1;
    min-width: 200px;
    padding: var(--spacing-3) var(--spacing-4);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-surface-2);
    color: var(--color-text);
    font-size: var(--text-base);
    font-family: inherit;
    transition: all 0.3s ease;
}

.earnings-upcoming-filter-input:focus {
    outline: none;
    border-color: var(--color-brand);
    box-shadow: 0 0 0 3px rgba(103, 78, 153, 0.1);
    background: var(--color-surface);
}

.earnings-upcoming-filter-quick {
    display: flex;
    align-items: center;
    gap: var(--spacing-3);
    flex-wrap: wrap;
    padding-top: var(--spacing-3);
    border-top: 1px solid rgba(103, 78, 153, 0.15);
}

.earnings-upcoming-filter-quick-label {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    font-weight: var(--font-weight-medium);
}

.earnings-upcoming-filter-quick-link {
    padding: var(--spacing-2) var(--spacing-4);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-surface-2);
    color: var(--color-text);
    text-decoration: none;
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
    transition: all 0.3s ease;
    display: inline-flex;
    align-items: center;
}

.earnings-upcoming-filter-quick-link:hover {
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.1) 0%, 
        rgba(147, 51, 234, 0.05) 100%);
    border-color: rgba(103, 78, 153, 0.4);
    color: var(--color-brand);
    text-decoration: none;
    transform: translateY(-1px);
}

.earnings-upcoming-filter-quick-link.active {
    background: linear-gradient(135deg, 
        var(--color-brand) 0%, 
        rgba(147, 51, 234, 0.9) 100%);
    border-color: var(--color-brand);
    color: white;
}

.earnings-upcoming-list {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-6);
}

.earnings-upcoming-date-group {
    background: linear-gradient(135deg, 
        var(--color-surface) 0%, 
        rgba(255, 255, 255, 0.98) 50%,
        rgba(103, 78, 153, 0.02) 100%);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-xl);
    padding: var(--spacing-5);
    box-shadow: 
        0 4px 16px rgba(0, 0, 0, 0.06),
        0 2px 8px rgba(0, 0, 0, 0.04),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    position: relative;
    overflow: hidden;
    transition: all 0.3s ease;
}

.earnings-upcoming-date-group::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, 
        transparent 0%, 
        var(--color-brand) 20%, 
        var(--color-brand) 80%, 
        transparent 100%);
    opacity: 0.6;
}

.earnings-upcoming-date-group:hover {
    box-shadow: 
        0 8px 24px rgba(103, 78, 153, 0.12),
        0 4px 12px rgba(0, 0, 0, 0.08),
        inset 0 1px 0 rgba(255, 255, 255, 0.95);
    transform: translateY(-2px);
}

.earnings-upcoming-date-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--spacing-4);
    padding-bottom: var(--spacing-3);
    border-bottom: 2px solid rgba(103, 78, 153, 0.15);
    position: relative;
}

.earnings-upcoming-date-header::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 60px;
    height: 2px;
    background: linear-gradient(90deg, 
        var(--color-brand) 0%, 
        rgba(147, 51, 234, 0.8) 100%);
    border-radius: 2px;
}

.earnings-upcoming-date-label-wrapper {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-1);
}

.earnings-upcoming-date-label {
    font-size: var(--text-xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    margin: 0;
    background: linear-gradient(135deg, 
        var(--color-text) 0%, 
        rgba(103, 78, 153, 0.9) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.earnings-upcoming-date-sublabel {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
}

.earnings-upcoming-date-count {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    font-weight: var(--font-weight-medium);
    padding: var(--spacing-2) var(--spacing-3);
    background: rgba(103, 78, 153, 0.1);
    border-radius: var(--radius-md);
}

.earnings-upcoming-items {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-3);
}

.earnings-upcoming-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-4);
    padding: var(--spacing-4);
    background: linear-gradient(135deg, 
        var(--color-surface-2) 0%, 
        rgba(255, 255, 255, 0.98) 100%);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-lg);
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

.earnings-upcoming-item::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: linear-gradient(180deg, 
        var(--color-brand) 0%, 
        rgba(147, 51, 234, 0.8) 100%);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.earnings-upcoming-item:hover {
    transform: translateX(4px);
    box-shadow: 
        0 4px 12px rgba(103, 78, 153, 0.15),
        0 2px 6px rgba(0, 0, 0, 0.08);
    border-color: rgba(103, 78, 153, 0.4);
    background: linear-gradient(135deg, 
        rgba(255, 255, 255, 1) 0%, 
        rgba(255, 255, 255, 0.98) 100%);
}

.earnings-upcoming-item:hover::before {
    opacity: 1;
}

.earnings-upcoming-item-main {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-2);
    min-width: 0;
}

.earnings-upcoming-item-ticker {
    font-size: var(--text-lg);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    text-decoration: none;
    transition: color 0.3s ease;
}

.earnings-upcoming-item:hover .earnings-upcoming-item-ticker {
    color: var(--color-brand);
}

.earnings-upcoming-item-details {
    display: flex;
    gap: var(--spacing-2);
    flex-wrap: wrap;
}

.earnings-upcoming-item-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-1);
    padding: var(--spacing-1) var(--spacing-2);
    background: rgba(103, 78, 153, 0.1);
    border: 1px solid rgba(103, 78, 153, 0.2);
    border-radius: var(--radius-sm);
    font-size: var(--text-xs);
    color: var(--color-text-secondary);
    font-weight: var(--font-weight-medium);
    transition: all 0.3s ease;
}

.earnings-upcoming-item-badge i {
    font-size: var(--text-xs);
    color: var(--color-brand);
}

.earnings-upcoming-item-prediction {
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.15) 0%, 
        rgba(147, 51, 234, 0.1) 100%);
    border-color: rgba(103, 78, 153, 0.3);
    color: var(--color-brand);
    font-weight: var(--font-weight-semibold);
    text-decoration: none;
    animation: earnings-prediction-badge-pulse 2s ease-in-out infinite;
}

.earnings-upcoming-item-prediction:hover {
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.25) 0%, 
        rgba(147, 51, 234, 0.2) 100%);
    border-color: rgba(103, 78, 153, 0.5);
    transform: scale(1.05);
    box-shadow: 0 2px 8px rgba(103, 78, 153, 0.2);
}

.earnings-upcoming-item-prediction i {
    color: var(--color-brand);
    font-size: var(--text-sm);
}

@keyframes earnings-prediction-badge-pulse {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: 0.85;
    }
}

.earnings-upcoming-item-estimates {
    display: flex;
    gap: var(--spacing-4);
    align-items: center;
}

.earnings-upcoming-item-estimate {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-1);
    text-align: right;
}

.earnings-upcoming-item-estimate-label {
    font-size: var(--text-xs);
    color: var(--color-text-tertiary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.earnings-upcoming-item-estimate-value {
    font-size: var(--text-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
}

.earnings-upcoming-item-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: var(--radius-md);
    transition: all 0.3s ease;
}

.earnings-upcoming-item-link-prediction {
    background: linear-gradient(135deg, 
        var(--color-brand) 0%, 
        rgba(147, 51, 234, 0.9) 100%);
    color: white;
    box-shadow: 0 2px 8px rgba(103, 78, 153, 0.3);
}

.earnings-upcoming-item-link-prediction:hover {
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.9) 0%, 
        var(--color-brand) 100%);
    transform: scale(1.1);
    box-shadow: 0 4px 12px rgba(103, 78, 153, 0.4);
}

.earnings-upcoming-item-link-prediction i {
    font-size: var(--text-lg);
    color: white;
}

.earnings-upcoming-item-link:hover {
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.95) 0%, 
        var(--color-brand) 100%);
    transform: translateX(2px);
    text-decoration: none;
    color: white;
}

.earnings-empty-icon {
    font-size: 4rem;
    color: var(--color-text-tertiary);
    margin-bottom: var(--spacing-4);
    opacity: 0.5;
}

.earnings-upcoming-results-info {
    margin-bottom: var(--spacing-5);
    padding: var(--spacing-3) var(--spacing-4);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.05) 0%, 
        rgba(255, 255, 255, 0.98) 100%);
    border: 1px solid rgba(103, 78, 153, 0.15);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    text-align: center;
}

.earnings-upcoming-results-filter {
    color: var(--color-brand);
    font-weight: var(--font-weight-medium);
}

.earnings-upcoming-pagination {
    margin-top: var(--spacing-6);
}

@media (max-width: 768px) {
    .earnings-upcoming-filter-inputs {
        flex-direction: column;
    }
    
    .earnings-upcoming-filter-input {
        width: 100%;
    }
    
    .earnings-upcoming-item {
        flex-direction: column;
        align-items: flex-start;
    }
    
    .earnings-upcoming-item-estimates {
        width: 100%;
        justify-content: space-between;
    }
    
    .earnings-upcoming-item-link {
        align-self: flex-end;
    }
}

/* =========================================================
   Earnings Prediction Page Styles
   ========================================================= */
.earnings-prediction-section {
    padding: 32px 0 60px;
    background: linear-gradient(180deg, 
        #ffffff 0%, 
        #fafbfc 20%,
        #ffffff 100%);
    min-height: 100vh;
}

/* Gated (logged-out) view: blur content so real data is not visible even if user removes blur (server sends fake data only) */
.earnings-prediction-gated-wrapper {
    min-height: 40vh;
}
.earnings-prediction-gated {
    filter: blur(12px);
    pointer-events: none;
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
}
/* Keep modal and backdrop below main nav (--z-sticky: 1020) so nav stays visible */
body.earnings-prediction-login-modal-open .earnings-prediction-login-modal {
    z-index: 1005;
}
body.earnings-prediction-login-modal-open .modal-backdrop,
.earnings-prediction-login-backdrop {
    z-index: 1000;
}
.earnings-prediction-login-modal .modal-dialog {
    max-width: 440px;
}
.earnings-prediction-login-modal-content {
    border-radius: var(--radius-lg);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2);
    border: 1px solid var(--color-border);
}
.earnings-prediction-login-modal-icon {
    width: 72px;
    height: 72px;
    margin: 0 auto var(--spacing-5);
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--color-brand) 0%, rgba(103, 78, 153, 0.8) 100%);
    color: #fff;
    font-size: 2rem;
    border-radius: 50%;
    box-shadow: 0 10px 32px rgba(103, 78, 153, 0.4);
}
.earnings-prediction-login-modal-title {
    font-size: var(--text-xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    margin: 0 0 var(--spacing-3);
}
.earnings-prediction-login-modal-text {
    font-size: var(--text-base);
    color: var(--color-text-muted);
    line-height: var(--line-height-relaxed);
    margin: 0 0 var(--spacing-6);
}
.earnings-prediction-login-modal-cta {
    display: inline-flex;
    align-items: center;
    padding: var(--spacing-3) var(--spacing-6);
    font-weight: var(--font-weight-semibold);
    border-radius: var(--radius-md);
}

.earnings-prediction-empty {
    max-width: 600px;
    margin: 80px auto;
}

.earnings-prediction-empty .card {
    background: linear-gradient(135deg, 
        var(--color-surface) 0%, 
        rgba(103, 78, 153, 0.03) 50%,
        var(--color-surface) 100%);
    border: 1.5px solid var(--color-border);
    box-shadow: 
        0 8px 32px rgba(0, 0, 0, 0.08),
        0 4px 16px rgba(103, 78, 153, 0.1);
}

.earnings-prediction-empty-content {
    text-align: center;
    padding: var(--spacing-8);
}

.earnings-prediction-empty-icon {
    font-size: 64px;
    color: var(--color-brand);
    margin-bottom: var(--spacing-5);
    animation: earnings-prediction-empty-pulse 2s ease-in-out infinite;
}

@keyframes earnings-prediction-empty-pulse {
    0%, 100% {
        transform: scale(1);
        opacity: 1;
    }
    50% {
        transform: scale(1.1);
        opacity: 0.8;
    }
}

/* Daily Picks Gated (logged-out) view: blur content so real data is not visible */
.daily-picks-gated-wrapper {
    min-height: 40vh;
}

.daily-picks-gated {
    filter: blur(12px);
    pointer-events: none;
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
}

/* Keep modal and backdrop below main nav (--z-sticky: 1020) so nav stays visible */
body.daily-picks-login-modal-open .daily-picks-login-modal {
    z-index: 1005;
}

body.daily-picks-login-modal-open .modal-backdrop,
.daily-picks-login-backdrop {
    z-index: 1000;
}

.daily-picks-login-modal .modal-dialog {
    max-width: 440px;
}

.daily-picks-login-modal-content {
    border-radius: var(--radius-lg);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2);
    border: 1px solid var(--color-border);
}

.daily-picks-login-modal-icon {
    width: 72px;
    height: 72px;
    margin: 0 auto var(--spacing-5);
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--color-brand) 0%, rgba(103, 78, 153, 0.8) 100%);
    color: #fff;
    font-size: 2rem;
    border-radius: 50%;
    box-shadow: 0 10px 32px rgba(103, 78, 153, 0.4);
}

.daily-picks-login-modal-title {
    font-size: var(--text-xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    margin: 0 0 var(--spacing-3);
}

.daily-picks-login-modal-text {
    font-size: var(--text-base);
    color: var(--color-text-muted);
    line-height: var(--line-height-relaxed);
    margin: 0 0 var(--spacing-6);
}

.daily-picks-login-modal-cta {
    display: inline-flex;
    align-items: center;
    padding: var(--spacing-3) var(--spacing-6);
    font-weight: var(--font-weight-semibold);
    border-radius: var(--radius-md);
}

.earnings-prediction-empty-title {
    font-size: var(--text-2xl);
    font-weight: var(--font-weight-bold);
    margin-bottom: var(--spacing-3);
    color: var(--color-text);
}

.earnings-prediction-empty-text {
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-5);
    line-height: var(--line-height-relaxed);
}

.earnings-prediction-hero {
    position: relative;
    margin-bottom: var(--spacing-8);
    padding: var(--spacing-8) var(--spacing-6);
    background: linear-gradient(135deg, 
        var(--color-surface) 0%, 
        rgba(103, 78, 153, 0.03) 25%,
        rgba(255, 255, 255, 0.98) 50%,
        rgba(147, 51, 234, 0.02) 75%,
        var(--color-surface) 100%);
    background-size: 400% 400%;
    background-position: 0% 50%;
    animation: earnings-prediction-hero-gradient 20s ease infinite;
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-xl);
    box-shadow: 
        0 8px 32px rgba(0, 0, 0, 0.08),
        0 4px 16px rgba(103, 78, 153, 0.12),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    overflow: hidden;
}

@keyframes earnings-prediction-hero-gradient {
    0%, 100% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
}

.earnings-prediction-hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: 
        radial-gradient(ellipse at top left, rgba(103, 78, 153, 0.08) 0%, transparent 50%),
        radial-gradient(ellipse at top right, rgba(147, 51, 234, 0.06) 0%, transparent 50%),
        radial-gradient(ellipse at bottom center, rgba(59, 130, 246, 0.04) 0%, transparent 60%);
    pointer-events: none;
    z-index: 1;
    animation: earnings-prediction-hero-overlay 15s ease-in-out infinite;
}

@keyframes earnings-prediction-hero-overlay {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: 0.85;
    }
}

.earnings-prediction-hero-bg-elements {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    pointer-events: none;
    z-index: 1;
    overflow: hidden;
}

.earnings-prediction-hero-shape {
    position: absolute;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(103, 78, 153, 0.12), transparent 70%);
    filter: blur(50px);
    animation: earnings-prediction-hero-float 25s ease-in-out infinite;
}

.earnings-prediction-hero-shape-1 {
    width: 350px;
    height: 350px;
    top: -100px;
    left: 5%;
    animation-delay: 0s;
    animation-duration: 30s;
}

.earnings-prediction-hero-shape-2 {
    width: 280px;
    height: 280px;
    top: 40%;
    right: 10%;
    animation-delay: -8s;
    animation-duration: 25s;
}

.earnings-prediction-hero-shape-3 {
    width: 320px;
    height: 320px;
    bottom: -80px;
    left: 55%;
    animation-delay: -15s;
    animation-duration: 35s;
}

@keyframes earnings-prediction-hero-float {
    0%, 100% {
        transform: translate(0, 0) scale(1);
    }
    25% {
        transform: translate(40px, -40px) scale(1.1);
    }
    50% {
        transform: translate(-30px, 30px) scale(0.9);
    }
    75% {
        transform: translate(30px, 40px) scale(1.05);
    }
}

.earnings-prediction-hero-pattern {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: 
        radial-gradient(circle at 3px 3px, rgba(103, 78, 153, 0.1) 1.5px, transparent 0);
    background-size: 50px 50px;
    opacity: 0.4;
    animation: earnings-prediction-hero-pattern-move 25s linear infinite;
}

@keyframes earnings-prediction-hero-pattern-move {
    0% {
        background-position: 0 0;
    }
    100% {
        background-position: 50px 50px;
    }
}

.earnings-prediction-hero-content {
    position: relative;
    z-index: 2;
}

.earnings-prediction-hero-title-wrapper {
    position: relative;
    display: inline-block;
    margin-bottom: var(--spacing-5);
}

.earnings-prediction-hero-title {
    font-size: clamp(2rem, 5vw, 3rem);
    font-weight: var(--font-weight-extrabold);
    margin-bottom: var(--spacing-4);
    color: var(--color-text);
    display: flex;
    align-items: center;
    gap: var(--spacing-3);
    flex-wrap: wrap;
    letter-spacing: -0.03em;
    line-height: 1.2;
}

.earnings-prediction-hero-title-accent {
    position: absolute;
    bottom: -8px;
    left: 0;
    width: 80px;
    height: 4px;
    background: linear-gradient(90deg, 
        var(--color-brand) 0%, 
        var(--color-brand-light) 100%);
    border-radius: var(--radius-full);
    animation: earnings-prediction-accent-glow 3s ease-in-out infinite;
}

@keyframes earnings-prediction-accent-glow {
    0%, 100% {
        opacity: 1;
        transform: scaleX(1);
    }
    50% {
        opacity: 0.7;
        transform: scaleX(1.1);
    }
}

.earnings-prediction-ticker-badge {
    background-color: #333;
    font-size: var(--text-lg);
    padding: 8px 16px;
    font-weight: var(--font-weight-bold);
    letter-spacing: 0.05em;
    box-shadow: 
        0 2px 8px rgba(103, 78, 153, 0.2),
        inset 0 1px 0 rgba(255, 255, 255, 0.3);
    transition: all 0.3s ease;
}

.earnings-prediction-ticker-badge:hover {
    transform: scale(1.05);
    box-shadow: 
        0 4px 12px rgba(103, 78, 153, 0.3),
        inset 0 1px 0 rgba(255, 255, 255, 0.4);
}

.earnings-prediction-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-4);
    margin-bottom: var(--spacing-4);
}

.earnings-prediction-meta-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    color: var(--color-text-secondary);
    font-size: var(--text-sm);
}

.earnings-prediction-meta-item i {
    color: var(--color-brand);
    font-size: var(--text-lg);
    animation: earnings-prediction-icon-rotate 3s ease-in-out infinite;
}

@keyframes earnings-prediction-icon-rotate {
    0%, 100% {
        transform: rotate(0deg);
    }
    25% {
        transform: rotate(-5deg);
    }
    75% {
        transform: rotate(5deg);
    }
}

.earnings-prediction-disclaimer {
    margin: var(--spacing-5) 0 0;
    padding: var(--spacing-3) var(--spacing-4);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.08) 0%, 
        rgba(103, 78, 153, 0.03) 100%);
    border-left: 4px solid var(--color-brand);
    border-radius: var(--radius-md);
    font-size: var(--text-xs);
    color: var(--color-text-secondary);
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    box-shadow: 
        0 2px 8px rgba(103, 78, 153, 0.1),
        inset 0 1px 0 rgba(255, 255, 255, 0.5);
    transition: all 0.3s ease;
}

.earnings-prediction-disclaimer:hover {
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.1) 0%, 
        rgba(103, 78, 153, 0.05) 100%);
    box-shadow: 
        0 4px 12px rgba(103, 78, 153, 0.15),
        inset 0 1px 0 rgba(255, 255, 255, 0.6);
}

.earnings-prediction-score-card {
    padding: 20px;
    height: 100%;
    position: relative;
    overflow: hidden;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    border: 1.5px solid var(--color-border);
}

.earnings-prediction-score-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, 
        var(--color-brand) 0%, 
        var(--color-brand-light) 50%,
        var(--color-brand) 100%);
    background-size: 200% 100%;
    opacity: 0;
    transition: opacity 0.4s ease;
    animation: earnings-prediction-card-accent 3s ease-in-out infinite;
}

@keyframes earnings-prediction-card-accent {
    0%, 100% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
}

.earnings-prediction-score-card:hover {
    transform: translateY(-6px);
    box-shadow: 
        0 12px 40px rgba(0, 0, 0, 0.12),
        0 6px 20px rgba(103, 78, 153, 0.15),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    border-color: rgba(103, 78, 153, 0.3);
}

.earnings-prediction-score-card:hover::before {
    opacity: 1;
}

.earnings-prediction-card-title {
    font-size: var(--text-xl);
    font-weight: var(--font-weight-extrabold);
    margin-bottom: var(--spacing-5);
    color: var(--color-text);
    padding-bottom: var(--spacing-3);
    border-bottom: 2px solid var(--color-border);
    letter-spacing: -0.01em;
    position: relative;
}

.earnings-prediction-card-title::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 50px;
    height: 2px;
    background: linear-gradient(90deg, 
        var(--color-brand) 0%, 
        transparent 100%);
}

.earnings-prediction-outcome-badge-wrapper {
    text-align: center;
    margin-bottom: var(--spacing-5);
}

.earnings-prediction-outcome-badge {
    background-color: var(--color-brand);
    color: white;
    font-size: var(--text-2xl);
    padding: 16px 32px;
    font-weight: var(--font-weight-extrabold);
    letter-spacing: 0.05em;
    text-transform: uppercase;
    box-shadow: 
        0 4px 12px rgba(0, 0, 0, 0.1),
        inset 0 1px 0 rgba(255, 255, 255, 0.2);
    transition: all 0.3s ease;
    animation: earnings-prediction-badge-pulse 2s ease-in-out infinite;
}

@keyframes earnings-prediction-badge-pulse {
    0%, 100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.02);
    }
}

.earnings-prediction-outcome-badge:hover {
    transform: scale(1.05);
    box-shadow: 
        0 6px 16px rgba(0, 0, 0, 0.15),
        inset 0 1px 0 rgba(255, 255, 255, 0.3);
}

.earnings-prediction-confidence {
    margin-bottom: var(--spacing-5);
}

.earnings-prediction-confidence-label {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--spacing-2);
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
}

.earnings-prediction-confidence-value {
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
}

.earnings-prediction-progress {
    height: 8px;
    background: var(--color-border);
    border-radius: var(--radius-full);
    overflow: hidden;
}

.earnings-prediction-progress .progress-bar {
    background: linear-gradient(90deg, 
        var(--color-brand) 0%, 
        var(--color-brand-light) 50%,
        var(--color-brand) 100%);
    background-size: 200% 100%;
    transition: width 0.6s cubic-bezier(0.4, 0, 0.2, 1);
    animation: earnings-prediction-progress-shimmer 2s ease-in-out infinite;
    box-shadow: 
        0 2px 8px rgba(103, 78, 153, 0.3),
        inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

@keyframes earnings-prediction-progress-shimmer {
    0%, 100% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
}

.earnings-prediction-probability {
    margin-top: var(--spacing-5);
}

.earnings-prediction-probability-label {
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-2);
}

.earnings-prediction-probability-bar {
    display: flex;
    height: 36px;
    border-radius: var(--radius-md);
    overflow: hidden;
    margin-bottom: var(--spacing-3);
    border: 2px solid var(--color-border);
    box-shadow: 
        inset 0 2px 4px rgba(0, 0, 0, 0.1),
        0 2px 8px rgba(0, 0, 0, 0.05);
    transition: all 0.3s ease;
}

.earnings-prediction-probability-bar:hover {
    box-shadow: 
        inset 0 2px 4px rgba(0, 0, 0, 0.1),
        0 4px 12px rgba(0, 0, 0, 0.1);
    transform: scale(1.01);
}

.earnings-prediction-probability-segment {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    min-width: 60px;
}

.earnings-prediction-probability-segment-label {
    font-size: var(--text-xs);
    font-weight: var(--font-weight-bold);
    color: white;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
    z-index: 1;
}

.earnings-prediction-probability-beat {
    background: linear-gradient(135deg, #10b981 0%, #059669 50%, #10b981 100%);
    background-size: 200% 100%;
    animation: earnings-prediction-probability-shimmer 3s ease-in-out infinite;
}

.earnings-prediction-probability-inline {
    background: linear-gradient(135deg, #3b82f6 0%, #2563eb 50%, #3b82f6 100%);
    background-size: 200% 100%;
    animation: earnings-prediction-probability-shimmer 3s ease-in-out infinite;
    animation-delay: 0.5s;
}

.earnings-prediction-probability-miss {
    background: linear-gradient(135deg, #ef4444 0%, #dc2626 50%, #ef4444 100%);
    background-size: 200% 100%;
    animation: earnings-prediction-probability-shimmer 3s ease-in-out infinite;
    animation-delay: 1s;
}

@keyframes earnings-prediction-probability-shimmer {
    0%, 100% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
}

.earnings-prediction-probability-values {
    display: flex;
    justify-content: space-around;
    font-size: var(--text-xs);
    color: var(--color-text-secondary);
    gap: var(--spacing-2);
}

.earnings-prediction-probability-values strong {
    color: var(--color-text);
    font-weight: var(--font-weight-semibold);
}

.earnings-prediction-outcome-rationale {
    margin-top: var(--spacing-5);
    padding-top: var(--spacing-4);
    border-top: 1.5px solid var(--color-border);
}

.earnings-prediction-outcome-rationale-label {
    font-size: var(--text-base);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
    margin-bottom: var(--spacing-3);
    display: flex;
    align-items: center;
}

.earnings-prediction-outcome-rationale-label i {
    color: var(--color-brand);
    font-size: var(--text-lg);
}

.earnings-prediction-outcome-rationale-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-2);
}

.earnings-prediction-outcome-rationale-item {
    padding: var(--spacing-2) var(--spacing-3);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.05) 0%, 
        rgba(255, 255, 255, 0.6) 100%);
    border-left: 3px solid var(--color-brand);
    border-radius: var(--radius-sm);
    font-size: var(--text-sm);
    color: var(--color-text);
    line-height: 1.6;
    transition: all 0.3s ease;
    position: relative;
    padding-left: var(--spacing-4);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

.earnings-prediction-outcome-rationale-item::before {
    content: '→';
    left: var(--spacing-2);
    color: var(--color-brand);
    font-weight: var(--font-weight-bold);
    font-size: var(--text-base);
}

.earnings-prediction-outcome-rationale-item:hover {
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.1) 0%, 
        rgba(255, 255, 255, 0.7) 100%);
    transform: translateX(4px);
    box-shadow: 
        0 2px 8px rgba(103, 78, 153, 0.15),
        0 1px 4px rgba(0, 0, 0, 0.08);
    border-left-color: rgba(103, 78, 153, 0.8);
}

@media (max-width: 768px) {
    .earnings-prediction-outcome-rationale-item {
        font-size: var(--text-xs);
        padding: var(--spacing-2) var(--spacing-3);
        padding-left: var(--spacing-4);
    }
}

.earnings-prediction-move-range {
    margin-top: var(--spacing-5);
}

.earnings-prediction-move-range-label {
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-2);
}

.earnings-prediction-move-range-value {
    font-size: var(--text-xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    margin-bottom: var(--spacing-3);
}

.earnings-prediction-move-range-visualization {
    margin-bottom: var(--spacing-3);
}

.earnings-prediction-move-range-bar {
    position: relative;
    height: 28px;
    background: linear-gradient(90deg, 
        #ef4444 0%, 
        #f59e0b 25%, 
        #10b981 50%, 
        #f59e0b 75%, 
        #ef4444 100%);
    background-size: 200% 100%;
    border-radius: var(--radius-md);
    overflow: hidden;
    box-shadow: 
        inset 0 2px 4px rgba(0, 0, 0, 0.1),
        0 2px 8px rgba(0, 0, 0, 0.1);
    animation: earnings-prediction-range-glow 3s ease-in-out infinite;
}

@keyframes earnings-prediction-range-glow {
    0%, 100% {
        background-position: 0% 50%;
        opacity: 1;
    }
    50% {
        background-position: 100% 50%;
        opacity: 0.9;
    }
}

.earnings-prediction-move-range-indicator {
    position: absolute;
    top: 0;
    height: 100%;
    background: linear-gradient(90deg, 
        rgba(255, 255, 255, 0.4) 0%, 
        rgba(255, 255, 255, 0.2) 100%);
    border: 2px solid white;
    border-radius: var(--radius-md);
    box-shadow: 
        0 2px 8px rgba(0, 0, 0, 0.3),
        inset 0 1px 0 rgba(255, 255, 255, 0.5);
    transition: all 0.3s ease;
    animation: earnings-prediction-indicator-pulse 2s ease-in-out infinite;
}

@keyframes earnings-prediction-indicator-pulse {
    0%, 100% {
        box-shadow: 
            0 2px 8px rgba(0, 0, 0, 0.3),
            inset 0 1px 0 rgba(255, 255, 255, 0.5);
    }
    50% {
        box-shadow: 
            0 4px 12px rgba(0, 0, 0, 0.4),
            inset 0 1px 0 rgba(255, 255, 255, 0.6),
            0 0 8px rgba(255, 255, 255, 0.3);
    }
}

.earnings-prediction-tail-risk {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
}

.earnings-prediction-reaction-drivers {
    margin-top: var(--spacing-5);
    padding-top: var(--spacing-4);
    border-top: 1.5px solid var(--color-border);
}

.earnings-prediction-reaction-drivers-label {
    font-size: var(--text-base);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
    margin-bottom: var(--spacing-3);
    display: flex;
    align-items: center;
}

.earnings-prediction-reaction-drivers-label i {
    color: var(--color-brand);
    font-size: var(--text-lg);
}

.earnings-prediction-reaction-drivers-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-2);
}

.earnings-prediction-reaction-driver-item {
    padding: var(--spacing-2) var(--spacing-3);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.05) 0%, 
        rgba(255, 255, 255, 0.6) 100%);
    border-left: 3px solid var(--color-brand);
    border-radius: var(--radius-sm);
    font-size: var(--text-sm);
    color: var(--color-text);
    line-height: 1.6;
    transition: all 0.3s ease;
    position: relative;
    padding-left: var(--spacing-4);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

.earnings-prediction-reaction-driver-item::before {
    content: '→';
    left: var(--spacing-2);
    color: var(--color-brand);
    font-weight: var(--font-weight-bold);
    font-size: var(--text-base);
}

.earnings-prediction-reaction-driver-item:hover {
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.1) 0%, 
        rgba(255, 255, 255, 0.7) 100%);
    transform: translateX(4px);
    box-shadow: 
        0 2px 8px rgba(103, 78, 153, 0.15),
        0 1px 4px rgba(0, 0, 0, 0.08);
    border-left-color: rgba(103, 78, 153, 0.8);
}

@media (max-width: 768px) {
    .earnings-prediction-reaction-driver-item {
        font-size: var(--text-xs);
        padding: var(--spacing-2) var(--spacing-3);
        padding-left: var(--spacing-4);
    }
}

.earnings-prediction-signals-section {
    margin-top: var(--spacing-8);
    padding-top: var(--spacing-6);
    border-top: 2px solid var(--color-border);
    position: relative;
}

.earnings-prediction-signals-section::before {
    content: '';
    position: absolute;
    top: -2px;
    left: 0;
    width: 100px;
    height: 2px;
    background: linear-gradient(90deg, 
        var(--color-brand) 0%, 
        transparent 100%);
}

.earnings-prediction-section-title {
    font-size: var(--text-2xl);
    font-weight: var(--font-weight-extrabold);
    margin-bottom: var(--spacing-5);
    color: var(--color-text);
    letter-spacing: -0.02em;
    position: relative;
    display: inline-block;
    padding-bottom: var(--spacing-2);
}

.earnings-prediction-section-title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 60px;
    height: 3px;
    background: linear-gradient(90deg, 
        var(--color-brand) 0%, 
        transparent 100%);
    border-radius: var(--radius-full);
}

.earnings-prediction-signal-card {
    padding: 20px;
    height: 100%;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 1px solid var(--color-border);
    position: relative;
    overflow: hidden;
}

.earnings-prediction-signal-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 3px;
    height: 100%;
    background: linear-gradient(180deg, 
        var(--color-brand) 0%, 
        var(--color-brand-light) 100%);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.earnings-prediction-signal-card:hover {
    transform: translateX(4px) translateY(-2px);
    box-shadow: 
        0 8px 24px rgba(0, 0, 0, 0.1),
        0 4px 12px rgba(103, 78, 153, 0.12);
    border-color: rgba(103, 78, 153, 0.3);
}

.earnings-prediction-signal-card:hover::before {
    opacity: 1;
}

.earnings-prediction-signal-title {
    font-size: var(--text-lg);
    font-weight: var(--font-weight-extrabold);
    margin-bottom: var(--spacing-4);
    color: var(--color-text);
    padding-bottom: var(--spacing-3);
    border-bottom: 2px solid var(--color-border);
    letter-spacing: -0.01em;
    position: relative;
}

.earnings-prediction-signal-title::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 40px;
    height: 2px;
    background: linear-gradient(90deg, 
        var(--color-brand) 0%, 
        transparent 100%);
}

.earnings-prediction-signal-content {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-3);
}

.earnings-prediction-signal-item {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--spacing-2);
}

.earnings-prediction-signal-label {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    flex-shrink: 0;
}

.earnings-prediction-signal-value {
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-text);
    text-align: right;
}

/* News Pulse Section Styles */
.earnings-prediction-news-section {
    margin-top: var(--spacing-4);
}

.earnings-prediction-news-section-title {
    font-size: var(--text-base);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
    margin-bottom: var(--spacing-3);
    padding-bottom: var(--spacing-2);
    border-bottom: 1.5px solid var(--color-border);
    display: flex;
    align-items: center;
}

.earnings-prediction-news-section-title i {
    color: var(--color-brand);
    font-size: var(--text-lg);
}

.earnings-prediction-news-list,
.earnings-prediction-takeaways-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.earnings-prediction-news-item {
    padding: var(--spacing-2) var(--spacing-3);
    margin-bottom: var(--spacing-2);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.03) 0%, 
        rgba(255, 255, 255, 0.5) 100%);
    border-left: 3px solid var(--color-brand);
    border-radius: var(--radius-sm);
    font-size: var(--text-sm);
    color: var(--color-text);
    line-height: 1.6;
    transition: all 0.3s ease;
    position: relative;
    padding-left: var(--spacing-4);
}

.earnings-prediction-news-item::before {
    content: '•';
    left: var(--spacing-2);
    color: var(--color-brand);
    font-weight: var(--font-weight-bold);
    font-size: var(--text-lg);
}

.earnings-prediction-news-item:hover {
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.08) 0%, 
        rgba(255, 255, 255, 0.6) 100%);
    transform: translateX(4px);
    box-shadow: 0 2px 8px rgba(103, 78, 153, 0.1);
}

.earnings-prediction-takeaway-item {
    padding: var(--spacing-3) var(--spacing-4);
    margin-bottom: var(--spacing-3);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.05) 0%, 
        rgba(255, 255, 255, 0.7) 100%);
    border-left: 3px solid rgba(103, 78, 153, 0.6);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    color: var(--color-text);
    line-height: 1.7;
    transition: all 0.3s ease;
    position: relative;
    padding-left: var(--spacing-5);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

.earnings-prediction-takeaway-item::before {
    content: '→';
    left: var(--spacing-3);
    color: var(--color-brand);
    font-weight: var(--font-weight-bold);
    font-size: var(--text-base);
}

.earnings-prediction-takeaway-item:hover {
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.1) 0%, 
        rgba(255, 255, 255, 0.8) 100%);
    transform: translateX(4px);
    box-shadow: 
        0 4px 12px rgba(103, 78, 153, 0.15),
        0 2px 6px rgba(0, 0, 0, 0.08);
    border-left-color: var(--color-brand);
}

@media (max-width: 768px) {
    .earnings-prediction-news-section {
        margin-top: var(--spacing-3);
    }
    
    .earnings-prediction-news-item,
    .earnings-prediction-takeaway-item {
        font-size: var(--text-xs);
        padding: var(--spacing-2) var(--spacing-3);
    }
    
    .earnings-prediction-takeaway-item {
        padding-left: var(--spacing-4);
    }
}

.earnings-prediction-scenarios-section {
    margin-top: var(--spacing-8);
    padding-top: var(--spacing-6);
    border-top: 2px solid var(--color-border);
    position: relative;
}

.earnings-prediction-scenarios-section::before {
    content: '';
    position: absolute;
    top: -2px;
    left: 0;
    width: 100px;
    height: 2px;
    background: linear-gradient(90deg, 
        var(--color-brand) 0%, 
        transparent 100%);
}

.earnings-prediction-scenario-header {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-2);
    align-items: center;
    margin-bottom: var(--spacing-3);
    padding: var(--spacing-2);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.03) 0%, 
        rgba(255, 255, 255, 0.5) 100%);
    border-radius: var(--radius-md);
}
.earnings-prediction-scenario-header .badge {
    background-color: var(--color-brand)!important;
    color: white!important;
}
.earnings-prediction-scenarios-section .accordion-item {
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    margin-bottom: var(--spacing-3);
    overflow: hidden;
    transition: all 0.3s ease;
    background: linear-gradient(135deg, 
        var(--color-surface) 0%, 
        rgba(255, 255, 255, 0.98) 100%);
}

.earnings-prediction-scenarios-section .accordion-item:hover {
    box-shadow: 
        0 4px 16px rgba(0, 0, 0, 0.08),
        0 2px 8px rgba(103, 78, 153, 0.1);
    border-color: rgba(103, 78, 153, 0.3);
    transform: translateY(-2px);
}

.earnings-prediction-scenarios-section .accordion-button {
    font-weight: var(--font-weight-semibold);
    padding: var(--spacing-4);
    background: transparent;
    border: none;
    transition: all 0.3s ease;
}

.earnings-prediction-scenarios-section .accordion-button:not(.collapsed) {
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.05) 0%, 
        rgba(255, 255, 255, 0.5) 100%);
    box-shadow: inset 0 -2px 8px rgba(0, 0, 0, 0.05);
}

.earnings-prediction-scenarios-section .accordion-body {
    padding: var(--spacing-5);
    background: linear-gradient(180deg, 
        rgba(255, 255, 255, 0.5) 0%, 
        rgba(103, 78, 153, 0.02) 100%);
}

.earnings-prediction-watchlist-section,
.earnings-prediction-risks-section {
    margin-top: var(--spacing-8);
    padding-top: var(--spacing-6);
    border-top: 2px solid var(--color-border);
    position: relative;
}

.earnings-prediction-watchlist-section::before,
.earnings-prediction-risks-section::before {
    content: '';
    position: absolute;
    top: -2px;
    left: 0;
    width: 100px;
    height: 2px;
    background: linear-gradient(90deg, 
        var(--color-brand) 0%, 
        transparent 100%);
}

.earnings-prediction-watch-risks-section {
    margin-top: var(--spacing-8);
    padding-top: var(--spacing-6);
    border-top: 2px solid var(--color-border);
    position: relative;
}

.earnings-prediction-watch-risks-section::before {
    content: '';
    position: absolute;
    top: -2px;
    left: 0;
    width: 100px;
    height: 2px;
    background: linear-gradient(90deg, 
        var(--color-brand) 0%, 
        transparent 100%);
}

.earnings-prediction-watch-card,
.earnings-prediction-risks-card {
    height: 100%;
    padding: var(--spacing-5) var(--spacing-5);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 1px solid var(--color-border);
    position: relative;
    overflow: hidden;
    background: linear-gradient(180deg, var(--color-surface) 0%, rgba(255, 255, 255, 0.98) 100%);
    border-radius: var(--card-border-radius);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);
}

.earnings-prediction-watch-card::before,
.earnings-prediction-risks-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 3px;
    height: 100%;
    background: linear-gradient(180deg, 
        var(--color-brand) 0%, 
        var(--color-brand-light) 100%);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.earnings-prediction-watch-card:hover,
.earnings-prediction-risks-card:hover {
    transform: translateY(-2px);
    box-shadow: 
        0 8px 24px rgba(0, 0, 0, 0.1),
        0 4px 12px rgba(103, 78, 153, 0.12);
    border-color: rgba(103, 78, 153, 0.3);
}

.earnings-prediction-watch-card:hover::before,
.earnings-prediction-risks-card:hover::before {
    opacity: 1;
}

.earnings-prediction-watch-risks-subtitle {
    font-size: var(--text-lg);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
    margin-bottom: var(--spacing-4);
    margin-top: 0;
    padding-bottom: var(--spacing-3);
    border-bottom: 1.5px solid var(--color-border);
    display: flex;
    align-items: center;
}

.earnings-prediction-watch-risks-subtitle i {
    color: var(--color-brand);
    font-size: var(--text-xl);
}

.earnings-prediction-watchlist,
.earnings-prediction-risks {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-3);
}

.earnings-prediction-watchlist-item,
.earnings-prediction-risks-item {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-3);
    padding: var(--spacing-4);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.03) 0%, 
        rgba(255, 255, 255, 0.5) 100%);
    border-left: 3px solid var(--color-brand);
    border-radius: var(--radius-md);
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

.earnings-prediction-watchlist-item::before,
.earnings-prediction-risks-item::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 100%;
    background: linear-gradient(90deg, 
        rgba(103, 78, 153, 0.05) 0%, 
        transparent 100%);
    transition: width 0.3s ease;
    z-index: 0;
}

.earnings-prediction-watchlist-item:hover,
.earnings-prediction-risks-item:hover {
    transform: translateX(4px);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.05) 0%, 
        rgba(255, 255, 255, 0.6) 100%);
    box-shadow: 
        0 4px 12px rgba(103, 78, 153, 0.1),
        0 2px 6px rgba(0, 0, 0, 0.05);
}

.earnings-prediction-watchlist-item:hover::before,
.earnings-prediction-risks-item:hover::before {
    width: 100%;
}

.earnings-prediction-watchlist-item > *,
.earnings-prediction-risks-item > * {
    position: relative;
    z-index: 1;
}

.earnings-prediction-watchlist-icon {
    color: #10b981;
    font-size: var(--text-lg);
    flex-shrink: 0;
    margin-top: 2px;
}

.earnings-prediction-risks-icon {
    color: #f59e0b;
    font-size: var(--text-lg);
    flex-shrink: 0;
    margin-top: 2px;
}

.earnings-prediction-watch-list,
.earnings-prediction-risks-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-3);
    margin-top: var(--spacing-2);
}

.earnings-prediction-watch-item,
.earnings-prediction-risk-item {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-3);
    padding: var(--spacing-4) var(--spacing-4) var(--spacing-4) var(--spacing-5);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.03) 0%, 
        rgba(255, 255, 255, 0.5) 100%);
    border-left: 3px solid var(--color-brand);
    border-radius: var(--radius-md);
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

.earnings-prediction-watch-item::before,
.earnings-prediction-risk-item::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 100%;
    background: linear-gradient(90deg, 
        rgba(103, 78, 153, 0.05) 0%, 
        transparent 100%);
    transition: width 0.3s ease;
    z-index: 0;
}

.earnings-prediction-watch-item:hover,
.earnings-prediction-risk-item:hover {
    transform: translateX(4px);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.05) 0%, 
        rgba(255, 255, 255, 0.6) 100%);
    box-shadow: 
        0 4px 12px rgba(103, 78, 153, 0.1),
        0 2px 6px rgba(0, 0, 0, 0.05);
}

.earnings-prediction-watch-item:hover::before,
.earnings-prediction-risk-item:hover::before {
    width: 100%;
}

.earnings-prediction-watch-item > *,
.earnings-prediction-risk-item > * {
    position: relative;
    z-index: 1;
}

.earnings-prediction-watch-icon {
    color: #10b981;
    font-size: var(--text-lg);
    flex-shrink: 0;
    margin-top: 2px;
}

.earnings-prediction-risk-icon {
    color: #f59e0b;
    font-size: var(--text-lg);
    flex-shrink: 0;
    margin-top: 2px;
}

@media (max-width: 768px) {
    .earnings-prediction-watch-card,
    .earnings-prediction-risks-card {
        padding: var(--spacing-4);
    }
    
    .earnings-prediction-watch-item,
    .earnings-prediction-risk-item {
        padding: var(--spacing-3) var(--spacing-3) var(--spacing-3) var(--spacing-4);
        font-size: var(--text-sm);
    }
}

.earnings-prediction-outcome-section {
    margin-top: var(--spacing-8);
    padding-top: var(--spacing-6);
    border-top: 2px solid var(--color-border);
    position: relative;
}

.earnings-prediction-outcome-section::before {
    content: '';
    position: absolute;
    top: -2px;
    left: 0;
    width: 100px;
    height: 2px;
    background: linear-gradient(90deg, 
        var(--color-brand) 0%, 
        transparent 100%);
}

.earnings-prediction-outcome-card {
    padding: var(--spacing-5);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 1px solid var(--color-border);
    position: relative;
    overflow: hidden;
    background: linear-gradient(180deg, var(--color-surface) 0%, rgba(255, 255, 255, 0.98) 100%);
    border-radius: var(--card-border-radius);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);
}

.earnings-prediction-outcome-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 3px;
    height: 100%;
    background: linear-gradient(180deg, 
        var(--color-brand) 0%, 
        var(--color-brand-light) 100%);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.earnings-prediction-outcome-card:hover {
    transform: translateY(-2px);
    box-shadow: 
        0 8px 24px rgba(0, 0, 0, 0.1),
        0 4px 12px rgba(103, 78, 153, 0.12);
    border-color: rgba(103, 78, 153, 0.3);
}

.earnings-prediction-outcome-card:hover::before {
    opacity: 1;
}

.earnings-prediction-outcome-subtitle {
    font-size: var(--text-lg);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
    margin-bottom: var(--spacing-4);
    margin-top: 0;
    padding-bottom: var(--spacing-3);
    border-bottom: 1.5px solid var(--color-border);
    display: flex;
    align-items: center;
}

.earnings-prediction-outcome-subtitle i {
    color: var(--color-brand);
    font-size: var(--text-xl);
}

.earnings-prediction-outcome-content {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-3);
}

.earnings-prediction-outcome-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--spacing-3);
    padding: var(--spacing-3) var(--spacing-4);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.03) 0%, 
        rgba(255, 255, 255, 0.5) 100%);
    border-left: 3px solid var(--color-brand);
    border-radius: var(--radius-md);
    transition: all 0.3s ease;
}

.earnings-prediction-outcome-item:hover {
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.05) 0%, 
        rgba(255, 255, 255, 0.6) 100%);
    transform: translateX(4px);
    box-shadow: 
        0 2px 8px rgba(103, 78, 153, 0.1),
        0 1px 4px rgba(0, 0, 0, 0.05);
}

.earnings-prediction-outcome-label {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    font-weight: var(--font-weight-medium);
    flex-shrink: 0;
}

.earnings-prediction-outcome-value {
    font-size: var(--text-base);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
    text-align: right;
}

.earnings-prediction-outcome-badge {
    font-size: var(--text-sm);
    padding: var(--spacing-1) var(--spacing-3);
}

.earnings-prediction-evaluation-notes {
    margin-top: var(--spacing-5);
    padding-top: var(--spacing-5);
    border-top: 1.5px solid var(--color-border);
}

.earnings-prediction-evaluation-notes-content {
    padding: var(--spacing-4);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.05) 0%, 
        rgba(255, 255, 255, 0.7) 100%);
    border-left: 3px solid var(--color-brand);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    color: var(--color-text);
    line-height: 1.7;
}

@media (max-width: 768px) {
    .earnings-prediction-outcome-item {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--spacing-2);
    }
    
    .earnings-prediction-outcome-value {
        text-align: left;
    }
}

.earnings-prediction-debug-section {
    margin-top: var(--spacing-6);
    padding-top: var(--spacing-6);
    border-top: 2px solid var(--color-border);
}

.earnings-prediction-json {
    background: linear-gradient(135deg, 
        #f8f9fa 0%, 
        #ffffff 100%);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: var(--spacing-5);
    font-size: var(--text-xs);
    overflow-x: auto;
    max-height: 500px;
    overflow-y: auto;
    box-shadow: 
        inset 0 2px 8px rgba(0, 0, 0, 0.05),
        0 2px 8px rgba(0, 0, 0, 0.05);
    transition: all 0.3s ease;
}

.earnings-prediction-json:hover {
    box-shadow: 
        inset 0 2px 8px rgba(0, 0, 0, 0.05),
        0 4px 12px rgba(0, 0, 0, 0.1);
}

@media (max-width: 768px) {
    .earnings-prediction-hero {
        padding: var(--spacing-6) var(--spacing-4);
    }
    
    .earnings-prediction-hero-title {
        font-size: var(--text-2xl);
    }
    
    .earnings-prediction-hero-meta {
        flex-direction: column;
        gap: var(--spacing-2);
    }
    
    .earnings-prediction-probability-values {
        flex-direction: column;
        gap: var(--spacing-1);
    }
    
    .earnings-prediction-hero-shape {
        filter: blur(30px);
    }
    
    .earnings-prediction-hero-shape-1,
    .earnings-prediction-hero-shape-2,
    .earnings-prediction-hero-shape-3 {
        width: 200px;
        height: 200px;
    }
}

.earnings-transcript-header {
    margin-bottom: 12px;
}

.earnings-related-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
}

/* Additional Academy styles from app.css */
.academy-featured-header,
.academy-popular-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
    flex-wrap: wrap;
}

.academy-featured-badge,
.academy-popular-badge {
    font-size: 12px;
    color: var(--color-text-muted);
}

.academy-featured-image,
.academy-popular-image {
    width: 100%;
    height: auto;
    border-radius: 12px;
    border: 1px solid var(--color-border);
    margin: 10px 0;
}

.academy-featured-title,
.academy-popular-title {
    margin: 8px 0;
    font-size: var(--text-lg);
    letter-spacing: -0.02em;
}

.academy-featured-title a,
.academy-popular-title a {
    color: var(--color-text);
    text-decoration: none;
}

.academy-featured-title a:hover,
.academy-popular-title a:hover {
    color: var(--color-brand);
    text-decoration: underline;
}

.academy-featured-excerpt,
.academy-popular-excerpt {
    margin: 8px 0 0;
    color: var(--color-text-secondary);
    line-height: 1.6;
}

.academy-lesson-title {
    margin: 0;
    font-size: var(--text-lg);
    letter-spacing: -0.02em;
}

.academy-lesson-title a {
    color: var(--color-text);
    text-decoration: none;
}

.academy-lesson-title a:hover {
    color: var(--color-brand);
    text-decoration: underline;
}

.academy-lesson-excerpt {
    margin: 6px 0 0;
    color: var(--color-text-secondary);
    line-height: 1.6;
}

.academy-lesson-time {
    font-size: 12px;
    color: var(--color-text-muted);
}

.academy-lesson-actions {
    margin-top: 12px;
}

.academy-article-badge {
    font-size: 12px;
    color: var(--color-text-muted);
}

.academy-article-difficulty {
    font-size: 11px;
}

.academy-article-time,
.academy-article-updated {
    font-size: 12px;
    color: var(--color-text-muted);
}

.academy-article-hero-image {
    width: 100%;
    height: auto;
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    display: block;
}

.academy-article-image-caption {
    margin: 10px 0 0;
    font-size: var(--text-sm);
    color: var(--color-text-muted);
    text-align: center;
}

.academy-cta-content {
    text-align: center;
    max-width: 72ch;
    margin: 0 auto;
}

.academy-cta-title {
    margin: 0 0 12px;
    letter-spacing: -0.03em;
}

.academy-cta-copy {
    margin: 0 0 20px;
    color: var(--color-text-secondary);
    line-height: 1.7;
}

/* Additional State of Market styles */
.state-market-report-image {
    margin-bottom: 12px;
}

.state-market-report-content {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.state-market-report-title {
    margin: 0;
    font-size: var(--text-xl);
    letter-spacing: -0.02em;
}

.state-market-ticker-more {
    font-size: var(--text-sm);
    color: var(--color-text-muted);
    font-style: italic;
}

.somr-main {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-6);
    min-width: 0;
}

.somr-card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: var(--spacing-6);
    box-shadow: var(--shadow-1);
}

.somr-card-reader {
    padding: var(--spacing-8);
}

.somr-card-compact {
    padding: var(--spacing-5);
}

.somr-card-title {
    font-size: var(--text-lg);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    margin: 0 0 var(--spacing-4);
    padding-bottom: var(--spacing-3);
    border-bottom: 2px solid var(--color-border);
}

.somr-aside {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-5);
    top: calc(64px + 80px);
    align-self: start;
    overflow-y: auto;
    overflow-x: hidden;
}

.somr-tickers-grid {
    display: grid;
    gap: 10px;
}

.somr-ticker-card {
    background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: var(--spacing-3);
    transition: all var(--transition-fast);
}

.somr-ticker-card:hover {
    border-color: var(--color-brand);
    box-shadow: var(--shadow-1);
    transform: translateY(-1px);
}

.state-market-section {
    margin-bottom: var(--spacing-6);
    padding-bottom: var(--spacing-6);
    border-bottom: 1px solid var(--color-border);
}

.state-market-section:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
}

.somr-section-title {
    font-size: var(--text-xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    margin: 0 0 var(--spacing-3);
    letter-spacing: -0.02em;
}

.state-market-article-content {
    max-width: 78ch;
    font-size: var(--text-base);
    line-height: var(--line-height-relaxed);
    color: var(--color-text);
}

.state-market-article-content p {
    margin-bottom: var(--spacing-4);
    color: var(--color-text-secondary);
}

.state-market-article-content h2,
.state-market-article-content h3,
.state-market-article-content h4 {
    margin-top: var(--spacing-6);
    margin-bottom: var(--spacing-3);
    color: var(--color-text);
    font-weight: var(--font-weight-bold);
}

.state-market-article-content h2 {
    font-size: var(--text-2xl);
    padding-top: var(--spacing-4);
    border-top: 1px solid var(--color-border);
}

.state-market-article-content h2:first-of-type {
    margin-top: 0;
    padding-top: 0;
    border-top: none;
}

.state-market-article-content h3 {
    font-size: var(--text-xl);
}

.state-market-article-content ul,
.state-market-article-content ol {
    margin: var(--spacing-4) 0;
    padding-left: var(--spacing-5);
}

.state-market-article-content li {
    margin-bottom: var(--spacing-2);
    line-height: var(--line-height-relaxed);
    color: var(--color-text-secondary);
}

.state-market-article-content a {
    color: var(--color-brand);
    text-decoration: underline;
    text-decoration-color: rgba(103, 78, 153, 0.3);
    transition: text-decoration-color var(--transition-fast);
}

.state-market-article-content a:hover {
    text-decoration-color: var(--color-brand);
}

.state-market-article-content strong {
    color: var(--color-text);
    font-weight: var(--font-weight-semibold);
}

.state-market-article-content blockquote {
    border-left: 3px solid var(--color-brand);
    padding-left: var(--spacing-4);
    margin: var(--spacing-4) 0;
    color: var(--color-text-secondary);
    font-style: italic;
    background: var(--color-surface-2);
    padding: var(--spacing-4);
    border-radius: var(--radius-md);
}

.equity-ticker-link {
    color: var(--color-brand);
    text-decoration: none;
    font-weight: var(--font-weight-semibold);
}

.equity-ticker-link:hover {
    text-decoration: underline;
}

/* Additional Earnings styles */
.earnings-call-card {
    display: flex;
    flex-direction: column;
    gap: 12px;
}


.earnings-related-list a {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 12px 0;
    text-decoration: none;
}

.earnings-related-list a:hover {
    text-decoration: none;
}

/* Additional pagination styles */
.pagination-ellipsis {
    color: var(--color-text-muted);
    padding: 0 4px;
}

/* Additional Academy article styles */
.academy-article-header {
    margin-bottom: var(--spacing-6);
}

.academy-article-meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-2);
    align-items: center;
    margin-bottom: var(--spacing-4);
    padding-bottom: var(--spacing-4);
    border-bottom: 1px solid var(--color-border);
}

.academy-article-body {
    margin-top: var(--spacing-6);
    max-width: 78ch;
    font-size: var(--text-base);
    line-height: var(--line-height-relaxed);
    color: var(--color-text);
}

.academy-article-body h2 {
    margin-top: var(--spacing-8);
    margin-bottom: var(--spacing-3);
    padding-top: var(--spacing-6);
    border-top: 1px solid var(--color-border);
    font-size: var(--text-2xl);
    font-weight: var(--font-weight-bold);
    letter-spacing: -0.02em;
    color: var(--color-text);
    line-height: var(--line-height-tight);
}

.academy-article-body h2:first-of-type {
    margin-top: 0;
    padding-top: 0;
    border-top: none;
}

.academy-article-body h3 {
    margin-top: var(--spacing-6);
    margin-bottom: var(--spacing-2);
    font-size: var(--text-xl);
    font-weight: var(--font-weight-bold);
    letter-spacing: -0.02em;
    color: var(--color-text);
    line-height: var(--line-height-tight);
}

.academy-article-body p {
    margin-bottom: var(--spacing-4);
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
}

.academy-article-body ul,
.academy-article-body ol {
    margin-bottom: 16px;
    padding-left: 24px;
}

.academy-article-body li {
    margin-bottom: 8px;
    line-height: 1.7;
}

.academy-article-body a {
    color: var(--color-brand);
    text-decoration: underline;
    text-decoration-color: rgba(103, 78, 153, 0.3);
}

.academy-article-body a:hover {
    text-decoration-color: var(--color-brand);
}

.academy-article-body code {
    background: rgba(2, 26, 56, 0.06);
    border: 1px solid var(--color-border);
    border-radius: 6px;
    padding: 2px 6px;
    font-size: 0.9em;
    color: var(--color-text);
}

.academy-article-body pre {
    background: rgba(2, 26, 56, 0.06);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: 16px;
    overflow-x: auto;
    margin-bottom: 16px;
}

.academy-article-body pre code {
    background: transparent;
    border: none;
    padding: 0;
}

.academy-article-body blockquote {
    border-left: 3px solid var(--color-brand);
    padding-left: 16px;
    margin: 16px 0;
    color: var(--color-text-secondary);
    font-style: italic;
}

.academy-article-body img {
    max-width: 100%;
    height: auto;
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    margin: 16px 0;
}

.academy-article-body table {
    width: 100%;
    border-collapse: collapse;
    margin: 16px 0;
}

.academy-article-body table th,
.academy-article-body table td {
    padding: 8px 12px;
    border: 1px solid var(--color-border);
    text-align: left;
}

.academy-article-body table th {
    background: var(--color-surface-2);
    font-weight: var(--font-weight-semibold);
}

/* Additional State of Market detail page styles */
.somr-hero-meta {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 12px;
}

.somr-hero-date {
    color: rgba(255, 255, 255, 0.72);
    font-size: 13px;
}

.somr-hero-image {
    margin-top: 16px;
}

.somr-hero-img {
    width: 100%;
    max-height: 350px;
    height: 350px;
    object-fit: cover;
    object-position: center;
    border-radius: 18px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    display: block;
}

.somr-section-stack {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-6);
}

.state-market-section-content {
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
    font-size: var(--text-base);
}

.state-market-section-content p {
    margin-bottom: var(--spacing-3);
}

.state-market-section-content ul,
.state-market-section-content ol {
    margin: var(--spacing-3) 0;
    padding-left: var(--spacing-5);
}

.state-market-section-content li {
    margin-bottom: var(--spacing-2);
    line-height: var(--line-height-relaxed);
}

.state-market-risks-list,
.state-market-outlook-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.state-market-risks-list li,
.state-market-outlook-list li {
    padding-left: 20px;
    position: relative;
    color: var(--color-text-secondary);
    line-height: 1.6;
}

.state-market-risks-list li::before,
.state-market-outlook-list li::before {
    content: "•";
    position: absolute;
    left: 0;
    color: var(--color-brand);
    font-weight: var(--font-weight-bold);
}

.somr-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.somr-list li {
    padding-left: 20px;
    position: relative;
    color: var(--color-text-secondary);
    line-height: 1.6;
}

.somr-list li::before {
    content: "•";
    position: absolute;
    left: 0;
    color: var(--color-brand);
    font-weight: var(--font-weight-bold);
}

.somr-sources-toggle {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    border: 1px solid var(--color-border);
    background: linear-gradient(180deg, #ffffff 0%, #f6f7fb 100%);
    color: var(--color-text);
    border-radius: 14px;
    padding: 12px;
    cursor: pointer;
    transition: border-color var(--transition-fast);
}

.somr-sources-toggle:hover {
    border-color: rgba(103, 78, 153, 0.28);
}

.state-market-source-item {
    padding: 10px 0;
    border-bottom: 1px solid var(--color-border);
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.state-market-source-item:last-child {
    border-bottom: none;
}

.state-market-source-link,
.state-market-source-text {
    color: var(--color-text-secondary);
    text-decoration: none;
    font-size: var(--text-sm);
}

.state-market-source-link:hover {
    color: var(--color-brand);
    text-decoration: underline;
}

.state-market-source-date {
    font-size: 12px;
    color: var(--color-text-muted);
}

.state-market-source-sentiment {
    display: inline-block;
    font-size: 11px;
    padding: 3px 8px;
    border-radius: 999px;
    text-transform: uppercase;
    font-weight: var(--font-weight-semibold);
    margin-left: 8px;
}

.state-market-source-sentiment.sentiment-positive {
    background: rgba(16, 185, 129, 0.1);
    color: var(--color-success);
}

.state-market-source-sentiment.sentiment-negative {
    background: rgba(239, 68, 68, 0.1);
    color: var(--color-danger);
}

.state-market-source-sentiment.sentiment-neutral {
    background: rgba(2, 26, 56, 0.06);
    color: var(--color-text-secondary);
}

.somr-disclaimer {
    padding: var(--spacing-5);
    background: linear-gradient(135deg, rgba(245, 158, 11, 0.05) 0%, rgba(245, 158, 11, 0.02) 100%);
    border: 1px solid rgba(245, 158, 11, 0.2);
    border-left: 4px solid var(--color-warning);
    border-radius: var(--radius-lg);
    margin-top: var(--spacing-6);
}

.state-market-disclaimer-text {
    margin: 0;
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    line-height: 1.65;
}

.state-market-disclaimer-text strong {
    color: var(--color-text);
    font-weight: var(--font-weight-semibold);
}

/* =========================================================
   State of Market – Create Free Account Gate Modal
   ========================================================= */

.som-gate-modal .modal-dialog {
    max-width: 420px;
}

.som-gate-modal-content {
    position: relative;
    border: none;
    border-radius: var(--radius-xl);
    box-shadow: 0 24px 48px rgba(103, 78, 153, 0.15), 0 12px 24px rgba(0, 0, 0, 0.1);
    overflow: hidden;
    background: linear-gradient(180deg, #ffffff 0%, var(--color-surface-2) 100%);
}

.som-gate-modal-accent {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--color-brand) 0%, var(--color-brand-light) 50%, var(--color-brand) 100%);
    background-size: 200% 100%;
    animation: som-gate-accent-shine 4s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
    .som-gate-modal-accent {
        animation: none;
    }
}

@keyframes som-gate-accent-shine {
    0%, 100% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
}

.som-gate-modal-header {
    position: relative;
    display: flex;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: var(--spacing-3);
    padding: var(--spacing-6) var(--spacing-6) var(--spacing-4);
    border-bottom: none;
}

.som-gate-modal-icon {
    width: 48px;
    height: 48px;
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.12) 0%, rgba(103, 78, 153, 0.06) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.som-gate-modal-icon i {
    font-size: 1.5rem;
    color: var(--color-brand);
}

.som-gate-modal-title {
    flex: 1;
    min-width: 0;
    font-size: var(--text-xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    letter-spacing: -0.02em;
    line-height: var(--line-height-tight);
    margin: 0;
}

.som-gate-modal-close {
    position: absolute;
    top: var(--spacing-4);
    right: var(--spacing-4);
    opacity: 0.5;
    transition: opacity var(--transition-base);
}

.som-gate-modal-close:hover {
    opacity: 1;
}

.som-gate-modal-body {
    padding: var(--spacing-4) var(--spacing-6) var(--spacing-6);
}

.som-gate-modal-lead {
    font-size: var(--text-base);
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
    margin: 0 0 var(--spacing-4);
}

.som-gate-modal-benefits {
    list-style: none;
    margin: 0 0 var(--spacing-5);
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-2);
}

.som-gate-modal-benefits li {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    font-size: var(--text-sm);
    color: var(--color-text);
    font-weight: var(--font-weight-medium);
}

.som-gate-modal-benefits li i {
    color: var(--color-success);
    font-size: 1rem;
    flex-shrink: 0;
}

.som-gate-modal-actions {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-2);
}

.som-gate-modal-btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-2);
    padding: var(--spacing-3) var(--spacing-5);
    font-size: var(--text-base);
    font-weight: var(--font-weight-semibold);
    color: #fff;
    background: linear-gradient(135deg, var(--color-brand) 0%, var(--color-brand-dark) 100%);
    border: none;
    border-radius: var(--radius-md);
    box-shadow: 0 2px 8px rgba(103, 78, 153, 0.35);
    transition: transform var(--transition-base), box-shadow var(--transition-base), background var(--transition-base);
}

.som-gate-modal-btn-primary:hover {
    color: #fff;
    background: linear-gradient(135deg, var(--color-brand-light) 0%, var(--color-brand) 100%);
    box-shadow: 0 4px 16px rgba(103, 78, 153, 0.4);
    transform: translateY(-1px);
}

.som-gate-modal-btn-primary:active {
    transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
    .som-gate-modal-btn-primary:hover {
        transform: none;
    }
}

.som-gate-modal-btn-secondary {
    padding: var(--spacing-2) var(--spacing-4);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary);
    background: transparent;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    transition: background var(--transition-base), border-color var(--transition-base);
}

.som-gate-modal-btn-secondary:hover {
    background: var(--color-surface-2);
    border-color: var(--color-border-dark);
    color: var(--color-text);
}

.som-gate-modal-note {
    font-size: var(--text-xs);
    color: var(--color-text-muted);
    margin: var(--spacing-3) 0 0;
}

.som-gate-modal-signin {
    margin: var(--spacing-2) 0 0;
    font-size: var(--text-sm);
}

.som-gate-modal-signin a {
    color: var(--color-brand);
    font-weight: var(--font-weight-medium);
    text-decoration: none;
    transition: color var(--transition-base);
}

.som-gate-modal-signin a:hover {
    color: var(--color-brand-dark);
    text-decoration: underline;
}

/* Modal entrance: subtle scale (only if motion allowed) */
.som-gate-modal.show .modal-dialog {
    animation: som-gate-dialog-in 0.3s ease-out;
}

@media (prefers-reduced-motion: reduce) {
    .som-gate-modal.show .modal-dialog {
        animation: none;
    }
}

@keyframes som-gate-dialog-in {
    from {
        opacity: 0;
        transform: scale(0.96) translateY(8px);
    }
    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

/* =========================================================
   Quote Page - Analyst Rating Styles
   ========================================================= */

.analyst-rating-container {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-5);
    padding: var(--spacing-1);
    position: relative;
}

/* Sidebar Module Specific Styling */
.tv-sidebar-module .analyst-rating-container {
    padding: 0;
}

/* Rating Header */
.analyst-rating-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--spacing-3);
    flex-wrap: wrap;
    padding: var(--spacing-4);
    padding-bottom: var(--spacing-4);
    border-bottom: 2px solid var(--color-border);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.03) 0%, 
        rgba(103, 78, 153, 0.01) 50%,
        transparent 100%);
    border-radius: var(--radius-md);
    margin: calc(var(--spacing-4) * -1) calc(var(--spacing-1) * -1) var(--spacing-4);
    position: relative;
    overflow: hidden;
}

.analyst-rating-header::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, 
        var(--color-brand) 0%, 
        rgba(103, 78, 153, 0.6) 50%, 
        var(--color-brand) 100%);
    opacity: 0.6;
}

.analyst-header-meta {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: var(--spacing-2);
    flex: 1;
    min-width: 200px;
}

.analyst-conviction {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-1);
    width: 100%;
    max-width: 200px;
}

.conviction-label {
    font-size: var(--text-xs);
    color: var(--color-text-muted);
    font-weight: var(--font-weight-medium);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.conviction-bar {
    position: relative;
    height: 28px;
    background: linear-gradient(135deg, 
        var(--color-surface-2) 0%, 
        rgba(0, 0, 0, 0.02) 100%);
    border-radius: var(--radius-md);
    overflow: hidden;
    border: 1.5px solid var(--color-border);
    box-shadow: 
        inset 0 2px 4px rgba(0, 0, 0, 0.06),
        0 1px 2px rgba(0, 0, 0, 0.04);
}

.conviction-fill {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    background: linear-gradient(90deg, 
        var(--color-brand) 0%, 
        rgba(103, 78, 153, 0.9) 50%,
        rgba(103, 78, 153, 0.8) 100%);
    transition: width 1s cubic-bezier(0.4, 0, 0.2, 1);
    border-radius: var(--radius-md);
    box-shadow: 
        0 2px 8px rgba(103, 78, 153, 0.3),
        inset 0 1px 2px rgba(255, 255, 255, 0.3);
    position: relative;
    overflow: hidden;
}

.conviction-fill::after {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, 
        transparent 0%, 
        rgba(255, 255, 255, 0.4) 50%, 
        transparent 100%);
    animation: shimmer 2s infinite;
}

@keyframes shimmer {
    0% {
        left: -100%;
    }
    100% {
        left: 100%;
    }
}

.conviction-value {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: var(--text-xs);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    z-index: 1;
    text-shadow: 0 1px 2px rgba(255, 255, 255, 0.8);
}

.analyst-rating-badge {
    display: inline-flex;
    align-items: center;
    padding: var(--spacing-3) var(--spacing-6);
    border-radius: 999px;
    font-size: var(--text-base);
    font-weight: var(--font-weight-bold);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    box-shadow: 
        0 4px 12px rgba(0, 0, 0, 0.15),
        0 2px 6px rgba(0, 0, 0, 0.1),
        inset 0 1px 2px rgba(255, 255, 255, 0.3);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
    border: 2px solid transparent;
}

.analyst-rating-badge::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle, 
        rgba(255, 255, 255, 0.3) 0%, 
        transparent 70%);
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
}

.analyst-rating-badge:hover {
    transform: translateY(-2px) scale(1.05);
    box-shadow: 
        0 6px 20px rgba(0, 0, 0, 0.2),
        0 4px 10px rgba(0, 0, 0, 0.15),
        inset 0 1px 2px rgba(255, 255, 255, 0.4);
}

.analyst-rating-badge:hover::before {
    opacity: 1;
}

.analyst-rating-badge.buy {
    background: linear-gradient(135deg, 
        var(--color-success) 0%, 
        rgba(16, 185, 129, 0.9) 50%,
        rgba(16, 185, 129, 0.8) 100%);
    color: #ffffff;
    border-color: rgba(16, 185, 129, 0.4);
}

.analyst-rating-badge.buy:hover {
    background: linear-gradient(135deg, 
        rgba(16, 185, 129, 1) 0%, 
        var(--color-success) 50%,
        rgba(16, 185, 129, 0.95) 100%);
    border-color: rgba(16, 185, 129, 0.6);
}

.analyst-rating-badge.hold {
    background: linear-gradient(135deg, 
        var(--color-warning) 0%, 
        rgba(245, 158, 11, 0.9) 50%,
        rgba(245, 158, 11, 0.8) 100%);
    color: #ffffff;
    border-color: rgba(245, 158, 11, 0.4);
}

.analyst-rating-badge.hold:hover {
    background: linear-gradient(135deg, 
        rgba(245, 158, 11, 1) 0%, 
        var(--color-warning) 50%,
        rgba(245, 158, 11, 0.95) 100%);
    border-color: rgba(245, 158, 11, 0.6);
}

.analyst-rating-badge.sell {
    background: linear-gradient(135deg, 
        var(--color-danger) 0%, 
        rgba(239, 68, 68, 0.9) 50%,
        rgba(239, 68, 68, 0.8) 100%);
    color: #ffffff;
    border-color: rgba(239, 68, 68, 0.4);
}

.analyst-rating-badge.sell:hover {
    background: linear-gradient(135deg, 
        rgba(239, 68, 68, 1) 0%, 
        var(--color-danger) 50%,
        rgba(239, 68, 68, 0.95) 100%);
    border-color: rgba(239, 68, 68, 0.6);
}

.rating-label {
    font-weight: var(--font-weight-bold);
}

.analyst-upside {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2);
    padding: var(--spacing-2) var(--spacing-4);
    background: linear-gradient(135deg, 
        var(--color-surface-2) 0%, 
        rgba(0, 0, 0, 0.02) 100%);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-bold);
    box-shadow: 
        0 2px 6px rgba(0, 0, 0, 0.06),
        0 1px 3px rgba(0, 0, 0, 0.04);
    transition: all 0.3s ease;
}

.analyst-upside.positive {
    color: var(--color-success);
    background: linear-gradient(135deg, 
        rgba(16, 185, 129, 0.15) 0%, 
        rgba(16, 185, 129, 0.08) 50%,
        rgba(16, 185, 129, 0.12) 100%);
    border-color: rgba(16, 185, 129, 0.4);
    box-shadow: 
        0 2px 8px rgba(16, 185, 129, 0.2),
        0 1px 4px rgba(0, 0, 0, 0.06);
}

.analyst-upside.positive:hover {
    transform: translateY(-2px);
    box-shadow: 
        0 4px 12px rgba(16, 185, 129, 0.3),
        0 2px 6px rgba(0, 0, 0, 0.08);
    border-color: rgba(16, 185, 129, 0.5);
}

.analyst-upside.negative {
    color: var(--color-danger);
    background: rgba(239, 68, 68, 0.1);
    border-color: rgba(239, 68, 68, 0.3);
}

.analyst-upside i {
    font-size: 0.875rem;
}

/* Summary Section */
.analyst-summary {
    padding: var(--spacing-5);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.05) 0%, 
        rgba(103, 78, 153, 0.02) 50%,
        rgba(255, 255, 255, 0.98) 100%);
    border-left: 4px solid var(--color-brand);
    border-radius: var(--radius-md);
    margin: var(--spacing-4) 0;
    box-shadow: 
        0 2px 8px rgba(0, 0, 0, 0.06),
        0 1px 3px rgba(0, 0, 0, 0.04),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

.analyst-summary::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 100px;
    height: 100px;
    background: radial-gradient(circle, 
        rgba(103, 78, 153, 0.1) 0%, 
        transparent 70%);
    opacity: 0.5;
    pointer-events: none;
}

.analyst-summary:hover {
    box-shadow: 
        0 4px 16px rgba(0, 0, 0, 0.1),
        0 2px 8px rgba(0, 0, 0, 0.06),
        inset 0 1px 0 rgba(255, 255, 255, 0.95);
    transform: translateY(-2px);
    border-left-width: 5px;
}

.analyst-summary p {
    margin: 0;
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
    font-size: var(--text-sm);
}

/* Price Targets Section */
.analyst-price-targets {
    padding: var(--spacing-4) 0;
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
}

.analyst-price-targets .analyst-section-title {
    margin: 0 0 var(--spacing-4);
    font-size: var(--text-base);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-size: var(--text-xs);
}

.price-target-bar-container {
    margin-top: var(--spacing-4);
    width: 100%;
    max-width: 100%;
    overflow: visible;
    padding: 10px 0;
}

.price-target-bar {
    position: relative;
    height: 70px;
    background: linear-gradient(135deg, 
        var(--color-surface-2) 0%, 
        rgba(103, 78, 153, 0.03) 50%,
        var(--color-surface-2) 100%);
    border-radius: var(--radius-md);
    margin-bottom: var(--spacing-5);
    overflow: visible;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    transition: all 0.3s ease;
    padding: 10px 0;
}

.price-target-range {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    transform: translateY(-50%);
    height: 6px;
    background: linear-gradient(90deg, 
        rgba(239, 68, 68, 0.2) 0%, 
        rgba(245, 158, 11, 0.2) 25%, 
        rgba(103, 78, 153, 0.2) 50%, 
        rgba(16, 185, 129, 0.2) 75%, 
        rgba(16, 185, 129, 0.2) 100%);
    border-radius: 3px;
    border: 1px solid var(--color-border);
}

.price-target-marker {
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 16px;
    height: 16px;
    border-radius: 50%;
    border: 3px solid #ffffff;
    box-shadow: 
        0 2px 8px rgba(0, 0, 0, 0.2),
        0 1px 3px rgba(0, 0, 0, 0.15),
        inset 0 1px 2px rgba(255, 255, 255, 0.3);
    z-index: 2;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.price-target-marker::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 6px;
    height: 6px;
    background: rgba(255, 255, 255, 0.9);
    border-radius: 50%;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

.price-target-marker:hover {
    transform: translate(-50%, -50%) scale(1.5);
    z-index: 3;
    box-shadow: 
        0 4px 16px rgba(0, 0, 0, 0.3),
        0 2px 8px rgba(0, 0, 0, 0.2),
        inset 0 1px 2px rgba(255, 255, 255, 0.4);
}

.price-target-marker:hover .marker-tooltip {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, -100%) translateY(-8px);
}

.price-target-bear {
    background: var(--color-danger);
}

.price-target-base {
    background: var(--color-warning);
}

.price-target-consensus {
    background: var(--color-text-secondary);
    border: 2px dashed #ffffff !important;
}

.price-target-bull {
    background: var(--color-success);
}

.marker-tooltip {
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translate(-50%, 0);
    padding: var(--spacing-1) var(--spacing-2);
    background: var(--color-text);
    color: #ffffff;
    border-radius: var(--radius-sm);
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    white-space: nowrap;
    opacity: 0;
    visibility: hidden;
    transition: all var(--transition-fast);
    pointer-events: none;
    z-index: 10;
    text-align: center;
    line-height: 1.4;
}

.marker-tooltip::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 4px solid var(--color-text);
}

.price-target-current {
    position: absolute;
    top: 0;
    transform: translateX(-50%);
    z-index: 4;
}

.current-marker {
    width: 20px;
    height: 20px;
    background: linear-gradient(135deg, 
        var(--color-text) 0%, 
        rgba(0, 0, 0, 0.8) 100%);
    border: 3px solid #ffffff;
    border-radius: 50%;
    box-shadow: 
        0 3px 12px rgba(0, 0, 0, 0.25),
        0 2px 6px rgba(0, 0, 0, 0.2),
        inset 0 1px 2px rgba(255, 255, 255, 0.3);
    margin: 0 auto;
    position: relative;
    transition: all 0.3s ease;
    animation: pulse-current 2s ease-in-out infinite;
}

@keyframes pulse-current {
    0%, 100% {
        box-shadow: 
            0 3px 12px rgba(0, 0, 0, 0.25),
            0 2px 6px rgba(0, 0, 0, 0.2),
            inset 0 1px 2px rgba(255, 255, 255, 0.3);
    }
    50% {
        box-shadow: 
            0 4px 16px rgba(103, 78, 153, 0.3),
            0 3px 10px rgba(0, 0, 0, 0.25),
            inset 0 1px 2px rgba(255, 255, 255, 0.4);
    }
}

.current-marker::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 6px;
    height: 6px;
    background: #ffffff;
    border-radius: 50%;
}

.current-label {
    margin-top: var(--spacing-1);
    font-size: var(--text-xs);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    white-space: nowrap;
    text-align: center;
    background: var(--color-surface);
    padding: var(--spacing-1) var(--spacing-2);
    border-radius: var(--radius-sm);
    border: 1px solid var(--color-border);
}

.price-target-labels {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
    gap: var(--spacing-3);
    margin-top: var(--spacing-2);
}

.price-target-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--spacing-1);
    padding: var(--spacing-3);
    background: linear-gradient(135deg, 
        rgba(255, 255, 255, 1) 0%, 
        rgba(103, 78, 153, 0.02) 50%,
        rgba(255, 255, 255, 0.98) 100%);
    border-radius: var(--radius-md);
    border: 1.5px solid var(--color-border);
    box-shadow: 
        0 2px 6px rgba(0, 0, 0, 0.06),
        0 1px 3px rgba(0, 0, 0, 0.04);
    transition: all 0.3s ease;
}

.price-target-item:hover {
    transform: translateY(-2px);
    box-shadow: 
        0 4px 12px rgba(103, 78, 153, 0.1),
        0 2px 6px rgba(0, 0, 0, 0.08);
    border-color: rgba(103, 78, 153, 0.3);
    background: linear-gradient(135deg, 
        rgba(255, 255, 255, 1) 0%, 
        rgba(103, 78, 153, 0.05) 50%,
        rgba(255, 255, 255, 0.98) 100%);
}

.price-label {
    font-size: var(--text-xs);
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: var(--font-weight-medium);
}

.price-value {
    font-size: var(--text-base);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
}

.price-value.positive {
    color: var(--color-success);
}

.price-value.negative {
    color: var(--color-danger);
}

/* Accordion Toggle */
.analyst-accordion-toggle {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-2);
    padding: var(--spacing-3) var(--spacing-4);
    background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all var(--transition-fast);
    text-align: left;
}

.analyst-accordion-toggle:hover {
    background: linear-gradient(135deg, #ffffff 0%, #f0f0f0 100%);
    border-color: var(--color-brand);
    box-shadow: var(--shadow-1);
}

.analyst-accordion-toggle[aria-expanded="true"] {
    background: var(--color-brand);
    color: #ffffff;
    border-color: var(--color-brand);
    box-shadow: var(--shadow-2);
}

.analyst-accordion-toggle[aria-expanded="true"] .analyst-section-title {
    color: #ffffff;
}

.analyst-accordion-toggle[aria-expanded="true"] .accordion-icon {
    transform: rotate(180deg);
    color: #ffffff;
}

.analyst-section-title {
    margin: 0;
    font-size: var(--text-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
}

.accordion-icon {
    transition: transform var(--transition-fast);
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    flex-shrink: 0;
}

.analyst-drivers,
.analyst-risks {
    margin-top: var(--spacing-4);
}

.analyst-drivers-list,
.analyst-risks-list {
    list-style: none;
    padding: 0;
    margin: var(--spacing-3) 0 0;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-3);
}

/* Driver Items */
.analyst-driver-item {
    padding: var(--spacing-4);
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    border-left: 4px solid var(--color-brand);
    transition: all var(--transition-fast);
}

.analyst-driver-item:hover {
    border-color: var(--color-brand);
    box-shadow: var(--shadow-1);
    transform: translateX(2px);
}

.analyst-driver-item.driver-up {
    border-left-color: var(--color-success);
}

.analyst-driver-item.driver-down {
    border-left-color: var(--color-danger);
}

.analyst-driver-item.driver-mixed {
    border-left-color: var(--color-warning);
}

.driver-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-2);
    margin-bottom: var(--spacing-2);
    flex-wrap: wrap;
}

.driver-title {
    font-size: var(--text-base);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
    flex: 1;
    min-width: 0;
}

.driver-direction {
    display: inline-flex;
    align-items: center;
    padding: var(--spacing-1) var(--spacing-2);
    border-radius: 999px;
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.driver-direction.direction-up {
    background: rgba(16, 185, 129, 0.1);
    color: var(--color-success);
    border: 1px solid rgba(16, 185, 129, 0.3);
}

.driver-direction.direction-down {
    background: rgba(239, 68, 68, 0.1);
    color: var(--color-danger);
    border: 1px solid rgba(239, 68, 68, 0.3);
}

.driver-direction.direction-mixed {
    background: rgba(245, 158, 11, 0.1);
    color: var(--color-warning);
    border: 1px solid rgba(245, 158, 11, 0.3);
}

/* =========================================================
   Authentication Pages Styles (Complete)
   ========================================================= */

.auth-page {
    min-height: 100vh;
    display: flex;
    background: linear-gradient(135deg, #f8f9fa 0%, #ffffff 50%, #f8f9fa 100%);
    position: relative;
    overflow: hidden;
}

.auth-page::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -20%;
    width: 600px;
    height: 600px;
    background: radial-gradient(circle, rgba(103, 78, 153, 0.08) 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
}

.auth-back-button {
    position: fixed;
    top: var(--spacing-4);
    left: var(--spacing-4);
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2);
    padding: var(--spacing-2) var(--spacing-4);
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    color: var(--color-text);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-full);
    text-decoration: none;
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
    transition: all var(--transition-base);
    z-index: 100;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08), 0 1px 2px rgba(0, 0, 0, 0.04);
}

.auth-back-button:hover {
    background: #ffffff;
    border-color: var(--color-brand);
    color: var(--color-brand);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(103, 78, 153, 0.15), 0 2px 4px rgba(0, 0, 0, 0.08);
    text-decoration: none;
}

.auth-back-button i {
    font-size: var(--text-base);
}

.auth-page-left {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: var(--spacing-12) var(--spacing-6);
    max-width: 520px;
    margin: 0 auto;
    width: 100%;
    position: relative;
    z-index: 1;
}

@media (min-width: 992px) {
    .auth-page-left {
        padding: var(--spacing-16) var(--spacing-8);
    }
}

.auth-page-right {
    flex: 1;
    display: none;
    background: linear-gradient(135deg, var(--color-brand) 0%, var(--color-brand-dark) 100%);
    position: relative;
    overflow: hidden;
    align-items: center;
    justify-content: center;
    padding: var(--spacing-12);
}

.auth-page-right::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: url('data:image/svg+xml,<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg"><defs><pattern id="grid" width="100" height="100" patternUnits="userSpaceOnUse"><path d="M 100 0 L 0 0 0 100" fill="none" stroke="rgba(255,255,255,0.05)" stroke-width="1"/></pattern></defs><rect width="100" height="100" fill="url(%23grid)"/></svg>');
    opacity: 0.3;
}

@media (min-width: 992px) {
    .auth-page-right {
        display: flex;
    }
}

.auth-page-right-content {
    position: relative;
    z-index: 1;
    text-align: center;
    color: rgba(255, 255, 255, 0.95);
    max-width: 500px;
}

.auth-page-right-content h2 {
    font-size: var(--text-3xl);
    font-weight: var(--font-weight-bold);
    color: #ffffff;
    margin-bottom: var(--spacing-4);
    letter-spacing: -0.02em;
    line-height: var(--line-height-tight);
}

.auth-page-right-content p {
    font-size: var(--text-lg);
    color: rgba(255, 255, 255, 0.85);
    line-height: var(--line-height-relaxed);
    margin-bottom: var(--spacing-8);
}

.auth-page-right-logo {
    max-width: 250px;
    height: auto;
    filter: brightness(0) invert(1);
    opacity: 0.95;
}

.auth-page-header {
    margin-bottom: var(--spacing-8);
    display: flex;
    flex-direction: column;
    gap: 0;
}

.auth-page-header .auth-brand {
    margin-bottom: var(--spacing-4);
}

.auth-page-header .try-free-btn,
.auth-page-header .btn-primary {
    margin-bottom: var(--spacing-6);
    align-self: flex-start;
}

.auth-page-header h1 {
    margin-top: 0;
    margin-bottom: var(--spacing-3);
}

.auth-page-header p {
    margin-top: 0;
}

.auth-brand {
    display: block;
    margin-bottom: var(--spacing-4);
    transition: transform var(--transition-base);
}

.auth-brand:hover {
    transform: scale(1.05);
}

.auth-brand-logo {
    height: 80px;
    width: auto;
    display: block;
}

@media (min-width: 768px) {
    .auth-brand-logo {
        height: 100px;
    }
}

.auth-page-header .try-free-btn,
.auth-page-header .btn-primary {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2);
    padding: var(--spacing-3) var(--spacing-6);
    background: linear-gradient(135deg, var(--color-brand) 0%, var(--color-brand-dark) 100%);
    color: #ffffff;
    border: none;
    border-radius: var(--radius-full);
    text-decoration: none;
    font-size: var(--text-sm);
    font-weight: var(--font-weight-semibold);
    transition: all var(--transition-base);
    margin-bottom: var(--spacing-6);
    box-shadow: 0 2px 8px rgba(103, 78, 153, 0.25), 0 1px 2px rgba(103, 78, 153, 0.15);
    position: relative;
    overflow: hidden;
}

.auth-page-header .try-free-btn::before,
.auth-page-header .btn-primary::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    transition: left var(--transition-slow);
}

.auth-page-header .try-free-btn:hover,
.auth-page-header .btn-primary:hover {
    background: linear-gradient(135deg, var(--color-brand-light) 0%, var(--color-brand) 100%);
    box-shadow: 0 4px 16px rgba(103, 78, 153, 0.35), 0 2px 4px rgba(103, 78, 153, 0.2);
    transform: translateY(-2px);
    text-decoration: none;
}

.auth-page-header .try-free-btn:hover::before,
.auth-page-header .btn-primary:hover::before {
    left: 100%;
}

.auth-page-header .try-free-btn:hover {
    background: var(--color-brand);
    color: #ffffff;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(103, 78, 153, 0.25);
    text-decoration: none;
}

.auth-page-header h1 {
    font-size: clamp(var(--text-2xl), 4vw, var(--text-4xl));
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    margin-bottom: var(--spacing-3);
    line-height: var(--line-height-tight);
    letter-spacing: -0.03em;
}

.auth-page-header p {
    font-size: var(--text-base);
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
    margin: 0;
}

.auth-form {
    background: linear-gradient(180deg, #ffffff 0%, #fafbfc 100%);
    border-radius: var(--radius-2xl);
    padding: var(--spacing-8);
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08), 0 2px 8px rgba(0, 0, 0, 0.04);
    border: 1px solid var(--color-border);
}

@media (min-width: 768px) {
    .auth-form {
        padding: var(--spacing-10);
    }
}

.auth-form-group {
    margin-bottom: var(--spacing-5);
}

.auth-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--spacing-4);
    margin-bottom: var(--spacing-5);
}

.auth-form-row .auth-form-group {
    margin-bottom: 0;
}

@media (max-width: 479px) {
    .auth-form-row {
        grid-template-columns: 1fr;
    }
}

.auth-form-label {
    display: block;
    font-size: var(--text-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
    margin-bottom: var(--spacing-2);
}

.auth-form-input {
    width: 100%;
    padding: var(--spacing-3) var(--spacing-4);
    font-size: var(--text-base);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: var(--color-surface);
    color: var(--color-text);
    transition: all var(--transition-base);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}

.auth-form-input::placeholder {
    color: var(--color-text-muted);
}

.auth-form-input:focus {
    outline: none;
    border-color: var(--color-brand);
    box-shadow: 0 0 0 4px rgba(103, 78, 153, 0.12), 0 2px 4px rgba(0, 0, 0, 0.08);
    background: #ffffff;
    transform: translateY(-1px);
}

.auth-form-input.is-invalid {
    border-color: var(--color-danger);
    background: rgba(239, 68, 68, 0.02);
}

.auth-form-input.is-invalid:focus {
    box-shadow: 0 0 0 4px rgba(239, 68, 68, 0.12), 0 2px 4px rgba(0, 0, 0, 0.08);
}

.auth-form-error {
    display: block;
    color: var(--color-danger);
    font-size: var(--text-xs);
    margin-top: var(--spacing-1);
    font-weight: var(--font-weight-medium);
}

.auth-form-checkbox {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-2);
    margin-bottom: var(--spacing-6);
    flex-wrap: wrap;
}

.auth-form-checkbox input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin-top: 2px;
    cursor: pointer;
    accent-color: var(--color-brand);
    flex-shrink: 0;
}

.auth-form-checkbox label {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    cursor: pointer;
    margin: 0;
    line-height: var(--line-height-relaxed);
    flex: 1;
    min-width: 0;
}

.auth-form-checkbox a {
    color: var(--color-brand);
    text-decoration: none;
    font-weight: var(--font-weight-medium);
    transition: color var(--transition-fast);
}

.auth-form-checkbox a:hover {
    color: var(--color-brand-dark);
    text-decoration: underline;
}

.auth-form-submit {
    width: 100%;
    padding: var(--spacing-3) var(--spacing-6);
    background: linear-gradient(135deg, var(--color-brand) 0%, var(--color-brand-dark) 100%);
    color: #ffffff;
    border: none;
    border-radius: var(--radius-lg);
    font-size: var(--text-base);
    font-weight: var(--font-weight-semibold);
    cursor: pointer;
    transition: all var(--transition-base);
    box-shadow: 0 2px 8px rgba(103, 78, 153, 0.25), 0 1px 2px rgba(103, 78, 153, 0.15);
    position: relative;
    overflow: hidden;
}

.auth-form-submit::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    transition: left var(--transition-slow);
}

.auth-form-submit:hover {
    background: linear-gradient(135deg, var(--color-brand-light) 0%, var(--color-brand) 100%);
    box-shadow: 0 4px 16px rgba(103, 78, 153, 0.35), 0 2px 4px rgba(103, 78, 153, 0.2);
    transform: translateY(-2px);
}

.auth-form-submit:hover::before {
    left: 100%;
}

.auth-form-submit:active {
    transform: translateY(0);
    box-shadow: 0 1px 2px rgba(103, 78, 153, 0.2);
}

.auth-form-footer {
    margin-top: var(--spacing-6);
    padding-top: var(--spacing-6);
    border-top: 1px solid var(--color-border);
    text-align: center;
}

.auth-form-footer p {
    margin: 0;
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
}

.auth-form-footer a {
    color: var(--color-brand);
    text-decoration: none;
    font-weight: var(--font-weight-semibold);
    transition: color var(--transition-fast);
}

.auth-form-footer a:hover {
    color: var(--color-brand-dark);
    text-decoration: underline;
}

.auth-alert {
    padding: var(--spacing-4);
    border-radius: var(--radius-lg);
    margin-bottom: var(--spacing-5);
    border: 1px solid;
    font-size: var(--text-sm);
    line-height: var(--line-height-relaxed);
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-2);
}

.auth-alert::before {
    content: '';
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    margin-top: 2px;
    border-radius: 50%;
    background-size: 14px;
    background-position: center;
    background-repeat: no-repeat;
}

.auth-alert-success {
    background: rgba(16, 185, 129, 0.08);
    border-color: var(--color-success);
    color: var(--color-success-dark);
}

.auth-alert-success::before {
    background-color: var(--color-success);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 16 16'%3E%3Cpath fill='white' d='M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.75.75 0 0 1 1.06-1.06L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0z'/%3E%3C/svg%3E");
}

.auth-alert-warning {
    background: rgba(245, 158, 11, 0.08);
    border-color: var(--color-warning);
    color: var(--color-warning-dark);
}

.auth-alert-warning::before {
    background-color: var(--color-warning);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 16 16'%3E%3Cpath fill='white' d='M8.485 2.495c.673-1.167 2.357-1.167 3.03 0l6.28 10.875c.673 1.167-.17 2.625-1.516 2.625H3.72c-1.347 0-2.189-1.458-1.515-2.625zM8 5a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0v-3.5A.75.75 0 0 1 8 5m1 7.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0'/%3E%3C/svg%3E");
}

.auth-alert-danger {
    background: rgba(239, 68, 68, 0.08);
    border-color: var(--color-danger);
    color: var(--color-danger-dark);
}

.auth-alert-danger::before {
    background-color: var(--color-danger);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 16 16'%3E%3Cpath fill='white' d='M2.343 13.657A8 8 0 1 1 13.658 2.343 8 8 0 0 1 2.343 13.657M6.03 4.97a.75.75 0 0 0-1.06 1.06L6.94 8 4.97 9.97a.75.75 0 1 0 1.06 1.06L8 9.06l1.97 1.97a.75.75 0 1 0 1.06-1.06L9.06 8l1.97-1.97a.75.75 0 1 0-1.06-1.06L8 6.94z'/%3E%3C/svg%3E");
}

/* Verification Page Styles */
.auth-verification-page {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #f8f9fa 0%, #ffffff 50%, #f8f9fa 100%);
    position: relative;
    overflow: hidden;
    padding: var(--spacing-8) var(--spacing-4);
}

.auth-verification-page::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -20%;
    width: 600px;
    height: 600px;
    background: radial-gradient(circle, rgba(103, 78, 153, 0.08) 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
}

.auth-verification-content {
    width: 100%;
    max-width: 520px;
    background: linear-gradient(180deg, #ffffff 0%, #fafbfc 100%);
    border-radius: var(--radius-2xl);
    padding: var(--spacing-10);
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08), 0 2px 8px rgba(0, 0, 0, 0.04);
    border: 1px solid var(--color-border);
    text-align: center;
    position: relative;
    z-index: 1;
}

.auth-verification-content .auth-brand {
    margin-bottom: var(--spacing-8);
}

.auth-verification-content .auth-brand-logo {
    height: 80px;
    width: auto;
}

@media (min-width: 768px) {
    .auth-verification-content .auth-brand-logo {
        height: 100px;
    }
}

.auth-verification-icon {
    font-size: 64px;
    margin-bottom: var(--spacing-6);
    display: block;
}

.auth-verification-icon.success {
    color: var(--color-success);
}

.auth-verification-icon.error {
    color: var(--color-danger);
}

.auth-verification-content h2 {
    font-size: var(--text-3xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    margin-bottom: var(--spacing-4);
    line-height: var(--line-height-tight);
}

.auth-verification-content p {
    font-size: var(--text-base);
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
    margin-bottom: var(--spacing-8);
}

@media (max-width: 991px) {
    .auth-page {
        flex-direction: column;
    }
    
    .auth-page-left {
        padding: var(--spacing-8) var(--spacing-4);
    }
    
    .auth-back-button {
        top: var(--spacing-3);
        left: var(--spacing-3);
    }
    
    .auth-brand-logo {
        height: 60px;
    }
    
    .auth-verification-content {
        padding: var(--spacing-8) var(--spacing-6);
    }
    
    .auth-verification-content .auth-brand-logo {
        height: 60px;
    }
}

.driver-description {
    margin: var(--spacing-2) 0;
    color: var(--color-text-secondary);
    font-size: var(--text-sm);
    line-height: var(--line-height-relaxed);
}

.driver-importance {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    margin-top: var(--spacing-2);
    padding-top: var(--spacing-2);
    border-top: 1px solid var(--color-border);
}

.importance-label {
    font-size: var(--text-xs);
    color: var(--color-text-muted);
    font-weight: var(--font-weight-medium);
}

.importance-stars {
    color: var(--color-warning);
    font-size: var(--text-sm);
    letter-spacing: 2px;
}

/* Risk Items */
.analyst-risk-item {
    padding: var(--spacing-4);
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    border-left: 4px solid var(--color-danger);
    transition: all var(--transition-fast);
}

.analyst-risk-item:hover {
    border-color: var(--color-danger);
    box-shadow: var(--shadow-1);
    transform: translateX(2px);
}

.risk-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--spacing-3);
    margin-bottom: var(--spacing-2);
    flex-wrap: wrap;
}

.risk-title {
    font-size: var(--text-base);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
    flex: 1;
    min-width: 0;
}

.risk-badges {
    display: flex;
    gap: var(--spacing-2);
    flex-wrap: wrap;
}

.risk-badge {
    display: inline-flex;
    align-items: center;
    padding: var(--spacing-1) var(--spacing-2);
    border-radius: 999px;
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    text-transform: capitalize;
}

.risk-badge.impact-high {
    background: rgba(239, 68, 68, 0.1);
    color: var(--color-danger);
    border: 1px solid rgba(239, 68, 68, 0.3);
}

.risk-badge.impact-medium {
    background: rgba(245, 158, 11, 0.1);
    color: var(--color-warning);
    border: 1px solid rgba(245, 158, 11, 0.3);
}

.risk-badge.impact-low {
    background: rgba(16, 185, 129, 0.1);
    color: var(--color-success);
    border: 1px solid rgba(16, 185, 129, 0.3);
}

.risk-badge.probability-high {
    background: rgba(239, 68, 68, 0.1);
    color: var(--color-danger);
    border: 1px solid rgba(239, 68, 68, 0.3);
}

.risk-badge.probability-medium {
    background: rgba(245, 158, 11, 0.1);
    color: var(--color-warning);
    border: 1px solid rgba(245, 158, 11, 0.3);
}

.risk-badge.probability-low {
    background: rgba(16, 185, 129, 0.1);
    color: var(--color-success);
    border: 1px solid rgba(16, 185, 129, 0.3);
}

.risk-mitigants {
    margin-top: var(--spacing-3);
    padding-top: var(--spacing-3);
    border-top: 1px solid var(--color-border);
}

.risk-mitigants strong {
    display: block;
    margin-bottom: var(--spacing-2);
    font-size: var(--text-sm);
    color: var(--color-text);
    font-weight: var(--font-weight-semibold);
}

.risk-mitigants ul {
    margin: 0;
    padding-left: var(--spacing-4);
    list-style-type: disc;
}

.risk-mitigants li {
    margin-bottom: var(--spacing-1);
    color: var(--color-text-secondary);
    font-size: var(--text-sm);
    line-height: var(--line-height-relaxed);
}

/* =========================================================
   Quote Page - Related Tickers Pills
   ========================================================= */

.related-tickers-pills {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-2);
}

.related-ticker-pill {
    display: inline-flex;
    align-items: center;
    padding: var(--spacing-2) var(--spacing-4);
    background: var(--color-surface-2);
    border: 1px solid var(--color-border);
    border-radius: 999px;
    color: var(--color-text);
    text-decoration: none;
    font-size: var(--text-sm);
    font-weight: var(--font-weight-semibold);
    transition: all var(--transition-fast);
}

.related-ticker-pill:hover {
    background: var(--color-brand);
    color: #ffffff;
    border-color: var(--color-brand);
    transform: translateY(-1px);
    box-shadow: var(--shadow-1);
}

/* =========================================================
   Quote Page - News Item Cards
   ========================================================= */

.news-item-card {
    padding: var(--spacing-5);
    background: linear-gradient(135deg, 
        var(--color-surface) 0%, 
        rgba(255, 255, 255, 0.98) 50%,
        rgba(103, 78, 153, 0.02) 100%);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-lg);
    margin-bottom: var(--spacing-4);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 
        0 2px 8px rgba(0, 0, 0, 0.04),
        0 1px 4px rgba(0, 0, 0, 0.02);
    position: relative;
    overflow: hidden;
}

.news-item-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 4px;
    height: 100%;
    background: linear-gradient(180deg, 
        var(--color-brand) 0%, 
        rgba(103, 78, 153, 0.6) 100%);
    opacity: 0;
    transition: opacity 0.3s ease;
    z-index: 1;
}

.news-item-card:hover {
    border-color: rgba(103, 78, 153, 0.3);
    box-shadow: 
        0 6px 20px rgba(103, 78, 153, 0.15),
        0 3px 10px rgba(0, 0, 0, 0.08);
    transform: translateY(-4px) translateX(4px);
    background: linear-gradient(135deg, 
        rgba(255, 255, 255, 0.98) 0%, 
        rgba(255, 255, 255, 0.95) 50%,
        rgba(103, 78, 153, 0.04) 100%);
}

.news-item-card:hover::before {
    opacity: 1;
}

.news-item-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--spacing-3);
    margin-bottom: var(--spacing-3);
    position: relative;
    z-index: 2;
}

.news-title {
    margin: 0;
    font-size: var(--text-lg);
    font-weight: var(--font-weight-semibold);
    flex: 1;
    min-width: 0;
    font-weight: var(--font-weight-semibold);
    line-height: var(--line-height-tight);
    flex: 1;
}

.news-title a {
    color: var(--color-text);
    text-decoration: none;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: block;
    line-height: var(--line-height-tight);
}

.news-title a:hover {
    color: var(--color-brand);
    text-decoration: none;
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.05) 0%, 
        transparent 100%);
    padding: var(--spacing-1) var(--spacing-2);
    border-radius: var(--radius-sm);
    margin: calc(-1 * var(--spacing-1)) calc(-1 * var(--spacing-2));
}

.news-sentiment-badge {
    flex-shrink: 0;
    font-size: var(--text-xs);
    padding: var(--spacing-2) var(--spacing-3);
    font-weight: var(--font-weight-bold);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-radius: var(--radius-md);
    box-shadow: 
        0 2px 6px rgba(0, 0, 0, 0.1),
        0 1px 3px rgba(0, 0, 0, 0.06);
    transition: all 0.3s ease;
    position: relative;
    z-index: 2;
}

.news-sentiment-badge:hover {
    transform: translateY(-2px) scale(1.05);
    box-shadow: 
        0 4px 12px rgba(0, 0, 0, 0.15),
        0 2px 6px rgba(0, 0, 0, 0.1);
}

.news-item-body {
    margin-bottom: var(--spacing-4);
    position: relative;
    z-index: 2;
}

.news-description {
    margin: 0;
    font-size: var(--text-base);
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
    padding-left: var(--spacing-4);
    border-left: 3px solid rgba(103, 78, 153, 0.2);
    background: linear-gradient(90deg, 
        rgba(103, 78, 153, 0.02) 0%, 
        transparent 100%);
    padding: var(--spacing-2) var(--spacing-4);
    border-radius: var(--radius-sm);
    transition: all 0.3s ease;
}

.news-item-card:hover .news-description {
    border-left-color: rgba(103, 78, 153, 0.4);
    background: linear-gradient(90deg, 
        rgba(103, 78, 153, 0.04) 0%, 
        transparent 100%);
    color: var(--color-text);
}

.news-item-footer {
    display: flex;
    align-items: center;
    gap: var(--spacing-4);
    font-size: var(--text-xs);
    color: var(--color-text-muted);
    position: relative;
    z-index: 2;
    padding-top: var(--spacing-3);
    border-top: 1px solid var(--color-border);
}

.news-publisher,
.news-date {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-1);
    padding: var(--spacing-1) var(--spacing-2);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.05) 0%, 
        rgba(103, 78, 153, 0.02) 100%);
    border-radius: var(--radius-sm);
    border: 1px solid rgba(103, 78, 153, 0.1);
    transition: all 0.3s ease;
}

.news-publisher:hover,
.news-date:hover {
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.08) 0%, 
        rgba(103, 78, 153, 0.04) 100%);
    border-color: rgba(103, 78, 153, 0.2);
    transform: translateY(-2px);
    box-shadow: 
        0 2px 6px rgba(103, 78, 153, 0.15),
        0 1px 3px rgba(0, 0, 0, 0.05);
    align-items: center;
    gap: var(--spacing-1);
}

.news-publisher i,
.news-date i {
    font-size: 0.75rem;
}

/* =========================================================
   Quote Page - Technical Indicators
   ========================================================= */

.technicals-container {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-6);
}

.technical-section-card {
    background: linear-gradient(135deg, 
        var(--color-surface) 0%, 
        rgba(255, 255, 255, 0.98) 50%,
        rgba(103, 78, 153, 0.02) 100%);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: var(--spacing-6);
    box-shadow: 
        0 4px 16px rgba(0, 0, 0, 0.06),
        0 2px 8px rgba(0, 0, 0, 0.04),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    position: relative;
    overflow: hidden;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.technical-section-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, 
        transparent 0%, 
        var(--color-brand) 20%, 
        var(--color-brand) 80%, 
        transparent 100%);
    opacity: 0.7;
    z-index: 1;
}

.technical-section-card::after {
    content: '';
    position: absolute;
    top: -50%;
    right: -10%;
    width: 300px;
    height: 300px;
    background: radial-gradient(circle, 
        rgba(103, 78, 153, 0.06) 0%, 
        transparent 70%);
    opacity: 0.5;
    pointer-events: none;
    z-index: 0;
    transition: opacity 0.3s ease;
}

.technical-section-card:hover {
    transform: translateY(-4px);
    box-shadow: 
        0 8px 24px rgba(0, 0, 0, 0.1),
        0 4px 12px rgba(0, 0, 0, 0.06),
        inset 0 1px 0 rgba(255, 255, 255, 0.95);
    border-color: rgba(103, 78, 153, 0.2);
}

.technical-section-card:hover::after {
    opacity: 0.8;
}

.technical-section-title {
    display: flex;
    align-items: center;
    gap: var(--spacing-3);
    position: relative;
    z-index: 2;
    margin-bottom: var(--spacing-5);
    padding-bottom: var(--spacing-3);
    border-bottom: 2px solid rgba(103, 78, 153, 0.1);
    margin: 0 0 var(--spacing-4);
    font-size: var(--text-lg);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
}

.technical-section-title {
    font-size: var(--text-lg);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    background: linear-gradient(135deg, 
        var(--color-text) 0%, 
        rgba(103, 78, 153, 0.8) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.technical-section-title i {
    color: var(--color-brand);
    font-size: var(--text-xl);
    background: none;
    -webkit-text-fill-color: var(--color-brand);
    filter: drop-shadow(0 2px 4px rgba(103, 78, 153, 0.3));
    transition: all 0.3s ease;
}

.technical-section-card:hover .technical-section-title i {
    transform: scale(1.1);
    filter: drop-shadow(0 4px 8px rgba(103, 78, 153, 0.4));
}

.technical-items-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: var(--spacing-3);
}

.technical-item-card {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-2);
    padding: var(--spacing-4);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.02) 0%, 
        rgba(255, 255, 255, 0.5) 100%);
    border: 1.5px solid rgba(103, 78, 153, 0.1);
    border-left: 3px solid rgba(103, 78, 153, 0.2);
    border-radius: var(--radius-md);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
    box-shadow: 
        0 2px 6px rgba(0, 0, 0, 0.04),
        0 1px 3px rgba(0, 0, 0, 0.02);
}

.technical-item-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 100%;
    background: linear-gradient(90deg, 
        rgba(103, 78, 153, 0.05) 0%, 
        transparent 100%);
    transition: width 0.3s ease;
    z-index: 0;
}

.technical-item-card:hover {
    border-left-color: var(--color-brand);
    border-color: rgba(103, 78, 153, 0.3);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.04) 0%, 
        rgba(255, 255, 255, 0.6) 100%);
    box-shadow: 
        0 4px 12px rgba(103, 78, 153, 0.15),
        0 2px 6px rgba(0, 0, 0, 0.08);
    transform: translateX(4px) translateY(-2px);
}

.technical-item-card:hover::before {
    width: 100%;
}

.technical-item-card-full {
    grid-column: 1 / -1;
}

.technical-label {
    font-size: var(--text-xs);
    color: var(--color-text-muted);
    font-weight: var(--font-weight-bold);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
}

.technical-label::before {
    content: '';
    width: 4px;
    height: 4px;
    background: var(--color-brand);
    border-radius: 50%;
    opacity: 0.6;
    transition: all 0.3s ease;
}

/* =========================================================
   Tools Page Styles
   ========================================================= */

.tv-page-header {
    margin-bottom: var(--spacing-10);
    text-align: center;
    position: relative;
    padding-bottom: var(--spacing-6);
}

.tv-page-header::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 80px;
    height: 4px;
    background: linear-gradient(90deg, 
        var(--color-brand) 0%, 
        var(--color-brand-light) 100%);
    border-radius: 2px;
}

.section-title {
    font-size: var(--text-4xl);
    font-weight: var(--font-weight-bold);
    letter-spacing: -0.03em;
    margin-bottom: var(--spacing-4);
    background: linear-gradient(135deg, 
        var(--color-text) 0%, 
        rgba(103, 78, 153, 0.9) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    line-height: var(--line-height-tight);
}

@media (min-width: 768px) {
    .section-title {
        font-size: var(--text-5xl);
    }
}

.section-subtitle {
    font-size: var(--text-lg);
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
    max-width: 70ch;
    margin: 0 auto;
}

@media (min-width: 768px) {
    .section-subtitle {
        font-size: var(--text-xl);
    }
}

/* Tool Cards */
.tool-card {
    height: 100%;
    display: flex;
    flex-direction: column;
    background: linear-gradient(135deg, 
        #ffffff 0%, 
        rgba(255, 255, 255, 0.98) 50%,
        rgba(103, 78, 153, 0.02) 100%);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-xl);
    overflow: hidden;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 
        0 4px 16px rgba(0, 0, 0, 0.06),
        0 2px 8px rgba(0, 0, 0, 0.04),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    position: relative;
}

.tool-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, 
        transparent 0%, 
        var(--color-brand) 20%, 
        var(--color-brand) 80%, 
        transparent 100%);
    opacity: 0;
    transition: opacity 0.4s ease;
    z-index: 2;
}

.tool-card::after {
    content: '';
    position: absolute;
    top: -50%;
    right: -10%;
    width: 300px;
    height: 300px;
    background: radial-gradient(circle, 
        rgba(103, 78, 153, 0.06) 0%, 
        transparent 70%);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.4s ease;
    z-index: 0;
}

.tool-card:hover {
    transform: translateY(-8px) scale(1.02);
    box-shadow: 
        0 12px 32px rgba(103, 78, 153, 0.15),
        0 6px 16px rgba(0, 0, 0, 0.1),
        inset 0 1px 0 rgba(255, 255, 255, 0.95);
    border-color: rgba(103, 78, 153, 0.3);
}

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

.tool-card:hover::after {
    opacity: 0.6;
}

.tool-card img {
    width: 100%;
    height: auto;
    display: block;
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    border-radius: var(--radius-xl) var(--radius-xl) 0 0;
    position: relative;
    z-index: 1;
}

.tool-card:hover img {
    transform: scale(1.05);
}

.tool-card .card-header {
    padding: var(--spacing-5) var(--spacing-5) var(--spacing-3);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.02) 0%, 
        transparent 100%);
    border-bottom: 1px solid rgba(103, 78, 153, 0.1);
    position: relative;
    z-index: 2;
}

.tool-card .card-title {
    font-size: var(--text-xl);
    font-weight: var(--font-weight-bold);
    letter-spacing: -0.02em;
    background: linear-gradient(135deg, 
        var(--color-text) 0%, 
        rgba(103, 78, 153, 0.9) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    margin-bottom: 0;
    position: relative;
    padding-bottom: var(--spacing-2);
}

.tool-card .card-title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 40px;
    height: 2px;
    background: linear-gradient(90deg, 
        var(--color-brand) 0%, 
        rgba(103, 78, 153, 0.6) 100%);
    border-radius: 1px;
}

.tool-card .card-body {
    padding: var(--spacing-4) var(--spacing-5) var(--spacing-5);
    flex: 1;
    display: flex;
    flex-direction: column;
    position: relative;
    z-index: 2;
}

.tool-card .text-muted {
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
    font-size: var(--text-base);
    margin-bottom: var(--spacing-4);
    flex: 1;
}

.tool-card .btn {
    margin-top: auto;
    align-self: flex-start;
    padding: var(--spacing-3) var(--spacing-5);
    border-radius: var(--radius-md);
    font-weight: var(--font-weight-semibold);
    font-size: var(--text-sm);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 1.5px solid var(--color-brand);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.05) 0%, 
        rgba(103, 78, 153, 0.02) 100%);
    color: var(--color-brand);
    position: relative;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    vertical-align: middle;
    line-height: 1.5;
}

.tool-card .btn:hover {
    transform: translateY(-2px);
    box-shadow: 
        0 4px 12px rgba(103, 78, 153, 0.3),
        0 2px 6px rgba(0, 0, 0, 0.1);
    border-color: var(--color-brand);
    background: linear-gradient(135deg, 
        var(--color-brand) 0%, 
        rgba(103, 78, 153, 0.9) 100%) !important;
    color: #ffffff !important;
}

.tool-card .btn:active {
    transform: translateY(0);
}

/* Coming Soon Section */
.tools-coming-soon {
    margin-top: var(--spacing-8);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.05) 0%, 
        rgba(103, 78, 153, 0.02) 50%,
        rgba(255, 255, 255, 0.95) 100%);
    border: 1.5px solid rgba(103, 78, 153, 0.2);
    border-left: 4px solid var(--color-brand);
    border-radius: var(--radius-xl);
    padding: var(--spacing-6) var(--spacing-6);
    box-shadow: 
        0 4px 16px rgba(103, 78, 153, 0.1),
        0 2px 8px rgba(0, 0, 0, 0.05),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    position: relative;
    overflow: hidden;
}

.tools-coming-soon::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -10%;
    width: 400px;
    height: 400px;
    background: radial-gradient(circle, 
        rgba(103, 78, 153, 0.08) 0%, 
        transparent 70%);
    opacity: 0.5;
    pointer-events: none;
    z-index: 0;
}

.tools-coming-soon h3 {
    font-size: var(--text-2xl);
    font-weight: var(--font-weight-bold);
    letter-spacing: -0.02em;
    margin-bottom: var(--spacing-4);
    background: linear-gradient(135deg, 
        var(--color-text) 0%, 
        rgba(103, 78, 153, 0.9) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    position: relative;
    z-index: 2;
}

.tools-coming-soon p {
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
    font-size: var(--text-base);
    margin-bottom: 0;
    position: relative;
    z-index: 2;
}

.tools-coming-soon a {
    color: var(--color-brand);
    font-weight: var(--font-weight-semibold);
    text-decoration: none;
    border-bottom: 2px solid rgba(103, 78, 153, 0.3);
    transition: all 0.3s ease;
}

.tools-coming-soon a:hover {
    color: var(--color-brand-dark);
    border-bottom-color: var(--color-brand);
    background: linear-gradient(90deg, 
        rgba(103, 78, 153, 0.05) 0%, 
        transparent 100%);
    padding: var(--spacing-1) var(--spacing-2);
    margin: calc(-1 * var(--spacing-1)) calc(-1 * var(--spacing-2));
    border-radius: var(--radius-sm);
}

/* Tools CTA Section */
.tools-cta {
    margin-top: var(--spacing-12);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.08) 0%, 
        rgba(103, 78, 153, 0.04) 30%,
        rgba(255, 255, 255, 0.98) 100%);
    border: 2px solid rgba(103, 78, 153, 0.2);
    border-radius: var(--radius-xl);
    box-shadow: 
        0 8px 32px rgba(103, 78, 153, 0.12),
        0 4px 16px rgba(0, 0, 0, 0.06),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    position: relative;
    overflow: hidden;
}
.tools-cta img:hover {
    transform: scale(1.05);
    transition: transform 0.3s ease;
}

.tools-cta::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, 
        transparent 0%, 
        var(--color-brand) 20%, 
        var(--color-brand) 80%, 
        transparent 100%);
    opacity: 0.8;
    z-index: 1;
}

.tools-cta::after {
    content: '';
    position: absolute;
    top: -30%;
    right: -10%;
    width: 500px;
    height: 500px;
    background: radial-gradient(circle, 
        rgba(103, 78, 153, 0.1) 0%, 
        transparent 70%);
    opacity: 0.6;
    pointer-events: none;
    z-index: 0;
    animation: ctaPulse 4s ease-in-out infinite;
}

@keyframes ctaPulse {
    0%, 100% {
        opacity: 0.6;
        transform: scale(1);
    }
    50% {
        opacity: 0.8;
        transform: scale(1.05);
    }
}

.tools-cta-content {
    position: relative;
    z-index: 2;
    text-align: center;
    margin: 0 auto;
}

.tools-cta-icon {
    width: 80px;
    height: 80px;
    margin: 0 auto var(--spacing-5);
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, 
        var(--color-brand) 0%, 
        rgba(103, 78, 153, 0.9) 100%);
    border-radius: 50%;
    box-shadow: 
        0 8px 24px rgba(103, 78, 153, 0.3),
        0 4px 12px rgba(0, 0, 0, 0.1);
    position: relative;
    animation: iconFloat 3s ease-in-out infinite;
}

@keyframes iconFloat {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-8px);
    }
}

.tools-cta-icon i {
    font-size: 2.5rem;
    color: #ffffff;
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2));
}

.tools-cta-title {
    font-size: var(--text-3xl);
    font-weight: var(--font-weight-bold);
    letter-spacing: -0.03em;
    margin-bottom: var(--spacing-4);
    background: linear-gradient(135deg, 
        var(--color-text) 0%, 
        rgba(103, 78, 153, 0.9) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    line-height: var(--line-height-tight);
}

@media (min-width: 768px) {
    .tools-cta-title {
        font-size: var(--text-4xl);
    }
}

.tools-cta-description {
    font-size: var(--text-lg);
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
    margin-bottom: var(--spacing-6);
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

.tools-cta-actions {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-3);
    align-items: center;
}

@media (min-width: 768px) {
    .tools-cta-actions {
        flex-direction: row;
        justify-content: center;
    }
}

.tools-cta-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-2);
    padding: var(--spacing-4) var(--spacing-6);
    border-radius: var(--radius-lg);
    font-weight: var(--font-weight-semibold);
    font-size: var(--text-base);
    text-decoration: none;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
    min-width: 200px;
}

.tools-cta-button-primary {
    background: linear-gradient(135deg, 
        var(--color-brand) 0%, 
        rgba(103, 78, 153, 0.9) 100%);
    color: #ffffff;
    border: 2px solid var(--color-brand);
    box-shadow: 
        0 4px 16px rgba(103, 78, 153, 0.3),
        0 2px 8px rgba(0, 0, 0, 0.1);
}

.tools-cta-button-primary::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.9) 0%, 
        var(--color-brand) 100%);
    opacity: 0;
    transition: opacity 0.3s ease;
    z-index: 0;
}

.tools-cta-button-primary span,
.tools-cta-button-primary i {
    position: relative;
    z-index: 1;
}

.tools-cta-button-primary:hover {
    transform: translateY(-3px);
    box-shadow: 
        0 8px 24px rgba(103, 78, 153, 0.4),
        0 4px 12px rgba(0, 0, 0, 0.15);
    border-color: var(--color-brand-dark);
}

.tools-cta-button-primary:hover::before {
    opacity: 1;
}

.tools-cta-button-primary i {
    transition: transform 0.3s ease;
}

.tools-cta-button-primary:hover i {
    transform: translateX(4px);
}

.tools-cta-button-secondary {
    background: linear-gradient(135deg, 
        rgba(255, 255, 255, 0.95) 0%, 
        rgba(255, 255, 255, 0.9) 100%);
    color: var(--color-brand);
    border: 2px solid rgba(103, 78, 153, 0.3);
    box-shadow: 
        0 2px 8px rgba(0, 0, 0, 0.06),
        0 1px 4px rgba(0, 0, 0, 0.04);
}

.tools-cta-button-secondary:hover {
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.05) 0%, 
        rgba(103, 78, 153, 0.02) 100%);
    border-color: var(--color-brand);
    transform: translateY(-2px);
    box-shadow: 
        0 4px 12px rgba(103, 78, 153, 0.2),
        0 2px 6px rgba(0, 0, 0, 0.08);
    color: var(--color-brand-dark);
}

@media (max-width: 767px) {
    .tools-cta {
        padding: var(--spacing-8) var(--spacing-4);
        margin-top: var(--spacing-8);
    }
    
    .tools-cta-icon {
        width: 64px;
        height: 64px;
        margin-bottom: var(--spacing-4);
    }
    
    .tools-cta-icon i {
        font-size: 2rem;
    }
    
    .tools-cta-title {
        font-size: var(--text-2xl);
    }
    
    .tools-cta-description {
        font-size: var(--text-base);
    }
    
    .tools-cta-button {
        width: 100%;
        min-width: auto;
    }
}

/* Tools Grid Responsive */
@media (max-width: 767px) {
    .tool-card {
        margin-bottom: var(--spacing-5);
    }
    
    .tool-card .card-header {
        padding: var(--spacing-4) var(--spacing-4) var(--spacing-3);
    }
    
    .tool-card .card-body {
        padding: var(--spacing-3) var(--spacing-4) var(--spacing-4);
    }
}

.technical-item-card:hover .technical-label::before {
    opacity: 1;
    transform: scale(1.5);
    box-shadow: 0 0 8px rgba(103, 78, 153, 0.4);
}

.technical-value {
    font-size: var(--text-xl);
    font-weight: var(--font-weight-bold);
    position: relative;
    z-index: 1;
    background: linear-gradient(135deg, 
        var(--color-text) 0%, 
        rgba(103, 78, 153, 0.8) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    color: var(--color-text);
}

.technical-value-overbought {
    color: var(--color-danger);
    background: linear-gradient(135deg, 
        var(--color-danger) 0%, 
        rgba(239, 68, 68, 0.8) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.technical-value-oversold {
    color: var(--color-success);
    background: linear-gradient(135deg, 
        var(--color-success) 0%, 
        rgba(16, 185, 129, 0.8) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.technical-value-positive {
    color: var(--color-success);
    background: linear-gradient(135deg, 
        var(--color-success) 0%, 
        rgba(16, 185, 129, 0.8) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.technical-value-negative {
    color: var(--color-danger);
    background: linear-gradient(135deg, 
        var(--color-danger) 0%, 
        rgba(239, 68, 68, 0.8) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.technical-hint {
    font-size: var(--text-xs);
    color: var(--color-text-muted);
    font-style: italic;
}

.technical-badge {
    display: inline-flex;
    align-items: center;
    padding: var(--spacing-2) var(--spacing-4);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-bold);
    text-transform: capitalize;
    box-shadow: 
        0 2px 6px rgba(0, 0, 0, 0.1),
        0 1px 3px rgba(0, 0, 0, 0.06);
    transition: all 0.3s ease;
}

.technical-badge:hover {
    transform: translateY(-2px) scale(1.05);
    box-shadow: 
        0 4px 12px rgba(0, 0, 0, 0.15),
        0 2px 6px rgba(0, 0, 0, 0.1);
}

.technical-badge-bullish {
    background: linear-gradient(135deg, 
        var(--color-success) 0%, 
        rgba(16, 185, 129, 0.9) 100%);
    color: #ffffff;
    border: 1.5px solid rgba(16, 185, 129, 0.3);
}

.technical-badge-bearish {
    background: linear-gradient(135deg, 
        var(--color-danger) 0%, 
        rgba(239, 68, 68, 0.9) 100%);
    color: #ffffff;
    border: 1.5px solid rgba(239, 68, 68, 0.3);
}

.technical-badge-neutral {
    background: linear-gradient(135deg, 
        var(--color-text-secondary) 0%, 
        rgba(107, 114, 128, 0.9) 100%);
    color: #ffffff;
    border: 1.5px solid rgba(107, 114, 128, 0.3);
}

/* =========================================================
   Markets Page - Quote Search Bar
   ========================================================= */

.markets-quote-search-wrapper {
    position: relative;
    width: 100%;
}

.markets-quote-search-form {
    width: 100%;
}

.markets-quote-search-container {
    position: relative;
    display: flex;
    align-items: center;
    background: linear-gradient(135deg, 
        var(--color-surface) 0%, 
        rgba(255, 255, 255, 0.98) 50%,
        rgba(103, 78, 153, 0.02) 100%);
    border: 2px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: 
        0 4px 16px rgba(0, 0, 0, 0.06),
        0 2px 8px rgba(0, 0, 0, 0.04),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    overflow: hidden;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    padding: var(--spacing-1);
}

.markets-quote-search-container::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, 
        transparent 0%, 
        var(--color-brand) 20%, 
        var(--color-brand) 80%, 
        transparent 100%);
    opacity: 0.7;
    z-index: 1;
}

.markets-quote-search-container:focus-within {
    border-color: rgba(103, 78, 153, 0.4);
    box-shadow: 
        0 6px 24px rgba(103, 78, 153, 0.15),
        0 3px 12px rgba(0, 0, 0, 0.08),
        inset 0 1px 0 rgba(255, 255, 255, 0.95);
    transform: translateY(-2px);
}

.markets-quote-search-container:focus-within::before {
    opacity: 1;
}

.markets-quote-search-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--spacing-3) var(--spacing-4);
    color: var(--color-text-muted);
    font-size: var(--text-lg);
    transition: all 0.3s ease;
    position: relative;
    z-index: 2;
}

.markets-quote-search-container:focus-within .markets-quote-search-icon {
    color: var(--color-brand);
    transform: scale(1.1);
}

.markets-quote-search-input {
    flex: 1;
    border: none;
    background: transparent;
    padding: var(--spacing-3) var(--spacing-2);
    font-size: var(--text-base);
    color: var(--color-text);
    font-weight: var(--font-weight-medium);
    outline: none;
    position: relative;
    z-index: 2;
}

.markets-quote-search-input::placeholder {
    color: var(--color-text-muted);
    opacity: 0.7;
}

.markets-quote-search-button {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--spacing-3) var(--spacing-5);
    background: linear-gradient(135deg, 
        var(--color-brand) 0%, 
        rgba(103, 78, 153, 0.9) 100%);
    color: #ffffff;
    border: none;
    border-radius: var(--radius-md);
    font-size: var(--text-lg);
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    z-index: 2;
    box-shadow: 
        0 2px 8px rgba(103, 78, 153, 0.3),
        0 1px 4px rgba(0, 0, 0, 0.1);
    overflow: hidden;
}

.markets-quote-search-button::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, 
        transparent 0%, 
        rgba(255, 255, 255, 0.3) 50%, 
        transparent 100%);
    transition: left 0.5s ease;
}

.markets-quote-search-button:hover {
    transform: translateX(-2px);
    box-shadow: 
        0 4px 12px rgba(103, 78, 153, 0.4),
        0 2px 6px rgba(0, 0, 0, 0.15);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.95) 0%, 
        var(--color-brand) 100%);
}

.markets-quote-search-button:hover::before {
    left: 100%;
}

.markets-quote-search-button:active {
    transform: translateX(-1px) scale(0.98);
}

/* Enhanced search suggestions for markets page */
.markets-quote-search-wrapper .search-suggestions {
    margin-top: var(--spacing-2);
    background: linear-gradient(135deg, 
        var(--color-surface) 0%, 
        rgba(255, 255, 255, 0.98) 100%);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: 
        0 8px 24px rgba(0, 0, 0, 0.12),
        0 4px 12px rgba(0, 0, 0, 0.08);
    overflow: hidden;
}

.markets-quote-search-wrapper .search-suggestion-item {
    padding: var(--spacing-4);
    border-bottom: 1px solid rgba(103, 78, 153, 0.1);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}

.markets-quote-search-wrapper .search-suggestion-item::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 4px;
    height: 100%;
    background: linear-gradient(180deg, 
        var(--color-brand) 0%, 
        rgba(103, 78, 153, 0.6) 100%);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.markets-quote-search-wrapper .search-suggestion-item:hover,
.markets-quote-search-wrapper .search-suggestion-item.active {
    background: linear-gradient(90deg, 
        rgba(103, 78, 153, 0.08) 0%, 
        rgba(103, 78, 153, 0.03) 100%);
    transform: translateX(4px);
    border-left-color: var(--color-brand);
}

.markets-quote-search-wrapper .search-suggestion-item:hover::before,
.markets-quote-search-wrapper .search-suggestion-item.active::before {
    opacity: 1;
}

.markets-quote-search-wrapper .search-suggestion-logo {
    width: 40px;
    height: 40px;
    border-radius: var(--radius-md);
    box-shadow: 
        0 2px 6px rgba(0, 0, 0, 0.1),
        0 1px 3px rgba(0, 0, 0, 0.06);
    border: 2px solid rgba(255, 255, 255, 0.9);
}

.markets-quote-search-wrapper .search-suggestion-title {
    font-size: var(--text-base);
    font-weight: var(--font-weight-bold);
    background: linear-gradient(135deg, 
        var(--color-text) 0%, 
        rgba(103, 78, 153, 0.8) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.markets-quote-search-wrapper .search-suggestion-item:hover .search-suggestion-title,
.markets-quote-search-wrapper .search-suggestion-item.active .search-suggestion-title {
    background: linear-gradient(135deg, 
        var(--color-brand) 0%, 
        rgba(103, 78, 153, 0.9) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

@media (max-width: 767px) {
    .markets-quote-search-container {
        padding: var(--spacing-1);
    }
    
    .markets-quote-search-icon {
        padding: var(--spacing-2) var(--spacing-3);
        font-size: var(--text-base);
    }
    
    .markets-quote-search-input {
        padding: var(--spacing-2) var(--spacing-1);
        font-size: var(--text-sm);
    }
    
    .markets-quote-search-button {
        padding: var(--spacing-2) var(--spacing-4);
        font-size: var(--text-base);
    }
}

/* ============================================
   MARKET PULSE
   ============================================ */
.market-pulse {
    /* Pulse palette variables (overridden per pulse type below) */
    --pulse-accent: var(--color-text-secondary);
    --pulse-accent-weak: rgba(2, 26, 56, 0.06);
    --pulse-accent-border: rgba(2, 26, 56, 0.16);

    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.70) 0%, rgba(255, 255, 255, 0) 55%),
        var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    margin-bottom: var(--spacing-4);
    position: relative;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 
        0 10px 24px rgba(2, 26, 56, 0.08),
        0 2px 6px rgba(2, 26, 56, 0.06),
        inset 0 1px 0 rgba(255, 255, 255, 0.85);
    overflow: hidden;
    isolation: isolate;
}

.market-pulse::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(
        90deg,
        transparent 0%,
        var(--pulse-accent) 18%,
        var(--pulse-accent) 82%,
        transparent 100%
    );
    opacity: 0.55;
    transition: opacity 0.25s ease, height 0.25s ease;
    z-index: 1;
}

.market-pulse:hover {
    box-shadow: 
        0 14px 32px rgba(2, 26, 56, 0.10),
        0 4px 10px rgba(2, 26, 56, 0.08),
        inset 0 1px 0 rgba(255, 255, 255, 0.90);
    border-color: color-mix(in srgb, var(--pulse-accent) 22%, var(--color-border));
    transform: translateY(-1px);
}

.market-pulse:hover::before {
    opacity: 0.8;
}

.market-pulse.is-expanded {
    box-shadow: 
        0 18px 44px rgba(2, 26, 56, 0.14),
        0 6px 14px rgba(2, 26, 56, 0.10),
        inset 0 1px 0 rgba(255, 255, 255, 0.92);
    border-color: var(--color-brand);
}

.market-pulse.is-expanded::before {
    height: 4px;
    opacity: 1;
}

/* Compact Header (Always Visible) */
.market-pulse-header-compact {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-3);
    padding: var(--spacing-3) var(--spacing-4);
    cursor: pointer;
    transition: all 0.2s ease;
    position: relative;
    z-index: 2;
}

.market-pulse-header-compact:hover {
    background: linear-gradient(
        90deg,
        var(--pulse-accent-weak) 0%,
        rgba(255, 255, 255, 0) 65%
    );
}

.market-pulse-header-compact:active {
    background: linear-gradient(
        90deg,
        color-mix(in srgb, var(--pulse-accent-weak) 85%, rgba(0,0,0,0.02)) 0%,
        rgba(255, 255, 255, 0) 65%
    );
}

.market-pulse-header-compact[aria-expanded="true"] {
    border-bottom: 1px solid var(--color-border-light);
    padding-bottom: var(--spacing-3);
}

.market-pulse-header-left {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: var(--spacing-3);
    flex-wrap: wrap;
}

.market-pulse-header-right {
    flex-shrink: 0;
    display: flex;
    align-items: center;
}

.market-pulse-expand-icon {
    font-size: var(--text-sm);
    color: var(--color-text-tertiary);
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.market-pulse-header-compact[aria-expanded="true"] .market-pulse-expand-icon {
    transform: rotate(180deg);
}

/* Expandable Content */
.market-pulse-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1), 
                padding 0.4s cubic-bezier(0.4, 0, 0.2, 1), 
                opacity 0.3s ease;
    opacity: 0;
    position: relative;
    z-index: 2;
}

.market-pulse-content[aria-hidden="false"] {
    max-height: 2000px;
    opacity: 1;
    padding: var(--spacing-4);
}

.market-pulse-label {
    font-size: var(--text-sm);
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-tight);
    margin: 0;
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    flex-wrap: wrap;
}

.pulse-label-text {
    display: flex;
    align-items: center;
    gap: var(--spacing-1);
    flex-wrap: wrap;
}

.pulse-icon {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: currentColor;
    box-shadow: 
        0 0 0 0 currentColor,
        0 0 0 0 currentColor;
    animation: pulse-ring 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
    flex-shrink: 0;
}

@keyframes pulse-ring {
    0% {
        box-shadow: 
            0 0 0 0 currentColor,
            0 0 0 0 currentColor;
        transform: scale(1);
    }
    50% {
        box-shadow: 
            0 0 0 4px transparent,
            0 0 0 8px transparent;
        transform: scale(1.1);
    }
    100% {
        box-shadow: 
            0 0 0 0 transparent,
            0 0 0 0 transparent;
        transform: scale(1);
    }
}

.pulse-state {
    font-weight: var(--font-weight-bold);
    font-size: var(--text-sm);
    letter-spacing: -0.01em;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 2px 10px;
    border-radius: 999px;
    background: var(--pulse-accent-weak);
    border: 1px solid var(--pulse-accent-border);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
}

/* Pulse color classes - using assigned colors */
.market-pulse-label.pulse-risk_on {
    color: #166534; /* RISK_ON text color */
}

.market-pulse-label.pulse-risk_off {
    color: #991B1B; /* RISK_OFF text color */
}

.market-pulse-label.pulse-rotational {
    color: #1E40AF; /* ROTATIONAL text color */
}

.market-pulse-label.pulse-defensive {
    color: #374151; /* DEFENSIVE text color */
}

.market-pulse-label.pulse-volatile {
    color: #92400E; /* VOLATILE text color */
}

.market-pulse-label.pulse-neutral {
    color: #475569; /* NEUTRAL text color */
}

/* Pulse-specific accents (drives header tint + chip + top bar) */
/* RISK_ON: bg #DCFCE7, text #166534 */
.market-pulse[data-pulse="RISK_ON"] {
    --pulse-accent: #166534;
    --pulse-accent-weak: rgba(220, 252, 231, 0.4); /* #DCFCE7 with opacity */
    --pulse-accent-border: rgba(22, 101, 52, 0.25);
}

/* RISK_OFF: bg #FEE2E2, text #991B1B */
.market-pulse[data-pulse="RISK_OFF"] {
    --pulse-accent: #991B1B;
    --pulse-accent-weak: rgba(254, 226, 226, 0.4); /* #FEE2E2 with opacity */
    --pulse-accent-border: rgba(153, 27, 27, 0.25);
}

/* ROTATIONAL: bg #DBEAFE, text #1E40AF */
.market-pulse[data-pulse="ROTATIONAL"] {
    --pulse-accent: #1E40AF;
    --pulse-accent-weak: rgba(219, 234, 254, 0.4); /* #DBEAFE with opacity */
    --pulse-accent-border: rgba(30, 64, 175, 0.25);
}

/* DEFENSIVE: bg #E5E7EB, text #374151 */
.market-pulse[data-pulse="DEFENSIVE"] {
    --pulse-accent: #374151;
    --pulse-accent-weak: rgba(229, 231, 235, 0.4); /* #E5E7EB with opacity */
    --pulse-accent-border: rgba(55, 65, 81, 0.25);
}

/* VOLATILE: bg #FEF3C7, text #92400E */
.market-pulse[data-pulse="VOLATILE"] {
    --pulse-accent: #92400E;
    --pulse-accent-weak: rgba(254, 243, 199, 0.4); /* #FEF3C7 with opacity */
    --pulse-accent-border: rgba(146, 64, 14, 0.25);
}

/* NEUTRAL: bg #F1F5F9, text #475569 */
.market-pulse[data-pulse="NEUTRAL"] {
    --pulse-accent: #475569;
    --pulse-accent-weak: rgba(241, 245, 249, 0.4); /* #F1F5F9 with opacity */
    --pulse-accent-border: rgba(71, 85, 105, 0.25);
}

/* Low conviction modifier - desaturate */
.market-pulse-label.pulse-low-conviction {
    opacity: 0.7;
    filter: saturate(0.6);
}

.pulse-low-conviction-badge {
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-secondary);
    padding: 4px var(--spacing-2);
    background: linear-gradient(135deg, rgba(0, 0, 0, 0.06) 0%, rgba(0, 0, 0, 0.03) 100%);
    border-radius: var(--radius-full);
    border: 1px solid var(--color-border);
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.05);
}

.market-pulse-timestamp {
    font-size: var(--text-xs);
    color: var(--color-text-tertiary);
    font-weight: var(--font-weight-medium);
    white-space: nowrap;
}

.market-pulse-summary {
    font-size: var(--text-sm);
    line-height: var(--line-height-relaxed);
    color: var(--color-text);
    margin: 0 0 var(--spacing-4) 0;
    padding: var(--spacing-3);
    background:
        linear-gradient(135deg, var(--pulse-accent-weak) 0%, rgba(0, 0, 0, 0.015) 70%);
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border-light);
    border-left: 3px solid var(--pulse-accent);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.65);
}

.market-pulse-signals {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    flex-wrap: wrap;
    margin-bottom: var(--spacing-4);
}

.market-pulse-signal {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-1);
    font-size: var(--text-xs);
    color: var(--color-text);
    padding: var(--spacing-1) var(--spacing-2);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.85) 0%, rgba(0, 0, 0, 0.02) 100%),
        rgba(0, 0, 0, 0.02);
    border-radius: 999px;
    border: 1px solid var(--color-border);
    transition: all 0.2s ease;
    font-weight: var(--font-weight-semibold);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

.market-pulse-signal:hover {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.90) 0%, rgba(0, 0, 0, 0.03) 100%),
        rgba(0, 0, 0, 0.03);
    transform: translateY(-1px);
}

.signal-asset {
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    letter-spacing: 0.02em;
}

.signal-arrow {
    font-size: var(--text-base);
    line-height: 1;
    font-weight: var(--font-weight-bold);
    display: inline-block;
    transition: transform 0.2s ease;
}

.market-pulse-signal:hover .signal-arrow {
    transform: scale(1.2);
}

/* Signal direction colors - muted to match pulse palette */
.market-pulse-signal.signal-up {
    border-color: #4a7c59;
    color: #4a7c59;
}

.market-pulse-signal.signal-up:hover {
    background: rgba(74, 124, 89, 0.1);
    border-color: #4a7c59;
    box-shadow: 
        0 4px 8px rgba(74, 124, 89, 0.15),
        0 2px 4px rgba(74, 124, 89, 0.1);
}

.market-pulse-signal.signal-down {
    border-color: #8b5a5a;
    color: #8b5a5a;
}

.market-pulse-signal.signal-down:hover {
    background: rgba(139, 90, 90, 0.1);
    border-color: #8b5a5a;
    box-shadow: 
        0 4px 8px rgba(139, 90, 90, 0.15),
        0 2px 4px rgba(139, 90, 90, 0.1);
}

.market-pulse-signal.signal-mixed {
    border-color: var(--color-text-secondary);
    color: var(--color-text-secondary);
}

.market-pulse-signal.signal-mixed:hover {
    background: rgba(0, 0, 0, 0.05);
    border-color: var(--color-text);
    color: var(--color-text);
}

/* View Details Toggle Button */
.market-pulse-details-toggle {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2);
    padding: var(--spacing-2) var(--spacing-3);
    background: var(--color-brand);
    border: none;
    border-radius: var(--radius-md);
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    color: white;
    cursor: pointer;
    transition: all 0.2s ease;
    width: 100%;
    justify-content: center;
    margin-top: var(--spacing-3);
    float:right;
    max-width:150px;
}

.market-pulse-details-toggle:hover {
    background: var(--color-brand-dark);
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(103, 78, 153, 0.3);
}

.market-pulse-details-toggle:active {
    transform: translateY(0);
}

.toggle-icon {
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    font-size: var(--text-xs);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.market-pulse-details-toggle[aria-expanded="true"] .toggle-icon {
    transform: rotate(180deg);
}

.toggle-text {
    font-size: var(--text-xs);
}

/* Tooltip Details (Shown on View Details click) */
.market-pulse-tooltip {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(0.95);
    width: 90%;
    max-width: 600px;
    max-height: 80vh;
    overflow-y: auto;
    background: var(--color-surface);
    border: 2px solid var(--color-border);
    border-radius: var(--radius-xl);
    box-shadow: 
        0 20px 60px rgba(0, 0, 0, 0.3),
        0 10px 30px rgba(0, 0, 0, 0.2);
    z-index: 11000; /* Above backdrop + Bootstrap modal (1050) */
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    padding: 0;
}

.market-pulse-tooltip[aria-hidden="false"] {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, -50%) scale(1);
}

.market-pulse-tooltip-backdrop {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(4px);
    z-index: 10900; /* Just under tooltip */
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

.market-pulse-tooltip-backdrop.active {
    opacity: 1;
    visibility: visible;
}

.pulse-details-content {
    padding: var(--spacing-5);
    position: relative;
}

/* =========================================================
   Thematic Investing Pages
   ========================================================= */

.thematic-investing-page,
.thematic-investing-detail-page {
    padding: var(--spacing-6) 0;
}

/* Header */
.thematic-header {
    margin-bottom: var(--spacing-8);
    position: relative;
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.08) 0%, 
        rgba(147, 51, 234, 0.05) 50%,
        rgba(2, 26, 56, 0.03) 100%);
    border: 1.5px solid rgba(103, 78, 153, 0.15);
    border-radius: var(--radius-xl);
    padding: var(--spacing-8) var(--spacing-6);
    box-shadow: 
        0 8px 32px rgba(103, 78, 153, 0.08),
        0 4px 16px rgba(0, 0, 0, 0.04),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    overflow: hidden;
    isolation: isolate;
}

.thematic-header::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, 
        transparent 0%, 
        var(--color-brand) 20%, 
        rgba(147, 51, 234, 0.8) 50%,
        var(--color-brand) 80%, 
        transparent 100%);
    background-size: 200% 100%;
    animation: thematic-header-gradient-shift 4s ease infinite;
    z-index: 1;
}

@keyframes thematic-header-gradient-shift {
    0%, 100% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
}

.thematic-header-bg-elements {
    position: absolute;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
    z-index: 0;
}

.thematic-hero-shape {
    position: absolute;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(103, 78, 153, 0.12), transparent 70%);
    filter: blur(40px);
    animation: thematic-hero-float 10s ease-in-out infinite;
}

.thematic-hero-shape-1 {
    width: 200px;
    height: 200px;
    top: -50px;
    right: 10%;
    animation-delay: 0s;
}

.thematic-hero-shape-2 {
    width: 150px;
    height: 150px;
    bottom: -30px;
    left: 15%;
    animation-delay: 3s;
}

.thematic-hero-shape-3 {
    width: 120px;
    height: 120px;
    top: 50%;
    right: 5%;
    animation-delay: 6s;
}

@keyframes thematic-hero-float {
    0%, 100% {
        transform: translate(0, 0) scale(1);
        opacity: 0.5;
    }
    50% {
        transform: translate(20px, -20px) scale(1.1);
        opacity: 0.7;
    }
}

.thematic-hero-pattern {
    position: absolute;
    inset: 0;
    background-image: 
        radial-gradient(circle at 2px 2px, rgba(103, 78, 153, 0.1) 1px, transparent 0);
    background-size: 40px 40px;
    opacity: 0.3;
    animation: thematic-hero-pattern-move 20s linear infinite;
}

@keyframes thematic-hero-pattern-move {
    0% {
        background-position: 0 0;
    }
    100% {
        background-position: 40px 40px;
    }
}

.thematic-header-content {
    position: relative;
    z-index: 2;
}

.thematic-title-wrapper {
    margin-bottom: var(--spacing-4);
    position: relative;
}

.thematic-page-title {
    font-size: var(--text-5xl);
    font-weight: var(--font-weight-bold);
    letter-spacing: -0.04em;
    margin: 0 0 var(--spacing-3) 0;
    line-height: 1.1;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-1);
}

.thematic-title-line-1,
.thematic-title-line-2 {
    display: block;
    background: linear-gradient(135deg, 
        var(--color-text) 0%, 
        rgba(103, 78, 153, 0.9) 50%,
        var(--color-text) 100%);
    background-size: 200% 100%;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    animation: thematic-title-shimmer 3s ease-in-out infinite;
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.1));
}

.thematic-title-line-2 {
    background: linear-gradient(135deg, 
        var(--color-brand) 0%, 
        rgba(147, 51, 234, 0.9) 50%,
        var(--color-brand) 100%);
    background-size: 200% 100%;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

@keyframes thematic-title-shimmer {
    0%, 100% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
}

.thematic-title-accent {
    width: 80px;
    height: 4px;
    background: linear-gradient(90deg, 
        var(--color-brand) 0%, 
        rgba(147, 51, 234, 0.8) 100%);
    border-radius: 2px;
    margin-top: var(--spacing-2);
    animation: thematic-title-accent-pulse 2s ease-in-out infinite;
}

@keyframes thematic-title-accent-pulse {
    0%, 100% {
        opacity: 1;
        transform: scaleX(1);
    }
    50% {
        opacity: 0.7;
        transform: scaleX(1.1);
    }
}

.thematic-page-intro {
    font-size: var(--text-lg);
    line-height: var(--line-height-relaxed);
    color: var(--color-text-secondary);
    margin: 0 0 var(--spacing-2) 0;
    max-width: 72ch;
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    position: relative;
    padding-left: var(--spacing-1);
}

.thematic-header-icon {
    color: var(--color-brand);
    font-size: var(--text-xl);
    animation: thematic-icon-bounce 2s ease-in-out infinite;
    flex-shrink: 0;
}

@keyframes thematic-icon-bounce {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-4px);
    }
}

.thematic-page-note {
    font-size: var(--text-sm);
    color: var(--color-text-tertiary);
    margin: 0;
    padding-left: var(--spacing-1);
}

/* Section Headers */
.thematic-section {
    margin-bottom: var(--spacing-8);
}

.thematic-section-header {
    margin-bottom: var(--spacing-5);
    padding-bottom: var(--spacing-3);
    border-bottom: 2px solid rgba(103, 78, 153, 0.15);
    position: relative;
}

.thematic-section-header::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 80px;
    height: 3px;
    background: linear-gradient(90deg, 
        var(--color-brand) 0%, 
        rgba(147, 51, 234, 0.8) 100%);
    border-radius: 2px;
    animation: thematic-section-accent-grow 0.6s ease-out;
}

@keyframes thematic-section-accent-grow {
    from {
        width: 0;
    }
    to {
        width: 80px;
    }
}

.thematic-section-title {
    font-size: var(--text-2xl);
    font-weight: var(--font-weight-bold);
    letter-spacing: -0.02em;
    margin: 0 0 var(--spacing-1) 0;
    color: var(--color-text);
    background: linear-gradient(135deg, 
        var(--color-text) 0%, 
        rgba(103, 78, 153, 0.8) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.thematic-section-subtitle {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    margin: 0;
}

/* Top Performing Themes */
.thematic-top-performing-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--spacing-4);
}

@media (min-width: 768px) {
    .thematic-top-performing-list {
        grid-template-columns: repeat(2, 1fr);
    }
}

.thematic-top-card {
    display: block;
    background: linear-gradient(135deg, 
        var(--color-surface) 0%, 
        rgba(255, 255, 255, 0.98) 50%,
        rgba(103, 78, 153, 0.02) 100%);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-xl);
    padding: var(--spacing-6);
    text-decoration: none;
    color: inherit;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 
        0 4px 16px rgba(0, 0, 0, 0.06),
        0 2px 8px rgba(0, 0, 0, 0.04),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    position: relative;
    overflow: hidden;
    isolation: isolate;
    animation: thematic-card-entrance 0.5s ease-out backwards;
}

.thematic-top-card:nth-child(1) { animation-delay: 0.1s; }
.thematic-top-card:nth-child(2) { animation-delay: 0.2s; }
.thematic-top-card:nth-child(3) { animation-delay: 0.3s; }
.thematic-top-card:nth-child(4) { animation-delay: 0.4s; }
.thematic-top-card:nth-child(n+5) { animation-delay: 0.5s; }

@keyframes thematic-card-entrance {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.thematic-top-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, 
        transparent 0%, 
        var(--color-brand) 20%, 
        var(--color-brand) 80%, 
        transparent 100%);
    opacity: 0;
    transition: opacity 0.3s ease, height 0.3s ease;
    z-index: 1;
}

.thematic-top-card::after {
    content: '';
    position: absolute;
    top: -50%;
    right: -10%;
    width: 200px;
    height: 200px;
    background: radial-gradient(circle, 
        rgba(103, 78, 153, 0.08) 0%, 
        transparent 70%);
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
    z-index: 0;
}

.thematic-top-card:hover {
    transform: translateY(-6px) scale(1.01);
    box-shadow: 
        0 12px 32px rgba(103, 78, 153, 0.15),
        0 6px 16px rgba(0, 0, 0, 0.1),
        0 0 0 1px rgba(103, 78, 153, 0.1),
        inset 0 1px 0 rgba(255, 255, 255, 0.95);
    border-color: rgba(103, 78, 153, 0.4);
    background: linear-gradient(135deg, 
        rgba(255, 255, 255, 1) 0%, 
        rgba(255, 255, 255, 0.98) 50%,
        rgba(103, 78, 153, 0.04) 100%);
    text-decoration: none;
}

.thematic-top-card:hover::before {
    opacity: 0.8;
    height: 4px;
}

.thematic-top-card:hover::after {
    opacity: 1;
}

.thematic-top-card-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: var(--spacing-4);
    gap: var(--spacing-3);
}

.thematic-top-card-content {
    flex: 1;
}

.thematic-top-card-title {
    font-size: var(--text-xl);
    font-weight: var(--font-weight-bold);
    margin: 0 0 var(--spacing-1) 0;
    color: var(--color-text);
    position: relative;
    z-index: 2;
    transition: color 0.2s ease;
}

.thematic-top-card:hover .thematic-top-card-title {
    background: linear-gradient(135deg, 
        var(--color-text) 0%, 
        rgba(103, 78, 153, 0.9) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.thematic-top-card-meta {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    margin: 0;
}

.thematic-top-card-performance {
    flex-shrink: 0;
    text-align: right;
}

.thematic-performance-value {
    font-size: var(--text-lg);
    font-weight: var(--font-weight-bold);
    display: block;
}

.thematic-performance-value.positive {
    color: #16a34a;
}

.thematic-performance-value.negative {
    color: #dc2626;
}

.thematic-performance-label {
    font-size: var(--text-xs);
    color: var(--color-text-tertiary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.thematic-badge-updating {
    display: inline-block;
    padding: var(--spacing-1) var(--spacing-3);
    background: var(--color-surface-2);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    font-size: var(--text-xs);
    color: var(--color-text-secondary);
}

.thematic-top-card-preview {
    margin-top: var(--spacing-4);
}

.thematic-preview-table {
    width: 100%;
    font-size: var(--text-sm);
    border-collapse: collapse;
}

.thematic-preview-table thead {
    border-bottom: 1px solid var(--color-border);
}

.thematic-preview-table th {
    text-align: left;
    padding: var(--spacing-2) var(--spacing-2) var(--spacing-2) 0;
    font-weight: var(--font-weight-semibold);
    font-size: var(--text-xs);
    color: var(--color-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.thematic-preview-table td {
    padding: var(--spacing-2) var(--spacing-2) var(--spacing-2) 0;
    color: var(--color-text);
}

.thematic-preview-table tbody tr:not(:last-child) {
    border-bottom: 1px solid var(--color-border-light);
}

/* Category Grid */
.thematic-category-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: var(--spacing-3);
}

@media (min-width: 768px) {
    .thematic-category-grid {
        grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    }
}

.thematic-category-card {
    display: block;
    background: linear-gradient(135deg, 
        var(--color-surface) 0%, 
        rgba(255, 255, 255, 0.98) 100%);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: var(--spacing-4);
    text-decoration: none;
    color: inherit;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 
        0 2px 8px rgba(0, 0, 0, 0.04),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    position: relative;
    overflow: hidden;
}

.thematic-category-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 3px;
    height: 100%;
    background: linear-gradient(180deg, 
        var(--color-brand) 0%, 
        rgba(147, 51, 234, 0.8) 100%);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.thematic-category-card:hover {
    transform: translateY(-3px);
    box-shadow: 
        0 6px 20px rgba(103, 78, 153, 0.15),
        0 2px 8px rgba(0, 0, 0, 0.08);
    border-color: rgba(103, 78, 153, 0.4);
    background: linear-gradient(135deg, 
        rgba(255, 255, 255, 1) 0%, 
        rgba(255, 255, 255, 0.98) 100%);
    text-decoration: none;
}

.thematic-category-card:hover::before {
    opacity: 1;
}

.thematic-category-card-header {
    margin-bottom: var(--spacing-3);
}

.thematic-category-card-title {
    font-size: var(--text-base);
    font-weight: var(--font-weight-semibold);
    margin: 0 0 var(--spacing-1) 0;
    color: var(--color-text);
}

.thematic-category-card-count {
    font-size: var(--text-xs);
    color: var(--color-text-secondary);
}

.thematic-category-card-performance {
    display: flex;
    align-items: baseline;
    gap: var(--spacing-2);
}

/* Explore More */
.thematic-explore-list {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-2);
}

.thematic-explore-chip {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2);
    padding: var(--spacing-2) var(--spacing-4);
    background: linear-gradient(135deg, 
        var(--color-surface) 0%, 
        rgba(255, 255, 255, 0.98) 100%);
    border: 1.5px solid var(--color-border);
    border-radius: 999px;
    text-decoration: none;
    color: var(--color-text);
    font-size: var(--text-sm);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04);
    position: relative;
    overflow: hidden;
}

.thematic-explore-chip::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, 
        transparent 0%, 
        rgba(103, 78, 153, 0.1) 50%,
        transparent 100%);
    transition: left 0.5s ease;
}

.thematic-explore-chip:hover {
    background: linear-gradient(135deg, 
        var(--color-brand) 0%, 
        rgba(147, 51, 234, 0.9) 100%);
    color: white;
    border-color: var(--color-brand);
    text-decoration: none;
    transform: translateY(-2px);
    box-shadow: 
        0 4px 12px rgba(103, 78, 153, 0.25),
        0 2px 6px rgba(0, 0, 0, 0.1);
}

.thematic-explore-chip:hover::before {
    left: 100%;
}

.thematic-explore-count {
    font-size: var(--text-xs);
    color: var(--color-text-tertiary);
    background: var(--color-surface-2);
    padding: 2px 6px;
    border-radius: 999px;
}

.thematic-explore-chip:hover .thematic-explore-count {
    background: rgba(255, 255, 255, 0.2);
    color: white;
}

/* FAQ Section */
.thematic-faq-section {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-xl);
    padding: var(--spacing-6);
}

.thematic-faq-list {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-5);
}

.thematic-faq-item {
    padding-bottom: var(--spacing-5);
    border-bottom: 1px solid var(--color-border-light);
}

.thematic-faq-item:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.thematic-faq-question {
    font-size: var(--text-lg);
    font-weight: var(--font-weight-semibold);
    margin: 0 0 var(--spacing-2) 0;
    color: var(--color-text);
}

.thematic-faq-answer {
    font-size: var(--text-base);
    line-height: var(--line-height-relaxed);
    color: var(--color-text-secondary);
    margin: 0;
}

/* Detail Page Layout */
.thematic-detail-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--spacing-6);
}

@media (min-width: 1024px) {
    .thematic-detail-layout {
        grid-template-columns: 1fr 320px;
    }
}

.thematic-detail-main {
    min-width: 0;
}

.thematic-detail-sidebar {
    min-width: 0;
}

/* Sidebar Card */
.thematic-sidebar-card {
    background: linear-gradient(135deg, 
        var(--color-surface) 0%, 
        rgba(255, 255, 255, 0.98) 50%,
        rgba(103, 78, 153, 0.02) 100%);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-xl);
    padding: var(--spacing-5);
    box-shadow: 
        0 4px 16px rgba(0, 0, 0, 0.06),
        0 2px 8px rgba(0, 0, 0, 0.04),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    position: sticky;
    top: var(--spacing-6);
    max-height: calc(100vh - var(--spacing-12));
    overflow-y: auto;
}

.thematic-sidebar-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, 
        transparent 0%, 
        var(--color-brand) 20%, 
        var(--color-brand) 80%, 
        transparent 100%);
    opacity: 0.6;
    border-radius: var(--radius-xl) var(--radius-xl) 0 0;
}

.thematic-sidebar-header {
    margin-bottom: var(--spacing-4);
    padding-bottom: var(--spacing-3);
    border-bottom: 2px solid rgba(103, 78, 153, 0.15);
    position: relative;
}

.thematic-sidebar-header::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 60px;
    height: 2px;
    background: linear-gradient(90deg, 
        var(--color-brand) 0%, 
        rgba(147, 51, 234, 0.8) 100%);
    border-radius: 2px;
}

.thematic-sidebar-title {
    font-size: var(--text-lg);
    font-weight: var(--font-weight-bold);
    margin: 0;
    color: var(--color-text);
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
}

.thematic-sidebar-title i {
    color: var(--color-brand);
    font-size: var(--text-xl);
}

.thematic-sidebar-list {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-2);
}

.thematic-sidebar-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-3);
    padding: var(--spacing-3);
    background: linear-gradient(135deg, 
        var(--color-surface-2) 0%, 
        rgba(255, 255, 255, 0.98) 100%);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    text-decoration: none;
    color: inherit;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
    position: relative;
    overflow: hidden;
}

.thematic-sidebar-item::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 3px;
    height: 100%;
    background: linear-gradient(180deg, 
        var(--color-brand) 0%, 
        rgba(147, 51, 234, 0.8) 100%);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.thematic-sidebar-item:hover {
    transform: translateX(4px);
    box-shadow: 
        0 4px 12px rgba(103, 78, 153, 0.15),
        0 2px 6px rgba(0, 0, 0, 0.08);
    border-color: rgba(103, 78, 153, 0.4);
    background: linear-gradient(135deg, 
        rgba(255, 255, 255, 1) 0%, 
        rgba(255, 255, 255, 0.98) 100%);
    text-decoration: none;
}

.thematic-sidebar-item:hover::before {
    opacity: 1;
}

.thematic-sidebar-item.active {
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.08) 0%, 
        rgba(147, 51, 234, 0.05) 100%);
    border-color: rgba(103, 78, 153, 0.3);
}

.thematic-sidebar-item.active::before {
    opacity: 1;
}

.thematic-sidebar-item-rank {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.15) 0%, 
        rgba(147, 51, 234, 0.12) 100%);
    color: var(--color-brand);
    font-weight: var(--font-weight-bold);
    font-size: var(--text-sm);
    border-radius: var(--radius-sm);
    border: 1px solid rgba(103, 78, 153, 0.2);
}

.thematic-sidebar-item:hover .thematic-sidebar-item-rank {
    background: linear-gradient(135deg, 
        var(--color-brand) 0%, 
        rgba(147, 51, 234, 0.9) 100%);
    color: white;
    border-color: var(--color-brand);
}

.thematic-sidebar-item-content {
    flex: 1;
    min-width: 0;
}

.thematic-sidebar-item-name {
    font-size: var(--text-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
    margin-bottom: var(--spacing-1);
    line-height: 1.4;
}

.thematic-sidebar-item:hover .thematic-sidebar-item-name {
    color: var(--color-brand);
}

.thematic-sidebar-item-performance {
    display: flex;
    align-items: center;
    gap: var(--spacing-1);
}

.thematic-sidebar-performance-value {
    font-size: var(--text-sm);
    font-weight: var(--font-weight-bold);
}

.thematic-sidebar-performance-value.positive {
    color: #16a34a;
}

.thematic-sidebar-performance-value.negative {
    color: #dc2626;
}

.thematic-sidebar-performance-label {
    font-size: var(--text-xs);
    color: var(--color-text-tertiary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.thematic-sidebar-item-arrow {
    flex-shrink: 0;
    color: var(--color-text-tertiary);
    transition: all 0.3s ease;
}

.thematic-sidebar-item:hover .thematic-sidebar-item-arrow {
    color: var(--color-brand);
    transform: translateX(4px);
}

/* Detail Page */
.thematic-detail-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--spacing-4);
    margin-bottom: var(--spacing-6);
    flex-wrap: wrap;
    position: relative;
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.08) 0%, 
        rgba(147, 51, 234, 0.05) 50%,
        rgba(2, 26, 56, 0.03) 100%);
    border: 1.5px solid rgba(103, 78, 153, 0.15);
    border-radius: var(--radius-xl);
    padding: var(--spacing-6);
    box-shadow: 
        0 8px 32px rgba(103, 78, 153, 0.08),
        0 4px 16px rgba(0, 0, 0, 0.04),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    overflow: hidden;
    isolation: isolate;
}

.thematic-detail-header::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, 
        transparent 0%, 
        var(--color-brand) 20%, 
        rgba(147, 51, 234, 0.8) 50%,
        var(--color-brand) 80%, 
        transparent 100%);
    background-size: 200% 100%;
    animation: thematic-header-gradient-shift 4s ease infinite;
    z-index: 1;
}

.thematic-detail-header-bg-elements {
    position: absolute;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
    z-index: 0;
}

.thematic-detail-header-content {
    flex: 1;
    min-width: 0;
    position: relative;
    z-index: 2;
}

.thematic-detail-title-wrapper {
    margin-bottom: var(--spacing-3);
    position: relative;
}

.thematic-detail-title {
    font-size: var(--text-4xl);
    font-weight: var(--font-weight-bold);
    letter-spacing: -0.04em;
    margin: 0 0 var(--spacing-3) 0;
    color: var(--color-text);
    background: linear-gradient(135deg, 
        var(--color-text) 0%, 
        rgba(103, 78, 153, 0.9) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.1));
}

.thematic-detail-title-accent {
    width: 80px;
    height: 4px;
    background: linear-gradient(90deg, 
        var(--color-brand) 0%, 
        rgba(147, 51, 234, 0.8) 100%);
    border-radius: 2px;
    margin-top: var(--spacing-2);
    animation: thematic-title-accent-pulse 2s ease-in-out infinite;
}

.thematic-detail-meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-4);
    align-items: center;
}

.thematic-detail-meta-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
}

.thematic-detail-meta-item .positive {
    color: #16a34a;
    font-weight: var(--font-weight-semibold);
}

.thematic-detail-meta-item .negative {
    color: #dc2626;
    font-weight: var(--font-weight-semibold);
}

.thematic-detail-actions {
    flex-shrink: 0;
}

.thematic-detail-description {
    margin-bottom: var(--spacing-6);
    padding: var(--spacing-5);
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
}

.thematic-detail-image {
    margin-bottom: var(--spacing-4);
}

.thematic-detail-image img {
    width: 100%;
    max-width: 800px;
    height: auto;
    border-radius: var(--radius-md);
}

.thematic-detail-description-text {
    font-size: var(--text-base);
    line-height: var(--line-height-relaxed);
    color: var(--color-text);
}

/* Performance Panel */
.thematic-performance-panel {
    background: linear-gradient(135deg, 
        var(--color-surface) 0%, 
        rgba(255, 255, 255, 0.98) 50%,
        rgba(103, 78, 153, 0.02) 100%);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-xl);
    padding: var(--spacing-6);
    margin-bottom: var(--spacing-6);
    box-shadow: 
        0 4px 16px rgba(0, 0, 0, 0.06),
        0 2px 8px rgba(0, 0, 0, 0.04),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    position: relative;
    overflow: hidden;
}

.thematic-performance-panel::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, 
        transparent 0%, 
        var(--color-brand) 20%, 
        var(--color-brand) 80%, 
        transparent 100%);
    opacity: 0.6;
}

.thematic-performance-panel-header {
    margin-bottom: var(--spacing-4);
    padding-bottom: var(--spacing-3);
    border-bottom: 1px solid var(--color-border-light);
}

.thematic-performance-panel-title {
    font-size: var(--text-xl);
    font-weight: var(--font-weight-bold);
    margin: 0 0 var(--spacing-1) 0;
    color: var(--color-text);
}

.thematic-performance-panel-note {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    margin: 0;
}

.thematic-performance-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: var(--spacing-4);
}

.thematic-performance-metric {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-1);
    padding: var(--spacing-3);
    background: rgba(103, 78, 153, 0.03);
    border-radius: var(--radius-md);
    border: 1px solid rgba(103, 78, 153, 0.1);
    transition: all 0.2s ease;
}

.thematic-performance-metric:hover {
    background: rgba(103, 78, 153, 0.06);
    border-color: rgba(103, 78, 153, 0.2);
    transform: translateY(-2px);
}

.thematic-performance-metric-label {
    font-size: var(--text-xs);
    color: var(--color-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: var(--font-weight-semibold);
}

.thematic-performance-metric-value {
    font-size: var(--text-2xl);
    font-weight: var(--font-weight-bold);
    line-height: 1.2;
}

.thematic-performance-metric-value.positive {
    color: #16a34a;
}

.thematic-performance-metric-value.negative {
    color: #dc2626;
}

/* Constituents Table */
.thematic-constituents-section {
    margin-bottom: var(--spacing-6);
}

.thematic-table-wrapper {
    overflow-x: auto;
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg, 
        var(--color-surface) 0%, 
        rgba(255, 255, 255, 0.98) 100%);
    box-shadow: 
        0 4px 16px rgba(0, 0, 0, 0.06),
        0 2px 8px rgba(0, 0, 0, 0.04);
    position: relative;
}

.thematic-table-wrapper::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, 
        transparent 0%, 
        var(--color-brand) 20%, 
        var(--color-brand) 80%, 
        transparent 100%);
    opacity: 0.5;
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
}

.thematic-constituents-table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--text-sm);
}

.thematic-constituents-table thead {
    background: var(--color-surface-2);
    border-bottom: 2px solid var(--color-border);
}

.thematic-constituents-table th {
    padding: var(--spacing-3) var(--spacing-4);
    text-align: left;
    font-weight: var(--font-weight-semibold);
    font-size: var(--text-xs);
    color: var(--color-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    white-space: nowrap;
    user-select: none;
}

.thematic-constituents-table th[data-sort] {
    cursor: pointer;
    transition: background-color 0.2s ease;
}

.thematic-constituents-table th[data-sort]:hover {
    background: var(--color-surface);
}

.thematic-constituents-table th.sort-asc::after {
    content: ' ▲';
    font-size: 0.7em;
    opacity: 0.6;
}

.thematic-constituents-table th.sort-desc::after {
    content: ' ▼';
    font-size: 0.7em;
    opacity: 0.6;
}

.thematic-constituents-table tbody tr {
    border-bottom: 1px solid var(--color-border-light);
    transition: background-color 0.15s ease;
}

.thematic-constituents-table tbody tr:hover {
    background: var(--color-surface-2);
}

.thematic-constituents-table td {
    padding: var(--spacing-3) var(--spacing-4);
    color: var(--color-text);
}

.thematic-ticker-link {
    color: var(--color-text);
    text-decoration: none;
    font-weight: var(--font-weight-semibold);
    transition: color 0.2s ease;
}

.thematic-ticker-link:hover {
    color: var(--color-brand);
    text-decoration: underline;
}

.thematic-constituents-table td.positive {
    color: #16a34a;
    font-weight: var(--font-weight-semibold);
}

.thematic-constituents-table td.negative {
    color: #dc2626;
    font-weight: var(--font-weight-semibold);
}

.thematic-empty-state {
    padding: var(--spacing-8);
    text-align: center;
    color: var(--color-text-secondary);
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
}

/* Logo Styling */
.thematic-preview-ticker-cell,
.thematic-constituent-ticker-cell {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
}

.thematic-preview-logo,
.thematic-constituent-logo {
    width: 24px;
    height: 24px;
    border-radius: var(--radius-sm);
    object-fit: contain;
    background: var(--color-surface-2);
    flex-shrink: 0;
}

.thematic-constituent-logo {
    width: 28px;
    height: 28px;
}

.thematic-logo-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.15) 0%, 
        rgba(147, 51, 234, 0.12) 100%);
    color: var(--color-brand);
    font-weight: var(--font-weight-bold);
    font-size: var(--text-xs);
    border: 1px solid rgba(103, 78, 153, 0.2);
}

.thematic-preview-logo.thematic-logo-placeholder {
    font-size: 10px;
}

.thematic-constituent-logo.thematic-logo-placeholder {
    font-size: 12px;
}

.pulse-details-content::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, 
        transparent 0%, 
        var(--color-brand) 50%, 
        transparent 100%);
    border-radius: var(--radius-xl) var(--radius-xl) 0 0;
}

.pulse-details-content {
    font-size: var(--text-sm);
    line-height: var(--line-height-relaxed);
}

.tooltip-section {
    margin-bottom: var(--spacing-4);
}

.tooltip-section:last-child {
    margin-bottom: 0;
}

.tooltip-section strong {
    display: block;
    margin-bottom: var(--spacing-3);
    color: var(--color-text);
    font-weight: var(--font-weight-bold);
    font-size: var(--text-sm);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding-bottom: var(--spacing-2);
    border-bottom: 1px solid var(--color-border);
}

.tooltip-section ul {
    margin: 0;
    padding-left: var(--spacing-4);
    list-style: none;
}

.tooltip-section li {
    margin-bottom: var(--spacing-2);
    color: var(--color-text);
    line-height: var(--line-height-relaxed);
    padding-left: var(--spacing-3);
    position: relative;
    font-size: var(--text-sm);
}

.tooltip-section li::before {
    content: '•';
    position: absolute;
    left: 0;
    color: var(--color-brand);
    font-weight: var(--font-weight-bold);
}

.tooltip-section li:last-child {
    margin-bottom: 0;
}

.tooltip-section li strong {
    display: inline;
    margin: 0;
    text-transform: none;
    letter-spacing: normal;
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
}

/* Mobile adjustments */
@media (max-width: 767px) {
    .market-pulse-header-compact {
        padding: var(--spacing-2) var(--spacing-3);
    }
    
    .market-pulse-label {
        font-size: var(--text-xs);
    }
    
    .pulse-state {
        font-size: var(--text-xs);
    }
    
    .pulse-icon {
        width: 8px;
        height: 8px;
    }
    
    .market-pulse-timestamp {
        font-size: 10px;
    }
    
    .market-pulse-content[aria-hidden="false"] {
        padding: var(--spacing-3);
    }
    
    .market-pulse-summary {
        padding: var(--spacing-2);
        font-size: var(--text-xs);
        margin-bottom: var(--spacing-3);
    }
    
    .market-pulse-signals {
        gap: var(--spacing-1);
        margin-bottom: var(--spacing-3);
    }
    
    .market-pulse-signal {
        padding: 3px var(--spacing-2);
        font-size: 10px;
    }
    
    .market-pulse-details-toggle {
        padding: var(--spacing-2) var(--spacing-3);
        font-size: 10px;
    }
    
    .market-pulse-tooltip {
        width: 95%;
        max-height: 85vh;
        border-radius: var(--radius-lg);
    }
    
    .pulse-details-content {
        padding: var(--spacing-4);
    }
    
    .tooltip-section li {
        font-size: var(--text-xs);
    }
}

.technical-badge-bullish {
    background: linear-gradient(135deg, 
        var(--color-success) 0%, 
        rgba(16, 185, 129, 0.9) 100%);
    color: #ffffff;
    border: 1.5px solid rgba(16, 185, 129, 0.3);
    box-shadow: 
        0 2px 6px rgba(0, 0, 0, 0.1),
        0 1px 3px rgba(0, 0, 0, 0.06);
    transition: all 0.3s ease;
}

.technical-badge-bullish:hover {
    transform: translateY(-2px) scale(1.05);
    box-shadow: 
        0 4px 12px rgba(0, 0, 0, 0.15),
        0 2px 6px rgba(0, 0, 0, 0.1);
}

.technical-badge-bearish {
    background: linear-gradient(135deg, 
        var(--color-danger) 0%, 
        rgba(239, 68, 68, 0.9) 100%);
    color: #ffffff;
    border: 1.5px solid rgba(239, 68, 68, 0.3);
    box-shadow: 
        0 2px 6px rgba(0, 0, 0, 0.1),
        0 1px 3px rgba(0, 0, 0, 0.06);
    transition: all 0.3s ease;
}

.technical-badge-bearish:hover {
    transform: translateY(-2px) scale(1.05);
    box-shadow: 
        0 4px 12px rgba(0, 0, 0, 0.15),
        0 2px 6px rgba(0, 0, 0, 0.1);
}

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

/* =========================================================
   Contact Page Styles
   ========================================================= */

.contact-page-content {
    max-width: 800px;
    margin: 0 auto;
    width: 100%;
}

.contact-form-wrapper {
    width: 100%;
}

/* Bootstrap Grid Support - Only apply custom styles if Bootstrap isn't loaded */
/* Note: Bootstrap 5 uses margin-based gutters, so we need to be careful not to override */
/* The custom row styles below are scoped to contact-page-content to avoid conflicts */

.contact-page-content .row {
    display: flex;
    flex-wrap: wrap;
    margin-left: calc(-1 * var(--spacing-3));
    margin-right: calc(-1 * var(--spacing-3));
}

.contact-page-content .row > * {
    padding-left: var(--spacing-3);
    padding-right: var(--spacing-3);
}

.contact-page-content .col-lg-8 {
    flex: 0 0 auto;
    width: 100%;
}

@media (min-width: 992px) {
    .contact-page-content .col-lg-8 {
        width: 66.66666667%;
    }
}

.mx-auto {
    margin-left: auto;
    margin-right: auto;
}

.contact-success-message,
.contact-error-message {
    padding: var(--spacing-6) var(--spacing-5);
    border-radius: var(--radius-xl);
    margin-bottom: var(--spacing-6);
    text-align: center;
    position: relative;
    overflow: hidden;
}

.contact-success-message {
    background: linear-gradient(135deg, 
        rgba(16, 185, 129, 0.1) 0%, 
        rgba(16, 185, 129, 0.05) 50%,
        rgba(255, 255, 255, 0.95) 100%);
    border: 2px solid rgba(16, 185, 129, 0.3);
    box-shadow: 
        0 4px 16px rgba(16, 185, 129, 0.15),
        0 2px 8px rgba(0, 0, 0, 0.05);
}

.contact-error-message {
    background: linear-gradient(135deg, 
        rgba(239, 68, 68, 0.1) 0%, 
        rgba(239, 68, 68, 0.05) 50%,
        rgba(255, 255, 255, 0.95) 100%);
    border: 2px solid rgba(239, 68, 68, 0.3);
    box-shadow: 
        0 4px 16px rgba(239, 68, 68, 0.15),
        0 2px 8px rgba(0, 0, 0, 0.05);
}

.contact-success-icon,
.contact-error-icon {
    font-size: 3rem;
    margin-bottom: var(--spacing-3);
}

.contact-success-icon {
    color: #10b981;
}

.contact-error-icon {
    color: #ef4444;
}

.contact-success-message h3 {
    font-size: var(--text-2xl);
    font-weight: var(--font-weight-bold);
    margin-bottom: var(--spacing-2);
    color: var(--color-text);
}

.contact-success-message p,
.contact-error-message p {
    color: var(--color-text-secondary);
    font-size: var(--text-base);
    margin: 0;
}

.contact-form-card {
    background: linear-gradient(135deg, 
        #ffffff 0%, 
        rgba(255, 255, 255, 0.98) 50%,
        rgba(103, 78, 153, 0.02) 100%);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-xl);
    padding: var(--spacing-8) var(--spacing-6);
    box-shadow: 
        0 4px 16px rgba(0, 0, 0, 0.06),
        0 2px 8px rgba(0, 0, 0, 0.04),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    position: relative;
    overflow: hidden;
    margin-bottom: var(--spacing-8);
    width: 100%;
    box-sizing: border-box;
}

.contact-form-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, 
        transparent 0%, 
        var(--color-brand) 20%, 
        var(--color-brand) 80%, 
        transparent 100%);
    opacity: 0.7;
    z-index: 1;
}

.contact-form-card::after {
    content: '';
    position: absolute;
    top: -50%;
    right: -10%;
    width: 400px;
    height: 400px;
    background: radial-gradient(circle, 
        rgba(103, 78, 153, 0.04) 0%, 
        transparent 70%);
    opacity: 0.5;
    pointer-events: none;
    z-index: 0;
}

.contact-form {
    position: relative;
    z-index: 2;
}

.contact-form-group {
    margin-bottom: var(--spacing-5);
}

.contact-form-label {
    display: block;
    font-weight: var(--font-weight-semibold);
    font-size: var(--text-sm);
    color: var(--color-text);
    margin-bottom: var(--spacing-2);
    letter-spacing: -0.01em;
}

.contact-form-label .required {
    color: #ef4444;
    margin-left: 2px;
}

.contact-form-input,
.contact-form-textarea {
    width: 100%;
    padding: var(--spacing-3) var(--spacing-4);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    font-size: var(--text-base);
    font-family: inherit;
    color: var(--color-text);
    background: linear-gradient(135deg, 
        rgba(255, 255, 255, 0.98) 0%, 
        rgba(255, 255, 255, 0.95) 100%);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 
        0 2px 4px rgba(0, 0, 0, 0.04),
        inset 0 1px 2px rgba(0, 0, 0, 0.02);
    box-sizing: border-box;
    display: block;
}

.contact-form-input:focus,
.contact-form-textarea:focus {
    outline: none;
    border-color: var(--color-brand);
    background: #ffffff;
    box-shadow: 
        0 4px 12px rgba(103, 78, 153, 0.15),
        0 2px 6px rgba(0, 0, 0, 0.08),
        inset 0 1px 2px rgba(0, 0, 0, 0.02);
    transform: translateY(-1px);
}

.contact-form-input.is-invalid,
.contact-form-textarea.is-invalid {
    border-color: #ef4444;
    background: linear-gradient(135deg, 
        rgba(239, 68, 68, 0.05) 0%, 
        rgba(255, 255, 255, 0.95) 100%);
}

.contact-form-textarea {
    resize: vertical;
    min-height: 150px;
    line-height: var(--line-height-relaxed);
}

.contact-form-error {
    margin-top: var(--spacing-1);
    font-size: var(--text-sm);
    color: #ef4444;
    font-weight: var(--font-weight-medium);
}

.contact-form-actions {
    margin-top: var(--spacing-6);
    display: flex;
    justify-content: flex-end;
}

.contact-form-submit {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2);
    padding: var(--spacing-4) var(--spacing-6);
    border-radius: var(--radius-lg);
    font-weight: var(--font-weight-semibold);
    font-size: var(--text-base);
    border: none;
    background: linear-gradient(135deg, 
        var(--color-brand) 0%, 
        rgba(103, 78, 153, 0.9) 100%);
    color: #ffffff;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 
        0 4px 16px rgba(103, 78, 153, 0.3),
        0 2px 8px rgba(0, 0, 0, 0.1);
    position: relative;
    overflow: hidden;
}

.contact-form-submit::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.9) 0%, 
        var(--color-brand) 100%);
    opacity: 0;
    transition: opacity 0.3s ease;
    z-index: 0;
}

.contact-form-submit span,
.contact-form-submit i {
    position: relative;
    z-index: 1;
}

.contact-form-submit:hover {
    transform: translateY(-2px);
    box-shadow: 
        0 8px 24px rgba(103, 78, 153, 0.4),
        0 4px 12px rgba(0, 0, 0, 0.15);
}

.contact-form-submit:hover::before {
    opacity: 1;
}

.contact-form-submit i {
    transition: transform 0.3s ease;
}

.contact-form-submit:hover i {
    transform: translateX(4px);
}

.contact-form-submit:active {
    transform: translateY(0);
}

.contact-info-card {
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.05) 0%, 
        rgba(103, 78, 153, 0.02) 50%,
        rgba(255, 255, 255, 0.95) 100%);
    border: 1.5px solid rgba(103, 78, 153, 0.2);
    border-left: 4px solid var(--color-brand);
    border-radius: var(--radius-xl);
    padding: var(--spacing-6) var(--spacing-6);
    box-shadow: 
        0 4px 16px rgba(103, 78, 153, 0.1),
        0 2px 8px rgba(0, 0, 0, 0.05),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    position: relative;
    overflow: hidden;
}

.contact-info-title {
    font-size: var(--text-xl);
    font-weight: var(--font-weight-bold);
    letter-spacing: -0.02em;
    margin-bottom: var(--spacing-5);
    background: linear-gradient(135deg, 
        var(--color-text) 0%, 
        rgba(103, 78, 153, 0.9) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.contact-info-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: var(--spacing-5);
}

.contact-info-item {
    display: flex;
    gap: var(--spacing-4);
    align-items: flex-start;
}

.contact-info-icon {
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, 
        var(--color-brand) 0%, 
        rgba(103, 78, 153, 0.9) 100%);
    border-radius: var(--radius-md);
    color: #ffffff;
    font-size: var(--text-xl);
    flex-shrink: 0;
    box-shadow: 
        0 4px 12px rgba(103, 78, 153, 0.3),
        0 2px 6px rgba(0, 0, 0, 0.1);
}

.contact-info-content h4 {
    font-size: var(--text-base);
    font-weight: var(--font-weight-semibold);
    margin-bottom: var(--spacing-1);
    color: var(--color-text);
}

.contact-info-content p {
    color: var(--color-text-secondary);
    font-size: var(--text-sm);
    margin: 0;
    line-height: var(--line-height-relaxed);
}

.contact-info-content a {
    color: var(--color-brand);
    text-decoration: none;
    font-weight: var(--font-weight-medium);
    border-bottom: 1.5px solid rgba(103, 78, 153, 0.3);
    transition: all 0.3s ease;
}

.contact-info-content a:hover {
    color: var(--color-brand-dark);
    border-bottom-color: var(--color-brand);
    background: linear-gradient(90deg, 
        rgba(103, 78, 153, 0.05) 0%, 
        transparent 100%);
    padding: var(--spacing-1) var(--spacing-2);
    margin: calc(-1 * var(--spacing-1)) calc(-1 * var(--spacing-2));
    border-radius: var(--radius-sm);
}

@media (max-width: 767px) {
    .contact-form-card {
        padding: var(--spacing-6) var(--spacing-4);
    }
    
    .contact-info-card {
        padding: var(--spacing-5) var(--spacing-4);
    }
    
    .contact-info-grid {
        grid-template-columns: 1fr;
    }
    
    .contact-form-actions {
        justify-content: stretch;
    }
    
    .contact-form-submit {
        width: 100%;
        justify-content: center;
    }
}

/* =========================================================
   Smart Market Screener Styles
   ========================================================= */

.smart-screener-page {
    padding: var(--spacing-8) 0;
    min-height: calc(100vh - 200px);
    background: linear-gradient(180deg, 
        rgba(103, 78, 153, 0.02) 0%, 
        transparent 15%,
        transparent 85%,
        rgba(103, 78, 153, 0.02) 100%);
}

.smart-screener-how-link {
    display: inline-block;
    margin-top: var(--spacing-3);
    font-size: var(--text-sm);
    color: var(--color-brand);
    text-decoration: none;
    transition: color 0.3s ease;
}

.smart-screener-how-link:hover {
    color: rgba(103, 78, 153, 0.8);
    text-decoration: underline;
}

.smart-screener-layout {
    display: grid;
    grid-template-columns: 320px 1fr;
    gap: var(--spacing-6);
    margin-top: var(--spacing-8);
}

/* When results exist, show full-width results with sidebar at bottom */
.smart-screener-layout.has-results {
    grid-template-columns: 1fr;
    grid-template-rows: 1fr auto;
}

.smart-screener-layout.has-results .smart-screener-sidebar {
    order: 2;
    margin-top: var(--spacing-8);
}

.smart-screener-layout.has-results .smart-screener-results {
    order: 1;
}

.smart-screener-layout.has-results .smart-screener-presets-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: var(--spacing-4);
}

/* Single screener page (preset /custom/ /ai-screener/): results full container width, presets full container width below */
.smart-screener-layout-full-width .smart-screener-results,
.smart-screener-layout-full-width .smart-screener-sidebar {
    width: 100%;
    max-width: 100%;
}

/* Index page layout (full width grid) */
.smart-screener-index-layout {
    max-width: 1400px;
    margin: var(--spacing-8) auto 0;
    padding: 0 var(--spacing-4);
}

.smart-screener-index-my-screeners {
    margin-bottom: var(--spacing-8);
}

/* User screener card: wrapper for delete button + link */
.smart-screener-user-card-wrapper {
    position: relative;
    display: block;
    height: 100%;
}
.smart-screener-user-card-wrapper .smart-screener-preset-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 100%;
    padding: var(--spacing-5);
    padding-top: var(--spacing-5);
    text-decoration: none;
    color: inherit;
    position: relative;
    z-index: 0;
}
.smart-screener-user-card-delete {
    position: absolute;
    top: var(--spacing-3);
    right: var(--spacing-3);
    z-index: 1;
    width: 32px;
    height: 32px;
    border: none;
    border-radius: var(--radius-md);
    background: rgba(0, 0, 0, 0.5);
    color: #fff;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    opacity: 0;
    transition: opacity 0.2s ease, background 0.2s ease, transform 0.2s ease;
}
.smart-screener-user-card-wrapper:hover .smart-screener-user-card-delete {
    opacity: 1;
}
.smart-screener-user-card-delete:hover {
    background: var(--color-danger, #dc3545);
    transform: scale(1.05);
}
.smart-screener-user-card-delete:focus {
    outline: none;
    box-shadow: 0 0 0 2px var(--color-danger, #dc3545);
}

.smart-screener-index-presets {
    margin-bottom: var(--spacing-6);
}

.smart-screener-index-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: var(--spacing-5);
    padding: var(--spacing-2) 0;
}

/* Left Column: Preset Screeners */
.smart-screener-sidebar {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-5);
}

.smart-screener-presets-title {
    font-size: var(--text-2xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    margin-bottom: var(--spacing-6);
    background: linear-gradient(135deg, 
        var(--color-text) 0%, 
        rgba(103, 78, 153, 0.9) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    letter-spacing: -0.02em;
}

.smart-screener-presets-grid {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-3);
}

/* Preset card with lock icon (requires_logged_in = 1) */
.smart-screener-preset-card-lock-wrapper {
    position: relative;
    display: block;
    height: 100%;
}
.smart-screener-preset-card-lock-wrapper .smart-screener-preset-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 100%;
    padding: var(--spacing-5);
    padding-top: var(--spacing-5);
    text-decoration: none;
    color: inherit;
    position: relative;
    z-index: 0;
}
.smart-screener-preset-lock {
    position: absolute;
    top: var(--spacing-3);
    right: var(--spacing-3);
    z-index: 1;
    width: 28px;
    height: 28px;
    border-radius: var(--radius-md);
    background: rgba(0, 0, 0, 0.4);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.875rem;
    pointer-events: none;
}

/* Your saved screeners (logged-in, custom screener) */
.smart-screener-saved-section {
    margin-top: var(--spacing-5);
    padding-top: var(--spacing-5);
    border-top: 1px solid var(--color-border);
}
.smart-screener-saved-section .smart-screener-presets-title {
    margin-bottom: var(--spacing-3);
    font-size: var(--text-lg);
}
.smart-screener-saved-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-2);
}
.smart-screener-saved-link {
    display: block;
    padding: var(--spacing-2) var(--spacing-3);
    background: var(--color-surface-1);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    color: var(--color-text);
    text-decoration: none;
    font-size: var(--text-sm);
    transition: background 0.2s, border-color 0.2s;
}
.smart-screener-saved-link:hover {
    background: rgba(103, 78, 153, 0.08);
    border-color: var(--color-primary);
    color: var(--color-primary);
}

/* Save Screener Name Modal */
.save-screener-modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    z-index: 1060;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--spacing-4);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.25s ease, visibility 0.25s ease;
}
.save-screener-modal-overlay.active {
    opacity: 1;
    visibility: visible;
}
.save-screener-modal {
    background: var(--color-surface-0, #fff);
    border-radius: var(--radius-xl);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2), 0 0 0 1px var(--color-border);
    max-width: 420px;
    width: 100%;
    overflow: hidden;
    transform: scale(0.95);
    transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}
.save-screener-modal-overlay.active .save-screener-modal {
    transform: scale(1);
}
.save-screener-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--spacing-5);
    border-bottom: 1px solid var(--color-border);
}
.save-screener-modal-title {
    margin: 0;
    font-size: var(--text-xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
}
.save-screener-modal-title i {
    color: var(--color-primary);
}
.save-screener-modal-close {
    background: none;
    border: none;
    color: var(--color-text-secondary);
    cursor: pointer;
    font-size: 1.5rem;
    padding: var(--spacing-2);
    line-height: 1;
    transition: color 0.2s;
}
.save-screener-modal-close:hover {
    color: var(--color-text);
}
.save-screener-modal-body {
    padding: var(--spacing-5);
}
.save-screener-modal-label {
    display: block;
    font-size: var(--text-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
    margin-bottom: var(--spacing-2);
}
.save-screener-modal-input {
    width: 100%;
    padding: var(--spacing-3) var(--spacing-4);
    font-size: var(--text-base);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    color: var(--color-text);
    background: var(--color-surface-0, #fff);
    transition: border-color 0.2s, box-shadow 0.2s;
}
.save-screener-modal-input:focus {
    outline: none;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(103, 78, 153, 0.15);
}
.save-screener-modal-hint {
    margin: var(--spacing-3) 0 0;
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
}
.save-screener-modal-error {
    margin: var(--spacing-2) 0 0;
    font-size: var(--text-sm);
    color: var(--color-danger, #dc3545);
}
.save-screener-modal-actions {
    display: flex;
    justify-content: flex-end;
    gap: var(--spacing-3);
    padding: var(--spacing-4) var(--spacing-5);
    border-top: 1px solid var(--color-border);
    background: var(--color-surface-1, #f8f9fa);
}
.save-screener-modal-actions .btn {
    min-width: 90px;
}

/* Save Screener Success Modal */
.save-screener-success-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    z-index: 1070;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--spacing-4);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.25s ease, visibility 0.25s ease;
}
.save-screener-success-overlay.active {
    opacity: 1;
    visibility: visible;
}
.save-screener-success-modal {
    background: var(--color-surface-0, #fff);
    border-radius: var(--radius-xl);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2), 0 0 0 1px var(--color-border);
    max-width: 360px;
    width: 100%;
    padding: var(--spacing-6);
    text-align: center;
    transform: scale(0.95);
    transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}
.save-screener-success-overlay.active .save-screener-success-modal {
    transform: scale(1);
}
.save-screener-success-icon {
    font-size: 3rem;
    color: var(--color-success, #28a745);
    margin-bottom: var(--spacing-4);
}
.save-screener-success-title {
    margin: 0 0 var(--spacing-2);
    font-size: var(--text-xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
}
.save-screener-success-text {
    margin: 0 0 var(--spacing-5);
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
}
.save-screener-success-btn {
    min-width: 120px;
}

/* Delete Screener Confirmation Modal (index page) */
.delete-screener-modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    z-index: 1060;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--spacing-4);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.25s ease, visibility 0.25s ease;
}
.delete-screener-modal-overlay.active {
    opacity: 1;
    visibility: visible;
}
.delete-screener-modal {
    background: var(--color-surface-0, #fff);
    border-radius: var(--radius-xl);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2), 0 0 0 1px var(--color-border);
    max-width: 400px;
    width: 100%;
    padding: var(--spacing-6);
    text-align: center;
    transform: scale(0.95);
    transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}
.delete-screener-modal-overlay.active .delete-screener-modal {
    transform: scale(1);
}
.delete-screener-modal-icon {
    font-size: 2.5rem;
    color: var(--color-danger, #dc3545);
    margin-bottom: var(--spacing-4);
    opacity: 0.9;
}
.delete-screener-modal-title {
    margin: 0 0 var(--spacing-2);
    font-size: var(--text-xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
}
.delete-screener-modal-text {
    margin: 0 0 var(--spacing-5);
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
}
.delete-screener-modal-actions {
    display: flex;
    justify-content: center;
    gap: var(--spacing-3);
}
.delete-screener-modal-actions .btn-danger {
    min-width: 100px;
}

/* AI Screener: login required (when not logged in) */
.smart-screener-ai-login-required {
    background: linear-gradient(135deg, var(--color-surface-0, #fff) 0%, rgba(103, 78, 153, 0.04) 100%);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06);
    overflow: hidden;
    margin: var(--spacing-4) 0;
}
.smart-screener-ai-login-required-body {
    text-align: center;
    padding: var(--spacing-10) var(--spacing-8);
    max-width: 420px;
    margin: 0 auto;
}
.smart-screener-ai-login-required-icon {
    width: 64px;
    height: 64px;
    margin: 0 auto var(--spacing-5);
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--color-primary) 0%, rgba(103, 78, 153, 0.7) 100%);
    color: #fff;
    font-size: 1.75rem;
    border-radius: 50%;
    box-shadow: 0 8px 24px rgba(103, 78, 153, 0.35);
}
.smart-screener-ai-login-required-title {
    font-size: var(--text-xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    margin: 0 0 var(--spacing-3);
    letter-spacing: -0.02em;
}
.smart-screener-ai-login-required-text {
    font-size: var(--text-base);
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
    margin: 0 0 var(--spacing-6);
}
.smart-screener-ai-login-required-cta {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2);
    padding: var(--spacing-3) var(--spacing-5);
    font-weight: var(--font-weight-semibold);
    border-radius: var(--radius-md);
    color: #fff !important;
    text-decoration: none;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.smart-screener-ai-login-required-cta:hover {
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(103, 78, 153, 0.35);
}

/* When no results, make grid full width */
.smart-screener-layout.no-results .smart-screener-presets-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: var(--spacing-4);
}

.smart-screener-preset-card {
    display: flex;
    flex-direction: column;
    padding: var(--spacing-5);
    background: linear-gradient(135deg, 
        #ffffff 0%, 
        rgba(255, 255, 255, 0.98) 50%,
        rgba(103, 78, 153, 0.03) 100%);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-xl);
    text-decoration: none;
    color: inherit;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 
        0 4px 16px rgba(0, 0, 0, 0.06),
        0 2px 8px rgba(0, 0, 0, 0.04),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    position: relative;
    overflow: hidden;
}

.smart-screener-preset-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, 
        transparent 0%, 
        var(--color-brand) 20%, 
        var(--color-brand) 80%, 
        transparent 100%);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.smart-screener-preset-card::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 3px;
    height: 100%;
    background: linear-gradient(180deg, 
        var(--color-brand) 0%, 
        var(--color-brand-light) 100%);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.smart-screener-preset-card:hover {
    transform: translateY(-4px);
    box-shadow: 
        0 12px 32px rgba(103, 78, 153, 0.12),
        0 4px 16px rgba(0, 0, 0, 0.08),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    border-color: rgba(103, 78, 153, 0.3);
    text-decoration: none!important;
}

.smart-screener-preset-card:hover::before {
    opacity: 1;
}

.smart-screener-preset-card:hover::after {
    opacity: 1;
}

.smart-screener-preset-card.selected {
    border-color: var(--color-brand);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.08) 0%, 
        rgba(255, 255, 255, 0.98) 50%,
        rgba(103, 78, 153, 0.05) 100%);
    box-shadow: 
        0 8px 24px rgba(103, 78, 153, 0.18),
        0 4px 12px rgba(103, 78, 153, 0.12),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    transform: translateY(-2px);
}

.smart-screener-preset-card.selected::before {
    opacity: 1;
}

.smart-screener-preset-card.selected::after {
    opacity: 1;
}

.smart-screener-preset-icon {
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.15) 0%, 
        rgba(103, 78, 153, 0.08) 100%);
    border-radius: var(--radius-lg);
    margin-bottom: var(--spacing-4);
    color: var(--color-brand);
    font-size: var(--text-2xl);
    transition: all 0.3s ease;
    position: relative;
    z-index: 1;
}

.smart-screener-preset-card:hover .smart-screener-preset-icon {
    transform: scale(1.1) rotate(5deg);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.2) 0%, 
        rgba(103, 78, 153, 0.12) 100%);
    box-shadow: 0 4px 12px rgba(103, 78, 153, 0.2);
}

.smart-screener-preset-name {
    font-size: var(--text-base);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
    margin-bottom: var(--spacing-2);
    line-height: 1.4;
}

.smart-screener-preset-description {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    line-height: 1.6;
    margin-bottom: var(--spacing-3);
    flex: 1;
}

.smart-screener-preset-tags {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-2);
    margin-top: auto;
}

.smart-screener-tag {
    display: inline-block;
    padding: var(--spacing-1) var(--spacing-3);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.12) 0%, 
        rgba(103, 78, 153, 0.08) 100%);
    border: 1px solid rgba(103, 78, 153, 0.25);
    border-radius: var(--radius-full);
    font-size: var(--text-xs);
    color: var(--color-brand);
    font-weight: var(--font-weight-semibold);
    transition: all 0.2s ease;
    position: relative;
    z-index: 1;
}

.smart-screener-preset-card:hover .smart-screener-tag {
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.18) 0%, 
        rgba(103, 78, 153, 0.12) 100%);
    border-color: rgba(103, 78, 153, 0.35);
    transform: translateY(-1px);
}

/* AI Prompt Bar */
.smart-screener-ai-prompt {
    padding: var(--spacing-5);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.05) 0%, 
        rgba(255, 255, 255, 0.98) 100%);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-xl);
    box-shadow: 
        0 4px 16px rgba(0, 0, 0, 0.06),
        0 2px 8px rgba(0, 0, 0, 0.04),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    position: relative;
    overflow: hidden;
}

.smart-screener-ai-prompt::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, 
        transparent 0%, 
        var(--color-brand) 20%, 
        var(--color-brand) 80%, 
        transparent 100%);
    opacity: 0.6;
}

.smart-screener-ai-label {
    display: block;
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-2);
}

.smart-screener-ai-input-group {
    display: flex;
    gap: var(--spacing-2);
}

.smart-screener-ai-input {
    flex: 1;
    padding: var(--spacing-2) var(--spacing-3);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    transition: all 0.3s ease;
}

.smart-screener-ai-input:focus {
    outline: none;
    border-color: var(--color-brand);
    box-shadow: 0 0 0 3px rgba(103, 78, 153, 0.1);
}

.smart-screener-ai-button {
    padding: var(--spacing-2) var(--spacing-4);
    white-space: nowrap;
}

/* AI Screener Loading Overlay */
.smart-screener-ai-loading-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.75);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10000;
    backdrop-filter: blur(4px);
}

.smart-screener-ai-loading-content {
    background: var(--color-surface-1);
    padding: var(--spacing-8);
    border-radius: var(--radius-lg);
    text-align: center;
    max-width: 400px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
}

.smart-screener-ai-loading-spinner {
    margin-bottom: var(--spacing-4);
    color: var(--color-primary);
}

.smart-screener-ai-loading-title {
    font-size: var(--text-xl);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
    margin-bottom: var(--spacing-3);
}

.smart-screener-ai-loading-message {
    font-size: var(--text-base);
    color: var(--color-text-secondary);
    margin: 0;
}

@keyframes pulse {
    0%, 100% {
        opacity: 1;
        transform: scale(1);
    }
    50% {
        opacity: 0.7;
        transform: scale(1.1);
    }
}

/* Center Column: Results Panel */
.smart-screener-results {
    display: flex;
    flex-direction: column;
    min-width: 0;
    width: 100%;
}

.smart-screener-results-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: var(--spacing-6);
    gap: var(--spacing-4);
    flex-wrap: wrap;
    padding: var(--spacing-5);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.03) 0%, 
        rgba(255, 255, 255, 0.98) 100%);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-xl);
    box-shadow: 
        0 4px 16px rgba(0, 0, 0, 0.06),
        0 2px 8px rgba(0, 0, 0, 0.04);
}

.smart-screener-results-info {
    flex: 1;
    min-width: 0;
}

.smart-screener-results-title {
    font-size: var(--text-2xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    margin-bottom: var(--spacing-2);
    background: linear-gradient(135deg, 
        var(--color-text) 0%, 
        rgba(103, 78, 153, 0.9) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    letter-spacing: -0.02em;
}

.smart-screener-results-meta {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    margin: 0;
}

.smart-screener-results-actions {
    display: flex;
    gap: var(--spacing-2);
    flex-wrap: wrap;
}

.filter-count {
    color: var(--color-brand);
    font-weight: var(--font-weight-semibold);
}

/* Results Table */
.smart-screener-table-wrapper {
    overflow-x: auto;
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-xl);
    background: linear-gradient(135deg, 
        #ffffff 0%, 
        rgba(255, 255, 255, 0.98) 50%,
        rgba(103, 78, 153, 0.02) 100%);
    box-shadow: 
        0 8px 32px rgba(0, 0, 0, 0.08),
        0 4px 16px rgba(0, 0, 0, 0.04),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    position: relative;
}

.smart-screener-table-wrapper::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, 
        transparent 0%, 
        var(--color-brand) 20%, 
        var(--color-brand) 80%, 
        transparent 100%);
    opacity: 0.6;
    border-radius: var(--radius-xl) var(--radius-xl) 0 0;
}

.smart-screener-table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--text-sm);
}

.smart-screener-table thead {
    background: linear-gradient(135deg, 
        var(--color-surface-2) 0%, 
        rgba(103, 78, 153, 0.05) 100%);
    position: sticky;
    top: 0;
    z-index: 10;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.smart-screener-table th {
    padding: var(--spacing-4) var(--spacing-5);
    text-align: left;
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    border-bottom: 2px solid var(--color-border);
    font-size: var(--text-xs);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    white-space: nowrap;
}

.smart-screener-table th.sortable {
    cursor: pointer;
    user-select: none;
    transition: background-color 0.2s ease;
}

.smart-screener-table th.sortable:hover {
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.15) 0%, rgba(103, 78, 153, 0.1) 100%);
}

.smart-screener-table th.sortable .sort-link {
    color: inherit;
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
}

.smart-screener-table th.sortable .sort-link:hover {
    color: var(--color-primary);
}

.smart-screener-table th.sortable .sort-link i {
    font-size: 0.875rem;
    transition: opacity 0.2s ease;
}

.smart-screener-table th.sortable .sort-link:hover i {
    opacity: 1 !important;
}

.smart-screener-table td {
    padding: var(--spacing-4) var(--spacing-5);
    border-bottom: 1px solid var(--color-border);
    color: var(--color-text);
    transition: all 0.2s ease;
}

.smart-screener-table tbody tr {
    transition: all 0.2s ease;
}

.smart-screener-table tbody tr:nth-child(even) {
    background: rgba(103, 78, 153, 0.01);
}

.smart-screener-table tbody tr:hover {
    background: rgba(103, 78, 153, 0.05);
    transform: scale(1.001);
    box-shadow: inset 0 0 0 1px rgba(103, 78, 153, 0.1);
}

.smart-screener-table tbody tr:hover td {
    color: var(--color-text);
    font-weight: var(--font-weight-medium);
}

.smart-screener-table tbody tr:last-child td {
    border-bottom: none;
}

.smart-screener-ticker-link {
    color: var(--color-brand);
    text-decoration: none;
    font-weight: var(--font-weight-semibold);
    transition: color 0.3s ease;
}

.smart-screener-ticker-link:hover {
    color: rgba(103, 78, 153, 0.8);
    text-decoration: underline;
}

.smart-screener-trend-badge {
    font-size: var(--text-xs);
    padding: var(--spacing-1) var(--spacing-2);
    border-radius: var(--radius-full);
}

.smart-screener-why-btn {
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.08) 0%, 
        rgba(103, 78, 153, 0.05) 100%);
    border: 1px solid rgba(103, 78, 153, 0.2);
    color: var(--color-brand);
    cursor: pointer;
    padding: var(--spacing-2) var(--spacing-3);
    border-radius: var(--radius-md);
    transition: all 0.3s ease;
    font-size: var(--text-sm);
    font-weight: var(--font-weight-semibold);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04);
}

.smart-screener-why-btn:hover {
    color: var(--color-brand-dark);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.15) 0%, 
        rgba(103, 78, 153, 0.1) 100%);
    border-color: rgba(103, 78, 153, 0.3);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(103, 78, 153, 0.2);
}

/* Empty State */
.smart-screener-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: var(--spacing-12) var(--spacing-4);
    text-align: center;
    border: 2px dashed var(--color-border);
    border-radius: var(--radius-xl);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.03) 0%, 
        rgba(255, 255, 255, 0.98) 100%);
    box-shadow: 
        0 4px 16px rgba(0, 0, 0, 0.04),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.smart-screener-empty-icon {
    font-size: 3rem;
    color: var(--color-text-tertiary);
    margin-bottom: var(--spacing-4);
    opacity: 0.5;
}

.smart-screener-empty-text {
    font-size: var(--text-base);
    color: var(--color-text-secondary);
    margin: 0;
}

/* Pagination */
.smart-screener-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-3);
    margin-top: var(--spacing-6);
    padding: var(--spacing-5);
    border-top: 1.5px solid var(--color-border);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.02) 0%, 
        rgba(255, 255, 255, 0.98) 100%);
    border-radius: 0 0 var(--radius-xl) var(--radius-xl);
}

.smart-screener-pagination-info {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
}

/* Active Filter Tags */
.smart-screener-active-filters {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-3);
    margin-bottom: var(--spacing-5);
    padding: var(--spacing-4);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.05) 0%, 
        rgba(255, 255, 255, 0.98) 100%);
    border-radius: var(--radius-xl);
    border: 1.5px solid var(--color-border);
    min-height: 60px;
    align-items: center;
    box-shadow: 
        0 2px 8px rgba(0, 0, 0, 0.04),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.smart-screener-active-filter-tag {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2);
    padding: var(--spacing-2) var(--spacing-4);
    background: linear-gradient(135deg, 
        #ffffff 0%, 
        rgba(255, 255, 255, 0.98) 50%,
        rgba(103, 78, 153, 0.05) 100%);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-lg);
    font-size: var(--text-sm);
    color: var(--color-text);
    transition: all 0.3s ease;
    box-shadow: 
        0 2px 4px rgba(0, 0, 0, 0.04),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.smart-screener-active-filter-tag:hover {
    transform: translateY(-2px);
    box-shadow: 
        0 4px 12px rgba(103, 78, 153, 0.15),
        0 2px 6px rgba(0, 0, 0, 0.08);
    border-color: rgba(103, 78, 153, 0.3);
}

.smart-screener-active-filter-tag .filter-tag-label {
    font-weight: var(--font-weight-medium);
}

.smart-screener-active-filter-tag .filter-tag-value {
    color: var(--color-text-secondary);
}

.smart-screener-active-filter-tag .filter-tag-remove {
    background: none;
    border: none;
    color: var(--color-text-secondary);
    cursor: pointer;
    padding: 0;
    margin-left: var(--spacing-1);
    font-size: var(--text-lg);
    line-height: 1;
    transition: color 0.2s ease;
}

.smart-screener-active-filter-tag .filter-tag-remove:hover {
    color: var(--color-danger);
}

/* Filters Modal/Sidebar Overlay */
.smart-screener-filters-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 1040;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.smart-screener-filters-overlay.active {
    display: block;
    opacity: 1;
}

/* Filters Modal/Sidebar */
.smart-screener-filters-modal {
    position: fixed;
    top: 0;
    right: -104%;
    width: 90vw;
    max-width: 1200px;
    height: 100vh;
    background: white;
    z-index: 1050;
    display: flex;
    flex-direction: column;
    box-shadow: -4px 0 20px rgba(0, 0, 0, 0.15);
    transition: right 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    overflow: hidden;
}

@media (max-width: 767px) {
    .smart-screener-filters-modal {
        width: 100vw;
        max-width: 100vw;
    }
    
    /* Prevent body scroll when modal is open */
    body:has(.smart-screener-filters-modal.active) {
        overflow: hidden;
        position: fixed;
        width: 100%;
    }
}

.smart-screener-filters-modal.active {
    right: 0;
}

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

.smart-screener-filters-modal-title {
    font-size: var(--text-2xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    margin: 0;
}

.smart-screener-filters-modal-close {
    background: none;
    border: none;
    color: var(--color-text-secondary);
    cursor: pointer;
    font-size: var(--text-2xl);
    padding: var(--spacing-2);
    transition: color 0.2s ease;
    line-height: 1;
}

.smart-screener-filters-modal-close:hover {
    color: var(--color-text);
}

.smart-screener-filters-modal-search {
    position: relative;
    padding: var(--spacing-4) var(--spacing-5);
    border-bottom: 1px solid var(--color-border);
}

.smart-screener-filters-modal-search i {
    position: absolute;
    left: calc(var(--spacing-5) + var(--spacing-3));
    top: 50%;
    transform: translateY(-50%);
    color: var(--color-text-secondary);
    pointer-events: none;
}

.smart-screener-filters-modal-search input {

    padding-left: 50px;
}

.smart-screener-filters-modal-content {
    flex: 1;
    overflow: hidden;
    display: flex;
    position: relative;
}

.smart-screener-filters-modal-layout {
    display: grid;
    grid-template-columns: 250px 300px 1fr;
    height: 100%;
    overflow: hidden;
}

@media (max-width: 991px) {
    .smart-screener-filters-modal-layout {
        grid-template-columns: 200px 250px 1fr;
    }
}

@media (max-width: 767px) {
    .smart-screener-filters-modal-layout {
        display: block;
        height: auto;
        overflow-y: auto;
        padding-bottom: var(--spacing-4);
    }
    
    /* Hide the three-column layout on mobile, use accordion instead */
    .smart-screener-filters-modal-categories,
    .smart-screener-filters-modal-options {
        display: none;
    }
    
    /* Accordion wrapper for mobile */
    .smart-screener-filters-modal-accordion {
        display: block;
    }
    
    /* Each category becomes an accordion item */
    .smart-screener-filter-accordion-item {
        border-bottom: 1px solid var(--color-border);
        background: white;
    }
    
    .smart-screener-filter-accordion-header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: var(--spacing-4);
        cursor: pointer;
        user-select: none;
        transition: background 0.2s ease;
    }
    
    .smart-screener-filter-accordion-header:hover {
        background: var(--color-surface-1);
    }
    
    .smart-screener-filter-accordion-header.active {
        background: var(--color-surface-2);
        border-left: 3px solid var(--color-brand);
    }
    
    .smart-screener-filter-accordion-header h4 {
        margin: 0;
        font-size: var(--text-base);
        font-weight: var(--font-weight-semibold);
        color: var(--color-text);
    }
    
    .smart-screener-filter-accordion-header i {
        transition: transform 0.3s ease;
        color: var(--color-text-secondary);
    }
    
    .smart-screener-filter-accordion-header.active i {
        transform: rotate(90deg);
    }
    
    .smart-screener-filter-accordion-content {
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.3s ease;
        background: var(--color-surface-1);
    }
    
    .smart-screener-filter-accordion-item.active .smart-screener-filter-accordion-content {
        max-height: 1000px;
    }
    
    /* Options list within accordion */
    .smart-screener-filter-accordion-options {
        padding: 0;
    }
    
    .smart-screener-filter-accordion-option {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: var(--spacing-3) var(--spacing-4);
        border-bottom: 1px solid var(--color-border-light);
        cursor: pointer;
        transition: background 0.2s ease;
    }
    
    .smart-screener-filter-accordion-option:hover {
        background: white;
    }
    
    .smart-screener-filter-accordion-option.active {
        background: white;
        border-left: 3px solid var(--color-brand);
        font-weight: var(--font-weight-semibold);
    }
    
    .smart-screener-filter-accordion-option span {
        flex: 1;
    }
    
    .smart-screener-filter-accordion-option i {
        color: var(--color-text-secondary);
        transition: transform 0.3s ease;
    }
    
    .smart-screener-filter-accordion-option.active i {
        transform: rotate(90deg);
    }
    
    /* Config panel within accordion */
    .smart-screener-filter-accordion-config {
        padding: var(--spacing-4);
        background: white;
        border-top: 1px solid var(--color-border);
    }
    
    .smart-screener-filter-accordion-config h5 {
        margin: 0 0 var(--spacing-3) 0;
        font-size: var(--text-base);
        font-weight: var(--font-weight-semibold);
        color: var(--color-text);
    }
    
    /* Hide the config panel on mobile when not in accordion mode */
    .smart-screener-filters-modal-config {
        display: none;
    }
    
    /* Accordion search - hide on mobile or make it work with accordion */
    .smart-screener-filters-modal-search {
        position: sticky;
        top: 0;
        z-index: 10;
        background: white;
    }
    
    /* Ensure accordion content is scrollable */
    .smart-screener-filters-modal-content {
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }
    
    /* Smooth scrolling for accordion */
    .smart-screener-filter-accordion-content {
        transition: max-height 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    }
}

/* Desktop: Hide accordion, show three-column layout */
@media (min-width: 768px) {
    .smart-screener-filters-modal-accordion {
        display: none;
    }
    
    .smart-screener-filters-modal-categories,
    .smart-screener-filters-modal-options {
        display: block;
    }
    
    .smart-screener-filters-modal-config {
        display: block;
    }
}

.smart-screener-filters-modal-categories {
    border-right: 1px solid var(--color-border);
    overflow-y: auto;
    background: var(--color-surface-1);
}

.smart-screener-filter-modal-category {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--spacing-3) var(--spacing-4);
    cursor: pointer;
    transition: background 0.2s ease;
    border-bottom: 1px solid var(--color-border-light);
}

.smart-screener-filter-modal-category:hover {
    background: var(--color-surface-2);
}

.smart-screener-filter-modal-category.active {
    background: white;
    border-right: 3px solid var(--color-brand);
    font-weight: var(--font-weight-semibold);
}

/* Applied Filters category highlighting */
.smart-screener-filter-modal-category[data-category="applied"] {
    position: relative;
}

.smart-screener-filter-modal-option.applied-filter {
    background: rgba(103, 78, 153, 0.08);
    border-left: 3px solid var(--color-brand);
    font-weight: var(--font-weight-medium);
}

.smart-screener-filter-modal-option.applied-filter:hover {
    background: rgba(103, 78, 153, 0.12);
}

.smart-screener-filter-modal-option.applied-filter.active {
    background: var(--color-surface-2);
    border-right: 3px solid var(--color-brand);
}

.smart-screener-filters-modal-options {
    border-right: 1px solid var(--color-border);
    overflow-y: auto;
    background: white;
}

.smart-screener-filter-modal-option {
    padding: var(--spacing-3) var(--spacing-4);
    cursor: pointer;
    transition: background 0.2s ease;
    border-bottom: 1px solid var(--color-border-light);
}

.smart-screener-filter-modal-option:hover {
    background: var(--color-surface-1);
}

.smart-screener-filter-modal-option.active {
    background: var(--color-surface-2);
    border-right: 3px solid var(--color-brand);
    font-weight: var(--font-weight-semibold);
}

.smart-screener-filters-modal-config {
    overflow-y: auto;
    background: white;
    padding: var(--spacing-5);
}

.smart-screener-filters-modal-actions {
    display: flex;
    gap: var(--spacing-3);
    padding: var(--spacing-4) var(--spacing-5);
    border-top: 1px solid var(--color-border);
    background: var(--color-surface-1);
}

.smart-screener-filters-modal-actions .btn {
    flex: 1;
}

@media (max-width: 767px) {
    .smart-screener-filters-modal-actions {
        padding: var(--spacing-3);
        flex-wrap: wrap;
    }
    
    .smart-screener-filters-modal-actions .btn {
        min-width: calc(50% - var(--spacing-1));
        font-size: var(--text-sm);
        padding: var(--spacing-2) var(--spacing-3);
    }
}

/* Right Column: Filters Panel (Legacy - Hidden) */
.smart-screener-filters {
    display: none !important;
}

.smart-screener-filters-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--spacing-4);
    border-bottom: 1px solid var(--color-border);
}

.smart-screener-filters-title {
    font-size: var(--text-lg);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
    margin: 0;
}

.smart-screener-filters-close {
    display: block;
    background: none;
    border: none;
    color: var(--color-text-secondary);
    cursor: pointer;
    font-size: var(--text-xl);
    padding: var(--spacing-1);
    transition: color 0.3s ease;
}

.smart-screener-filters-close:hover {
    color: var(--color-text);
}

.smart-screener-filters-content {
    padding: var(--spacing-4);
    overflow-y: auto;
    flex: 1;
}

.smart-screener-filter-group {
    margin-bottom: var(--spacing-4);
}

.smart-screener-filter-label {
    display: block;
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: var(--spacing-2);
}

.smart-screener-filter-range {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
}

.smart-screener-filter-range input {
    flex: 1;
}

.smart-screener-filter-range span {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    white-space: nowrap;
}

.smart-screener-filters-actions {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-2);
    margin-top: var(--spacing-4);
    padding-top: var(--spacing-4);
    border-top: 1px solid var(--color-border);
}

.smart-screener-filters-actions .btn {
    width: 100%;
}

/* Accordion Styling */
.smart-screener-filters .accordion-item {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    margin-bottom: var(--spacing-2);
    overflow: hidden;
}

.smart-screener-filters .accordion-button {
    font-size: var(--text-sm);
    font-weight: var(--font-weight-semibold);
    padding: var(--spacing-3) var(--spacing-4);
    background: transparent;
    border: none;
    color: var(--color-text);
}

.smart-screener-filters .accordion-button:not(.collapsed) {
    background: rgba(103, 78, 153, 0.05);
    color: var(--color-brand);
}

.smart-screener-filters .accordion-body {
    padding: var(--spacing-4);
}

.smart-screener-filter-chips {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-2);
    margin-top: var(--spacing-3);
    padding-top: var(--spacing-3);
    border-top: 1px solid var(--color-border-light);
}

.smart-screener-filter-chip {
    display: inline-flex;
    align-items: center;
    padding: var(--spacing-1) var(--spacing-3);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.08) 0%, 
        rgba(103, 78, 153, 0.05) 100%);
    border: 1px solid rgba(103, 78, 153, 0.2);
    border-radius: var(--radius-md);
    font-size: var(--text-xs);
    color: var(--color-brand);
    font-weight: var(--font-weight-medium);
}

/* Mobile Responsive */
@media (max-width: 1200px) {
    .smart-screener-layout {
        grid-template-columns: 280px 1fr;
        gap: var(--spacing-4);
    }
    
    .smart-screener-layout.no-results {
        grid-template-columns: 1fr;
    }

    .smart-screener-layout.has-results {
        grid-template-columns: 1fr;
        grid-template-rows: 1fr auto;
    }

    .smart-screener-layout.has-results .smart-screener-sidebar {
        order: 2;
        margin-top: var(--spacing-6);
    }

    .smart-screener-layout.has-results .smart-screener-results {
        order: 1;
    }
}

@media (max-width: 992px) {
    .smart-screener-layout {
        grid-template-columns: 1fr;
        gap: var(--spacing-5);
    }
    
    .smart-screener-layout.has-results {
        grid-template-columns: 1fr;
        grid-template-rows: 1fr auto;
    }
    
    .smart-screener-layout.has-results .smart-screener-sidebar {
        order: 2;
        margin-top: var(--spacing-6);
    }
    
    .smart-screener-layout.has-results .smart-screener-results {
        order: 1;
    }
    
    .smart-screener-sidebar {
        order: 1;
    }
    
    .smart-screener-results {
        order: 2;
    }
    
    .smart-screener-filters {
        order: 3;
        position: fixed;
        top: 0;
        right: -100%;
        width: 320px;
        max-width: 90vw;
        height: 100vh;
        max-height: 100vh;
        z-index: 1000;
        transition: right 0.3s ease;
        box-shadow: -4px 0 16px rgba(0, 0, 0, 0.1);
        display: flex;
    }
    
    .smart-screener-filters.active {
        right: 0;
    }
    
    .smart-screener-filters-close {
        display: block;
    }
    
    .smart-screener-presets-grid {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
        gap: var(--spacing-3);
    }
}

@media (max-width: 768px) {
    .smart-screener-page {
        padding: var(--spacing-4) 0;
    }
    
    .smart-screener-results-header {
        flex-direction: column;
        align-items: stretch;
        gap: var(--spacing-3);
    }
    
    .smart-screener-results-actions {
        width: 100%;
        display: flex;
        flex-wrap: wrap;
        gap: var(--spacing-2);
    }
    
    .smart-screener-results-actions .btn {
        flex: 1;
        min-width: calc(50% - var(--spacing-1));
        font-size: var(--text-sm);
        padding: var(--spacing-2) var(--spacing-3);
        white-space: normal;
        word-break: break-word;
        text-align: center;
    }
    
    /* Ensure button text doesn't get cut off */
    .smart-screener-results-actions .btn-sm {
        font-size: var(--text-xs);
        padding: var(--spacing-2);
    }
    
    .smart-screener-table {
        font-size: var(--text-xs);
    }
    
    .smart-screener-table th,
    .smart-screener-table td {
        padding: var(--spacing-2) var(--spacing-3);
    }
    
    .smart-screener-presets-grid {
        grid-template-columns: 1fr;
    }
    
    .smart-screener-index-grid {
        grid-template-columns: 1fr;
    }
    
    /* AI Input Section Mobile */
    .smart-screener-ai-input-section {
        padding: var(--spacing-3) !important;
    }
    
    .smart-screener-ai-input-group {
        flex-direction: column;
        gap: var(--spacing-2);
    }
    
    .smart-screener-ai-input {
        width: 100%;
    }
    
    .smart-screener-ai-button {
        width: 100%;
        padding: var(--spacing-2) var(--spacing-3);
        font-size: var(--text-sm);
    }
    
    /* Pagination Mobile */
    .smart-screener-pagination {
        flex-wrap: wrap;
        gap: var(--spacing-2);
        padding: var(--spacing-3) var(--spacing-4);
        margin-top: var(--spacing-4);
        padding-bottom: var(--spacing-6); /* Extra padding to prevent cut-off */
    }
    
    .smart-screener-pagination .btn {
        font-size: var(--text-sm);
        padding: var(--spacing-2) var(--spacing-3);
        min-width: auto;
    }
    
    .smart-screener-pagination-info {
        width: 100%;
        text-align: center;
        order: -1;
        margin-bottom: var(--spacing-2);
    }
    
    /* Results Table Mobile */
    .smart-screener-table-wrapper {
        margin-bottom: var(--spacing-4);
    }
    
    /* Active Filters Mobile */
    .smart-screener-active-filters {
        padding: var(--spacing-2);
        gap: var(--spacing-2);
    }
    
    .smart-screener-active-filter-tag {
        font-size: var(--text-xs);
        padding: var(--spacing-1) var(--spacing-2);
    }
    
    /* Filters Modal Header Mobile */
    .smart-screener-filters-modal-header {
        padding: var(--spacing-3) var(--spacing-4);
    }
    
    .smart-screener-filters-modal-title {
        font-size: var(--text-lg);
    }
    
    .smart-screener-filters-modal-search {
        padding: var(--spacing-3) var(--spacing-4);
    }
    
    /* Container padding for mobile */
    .container-main {
        padding-left: var(--spacing-3);
        padding-right: var(--spacing-3);
    }
    
    /* Ensure page doesn't overflow */
    .smart-screener-page {
        overflow-x: hidden;
        width: 100%;
        max-width: 100vw;
    }
    
    /* Results section mobile */
    .smart-screener-results {
        width: 100%;
        max-width: 100%;
        overflow-x: hidden;
    }
}

/* ============================================
   STOCK COMPARISON TOOL
   ============================================ */
.compare-section {
    padding: var(--spacing-8) 0;
    background: linear-gradient(180deg, 
        rgba(103, 78, 153, 0.02) 0%, 
        transparent 20%,
        transparent 80%,
        rgba(103, 78, 153, 0.02) 100%);
}

.compare-stock-selection {
    display: flex;
    flex-direction: column;
}

.compare-stock-selected {
    display: flex;
    gap: var(--spacing-5);
    flex-wrap: wrap;
    justify-content: center;
}

.compare-stock-card {
    background: linear-gradient(135deg, 
        #ffffff 0%, 
        rgba(255, 255, 255, 0.98) 50%,
        rgba(103, 78, 153, 0.03) 100%);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-xl);
    padding: var(--spacing-5);
    min-width: 220px;
    flex: 1;
    max-width: 280px;
    position: relative;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 
        0 4px 16px rgba(0, 0, 0, 0.06),
        0 2px 8px rgba(0, 0, 0, 0.04),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    overflow: hidden;
}

.compare-stock-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, 
        transparent 0%, 
        var(--color-brand) 20%, 
        var(--color-brand) 80%, 
        transparent 100%);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.compare-stock-card:hover {
    transform: translateY(-4px);
    box-shadow: 
        0 12px 32px rgba(103, 78, 153, 0.12),
        0 4px 16px rgba(0, 0, 0, 0.08),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    border-color: rgba(103, 78, 153, 0.3);
}

.compare-stock-card:hover::before {
    opacity: 1;
}

.compare-stock-card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--spacing-3);
    position: relative;
    z-index: 1;
}

.compare-stock-card-ticker {
    font-weight: var(--font-weight-bold);
    font-size: var(--text-xl);
    color: var(--color-text);
    letter-spacing: -0.02em;
    background: linear-gradient(135deg, 
        var(--color-text) 0%, 
        rgba(103, 78, 153, 0.9) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.compare-stock-remove {
    background: rgba(239, 68, 68, 0.1);
    border: none;
    color: #ef4444;
    cursor: pointer;
    padding: var(--spacing-2);
    line-height: 1;
    font-size: var(--text-lg);
    border-radius: var(--radius-sm);
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
}

.compare-stock-remove:hover {
    background: rgba(239, 68, 68, 0.2);
    transform: scale(1.1);
    color: #dc2626;
}

.compare-stock-card-name {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-3);
    line-height: var(--line-height-relaxed);
    position: relative;
    z-index: 1;
}

.compare-stock-card-price {
    font-size: var(--text-2xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    margin-bottom: var(--spacing-1);
    position: relative;
    z-index: 1;
}

.compare-stock-change {
    font-size: var(--text-base);
    margin-left: var(--spacing-2);
    font-weight: var(--font-weight-semibold);
    padding: var(--spacing-1) var(--spacing-2);
    border-radius: var(--radius-sm);
    display: inline-block;
}

.compare-stock-change.positive {
    color: #059669;
    background: rgba(16, 185, 129, 0.1);
}

.compare-stock-change.negative {
    color: #dc2626;
    background: rgba(239, 68, 68, 0.1);
}

.compare-stock-add {
    background: linear-gradient(135deg, 
        var(--color-surface-2) 0%, 
        rgba(103, 78, 153, 0.05) 100%);
    border: 2px dashed var(--color-border);
    border-radius: var(--radius-xl);
    padding: var(--spacing-5);
    min-width: 220px;
    min-height: 140px;
    flex: 1;
    max-width: 280px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-3);
    cursor: pointer;
    color: var(--color-text-secondary);
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}

.compare-stock-add::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    border-radius: 50%;
    background: rgba(103, 78, 153, 0.1);
    transform: translate(-50%, -50%);
    transition: width 0.6s ease, height 0.6s ease;
}

.compare-stock-add:hover {
    border-color: var(--color-brand);
    color: var(--color-brand);
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.05) 0%, 
        rgba(103, 78, 153, 0.1) 100%);
    transform: translateY(-4px);
    box-shadow: 
        0 8px 24px rgba(103, 78, 153, 0.15),
        0 4px 12px rgba(0, 0, 0, 0.08);
}

.compare-stock-add:hover::before {
    width: 300px;
    height: 300px;
}

.compare-stock-add i {
    font-size: var(--text-3xl);
    transition: transform 0.3s ease;
    position: relative;
    z-index: 1;
}

.compare-stock-add:hover i {
    transform: scale(1.2) rotate(90deg);
}

.compare-stock-add span,
.compare-stock-add {
    position: relative;
    z-index: 1;
    font-weight: var(--font-weight-semibold);
}

.compare-table-wrapper {
    background: linear-gradient(135deg, 
        #ffffff 0%, 
        rgba(255, 255, 255, 0.98) 50%,
        rgba(103, 78, 153, 0.02) 100%);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-xl);
    overflow: hidden;
    margin-top: var(--spacing-8);
    box-shadow: 
        0 8px 32px rgba(0, 0, 0, 0.08),
        0 4px 16px rgba(0, 0, 0, 0.04),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    position: relative;
}

.compare-table-wrapper::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, 
        transparent 0%, 
        var(--color-brand) 20%, 
        var(--color-brand) 80%, 
        transparent 100%);
    opacity: 0.6;
}

.compare-table-header {
    display: grid;
    grid-template-columns: 220px repeat(4, 1fr);
    background: linear-gradient(135deg, 
        var(--color-surface-2) 0%, 
        rgba(103, 78, 153, 0.05) 100%);
    border-bottom: 2px solid var(--color-border);
    position: sticky;
    top: 0;
    z-index: 10;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.compare-table-header-cell {
    padding: var(--spacing-5);
    font-weight: var(--font-weight-bold);
    text-align: center;
    border-right: 1px solid var(--color-border);
    color: var(--color-text);
    font-size: var(--text-sm);
    letter-spacing: 0.01em;
    position: relative;
}

.compare-table-header-cell:first-child {
    text-align: left;
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-secondary);
}

.compare-table-header-cell:last-child {
    border-right: none;
}

.compare-table-header-cell strong {
    display: block;
    font-size: var(--text-lg);
    margin-bottom: var(--spacing-1);
    color: var(--color-text);
    background: linear-gradient(135deg, 
        var(--color-text) 0%, 
        rgba(103, 78, 153, 0.9) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.compare-table-header-cell small {
    display: block;
    font-size: var(--text-xs);
    color: var(--color-text-secondary);
    font-weight: var(--font-weight-normal);
    margin-top: var(--spacing-1);
    line-height: var(--line-height-tight);
}

.compare-table-section {
    border-bottom: 1px solid var(--color-border);
}

.compare-table-section-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--spacing-4) var(--spacing-5);
    cursor: pointer;
    background: linear-gradient(135deg, 
        var(--color-surface-2) 0%, 
        rgba(103, 78, 153, 0.03) 100%);
    user-select: none;
    transition: all 0.3s ease;
    border-left: 3px solid transparent;
    font-weight: var(--font-weight-semibold);
}

.compare-table-section-header:hover {
    background: linear-gradient(135deg, 
        rgba(103, 78, 153, 0.05) 0%, 
        rgba(103, 78, 153, 0.08) 100%);
    border-left-color: var(--color-brand);
    padding-left: var(--spacing-6);
}

.compare-table-section-header i {
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    color: var(--color-brand);
    font-size: var(--text-lg);
}

.compare-table-section-header.collapsed i {
    transform: rotate(-90deg);
}

.compare-table-section-content {
    display: none;
    animation: fadeIn 0.3s ease;
}

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

.compare-table-section-content.show {
    display: block;
}

.compare-table-row {
    display: grid;
    grid-template-columns: 220px repeat(4, 1fr);
    border-bottom: 1px solid var(--color-border);
    transition: all 0.2s ease;
    position: relative;
}

.compare-table-row:nth-child(even) {
    background: rgba(103, 78, 153, 0.01);
}

.compare-table-row:hover {
    background: rgba(103, 78, 153, 0.05);
    transform: scale(1.001);
    box-shadow: inset 0 0 0 1px rgba(103, 78, 153, 0.1);
}

.compare-table-row:last-child {
    border-bottom: none;
}

.compare-table-label {
    padding: var(--spacing-4) var(--spacing-5);
    font-weight: var(--font-weight-semibold);
    border-right: 1px solid var(--color-border);
    background: linear-gradient(135deg, 
        var(--color-surface-2) 0%, 
        rgba(103, 78, 153, 0.02) 100%);
    text-align: left;
    color: var(--color-text);
    font-size: var(--text-sm);
    position: sticky;
    left: 0;
    z-index: 1;
    box-shadow: 2px 0 4px rgba(0, 0, 0, 0.02);
}

.compare-table-cell {
    padding: var(--spacing-4) var(--spacing-5);
    text-align: center;
    border-right: 1px solid var(--color-border);
    color: var(--color-text);
    font-size: var(--text-sm);
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
    justify-content: center;
}

.compare-table-cell:last-child {
    border-right: none;
}

.compare-table-row:hover .compare-table-cell {
    color: var(--color-text);
    font-weight: var(--font-weight-medium);
}

/* Responsive styles for compare tool */
@media (max-width: 1200px) {
    .compare-table-header,
    .compare-table-row {
        grid-template-columns: 180px repeat(4, 1fr);
    }
    
    .compare-table-label {
        padding: var(--spacing-3) var(--spacing-4);
        font-size: var(--text-xs);
    }
    
    .compare-table-cell {
        padding: var(--spacing-3) var(--spacing-4);
        font-size: var(--text-xs);
    }
}

@media (max-width: 992px) {
    .compare-stock-selected {
        justify-content: flex-start;
    }
    
    .compare-stock-card,
    .compare-stock-add {
        min-width: 180px;
        max-width: 240px;
    }
    
    .compare-table-header,
    .compare-table-row {
        grid-template-columns: 160px repeat(4, 1fr);
    }
    
    .compare-table-header-cell {
        padding: var(--spacing-3);
        font-size: var(--text-xs);
    }
    
    .compare-table-header-cell strong {
        font-size: var(--text-base);
    }
    
    .compare-table-header-cell small {
        font-size: 10px;
    }
}

@media (max-width: 768px) {
    .compare-section {
        padding: var(--spacing-6) 0;
    }
    
    .compare-stock-selected {
        gap: var(--spacing-3);
    }
    
    .compare-stock-card,
    .compare-stock-add {
        min-width: 100%;
        max-width: 100%;
        flex: 1 1 100%;
    }
    
    .compare-table-wrapper {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    
    .compare-table-header,
    .compare-table-row {
        grid-template-columns: 140px repeat(4, minmax(120px, 1fr));
        min-width: 700px;
    }
    
    .compare-table-label {
        position: sticky;
        left: 0;
        z-index: 2;
        box-shadow: 2px 0 8px rgba(0, 0, 0, 0.1);
    }
    
    .compare-table-header-cell {
        padding: var(--spacing-2) var(--spacing-3);
        font-size: 10px;
    }
    
    .compare-table-header-cell strong {
        font-size: var(--text-sm);
    }
    
    .compare-table-header-cell small {
        font-size: 9px;
    }
    
    .compare-table-cell {
        padding: var(--spacing-2) var(--spacing-3);
        font-size: var(--text-xs);
    }
}

/* Modal styles for add stock */
.compare-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    display: none;
    align-items: center;
    justify-content: center;
    z-index: var(--z-modal);
}

.compare-modal.active {
    display: flex;
}

#addStockModal .modal-content {
    background: linear-gradient(135deg, 
        #ffffff 0%, 
        rgba(255, 255, 255, 0.98) 50%,
        rgba(103, 78, 153, 0.03) 100%);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-xl);
    width: 90%;
    max-width: 500px;
    max-height: 90vh;
    display: flex;
    flex-direction: column;
    overflow: visible;
    box-shadow: 
        0 20px 60px rgba(0, 0, 0, 0.15),
        0 8px 24px rgba(103, 78, 153, 0.1),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    position: relative;
    margin: auto;
    animation: modalSlideIn 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes modalSlideIn {
    from {
        opacity: 0;
        transform: translateY(-20px) scale(0.95);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

#addStockModal .modal-content::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, 
        transparent 0%, 
        var(--color-brand) 20%, 
        var(--color-brand) 80%, 
        transparent 100%);
    border-radius: var(--radius-xl) var(--radius-xl) 0 0;
}

#addStockModal .modal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--spacing-5) var(--spacing-5) var(--spacing-4);
    border-bottom: 1px solid var(--color-border);
    flex-shrink: 0;
    position: relative;
    z-index: 1;
}

#addStockModal .modal-header h3 {
    margin: 0;
    font-size: var(--text-2xl);
    font-weight: var(--font-weight-bold);
    background: linear-gradient(135deg, 
        var(--color-text) 0%, 
        rgba(103, 78, 153, 0.9) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    letter-spacing: -0.02em;
}

#addStockModal .modal-close {
    background: rgba(239, 68, 68, 0.1);
    border: none;
    font-size: var(--text-xl);
    cursor: pointer;
    color: #ef4444;
    padding: var(--spacing-2);
    line-height: 1;
    border-radius: var(--radius-sm);
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
}

#addStockModal .modal-close:hover {
    background: rgba(239, 68, 68, 0.2);
    transform: scale(1.1) rotate(90deg);
    color: #dc2626;
}

#addStockModal .modal-body {
    padding: var(--spacing-4);
    overflow: visible;
    flex: 1;
    min-height: 0;
    position: relative;
    display: flex;
    flex-direction: column;
}

#addStockModal form {
    display: flex;
    flex-direction: column;
    overflow: visible;
}

#addStockModal .form-actions {
    flex-shrink: 0;
    margin-top: auto;
}

#addStockModal .form-group {
    margin-bottom: var(--spacing-4);
}

.compare-form-group {
    position: relative;
    z-index: 10;
    overflow: visible;
}

#addStockModal .form-group {
    margin-bottom: var(--spacing-4);
    overflow: visible;
    position: relative;
    z-index: 10;
}

#addStockModal .form-group label {
    display: block;
    margin-bottom: var(--spacing-2);
    font-weight: var(--font-weight-medium);
    color: var(--color-text);
}

#addStockModal .form-control {
    width: 100%;
    padding: var(--spacing-3);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    font-size: var(--text-base);
    background: var(--color-surface);
    color: var(--color-text);
    transition: border-color var(--transition-fast);
}

#addStockModal .form-control:focus {
    outline: none;
    border-color: var(--color-brand);
}

#addStockModal .form-actions {
    display: flex;
    gap: var(--spacing-3);
    justify-content: flex-end;
    margin-top: var(--spacing-4);
}

#addStockModal #stockSuggestions {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    margin-top: var(--spacing-1);
    z-index: calc(var(--z-modal) + 1);
    max-height: 300px;
    overflow-y: auto;
    box-shadow: var(--shadow-4);
}

#addStockModal .search-suggestion-item {
    cursor: pointer;
}

/* ============================================
   COMPARISON SECTIONS (NEW GROUPED LAYOUT)
   ============================================ */

/* Sticky Header */
.compare-sticky-header {
    position: sticky;
    top: var(--header-height);
    z-index: var(--z-sticky);
    background: var(--color-surface);
    border-bottom: 2px solid var(--color-border);
    box-shadow: var(--shadow-2);
    margin-bottom: var(--spacing-4);
}

.compare-sticky-header-inner {
    display: grid;
    grid-template-columns: 200px repeat(4, 1fr);
    padding: var(--spacing-3) var(--spacing-4);
    gap: var(--spacing-4);
    align-items: center;
}

.compare-sticky-label {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    font-weight: var(--font-weight-medium);
}

.compare-sticky-cell {
    text-align: center;
}

.compare-sticky-cell strong {
    display: block;
    font-size: var(--text-lg);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    margin-bottom: var(--spacing-1);
}

.compare-sticky-cell small {
    display: block;
    font-size: var(--text-xs);
    color: var(--color-text-secondary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Section Cards */
.compare-section-card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    margin-bottom: var(--spacing-4);
    overflow: hidden;
    transition: box-shadow var(--transition-fast);
}

.compare-section-card:hover {
    box-shadow: var(--shadow-2);
}

.compare-section-header {
    padding: var(--spacing-4) var(--spacing-5);
    background: var(--color-surface-2);
    border-bottom: 1px solid var(--color-border);
    position: relative;
}

.compare-section-title {
    font-size: var(--text-xl);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
    margin: 0 0 var(--spacing-1) 0;
}

.compare-section-description {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    margin: 0;
    font-style: italic;
}

.compare-section-toggle {
    position: absolute;
    right: var(--spacing-4);
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    color: var(--color-text-secondary);
    cursor: pointer;
    font-size: var(--text-lg);
    padding: var(--spacing-2);
    transition: transform var(--transition-fast), color var(--transition-fast);
}

.compare-section-toggle:hover {
    color: var(--color-text);
}

.compare-section-toggle i {
    transition: transform var(--transition-fast);
}

.compare-section-card.compare-section-collapsed .compare-section-toggle i {
    transform: rotate(-90deg);
}

.compare-section-content {
    padding: var(--spacing-4);
}

.compare-section-content.compare-section-collapsed {
    display: none;
}

/* Table Grid */
.compare-table-grid {
    display: flex;
    flex-direction: column;
}

.compare-table-row {
    display: grid;
    grid-template-columns: 200px repeat(4, 1fr);
    padding: var(--spacing-3) 0;
    border-bottom: 1px solid var(--color-border-light);
    transition: background-color var(--transition-fast);
}

.compare-table-row:last-child {
    border-bottom: none;
}

.compare-table-row:hover {
    background-color: var(--color-surface-2);
}

.compare-table-label {
    padding: var(--spacing-2) var(--spacing-4);
    font-weight: var(--font-weight-medium);
    color: var(--color-text);
    font-size: var(--text-sm);
    cursor: help;
    position: relative;
}

.compare-table-cell {
    padding: var(--spacing-2) var(--spacing-4);
    text-align: center;
    color: var(--color-text);
    font-size: var(--text-sm);
}

/* Special styling for Price & Market section */
.compare-section-card[data-group="price_market"] .compare-table-row:first-child .compare-table-cell {
    font-size: var(--text-lg);
    font-weight: var(--font-weight-semibold);
    color: var(--color-brand);
}

/* Performance section - color code positive/negative */
.compare-section-card[data-group="performance"] .compare-table-cell {
    font-weight: var(--font-weight-medium);
}

.compare-section-card[data-group="performance"] .compare-table-cell:not(:first-of-type) {
    position: relative;
}

/* Highlight best/worst values (optional - can be enhanced with JS) */
.compare-table-cell.highlight-best {
    background-color: rgba(16, 185, 129, 0.1);
    font-weight: var(--font-weight-semibold);
}

.compare-table-cell.highlight-worst {
    background-color: rgba(239, 68, 68, 0.1);
    font-weight: var(--font-weight-semibold);
}

/* Responsive adjustments */
@media (max-width: 1024px) {
    .compare-sticky-header-inner,
    .compare-table-row {
        grid-template-columns: 150px repeat(4, 1fr);
    }
    
    .compare-table-label {
        font-size: var(--text-xs);
        padding: var(--spacing-2) var(--spacing-2);
    }
    
    .compare-table-cell {
        font-size: var(--text-xs);
        padding: var(--spacing-2);
    }
}

@media (max-width: 768px) {
    .compare-sticky-header-inner,
    .compare-table-row {
        grid-template-columns: 120px repeat(4, 1fr);
        gap: var(--spacing-2);
    }
    
    .compare-section-header {
        padding: var(--spacing-3) var(--spacing-4);
    }
    
    .compare-section-title {
        font-size: var(--text-lg);
    }
}

/* ===== AI Chat: New Chat Starter Prompts (ticker strip above composer) ===== */
.tv-ai-chat-suggestions-wrap {
    display: flex;
    align-items: center;
    gap: 0;
    flex-shrink: 0;
    padding: var(--spacing-2) 0 var(--spacing-2) var(--spacing-4);
    border-top: 1px solid var(--color-border, #e5e7eb);
    background: var(--color-surface, #fff);
    position: relative;
    min-height: 0;
}

.tv-ai-chat-suggestions-wrap[hidden] {
    display: none !important;
}

.tv-ai-chat-suggestions-strip {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    padding: var(--spacing-1) var(--spacing-2);
}

/* Inner row: two copies of chips for seamless ticker loop */
.tv-ai-chat-suggestions-ticker-inner {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2);
    padding-right: var(--spacing-2);
    width: max-content;
    animation: tv-ai-chat-ticker-scroll 90s linear infinite;
}

@keyframes tv-ai-chat-ticker-scroll {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

@media (prefers-reduced-motion: reduce) {
    .tv-ai-chat-suggestions-ticker-inner {
        animation: none;
    }
}

.tv-ai-chat-suggestions-fade {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 24px;
    pointer-events: none;
    flex-shrink: 0;
}

.tv-ai-chat-suggestions-fade-left {
    left: var(--spacing-4);
    background: linear-gradient(to right, var(--color-surface, #fff) 0%, transparent 100%);
}

.tv-ai-chat-suggestions-fade-right {
    right: 44px;
    background: linear-gradient(to left, var(--color-surface, #fff) 0%, transparent 100%);
}

.tv-ai-chat-suggestion-chip {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
    padding: var(--spacing-1) var(--spacing-3);
    border-radius: var(--radius-lg, 8px);
    border: 1px solid var(--color-border, #e5e7eb);
    background: var(--color-surface, #fff);
    color: var(--color-text, #111);
    font-family: inherit;
    font-size: var(--text-sm, 14px);
    line-height: var(--line-height-normal, 1.5);
    white-space: nowrap;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.tv-ai-chat-suggestion-chip:hover {
    background: color-mix(in srgb, var(--color-brand, #674e99) 10%, var(--color-surface, #fff));
    border-color: color-mix(in srgb, var(--color-brand, #674e99) 30%, var(--color-border, #e5e7eb));
    color: var(--color-brand, #674e99);
}

.tv-ai-chat-suggestion-chip:focus {
    outline: none;
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-brand, #674e99) 40%, transparent);
}

.tv-ai-chat-suggestion-chip:focus-visible {
    outline: 2px solid var(--color-brand, #674e99);
    outline-offset: 2px;
}

.tv-ai-chat-suggestions-dismiss {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    padding: 0;
    margin-left: var(--spacing-1);
    border: none;
    border-radius: var(--radius-md, 6px);
    background: transparent;
    color: var(--color-text-tertiary, #6b7280);
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}

.tv-ai-chat-suggestions-dismiss:hover {
    background: color-mix(in srgb, var(--color-brand, #674e99) 8%, transparent);
    color: var(--color-text, #111);
}

.tv-ai-chat-suggestions-dismiss:focus {
    outline: none;
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-brand, #674e99) 40%, transparent);
}

/* TradingView embed chart placeholders (AI chat) */
.tv-tradingview-chart {
    width: 100%;
    height: 360px;
    min-height: 360px;
    margin-top: 0.75rem;
    margin-bottom: 0.75rem;
    border-radius: 8px;
    overflow: hidden;
    display: block;
}

.tv-tradingview-chart > div,
.tv-tradingview-chart iframe {
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    display: block;
    border: none;
}

.tv-ai-chat-message-body .tv-tradingview-chart {
    display: block;
}

/* ============================================
   USER DASHBOARD (live snapshot + news/earnings)
   ============================================ */
.user-dashboard-page {
    max-width: 1200px;
    margin: 0 auto;
    padding: var(--spacing-4) 0 var(--spacing-10);
    background: linear-gradient(180deg, rgba(103, 78, 153, 0.03) 0%, transparent 20%, transparent 100%);
}

/* When a dashboard modal is shown it is moved to body; stack it above Bootstrap's backdrop (1050) */
.user-dashboard-modal-in-body.modal.show {
    z-index: 1060;
}

.user-dashboard-grid {
    display: grid;
    gap: var(--spacing-6);
    margin-top: var(--spacing-6);
}

@media (min-width: 768px) {
    .user-dashboard-grid {
        grid-template-columns: 1fr 1fr;
    }
}

/* Dashboard page header – dynamic hero */
.dashboard-header {
    margin-bottom: var(--spacing-6);
    padding: 20px;
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.12) 0%, rgba(103, 78, 153, 0.04) 50%, #fff 100%);
    border-radius: var(--radius-xl);
    border: 1px solid rgba(103, 78, 153, 0.15);
    position: relative;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(103, 78, 153, 0.08);
}

.dashboard-header-accent {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--color-brand) 0%, var(--color-brand-light) 50%, var(--color-brand) 100%);
    background-size: 200% 100%;
    animation: dashboard-accent-shine 5s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
    .dashboard-header-accent {
        animation: none;
    }
}

@keyframes dashboard-accent-shine {
    0%, 100% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
}

.dashboard-header-inner {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-5);
    padding: var(--spacing-6) var(--spacing-6) var(--spacing-6);
}

.dashboard-header-icon {
    width: 56px;
    height: 56px;
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.2) 0%, rgba(103, 78, 153, 0.08) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.dashboard-header-icon i {
    font-size: 1.75rem;
    color: var(--color-brand);
}

.dashboard-title {
    font-size: var(--text-3xl);
    font-weight: 700;
    margin: 0 0 var(--spacing-2) 0;
    letter-spacing: -0.03em;
    line-height: 1.2;
    color: var(--color-text);
}

.dashboard-subtitle {
    font-size: var(--text-base);
    color: var(--color-text-secondary);
    margin: 0;
    line-height: 1.5;
}

/* Market Conditions (daily_market_conditions) */
.market-conditions-wrap { margin-top: var(--spacing-6); }
.market-conditions {
    border-radius: var(--radius-xl);
    border: 1px solid rgba(103, 78, 153, 0.14);
    background: linear-gradient(180deg, rgba(103, 78, 153, 0.05) 0%, rgba(255, 255, 255, 0.9) 45%, #fff 100%);
    overflow: hidden;
    box-shadow: 0 6px 22px rgba(103, 78, 153, 0.08);
}
.market-conditions-header {
    padding: var(--spacing-5) var(--spacing-6) var(--spacing-4);
    border-bottom: 1px solid rgba(103, 78, 153, 0.12);
    background: rgba(103, 78, 153, 0.03);
}
.market-conditions-title-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-4);
}
.market-conditions-title {
    margin: 0;
    font-size: var(--text-lg);
    font-weight: 800;
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2);
    letter-spacing: -0.01em;
}
.market-conditions-title i { color: var(--color-brand); }
.market-conditions-meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-3);
    margin-top: var(--spacing-2);
    color: var(--color-text-muted);
    font-size: var(--text-xs);
}
.market-conditions-meta-item { display: inline-flex; align-items: center; gap: 0.4rem; }
.market-conditions-body { padding: var(--spacing-5) var(--spacing-6) var(--spacing-6); }
.market-conditions-summary {
    margin: 0 0 var(--spacing-4);
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    line-height: 1.55;
}

.market-conditions-verdict {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.35rem 0.7rem;
    border-radius: 999px;
    font-weight: 800;
    letter-spacing: 0.06em;
    font-size: 0.72rem;
    border: 1px solid rgba(0, 0, 0, 0.08);
    background: rgba(255, 255, 255, 0.8);
}
.market-conditions-dot {
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: #94a3b8;
    box-shadow: 0 0 0 3px rgba(148, 163, 184, 0.18);
    animation: mcPulse 1.8s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
    .market-conditions-dot { animation: none; }
}
@keyframes mcPulse {
    0%, 100% { transform: scale(1); opacity: 0.95; }
    50% { transform: scale(1.18); opacity: 1; }
}
.market-conditions-verdict--riskon { color: #065f46; border-color: rgba(16, 185, 129, 0.35); background: rgba(16, 185, 129, 0.10); }
.market-conditions-verdict--riskon .market-conditions-dot { background: #10b981; box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.18); }
.market-conditions-verdict--neutral { color: #334155; border-color: rgba(148, 163, 184, 0.45); background: rgba(148, 163, 184, 0.12); }
.market-conditions-verdict--neutral .market-conditions-dot { background: #94a3b8; box-shadow: 0 0 0 3px rgba(148, 163, 184, 0.18); }
.market-conditions-verdict--cautious { color: #92400e; border-color: rgba(245, 158, 11, 0.38); background: rgba(245, 158, 11, 0.10); }
.market-conditions-verdict--cautious .market-conditions-dot { background: #f59e0b; box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.20); }
.market-conditions-verdict--riskoff { color: #991b1b; border-color: rgba(239, 68, 68, 0.35); background: rgba(239, 68, 68, 0.10); }
.market-conditions-verdict--riskoff .market-conditions-dot { background: #ef4444; box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.18); }

.market-conditions-chips { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: var(--spacing-5); }
.market-conditions-chip {
    display: inline-flex;
    align-items: center;
    padding: 0.35rem 0.6rem;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--color-text);
    border: 1px solid rgba(103, 78, 153, 0.16);
    background: rgba(103, 78, 153, 0.06);
}

.market-conditions-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--spacing-4);
    margin-bottom: var(--spacing-5);
}
@media (min-width: 768px) {
    .market-conditions-grid { grid-template-columns: 1fr 1fr; }
}
.market-conditions-panel {
    border-radius: var(--radius-lg);
    border: 1px solid rgba(0, 0, 0, 0.06);
    background: #fff;
    padding: var(--spacing-4);
}
.market-conditions-panel-title {
    font-weight: 800;
    font-size: var(--text-sm);
    margin-bottom: var(--spacing-3);
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
}
.market-conditions-panel--risks .market-conditions-panel-title i { color: var(--color-danger); }
.market-conditions-panel--opps .market-conditions-panel-title i { color: var(--color-info); }

.market-conditions-list { margin: 0; padding-left: 1.1rem; color: var(--color-text-secondary); font-size: var(--text-sm); }
.market-conditions-list li { margin: 0.35rem 0; }

.market-conditions-accordion .accordion-item { border-radius: var(--radius-lg); overflow: hidden; border: 1px solid rgba(0,0,0,0.06); }
.market-conditions-accordion .accordion-button { font-weight: 700; font-size: var(--text-sm); background: rgba(103, 78, 153, 0.03); }
.market-conditions-accordion .accordion-button:focus { box-shadow: 0 0 0 3px rgba(103, 78, 153, 0.16); }
.market-conditions-accordion .accordion-body { background: #fff; }

@media (max-width: 767px) {
    .dashboard-header-inner {
        flex-direction: column;
        gap: var(--spacing-4);
        padding: var(--spacing-5);
    }
    .dashboard-title {
        font-size: var(--text-2xl);
    }
}

.dashboard-alert {
    padding: var(--spacing-4);
    border-radius: var(--radius-lg);
    margin-bottom: var(--spacing-4);
}

.dashboard-alert-warning {
    background: linear-gradient(135deg, rgba(245, 158, 11, 0.1) 0%, rgba(245, 158, 11, 0.04) 100%);
    color: var(--color-warning-dark);
    border: 1px solid rgba(245, 158, 11, 0.3);
    border-left: 4px solid var(--color-warning);
}

/* Cards – accent strips, icons, depth */
.dashboard-card {
    position: relative;
    background: var(--color-surface);
    border-radius: var(--radius-xl);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06), 0 1px 3px rgba(0, 0, 0, 0.04);
    border: 1px solid var(--color-border-light);
    overflow: hidden;
    margin-bottom: var(--spacing-6);
    transition: box-shadow 0.25s ease, transform 0.2s ease, border-color 0.2s ease;
    padding:20px;
}

.dashboard-card:hover {
    box-shadow: 0 8px 28px rgba(103, 78, 153, 0.1), 0 4px 12px rgba(0, 0, 0, 0.06);
    border-color: rgba(103, 78, 153, 0.2);
}

.dashboard-card-market::before,
.dashboard-card-news::before,
.dashboard-card-earnings::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    z-index: 0;
}

.dashboard-card-market::before {
    background: linear-gradient(90deg, var(--color-brand), var(--color-brand-light));
}

.dashboard-card-news::before {
    background: linear-gradient(90deg, var(--color-info), var(--color-info-light));
}

.dashboard-card-earnings::before {
    background: linear-gradient(90deg, var(--color-success), var(--color-success-light));
}

/* Watchlist + Portfolio side-by-side grid */
.dashboard-watchlist-portfolio-grid {
    display: grid;
    gap: var(--spacing-5);
    margin-bottom: var(--spacing-6);
}

@media (min-width: 992px) {
    .dashboard-watchlist-portfolio-grid {
        grid-template-columns: 1fr 1fr;
    }
}

.dashboard-card-watchlist::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    z-index: 0;
    background: linear-gradient(90deg, var(--color-amber, #f59e0b), rgba(245, 158, 11, 0.4));
}

.dashboard-card-portfolio::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    z-index: 0;
    background: linear-gradient(90deg, var(--color-info, #3b82f6), rgba(59, 130, 246, 0.4));
}

.dashboard-card-header-portfolio .dashboard-card-title-icon {
    background: rgba(59, 130, 246, 0.15);
    color: var(--color-info);
}

.dashboard-card-header-watchlist .dashboard-card-title-icon {
    background: rgba(245, 158, 11, 0.15);
    color: var(--color-amber, #f59e0b);
}

.dashboard-card-picks::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    z-index: 0;
    background: linear-gradient(90deg, var(--color-brand, #674e99), rgba(103, 78, 153, 0.4));
}

.dashboard-card-header-picks .dashboard-card-title-icon {
    background: rgba(103, 78, 153, 0.15);
    color: var(--color-brand);
}

.dashboard-card-collapsible .dashboard-card-header {
    border-bottom: 1px solid var(--color-border);
    padding: 0;
    position: relative;
}

.dashboard-card-toggle {
    width: 100%;
    padding: var(--spacing-4) var(--spacing-5);
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--spacing-2);
    background: transparent;
    border: none;
    cursor: pointer;
    text-align: left;
    color: inherit;
    font: inherit;
    transition: background-color 0.2s ease;
}

.dashboard-card-toggle:hover {
    background: rgba(103, 78, 153, 0.05);
}

.dashboard-card-toggle:focus-visible {
    outline: 2px solid var(--color-brand);
    outline-offset: 2px;
}

.dashboard-card-title-icon {
    width: 40px;
    height: 40px;
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.dashboard-card-header-market .dashboard-card-title-icon {
    background: rgba(103, 78, 153, 0.12);
    color: var(--color-brand);
}

.dashboard-card-header-news .dashboard-card-title-icon {
    background: rgba(59, 130, 246, 0.12);
    color: var(--color-info);
}

.dashboard-card-header-earnings .dashboard-card-title-icon {
    background: rgba(16, 185, 129, 0.12);
    color: var(--color-success);
}

.dashboard-card-title-icon i {
    font-size: 1.25rem;
}

.dashboard-card-title {
    font-size: var(--text-lg);
    font-weight: 600;
}

.dashboard-card-toggle .dashboard-card-title {
    flex: 1;
    margin: 0;
    min-width: 0;
}

.dashboard-card-chevron {
    font-size: 1.25rem;
    color: var(--color-text-muted);
    transition: transform 0.25s ease;
    flex-shrink: 0;
}

.dashboard-card-toggle[aria-expanded="false"] .dashboard-card-chevron {
    transform: rotate(-90deg);
}

.dashboard-card-badge {
    font-size: var(--text-xs);
    color: var(--color-text-muted);
}

.dashboard-card-body {
    padding: var(--spacing-5);
}

.dashboard-pulse-wrap {
    margin-bottom: var(--spacing-4, 1rem);
}

.dashboard-market-insight {
    font-size: var(--text-sm, 0.875rem);
    color: var(--color-text-secondary, #64748b);
    margin: 0 0 var(--spacing-4, 1rem);
}

.dashboard-indices {
    margin-bottom: var(--spacing-4, 1rem);
}

.dashboard-indices-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: var(--spacing-3);
}

.dashboard-index-chip {
    padding: var(--spacing-4);
    background: linear-gradient(145deg, #fff 0%, rgba(103, 78, 153, 0.04) 100%);
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border-light);
    display: flex;
    flex-direction: column;
    gap: var(--spacing-1);
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.dashboard-index-chip:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(103, 78, 153, 0.1);
    border-color: rgba(103, 78, 153, 0.2);
}

.dashboard-index-name {
    font-size: var(--text-xs);
    color: var(--color-text-secondary);
    font-weight: 500;
}

.dashboard-index-price {
    font-weight: 700;
    font-size: var(--text-lg);
    letter-spacing: -0.02em;
}

.dashboard-index-change.positive {
    color: var(--color-success);
    font-size: var(--text-sm);
    font-weight: 600;
}

.dashboard-index-change.negative {
    color: var(--color-danger);
    font-size: var(--text-sm);
    font-weight: 600;
}

.dashboard-movers {
    display: grid;
    gap: var(--spacing-4, 1rem);
    margin-top: var(--spacing-4, 1rem);
}

@media (min-width: 768px) {
    .dashboard-movers {
        grid-template-columns: 1fr 1fr;
    }
}

.dashboard-movers-col {
    min-width: 0;
}

.dashboard-movers-title {
    font-size: var(--text-base);
    font-weight: 700;
    margin: 0 0 var(--spacing-3) 0;
    padding: var(--spacing-2) var(--spacing-3);
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
}

.dashboard-movers-col:first-child .dashboard-movers-title {
    background: linear-gradient(135deg, rgba(16, 185, 129, 0.1) 0%, rgba(16, 185, 129, 0.04) 100%);
    color: var(--color-success-dark);
    border-left: 3px solid var(--color-success);
}

.dashboard-movers-col:last-child .dashboard-movers-title {
    background: linear-gradient(135deg, rgba(239, 68, 68, 0.08) 0%, rgba(239, 68, 68, 0.03) 100%);
    color: var(--color-danger-dark);
    border-left: 3px solid var(--color-danger);
}

.dashboard-list-table {
    width: 100%;
    font-size: var(--text-sm, 0.875rem);
    border-radius: var(--border-radius, 8px);
    overflow: hidden;
}

.dashboard-list-table th,
.dashboard-list-table td {
    padding: var(--spacing-2, 0.5rem) var(--spacing-3, 0.75rem);
}

.dashboard-list-table thead {
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.08) 0%, rgba(103, 78, 153, 0.04) 100%);
}

.dashboard-list-table tbody tr {
    transition: background-color 0.2s ease;
}

.dashboard-list-table tbody tr:nth-child(even) {
    background: rgba(103, 78, 153, 0.02);
}

.dashboard-list-table tbody tr:hover {
    background: rgba(103, 78, 153, 0.06);
}

.dashboard-list-table .positive {
    color: var(--color-success);
    font-weight: 600;
}

.dashboard-list-table .negative {
    color: var(--color-danger);
    font-weight: 600;
}

/* Watchlist tabs */
.watchlist-tabs-wrap {
    margin-top: var(--spacing-2, 0.5rem);
}

.watchlist-tabs-header {
    margin-bottom: var(--spacing-4, 1rem);
}

.watchlist-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-1);
    list-style: none;
    margin: 0;
    padding: 0;
    border-bottom: 1px solid var(--color-border-light);
}

.watchlist-tab-item {
    margin: 0;
}

.watchlist-tab-btn {
    padding: var(--spacing-2, 0.5rem) var(--spacing-4, 1rem);
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    color: var(--color-text-secondary);
    font-size: var(--text-sm, 0.875rem);
    font-weight: 500;
    cursor: pointer;
    transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease;
    margin-bottom: -1px;
    border-radius: var(--radius-md) var(--radius-md) 0 0;
}

.watchlist-tab-btn:hover {
    color: var(--color-brand);
    background: rgba(103, 78, 153, 0.06);
}

.watchlist-tab-btn.active {
    color: var(--color-brand);
    border-bottom-color: var(--color-brand);
    background: rgba(103, 78, 153, 0.04);
}

.watchlist-tab-btn-add {
    padding: var(--spacing-2) var(--spacing-3);
    color: var(--color-success);
    font-size: 1.25rem;
}

.watchlist-tab-btn-add:hover {
    color: var(--color-success);
    background: rgba(16, 185, 129, 0.08);
}

.watchlist-panels {
    position: relative;
    min-height: 80px;
}

.watchlist-panel {
    display: none;
}

.watchlist-panel.active {
    display: block;
}

.watchlist-panel-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--spacing-3);
    margin-bottom: var(--spacing-4);
}

.watchlist-add-ticker-form {
    display: flex;
    gap: var(--spacing-2);
    align-items: center;
}

.watchlist-ticker-input {
    width: 160px;
    max-width: 100%;
}

.watchlist-quotes-wrap {
    min-height: 40px;
}

.watchlist-empty,
.watchlist-empty-state {
    padding: var(--spacing-4);
    text-align: center;
}

.watchlist-quotes-table .watchlist-price,
.watchlist-quotes-table .watchlist-change {
    font-variant-numeric: tabular-nums;
}

.watchlist-ticker-cell {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
}

.watchlist-ticker-logo {
    width: 32px;
    height: 32px;
    border-radius: var(--radius-md);
    object-fit: contain;
    flex-shrink: 0;
    background: rgba(255, 255, 255, 0.95);
    border: 1px solid var(--color-border-light);
}

.watchlist-ticker-logo-placeholder {
    width: 32px;
    height: 32px;
    border-radius: var(--radius-md);
    background: linear-gradient(135deg, var(--color-brand) 0%, var(--color-brand-dark) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: var(--text-sm);
    font-weight: 700;
    flex-shrink: 0;
}

.watchlist-ticker-cell a {
    font-weight: 600;
    text-decoration: none;
    color: var(--color-text);
}

.watchlist-ticker-cell a:hover {
    color: var(--color-brand);
}

/* Watchlist ticker autocomplete – compact, dashboard-style */
.watchlist-add-ticker-form {
    position: relative;
}

.watchlist-ticker-suggestions {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    margin-top: var(--spacing-1);
    background: var(--color-surface);
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-md);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1), 0 2px 8px rgba(103, 78, 153, 0.06);
    max-height: 280px;
    overflow-y: auto;
    z-index: 100;
    display: none;
    min-width: 220px;
}

.watchlist-ticker-suggestions.active {
    display: block;
}

.watchlist-ticker-suggestion-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    padding: var(--spacing-2) var(--spacing-3);
    cursor: pointer;
    border: none;
    width: 100%;
    text-align: left;
    background: transparent;
    color: var(--color-text);
    font: inherit;
    border-bottom: 1px solid var(--color-border-light);
    transition: background-color 0.15s ease;
}

.watchlist-ticker-suggestion-item:last-child {
    border-bottom: none;
}

.watchlist-ticker-suggestion-item:hover,
.watchlist-ticker-suggestion-item.active {
    background: rgba(103, 78, 153, 0.08);
}

.watchlist-ticker-suggestion-logo {
    width: 28px;
    height: 28px;
    border-radius: var(--radius-sm);
    object-fit: cover;
    flex-shrink: 0;
}

.watchlist-ticker-suggestion-text {
    flex: 1;
    min-width: 0;
}

.watchlist-ticker-suggestion-ticker {
    font-weight: 600;
    font-size: var(--text-sm);
    color: var(--color-brand);
}

.watchlist-ticker-suggestion-name {
    font-size: var(--text-xs);
    color: var(--color-text-secondary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Portfolio tabs and panels (mirror watchlist) */
.portfolio-tabs-wrap { margin-top: var(--spacing-2); }
.portfolio-tabs-header { margin-bottom: var(--spacing-4); }
.portfolio-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-1);
    list-style: none;
    margin: 0;
    padding: 0;
    border-bottom: 1px solid var(--color-border-light);
}
.portfolio-tab-item { margin: 0; }
.portfolio-tab-btn {
    padding: var(--spacing-2) var(--spacing-4);
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    color: var(--color-text-secondary);
    font-size: var(--text-sm);
    font-weight: 500;
    cursor: pointer;
    transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease;
    margin-bottom: -1px;
    border-radius: var(--radius-md) var(--radius-md) 0 0;
}
.portfolio-tab-btn:hover { color: var(--color-info); background: rgba(59, 130, 246, 0.06); }
.portfolio-tab-btn.active {
    color: var(--color-info);
    border-bottom-color: var(--color-info);
    background: rgba(59, 130, 246, 0.04);
}
.portfolio-tab-btn-add {
    padding: var(--spacing-2) var(--spacing-3);
    color: var(--color-success);
    font-size: 1.25rem;
}
.portfolio-tab-btn-add:hover { background: rgba(16, 185, 129, 0.08); }
.portfolio-panels { position: relative; min-height: 80px; }
.portfolio-panel { display: none; }
.portfolio-panel.active { display: block; }
.portfolio-panel-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--spacing-3);
    margin-bottom: var(--spacing-4);
}
.portfolio-add-ticker-form { position: relative; display: flex; gap: var(--spacing-2); align-items: center; }
.portfolio-ticker-input { width: 160px; max-width: 100%; }
.portfolio-items-wrap { min-height: 40px; }
.portfolio-empty, .portfolio-empty-state { padding: var(--spacing-4); text-align: center; }
.portfolio-items-table .portfolio-return { font-variant-numeric: tabular-nums; font-size: var(--text-sm); }
.portfolio-items-table .portfolio-value { font-variant-numeric: tabular-nums; font-size: var(--text-sm); }
.portfolio-items-table .portfolio-change { font-variant-numeric: tabular-nums; font-size: var(--text-sm); }
.portfolio-items-table .portfolio-change.portfolio-change-positive { color: var(--color-success); }
.portfolio-items-table .portfolio-change.portfolio-change-negative { color: var(--color-danger); }
.portfolio-ticker-suggestions {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    margin-top: var(--spacing-1);
    background: var(--color-surface);
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-md);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
    max-height: 280px;
    overflow-y: auto;
    z-index: 100;
    display: none;
    min-width: 220px;
}
.portfolio-ticker-suggestions.active { display: block; }
.portfolio-ticker-suggestion-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    padding: var(--spacing-2) var(--spacing-3);
    cursor: pointer;
    border: none;
    width: 100%;
    text-align: left;
    background: transparent;
    color: var(--color-text);
    font: inherit;
    border-bottom: 1px solid var(--color-border-light);
    transition: background-color 0.15s ease;
}
.portfolio-ticker-suggestion-item:last-child { border-bottom: none; }
.portfolio-ticker-suggestion-item:hover,
.portfolio-ticker-suggestion-item.active { background: rgba(59, 130, 246, 0.08); }
.portfolio-ticker-suggestion-logo { width: 28px; height: 28px; border-radius: var(--radius-sm); object-fit: cover; flex-shrink: 0; }
.portfolio-ticker-suggestion-text { flex: 1; min-width: 0; }
.portfolio-ticker-suggestion-ticker { font-weight: 600; font-size: var(--text-sm); color: var(--color-info); }
.portfolio-ticker-suggestion-name { font-size: var(--text-xs); color: var(--color-text-secondary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Portfolio modals (mirror watchlist modals) */
.portfolio-modal .modal-content { border-radius: var(--radius-xl); border: 1px solid var(--color-border-light); box-shadow: 0 12px 40px rgba(0, 0, 0, 0.12); overflow: hidden; }
.portfolio-modal .modal-dialog { max-width: 420px; }
.portfolio-modal-content { position: relative; background: var(--color-surface); }
.portfolio-modal-accent { position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, var(--color-info), rgba(59, 130, 246, 0.5)); }
.portfolio-modal-accent-danger { background: linear-gradient(90deg, var(--color-danger), rgba(239, 68, 68, 0.5)); }
.portfolio-modal-header { padding: var(--spacing-5) var(--spacing-5) var(--spacing-4); border-bottom: 1px solid var(--color-border-light); background: rgba(59, 130, 246, 0.03); }
.portfolio-modal-delete .portfolio-modal-header { background: rgba(239, 68, 68, 0.04); }
.portfolio-modal-title { font-size: var(--text-lg); font-weight: 700; margin: 0; display: flex; align-items: center; gap: var(--spacing-2); }
.portfolio-modal-title i { color: var(--color-info); }
.portfolio-modal-delete .portfolio-modal-title i { color: var(--color-danger); }
.portfolio-modal-body { padding: var(--spacing-5); }
.portfolio-modal-hint, .portfolio-modal-message { font-size: var(--text-sm); color: var(--color-text-muted); margin: 0 0 var(--spacing-4); }
.portfolio-modal-input { border-radius: var(--radius-md); border: 1px solid var(--color-border); padding: var(--spacing-3) var(--spacing-4); font-size: 1rem; }
.portfolio-modal-input:focus { border-color: var(--color-info); box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15); }
.portfolio-modal-error { margin-top: var(--spacing-3); font-size: var(--text-sm); color: var(--color-danger); min-height: 1.25em; }
.portfolio-modal-footer { padding: var(--spacing-4) var(--spacing-5); border-top: 1px solid var(--color-border-light); gap: var(--spacing-3); }

/* Watchlist modals – styled to match dashboard */
.watchlist-modal .modal-content {
    border-radius: var(--radius-xl, 12px);
    border: 1px solid var(--color-border-light);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.12), 0 4px 16px rgba(103, 78, 153, 0.08);
    overflow: hidden;
}

.watchlist-modal .modal-dialog {
    max-width: 420px;
}

.watchlist-modal-content {
    position: relative;
    background: var(--color-surface);
}

.watchlist-modal-accent {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--color-amber, #f59e0b), rgba(245, 158, 11, 0.5));
}

.watchlist-modal-accent-danger {
    background: linear-gradient(90deg, var(--color-danger), rgba(239, 68, 68, 0.5));
}

.watchlist-modal-header {
    padding: var(--spacing-5, 1.25rem) var(--spacing-5) var(--spacing-4);
    border-bottom: 1px solid var(--color-border-light);
    background: rgba(103, 78, 153, 0.03);
}

.watchlist-modal-delete .watchlist-modal-header {
    background: rgba(239, 68, 68, 0.04);
}

.watchlist-modal-title {
    font-size: var(--text-lg, 1.125rem);
    font-weight: 700;
    color: var(--color-text);
    margin: 0;
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
}

.watchlist-modal-title i {
    color: var(--color-amber);
}

.watchlist-modal-delete .watchlist-modal-title i {
    color: var(--color-danger);
}

.watchlist-modal-close {
    opacity: 0.6;
}

.watchlist-modal-close:hover {
    opacity: 1;
}

.watchlist-modal-body {
    padding: var(--spacing-5);
}

.watchlist-modal-hint {
    font-size: var(--text-sm);
    color: var(--color-text-muted);
    margin: 0 0 var(--spacing-4);
}

.watchlist-modal-input {
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    padding: var(--spacing-3) var(--spacing-4);
    font-size: 1rem;
}

.watchlist-modal-input:focus {
    border-color: var(--color-brand);
    box-shadow: 0 0 0 3px rgba(103, 78, 153, 0.15);
}

.watchlist-modal-error {
    margin-top: var(--spacing-3);
    font-size: var(--text-sm);
    color: var(--color-danger);
    min-height: 1.25em;
}

.watchlist-modal-message {
    margin: 0;
    font-size: var(--text-base);
    color: var(--color-text-secondary);
    line-height: 1.5;
}

.watchlist-modal-footer {
    padding: var(--spacing-4) var(--spacing-5);
    border-top: 1px solid var(--color-border-light);
    gap: var(--spacing-3);
}

.watchlist-modal-footer .btn {
    padding: var(--spacing-2, 0.5rem) var(--spacing-4);
    font-weight: 600;
    border-radius: var(--radius-md);
}

.watchlist-modal-btn-create,
.watchlist-modal-btn-delete {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2);
}

.dashboard-list {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-3, 0.75rem);
}

.dashboard-list-item {
    padding: var(--spacing-3) var(--spacing-3);
    border-bottom: 1px solid var(--color-border-light);
    transition: background-color 0.2s ease, border-left-color 0.2s ease;
    border-radius: var(--radius-md);
    margin-bottom: 2px;
    border-left: 3px solid transparent;
}

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

.dashboard-list-item:hover {
    background: rgba(103, 78, 153, 0.04);
    border-left-color: var(--color-brand);
}

.dashboard-wire-item:hover .dashboard-wire-headline a,
.dashboard-earnings-item:hover .dashboard-earnings-ticker {
    color: var(--color-brand, #674e99);
}

.dashboard-wire-meta,
.dashboard-wire-headline {
    margin-bottom: var(--spacing-1, 0.25rem);
}

.dashboard-wire-time {
    font-size: var(--text-xs, 0.75rem);
    color: var(--color-text-secondary, #64748b);
    margin-right: var(--spacing-2, 0.5rem);
}

.dashboard-wire-snippet {
    font-size: var(--text-sm, 0.875rem);
    color: var(--color-text-secondary, #64748b);
    margin: var(--spacing-1, 0.25rem) 0 0 0;
}

.dashboard-earnings-item {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--spacing-2, 0.5rem);
}

.dashboard-earnings-ticker {
    font-weight: 600;
    text-decoration: none;
    color: var(--color-text, inherit);
}

.dashboard-earnings-date,
.dashboard-earnings-time {
    font-size: var(--text-sm, 0.875rem);
    color: var(--color-text-secondary, #64748b);
}

.dashboard-earnings-prediction {
    margin-left: auto;
    color: var(--color-brand, #674e99);
}

.dashboard-feed-footer {
    margin-top: var(--spacing-4, 1rem);
    position: relative;
    z-index: 1;
}

.dashboard-feed-footer .dashboard-see-more {
    display: inline-block;
    border-radius: 9999px;
    font-size:1rem;
    font-weight: 500;
    padding: var(--spacing-2, 0.5rem) var(--spacing-4, 1rem);
    min-height: 40px;
    line-height: 1rem;
    text-decoration: none;
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.15s ease;
    -webkit-tap-highlight-color: transparent;
    padding-top:10px;
    width:100%;
}

.dashboard-feed-footer .dashboard-see-more:hover,
.dashboard-feed-footer .dashboard-see-more:focus {
    background: color-mix(in srgb, var(--color-brand, #674e99) 12%, transparent);
    border-color: var(--color-brand, #674e99);
    color: #FFF;
    transform: translateY(-1px);
    text-decoration: none;
}

.dashboard-feed-footer .dashboard-see-more:focus-visible {
    outline: 2px solid var(--color-brand, #674e99);
    outline-offset: 2px;
}

/* Followed Picks */
.dashboard-picks-list {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-4);
}

.dashboard-pick-item {
    padding: var(--spacing-4);
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.03) 0%, rgba(255, 255, 255, 0.5) 100%);
    border: 1px solid rgba(103, 78, 153, 0.15);
    border-radius: var(--radius-lg);
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

.dashboard-pick-item::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 3px;
    height: 100%;
    background: linear-gradient(180deg, var(--color-brand) 0%, var(--color-brand-light) 100%);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.dashboard-pick-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1), 0 4px 12px rgba(103, 78, 153, 0.12);
    border-color: rgba(103, 78, 153, 0.3);
}

.dashboard-pick-item:hover::before {
    opacity: 1;
}

.dashboard-pick-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--spacing-3);
    margin-bottom: var(--spacing-3);
    flex-wrap: wrap;
}

.dashboard-pick-ticker {
    display: flex;
    align-items: center;
    gap: var(--spacing-3);
    flex: 1;
    min-width: 0;
}

.dashboard-pick-logo,
.dashboard-pick-logo-placeholder {
    width: 40px;
    height: 40px;
    border-radius: var(--radius-md);
    flex-shrink: 0;
    object-fit: contain;
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.1) 0%, rgba(103, 78, 153, 0.05) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(103, 78, 153, 0.15);
}

.dashboard-pick-logo-placeholder span {
    font-size: var(--text-lg);
    font-weight: 700;
    color: var(--color-brand);
    text-transform: uppercase;
}

.dashboard-pick-ticker-info {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-1);
    min-width: 0;
}

.dashboard-pick-ticker-link {
    font-size: var(--text-lg);
    font-weight: 700;
    color: var(--color-text);
    text-decoration: none;
    letter-spacing: -0.01em;
    transition: color 0.2s ease;
}

.dashboard-pick-ticker-link:hover {
    color: var(--color-brand);
}

.dashboard-pick-date {
    font-size: var(--text-xs);
    color: var(--color-text-secondary);
}

.dashboard-pick-badges {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    flex-wrap: wrap;
}

.dashboard-pick-badge {
    font-size: var(--text-xs);
    font-weight: 700;
    text-transform: uppercase;
    padding: 4px 10px;
    border-radius: var(--radius-sm);
    letter-spacing: 0.05em;
    white-space: nowrap;
}

.dashboard-pick-badge-direction {
    border: 1px solid;
}

.dashboard-pick-badge-long {
    background: rgba(16, 185, 129, 0.1);
    color: var(--color-success);
    border-color: rgba(16, 185, 129, 0.3);
}

.dashboard-pick-badge-short {
    background: rgba(239, 68, 68, 0.1);
    color: var(--color-danger);
    border-color: rgba(239, 68, 68, 0.3);
}

.dashboard-pick-badge-tier {
    background: rgba(103, 78, 153, 0.1);
    color: var(--color-brand);
    border: 1px solid rgba(103, 78, 153, 0.3);
}

.dashboard-pick-badge-tier-alpha {
    background: rgba(168, 85, 247, 0.1);
    color: #9333ea;
    border-color: rgba(168, 85, 247, 0.3);
}

.dashboard-pick-badge-tier-paid {
    background: rgba(59, 130, 246, 0.1);
    color: var(--color-info);
    border-color: rgba(59, 130, 246, 0.3);
}

.dashboard-pick-badge-tier-free {
    background: rgba(107, 114, 128, 0.1);
    color: #4b5563;
    border-color: rgba(107, 114, 128, 0.3);
}

.dashboard-pick-badge-status {
    background: rgba(107, 114, 128, 0.1);
    color: #4b5563;
    border: 1px solid rgba(107, 114, 128, 0.3);
}

.dashboard-pick-badge-status.status-active {
    background: rgba(16, 185, 129, 0.1);
    color: var(--color-success);
    border-color: rgba(16, 185, 129, 0.3);
}

.dashboard-pick-badge-status.status-success {
    background: rgba(16, 185, 129, 0.15);
    color: var(--color-success);
    border-color: rgba(16, 185, 129, 0.4);
}

.dashboard-pick-badge-status.status-danger {
    background: rgba(239, 68, 68, 0.1);
    color: var(--color-danger);
    border-color: rgba(239, 68, 68, 0.3);
}

.dashboard-pick-badge-status.status-pending {
    background: rgba(245, 158, 11, 0.1);
    color: var(--color-warning);
    border-color: rgba(245, 158, 11, 0.3);
}

.dashboard-pick-details {
    margin-top: var(--spacing-3);
    padding-top: var(--spacing-3);
    border-top: 1px solid var(--color-border-light);
}

.dashboard-pick-details-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: var(--spacing-3);
    margin-bottom: var(--spacing-3);
}

.dashboard-pick-detail {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-1);
}

.dashboard-pick-detail-label {
    font-size: var(--text-xs);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-secondary);
    font-weight: 600;
}

.dashboard-pick-detail-value {
    font-size: var(--text-base);
    font-weight: 700;
    color: var(--color-text);
    letter-spacing: -0.01em;
}

.dashboard-pick-detail-value-positive {
    color: var(--color-success);
}

.dashboard-pick-current-price {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    padding: var(--spacing-2) var(--spacing-3);
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.05) 0%, transparent 100%);
    border-radius: var(--radius-md);
    flex-wrap: wrap;
}

.dashboard-pick-current-price-label {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    font-weight: 500;
}

.dashboard-pick-current-price-value {
    font-size: var(--text-lg);
    font-weight: 700;
    color: var(--color-text);
    letter-spacing: -0.01em;
}

.dashboard-pick-current-price-change {
    font-size: var(--text-sm);
    font-weight: 600;
    padding: 2px 8px;
    border-radius: var(--radius-sm);
}

.dashboard-pick-current-price-change.positive {
    color: var(--color-success);
    background: rgba(16, 185, 129, 0.1);
}

.dashboard-pick-current-price-change.negative {
    color: var(--color-danger);
    background: rgba(239, 68, 68, 0.1);
}

@media (max-width: 768px) {
    .dashboard-pick-header {
        flex-direction: column;
        align-items: flex-start;
    }
    
    .dashboard-pick-badges {
        width: 100%;
    }
    
    .dashboard-pick-details-grid {
        grid-template-columns: 1fr 1fr;
    }
}

/* =============================================================
   Profile Settings - Avatar Upload
   ============================================================= */

.avatar-upload-section {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-3);
}

.avatar-preview {
    display: flex;
    align-items: center;
    gap: var(--spacing-4);
    padding: var(--spacing-4);
    background: var(--color-surface-2);
    border-radius: var(--radius-lg);
    border: 2px solid var(--color-border-light);
}

.avatar-preview-image {
    width: 80px;
    height: 80px;
    border-radius: var(--radius-full);
    object-fit: cover;
    border: 3px solid var(--color-brand);
    box-shadow: 0 4px 12px rgba(103, 78, 153, 0.2);
    flex-shrink: 0;
}

.avatar-preview-info {
    flex: 1;
}

/* Profile form enhancements */
.user-settings-page .form-control[type="file"] {
    padding: var(--spacing-3);
    border: 2px dashed var(--color-border);
    border-radius: var(--radius-lg);
    background: var(--color-surface);
    transition: all var(--transition-base);
    cursor: pointer;
}

.user-settings-page .form-control[type="file"]:hover {
    border-color: var(--color-brand);
    background: rgba(103, 78, 153, 0.02);
}

.user-settings-page .form-control[type="file"]:focus {
    border-color: var(--color-brand);
    box-shadow: 0 0 0 3px rgba(103, 78, 153, 0.1);
    outline: none;
}

.user-settings-page select.form-control {
    padding: var(--spacing-3) var(--spacing-4);
    border: 2px solid var(--color-border-light);
    border-radius: var(--radius-lg);
    background: var(--color-surface);
    transition: all var(--transition-base);
    cursor: pointer;
}

.user-settings-page select.form-control:focus {
    border-color: var(--color-brand);
    box-shadow: 0 0 0 3px rgba(103, 78, 153, 0.1);
    outline: none;
}

.user-settings-page select.form-control:hover {
    border-color: rgba(103, 78, 153, 0.3);
}

/* Profile Settings Page */
.user-settings-page {
    max-width: 900px;
    margin: 0 auto;
}

.email-preferences-list {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-4);
}

.email-preference-item {
    padding: var(--spacing-4);
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.03) 0%, rgba(255, 255, 255, 0.5) 100%);
    border: 1px solid rgba(103, 78, 153, 0.15);
    border-radius: var(--radius-lg);
    transition: all 0.3s ease;
}

.email-preference-item:hover {
    border-color: rgba(103, 78, 153, 0.3);
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.05) 0%, rgba(255, 255, 255, 0.7) 100%);
}

.email-preference-item.disabled {
    opacity: 0.6;
    background: linear-gradient(135deg, rgba(107, 114, 128, 0.05) 0%, rgba(255, 255, 255, 0.3) 100%);
}

.email-preference-item.disabled:hover {
    border-color: rgba(107, 114, 128, 0.2);
}

.email-preference-unsubscribe {
    border-color: rgba(239, 68, 68, 0.2);
    background: linear-gradient(135deg, rgba(239, 68, 68, 0.05) 0%, rgba(255, 255, 255, 0.5) 100%);
}

.email-preference-unsubscribe:hover {
    border-color: rgba(239, 68, 68, 0.3);
    background: linear-gradient(135deg, rgba(239, 68, 68, 0.08) 0%, rgba(255, 255, 255, 0.7) 100%);
}

.email-preference-item .form-check-label {
    cursor: pointer;
    width: 100%;
}

.email-preference-item .form-check-label strong {
    display: block;
    margin-bottom: var(--spacing-1);
    color: var(--color-text);
}

.email-preference-item .form-check-label small {
    color: var(--color-text-secondary);
    font-size: var(--text-sm);
}

.email-preference-item input[type="checkbox"]:disabled + label {
    cursor: not-allowed;
    opacity: 0.7;
}

.dashboard-feed-callout {
    margin-top: var(--spacing-4);
    padding: var(--spacing-3) var(--spacing-4);
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.06) 0%, var(--color-surface-2) 100%);
    border-radius: var(--radius-md);
    border: 1px solid rgba(103, 78, 153, 0.12);
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
}

.dashboard-callout-text {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2, 0.5rem);
}

.dashboard-list-empty {
    padding: var(--spacing-4, 1rem);
    text-align: center;
    color: var(--color-text-secondary, #64748b);
}

.dashboard-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-3);
    margin-top: var(--spacing-8);
    padding-top: var(--spacing-6);
    border-top: 1px solid var(--color-border);
}

.dashboard-action-btn {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2);
    padding: var(--spacing-3) var(--spacing-5);
    font-size: var(--text-sm);
    font-weight: 600;
    text-decoration: none;
    color: var(--color-text-secondary);
    background: var(--color-surface-2);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-full);
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease;
}

.dashboard-action-btn:hover {
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.1) 0%, rgba(103, 78, 153, 0.05) 100%);
    border-color: var(--color-brand);
    color: var(--color-brand);
    box-shadow: 0 2px 8px rgba(103, 78, 153, 0.15);
    transform: translateY(-1px);
}

.dashboard-action-btn i {
    font-size: 1.125rem;
}

.dashboard-action-btn-admin:hover {
    border-color: var(--color-warning);
    color: var(--color-warning-dark);
    background: linear-gradient(135deg, rgba(245, 158, 11, 0.1) 0%, rgba(245, 158, 11, 0.04) 100%);
}

/* Sentiment dot (dashboard wire list) */
.sentiment-dot {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    vertical-align: middle;
}

.sentiment-dot.sentiment-positive {
    background: rgba(16, 185, 129, 0.85);
}

.sentiment-dot.sentiment-negative {
    background: rgba(239, 68, 68, 0.85);
}

.sentiment-dot.sentiment-neutral {
    background: rgba(2, 26, 56, 0.35);
}

.dashboard-loading {
    opacity: 0.7;
    pointer-events: none;
}

/* =========================================================
   User layout – Subnav dropdowns (Notifications, Messages, Settings)
   ========================================================= */

.user-subnav-dropdown .user-subnav-link.dropdown-toggle {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2);
}

.user-subnav-dropdown .user-subnav-badge {
    margin-left: 0;
}

/* Dropdown toggle when open */
.user-subnav-dropdown.show .user-subnav-link.dropdown-toggle {
    color: var(--color-brand);
    background: rgba(103, 78, 153, 0.08);
}

/* Shared dropdown panel – all three (notifications, messages, settings) */
.user-notifications-dropdown-menu,
#user-notifications-dropdown,
.user-messages-dropdown-menu,
#user-messages-dropdown,
.user-settings-dropdown-menu,
#user-settings-dropdown {
    z-index: calc(var(--z-sticky) + 10);
    padding: var(--spacing-2);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.1), 0 4px 12px rgba(103, 78, 153, 0.06);
    background: var(--color-surface);
}

.user-notifications-dropdown-menu,
#user-notifications-dropdown,
.user-messages-dropdown-menu,
#user-messages-dropdown {
    max-height: 360px;
    overflow-y: auto;
    min-width: 300px;
}

.user-settings-dropdown-menu,
#user-settings-dropdown {
    min-width: 240px;
}

/* Dropdown items – base */
.user-notifications-dropdown-menu .dropdown-item,
#user-notifications-dropdown .dropdown-item,
.user-messages-dropdown-menu .dropdown-item,
#user-messages-dropdown .dropdown-item,
.user-settings-dropdown-menu .dropdown-item,
#user-settings-dropdown .dropdown-item {
    padding: var(--spacing-2) var(--spacing-3);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    transition: background var(--transition-base), color var(--transition-base);
}

.user-notifications-dropdown-menu .dropdown-item:hover,
#user-notifications-dropdown .dropdown-item:hover,
.user-messages-dropdown-menu .dropdown-item:hover,
#user-messages-dropdown .dropdown-item:hover,
.user-settings-dropdown-menu .dropdown-item:hover,
#user-settings-dropdown .dropdown-item:hover {
    background: var(--color-surface-2);
    color: var(--color-brand);
}

/* Dividers */
.user-notifications-dropdown-menu .dropdown-divider,
#user-notifications-dropdown .dropdown-divider,
.user-messages-dropdown-menu .dropdown-divider,
#user-messages-dropdown .dropdown-divider,
.user-settings-dropdown-menu .dropdown-divider,
#user-settings-dropdown .dropdown-divider {
    margin: var(--spacing-2) 0;
    border-color: var(--color-border-light);
}

/* Loading / empty text */
.user-notifications-dropdown-menu .dropdown-item-text,
#user-notifications-dropdown .dropdown-item-text,
.user-messages-dropdown-menu .dropdown-item-text,
#user-messages-dropdown .dropdown-item-text {
    padding: var(--spacing-3);
    font-size: var(--text-sm);
    color: var(--color-text-muted);
}

/* When moved to body (portal) */
.user-notifications-dropdown-menu.user-notifications-dropdown-portal,
#user-notifications-dropdown.user-notifications-dropdown-portal,
.user-messages-dropdown-menu.user-messages-dropdown-portal,
#user-messages-dropdown.user-messages-dropdown-portal,
.user-settings-dropdown-menu.user-settings-dropdown-portal,
#user-settings-dropdown.user-settings-dropdown-portal {
    z-index: 9999;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.12), 0 6px 16px rgba(103, 78, 153, 0.08);
}

.user-notification-item-title {
    display: block;
    font-weight: 500;
}

.user-notification-item-time {
    font-size: var(--text-xs, 0.75rem);
}

/* User notifications full page */
.user-notifications-page .dashboard-header {
    margin-bottom: var(--spacing-4, 1rem);
}

.user-notifications-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.user-notification-row {
    border-bottom: 1px solid var(--color-border, #e2e8f0);
}

.user-notification-row:last-child {
    border-bottom: none;
}

.user-notification-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-3, 0.75rem);
    padding: var(--spacing-3, 0.75rem) var(--spacing-4, 1rem);
}

.user-notification-link {
    flex: 1;
    min-width: 0;
    text-decoration: none;
    color: inherit;
    display: block;
}

.user-notification-link:hover {
    color: var(--color-brand, #674e99);
}

.user-notification-title {
    display: block;
    font-weight: 500;
}

.user-notification-body {
    display: block;
    font-size: var(--text-sm, 0.875rem);
    color: var(--color-text-secondary, #64748b);
    margin-top: var(--spacing-1, 0.25rem);
}

.user-notification-date {
    display: block;
    font-size: var(--text-xs, 0.75rem);
    color: var(--color-text-secondary, #64748b);
    margin-top: var(--spacing-1, 0.25rem);
}

.user-notification-row.is-read .user-notification-title {
    font-weight: 400;
    opacity: 0.85;
}

.user-notification-mark-read {
    flex-shrink: 0;
}

/* User subnav – Messages dropdown (same pattern as notifications) */
/* See more link in notifications/messages */
.user-notifications-see-more,
.user-messages-see-more {
    font-weight: var(--font-weight-medium);
    color: var(--color-brand);
}

.user-notifications-see-more:hover,
.user-messages-see-more:hover {
    color: var(--color-brand-dark);
    background: rgba(103, 78, 153, 0.06);
}

.user-message-item-subject {
    display: block;
    font-weight: 500;
}

.user-message-item-time {
    font-size: var(--text-xs, 0.75rem);
}

/* User messages full page */
.user-messages-page .dashboard-header {
    margin-bottom: var(--spacing-4, 1rem);
}

.user-messages-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.user-message-row {
    border-bottom: 1px solid var(--color-border, #e2e8f0);
}

.user-message-row:last-child {
    border-bottom: none;
}

.user-message-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-3, 0.75rem);
    padding: var(--spacing-3, 0.75rem) var(--spacing-4, 1rem);
}

.user-message-link {
    flex: 1;
    min-width: 0;
    text-decoration: none;
    color: inherit;
    display: block;
}

.user-message-link:hover {
    color: var(--color-brand, #674e99);
}

.user-message-subject {
    display: block;
    font-weight: 500;
}

.user-message-body {
    display: block;
    font-size: var(--text-sm, 0.875rem);
    color: var(--color-text-secondary, #64748b);
    margin-top: var(--spacing-1, 0.25rem);
}

.user-message-date {
    display: block;
    font-size: var(--text-xs, 0.75rem);
    color: var(--color-text-secondary, #64748b);
    margin-top: var(--spacing-1, 0.25rem);
}

.user-message-row.is-read .user-message-subject {
    font-weight: 400;
    opacity: 0.85;
}

.user-message-mark-read {
    flex-shrink: 0;
}

/* Settings dropdown – item layout (icon + label) */
.user-settings-dropdown-item {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2);
}

.user-settings-dropdown-item .bi {
    font-size: 1rem;
    width: 1.25rem;
    text-align: center;
    flex-shrink: 0;
    color: var(--color-text-muted);
}

.user-settings-dropdown-menu .dropdown-item:hover .bi,
#user-settings-dropdown .dropdown-item:hover .bi {
    color: var(--color-brand);
}

.user-subnav-drawer-section {
    margin-bottom: var(--spacing-2, 0.5rem);
}

.user-subnav-drawer-section .user-subnav-drawer-section-label {
    padding: var(--spacing-2, 0.5rem) var(--spacing-4, 1rem);
    font-size: var(--text-xs, 0.75rem);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-muted, #64748b);
}

/* =========================================================
   Feature landing page: Vae AI Financial Investment Assistant
   ========================================================= */

.vae-feature-page {
    padding-bottom: var(--spacing-12);
    background: linear-gradient(180deg, rgba(103, 78, 153, 0.02) 0%, transparent 18%, transparent 100%);
}

.vae-feature-hero {
    position: relative;
    overflow: hidden;
    padding: var(--spacing-10) 0 var(--spacing-8);
}

.vae-feature-hero::before,
.vae-feature-hero::after {
    content: '';
    position: absolute;
    pointer-events: none;
    filter: blur(36px);
    opacity: 0.55;
}

.vae-feature-hero::before {
    width: 520px;
    height: 520px;
    left: -240px;
    top: -220px;
    background: radial-gradient(circle at 30% 30%, rgba(103, 78, 153, 0.22), transparent 60%);
}

.vae-feature-hero::after {
    width: 560px;
    height: 560px;
    right: -260px;
    bottom: -260px;
    background: radial-gradient(circle at 60% 40%, rgba(139, 111, 184, 0.18), transparent 62%);
}

.vae-feature-hero-grid {
    display: grid;
    grid-template-columns: 1.15fr 0.85fr;
    gap: var(--spacing-8);
    align-items: start;
    position: relative;
    z-index: 1;
    padding: var(--spacing-8);
    border-radius: var(--radius-2xl);
    border: 1px solid rgba(103, 78, 153, 0.12);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.92) 0%, rgba(249, 250, 251, 0.92) 100%);
    box-shadow: 0 24px 56px rgba(0, 0, 0, 0.08), 0 10px 28px rgba(103, 78, 153, 0.08);
}

.vae-feature-hero-grid::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.35), transparent);
    opacity: 0.35;
    transform: translateX(-20%);
    pointer-events: none;
}

@media (prefers-reduced-motion: no-preference) {
    .vae-feature-hero-grid::before {
        animation: vae-hero-sheen 7s ease-in-out infinite;
    }
}

@keyframes vae-hero-sheen {
    0%, 100% { transform: translateX(-25%); opacity: 0.22; }
    50% { transform: translateX(25%); opacity: 0.45; }
}

.vae-feature-hero-avatar {
    width: 64px;
    height: 64px;
    border-radius: var(--radius-xl);
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.12) 0%, rgba(103, 78, 153, 0.06) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: var(--spacing-4);
    box-shadow: 0 10px 20px rgba(103, 78, 153, 0.08);
}

.vae-feature-hero-avatar img {
    width: 40px;
    height: 40px;
    border-radius: var(--radius-md);
}

.vae-feature-h1 {
    font-size: clamp(2rem, 2.6vw, 3rem);
    line-height: var(--line-height-tight);
    letter-spacing: -0.04em;
    margin: 0 0 var(--spacing-3);
}

.vae-feature-subhead {
    color: var(--color-text-secondary);
    font-size: var(--text-lg);
    line-height: var(--line-height-relaxed);
    margin: 0 0 var(--spacing-5);
    max-width: 70ch;
}

.vae-feature-microbenefits {
    list-style: none;
    padding: 0;
    margin: 0 0 var(--spacing-6);
    display: grid;
    gap: var(--spacing-2);
}

.vae-feature-microbenefits li {
    position: relative;
    padding-left: 22px;
    color: var(--color-text);
    font-weight: var(--font-weight-medium);
    font-size: var(--text-sm);
}

.vae-feature-microbenefits li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.55em;
    width: 10px;
    height: 10px;
    border-radius: var(--radius-full);
    background: linear-gradient(135deg, var(--color-brand) 0%, var(--color-brand-light) 100%);
}

.vae-feature-hero-ctas {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-3);
    align-items: center;
    margin-bottom: var(--spacing-3);
}

.vae-cta {
    border-radius: var(--radius-md);
    font-weight: var(--font-weight-semibold);
    padding: 0.7rem 1.1rem;
}

.vae-cta-primary {
    background: linear-gradient(135deg, var(--color-brand) 0%, var(--color-brand-dark) 100%);
    border: none;
    box-shadow: 0 10px 20px rgba(103, 78, 153, 0.18), 0 4px 10px rgba(103, 78, 153, 0.12);
    position: relative;
    overflow: hidden;
    transition: transform var(--transition-base), filter var(--transition-base);
}

.vae-cta-primary::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.22), transparent);
    transform: translateX(-55%);
    opacity: 0;
}

@media (prefers-reduced-motion: no-preference) {
    .vae-cta-primary:hover::after {
        opacity: 1;
        transform: translateX(55%);
        transition: transform 700ms ease, opacity 300ms ease;
    }
}

.vae-cta-primary:hover {
    filter: brightness(1.02);
    transform: translateY(-1px);
}

.vae-cta-secondary {
    border-color: rgba(103, 78, 153, 0.22);
    transition: background var(--transition-base), border-color var(--transition-base), transform var(--transition-base);
}

.vae-cta-secondary:hover {
    border-color: rgba(103, 78, 153, 0.35);
    background: rgba(103, 78, 153, 0.06);
    transform: translateY(-1px);
}

@media (prefers-reduced-motion: reduce) {
    .vae-cta-primary:hover,
    .vae-cta-secondary:hover {
        transform: none;
    }
}

.vae-feature-hero-trust {
    margin: 0;
    font-size: var(--text-xs);
    color: var(--color-text-muted);
}

.vae-feature-proof-card {
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-xl);
    background: linear-gradient(180deg, #ffffff 0%, var(--color-surface-2) 100%);
    padding: var(--spacing-6);
    box-shadow: var(--shadow-3);
    transition: transform var(--transition-base), box-shadow var(--transition-base), border-color var(--transition-base);
}

.vae-feature-proof-card:hover {
    transform: translateY(-2px);
    border-color: rgba(103, 78, 153, 0.18);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.10), 0 8px 22px rgba(103, 78, 153, 0.08);
}

@media (prefers-reduced-motion: reduce) {
    .vae-feature-proof-card:hover { transform: none; }
}
.vae-feature-proof-label {
    margin: 0 0 var(--spacing-3);
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--color-text-tertiary);
}

.vae-feature-proof-img {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 0 0 var(--spacing-4);
}

.vae-feature-proof-caption {
    margin: 0;
    color: var(--color-text-secondary);
    font-size: var(--text-sm);
    line-height: var(--line-height-relaxed);
}

.vae-feature-main {
    padding: var(--spacing-4) 0 var(--spacing-10);
}

.vae-feature-section {
    padding: var(--spacing-10) 0;
}

.vae-feature-section-alt {
    background: rgba(103, 78, 153, 0.03);
    border-top: 1px solid rgba(103, 78, 153, 0.08);
    border-bottom: 1px solid rgba(103, 78, 153, 0.08);
}

.vae-feature-h2 {
    font-size: var(--text-2xl);
    letter-spacing: -0.02em;
    margin: 0 0 var(--spacing-4);
    position: relative;
    padding-bottom: var(--spacing-2);
}

.vae-feature-h2::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 72px;
    height: 3px;
    border-radius: var(--radius-full);
    background: linear-gradient(90deg, var(--color-brand) 0%, var(--color-brand-light) 100%);
    opacity: 0.85;
}

.vae-feature-h3 {
    font-size: var(--text-lg);
    margin: 0 0 var(--spacing-2);
}

.vae-feature-p {
    margin: 0 0 var(--spacing-4);
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
}

.vae-feature-link {
    color: var(--color-brand);
    text-decoration: none;
    font-weight: var(--font-weight-medium);
}
.vae-feature-link:hover {
    color: var(--color-brand-dark);
    text-decoration: underline;
}

.vae-feature-how-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-4);
}

.vae-feature-how-step {
    background: var(--color-surface);
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-xl);
    padding: var(--spacing-5);
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.04);
    transition: transform var(--transition-base), box-shadow var(--transition-base), border-color var(--transition-base);
}

.vae-feature-how-step:hover {
    transform: translateY(-2px);
    border-color: rgba(103, 78, 153, 0.22);
    box-shadow: 0 18px 36px rgba(0, 0, 0, 0.08), 0 10px 26px rgba(103, 78, 153, 0.08);
}

@media (prefers-reduced-motion: reduce) {
    .vae-feature-how-step:hover { transform: none; }
}

.vae-feature-step-num {
    display: inline-flex;
    width: 28px;
    height: 28px;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-full);
    background: rgba(103, 78, 153, 0.12);
    color: var(--color-brand);
    font-weight: var(--font-weight-bold);
    margin-bottom: var(--spacing-3);
}

.vae-feature-example {
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-lg);
    background: var(--color-surface-2);
    padding: var(--spacing-4);
}

.vae-feature-example-label {
    font-size: var(--text-xs);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--color-text-tertiary);
    font-weight: var(--font-weight-semibold);
    margin-bottom: var(--spacing-2);
}

.vae-feature-example code {
    font-family: var(--font-mono);
    font-size: 0.9rem;
    color: rgba(2, 26, 56, 0.9);
}

/* Ticker styling is large site-wide; keep examples readable */
.vae-feature-example code .ticker-symbol {
    font-size: inherit;
    font-weight: var(--font-weight-semibold);
    position: static;
}
.vae-feature-example code .ticker-symbol::after {
    display: none;
}

.vae-feature-example ul {
    margin: 0;
    padding-left: 1.1rem;
    color: var(--color-text);
}

.vae-feature-example li {
    margin: 0 0 var(--spacing-2);
}
.vae-feature-example li:last-child {
    margin-bottom: 0;
}

.vae-feature-example-row {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: var(--spacing-5);
    align-items: start;
}

.vae-feature-note {
    border: 1px solid rgba(103, 78, 153, 0.12);
    background: rgba(255, 255, 255, 0.7);
    border-radius: var(--radius-xl);
    padding: var(--spacing-5);
    box-shadow: 0 10px 22px rgba(0, 0, 0, 0.04);
}

.vae-feature-evaluate-grid {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: var(--spacing-6);
    align-items: start;
}

.vae-feature-evaluate-visual {
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-xl);
    background: var(--color-surface);
    padding: var(--spacing-6);
    box-shadow: var(--shadow-2);
}

@media (min-width: 992px) {
    .vae-feature-evaluate-visual {
        position: sticky;
        top: calc(var(--header-height) + 18px);
    }
}

.vae-feature-evaluate-visual:hover {
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.10), 0 8px 22px rgba(103, 78, 153, 0.08);
}

.vae-feature-evaluate-img {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 0 0 var(--spacing-4);
}

.vae-feature-evaluate-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-3);
}

.vae-feature-strip {
    padding: var(--spacing-8) 0;
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.08) 0%, rgba(103, 78, 153, 0.03) 100%);
    border-top: 1px solid rgba(103, 78, 153, 0.12);
    border-bottom: 1px solid rgba(103, 78, 153, 0.12);
}

.vae-feature-strip-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-6);
    flex-wrap: wrap;
    border: 1px solid rgba(103, 78, 153, 0.12);
    border-radius: var(--radius-2xl);
    padding: var(--spacing-6);
    background: rgba(255, 255, 255, 0.75);
    box-shadow: 0 18px 44px rgba(0, 0, 0, 0.06);
}

.vae-feature-strip-ctas {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-3);
}

.vae-feature-who-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-4);
}

.vae-feature-who-card {
    background: var(--color-surface);
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-xl);
    padding: var(--spacing-5);
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.04);
    transition: transform var(--transition-base), box-shadow var(--transition-base), border-color var(--transition-base);
}

.vae-feature-who-card:hover {
    transform: translateY(-2px);
    border-color: rgba(103, 78, 153, 0.22);
    box-shadow: 0 18px 36px rgba(0, 0, 0, 0.08), 0 10px 26px rgba(103, 78, 153, 0.08);
}

@media (prefers-reduced-motion: reduce) {
    .vae-feature-who-card:hover { transform: none; }
}

.vae-feature-faq .accordion-item {
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-lg);
    overflow: hidden;
    margin-bottom: var(--spacing-3);
}
.vae-feature-faq .accordion-item:last-child {
    margin-bottom: 0;
}
.vae-feature-faq .accordion-button {
    font-weight: var(--font-weight-semibold);
}
.vae-feature-faq .accordion-button:not(.collapsed) {
    color: var(--color-brand);
    background: rgba(103, 78, 153, 0.06);
}

.vae-feature-steps {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-4);
    margin-bottom: var(--spacing-6);
}

.vae-feature-step {
    display: flex;
    gap: var(--spacing-3);
    padding: var(--spacing-5);
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-xl);
    background: var(--color-surface);
}

.vae-feature-final-cta {
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-xl);
    padding: var(--spacing-6);
    background: linear-gradient(180deg, #ffffff 0%, var(--color-surface-2) 100%);
}

.vae-feature-final-note {
    margin: var(--spacing-3) 0 0;
    color: var(--color-text-muted);
    font-size: var(--text-sm);
}

.vae-feature-disclaimer {
    margin-top: var(--spacing-6);
    padding: var(--spacing-5);
    border-left: 4px solid var(--color-warning);
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg, rgba(245, 158, 11, 0.05) 0%, rgba(245, 158, 11, 0.02) 100%);
    border: 1px solid rgba(245, 158, 11, 0.2);
}

.vae-feature-disclaimer p {
    margin: 0;
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
}

@media (max-width: 991px) {
    .vae-feature-hero-grid,
    .vae-feature-example-row,
    .vae-feature-evaluate-grid {
        grid-template-columns: 1fr;
    }

    .vae-feature-how-grid,
    .vae-feature-who-grid,
    .vae-feature-steps {
        grid-template-columns: 1fr;
    }

    .vae-feature-hero {
        padding: var(--spacing-8) 0 var(--spacing-6);
    }

    .vae-feature-hero-grid {
        padding: var(--spacing-6);
    }
}

/* =========================================================
   Feature landing page: Thematic Investing
   ========================================================= */

#what-is-thematic {
    scroll-margin-top: 2rem;
}

.thematic-feature-page .thematic-hero-badge img {
    width: 48px;
    height: 48px;
    object-fit: contain;
}

.thematic-hero-scroll-link {
    display: inline-block;
    margin-top: var(--spacing-2);
    font-size: var(--text-sm);
    color: var(--color-brand);
    text-decoration: none;
    transition: color var(--transition-base);
}

.thematic-hero-scroll-link:hover {
    color: var(--color-brand-dark);
    text-decoration: underline;
}

.thematic-hero-preview .thematic-preview-mock {
    padding: var(--spacing-4);
    border-radius: var(--radius-lg);
    background: linear-gradient(180deg, rgba(103, 78, 153, 0.06) 0%, rgba(103, 78, 153, 0.02) 100%);
    border: 1px solid rgba(103, 78, 153, 0.12);
}

.thematic-preview-name {
    font-weight: var(--font-weight-semibold);
    font-size: var(--text-base);
    margin-bottom: var(--spacing-2);
}

.thematic-preview-pills,
.thematic-preview-chips {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-2);
    margin-bottom: var(--spacing-2);
}

.thematic-preview-chips {
    margin-bottom: 0;
}

.thematic-preview-link {
    display: inline-block;
    margin-top: var(--spacing-2);
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    color: var(--color-brand);
    text-decoration: none;
    transition: color var(--transition-base);
}

.thematic-preview-link:hover {
    color: var(--color-brand-dark);
    text-decoration: underline;
}

/* Theme Snapshot Panel (top performing theme card) */
.thematic-feature-page .thematic-snapshot-panel-card .thematic-preview-mock {
    padding: 0;
    background: transparent;
    border: none;
}

.thematic-snapshot-panel-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--spacing-4);
    margin-bottom: var(--spacing-4);
    padding-bottom: var(--spacing-3);
    border-bottom: 1px solid var(--color-border-light);
}

.thematic-snapshot-panel-title-wrap {
    flex: 1;
    min-width: 0;
}

.thematic-snapshot-panel-title {
    font-size: var(--text-base);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    margin: 0 0 var(--spacing-1);
}

.thematic-snapshot-panel-meta {
    font-size: var(--text-xs);
    color: var(--color-text-muted);
    margin: 0;
}

.thematic-snapshot-panel-perf {
    text-align: right;
    flex-shrink: 0;
}

.thematic-snapshot-panel-value {
    display: block;
    font-size: var(--text-lg);
    font-weight: var(--font-weight-bold);
}

.thematic-snapshot-panel-value.positive {
    color: #16a34a;
}

.thematic-snapshot-panel-value.negative {
    color: #dc2626;
}

.thematic-snapshot-panel-timeframe {
    font-size: var(--text-xs);
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.thematic-feature-page .thematic-snapshot-table {
    margin: 0;
}

.thematic-feature-page .thematic-snapshot-table th,
.thematic-feature-page .thematic-snapshot-table td {
    padding: var(--spacing-2) 0;
    font-size: var(--text-sm);
}

.thematic-feature-page .thematic-snapshot-table th:first-child,
.thematic-feature-page .thematic-snapshot-table td:first-child {
    padding-right: var(--spacing-2);
}

.thematic-snapshot-mcap-col {
    text-align: right !important;
    padding-left: var(--spacing-2);
}

.thematic-feature-page .thematic-snapshot-table .thematic-preview-logo {
    width: 24px;
    height: 24px;
    border-radius: var(--radius-sm);
    object-fit: contain;
    background: var(--color-surface-2);
    flex-shrink: 0;
}

.thematic-feature-page .thematic-snapshot-table .thematic-logo-placeholder {
    width: 24px;
    height: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-muted);
    background: var(--color-surface-2);
}

.thematic-feature-page .thematic-preview-link {
    margin-top: var(--spacing-3);
}

.thematic-pill {
    display: inline-block;
    padding: 0.25rem 0.5rem;
    font-size: var(--text-xs);
    font-weight: var(--font-weight-medium);
    border-radius: var(--radius-md);
    background: rgba(103, 78, 153, 0.1);
    color: var(--color-text);
}

.thematic-chip {
    display: inline-block;
    padding: 0.2rem 0.45rem;
    font-size: var(--text-xs);
    border-radius: var(--radius-md);
    background: var(--color-surface-2);
    border: 1px solid var(--color-border-light);
    color: var(--color-text-secondary);
}

.thematic-mid-cta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-3);
    margin-top: var(--spacing-6);
}

.thematic-two-col {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: var(--spacing-8);
    align-items: start;
}

.thematic-vs-card {
    padding: var(--spacing-5);
    border-radius: var(--radius-xl);
    border: 1px solid var(--color-border-light);
    background: linear-gradient(180deg, #ffffff 0%, var(--color-surface-2) 100%);
    box-shadow: var(--shadow-2);
}

.thematic-vs-list {
    margin: 0;
}

.thematic-vs-list dt {
    font-weight: var(--font-weight-semibold);
    font-size: var(--text-sm);
    margin-top: var(--spacing-3);
    color: var(--color-text);
}

.thematic-vs-list dt:first-child {
    margin-top: 0;
}

.thematic-vs-list dd {
    margin: var(--spacing-1) 0 0;
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
}

.thematic-feature-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-5);
    margin-bottom: var(--spacing-8);
}

.thematic-feature-card {
    padding: var(--spacing-5);
    border-radius: var(--radius-xl);
    border: 1px solid var(--color-border-light);
    background: linear-gradient(180deg, #ffffff 0%, var(--color-surface-2) 100%);
    box-shadow: var(--shadow-2);
    transition: transform var(--transition-base), box-shadow var(--transition-base);
}

.thematic-feature-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-3);
}

.thematic-feature-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.12) 0%, rgba(103, 78, 153, 0.06) 100%);
    color: var(--color-brand);
    font-size: 1.25rem;
    margin-bottom: var(--spacing-3);
}

.thematic-feature-card .vae-feature-h3 {
    margin-bottom: var(--spacing-2);
}

.thematic-feature-card .vae-feature-p {
    margin: 0;
    font-size: var(--text-sm);
}

.thematic-snapshot-section {
    margin-top: var(--spacing-8);
}

.thematic-snapshot-note {
    font-size: var(--text-sm);
    color: var(--color-text-muted);
    margin-bottom: var(--spacing-4);
}

.thematic-snapshot-panel {
    padding: var(--spacing-6);
    border-radius: var(--radius-xl);
    border: 1px solid var(--color-border-light);
    background: linear-gradient(180deg, #ffffff 0%, var(--color-surface-2) 100%);
    box-shadow: var(--shadow-3);
}

.thematic-snapshot-badge {
    display: inline-block;
    padding: 0.2rem 0.5rem;
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-muted);
    background: var(--color-surface-2);
    border-radius: var(--radius-md);
    margin-bottom: var(--spacing-3);
}

.thematic-snapshot-title {
    font-size: var(--text-lg);
    font-weight: var(--font-weight-semibold);
    margin: 0 0 var(--spacing-1);
}

.thematic-snapshot-desc {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    margin: 0 0 var(--spacing-4);
}

.thematic-snapshot-constituents,
.thematic-snapshot-perf {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-2);
    margin-bottom: var(--spacing-4);
}

.thematic-snapshot-why {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    margin: 0 0 var(--spacing-4);
    font-style: italic;
}

.thematic-snapshot-cta {
    margin-top: var(--spacing-4);
}

.vae-feature-outcomes {
    margin-top: var(--spacing-4);
}

.thematic-use-cases {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-5);
}

.thematic-use-case-card {
    padding: var(--spacing-5);
    border-radius: var(--radius-xl);
    border: 1px solid var(--color-border-light);
    background: linear-gradient(180deg, #ffffff 0%, var(--color-surface-2) 100%);
    box-shadow: var(--shadow-2);
    transition: transform var(--transition-base), box-shadow var(--transition-base);
}

.thematic-use-case-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-3);
}

.thematic-use-case-card .vae-feature-p {
    margin-bottom: var(--spacing-3);
}

.thematic-outcome {
    margin: 0;
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
}

.thematic-related-links {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--spacing-5);
    margin-bottom: var(--spacing-6);
}

.thematic-related-card {
    display: flex;
    flex-direction: column;
    padding: var(--spacing-5);
    border-radius: var(--radius-xl);
    border: 1px solid var(--color-border-light);
    background: linear-gradient(180deg, #ffffff 0%, var(--color-surface-2) 100%);
    color: inherit;
    text-decoration: none;
    transition: transform var(--transition-base), box-shadow var(--transition-base), border-color var(--transition-base);
}

.thematic-related-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-3);
    border-color: rgba(103, 78, 153, 0.2);
}

.thematic-related-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: var(--radius-md);
    background: rgba(103, 78, 153, 0.1);
    color: var(--color-brand);
    font-size: 1.1rem;
    margin-bottom: var(--spacing-3);
}

.thematic-related-title {
    font-weight: var(--font-weight-semibold);
    margin-bottom: var(--spacing-1);
}

.thematic-related-desc {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
}

@media (max-width: 991px) {
    .thematic-two-col {
        grid-template-columns: 1fr;
    }

    .thematic-feature-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .thematic-use-cases {
        grid-template-columns: 1fr;
    }

    .thematic-related-links {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 575px) {
    .thematic-feature-grid {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   Features index page: /features/
   ========================================================= */

.features-index-page {
    padding-bottom: var(--spacing-12);
    position: relative;
    overflow: hidden;
    background: linear-gradient(180deg, rgba(103, 78, 153, 0.03) 0%, transparent 25%, transparent 100%);
}

.features-index-page::before,
.features-index-page::after {
    content: '';
    position: absolute;
    pointer-events: none;
    filter: blur(80px);
    opacity: 0.4;
    border-radius: 50%;
}

.features-index-page::before {
    width: 400px;
    height: 400px;
    left: -120px;
    top: 80px;
    background: radial-gradient(circle at 50% 50%, rgba(103, 78, 153, 0.18), transparent 65%);
}

.features-index-page::after {
    width: 360px;
    height: 360px;
    right: -100px;
    bottom: 200px;
    background: radial-gradient(circle at 50% 50%, rgba(139, 111, 184, 0.12), transparent 65%);
}

/* Features index hero: two-column layout */
#features-grid {
    scroll-margin-top: 2rem;
}

.features-index-hero {
    position: relative;
    z-index: 1;
    padding: var(--spacing-8) 0 var(--spacing-10);
}

.features-index-hero-grid {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: var(--spacing-8);
    align-items: center;
    min-height: 0;
}

.features-index-hero-left {
    min-width: 0;
}

.features-index-hero-title {
    font-size: clamp(1.75rem, 2.4vw, 2.75rem);
    font-weight: var(--font-weight-bold);
    letter-spacing: -0.04em;
    line-height: 1.2;
    margin: 0 0 var(--spacing-4);
    color: var(--color-text);
}

.features-index-hero-subhead {
    font-size: var(--text-lg);
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
    margin: 0 0 var(--spacing-5);
    max-width: 56ch;
}

.features-index-hero-bullets {
    list-style: none;
    padding: 0;
    margin: 0 0 var(--spacing-6);
    display: flex;
    flex-direction: column;
    gap: var(--spacing-2);
}

.features-index-hero-bullets li {
    position: relative;
    padding-left: 1.5rem;
    font-size: var(--text-base);
    font-weight: var(--font-weight-medium);
    color: var(--color-text);
    line-height: 1.4;
}

.features-index-hero-bullets li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.45em;
    width: 8px;
    height: 8px;
    border-radius: var(--radius-full);
    background: linear-gradient(135deg, var(--color-brand) 0%, var(--color-brand-light) 100%);
    box-shadow: 0 0 0 2px rgba(103, 78, 153, 0.2);
}

.features-index-hero-ctas {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-3);
    align-items: center;
    margin-bottom: var(--spacing-3);
}

.features-index-hero-trust {
    margin: 0;
    font-size: var(--text-sm);
    color: var(--color-text-muted);
}

/* Feature Overview Panel (right column) */
.features-overview-panel {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-3);
    padding: var(--spacing-5);
    border-radius: var(--radius-xl);
    border: 1px solid rgba(103, 78, 153, 0.14);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.95) 0%, rgba(249, 250, 251, 0.95) 100%);
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.06), 0 6px 16px rgba(103, 78, 153, 0.08);
}

.features-overview-block {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-3);
    padding: var(--spacing-3) var(--spacing-4);
    border-radius: var(--radius-lg);
    border: 1px solid rgba(103, 78, 153, 0.1);
    background: rgba(255, 255, 255, 0.9);
    transition: border-color var(--transition-base), background var(--transition-base);
}

.features-overview-block:hover {
    border-color: rgba(103, 78, 153, 0.2);
    background: rgba(255, 255, 255, 1);
}

.features-overview-dot {
    flex-shrink: 0;
    width: 8px;
    height: 8px;
    margin-top: 0.5rem;
    border-radius: var(--radius-full);
    background: linear-gradient(135deg, var(--color-brand) 0%, var(--color-brand-light) 100%);
}

.features-overview-block > div {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.features-overview-label {
    font-size: var(--text-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
}

.features-overview-desc {
    font-size: var(--text-xs);
    color: var(--color-text-muted);
    line-height: 1.35;
}

/* Spacing below hero before grid */
.features-index-hero + .container-main {
    padding-top: var(--spacing-2);
    padding-bottom: var(--spacing-4);
}

@media (max-width: 991px) {
    .features-index-hero-grid {
        grid-template-columns: 1fr;
        gap: var(--spacing-6);
    }

    .features-index-hero {
        padding: var(--spacing-6) 0 var(--spacing-8);
    }
}

@media (max-width: 575px) {
    .features-index-hero-ctas {
        flex-direction: column;
        align-items: stretch;
    }

    .features-index-hero-ctas .btn {
        width: 100%;
        justify-content: center;
    }
}

.features-index-header {
    margin-bottom: var(--spacing-10);
    max-width: 65ch;
    position: relative;
    z-index: 1;
}

.features-index-title {
    font-size: clamp(2rem, 2.8vw, 3rem);
    font-weight: var(--font-weight-bold);
    letter-spacing: -0.04em;
    margin: 0 0 var(--spacing-3);
    line-height: 1.15;
    background: linear-gradient(135deg, var(--color-text) 0%, var(--color-text-secondary) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

@supports (not (-webkit-background-clip: text)) {
    .features-index-title {
        background: none;
        -webkit-text-fill-color: unset;
        color: var(--color-text);
    }
}

.features-index-header-accent {
    display: block;
    width: 48px;
    height: 4px;
    border-radius: var(--radius-full);
    background: linear-gradient(90deg, var(--color-brand) 0%, var(--color-brand-light) 100%);
    margin-bottom: var(--spacing-4);
}

.features-index-subtitle {
    font-size: var(--text-lg);
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
    margin: 0;
}

.features-index-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-6);
    position: relative;
    z-index: 1;
}

.features-index-card {
    display: flex;
    flex-direction: column;
    padding: 0;
    border-radius: var(--radius-2xl);
    border: 1px solid rgba(103, 78, 153, 0.12);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.95) 0%, rgba(249, 250, 251, 0.95) 100%);
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06), 0 2px 8px rgba(103, 78, 153, 0.06);
    text-decoration: none;
    color: inherit;
    position: relative;
    overflow: hidden;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.features-index-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--color-brand) 0%, var(--color-brand-light) 50%, rgba(139, 111, 184, 0.6) 100%);
    opacity: 0.9;
}

.features-index-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 20px 48px rgba(0, 0, 0, 0.1), 0 12px 28px rgba(103, 78, 153, 0.15);
    border-color: rgba(103, 78, 153, 0.25);
    text-decoration: none;
}

@media (prefers-reduced-motion: reduce) {
    .features-index-card:hover {
        transform: translateY(-2px);
    }
}

.features-index-card-content {
    padding: var(--spacing-6);
    display: flex;
    flex-direction: column;
    flex: 1;
}

.features-index-card-icon-wrap {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: var(--spacing-4);
    min-height: 96px;
    padding: var(--spacing-4);
    position: relative;
}

.features-index-card-icon-wrap::before {
    content: '';
    position: absolute;
    width: 88px;
    height: 88px;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    border-radius: var(--radius-2xl);
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.1) 0%, rgba(103, 78, 153, 0.04) 100%);
    box-shadow: 0 8px 24px rgba(103, 78, 153, 0.08);
    pointer-events: none;
}

.features-index-card:hover .features-index-card-icon-wrap::before {
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.14) 0%, rgba(103, 78, 153, 0.06) 100%);
    box-shadow: 0 12px 32px rgba(103, 78, 153, 0.12);
}

.features-index-card-icon {
    width: 56px;
    height: 56px;
    object-fit: contain;
    position: relative;
    z-index: 1;
    transition: transform 0.3s ease;
}

.features-index-card:hover .features-index-card-icon {
    transform: scale(1.06);
}

.features-index-card-icon-placeholder {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.12) 0%, rgba(103, 78, 153, 0.06) 100%);
    color: var(--color-brand);
    font-size: 1.5rem;
    position: relative;
    z-index: 1;
}

.features-index-card-title {
    font-size: var(--text-xl);
    font-weight: var(--font-weight-bold);
    margin: 0 0 var(--spacing-2);
    line-height: var(--line-height-tight);
    color: var(--color-text);
}

.features-index-card-desc {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
    margin: 0 0 var(--spacing-4);
}

.features-index-card-bullets {
    list-style: none;
    padding: 0;
    margin: 0 0 var(--spacing-4);
    flex: 1;
}

.features-index-card-bullets li {
    position: relative;
    padding-left: 1.35rem;
    font-size: var(--text-sm);
    color: var(--color-text);
    line-height: 1.5;
    margin-bottom: var(--spacing-2);
}

.features-index-card-bullets li:last-child {
    margin-bottom: 0;
}

.features-index-card-bullets li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.4em;
    width: 6px;
    height: 6px;
    border-radius: var(--radius-full);
    background: linear-gradient(135deg, var(--color-brand) 0%, var(--color-brand-light) 100%);
    box-shadow: 0 0 0 2px rgba(103, 78, 153, 0.15);
}

.features-index-card-link {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-brand);
    margin-top: auto;
    transition: color 0.25s ease, gap 0.25s ease;
}

.features-index-card-link i {
    transition: transform 0.25s ease;
}

.features-index-card:hover .features-index-card-link {
    color: var(--color-brand-dark);
    gap: var(--spacing-3);
}

.features-index-card:hover .features-index-card-link i {
    transform: translateX(4px);
}

.features-index-empty {
    color: var(--color-text-muted);
    font-size: var(--text-base);
    margin: 0;
    position: relative;
    z-index: 1;
}

@media (max-width: 991px) {
    .features-index-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 575px) {
    .features-index-grid {
        grid-template-columns: 1fr;
    }

    .features-index-card-content {
        padding: var(--spacing-5);
    }

    .features-index-card-icon-wrap::before {
        width: 72px;
        height: 72px;
        top: var(--spacing-5);
    }

    .features-index-card-icon,
    .features-index-card-icon-placeholder {
        width: 48px;
        height: 48px;
    }
}

/* =========================================================
   Features index: Capabilities by intent
   ========================================================= */

#understand-the-market,
#find-trade-ideas,
#manage-positions,
#learn-improve {
    scroll-margin-top: 2rem;
}

.features-capabilities-page .features-capabilities-hero {
    padding: var(--spacing-6) 0 var(--spacing-10);
}

.features-capabilities-title {
    font-size: clamp(1.875rem, 2.5vw, 2.5rem);
    font-weight: var(--font-weight-bold);
    letter-spacing: -0.03em;
    color: var(--color-text);
    margin: 0 0 var(--spacing-6);
    line-height: 1.2;
}

.features-capabilities-intro {
    max-width: 60ch;
    margin: 0 0 var(--spacing-6);
}

.features-capabilities-intro-p {
    font-size: var(--text-lg);
    line-height: var(--line-height-relaxed);
    color: var(--color-text-secondary);
    margin: 0 0 var(--spacing-3);
}

.features-capabilities-intro-p:last-child {
    margin-bottom: 0;
}

.features-capabilities-anchors {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-2);
    margin-bottom: var(--spacing-6);
}

.features-capabilities-anchor {
    display: inline-block;
    padding: var(--spacing-2) var(--spacing-4);
    border-radius: var(--radius-full);
    border: 1px solid rgba(103, 78, 153, 0.25);
    background: rgba(255, 255, 255, 0.9);
    color: var(--color-text);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
    text-decoration: none;
    transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.features-capabilities-anchor:hover {
    background: rgba(103, 78, 153, 0.08);
    border-color: var(--color-brand);
    color: var(--color-brand);
}

.features-capabilities-hero-ctas {
    margin-top: 0;
}

.features-capabilities-group {
    padding: var(--spacing-10) 0;
}

.features-capabilities-group-header {
    margin-bottom: var(--spacing-8);
}

.features-capabilities-group-title {
    font-size: clamp(1.5rem, 2vw, 1.875rem);
    font-weight: var(--font-weight-bold);
    letter-spacing: -0.02em;
    color: var(--color-text);
    margin: 0 0 var(--spacing-2);
}

.features-capabilities-group-desc {
    font-size: var(--text-base);
    line-height: var(--line-height-relaxed);
    color: var(--color-text-secondary);
    margin: 0;
    max-width: 50ch;
}

.features-capabilities-page .features-capabilities-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-6);
}

.features-capabilities-card .features-index-card-desc {
    margin-bottom: var(--spacing-3);
}

.features-capabilities-primary-use {
    font-size: var(--text-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-brand);
    margin: 0 0 var(--spacing-2);
}

.features-capabilities-best-for {
    font-size: var(--text-xs);
    color: var(--color-text-muted);
    margin: 0 0 var(--spacing-3);
    line-height: 1.4;
}

.features-capabilities-best-for strong {
    color: var(--color-text-secondary);
}

.features-capabilities-pairing {
    font-size: var(--text-xs);
    color: var(--color-text-muted);
    margin: 0 0 var(--spacing-4);
    line-height: 1.4;
    font-style: italic;
}

.features-system-explainer {
    padding: var(--spacing-12) 0;
}

.features-system-title {
    font-size: clamp(1.5rem, 2vw, 1.875rem);
    font-weight: var(--font-weight-bold);
    letter-spacing: -0.02em;
    color: var(--color-text);
    margin: 0 0 var(--spacing-8);
    text-align: center;
}

.features-system-flow {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-4);
    max-width: 900px;
    margin: 0 auto var(--spacing-6);
}

.features-system-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--spacing-2);
    padding: var(--spacing-4);
    min-width: 140px;
    border-radius: var(--radius-lg);
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid rgba(103, 78, 153, 0.1);
}

.features-system-step-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: var(--radius-full);
    background: rgba(103, 78, 153, 0.12);
    color: var(--color-brand);
    font-size: 1.25rem;
}

.features-system-step-label {
    font-size: var(--text-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
}

.features-system-step-detail {
    font-size: var(--text-xs);
    color: var(--color-text-muted);
    text-align: center;
}

.features-system-arrow {
    color: var(--color-text-muted);
    font-size: var(--text-lg);
}

.features-system-caption {
    text-align: center;
    font-size: var(--text-base);
    color: var(--color-text-secondary);
    max-width: 42ch;
    margin: 0 auto;
    line-height: var(--line-height-relaxed);
}

.features-capabilities-faq {
    padding: var(--spacing-10) 0;
}

.features-capabilities-faq-title {
    font-size: clamp(1.5rem, 2vw, 1.875rem);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    margin: 0 0 var(--spacing-6);
}

.features-capabilities-faq-list {
    max-width: 640px;
}

.features-capabilities-faq-item {
    padding: var(--spacing-4) 0;
    border-bottom: 1px solid var(--color-border);
}

.features-capabilities-faq-item:last-child {
    border-bottom: none;
}

.features-capabilities-faq-q {
    font-size: var(--text-base);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
    margin: 0 0 var(--spacing-2);
}

.features-capabilities-faq-a {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
    margin: 0;
}

.features-capabilities-cta {
    margin-top: var(--spacing-8);
}

@media (max-width: 991px) {
    .features-capabilities-page .features-capabilities-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .features-system-flow {
        flex-direction: column;
    }

    .features-system-arrow {
        transform: rotate(90deg);
    }
}

@media (max-width: 575px) {
    .features-capabilities-page .features-capabilities-grid {
        grid-template-columns: 1fr;
    }

    .features-capabilities-anchors {
        flex-direction: column;
    }

    .features-capabilities-anchor {
        text-align: center;
    }
}

/* =========================================================
   Feature landing page: Daily Stock Picks
   ========================================================= */

.daily-picks-feature-page #what-you-get,
.daily-picks-feature-page #what-a-pick-looks-like {
    scroll-margin-top: 2rem;
}

.daily-picks-hero-scroll-link {
    display: inline-block;
    margin-top: var(--spacing-2);
    font-size: var(--text-sm);
    color: var(--color-brand);
    text-decoration: none;
    transition: color var(--transition-base);
}

.daily-picks-hero-scroll-link:hover {
    color: var(--color-brand-dark);
    text-decoration: underline;
}

.daily-picks-hero-preview .daily-picks-pick-card {
    padding: var(--spacing-5);
    border-radius: var(--radius-xl);
    border: 1px solid rgba(103, 78, 153, 0.14);
    background: linear-gradient(180deg, rgba(103, 78, 153, 0.06) 0%, rgba(255, 255, 255, 1) 70%);
}

.daily-picks-pick-card-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--spacing-4);
    margin-bottom: var(--spacing-4);
}

.daily-picks-pick-card-title {
    font-size: var(--text-xl);
    font-weight: var(--font-weight-bold);
    letter-spacing: -0.02em;
}

.daily-picks-pick-card-subtitle {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    margin-top: 2px;
}

.daily-picks-pick-card-metrics {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--spacing-3);
    text-align: right;
}

.daily-picks-pick-card-metric {
    padding: 0.35rem 0.5rem;
    border-radius: var(--radius-lg);
    background: rgba(255, 255, 255, 0.8);
    border: 1px solid var(--color-border-light);
}

.daily-picks-pick-card-metric-label {
    display: block;
    font-size: var(--text-xs);
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 2px;
}

.daily-picks-pick-card-metric-value {
    font-weight: var(--font-weight-bold);
    font-size: var(--text-sm);
    color: var(--color-text);
}

.daily-picks-pick-card-metric-value.positive { color: #16a34a; }
.daily-picks-pick-card-metric-value.negative { color: #dc2626; }

.daily-picks-pick-card-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--spacing-3);
    margin-bottom: var(--spacing-4);
}

.daily-picks-pick-card-row {
    border: 1px solid var(--color-border-light);
    background: rgba(255, 255, 255, 0.86);
    border-radius: var(--radius-lg);
    padding: var(--spacing-3);
}

.daily-picks-pick-card-k {
    display: block;
    font-size: var(--text-xs);
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 2px;
}

.daily-picks-pick-card-v {
    font-size: var(--text-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
}

.daily-picks-pick-card-thesis {
    border-top: 1px solid rgba(103, 78, 153, 0.12);
    padding-top: var(--spacing-3);
}

.daily-picks-pick-card-thesis-text {
    margin: var(--spacing-1) 0 0;
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
}

.daily-picks-panel .container-main {
    border: 1px solid rgba(103, 78, 153, 0.12);
    border-radius: var(--radius-2xl);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.96) 0%, rgba(249, 250, 251, 0.96) 100%);
    padding: 20px;
    box-shadow: 0 12px 28px rgba(103, 78, 153, 0.08);
}

.daily-picks-list-title {
    margin-top: var(--spacing-6);
    margin-bottom: var(--spacing-3);
    font-size: var(--text-lg);
    font-weight: var(--font-weight-semibold);
}

.daily-picks-what-you-get {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: var(--spacing-2);
}

.daily-picks-what-you-get li {
    position: relative;
    padding-left: 1.4rem;
    font-size: var(--text-sm);
    color: var(--color-text);
    line-height: var(--line-height-relaxed);
}

.daily-picks-what-you-get li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.45em;
    width: 10px;
    height: 10px;
    border-radius: var(--radius-full);
    background: linear-gradient(135deg, var(--color-brand) 0%, var(--color-brand-light) 100%);
    box-shadow: 0 0 0 2px rgba(103, 78, 153, 0.14);
}

.daily-picks-two-col {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: var(--spacing-8);
    align-items: start;
}

.daily-picks-compare-card {
    padding: var(--spacing-5);
    border-radius: var(--radius-xl);
    border: 1px solid rgba(103, 78, 153, 0.12);
    background: linear-gradient(180deg, #ffffff 0%, var(--color-surface-2) 100%);
    box-shadow: var(--shadow-2);
}

.daily-picks-compare-rows {
    margin-top: var(--spacing-4);
    display: grid;
    gap: var(--spacing-2);
}

.daily-picks-compare-row {
    display: grid;
    grid-template-columns: 1fr 1.05fr;
    gap: var(--spacing-3);
    padding: var(--spacing-3);
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-lg);
    background: rgba(255, 255, 255, 0.9);
}

.daily-picks-compare-k {
    font-size: var(--text-sm);
    color: var(--color-text);
    font-weight: var(--font-weight-semibold);
}

.daily-picks-compare-v {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    text-align: right;
}

.daily-picks-feature-page .vae-feature-how-grid.daily-picks-how-grid {
    grid-template-columns: repeat(4, 1fr);
}

.daily-picks-cadence-pill {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2);
    margin-top: var(--spacing-5);
    padding: 0.55rem 0.8rem;
    border-radius: var(--radius-full);
    border: 1px solid rgba(103, 78, 153, 0.18);
    background: rgba(103, 78, 153, 0.06);
    color: var(--color-text);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
}

.daily-picks-cta-row {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-3);
    align-items: center;
    margin-top: var(--spacing-5);
}

.daily-picks-feature-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-5);
    margin-top: var(--spacing-6);
    margin-bottom: var(--spacing-8);
}

.daily-picks-feature-card {
    padding: var(--spacing-5);
    border-radius: var(--radius-xl);
    border: 1px solid rgba(103, 78, 153, 0.12);
    background: linear-gradient(180deg, #ffffff 0%, var(--color-surface-2) 100%);
    box-shadow: var(--shadow-2);
    transition: transform var(--transition-base), box-shadow var(--transition-base);
}

.daily-picks-feature-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-3);
}

.daily-picks-example-line {
    margin: 0 0 var(--spacing-4);
    font-size: var(--text-sm);
    color: var(--color-text-muted);
}

.daily-picks-anatomy-card {
    position: relative;
    padding: var(--spacing-6);
    border-radius: var(--radius-2xl);
    border: 1px solid rgba(103, 78, 153, 0.14);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.96) 0%, rgba(249, 250, 251, 0.96) 100%);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.08), 0 10px 24px rgba(103, 78, 153, 0.1);
}

.daily-picks-anatomy-badge {
    display: inline-block;
    padding: 0.2rem 0.5rem;
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--color-text-muted);
    background: var(--color-surface-2);
    border-radius: var(--radius-md);
    margin-bottom: var(--spacing-4);
}

.daily-picks-anatomy-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--spacing-4);
    padding-bottom: var(--spacing-4);
    border-bottom: 1px solid rgba(103, 78, 153, 0.12);
    margin-bottom: var(--spacing-4);
}

.daily-picks-anatomy-ticker {
    font-size: var(--text-2xl);
    font-weight: var(--font-weight-bold);
    letter-spacing: -0.03em;
}

.daily-picks-anatomy-setup {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    margin-top: 2px;
}

.daily-picks-anatomy-side {
    display: grid;
    gap: var(--spacing-2);
    text-align: right;
}

.daily-picks-anatomy-side-item {
    padding: 0.4rem 0.55rem;
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border-light);
    background: rgba(255, 255, 255, 0.85);
}

.daily-picks-anatomy-side-k {
    display: block;
    font-size: var(--text-xs);
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 2px;
}

.daily-picks-anatomy-side-v {
    font-size: var(--text-sm);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
}

.daily-picks-anatomy-side-v.positive { color: #16a34a; }
.daily-picks-anatomy-side-v.negative { color: #dc2626; }

.daily-picks-anatomy-grid {
    display: grid;
    gap: var(--spacing-3);
}

.daily-picks-anatomy-row {
    display: grid;
    grid-template-columns: 160px 1fr;
    gap: var(--spacing-3);
    padding: var(--spacing-3);
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border-light);
    background: rgba(255, 255, 255, 0.9);
}

.daily-picks-anatomy-thesis-row {
    grid-template-columns: 160px 1fr;
}

.daily-picks-callout {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
    background: rgba(103, 78, 153, 0.1);
    border: 1px solid rgba(103, 78, 153, 0.18);
    border-radius: var(--radius-full);
    padding: 0.25rem 0.55rem;
    width: fit-content;
}

.daily-picks-anatomy-val {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
}

.daily-picks-callouts-list {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-2);
    margin-top: var(--spacing-5);
}

.daily-picks-callout-chip {
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-secondary);
    border: 1px dashed rgba(103, 78, 153, 0.25);
    border-radius: var(--radius-full);
    padding: 0.25rem 0.6rem;
    background: rgba(255, 255, 255, 0.6);
}

.daily-picks-use-cases {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-5);
}

.daily-picks-use-case-card {
    padding: var(--spacing-5);
    border-radius: var(--radius-xl);
    border: 1px solid rgba(103, 78, 153, 0.12);
    background: linear-gradient(180deg, #ffffff 0%, var(--color-surface-2) 100%);
    box-shadow: var(--shadow-2);
    transition: transform var(--transition-base), box-shadow var(--transition-base);
}

.daily-picks-use-case-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-3);
}

.daily-picks-outcome {
    margin: 0;
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
}

.daily-picks-band-ctas {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: var(--spacing-2);
}

.daily-picks-band-note {
    margin: 0;
    font-size: var(--text-sm);
    color: var(--color-text-muted);
}

.daily-picks-bottom-disclaimer {
    margin: 0 0 var(--spacing-6);
    padding: var(--spacing-5);
    border-left: 4px solid rgba(103, 78, 153, 0.65);
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.06) 0%, rgba(103, 78, 153, 0.02) 100%);
    border: 1px solid rgba(103, 78, 153, 0.18);
}

.daily-picks-bottom-disclaimer p {
    margin: 0;
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
}

.daily-picks-related-links {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--spacing-5);
    margin-top: var(--spacing-5);
}

@media (max-width: 991px) {
    .daily-picks-two-col {
        grid-template-columns: 1fr;
    }

    .daily-picks-feature-page .vae-feature-how-grid.daily-picks-how-grid {
        grid-template-columns: 1fr;
    }

    .daily-picks-feature-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .daily-picks-use-cases {
        grid-template-columns: 1fr;
    }

    .daily-picks-related-links {
        grid-template-columns: 1fr;
    }

    .daily-picks-band-ctas {
        align-items: flex-start;
    }
}

@media (max-width: 575px) {
    .daily-picks-panel .container-main {
        padding: var(--spacing-6);
    }

    .daily-picks-feature-grid {
        grid-template-columns: 1fr;
    }

    .daily-picks-pick-card-grid {
        grid-template-columns: 1fr;
    }

    .daily-picks-anatomy-row {
        grid-template-columns: 1fr;
    }

    .daily-picks-compare-row {
        grid-template-columns: 1fr;
    }

    .daily-picks-compare-v {
        text-align: left;
    }
}

/* =========================================================
   Daily Picks Pages (Index & Detail)
   ========================================================= */

/* Daily Picks Index Page */
.daily-picks-page {
    min-height: 100vh;
    background: linear-gradient(180deg, #ffffff 0%, #fafbfc 50%, #ffffff 100%);
}

.daily-picks-container {
    padding-top: var(--spacing-6);
    padding-bottom: var(--spacing-4);
}

.daily-picks-header {
    padding: var(--spacing-6) 0 var(--spacing-5);
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.04) 0%, rgba(103, 78, 153, 0.01) 100%);
    border-bottom: 1px solid var(--color-border-light);
    margin-bottom: var(--spacing-6);
    position: relative;
    overflow: hidden;
}

.daily-picks-header::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--color-brand) 0%, var(--color-brand-light) 50%, var(--color-brand) 100%);
}

.daily-picks-header .page-title {
    font-size: var(--text-4xl);
    font-weight: var(--font-weight-bold);
    margin-bottom: var(--spacing-3);
    color: var(--color-text);
    letter-spacing: -0.02em;
    background: linear-gradient(135deg, var(--color-brand) 0%, var(--color-brand-light) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.daily-picks-header .page-subtitle {
    font-size: var(--text-lg);
    color: var(--color-text-secondary);
    margin: 0;
    line-height: var(--line-height-relaxed);
    max-width: 800px;
}

.picks-date-section {
    margin-bottom: var(--spacing-8);
    animation: fadeInUp 0.5s ease-out;
}

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

.picks-date-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--spacing-5);
    padding-bottom: var(--spacing-3);
    border-bottom: 2px solid var(--color-border);
    position: relative;
}

.picks-date-header::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 60px;
    height: 2px;
    background: linear-gradient(90deg, var(--color-brand) 0%, transparent 100%);
}

.picks-date-title {
    font-size: var(--text-2xl);
    font-weight: var(--font-weight-bold);
    margin: 0;
    color: var(--color-text);
    letter-spacing: -0.01em;
}

.picks-count {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    font-weight: var(--font-weight-medium);
    padding: var(--spacing-1) var(--spacing-3);
    background: var(--color-surface-2);
    border-radius: var(--radius-full);
}

.picks-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
    gap: var(--spacing-5);
}

.pick-card {
    background: linear-gradient(180deg, var(--color-surface) 0%, rgba(255, 255, 255, 0.98) 100%);
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-xl);
    padding: var(--spacing-5);
    transition: all var(--transition-base);
    position: relative;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04), 0 1px 2px rgba(0, 0, 0, 0.06);
}

.pick-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--color-brand) 0%, var(--color-brand-light) 100%);
    opacity: 0;
    transition: opacity var(--transition-base);
}

.pick-card:hover {
    box-shadow: 0 12px 32px rgba(103, 78, 153, 0.12), 0 6px 16px rgba(0, 0, 0, 0.08);
    transform: translateY(-4px);
    border-color: rgba(103, 78, 153, 0.3);
}

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

.pick-card-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: var(--spacing-4);
    gap: var(--spacing-3);
}

.pick-ticker {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-2);
    flex: 1;
}

.pick-ticker-symbol {
    font-size: var(--text-2xl);
    font-weight: var(--font-weight-bold);
    margin: 0;
    letter-spacing: -0.01em;
}

.pick-ticker-symbol a {
    color: var(--color-text);
    text-decoration: none;
    transition: color var(--transition-base);
    display: inline-block;
}

.pick-ticker-symbol a:hover {
    color: var(--color-brand);
    transform: translateX(2px);
}

.pick-direction {
    font-size: var(--text-xs);
    font-weight: var(--font-weight-bold);
    text-transform: uppercase;
    padding: var(--spacing-1) var(--spacing-2);
    border-radius: var(--radius-md);
    display: inline-block;
    letter-spacing: 0.05em;
    width: fit-content;
}

.pick-direction.long {
    background: linear-gradient(135deg, rgba(16, 185, 129, 0.15) 0%, rgba(16, 185, 129, 0.08) 100%);
    color: var(--color-success-dark);
    border: 1px solid rgba(16, 185, 129, 0.2);
}

.pick-direction.short {
    background: linear-gradient(135deg, rgba(239, 68, 68, 0.15) 0%, rgba(239, 68, 68, 0.08) 100%);
    color: var(--color-danger-dark);
    border: 1px solid rgba(239, 68, 68, 0.2);
}

.pick-badges {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-2);
    align-items: flex-end;
}

.badge {
    font-size: var(--text-xs);
    font-weight: var(--font-weight-bold);
    padding: var(--spacing-1) var(--spacing-2);
    border-radius: var(--radius-md);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border: 1px solid transparent;
    transition: all var(--transition-base);
}

.badge-alpha {
    background: linear-gradient(135deg, rgba(168, 85, 247, 0.15) 0%, rgba(168, 85, 247, 0.08) 100%);
    color: #9333ea;
    border-color: rgba(168, 85, 247, 0.25);
}

.badge-paid {
    background: linear-gradient(135deg, rgba(59, 130, 246, 0.15) 0%, rgba(59, 130, 246, 0.08) 100%);
    color: var(--color-info-dark);
    border-color: rgba(59, 130, 246, 0.25);
}

.badge-free {
    background: linear-gradient(135deg, rgba(107, 114, 128, 0.12) 0%, rgba(107, 114, 128, 0.06) 100%);
    color: #4b5563;
    border-color: rgba(107, 114, 128, 0.2);
}

.status-badge {
    font-size: var(--text-xs);
}

.status-pending {
    background: linear-gradient(135deg, rgba(245, 158, 11, 0.15) 0%, rgba(245, 158, 11, 0.08) 100%);
    color: var(--color-warning-dark);
    border-color: rgba(245, 158, 11, 0.25);
}

.status-active {
    background: linear-gradient(135deg, rgba(16, 185, 129, 0.15) 0%, rgba(16, 185, 129, 0.08) 100%);
    color: var(--color-success-dark);
    border-color: rgba(16, 185, 129, 0.25);
}

.status-success {
    background: linear-gradient(135deg, rgba(16, 185, 129, 0.15) 0%, rgba(16, 185, 129, 0.08) 100%);
    color: var(--color-success-dark);
    border-color: rgba(16, 185, 129, 0.25);
}

.status-danger {
    background: linear-gradient(135deg, rgba(239, 68, 68, 0.15) 0%, rgba(239, 68, 68, 0.08) 100%);
    color: var(--color-danger-dark);
    border-color: rgba(239, 68, 68, 0.25);
}

.status-expired,
.status-cancelled {
    background: linear-gradient(135deg, rgba(107, 114, 128, 0.12) 0%, rgba(107, 114, 128, 0.06) 100%);
    color: #4b5563;
    border-color: rgba(107, 114, 128, 0.2);
}

.pick-card-body {
    margin-bottom: var(--spacing-4);
}

.pick-details-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--spacing-3);
    margin-bottom: var(--spacing-4);
    padding: var(--spacing-3);
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.03) 0%, transparent 100%);
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border-light);
}

.pick-detail {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-1);
}

.pick-detail-label {
    font-size: var(--text-xs);
    color: var(--color-text-secondary);
    text-transform: uppercase;
    font-weight: var(--font-weight-semibold);
    letter-spacing: 0.05em;
}

.pick-detail-value {
    font-size: var(--text-lg);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    letter-spacing: -0.01em;
}

.pick-detail-value.positive {
    color: var(--color-success-dark);
    background: linear-gradient(135deg, rgba(16, 185, 129, 0.1) 0%, transparent 100%);
    padding: var(--spacing-1) var(--spacing-2);
    border-radius: var(--radius-sm);
    width: fit-content;
}

.pick-thesis {
    margin-top: var(--spacing-4);
    padding-top: var(--spacing-4);
    border-top: 1px solid var(--color-border-light);
}

.pick-thesis p {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    margin: 0;
    line-height: var(--line-height-relaxed);
}

.pick-current-price {
    margin-top: var(--spacing-4);
    padding-top: var(--spacing-4);
    border-top: 1px solid var(--color-border-light);
    display: flex;
    align-items: center;
    gap: var(--spacing-3);
    flex-wrap: wrap;
    padding: var(--spacing-3);
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.04) 0%, transparent 100%);
    border-radius: var(--radius-lg);
}

.current-price-label {
    font-size: var(--text-xs);
    color: var(--color-text-secondary);
    text-transform: uppercase;
    font-weight: var(--font-weight-semibold);
    letter-spacing: 0.05em;
}

.current-price-value {
    font-size: var(--text-xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
}

.current-price-change {
    font-size: var(--text-base);
    font-weight: var(--font-weight-bold);
    padding: var(--spacing-1) var(--spacing-2);
    border-radius: var(--radius-md);
}

.current-price-change.positive {
    color: var(--color-success-dark);
    background: linear-gradient(135deg, rgba(16, 185, 129, 0.15) 0%, rgba(16, 185, 129, 0.08) 100%);
}

.current-price-change.negative {
    color: var(--color-danger-dark);
    background: linear-gradient(135deg, rgba(239, 68, 68, 0.15) 0%, rgba(239, 68, 68, 0.08) 100%);
}

.pick-card-footer {
    display: flex;
    justify-content: flex-end;
    padding-top: var(--spacing-3);
    border-top: 1px solid var(--color-border-light);
}

.empty-state {
    text-align: center;
    padding: var(--spacing-10);
    color: var(--color-text-secondary);
    background: var(--color-surface-2);
    border-radius: var(--radius-xl);
    border: 1px dashed var(--color-border);
}

/* Daily Pick Detail Page */
.daily-pick-detail-page {
    min-height: 100vh;
    background: linear-gradient(180deg, #ffffff 0%, #fafbfc 50%, #ffffff 100%);
}

.daily-pick-detail-container {
    padding-top: var(--spacing-6);
    padding-bottom: var(--spacing-4);
}

.pick-detail-header {
    margin-bottom: var(--spacing-6);
    padding: var(--spacing-5) var(--spacing-5) var(--spacing-5);
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.05) 0%, rgba(103, 78, 153, 0.02) 100%);
    border-radius: var(--radius-xl);
    border: 1px solid var(--color-border-light);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04), 0 2px 4px rgba(0, 0, 0, 0.06);
    position: relative;
    overflow: hidden;
}

.pick-detail-header::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--color-brand) 0%, var(--color-brand-light) 50%, var(--color-brand) 100%);
}

.pick-header-main {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--spacing-5);
    position: relative;
    z-index: 1;
}

.pick-title-section {
    flex: 1;
}

.pick-title {
    font-size: var(--text-4xl);
    font-weight: var(--font-weight-bold);
    margin: 0 0 var(--spacing-3) 0;
    display: flex;
    align-items: center;
    gap: var(--spacing-3);
    letter-spacing: -0.02em;
    color: var(--color-text);
}

.pick-direction {
    font-size: var(--text-sm);
    font-weight: var(--font-weight-bold);
    text-transform: uppercase;
    padding: var(--spacing-1) var(--spacing-3);
    border-radius: var(--radius-md);
    letter-spacing: 0.05em;
}

.pick-direction.long {
    background: linear-gradient(135deg, rgba(16, 185, 129, 0.15) 0%, rgba(16, 185, 129, 0.08) 100%);
    color: var(--color-success-dark);
    border: 1px solid rgba(16, 185, 129, 0.25);
}

.pick-direction.short {
    background: linear-gradient(135deg, rgba(239, 68, 68, 0.15) 0%, rgba(239, 68, 68, 0.08) 100%);
    color: var(--color-danger-dark);
    border: 1px solid rgba(239, 68, 68, 0.25);
}

.pick-meta {
    display: flex;
    align-items: center;
    gap: var(--spacing-3);
    flex-wrap: wrap;
}

.pick-date {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    font-weight: var(--font-weight-medium);
}

.pick-actions {
    display: flex;
    align-items: center;
    gap: var(--spacing-3);
}

.follower-count {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    font-weight: var(--font-weight-medium);
}

.pick-details-section {
    margin-bottom: var(--spacing-6);
}

.pick-details-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: var(--spacing-4);
}

.detail-card {
    background: linear-gradient(180deg, var(--color-surface) 0%, rgba(255, 255, 255, 0.98) 100%);
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-xl);
    padding: var(--spacing-5);
    transition: all var(--transition-base);
    position: relative;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04), 0 1px 2px rgba(0, 0, 0, 0.06);
}

.detail-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--color-brand) 0%, var(--color-brand-light) 100%);
    opacity: 0;
    transition: opacity var(--transition-base);
}

.detail-card:hover {
    box-shadow: 0 8px 24px rgba(103, 78, 153, 0.12), 0 4px 8px rgba(0, 0, 0, 0.08);
    transform: translateY(-2px);
    border-color: rgba(103, 78, 153, 0.3);
}

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

.detail-card.highlight {
    border-color: var(--color-brand);
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.08) 0%, rgba(103, 78, 153, 0.03) 100%);
    box-shadow: 0 4px 16px rgba(103, 78, 153, 0.15), 0 2px 4px rgba(103, 78, 153, 0.1);
}

.detail-card.highlight::before {
    opacity: 1;
}

.detail-card-title {
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-secondary);
    text-transform: uppercase;
    margin: 0 0 var(--spacing-3) 0;
    letter-spacing: 0.05em;
}

.detail-card-value {
    font-size: var(--text-2xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    margin-bottom: var(--spacing-2);
    letter-spacing: -0.01em;
}

.detail-card-value.positive {
    color: var(--color-success-dark);
    background: linear-gradient(135deg, rgba(16, 185, 129, 0.1) 0%, transparent 100%);
    padding: var(--spacing-2);
    border-radius: var(--radius-md);
    width: fit-content;
}

.detail-card-note {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    font-weight: var(--font-weight-medium);
}

.detail-card-note.positive {
    color: var(--color-success-dark);
}

.detail-card-note.negative {
    color: var(--color-danger-dark);
}

.pick-section {
    margin-bottom: var(--spacing-6);
    padding: var(--spacing-5);
    background: linear-gradient(180deg, var(--color-surface) 0%, rgba(255, 255, 255, 0.98) 100%);
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-xl);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04), 0 1px 2px rgba(0, 0, 0, 0.06);
    transition: all var(--transition-base);
}

.pick-section:hover {
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06), 0 2px 4px rgba(0, 0, 0, 0.04);
    border-color: var(--color-border);
}

.section-title {
    font-size: var(--text-2xl);
    font-weight: var(--font-weight-bold);
    margin: 0 0 var(--spacing-4) 0;
    color: var(--color-text);
    letter-spacing: -0.01em;
    padding-bottom: var(--spacing-3);
    border-bottom: 2px solid var(--color-border-light);
    position: relative;
}

.section-title::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 60px;
    height: 2px;
    background: linear-gradient(90deg, var(--color-brand) 0%, transparent 100%);
}

.section-content {
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
}

.risks-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.risks-list li {
    padding: var(--spacing-3) 0 var(--spacing-3) var(--spacing-6);
    position: relative;
    border-bottom: 1px solid var(--color-border-light);
}

.risks-list li:last-child {
    border-bottom: none;
}

.risks-list li::before {
    content: '⚠';
    position: absolute;
    left: 0;
    font-size: var(--text-lg);
    color: var(--color-warning);
}

.adjustments-list {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-4);
}

.adjustment-item {
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.04) 0%, transparent 100%);
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-lg);
    padding: var(--spacing-4);
    transition: all var(--transition-base);
    border-left: 3px solid var(--color-brand);
}

.adjustment-item:hover {
    box-shadow: 0 4px 12px rgba(103, 78, 153, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06);
    transform: translateX(4px);
    border-left-color: var(--color-brand-light);
}

.adjustment-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--spacing-3);
    gap: var(--spacing-3);
}

.adjustment-type {
    font-size: var(--text-lg);
    font-weight: var(--font-weight-bold);
    margin: 0;
    color: var(--color-text);
}

.adjustment-date {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    font-weight: var(--font-weight-medium);
    white-space: nowrap;
}

.adjustment-summary {
    margin: 0 0 var(--spacing-3) 0;
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
    font-size: var(--text-base);
}

.adjustment-details {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    padding: var(--spacing-2) var(--spacing-3);
    background: var(--color-surface-2);
    border-radius: var(--radius-md);
    display: inline-block;
}

.adjustment-details .old-value {
    text-decoration: line-through;
    color: var(--color-text-tertiary);
    margin-right: var(--spacing-2);
}

.adjustment-details .new-value {
    font-weight: var(--font-weight-bold);
    color: var(--color-brand);
}

.tracking-stats {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-2);
}

.stat-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--spacing-3) var(--spacing-4);
    border-bottom: 1px solid var(--color-border-light);
    background: var(--color-surface-2);
    border-radius: var(--radius-md);
    transition: all var(--transition-base);
}

.stat-item:hover {
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.04) 0%, transparent 100%);
    transform: translateX(4px);
}

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

.stat-label {
    color: var(--color-text-secondary);
    font-weight: var(--font-weight-medium);
}

.stat-value {
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    font-size: var(--text-lg);
}

.stat-value.positive {
    color: var(--color-success-dark);
}

.stat-value.negative {
    color: var(--color-danger-dark);
}

/* Article Section Styles */
.article-section {
    background: linear-gradient(180deg, var(--color-surface) 0%, rgba(255, 255, 255, 0.98) 100%);
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-xl);
    padding: var(--spacing-6);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04), 0 2px 4px rgba(0, 0, 0, 0.06);
    position: relative;
    overflow: hidden;
}

.article-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--color-brand) 0%, var(--color-brand-light) 50%, var(--color-brand) 100%);
}

.article-headline {
    font-size: var(--text-3xl);
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-tight);
    margin-bottom: var(--spacing-4);
    color: var(--color-text);
    letter-spacing: -0.02em;
}

.article-subheadline {
    font-size: var(--text-xl);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-5);
    line-height: var(--line-height-relaxed);
}

.article-body {
    font-size: var(--text-base);
    line-height: var(--line-height-loose);
    color: var(--color-text);
    margin-bottom: var(--spacing-6);
}

.article-body h2 {
    font-size: var(--text-2xl);
    font-weight: var(--font-weight-bold);
    margin: var(--spacing-6) 0 var(--spacing-3) 0;
    color: var(--color-text);
    letter-spacing: -0.01em;
    padding-bottom: var(--spacing-2);
    border-bottom: 2px solid var(--color-border-light);
    position: relative;
}

.article-body h2::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 60px;
    height: 2px;
    background: linear-gradient(90deg, var(--color-brand) 0%, transparent 100%);
}

.article-body h3 {
    font-size: var(--text-xl);
    font-weight: var(--font-weight-bold);
    margin: var(--spacing-5) 0 var(--spacing-3) 0;
    color: var(--color-text);
}

.article-body p {
    margin-bottom: var(--spacing-4);
    line-height: var(--line-height-relaxed);
}

.article-body ul,
.article-body ol {
    margin: var(--spacing-4) 0;
    padding-left: var(--spacing-6);
}

.article-body li {
    margin-bottom: var(--spacing-3);
    line-height: var(--line-height-relaxed);
}

.article-body strong {
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
}

.article-body em {
    font-style: italic;
}

.article-body small {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
}

.article-subsection-title {
    font-size: var(--text-xl);
    font-weight: var(--font-weight-bold);
    margin: var(--spacing-6) 0 var(--spacing-4) 0;
    color: var(--color-text);
    padding-top: var(--spacing-5);
    border-top: 2px solid var(--color-border-light);
    position: relative;
    letter-spacing: -0.01em;
}

.article-subsection-title::after {
    content: '';
    position: absolute;
    top: -2px;
    left: 0;
    width: 60px;
    height: 2px;
    background: linear-gradient(90deg, var(--color-brand) 0%, transparent 100%);
}

.article-catalysts,
.article-trade-plan,
.article-risks,
.article-sources {
    margin-top: var(--spacing-5);
}

.catalysts-list,
.sources-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.catalysts-list li,
.sources-list li {
    padding: var(--spacing-3) 0 var(--spacing-3) var(--spacing-6);
    position: relative;
    border-bottom: 1px solid var(--color-border-light);
    transition: all var(--transition-base);
}

.catalysts-list li:hover,
.sources-list li:hover {
    background: var(--color-surface-2);
    padding-left: var(--spacing-7);
    border-radius: var(--radius-md);
}

.catalysts-list li:last-child,
.sources-list li:last-child {
    border-bottom: none;
}

.catalysts-list li::before {
    content: '✓';
    position: absolute;
    left: 0;
    font-size: var(--text-lg);
    color: var(--color-success);
    font-weight: var(--font-weight-bold);
}

.sources-list li {
    padding-left: 0;
}

.source-link {
    color: var(--color-brand);
    text-decoration: none;
    font-weight: var(--font-weight-semibold);
    transition: all var(--transition-base);
    display: inline-block;
}

.source-link:hover {
    color: var(--color-brand-dark);
    text-decoration: underline;
    transform: translateX(2px);
}

.source-publisher,
.source-date {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    margin-left: var(--spacing-2);
    font-weight: var(--font-weight-medium);
}

.trade-plan-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: var(--spacing-4);
    margin-top: var(--spacing-4);
}

.trade-plan-item {
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.06) 0%, rgba(103, 78, 153, 0.02) 100%);
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-lg);
    padding: var(--spacing-4);
    transition: all var(--transition-base);
    border-left: 3px solid var(--color-brand);
}

.trade-plan-item:hover {
    box-shadow: 0 4px 12px rgba(103, 78, 153, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06);
    transform: translateY(-2px);
    border-left-color: var(--color-brand-light);
}

.trade-plan-label {
    font-size: var(--text-xs);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-secondary);
    text-transform: uppercase;
    margin: 0 0 var(--spacing-3) 0;
    letter-spacing: 0.05em;
}

.trade-plan-value {
    font-size: var(--text-base);
    color: var(--color-text);
    margin: 0;
    line-height: var(--line-height-relaxed);
    font-weight: var(--font-weight-medium);
}

.article-disclosure {
    margin-top: var(--spacing-6);
    padding-top: var(--spacing-5);
    border-top: 2px solid var(--color-border-light);
}

.disclosure-text {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    font-style: italic;
    margin: 0;
    line-height: var(--line-height-relaxed);
}

/* Responsive Design */
@media (max-width: 768px) {
    .picks-grid {
        grid-template-columns: 1fr;
    }
    
    .pick-details-grid {
        grid-template-columns: 1fr;
    }
    
    .pick-header-main {
        flex-direction: column;
    }
    
    .pick-title {
        font-size: var(--text-3xl);
    }
    
    .article-headline {
        font-size: var(--text-2xl);
    }
    
    .article-subheadline {
        font-size: var(--text-lg);
    }
    
    .trade-plan-grid {
        grid-template-columns: 1fr;
    }
    
    .pick-details-grid {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   Feature landing page: Intelligent Market News
   ========================================================= */

#news-that-matters {
    scroll-margin-top: 2rem;
}

.intelligent-news-feature-page .intelligent-news-hero-badge img {
    width: 48px;
    height: 48px;
    object-fit: contain;
}

.intelligent-news-supporting-line {
    margin: var(--spacing-4) 0 0;
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary);
}

/* News Preview Panel (hero right column) */
.intelligent-news-feature-page .news-preview-panel .news-preview-stack {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-3);
    margin-top: var(--spacing-3);
}

.news-preview-card {
    padding: var(--spacing-3) var(--spacing-4);
    border-radius: var(--radius-lg);
    border: 1px solid rgba(103, 78, 153, 0.12);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.95) 0%, rgba(249, 250, 251, 0.95) 100%);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.news-preview-card-title {
    display: block;
    font-size: var(--text-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
    margin-bottom: var(--spacing-2);
}

.news-preview-card-line {
    margin: 0 0 var(--spacing-1);
    font-size: var(--text-xs);
    color: var(--color-text-secondary);
    line-height: 1.4;
}

.news-preview-card-line:last-child {
    margin-bottom: 0;
}

.intelligent-news-feature-page .vae-feature-how-grid.intelligent-news-how-grid {
    grid-template-columns: repeat(4, 1fr);
}

.intelligent-news-use-cases {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-5);
    margin-top: var(--spacing-4);
}

.intelligent-news-use-case-card {
    padding: var(--spacing-5);
    border-radius: var(--radius-xl);
    border: 1px solid rgba(103, 78, 153, 0.12);
    background: linear-gradient(180deg, #ffffff 0%, var(--color-surface-2) 100%);
    box-shadow: var(--shadow-2);
    transition: transform var(--transition-base), box-shadow var(--transition-base);
}

.intelligent-news-use-case-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-3);
}

.intelligent-news-mid-cta {
    margin-top: var(--spacing-6);
}

.intelligent-news-disclaimer {
    margin-top: var(--spacing-6);
    padding: var(--spacing-5);
    border-left: 4px solid rgba(103, 78, 153, 0.5);
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.05) 0%, rgba(103, 78, 153, 0.02) 100%);
    border: 1px solid rgba(103, 78, 153, 0.15);
}

.intelligent-news-disclaimer p {
    margin: 0;
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
    font-size: var(--text-sm);
}

@media (max-width: 991px) {
    .intelligent-news-feature-page .vae-feature-how-grid.intelligent-news-how-grid {
        grid-template-columns: 1fr;
    }

    .intelligent-news-use-cases {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   Feature landing page: AI Alerts
   ========================================================= */

#alert-types {
    scroll-margin-top: 2rem;
}

.ai-alerts-feature-page .ai-alerts-hero-badge img {
    width: 48px;
    height: 48px;
    object-fit: contain;
}

/* Alerts Preview Panel (hero right column) */
.ai-alerts-feature-page .alerts-preview-panel .alerts-preview-stack {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-3);
    margin-top: var(--spacing-3);
}

.alerts-preview-card {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: var(--spacing-3) var(--spacing-4);
    border-radius: var(--radius-lg);
    border: 1px solid rgba(103, 78, 153, 0.12);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.95) 0%, rgba(249, 250, 251, 0.95) 100%);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
    transition: border-color var(--transition-base), background var(--transition-base);
}

.alerts-preview-card:hover {
    border-color: rgba(103, 78, 153, 0.2);
    background: rgba(255, 255, 255, 0.98);
}

.alerts-preview-card-type {
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-brand);
}

.alerts-preview-card-msg {
    margin: 0;
    font-size: var(--text-sm);
    color: var(--color-text);
    line-height: var(--line-height-relaxed);
}

.ai-alerts-feature-page .vae-feature-how-grid.ai-alerts-how-grid {
    grid-template-columns: repeat(4, 1fr);
}

.ai-alerts-use-cases {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-5);
    margin-top: var(--spacing-4);
}

.ai-alerts-use-case-card {
    padding: var(--spacing-5);
    border-radius: var(--radius-xl);
    border: 1px solid rgba(103, 78, 153, 0.12);
    background: linear-gradient(180deg, #ffffff 0%, var(--color-surface-2) 100%);
    box-shadow: var(--shadow-2);
    transition: transform var(--transition-base), box-shadow var(--transition-base);
}

.ai-alerts-use-case-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-3);
}

.ai-alerts-disclaimer {
    margin-top: var(--spacing-6);
    padding: var(--spacing-5);
    border-left: 4px solid rgba(103, 78, 153, 0.5);
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.05) 0%, rgba(103, 78, 153, 0.02) 100%);
    border: 1px solid rgba(103, 78, 153, 0.15);
}

.ai-alerts-disclaimer p {
    margin: 0;
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
    font-size: var(--text-sm);
}

.ai-alerts-mid-cta {
    margin-top: var(--spacing-6);
}

@media (max-width: 991px) {
    .ai-alerts-feature-page .vae-feature-how-grid.ai-alerts-how-grid {
        grid-template-columns: 1fr;
    }

    .ai-alerts-use-cases {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   Feature landing page: Smart Watchlists
   ========================================================= */

#how-smart-watchlists-work {
    scroll-margin-top: 2rem;
}

.smart-watchlists-feature-page .smart-watchlists-hero-badge img {
    width: 48px;
    height: 48px;
    object-fit: contain;
}

/* Watchlist Preview Panel (hero right column) */
.smart-watchlists-feature-page .watchlist-preview-panel .watchlist-preview-list {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin-top: var(--spacing-3);
    border-radius: var(--radius-lg);
    border: 1px solid rgba(103, 78, 153, 0.12);
    overflow: hidden;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.95) 0%, rgba(249, 250, 251, 0.95) 100%);
}

.watchlist-preview-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-3);
    padding: var(--spacing-3) var(--spacing-4);
    border-bottom: 1px solid rgba(103, 78, 153, 0.08);
    transition: background var(--transition-base);
}

.watchlist-preview-row:last-child {
    border-bottom: none;
}

.watchlist-preview-row:hover {
    background: rgba(255, 255, 255, 0.9);
}

.watchlist-preview-ticker {
    font-size: var(--text-sm);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    letter-spacing: 0.02em;
}

.watchlist-preview-status {
    font-size: var(--text-xs);
    color: var(--color-text-muted);
    font-weight: var(--font-weight-medium);
}

.smart-watchlists-supporting-line {
    margin: var(--spacing-4) 0 0;
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary);
}

.smart-watchlists-mid-cta {
    margin-top: var(--spacing-6);
}

.smart-watchlists-feature-page .vae-feature-how-grid.smart-watchlists-how-grid {
    grid-template-columns: repeat(4, 1fr);
}

.smart-watchlists-use-cases {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-5);
    margin-top: var(--spacing-4);
}

.smart-watchlists-use-case-card {
    padding: var(--spacing-5);
    border-radius: var(--radius-xl);
    border: 1px solid rgba(103, 78, 153, 0.12);
    background: linear-gradient(180deg, #ffffff 0%, var(--color-surface-2) 100%);
    box-shadow: var(--shadow-2);
    transition: transform var(--transition-base), box-shadow var(--transition-base);
}

.smart-watchlists-use-case-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-3);
}

.smart-watchlists-disclaimer {
    margin-top: var(--spacing-6);
    padding: var(--spacing-5);
    border-left: 4px solid rgba(103, 78, 153, 0.5);
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.05) 0%, rgba(103, 78, 153, 0.02) 100%);
    border: 1px solid rgba(103, 78, 153, 0.15);
}

.smart-watchlists-disclaimer p {
    margin: 0;
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
    font-size: var(--text-sm);
}

@media (max-width: 991px) {
    .smart-watchlists-feature-page .vae-feature-how-grid.smart-watchlists-how-grid {
        grid-template-columns: 1fr;
    }

    .smart-watchlists-use-cases {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   Feature landing page: Smart Technical Analysis
   ========================================================= */

#how-technical-insights-work {
    scroll-margin-top: 2rem;
}

.smart-technical-feature-page .smart-technical-hero-badge img {
    width: 48px;
    height: 48px;
    object-fit: contain;
}

/* Technical Analysis Preview Panel (hero right column) */
.smart-technical-feature-page .technical-preview-panel .technical-preview-stack {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin-top: var(--spacing-3);
    border-radius: var(--radius-lg);
    border: 1px solid rgba(103, 78, 153, 0.12);
    overflow: hidden;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.95) 0%, rgba(249, 250, 251, 0.95) 100%);
}

.technical-preview-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-3);
    padding: var(--spacing-3) var(--spacing-4);
    border-bottom: 1px solid rgba(103, 78, 153, 0.08);
    transition: background var(--transition-base);
}

.technical-preview-row:last-child {
    border-bottom: none;
}

.technical-preview-row:hover {
    background: rgba(255, 255, 255, 0.9);
}

.technical-preview-label {
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.technical-preview-value {
    font-size: var(--text-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
}

.technical-preview-trend-up {
    color: #16a34a;
}

.technical-preview-tag {
    font-size: var(--text-xs);
    font-weight: var(--font-weight-medium);
    padding: 0.2rem 0.5rem;
    border-radius: var(--radius-full);
    background: rgba(103, 78, 153, 0.1);
    color: var(--color-brand);
}

.smart-technical-supporting-line {
    margin: var(--spacing-4) 0 0;
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary);
}

.smart-technical-mid-cta {
    margin-top: var(--spacing-6);
}

.smart-technical-feature-page .vae-feature-how-grid.smart-technical-how-grid {
    grid-template-columns: repeat(4, 1fr);
}

.smart-technical-use-cases {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-5);
    margin-top: var(--spacing-4);
}

.smart-technical-use-case-card {
    padding: var(--spacing-5);
    border-radius: var(--radius-xl);
    border: 1px solid rgba(103, 78, 153, 0.12);
    background: linear-gradient(180deg, #ffffff 0%, var(--color-surface-2) 100%);
    box-shadow: var(--shadow-2);
    transition: transform var(--transition-base), box-shadow var(--transition-base);
}

.smart-technical-use-case-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-3);
}

.smart-technical-disclaimer {
    margin-top: var(--spacing-6);
    padding: var(--spacing-5);
    border-left: 4px solid rgba(103, 78, 153, 0.5);
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.05) 0%, rgba(103, 78, 153, 0.02) 100%);
    border: 1px solid rgba(103, 78, 153, 0.15);
}

.smart-technical-disclaimer p {
    margin: 0;
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
    font-size: var(--text-sm);
}

@media (max-width: 991px) {
    .smart-technical-feature-page .vae-feature-how-grid.smart-technical-how-grid {
        grid-template-columns: 1fr;
    }

    .smart-technical-use-cases {
        grid-template-columns: 1fr;
    }
}

/* =============================================================
   Feature landing page: AI Portfolio Manager
   ============================================================= */

#how-portfolio-evaluation-works {
    scroll-margin-top: 2rem;
}

.ai-portfolio-feature-page .ai-portfolio-hero-badge img {
    width: 48px;
    height: 48px;
    object-fit: contain;
}

/* Portfolio Preview Panel (hero right column) */
.ai-portfolio-feature-page .portfolio-preview-panel .portfolio-preview-table-wrap {
    margin-top: var(--spacing-3);
    border-radius: var(--radius-lg);
    border: 1px solid rgba(103, 78, 153, 0.12);
    overflow-x: auto;
    overflow-y: hidden;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.95) 0%, rgba(249, 250, 251, 0.95) 100%);
}

.portfolio-preview-table {
    width: 100%;
    min-width: 260px;
    border-collapse: collapse;
    font-size: var(--text-sm);
}

.portfolio-preview-table th {
    text-align: left;
    padding: var(--spacing-2) var(--spacing-3);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-muted);
    font-size: var(--text-xs);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-bottom: 1px solid rgba(103, 78, 153, 0.12);
    white-space: nowrap;
}

.portfolio-preview-table td {
    padding: var(--spacing-3);
    border-bottom: 1px solid rgba(103, 78, 153, 0.08);
    color: var(--color-text);
}

.portfolio-preview-table tbody tr:last-child td {
    border-bottom: none;
}

.portfolio-preview-table tbody tr:hover {
    background: rgba(255, 255, 255, 0.9);
}

.portfolio-preview-change-up {
    color: #16a34a;
    font-weight: var(--font-weight-semibold);
}

.portfolio-preview-change-down {
    color: #dc2626;
    font-weight: var(--font-weight-semibold);
}

.portfolio-preview-callout {
    margin-top: var(--spacing-3);
    padding: var(--spacing-2) var(--spacing-3);
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    color: var(--color-brand);
    background: rgba(103, 78, 153, 0.1);
    border-radius: var(--radius-lg);
    text-align: center;
}

.ai-portfolio-supporting-line {
    margin: var(--spacing-4) 0 0;
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary);
}

.ai-portfolio-mid-cta {
    margin-top: var(--spacing-6);
}

.ai-portfolio-feature-page .vae-feature-how-grid.ai-portfolio-how-grid {
    grid-template-columns: repeat(4, 1fr);
}

.ai-portfolio-use-cases {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-5);
    margin-top: var(--spacing-4);
}

.ai-portfolio-use-case-card {
    padding: var(--spacing-5);
    border-radius: var(--radius-xl);
    border: 1px solid rgba(103, 78, 153, 0.12);
    background: linear-gradient(180deg, #ffffff 0%, var(--color-surface-2) 100%);
    box-shadow: var(--shadow-2);
    transition: transform var(--transition-base), box-shadow var(--transition-base);
}

.ai-portfolio-use-case-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-3);
}

.ai-portfolio-disclaimer {
    margin-top: var(--spacing-6);
    padding: var(--spacing-5);
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.05) 0%, rgba(103, 78, 153, 0.02) 100%);
    border: 1px solid rgba(103, 78, 153, 0.15);
    border-left: 4px solid rgba(103, 78, 153, 0.5);
}

.ai-portfolio-disclaimer p {
    margin: 0;
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
    font-size: var(--text-sm);
}

@media (max-width: 991px) {
    .ai-portfolio-feature-page .vae-feature-how-grid.ai-portfolio-how-grid {
        grid-template-columns: 1fr;
    }

    .ai-portfolio-use-cases {
        grid-template-columns: 1fr;
    }
}

/* =============================================================
   Feature landing page: Market Conditions
   ============================================================= */

#how-market-conditions-work {
    scroll-margin-top: 2rem;
}

.market-conditions-feature-page .market-conditions-hero-badge img {
    width: 48px;
    height: 48px;
    object-fit: contain;
}

/* Market Conditions Preview Panel (hero right column) */
.market-conditions-feature-page .market-conditions-preview-panel {
    padding: var(--spacing-5);
    border-radius: var(--radius-xl);
    border: 1px solid rgba(103, 78, 153, 0.12);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(249, 250, 251, 0.98) 100%);
    box-shadow: var(--shadow-2);
}

.market-conditions-preview-title {
    margin: 0 0 var(--spacing-3);
    font-size: var(--text-lg);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    letter-spacing: -0.02em;
}

.market-conditions-preview-summary {
    margin: 0 0 var(--spacing-4);
    font-size: var(--text-sm);
    line-height: var(--line-height-relaxed);
    color: var(--color-text-secondary);
}

.market-conditions-stance-badge {
    display: inline-block;
    margin-bottom: var(--spacing-4);
    padding: 0.25rem 0.75rem;
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-brand);
    background: rgba(103, 78, 153, 0.12);
    border-radius: var(--radius-full);
}

.market-conditions-risks-opportunities {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--spacing-4);
    margin-top: 0;
}

.market-conditions-card {
    padding: var(--spacing-4);
    border-radius: var(--radius-lg);
    border: 1px solid rgba(103, 78, 153, 0.1);
    background: rgba(255, 255, 255, 0.8);
}

.market-conditions-card.market-conditions-risks {
    border-left: 3px solid rgba(220, 38, 38, 0.4);
}

.market-conditions-card.market-conditions-opportunities {
    border-left: 3px solid rgba(22, 163, 74, 0.4);
}

.market-conditions-card-title {
    margin: 0 0 var(--spacing-2);
    font-size: var(--text-xs);
    font-weight: var(--font-weight-bold);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-muted);
}

.market-conditions-card-list {
    margin: 0;
    padding-left: 1.25rem;
    font-size: var(--text-sm);
    line-height: 1.5;
    color: var(--color-text-secondary);
}

.market-conditions-card-list li {
    margin-bottom: 0.25rem;
}

.market-conditions-card-list li:last-child {
    margin-bottom: 0;
}

.market-conditions-supporting-line {
    margin: var(--spacing-4) 0 0;
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary);
}

.market-conditions-mid-cta {
    margin-top: var(--spacing-6);
}

.market-conditions-feature-page .vae-feature-how-grid.market-conditions-how-grid {
    grid-template-columns: repeat(4, 1fr);
}

.market-conditions-use-cases {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-5);
    margin-top: var(--spacing-4);
}

.market-conditions-use-case-card {
    padding: var(--spacing-5);
    border-radius: var(--radius-xl);
    border: 1px solid rgba(103, 78, 153, 0.12);
    background: linear-gradient(180deg, #ffffff 0%, var(--color-surface-2) 100%);
    box-shadow: var(--shadow-2);
    transition: transform var(--transition-base), box-shadow var(--transition-base);
}

.market-conditions-use-case-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-3);
}

.market-conditions-disclaimer {
    margin-top: var(--spacing-6);
    padding: var(--spacing-5);
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.05) 0%, rgba(103, 78, 153, 0.02) 100%);
    border: 1px solid rgba(103, 78, 153, 0.15);
    border-left: 4px solid rgba(103, 78, 153, 0.5);
}

.market-conditions-disclaimer p {
    margin: 0;
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
    font-size: var(--text-sm);
}

@media (max-width: 991px) {
    .market-conditions-feature-page .vae-feature-how-grid.market-conditions-how-grid {
        grid-template-columns: 1fr;
    }

    .market-conditions-use-cases {
        grid-template-columns: 1fr;
    }

    .market-conditions-risks-opportunities {
        grid-template-columns: 1fr;
    }
}

/* =============================================================
   Feature landing page: AI Earnings Predictions
   ============================================================= */

#how-earnings-predictions-work {
    scroll-margin-top: 2rem;
}

.ai-earnings-feature-page .ai-earnings-hero-badge img {
    width: 48px;
    height: 48px;
    object-fit: contain;
}

/* Earnings Preview Panel (hero right column) */
.ai-earnings-feature-page .earnings-preview-panel .earnings-preview-stack {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-4);
    margin-top: var(--spacing-3);
    padding: var(--spacing-4);
    border-radius: var(--radius-lg);
    border: 1px solid rgba(103, 78, 153, 0.12);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.95) 0%, rgba(249, 250, 251, 0.95) 100%);
}

.earnings-preview-block {
    padding-bottom: var(--spacing-3);
    border-bottom: 1px solid rgba(103, 78, 153, 0.08);
}

.earnings-preview-block:last-child {
    padding-bottom: 0;
    border-bottom: none;
}

.earnings-preview-block-title {
    margin: 0 0 var(--spacing-2);
    font-size: var(--text-xs);
    font-weight: var(--font-weight-bold);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-muted);
}

.earnings-preview-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-3);
    padding: var(--spacing-2) 0;
    font-size: var(--text-sm);
}

.earnings-preview-row + .earnings-preview-row {
    border-top: 1px solid rgba(103, 78, 153, 0.06);
}

.earnings-preview-label {
    color: var(--color-text-secondary);
}

.earnings-preview-value {
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
}

.earnings-preview-scenario-list {
    margin: var(--spacing-2) 0 0;
    padding-left: 1.25rem;
    font-size: var(--text-sm);
    line-height: 1.6;
    color: var(--color-text-secondary);
}

.earnings-preview-scenario-list li {
    margin-bottom: 0.25rem;
}

.earnings-preview-scenario-list li:last-child {
    margin-bottom: 0;
}

.ai-earnings-supporting-line {
    margin: var(--spacing-4) 0 0;
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary);
}

.ai-earnings-mid-cta {
    margin-top: var(--spacing-6);
}

.ai-earnings-feature-page .vae-feature-how-grid.ai-earnings-how-grid {
    grid-template-columns: repeat(4, 1fr);
}

.ai-earnings-use-cases {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-5);
    margin-top: var(--spacing-4);
}

.ai-earnings-use-case-card {
    padding: var(--spacing-5);
    border-radius: var(--radius-xl);
    border: 1px solid rgba(103, 78, 153, 0.12);
    background: linear-gradient(180deg, #ffffff 0%, var(--color-surface-2) 100%);
    box-shadow: var(--shadow-2);
    transition: transform var(--transition-base), box-shadow var(--transition-base);
}

.ai-earnings-use-case-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-3);
}

.ai-earnings-disclaimer {
    margin-top: var(--spacing-6);
    padding: var(--spacing-5);
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.05) 0%, rgba(103, 78, 153, 0.02) 100%);
    border: 1px solid rgba(103, 78, 153, 0.15);
    border-left: 4px solid rgba(103, 78, 153, 0.5);
}

.ai-earnings-disclaimer p {
    margin: 0;
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
    font-size: var(--text-sm);
}

@media (max-width: 991px) {
    .ai-earnings-feature-page .vae-feature-how-grid.ai-earnings-how-grid {
        grid-template-columns: 1fr;
    }

    .ai-earnings-use-cases {
        grid-template-columns: 1fr;
    }
}

/* =============================================================
   Feature landing page: State of Market Reports
   ============================================================= */

#explore-market-reports,
#how-state-of-market-reports-work {
    scroll-margin-top: 2rem;
}

.state-of-market-feature-page .state-of-market-hero-badge img {
    width: 48px;
    height: 48px;
    object-fit: contain;
}

/* Reports Preview Panel (hero right column) */
.state-of-market-feature-page .reports-preview-panel .reports-preview-stack {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-3);
    margin-top: var(--spacing-3);
    padding: var(--spacing-4);
    border-radius: var(--radius-lg);
    border: 1px solid rgba(103, 78, 153, 0.12);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.95) 0%, rgba(249, 250, 251, 0.95) 100%);
}

.reports-preview-card {
    padding: var(--spacing-4);
    border-radius: var(--radius-lg);
    border: 1px solid rgba(103, 78, 153, 0.1);
    background: rgba(255, 255, 255, 0.9);
    transition: background var(--transition-base), box-shadow var(--transition-base);
}

.reports-preview-card:hover {
    background: rgba(255, 255, 255, 1);
    box-shadow: var(--shadow-2);
}

.reports-preview-timestamp {
    display: block;
    margin-bottom: var(--spacing-2);
    font-size: var(--text-xs);
    font-weight: var(--font-weight-bold);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-brand);
}

.reports-preview-excerpt {
    margin: 0;
    font-size: var(--text-sm);
    line-height: var(--line-height-relaxed);
    color: var(--color-text-secondary);
}

.state-of-market-supporting-line {
    margin: var(--spacing-4) 0 0;
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary);
}

.state-of-market-mid-cta {
    margin-top: var(--spacing-6);
}

.state-of-market-feature-page .vae-feature-how-grid.state-of-market-how-grid {
    grid-template-columns: repeat(4, 1fr);
}

.state-of-market-use-cases {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-5);
    margin-top: var(--spacing-4);
}

.state-of-market-use-case-card {
    padding: var(--spacing-5);
    border-radius: var(--radius-xl);
    border: 1px solid rgba(103, 78, 153, 0.12);
    background: linear-gradient(180deg, #ffffff 0%, var(--color-surface-2) 100%);
    box-shadow: var(--shadow-2);
    transition: transform var(--transition-base), box-shadow var(--transition-base);
}

.state-of-market-use-case-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-3);
}

.state-of-market-disclaimer {
    margin-top: var(--spacing-6);
    padding: var(--spacing-5);
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.05) 0%, rgba(103, 78, 153, 0.02) 100%);
    border: 1px solid rgba(103, 78, 153, 0.15);
    border-left: 4px solid rgba(103, 78, 153, 0.5);
}

.state-of-market-disclaimer p {
    margin: 0;
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
    font-size: var(--text-sm);
}

@media (max-width: 991px) {
    .state-of-market-feature-page .vae-feature-how-grid.state-of-market-how-grid {
        grid-template-columns: 1fr;
    }

    .state-of-market-use-cases {
        grid-template-columns: 1fr;
    }
}

/* Inline ad (from inline-ad.js) */
.tradevae-inline-ad {
    margin: 1rem 0;
}
.tradevae-inline-ad a {
    display: block;
}
.tradevae-inline-ad img {
    max-width: 100%;
    height: auto;
    vertical-align: middle;
}

/* =============================================================
   Billing Page Styles
   ============================================================= */

.user-billing-page {
    animation: fadeInUp 0.5s ease-out;
}

.billing-page-header {
    position: relative;
    padding-bottom: var(--spacing-6);
    margin-bottom: var(--spacing-8);
    padding:20px;
}

.billing-page-header::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, var(--color-brand) 0%, var(--color-brand-light) 50%, transparent 100%);
}

.billing-header-icon {
    width: 64px;
    height: 64px;
    border-radius: var(--radius-xl);
    background: linear-gradient(135deg, var(--color-brand) 0%, var(--color-brand-light) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: var(--spacing-4);
    box-shadow: 0 4px 12px rgba(103, 78, 153, 0.2);
    animation: scaleIn 0.5s ease-out;
}

.billing-header-icon i {
    font-size: 2rem;
    color: white;
}

/* Billing Card Headers */
.billing-card-header {
    display: flex;
    align-items: center;
    gap: var(--spacing-3);
    padding-bottom: var(--spacing-4);
    border-bottom: 2px solid var(--color-border-light);
    margin-bottom: var(--spacing-5);
}

.billing-card-header-icon {
    width: 40px;
    height: 40px;
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.1) 0%, rgba(103, 78, 153, 0.05) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-brand);
    font-size: 1.25rem;
    transition: all var(--transition-base);
}

.billing-card-current-plan:hover .billing-card-header-icon,
.billing-card-address:hover .billing-card-header-icon,
.billing-card-payments:hover .billing-card-header-icon,
.billing-card-plans:hover .billing-card-header-icon {
    background: linear-gradient(135deg, var(--color-brand) 0%, var(--color-brand-light) 100%);
    color: white;
    transform: scale(1.1) rotate(5deg);
}

/* Current Plan Section */
.billing-card-current-plan {
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.03) 0%, rgba(255, 255, 255, 1) 100%);
    border: 2px solid rgba(103, 78, 153, 0.15);
    position: relative;
    overflow: hidden;
}

.billing-card-current-plan::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--color-brand) 0%, var(--color-brand-light) 50%, var(--color-success) 100%);
}

.billing-current-plan-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-6);
    flex-wrap: wrap;
}

.billing-plan-main {
    flex: 1;
    min-width: 250px;
}

.billing-plan-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2);
    padding: var(--spacing-2) var(--spacing-4);
    background: linear-gradient(135deg, var(--color-success) 0%, var(--color-success-light) 100%);
    color: white;
    border-radius: var(--radius-full);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-semibold);
    margin-bottom: var(--spacing-3);
    box-shadow: 0 2px 8px rgba(16, 185, 129, 0.3);
    animation: pulse 2s ease-in-out infinite;
}

.billing-plan-badge i {
    font-size: 0.875rem;
}

.billing-plan-name {
    font-size: var(--text-3xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    margin-bottom: var(--spacing-2);
    background: linear-gradient(135deg, var(--color-brand) 0%, var(--color-brand-light) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.billing-plan-price {
    display: flex;
    align-items: baseline;
    gap: var(--spacing-2);
    margin-bottom: var(--spacing-4);
}

.billing-price-amount {
    font-size: var(--text-4xl);
    font-weight: var(--font-weight-extrabold);
    color: var(--color-text);
    line-height: 1;
}

.billing-price-amount.billing-price-free {
    color: var(--color-brand);
}

.billing-price-period {
    font-size: var(--text-lg);
    color: var(--color-text-secondary);
    font-weight: var(--font-weight-normal);
}

.billing-plan-status {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    margin-bottom: var(--spacing-2);
}

.billing-status-label {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
}

.billing-status-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-1);
    padding: var(--spacing-1) var(--spacing-3);
    border-radius: var(--radius-full);
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.billing-status-active {
    background: linear-gradient(135deg, var(--color-success) 0%, var(--color-success-light) 100%);
    color: white;
}

.billing-status-trialing {
    background: linear-gradient(135deg, var(--color-info) 0%, var(--color-info-light) 100%);
    color: white;
}

.billing-status-warning {
    background: linear-gradient(135deg, var(--color-warning) 0%, var(--color-warning-light) 100%);
    color: white;
}

.billing-plan-next-billing {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    padding: var(--spacing-3);
    background: var(--color-surface-2);
    border-radius: var(--radius-lg);
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    margin-top: var(--spacing-3);
}

.billing-plan-next-billing i {
    color: var(--color-brand);
    font-size: 1.125rem;
}

.billing-plan-actions {
    display: flex;
    align-items: center;
}

.billing-cancel-btn {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2);
    transition: all var(--transition-base);
}

.billing-cancel-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(239, 68, 68, 0.2);
}

.billing-plan-empty {
    text-align: center;
    padding: var(--spacing-8);
    color: var(--color-text-secondary);
}

.billing-plan-empty i {
    font-size: 3rem;
    color: var(--color-text-muted);
    margin-bottom: var(--spacing-3);
    opacity: 0.5;
}

/* Billing Address Form */
.billing-card-address {
    border: 2px solid var(--color-border-light);
    transition: all var(--transition-base);
}

.billing-card-address:hover {
    border-color: rgba(103, 78, 153, 0.2);
    box-shadow: 0 8px 24px rgba(103, 78, 153, 0.08);
}

.billing-address-form {
    animation: fadeIn 0.6s ease-out;
}

.billing-form-label {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
    margin-bottom: var(--spacing-2);
    font-size: var(--text-sm);
}

.billing-form-label i {
    color: var(--color-brand);
    font-size: 1rem;
}

.billing-form-input {
    border: 2px solid var(--color-border-light);
    border-radius: var(--radius-lg);
    padding: var(--spacing-3) var(--spacing-4);
    font-size: var(--text-base);
    transition: all var(--transition-base);
    background: var(--color-surface);
}

.billing-form-input:focus {
    outline: none;
    border-color: var(--color-brand);
    box-shadow: 0 0 0 3px rgba(103, 78, 153, 0.1);
    transform: translateY(-1px);
}

.billing-form-actions {
    margin-top: var(--spacing-6);
    padding-top: var(--spacing-4);
    border-top: 2px solid var(--color-border-light);
}

.billing-submit-btn {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2);
    padding: var(--spacing-3) var(--spacing-6);
    font-weight: var(--font-weight-semibold);
    transition: all var(--transition-base);
}

.billing-submit-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(103, 78, 153, 0.3);
}

/* Payment History */
.billing-card-payments {
    border: 2px solid var(--color-border-light);
}

.billing-payments-table-wrapper {
    border-radius: var(--radius-lg);
    overflow: hidden;
}

.billing-payments-table {
    margin: 0;
}

.billing-payments-table thead {
    background: linear-gradient(135deg, var(--color-surface-2) 0%, var(--color-surface-3) 100%);
}

.billing-payments-table thead th {
    font-weight: var(--font-weight-semibold);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-size: var(--text-xs);
    color: var(--color-text-secondary);
    padding: var(--spacing-4);
    border-bottom: 2px solid var(--color-border);
}

.billing-payments-table thead th i {
    margin-right: var(--spacing-2);
    color: var(--color-brand);
}

.billing-payment-row {
    animation: slideInRight 0.4s ease-out backwards;
    transition: all var(--transition-base);
}

.billing-payment-row:hover {
    background: linear-gradient(90deg, rgba(103, 78, 153, 0.05) 0%, transparent 100%);
    transform: translateX(4px);
}

.billing-payment-date {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-1);
}

.billing-payment-date strong {
    color: var(--color-text);
    font-size: var(--text-base);
}

.billing-payment-date small {
    color: var(--color-text-muted);
    font-size: var(--text-xs);
}

.billing-payment-description {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    color: var(--color-text);
}

.billing-payment-description i {
    color: var(--color-brand);
    font-size: 1.125rem;
}

.billing-payment-amount {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-1);
}

.billing-payment-amount strong {
    font-size: var(--text-lg);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
}

.billing-payment-currency {
    font-size: var(--text-xs);
    color: var(--color-text-muted);
    text-transform: uppercase;
}

.billing-payment-status {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2);
    padding: var(--spacing-2) var(--spacing-4);
    border-radius: var(--radius-full);
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.billing-status-success {
    background: linear-gradient(135deg, var(--color-success) 0%, var(--color-success-light) 100%);
    color: white;
    box-shadow: 0 2px 8px rgba(16, 185, 129, 0.2);
}

.billing-status-pending {
    background: linear-gradient(135deg, var(--color-warning) 0%, var(--color-warning-light) 100%);
    color: white;
    box-shadow: 0 2px 8px rgba(245, 158, 11, 0.2);
}

.billing-status-failed {
    background: linear-gradient(135deg, var(--color-danger) 0%, var(--color-danger-light) 100%);
    color: white;
    box-shadow: 0 2px 8px rgba(239, 68, 68, 0.2);
}

.billing-empty-state {
    text-align: center;
    padding: var(--spacing-10);
    color: var(--color-text-secondary);
}

.billing-empty-state i {
    font-size: 4rem;
    color: var(--color-text-muted);
    margin-bottom: var(--spacing-4);
    opacity: 0.3;
}

/* Plan Cards Section */
.billing-card-plans {
    border: 2px solid var(--color-border-light);
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.02) 0%, rgba(255, 255, 255, 1) 100%);
}

.billing-plans-section {
    margin-bottom: var(--spacing-8);
}

.billing-plans-section:last-child {
    margin-bottom: 0;
}

.billing-plans-section-title {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    font-size: var(--text-xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    margin-bottom: var(--spacing-5);
    padding-bottom: var(--spacing-3);
    border-bottom: 2px solid var(--color-border-light);
}

.billing-plans-section-title i {
    color: var(--color-brand);
    font-size: 1.5rem;
}

.billing-plans-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: var(--spacing-4);
    margin-bottom: var(--spacing-6);
}

.billing-plan-card {
    background: var(--color-surface);
    border: 2px solid var(--color-border-light);
    border-radius: var(--radius-xl);
    padding: var(--spacing-5);
    transition: all var(--transition-base);
    position: relative;
    overflow: hidden;
    animation: fadeInUp 0.5s ease-out backwards;
}

.billing-plan-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--color-brand) 0%, var(--color-brand-light) 100%);
    transform: scaleX(0);
    transition: transform var(--transition-base);
}

.billing-plan-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 12px 32px rgba(103, 78, 153, 0.15), 0 4px 16px rgba(0, 0, 0, 0.1);
    border-color: rgba(103, 78, 153, 0.3);
}

.billing-plan-card:hover::before {
    transform: scaleX(1);
}

.billing-plan-card-upgrade {
    border-color: rgba(16, 185, 129, 0.2);
    background: linear-gradient(135deg, rgba(16, 185, 129, 0.02) 0%, rgba(255, 255, 255, 1) 100%);
}

.billing-plan-card-upgrade::before {
    background: linear-gradient(90deg, var(--color-success) 0%, var(--color-success-light) 100%);
}

.billing-plan-card-downgrade {
    border-color: rgba(245, 158, 11, 0.2);
    background: linear-gradient(135deg, rgba(245, 158, 11, 0.02) 0%, rgba(255, 255, 255, 1) 100%);
}

.billing-plan-card-downgrade::before {
    background: linear-gradient(90deg, var(--color-warning) 0%, var(--color-warning-light) 100%);
}

.billing-plan-card-header {
    display: flex;
    align-items: center;
    gap: var(--spacing-3);
    margin-bottom: var(--spacing-4);
}

.billing-plan-card-badge {
    width: 48px;
    height: 48px;
    border-radius: var(--radius-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    transition: all var(--transition-base);
}

.billing-plan-badge-upgrade {
    background: linear-gradient(135deg, var(--color-success) 0%, var(--color-success-light) 100%);
    color: white;
    box-shadow: 0 4px 12px rgba(16, 185, 129, 0.3);
}

.billing-plan-badge-downgrade {
    background: linear-gradient(135deg, var(--color-warning) 0%, var(--color-warning-light) 100%);
    color: white;
    box-shadow: 0 4px 12px rgba(245, 158, 11, 0.3);
}

.billing-plan-card:hover .billing-plan-card-badge {
    transform: scale(1.1) rotate(5deg);
}

.billing-plan-card-title {
    font-size: var(--text-xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    margin: 0;
}

.billing-plan-card-body {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-4);
}

.billing-plan-card-price {
    display: flex;
    align-items: baseline;
    gap: var(--spacing-2);
    padding: var(--spacing-4);
    background: var(--color-surface-2);
    border-radius: var(--radius-lg);
}

.billing-plan-card-amount {
    font-size: var(--text-3xl);
    font-weight: var(--font-weight-extrabold);
    color: var(--color-text);
    line-height: 1;
}

.billing-plan-card-period {
    font-size: var(--text-base);
    color: var(--color-text-secondary);
}

.billing-plan-action-btn {
    width: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-2);
    padding: var(--spacing-3) var(--spacing-5);
    font-weight: var(--font-weight-semibold);
    border-radius: var(--radius-lg);
    transition: all var(--transition-base);
    position: relative;
    overflow: hidden;
}

.billing-plan-action-btn::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.3);
    transform: translate(-50%, -50%);
    transition: width 0.6s, height 0.6s;
}

.billing-plan-action-btn:hover::before {
    width: 300px;
    height: 300px;
}

.billing-plan-action-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(103, 78, 153, 0.25);
}

.billing-plan-action-btn i {
    font-size: 1.125rem;
}

/* Animations */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes slideInRight {
    from {
        opacity: 0;
        transform: translateX(-20px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes scaleIn {
    from {
        opacity: 0;
        transform: scale(0.8);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes pulse {
    0%, 100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.05);
    }
}

/* Responsive Design */
@media (max-width: 768px) {
    .billing-current-plan-content {
        flex-direction: column;
        align-items: flex-start;
    }
    
    .billing-plan-actions {
        width: 100%;
    }
    
    .billing-cancel-btn {
        width: 100%;
        justify-content: center;
    }
    
    .billing-plans-grid {
        grid-template-columns: 1fr;
    }
    
    .billing-plan-name {
        font-size: var(--text-2xl);
    }
    
    .billing-price-amount {
        font-size: var(--text-3xl);
    }
}

/* =============================================================
   Help Center / Support Tickets Styles
   ============================================================= */

.help-center-page {
    animation: fadeInUp 0.5s ease-out;
}

.help-center-header {
    display: flex;
    align-items: center;
    gap: var(--spacing-4);
    flex-wrap: wrap;
    margin-bottom: var(--spacing-6);
    padding:20px;
}

.help-center-header-icon {
    width: 64px;
    height: 64px;
    border-radius: var(--radius-xl);
    background: linear-gradient(135deg, var(--color-info) 0%, var(--color-info-light) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 12px rgba(59, 130, 246, 0.2);
    animation: scaleIn 0.5s ease-out;
}

.help-center-header-icon i {
    font-size: 2rem;
    color: white;
}

.help-center-header-actions {
    margin-left: auto;
}

.help-center-create-btn {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2);
    transition: all var(--transition-base);
}

.help-center-create-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(103, 78, 153, 0.3);
}

.help-center-alert {
    margin-bottom: var(--spacing-6);
    animation: slideInRight 0.4s ease-out;
}

/* Tickets List */
.help-center-tickets-list {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-3);
}

.help-center-ticket-item {
    display: block;
    padding: var(--spacing-5);
    background: var(--color-surface);
    border: 2px solid var(--color-border-light);
    border-radius: var(--radius-xl);
    text-decoration: none;
    color: inherit;
    transition: all var(--transition-base);
    animation: fadeInUp 0.4s ease-out backwards;
}

.help-center-ticket-item:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(103, 78, 153, 0.1);
    border-color: rgba(103, 78, 153, 0.3);
    text-decoration: none;
    color: inherit;
}

.help-center-ticket-item:nth-child(1) { animation-delay: 0.05s; }
.help-center-ticket-item:nth-child(2) { animation-delay: 0.1s; }
.help-center-ticket-item:nth-child(3) { animation-delay: 0.15s; }
.help-center-ticket-item:nth-child(4) { animation-delay: 0.2s; }
.help-center-ticket-item:nth-child(5) { animation-delay: 0.25s; }

.help-center-ticket-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--spacing-3);
    flex-wrap: wrap;
    gap: var(--spacing-2);
}

.help-center-ticket-number {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    font-weight: var(--font-weight-bold);
    color: var(--color-brand);
    font-size: var(--text-lg);
}

.help-center-ticket-status {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2);
    padding: var(--spacing-2) var(--spacing-4);
    border-radius: var(--radius-full);
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.help-center-status-open {
    background: linear-gradient(135deg, var(--color-info) 0%, var(--color-info-light) 100%);
    color: white;
}

.help-center-status-in_progress {
    background: linear-gradient(135deg, var(--color-warning) 0%, var(--color-warning-light) 100%);
    color: white;
}

.help-center-status-waiting_for_user {
    background: linear-gradient(135deg, var(--color-info) 0%, var(--color-info-light) 100%);
    color: white;
}

.help-center-status-resolved {
    background: linear-gradient(135deg, var(--color-success) 0%, var(--color-success-light) 100%);
    color: white;
}

.help-center-status-closed {
    background: linear-gradient(135deg, var(--color-text-muted) 0%, rgba(0, 0, 0, 0.3) 100%);
    color: white;
}

.help-center-status-large {
    font-size: var(--text-base);
    padding: var(--spacing-3) var(--spacing-5);
}

.help-center-ticket-subject h3 {
    font-size: var(--text-xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    margin: 0 0 var(--spacing-3) 0;
}

.help-center-ticket-meta {
    display: flex;
    align-items: center;
    gap: var(--spacing-4);
    flex-wrap: wrap;
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
}

.help-center-ticket-category,
.help-center-ticket-priority,
.help-center-ticket-date,
.help-center-ticket-messages {
    display: flex;
    align-items: center;
    gap: var(--spacing-1);
}

.help-center-ticket-priority {
    padding: var(--spacing-1) var(--spacing-3);
    border-radius: var(--radius-full);
    font-weight: var(--font-weight-semibold);
}

.help-center-priority-low {
    background: rgba(16, 185, 129, 0.1);
    color: var(--color-success-dark);
}

.help-center-priority-normal {
    background: rgba(59, 130, 246, 0.1);
    color: var(--color-info-dark);
}

.help-center-priority-high {
    background: rgba(245, 158, 11, 0.1);
    color: var(--color-warning-dark);
}

.help-center-priority-urgent {
    background: rgba(239, 68, 68, 0.1);
    color: var(--color-danger-dark);
}

.help-center-priority-large {
    padding: var(--spacing-2) var(--spacing-4);
    font-size: var(--text-base);
}

/* Ticket Info Card */
.help-center-ticket-info-card {
    border: 2px solid var(--color-border-light);
    margin-bottom: var(--spacing-6);
}

.help-center-ticket-info-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: var(--spacing-4);
    margin-bottom: var(--spacing-5);
}

.help-center-ticket-info-item {
    padding: var(--spacing-4);
    background: var(--color-surface-2);
    border-radius: var(--radius-lg);
}

.help-center-info-label {
    font-size: var(--text-xs);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-2);
    font-weight: var(--font-weight-semibold);
}

.help-center-info-value {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    font-size: var(--text-base);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
}

.help-center-ticket-subject-box {
    padding: var(--spacing-4);
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.05) 0%, rgba(255, 255, 255, 1) 100%);
    border-radius: var(--radius-lg);
    border-left: 4px solid var(--color-brand);
}

.help-center-ticket-subject-box h2 {
    margin: 0;
    font-size: var(--text-2xl);
    color: var(--color-text);
}

/* Messages Thread */
.help-center-messages-thread {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-4);
}

.help-center-message {
    padding: var(--spacing-5);
    border-radius: var(--radius-xl);
    border: 2px solid var(--color-border-light);
    background: var(--color-surface);
    animation: fadeInUp 0.4s ease-out backwards;
}

.help-center-message-user {
    background: linear-gradient(135deg, rgba(103, 78, 153, 0.05) 0%, rgba(255, 255, 255, 1) 100%);
    border-color: rgba(103, 78, 153, 0.2);
}

.help-center-message-admin {
    background: linear-gradient(135deg, rgba(59, 130, 246, 0.05) 0%, rgba(255, 255, 255, 1) 100%);
    border-color: rgba(59, 130, 246, 0.2);
    border-left: 4px solid var(--color-info);
}

.help-center-message-header {
    display: flex;
    align-items: center;
    gap: var(--spacing-3);
    margin-bottom: var(--spacing-3);
}

.help-center-message-avatar {
    width: 48px;
    height: 48px;
    border-radius: var(--radius-full);
    background: linear-gradient(135deg, var(--color-brand) 0%, var(--color-brand-light) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 1.5rem;
    flex-shrink: 0;
}

.help-center-message-admin .help-center-message-avatar {
    background: linear-gradient(135deg, var(--color-info) 0%, var(--color-info-light) 100%);
}

.help-center-message-info {
    flex: 1;
}

.help-center-message-author {
    font-size: var(--text-base);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
    margin-bottom: var(--spacing-1);
}

.help-center-message-date {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
}

.help-center-message-body {
    font-size: var(--text-base);
    line-height: var(--line-height-relaxed);
    color: var(--color-text);
    white-space: pre-wrap;
    word-wrap: break-word;
}

/* Pagination */
.help-center-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-4);
    margin-top: var(--spacing-6);
    padding-top: var(--spacing-4);
    border-top: 2px solid var(--color-border-light);
}

.help-center-pagination-info {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    font-weight: var(--font-weight-semibold);
}

/* Ticket Actions */
.help-center-ticket-actions {
    margin-top: var(--spacing-6);
    text-align: center;
}

/* Responsive */
@media (max-width: 768px) {
    .help-center-header {
        flex-direction: column;
        align-items: flex-start;
    }
    
    .help-center-header-actions {
        margin-left: 0;
        width: 100%;
    }
    
    .help-center-create-btn {
        width: 100%;
        justify-content: center;
    }
    
    .help-center-ticket-info-grid {
        grid-template-columns: 1fr;
    }
    
    .help-center-ticket-meta {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--spacing-2);
    }
}
