@import url('theme.css');

* { margin: 0; padding: 0; box-sizing: border-box; }

/* CSS Custom Properties for Mobile Modals */
:root {
    --modal-mobile-width: min(95vw, 420px);
    --modal-mobile-max-height: calc(100vh - 100px);
    --modal-mobile-padding: clamp(12px, 4vw, 20px);
    --modal-mobile-header-padding: clamp(12px, 3vw, 20px);
    --modal-mobile-gap: 16px;
}

body { 
    font-family: 'Segoe UI', Arial, sans-serif; 
    background: var(--bg-body); 
    color: var(--color-white); 
    min-height: 100vh; 
    display: flex; 
    flex-direction: column; 
}
    
/* Header Styles */
.header { 
    background: #1a1a1a; 
    padding: 15px 25px; 
    border-bottom: 1px solid #8F6F52;
    box-shadow: 0 2px 8px rgba(139, 111, 82, 0.4);
    display: flex; 
    justify-content: space-between; 
    align-items: flex-end; 
}
.header h1 { font-size: 1.5em; color: #8F6F52; }
    .token-info { color: #8F6F52; font-size: 0.9em; line-height: 1.2; text-align: center; font-weight: bold; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; }
    
/* Footer Styles */
.footer { 
    background: #1a1a1a; 
    padding: 8px 25px; 
    border-top: 1px solid #8F6F52;
    box-shadow: 0 -2px 8px rgba(139, 111, 82, 0.4);
    text-align: center; 
    color: #8F6F52; 
    font-size: 0.8em; 
    line-height: 1.2; 
    position: fixed; 
    bottom: 0; 
    left: 0; 
    right: 0; 
    z-index: 10; 
}
    .user-profile { width: 40px; height: 40px; background: rgba(85, 85, 85, 0.8); border-radius: 0; display: flex; align-items: center; justify-content: center; color: white; font-weight: bold; cursor: pointer; }
    
    /* Hamburger Menu Button - Optional/Subtle */
    .hamburger-menu { 
        background: none; 
        border: none; 
        color: #8F6F52; 
        font-size: 1.5em; 
        cursor: pointer; 
        padding: 6px; 
        border-radius: 0;
        transition: all 0.3s;
        opacity: 0.7;
    }
    .hamburger-menu:hover { 
        background: rgba(139, 111, 82, 0.1);
        color: #B8936F;
        opacity: 1;
    }
    
    /* Header Filter Button - Matches hamburger menu styling */
    .header-filter-btn {
        display: flex;
        align-items: center;
        gap: 6px;
        background: none;
        border: none;
        color: #8F6F52;
        font-size: 1.1em;
        cursor: pointer;
        padding: 6px 10px;
        border-radius: 0;
        transition: all 0.3s;
        opacity: 0.7;
        margin-right: 15px;
    }
    .header-filter-btn.hidden {
        display: none;
    }
    .header-filter-btn:hover {
        background: rgba(139, 111, 82, 0.1);
        color: #B8936F;
        opacity: 1;
    }
    .header-filter-btn svg {
        width: 20px;
        height: 20px;
    }
    .filter-label {
        font-size: 0.9em;
        font-weight: 500;
    }
    
    /* Header logo icon - visible by default, hidden on mobile */
    .header-logo-icon {
        color: #000;
    }
    
    /* Token balance label - visible by default, hidden on mobile */
    .token-label-full {
        display: inline;
    }
    
    /* Mobile header adjustments */
    @media (max-width: 768px) {
        /* Fixed header on mobile */
        .header {
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            z-index: 999;
            padding: 10px 12px;
        }
        
        /* Add padding to main content to account for fixed header */
        .main-content {
            padding-top: 60px;
        }
        
        /* Reduce VinylVerse font size */
        .header h1 {
            font-size: 1.2em;
        }
        
        /* Reduce filter button padding and margin */
        .header-filter-btn {
            padding: 4px 4px;
            margin-right: 5px;
        }
        
        /* Hide "Filters" text, keep only icon */
        .filter-label {
            display: none;
        }
        
        /* Hide vinyl record icon before VinylVerseAI */
        .header-logo-icon {
            display: none;
        }
        
        /* Hide "Token Balance:" label and adjust size/alignment */
        .token-label-full {
            display: none;
        }
        .token-info {
            font-size: 1em;
            line-height: 1;
            flex-direction: row;
        }
        /* Ensure header elements align at baseline on mobile */
        .header {
            align-items: baseline;
        }
        .header h1 {
            line-height: 1;
        }
    }
    
    /* Swipe indicator for left edge */
    .swipe-indicator {
        position: fixed;
        left: 0;
        top: 50%;
        transform: translateY(-50%);
        width: 4px;
        height: 60px;
        background: linear-gradient(to right, rgba(255, 255, 255, 0.3), transparent);
        border-radius: 0 4px 4px 0;
        z-index: 997;
        opacity: 0;
        animation: swipeHint 3s ease-in-out infinite;
        animation-delay: 2s;
    }
    
    @keyframes swipeHint {
        0%, 90%, 100% { opacity: 0; }
        20%, 70% { opacity: 0.6; }
    }
    
    /* Side Navigation Styles */
    .side-nav-overlay {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: rgba(0, 0, 0, 0.5);
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.3s, visibility 0.3s;
        z-index: 998;
    }
    .side-nav-overlay.active {
        opacity: 1;
        visibility: visible;
    }
    
    /* Navigation separator */
    .nav-separator {
        height: 1px;
        background: linear-gradient(to right, #8F6F52 0%, transparent 100%);
        margin: 12px 20px;
        border: none;
    }
    
    .side-navigation {
        position: fixed;
        top: 0;
        left: -280px;
        width: 280px;
        height: 100%;
        background: linear-gradient(to top, rgba(0, 0, 0, 0.7) 0%, rgba(10, 10, 10, 0.6) 50%);
        backdrop-filter: blur(15px) saturate(1.2);
        box-shadow: 2px 0 10px rgba(0, 0, 0, 0.3), inset 0 0 60px rgba(255, 255, 255, 0.03);
        border-right: 1px solid rgba(139, 111, 82, 0.3);
        transition: left 0.3s ease;
        z-index: 999;
        overflow-y: auto;
    }
    .side-navigation::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        width: 12px;
        height: 100%;
        background: linear-gradient(to right, rgba(0, 0, 0, 0.4) 0%, transparent 100%);
        pointer-events: none;
        z-index: 1;
    }
    .side-navigation::after {
        content: '';
        position: absolute;
        top: 0;
        right: 0;
        width: 12px;
        height: 100%;
        background: linear-gradient(to left, rgba(139, 111, 82, 0.25) 0%, transparent 100%);
        pointer-events: none;
    }
    .side-navigation.active {
        left: 0;
    }
    
    .side-nav-header {
        padding: 20px;
        background: #1a1a1a;
        border-bottom: 1px solid #8F6F52;
        box-shadow: 0 2px 8px rgba(139, 111, 82, 0.4);
        display: flex;
        justify-content: space-between;
        align-items: center;
    }
    .side-nav-header h2 {
        color: #8F6F52;
        margin: 0;
        font-size: 1.3em;
    }
    .side-nav-close {
        background: none;
        border: none;
        color: #8F6F52;
        font-size: 1.5em;
        cursor: pointer;
        padding: 5px;
        border-radius: 0;
        transition: color 0.3s;
    }
    .side-nav-close:hover {
        color: #B8936F;
    }
    
    .nav-list {
        list-style: none;
        padding: 20px 0;
        margin: 0;
    }
    .nav-item {
        margin: 0;
    }
    .nav-item.nav-indent .nav-link {
        padding-left: 45px;
        font-size: 0.95em;
        opacity: 0.9;
    }
    .nav-link {
        display: block;
        padding: 15px 25px;
        color: #FFFFFF;
        text-decoration: none;
        transition: all 0.3s;
        border-left: 3px solid transparent;
    }
    .nav-link:hover {
        background: rgba(139, 111, 82, 0.15);
        color: #FFFFFF;
        border-left-color: #8F6F52;
    }
    .nav-link.active {
        background: rgba(139, 111, 82, 0.25);
        color: #FFFFFF;
        border-left-color: #B8936F;
    }
    
    /* Hide old navigation */
    .navigation {
        display: none;
    }
    
    /* Main Content Area - Account for footer space */
    .main-content { flex: 1; overflow: visible; height: calc(100vh - 100px); }
    .page { display: none; min-height: 100%; height: 100%; }
    .page.active { display: flex; flex-direction: column; height: 100%; }
    .page.user-profile.active { overflow-y: auto; min-height: calc(100vh - 100px); }
    
    /* AI Insights Page - Background positioning */
    #ai-insights {
        position: relative;
    }
    
    /* AI Insights B&W Album Cover Background */
    #ai-insights .album-background-container {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        z-index: 0;
        pointer-events: none;
        overflow: hidden;
        background: #0a0a0a;
    }
    
    #ai-insights .album-background {
        position: absolute;
        top: -5px;
        left: -5px;
        right: -5px;
        bottom: -5px;
        background-size: cover;
        background-position: center;
        background-repeat: no-repeat;
        filter: grayscale(100%) brightness(0.35) blur(2px);
        transition: background-image 2s ease-in-out, opacity 2s ease-in-out;
        opacity: 0;
    }
    
    #ai-insights .album-background-overlay {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: linear-gradient(135deg, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0.4) 50%, rgba(0, 0, 0, 0.6) 100%);
        z-index: 1;
    }
    
    #ai-insights .app-container {
        position: relative;
        z-index: 2;
    }
    
    /* Wantlist Trianglify Background */
    #wantlist .background-container {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        z-index: 0;
        pointer-events: none;
        background: linear-gradient(135deg, #1a1a1a 0%, #2d2d2d 50%, #1a1a1a 100%);
    }
    
    #wantlist .background-1,
    #wantlist .background-2 {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-size: cover;
        background-position: center;
        transition: opacity 3s ease-in-out;
    }
    
    #wantlist .background-1 {
        opacity: 0;
        z-index: 1;
    }
    
    #wantlist .background-2 {
        opacity: 0;
        z-index: 0;
    }
    
    #wantlist .collection-container {
        position: relative;
        z-index: 1;
    }
    
    /* AI Insights Page - Fixed height layout with internal scrolling */
    .app-container { display: flex; flex: 1; min-height: 0; height: calc(100vh - 90px); } /* Account for header + footer */
    .sidebar { 
        width: 280px; 
        background: linear-gradient(to top, rgba(0, 0, 0, 0.7) 0%, rgba(10, 10, 10, 0.6) 50%);
        backdrop-filter: blur(15px) saturate(1.2);
        padding: 24px; 
        border-right: 1px solid rgba(139, 111, 82, 0.3); 
        overflow-y: auto; 
        overflow-x: hidden;
        box-shadow: 2px 0 10px rgba(0, 0, 0, 0.3), inset 0 0 60px rgba(255, 255, 255, 0.03); 
        height: 100vh;
        position: fixed;
        left: -100%;
        top: 0;
        z-index: 1001;
        transition: left 0.3s ease;
    }
    
    /* Left black shadow edge */
    .sidebar::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        width: 12px;
        height: 100%;
        background: linear-gradient(to right, rgba(0, 0, 0, 0.4) 0%, transparent 100%);
        pointer-events: none;
        z-index: 1;
    }
    
    /* Right copper shadow edge */
    .sidebar::after {
        content: '';
        position: absolute;
        top: 0;
        right: 0;
        width: 12px;
        height: 100%;
        background: linear-gradient(to left, rgba(139, 111, 82, 0.25) 0%, transparent 100%);
        pointer-events: none;
    }
    
    .sidebar.open {
        left: 0;
    }
    
    .sidebar .sidebar-close-btn {
        position: absolute;
        top: 24px;
        right: 24px;
        background: transparent;
        border: none;
        color: #B8936F;
        font-size: 24px;
        cursor: pointer;
        padding: 0;
        line-height: 1;
        width: 32px;
        height: 32px;
        display: flex;
        align-items: center;
        justify-content: center;
        border-radius: 0;
        transition: all 0.2s ease;
    }
    
    .sidebar .sidebar-close-btn:hover {
        background: rgba(139, 111, 82, 0.15);
        color: #B8936F;
    }
    
    .main-chat { 
        flex: 1; 
        display: flex; 
        flex-direction: column; 
        min-width: 0; 
        background: transparent !important; 
        box-shadow: none !important;
        border: none !important;
        height: calc(100vh - 90px); 
        max-height: calc(100vh - 90px); 
        width: 100%; 
        position: relative;
    }
    
    .main-chat > * {
        position: relative;
        z-index: 1;
    }
    
    .mobile-menu-btn { display: none; position: fixed; top: 15px; left: 15px; z-index: 1000; background: rgba(85, 85, 85, 0.8); color: white; border: none; padding: 10px; border-radius: 0; cursor: pointer; }
    
    .sidebar-filter-toggle {
        position: fixed;
        top: 100px;
        left: 20px;
        z-index: 997;
        background: transparent;
        color: rgba(255, 255, 255, 0.6);
        border: none;
        padding: 12px 16px;
        border-radius: 0;
        cursor: pointer;
        transition: all 0.3s ease;
        display: flex;
        align-items: center;
        gap: 8px;
        font-weight: 500;
        font-size: 14px;
        opacity: 0.7;
    }
    
    .sidebar-filter-toggle:hover {
        background: rgba(255, 255, 255, 0.1);
        color: var(--color-gray-200);
        opacity: 1;
    }
    
    .sidebar-filter-toggle svg {
        width: 20px;
        height: 20px;
        stroke: currentColor;
    }
    
    .sidebar-overlay { 
        display: none; 
        position: fixed; 
        top: 0; 
        left: 0; 
        right: 0; 
        bottom: 0; 
        background: rgba(0,0,0,0.5); 
        z-index: 1000; /* Higher than side-nav-overlay (998) */
    }
    
    .sidebar-overlay.open {
        display: block;
    }
    
    .dashboard-right .search-section { margin-bottom: 24px; position: relative; background: rgba(255, 255, 255, 0.15); backdrop-filter: blur(15px) saturate(1.2); border-radius: 0px; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.37); border: 1px solid rgba(255, 255, 255, 0.18); padding: 16px; z-index: 3; /* v5 - consistent spacing */ }
    .search-input { width: 100%; padding: 12px; border: 1px solid var(--color-primary); background: rgba(255, 255, 255, 0.1); color: var(--color-white); border-radius: 0px; font-size: 16px; backdrop-filter: blur(10px); box-shadow: none; }
    .search-input:focus { border-color: var(--color-primary); outline: none; box-shadow: 0 0 12px rgba(184, 147, 111, 0.5); color: var(--color-white); }
    .search-results { 
        flex: 1; 
        min-height: 200px; 
        max-height: 500px; 
        overflow-y: auto; 
        scrollbar-width: none; 
        -ms-overflow-style: none; 
    }
    
    /* Smaller search results area for dashboard */
    .dashboard-half-height .search-results {
        min-height: 120px;
        max-height: 180px;
    }
    .search-results::-webkit-scrollbar { display: none; }
    .search-item { padding: 12px; background: rgba(255, 255, 255, 0.1); margin: 4px 0; border-radius: 0px; cursor: pointer; font-size: 14px; border: 1px solid rgba(255, 255, 255, 0.2); transition: all 0.2s ease; color: var(--color-white); text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7); backdrop-filter: blur(10px); }
    
    /* Smaller search items for dashboard */
    .dashboard-half-height .search-item {
        padding: 8px;
        font-size: 12px;
        margin: 2px 0;
    }
    .search-item:hover { background: rgba(255, 255, 255, 0.15); border-color: rgba(255, 255, 255, 0.4); transform: translateY(-1px); }
    
    .context-section { margin-bottom: 24px; }
    .context-buttons {
        display: flex;
        flex-direction: column;
        gap: 8px;
    }
    
    .context-btn { 
        padding: 12px 16px;
        border: 1px solid var(--color-primary);
        background: rgba(184, 147, 111, 0.2);
        backdrop-filter: blur(10px);
        border-radius: 0;
        font-weight: 500;
        cursor: pointer;
        transition: all 0.2s ease;
        font-size: 14px;
        color: var(--color-primary);
        text-align: center;
    }
    
    .context-btn:hover:not(.active) { 
        background: var(--color-primary);
        color: var(--color-white);
        transform: translateY(-1px);
        box-shadow: 0 2px 8px rgba(184, 147, 111, 0.4);
    }
    
    .context-btn.active { 
        background: var(--color-primary); 
        color: var(--color-white); 
        border-color: var(--color-primary);
        box-shadow: 0 2px 8px rgba(184, 147, 111, 0.4);
    }
    
    .prompts-section h3 { margin-bottom: 12px; font-size: 16px; color: var(--color-white); font-weight: 600; }
    .prompt-item { padding: 12px; background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(10px); margin: 6px 0; border-radius: 0; cursor: pointer; font-size: 14px; border: 1px solid rgba(255, 255, 255, 0.2); transition: all 0.2s ease; color: var(--color-white); }
    .prompt-item:hover { background: rgba(184, 147, 111, 0.3); border-color: var(--color-primary); }
    
    .chat-header { padding: 20px 24px; background: rgba(0, 0, 0, 0.9); border-bottom: 1px solid rgba(255, 255, 255, 0.2); box-shadow: 0 2px 4px rgba(0,0,0,0.5); flex-shrink: 0; }
    .chat-header h1 { font-size: 1.8em; margin-bottom: 8px; color: var(--color-white); font-weight: 600; }
    .chat-messages { 
        padding: 24px; 
        padding-bottom: 120px; /* Extra space at bottom for fixed input and footer */
        overflow-y: auto; 
        background: transparent; 
        /* Fixed consistent height - account for header, footer (40px), context bar and search bar */
        height: calc(100vh - 240px); /* Subtract header+footer (~120px), context bar (~50px) and search bar (~70px) */
        max-height: calc(100vh - 240px);
        min-height: calc(100vh - 240px);
        scrollbar-width: none; /* Firefox */
        -ms-overflow-style: none; /* IE/Edge */
        -webkit-overflow-scrolling: touch; /* Smooth iOS scrolling */
        scroll-behavior: smooth; /* Smooth scrolling */
        overscroll-behavior: contain; /* Prevent scrolling parent */
        position: relative; /* For proper scroll containment */
    }
    .chat-messages::-webkit-scrollbar { 
        display: none; /* Chrome/Safari/Opera */
    }
    
    /* Enhanced touch scrolling and momentum */
    .chat-messages {
        -webkit-overflow-scrolling: touch; /* Enhanced iOS scrolling */
        overscroll-behavior-y: contain; /* Prevent bounce scrolling affecting parent */
        scroll-snap-type: y proximity; /* Subtle snap to message boundaries */
    }
    
    /* Main search section styling */
    .main-search-section {
        padding: 0 20px 15px;
        background: transparent;
        border: none;
        display: flex;
        gap: 10px;
        align-items: center;
        flex-shrink: 0;
    }
    
    /* Responsive chat heights for different screen sizes */
    @media (max-height: 800px) {
        .chat-messages {
            height: calc(100vh - 200px);
            max-height: calc(100vh - 200px);
            min-height: calc(100vh - 200px);
            padding-bottom: 20px;
        }
    }
    
    @media (max-height: 600px) {
        .chat-messages {
            height: calc(100vh - 190px);
            max-height: calc(100vh - 190px);
            min-height: calc(100vh - 190px);
            padding-bottom: 15px;
        }
    }
    
    @media (min-height: 1000px) {
        .chat-messages {
            height: calc(100vh - 220px);
            max-height: calc(100vh - 220px);
            min-height: calc(100vh - 220px);
            padding-bottom: 25px;
        }
    }
    
    /* Fixed position input section at bottom */
    .chat-input-section { 
        position: fixed; 
        bottom: 0; 
        left: 0; /* Sidebar is now a flyover, so no offset needed */
        right: 0; 
        padding: 20px 24px; 
        background: rgba(0, 0, 0, 0.6); 
        backdrop-filter: blur(15px) saturate(1.2);
        border-top: 1px solid rgba(255, 255, 255, 0.2); 
        display: flex; 
        gap: 12px; 
        box-shadow: 0 -2px 8px rgba(0,0,0,0.5); 
        z-index: 10; 
    }
    
    /* Mobile responsive adjustments for fixed input */
    @media (max-width: 768px) {
        .sidebar.mobile-hidden + .main-chat .chat-input-section {
            left: 0; /* Full width when sidebar is hidden */
        }
    }
    
    .message { margin-bottom: 15px; }
    .message.user { text-align: right; }
    .message.ai { text-align: left; }
    .message-content { display: inline-block; max-width: 85%; padding: 12px; border-radius: 12px; word-wrap: break-word; }
    .message.user .message-content { background: rgba(184, 147, 111, 0.4); backdrop-filter: blur(10px); color: var(--color-white); border: 1px solid rgba(255, 255, 255, 0.2); }
    .message.ai .message-content { background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(10px); color: var(--color-white); border: 1px solid rgba(255, 255, 255, 0.2); }
    
    /* Chat History Styles */
    .chat-history { opacity: 0.7; margin-bottom: 20px; }
    .chat-history .message-content { border: 1px solid rgba(255, 255, 255, 0.15) !important; background: rgba(255, 255, 255, 0.05) !important; backdrop-filter: blur(10px) !important; color: rgba(255, 255, 255, 0.7) !important; }
    .chat-history .message.user .message-content { background: rgba(184, 147, 111, 0.2) !important; backdrop-filter: blur(10px) !important; color: rgba(255, 255, 255, 0.8) !important; }
    
    .context-separator { 
        position: sticky; 
        top: 10px; 
        z-index: 10; 
        text-align: center; 
        margin: 20px 0; 
        scroll-margin-top: 20px;
    }
    
    .context-separator-pill { 
        display: inline-block; 
        background: rgba(85, 85, 85, 0.8); 
        color: white; 
        padding: 8px 16px; 
        border-radius: 0; 
        font-size: 14px; 
        font-weight: 500; 
        box-shadow: 0 2px 6px rgba(85, 85, 85, 0.3); 
    }
    
    .message.current .message-content { border: 2px solid rgba(85, 85, 85, 0.8) !important; }
    
    /* Streaming message styles */
    .streaming-indicator {
        display: inline-block;
        margin-left: 8px;
        font-size: 16px;
        color: rgba(85, 85, 85, 0.8);
        animation: pulse 1.5s infinite;
    }
    
    @keyframes pulse {
        0%, 50%, 100% { opacity: 1; }
        25%, 75% { opacity: 0.3; }
    }
    
    .streaming-text {
        display: inline;
    }
    
    .chat-input { flex: 1; padding: 14px 16px; border: 1px solid var(--color-primary); background: rgba(255, 255, 255, 0.1); color: var(--color-white); border-radius: 0; font-size: 16px; box-shadow: none; backdrop-filter: blur(10px); }
    .chat-input::placeholder { color: rgba(255, 255, 255, 0.5); }
    .chat-input:focus { border-color: var(--color-primary); outline: none; box-shadow: 0 0 12px rgba(184, 147, 111, 0.5); color: var(--color-white); }
    
    /* Smaller AI chat for dashboard 50/50 layout */
    .dashboard-half-height .chat-input {
        padding: 8px 10px;
        font-size: 13px;
        border-radius: 0px;
    }
    
    .dashboard-half-height .send-btn {
        padding: 8px 10px;
        font-size: 13px;
        border-radius: 0px;
        min-width: 40px;
    }
    .send-btn { padding: 14px 24px; background: rgba(184, 147, 111, 0.2); color: var(--color-primary); border: 1px solid var(--color-primary); border-radius: 0; cursor: pointer; white-space: nowrap; font-weight: 600; transition: all 0.2s ease; }
    .send-btn:hover { background: var(--color-primary); color: var(--color-white); transform: translateY(-1px); box-shadow: 0 2px 8px rgba(184, 147, 111, 0.4); }
    .stop-btn { 
        padding: 14px 24px; background: var(--color-error); color: white; border: none; border-radius: 0; 
        cursor: pointer; white-space: nowrap; display: none; font-weight: 500; transition: all 0.2s ease;
        flex-direction: column; align-items: center; line-height: 1.2;
    }
    .stop-btn:hover { background: var(--color-error); }
    .thinking-text { font-size: 13px; font-weight: 400; margin-bottom: 2px; }
    .stop-text { font-size: 14px; font-weight: 600; }
    
    .image-btn { 
        padding: 14px 16px; 
        background: rgba(255, 255, 255, 0.1); 
        color: var(--color-primary); 
        border: 1px solid var(--color-primary); 
        border-radius: 0; 
        cursor: pointer; 
        transition: all 0.2s ease; 
        display: flex; 
        align-items: center; 
        justify-content: center;
        backdrop-filter: blur(10px);
    }
    .image-btn:hover { 
        background: rgba(184, 147, 111, 0.2); 
        color: var(--color-primary); 
        border-color: var(--color-primary);
        transform: translateY(-1px); 
        box-shadow: 0 2px 8px rgba(184, 147, 111, 0.3); 
    }
    .image-btn.has-image {
        background: var(--color-primary);
        color: var(--color-white);
        border-color: var(--color-primary);
    }
    .chat-image-preview {
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 8px 16px;
        background: rgba(127, 160, 184, 0.1);
        border: 1px solid rgba(127, 160, 184, 0.3);
        border-top: none;
        margin-bottom: 8px;
    }
    .chat-image-preview img {
        max-width: 60px;
        max-height: 60px;
        object-fit: cover;
        border-radius: 4px;
        border: 1px solid rgba(255, 255, 255, 0.2);
    }
    .remove-image-btn {
        background: rgba(255, 100, 100, 0.3);
        color: #ff6464;
        border: 1px solid #ff6464;
        border-radius: 50%;
        width: 24px;
        height: 24px;
        font-size: 16px;
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 0;
        line-height: 1;
        transition: all 0.2s ease;
    }
    .remove-image-btn:hover {
        background: #ff6464;
        color: white;
    }
    
    .loading { text-align: center; color: #666; padding: 20px; }
    .context-info { 
        background: transparent !important; 
        border: none !important; 
        box-shadow: none !important;
        backdrop-filter: none !important;
        color: var(--color-white); 
        padding: 40px 16px 16px; 
        border-radius: 0; 
        margin-bottom: 16px; 
        font-size: 26px; 
        font-weight: 300; 
        letter-spacing: 0.3px; 
    }
    
    /* AI Insights Simplified Layout */
    .ai-insights-container {
        display: flex;
        flex-direction: column;
        height: calc(100vh - 90px);
        padding: 0 16px;
        position: relative;
        z-index: 2;
    }
    
    .ai-insights-container .context-info {
        padding: 24px 0 12px;
        margin-bottom: 0;
    }
    
    .ai-insights-history-row {
        display: flex;
        gap: 12px;
        padding: 8px 0;
        align-items: center;
        flex-wrap: wrap;
    }
    
    .ai-insights-history-left {
        flex: 0 0 auto;
    }
    
    .ai-insights-history-right {
        flex: 1;
        position: relative;
        min-width: 200px;
    }
    
    .ai-history-select {
        background: rgba(255, 255, 255, 0.1);
        border: 1px solid var(--color-primary);
        color: #d4b896;
        padding: 8px 12px;
        font-size: 13px;
        border-radius: 0;
        cursor: pointer;
        min-width: 180px;
        backdrop-filter: blur(10px);
    }
    
    .ai-history-select:hover {
        border-color: var(--color-primary);
        box-shadow: 0 0 8px rgba(184, 147, 111, 0.3);
    }
    
    .ai-history-select:focus {
        outline: none;
        border-color: var(--color-primary);
        box-shadow: 0 0 12px rgba(184, 147, 111, 0.5);
    }
    
    .ai-history-search {
        width: 100%;
        background: rgba(255, 255, 255, 0.1);
        border: 1px solid var(--color-primary);
        color: #fff;
        padding: 8px 12px;
        font-size: 13px;
        border-radius: 0;
        backdrop-filter: blur(10px);
    }
    
    .ai-history-search:focus {
        outline: none;
        border-color: var(--color-primary);
        box-shadow: 0 0 12px rgba(184, 147, 111, 0.5);
    }
    
    .ai-history-search::placeholder {
        color: rgba(255, 255, 255, 0.5);
    }
    
    .ai-search-results {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        max-height: 200px;
        overflow-y: auto;
        background: rgba(0, 0, 0, 0.9);
        border: 1px solid rgba(139, 111, 82, 0.4);
        border-radius: 4px;
        z-index: 100;
    }
    
    /* Searchable album history dropdown */
    .album-history-container {
        position: relative;
        display: inline-block;
    }
    
    .ai-album-history-search {
        background: rgba(255, 255, 255, 0.1);
        border: 1px solid var(--color-primary);
        color: #d4b896;
        padding: 8px 12px;
        font-size: 13px;
        border-radius: 0;
        min-width: 220px;
        backdrop-filter: blur(10px);
    }
    
    .ai-album-history-search:focus {
        outline: none;
        border-color: var(--color-primary);
        box-shadow: 0 0 12px rgba(184, 147, 111, 0.5);
    }
    
    .ai-album-history-search::placeholder {
        color: rgba(255, 255, 255, 0.5);
    }
    
    .album-history-dropdown {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        min-width: 100%;
        max-width: 400px;
        max-height: 300px;
        overflow-y: auto;
        background: rgba(20, 20, 20, 0.98);
        border: 1px solid rgba(139, 111, 82, 0.5);
        border-radius: 4px;
        z-index: 200;
        margin-top: 2px;
    }
    
    .album-dropdown-item {
        padding: 10px 12px;
        cursor: pointer;
        color: #d4b896;
        font-size: 13px;
        border-bottom: 1px solid rgba(139, 111, 82, 0.2);
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    
    .album-dropdown-item:last-child {
        border-bottom: none;
    }
    
    .album-dropdown-item:hover {
        background: rgba(139, 111, 82, 0.3);
        color: #fff;
    }
    
    .album-dropdown-loading,
    .album-dropdown-empty,
    .album-dropdown-error {
        padding: 12px;
        color: rgba(255, 255, 255, 0.5);
        font-size: 13px;
        text-align: center;
    }
    
    .album-dropdown-hint {
        padding: 8px 12px;
        color: rgba(255, 255, 255, 0.4);
        font-size: 11px;
        font-style: italic;
        text-align: center;
        border-top: 1px solid rgba(139, 111, 82, 0.2);
    }
    
    .ai-insights-context-row {
        padding: 8px 0;
        margin-bottom: 8px;
    }
    
    .ai-insights-container .chat-messages {
        flex: 1;
        overflow-y: auto;
        padding: 16px 0;
        min-height: 0;
    }
    
    .ai-insights-container .main-search-section {
        padding: 12px 0;
        border-top: 1px solid rgba(139, 111, 82, 0.2);
    }
    
    /* Vinyl record spinning animation */
    @keyframes spin {
        from { transform: rotate(0deg); }
        to { transform: rotate(360deg); }
    }
    
    /* Collection Page Styles - Airy Elegance Theme */
    .collection-page { 
        background: transparent; /* Changed from #212529 to prevent dark bar behind footer */
        color: var(--color-white); 
        height: calc(100vh - 90px); /* Account for header (60px) + footer (30px) */
        overflow: hidden;
        position: relative; /* For absolute positioning of background elements */
    }
    
    /* Background Image Layer */
    /* Animated Trianglify Background */
    .background-container {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        z-index: 0;
        pointer-events: none;
    }
    
    .background-1,
    .background-2 {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-size: cover;
        background-position: center;
        transition: opacity 3s ease-in-out;
    }
    
    .background-1 {
        opacity: 0.5;
        z-index: 1;
    }
    
    .background-2 {
        opacity: 1;
        z-index: 0;
    }
    
    /* Color Mode Toggle Button */
    .color-mode-toggle {
        position: fixed;
        top: 20px;
        right: 20px;
        z-index: 1000;
        width: 48px;
        height: 48px;
        border-radius: 50%;
        background: rgba(255, 255, 255, 0.1);
        backdrop-filter: blur(10px);
        border: 2px solid rgba(255, 255, 255, 0.2);
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 24px;
        transition: all 0.3s ease;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
    }
    
    .color-mode-toggle:hover {
        background: rgba(255, 255, 255, 0.2);
        transform: scale(1.1);
        box-shadow: 0 6px 20px rgba(0, 0, 0, 0.4);
    }
    
    .toggle-icon {
        pointer-events: none;
    }
    
    /* Liquid pulse animation - REMOVED */
    /* @keyframes liquidPulse removed - replaced with Trianglify animation */
            opacity: 0.35;
        }
        50% { 
            transform: scale(0.98) translateY(0);
            letter-spacing: 0.15em;
            opacity: 0.25;
        }
        75% {
            transform: scale(1.01) translateY(5px);
            letter-spacing: 0.17em;
            opacity: 0.30;
        }
    }
    
    /* Wantlist viewport optimization */
    .wantlist-page {
        height: calc(100vh - 120px); /* Same viewport optimization as Collection */
    }
    .collection-container { 
        display: block; 
        height: 100%;
        max-height: 100%; /* Use full available height from parent */
        position: relative;
        z-index: 2; /* Above background and text */
    }
    
    /* Collection Page Title */
    .collection-page-title {
        color: #B8936F;
        font-size: 1.5em;
        font-weight: 600;
        margin: 0;
        padding: 0 0 8px 0;
        border-bottom: 1px solid transparent;
        border-image: linear-gradient(to right, #8F6F52 0%, transparent 100%) 1;
        text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
    }
    
    /* Collection Sidebar */
    .collection-sidebar { 
        width: 280px; 
        background: linear-gradient(to top, rgba(0, 0, 0, 0.7) 0%, rgba(10, 10, 10, 0.6) 50%);
        backdrop-filter: blur(15px) saturate(1.2);
        border-right: 1px solid rgba(139, 111, 82, 0.3); 
        padding: 24px; 
        overflow-y: auto; 
        height: 100vh;
        box-shadow: 2px 0 10px rgba(0, 0, 0, 0.3), inset 0 0 60px rgba(255, 255, 255, 0.03);
        position: fixed;
        left: -320px;
        top: 0;
        z-index: 1001; /* Higher than sidebar-overlay (1000) */
        transition: left 0.3s ease;
    }
    
    /* Left black shadow edge */
    .collection-sidebar::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        width: 12px;
        height: 100%;
        background: linear-gradient(to right, rgba(0, 0, 0, 0.4) 0%, transparent 100%);
        pointer-events: none;
        z-index: 1;
    }
    
    /* Right copper shadow edge */
    .collection-sidebar::after {
        content: '';
        position: absolute;
        top: 0;
        right: 0;
        width: 12px;
        height: 100%;
        background: linear-gradient(to left, rgba(139, 111, 82, 0.25) 0%, transparent 100%);
        pointer-events: none;
    }
    
    .collection-sidebar.open {
        left: 0;
    }
    
    .collection-sidebar .sidebar-close-btn {
        position: absolute;
        top: 24px;
        right: 24px;
        background: transparent;
        border: none;
        color: #B8936F;
        font-size: 24px;
        cursor: pointer;
        padding: 0;
        line-height: 1;
        width: 32px;
        height: 32px;
        display: flex;
        align-items: center;
        justify-content: center;
        border-radius: 0;
        transition: all 0.2s ease;
    }
    
    .collection-sidebar .sidebar-close-btn:hover {
        background: rgba(139, 111, 82, 0.15);
        color: #B8936F;
    }
    /* Sidebar Sections */
    .sidebar-section {
        margin-bottom: 32px;
    }
    
    .collection-sidebar-title {
        font-size: 24px;
        font-weight: 700;
        color: #B8936F;
        margin-bottom: 24px;
        margin-top: 0;
        padding-bottom: 8px;
        border-bottom: 1px solid transparent;
        border-image: linear-gradient(to right, #8F6F52 0%, transparent 100%) 1;
    }
    
    #historyTypeSelect option,
    #wantlistSortFilter option,
    #collectionSortFilter option,
    .sidebar-select option {
        background: rgba(30, 30, 30, 0.98);
        color: var(--color-white);
        padding: 10px;
    }
    
    #historyTypeSelect option:hover,
    #wantlistSortFilter option:hover,
    #collectionSortFilter option:hover,
    .sidebar-select option:hover,
    #historyTypeSelect option:checked,
    #wantlistSortFilter option:checked,
    #collectionSortFilter option:checked,
    .sidebar-select option:checked {
        background: rgba(139, 111, 82, 0.5) !important;
        color: var(--color-white) !important;
    }
    
    #chatSearchResults {
        background: rgba(0, 0, 0, 0.8) !important;
        color: var(--color-white);
    }
    
    .sidebar-heading {
        font-size: 16px;
        font-weight: 600;
        color: var(--color-white);
        margin-bottom: 16px;
        margin-top: 0;
        text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
    }
    
    /* Sidebar Search */
    .sidebar-search {
        width: 100%;
        padding: 12px 16px;
        border: 2px solid rgba(255, 255, 255, 0.15);
        background: rgba(255, 255, 255, 0.05);
        color: var(--color-white);
        border-radius: 0;
        font-size: 14px;
        box-sizing: border-box;
        transition: border-color 0.2s ease;
    }
    
    .sidebar-search::placeholder {
        color: rgba(255, 255, 255, 0.5);
    }
    
    .sidebar-search:focus {
        outline: none;
        border-color: #B8936F;
        box-shadow: 0 0 0 2px rgba(184, 147, 111, 0.3);
        background: rgba(255, 255, 255, 0.05) !important; /* Keep dark background on focus */
    }
    
    /* Filter Groups */
    .filter-group {
        margin-bottom: 16px;
        position: relative;
    }
    
    /* Custom Dropdown Styling */
    .filter-dropdown {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        background: rgba(30, 30, 30, 0.98);
        border: 2px solid rgba(255, 255, 255, 0.15);
        border-radius: 0;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);
        z-index: 1000;
        max-height: 200px;
        overflow-y: auto;
        scrollbar-width: none; /* Firefox */
        -ms-overflow-style: none; /* IE/Edge */
    }
    
    .filter-dropdown::-webkit-scrollbar {
        display: none; /* Chrome/Safari/Opera */
    }
    
    .filter-option {
        padding: 10px 12px;
        cursor: pointer;
        transition: background-color 0.2s ease;
        font-size: 14px;
        color: var(--color-gray-100);
    }
    
    .filter-option:hover {
        background: rgba(139, 111, 82, 0.15);
        border-left: 3px solid #8F6F52;
    }
    
    .filter-option:first-child {
        border-top-left-radius: 0;
        border-top-right-radius: 0;
    }
    
    .filter-option:last-child {
        border-bottom-left-radius: 0;
        border-bottom-right-radius: 0;
    }
    
    /* Audiophile indicator squares matching card styling */
    .audiophile-indicator {
        display: inline-block;
        width: 12px;
        height: 12px;
        margin-right: 6px;
        vertical-align: middle;
    }
    
    .audiophile-indicator.audiophile-yes {
        background-color: #50A880; /* Jade Green - matching revised palette */
    }
    
    .audiophile-indicator.audiophile-no {
        background-color: #B87060; /* Muted Terracotta Red - matching revised palette */
    }
    
    .sidebar-input, .sidebar-select {
        width: 100%;
        padding: 10px 12px;
        border: 2px solid rgba(255, 255, 255, 0.15);
        background: rgba(255, 255, 255, 0.05);
        color: var(--color-white);
        border-radius: 0;
        font-size: 14px;
        box-sizing: border-box;
        transition: border-color 0.2s ease;
    }
    
    .sidebar-input::placeholder {
        color: rgba(255, 255, 255, 0.5);
    }
    
    .sidebar-input:focus, .sidebar-select:focus {
        outline: none;
        border-color: #B8936F;
        box-shadow: 0 0 0 2px rgba(184, 147, 111, 0.3);
        background: rgba(255, 255, 255, 0.05) !important; /* Keep dark background on focus */
    }
    
    /* Sidebar Buttons */
    .sidebar-btn {
        width: 100%;
        padding: 12px 16px;
        border: none;
        border-radius: 0;
        font-size: 14px;
        font-weight: 500;
        cursor: pointer;
        transition: all 0.2s ease;
        margin-bottom: 12px;
        box-sizing: border-box;
    }
    
    .sidebar-btn-clear {
        background: rgba(184, 147, 111, 0.2);
        color: #B8936F;
        border: 1px solid #B8936F;
    }
    
    .sidebar-btn-clear:hover {
        background: #B8936F;
        border: 1px solid #B8936F;
        color: white;
        transform: translateY(-1px);
        box-shadow: 0 2px 8px rgba(184, 147, 111, 0.4);
    }
    
    .sidebar-btn-ai {
        background: rgba(184, 147, 111, 0.2);
        color: #B8936F;
        border: 1px solid #B8936F;
        margin-top: 10px;
    }
    
    .sidebar-btn-ai:hover {
        background: #B8936F;
        border: 1px solid #B8936F;
        color: white;
        transform: translateY(-1px);
        box-shadow: 0 2px 8px rgba(184, 147, 111, 0.4);
    }
    
    .collection-search { width: 100%; padding: 12px; border: 1px solid #6c757d; background: #f8f9fa; color: #343a40; border-radius: 0; margin-bottom: 20px; font-size: 14px; }
    
    .collection-stats { background: #f8f9fa; border-radius: 0; padding: 20px; margin-bottom: 20px; color: #343a40; }
    .collection-stats h3 { margin-bottom: 15px; font-size: 16px; font-weight: 600; }
    .stat-item { display: flex; justify-content: space-between; margin-bottom: 8px; font-size: 14px; }
    .stat-value { font-weight: 600; color: var(--color-primary); }
    .collection-value-item .value-display { display: flex; align-items: center; gap: 8px; }
    .refresh-value-btn { background: var(--color-primary); color: white; border: none; border-radius: 0; padding: 4px 6px; cursor: pointer; font-size: 12px; transition: background 0.2s; }
    .refresh-value-btn:hover { background: var(--color-primary-hover); }
    .refresh-value-btn:disabled { background: #6c757d; cursor: not-allowed; }
    
    .folder-section h3 { margin-bottom: 15px; font-size: 16px; font-weight: 600; }
    .folder-list { list-style: none; padding: 0; margin: 0; }
    .folder-item { 
        padding: 12px 16px; 
        margin-bottom: 6px; 
        border-radius: 0; 
        cursor: pointer; 
        transition: all 0.2s ease; 
        background: #f8f9fa; 
        display: flex; 
        justify-content: space-between; 
        align-items: center;
        border: 1px solid #e8e8e8;
    }
    .folder-item:hover { 
        background: #e9ecef; 
        transform: translateX(2px);
    }
    .folder-item.active { 
        background: #3498db; 
        color: white;
        border-color: #3498db;
    }
    .folder-name { font-size: 14px; font-weight: 500; color: #2c3e50; }
    .folder-item.active .folder-name { color: white; }
    .folder-count { 
        background: #dee2e6; 
        color: #6c757d; 
        padding: 4px 8px; 
        border-radius: 0; 
        font-size: 12px; 
        font-weight: 500;
        min-width: 20px;
        text-align: center;
    }
    .folder-item.active .folder-count { 
        background: rgba(255, 255, 255, 0.2); 
        color: white;
    }
    
    /* Collection Main Area */
    .collection-main { 
        width: 100%;
        display: flex; 
        flex-direction: column; 
        background: transparent; 
        height: 100%;
        overflow: hidden;
    }
    .collection-main .collection-content { 
        display: block !important; 
        height: 100%; /* Use full height of parent */
        overflow-y: hidden; /* Prevent scrollbar - carousel handles layout */
        width: 100%; /* Ensure it takes full available width */
        box-sizing: border-box;
    }
    .collection-header { 
        background: transparent; 
        padding: 32px 40px; 
        border-bottom: 1px solid rgba(232, 232, 232, 0.3);
        box-shadow: none;
    }
    
    .header-content {
        display: flex;
        justify-content: space-between;
        align-items: center;
        max-width: 1400px;
        margin: 0 auto;
    }
    
    .collection-title { 
        font-size: 32px; 
        font-weight: 700; 
        color: #2c3e50; 
        margin: 0;
        letter-spacing: -0.5px;
    }
    
    .collection-ai-button {
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 12px 20px;
        background: #666;
        color: white;
        border: none;
        border-radius: 0;
        font-size: 14px;
        font-weight: 600;
        cursor: pointer;
        transition: all 0.3s ease;
        box-shadow: 0 4px 12px rgba(102, 102, 102, 0.3);
    }
    
    .collection-ai-button:hover {
        transform: translateY(-2px);
        box-shadow: 0 6px 20px rgba(102, 102, 102, 0.4);
    }
    
    .collection-ai-button svg {
        opacity: 0.9;
    }
    .collection-filters { display: flex; gap: 15px; align-items: center; flex-wrap: wrap; }
    .filter-input { padding: 8px 12px; border: 1px solid #ced4da; border-radius: 0; font-size: 14px; background: var(--color-white); }
    .filter-btn { padding: 8px 16px; background: var(--color-primary); color: var(--color-white); border: none; border-radius: 0; cursor: pointer; font-size: 14px; transition: background 0.2s; }
    .filter-btn:hover { background: var(--color-primary-hover); }
    .clear-filters { background: #6c757d; }
    .clear-filters:hover { background: #5a6268; }
    
    /* Genre Dropdown */
    .genre-dropdown { 
        position: absolute; 
        top: 100%; 
        left: 0; 
        right: 0; 
        background: rgba(30, 30, 30, 0.98); 
        border: 2px solid rgba(255, 255, 255, 0.15); 
        border-radius: 0; 
        max-height: 200px; 
        overflow-y: auto; 
        z-index: 1000; 
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);
        scrollbar-width: none; /* Firefox */
        -ms-overflow-style: none; /* IE/Edge */
    }
    
    .genre-dropdown::-webkit-scrollbar {
        display: none; /* Chrome/Safari/Opera */
    }
    .genre-option { 
        padding: 8px 12px; 
        cursor: pointer; 
        font-size: 14px; 
        color: var(--color-gray-100); 
        border-bottom: 1px solid rgba(255, 255, 255, 0.1); 
    }
    .genre-option:hover { 
        background: rgba(255, 255, 255, 0.1); 
    }
    .genre-option:last-child { 
        border-bottom: none; 
    }
    .genre-type { 
        font-size: 12px; 
        color: #6c757d; 
        margin-left: 5px; 
    }
    
    /* Smooth Horizontal Scroll Carousel */
    .collection-content { 
        flex: 1; 
        padding: 0; 
        overflow: hidden;
        display: flex;
        flex-direction: column;
        position: relative;
        min-height: 0;
    }
    
    /* Vertical Scrolling Carousel - Desktop & Mobile */
    .albums-carousel-container {
        width: 100%;
        height: calc(100vh - 120px); /* Fill viewport minus header */
        overflow-y: auto; /* Vertical scroll */
        overflow-x: hidden;
        position: relative;
        touch-action: pan-y; /* Allow vertical scroll */
        flex: 1;
        max-width: 100vw;
        box-sizing: border-box;
        padding-bottom: 24px;
        scroll-behavior: smooth;
    }
    
    .albums-carousel-container:active {
        cursor: default;
    }
    
    .albums-scroll-wrapper {
        display: flex;
        flex-direction: column; /* Stack pages vertically */
        width: 100%;
        box-sizing: border-box;
    }
    
    .albums-page {
        width: 100%;
        display: grid;
        grid-template-columns: repeat(5, minmax(0, 1fr)); /* 5 columns desktop */
        grid-template-rows: repeat(2, minmax(0, auto)); /* 2 rows, auto height */
        gap: 16px;
        padding: 16px 20px;
        box-sizing: border-box;
        align-content: start;
        justify-content: start;
        align-items: stretch; /* All cards in a row stretch to same height */
        max-width: 100%;
    }
    
    /* Mobile: 2 columns for albums grid */
    @media (max-width: 768px) {
        .albums-page {
            grid-template-columns: repeat(2, minmax(0, 1fr)); /* 2 columns mobile */
            grid-template-rows: auto; /* Auto rows on mobile */
            gap: 10px;
            padding: 10px;
        }
        
        .collection-card-front .album-content {
            padding: 8px;
            margin: 6px;
        }
        
        .collection-card-front .album-cover {
            margin-bottom: 4px;
        }
        
        .collection-card-front .album-title {
            font-size: 12px;
            -webkit-line-clamp: 1;
        }
        
        .collection-card-front .album-artist {
            font-size: 11px;
        }
        
        .collection-card-front .album-year {
            font-size: 10px;
        }
        
        .collection-card-front .star-rating .star {
            font-size: 10px;
        }
        
        .card-action-icon {
            flex: 1;
            height: 28px;
        }
        
        .card-action-icon svg {
            width: 12px;
            height: 12px;
        }
    }
    
    /* When albums-page contains loading placeholder, center it */
    .albums-page:has(.loading-placeholder) {
        display: flex;
        align-items: center;
        justify-content: center;
        min-height: 400px;
    }
    
    /* Loading Placeholder - Centered vinyl record with text */
    .loading-placeholder {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        width: 100%;
        height: 100%;
        min-height: 400px;
        gap: 20px;
    }
    
    .loading-vinyl {
        width: 80px;
        height: 80px;
        animation: spin 2s linear infinite;
    }
    
    @keyframes spin {
        0% { transform: rotate(0deg); }
        100% { transform: rotate(360deg); }
    }
    
    .loading-placeholder p {
        color: #6c757d;
        font-size: 18px;
        margin: 0;
        font-weight: 500;
    }
    
    .albums-grid { 
        display: none; /* Hide original grid - using pages now */
    }
    
    #albumsGrid {
        display: none; /* Hide original grid - using pages now */
    }
    
    /* Album Card - Clean Modern Style */
    .album-card { 
        background: transparent; 
        border-radius: 0; 
        overflow: hidden; 
        box-shadow: none; 
        transition: all 0.2s ease; 
        position: relative;
        display: flex;
        flex-direction: column;
        box-sizing: border-box;
        width: 100%;
        /* Card sizes naturally with content - flip cards override this */
    }
    
    .album-card:hover { 
        transform: translateY(-2px); 
        box-shadow: none; 
    }
    
    .album-cover { 
        width: 100%; /* Full width for consistent alignment */
        height: auto; /* Let height be natural based on aspect ratio */
        aspect-ratio: 1 / 1; /* Square aspect ratio for albums */
        background: transparent; 
        position: relative; 
        overflow: hidden; 
        flex-shrink: 0;
    }
    
    .album-cover img { 
        width: 100%; 
        height: 100%; 
        object-fit: contain; /* Show full image without cropping */
        display: block; 
        background: transparent;
    }
    
    /* Removed scale on hover to prevent cropping with object-fit: contain */
    .album-card:hover .album-cover img {
        /* transform: scale(1.05); */
    }

    /* Dashboard Now Playing Album Art Styles */
    #nowPlayingArt {
        position: relative;
        border-radius: 0;
        overflow: hidden;
        background: #f8f9fa;
    }
    
    /* Now Playing Note Icon - Positioned in lower right corner of Now Playing section only */
    .dashboard-left .now-playing-note-icon {
        position: absolute;
        bottom: 12px;
        right: 12px;
        width: 32px;
        height: 32px;
        cursor: pointer;
        z-index: 15;
        opacity: 0.9;
        transition: opacity 0.2s ease, transform 0.2s ease;
        background: none !important;
        background-color: transparent !important;
        border: none !important;
        padding: 0 !important;
        margin: 0 !important;
        outline: none !important;
        box-shadow: none !important;
    }
    
    .dashboard-left .now-playing-note-icon:hover {
        opacity: 1;
        transform: scale(1.1);
        background: none !important;
        background-color: transparent !important;
    }
    
    .dashboard-left .now-playing-note-icon img {
        width: 100%;
        height: 100%;
        object-fit: contain;
        display: block;
    }

    #nowPlayingArt img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
        border-radius: 0;
        z-index: 1;
    }

    #nowPlayingArt .album-art-placeholder {
        width: 100%;
        height: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 48px;
        color: rgba(255, 255, 255, 0.7);
        background: rgba(40, 40, 50, 0.5) !important;
        backdrop-filter: blur(12px);
        -webkit-backdrop-filter: blur(12px);
        border: 1px solid rgba(255, 255, 255, 0.1);
        border-radius: 0 !important;
    }
    
    /* Force glassmorphic effect on album placeholder with high specificity */
    .now-playing-card .album-art-placeholder,
    .dashboard-left .album-art-placeholder,
    #nowPlayingArt .album-art-placeholder {
        background: rgba(40, 40, 50, 0.5) !important;
        background-color: rgba(40, 40, 50, 0.5) !important;
        backdrop-filter: blur(12px) !important;
        -webkit-backdrop-filter: blur(12px) !important;
    }
    
    /* Note Icon Styling - Positioned on card, not album cover */
    .note-icon {
        position: absolute;
        top: 8px;
        right: 8px;
        background: rgba(255, 255, 255, 0.95);
        border-radius: 0;
        width: 28px;
        height: 28px;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 12px;
        cursor: pointer;
        z-index: 15; /* Above album cover content */
        transition: all 0.2s ease;
        border: 2px solid transparent;
        box-shadow: 0 2px 4px rgba(0,0,0,0.1);
        /* Override default styling for transparent icons */
        background-size: contain !important;
        background-repeat: no-repeat !important;
        background-position: center !important;
    }
    
    .note-icon:hover {
        transform: scale(1.1);
    }
    
    .note-icon.has-note:hover {
        opacity: 1;
        transform: scale(1.1);
    }
    
    .note-icon.no-note:hover {
        opacity: 1;
        transform: scale(1.1);
    }
    
    .note-icon.has-note {
        background: url('/static/color_has_noteT_1755808412927.png') no-repeat center center !important;
        background-size: contain !important;
        border: none !important;
        box-shadow: none !important;
    }
    
    .note-icon.no-note {
        background: url('/static/blank_no_noteT_1755808412926.png') no-repeat center center !important;
        background-size: contain !important;
        border: none !important;
        box-shadow: none !important;
        opacity: 1.0;
    }
    
    /* Wantlist Notes Icon - Completely transparent */
    .wantlist-notes-icon {
        background: none !important;
        border: none !important;
        box-shadow: none !important;
        padding: 0 !important;
    }
    
    /* Dashboard Now Playing - Consistent Link Colors + Crisp Text */
    .dashboard-right a,
    .album-details-data a,
    .video-item a,
    .video-link {
        color: #7FA0B8 !important;
        text-decoration: none !important;
        text-rendering: optimizeLegibility !important;
        -webkit-font-smoothing: antialiased !important;
        -moz-osx-font-smoothing: grayscale !important;
        filter: none !important;
        text-shadow: none !important;
    }
    
    /* Summary Cards - Standard link colors */
    .album-summary-data a,
    .artist-summary-data a,
    .release-summary-data a {
        color: #7FA0B8 !important;
        text-decoration: none !important;
        text-rendering: optimizeLegibility !important;
        -webkit-font-smoothing: antialiased !important;
        -moz-osx-font-smoothing: grayscale !important;
        filter: none !important;
        text-shadow: none !important;
    }
    
    .dashboard-right a:hover,
    .album-details-data a:hover,
    .video-item a:hover,
    .video-link:hover {
        color: #7290A6 !important;
        text-decoration: underline !important;
    }
    
    .album-summary-data a:hover,
    .artist-summary-data a:hover,
    .release-summary-data a:hover {
        color: #7290A6 !important;
        text-decoration: underline !important;
    }
    
    /* Remove blur effects from text content in summary cards */
    .album-summary-data,
    .artist-summary-data,
    .release-summary-data,
    .glassmorphism-content {
        filter: none !important;
        backdrop-filter: none !important;
        text-rendering: optimizeLegibility !important;
        -webkit-font-smoothing: antialiased !important;
        -moz-osx-font-smoothing: grayscale !important;
    }
    
    /* Condition Sliders Styling */
    .condition-sliders {
        margin-top: 8px;
        width: 100%;
    }
    
    .condition-row {
        display: flex;
        align-items: center;
        margin-bottom: 6px;
        width: 100%;
    }
    
    .condition-label {
        font-size: 11px;
        color: #aaa;
        font-weight: normal;
        margin-right: 8px;
        min-width: 40px;
        text-align: left;
    }
    
    .condition-slider-track {
        flex: 1;
        height: 6px;
        border-radius: 1px;
        background: linear-gradient(to right, 
            #999 0%, #999 11.1%,
            #cc4444 11.1%, #cc4444 22.2%,
            #dd6644 22.2%, #dd6644 33.3%,
            #ee8844 33.3%, #ee8844 44.4%,
            #ffaa44 44.4%, #ffaa44 55.5%,
            #ddcc44 55.5%, #ddcc44 66.6%,
            #bbdd44 66.6%, #bbdd44 77.7%,
            #88cc44 77.7%, #88cc44 88.8%,
            #44aa44 88.8%, #44aa44 100%
        );
        position: relative;
        cursor: pointer;
    }
    
    .condition-slider-handle {
        position: absolute;
        top: -3px;
        width: 12px;
        height: 12px;
        border-radius: 2px;
        background: white;
        border: 2px solid #555;
        cursor: pointer;
        transition: all 0.2s ease;
        transform: translateX(-50%);
        box-shadow: 0 1px 3px rgba(0,0,0,0.2);
    }
    
    .condition-slider-handle:hover {
        transform: translateX(-50%) scale(1.1);
        box-shadow: 0 2px 6px rgba(0,0,0,0.3);
    }
    
    .condition-tooltip {
        position: absolute;
        bottom: 18px;
        left: 50%;
        transform: translateX(-50%);
        background: rgba(0,0,0,0.9);
        color: white;
        padding: 3px 6px;
        border-radius: 3px;
        font-size: 9px;
        white-space: nowrap;
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.2s ease;
        z-index: 25;
    }
    
    .condition-slider-handle:hover .condition-tooltip {
        opacity: 1;
    }
    
    /* Listening Log Modal Styling */
    .listening-log-modal {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: rgba(0, 0, 0, 0.5);
        display: flex;
        justify-content: center;
        align-items: center;
        z-index: 1000;
    }
    
    .listening-log-content {
        background: var(--color-gray-900);
        color: var(--color-white);
        border-radius: 12px;
        width: 500px;
        max-width: 90vw;
        max-height: 90vh;
        overflow-y: auto;
    }
    
    .listening-log-header {
        padding: 20px 20px 0 20px;
        display: flex;
        justify-content: space-between;
        align-items: center;
        border-bottom: 1px solid rgba(255, 255, 255, 0.1);
        margin-bottom: 20px;
    }
    
    .listening-log-header h3 {
        margin: 0;
        color: var(--color-white);
    }
    
    .listening-log-body {
        padding: 0 20px;
    }
    
    .album-info-display {
        display: flex;
        align-items: center;
        margin-bottom: 20px;
        padding: 15px;
        background: rgba(255, 255, 255, 0.05);
        border-radius: 0;
        border: 1px solid rgba(255, 255, 255, 0.1);
    }
    
    .modal-album-image {
        width: 60px;
        height: 60px;
        object-fit: cover;
        border-radius: 6px;
        margin-right: 15px;
    }
    
    .modal-album-details h4 {
        margin: 0 0 5px 0;
        color: var(--color-white);
        font-size: 16px;
    }
    
    .modal-album-details p {
        margin: 0;
        color: #CCCCCC;
        font-size: 14px;
    }
    
    .listening-form .form-group {
        margin-bottom: 20px;
    }
    
    .listening-form label {
        display: block;
        margin-bottom: 5px;
        font-weight: 500;
        color: var(--color-white);
    }
    
    .listening-form .form-control {
        width: 100%;
        padding: 10px;
        border: 1px solid rgba(255, 255, 255, 0.2);
        border-radius: 6px;
        font-size: 14px;
        box-sizing: border-box;
        background: rgba(255, 255, 255, 0.1);
        color: var(--color-white);
    }
    
    .listening-form .form-control::placeholder {
        color: var(--color-gray-300);
    }
    
    .listening-form .form-control:focus {
        outline: none;
        border-color: var(--color-primary);
        box-shadow: 0 0 0 3px rgba(184, 147, 111, 0.2);
    }
    
    .listening-form textarea.form-control {
        resize: vertical;
        min-height: 80px;
    }
    
    .listening-log-footer {
        padding: 20px;
        display: flex;
        justify-content: flex-end;
        gap: 10px;
        border-top: 1px solid rgba(255, 255, 255, 0.1);
    }
    
    .listening-log-footer .btn {
        padding: 10px 20px;
        border: none;
        border-radius: 6px;
        cursor: pointer;
        font-size: 14px;
        font-weight: 500;
        transition: all 0.2s ease;
    }
    
    .listening-log-footer .btn-secondary {
        background: #6c757d;
        color: white;
    }
    
    .listening-log-footer .btn-secondary:hover {
        background: #5a6268;
    }
    
    .listening-log-footer .btn-primary {
        background: #007bff;
        color: white;
    }
    
    .listening-log-footer .btn-primary:hover {
        background: #0056b3;
    }
    
    .album-overlay { 
        position: absolute; 
        width: min(250px, 85%);
        height: auto;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        background: linear-gradient(135deg, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.9) 100%); 
        opacity: 0; 
        transition: all 0.3s ease; 
        display: flex; 
        flex-direction: column;
        align-items: center; 
        justify-content: center; 
        gap: 16px; 
        backdrop-filter: blur(2px);
        padding: 16px;
    }
    
    .album-cover:hover .album-overlay { 
        opacity: 1; 
    }
    
    .album-action { 
        padding: 12px 20px; 
        background: rgba(184, 147, 111, 0.2);
        color: var(--color-primary); 
        border: 1px solid var(--color-primary); 
        border-radius: 0; 
        cursor: pointer; 
        font-size: 14px; 
        font-weight: 600;
        transition: all 0.2s ease; 
        min-width: 120px;
    }
    
    .album-action:hover { 
        background: var(--color-primary);
        color: var(--color-white);
        transform: translateY(-1px);
        box-shadow: 0 2px 8px rgba(184, 147, 111, 0.4);
    }
    
    .album-action.secondary { 
        background: rgba(184, 147, 111, 0.2);
        color: var(--color-primary);
        border: 1px solid var(--color-primary);
    }
    
    .album-action.secondary:hover { 
        background: var(--color-primary);
        color: var(--color-white);
    }
    
    .album-action.delete { 
        background: rgba(184, 147, 111, 0.2);
        color: var(--color-primary);
        border: 1px solid var(--color-primary);
    }
    
    .album-action.delete:hover { 
        background: var(--color-primary);
        color: var(--color-white);
    }

    .album-action.remove-btn { 
        background: rgba(184, 147, 111, 0.2);
        color: var(--color-primary);
        border: 1px solid var(--color-primary);
    }
    
    .album-action.remove-btn:hover { 
        background: var(--color-primary);
        color: var(--color-white);
    }

    /* Dashboard hover buttons */
    .dashboard-album-overlay .album-action {
        width: 140px;
        height: 40px;
        padding: 8px 16px;
        font-size: 13px;
        display: flex;
        align-items: center;
        justify-content: center;
        margin-bottom: 8px;
    }

    .album-action.gradient-1 {
        background: rgba(184, 147, 111, 0.2);
        color: var(--color-primary);
        border: 1px solid var(--color-primary);
    }

    .album-action.gradient-1:hover {
        background: var(--color-primary);
        color: var(--color-white);
    }

    .album-action.gradient-2 {
        background: rgba(184, 147, 111, 0.2);
        color: var(--color-primary);
        border: 1px solid var(--color-primary);
    }

    .album-action.gradient-2:hover {
        background: var(--color-primary);
        color: var(--color-white);
    }

    .album-action.gradient-3 {
        background: rgba(184, 147, 111, 0.2);
        color: var(--color-primary);
        border: 1px solid var(--color-primary);
    }

    .album-action.gradient-3:hover {
        background: var(--color-primary);
        color: var(--color-white);
    }

    .album-action.gradient-4 {
        background: rgba(184, 147, 111, 0.2);
        color: var(--color-primary);
        border: 1px solid var(--color-primary);
    }

    .album-action.gradient-4:hover {
        background: var(--color-primary);
        color: var(--color-white);
    }

    .album-action.added-state,
    .album-action.added-state:hover {
        background: rgba(127, 169, 139, 0.3);
        color: #7FA98B;
        border: 1px solid #7FA98B;
        cursor: default;
        opacity: 0.9;
    }
    
    .album-action:disabled {
        cursor: not-allowed;
        opacity: 0.7;
    }

    /* Collection Card Button Sizing - Match Album Network width */
    .collection-card-front .album-overlay .album-action {
        width: 140px;
        min-width: 140px;
        padding: 8px 16px;
        font-size: 13px;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    /* Notes Button - Default Gray (no notes) */
    .album-action.now-playing-notes-btn {
        background: rgba(128, 128, 128, 0.6);
    }

    .album-action.now-playing-notes-btn:hover {
        background: rgba(128, 128, 128, 0.8);
    }

    /* Notes Button with Notes Present - Copper */
    .album-action.now-playing-notes-btn.has-notes {
        background: rgba(184, 147, 111, 0.5);
        color: #FFFFFF;
    }

    .album-action.now-playing-notes-btn.has-notes:hover {
        background: rgba(184, 147, 111, 0.7);
        color: #FFFFFF;
    }
    
    .album-info { 
        padding: 20px 16px; 
        background: transparent;
        flex: 1;
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
    }
    
    .album-title { 
        font-size: 18px; 
        font-weight: 600; 
        color: var(--color-gray-700); 
        margin-bottom: 8px; 
        line-height: 1.3;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
        cursor: pointer;
        transition: color 0.2s ease;
        text-decoration: none;
    }
    
    .album-title:hover {
        color: #7FA0B8;
        text-decoration: underline;
    }
    
    .album-artist { 
        font-size: 14px; 
        color: var(--color-gray-400); 
        margin-bottom: 8px; 
        font-weight: 400;
        overflow: hidden;
        cursor: pointer;
        transition: color 0.2s ease;
        text-decoration: none; 
        text-overflow: ellipsis; 
        white-space: nowrap; 
    }
    
    .album-artist:hover {
        color: #7FA0B8;
        text-decoration: underline;
    }
    
    .clickable-title {
        cursor: pointer;
        transition: color 0.2s ease, transform 0.1s ease;
    }
    
    .clickable-title:hover {
        color: #7FA0B8 !important;
        text-decoration: underline;
        transform: translateY(-1px);
    }
    
    .clickable-artist {
        cursor: pointer;
        transition: color 0.2s ease, transform 0.1s ease;
    }
    
    .clickable-artist:hover {
        color: #7FA0B8 !important;
        text-decoration: underline;
        transform: translateY(-1px);
    }
    
    .album-details { 
        display: flex; 
        justify-content: space-between; 
        align-items: center; 
        margin-bottom: 12px; 
    }
    
    .album-year { 
        font-size: 13px; 
        color: var(--color-gray-400); 
        font-weight: 400;
        margin-bottom: 4px;
    }
    
    .album-bottom-section {
        margin-top: auto;
        padding-bottom: 8px; /* Keep original bottom spacing on cards */
    }
    
    .album-genre {
        font-size: 13px; 
        color: var(--color-gray-400); 
        font-weight: 400;
        margin-top: 8px;
        margin-left: 45px;
        height: auto;
        display: flex;
        align-items: center;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    
    /* Clean Rating and Audiophile Section */
    .album-rating-section {
        display: flex;
        justify-content: space-between;
        align-items: center;
    }
    
    .star-rating {
        display: flex;
        gap: 2px;
        position: relative;
        z-index: 10;
    }
    
    .star {
        color: #B8936F;
        font-size: 16px;
        cursor: pointer;
    }
    
    .star.empty {
        color: rgba(255, 255, 255, 0.3);
    }
    
    .audiophile-toggle {
        display: flex;
        align-items: center;
        gap: 8px;
        font-size: 12px;
        color: var(--color-gray-300);
    }
    
    .audiophile-traffic-light {
        display: flex;
        align-items: center;
        gap: 4px;
        cursor: pointer;
        padding: 2px;
        border-radius: 12px;
        transition: all 0.2s ease;
    }
    
    .audiophile-traffic-light:hover {
        background: rgba(0, 0, 0, 0.05);
    }
    
    .traffic-dot {
        width: 10px;
        height: 10px;
        border-radius: 0;
        transition: all 0.2s ease;
        background: var(--star-empty); /* Default gray */
        cursor: pointer;
    }
    
    .traffic-dot.active.red {
        background: var(--color-error); /* Red for false */
        box-shadow: 0 0 6px rgba(220, 53, 69, 0.4);
    }
    
    .traffic-dot.active.yellow {
        background: var(--color-warning); /* Yellow for unknown/empty */
        box-shadow: 0 0 6px rgba(255, 193, 7, 0.4);
    }
    
    .traffic-dot.active.green {
        background: #28a745; /* Green for true */
        box-shadow: 0 0 6px rgba(40, 167, 69, 0.4);
    }
    
    /* ===== COLLECTION FLIP CARDS ===== */
    /* Transform album cards into flip cards similar to dashboard Now Playing */
    /* Uses 3D CSS transforms for smooth rotateY flip animation */
    
    .album-card.collection-flip-card {
        position: relative;
        height: 550px !important;
        max-height: 550px !important;
        min-height: 550px !important;
        width: 100%; /* Constrain to grid cell width */
        max-width: 100%; /* Prevent expansion beyond grid cell */
        cursor: pointer;
        overflow: visible !important; /* Needed for 3D flip animation */
        perspective: 1000px;
    }
    
    /* Inner container for 3D transform */
    .collection-flip-inner {
        position: relative;
        width: 100%;
        height: 100%;
        transform-style: preserve-3d;
        transition: transform 0.6s cubic-bezier(0.4, 0.0, 0.2, 1);
        /* Note: Do NOT add overflow:hidden here - it breaks 3D stacking context */
    }
    
    .album-card.collection-flip-card.flipped .collection-flip-inner {
        transform: rotateY(180deg);
    }
    
    /* Copper hover glow effect for collection flip cards */
    .album-card.collection-flip-card {
        transition: all 0.3s ease;
    }
    
    .album-card.collection-flip-card:hover {
        transform: translateY(-5px);
        box-shadow: 0 10px 30px rgba(184, 147, 111, 0.3);
    }
    
    .album-card.collection-flip-card:hover .collection-card-front,
    .album-card.collection-flip-card:hover .collection-card-back {
        border-color: #B8936F;
    }
    
    .collection-card-front,
    .collection-card-back {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: linear-gradient(to top, rgba(255, 255, 255, 0.12) 0%, rgba(255, 255, 255, 0.01) 50%);
        backdrop-filter: blur(15px) saturate(1.2);
        box-shadow: 0 8px 32px rgba(0, 0, 0, 0.37), inset 0 0 60px rgba(255, 255, 255, 0.05);
        border: 1px solid rgba(255, 255, 255, 0.12);
        border-radius: 0;
        overflow: hidden;
        backface-visibility: hidden;
        -webkit-backface-visibility: hidden;
    }
    
    .collection-card-front {
        z-index: 2;
    }
    
    .collection-card-back {
        z-index: 1;
        transform: rotateY(180deg);
    }
    
    /* Control pointer events based on flip state */
    .collection-card-front {
        pointer-events: auto;
    }
    
    .collection-card-back {
        pointer-events: none;
    }
    
    .album-card.collection-flip-card.flipped .collection-card-front {
        pointer-events: none;
    }
    
    .album-card.collection-flip-card.flipped .collection-card-back {
        pointer-events: auto;
    }
    
    /* Front side - miniature Now Playing style */
    .collection-card-front {
        display: flex;
        flex-direction: column;
        overflow: hidden;
    }
    
    /* Content card that contains everything - like Now Playing structure */
    .collection-card-front .album-content {
        background: rgba(30, 30, 30, 0.7);
        border-radius: 0;
        padding: 10px;
        margin: 8px;
        flex: 1;
        display: flex;
        flex-direction: column;
        min-height: 0;
        overflow: hidden;
    }
    
    .collection-card-front .album-cover {
        width: 100%;
        flex: 1 1 auto;
        min-height: 0;
        position: relative;
        background: transparent;
        display: flex;
        align-items: center;
        justify-content: center;
        margin-bottom: 6px;
    }
    
    .collection-card-front .album-cover img {
        max-width: 100%;
        max-height: 100%;
        object-fit: contain;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
        border-radius: 4px;
    }
    
    .collection-card-front .album-info {
        flex: 0 0 auto;
        display: flex;
        flex-direction: column;
    }
    
    .collection-card-front .album-title {
        font-size: 16px;
        font-weight: 600;
        color: var(--color-white);
        margin-bottom: 4px;
        line-height: 1.2;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
    
    .collection-card-front .album-artist {
        font-size: 14px;
        color: #CCCCCC;
        margin-bottom: 2px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    
    .collection-card-front .album-title:hover,
    .collection-card-front .album-artist:hover {
        color: #7FA0B8;
        text-decoration: underline;
    }
    
    .collection-card-front .album-year {
        font-size: 13px;
        color: #D4B896;
        margin-bottom: 4px;
    }
    
    .collection-card-front .star-rating {
        margin-bottom: 4px;
    }
    
    .collection-card-front .star-rating .star {
        font-size: 12px;
    }
    
    .collection-card-front .album-genre {
        font-size: 11px;
        color: #667eea;
        margin-top: auto;
        padding-top: 4px;
    }
    
    /* Back side - custom fields data */
    .collection-card-back {
        padding: 20px;
        display: flex;
        flex-direction: column;
        overflow-y: auto;
        overflow-x: hidden;
        gap: 12px;
        /* Hide scrollbar while maintaining scroll functionality */
        scrollbar-width: none; /* Firefox */
        -ms-overflow-style: none; /* IE and Edge */
    }
    
    /* Hide scrollbar for WebKit browsers (Chrome, Safari) */
    .collection-card-back::-webkit-scrollbar {
        display: none;
    }
    
    .collection-card-back h4 {
        font-size: 18px;
        font-weight: 700;
        color: #B8936F;
        margin: 0 0 16px 0;
        padding-bottom: 12px;
        border-bottom: 2px solid #8F6F52;
    }
    
    /* Card back header with album title and artist */
    .card-back-header {
        margin-bottom: 12px;
        padding-bottom: 10px;
        border-bottom: 1px solid rgba(255, 255, 255, 0.15);
    }
    
    .card-back-title {
        font-size: 16px;
        font-weight: 700;
        color: #ffffff;
        line-height: 1.2;
        margin-bottom: 4px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    
    .card-back-artist {
        font-size: 13px;
        font-weight: 500;
        color: #B8936F;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    
    .collection-data-field {
        margin-bottom: 0;
        display: flex;
        flex-direction: column;
        gap: 6px;
    }
    
    .collection-data-label {
        font-size: 11px;
        font-weight: 700;
        color: #FFFFFF;
        text-transform: uppercase;
        letter-spacing: 0.8px;
    }
    
    .collection-data-value {
        font-size: 14px;
        font-weight: 500;
        color: #CCCCCC;
        background: rgba(0, 0, 0, 0.2);
        padding: 10px 12px;
        border-radius: 0;
        border: 1px solid rgba(255, 255, 255, 0.1);
        min-height: 40px;
        display: flex;
        align-items: center;
        position: relative;
        z-index: 1;
    }
    
    .collection-data-value .empty {
        color: rgba(255, 255, 255, 0.4);
        font-style: italic;
    }
    
    .collection-data-value.notes {
        min-height: 80px;
        max-height: 120px;
        align-items: flex-start;
        white-space: pre-wrap;
        word-wrap: break-word;
        overflow-y: auto;
        overflow-x: hidden;
    }
    
    /* Additional Fields Section - for unmapped custom fields */
    .additional-fields-section {
        margin-top: 16px;
        padding-top: 12px;
        border-top: 1px solid rgba(255, 255, 255, 0.1);
    }
    
    .additional-fields-header {
        font-size: 12px;
        font-weight: 600;
        color: #B8936F;
        text-transform: uppercase;
        letter-spacing: 0.8px;
        margin-bottom: 12px;
    }
    
    .additional-field {
        opacity: 0.85;
    }
    
    .additional-field .collection-data-label {
        font-size: 10px;
        color: #AAAAAA;
    }
    
    .additional-field .collection-data-value {
        font-size: 13px;
        padding: 8px 10px;
        min-height: 36px;
        background: rgba(0, 0, 0, 0.15);
    }
    
    /* Editable dropdown styling - with copper focus like filter inputs */
    .collection-data-value.editable-dropdown {
        cursor: pointer;
        position: relative;
        z-index: 2;
        transition: all 0.2s ease;
        border: 2px solid rgba(255, 255, 255, 0.15);
    }
    
    .collection-data-value.editable-dropdown:hover {
        background: rgba(255, 255, 255, 0.05);
        border-color: #B8936F;
        box-shadow: 0 0 0 2px rgba(184, 147, 111, 0.3);
    }
    
    .collection-data-value.editable-dropdown::after {
        content: '▼';
        position: absolute;
        right: 12px;
        font-size: 10px;
        color: rgba(255, 255, 255, 0.5);
    }
    
    /* Condition color dot indicator */
    .condition-dot {
        display: inline-block;
        width: 10px;
        height: 10px;
        border-radius: 50%;
        margin-right: 8px;
        box-shadow: 0 0 4px rgba(0, 0, 0, 0.3);
    }
    
    /* Text input styling - editable fields with copper outline */
    .collection-data-input {
        font-size: 14px;
        font-weight: 500;
        color: #CCCCCC;
        background: rgba(0, 0, 0, 0.3);
        padding: 10px 12px;
        border-radius: 0;
        border: 2px solid rgba(255, 255, 255, 0.15);
        min-height: 40px;
        width: 100%;
        box-sizing: border-box;
        transition: all 0.2s ease;
    }
    
    .collection-data-input:focus {
        outline: none;
        background: rgba(255, 255, 255, 0.05);
        border-color: #B8936F;
        box-shadow: 0 0 0 2px rgba(184, 147, 111, 0.3);
    }
    
    .collection-data-input::placeholder {
        color: rgba(255, 255, 255, 0.3);
        font-style: italic;
    }
    
    /* Select dropdown styling for Speed/Size fields */
    .collection-data-select {
        font-size: 14px;
        font-weight: 500;
        color: #CCCCCC;
        background: rgba(0, 0, 0, 0.3);
        padding: 10px 12px;
        border-radius: 0;
        border: 2px solid rgba(255, 255, 255, 0.15);
        min-height: 40px;
        width: 100%;
        box-sizing: border-box;
        transition: all 0.2s ease;
        cursor: pointer;
        appearance: none;
        -webkit-appearance: none;
        -moz-appearance: none;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23888' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
        background-repeat: no-repeat;
        background-position: right 12px center;
        padding-right: 36px;
    }
    
    .collection-data-select:focus {
        outline: none;
        background-color: rgba(255, 255, 255, 0.05);
        border-color: #B8936F;
        box-shadow: 0 0 0 2px rgba(184, 147, 111, 0.3);
    }
    
    .collection-data-select option {
        background: #1a1a1a;
        color: #CCCCCC;
        padding: 8px;
    }
    
    /* Dropdown menu for condition/audiophile selection */
    .condition-dropdown-menu {
        background-color: var(--color-gray-900) !important;
        border: 1px solid rgba(255, 255, 255, 0.2);
        border-radius: 0;
        z-index: 9999;
        max-height: 250px;
        overflow-y: auto;
        box-shadow: 0 8px 24px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(0, 0, 0, 0.8);
    }
    
    .condition-dropdown-menu::-webkit-scrollbar {
        width: 6px;
    }
    
    .condition-dropdown-menu::-webkit-scrollbar-track {
        background: rgba(0, 0, 0, 0.2);
        border-radius: 3px;
    }
    
    .condition-dropdown-menu::-webkit-scrollbar-thumb {
        background: rgba(255, 255, 255, 0.3);
        border-radius: 3px;
    }
    
    .condition-dropdown-menu::-webkit-scrollbar-thumb:hover {
        background: rgba(255, 255, 255, 0.5);
    }
    
    .condition-option {
        padding: 10px 12px;
        cursor: pointer;
        transition: all 0.15s ease;
        display: flex;
        align-items: center;
        color: var(--color-white);
        font-size: 14px;
        background-color: var(--color-gray-900) !important;
    }
    
    .condition-option:hover {
        background-color: rgb(103, 126, 234) !important;
    }
    
    .condition-option.selected {
        background-color: rgba(103, 126, 234, 0.85) !important;
        font-weight: 600;
    }
    
    .condition-option .condition-dot {
        margin-right: 10px;
    }
    
    /* Condition Slider - Seamless horizontal bar */
    .condition-slider {
        display: flex;
        gap: 0;
        width: 100%;
        height: 42px;
        overflow: hidden;
    }
    
    .condition-segment {
        flex: 1;
        padding: 0;
        border: none;
        border-radius: 0;
        cursor: pointer;
        font-size: 13px;
        font-weight: 700;
        color: var(--color-white);
        text-align: center;
        transition: all 0.2s ease;
        opacity: 0.6;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    
    .condition-segment:hover {
        opacity: 0.85;
    }
    
    .condition-segment.is-selected {
        opacity: 1;
        box-shadow: inset 0 0 0 3px rgba(255, 255, 255, 0.5);
    }
    
    /* Audiophile Toggle - Seamless 3-segment bar */
    .audiophile-toggle-slider {
        display: flex;
        gap: 0;
        width: 100%;
        height: 42px;
        overflow: hidden;
    }
    
    .audiophile-segment {
        flex: 1;
        padding: 0;
        border: none;
        border-radius: 0;
        cursor: pointer;
        font-size: 16px;
        font-weight: 700;
        color: var(--color-white);
        text-align: center;
        transition: all 0.2s ease;
        opacity: 0.5;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    
    .audiophile-segment:hover {
        opacity: 0.75;
    }
    
    .audiophile-segment.is-selected {
        opacity: 1;
        box-shadow: inset 0 0 0 3px rgba(255, 255, 255, 0.6);
    }
    
    /* Discogs Links on Collection Card Front */
    .collection-flip-card .album-info a.discogs-link {
        color: inherit;
        text-decoration: none;
        transition: color 0.2s ease;
        cursor: pointer;
    }
    
    .collection-flip-card .album-info a.discogs-link:hover {
        color: #667eea;
        text-decoration: underline;
    }
    
    /* Collection Card Front - Position relative for absolute children */
    .collection-card-front {
        position: relative;
    }
    
    /* Play Icon Button - Bottom Right Corner */
    .collection-play-icon {
        position: absolute;
        bottom: 12px;
        right: 12px;
        width: 42px;
        height: 42px;
        background: rgba(0, 0, 0, 0.5);
        border: 1px solid rgba(255, 255, 255, 0.3);
        border-radius: 50%;
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: all 0.3s ease;
        z-index: 10;
        backdrop-filter: blur(5px);
        opacity: 1;
    }
    
    .collection-play-icon svg {
        width: 20px;
        height: 20px;
        color: #B8936F;
        margin-left: 2px;
        transition: color 0.2s ease;
    }
    
    .collection-play-icon:hover {
        opacity: 1;
        transform: scale(1.1);
        background: rgba(184, 147, 111, 0.4);
        border-color: rgba(184, 147, 111, 0.6);
        box-shadow: 0 4px 12px rgba(184, 147, 111, 0.3);
    }
    
    .collection-play-icon:hover svg {
        color: #B8936F;
    }
    
    .collection-play-icon:active {
        transform: scale(0.95);
    }
    
    /* ===== WANTLIST BACKGROUND ===== */
    /* Uses trianglify animated background (same as Collection) */
    .wantlist-page {
        position: relative;
        background: transparent;
    }
    
    /* ===== WANTLIST CARDS ===== */
    /* Wantlist cards match collection card styling but smaller size */
    
    .album-card.wantlist-card {
        /* Reset conflicting dashboard stat card styles */
        border-top: none !important;
    }
    
    /* Wantlist card - matches collection card structure */
    .wantlist-card {
        position: relative;
        background: linear-gradient(to top, rgba(255, 255, 255, 0.12) 0%, rgba(255, 255, 255, 0.01) 50%);
        backdrop-filter: blur(15px) saturate(1.2);
        box-shadow: 0 8px 32px rgba(0, 0, 0, 0.37), inset 0 0 60px rgba(255, 255, 255, 0.05);
        border: 1px solid rgba(255, 255, 255, 0.12);
        border-radius: 0;
        overflow: hidden;
        height: 100%;
        display: flex;
        flex-direction: column;
        transition: all 0.3s ease;
    }
    
    /* Copper hover glow effect for wantlist cards */
    .wantlist-card:hover {
        transform: translateY(-3px);
        box-shadow: 0 10px 30px rgba(184, 147, 111, 0.3);
        border-color: #B8936F;
    }
    
    /* Content card inside wantlist - matches collection structure exactly */
    .wantlist-card .album-content {
        background: rgba(30, 30, 30, 0.7);
        border-radius: 0;
        padding: 10px;
        margin: 8px;
        flex: 1;
        display: flex;
        flex-direction: column;
        min-height: 0;
    }
    
    /* Wantlist card album cover - flexible like collection cards */
    .wantlist-card .album-cover {
        width: 100%;
        flex: 1 1 auto; /* Flexible - shrinks when card is smaller */
        min-height: 0;
        position: relative;
        background: transparent;
        display: flex;
        align-items: center;
        justify-content: center;
        margin-bottom: 8px; /* Spacing between cover and info */
    }
    
    .wantlist-card .album-cover img {
        max-width: 100%;
        max-height: 100%;
        object-fit: contain;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
        border-radius: 4px;
    }
    
    /* Wantlist card text styling - fixed size like collection cards */
    .wantlist-card .album-info {
        flex: 0 0 auto; /* Fixed size - does not shrink */
        display: flex;
        flex-direction: column;
    }
    
    .wantlist-card .album-title {
        font-size: 14px;
        font-weight: 600;
        color: var(--color-white);
        margin-bottom: 4px;
        line-height: 1.2;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
    
    .wantlist-card .album-artist {
        font-size: 12px;
        color: #CCCCCC;
        margin-bottom: 2px;
        font-weight: 400;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    
    .wantlist-card .album-title:hover,
    .wantlist-card .album-artist:hover {
        color: #7FA0B8;
        text-decoration: underline;
    }
    
    /* Non-clickable artist name (when no resource URL available) */
    .wantlist-card div.album-artist {
        cursor: default;
    }
    
    .wantlist-card .album-year {
        font-size: 11px;
        color: #D4B896 !important;
        font-weight: 400;
        margin-bottom: 4px;
    }
    
    /* Wantlist card action row - always visible, never clipped */
    .wantlist-card .card-action-row {
        flex-shrink: 0;
        margin-top: auto;
    }
    
    /* Wantlist Discogs links with purple hover */
    .wantlist-card a.discogs-link {
        color: inherit;
        text-decoration: none;
        transition: color 0.2s ease;
        cursor: pointer;
        display: block;
    }
    
    .wantlist-card a.discogs-link:hover {
        color: #7FA0B8;
        text-decoration: underline;
    }
    
    /* Collection Card Notes Button - Gray by default, Copper when notes exist */
    .collection-flip-card .album-action[data-action="notes"]:not(.has-notes) {
        background: rgba(128, 128, 128, 0.6);
    }
    
    .collection-flip-card .album-action[data-action="notes"]:not(.has-notes):hover {
        background: rgba(128, 128, 128, 0.8);
    }
    
    .collection-flip-card .album-action[data-action="notes"].has-notes {
        background: rgba(184, 147, 111, 0.5);
        color: #FFFFFF;
    }
    
    .collection-flip-card .album-action[data-action="notes"].has-notes:hover {
        background: rgba(184, 147, 111, 0.7);
        color: #FFFFFF;
    }
    
    /* Flip indicators for collection cards - positioned below the card */
    .collection-flip-indicators {
        position: absolute;
        bottom: -18px;
        left: 0;
        right: 0;
        display: flex;
        justify-content: center;
        gap: 6px;
        z-index: 20;
        pointer-events: none;
    }
    
    .collection-flip-dot {
        width: 6px;
        height: 6px;
        border-radius: 0;
        background: rgba(212, 184, 150, 0.6);
        transition: all 0.3s ease;
        pointer-events: auto;
        cursor: pointer;
    }
    
    .collection-flip-dot.active {
        background: #8F6F52;
        width: 8px;
        height: 8px;
    }
    
    .collection-flip-dot:hover {
        background: #B8936F;
    }
    
    /* Audiophile Badge */
    .audiophile-badge {
        background: linear-gradient(135deg, var(--color-white) 0%, #f8f9fa 100%);
        border: 2px solid #4a9eff;
        border-radius: 6px;
        padding: 6px 10px;
        display: flex;
        align-items: center;
        gap: 6px;
        box-shadow: 0 0 15px rgba(74, 158, 255, 0.2);
        transition: all 0.3s ease;
    }
    
    .audiophile-badge:hover {
        box-shadow: 0 0 20px rgba(74, 158, 255, 0.4);
        transform: translateY(-1px);
    }
    
    .sound-wave {
        display: flex;
        gap: 1px;
        align-items: center;
    }
    
    .wave-bar {
        width: 2px;
        background: #4a9eff;
        border-radius: 1px;
    }
    
    .wave-bar:nth-child(1) { height: 4px; }
    .wave-bar:nth-child(2) { height: 7px; }
    .wave-bar:nth-child(3) { height: 10px; }
    .wave-bar:nth-child(4) { height: 7px; }
    .wave-bar:nth-child(5) { height: 5px; }
    
    .audiophile-text {
        color: #4a9eff;
        font-weight: 600;
        font-size: 9px;
        letter-spacing: 0.6px;
        text-transform: uppercase;
    }
    
    .album-genre-tags {
        display: flex;
        gap: 6px;
        flex-wrap: wrap;
        margin-bottom: 8px;
    }
    
    .album-genre { 
        font-size: 11px;
        background: linear-gradient(135deg, #667eea20 0%, #764ba220 100%);
        color: #667eea;
        padding: 8px 12px;
        border-radius: 0;
        font-weight: 600;
        border: 1px solid #667eea30;
    }
    
    /* Pagination */
    .pagination { 
        display: flex; 
        justify-content: center; 
        align-items: center; 
        gap: 10px; 
        padding: 20px; 
        background: transparent; 
        border-top: 1px solid rgba(255, 255, 255, 0.2);
        height: 60px; /* Fixed height */
        flex-shrink: 0; /* Prevent shrinking */
        margin-top: auto; /* Push to bottom */
    }
    .pagination-btn, #searchPrevBtn, #searchNextBtn { padding: 8px 12px; background: none !important; color: rgba(255, 255, 255, 0.8); border: none !important; border-radius: 0px !important; cursor: pointer; font-size: 14px; transition: all 0.2s; text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7); outline: none !important; box-shadow: none !important; appearance: none !important; }
    .pagination-btn:hover:not(:disabled), #searchPrevBtn:hover, #searchNextBtn:hover { color: var(--color-white); background: none !important; border: none !important; outline: none !important; box-shadow: none !important; appearance: none !important; }
    .pagination-btn:disabled, .pagination-btn.disabled, #searchPrevBtn.disabled, #searchNextBtn.disabled { opacity: 0.5; cursor: not-allowed; background: none !important; border: none !important; outline: none !important; box-shadow: none !important; appearance: none !important; }
    .pagination-btn.active { background: none !important; color: var(--color-white); outline: none !important; box-shadow: none !important; border: none !important; }
    .pagination-info { color: rgba(255, 255, 255, 0.8); font-size: 14px; text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7); }
    .page-info { 
        color: var(--color-gray-200); 
        font-size: 14px; 
        font-weight: 500; 
        margin: 0 16px; 
        white-space: nowrap; 
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
    }
    
    /* Network Visualization Full Width Override */
    #card-collection-network {
        width: 100% !important;
        max-width: none !important;
        grid-column: 1 / -1 !important;
    }
    
    #card-collection-network .viz-card {
        width: 100% !important;
        max-width: none !important;
        height: calc(100vh - 220px) !important;
        max-height: calc(100vh - 220px) !important;
        overflow: hidden !important;
        margin-top: 50px !important;
    }
    
    #collection-network-container {
        width: 100% !important;
        max-width: none !important;
        min-width: 800px !important;
        height: calc(100vh - 220px) !important;
        max-height: calc(100vh - 220px) !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        overflow: hidden !important;
        position: relative !important;
        margin-top: 50px !important;
    }
    
    .viz-grid-1x1:has(#card-collection-network) {
        grid-template-columns: 1fr !important;
        width: 100% !important;
        max-width: none !important;
    }
    
    /* Visualization navigation controls - hidden, use touch/mouse gestures instead */
    .viz-nav-controls {
        display: none !important;
        gap: 10px;
        position: absolute;
        right: 10px;
        top: 50%;
        transform: translateY(-50%);
        z-index: 10;
    }
    
    .viz-nav-btn {
        background: rgba(255, 255, 255, 0.9);
        border: 1px solid rgba(0, 0, 0, 0.1);
        border-radius: 0;
        width: 40px;
        height: 40px;
        display: flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
        transition: all 0.2s ease;
        font-size: 18px;
        color: var(--color-gray-700);
        backdrop-filter: blur(10px);
    }
    
    .viz-nav-btn:hover:not(:disabled) {
        background: rgba(255, 255, 255, 1);
        transform: scale(1.1);
        box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    }
    
    .viz-nav-btn:disabled {
        opacity: 0.5;
        cursor: not-allowed;
    }
    
    .viz-page-indicator {
        display: flex;
        gap: 8px;
        align-items: center;
    }
    
    .viz-page-dot {
        width: 8px;
        height: 8px;
        border-radius: 0;
        background: rgba(255, 255, 255, 0.4);
        cursor: pointer;
        transition: all 0.2s ease;
    }
    
    .viz-page-dot.active {
        background: rgba(255, 255, 255, 0.9);
        transform: scale(1.5);
    }
    
    /* Hide carousel page indicators on mobile - cards stack vertically */
    @media (max-width: 480px) {
        .viz-page-indicator {
            display: none !important;
        }
    }
    
    /* Responsive viz carousel */
    @media (max-width: 1200px) {
        .viz-cards-page {
            grid-template-columns: repeat(3, 1fr); /* Keep 3 columns */
            grid-template-rows: 1fr 1fr; /* Maintain 50/50 split */
        }
    }
    
    @media (max-width: 768px) {
        .viz-cards-page {
            grid-template-columns: 1fr !important; /* Single column on tablets and mobile */
            grid-template-rows: auto !important; /* Auto-sized rows for stacked cards */
            gap: 12px;
            padding: 15px;
            height: auto !important; /* Allow content to determine height */
            overflow-y: visible;
        }
        
        /* Hide carousel page indicators on tablets too */
        .viz-page-indicator {
            display: none !important;
        }
        
        .viz-card {
            min-height: 200px;
            height: auto; /* Allow content to size card */
        }
        
        .viz-carousel-container {
            height: auto; /* Allow scrolling */
            min-height: auto;
            overflow-y: visible;
        }
    }
    
    @media (max-width: 480px) {
        .viz-cards-page {
            grid-template-columns: 1fr !important;
            gap: 6px;
            padding: 8px;
        }
        
        .viz-card {
            min-height: 120px;
        }
        
        /* Compact stats overview cards - aggressively reduced height */
        .viz-card.viz-stats-card-compact {
            min-height: auto !important;
            max-height: 140px !important;
            height: auto !important;
            padding: 8px 12px !important;
        }
        .viz-card.viz-stats-card-compact .viz-card-header {
            padding: 0 !important;
            margin-bottom: 4px !important;
            padding-bottom: 4px !important;
        }
        .viz-card.viz-stats-card-compact .viz-card-header::after {
            left: 0;
            right: 0;
        }
        .viz-card.viz-stats-card-compact .viz-card-header h3 {
            font-size: 0.85em !important;
        }
        .viz-card.viz-stats-card-compact .viz-card-content {
            flex: 0 0 auto !important;
            min-height: auto !important;
        }
        .viz-card.viz-stats-card-compact .viz-stats-display {
            padding: 0 !important;
            height: auto !important;
        }
        .viz-card.viz-stats-card-compact .viz-stats-number {
            font-size: 2em !important;
            margin-bottom: 2px !important;
        }
        .viz-card.viz-stats-card-compact .viz-stats-label {
            font-size: 0.75em !important;
            margin-bottom: 2px !important;
        }
        .viz-card.viz-stats-card-compact .viz-stats-sublabel {
            font-size: 0.65em !important;
        }
    }
    
    /* Responsive Collection Grid - Mobile */
    /* Uses CSS Grid's natural behavior: rows sized to tallest item, items stretch to fill */
    @media (max-width: 480px) {
        .albums-page {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            grid-template-rows: none; /* Reset base 550px template - let grid-auto-rows control ALL rows */
            grid-auto-rows: auto; /* Row height = tallest item in row */
            align-items: stretch; /* All items stretch to fill the row */
            gap: 10px;
            padding: 10px;
            width: 100%;
            max-width: 100%;
            overflow: hidden;
        }
        .album-card {
            max-width: 100%;
            height: 100%; /* Stretch to fill grid cell */
            display: flex;
            flex-direction: column;
        }
        .album-cover {
            width: 100%;
            height: auto;
            aspect-ratio: 1 / 1;
            flex-shrink: 0;
        }
    }
    
    /* Tablet: 5x2 grid (5 columns, 2 rows) */
    @media (min-width: 481px) and (max-width: 768px) {
        .albums-page {
            grid-template-columns: repeat(5, minmax(0, 1fr));
            grid-template-rows: repeat(2, minmax(0, 550px));
            grid-auto-rows: 550px;
            gap: 12px;
            padding: 12px;
            width: 100%;
            max-width: 100%;
            overflow: hidden;
            height: auto;
            align-content: start;
        }
        .album-card {
            height: auto;
            min-height: auto;
        }
        .album-cover {
            width: 100%;
            height: auto;
            aspect-ratio: 1 / 1;
        }
    }
    
    /* Desktop: 5x2 grid (5 columns, 2 rows) */
    @media (min-width: 769px) {
        .albums-page {
            grid-template-columns: repeat(5, minmax(0, 1fr));
            grid-template-rows: repeat(2, minmax(0, 550px));
            grid-auto-rows: 550px;
            gap: 20px;
            padding: 20px;
            width: 100%;
            max-width: 100%;
            overflow: hidden;
            height: auto;
            align-content: start;
        }
    }
    
    /* Wantlist scroll wrapper - vertical only, no horizontal */
    .wantlist-page .albums-scroll-wrapper {
        display: block;
        width: 100%;
        height: calc(100vh - 80px);
        overflow-y: auto;
        overflow-x: hidden;
        transform: none !important; /* Disable any carousel transform */
    }
    
    /* Wantlist-specific grid layouts - match collection's 5-column desktop layout */
    .wantlist-page .albums-page {
        display: grid;
        grid-template-columns: repeat(5, 1fr);
        gap: 20px;
        padding: 20px;
        width: 100%;
        box-sizing: border-box;
        align-items: stretch; /* Cards stretch to match tallest in row, fixing button bar alignment */
    }
    
    @media (max-width: 768px) {
        .wantlist-page .albums-page {
            grid-template-columns: repeat(3, 1fr);
            gap: 12px;
            padding: 12px;
        }
    }
    
    @media (max-width: 480px) {
        .wantlist-page .albums-page {
            grid-template-columns: repeat(2, 1fr);
            gap: 10px;
            padding: 10px;
        }
    }

    /* Collection flip cards - equal heights on mobile via grid stretch */
    /* Grid uses align-items: stretch so all cards in a row match tallest card height */
    /* All content flows naturally, no truncation - grid ensures row alignment */
    @media (max-width: 480px) {
        /* Card container - stretch to fill grid cell */
        .album-card.collection-flip-card {
            height: 100% !important;
            min-height: auto !important;
            max-height: none !important;
            padding-bottom: 24px;
            display: flex;
            flex-direction: column;
        }
        .album-card.collection-flip-card .collection-flip-inner {
            position: relative;
            height: 100%;
            flex: 1 1 auto;
        }
        .album-card.collection-flip-card .collection-card-front {
            position: relative;
            height: 100%;
            display: flex;
            flex-direction: column;
        }
        .album-card.collection-flip-card .collection-card-back {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
        }
        /* Album cover - square aspect ratio */
        .collection-card-front .album-cover {
            width: 100%;
            aspect-ratio: 1 / 1;
            flex-shrink: 0;
        }
        .collection-card-front .album-cover img {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }
        /* Text container - takes remaining space, content flows naturally */
        .collection-card-front .album-info {
            padding: 8px 12px;
            flex: 1 1 auto;
            display: flex;
            flex-direction: column;
            justify-content: flex-start;
            /* No overflow:hidden - let content flow naturally */
        }
        /* Album title - max 2 lines with ellipsis for very long titles */
        .collection-card-front .album-title {
            font-size: 14px;
            line-height: 1.2;
            display: -webkit-box;
            -webkit-line-clamp: 2;
            line-clamp: 2;
            -webkit-box-orient: vertical;
            overflow: hidden;
            margin-bottom: 3px;
        }
        /* Artist name - max 2 lines with ellipsis */
        .collection-card-front .album-artist {
            font-size: 12px;
            line-height: 1.2;
            white-space: normal !important;
            display: -webkit-box;
            -webkit-line-clamp: 2;
            line-clamp: 2;
            -webkit-box-orient: vertical;
            overflow: hidden;
            margin-bottom: 3px;
        }
        /* Year */
        .collection-card-front .album-year {
            font-size: 11px;
            margin-bottom: 3px;
        }
        /* Stars */
        .collection-card-front .star-rating {
            margin-bottom: 0;
        }
    }
    
    @media (min-width: 481px) and (max-width: 768px) {
        .album-card.collection-flip-card {
            height: 550px !important;
            max-height: 550px !important;
            min-height: 550px !important;
        }
    }
    
    @media (min-width: 769px) {
        .album-card.collection-flip-card {
            height: 550px !important;
            max-height: 550px !important;
            min-height: 550px !important;
        }
    }

    /* Mobile Styles */
    @media (max-width: 768px) {
        .mobile-menu-btn { display: block; }
        .app-container { flex-direction: column; }
        .sidebar { 
            position: fixed; 
            top: 0; 
            left: -100%; 
            height: 100vh; 
            z-index: 999; 
            transition: left 0.3s ease;
            width: 85vw;
            max-width: 320px;
            border-right: none;
            box-shadow: 2px 0 10px rgba(0,0,0,0.3);
        }
        .sidebar.open { left: 0; }
        .sidebar-overlay.open { display: block; }
        .main-chat { width: 100%; flex: 1; }
        .chat-header { 
            padding: 12px 15px 12px 60px; 
            border-bottom: 1px solid #444;
        }
        .chat-header h1 { font-size: 1.1em; }
        .chat-messages { 
            padding: 10px 15px; 
            flex: 1;
            overflow-y: auto;
        }
        .chat-input-section { 
            padding: 12px 15px; 
            gap: 8px;
            border-top: 1px solid #444;
        }
        .message-content { 
            max-width: 95%; 
            padding: 10px 12px;
            font-size: 14px;
        }
        .context-toggle { 
            padding: 6px 8px; 
            font-size: 10px; 
            margin: 1px;
            border-radius: 3px;
        }
        .search-input { 
            font-size: 16px; 
            padding: 12px;
        }
        .send-btn {
            padding: 12px 16px;
            font-size: 14px;
        }
        .prompt-item {
            padding: 10px;
            font-size: 13px;
            margin: 3px 0;
        }
        .search-item {
            padding: 10px;
            font-size: 13px;
        }
    }
    
    /* Payment notification styles */
    .payment-notification { 
        position: fixed; 
        top: 80px; 
        right: 20px; 
        padding: 20px; 
        border-radius: 0; 
        color: white; 
        font-weight: bold; 
        z-index: 1001; 
        max-width: 450px; 
        opacity: 0; 
        transform: translateX(100%); 
        transition: all 0.4s ease; 
        box-shadow: 0 4px 12px rgba(0,0,0,0.3); 
    }
    .payment-notification.show { 
        opacity: 1; 
        transform: translateX(0); 
    }
    .payment-notification.success { 
        background: linear-gradient(135deg, #28a745, #20c997); 
    }
    .payment-notification.info { 
        background: linear-gradient(135deg, #17a2b8, #6f42c1); 
    }
    
    /* Tablet Styles */
    @media (min-width: 769px) and (max-width: 1024px) {
        .sidebar { 
            width: 280px; 
            padding: 18px;
        }
        .chat-header { 
            padding: 18px 20px; 
        }
        .chat-header h1 { font-size: 1.3em; }
        .chat-messages { 
            padding: 18px 20px; 
        }
        .chat-input-section {
            padding: 15px 20px;
            gap: 12px;
        }
        .message-content { 
            max-width: 85%; 
            padding: 12px 14px;
        }
        .context-toggle {
            padding: 7px 11px;
            font-size: 12px;
        }
        .prompt-item, .search-item {
            padding: 9px;
            font-size: 12px;
        }
    }
    
    /* Large Desktop */
    @media (min-width: 1200px) {
        .sidebar { 
            width: 380px; 
            padding: 25px;
        }
        .chat-header {
            padding: 20px 25px;
        }
        .chat-messages {
            padding: 25px;
        }
        .chat-input-section {
            padding: 18px 25px;
        }
        .message-content { 
            max-width: 75%; 
            padding: 14px 16px;
        }
    }
    
    /* Placeholder page styles */
    .placeholder-page { padding: 40px; text-align: center; }
    .placeholder-content { max-width: 600px; margin: 0 auto; }
    .placeholder-icon { font-size: 4em; margin-bottom: 20px; opacity: 0.5; }
    .placeholder-title { font-size: 2em; margin-bottom: 15px; color: #007cba; }
    .placeholder-text { font-size: 1.1em; color: var(--color-white); line-height: 1.6; }
    .coming-soon { background: #28a745; color: white; padding: 8px 16px; border-radius: 20px; font-size: 0.9em; margin-top: 20px; display: inline-block; }
    
    /* Touch improvements */
    @media (hover: none) {
        .search-item, .prompt-item, .context-toggle, .send-btn, .nav-link {
            -webkit-tap-highlight-color: rgba(255,255,255,0.1);
        }
    }
    
    /* Mobile navigation */
    @media (max-width: 768px) {
        .nav-list { flex-wrap: wrap; }
        .nav-item { flex: 1; min-width: 80px; }
        .nav-link { padding: 12px 8px; font-size: 0.85em; }
    }
    
    /* Visualization Layout */
    .viz-layout {
        display: flex;
        height: calc(100vh - 80px);
        background: #f8f9fa;
    }
    
    .viz-sidebar {
        width: 280px;
        background: var(--color-white);
        color: var(--color-gray-700);
        padding: 20px;
        overflow-y: auto;
        border-right: 1px solid #e9ecef;
    }
    
    .viz-sidebar h2 {
        font-size: 1.1em;
        font-weight: 600;
        margin: 0 0 25px 0;
        color: var(--color-gray-700);
    }
    
    .viz-section {
        margin-bottom: 25px;
    }
    
    .viz-section h3 {
        font-size: 0.75em;
        font-weight: 600;
        letter-spacing: 1px;
        margin: 0 0 12px 0;
        color: #6c757d;
        text-transform: uppercase;
    }
    
    .viz-category-buttons {
        display: flex;
        flex-direction: column;
        gap: 8px;
    }
    
    .viz-category-btn {
        padding: 12px 16px;
        background: white;
        border: 1px solid #e3e6f0;
        color: #5a5c69;
        cursor: pointer;
        font-weight: 500;
        transition: all 0.2s ease;
        text-align: center;
        border-radius: 6px;
        box-shadow: 0 1px 3px rgba(0,0,0,0.1);
    }
    
    .viz-category-btn.active {
        background: #4e73df;
        border-color: #4e73df;
        color: white;
        box-shadow: 0 2px 4px rgba(78, 115, 223, 0.2);
    }
    
    .viz-category-btn:hover:not(.active) {
        background: #f8f9fc;
        border-color: #d1d3e2;
        color: #3a3b45;
    }
    
    #vizSearchInput {
        width: 100%;
        padding: 10px 12px;
        background: white;
        border: 1px solid #ddd;
        color: #212529;
        border-radius: 0;
        font-size: 0.9em;
        margin-bottom: 10px;
    }
    
    #vizSearchInput::placeholder {
        color: #6c757d;
    }
    
    #vizSearchInput:focus {
        outline: none;
        border-color: var(--color-primary);
        background: white;
    }
    

    

    
    .viz-selected-item {
        padding: 12px;
        background: var(--color-primary);
        border-radius: 0;
        font-size: 0.9em;
        color: white;
        font-weight: 500;
    }
    
    .viz-main-content {
        flex: 1;
        padding: 25px;
        overflow-y: auto;
    }
    
    /* Vertical carousel for visualization cards */
    .viz-carousel-container {
        width: 100%;
        height: calc(100vh - 185px); /* Fixed height for vertical carousel */
        overflow: hidden;
        position: relative;
        max-width: 100vw;
        box-sizing: border-box;
        margin-bottom: 25px;
        min-height: 600px;
    }
    
    .viz-scroll-wrapper {
        display: flex;
        flex-direction: column; /* Stack pages vertically */
        width: 100%;
        box-sizing: border-box;
        transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
        will-change: transform;
    }
    
    .viz-cards-page {
        width: 100%;
        height: calc(100vh - 185px); /* Each page fills viewport */
        min-height: 600px;
        flex-shrink: 0;
        display: grid;
        grid-template-columns: repeat(3, 1fr); /* 3 columns for 3 cards per row */
        grid-template-rows: 1fr 1fr; /* Two equal rows */
        gap: 16px;
        padding: 20px;
        box-sizing: border-box;
        align-content: stretch;
        justify-content: start;
        max-width: 100%;
    }
    
    /* Responsive: Stack cards on narrow screens */
    @media (max-width: 768px) {
        .viz-cards-page {
            grid-template-columns: 1fr !important;
            grid-template-rows: auto !important;
            height: auto !important;
            overflow-y: visible !important;
        }
        
        .viz-card {
            min-height: 200px;
            height: auto;
        }
        
        .viz-carousel-container {
            height: auto !important;
            min-height: auto !important;
            overflow-y: visible !important;
        }
        
        .viz-scroll-wrapper {
            height: auto !important;
            min-height: auto !important;
        }
    }
    
    /* Legacy grid class - now hidden */
    .viz-cards-row {
        display: none;
    }
    
    .viz-full-width-placeholder {
        margin-top: 20px;
    }
    
    .full-width-card {
        grid-column: 1 / -1;
        width: 100%;
        min-height: 360px;
    }
    
    /* .viz-card definition moved to line 3377 with glassmorphism styling */

    /* Half-height stats cards */
    .viz-stats-card-compact {
        min-height: 175px !important; /* Half of standard 350px */
    }

    .viz-stats-display {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        height: 100%;
        text-align: center;
        padding: 20px;
    }

    .viz-stats-number {
        font-size: clamp(2.5em, 6.5vw, 5em);
        font-weight: 700;
        color: #9FA88F;
        line-height: 1;
        margin-bottom: 15px;
        text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
    }

    .viz-stats-label {
        font-size: clamp(1em, 1.6vw, 1.5em);
        font-weight: 600;
        color: rgba(255, 255, 255, 0.95);
        margin-bottom: 8px;
        text-transform: uppercase;
        letter-spacing: 1px;
    }

    .viz-stats-sublabel {
        font-size: clamp(0.75em, 1.2vw, 0.9em);
        color: rgba(255, 255, 255, 0.65);
        font-weight: 500;
        text-align: center;
    }
    
    /* Mobile: Compact viz-stats overview cards */
    @media (max-width: 480px) {
        .viz-carousel-container {
            height: auto !important;
            min-height: auto !important;
            margin-bottom: 0 !important;
        }
        .viz-scroll-wrapper {
            height: auto !important;
            min-height: auto !important;
        }
        .viz-cards-page {
            height: auto !important;
            align-content: start !important;
        }
        .viz-stats-card-compact {
            min-height: auto !important;
            max-height: none !important;
            height: auto !important;
        }
        .viz-stats-display {
            padding: 8px 12px !important;
            height: auto !important;
        }
        .viz-stats-number {
            font-size: 2.2em !important;
            margin-bottom: 4px !important;
        }
        .viz-stats-label {
            font-size: 0.85em !important;
            margin-bottom: 2px !important;
        }
        .viz-stats-sublabel {
            font-size: 0.7em !important;
        }
    }

    /* Modal stats expanded view */
    .viz-modal-stats-expanded {
        padding: 20px;
    }

    .viz-stats-grid {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 25px;
        margin-bottom: 30px;
    }

    .viz-stat-item {
        text-align: center;
        padding: 20px;
        background: #f8f9fa;
        border-radius: 12px;
        border: 1px solid #e9ecef;
    }

    .viz-stat-item h4 {
        margin: 0 0 10px 0;
        font-size: 0.9em;
        color: #6c757d;
        font-weight: 600;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }

    .viz-stat-big {
        font-size: 1.8em;
        font-weight: 600;
        color: #CC5500;
        line-height: 1;
    }

    .viz-stats-detail {
        padding: 20px;
        background: #fff;
        border: 1px solid #e9ecef;
        border-radius: 0;
        color: #6c757d;
        text-align: center;
    }

    .full-page-card {
        height: calc(100vh - 80px);
        margin: 0;
        border-radius: 12px;
    }

    .full-page-card .viz-card-content {
        height: calc(100% - 60px);
    }
    
    .viz-card:hover {
        transform: translateY(-2px);
        box-shadow: 0 6px 16px rgba(0,0,0,0.2); /* Enhanced hover shadow */
    }
    
    .viz-card-header {
        padding: 12px 20px 0 20px; /* Reduce top padding from 20px to 12px */
        display: flex;
        justify-content: space-between;
        align-items: flex-start;
        margin-bottom: 15px;
        padding-bottom: 10px;
        position: relative;
    }
    
    .viz-card-header::after {
        content: '';
        position: absolute;
        bottom: 0;
        left: 20px;
        right: 20px;
        height: 2px;
        background: linear-gradient(to right, #8F6F52, transparent);
    }
    
    .viz-card-header h3 {
        font-size: 1.5em;
        font-weight: 600;
        color: #B8936F;
        margin: 0;
        line-height: 1.3;
    }
    
    .viz-expand-btn {
        background: none;
        border: none;
        color: #6c757d;
        font-size: 1.2em;
        cursor: pointer;
        padding: 4px 6px;
        border-radius: 0;
        transition: all 0.2s ease;
    }
    
    .viz-expand-btn:hover {
        background: #f8f9fa;
        color: #212529;
    }
    
    .viz-card-content {
        flex: 1;
        padding: 0;
        display: flex;
        align-items: stretch;
        justify-content: stretch;
        min-height: auto;
        width: 100%;
    }
    
    .viz-card-content > * {
        flex: 1;
        width: 100%;
    }
    
    /* Glassmorphism card container for visualizations */
    .viz-card {
        background: rgba(30, 30, 30, 0.70);
        backdrop-filter: blur(10px) saturate(1.2);
        border: 1px solid rgba(255, 255, 255, 0.1);
        border-radius: 0;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
        overflow: hidden;
        transition: all 0.3s ease;
        min-height: 250px;
        display: flex;
        flex-direction: column;
        width: 100%;
        height: 100%;
        box-sizing: border-box;
        padding: 20px;
    }
    
    .viz-card:hover {
        transform: translateY(-5px);
        box-shadow: 0 10px 30px rgba(184, 147, 111, 0.3);
        border-color: #B8936F;
    }
    
    .viz-placeholder {
        text-align: center;
        color: #6c757d;
    }
    
    .viz-placeholder-icon {
        font-size: 3em;
        margin-bottom: 15px;
        opacity: 0.5;
    }
    
    .viz-placeholder-title {
        font-size: 1.1em;
        font-weight: 600;
        margin-bottom: 10px;
        color: #495057;
    }
    
    .viz-placeholder-text {
        font-size: 0.9em;
        line-height: 1.4;
        max-width: 250px;
        margin: 0 auto;
    }
    
    .generate-summary-btn {
        background: linear-gradient(135deg, #007bff, #0056b3);
        color: white;
        border: none;
        padding: 12px 24px;
        border-radius: 0;
        font-size: 14px;
        font-weight: 600;
        cursor: pointer;
        margin-top: 16px;
        transition: all 0.3s ease;
        box-shadow: 0 2px 4px rgba(0, 123, 255, 0.2);
    }
    
    .generate-summary-btn:hover {
        background: linear-gradient(135deg, #0056b3, #004085);
        transform: translateY(-1px);
        box-shadow: 0 4px 8px rgba(0, 123, 255, 0.3);
    }
    
    .generate-summary-btn:active {
        transform: translateY(0);
        box-shadow: 0 2px 4px rgba(0, 123, 255, 0.2);
    }
    
    .generate-summary-btn:disabled {
        background: #6c757d;
        cursor: not-allowed;
        transform: none;
        box-shadow: none;
    }
    
    /* User Profile Page Styles */
    .user-profile-page {
        background: var(--color-gray-900);
        height: 100%;
        padding: 0 24px 24px 24px;
        color: var(--color-white);
        overflow-y: auto;
        box-sizing: border-box;
    }
    
    /* Modern Header Layout */
    .profile-header {
        background: rgba(255, 255, 255, 0.05);
        border-radius: 0;
        padding: 16px 24px;
        margin-bottom: 20px;
        margin-top: 0;
        box-shadow: 0 4px 8px rgba(0,0,0,0.3);
        border: 1px solid rgba(255, 255, 255, 0.1);
        display: flex;
        justify-content: space-between;
        align-items: center;
        min-height: 50px;
        box-sizing: border-box;
    }
    
    .user-info {
        display: flex;
        align-items: center;
        gap: 0;
        flex: 1;
    }
    
    .user-avatar {
        width: 24px;
        height: 24px;
        background: rgba(85, 85, 85, 0.8);
        border-radius: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        color: white;
        font-weight: 600;
        font-size: 12px;
        flex-shrink: 0;
    }
    
    .user-details {
        display: flex;
        flex-direction: column;
        gap: 4px;
        min-width: 0;
    }
    
    .user-name {
        font-size: 18px;
        font-weight: 600;
        color: var(--color-white);
        margin: 0;
    }
    
    .user-email {
        color: #CCCCCC;
        font-size: 14px;
        margin: 0;
    }
    
    .header-actions {
        display: flex;
        gap: 12px;
        flex-shrink: 0;
    }
    
    .btn-logout,
    .btn-help {
        padding: 8px 16px;
        border: 1px solid rgba(255, 255, 255, 0.2);
        border-radius: 0;
        cursor: pointer;
        font-weight: 500;
        font-size: 14px;
        transition: all 0.2s;
    }
    
    .btn-logout {
        background: rgba(220, 53, 69, 0.2);
        color: var(--color-white);
        border-color: rgba(220, 53, 69, 0.5);
    }
    
    .btn-logout:hover {
        background: rgba(220, 53, 69, 0.4);
        border-color: var(--color-error);
    }
    
    .btn-help {
        background: rgba(255, 255, 255, 0.05);
        color: var(--color-white);
    }
    
    .btn-help:hover {
        background: rgba(255, 255, 255, 0.1);
        border-color: var(--color-primary);
    }
    
    /* OAuth Authentication Section */
    .oauth-section {
        background: #f8f9fa;
        border-radius: 0;
        padding: 16px;
        margin-bottom: 24px;
        border: 1px solid #e9ecef;
    }
    
    .oauth-section h4 {
        margin: 0 0 12px 0;
        color: #2c3e50;
        font-size: 16px;
        font-weight: 600;
    }
    
    .oauth-status {
        display: flex;
        align-items: center;
        gap: 15px;
        margin-bottom: 20px;
        padding: 16px;
        border-radius: 0;
        background: #f8f9fa;
        border: 1px solid #e9ecef;
    }
    
    .oauth-status.connected {
        background: #d4edda;
        border-color: #c3e6cb;
        color: #155724;
    }
    
    .oauth-status.disconnected {
        background: #f8d7da;
        border-color: #f5c6cb;
        color: #721c24;
    }
    
    .oauth-status-icon {
        font-size: 24px;
        flex-shrink: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 32px;
        height: 32px;
    }
    
    .oauth-status-text {
        flex: 1;
        display: flex;
        flex-direction: column;
        justify-content: center;
        min-width: 0;
    }
    
    .oauth-status-title {
        font-weight: 600;
        margin: 0 0 4px 0;
        line-height: 1.2;
    }
    
    .oauth-status-details {
        font-size: 14px;
        opacity: 0.8;
        margin: 0;
        line-height: 1.3;
    }

    /* Billing Dashboard Styles */
    .billing-card {
        background: rgba(255, 255, 255, 0.03);
        border-radius: 0;
        margin-bottom: 24px;
        box-shadow: 0 4px 12px rgba(0,0,0,0.3);
        border: 1px solid rgba(255, 255, 255, 0.1);
        overflow: hidden;
    }

    .billing-card-header {
        background: rgba(184, 147, 111, 0.15);
        color: var(--color-white);
        padding: 16px 20px;
        display: flex;
        justify-content: space-between;
        align-items: center;
        border-bottom: 1px solid rgba(184, 147, 111, 0.3);
    }

    .billing-card-header h4 {
        margin: 0;
        font-size: 16px;
        font-weight: 600;
        color: var(--color-white);
    }

    .billing-card-content {
        padding: 20px;
        background: rgba(255, 255, 255, 0.02);
    }

    /* Token Balance Breakdown Table Styles */
    .token-table-wrapper {
        width: 100%;
        overflow-x: auto;
    }
    
    .token-breakdown-table {
        width: 100%;
        border-collapse: collapse;
        font-size: 13px;
        color: var(--color-white);
    }
    
    .token-breakdown-table thead tr {
        background-color: rgba(255,255,255,0.1);
        border-bottom: 2px solid rgba(255,255,255,0.3);
    }
    
    .token-breakdown-table th {
        padding: 10px;
        font-weight: 600;
        color: #CCCCCC;
        text-align: left;
    }
    
    .token-breakdown-table th.col-number,
    .token-breakdown-table td.col-number {
        text-align: right;
    }
    
    .token-breakdown-table th.col-status,
    .token-breakdown-table td.col-status {
        text-align: center;
    }
    
    .token-breakdown-table tbody tr {
        border-bottom: 1px solid rgba(255,255,255,0.1);
    }
    
    .token-breakdown-table td {
        padding: 10px;
        color: var(--color-white);
    }
    
    .token-breakdown-table td.col-type {
        font-weight: 500;
    }
    
    .token-breakdown-table tr.total-row {
        background-color: rgba(184, 147, 111, 0.2);
        border-top: 2px solid var(--color-primary);
    }
    
    .token-breakdown-table tr.total-row td {
        padding: 12px;
        font-weight: 700;
        font-size: 14px;
    }
    
    .token-breakdown-table tr.total-row td.col-available {
        color: var(--color-primary);
    }
    
    .token-status-badge {
        padding: 3px 8px;
        border-radius: 3px;
        font-size: 11px;
        font-weight: 600;
    }

    .plan-badge {
        background: rgba(255,255,255,0.2);
        padding: 4px 12px;
        border-radius: 0;
        font-size: 12px;
        font-weight: 600;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }

    .plan-badge.free {
        background: rgba(108, 117, 125, 0.8);
    }

    .plan-badge.pro {
        background: #9FA88F;
        color: #1a1a1a;
    }

    .plan-badge.single-tier {
        background: rgba(255, 193, 7, 0.8);
    }

    .usage-indicator {
        background: rgba(255,255,255,0.2);
        padding: 4px 8px;
        border-radius: 0;
        font-size: 12px;
        font-weight: 600;
    }

    .usage-progress-container {
        margin-bottom: 16px;
    }

    .usage-progress-bar {
        background: #e9ecef;
        border-radius: 0;
        height: 12px;
        overflow: hidden;
        margin-bottom: 8px;
    }

    .usage-progress-fill {
        background: linear-gradient(90deg, #28a745, #20c997);
        height: 100%;
        border-radius: 0;
        transition: width 0.3s ease;
    }

    .usage-progress-fill.warning {
        background: linear-gradient(90deg, var(--color-warning), #fd7e14);
    }

    .usage-progress-fill.danger {
        background: linear-gradient(90deg, var(--color-error), #e83e8c);
    }

    .usage-details {
        font-size: 14px;
        color: #6c757d;
        text-align: center;
    }

    .usage-breakdown {
        margin-top: 16px;
        padding-top: 16px;
        border-top: 1px solid #e9ecef;
    }

    .usage-feature {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 8px 0;
        border-bottom: 1px solid #f8f9fa;
    }
    
    /* Modal Styles */
    .modal {
        position: fixed;
        z-index: 10000;
        left: 0;
        top: 0;
        width: 100%;
        height: 100%;
        background-color: rgba(0,0,0,0.5);
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .modal-content {
        background-color: var(--color-gray-900);
        color: var(--color-white);
        border-radius: 0;
        box-shadow: 0 4px 20px rgba(0,0,0,0.3);
        animation: modalSlideIn 0.3s ease-out;
        max-height: 90vh;
        overflow: hidden;
        display: flex;
        flex-direction: column;
    }

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

    /* Transaction History Modal Styles */
    .transaction-history-modal .modal-content.transaction-history-content {
        max-width: 1200px;
        width: 95%;
        background: rgba(30, 30, 30, 0.98);
        border: 1px solid rgba(139, 111, 82, 0.3);
        box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5), 0 0 60px rgba(139, 111, 82, 0.1);
        backdrop-filter: blur(15px) saturate(1.2);
    }

    .transaction-history-header {
        background: rgba(40, 40, 40, 0.95) !important;
        color: #CCCCCC !important;
        padding: 20px;
        border-radius: 0;
        border-bottom: 1px solid rgba(139, 111, 82, 0.3);
    }

    .transaction-history-header h3 {
        margin: 0;
        display: flex;
        align-items: center;
        gap: 10px;
        color: #B8936F !important;
        font-weight: 600;
    }

    .transaction-history-header .close {
        cursor: pointer;
        font-size: 24px;
        font-weight: bold;
        color: #CCCCCC;
        transition: color 0.2s ease;
    }

    .transaction-history-header .close:hover {
        color: #B8936F;
    }

    .transaction-history-body {
        padding: 20px;
        max-height: 70vh;
        overflow-y: auto;
        background: rgba(25, 25, 25, 0.95);
    }

    .transaction-summary-card {
        margin-bottom: 20px;
        background: rgba(40, 40, 40, 0.8);
        border: 1px solid rgba(139, 111, 82, 0.3);
        padding: 15px;
    }

    .transaction-filters {
        margin-bottom: 20px;
        display: flex;
        gap: 15px;
        align-items: center;
        flex-wrap: wrap;
    }

    .transaction-filter-group {
        display: flex;
        align-items: center;
        gap: 8px;
    }

    .transaction-filter-group label {
        font-weight: 600;
        color: #CCCCCC;
    }

    .transaction-filter-group select {
        padding: 8px 12px;
        border-radius: 0;
        border: 1px solid rgba(139, 111, 82, 0.3);
        background: rgba(40, 40, 40, 0.9);
        color: #CCCCCC;
        font-size: 14px;
        cursor: pointer;
        transition: border-color 0.2s ease;
    }

    .transaction-filter-group select:focus {
        outline: none;
        border-color: #B8936F;
        box-shadow: 0 0 0 2px rgba(184, 147, 111, 0.2);
    }

    .transaction-filter-group select option {
        background: #2a2a2a;
        color: #CCCCCC;
    }

    /* Transaction History Styles */
    .transaction-row {
        display: grid;
        grid-template-columns: 180px 160px 1fr 140px;
        gap: 15px;
        align-items: center;
        background: rgba(40, 40, 40, 0.6);
        border: 1px solid rgba(139, 111, 82, 0.2);
        border-radius: 0;
        padding: 15px;
        margin-bottom: 10px;
        transition: all 0.2s ease;
    }

    .transaction-row:hover {
        background: rgba(50, 50, 50, 0.8);
        border-color: rgba(139, 111, 82, 0.4);
    }

    /* Stack transaction columns on mobile */
    @media (max-width: 768px) {
        .transaction-row {
            grid-template-columns: 1fr;
            gap: 8px;
        }
        
        .transaction-date {
            font-size: 11px;
        }
        
        .transaction-type {
            font-size: 14px;
        }
        
        .transaction-amount {
            text-align: left;
        }
    }

    .transaction-item {
        background: rgba(40, 40, 40, 0.6);
        border: 1px solid rgba(139, 111, 82, 0.2);
        border-radius: 0;
        padding: 15px;
        margin-bottom: 10px;
        display: flex;
        justify-content: space-between;
        align-items: center;
        transition: all 0.2s ease;
    }

    .transaction-item:hover {
        background: rgba(50, 50, 50, 0.8);
        border-color: rgba(139, 111, 82, 0.4);
    }

    .transaction-details {
        flex: 1;
    }

    .transaction-type {
        font-weight: 400;
        color: #999999;
        font-size: 12px;
        margin-bottom: 0;
        word-wrap: break-word;
        overflow-wrap: break-word;
    }

    .transaction-description {
        color: #CCCCCC;
        font-size: 12px;
        margin-bottom: 0;
        word-wrap: break-word;
        overflow-wrap: break-word;
    }

    .transaction-date {
        color: #999999;
        font-size: 12px;
        word-wrap: break-word;
        overflow-wrap: break-word;
    }

    .transaction-amount {
        font-weight: 600;
        font-size: 16px;
        text-align: right;
        min-width: 120px;
    }

    .transaction-amount.positive {
        color: #9FA88F;
    }

    .transaction-amount.negative {
        color: #8FA8B8;
    }
    
    .transaction-amount.addition {
        color: #9FA88F;
    }

    .transaction-amount.deduction {
        color: #8FA8B8;
    }

    .transaction-balance {
        font-size: 12px;
        color: #999999;
        text-align: right;
        margin-top: 2px;
    }

    .summary-stats {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
        gap: 15px;
        margin-bottom: 20px;
    }

    .summary-stat {
        text-align: center;
        padding: 16px;
        background: rgba(40, 40, 40, 0.8);
        border-radius: 0;
        border: 1px solid rgba(139, 111, 82, 0.3);
    }

    .summary-stat-value {
        font-size: 24px;
        font-weight: 600;
        margin-bottom: 5px;
    }

    .summary-stat-value.positive {
        color: #9FA88F;
    }

    .summary-stat-value.negative {
        color: var(--color-error);
    }

    .summary-stat-value.neutral {
        color: #8FA8B8;
    }

    .summary-stat-label {
        font-size: 14px;
        color: #CCCCCC;
        font-weight: 500;
    }

    /* Transaction note styling */
    .transaction-summary-card .transaction-note {
        background: rgba(139, 111, 82, 0.1);
        border-left: 3px solid #B8936F;
        padding: 10px 15px;
        margin-top: 15px;
        color: #CCCCCC;
        font-size: 12px;
    }

    .pagination-controls {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 10px;
        margin-top: 20px;
    }

    .pagination-btn {
        background: rgba(255, 255, 255, 0.15);
        border: 1px solid rgba(255, 255, 255, 0.3);
        color: var(--color-white);
        padding: 8px 12px;
        border-radius: 0px;
        cursor: pointer;
        transition: all 0.2s ease;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
        backdrop-filter: blur(10px);
    }

    .pagination-btn:hover:not(:disabled) {
        background: rgba(255, 255, 255, 0.25);
        border-color: rgba(255, 255, 255, 0.5);
    }

    .pagination-btn:disabled {
        opacity: 0.5;
        cursor: not-allowed;
    }

    .pagination-btn.active {
        background: rgba(255, 255, 255, 0.35);
        color: var(--color-white);
        border-color: rgba(255, 255, 255, 0.6);
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
    }

    .usage-feature:last-child {
        border-bottom: none;
    }

    .usage-feature-name {
        font-size: 14px;
        color: #495057;
    }

    .usage-feature-tokens {
        font-size: 14px;
        font-weight: 600;
        color: #6c757d;
    }

    .plan-options {
        display: block;
        margin-bottom: 20px;
    }

    .plan-option {
        border: 2px solid rgba(184, 147, 111, 0.3);
        border-radius: 0;
        padding: 16px;
        text-align: center;
        transition: all 0.2s ease;
        background: rgba(255, 255, 255, 0.05);
    }
    
    .plan-option.single-plan {
        width: 100% !important;
        max-width: 100% !important;
    }

    .plan-option:hover {
        border-color: var(--color-primary);
        transform: translateY(-2px);
        box-shadow: 0 4px 12px rgba(184, 147, 111, 0.3);
    }

    .plan-option.current {
        border-color: var(--color-primary);
        background: rgba(184, 147, 111, 0.15);
    }

    .plan-name {
        font-size: 18px;
        font-weight: 600;
        color: var(--color-white);
        margin-bottom: 8px;
    }

    .plan-price {
        font-size: 16px;
        color: var(--color-primary);
        font-weight: 600;
        margin-bottom: 4px;
    }

    .plan-tokens {
        font-size: 14px;
        color: #CCCCCC;
        margin-bottom: 12px;
    }

    .upgrade-btn {
        background: rgba(184, 147, 111, 0.2);
        color: var(--color-primary);
        border: 1px solid var(--color-primary);
        padding: 8px 16px;
        border-radius: 0;
        font-size: 14px;
        font-weight: 600;
        cursor: pointer;
        transition: all 0.2s ease;
        width: 100%;
    }

    .upgrade-btn:hover {
        transform: translateY(-1px);
        box-shadow: 0 2px 8px rgba(184, 147, 111, 0.4);
        background: var(--color-primary);
        color: var(--color-white);
    }

    .upgrade-btn:disabled {
        background: rgba(108, 117, 125, 0.2);
        border-color: rgba(108, 117, 125, 0.5);
        color: var(--color-gray-300);
        cursor: not-allowed;
        transform: none;
        box-shadow: none;
    }

    .billing-actions {
        text-align: center;
        padding-top: 16px;
        border-top: 1px solid rgba(255, 255, 255, 0.1);
    }

    /* Token Pack Styles */
    .token-packs-section {
        margin-top: 20px;
        padding-top: 20px;
        border-top: 1px solid #e9ecef;
        grid-column: 1 / -1;
    }

    .token-pack-grid {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
        gap: 12px;
        margin: 15px 0;
    }

    .token-pack {
        background: rgba(184, 147, 111, 0.2);
        color: var(--color-white);
        border: 2px solid rgba(184, 147, 111, 0.4);
        border-radius: 0;
        padding: 12px;
        text-align: center;
        transition: all 0.3s ease;
        cursor: pointer;
    }

    .token-pack:hover {
        transform: translateY(-3px);
        box-shadow: 0 6px 20px rgba(184, 147, 111, 0.4);
        border-color: var(--color-primary);
        background: rgba(184, 147, 111, 0.3);
    }
    
    .token-pack.disabled {
        opacity: 0.5;
        cursor: not-allowed;
        background: rgba(108, 117, 125, 0.2) !important;
        border-color: rgba(108, 117, 125, 0.3) !important;
    }
    
    .token-pack.disabled:hover {
        transform: none !important;
        box-shadow: none !important;
    }
    
    .purchase-btn:disabled {
        background-color: #6c757d !important;
        border-color: #6c757d !important;
        cursor: not-allowed !important;
        opacity: 0.6;
    }
    
    .purchase-btn:disabled:hover {
        background-color: #6c757d !important;
        border-color: #6c757d !important;
        transform: none !important;
    }

    .quantity-selector {
        margin: 8px 0;
    }

    .quantity-selector label {
        display: block;
        font-size: 11px;
        margin-bottom: 4px;
        color: var(--color-white);
        opacity: 0.9;
    }

    .quantity-select {
        width: 100%;
        padding: 4px 8px;
        border: 1px solid rgba(255, 255, 255, 0.3);
        border-radius: 0;
        background: rgba(255, 255, 255, 0.1);
        color: white;
        font-size: 12px;
    }

    .quantity-select option {
        background: var(--color-gray-700);
        color: white;
    }

    .total-display {
        margin: 6px 0;
        padding: 4px;
        background: rgba(0, 0, 0, 0.2);
        border-radius: 0;
    }

    .total-display small {
        font-size: 10px;
        color: var(--color-white);
        opacity: 0.9;
    }

    .pack-tokens {
        font-size: 12px;
        font-weight: 600;
        margin-bottom: 4px;
        color: var(--color-white);
    }

    .pack-price {
        font-size: 16px;
        font-weight: 700;
        margin-bottom: 8px;
        color: var(--color-white);
    }

    .purchase-btn {
        background: rgba(184, 147, 111, 0.2);
        color: var(--color-primary);
        border: 1px solid var(--color-primary);
        border-radius: 0;
        padding: 6px 12px;
        font-size: 11px;
        font-weight: 600;
        cursor: pointer;
        transition: all 0.2s ease;
        width: 100%;
    }

    .purchase-btn:hover {
        background: var(--color-primary);
        color: var(--color-white);
        transform: translateY(-1px);
        box-shadow: 0 2px 8px rgba(184, 147, 111, 0.4);
    }

    .token-info {
        text-align: center;
        margin-top: 12px;
        padding: 0;
        background: none;
        border-radius: 0;
    }

    /* Magazine Preferences Styles */
    .magazine-preferences-form {
        background: rgba(255, 255, 255, 0.02);
        border-radius: 0;
        padding: 16px;
        border: 1px solid rgba(255, 255, 255, 0.05);
    }

    .preference-group {
        margin-bottom: 16px;
    }

    .preference-group label {
        display: block;
        font-weight: 600;
        margin-bottom: 6px;
        color: var(--color-white);
        font-size: 14px;
    }

    .preference-group select {
        width: 100%;
        padding: 8px 12px;
        border: 1px solid rgba(255, 255, 255, 0.2);
        border-radius: 0;
        background: rgba(255, 255, 255, 0.1);
        font-size: 14px;
        color: var(--color-white);
        cursor: pointer;
    }

    .preference-group select:focus {
        outline: none;
        border-color: var(--color-primary);
        box-shadow: 0 0 0 3px rgba(184, 147, 111, 0.2);
    }
    
    /* Style select dropdown options with dark background */
    .preference-group select option {
        background-color: var(--color-gray-800);
        color: var(--color-white);
        padding: 8px 12px;
    }

    .preference-status {
        background: rgba(255, 255, 255, 0.05);
        border: 1px solid rgba(255, 255, 255, 0.1);
        border-radius: 0;
        padding: 12px;
        margin-top: 16px;
        color: #CCCCCC;
    }

    .preference-status small {
        line-height: 1.4;
        color: #CCCCCC;
    }

    /* Location Preferences Styles */
    .location-preferences-form {
        background: rgba(255, 255, 255, 0.02);
        border-radius: 0;
        padding: 16px;
        border: 1px solid rgba(255, 255, 255, 0.05);
    }

    .location-preferences-form .preference-group input[type="text"],
    .location-preferences-form .preference-group input[type="email"] {
        width: 100%;
        padding: 8px 12px;
        border: 1px solid rgba(255, 255, 255, 0.2);
        border-radius: 0;
        background: rgba(255, 255, 255, 0.1);
        font-size: 14px;
        color: var(--color-white);
        box-sizing: border-box;
    }

    .location-preferences-form .preference-group input:focus {
        outline: none;
        border-color: var(--color-primary);
        box-shadow: 0 0 0 3px rgba(184, 147, 111, 0.2);
    }

    .location-info {
        background: rgba(255, 255, 255, 0.05);
        border-radius: 0;
        border-left: 3px solid var(--color-primary);
        padding: 10px;
        margin-top: 15px;
        color: #CCCCCC;
    }

    .detect-location-btn {
        background: rgba(184, 147, 111, 0.2) !important;
        color: var(--color-primary) !important;
        border: 1px solid var(--color-primary) !important;
        padding: 10px 20px;
        border-radius: 0 !important;
        font-size: 14px;
        font-weight: 600;
        cursor: pointer;
        transition: all 0.2s ease;
    }

    .detect-location-btn:hover {
        background: var(--color-primary) !important;
        color: var(--color-white) !important;
        transform: translateY(-1px);
        box-shadow: 0 2px 8px rgba(184, 147, 111, 0.4);
    }

    .billing-btn {
        background: rgba(184, 147, 111, 0.2);
        color: var(--color-primary);
        border: 1px solid var(--color-primary);
        padding: 10px 20px;
        border-radius: 0;
        font-size: 14px;
        font-weight: 600;
        cursor: pointer;
        transition: all 0.2s ease;
        text-decoration: none;
        display: inline-block;
    }

    .billing-btn:hover {
        background: var(--color-primary);
        color: var(--color-white);
        transform: translateY(-1px);
        box-shadow: 0 2px 8px rgba(184, 147, 111, 0.4);
    }

    .billing-btn.secondary {
        background: rgba(184, 147, 111, 0.2);
        color: var(--color-primary);
        border: 1px solid var(--color-primary);
    }

    .billing-btn.secondary:hover {
        background: var(--color-primary);
        color: var(--color-white);
    }

    .loading-spinner {
        text-align: center;
        color: #CCCCCC;
        font-size: 14px;
        padding: 20px;
    }
    
    .pipeline-step {
        color: #CCCCCC;
        font-size: 9px;
        text-align: center;
    }

    .subscription-details {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 16px;
        margin: 16px 0;
    }

    .detail-item {
        display: flex;
        flex-direction: column;
    }

    .detail-label {
        font-size: 12px;
        color: var(--color-gray-300);
        text-transform: uppercase;
        letter-spacing: 0.5px;
        margin-bottom: 4px;
    }

    .detail-value {
        font-size: 14px;
        color: var(--color-white);
        font-weight: 600;
    }
    
    .oauth-connect-btn {
        background: var(--color-primary);
        color: white;
        border: none;
        padding: 12px 24px;
        border-radius: 0;
        font-size: 14px;
        font-weight: 600;
        cursor: pointer;
        transition: background 0.2s ease;
    }
    
    .oauth-connect-btn:hover {
        background: var(--color-primary-hover);
    }
    
    .oauth-disconnect-btn {
        background: var(--color-error);
        color: white;
        border: none;
        padding: 8px 16px;
        border-radius: 0;
        font-size: 13px;
        font-weight: 500;
        cursor: pointer;
        transition: background 0.2s ease;
    }
    
    .oauth-disconnect-btn:hover {
        background: var(--color-error);
    }
        justify-content: space-between;
        align-items: center;
    }
    
    .user-info-compact {
        display: flex;
        align-items: center;
        gap: 15px;
        flex-wrap: nowrap;
        height: 50px;
    }
    
    .user-details-inline {
        display: flex;
        align-items: baseline;
        gap: 10px;
        flex-wrap: nowrap;
        height: 50px;
        line-height: 50px;
    }
    
    

    
    .user-details-inline h2 {
        margin: 0;
        font-size: 1.3em;
        font-weight: 600;
        color: #212529;
        line-height: 50px;
        white-space: nowrap;
        flex-shrink: 0;
    }
    
    .user-details-inline .user-email {
        color: #6c757d;
        font-size: 0.85em;
        margin: 0;
        line-height: 50px;
        white-space: nowrap;
        flex-shrink: 0;
    }
    
    .user-details-inline .member-since {
        color: #6c757d;
        font-size: 0.8em;
        margin: 0;
        line-height: 1.2;
    }

    
    .user-btn.logout {
        background: var(--color-error);
        color: white;
    }
    
    .user-btn.logout:hover {
        background: var(--color-error);
    }
    
    .user-btn.help {
        background: #212529;
        color: white;
    }
    
    .user-btn.help:hover {
        background: #0a0c0d;
    }
    
    .user-profile-content {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 24px;
        margin-top: 24px;
    }
    
    .profile-section {
        background: rgba(255, 255, 255, 0.02);
        border-radius: 0;
        padding: 24px;
        box-shadow: 0 4px 8px rgba(0,0,0,0.3);
        border: 1px solid rgba(255, 255, 255, 0.05);
    }
    
    .profile-section h3 {
        margin: 0 0 20px 0;
        font-size: 1.4em;
        font-weight: 600;
        color: var(--color-white);
    }
    
    .profile-section p {
        color: #CCCCCC;
        margin-bottom: 20px;
        line-height: 1.5;
    }
    
    .discogs-status {
        background: #d4edda;
        border: 1px solid #c3e6cb;
        border-radius: 0;
        padding: 16px;
        margin-bottom: 20px;
        display: flex;
        align-items: center;
        gap: 10px;
    }
    
    .discogs-status .check-icon {
        color: #28a745;
        font-size: 1.2em;
    }
    
    .discogs-username {
        color: #007bff;
        font-weight: 500;
        text-decoration: none;
    }
    
    .discogs-username:hover {
        text-decoration: underline;
    }
    
    .sync-section {
        margin-bottom: 25px;
    }
    
    .sync-section h4 {
        margin: 0 0 10px 0;
        font-size: 1.1em;
        font-weight: 600;
        color: #212529;
    }
    
    .sync-status {
        color: #6c757d;
        margin-bottom: 15px;
        font-size: 0.9em;
    }
    
    .sync-buttons {
        display: flex;
        flex-direction: column;
        gap: 10px;
        margin-bottom: 20px;
    }
    
    .sync-btn {
        padding: 12px 24px;
        border: none;
        border-radius: 0;
        cursor: pointer;
        font-weight: 500;
        transition: all 0.2s;
        width: 100%;
    }
    
    .sync-btn.primary {
        background: #28a745;
        color: white;
    }
    
    .sync-btn.primary:hover {
        background: #218838;
    }
    
    .sync-btn.wantlist {
        background: #6f42c1;
        color: white;
    }
    
    .sync-btn.wantlist:hover {
        background: #5a36a3;
    }
    
    .sync-btn.release-details {
        background: var(--color-primary);
        color: white;
    }
    
    .sync-btn.release-details:hover {
        background: var(--color-primary-hover);
    }
    
    .sync-btn.custom-fields {
        background: #17a2b8;
        color: white;
    }
    
    .sync-btn.custom-fields:hover {
        background: #138496;
    }
    
    .advanced-settings h4 {
        margin: 0 0 15px 0;
        font-size: 1.1em;
        font-weight: 600;
        color: #212529;
    }
    
    .settings-options {
        display: flex;
        justify-content: space-between;
        gap: 15px;
    }
    
    .settings-btn {
        padding: 10px 20px;
        background: #6c757d;
        color: white;
        border: none;
        border-radius: 0;
        cursor: pointer;
        font-size: 0.9em;
        transition: background 0.2s;
        flex: 1;
    }
    
    .settings-btn:hover {
        background: #5a6268;
    }
    
    .coming-soon-card {
        text-align: center;
        padding: 40px 20px;
        color: #6c757d;
    }
    
    .coming-soon-icon {
        font-size: 3em;
        margin-bottom: 15px;
        opacity: 0.5;
    }
    
    .coming-soon-title {
        font-size: 1.2em;
        font-weight: 600;
        margin-bottom: 10px;
        color: #495057;
    }
    
    .coming-soon-text {
        font-size: 0.9em;
        line-height: 1.4;
    }
    
    /* Collection Search Modal Styles - matches Search Discogs modal */
    .collection-search-modal {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: rgba(0, 0, 0, 0.7);
        display: none;
        justify-content: center;
        align-items: center;
        z-index: 1000;
    }

    .collection-search-content {
        background: var(--color-gray-900);
        border-radius: 0;
        width: 90vw;
        max-width: 650px;
        max-height: 85vh;
        display: flex;
        flex-direction: column;
        box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
        position: relative;
        margin: auto;
    }

    .collection-search-header {
        padding: 20px 24px;
        border-bottom: 1px solid #8F6F52;
        display: flex;
        justify-content: space-between;
        align-items: center;
        flex-shrink: 0;
    }

    .collection-search-header h3 {
        margin: 0;
        color: #B8936F;
        font-size: 1.25rem;
        font-weight: 600;
    }

    .collection-search-modal .close-modal-btn {
        background: none;
        border: none;
        font-size: 1.5rem;
        cursor: pointer;
        color: #B8936F;
        padding: 4px 8px;
        line-height: 1;
        border-radius: 0;
        transition: all 0.2s ease;
    }

    .collection-search-modal .close-modal-btn:hover {
        background: rgba(143, 111, 82, 0.2);
        color: #B8936F;
    }

    /* Collection modal body - matches search-modal-body */
    .collection-search-body {
        flex: 1;
        padding: 20px 24px;
        overflow: hidden;
        display: flex;
        flex-direction: column;
        min-height: 0;
    }

    /* Collection modal input wrapper for voice button positioning */
    .collection-search-modal .voice-input-wrapper {
        position: relative;
        flex-shrink: 0;
    }

    .collection-search-modal .search-input {
        width: 100%;
        padding: 12px 40px 12px 16px;
        border: 2px solid rgba(255, 255, 255, 0.2);
        border-radius: 0;
        font-size: 16px;
        background: rgba(255, 255, 255, 0.1);
        color: var(--color-white);
        transition: all 0.2s ease;
        box-sizing: border-box;
    }

    .collection-search-modal .search-input:focus {
        outline: none;
        border-color: #B8936F;
        box-shadow: 0 0 0 2px rgba(184, 147, 111, 0.3);
    }

    .collection-search-modal .voice-input-btn {
        position: absolute;
        right: 10px;
        top: 0;
        bottom: 0;
        margin: auto;
        height: 20px;
        color: rgba(255, 255, 255, 0.5);
    }

    .collection-search-results {
        flex: 1;
        overflow-y: auto;
        max-height: 400px;
        margin-top: 0;
        padding-right: 8px;
        border-bottom: 1px solid #8F6F52;
        padding-bottom: 12px;
    }

    /* Subtle scrollbar for collection results - matches discogs exactly */
    .collection-search-results::-webkit-scrollbar {
        width: 6px;
    }
    
    .collection-search-results::-webkit-scrollbar-track {
        background: rgba(255, 255, 255, 0.05);
        border-radius: 3px;
    }
    
    .collection-search-results::-webkit-scrollbar-thumb {
        background: rgba(255, 255, 255, 0.2);
        border-radius: 3px;
    }
    
    .collection-search-results::-webkit-scrollbar-thumb:hover {
        background: rgba(255, 255, 255, 0.3);
    }

    .collection-item {
        display: flex;
        align-items: center;
        padding: 12px;
        border: 1px solid rgba(255, 255, 255, 0.2);
        border-radius: 0px;
        margin-bottom: 10px;
        cursor: pointer;
        transition: all 0.2s ease;
        background: rgba(0, 0, 0, 0.3);
    }

    .collection-item:hover {
        background: rgba(184, 147, 111, 0.2);
        border-color: var(--color-primary);
        transform: translateY(-1px);
    }

    .collection-item img {
        width: 60px;
        height: 60px;
        object-fit: cover;
        border-radius: 0px;
        margin-right: 15px;
        border: 1px solid rgba(255, 255, 255, 0.2);
    }

    .collection-item-info {
        flex: 1;
    }

    .collection-item .album-title {
        font-weight: 600;
        color: var(--color-white);
        margin-bottom: 4px;
        line-height: 1.3;
    }

    .collection-item .artist-name {
        color: rgba(255, 255, 255, 0.7);
        font-size: 0.9em;
        margin-bottom: 2px;
    }

    .collection-item .album-year {
        color: rgba(255, 255, 255, 0.5);
        font-size: 0.8em;
    }

    .no-results, .error {
        text-align: center;
        padding: 40px 20px;
        color: #6c757d;
        font-style: italic;
    }

    .error {
        color: var(--color-error);
    }

    /* AI Summary Styles */
    .ai-summary-container {
        padding: 20px;
        background: linear-gradient(135deg, #f8f9fa 0%, var(--color-white) 100%);
        border-radius: 12px;
        border: 1px solid #e9ecef;
        box-shadow: 0 2px 8px rgba(0,0,0,0.05);
    }

    .ai-summary-header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-bottom: 16px;
        padding-bottom: 12px;
        border-bottom: 1px solid #e9ecef;
    }

    .ai-badge {
        background: linear-gradient(135deg, #007cba 0%, #0056b3 100%);
        color: white;
        padding: 6px 12px;
        border-radius: 20px;
        font-size: 0.85em;
        font-weight: 600;
        letter-spacing: 0.5px;
        box-shadow: 0 2px 4px rgba(0,124,186,0.3);
    }

    .ai-timestamp {
        color: #6c757d;
        font-size: 0.8em;
        font-style: italic;
    }

    .ai-summary-content {
        line-height: 1.6;
        color: #495057;
        font-size: 0.95em;
    }

    .ai-summary-content p {
        margin-bottom: 12px;
    }

    .ai-summary-content p:last-child {
        margin-bottom: 0;
    }

    .ai-summary-content strong {
        color: #212529;
        font-weight: 600;
    }

    .ai-summary-content em {
        color: rgba(85, 85, 85, 0.9);
        font-style: italic;
    }

    .ai-summary-content li {
        margin-bottom: 8px;
        list-style: none;
        position: relative;
        padding-left: 20px;
    }

    .ai-summary-content li:before {
        content: "•";
        color: rgba(85, 85, 85, 0.9);
        font-weight: bold;
        position: absolute;
        left: 0;
    }

    .ai-summary-placeholder {
        text-align: center;
        padding: 40px 20px;
        color: #6c757d;
        background: #f8f9fa;
        border-radius: 0;
        border: 2px dashed #dee2e6;
    }

    .ai-placeholder-icon {
        font-size: 48px;
        margin-bottom: 16px;
        opacity: 0.7;
    }

    .ai-placeholder-title {
        font-weight: 600;
        font-size: 1.1em;
        margin-bottom: 8px;
        color: #495057;
    }

    .ai-placeholder-text {
        margin-bottom: 8px;
        font-size: 0.95em;
    }

    .ai-placeholder-hint {
        font-size: 0.8em;
        color: #adb5bd;
        font-style: italic;
    }

    /* Mobile responsive */
    @media (max-width: 768px) {
        .user-profile-page {
            padding: 15px;
        }
        
        .user-profile-header {
            flex-direction: column;
            gap: 20px;
            text-align: center;
        }

        .collection-search-content {
            width: 95%;
            max-height: 90vh;
        }

        .collection-item {
            padding: 10px;
        }

        .collection-item img {
            width: 50px;
            height: 50px;
            margin-right: 12px;
        }
        
        .user-profile-content {
            grid-template-columns: 1fr;
            max-width: 100%;
            overflow: hidden;
        }
        
        .profile-section {
            max-width: 100%;
            width: 100%;
            box-sizing: border-box;
            overflow: hidden;
            padding: 16px;
        }
        
        .billing-card {
            max-width: 100%;
            width: 100%;
            box-sizing: border-box;
            overflow: hidden;
        }
        
        .billing-card-header {
            padding: 12px 16px;
            flex-wrap: wrap;
            gap: 8px;
        }
        
        .billing-card-header h4 {
            font-size: 14px;
        }
        
        .billing-card-header small {
            font-size: 11px;
            display: block;
            width: 100%;
        }
        
        .billing-card-content {
            padding: 16px;
        }
        
        /* Token Balance Breakdown Table - Mobile */
        .token-table-wrapper {
            overflow-x: auto;
            -webkit-overflow-scrolling: touch;
            margin: 0 -16px;
            padding: 0 16px;
        }
        
        .token-breakdown-table {
            font-size: 11px !important;
        }
        
        .token-breakdown-table th,
        .token-breakdown-table td {
            padding: 6px 4px !important;
        }
        
        .token-breakdown-table .col-status {
            display: none;
        }
        
        .token-breakdown-table .col-number {
            font-size: 10px;
        }
        
        .sync-buttons {
            flex-direction: column;
        }
        
        .settings-options {
            flex-direction: column;
        }
        
        .viz-layout {
            flex-direction: column;
            height: auto;
        }
        
        .viz-sidebar {
            width: 100%;
            order: 2;
        }
        
        .viz-main-content {
            order: 1;
        }
        
        .viz-cards-row {
            grid-template-columns: 1fr;
        }
    }
    
    @media (max-width: 1024px) {
        .viz-cards-row {
            grid-template-columns: repeat(2, 1fr);
        }
    }
    
    .viz-card-title {
        font-size: 1.5em;
        font-weight: 600;
        color: #fff;
        margin: 0;
    }
    
    .viz-card-expand {
        background: none;
        border: none;
        font-size: 1.2em;
        color: var(--color-primary);
        cursor: pointer;
        padding: 5px;
        border-radius: 0;
        transition: background 0.2s ease;
    }

    /* Modal enlarged stats display */
    .viz-modal-stats-simple {
        padding: 40px;
        text-align: center;
        min-height: 360px;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    
    .viz-stats-display-large {
        text-align: center;
    }
    
    .viz-stats-number-large {
        font-size: 4em;
        font-weight: 700;
        color: var(--color-primary);
        margin-bottom: 10px;
        text-shadow: 2px 2px 4px rgba(0,0,0,0.1);
    }
    
    .viz-stats-label-large {
        font-size: 1.8em;
        font-weight: 600;
        color: #212529;
        margin-bottom: 15px;
        text-transform: uppercase;
        letter-spacing: 1px;
    }
    
    .viz-stats-sublabel-large {
        font-size: 1.2em;
        color: #6c757d;
        font-weight: 400;
    }
    
    .viz-card-expand:hover {
        background: #f8f9fa;
    }
    
    /* Modal styles */
    .viz-modal {
        display: none;
        position: fixed;
        z-index: 1000;
        left: 0;
        top: 0;
        width: 100%;
        height: 100%;
        background-color: rgba(0,0,0,0.8);
        justify-content: center;
        align-items: center;
        padding: 20px;
        box-sizing: border-box;
    }
    
    .viz-modal-content {
        background: rgba(30, 30, 30, 0.95);
        backdrop-filter: blur(10px);
        border-radius: 0;
        max-width: 90vw;
        max-height: 90vh;
        width: 1000px;
        display: flex;
        flex-direction: column;
        overflow: hidden;
        box-shadow: 0 20px 60px rgba(0,0,0,0.5);
        border: 1px solid rgba(255, 255, 255, 0.15);
    }
    
    .viz-modal-header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 20px 25px;
        border-bottom: 2px solid #8F6F52;
        background: rgba(30, 30, 30, 0.95);
        border-radius: 0px;
        position: relative;
        box-shadow: inset 0 -2px 8px rgba(143, 111, 82, 0.3);
    }
    
    .viz-modal-header h2 {
        margin: 0;
        font-size: 1.4em;
        font-weight: 600;
        color: #B8936F;
    }
    
    .viz-modal-close {
        background: none;
        border: none;
        font-size: 2em;
        color: var(--color-white);
        cursor: pointer;
        padding: 0;
        width: 40px;
        height: 40px;
        display: flex;
        align-items: center;
        justify-content: center;
        border-radius: 0;
        transition: all 0.2s ease;
    }
    
    .viz-modal-close:hover {
        background: rgba(255, 255, 255, 0.1);
        color: var(--color-white);
    }
    
    .viz-modal-body {
        padding: 25px;
        flex: 1;
        overflow-y: auto;
        min-height: 360px;
        color: var(--color-white) !important;
        text-shadow: none !important;
        background: rgba(30, 30, 30, 0.95);
    }
    
    /* Force override for all text in viz modals */
    .viz-modal-body *:not(.word-cloud-item) {
        color: var(--color-white) !important;
        text-shadow: none !important;
    }
    
    /* Override for stat numbers in modals - sage green */
    .viz-modal-body .viz-stats-number-large {
        color: #9FA88F !important;
    }
    
    .viz-modal-body img {
        transition: transform 0.3s ease;
        max-width: 100%;
        height: auto;
    }
    
    /* Close modal when clicking outside */
    .viz-modal {
        cursor: pointer;
    }
    
    .viz-modal-content {
        cursor: default;
    }
    
    /* ==========================================================================
       MOBILE VIZ MODAL STYLES - Matches Discogs search modal pattern
       ========================================================================== */
    @media (max-width: 768px) {
        .viz-modal {
            padding: 10px;
            align-items: flex-start;
            padding-top: 70px; /* Below fixed header */
        }
        
        .viz-modal-content {
            width: var(--modal-mobile-width);
            max-width: 100%;
            max-height: var(--modal-mobile-max-height);
            margin: 0 auto;
        }
        
        .viz-modal-header {
            padding: var(--modal-mobile-header-padding);
            flex-shrink: 0;
        }
        
        .viz-modal-header h2 {
            font-size: clamp(1rem, 4vw, 1.3rem);
            line-height: 1.3;
            word-wrap: break-word;
        }
        
        .viz-modal-close {
            width: 36px;
            height: 36px;
            font-size: 1.5em;
            flex-shrink: 0;
        }
        
        .viz-modal-body {
            padding: var(--modal-mobile-padding);
            min-height: auto;
            max-height: calc(var(--modal-mobile-max-height) - 80px);
            overflow-y: auto;
            -webkit-overflow-scrolling: touch;
        }
        
        /* Stats modal typography scaling */
        .viz-modal-stats-simple {
            padding: var(--modal-mobile-padding);
            min-height: 200px;
        }
        
        .viz-stats-display-large {
            padding: 10px;
        }
        
        .viz-stats-number-large {
            font-size: clamp(2rem, 10vw, 3.5rem) !important;
            margin-bottom: 8px;
        }
        
        .viz-stats-label-large {
            font-size: clamp(1rem, 4vw, 1.5rem) !important;
            margin-bottom: 10px;
        }
        
        .viz-stats-sublabel-large {
            font-size: clamp(0.8rem, 3vw, 1rem) !important;
        }
        
        /* Stats grid in expanded modals - single column on mobile */
        .viz-modal-stats-expanded {
            padding: var(--modal-mobile-padding);
        }
        
        .viz-stats-grid {
            grid-template-columns: 1fr !important;
            gap: var(--modal-mobile-gap);
        }
        
        .viz-stat-item {
            padding: 16px;
        }
        
        .viz-stat-big {
            font-size: clamp(1.2rem, 5vw, 1.6rem);
        }
        
        /* Chart container heights for mobile */
        .viz-modal-body .chart-container,
        .viz-modal-body .tree-visualization,
        .viz-modal-body .force-graph-container,
        .viz-modal-body canvas {
            max-height: clamp(280px, 50vh, 400px);
            height: auto !important;
            min-height: 200px;
        }
        
        /* Ensure SVG charts fit */
        .viz-modal-body svg {
            max-width: 100%;
            height: auto;
        }
    }
    
    /* Tree visualization styles */
    .tree-container {
        padding: 15px;
        height: 100%;
        display: flex;
        flex-direction: column;
    }
    
    .tree-header {
        margin-bottom: 10px;
        text-align: center;
    }
    
    .tree-header h4 {
        margin: 0;
        font-size: 0.9em;
        color: #495057;
        font-weight: 500;
    }
    
    .tree-visualization {
        flex: 1;
        min-height: 200px;
        border-radius: 6px;
        overflow: hidden;
    }
    
    .viz-card-content {
        min-height: 360px;
        position: relative;
    }
    
    .force-graph-container {
        width: 100%;
        height: 300px;
        border: 1px solid #e9ecef;
        border-radius: 0;
        background: #fafafa;
        position: relative;
        overflow: hidden;
    }
    
    .force-graph-controls {
        position: absolute;
        top: 10px;
        right: 10px;
        display: flex;
        gap: 5px;
        z-index: 10;
    }
    
    .force-graph-btn {
        background: rgba(255,255,255,0.9);
        border: 1px solid #ddd;
        border-radius: 0;
        padding: 6px 10px;
        cursor: pointer;
        font-size: 0.85em;
        transition: background 0.2s ease;
    }
    
    .force-graph-btn:hover {
        background: white;
    }
    
    .viz-loading {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        height: 300px;
        color: #6c757d;
    }
    
    .viz-loading-spinner {
        width: 40px;
        height: 40px;
        border: 3px solid #f3f3f3;
        border-top: 3px solid var(--color-primary);
        border-radius: 0;
        animation: spin 1s linear infinite;
        margin-bottom: 15px;
    }
    
    @keyframes spin {
        0% { transform: rotate(0deg); }
        100% { transform: rotate(360deg); }
    }
    
    /* Selected item styling */
    .viz-selected-item {
        margin-top: 8px;
        color: var(--color-primary);
        font-weight: 600;
        font-size: 1.1em;
        background: transparent;
    }
    
    .viz-clear-btn {
        background: var(--color-error);
        color: white;
        border: none;
        border-radius: 0;
        width: 24px;
        height: 24px;
        display: flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
        font-size: 16px;
        font-weight: bold;
        transition: all 0.2s ease;
        line-height: 1;
    }
    
    .viz-clear-btn:hover {
        background: var(--color-error);
        transform: scale(1.1);
    }
    
    /* Search clear button styling */
    .search-clear-btn {
        position: absolute;
        right: 8px;
        top: 50%;
        transform: translateY(-50%);
        background: #6c757d;
        color: white;
        border: none;
        border-radius: 0;
        width: 20px;
        height: 20px;
        display: flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
        font-size: 14px;
        font-weight: bold;
        transition: all 0.2s ease;
        line-height: 1;
        z-index: 10;
    }
    
    .search-clear-btn:hover {
        background: #495057;
        transform: translateY(-50%) scale(1.1);
    }
    
    /* Mobile visualization styles */
    @media (max-width: 768px) {
        .viz-container { padding: 15px; }
        .viz-cards-container { 
            grid-template-columns: 1fr;
            gap: 20px;
        }
        .viz-context {
            flex-direction: column;
            align-items: flex-start;
            gap: 10px;
        }
        .force-graph-container { height: 250px; }
    }

    /* Dashboard Styles */
    .dashboard-page {
        padding: 0;
        margin: 0;
        overflow: hidden;
        position: relative;
        height: 100%;
        width: 100%;
        max-width: 100vw;
        box-sizing: border-box;
    }
    
    .dashboard-page::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: rgba(0, 0, 0, 0.3);
        z-index: -1;
    }
    
    /* Magazine Page Styles */
    .magazine-page {
        background: var(--color-gray-900);
        padding: 16px;
        overflow-y: auto;
        color: var(--color-white);
    }
    
    .magazine-container {
        width: 100%;
        max-width: 1200px;
        margin: 0 auto;
        padding: 0;
        display: flex;
        flex-direction: column;
        gap: 24px;
    }
    
    
    #pulseIframe {
        display: block;
        margin: 0;
        padding: 0;
    }
    
    .magazine-loading {
        text-align: center;
        padding: 60px 20px;
        color: #CCCCCC;
        font-size: 18px;
    }
    
    /* Magazine Cover Banner */
    .magazine-cover-banner {
        position: relative;
        background: linear-gradient(135deg, #8c3c00 0%, #9a4a10 25%, #b2813a 75%, #c9a05a 100%);
        border-radius: 0;
        overflow: hidden;
        margin-bottom: 2px;
        min-height: 200px;
        box-shadow: 0 8px 32px rgba(0,0,0,0.3);
    }
    
    .cover-background {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        overflow: hidden;
    }
    
    .vinyl-pattern {
        position: absolute;
        top: -50px;
        right: -50px;
        width: 150px;
        height: 150px;
        border: 3px solid rgba(255,255,255,0.1);
        border-radius: 0;
        opacity: 0.3;
    }
    
    .vinyl-pattern::before {
        content: '';
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 20px;
        height: 20px;
        background: rgba(255,255,255,0.2);
        border-radius: 0;
    }
    
    .sound-waves {
        position: absolute;
        bottom: -20px;
        left: -30px;
        width: 120px;
        height: 80px;
        background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 40'%3E%3Cpath d='M0,20 Q25,0 50,20 T100,20' stroke='rgba(255,255,255,0.1)' stroke-width='2' fill='none'/%3E%3Cpath d='M0,25 Q25,5 50,25 T100,25' stroke='rgba(255,255,255,0.08)' stroke-width='2' fill='none'/%3E%3Cpath d='M0,15 Q25,-5 50,15 T100,15' stroke='rgba(255,255,255,0.08)' stroke-width='2' fill='none'/%3E%3C/svg%3E");
        opacity: 0.4;
    }
    
    .cover-content {
        position: relative;
        z-index: 2;
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 32px;
        height: 100%;
        min-height: 200px;
    }
    
    .magazine-logo {
        flex: 1;
    }
    
    .logo-text {
        margin: 0;
        font-size: 48px;
        font-weight: 900;
        letter-spacing: -2px;
        line-height: 1;
        margin-bottom: 8px;
    }
    
    .vinyl-text {
        color: var(--color-white) !important;
        text-shadow: 2px 2px 8px rgba(0,0,0,0.3) !important;
        -webkit-font-smoothing: antialiased !important;
        -moz-osx-font-smoothing: grayscale !important;
        text-rendering: optimizeLegibility !important;
        filter: none !important;
        backdrop-filter: none !important;
        transform: none !important;
        -webkit-transform: none !important;
        background: none !important;
        -webkit-background-clip: initial !important;
        -webkit-text-fill-color: initial !important;
        background-clip: initial !important;
    }
    
    .verse-text {
        color: ##8F6F52 !important;
        text-shadow: 2px 2px 8px rgba(0,0,0,0.3) !important;
        -webkit-font-smoothing: antialiased !important;
        -moz-osx-font-smoothing: grayscale !important;
        text-rendering: optimizeLegibility !important;
        filter: none !important;
        backdrop-filter: none !important;
        transform: none !important;
        -webkit-transform: none !important;
        background: none !important;
        -webkit-background-clip: initial !important;
        -webkit-text-fill-color: initial !important;
        background-clip: initial !important;
    }
    
    .ai-badge {
        display: inline-block;
        background: rgba(255,255,255,0.9);
        color: #2d4a3d;
        font-size: 20px;
        font-weight: 700;
        padding: 4px 12px;
        border-radius: 0;
        margin-left: 12px;
        vertical-align: top;
        text-shadow: none;
        box-shadow: 0 2px 8px rgba(0,0,0,0.2);
    }
    
    .tagline {
        margin: 0;
        color: rgba(255,255,255,0.9);
        font-size: 16px;
        font-weight: 500;
        text-shadow: 1px 1px 4px rgba(0,0,0,0.3);
        letter-spacing: 0.5px;
    }
    
    /* Magazine Quick Access Card (Dashboard) */
    .magazine-quick-card {
        position: relative;
        background: linear-gradient(135deg, #2d4a3d 0%, #3d5c4a 25%, var(--color-primary) 75%, #d4af7a 100%);
        border-radius: 0;
        overflow: hidden;
        margin-bottom: 20px;
        min-height: 120px;
        box-shadow: 0 4px 16px rgba(0,0,0,0.2);
        cursor: pointer;
        transition: all 0.3s ease;
    }
    
    .magazine-quick-card:hover {
        transform: translateY(-2px);
        box-shadow: 0 6px 24px rgba(0,0,0,0.15);
    }
    
    .magazine-quick-background {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        overflow: hidden;
    }
    
    .magazine-quick-content {
        position: relative;
        z-index: 2;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        padding: 24px;
        height: 100%;
        min-height: 120px;
        text-align: center;
    }
    
    .magazine-quick-logo {
        margin-bottom: 8px;
    }
    
    .quick-logo-text {
        margin: 0;
        font-size: 28px;
        font-weight: 900;
        letter-spacing: -1px;
        line-height: 1;
    }
    
    .magazine-quick-text p {
        margin: 0;
        color: rgba(255,255,255,0.95);
        font-size: 14px;
        font-weight: 500;
        text-shadow: 1px 1px 4px rgba(0,0,0,0.3);
        letter-spacing: 0.3px;
    }
    
    /* VinylVerse Pulse Quick Access Card (Dashboard) */
    .pulse-quick-card {
        position: relative;
        background: rgba(255, 255, 255, 0.92);
        border-radius: 0;
        overflow: hidden;
        margin-bottom: 20px;
        min-height: 120px;
        box-shadow: 0 2px 8px rgba(0,0,0,0.1);
        cursor: pointer;
        transition: all 0.3s ease;
        backdrop-filter: blur(5px);
    }
    
    .pulse-quick-card:hover {
        transform: translateY(-2px);
        box-shadow: 0 6px 24px rgba(0,0,0,0.15);
        background: rgba(248, 249, 250, 0.95);
    }
    
    .pulse-quick-background {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        overflow: hidden;
    }
    
    .pulse-pattern {
        position: absolute;
        top: -30px;
        right: -30px;
        width: 100px;
        height: 100px;
        border: 2px solid rgba(255,255,255,0.15);
        border-radius: 0;
        opacity: 0.4;
        animation: pulse 2s ease-in-out infinite;
    }
    
    .pulse-pattern::before {
        content: '';
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 15px;
        height: 15px;
        background: rgba(255,255,255,0.25);
        border-radius: 0;
        animation: pulse 2s ease-in-out infinite 0.5s;
    }
    
    .musical-notes {
        position: absolute;
        bottom: -15px;
        left: -20px;
        width: 80px;
        height: 60px;
        background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 60'%3E%3Ctext x='10' y='20' font-family='serif' font-size='16' fill='rgba(255,255,255,0.15)'%3E♪%3C/text%3E%3Ctext x='35' y='35' font-family='serif' font-size='12' fill='rgba(255,255,255,0.1)'%3E♫%3C/text%3E%3Ctext x='55' y='15' font-family='serif' font-size='14' fill='rgba(255,255,255,0.12)'%3E♪%3C/text%3E%3C/svg%3E");
        opacity: 0.6;
    }
    
    .pulse-quick-content {
        position: relative;
        z-index: 2;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        padding: 24px;
        height: 100%;
        min-height: 120px;
        text-align: center;
    }
    
    .pulse-quick-logo {
        margin-bottom: 8px;
    }
    
    .pulse-text {
        color: var(--color-error) !important;
        text-shadow: 2px 2px 8px rgba(0,0,0,0.3) !important;
        font-weight: 700 !important;
        margin-left: 8px;
        -webkit-font-smoothing: antialiased !important;
        -moz-osx-font-smoothing: grayscale !important;
        text-rendering: optimizeLegibility !important;
        filter: none !important;
        backdrop-filter: none !important;
        transform: none !important;
        -webkit-transform: none !important;
        background: none !important;
        background-image: none !important;
        background-clip: border-box !important;
        -webkit-background-clip: border-box !important;
        -webkit-text-fill-color: var(--color-error) !important;
        -webkit-text-stroke: none !important;
    }
    
    .pulse-quick-text p {
        margin: 0;
        color: rgba(255,255,255,0.95);
        font-size: 14px;
        font-weight: 500;
        text-shadow: 1px 1px 3px rgba(0,0,0,0.3);
    }
    
    @keyframes pulse {
        0%, 100% {
            transform: scale(1);
            opacity: 0.4;
        }
        50% {
            transform: scale(1.05);
            opacity: 0.6;
        }
    }
    
    /* Now Playing Header */
    .now-playing-header {
        display: flex;
        justify-content: center;
        align-items: center;
        margin-bottom: 20px;
        padding: 15px;
        cursor: pointer;
        transition: opacity 0.2s ease;
        background: transparent;
        border: none;
        width: 100%;
    }
    
    .now-playing-header:hover {
        opacity: 0.8;
    }
    
    .now-playing-header h3 {
        font-size: 24px;
        font-weight: bold;
        color: #B8936F;
        margin: 0;
        text-shadow: 2px 2px 4px #000000;
        letter-spacing: 1px;
        text-transform: uppercase;
        pointer-events: none;
    }
    
    /* Now Playing header overlaid on album art */
    .now-playing-card .now-playing-header {
        position: absolute;
        top: -10px;
        left: 20px;
        margin: 0;
        padding: 0;
        justify-content: flex-start;
        z-index: 10;
        pointer-events: none;
    }
    
    .now-playing-card .now-playing-header h3 {
        font-size: 56px;
        text-align: left;
        color: #B8936F;
        text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.9), 0 0 20px rgba(0, 0, 0, 0.7);
        line-height: 1;
    }
    

        color: var(--color-white);
        text-shadow: 0 4px 8px rgba(0,0,0,0.5), 0 2px 4px rgba(0,0,0,0.3);
        letter-spacing: -1px;
        text-align: center;
        width: 100%;
        max-width: 350px;
        filter: drop-shadow(0 2px 4px rgba(0,0,0,0.4));
    }
    
    .cover-details {
        display: flex;
        flex-direction: column;
        align-items: flex-end;
        gap: 20px;
    }
    
    .current-issue {
        text-align: right;
        color: white;
    }
    
    .issue-label {
        display: block;
        font-size: 12px;
        font-weight: 600;
        text-transform: uppercase;
        letter-spacing: 1px;
        opacity: 0.8;
        margin-bottom: 4px;
    }
    
    .issue-date {
        display: block;
        font-size: 18px;
        font-weight: 700;
        margin-bottom: 4px;
        text-shadow: 1px 1px 4px rgba(0,0,0,0.3);
    }
    
    .issue-theme {
        display: block;
        font-size: 14px;
        background: rgba(255,255,255,0.15);
        padding: 6px 12px;
        border-radius: 20px;
        backdrop-filter: blur(10px);
        border: 1px solid rgba(255,255,255,0.2);
        font-weight: 500;
    }
    
    .action-buttons {
        display: flex;
        gap: 12px;
    }
    
    .cover-btn {
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 12px 20px;
        border: none;
        border-radius: 25px;
        cursor: pointer;
        font-size: 14px;
        font-weight: 600;
        transition: all 0.3s ease;
        backdrop-filter: blur(10px);
        text-shadow: none;
    }
    
    .cover-btn.primary {
        background: rgba(255,255,255,0.95);
        color: #667eea;
        box-shadow: 0 4px 15px rgba(0,0,0,0.2);
    }
    
    .cover-btn.primary:hover {
        background: rgba(255,255,255,1);
        transform: translateY(-2px);
        box-shadow: 0 6px 20px rgba(0,0,0,0.25);
    }
    
    .cover-btn.secondary {
        background: rgba(255,255,255,0.15);
        color: white;
        border: 1px solid rgba(255,255,255,0.3);
    }
    
    .cover-btn.secondary:hover {
        background: rgba(255,255,255,0.25);
        transform: translateY(-2px);
    }
    
    .btn-icon {
        font-size: 16px;
    }
    
    /* Main Layout */
    .magazine-main-layout {
        display: flex;
        gap: 24px;
        min-height: 500px;
    }
    
    .magazine-content {
        flex: 1;
        background: var(--color-gray-800);
        border-radius: 0;
        box-shadow: 0 2px 8px rgba(0,0,0,0.3);
        border: 1px solid #444;
        display: flex;
        flex-direction: column;
    }
    
    .article-container {
        flex: 1;
        padding: 32px;
        overflow-y: auto;
    }
    
    .magazine-article {
        color: var(--color-white);
        line-height: 1.6;
    }
    
    .article-content {
        color: var(--color-white);
        line-height: 1.6;
        font-size: 16px;
    }
    
    .article-content h1,
    .article-content h2,
    .article-content h3,
    .article-content h4 {
        color: var(--color-white);
        margin: 20px 0 12px 0;
        font-weight: 600;
    }
    
    .article-content p {
        color: #CCCCCC;
        margin-bottom: 16px;
    }
    
    /* Magazine article links - Standard link colors */
    .article-content a,
    .magazine-article a {
        color: #7FA0B8 !important;
        text-decoration: none;
        transition: color 0.2s ease;
    }
    
    .article-content a:hover,
    .magazine-article a:hover {
        color: #7290A6 !important;
        text-decoration: underline;
    }
    
    .article-meta {
        display: flex;
        gap: 20px;
        margin-bottom: 24px;
        padding-bottom: 16px;
        border-bottom: 1px solid #444;
    }
    
    .article-theme,
    .article-date {
        color: #AAAAAA;
        font-size: 14px;
    }
    
    .article-citations {
        margin-top: 32px;
        padding-top: 24px;
        border-top: 1px solid #444;
    }
    
    .article-citations h4 {
        color: var(--color-white);
        margin-bottom: 16px;
    }
    
    .article-citations p {
        color: #CCCCCC;
        margin-bottom: 8px;
    }
    
    .article-citations a {
        color: #7FA0B8;
        text-decoration: none;
    }
    
    .article-citations a:hover {
        text-decoration: underline;
        color: #7290A6;
    }
    
    /* Summary Section Styles - Now Playing Summaries */
    /* Card header (Album - Title) - Copper, same size as album title */
    .summary-card-header {
        color: var(--color-primary) !important;
        font-weight: 700 !important;
        font-size: 24px !important;
        margin: 0 0 8px 0 !important;
        line-height: 1.2 !important;
    }
    
    /* Section headings (Album Overview, Musical Analysis, etc.) - White, same size as artist name */
    .summary-section-heading {
        color: var(--color-white) !important;
        font-weight: 600 !important;
        margin: 16px 0 8px 0 !important;
        line-height: 1.3 !important;
        font-size: 16px !important;
    }
    
    /* Sources label - Copper */
    .sources-heading,
    .sources-label {
        color: #B8936F !important;
        font-size: 18px !important;
        font-weight: 700 !important;
        margin: 0 0 12px 0 !important;
    }
    
    /* Extended citations section - wrapper with separator line */
    .extended-citations-section,
    .summary-citations {
        margin-top: 20px !important;
        padding-top: 15px !important;
        border-top: 1px solid #8F6F52 !important;
    }
    
    /* Source links - Standard link colors */
    .source-link {
        color: #7FA0B8 !important;
        text-decoration: none !important;
        transition: color 0.2s ease !important;
        font-size: 18px !important;
    }
    
    .source-link:hover {
        color: #7290A6 !important;
        text-decoration: underline !important;
    }
    
    /* Content links - Standard link colors */
    .content-link {
        color: #7FA0B8 !important;
        text-decoration: none !important;
        transition: color 0.2s ease !important;
    }
    
    .content-link:hover {
        color: #7290A6 !important;
        text-decoration: underline !important;
    }
    
    /* Content paragraph/body text - Gray 200 */
    .content-paragraph {
        color: var(--color-gray-200) !important;
        margin: 8px 0;
        line-height: 1.6;
    }
    
    /* Citation links in chat messages - must override default link colors */
    .message-content sup a,
    .message-content a[href^="http"],
    .message.ai .message-content sup a,
    .message.ai .message-content a[href^="http"] {
        color: #0066cc !important;
        text-decoration: none !important;
        font-weight: 600;
    }
    
    .message-content sup a:hover,
    .message-content a[href^="http"]:hover,
    .message.ai .message-content sup a:hover,
    .message.ai .message-content a[href^="http"]:hover {
        text-decoration: underline !important;
        color: #0055bb !important;
    }
    
    .article-loading {
        text-align: center;
        padding: 60px 20px;
        color: #CCCCCC;
    }
    
    .loading-spinner {
        width: 24px;
        height: 24px;
        border: 3px solid #444;
        border-top: 3px solid var(--color-primary);
        border-radius: 0;
        animation: spin 1s linear infinite;
        margin: 16px auto;
    }
    
    @keyframes spin {
        0% { transform: rotate(0deg); }
        100% { transform: rotate(360deg); }
    }
    
    .reading-progress {
        height: 4px;
        background: var(--color-gray-900);
        border-top: 1px solid #444;
    }
    
    .progress-bar {
        height: 100%;
        background: var(--color-primary);
        width: 0%;
        transition: width 0.2s;
    }
    
    /* Chat Sidebar */
    .magazine-chat-sidebar {
        width: 320px;
        flex-shrink: 0;
    }
    
    .article-chat-card {
        background: var(--color-gray-800);
        border-radius: 0;
        padding: 24px;
        box-shadow: 0 2px 8px rgba(0,0,0,0.3);
        border: 1px solid #444;
        height: fit-content;
        position: sticky;
        top: 24px;
    }
    
    .chat-header h3 {
        margin: 0 0 16px 0;
        font-size: 18px;
        color: var(--color-white);
    }
    
    .article-reference {
        background: var(--color-gray-900);
        padding: 12px;
        border-radius: 0;
        margin-bottom: 16px;
        font-size: 14px;
        color: #CCCCCC;
        text-align: center;
    }
    
    .article-chat-input-container {
        margin-bottom: 12px;
    }
    
    .article-chat-input-container textarea {
        width: 100%;
        padding: 12px;
        border: 1px solid #444;
        border-radius: 0;
        font-size: 14px;
        resize: vertical;
        min-height: 80px;
        font-family: inherit;
        box-sizing: border-box;
        background: var(--color-gray-900);
        color: var(--color-white);
    }
    
    .chat-send-btn {
        width: 100%;
        padding: 12px;
        background: var(--color-primary);
        color: white;
        border: none;
        border-radius: 0;
        cursor: pointer;
        font-size: 14px;
        font-weight: 600;
        margin-top: 8px;
        transition: background 0.2s;
    }
    
    .chat-send-btn:hover {
        background: #d4af7a;
    }
    
    .chat-note {
        font-size: 12px;
        color: #AAAAAA;
        text-align: center;
        margin-top: 8px;
    }
    
    /* Simplified Article Chat */
    .article-chat-simple {
        background: var(--color-gray-800);
        border-radius: 0;
        padding: 20px;
        box-shadow: 0 2px 8px rgba(0,0,0,0.3);
        border: 1px solid #444;
        margin-top: 24px;
    }
    
    .article-chat-input-row {
        display: flex;
        gap: 12px;
        align-items: center;
    }
    
    .article-chat-input-simple {
        flex: 1;
        padding: 12px 16px;
        border: 1px solid #444;
        border-radius: 0;
        font-size: 14px;
        font-family: inherit;
        background: var(--color-gray-900);
        color: var(--color-white);
    }
    
    .article-chat-input-simple:focus {
        outline: none;
        border-color: var(--color-primary);
        box-shadow: 0 0 0 2px rgba(184, 147, 111, 0.25);
    }
    
    .article-chat-input-simple::placeholder {
        color: var(--color-gray-300) !important;
        opacity: 1 !important;
        font-size: 14px;
    }
    
    #articleChatInput::placeholder {
        color: var(--color-gray-300) !important;
        opacity: 1 !important;
    }
    
    #articleChatInput::-webkit-input-placeholder {
        color: var(--color-gray-300) !important;
        opacity: 1 !important;
    }
    
    #articleChatInput::-moz-placeholder {
        color: var(--color-gray-300) !important;
        opacity: 1 !important;
    }
    
    #articleChatInput:-ms-input-placeholder {
        color: var(--color-gray-300) !important;
        opacity: 1 !important;
    }
    
    .article-send-btn {
        padding: 12px 24px;
        background: rgba(184, 147, 111, 0.2);
        color: var(--color-primary);
        border: 1px solid var(--color-primary);
        border-radius: 0;
        cursor: pointer;
        font-size: 14px;
        font-weight: 600;
        transition: all 0.2s ease;
        min-width: 80px;
    }
    
    .article-send-btn:hover {
        background: var(--color-primary);
        color: var(--color-white);
        transform: translateY(-1px);
        box-shadow: 0 2px 8px rgba(184, 147, 111, 0.4);
    }
    
    /* Summary Follow-up Chat Input (Now Playing Cards) */
    .summary-chat-input-container,
    .summary-interactions-container {
        margin-top: 20px;
        padding-top: 15px;
        border-top: 1px solid rgba(255,255,255,0.15);
        display: flex;
        flex-direction: column;
        gap: 10px;
    }
    
    .summary-chat-input-row {
        display: flex;
        gap: 10px;
        align-items: center;
    }
    
    .summary-chat-input {
        flex: 1;
        padding: 10px 14px;
        border: 1px solid var(--color-primary);
        border-radius: 0;
        font-size: 13px;
        font-family: inherit;
        background: rgba(255, 255, 255, 0.1);
        color: var(--color-white);
        height: 40px;
        box-sizing: border-box;
        backdrop-filter: blur(10px);
    }
    
    .summary-chat-input:focus {
        outline: none;
        border-color: var(--color-primary);
        box-shadow: 0 0 12px rgba(184, 147, 111, 0.5);
    }
    
    .summary-chat-input::placeholder,
    .summary-custom-instructions::placeholder {
        color: rgba(255,255,255,0.5) !important;
        font-size: 13px;
        opacity: 1;
    }
    
    .summary-send-btn {
        padding: 10px 18px;
        background: rgba(184, 147, 111, 0.2);
        color: var(--color-primary);
        border: 1px solid var(--color-primary);
        border-radius: 0;
        cursor: pointer;
        font-size: 13px;
        font-weight: 600;
        transition: all 0.2s ease;
        min-width: 60px;
        height: 40px;
        box-sizing: border-box;
    }
    
    .summary-send-btn:hover {
        background: var(--color-primary);
        color: var(--color-white);
        transform: translateY(-1px);
        box-shadow: 0 2px 6px rgba(184, 147, 111, 0.4);
    }
    
    /* Summary Image Button - matches Ask button styling */
    .summary-image-btn {
        padding: 10px;
        background: rgba(184, 147, 111, 0.2);
        color: var(--color-primary);
        border: 1px solid var(--color-primary);
        border-radius: 0;
        cursor: pointer;
        transition: all 0.2s ease;
        display: flex;
        align-items: center;
        justify-content: center;
        height: 40px;
        box-sizing: border-box;
    }
    
    .summary-image-btn:hover {
        background: var(--color-primary);
        color: var(--color-white);
        transform: translateY(-1px);
        box-shadow: 0 2px 6px rgba(184, 147, 111, 0.4);
    }
    
    .summary-image-btn.has-image {
        background: var(--color-primary);
        color: var(--color-white);
        border-color: var(--color-primary);
    }
    
    /* Summary Image Preview */
    .summary-image-preview {
        display: none;
        align-items: center;
        gap: 8px;
        margin-bottom: 10px;
        padding: 8px;
        background: rgba(0, 0, 0, 0.3);
        border: 1px solid rgba(255, 255, 255, 0.1);
        border-radius: 0;
    }
    
    .summary-image-preview-img {
        max-width: 80px;
        max-height: 80px;
        object-fit: cover;
        border-radius: 0;
    }
    
    .remove-summary-image-btn {
        padding: 4px 8px;
        background: rgba(200, 100, 100, 0.2);
        color: #ff6b6b;
        border: 1px solid rgba(200, 100, 100, 0.3);
        border-radius: 0;
        cursor: pointer;
        font-size: 16px;
        line-height: 1;
        transition: all 0.2s ease;
    }
    
    .remove-summary-image-btn:hover {
        background: rgba(200, 100, 100, 0.4);
    }
    
    /* Vision Result Badge */
    .vision-result-badge {
        display: flex;
        align-items: center;
        gap: 12px;
        width: 100%;
    }
    
    .vision-badge-text {
        flex: 1;
        font-size: 13px;
        color: var(--color-primary);
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    
    /* Bottom Section */
    .magazine-bottom {
        display: flex;
        gap: 24px;
    }
    
    .back-issues-section,
    .themes-guide {
        flex: 1;
        background: var(--color-gray-800);
        border-radius: 0;
        padding: 24px;
        box-shadow: 0 2px 8px rgba(0,0,0,0.3);
        border: 1px solid #444;
    }
    
    .back-issues-section h3,
    .themes-guide h3 {
        margin: 0 0 16px 0;
        font-size: 18px;
        color: var(--color-white);
    }
    
    .back-issues-search {
        display: flex;
        gap: 8px;
        margin-bottom: 16px;
    }
    
    .back-issues-search input {
        flex: 1;
        padding: 8px 12px;
        border: 1px solid #444;
        border-radius: 0;
        font-size: 14px;
        background: var(--color-gray-900);
        color: var(--color-white);
    }
    
    .search-issues-btn {
        padding: 8px 16px;
        background: rgba(184, 147, 111, 0.2);
        color: var(--color-primary);
        border: 1px solid var(--color-primary);
        border-radius: 0;
        cursor: pointer;
        font-size: 14px;
        font-weight: 600;
        transition: all 0.2s ease;
    }
    
    .search-issues-btn:hover {
        background: var(--color-primary);
        color: var(--color-white);
        transform: translateY(-1px);
        box-shadow: 0 2px 8px rgba(184, 147, 111, 0.4);
    }
    
    .search-results {
        margin-bottom: 16px;
    }
    
    .search-result-item {
        padding: 12px;
        border: 1px solid #444;
        border-radius: 0;
        margin-bottom: 8px;
        cursor: pointer;
        transition: all 0.2s;
        background: var(--color-gray-900);
        color: var(--color-white);
    }
    
    .search-result-item:hover {
        background: #3d3d3d;
        border-color: var(--color-primary);
    }
    
    .search-result-title {
        font-weight: bold;
        color: var(--color-white);
        margin-bottom: 4px;
    }
    
    .search-result-meta {
        font-size: 12px;
        color: #AAAAAA;
        margin-bottom: 6px;
    }
    
    .search-result-snippet {
        font-size: 14px;
        color: #CCCCCC;
        line-height: 1.4;
    }
    
    .return-to-current {
        display: inline-block;
        padding: 6px 12px;
        background: #3d5c4a;
        color: white;
        border: none;
        border-radius: 0;
        cursor: pointer;
        font-size: 12px;
        margin-bottom: 12px;
    }
    
    .return-to-current:hover {
        background: #2d4a3d;
    }
    
    .issues-grid {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
        gap: 16px;
        margin-top: 16px;
        max-height: 400px;
        overflow-y: auto;
    }
    
    .loading-back-issues {
        text-align: center;
        color: #CCCCCC;
        font-style: italic;
        padding: 20px;
        grid-column: 1 / -1;
    }
    
    .back-issue-card {
        background: var(--color-gray-900);
        border: 1px solid #444;
        border-radius: 0;
        padding: 16px;
        cursor: pointer;
        transition: all 0.2s ease;
        display: flex;
        flex-direction: column;
        gap: 12px;
    }
    
    .back-issue-card:hover {
        background: #3d3d3d;
        border-color: var(--color-primary);
        transform: translateY(-2px);
        box-shadow: 0 4px 12px rgba(184, 147, 111, 0.15);
    }
    
    .issue-header {
        display: flex;
        flex-direction: column;
        gap: 8px;
    }
    
    .issue-title {
        margin: 0;
        font-size: 16px;
        font-weight: 600;
        color: var(--color-white);
        line-height: 1.3;
    }
    
    .issue-date {
        font-size: 12px;
        color: #AAAAAA;
        font-weight: 500;
    }
    
    .issue-date {
        color: #AAAAAA;
    }
    
    .issue-preview {
        font-size: 14px;
        color: #CCCCCC;
        line-height: 1.4;
        flex-grow: 1;
        display: -webkit-box;
        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
        overflow: hidden;
        margin-top: 8px;
    }
    
    .themes-list {
        display: flex;
        flex-direction: column;
        gap: 8px;
    }
    
    .theme-item {
        padding: 8px 12px;
        background: var(--color-gray-900);
        border-radius: 0;
        font-size: 14px;
        color: #CCCCCC;
    }
    
    /* Responsive Design */
    @media (max-width: 768px) {
        .magazine-main-layout {
            flex-direction: column;
        }
        
        .magazine-chat-sidebar {
            width: 100%;
        }
        
        .magazine-bottom {
            flex-direction: column;
        }
        
        .issue-controls {
            flex-direction: column;
            gap: 12px;
        }
    }

    .dashboard-container {
        width: 100%;
        margin: 0;
        padding: 0;
        background: transparent;
        height: 100%;
    }

    .dashboard-layout {
        display: flex;
        gap: 32px;
        height: calc(100vh - 130px);
        width: 100%;
        padding: 40px;
        position: relative;
        overflow: hidden;
        border-radius: 0px;
        margin: 0 auto;
        box-sizing: border-box;
    }

    /* Single unified background system - shifted right and zoomed out */
    .dashboard-layout::before {
        content: '';
        position: absolute;
        top: -50px;
        left: 35%;
        right: -50px;
        bottom: -50px;
        width: calc(65% + 50px);
        height: calc(100% + 100px);
        background-image: var(--album-cover-url, url('/static/default-album.png'));
        background-size: contain;
        background-position: left center;
        background-repeat: no-repeat;
        filter: brightness(0.6) saturate(1.1);
        z-index: 0;
    }
    
    /* Full-height black-to-transparent gradient overlay on left 40% column */
    .dashboard-layout::after {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        width: 40%;
        height: 100%;
        background: linear-gradient(to right, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0.8) 50%, rgba(0, 0, 0, 0) 100%);
        z-index: 1;
        pointer-events: none;
    }

    .dashboard-left {
        flex: 0 0 40%;
        width: 40%;
        background: transparent;
        border-radius: 0;
        box-shadow: none;
        display: flex;
        flex-direction: column;
        gap: 16px;
        border: none;
        position: relative;
        z-index: 3;
        overflow: visible;
        height: 100%;
        padding: 20px;
    }

    .dashboard-right {
        flex: 0 0 calc(60% - 32px);
        width: calc(60% - 32px);
        display: flex;
        flex-direction: column;
        gap: 16px;
        height: 100%;
        position: relative;
        padding: 20px;
        z-index: 3;
        overflow: visible;
    }
    
    /* Flip Card Container */
    .flip-card-container {
        width: 100%;
        height: 100%;
        perspective: 1000px;
        position: relative;
    }
    
    .flip-card {
        width: 100%;
        height: calc(100% - 40px);
        position: relative;
        transform-style: preserve-3d;
        transition: transform 0.6s cubic-bezier(0.4, 0.0, 0.2, 1);
    }
    
    .flip-card.flipped {
        transform: rotateY(180deg);
    }
    
    .flip-card-front,
    .flip-card-back {
        width: 100%;
        height: 100%;
        position: absolute;
        backface-visibility: hidden;
        -webkit-backface-visibility: hidden;
    }
    
    .flip-card-back {
        transform: rotateY(180deg);
        padding: 20px;
        overflow-y: auto;
        scrollbar-width: none;
        -ms-overflow-style: none;
    }
    
    .flip-card-back::-webkit-scrollbar {
        display: none;
    }
    
    /* Flip card back headings */
    .flip-card-back h1,
    .flip-card-back h2,
    .flip-card-back h3,
    .flip-card-back h4,
    .flip-card-back h5,
    .flip-card-back h6 {
        color: #B8936F !important;
        margin: 16px 0 8px 0;
        font-weight: 600;
    }
    
    /* Flip card back section labels (strong tags) - Copper Primary */
    .flip-card-back strong {
        color: #B8936F !important;
    }
    
    /* Flip card back body text/values - Gray 200 */
    .flip-card-back p,
    .flip-card-back div {
        color: #CCCCCC;
    }
    
    /* Tracklist items - White for better readability */
    .flip-card-back #tracklist,
    .flip-card-back #tracklist div:not(.track-artists) {
        color: #FFFFFF !important;
    }
    
    /* Track artists - Gray for visual hierarchy */
    .flip-card-back .track-artists {
        color: var(--color-gray-400) !important;
    }
    
    /* Flip card back links */
    .flip-card-back a {
        color: #7FA0B8 !important;
        text-decoration: none !important;
        transition: color 0.2s ease !important;
    }
    
    .flip-card-back a:hover {
        color: #7290A6 !important;
        text-decoration: underline !important;
    }
    
    /* Flip card back sources */
    .flip-card-back .sources-label,
    .flip-card-back .sources-heading {
        color: #FFFFFF !important;
        font-size: 18px !important;
        font-weight: 700 !important;
        margin: 20px 0 12px 0 !important;
    }
    
    .flip-card-back .source-link {
        font-size: 18px !important;
    }
    
    /* Control pointer events based on flip state */
    .flip-card-front {
        pointer-events: auto;
    }
    
    .flip-card-back {
        pointer-events: none;
    }
    
    /* When flipped, swap pointer events */
    .flip-card.flipped .flip-card-front {
        pointer-events: none;
    }
    
    .flip-card.flipped .flip-card-back {
        pointer-events: auto;
    }
    
    /* Disable overlay buttons specifically when flipped - needs !important to override hover rules */
    .flip-card.flipped .dashboard-album-overlay,
    .flip-card.flipped .dashboard-album-overlay .album-action {
        pointer-events: none !important;
        opacity: 0 !important;
    }
    
    .flip-card-indicator {
        position: absolute;
        bottom: 16px;
        right: 16px;
        background: rgba(255, 255, 255, 0.25);
        border: 1px solid rgba(255, 255, 255, 0.3);
        border-radius: 50%;
        width: 40px;
        height: 40px;
        display: flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
        z-index: 100;
        transition: all 0.3s ease;
        backdrop-filter: blur(8px);
    }
    
    .flip-card-indicator:hover {
        background: rgba(255, 255, 255, 0.35);
        transform: scale(1.1);
    }
    
    .flip-card-indicator span {
        font-size: 24px;
        color: var(--color-gray-200);
    }
    
    /* Carousel Container */
    .carousel-container {
        width: 100%;
        height: 100%;
        position: relative;
        overflow: hidden;
    }
    
    .carousel-track {
        display: flex;
        height: calc(100% - 40px);
        transition: transform 0.4s cubic-bezier(0.4, 0.0, 0.2, 1);
        position: relative;
    }
    
    .carousel-slide {
        min-width: 100%;
        width: 100%;
        flex-shrink: 0;
        height: 100%;
        display: flex;
        align-items: stretch;
    }
    
    .carousel-slide > div {
        width: 100%;
        height: 100%;
    }
    
    /* Navigation Hints */
    .carousel-nav-hint {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        font-size: 48px;
        color: rgba(255, 255, 255, 0.15);
        pointer-events: none;
        z-index: 10;
        transition: opacity 0.3s ease, color 0.3s ease;
        user-select: none;
    }
    
    .carousel-nav-left {
        left: 20px;
    }
    
    .carousel-nav-right {
        right: 20px;
    }
    
    .carousel-container:hover .carousel-nav-hint {
        color: rgba(255, 255, 255, 0.3);
    }
    
    /* Carousel Text Navigation */
    .carousel-text-nav {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 12px;
        padding: 12px 0;
        position: absolute;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 10;
    }
    
    .carousel-label {
        font-size: 14px;
        color: rgba(255, 255, 255, 0.5);
        cursor: pointer;
        transition: all 0.3s ease;
        padding: 4px 8px;
    }
    
    .carousel-label.active {
        color: #D4B896;
        font-weight: 600;
    }
    
    .carousel-label:hover {
        color: #B8936F;
    }
    
    .carousel-separator {
        color: rgba(255, 255, 255, 0.3);
        font-size: 14px;
        user-select: none;
    }
    
    /* Flip Card Text Navigation */
    .flip-card-text-nav {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 8px;
        padding: 0;
        flex: 1;
    }
    
    .flip-card-label {
        font-size: 13px;
        color: rgba(255, 255, 255, 0.5);
        cursor: pointer;
        transition: all 0.3s ease;
        padding: 2px 6px;
    }
    
    .flip-card-label.active {
        color: #D4B896;
        font-weight: 600;
    }
    
    .flip-card-label:hover {
        color: #B8936F;
    }
    
    .flip-card-separator {
        color: rgba(255, 255, 255, 0.3);
        font-size: 13px;
        user-select: none;
    }
    
    /* Card Styles */
    .now-playing-card,
    .credits-card {
        width: 100%;
        height: 100%;
        background: rgba(255, 255, 255, 0.01);
        backdrop-filter: blur(15px) saturate(1.2);
        border-radius: 0px;
        box-shadow: 0 8px 32px rgba(0, 0, 0, 0.37);
        border: 1px solid rgba(255, 255, 255, 0.08);
        position: relative;
        overflow: hidden;
        display: flex;
        flex-direction: column;
        transition: all 0.3s ease;
    }

    .credits-card:hover {
        transform: translateY(-5px);
        box-shadow: 0 10px 30px rgba(184, 147, 111, 0.3);
        border-color: #B8936F;
    }
    
    /* Now Playing card uses gradient border via ::before pseudo-element */
    .now-playing-card:hover {
        transform: translateY(-5px);
        box-shadow: 0 10px 30px rgba(184, 147, 111, 0.3);
        border-color: transparent;
    }

    /* Enable scrolling for album details content within credits card */
    .credits-card .album-details-content {
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior: contain;
    }

    /* Force 50/50 height splits */
    .dashboard-half-height {
        flex: 0 0 calc(50% - 8px);
        height: calc(50% - 8px);
        min-height: calc(50% - 8px);
        max-height: calc(50% - 8px);
    }

    /* Full height for single items in column */
    .dashboard-full-height {
        flex: 1;
        height: 100%;
        min-height: 100%;
        max-height: 100%;
        display: flex;
        flex-direction: column;
        overflow: hidden;
    }

    /* Stats grid container */
    .stats-grid-container {
        display: flex;
        flex-direction: column;
        gap: 8px;
        padding: 12px;
        background: rgba(255, 255, 255, 0.15);
        backdrop-filter: blur(15px) saturate(1.2);
        border-radius: 0px;
        box-shadow: 0 8px 32px rgba(0, 0, 0, 0.37);
        border: 1px solid rgba(255, 255, 255, 0.18);
    }

    /* Compact stats grid for 50/50 layout */
    .stats-grid-compact {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 8px;
        flex: 0 0 auto;
    }



    /* Override for Now Playing card in 50/50 layout */
    .dashboard-half-height.now-playing-card {
        min-height: calc(50% - 8px);
        flex: 0 0 calc(50% - 8px);
        margin-bottom: 0; /* Remove margin that causes misalignment */
        padding: 4px; /* Minimal padding for better space usage */
    }
    
    /* Layout for Now Playing content with album in upper left */
    .now-playing-card .now-playing-content {
        flex-direction: column;
        align-items: flex-start;
        gap: 0;
        padding: 20px;
        flex: 1;
        position: relative;
    }
    
    /* Album art positioned in upper left corner - large and prominent */
    .now-playing-card .album-art {
        width: 100%;
        height: auto;
        max-width: none;
        aspect-ratio: 1 / 1;
        flex-shrink: 0;
        object-fit: cover;
        border-radius: 0;
        margin: 0;
        align-self: flex-start;
    }
    
    /* Left-aligned text content */
    .dashboard-half-height .track-info {
        flex: 1;
        text-align: left;
        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: 6px;
        min-width: 0; /* Allow text to wrap */
    }
    
    .dashboard-half-height .track-title {
        font-size: 45px; /* Increased by 25% from 36px */
        text-align: left;
        line-height: 1.0;
        margin: 0;
        font-weight: bold;
        color: #555;
    }
    
    .dashboard-half-height .track-artist {
        font-size: 35px; /* Increased by 25% from 28px */
        text-align: left;
        line-height: 1.1;
        margin: 0;
        color: var(--color-gray-400); /* Restore proper gray color */
    }
    
    .dashboard-half-height .track-year {
        font-size: 27px; /* Increased by 25% from 22px */
        text-align: left;
        margin: 0;
        opacity: 0.9;
    }

    /* Override for Pulse Content card in 50/50 layout */
    .dashboard-half-height.pulse-content-card {
        min-height: calc(50% - 8px);
        flex: 0 0 calc(50% - 8px);
        background: rgba(255, 255, 255, 0.15);
        backdrop-filter: blur(15px) saturate(1.2);
        border-radius: 0px;
        box-shadow: 0 8px 32px rgba(0, 0, 0, 0.37);
        border: 1px solid rgba(255, 255, 255, 0.18);
        padding: 0;
        overflow: hidden;
    }

    /* Pulse content scrollable area */
    .pulse-content-container {
        flex: 1;
        overflow-y: auto;
        padding: 16px;
        scrollbar-width: none;
        -ms-overflow-style: none;
    }

    .pulse-content-container::-webkit-scrollbar {
        display: none;
    }

    .dashboard-middle-placeholder {
        background: white;
        padding: 24px;
        border-radius: 12px;
        box-shadow: 0 2px 8px rgba(0,0,0,0.1);
        border-top: 3px solid #28a745;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        text-align: center;
        color: #6c757d;
        font-size: 16px;
        min-height: 200px;
    }

    .dashboard-middle-placeholder .placeholder-icon {
        font-size: 48px;
        margin-bottom: 16px;
        opacity: 0.5;
    }

    .dashboard-middle-placeholder .placeholder-text {
        line-height: 1.5;
    }

    /* Album Summary Card Styles */
    .album-summary-card {
        background: rgb(20, 20, 20, 0.60);
        backdrop-filter: blur(8px) saturate(1.2);
        border-radius: 0px;
        box-shadow: 0 8px 32px rgba(0, 0, 0, 0.37);
        border: 1px solid rgba(255, 255, 255, 0.18);
        flex: 1;
        height: 100%;
        display: flex;
        flex-direction: column;
        min-height: 0;
        overflow: hidden;
        position: relative;
        z-index: 3;
        transition: all 0.3s ease;
    }

    .album-summary-card:hover {
        transform: translateY(-5px);
        box-shadow: 0 10px 30px rgba(184, 147, 111, 0.3);
        border-color: #B8936F;
    }

    /* Artist Summary Card Styles */
    .artist-summary-card {
        background: rgba(20, 20, 20, 0.60);
        backdrop-filter: blur(8px) saturate(1.2);
        border-radius: 0px;
        box-shadow: 0 8px 32px rgba(0, 0, 0, 0.37);
        border: 1px solid rgba(255, 255, 255, 0.18);
        flex: 1;
        height: 100%;
        min-height: 0;
        display: flex;
        flex-direction: column;
        overflow: hidden;
        position: relative;
        z-index: 3;
        transition: all 0.3s ease;
    }

    .artist-summary-card:hover {
        transform: translateY(-5px);
        box-shadow: 0 10px 30px rgba(184, 147, 111, 0.3);
        border-color: #B8936F;
    }

    /* Now Playing Chat Card Styles */
    .now-playing-chat-card {
        background: rgba(20, 20, 20, 0.60);
        backdrop-filter: blur(8px) saturate(1.2);
        border-radius: 0px;
        box-shadow: 0 8px 32px rgba(0, 0, 0, 0.37);
        border: 1px solid rgba(255, 255, 255, 0.18);
        flex: 1;
        height: 100%;
        min-height: 0;
        display: flex;
        flex-direction: column;
        overflow: hidden;
        position: relative;
        z-index: 3;
        transition: all 0.3s ease;
        padding: 12px;
    }

    .now-playing-chat-card:hover {
        transform: translateY(-5px);
        box-shadow: 0 10px 30px rgba(184, 147, 111, 0.3);
        border-color: #B8936F;
    }

    /* Chat Card Heading - matches Album/Artist card headings */
    .np-chat-heading {
        color: var(--color-primary);
        font-size: 32px;
        font-weight: 700;
        margin: 0 0 12px 0;
        padding: 0;
        line-height: 1.2;
    }

    .np-chat-heading-separator {
        border: none;
        border-top: 1px solid #8F6F52;
        margin: 0 0 4px 0;
    }

    /* Context Selection Row - with tools on right */
    .np-chat-context-row {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: space-between;
        gap: 8px;
        padding: 12px 0;
        border-bottom: 1px solid #8F6F52;
        margin-bottom: 8px;
    }
    
    .np-chat-context-left {
        display: flex;
        align-items: center;
        gap: 8px;
        flex-wrap: wrap;
    }
    
    .np-chat-tools-right {
        display: flex;
        align-items: center;
        gap: 6px;
    }
    
    .np-chat-context-label {
        font-size: 20px;
        font-weight: 600;
        color: #d4b896;
        margin-right: 8px;
    }

    .np-chat-context-checkbox {
        display: flex;
        align-items: center;
        gap: 4px;
        font-size: 20px;
        font-weight: 600;
        color: #d4b896;
        cursor: pointer;
        padding: 4px 8px;
        border-radius: 4px;
        background: rgba(255, 255, 255, 0.05);
        transition: all 0.2s ease;
    }

    .np-chat-context-checkbox:hover {
        background: rgba(255, 255, 255, 0.1);
    }

    .np-chat-context-checkbox input {
        accent-color: #B8936F;
        cursor: pointer;
    }

    .np-chat-context-checkbox input:checked + span {
        color: #B8936F;
        font-weight: 500;
    }

    .np-chat-tool-btn {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 4px;
        width: 36px;
        height: 36px;
        padding: 0;
        background: rgba(184, 147, 111, 0.2);
        border: 1px solid var(--color-primary);
        border-radius: 0;
        color: var(--color-primary);
        font-size: 11px;
        cursor: pointer;
        transition: all 0.2s ease;
        flex-shrink: 0;
    }

    .np-chat-tool-btn:hover {
        background: var(--color-primary);
        color: var(--color-white);
        transform: translateY(-1px);
        box-shadow: 0 2px 6px rgba(184, 147, 111, 0.4);
    }

    .np-chat-tool-btn svg {
        stroke: currentColor;
    }
    
    .np-chat-tool-btn span {
        display: none;
    }
    
    /* Find Bar */
    .np-chat-find-bar {
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 6px 10px;
        background: rgba(0, 0, 0, 0.3);
        border: 1px solid rgba(255, 255, 255, 0.1);
        border-radius: 4px;
        margin-bottom: 8px;
    }
    
    .np-chat-find-input {
        flex: 1;
        background: rgba(255, 255, 255, 0.08);
        border: 1px solid rgba(255, 255, 255, 0.15);
        border-radius: 4px;
        padding: 6px 10px;
        color: var(--color-gray-100);
        font-size: 13px;
    }
    
    .np-chat-find-input:focus {
        outline: none;
        border-color: #B8936F;
    }
    
    .np-chat-find-count {
        font-size: 12px;
        color: var(--color-gray-400);
        min-width: 45px;
        text-align: center;
    }
    
    .np-chat-find-nav {
        background: rgba(255, 255, 255, 0.08);
        border: 1px solid rgba(255, 255, 255, 0.15);
        border-radius: 4px;
        color: var(--color-gray-300);
        width: 28px;
        height: 28px;
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 14px;
        transition: all 0.2s ease;
    }
    
    .np-chat-find-nav:hover {
        background: rgba(184, 147, 111, 0.2);
        border-color: #B8936F;
        color: #B8936F;
    }
    
    .np-chat-find-close {
        background: transparent;
        border: none;
        color: var(--color-gray-400);
        font-size: 18px;
        cursor: pointer;
        padding: 0 4px;
        transition: color 0.2s ease;
    }
    
    .np-chat-find-close:hover {
        color: #B8936F;
    }
    
    /* Find highlights */
    .np-find-highlight {
        background: rgba(255, 230, 0, 0.3);
        border-radius: 2px;
        padding: 0 1px;
    }
    
    .np-find-highlight.np-find-current {
        background: rgba(255, 165, 0, 0.6);
        box-shadow: 0 0 4px rgba(255, 165, 0, 0.5);
    }

    /* Chat Messages Container */
    .np-chat-messages-container {
        flex: 1;
        overflow-y: auto;
        padding: 8px;
        display: flex;
        flex-direction: column;
        gap: 8px;
        scrollbar-width: thin;
        scrollbar-color: rgba(255, 255, 255, 0.2) transparent;
    }

    .np-chat-messages-container::-webkit-scrollbar {
        width: 4px;
    }

    .np-chat-messages-container::-webkit-scrollbar-thumb {
        background: rgba(255, 255, 255, 0.2);
        border-radius: 2px;
    }

    .np-chat-placeholder {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        text-align: center;
        height: 100%;
        color: var(--color-gray-400);
    }

    .np-chat-placeholder .placeholder-icon {
        font-size: 36px;
        margin-bottom: 8px;
        opacity: 0.6;
    }

    .np-chat-placeholder .placeholder-text {
        font-size: 14px;
        line-height: 1.5;
    }

    .np-chat-placeholder .placeholder-subtext {
        font-size: 11px;
        opacity: 0.7;
    }

    /* Chat Messages */
    .np-chat-message {
        max-width: 85%;
        padding: 10px 14px;
        border-radius: 16px;
        font-size: 13px;
        line-height: 1.4;
    }

    .np-chat-message-user {
        align-self: flex-end;
        background: rgba(184, 147, 111, 0.3);
        border: 1px solid rgba(184, 147, 111, 0.5);
        color: var(--color-white);
        border-radius: 16px 16px 4px 16px;
    }

    .np-chat-message-assistant {
        align-self: flex-start;
        background: rgba(255, 255, 255, 0.08);
        border: 1px solid rgba(255, 255, 255, 0.15);
        color: var(--color-gray-200);
        border-radius: 16px 16px 16px 4px;
    }

    .np-chat-message-content {
        word-wrap: break-word;
        overflow-wrap: break-word;
    }

    .np-chat-message-image {
        margin-bottom: 8px;
    }

    .np-chat-message-image img {
        max-width: 100%;
        max-height: 120px;
        border-radius: 4px;
    }

    .np-chat-history-separator {
        text-align: center;
        font-size: 13px;
        font-weight: 700;
        color: #ffffff;
        padding: 12px 0;
        border-bottom: 1px solid #8F6F52;
        margin-bottom: 8px;
    }

    /* Streaming Indicator */
    .np-chat-streaming-indicator {
        align-self: flex-start;
        padding: 12px 16px;
    }

    .streaming-dots {
        display: flex;
        gap: 4px;
    }

    .streaming-dots span {
        width: 6px;
        height: 6px;
        background: #B8936F;
        border-radius: 50%;
        animation: streamingPulse 1.4s ease-in-out infinite;
    }

    .streaming-dots span:nth-child(2) {
        animation-delay: 0.2s;
    }

    .streaming-dots span:nth-child(3) {
        animation-delay: 0.4s;
    }

    @keyframes streamingPulse {
        0%, 80%, 100% {
            transform: scale(0.6);
            opacity: 0.5;
        }
        40% {
            transform: scale(1);
            opacity: 1;
        }
    }

    /* Chat Input Row */
    .np-chat-input-row {
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 12px 0 0;
        border-top: 1px solid #8F6F52;
        margin-top: auto;
    }

    .np-chat-image-btn,
    .np-chat-send-btn {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 40px;
        height: 40px;
        background: rgba(184, 147, 111, 0.2);
        border: 1px solid var(--color-primary);
        border-radius: 0;
        color: var(--color-primary);
        cursor: pointer;
        transition: all 0.2s ease;
        flex-shrink: 0;
    }

    .np-chat-image-btn:hover,
    .np-chat-send-btn:hover {
        background: var(--color-primary);
        color: var(--color-white);
        transform: translateY(-1px);
        box-shadow: 0 2px 6px rgba(184, 147, 111, 0.4);
    }
    
    .np-chat-image-btn.has-image {
        background: var(--color-primary);
        color: var(--color-white);
        border-color: var(--color-primary);
    }

    .np-chat-text-input {
        flex: 1;
        padding: 10px 14px;
        background: rgba(255, 255, 255, 0.05);
        border: 1px solid #8F6F52;
        border-radius: 4px;
        color: var(--color-white);
        font-size: 13px;
        outline: none;
        transition: all 0.2s ease;
    }

    .np-chat-text-input:focus {
        border-color: #B8936F;
        background: rgba(255, 255, 255, 0.08);
        box-shadow: 0 0 8px rgba(184, 147, 111, 0.4), inset 0 0 4px rgba(184, 147, 111, 0.1);
    }

    .np-chat-text-input::placeholder {
        color: var(--color-gray-500);
    }

    /* Image Preview */
    .np-chat-image-preview {
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 8px;
        background: rgba(255, 255, 255, 0.05);
        border-radius: 4px;
        margin-top: 8px;
    }

    .np-chat-image-preview img {
        max-width: 60px;
        max-height: 60px;
        border-radius: 4px;
        object-fit: cover;
    }

    .np-chat-remove-image {
        width: 20px;
        height: 20px;
        background: rgba(255, 255, 255, 0.1);
        border: none;
        border-radius: 50%;
        color: var(--color-gray-400);
        cursor: pointer;
        font-size: 14px;
        line-height: 1;
        transition: all 0.2s ease;
    }

    .np-chat-remove-image:hover {
        background: rgba(255, 100, 100, 0.3);
        color: #ff6666;
    }

    /* Mobile Responsive Styles for Chat Card */
    @media (max-width: 768px) {
        .np-chat-context-row {
            flex-direction: column;
            align-items: flex-start;
            gap: 6px;
        }
        
        .np-chat-context-left {
            width: 100%;
        }
        
        .np-chat-tools-right {
            width: 100%;
            justify-content: flex-end;
        }

        .np-chat-context-checkbox {
            font-size: 11px;
            padding: 3px 6px;
        }

        .np-chat-tool-btn {
            padding: 5px 8px;
            font-size: 10px;
        }

        .np-chat-tool-btn span {
            display: none;
        }
        
        .np-chat-find-bar {
            flex-wrap: wrap;
        }
        
        .np-chat-find-input {
            min-width: 120px;
        }

        .np-chat-message {
            max-width: 90%;
            font-size: 12px;
            border-radius: 16px;
        }
        
        .np-chat-message-user {
            border-radius: 16px 16px 4px 16px;
        }
        
        .np-chat-message-assistant {
            border-radius: 16px 16px 16px 4px;
        }
    }



    .artist-summary-content {
        flex: 1;
        padding: 16px;
        overflow-y: auto;
        scrollbar-width: none;
        -ms-overflow-style: none;
        max-width: 100%;
        word-wrap: break-word;
        overflow-wrap: break-word;
    }

    .artist-summary-content::-webkit-scrollbar {
        display: none;
    }

    .artist-summary-placeholder {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        text-align: center;
        background: rgba(255, 255, 255, 0.15);
        backdrop-filter: blur(15px) saturate(1.2);
        color: var(--color-white);
        text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8);
        font-size: 16px;
        height: 100%;
        min-height: 150px;
        border-radius: 0px;
        border: 1px solid rgba(255, 255, 255, 0.18);
        margin: 4px;
    }

    .artist-summary-placeholder .placeholder-icon {
        font-size: 48px;
        margin-bottom: 16px;
        opacity: 0.5;
    }

    .artist-summary-placeholder .placeholder-text {
        line-height: 1.5;
    }

    .artist-summary-data {
        max-height: 100%;
        height: 100%;
        overflow-y: auto;
        scrollbar-width: none;
        -ms-overflow-style: none;
        padding-right: 5px;
        display: flex;
        flex-direction: column;
    }

    .artist-summary-data::-webkit-scrollbar {
        display: none;
    }

    /* Card header (h4) - Copper, matches Now Playing album title size (32px) */
    .artist-summary-data h4 {
        color: var(--color-primary);
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
        font-size: 32px;
        margin: 0 0 12px 0;
        font-weight: 700;
        text-align: left;
        line-height: 1.2;
    }

    /* Section headings (h5) - White, matches Now Playing artist name size (24px) */
    .artist-summary-data h5 {
        color: #ffffff;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
        font-size: 24px;
        margin: 20px 0 16px 0;
        font-weight: 600;
        line-height: 1.3;
    }
    
    /* Section headings (h1-h3, h6) - White, matches Now Playing artist name size (24px) */
    .artist-summary-data h1, .artist-summary-data h2, .artist-summary-data h3, 
    .artist-summary-data h6 {
        font-size: 24px !important;
        color: #ffffff;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
        margin: 20px 0 16px 0;
        font-weight: 600;
        line-height: 1.3;
    }
    
    /* Ensure h4 card header keeps copper color with high specificity */
    .artist-summary-data h4 {
        color: var(--color-primary) !important;
        font-size: 32px !important;
    }

    .artist-summary-data p {
        color: var(--color-gray-200);
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
        font-size: 18px;
        line-height: 1.6;
        margin: 0 0 12px 0;
        font-weight: 400;
        word-wrap: break-word;
        overflow-wrap: break-word;
        max-width: 100%;
    }

    .artist-summary-data ul {
        color: #f8f9fa;
        text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.6);
        font-size: 18px;
        line-height: 1.6;
        margin: 0 0 12px 0;
        padding-left: 20px;
    }

    .artist-summary-data li {
        margin-bottom: 4px;
        color: #f8f9fa;
        text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.6);
    }
    
    .artist-summary-data strong {
        color: #fff;
        font-weight: 600;
    }
    
    .artist-summary-data em {
        color: var(--color-primary);
        font-style: italic;
    }

    /* Remove top margin on first element in summary - handles both direct and nested headings */
    .artist-summary-data > *:first-child {
        margin-top: 0 !important;
    }
    
    /* Also remove top margin on first heading when nested inside wrapper elements */
    .artist-summary-data > *:first-child > *:first-child,
    .artist-summary-data h1:first-child,
    .artist-summary-data h2:first-child,
    .artist-summary-data h3:first-child {
        margin-top: 0 !important;
    }

    /* Release Summary Card Styles */
    .release-summary-card {
        background: rgba(20, 20, 20, 0.60);
        backdrop-filter: blur(8px) saturate(1.2);
        border-radius: 0px;
        box-shadow: 0 8px 32px rgba(0, 0, 0, 0.37);
        border: 1px solid rgba(255, 255, 255, 0.18);
        flex: 1;
        height: 100%;
        min-height: 0;
        display: flex;
        flex-direction: column;
        overflow: hidden;
        position: relative;
        z-index: 3;
        transition: all 0.3s ease;
    }

    .release-summary-card:hover {
        transform: translateY(-5px);
        box-shadow: 0 10px 30px rgba(184, 147, 111, 0.3);
        border-color: #B8936F;
    }

    /* Summary Card Bottom Controls - Shared Styles */
    /* Flows naturally at bottom like AI question input, not locked/fixed */
    .summary-card-controls {
        padding: 15px 12px;
        background: rgba(0, 0, 0, 0.2);
        display: flex;
        flex-direction: column;
        gap: 10px;
        flex-shrink: 0;
        margin-top: auto;
        border-top: 1px solid rgba(255,255,255,0.15);
        width: 100%;
    }

    .summary-instructions-row {
        display: flex;
        gap: 10px;
        align-items: center;
    }

    /* Regenerate input - matches Ask input styling */
    .summary-custom-instructions {
        flex: 1;
        background: rgba(255, 255, 255, 0.1);
        border: 1px solid var(--color-primary);
        border-radius: 0;
        padding: 10px 14px;
        font-size: 13px;
        font-family: inherit;
        color: #fff;
        outline: none;
        transition: all 0.2s ease;
        backdrop-filter: blur(10px);
    }

    .summary-custom-instructions::placeholder {
        color: rgba(255,255,255,0.5);
        font-size: 13px;
    }

    .summary-custom-instructions:focus {
        border-color: var(--color-primary);
        outline: none;
        box-shadow: 0 0 12px rgba(184, 147, 111, 0.5);
    }

    /* Regenerate button - matches Ask button styling */
    .summary-regenerate-btn {
        display: flex;
        align-items: center;
        gap: 6px;
        background: rgba(184, 147, 111, 0.2);
        border: 1px solid var(--color-primary);
        border-radius: 0;
        padding: 10px 18px;
        color: var(--color-primary);
        font-size: 13px;
        font-weight: 600;
        cursor: pointer;
        transition: all 0.2s ease;
        flex-shrink: 0;
        height: 40px;
        box-sizing: border-box;
    }

    .summary-regenerate-btn:hover {
        background: var(--color-primary);
        color: var(--color-white);
        transform: translateY(-1px);
        box-shadow: 0 2px 6px rgba(184, 147, 111, 0.4);
    }

    .summary-regenerate-btn img {
        filter: brightness(0.8) sepia(1) saturate(2) hue-rotate(5deg);
    }

    .summary-regenerate-btn:hover img {
        filter: brightness(10);
    }

    /* Edit Content button - square corners */
    .summary-edit-btn {
        width: 100%;
        background: rgba(184, 147, 111, 0.2);
        border: 1px solid var(--color-primary);
        border-radius: 0;
        padding: 10px;
        color: var(--color-primary);
        font-size: 14px;
        font-weight: 600;
        cursor: pointer;
        transition: all 0.2s ease;
        text-align: center;
    }

    .summary-edit-btn:hover {
        background: var(--color-primary);
        color: var(--color-white);
        transform: translateY(-1px);
        box-shadow: 0 2px 6px rgba(184, 147, 111, 0.4);
    }

    /* Summary Edit Mode Styles */
    .summary-edit-mode {
        display: flex;
        flex-direction: column;
        height: 100%;
        min-height: 0;
    }

    .summary-edit-content {
        flex: 1;
        min-height: 300px;
        overflow-y: auto;
        padding: 16px;
        background: rgba(0, 0, 0, 0.3);
        border: 1px solid rgba(255, 255, 255, 0.2);
        border-radius: 4px;
        color: white;
        line-height: 1.6;
        outline: none;
        touch-action: auto;
        -webkit-user-select: text;
        user-select: text;
    }

    .summary-edit-content em,
    .summary-edit-content i {
        color: var(--color-primary);
        font-style: italic;
    }

    .summary-edit-toolbar {
        display: flex;
        gap: 8px;
        padding: 8px 12px;
        background: rgba(0, 0, 0, 0.5);
        border-bottom: 1px solid rgba(255, 255, 255, 0.1);
        flex-shrink: 0;
    }

    .summary-edit-toolbar-btn {
        background: rgba(255, 255, 255, 0.1);
        border: 1px solid rgba(255, 255, 255, 0.2);
        border-radius: 4px;
        padding: 6px 12px;
        color: #fff;
        font-size: 13px;
        cursor: pointer;
        transition: all 0.3s ease;
    }

    .summary-edit-toolbar-btn:hover {
        background: rgba(255, 255, 255, 0.2);
    }

    .summary-edit-toolbar-btn.bold-btn {
        font-weight: bold;
    }

    .summary-edit-toolbar-btn.italic-btn {
        font-style: italic;
    }

    .summary-edit-toolbar-btn.h1-btn {
        font-weight: bold;
        font-size: 14px;
    }

    .summary-edit-toolbar-btn.h2-btn {
        font-weight: 600;
        font-size: 13px;
    }

    .summary-edit-textarea {
        flex: 1;
        background: rgba(0, 0, 0, 0.3);
        border: none;
        padding: 16px;
        color: #fff;
        font-size: 16px;
        line-height: 1.6;
        resize: none;
        outline: none;
        font-family: inherit;
    }

    .summary-edit-textarea::placeholder {
        color: rgba(255, 255, 255, 0.4);
    }

    .summary-edit-actions {
        display: flex;
        gap: 10px;
        padding: 12px;
        background: rgba(0, 0, 0, 0.4);
        border-top: 1px solid rgba(255, 255, 255, 0.1);
        justify-content: flex-end;
        flex-shrink: 0;
    }

    .summary-save-btn {
        background: rgba(40, 167, 69, 0.8);
        border: none;
        border-radius: 4px;
        padding: 10px 20px;
        color: white;
        font-size: 14px;
        font-weight: 500;
        cursor: pointer;
        transition: all 0.3s ease;
    }

    .summary-save-btn:hover {
        background: rgba(40, 167, 69, 1);
    }

    .summary-cancel-btn {
        background: rgba(108, 117, 125, 0.8);
        border: none;
        border-radius: 4px;
        padding: 10px 20px;
        color: white;
        font-size: 14px;
        font-weight: 500;
        cursor: pointer;
        transition: all 0.3s ease;
    }

    .summary-cancel-btn:hover {
        background: rgba(108, 117, 125, 1);
    }

    /* Regenerate Modal with Custom Instructions */
    .regenerate-modal-instructions {
        background: rgba(255, 255, 255, 0.05);
        border: 1px solid rgba(255, 255, 255, 0.1);
        border-radius: 6px;
        padding: 12px;
        margin-bottom: 20px;
    }

    .regenerate-modal-instructions-label {
        font-size: 12px;
        color: #B8936F;
        margin-bottom: 6px;
        font-weight: 500;
    }

    .regenerate-modal-instructions-text {
        color: rgba(255, 255, 255, 0.8);
        font-size: 14px;
        font-style: italic;
        line-height: 1.4;
    }

    /* Release Summary Generation Banner */
    .release-summary-generation-banner {
        margin: 0 16px 8px 16px;
        padding: 8px 12px;
        background: linear-gradient(135deg, #28a745, #1e7e34);
        color: white;
        border-radius: 6px;
        font-size: 13px;
        font-weight: 500;
        text-align: center;
        box-shadow: 0 1px 3px rgba(40,167,69,0.3);
    }

    .release-summary-content {
        flex: 1;
        padding: 16px;
        overflow-y: auto;
        scrollbar-width: none;
        -ms-overflow-style: none;
        max-width: 100%;
        word-wrap: break-word;
        overflow-wrap: break-word;
    }

    .release-summary-content::-webkit-scrollbar {
        display: none;
    }

    .release-summary-placeholder {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        text-align: center;
        background: rgba(255, 255, 255, 0.15);
        backdrop-filter: blur(15px) saturate(1.2);
        color: var(--color-white);
        text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8);
        font-size: 16px;
        height: 100%;
        min-height: 150px;
        border-radius: 0px;
        border: 1px solid rgba(255, 255, 255, 0.18);
        margin: 4px;
    }

    .release-summary-placeholder .placeholder-icon {
        font-size: 48px;
        margin-bottom: 16px;
        opacity: 0.5;
    }

    .release-summary-placeholder .placeholder-text {
        line-height: 1.5;
    }

    .release-summary-data {
        max-height: 100%;
        height: 100%;
        overflow-y: auto;
        scrollbar-width: none;
        -ms-overflow-style: none;
        padding-right: 5px;
        display: flex;
        flex-direction: column;
    }

    .release-summary-data::-webkit-scrollbar {
        display: none;
    }

    /* Card header (h4) - Copper, matches Now Playing album title size (32px) */
    .release-summary-data h4 {
        color: var(--color-primary);
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
        font-size: 32px;
        margin: 0 0 12px 0;
        font-weight: 700;
        text-align: left;
        line-height: 1.2;
    }

    /* Section headings (h5) - White, matches Now Playing artist name size (24px) */
    .release-summary-data h5 {
        color: #ffffff;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
        font-size: 24px;
        margin: 20px 0 16px 0;
        font-weight: 600;
        line-height: 1.3;
    }
    
    /* Section headings (h1-h3, h6) - White, matches Now Playing artist name size (24px) */
    .release-summary-data h1, .release-summary-data h2, .release-summary-data h3, 
    .release-summary-data h6 {
        font-size: 24px !important;
        color: #ffffff;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
        margin: 20px 0 16px 0;
        font-weight: 600;
        line-height: 1.3;
    }
    
    /* Ensure h4 card header keeps copper color with high specificity */
    .release-summary-data h4 {
        color: var(--color-primary) !important;
        font-size: 32px !important;
    }

    .release-summary-data p {
        color: var(--color-gray-200);
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
        font-size: 18px;
        line-height: 1.6;
        margin: 0 0 12px 0;
        font-weight: 400;
        word-wrap: break-word;
        overflow-wrap: break-word;
        max-width: 100%;
    }

    .release-summary-data ul {
        color: #f8f9fa;
        text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.6);
        font-size: 18px;
        line-height: 1.6;
        margin: 0 0 12px 0;
        padding-left: 20px;
    }

    .release-summary-data li {
        margin-bottom: 4px;
        color: #f8f9fa;
        text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.6);
    }
    
    .release-summary-data strong {
        color: #fff;
        font-weight: 600;
    }
    
    .release-summary-data em {
        color: var(--color-primary);
        font-style: italic;
    }

    /* Remove top margin on first element in summary */
    .release-summary-data > *:first-child {
        margin-top: 0 !important;
    }

    .release-summary-content {
        flex: 1;
        padding: 16px;
        overflow-y: auto;
        scrollbar-width: none;
        -ms-overflow-style: none;
        max-width: 100%;
        word-wrap: break-word;
        overflow-wrap: break-word;
    }

    .release-summary-content::-webkit-scrollbar {
        display: none;
    }

    .release-summary-placeholder {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        text-align: center;
        background: rgba(255, 255, 255, 0.15);
        backdrop-filter: blur(15px) saturate(1.2);
        color: var(--color-white);
        text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8);
        font-size: 16px;
        height: 100%;
        min-height: 150px;
        border-radius: 0px;
        border: 1px solid rgba(255, 255, 255, 0.18);
        margin: 4px;
    }

    .release-summary-placeholder .placeholder-icon {
        font-size: 48px;
        margin-bottom: 16px;
        opacity: 0.5;
    }

    .release-summary-placeholder .placeholder-text {
        line-height: 1.5;
    }

    .release-summary-data {
        max-height: 100%;
        height: 100%;
        overflow-y: auto;
        scrollbar-width: none;
        -ms-overflow-style: none;
        padding-right: 5px;
        display: flex;
        flex-direction: column;
    }

    .release-summary-data::-webkit-scrollbar {
        display: none;
    }






    .album-summary-content {
        flex: 1;
        padding: 16px;
        overflow-y: auto;
        scrollbar-width: none;
        -ms-overflow-style: none;
        max-width: 100%;
        word-wrap: break-word;
        overflow-wrap: break-word;
    }

    .album-summary-content::-webkit-scrollbar {
        display: none;
    }

    .album-summary-placeholder {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        text-align: center;
        background: rgba(255, 255, 255, 0.15);
        backdrop-filter: blur(15px) saturate(1.2);
        color: var(--color-white);
        text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8);
        font-size: 16px;
        height: 100%;
        min-height: 200px;
        border-radius: 0px;
        border: 1px solid rgba(255, 255, 255, 0.18);
        margin: 4px;
    }

    .album-summary-placeholder .placeholder-icon {
        font-size: 48px;
        margin-bottom: 16px;
        opacity: 0.5;
    }

    .album-summary-placeholder .placeholder-text {
        line-height: 1.5;
    }

    .album-summary-data {
        max-height: 100%;
        height: 100%;
        overflow-y: auto;
        scrollbar-width: none;
        -ms-overflow-style: none;
        padding-right: 5px;
        display: flex;
        flex-direction: column;
    }

    .album-summary-data::-webkit-scrollbar {
        display: none;
    }

    /* Card header (h4) - Copper, matches Now Playing album title size (32px) */
    .album-summary-data h4 {
        color: var(--color-primary);
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
        font-size: 32px;
        margin: 0 0 12px 0;
        font-weight: 700;
        text-align: left;
        line-height: 1.2;
    }

    /* Section headings (h5) - White, matches Now Playing artist name size (24px) */
    .album-summary-data h5 {
        color: #ffffff;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
        font-size: 24px;
        margin: 20px 0 16px 0;
        font-weight: 600;
        line-height: 1.3;
    }
    
    /* Section headings (h1-h3, h6) - White, matches Now Playing artist name size (24px) */
    .album-summary-data h1, .album-summary-data h2, .album-summary-data h3, 
    .album-summary-data h6 {
        font-size: 24px !important;
        color: #ffffff;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
        margin: 20px 0 16px 0;
        font-weight: 600;
        line-height: 1.3;
    }
    
    /* Ensure h4 card header keeps copper color with high specificity */
    .album-summary-data h4 {
        color: var(--color-primary) !important;
        font-size: 32px !important;
    }

    .album-summary-data p {
        color: var(--color-gray-200);
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
        font-size: 18px;
        line-height: 1.6;
        margin: 0 0 12px 0;
        word-wrap: break-word;
        overflow-wrap: break-word;
        max-width: 100%;
    }

    .album-summary-data ul {
        color: #f8f9fa;
        text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.6);
        font-size: 18px;
        line-height: 1.6;
        margin: 0 0 16px 0;
        padding-left: 20px;
    }

    .album-summary-data li {
        margin-bottom: 4px;
        color: #f8f9fa;
        text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.6);
    }
    
    .album-summary-data strong {
        color: #fff;
        font-weight: 600;
    }
    
    .album-summary-data em {
        color: var(--color-primary);
        font-style: italic;
    }

    /* Remove top margin on first element in summary */
    .album-summary-data > *:first-child {
        margin-top: 0 !important;
    }

    .summary-error {
        color: var(--color-white);
        background: rgba(220, 53, 69, 0.3);
        backdrop-filter: blur(10px);
        border: 1px solid rgba(255, 255, 255, 0.2);
        border-radius: 0px;
        padding: 12px;
        text-align: center;
        font-size: 14px;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
    }

    .placeholder-icon {
        font-size: 48px;
        margin-bottom: 16px;
        opacity: 0.9;
        text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8);
    }

    .placeholder-text {
        font-size: 14px;
        line-height: 1.4;
        opacity: 0.9;
    }

    .album-summary-title {
        font-size: 16px;
        font-weight: 600;
        color: #212529;
        margin-bottom: 12px;
        text-align: center;
        border-bottom: 1px solid #e9ecef;
        padding-bottom: 8px;
    }
    
    .artist-summary-title {
        font-size: 16px;
        font-weight: 600;
        color: var(--color-white);
        margin-bottom: 12px;
        text-align: left;
        border-bottom: 1px solid rgba(255, 255, 255, 0.3);
        padding-bottom: 8px;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
    }

    .now-playing-card {
        flex: 1;
        min-height: 0;
        max-height: 100%;
        display: flex;
        flex-direction: column;
        background: rgba(255, 255, 255, 0.01);
        backdrop-filter: blur(15px) saturate(1.2);
        border-radius: 0;
        box-shadow: 0 8px 32px rgba(0, 0, 0, 0.37);
        padding: 12px;
        padding-bottom: 0;
        border: 1px solid rgba(255, 255, 255, 0.08);
        border-top-left-radius: 0;
        border-top-right-radius: 0;
        margin-bottom: 12px;
        position: relative;
        z-index: 3;
        transition: all 0.3s ease;
        overflow: hidden;
    }

    .now-playing-card:hover {
        transform: translateY(-5px);
        box-shadow: 0 10px 30px rgba(184, 147, 111, 0.3);
    }
    
    /* Gradient copper border on hover - fades out in top 1/3 */
    .now-playing-card::before {
        content: '';
        position: absolute;
        inset: 0;
        border-radius: inherit;
        padding: 1px;
        background: linear-gradient(
            to top,
            #B8936F 0%,
            #B8936F 66%,
            transparent 100%
        );
        -webkit-mask: 
            linear-gradient(#fff 0 0) content-box, 
            linear-gradient(#fff 0 0);
        -webkit-mask-composite: xor;
        mask-composite: exclude;
        pointer-events: none;
        opacity: 0;
        transition: opacity 0.3s ease;
    }
    
    .now-playing-card:hover::before {
        opacity: 1;
    }
    
    .now-playing-card:hover {
        border-color: transparent;
    }

    .now-playing-content {
        flex: 1;
        min-height: 0;
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        align-items: flex-start;
        text-align: left;
        position: relative;
        padding: 20px;
        padding-bottom: 8px;
        overflow: hidden;
    }

    .album-art {
        width: 100%;
        max-width: none;
        height: auto;
        max-height: calc(100% - 100px);
        aspect-ratio: 1 / 1;
        border-radius: 0;
        margin: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        overflow: hidden;
        box-shadow: 0 6px 20px rgba(0,0,0,0.2);
        background: linear-gradient(135deg, #212529, #495057);
        color: white;
        flex-shrink: 1;
    }
    
    /* Smaller album art for dashboard 50/50 layout */
    .dashboard-half-height .album-art {
        max-width: 160px;
        height: 160px;
        margin-bottom: 6px;
    }

    /* Dashboard album hover overlay styling */
    .dashboard-album-container {
        position: relative;
        cursor: pointer;
    }

    .dashboard-album-overlay {
        position: absolute;
        width: min(250px, 85%);
        height: auto;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        background: linear-gradient(135deg, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.9) 100%);
        opacity: 0;
        transition: all 0.3s ease;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 6px;
        backdrop-filter: blur(2px);
        border-radius: 0;
        z-index: 10;
        pointer-events: none;
        padding: 12px;
    }

    .dashboard-album-container:hover .dashboard-album-overlay {
        opacity: 1;
        pointer-events: auto;
    }

    .dashboard-album-overlay .album-action {
        pointer-events: auto;
    }

    /* Dashboard specific button sizing */
    .dashboard-album-overlay .album-action {
        padding: 6px 12px;
        font-size: 12px;
        min-width: 110px;
        white-space: nowrap;
    }

    /* Debug: Make overlay visible for testing */
    #nowPlayingArt:hover .dashboard-album-overlay {
        opacity: 1 !important;
        pointer-events: auto !important;
    }

    /* Force square corners with maximum specificity */
    .now-playing-card,
    .now-playing-card *,
    #nowPlayingArt,
    #nowPlayingArt *,
    .album-art,
    .album-art *,
    .dashboard-album-overlay,
    .dashboard-album-overlay *,
    .dashboard-left .now-playing-card,
    .dashboard-left .now-playing-card *,
    [class*="now-playing"],
    [class*="now-playing"] *,
    div[style*="border-radius"] {
        border-radius: 0 !important;
        border-top-left-radius: 0 !important;
        border-top-right-radius: 0 !important;
        border-bottom-left-radius: 0 !important;
        border-bottom-right-radius: 0 !important;
        -webkit-border-radius: 0 !important;
        -moz-border-radius: 0 !important;
    }

    .album-art img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .album-art-placeholder {
        font-size: 64px;
        opacity: 0.9;
        color: rgba(255, 255, 255, 0.7);
        background: rgba(40, 40, 50, 0.5) !important;
        background-color: rgba(40, 40, 50, 0.5) !important;
        backdrop-filter: blur(12px) !important;
        -webkit-backdrop-filter: blur(12px) !important;
        border: 1px solid rgba(255, 255, 255, 0.1);
    }
    
    /* Inline grid icon styling in placeholder text */
    .grid-icon-inline {
        display: inline-block;
        font-size: 1.1em;
        vertical-align: middle;
        margin: 0 2px;
        opacity: 0.9;
    }

    .track-info {
        max-width: 100%;
        text-align: left;
        padding: 0 12px;
    }
    
    /* Reduced padding for dashboard 50/50 layout */
    .dashboard-half-height .track-info {
        padding: 0 8px;
    }

    /* Network Graph Icon in Now Playing Header */
    .now-playing-header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        position: relative;
    }

    .network-graph-icon {
        cursor: pointer;
        padding: 4px;
        border-radius: 0;
        transition: all 0.3s ease;
        opacity: 0.7;
    }
    
    /* Network Graph Icon - Positioned in bottom left corner of Now Playing card */
    .dashboard-left .now-playing-network-icon {
        position: absolute;
        bottom: 12px;
        left: 12px;
        width: 32px;
        height: 32px;
        cursor: pointer;
        z-index: 15;
        opacity: 0.9;
        transition: opacity 0.2s ease, transform 0.2s ease;
        background: none !important;
        background-color: transparent !important;
        border: none !important;
        padding: 0 !important;
        margin: 0 !important;
        outline: none !important;
        box-shadow: none !important;
    }
    
    .dashboard-left .now-playing-network-icon:hover {
        opacity: 1;
        transform: scale(1.1);
        background: none !important;
        background-color: transparent !important;
    }
    
    .dashboard-left .now-playing-network-icon svg {
        width: 100%;
        height: 100%;
        display: block;
    }


    /* Remove old network-graph-icon hover styles as they're now handled by .now-playing-network-icon */
    
    /* Network Graph Icon - Positioned in bottom left corner of collection album cards */
    .album-card .collection-network-icon {
        position: absolute;
        bottom: 20px;
        left: 14px;
        width: 28px;
        height: 32px;
        cursor: pointer;
        z-index: 15;
        opacity: 0.8;
        transition: opacity 0.2s ease, transform 0.2s ease;
        background: none !important;
        background-color: transparent !important;
        border: none !important;
        padding: 0 !important;
        margin: 0 !important;
        outline: none !important;
        box-shadow: none !important;
    }
    
    .album-card .collection-network-icon:hover {
        opacity: 1;
        transform: scale(1.15);
        background: none !important;
        background-color: transparent !important;
    }
    
    .album-card .collection-network-icon svg {
        width: 100%;
        height: 100%;
        display: block;
    }

    .track-title {
        font-size: 22px;
        font-weight: 700;
        margin-bottom: 6px;
        color: #FFFFFF;
        line-height: 1.1;
        text-align: left;
    }
    
    /* Smaller text for dashboard 50/50 layout */
    .dashboard-half-height .track-title {
        font-size: 18px;
        margin-bottom: 4px;
    }

    .track-artist {
        font-size: 16px;
        font-weight: 500;
        color: #CCCCCC;
        margin-bottom: 4px;
        text-align: left;
    }

    .track-year {
        font-size: 14px;
        color: #D4B896;
        text-align: left;
    }
    
    /* Smaller artist and year text for dashboard 50/50 layout */
    .dashboard-half-height .track-artist {
        font-size: 14px;
        margin-bottom: 2px;
    }
    
    .dashboard-half-height .track-year {
        font-size: 12px;
    }

    /* Now Playing flip card track info styling */
    /* Now Playing Card - Album art and track info layout */
    .now-playing-card .album-art {
        flex-shrink: 1;
        max-height: clamp(250px, 70%, 600px);
        width: auto;
        max-width: 100%;
    }
    
    .now-playing-card .track-info {
        margin-top: 12px;
        padding: 0;
        flex-shrink: 0;
    }

    .now-playing-card .track-title {
        font-size: 32px;
        font-weight: 700;
        color: #FFFFFF;
        margin: 0 0 10px 0;
        padding: 0;
        text-align: left;
        line-height: 1.2;
    }

    .now-playing-card .track-artist {
        font-size: 24px;
        font-weight: 500;
        color: #CCCCCC;
        margin: 0 0 8px 0;
        padding: 0;
        text-align: left;
        line-height: 1.2;
    }

    .now-playing-card .track-year {
        font-size: 20px;
        color: #D4B896;
        margin: 0;
        padding: 0;
        text-align: left;
        line-height: 1.2;
    }
    
    .now-playing-star-rating {
        display: flex;
        gap: 4px;
        margin-top: 8px;
    }
    
    .now-playing-star-rating .star {
        color: #B8936F;
        font-size: 20px;
        cursor: pointer;
        transition: color 0.2s ease, transform 0.1s ease;
    }
    
    .now-playing-star-rating .star:hover {
        transform: scale(1.1);
    }
    
    .now-playing-star-rating .star.empty {
        color: rgba(255, 255, 255, 0.3);
    }
    
    .now-playing-card .track-title:hover,
    .now-playing-card .track-artist:hover {
        color: #7FA0B8;
        text-decoration: underline;
        cursor: pointer;
    }

    /* Now Playing Action Buttons */
    .now-playing-actions {
        margin-top: 24px;
        display: flex;
        flex-direction: column;
        gap: 12px;
        width: 100%;
    }

    .now-playing-action-btn {
        padding: 12px 20px;
        border: none;
        border-radius: 0;
        background: rgba(184, 147, 111, 0.5);
        color: white;
        font-size: 14px;
        font-weight: 500;
        cursor: pointer;
        transition: all 0.2s ease;
        text-align: center;
        letter-spacing: 0.5px;
    }

    .now-playing-action-btn:hover {
        background: rgba(184, 147, 111, 0.7);
    }

    .now-playing-action-btn:active {
        transform: translateY(0);
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
    }

    /* Notes Button - Default Gray (no notes) */
    .now-playing-notes-btn {
        background: rgba(128, 128, 128, 0.6);
    }

    .now-playing-notes-btn:hover {
        background: rgba(128, 128, 128, 0.8);
    }

    /* Notes Button with Notes Present - Copper */
    .now-playing-notes-btn.has-notes {
        background: rgba(184, 147, 111, 0.5);
        color: #FFFFFF;
    }

    .now-playing-notes-btn.has-notes:hover {
        background: rgba(184, 147, 111, 0.7);
        color: #FFFFFF;
    }

    /* Now Playing Bottom Action Buttons - Fixed Footer */
    .now-playing-actions {
        width: 100%;
        padding: 8px 16px 12px 16px;
        box-sizing: border-box;
        flex-shrink: 0;
        margin-top: auto;
        background: rgba(0, 0, 0, 0.2);
        backdrop-filter: blur(8px);
    }
    
    .now-playing-actions .action-separator {
        height: 1px;
        background: #8F6F52;
        margin-bottom: 12px;
        opacity: 0.6;
    }
    
    .now-playing-actions .action-buttons {
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 8px;
    }
    
    .now-playing-actions .action-btn {
        flex: 1;
        background: transparent;
        border: 1px solid rgba(143, 111, 82, 0.5);
        color: #D4B896;
        padding: 10px 8px;
        font-size: 12px;
        font-weight: 500;
        border-radius: 4px;
        cursor: pointer;
        transition: all 0.2s ease;
        white-space: nowrap;
        text-align: center;
    }
    
    .now-playing-actions .action-btn:hover {
        background: rgba(184, 147, 111, 0.2);
        border-color: #B8936F;
        color: #FFFFFF;
    }
    
    .now-playing-actions .action-btn:active {
        background: rgba(184, 147, 111, 0.3);
        transform: scale(0.98);
    }
    
    .now-playing-actions .action-btn.has-notes {
        background: rgba(184, 147, 111, 0.25);
        border-color: #B8936F;
    }
    
    /* Mobile responsive for action buttons */
    @media (max-width: 480px) {
        .now-playing-actions .action-btn {
            font-size: 11px;
            padding: 8px 4px;
        }
    }

    /* ============================================
       Card Action Row (Collection/Wantlist Cards)
       ============================================ */
    .card-action-row {
        width: 100%;
        padding-top: 8px;
        box-sizing: border-box;
        margin-top: auto;
        flex-shrink: 0;
    }
    
    .card-action-separator {
        height: 1px;
        background: #8F6F52;
        margin-bottom: 6px;
        opacity: 0.5;
    }
    
    .card-action-buttons {
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 6px;
    }
    
    .card-action-icon {
        display: flex;
        align-items: center;
        justify-content: center;
        flex: 1;
        height: 32px;
        background: rgba(143, 111, 82, 0.3);
        border: 1px solid rgba(143, 111, 82, 0.4);
        color: #D4B896;
        border-radius: 0;
        cursor: pointer;
        transition: all 0.2s ease;
        padding: 0;
    }
    
    .card-action-icon svg {
        width: 14px;
        height: 14px;
    }
    
    .card-action-icon:hover {
        background: rgba(184, 147, 111, 0.3);
        border-color: #B8936F;
        color: #FFFFFF;
    }
    
    .card-action-icon:active {
        background: rgba(184, 147, 111, 0.4);
        transform: scale(0.95);
    }
    
    /* Notes icon with existing notes - highlighted */
    .card-action-icon.has-notes {
        background: rgba(184, 147, 111, 0.25);
        border-color: #B8936F;
        color: #D4B896;
    }
    
    .card-action-icon.has-notes:hover {
        background: rgba(184, 147, 111, 0.4);
        color: #FFFFFF;
    }
    
    /* Play button - accent styling */
    .card-action-icon.play-btn {
        background: rgba(184, 147, 111, 0.2);
        border-color: rgba(184, 147, 111, 0.6);
    }
    
    .card-action-icon.play-btn:hover {
        background: rgba(184, 147, 111, 0.5);
        border-color: #B8936F;
    }
    
    /* Remove button - subtle red on hover */
    .card-action-icon.remove-btn:hover {
        background: rgba(180, 100, 100, 0.3);
        border-color: rgba(180, 100, 100, 0.6);
        color: #E0B0B0;
    }
    
    /* Mobile responsive for card action icons */
    @media (max-width: 480px) {
        .card-action-icon {
            width: 28px;
            height: 28px;
        }
        
        .card-action-icon svg {
            width: 14px;
            height: 14px;
        }
    }
    
    /* Adjust collection card front to use flexbox for proper layout */
    .collection-card-front {
        display: flex;
        flex-direction: column;
        height: 100%;
    }
    
    .collection-card-front .album-info {
        flex-shrink: 0;
    }
    
    /* Wantlist card wrapper layout */
    .wantlist-card-wrapper {
        display: flex;
        flex-direction: column;
        height: 100%;
    }
    
    .wantlist-card-wrapper .album-info {
        flex-shrink: 0;
    }

    /* Now Playing Control Bar */
    .now-playing-control-bar {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 8px 0;
        margin-top: 8px;
        flex-wrap: nowrap;
        min-width: 0;
    }
    
    /* Responsive: smaller icons on narrow viewports */
    @media (max-width: 400px) {
        .now-playing-control-bar .now-playing-discogs-search-icon,
        .now-playing-control-bar .now-playing-change-album-icon {
            width: 28px;
            height: 28px;
            padding: 4px;
        }
    }
    
    /* Change Album Icon (visualization grid) */
    .now-playing-change-album-icon {
        position: relative;
        width: 36px;
        height: 36px;
        cursor: pointer;
        opacity: 0.7;
        transition: opacity 0.2s ease, transform 0.2s ease;
        background: rgba(0, 0, 0, 0.3);
        backdrop-filter: blur(5px);
        border: 1px solid rgba(255, 255, 255, 0.2);
        border-radius: 4px;
        padding: 6px;
        display: flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
    }

    .now-playing-change-album-icon svg rect {
        fill: #8F6F52;
    }
    
    .now-playing-change-album-icon:hover {
        opacity: 1;
        transform: scale(1.1);
        background: rgba(184, 147, 111, 0.4);
        border-color: rgba(184, 147, 111, 0.6);
    }
    
    .now-playing-change-album-icon:hover svg rect {
        fill: #B8936F;
        opacity: 1;
    }

    .now-playing-change-album-icon svg {
        width: 100%;
        height: 100%;
        display: block;
    }

    .now-playing-discogs-search-icon {
        position: relative;
        width: 36px;
        height: 36px;
        cursor: pointer;
        opacity: 0.7;
        transition: opacity 0.2s ease, transform 0.2s ease;
        background: rgba(0, 0, 0, 0.3);
        backdrop-filter: blur(5px);
        border: 1px solid rgba(255, 255, 255, 0.2);
        border-radius: 4px;
        padding: 6px;
        display: flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
    }

    .now-playing-discogs-search-icon:hover {
        opacity: 1;
        transform: scale(1.1);
        background: rgba(184, 147, 111, 0.4);
        border-color: rgba(184, 147, 111, 0.6);
    }
    
    .now-playing-discogs-search-icon svg circle,
    .now-playing-discogs-search-icon svg line {
        stroke: #8F6F52;
    }
    
    .now-playing-discogs-search-icon:hover svg circle,
    .now-playing-discogs-search-icon:hover svg line {
        stroke: #B8936F;
        opacity: 1;
    }

    .now-playing-discogs-search-icon svg {
        width: 100%;
        height: 100%;
        display: block;
    }

    .discogs-search-modal .search-modal-content {
        max-width: 650px;
    }

    .discogs-search-toggle {
        display: flex;
        gap: 0;
        margin-bottom: 16px;
    }

    .discogs-search-toggle-btn {
        flex: 1;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 0;
        padding: 10px 16px;
        background: #444;
        border: none;
        border-radius: 0;
        color: #fff;
        font-size: 14px;
        font-weight: 500;
        cursor: pointer;
        transition: all 0.2s ease;
        position: relative;
    }

    .discogs-search-toggle-btn svg {
        display: none;
    }

    .discogs-search-toggle-btn:not(:disabled):hover {
        background: #555;
    }

    .discogs-search-toggle-btn.active {
        background: #666;
        color: #fff;
    }

    .discogs-search-toggle-btn.disabled-tab {
        background: var(--color-gray-700);
        color: #888;
        cursor: not-allowed;
    }

    .coming-soon-badge {
        font-size: 9px;
        background: rgba(255, 255, 255, 0.15);
        padding: 2px 5px;
        border-radius: 3px;
        text-transform: uppercase;
        letter-spacing: 0.5px;
        color: #aaa;
    }

    .discogs-modal-results {
        max-height: 400px;
        overflow-y: auto;
        border-bottom: 1px solid #8F6F52;
        padding-bottom: 16px;
    }

    .discogs-result-item {
        display: flex;
        align-items: center;
        padding: 12px;
        border: 1px solid rgba(255, 255, 255, 0.2);
        border-radius: 0px;
        margin-bottom: 10px;
        cursor: pointer;
        transition: all 0.2s ease;
        background: rgba(0, 0, 0, 0.3);
    }

    .discogs-result-item:hover {
        background: rgba(184, 147, 111, 0.2);
        border-color: var(--color-primary);
        transform: translateY(-1px);
    }

    .discogs-result-image {
        width: 60px;
        height: 60px;
        border-radius: 0px;
        overflow: hidden;
        flex-shrink: 0;
        background: rgba(255, 255, 255, 0.05);
        display: flex;
        align-items: center;
        justify-content: center;
        margin-right: 15px;
        border: 1px solid rgba(255, 255, 255, 0.2);
    }

    .discogs-result-image img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .discogs-result-info {
        flex: 1;
        min-width: 0;
    }

    .discogs-result-title {
        font-weight: 600;
        color: var(--color-white);
        margin-bottom: 4px;
        line-height: 1.3;
    }

    .discogs-result-artist {
        font-size: 0.9em;
        color: rgba(255, 255, 255, 0.7);
        margin-bottom: 2px;
    }

    .discogs-result-meta {
        font-size: 0.8em;
        color: rgba(255, 255, 255, 0.5);
    }

    /* Image Search Styles */
    .image-search-container {
        padding: 16px 0;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        flex: 1;
        min-height: 0;
    }

    .image-upload-area {
        border: 2px dashed rgba(255, 255, 255, 0.3);
        border-radius: 8px;
        padding: 24px;
        text-align: center;
        cursor: pointer;
        transition: all 0.2s ease;
        background: rgba(0, 0, 0, 0.2);
        min-height: 180px;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .image-upload-area:hover,
    .image-upload-area.dragover {
        border-color: var(--color-primary);
        background: rgba(184, 147, 111, 0.1);
    }

    .image-upload-placeholder {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 12px;
        color: rgba(255, 255, 255, 0.6);
    }

    .image-upload-placeholder svg {
        stroke: rgba(255, 255, 255, 0.4);
    }

    .image-upload-placeholder p {
        margin: 0;
        font-size: 14px;
    }

    .image-upload-hint {
        font-size: 12px !important;
        color: rgba(255, 255, 255, 0.4) !important;
    }

    .image-preview-container {
        position: relative;
        display: flex;
        justify-content: center;
        align-items: center;
        width: 100%;
        height: 100%;
    }

    #imagePreview {
        max-width: 100%;
        max-height: 200px;
        object-fit: contain;
        border-radius: 4px;
    }

    .image-remove-btn {
        position: absolute;
        top: -8px;
        right: -8px;
        width: 28px;
        height: 28px;
        border-radius: 50%;
        background: var(--color-error);
        border: none;
        color: white;
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: transform 0.2s;
    }

    .image-remove-btn:hover {
        transform: scale(1.1);
    }

    .image-search-actions {
        display: flex;
        gap: 12px;
        margin-top: 16px;
    }

    .image-action-btn {
        flex: 1;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        padding: 12px 16px;
        background: #444;
        border: none;
        border-radius: 0;
        color: #fff;
        font-size: 14px;
        cursor: pointer;
        transition: background 0.2s;
    }

    .image-action-btn:hover {
        background: #555;
    }

    .analyze-image-btn {
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        padding: 14px 20px;
        margin-top: 16px;
        background: linear-gradient(135deg, var(--color-primary) 0%, #9A7B5B 100%);
        border: none;
        border-radius: 0;
        color: #fff;
        font-size: 15px;
        font-weight: 600;
        cursor: pointer;
        transition: all 0.2s;
    }

    .analyze-image-btn:hover:not(:disabled) {
        background: linear-gradient(135deg, #C9A47F 0%, #AA8B6B 100%);
        transform: translateY(-1px);
    }

    .analyze-image-btn:disabled {
        opacity: 0.5;
        cursor: not-allowed;
    }

    .vision-loading {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 12px;
        padding: 20px;
        background: rgba(0, 0, 0, 0.3);
        border-radius: 6px;
        margin-top: 16px;
        color: rgba(255, 255, 255, 0.8);
    }

    .vision-result {
        background: rgba(40, 167, 69, 0.15);
        border: 1px solid rgba(40, 167, 69, 0.4);
        border-radius: 8px;
        padding: 16px;
        margin-top: 16px;
    }

    .vision-result-header {
        display: flex;
        align-items: center;
        gap: 8px;
        color: #28a745;
        font-weight: 600;
        margin-bottom: 12px;
    }

    .vision-album-info {
        padding: 8px 0;
    }

    .vision-album-artist {
        font-size: 13px;
        color: rgba(255, 255, 255, 0.7);
        margin-bottom: 4px;
    }

    .vision-album-title {
        font-size: 18px;
        font-weight: 600;
        color: #fff;
        margin-bottom: 4px;
    }

    .vision-album-year {
        font-size: 13px;
        color: rgba(255, 255, 255, 0.6);
    }

    .vision-album-extra {
        font-size: 12px;
        color: rgba(255, 255, 255, 0.5);
        margin-top: 8px;
    }

    .vision-confidence {
        font-size: 12px;
        color: rgba(255, 255, 255, 0.5);
        margin-top: 8px;
    }

    .confidence-high {
        color: #28a745;
    }

    .confidence-medium {
        color: var(--color-warning);
    }

    .confidence-low {
        color: var(--color-error);
    }

    .vision-search-btn {
        width: 100%;
        padding: 12px;
        margin-top: 12px;
        background: var(--color-primary);
        border: none;
        border-radius: 0;
        color: #fff;
        font-weight: 600;
        cursor: pointer;
        transition: background 0.2s;
    }

    .vision-search-btn:hover {
        background: #C9A47F;
    }

    .vision-error {
        background: rgba(220, 53, 69, 0.15);
        border: 1px solid rgba(220, 53, 69, 0.4);
        border-radius: 8px;
        padding: 16px;
        margin-top: 16px;
        color: var(--color-error);
    }

    .vision-unidentified {
        color: rgba(255, 255, 255, 0.8);
    }

    .vision-suggestions {
        margin-top: 12px;
        padding-top: 12px;
        border-top: 1px solid rgba(255, 255, 255, 0.1);
    }

    .vision-suggestions ul {
        margin: 8px 0 0 0;
        padding-left: 20px;
    }

    .vision-suggestions li {
        margin-bottom: 4px;
        color: rgba(255, 255, 255, 0.6);
    }

    .vision-suggestion-item:hover {
        color: #D4AF37;
        text-decoration: underline;
    }

    .vision-visual-features {
        margin-top: 12px;
        padding: 12px;
        background: rgba(255, 255, 255, 0.05);
        border-radius: 6px;
        border: 1px solid rgba(255, 255, 255, 0.1);
    }

    .vision-visual-features > div {
        margin-bottom: 6px;
        font-size: 12px;
        color: rgba(255, 255, 255, 0.7);
    }

    .vision-visual-features > div:last-child {
        margin-bottom: 0;
    }

    .vision-visual-features strong {
        color: var(--color-gray-200);
    }

    .vision-era,
    .vision-genre {
        margin-top: 8px;
        font-size: 12px;
        color: rgba(255, 255, 255, 0.6);
    }

    .vision-era strong,
    .vision-genre strong {
        color: rgba(255, 255, 255, 0.8);
    }

    /* Camera Modal */
    .camera-modal {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: rgba(0, 0, 0, 0.9);
        z-index: 2001;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .camera-modal-content {
        background: #222;
        border-radius: 12px;
        max-width: 600px;
        width: 95%;
        overflow: hidden;
    }

    .camera-modal-header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 16px 20px;
        border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    }

    .camera-modal-header h3 {
        margin: 0;
        color: #fff;
    }

    .camera-modal-close {
        background: none;
        border: none;
        color: rgba(255, 255, 255, 0.6);
        font-size: 24px;
        cursor: pointer;
        padding: 0;
        line-height: 1;
    }

    .camera-container {
        background: #000;
        aspect-ratio: 4/3;
    }

    .camera-container video {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .camera-actions {
        display: flex;
        justify-content: center;
        padding: 20px;
        background: var(--color-gray-900);
    }

    .camera-capture-btn {
        width: 64px;
        height: 64px;
        border-radius: 50%;
        background: #fff;
        border: 4px solid rgba(255, 255, 255, 0.3);
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: transform 0.1s;
    }

    .camera-capture-btn:hover {
        transform: scale(1.05);
    }

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

    .camera-capture-btn svg {
        fill: var(--color-primary);
    }

    .now-playing-controls {
        padding: 16px 20px;
        border-top: 1px solid #e9ecef;
        background: #f8f9fa;
    }

    .control-row {
        display: flex;
        gap: 12px;
        margin-bottom: 12px;
    }

    .navigation-row {
        display: flex;
        gap: 8px;
        margin-top: 12px;
    }
    
    /* Pulse button styles removed - auto-generation now handles this */

    .control-btn {
        flex: 1;
        padding: 12px 16px;
        border: 1px solid #e9ecef;
        background: white;
        border-radius: 0;
        font-weight: 500;
        cursor: pointer;
        transition: all 0.2s;
        font-size: 14px;
    }

    .control-btn:hover:not(:disabled) {
        background: #f8f9fa;
        transform: translateY(-1px);
    }

    .control-btn:disabled {
        opacity: 0.5;
        cursor: not-allowed;
        background: #f8f9fa;
        color: #6c757d;
    }

    .collection-btn { border-color: #0dcaf0; color: #0dcaf0; }
    .collection-btn:hover:not(:disabled) { background: #0dcaf0; color: white; border-color: #0dcaf0; }

    /* Full width collection button styled like VinylVerseAI banner */
    .full-width-btn {
        width: 100% !important;
        position: relative;
        background: linear-gradient(135deg, #667eea 0%, #764ba2 50%, #f093fb 100%) !important;
        border: none !important;
        border-radius: 12px !important;
        color: white !important;
        font-size: 16px !important;
        font-weight: 600 !important;
        letter-spacing: 0.3px !important;
        text-shadow: 1px 1px 4px rgba(0,0,0,0.3) !important;
        box-shadow: 0 4px 16px rgba(0,0,0,0.1) !important;
        transition: all 0.3s ease !important;
        cursor: pointer !important;
        overflow: hidden !important;
        min-height: 60px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        margin: 0 !important;
    }

    .full-width-btn:hover:not(:disabled) {
        transform: translateY(-2px) !important;
        box-shadow: 0 6px 24px rgba(0,0,0,0.15) !important;
        background: linear-gradient(135deg, #5a67d8 0%, #667eea 50%, #e879f9 100%) !important;
    }

    .full-width-btn:active {
        transform: translateY(0) !important;
        box-shadow: 0 4px 16px rgba(0,0,0,0.1) !important;
    }

    .log-listen-btn { border-color: #28a745; color: #28a745; }
    .log-listen-btn:hover:not(:disabled) { background: #28a745; color: white; border-color: #28a745; }

    /* Listening Log Modal Styles */
    #logListenModal .modal-content {
        max-width: 500px;
        margin: 5% auto;
        background: var(--color-gray-900);
        color: var(--color-white);
        border-radius: 0;
        box-shadow: 0 10px 30px rgba(0,0,0,0.2);
    }
    
    #logListenModal .modal-header {
        padding: 20px 24px 16px 24px;
        border-bottom: 1px solid #8F6F52;
        box-shadow: inset 0 -2px 8px rgba(143, 111, 82, 0.3);
        display: flex;
        justify-content: space-between;
        align-items: center;
        background: var(--color-gray-900);
    }
    
    #logListenModal .modal-header h3 {
        margin: 0;
        color: #B8936F;
        font-size: 18px;
        font-weight: 600;
    }
    
    #logListenModal .modal-body {
        padding: 24px;
    }
    
    #logListenModal .close {
        font-size: 24px;
        font-weight: bold;
        cursor: pointer;
        color: #B8936F;
        background: none;
        border: none;
        padding: 0;
        width: 24px;
        height: 24px;
        display: flex;
        align-items: center;
        justify-content: center;
        border-radius: 0;
        transition: all 0.2s;
    }
    
    #logListenModal .close:hover {
        background-color: rgba(184, 147, 111, 0.1);
        color: #D4B896;
    }
    
    #logListenModal .album-info {
        display: flex;
        align-items: center;
        gap: 12px;
        margin-bottom: 16px;
        padding: 12px;
        background: rgba(255, 255, 255, 0.05) !important;
        border: 1px solid rgba(255, 255, 255, 0.1);
        border-radius: 0;
    }
    
    #logListenModal .album-info h4 {
        margin: 0;
        color: var(--color-white) !important;
    }
    
    #logListenModal .album-info p {
        margin: 4px 0 0 0;
        color: #CCCCCC !important;
        font-size: 14px;
    }
    
    #logListenModal input[type="datetime-local"],
    #logListenModal textarea {
        background: rgba(255, 255, 255, 0.1) !important;
        color: var(--color-white) !important;
        border: 1px solid rgba(255, 255, 255, 0.2) !important;
    }
    
    #logListenModal input[type="datetime-local"]:focus,
    #logListenModal textarea:focus {
        outline: none !important;
        border-color: var(--color-primary) !important;
        box-shadow: 0 0 0 3px rgba(184, 147, 111, 0.2) !important;
    }
    
    #logListenModal input[type="datetime-local"]::-webkit-calendar-picker-indicator {
        filter: invert(1);
    }
    
    #logListenModal button[type="submit"] {
        background: rgba(184, 147, 111, 0.2) !important;
        color: var(--color-primary) !important;
        border: 1px solid var(--color-primary) !important;
        transition: all 0.2s ease !important;
    }
    
    #logListenModal button[type="submit"]:hover {
        background: var(--color-primary) !important;
        color: var(--color-white) !important;
    }
    
    #logListenModal button[data-action="close-log-listen-modal"] {
        background: rgba(255, 255, 255, 0.05) !important;
        color: var(--color-white) !important;
        border: 1px solid rgba(255, 255, 255, 0.2) !important;
        transition: all 0.2s ease !important;
    }
    
    #logListenModal button[data-action="close-log-listen-modal"]:hover {
        background: rgba(255, 255, 255, 0.1) !important;
        border-color: rgba(255, 255, 255, 0.3) !important;
    }

    /* Note icon styles for collection cards - HIDDEN */
    .collection-item .note-icon {
        display: none;
    }

    .audio-btn { border-color: #198754; color: #198754; }
    .visual-btn { border-color: #fd7e14; color: #fd7e14; }

    .wantlist-btn {
        width: 100%;
        padding: 16px;
        background: #6f42c1;
        color: white;
        border: none;
        border-radius: 0;
        font-weight: 600;
        font-size: 16px;
        cursor: pointer;
        transition: all 0.2s;
    }

    .wantlist-btn:hover:not(:disabled) {
        background: #5a2d91;
        transform: translateY(-1px);
    }

    .wantlist-btn:disabled {
        background: #adb5bd;
        cursor: not-allowed;
        transform: none;
    }

    .search-ai-row {
        display: flex;
        gap: 12px;
        width: 100%;
    }

    .search-btn {
        flex: 1;
        padding: 16px;
        background: #6f42c1;
        color: white;
        border: none;
        border-radius: 0;
        font-weight: 600;
        font-size: 16px;
        cursor: pointer;
        transition: all 0.2s;
    }

    .search-btn:hover:not(:disabled) {
        background: #5a2d91;
        transform: translateY(-1px);
    }

    .search-btn:disabled {
        background: #adb5bd;
        cursor: not-allowed;
        transform: none;
    }

    .ai-insights-btn {
        flex: 1;
        padding: 16px;
        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
        color: white;
        border: none;
        border-radius: 0;
        font-weight: 600;
        font-size: 16px;
        cursor: pointer;
        transition: all 0.2s;
    }

    .ai-insights-btn:hover:not(:disabled) {
        background: linear-gradient(135deg, #5a6fd8 0%, #6a4190 100%);
        transform: translateY(-1px);
    }

    .ai-insights-btn:disabled {
        background: #adb5bd;
        cursor: not-allowed;
        transform: none;
    }

    .dashboard-right {
        flex: 1;
        width: 33.33%;
        display: flex;
        flex-direction: column;
        gap: 16px;
        min-height: 100%;
        position: relative;
        z-index: 2;
        overflow: visible;
    }

    .stats-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 16px;
        flex-shrink: 0;
    }
    
    .quick-chat-card {
        grid-column: 1 / -1;
        background: rgba(255, 255, 255, 0.15);
        backdrop-filter: blur(15px) saturate(1.2);
        padding: 16px;
        border-radius: 0px;
        box-shadow: 0 8px 32px rgba(0, 0, 0, 0.37);
        border: 1px solid rgba(255, 255, 255, 0.18);
        margin-bottom: 8px;
        flex-shrink: 0;
        position: relative;
        z-index: 3;
    }
    
    .quick-chat-header {
        display: flex;
        align-items: center;
        gap: 8px;
        margin-bottom: 16px;
    }
    
    .quick-chat-header h3 {
        margin: 0;
        color: var(--color-white);
        font-size: 20px;
        font-weight: 600;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
    }
    
    .quick-chat-form {
        display: flex;
        flex-direction: column;
        gap: 12px;
    }
    
    .context-selector {
        display: flex;
        align-items: center;
        gap: 8px;
    }
    
    .context-selector label {
        font-size: 14px;
        color: var(--color-white);
        font-weight: 500;
        min-width: 60px;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
    }

    .quick-context-buttons {
        display: flex;
        align-items: center;
        gap: 4px;
        flex: 1;
    }

    .quick-context-btn {
        background: none;
        border: none;
        color: rgba(255, 255, 255, 0.7);
        font-size: 13px;
        font-weight: 500;
        cursor: pointer;
        padding: 4px 8px;
        border-radius: 0;
        transition: all 0.2s ease;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
    }

    .quick-context-btn:hover {
        color: var(--color-gray-200);
        background: rgba(255, 255, 255, 0.1);
    }

    .quick-context-btn.active {
        color: var(--color-white);
        background: linear-gradient(90deg, transparent 0%, rgba(255, 215, 0, 0.4) 50%, transparent 100%);
        font-weight: 600;
    }

    .context-separator {
        color: rgba(255, 255, 255, 0.5);
        font-size: 12px;
        margin: 0 4px;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
    }
    
    .context-select {
        flex: 1;
        padding: 8px 12px;
        border: 1px solid #ddd;
        border-radius: 6px;
        font-size: 14px;
        font-family: inherit;
        background: white;
    }
    
    .quick-chat-input-row {
        display: flex;
        gap: 8px;
        align-items: flex-end;
    }
    
    .quick-chat-input {
        flex: 1;
        padding: 10px 12px;
        border: 1px solid rgba(255, 255, 255, 0.3);
        border-radius: 6px;
        font-size: 16px;
        font-family: inherit;
        resize: none;
        min-height: 40px;
        max-height: 80px;
        background: rgba(255, 255, 255, 0.1);
        color: var(--color-white);
        backdrop-filter: blur(10px);
    }

    .quick-chat-input::placeholder {
        color: rgba(255, 255, 255, 0.7);
    }

    .dashboard-half-height .quick-chat-input::placeholder {
        color: rgba(255, 255, 255, 0.7);
    }

    .quick-chat-input:focus {
        outline: none;
        border-color: var(--color-gray-400);
        box-shadow: 0 0 0 3px rgba(119, 119, 119, 0.1);
    }
    
    .quick-chat-send {
        padding: 10px 16px;
        background: rgba(85, 85, 85, 0.8);
        color: white;
        border: none;
        border-radius: 6px;
        font-size: 14px;
        font-weight: 600;
        cursor: pointer;
        transition: background 0.2s;
        min-width: 60px;
    }
    
    .quick-chat-send:hover {
        background: rgba(68, 68, 68, 0.9);
    }
    
    .quick-chat-send:disabled {
        background: #adb5bd;
        cursor: not-allowed;
    }

    .stat-card {
        background: linear-gradient(135deg, 
            rgba(255, 255, 255, 0.15) 0%, 
            rgba(255, 255, 255, 0.05) 100%
        );
        backdrop-filter: blur(15px) saturate(1.2);
        padding: 14px;
        border-radius: 0px;
        box-shadow: 0 8px 32px rgba(0, 0, 0, 0.37);
        border: 1px solid rgba(255, 255, 255, 0.18);
        text-align: center;
        transition: all 0.3s ease;
        height: 90px;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        position: relative;
        overflow: hidden;
    }

    .stat-card::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: rgba(85, 85, 85, 0.18);
        pointer-events: none;
        z-index: 1;
    }

    .stat-card > * {
        position: relative;
        z-index: 2;
    }

    .stat-card:hover {
        transform: translateY(-5px);
        box-shadow: 0 10px 30px rgba(184, 147, 111, 0.3);
        border-color: #B8936F;
    }

    .stat-card:hover::before {
        background: rgba(85, 85, 85, 0.23);
    }

    .records-card { border-top: 4px solid rgba(119, 119, 119, 0.8); }
    .artists-card { border-top: 4px solid rgba(85, 85, 85, 0.8); }
    .value-card { border-top: 4px solid rgba(68, 68, 68, 0.8); }
    .wantlist-card { border-top: 4px solid rgba(51, 51, 51, 0.8); }

    .stat-number {
        font-size: 18px;
        font-weight: 600;
        margin-bottom: 4px;
        line-height: 1;
        color: var(--color-white);
    }

    .stat-label {
        font-size: 13px;
        color: #FFD700;
        font-weight: 600;
        margin-bottom: 2px;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
    }
    
    /* Smaller stats for dashboard 50/50 layout */
    .dashboard-half-height .stat-number {
        font-size: 14px;
        margin-bottom: 2px;
    }
    
    .dashboard-half-height .stat-label {
        font-size: 11px;
        margin-bottom: 1px;
        color: #FFD700;
        font-weight: 600;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
    }
    
    /* AI Insights header to match stat card numbers */
    .dashboard-half-height .quick-chat-header h3 {
        font-size: 14px;
        margin: 0 0 8px 0;
        font-weight: 600;
    }
    
    /* Search Discogs header to match stat card numbers */
    .dashboard-half-height .search-header h3 {
        font-size: 14px;
        margin: 0 0 8px 0;
        font-weight: 600;
    }
    
    /* Square search input for dashboard */
    .dashboard-half-height .search-input {
        padding: 8px 10px;
        font-size: 13px;
        border-radius: 0px;
    }
    
    /* Square quick chat input and send button for dashboard */
    .dashboard-half-height .quick-chat-input {
        padding: 8px 10px;
        font-size: 13px;
        border-radius: 0px;
        min-height: 32px;
        max-height: 60px;
        background: rgba(85, 85, 85, 0.15);
        color: var(--color-white);
        border: 1px solid rgba(255, 255, 255, 0.3);
        backdrop-filter: blur(10px);
    }
    
    .dashboard-half-height .quick-chat-send {
        padding: 8px 10px;
        font-size: 13px;
        border-radius: 0px;
        min-width: 40px;
    }

    .stat-change {
        font-size: 11px;
        color: #f8f9fa;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
    }

    /* Stats removed placeholder styling */
    .stats-removed-placeholder {
        display: flex;
        align-items: center;
        justify-content: center;
        background: linear-gradient(135deg, 
            rgba(255, 255, 255, 0.15) 0%, 
            rgba(255, 255, 255, 0.05) 100%
        );
        backdrop-filter: blur(15px) saturate(1.2);
        border-radius: 0px;
        box-shadow: 0 8px 32px rgba(0, 0, 0, 0.37);
        border: 1px solid rgba(255, 255, 255, 0.18);
    }

    .stats-moved-message {
        text-align: center;
        color: rgba(255, 255, 255, 0.8);
        padding: 20px;
    }

    .stats-moved-message p {
        margin: 8px 0;
        font-size: 14px;
        line-height: 1.4;
    }

    .stats-moved-message strong {
        color: #FFD700;
        font-weight: 600;
    }

    /* Album Details Card - Following Dashboard Pattern */
    .album-details-card {
        background: rgba(255, 255, 255, 0.85);
        backdrop-filter: blur(8px);
        border-radius: 0px;
        box-shadow: 0 2px 8px rgba(0,0,0,0.15);
        border: 1px solid rgba(255, 255, 255, 0.18);
        padding: 0;
        overflow: hidden;
        display: flex;
        flex-direction: column;
        position: relative;
        z-index: 3;
    }

    .album-details-content {
        flex: 1;
        overflow-y: auto;
        padding: 16px;
        font-size: 12px;
        color: var(--color-gray-200);
        line-height: 1.4;
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        scrollbar-width: none;
        -ms-overflow-style: none;
    }

    .album-details-content::-webkit-scrollbar {
        display: none;
    }
    
    /* Dashboard Floating Expand Button - Default Top Right */
    .dashboard-floating-expand {
        position: absolute;
        top: 8px;
        right: 8px;
        background: transparent;
        border: none;
        color: #8F6F52;
        font-size: 16px;
        cursor: pointer;
        padding: 4px;
        border-radius: 0;
        transition: all 0.2s ease;
        display: flex;
        align-items: center;
        justify-content: center;
        min-width: 24px;
        height: 24px;
        z-index: 10;
        opacity: 0.7;
        text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
    }
    
    .dashboard-floating-expand:hover {
        background: rgba(184, 147, 111, 0.2);
        color: #B8936F;
        transform: scale(1.15);
        opacity: 1;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
    }
    
    /* Dashboard Refresh Button - Bottom Right */
    .dashboard-refresh-btn {
        position: absolute;
        bottom: 8px;
        right: 8px;
        background: transparent;
        border: none;
        cursor: pointer;
        padding: 4px;
        border-radius: 0;
        transition: all 0.2s ease;
        display: flex;
        align-items: center;
        justify-content: center;
        min-width: 24px;
        min-height: 24px;
        z-index: 10;
        opacity: 0.7;
    }
    
    .dashboard-refresh-btn:hover {
        background: rgba(184, 147, 111, 0.2);
        transform: scale(1.15);
        opacity: 1;
    }
    
    .dashboard-refresh-btn img {
        transition: filter 0.2s ease;
        filter: sepia(1) saturate(0.5) hue-rotate(-10deg) brightness(0.7);
    }
    
    .dashboard-refresh-btn:hover img {
        filter: sepia(1) saturate(0.7) hue-rotate(-10deg) brightness(0.9) drop-shadow(0 0 4px rgba(184, 147, 111, 0.5));
    }
    
    /* Move Now Playing network icon to bottom left of entire card - Override all other positioning */
    .now-playing-card .network-graph-icon {
        position: absolute !important;
        bottom: 8px !important;
        left: 8px !important;
        right: auto !important;
        top: auto !important;
        transform: none !important;
        z-index: 10;
    }
    
    /* Dashboard Card Modal Styles - Large like Album-artist-album View */
    .dashboard-modal {
        display: none;
        position: fixed;
        z-index: 1001;
        left: 0;
        top: 0;
        width: 100%;
        height: 100%;
        background-color: rgba(0, 0, 0, 0.8);
        justify-content: center;
        align-items: center;
        backdrop-filter: blur(5px);
    }
    
    .dashboard-modal-content {
        background: rgba(30, 30, 30, 0.95);
        color: var(--color-white);
        backdrop-filter: blur(10px);
        border-radius: 0;
        box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
        border: 1px solid rgba(255, 255, 255, 0.15);
        width: 90vw;
        max-width: 1200px;
        height: 85vh;
        max-height: 800px;
        display: flex;
        flex-direction: column;
        overflow: hidden;
    }
    
    .dashboard-modal-header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 20px 24px;
        border-bottom: 2px solid #8F6F52;
        background: rgba(30, 30, 30, 0.95);
        flex-shrink: 0;
        position: relative;
        box-shadow: inset 0 -2px 8px rgba(143, 111, 82, 0.3);
    }
    
    .dashboard-modal-header h2 {
        margin: 0;
        font-size: 22px;
        font-weight: 600;
        color: #B8936F !important;
        text-shadow: none !important;
    }
    
    .dashboard-modal-close {
        background: none;
        border: none;
        font-size: 28px;
        cursor: pointer;
        color: #666;
        padding: 4px 8px;
        border-radius: 0;
        transition: all 0.2s ease;
        line-height: 1;
    }
    
    .dashboard-modal-close:hover {
        background: rgba(0, 0, 0, 0.1);
        color: var(--color-gray-700);
    }
    
    .dashboard-modal-body {
        flex: 1;
        padding: 24px;
        overflow-y: auto;
        font-size: 14px;
        line-height: 1.6;
        color: var(--color-gray-500) !important;
        text-shadow: none !important;
        scrollbar-width: thin;
        scrollbar-color: #ccc #f1f1f1;
    }
    
    /* Force override for all text in dashboard modals - Maximum Specificity */
    .dashboard-modal-body,
    .dashboard-modal-body *:not(.word-cloud-item),
    .dashboard-modal-body p,
    .dashboard-modal-body div,
    .dashboard-modal-body span:not(.word-cloud-item),
    .dashboard-modal-body h1,
    .dashboard-modal-body h2,
    .dashboard-modal-body h3,
    .dashboard-modal-body h4,
    .dashboard-modal-body h5,
    .dashboard-modal-body h6,
    .dashboard-modal-body li,
    .dashboard-modal-body ul,
    .dashboard-modal-body ol,
    .dashboard-modal-body strong,
    .dashboard-modal-body em,
    .dashboard-modal-body b,
    .dashboard-modal-body i {
        color: var(--color-white) !important;
        text-shadow: none !important;
    }
    
    /* Exception: Keep hyperlinks visible with copper accent */
    .dashboard-modal-body a,
    .dashboard-modal-body a:link,
    .dashboard-modal-body a:visited {
        color: var(--color-primary) !important;
        text-decoration: underline !important;
    }
    
    /* Override for stat numbers in dashboard modals - sage green */
    .dashboard-modal-body .viz-stats-number-large {
        color: #9FA88F !important;
    }
    
    .dashboard-modal-body a:hover {
        color: #d4a87c !important;
    }
    
    /* Pulse content individual card styling - TARGET ACTUAL CONTENT ELEMENTS */
    .dashboard-modal[data-card-type="pulse-content"] .dashboard-modal-body .pulse-content-text,
    .dashboard-modal[data-card-type="pulse-content"] .dashboard-modal-body p {
        background: rgba(255, 255, 255, 0.05) !important;
        backdrop-filter: blur(15px) !important;
        -webkit-backdrop-filter: blur(15px) !important;
        border: 1px solid rgba(255, 255, 255, 0.1) !important;
        border-radius: 0 !important;
        padding: 20px !important;
        margin: 16px 0 !important;
        box-shadow: 0 6px 24px rgba(0, 0, 0, 0.15), 0 2px 8px rgba(0, 0, 0, 0.1) !important;
        color: var(--color-white) !important;
        text-shadow: none !important;
        font-size: 16px !important;
        line-height: 1.6 !important;
        transition: transform 0.2s ease, box-shadow 0.2s ease !important;
        display: block !important;
    }
    
    .dashboard-modal[data-card-type="pulse-content"] .dashboard-modal-body .pulse-content-text:hover,
    .dashboard-modal[data-card-type="pulse-content"] .dashboard-modal-body p:hover {
        transform: translateY(-2px) !important;
        box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2), 0 4px 12px rgba(0, 0, 0, 0.15) !important;
    }
    
    /* Remove container styling to prevent nested cards - but NOT for pulse-content-text */
    .dashboard-modal[data-card-type="pulse-content"] .dashboard-modal-body .pulse-content-item {
        background: transparent !important;
        border: none !important;
        box-shadow: none !important;
        padding: 0 !important;
        margin: 0 !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }
    
    .dashboard-modal[data-card-type="pulse-content"] .dashboard-modal-body > div:not(.pulse-content-item):not(.pulse-auto-loading-container) {
        background: transparent !important;
        border: none !important;
        box-shadow: none !important;
        padding: 0 !important;
        margin: 0 !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }
    
    /* Exception: Don't style the loading container */
    .dashboard-modal[data-card-type="pulse-content"] .pulse-auto-loading-container,
    .dashboard-modal[data-card-type="pulse-content"] .pulse-loading-more,
    .dashboard-modal[data-card-type="pulse-content"] .pulse-end-message {
        background: transparent !important;
        border: none !important;
        box-shadow: none !important;
        padding: 20px !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }
    
    /* Auto-scroll loading styles for Pulse Content Modal */
    .dashboard-modal[data-card-type="pulse-content"] .dashboard-modal-body {
        max-height: 70vh;
        overflow-y: auto;
        padding-right: 15px;
    }
    
    .dashboard-modal[data-card-type="pulse-content"] .dashboard-modal-body::-webkit-scrollbar {
        width: 6px;
    }
    
    .dashboard-modal[data-card-type="pulse-content"] .dashboard-modal-body::-webkit-scrollbar-track {
        background: transparent;
    }
    
    .dashboard-modal[data-card-type="pulse-content"] .dashboard-modal-body::-webkit-scrollbar-thumb {
        background: rgba(255, 255, 255, 0.2);
        border-radius: 3px;
    }
    
    .dashboard-modal[data-card-type="pulse-content"] .pulse-loading-more {
        text-align: center;
        padding: 20px;
        color: var(--color-gray-400);
        font-style: italic;
    }
    
    /* Now Playing modal - Full-size album cover viewer */
    .dashboard-modal[data-card-type="now-playing"] .dashboard-modal-content {
        width: auto;
        height: auto;
        max-width: 95vw;
        max-height: 95vh;
        background: transparent;
        box-shadow: none;
        border: none;
        border-radius: 0;
        padding: 0;
        margin: 0;
    }
    
    .dashboard-modal[data-card-type="now-playing"] .dashboard-modal-header {
        display: none;
    }
    
    .dashboard-modal[data-card-type="now-playing"] .dashboard-modal-body {
        padding: 0;
        background: transparent;
        display: flex;
        align-items: center;
        justify-content: center;
        height: auto;
        width: auto;
        border: none;
        border-radius: 0;
    }
    
    .dashboard-modal[data-card-type="now-playing"] .dashboard-modal-body img {
        max-width: 95vw;
        max-height: 95vh;
        width: auto;
        height: auto;
        object-fit: contain;
        border-radius: 0;
        border: none;
        box-shadow: 0 10px 50px rgba(0, 0, 0, 0.5);
    }
    
    /* Hide any overlay buttons that might appear in the Now Playing modal */
    .dashboard-modal[data-card-type="now-playing"] .dashboard-album-overlay,
    .dashboard-modal[data-card-type="now-playing"] .album-action {
        display: none !important;
    }
    
    .dashboard-modal-body::-webkit-scrollbar {
        width: 8px;
    }
    
    .dashboard-modal-body::-webkit-scrollbar-track {
        background: rgba(255, 255, 255, 0.05);
        border-radius: 0;
    }
    
    .dashboard-modal-body::-webkit-scrollbar-thumb {
        background: rgba(255, 255, 255, 0.2);
        border-radius: 0;
    }
    
    .dashboard-modal-body::-webkit-scrollbar-thumb:hover {
        background: rgba(255, 255, 255, 0.3);
    }

    /* Album Details Placeholder */
    .album-details-placeholder {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        height: 100%;
        text-align: center;
        opacity: 0.7;
    }

    .album-details-placeholder .placeholder-text {
        margin-top: 16px;
        font-size: 14px;
        color: rgba(255, 255, 255, 0.8);
        line-height: 1.4;
    }

    /* Album Details Loading State */
    .album-details-content .loading-state {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        height: 100%;
        text-align: center;
    }

    .album-details-content .loading-text {
        margin-top: 12px;
        font-size: 14px;
        color: rgba(255, 255, 255, 0.8);
    }

    /* Album Details Error State */
    .album-details-content .error-state {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        height: 100%;
        text-align: center;
    }

    .album-details-content .error-icon {
        font-size: 32px;
        margin-bottom: 12px;
    }

    .album-details-content .error-text {
        margin-bottom: 16px;
        font-size: 14px;
        color: rgba(255, 255, 255, 0.8);
    }

    .album-details-content .retry-btn {
        background: rgba(255, 215, 0, 0.2);
        border: 1px solid rgba(255, 215, 0, 0.4);
        color: #FFD700;
        padding: 8px 16px;
        border-radius: 0;
        cursor: pointer;
        font-size: 12px;
        transition: all 0.2s ease;
    }

    .album-details-content .retry-btn:hover {
        background: rgba(255, 215, 0, 0.3);
        border-color: #FFD700;
    }

    .album-details-content .no-details-message {
        text-align: center;
        padding: 20px;
        color: rgba(255, 255, 255, 0.6);
        font-style: italic;
    }

    /* Album details styling */
    .album-header {
        margin-bottom: 12px;
        padding-bottom: 8px;
        border-bottom: 1px solid rgba(255, 255, 255, 0.15);
    }

    .album-header h4 {
        margin: 0 0 4px 0;
        font-size: 13px;
        font-weight: 600;
        color: var(--color-white);
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
    }

    .album-year {
        font-size: 11px;
        color: #FFD700;
        font-weight: 500;
    }

    .album-metadata {
        margin-bottom: 10px;
    }

    .metadata-row {
        margin: 6px 0;
        font-size: 11px;
        color: rgba(255, 255, 255, 0.85);
    }

    .metadata-row strong {
        color: #FFD700;
        font-weight: 600;
    }

    .album-section {
        margin-bottom: 12px;
        border-top: 1px solid rgba(255, 255, 255, 0.1);
        padding-top: 8px;
    }

    .section-header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        cursor: pointer;
        padding: 4px 0;
        font-size: 11px;
        color: #FFD700;
        font-weight: 600;
        user-select: none;
    }

    .section-header:hover {
        background: rgba(255, 255, 255, 0.05);
        border-radius: 2px;
    }

    .toggle-icon {
        font-size: 10px;
        transition: transform 0.2s ease;
    }

    .section-content {
        padding: 6px 0;
        transition: all 0.3s ease;
    }

    .section-content.collapsed {
        max-height: 0;
        padding: 0;
        overflow: hidden;
        opacity: 0;
    }

    .track-item {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 2px 0;
        font-size: 16px;
        color: var(--color-gray-400);
        border-bottom: 1px solid rgba(255, 255, 255, 0.05);
    }

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

    .track-position {
        min-width: 25px;
        color: #FFFFFF;
        font-weight: normal;
    }

    .track-title {
        flex: 1;
        margin: 0 8px;
    }

    .track-duration {
        color: #8F6F52;
        font-size: 16px;
        font-weight: bold;
    }

    .track-artists {
        color: var(--color-gray-400) !important;
        font-size: 14px;
        font-style: italic;
        font-weight: normal !important;
        padding-left: 33px;
        margin-top: -2px;
        margin-bottom: 4px;
    }

    .show-more-tracks {
        text-align: center;
        padding: 6px;
        cursor: pointer;
        color: #FFD700;
        font-size: 10px;
        font-weight: 600;
        border: 1px dashed rgba(255, 215, 0, 0.3);
        border-radius: 0;
        margin-top: 4px;
        transition: all 0.2s ease;
    }

    .show-more-tracks:hover {
        background: rgba(255, 215, 0, 0.1);
        border-color: rgba(255, 215, 0, 0.5);
    }

    .company-item {
        padding: 2px 0;
        font-size: 16px;
        color: var(--color-gray-400);
        font-weight: normal;
    }

    .album-details-data .company-item {
        font-size: 16px;
        color: var(--color-gray-200);
        font-weight: normal;
    }

    .label-item {
        padding: 2px 0;
        font-size: 16px;
        color: var(--color-gray-200);
        font-weight: normal;
    }

    .album-details-data .label-item {
        font-size: 16px;
        color: var(--color-gray-200);
        font-weight: normal;
    }

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

    .video-item {
        margin: 4px 0;
    }

    .video-item a {
        color: #7FA0B8 !important;
        text-decoration: none;
        font-size: 16px;
        font-weight: normal;
        display: inline-block;
        transition: all 0.2s ease;
    }

    .album-details-data .video-item a {
        color: #7FA0B8 !important;
        font-size: 16px;
        font-weight: normal;
    }

    .video-item a:hover {
        color: #7290A6 !important;
        text-decoration: underline;
    }

    .album-details-data .video-item a:hover {
        color: #7290A6 !important;
        text-decoration: underline;
    }

    .no-album-message,
    .no-details-message,
    .error-message {
        text-align: center;
        color: rgba(255, 255, 255, 0.6);
        font-style: italic;
        padding: 20px;
        font-size: 11px;
    }
    }

    .no-album-message {
        text-align: center;
        color: rgba(255, 255, 255, 0.6);
        font-style: italic;
        padding: 20px 0;
    }

    .album-header {
        margin-bottom: 12px;
        padding-bottom: 8px;
        border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    }

    .album-title {
        font-weight: 600;
        font-size: 13px;
        color: #555;
        margin: 0 0 4px 0;
    }

    .album-artist {
        font-size: 11px;
        color: #FFD700;
        margin: 0;
    }

    .detail-section {
        margin-bottom: 10px;
    }

    .detail-label {
        font-weight: 600;
        color: #8F6F52;
        font-size: 11px;
        margin-bottom: 3px;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }

    .detail-content {
        font-size: 11px;
        color: var(--color-gray-200);
        margin-bottom: 2px;
    }

    .genre-style-tags {
        display: flex;
        flex-wrap: wrap;
        gap: 4px;
        margin-top: 3px;
    }

    .genre-tag, .style-tag {
        background: rgba(255, 215, 0, 0.2);
        color: #FFD700;
        padding: 2px 6px;
        border-radius: 3px;
        font-size: 10px;
        font-weight: 500;
    }

    .tracklist-section {
        margin-top: 8px;
    }

    .track-item {
        display: flex;
        justify-content: space-between;
        padding: 1px 0;
        font-size: 10px;
        border-bottom: 1px solid rgba(255, 255, 255, 0.05);
    }

    .track-position {
        color: #FFFFFF;
        min-width: 20px;
        font-weight: normal;
    }

    .track-title {
        flex: 1;
        margin: 0 6px;
        color: #FFFFFF;
        font-size: 16px;
        font-weight: normal;
    }

    .track-duration {
        color: #8F6F52;
        font-size: 16px;
        font-weight: bold;
        min-width: 30px;
        text-align: right;
    }

    .track-artists {
        color: var(--color-gray-400) !important;
        font-size: 12px;
        font-style: italic;
        font-weight: normal !important;
        padding-left: 25px;
        margin-top: -1px;
        margin-bottom: 2px;
    }

    .show-more-tracks {
        text-align: center;
        margin-top: 6px;
    }

    .show-more-btn {
        background: none;
        border: 1px solid rgba(255, 215, 0, 0.4);
        color: #FFD700;
        padding: 3px 8px;
        border-radius: 3px;
        font-size: 10px;
        cursor: pointer;
        transition: all 0.2s ease;
    }

    .show-more-btn:hover {
        background: rgba(255, 215, 0, 0.1);
        border-color: #FFD700;
    }

    .format-info {
        display: flex;
        align-items: center;
        gap: 4px;
        margin-top: 2px;
    }

    .format-tag {
        background: rgba(255, 255, 255, 0.1);
        color: var(--color-gray-200);
        padding: 2px 6px;
        border-radius: 3px;
        font-size: 10px;
    }

    .video-link {
        color: #7FA0B8;
        text-decoration: none;
        font-size: 10px;
        display: block;
        margin-top: 2px;
        transition: color 0.2s ease;
    }

    .video-link:hover {
        color: #7290A6;
        text-decoration: underline;
    }

    /* Album Details Card styling */
    .album-details-container {
        display: flex;
        flex-direction: column;
    }

    .album-details-card {
        background: rgba(255, 255, 255, 0.85);
        backdrop-filter: blur(8px);
        border-radius: 0px;
        box-shadow: 0 2px 8px rgba(0,0,0,0.15);
        border: 1px solid rgba(255, 255, 255, 0.18);
        padding: 16px;
        height: 100%;
        display: flex;
        flex-direction: column;
        overflow: hidden;
    }

    .album-details-header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-bottom: 12px;
        border-bottom: 1px solid rgba(255, 255, 255, 0.2);
        padding-bottom: 8px;
    }

    .album-details-header h3 {
        font-size: 14px;
        font-weight: 600;
        margin: 0;
        color: #555;
    }

    .album-details-loading {
        display: none;
    }

    .album-details-loading.active {
        display: block;
    }

    .album-details-content {
        flex: 1;
        overflow-y: auto;
        scrollbar-width: none;
        -ms-overflow-style: none;
    }

    .album-details-content::-webkit-scrollbar {
        display: none;
    }

    .no-album-message {
        text-align: center;
        color: var(--color-gray-400);
        font-size: 16px;
        padding: 20px;
        line-height: 1.4;
    }

    .album-basic-info {
        margin-bottom: 16px;
        padding-bottom: 12px;
        border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    }

    .album-title {
        font-size: 16px;
        font-weight: 600;
        color: #555;
        margin-bottom: 4px;
        line-height: 1.2;
    }

    .album-artist {
        font-size: 14px;
        color: #555;
        margin-bottom: 4px;
    }

    .album-year-country {
        font-size: 16px;
        color: var(--color-gray-400);
    }

    .album-section {
        margin-bottom: 12px;
    }

    .album-section-title {
        font-size: 12px;
        font-weight: 600;
        color: #555;
        margin-bottom: 6px;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }

    .album-tags {
        display: flex;
        flex-wrap: wrap;
        gap: 4px;
        margin-bottom: 8px;
    }

    .album-tag {
        background: rgba(255, 255, 255, 0.1);
        color: var(--color-gray-400);
        padding: 2px 6px;
        border-radius: 3px;
        font-size: 16px;
    }

    .tracklist-preview {
        font-size: 16px;
        color: var(--color-gray-400);
        line-height: 1.3;
    }

    .track-item {
        display: flex;
        justify-content: space-between;
        margin-bottom: 2px;
        padding: 1px 0;
    }

    .track-position {
        color: #FFFFFF;
        font-size: 16px;
        font-weight: normal;
        min-width: 25px;
    }

    .track-title {
        flex: 1;
        margin: 0 8px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .track-duration {
        color: #8F6F52;
        font-size: 16px;
        font-weight: bold;
        min-width: 30px;
        text-align: right;
    }

    .track-artists {
        color: var(--color-gray-400) !important;
        font-size: 12px;
        font-style: italic;
        font-weight: normal !important;
        padding-left: 33px;
        margin-top: -1px;
        margin-bottom: 2px;
    }

    .show-more-tracks {
        color: #FFD700;
        font-size: 10px;
        cursor: pointer;
        text-decoration: underline;
        margin-top: 4px;
        display: block;
    }

    .show-more-tracks:hover {
        color: var(--color-white);
    }

    .format-info, .label-info, .video-info {
        font-size: 11px;
        color: rgba(255, 255, 255, 0.8);
        line-height: 1.3;
    }

    .video-link {
        color: #7FA0B8;
        text-decoration: none;
        font-size: 10px;
    }

    .video-link:hover {
        color: #7290A6;
        text-decoration: underline;
    }

    .search-section {
        background: linear-gradient(135deg, 
            rgba(255, 255, 255, 0.15) 0%, 
            rgba(255, 255, 255, 0.05) 100%
        );
        backdrop-filter: blur(15px) saturate(1.2);
        border-radius: 0px;
        box-shadow: 0 8px 32px rgba(0, 0, 0, 0.37);
        border: 1px solid rgba(255, 255, 255, 0.18);
        padding: 16px;
        display: flex;
        flex-direction: column;
        margin-bottom: 0;
        min-height: 0;
        overflow: hidden;
        position: relative;
    }

    .search-section::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: rgba(85, 85, 85, 0.18);
        pointer-events: none;
        z-index: 1;
    }

    .search-section > * {
        position: relative;
        z-index: 2;
    }
    
    /* Dashboard 50/50 layout for search section */
    .dashboard-half-height.search-section {
        padding: 10px;
        flex: 0 0 calc(50% - 8px);
        height: calc(50% - 8px);
        min-height: calc(50% - 8px);
        max-height: calc(50% - 8px);
        display: flex;
        flex-direction: column;
    }

    .search-results-container {
        flex: 1;
        display: flex;
        flex-direction: column;
        min-height: 0;
        margin-top: 8px;
    }
    
    /* Smaller search results for dashboard 50/50 layout */
    .dashboard-half-height .search-results-container {
        margin-top: 6px;
        max-height: calc(100% - 80px); /* Reserve space for header and pagination */
    }

    .search-results-container .pagination {
        flex-shrink: 0;
        margin-top: auto;
        padding-top: 12px;
    }

    /* COMMENTED OUT - Pulse iframe section not being used
    .pulse-iframe-section {
        background: white;
        border-radius: 12px;
        box-shadow: 0 2px 8px rgba(0,0,0,0.1);
        padding: 12px;
        flex: 1;
        overflow: hidden;
        display: flex;
        flex-direction: column;
    }

    .pulse-iframe-header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-bottom: 16px;
    }

    .pulse-iframe-header h3 {
        font-size: 20px;
        font-weight: 600;
        color: #212529;
        margin: 0;
    }

    .pulse-iframe-container {
        flex: 1;
        min-height: 0;
        border-radius: 0;
        overflow: hidden;
        border: 1px solid #e9ecef;
    }

    .pulse-iframe {
        width: 100%;
        height: 100%;
        border: none;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }
    */

    /* New Native Pulse Content Card Styles - Base styles only */
    .pulse-content-card {
        background: rgba(0, 0, 0, 0.60);
        backdrop-filter: blur(15px) saturate(1.2);
        border-radius: 0px;
        box-shadow: 0 8px 32px rgba(0, 0, 0, 0.37);
        border: 1px solid rgba(255, 255, 255, 0.18);
        display: flex;
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        overflow: hidden;
        position: relative;
        z-index: 3;
        transition: all 0.3s ease;
    }

    .pulse-content-card:hover {
        transform: translateY(-5px);
        box-shadow: 0 10px 30px rgba(184, 147, 111, 0.3);
        border-color: #B8936F;
    }

    .pulse-content-header {
        padding: 16px 16px 0 16px;
        margin-top: 0;
        position: relative;
        top: 0;
    }

    .pulse-content-header h4 {
        color: #FFD700;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
        font-size: 14px;
        margin: 0 0 8px 0;
        font-weight: 600;
        text-align: center;
    }

    .pulse-content-actions {
        display: flex;
        gap: 8px;
    }

    .refresh-pulse-btn, .generate-pulse-btn {
        background: rgba(255, 255, 255, 0.1);
        border: 1px solid rgba(255, 255, 255, 0.3);
        border-radius: 6px;
        padding: 8px 12px;
        color: white;
        font-size: 16px;
        cursor: pointer;
        transition: all 0.3s ease;
        text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.7);
    }

    .refresh-pulse-btn:hover, .generate-pulse-btn:hover {
        background: rgba(255, 255, 255, 0.2);
        transform: translateY(-1px);
    }

    .pulse-content-container {
        flex: 1;
        padding: 16px;
        overflow-y: auto;
        scrollbar-width: none;
        -ms-overflow-style: none;
    }

    .pulse-content-container::-webkit-scrollbar {
        display: none;
    }
    
    /* Infinite scroll loader styles */
    .pulse-scroll-loader {
        text-align: center;
        padding: 20px;
        margin-top: 12px;
    }
    
    .scroll-loading-text {
        color: rgba(255, 255, 255, 0.7);
        font-size: 14px;
        font-style: italic;
    }
    
    .scroll-loading-spinner {
        color: rgba(255, 255, 255, 0.8);
        font-size: 14px;
        animation: pulse 1.5s ease-in-out infinite;
    }
    
    .scroll-error {
        color: rgba(255, 100, 100, 0.8);
        font-size: 14px;
        font-style: italic;
    }
    
    @keyframes pulse {
        0%, 100% { opacity: 0.6; }
        50% { opacity: 1; }
    }
    
    .no-more-content {
        color: rgba(255, 255, 255, 0.6);
        font-style: italic;
        text-align: center;
        padding: 12px;
    }

    /* Pulse card footer - fixed at bottom of card */
    .pulse-card-footer {
        padding: 12px 16px;
        border-top: 1px solid rgba(255, 255, 255, 0.1);
        background: rgba(0, 0, 0, 0.3);
        flex-shrink: 0;
    }

    .pulse-card-footer .summary-instructions-row {
        display: flex;
        gap: 10px;
        align-items: center;
    }

    .pulse-card-footer .summary-custom-instructions {
        flex: 1;
    }

    /* Ensure pulse card uses flexbox for proper footer positioning */
    .pulse-content-card {
        display: flex;
        flex-direction: column;
    }

    .pulse-content-placeholder {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        text-align: center;
        height: 100%;
        min-height: 200px;
        color: rgba(255, 255, 255, 0.7);
    }

    .pulse-content-placeholder .placeholder-icon {
        font-size: 48px;
        margin-bottom: 16px;
        opacity: 0.6;
    }

    /* Unified Loading State Styles for All Cards */
    .content-loading-state {
        display: flex;
        align-items: center;
        justify-content: center;
        height: 100%;
        min-height: 200px;
        width: 100%;
    }

    .loading-content {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        text-align: center;
        gap: 12px;
        width: 100%;
    }

    .loading-icon {
        display: flex;
        justify-content: center;
        align-items: center;
    }
    
    .vinyl-loading-spinner {
        width: 108px;
        height: 108px;
        background-image: url('/static/vinyl-record-loading-lg.svg');
        background-size: contain;
        background-repeat: no-repeat;
        background-position: center;
        animation: vinyl-spin 2s linear infinite;
        margin: 0 auto;
        display: block;
        transform-origin: center center;
    }

    .loading-text {
        color: var(--color-gray-200);
        font-size: 16px;
        font-weight: 500;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
        text-align: center;
        margin: 12px auto 0 auto;
        width: 100%;
        white-space: normal;
        word-wrap: break-word;
        line-height: 1.4;
        max-width: 300px;
    }

    @keyframes vinyl-spin {
        0% { 
            transform: rotate(0deg);
        }
        100% { 
            transform: rotate(360deg);
        }
    }

    .pulse-content-placeholder .placeholder-text {
        font-size: 16px;
        line-height: 1.5;
        opacity: 0.8;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
    }

    .pulse-content-item {
        background: rgba(0, 0, 0, 0.82);
        border: 1px solid rgba(255, 255, 255, 0.2);
        border-radius: 0;
        padding: 16px;
        margin-bottom: 16px;
        color: var(--color-gray-200);
        font-size: 18px;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
    }

    .pulse-content-item:last-child {
        margin-bottom: 0;
    }

    .pulse-content-item h4 {
        margin: 0 0 8px 0;
        color: #FFD700;
        font-size: 16px;
        font-weight: 600;
    }
    
    .pulse-content-text {
        color: var(--color-gray-200);
        font-size: 18px;
        line-height: 1.5;
    }
    
    .pulse-content-text strong {
        color: #fff;
        font-weight: 600;
    }
    
    .pulse-content-text em {
        color: #ffd700;
        font-style: italic;
    }

    .pulse-content-item p {
        margin: 0 0 8px 0;
        line-height: 1.6;
        font-size: 18px;
    }

    .pulse-content-item p:last-child {
        margin-bottom: 0;
    }

    .pulse-content-loading {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        text-align: center;
        height: 100%;
        min-height: 200px;
        color: rgba(255, 255, 255, 0.7);
    }

    .pulse-content-loading .loading-spinner {
        font-size: 24px;
        animation: spin 1s linear infinite;
        margin-bottom: 16px;
    }

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

    /* Pulse Generation Animation */
    .pulse-content-generating {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        text-align: center;
        height: 100%;
        min-height: 200px;
        color: var(--color-gray-200);
    }

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

    .vinyl-record-animation {
        display: flex;
        justify-content: center;
        align-items: center;
    }

    .spinning-vinyl {
        style="width: 180px; height: 180px;"
        filter: drop-shadow(0 4px 8px rgba(0,0,0,0.3));
    }

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

    .generating-text {
        font-size: 18px;
        font-weight: 600;
        color: #FFD700;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
    }

    .generating-subtext {
        font-size: 14px;
        color: rgba(255, 255, 255, 0.7);
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
    }

    .search-header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-bottom: 20px;
    }

    .search-header h3 {
        font-size: 20px;
        font-weight: 600;
        color: var(--color-white);
        margin: 0;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
    }

    .refresh-btn {
        background: none;
        border: 1px solid rgba(255, 255, 255, 0.3);
        border-radius: 6px;
        padding: 8px 12px;
        cursor: pointer;
        color: var(--color-white);
        transition: all 0.2s;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
    }

    .refresh-btn:hover {
        background: rgba(255, 255, 255, 0.1);
        border-color: rgba(255, 255, 255, 0.5);
        color: var(--color-white);
    }

    .search-input {
        width: 100%;
        padding: 12px 16px;
        border: 1px solid rgba(255, 255, 255, 0.3);
        border-radius: 0px;
        font-size: 16px;
        margin-bottom: 20px;
        transition: border-color 0.2s;
        background: rgba(255, 255, 255, 0.1);
        color: var(--color-white);
        backdrop-filter: blur(10px);
    }

    .search-input::placeholder {
        color: rgba(255, 255, 255, 0.7);
    }

    .search-input:focus {
        outline: none;
        border-color: var(--color-gray-400);
        box-shadow: 0 0 0 3px rgba(119, 119, 119, 0.1);
    }

    /* This rule is removed to prevent conflicts with the main search-results styling */

    .search-placeholder {
        text-align: center;
        padding: 40px 20px;
        color: var(--color-white);
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
    }

    .search-placeholder-icon {
        font-size: 48px;
        margin-bottom: 16px;
        opacity: 0.5;
    }

    .search-placeholder-text {
        font-size: 16px;
        line-height: 1.4;
    }
    
    /* Search Discogs Page Styles */
    .page.search-discogs-page {
        padding: 0;
        height: calc(100vh - 80px) !important;
        background: #1a1a1a;
        width: 100%;
        box-sizing: border-box;
        overflow: hidden !important;
        flex-direction: column !important;
        min-height: auto !important;
        position: relative;
    }
    
    /* Mosaic background container */
    .search-discogs-mosaic-container {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 0;
        overflow: hidden;
        pointer-events: none;
    }
    
    /* Content wrapper above mosaic */
    .search-discogs-content {
        position: relative;
        z-index: 1;
        padding: 20px 40px 10px 40px;
        height: 100%;
        display: flex;
        flex-direction: column;
        box-sizing: border-box;
    }
    
    .page.search-discogs-page.active {
        display: flex !important;
    }
    
    .search-discogs-header {
        margin-bottom: 15px; /* Further reduced margin */
        flex-shrink: 0; /* Prevent header from shrinking */
    }
    
    .search-discogs-header h2 {
        margin: 0 0 10px 0; /* Much smaller margin */
        font-size: 28px;
        color: var(--color-white);
        font-weight: 600;
        text-align: left;
        text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8);
    }
    
    .search-discogs-input-row {
        display: flex;
        gap: 10px;
        align-items: center;
    }
    
    .search-discogs-input-section {
        flex: 1;
        position: relative;
    }
    
    .search-discogs-input {
        width: 100%;
        padding: 14px 45px 14px 16px;
        border: 1px solid var(--color-primary);
        border-radius: 0px;
        font-size: 16px;
        background: rgba(255, 255, 255, 0.1);
        color: var(--color-white);
        box-sizing: border-box;
        backdrop-filter: blur(10px);
    }
    
    .search-discogs-input::placeholder {
        color: rgba(255, 255, 255, 0.5);
    }
    
    .search-discogs-input:focus {
        outline: none;
        border-color: var(--color-primary);
        box-shadow: 0 0 12px rgba(184, 147, 111, 0.5);
    }
    
    .search-discogs-voice-btn {
        position: absolute;
        right: 10px;
        top: 50%;
        transform: translateY(-50%);
        background: transparent;
        border: none;
        color: var(--color-primary);
        cursor: pointer;
        padding: 5px;
        display: flex;
        align-items: center;
        justify-content: center;
        opacity: 0.8;
        transition: opacity 0.2s ease;
    }
    
    .search-discogs-voice-btn:hover {
        opacity: 1;
    }
    
    .search-discogs-results-container {
        flex: 1;
        overflow-y: auto;
        overflow-x: hidden;
        margin-top: 10px; /* Further reduced margin */
        width: 100%;
        box-sizing: border-box;
        scrollbar-width: none; /* Firefox */
        -ms-overflow-style: none; /* IE/Edge */
        min-height: 0; /* Allow flex shrinking */
    }
    
    .search-discogs-results-container::-webkit-scrollbar {
        display: none; /* Chrome/Safari/Opera */
    }
    
    .search-discogs-placeholder {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        height: 200px;
        color: var(--color-white);
    }
    
    .search-discogs-placeholder-text {
        font-size: 20px;
        font-weight: 500;
        text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8);
        font-size: 18px;
        text-align: center;
    }
    
    .search-page-image-btn {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 48px;
        height: 48px;
        padding: 0;
        background: rgba(184, 147, 111, 0.2);
        border: 1px solid var(--color-primary);
        border-radius: 0;
        color: var(--color-primary);
        cursor: pointer;
        transition: all 0.2s ease;
        flex-shrink: 0;
    }
    
    .search-page-image-btn:hover {
        background: var(--color-primary);
        color: var(--color-white);
        transform: translateY(-1px);
        box-shadow: 0 2px 8px rgba(184, 147, 111, 0.4);
    }
    
    .search-page-image-btn:active {
        transform: translateY(0);
    }
    
    .search-page-image-btn svg {
        display: block;
    }
    
    .search-page-image-btn span {
        display: none;
    }
    
    .search-discogs-results {
        display: flex;
        flex-direction: column;
        gap: 12px;
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }
    
    .search-discogs-item {
        display: flex;
        align-items: center;
        background: rgba(0, 0, 0, 0.6);
        backdrop-filter: blur(10px);
        border: 1px solid rgba(255, 255, 255, 0.1);
        border-radius: 0px;
        padding: 16px;
        transition: all 0.2s ease;
        box-shadow: 0 2px 4px rgba(0,0,0,0.3);
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
        user-select: none; /* Prevent text selection */
        -webkit-user-select: none; /* Safari */
        -moz-user-select: none; /* Firefox */
        cursor: grab; /* Show grab cursor for scrolling */
        overflow: hidden;
    }
    
    .search-discogs-item:hover {
        transform: translateY(-1px);
        box-shadow: 0 4px 12px rgba(0,0,0,0.5);
        background: rgba(0, 0, 0, 0.7);
        border-color: rgba(255, 255, 255, 0.2);
    }
    
    .search-discogs-item .result-image {
        width: 80px;
        height: 80px;
        margin-right: 16px;
        flex-shrink: 0;
        background: #f8f9fa;
        border-radius: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        overflow: hidden;
    }
    
    .search-discogs-item .result-info {
        flex: 1;
        margin-right: 16px;
        min-width: 0;
        overflow: hidden;
    }
    
    .search-discogs-item .result-title {
        font-size: 16px;
        font-weight: 600;
        color: var(--color-white);
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
        margin-bottom: 4px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    
    .search-discogs-item .result-subtitle {
        font-size: 14px;
        color: var(--color-gray-100);
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
        margin-bottom: 4px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    
    .search-discogs-item .result-meta {
        font-size: 12px;
        color: var(--color-gray-300);
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    
    .search-discogs-item .result-actions {
        display: grid;
        user-select: auto; /* Allow text selection on buttons */
        -webkit-user-select: auto;
        -moz-user-select: auto;
        grid-template-columns: 1fr 1fr;
        grid-template-rows: 1fr 1fr;
        gap: 6px;
        flex-shrink: 0;
        width: 200px;
        margin-right: 16px;
    }
    
    .search-discogs-item .result-btn {
        cursor: pointer !important; /* Ensure buttons remain clickable */
        user-select: none; /* Prevent button text selection */
        -webkit-user-select: none;
        -moz-user-select: none;
    }
    
    .search-discogs-loading {
        text-align: center;
        padding: 40px;
        color: var(--color-white);
        font-size: 16px;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
    }
    
    .search-discogs-loading img {
        width: 80px;
        height: 80px;
        animation: spin 2s linear infinite;
        margin-bottom: 16px;
    }
    
    .search-discogs-end {
        text-align: center;
        padding: 30px;
        color: var(--color-white);
        font-style: italic;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
        border-top: 1px solid rgba(255, 255, 255, 0.2);
        margin-top: 20px;
    }
    
    /* Mobile: Stack image above info in search results */
    @media (max-width: 480px) {
        .search-discogs-item {
            flex-wrap: wrap;
            padding: 12px;
        }
        
        .search-discogs-item .result-image {
            width: auto;
            height: auto;
            aspect-ratio: 1 / 1;
            max-width: 120px;
            margin-right: 12px;
            margin-bottom: 10px;
        }
        
        .search-discogs-item .result-info {
            width: 100%;
            margin-right: 0;
            margin-bottom: 10px;
            order: 2;
        }
        
        .search-discogs-item .result-title {
            font-size: 14px;
            white-space: normal;
            line-height: 1.3;
        }
        
        .search-discogs-item .result-subtitle {
            font-size: 12px;
            white-space: normal;
        }
        
        .search-discogs-item .result-meta {
            font-size: 11px;
            white-space: normal;
        }
        
        .search-discogs-item .result-actions {
            width: 100%;
            margin-right: 0;
            order: 3;
            justify-content: space-between;
        }
        
        .search-discogs-item .result-actions .result-btn:nth-child(odd) {
            justify-self: start;
        }
        
        .search-discogs-item .result-actions .result-btn:nth-child(even) {
            justify-self: end;
        }
    }
    /* End Search Discogs Page Styles */
    
    /* Collection Network Page Styles */
    .collection-network-page {
        padding: 60px 40px 10px 40px;
        height: calc(100vh - 80px) !important;
        background: #000000;
        width: 100%;
        box-sizing: border-box;
        overflow: hidden !important;
        flex-direction: column !important;
        min-height: auto !important;
        position: relative;
    }
    
    .collection-network-page::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: url('/static/images/network-background.png') center calc(50% + 110px) no-repeat; /* +50px shifts down */
        background-size: cover;
        filter: blur(2px); /* Adjust blur: 3px, 5px, 8px, etc. */
        z-index: 0;
    }
    
    .collection-network-container {
        height: 100%;
        display: flex;
        flex-direction: column;
        max-width: none;
        width: 100%;
        position: relative;
        z-index: 1; /* Above the blurred background */
    }
    
    .collection-network-content {
        flex: 1;
        display: flex;
        flex-direction: column;
        height: 100%;
    }
    
    .collection-network-search-container {
        margin-bottom: 20px;
        flex-shrink: 0;
    }
    
    .collection-network-visualization-container {
        flex: 1;
        min-height: 500px;
        background: transparent;
        border: 1px solid rgba(255, 255, 255, 0.1);
        border-radius: 0px;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
        overflow: hidden;
    }
    
    .collection-network-header {
        margin-bottom: 15px; /* Match Search Discogs margin */
        flex-shrink: 0; /* Prevent header from shrinking */
    }
    
    .collection-network-controls {
        display: flex;
        gap: 12px;
        align-items: stretch;
        width: 100%;
    }
    
    .collection-network-search {
        flex: 1;
        position: relative;
    }
    
    .collection-network-perspective {
        flex-shrink: 0;
    }
    
    .network-perspective-dropdown {
        height: 100%;
        min-width: 150px;
        padding: 12px 16px;
        border: 1px solid var(--color-primary);
        border-radius: 0px;
        font-size: 14px;
        background: rgba(255, 255, 255, 0.1);
        color: var(--color-white);
        backdrop-filter: blur(10px);
        cursor: pointer;
        appearance: none;
        -webkit-appearance: none;
        -moz-appearance: none;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23B8936F' d='M6 8L2 4h8z'/%3E%3C/svg%3E");
        background-repeat: no-repeat;
        background-position: right 12px center;
        padding-right: 36px;
    }
    
    .network-perspective-dropdown:hover {
        border-color: var(--color-primary);
        box-shadow: 0 0 8px rgba(184, 147, 111, 0.3);
    }
    
    .network-perspective-dropdown:focus {
        outline: none;
        border-color: var(--color-primary);
        box-shadow: 0 0 12px rgba(184, 147, 111, 0.5);
    }
    
    .network-perspective-dropdown option {
        background: #1e1e1e;
        color: #fff;
        padding: 8px;
    }
    
    #collectionNetworkSearchInput {
        width: 100%;
        padding: 14px 16px;
        border: 1px solid var(--color-primary);
        border-radius: 0px;
        font-size: 16px;
        background: rgba(255, 255, 255, 0.1);
        color: var(--color-white);
        box-sizing: border-box;
        backdrop-filter: blur(10px);
    }
    
    #collectionNetworkSearchInput:focus {
        outline: none;
        border-color: var(--color-primary);
        box-shadow: 0 0 12px rgba(184, 147, 111, 0.5);
    }
    
    #collectionNetworkSearchInput::placeholder {
        color: rgba(255, 255, 255, 0.5);
    }
    
    .collection-network-visualization {
        flex: 1;
        background: transparent;
        border-radius: 0px;
        border: 1px solid rgba(255, 255, 255, 0.1);
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
        overflow: hidden;
        position: relative;
        min-height: 0;
        height: 100%;
    }
    
    .network-viz-container {
        width: 100%;
        height: 100%;
        position: relative;
    }
    
    #collection-network-standalone-container {
        width: 100%;
        height: 100%;
        position: relative;
        background: transparent;
    }
    
    .network-loading-placeholder {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        height: 100%;
        color: rgba(255, 255, 255, 0.7);
        text-align: center;
    }
    
    .network-loading-title {
        font-size: 1.5em;
        font-weight: 600;
        margin: 20px 0 10px 0;
        color: var(--color-white);
    }
    
    .network-loading-text {
        font-size: 1em;
        color: rgba(255, 255, 255, 0.7);
        max-width: 400px;
        line-height: 1.4;
    }
    
    /* Search clear button for collection network */
    #collectionNetworkClearBtn {
        position: absolute;
        right: 15px;
        top: 50%;
        transform: translateY(-50%);
        background: rgba(184, 147, 111, 0.8);
        color: #000;
        border: none;
        width: 24px;
        height: 24px;
        border-radius: 0;
        cursor: pointer;
        font-size: 14px;
        font-weight: bold;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: all 0.2s ease;
    }
    
    #collectionNetworkClearBtn:hover {
        background: var(--color-primary);
        transform: translateY(-50%) scale(1.1);
    }
    
    /* Responsive design for collection network */
    @media (max-width: 768px) {
        .collection-network-page {
            padding: 10px 15px 5px 15px;
            height: calc(100vh - 120px) !important; /* Account for mobile header */
            overflow: visible !important;
        }
        
        .collection-network-container {
            height: 100%;
            min-height: calc(100vh - 180px);
        }
        
        .collection-network-header h2 {
            font-size: 22px;
            margin-bottom: 8px !important;
        }
        
        .collection-network-controls {
            flex-direction: column;
            gap: 8px;
        }
        
        .collection-network-search {
            width: 100%;
        }
        
        .collection-network-perspective {
            width: 100%;
        }
        
        .network-perspective-dropdown {
            width: 100%;
            min-width: unset;
        }
        
        .collection-network-visualization {
            flex: 1;
            min-height: calc(100vh - 280px) !important; /* Explicit mobile height */
            height: calc(100vh - 280px) !important;
        }
        
        .network-viz-container,
        #collection-network-standalone-container {
            min-height: calc(100vh - 280px) !important;
            height: 100% !important;
        }
        
        #collection-network-visualization-modal {
            min-height: calc(100vh - 280px) !important;
            height: calc(100vh - 280px) !important;
        }
        
        .collection-stats-cards {
            grid-template-columns: 1fr !important;
            gap: 15px !important;
        }
        
        #collectionNetworkSearchInput {
            font-size: 14px;
            padding: 12px 14px;
        }
        
        .network-loading-placeholder {
            min-height: calc(100vh - 300px);
        }
        
        .network-loading-title {
            font-size: 1.2em;
        }
        
        .network-loading-text {
            font-size: 0.9em;
            padding: 0 20px;
        }
    }
    /* End Collection Network Page Styles */

    .result-item {
        display: flex;
        align-items: center;
        padding: 16px;
        border: 1px solid rgba(255, 255, 255, 0.2);
        border-radius: 0px;
        margin-bottom: 12px;
        transition: all 0.2s;
        cursor: pointer;
        background: rgba(255, 255, 255, 0.1);
        backdrop-filter: blur(10px);
    }

    .result-item:hover {
        border-color: rgba(255, 255, 255, 0.4);
        background: rgba(255, 255, 255, 0.15);
        transform: translateY(-1px);
    }

    .result-image {
        width: 60px;
        height: 60px;
        background: #f8f9fa;
        border-radius: 6px;
        margin-right: 16px;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 12px;
        color: #6c757d;
        overflow: hidden;
        flex-shrink: 0;
    }

    .result-image img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .result-info {
        flex: 1;
        min-width: 0;
    }

    .result-title {
        font-weight: 600;
        margin-bottom: 4px;
        color: var(--color-white);
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
    }

    .result-artist {
        color: var(--color-gray-100);
        font-size: 14px;
        margin-bottom: 2px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
    }

    .result-combined {
        color: var(--color-gray-300) !important;
        font-size: 12px;
        margin-bottom: 2px;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
    }

    .result-combined strong {
        color: var(--color-gray-300) !important;
    }

    .result-label {
        color: var(--color-gray-300) !important;
        font-size: 12px;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
    }

    .result-label strong {
        color: var(--color-gray-300) !important;
    }

    .result-year {
        color: var(--color-gray-300);
        font-size: 12px;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
    }

    .result-actions {
        display: flex;
        flex-direction: column;
        gap: 6px;
        flex-shrink: 0;
        width: 110px;
    }

    .result-btn {
        padding: 8px 12px;
        border: none !important;
        border-radius: 0px !important;
        font-size: 12px;
        cursor: pointer;
        transition: all 0.3s ease;
        white-space: nowrap;
        color: white !important;
        font-weight: 500;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.3);
        background: rgba(184, 147, 111, 0.5) !important;
        box-shadow: none !important;
        width: 110px;
        height: 32px;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    
    .result-btn:hover {
        background: rgba(184, 147, 111, 0.7) !important;
    }

    .result-navigation {
        display: flex;
        gap: 8px;
        margin-top: 12px;
        flex-wrap: wrap;
    }

    .nav-btn {
        flex: 1;
        padding: 16px;
        border: none;
        border-radius: 0;
        background: linear-gradient(135deg, var(--color-error) 0%, #4ecdc4 50%, #45b7d1 100%);
        color: white;
        font-size: 16px;
        font-weight: 600;
        cursor: pointer;
        transition: all 0.3s ease;
        text-align: center;
        text-shadow: 1px 1px 3px rgba(0,0,0,0.2);
        box-shadow: 0 2px 8px rgba(0,0,0,0.1);
        min-height: 56px;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .nav-btn:hover:not(:disabled) {
        background: linear-gradient(135deg, #ff5252 0%, #26c6da 50%, #42a5f5 100%);
        transform: translateY(-1px);
        box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    }

    .nav-btn:disabled {
        opacity: 0.6;
        cursor: not-allowed;
        transform: none;
        background: #adb5bd !important;
        color: white !important;
    }
    
    /* Universal Generation Banner Styles - Full Width */
    .pulse-generation-banner.full-width-btn,
    .album-summary-generation-banner.full-width-btn,
    .artist-summary-generation-banner.full-width-btn {
        margin-bottom: 16px !important;
        min-height: 60px !important;
        height: auto !important;
        padding: 12px 16px !important;
        font-size: 15px !important;
    }

    /* Override full-width-btn display when banner is hidden */
    .pulse-generation-banner[style*="display: none"] {
        display: none !important;
    }



    /* Override full-width-btn display when album summary banner is hidden */
    .album-summary-generation-banner[style*="display: none"] {
        display: none !important;
    }

    /* Override full-width-btn display when artist summary banner is hidden */
    .artist-summary-generation-banner[style*="display: none"] {
        display: none !important;
    }



    .album-summary-header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-bottom: 16px;
        border-bottom: 1px solid rgba(255, 255, 255, 0.2);
        padding-bottom: 12px;
    }

    .album-summary-header h3 {
        color: white;
        margin: 0;
        font-size: 18px;
        font-weight: 600;
    }

    .album-summary-actions {
        display: flex;
        gap: 8px;
    }

    .refresh-summary-btn {
        background: rgba(255, 255, 255, 0.1);
        border: 1px solid rgba(255, 255, 255, 0.3);
        border-radius: 6px;
        padding: 6px 10px;
        color: white;
        font-size: 14px;
        cursor: pointer;
        transition: all 0.3s ease;
    }

    .refresh-summary-btn:hover {
        background: rgba(255, 255, 255, 0.2);
        transform: translateY(-1px);
    }

    .album-summary-content {
        flex: 1;
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        min-height: 200px;
    }

    .album-summary-placeholder {
        text-align: center;
        color: rgba(255, 255, 255, 0.7);
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        height: 100%;
        min-height: 200px;
    }

    .album-summary-placeholder .placeholder-icon {
        font-size: 48px;
        margin-bottom: 16px;
        opacity: 0.6;
    }

    .album-summary-placeholder .placeholder-text {
        font-size: 16px;
        line-height: 1.5;
        opacity: 0.8;
    }

    .album-summary-data {
        color: var(--color-gray-200);
        line-height: 1.6;
    }

    /* Card header (h4) - Copper, matches Now Playing album title size (32px) */
    .album-summary-data h4 {
        color: var(--color-primary);
        margin: 0 0 12px 0;
        font-size: 32px;
        font-weight: 700;
        line-height: 1.2;
    }

    .album-details-data h4 {
        color: #555;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
        font-size: 14px;
        margin: 0 0 8px 0;
        font-weight: 600;
    }

    .album-details-data strong {
        color: #555;
        font-size: 20px;
        font-weight: bold;
    }

    .album-details-data p {
        color: var(--color-gray-400);
        font-size: 16px;
    }
    
    .album-details-data div {
        color: var(--color-gray-400);
        font-size: 16px;
    }

    .album-details-data .show-more-tracks {
        color: #555;
    }

    .album-details-data .show-more-tracks:hover {
        color: var(--color-gray-400);
    }

    .album-details-data .video-link {
        color: #7FA0B8;
    }

    .album-details-data .video-link:hover {
        color: #7290A6;
        text-decoration: underline;
    }

    .album-details-data .toggle-icon {
        color: #555;
    }

    .album-details-data .track-title {
        font-size: 16px !important;
        font-weight: normal !important;
        color: #FFFFFF !important;
    }

    .album-details-data .track-position {
        color: #FFFFFF !important;
        font-weight: normal !important;
    }

    .album-details-data .track-artists {
        color: var(--color-gray-400) !important;
        font-weight: normal !important;
        font-style: italic;
    }

    .album-details-data .track-duration {
        color: #8F6F52 !important;
        font-weight: bold !important;
    }

    .album-summary-data h5 {
        color: #87CEEB;
        margin: 0 0 16px 0;
        font-size: 14px;
        font-weight: 500;
        opacity: 0.9;
    }

    .album-summary-data p {
        margin-bottom: 12px;
        text-align: left;
    }

    .generate-summary-btn {
        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
        color: white;
        border: none;
        border-radius: 6px;
        padding: 8px 16px;
        font-size: 14px;
        font-weight: 600;
        cursor: pointer;
        transition: all 0.3s ease;
        box-shadow: 0 2px 8px rgba(0,0,0,0.2);
    }

    .generate-summary-btn:hover {
        transform: translateY(-1px);
        box-shadow: 0 4px 12px rgba(0,0,0,0.3);
    }

    .summary-error {
        color: var(--color-error);
        text-align: center;
        padding: 20px;
        font-size: 14px;
        background: rgba(255, 107, 107, 0.1);
        border-radius: 0;
        border: 1px solid rgba(255, 107, 107, 0.3);
    }

    /* Universal Banner Success State - Green */
    .generation-banner.success,
    .pulse-generation-banner.success,
    .album-summary-generation-banner.success,
    .artist-summary-generation-banner.success {
        background: linear-gradient(135deg, #4ade80 0%, #22c55e 50%, #16a34a 100%) !important;
    }

    /* Universal Banner Error State - Red */
    .generation-banner.error,
    .pulse-generation-banner.error,
    .album-summary-generation-banner.error,
    .artist-summary-generation-banner.error {
        background: linear-gradient(135deg, #ef4444 0%, #dc2626 50%, #b91c1c 100%) !important;
    }

    /* Universal Banner Token Error State - Amber */
    .generation-banner.token-error,
    .pulse-generation-banner.token-error,
    .album-summary-generation-banner.token-error,
    .artist-summary-generation-banner.token-error {
        background: linear-gradient(135deg, #f59e0b 0%, #d97706 50%, #b45309 100%) !important;
    }

    /* Album Summary Loading State Styles - Match Pulse exactly */
    .album-summary-loading-state {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        padding: 40px 20px;
        text-align: center;
        height: 200px;
        color: rgba(255, 255, 255, 0.6);
    }

    .album-summary-loading-state .placeholder-icon {
        font-size: 48px;
        margin-bottom: 16px;
        opacity: 0.6;
        display: block;
    }

    .album-summary-loading-state .placeholder-text {
        font-size: 16px;
        color: rgba(255, 255, 255, 0.6);
        line-height: 1.5;
        font-weight: 400;
    }

    /* Album Summary Error State Styles */
    .album-summary-error-state {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        padding: 40px 20px;
        text-align: center;
        height: 200px;
        color: rgba(255, 107, 107, 0.9);
    }

    .error-icon {
        font-size: 32px;
        margin-bottom: 16px;
        opacity: 0.8;
    }

    .error-text {
        font-size: 16px;
        font-weight: 500;
        line-height: 1.4;
        color: rgba(255, 107, 107, 0.8);
    }

    .nav-btn:active {
        transform: translateY(0);
        box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    }

    .visualizations-nav {
        background: linear-gradient(135deg, #45b7d1 0%, #4ecdc4 50%, var(--color-error) 100%) !important;
    }

    .visualizations-nav:hover:not(:disabled) {
        background: linear-gradient(135deg, #42a5f5 0%, #26c6da 50%, #ff5252 100%) !important;
    }

    .result-details {
        margin-top: 8px;
        font-size: 11px;
        line-height: 1.4;
    }

    .result-detail {
        display: block;
        color: #6c757d;
        margin-bottom: 3px;
    }

    .result-detail strong {
        color: #495057;
        font-weight: 600;
    }

    .result-combined {
        color: var(--color-gray-300) !important;
        font-size: 11px;
        margin-bottom: 4px;
        line-height: 1.3;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
    }

    .result-label {
        color: var(--color-gray-300) !important;
        font-size: 11px;
        margin-top: 4px;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
    }

    .result-label strong {
        color: var(--color-gray-300) !important;
        font-weight: 600;
    }
    
    /* OAuth Authentication Styles */
    
    .oauth-status {
        display: flex;
        align-items: center;
        gap: 16px;
        padding: 16px;
        border-radius: 0;
        border: 1px solid transparent;
    }
    
    .oauth-status.connected {
        background: #d4edda;
        border-color: #c3e6cb;
    }
    
    .oauth-status.disconnected {
        background: #f8d7da;
        border-color: #f5c6cb;
    }
    
    .oauth-status-icon {
        font-size: 24px;
        flex-shrink: 0;
    }
    
    .oauth-status-text {
        flex: 1;
    }
    
    .oauth-status-title {
        font-weight: 600;
        color: var(--color-gray-700);
        margin-bottom: 4px;
    }
    
    .oauth-status-details {
        font-size: 14px;
        color: #666;
    }
    
    .oauth-connect-btn, .oauth-disconnect-btn {
        padding: 10px 20px;
        border: none;
        border-radius: 0;
        font-weight: 500;
        cursor: pointer;
        transition: all 0.2s ease;
        flex-shrink: 0;
    }
    
    .oauth-connect-btn {
        background: #007cba;
        color: white;
    }
    
    .oauth-connect-btn:hover {
        background: #0056b3;
        transform: translateY(-1px);
    }
    
    .oauth-disconnect-btn {
        background: var(--color-error);
        color: white;
    }
    
    .oauth-disconnect-btn:hover {
        background: var(--color-error);
        transform: translateY(-1px);
    }
    
    .check-icon, .warning-icon {
        margin-right: 12px;
        font-size: 18px;
    }
    
    /* Batch Cost Modal Styles - Dark Theme */
    .batch-cost-modal {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: rgba(0, 0, 0, 0.8);
        z-index: 1000;
        display: flex;
        justify-content: center;
        align-items: center;
    }
    
    .batch-cost-modal-content {
        background: var(--color-gray-900, #1a1a1a);
        color: var(--color-white, #ffffff);
        border-radius: 0;
        width: 90%;
        max-width: 600px;
        max-height: 90vh;
        overflow-y: auto;
        box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
        border: 1px solid rgba(255, 255, 255, 0.1);
    }
    
    .batch-cost-header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 20px 24px;
        border-bottom: 1px solid #8F6F52;
        background: rgba(255, 255, 255, 0.05);
        border-radius: 0;
    }
    
    .batch-cost-header h3 {
        margin: 0;
        color: #8F6F52;
        font-size: 20px;
    }
    
    .batch-cost-close {
        font-size: 28px;
        font-weight: bold;
        color: #8F6F52;
        cursor: pointer;
        line-height: 1;
    }
    
    .batch-cost-close:hover {
        color: #B8936F;
    }
    
    .batch-cost-body {
        padding: 24px;
    }
    
    .cost-overview, .token-breakdown, .cost-info, .affordability-check {
        margin-bottom: 24px;
        padding: 16px;
        border: 1px solid rgba(255, 255, 255, 0.1);
        border-radius: 0;
        background: rgba(255, 255, 255, 0.03);
    }
    
    .cost-overview h4, .token-breakdown h4, .cost-info h4 {
        margin: 0 0 12px 0;
        color: #B8936F;
        font-size: 16px;
    }
    
    .cost-stats {
        display: flex;
        flex-direction: column;
        gap: 8px;
    }
    
    .stat-item, .breakdown-item, .cost-detail, .balance-item {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 6px 0;
    }
    
    .stat-label, .breakdown-item span:first-child {
        color: #cccccc;
    }
    
    .stat-value, .breakdown-item span:last-child {
        font-weight: 600;
        color: #ffffff;
    }
    
    .breakdown-total {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-top: 12px;
        padding-top: 12px;
        border-top: 1px solid rgba(255, 255, 255, 0.1);
        font-size: 16px;
        color: #ffffff;
    }
    
    .breakdown-discount {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-left: 20px;
        margin-top: 4px;
        font-size: 14px;
    }
    
    .token-original {
        color: #888888;
        text-decoration: line-through;
    }
    
    .token-discounted {
        color: #4ade80;
        font-weight: 600;
    }
    
    .batch-savings {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-top: 12px;
        padding-top: 12px;
        border: 1px solid #c3e6cb;
        background: #d4edda;
        padding: 12px;
        border-radius: 0;
        color: #155724;
    }
    
    .token-savings {
        color: #155724;
        font-size: 16px;
    }
    
    .cost-disclaimer {
        margin-top: 16px;
        padding: 12px;
        background: rgba(251, 191, 36, 0.15);
        border: 1px solid rgba(251, 191, 36, 0.3);
        border-radius: 0;
        font-size: 14px;
        color: #fbbf24;
        line-height: 1.4;
    }
    
    .cost-disclaimer strong {
        color: #fcd34d;
    }
    
    .pack-recommendations {
        margin-top: 16px;
        padding: 16px;
        background: rgba(251, 191, 36, 0.1);
        border: 1px solid rgba(251, 191, 36, 0.2);
        border-radius: 0;
    }
    
    .pack-recommendations h4 {
        margin: 0 0 12px 0;
        color: #fbbf24;
        font-size: 16px;
    }
    
    .pack-item {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 8px 12px;
        background: rgba(255, 255, 255, 0.05);
        border: 1px solid rgba(251, 191, 36, 0.3);
        border-radius: 0;
        margin-bottom: 8px;
    }
    
    .pack-item:last-child {
        margin-bottom: 0;
    }
    
    /* Loading State Styling */
    .content-loading-state {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        background: rgba(255, 255, 255, 0.1);
        backdrop-filter: blur(10px);
        border-radius: 12px;
    }
    
    .loading-content {
        text-align: center;
        color: white;
    }
    
    .loading-icon {
        display: flex;
        justify-content: center;
        align-items: center;
        margin-bottom: 12px;
    }
    
    .loading-text {
        font-size: 16px;
        font-weight: 500;
        opacity: 0.9;
        white-space: normal;
        word-wrap: break-word;
        line-height: 1.4;
        max-width: 300px;
        margin: 0 auto;
    }
    
    @keyframes vinyl-spin {
        0% { 
            transform: rotate(0deg);
        }
        100% { 
            transform: rotate(360deg);
        }
    }
    
    .pack-name {
        font-weight: 600;
        color: #fbbf24;
    }
    
    .pack-details {
        color: #cccccc;
        font-size: 14px;
    }
    
    .cost-amount {
        font-size: 18px;
        font-weight: bold;
        color: #4ade80;
    }
    
    .estimation-note {
        margin-top: 8px;
        color: #999999;
        font-style: italic;
    }
    
    .can-afford {
        background: #d4edda;
        border: 1px solid #c3e6cb;
        color: #155724;
    }
    
    .cannot-afford {
        background: rgba(248, 113, 113, 0.1);
        border: 1px solid rgba(248, 113, 113, 0.3);
        color: #f87171;
    }
    
    .affordability-check .balance-item {
        display: flex;
        justify-content: space-between;
        margin: 8px 0;
        color: inherit;
        font-weight: 500;
    }
    
    .affordability-check h4 {
        color: #B8936F !important;
        margin-bottom: 12px;
    }
    
    .can-afford h4 {
        color: #155724 !important;
    }
    
    .token-deficit {
        display: flex;
        justify-content: space-between;
        margin-top: 8px;
        color: #f87171;
        font-weight: bold;
    }
    
    .purchase-suggestion {
        margin-top: 12px;
        padding-top: 12px;
        border-top: 1px solid rgba(248, 113, 113, 0.3);
        color: #f87171;
    }
    
    .purchase-suggestion p {
        margin: 4px 0;
    }
    
    .batch-cost-footer {
        display: flex;
        justify-content: flex-end;
        gap: 12px;
        padding: 20px 24px;
        border-top: 1px solid #8F6F52;
        background: rgba(255, 255, 255, 0.03);
        border-radius: 0;
    }
    
    .btn-cancel, .btn-proceed, .btn-disabled {
        padding: 10px 20px;
        border: none;
        border-radius: 0;
        font-size: 14px;
        font-weight: 600;
        cursor: pointer;
        transition: all 0.2s ease;
    }
    
    .btn-cancel {
        background: rgba(255, 255, 255, 0.1);
        color: #cccccc;
        border: 1px solid rgba(255, 255, 255, 0.2);
    }
    
    .btn-cancel:hover {
        background: rgba(255, 255, 255, 0.15);
        color: #ffffff;
        transform: translateY(-1px);
    }
    
    .btn-proceed {
        background: rgba(184, 147, 111, 0.2);
        color: var(--color-primary, #B8936F);
        border: 1px solid var(--color-primary, #B8936F);
    }
    
    .btn-proceed:hover {
        background: var(--color-primary, #B8936F);
        color: var(--color-white, #ffffff);
        transform: translateY(-1px);
        box-shadow: 0 2px 8px rgba(184, 147, 111, 0.4);
    }
    
    .btn-disabled {
        background: rgba(255, 255, 255, 0.05);
        color: #666666;
        cursor: not-allowed;
        border: 1px solid rgba(255, 255, 255, 0.1);
    }

    .collection-search-results {
        flex: 1;
        overflow-y: auto;
        margin-top: 0;
    }

    /* Tablet Dashboard Styles - Maintain 40/60 split but adjust spacing */
    @media (max-width: 1024px) and (min-width: 769px) {
        .dashboard-layout {
            gap: 12px;
            padding: 16px;
        }
        
        .dashboard-left {
            flex: 0 0 40%;
            width: 40%;
        }
        
        .dashboard-right {
            flex: 0 0 calc(60% - 12px);
            width: calc(60% - 12px);
        }
        
        .carousel-nav-hint {
            font-size: 36px;
        }
        
        .flip-card-indicator {
            width: 36px;
            height: 36px;
        }
        
        .flip-card-indicator span {
            font-size: 20px;
        }
    }

    /* Mobile Dashboard Styles */
    @media (max-width: 768px) {
        body {
            height: auto !important;
            min-height: 100vh !important;
            overflow-x: hidden !important;
            overflow-y: auto !important;
            -webkit-overflow-scrolling: touch !important;
        }
        
        .main-content {
            overflow: visible !important;
            height: auto !important;
            min-height: calc(100vh - 60px) !important;
        }
        
        .page.active {
            height: auto !important;
            min-height: calc(100vh - 60px) !important;
            overflow: visible !important;
        }
        
        .dashboard-page {
            padding: 16px;
            overflow-y: auto !important;
            -webkit-overflow-scrolling: touch !important;
            height: auto !important;
            min-height: 100vh !important;
            position: relative !important;
        }
        
        .dashboard-layout {
            flex-direction: column;
            gap: 20px;
            height: auto !important;
            min-height: 100vh;
            overflow: visible !important;
            padding: 20px;
        }
        
        /* Adjust background for stacked mobile layout */
        .dashboard-layout::before {
            left: 0;
            top: 0;
            width: 100%;
            height: 100%;
            background-size: cover;
            background-position: center;
            opacity: 0.8;
        }
        
        /* Adjust gradient for stacked mobile layout */
        .dashboard-layout::after {
            width: 100%;
            background: linear-gradient(to bottom, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0.2) 50%, rgba(0, 0, 0, 0.35) 100%);
        }
        
        .dashboard-left, .dashboard-right {
            width: 100% !important;
            flex: 0 0 auto !important;
            overflow: visible !important;
            height: auto !important;
            min-height: auto;
        }
        
        /* Stack flip card and carousel vertically on mobile */
        .flip-card-container {
            min-height: auto;
            height: auto;
            perspective: none;
        }
        
        .flip-card {
            height: auto;
            transform-style: flat;
            transition: none;
        }
        
        .flip-card.flipped {
            transform: none;
        }
        
        .flip-card-front,
        .flip-card-back {
            position: relative;
            height: auto;
            transform: none;
            backface-visibility: visible;
            -webkit-backface-visibility: visible;
        }
        
        /* Mobile: Hide back when not flipped, show front */
        .flip-card-front {
            display: block;
        }
        
        .flip-card-back {
            display: none;
        }
        
        /* Mobile: When flipped, hide front, show back */
        .flip-card.flipped .flip-card-front {
            display: none;
        }
        
        .flip-card.flipped .flip-card-back {
            display: block;
        }
        
        .now-playing-card {
            height: auto;
            flex: 0 0 auto;
        }
        
        .credits-card {
            height: auto;
            min-height: auto;
        }
        
        .carousel-container {
            min-height: 500px;
            height: 500px;
        }
        
        .carousel-nav-hint {
            font-size: 32px;
        }
        
        .carousel-nav-left {
            left: 10px;
        }
        
        .carousel-nav-right {
            right: 10px;
        }
        
        .flip-card-indicator {
            width: 36px;
            height: 36px;
            bottom: 12px;
            right: 12px;
        }
        
        .flip-card-indicator span {
            font-size: 20px;
        }
        
        .carousel-indicators {
            padding: 10px 0;
        }
        
        .dashboard-container {
            overflow: visible !important;
            height: auto !important;
        }
        
        .search-results {
            min-height: 200px;
            max-height: 300px;
        }
        
        /* COMMENTED OUT - Pulse iframe section not being used
        .pulse-iframe-section {
            min-height: 280px;
            max-height: 350px;
        }
        */
        
        .now-playing-content {
            padding: 24px;
        }
        
        .album-art {
            width: 100%;
            max-width: none;
            height: auto;
        }
        
        /* Keep left alignment on mobile for Now Playing card */
        .now-playing-card .track-title {
            text-align: left;
        }
        
        .now-playing-card .track-artist {
            text-align: left;
        }
        
        .now-playing-card .track-year {
            text-align: left;
        }
        
        .now-playing-card .track-info {
            text-align: left;
        }
        
        .now-playing-controls {
            padding: 20px;
        }
        
        .control-row {
            flex-direction: column;
            gap: 8px;
        }
        
        .stats-grid {
            grid-template-columns: 1fr !important;
            gap: 12px;
        }
        
        .stats-grid-compact {
            grid-template-columns: 1fr !important;
        }
        
        .stat-card {
            padding: 16px;
        }
        
        .stat-number {
            font-size: 20px;
        }
    }
    
    /* Search Collection Modal Styles */
    .search-modal {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: rgba(0, 0, 0, 0.7);
        z-index: 10000;
        display: flex;
        align-items: center;
        justify-content: center;
        animation: modalFadeIn 0.3s ease-out;
    }
    
    @keyframes modalFadeIn {
        from { opacity: 0; }
        to { opacity: 1; }
    }
    
    .search-modal-content {
        background: var(--color-gray-900);
        border-radius: 0;
        width: 90vw;
        max-width: 800px;
        max-height: 85vh;
        display: flex;
        flex-direction: column;
        box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
        animation: modalSlideIn 0.3s ease-out;
        position: relative;
        margin: auto;
    }
    
    @keyframes modalSlideIn {
        from { transform: translateY(-20px); opacity: 0; }
        to { transform: translateY(0); opacity: 1; }
    }
    
    .search-modal-header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 20px 24px;
        border-bottom: 1px solid #8F6F52;
        flex-shrink: 0;
    }
    
    .search-modal-header h2 {
        margin: 0;
        color: #B8936F;
        font-size: 1.25rem;
        font-weight: 600;
    }
    
    .search-modal-close {
        background: none;
        border: none;
        font-size: 1.5rem;
        color: #B8936F;
        cursor: pointer;
        padding: 4px 8px;
        border-radius: 0;
        transition: all 0.2s ease;
    }
    
    .search-modal-close:hover {
        background: rgba(143, 111, 82, 0.2);
        color: #B8936F;
    }
    
    .search-modal-body {
        flex: 1;
        padding: 20px 24px;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        display: flex;
        flex-direction: column;
        min-height: 0;
    }
    
    .search-modal-input-section {
        position: relative;
        margin-bottom: 16px;
        flex-shrink: 0;
    }
    
    .search-modal-input {
        width: 100%;
        padding: 12px 16px;
        border: 2px solid rgba(255, 255, 255, 0.2);
        border-radius: 0;
        font-size: 16px;
        background: rgba(255, 255, 255, 0.1);
        color: var(--color-white);
        transition: all 0.2s ease;
        box-sizing: border-box;
    }
    
    .search-modal-input:focus {
        outline: none;
        border-color: var(--color-primary);
        box-shadow: 0 0 0 3px rgba(184, 147, 111, 0.2);
    }
    
    .search-modal-input::placeholder {
        color: var(--color-gray-300);
    }
    
    .search-modal-loading {
        position: absolute;
        right: 12px;
        top: 50%;
        transform: translateY(-50%);
        display: flex;
        align-items: center;
        gap: 8px;
        color: #666;
        font-size: 14px;
    }
    
    .search-loading-spinner {
        width: 16px;
        height: 16px;
        border: 2px solid var(--star-empty);
        border-top: 2px solid #B8936F;
        border-radius: 0;
        animation: spin 1s linear infinite;
    }
    
    @keyframes spin {
        0% { transform: rotate(0deg); }
        100% { transform: rotate(360deg); }
    }
    
    .search-modal-selection-info {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 12px 16px;
        background: rgba(255, 255, 255, 0.05);
        color: var(--color-white);
        border-radius: 0;
        margin-bottom: 16px;
        flex-shrink: 0;
    }
    
    .selection-count {
        font-weight: 600;
        color: #007cba;
    }
    
    .clear-selection-btn {
        background: none;
        border: 1px solid var(--color-error);
        color: var(--color-error);
        padding: 4px 12px;
        border-radius: 0;
        cursor: pointer;
        font-size: 12px;
        transition: all 0.2s ease;
    }
    
    .clear-selection-btn:hover {
        background: var(--color-error);
        color: white;
    }
    
    .search-modal-results {
        flex: 1;
        overflow-y: auto;
        min-height: 360px;
        padding-right: 4px;
    }
    
    .search-modal-results::-webkit-scrollbar {
        width: 6px;
    }
    
    .search-modal-results::-webkit-scrollbar-track {
        background: rgba(255, 255, 255, 0.05);
        border-radius: 3px;
    }
    
    .search-modal-results::-webkit-scrollbar-thumb {
        background: rgba(255, 255, 255, 0.2);
        border-radius: 3px;
    }
    
    .search-modal-results::-webkit-scrollbar-thumb:hover {
        background: rgba(255, 255, 255, 0.3);
    }
    
    .search-modal-empty {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        text-align: center;
        padding: 60px 20px;
        color: #666;
        height: 100%;
    }
    

    
    .search-modal-empty h3 {
        margin: 0 0 8px 0;
        color: var(--color-white);
        font-size: 1.1rem;
    }
    
    .search-modal-empty p {
        margin: 0;
        font-size: 0.9rem;
        line-height: 1.4;
        color: var(--color-gray-300);
    }
    
    .search-results-grid {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
        gap: 16px;
        padding: 8px 0;
    }
    
    .search-result-item {
        border: 2px solid rgba(255, 255, 255, 0.1);
        border-radius: 0;
        padding: 16px;
        cursor: pointer;
        transition: all 0.2s ease;
        background: rgba(255, 255, 255, 0.05);
        position: relative;
    }
    
    .search-result-item:hover {
        border-color: var(--color-primary);
        box-shadow: 0 2px 8px rgba(184, 147, 111, 0.2);
        background: rgba(255, 255, 255, 0.1);
    }
    
    .search-result-item.selected {
        border-color: var(--color-primary);
        background: rgba(184, 147, 111, 0.2);
        box-shadow: 0 2px 8px rgba(184, 147, 111, 0.3);
    }
    
    .search-result-checkbox {
        position: absolute;
        top: 12px;
        right: 12px;
        width: 20px;
        height: 20px;
        border: 2px solid rgba(255, 255, 255, 0.3);
        background: transparent;
        border-radius: 0;
        cursor: pointer;
        transition: all 0.2s ease;
    }
    
    .search-result-checkbox.checked {
        background: #007cba;
        border-color: #007cba;
    }
    
    .search-result-checkbox.checked::after {
        content: '✓';
        color: white;
        font-size: 14px;
        font-weight: bold;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
    }
    
    .search-result-item.selected .search-result-checkbox {
        background: var(--color-primary);
        border-color: var(--color-primary);
    }
    
    .search-result-checkbox::after {
        content: '✓';
        color: white;
        font-size: 12px;
        font-weight: bold;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        opacity: 0;
        transition: opacity 0.2s ease;
    }
    
    .search-result-item.selected .search-result-checkbox::after {
        opacity: 1;
    }
    
    .search-result-title {
        font-weight: 600;
        font-size: 1rem;
        color: var(--color-white);
        margin: 0 0 4px 0;
        line-height: 1.3;
        padding-right: 32px;
    }
    
    .search-result-artist {
        color: #CCCCCC;
        font-size: 0.9rem;
        margin: 0 0 8px 0;
    }
    
    .search-result-meta {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
        font-size: 0.8rem;
        color: #888;
    }
    
    .search-result-year {
        background: rgba(255, 255, 255, 0.1);
        padding: 2px 6px;
        border-radius: 0;
        color: var(--color-gray-300);
    }
    
    .search-result-rating {
        background: rgba(184, 147, 111, 0.3);
        padding: 2px 6px;
        border-radius: 0;
        color: var(--color-white);
    }
    
    .search-modal-footer {
        display: flex;
        justify-content: flex-end;
        gap: 12px;
        padding: 20px 24px;
        border-top: 1px solid rgba(255, 255, 255, 0.1);
        flex-shrink: 0;
    }
    
    .search-modal-btn {
        padding: 10px 20px;
        border: none;
        border-radius: 0;
        cursor: pointer;
        font-weight: 500;
        transition: all 0.2s ease;
        font-size: 14px;
    }
    
    .search-modal-cancel {
        background: rgba(184, 147, 111, 0.2);
        color: var(--color-primary);
        border: 1px solid var(--color-primary);
    }
    
    .search-modal-cancel:hover {
        background: var(--color-primary);
        color: var(--color-white);
        transform: translateY(-1px);
        box-shadow: 0 2px 8px rgba(184, 147, 111, 0.4);
    }
    
    .search-modal-apply {
        background: rgba(184, 147, 111, 0.2);
        color: var(--color-primary);
        border: 1px solid var(--color-primary);
    }
    
    .search-modal-apply:hover:not(:disabled) {
        background: var(--color-primary);
        color: var(--color-white);
        transform: translateY(-1px);
        box-shadow: 0 2px 8px rgba(184, 147, 111, 0.4);
    }
    
    .search-modal-apply:disabled {
        background: rgba(108, 117, 125, 0.2);
        border-color: rgba(108, 117, 125, 0.5);
        cursor: not-allowed;
        opacity: 0.6;
        color: var(--color-gray-400);
    }
    
    /* Responsive adjustments */
    @media (max-width: 768px) {
        .search-modal-content {
            width: 95vw;
            max-height: 90vh;
            margin: 20px;
        }
        
        /* Ensure Discogs search modal matches collection modal sizing on mobile */
        .discogs-search-modal .search-modal-content {
            width: 95%;
            max-width: 600px;
            margin: auto;
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translateX(-50%) translateY(-50%);
        }
        
        .search-results-grid {
            grid-template-columns: 1fr;
        }
        
        .search-modal-header,
        .search-modal-body,
        .search-modal-footer {
            padding-left: 16px;
            padding-right: 16px;
        }
    }

    /* Splash Screen Animations */
    @keyframes vinylverse-spin {
        from { transform: rotate(0deg); }
        to { transform: rotate(360deg); }
    }

    @keyframes vinylverse-pulse {
        0%, 100% { opacity: 1; }
        50% { opacity: 0.9; }
    }

    @keyframes vinylverse-bounce {
        0%, 80%, 100% {
            transform: translateY(0);
            opacity: 1;
        }
        40% {
            transform: translateY(-10px);
            opacity: 0.7;
        }
    }

    /* App Container - Initially Hidden */
    #vinylverse-app-container {
        display: none;
    }

/* ============================================================================
   VinylDialog - Custom Dialog Styles
   ============================================================================ */

.vinyl-dialog-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.7);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10000;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.vinyl-dialog-overlay.show {
    opacity: 1;
}

.vinyl-dialog-container {
    background: rgba(30, 30, 30, 0.98);
    border-radius: 0;
    border: 1px solid rgba(139, 111, 82, 0.3);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5), 0 0 60px rgba(139, 111, 82, 0.1);
    min-width: 400px;
    max-width: 500px;
    transform: scale(0.9);
    transition: transform 0.3s ease;
    backdrop-filter: blur(15px) saturate(1.2);
}

.vinyl-dialog-overlay.show .vinyl-dialog-container {
    transform: scale(1);
}

.vinyl-dialog-header {
    padding: 20px 24px;
    border-bottom: 1px solid rgba(139, 111, 82, 0.3);
    display: flex;
    align-items: center;
    gap: 12px;
}

.vinyl-dialog-header h3 {
    margin: 0;
    font-size: 18px;
    font-weight: 600;
    color: #B8936F;
}

.vinyl-dialog-icon {
    font-size: 24px;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 0;
}

.vinyl-dialog-info .vinyl-dialog-icon {
    background: rgba(184, 147, 111, 0.2);
    color: #B8936F;
}

.vinyl-dialog-success .vinyl-dialog-icon {
    background: rgba(159, 168, 143, 0.2);
    color: #9FA88F;
}

.vinyl-dialog-warning .vinyl-dialog-icon {
    background: rgba(245, 124, 0, 0.2);
    color: #f57c00;
}

.vinyl-dialog-error .vinyl-dialog-icon {
    background: rgba(211, 47, 47, 0.2);
    color: #d32f2f;
}

.vinyl-dialog-body {
    padding: 24px;
}

.vinyl-dialog-body p {
    margin: 0;
    font-size: 15px;
    line-height: 1.6;
    color: var(--color-white);
}

.vinyl-dialog-footer {
    padding: 16px 24px;
    border-top: 1px solid rgba(139, 111, 82, 0.3);
    display: flex;
    justify-content: flex-end;
    gap: 12px;
}

.vinyl-dialog-footer button {
    padding: 10px 24px;
    border: none;
    border-radius: 0;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
}

.vinyl-dialog-cancel {
    background: rgba(184, 147, 111, 0.2);
    color: #B8936F;
    border: 1px solid #B8936F;
}

.vinyl-dialog-cancel:hover {
    background: #B8936F;
    color: var(--color-white);
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(184, 147, 111, 0.4);
}

.vinyl-dialog-confirm,
.vinyl-dialog-ok {
    background: rgba(184, 147, 111, 0.2);
    color: #B8936F;
    border: 1px solid #B8936F;
}

.vinyl-dialog-confirm:hover,
.vinyl-dialog-ok:hover {
    background: #B8936F;
    color: var(--color-white);
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(184, 147, 111, 0.4);
}

.vinyl-dialog-error .vinyl-dialog-confirm,
.vinyl-dialog-error .vinyl-dialog-ok {
    background: rgba(211, 47, 47, 0.2);
    color: #d32f2f;
    border: 1px solid #d32f2f;
}

.vinyl-dialog-error .vinyl-dialog-confirm:hover,
.vinyl-dialog-error .vinyl-dialog-ok:hover {
    background: #d32f2f;
    color: var(--color-white);
}

.vinyl-dialog-success .vinyl-dialog-confirm,
.vinyl-dialog-success .vinyl-dialog-ok {
    background: rgba(159, 168, 143, 0.2);
    color: #9FA88F;
    border: 1px solid #9FA88F;
}

.vinyl-dialog-success .vinyl-dialog-confirm:hover,
.vinyl-dialog-success .vinyl-dialog-ok:hover {
    background: #9FA88F;
    color: var(--color-white);
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(159, 168, 143, 0.4);
}

@media (max-width: 600px) {
    .vinyl-dialog-container {
        min-width: 90%;
        max-width: 90%;
        margin: 0 20px;
    }
}

/* Responsive Design for Dashboard Flip Card */
@media (max-width: 992px) {
    /* Tablet: Reduce font sizes slightly */
    .now-playing-card .now-playing-header h3 {
        font-size: 48px;
    }
    
    .now-playing-card .track-title {
        font-size: 28px;
    }
    
    .now-playing-card .track-artist {
        font-size: 22px;
    }
    
    .now-playing-card .track-year {
        font-size: 18px;
    }
    
    .now-playing-content {
        padding: 16px;
    }
    
    .now-playing-card .now-playing-header {
        left: 16px;
    }
}

@media (max-width: 768px) {
    /* Mobile: Smaller fonts and tighter spacing */
    .now-playing-card .now-playing-header h3 {
        font-size: 36px;
        top: -5px;
    }
    
    .now-playing-card .now-playing-header {
        top: 0;
        left: 12px;
    }
    
    .now-playing-card .track-title {
        font-size: 24px;
        margin-bottom: 8px;
        word-wrap: break-word;
        overflow-wrap: break-word;
        white-space: normal;
        line-height: 1.3;
    }
    
    .now-playing-card .track-artist {
        font-size: 18px;
        margin-bottom: 6px;
        word-wrap: break-word;
        overflow-wrap: break-word;
        white-space: normal;
        line-height: 1.3;
    }
    
    .now-playing-card .track-year {
        font-size: 16px;
    }
    
    .now-playing-card .track-info {
        margin-top: 16px;
        min-width: 0;
        width: 100%;
    }
    
    .now-playing-content {
        padding: 12px;
    }
    
    /* Action buttons on mobile */
    .now-playing-actions {
        margin-top: 16px;
        gap: 10px;
    }
    
    .now-playing-action-btn {
        padding: 10px 16px;
        font-size: 13px;
    }
}

@media (max-width: 480px) {
    /* Small mobile: Even smaller */
    .now-playing-card .now-playing-header h3 {
        font-size: 28px;
        top: 0;
    }
    
    .now-playing-card .now-playing-header {
        top: 0;
        left: 10px;
    }
    
    .now-playing-card .track-title {
        font-size: 20px;
        margin-bottom: 6px;
        word-wrap: break-word;
        overflow-wrap: break-word;
        white-space: normal;
        line-height: 1.3;
    }
    
    .now-playing-card .track-artist {
        font-size: 16px;
        margin-bottom: 5px;
        word-wrap: break-word;
        overflow-wrap: break-word;
        white-space: normal;
        line-height: 1.3;
    }
    
    .now-playing-card .track-year {
        font-size: 14px;
    }
    
    .now-playing-card .track-info {
        margin-top: 12px;
        min-width: 0;
        width: 100%;
    }
    
    .now-playing-content {
        padding: 10px;
    }
}

/* Responsive Summary Card Headings - Match Now Playing sizing */
@media (max-width: 992px) {
    /* Tablet: Reduce summary card header sizes */
    .album-summary-data h4,
    .artist-summary-data h4,
    .release-summary-data h4 {
        font-size: 28px !important;
    }
    
    .album-summary-data h1, .album-summary-data h2, .album-summary-data h3,
    .album-summary-data h5, .album-summary-data h6,
    .artist-summary-data h1, .artist-summary-data h2, .artist-summary-data h3,
    .artist-summary-data h5, .artist-summary-data h6,
    .release-summary-data h1, .release-summary-data h2, .release-summary-data h3,
    .release-summary-data h5, .release-summary-data h6 {
        font-size: 22px !important;
    }
}

@media (max-width: 768px) {
    /* Mobile: Smaller summary card headers */
    .album-summary-data h4,
    .artist-summary-data h4,
    .release-summary-data h4 {
        font-size: 24px !important;
    }
    
    .album-summary-data h1, .album-summary-data h2, .album-summary-data h3,
    .album-summary-data h5, .album-summary-data h6,
    .artist-summary-data h1, .artist-summary-data h2, .artist-summary-data h3,
    .artist-summary-data h5, .artist-summary-data h6,
    .release-summary-data h1, .release-summary-data h2, .release-summary-data h3,
    .release-summary-data h5, .release-summary-data h6 {
        font-size: 18px !important;
    }
}

@media (max-width: 480px) {
    /* Small mobile: Even smaller summary card headers */
    .album-summary-data h4,
    .artist-summary-data h4,
    .release-summary-data h4 {
        font-size: 20px !important;
    }
    
    .album-summary-data h1, .album-summary-data h2, .album-summary-data h3,
    .album-summary-data h5, .album-summary-data h6,
    .artist-summary-data h1, .artist-summary-data h2, .artist-summary-data h3,
    .artist-summary-data h5, .artist-summary-data h6,
    .release-summary-data h1, .release-summary-data h2, .release-summary-data h3,
    .release-summary-data h5, .release-summary-data h6 {
        font-size: 16px !important;
    }
}

/* Collection Collage Background - Wall-to-Wall Image Mosaic */
.collection-collage-background {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    overflow: hidden;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    grid-auto-rows: 150px;
    gap: 0;
    pointer-events: none;
}

.collection-collage-background::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(180deg, rgba(0,0,0,0.75) 0%, rgba(0,0,0,0.65) 50%, rgba(0,0,0,0.75) 100%);
    z-index: 1;
    pointer-events: none;
}

.collage-tile {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    opacity: 0;
    animation: fadeInTile 0.5s ease-in forwards;
    filter: grayscale(100%);
}

.collage-sentinel {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 10px;
    pointer-events: none;
}

@keyframes fadeInTile {
    to {
        opacity: 1;
    }
}

/* AI Insights Mosaic Background */
.ai-mosaic-background {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    overflow: hidden;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    grid-auto-rows: 120px;
    gap: 0;
    pointer-events: none;
}

.ai-mosaic-tile {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    opacity: 0;
    animation: fadeInTile 0.5s ease-in forwards;
    filter: grayscale(100%);
}

.ai-mosaic-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(180deg, rgba(0,0,0,0.75) 0%, rgba(0,0,0,0.65) 50%, rgba(0,0,0,0.75) 100%);
    z-index: 1;
    pointer-events: none;
}

/* Ensure visualizations page is positioned for absolute collage */
#visualizations {
    position: relative;
}

/* Collection Stats Single Rotating B&W Album Background (no blur, less zoom) */
#visualizations .stats-album-background-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    pointer-events: none;
    overflow: hidden;
    background: #0a0a0a;
}

#visualizations .stats-album-background {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center 60%; /* Shift down: higher % = lower position */
    background-repeat: no-repeat;
    filter: grayscale(100%) brightness(0.5) blur(3px); /* Added slight blur */
    transition: background-image 2s ease-in-out, opacity 2s ease-in-out;
    opacity: 0;
}

#visualizations .stats-album-background-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.3) 50%, rgba(0, 0, 0, 0.5) 100%);
    z-index: 1;
}

/* Ensure visualizations content appears above collage */
#visualizations .collection-stats-layout {
    position: relative;
    z-index: 2;
}

/* Voice Input Styles */
.voice-input-wrapper {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
}

.voice-input-wrapper input,
.voice-input-wrapper textarea {
    width: 100%;
    padding-right: 44px !important;
}

.voice-input-field {
    padding-right: 44px !important;
}

.voice-input-btn {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    width: 32px;
    height: 32px;
    border: none;
    background: transparent;
    color: rgba(255, 255, 255, 0.5);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: all 0.2s ease;
    z-index: 10;
    padding: 0;
}

.voice-input-btn:hover {
    color: rgba(255, 255, 255, 0.8);
    background: rgba(255, 255, 255, 0.1);
}

.voice-input-btn.listening {
    color: var(--color-error);
    animation: voicePulse 1s ease-in-out infinite;
}

.voice-input-btn.listening svg {
    stroke: var(--color-error);
}

@keyframes voicePulse {
    0%, 100% {
        transform: translateY(-50%) scale(1);
        opacity: 1;
    }
    50% {
        transform: translateY(-50%) scale(1.1);
        opacity: 0.7;
    }
}

.voice-input-btn.error {
    animation: voiceError 0.5s ease-out;
}

.voice-input-btn.error svg {
    stroke: var(--color-error);
}

@keyframes voiceError {
    0% {
        transform: translateY(-50%) scale(1);
        background: transparent;
    }
    25% {
        transform: translateY(-50%) scale(1.2);
        background: rgba(220, 53, 69, 0.3);
    }
    50% {
        transform: translateY(-50%) scale(1);
        background: rgba(220, 53, 69, 0.2);
    }
    75% {
        transform: translateY(-50%) scale(1.1);
        background: rgba(220, 53, 69, 0.1);
    }
    100% {
        transform: translateY(-50%) scale(1);
        background: transparent;
    }
}

/* Adjust for inputs with existing icons */
.search-modal-input-section .voice-input-wrapper {
    width: 100%;
}

.sidebar-search-wrapper .voice-input-wrapper,
.flyover-search-wrapper .voice-input-wrapper {
    width: 100%;
}

/* Dark theme adjustments */
.voice-input-btn svg {
    stroke: currentColor;
}

/* Voice input button on white/light background inputs */
.search-discogs-input-section .voice-input-btn,
.search-modal-input-section .voice-input-btn,
.main-search-section .voice-input-btn {
    color: rgba(255, 255, 255, 0.5);
}

.search-discogs-input-section .voice-input-btn:hover,
.search-modal-input-section .voice-input-btn:hover,
.main-search-section .voice-input-btn:hover {
    color: #B8936F;
    background: rgba(184, 147, 111, 0.1);
}

/* ============================================
   Add to Collection Modal - Dark Theme Styling
   ============================================ */

#addToCollectionModal.modal {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.7);
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
}

#addToCollectionModal .modal-content {
    background: var(--color-gray-900, #1a1a1a) !important;
    border-radius: 0 !important;
    width: 90vw;
    max-width: 500px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5) !important;
    border: 1px solid rgba(143, 111, 82, 0.3) !important;
}

#addToCollectionModal .modal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px 24px;
    border-bottom: 1px solid #8F6F52 !important;
    background: var(--color-gray-900, #1a1a1a) !important;
    box-shadow: inset 0 -2px 8px rgba(143, 111, 82, 0.15);
}

#addToCollectionModal .modal-header h3 {
    margin: 0;
    color: #B8936F !important;
    font-size: 1.25rem;
    font-weight: 600;
}

#addToCollectionModal .modal-header .close {
    background: none !important;
    border: none;
    font-size: 1.75rem;
    color: #B8936F !important;
    cursor: pointer;
    padding: 4px 8px;
    line-height: 1;
    transition: all 0.2s ease;
}

#addToCollectionModal .modal-header .close:hover {
    color: #D4B896 !important;
    background: rgba(143, 111, 82, 0.2) !important;
}

#addToCollectionModal .modal-body {
    padding: 24px;
    background: var(--color-gray-900, #1a1a1a) !important;
}

#addToCollectionModal .item-info {
    background: rgba(30, 30, 30, 0.95) !important;
    padding: 16px;
    margin-bottom: 20px;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
}

#addToCollectionModal .item-info strong,
#addToCollectionModal .item-info b {
    color: var(--color-white, #fff);
    font-weight: 600;
}

#addToCollectionModal .item-info,
#addToCollectionModal .item-info * {
    color: rgba(255, 255, 255, 0.8);
}

#addToCollectionModal .folder-selection {
    margin-top: 16px;
}

#addToCollectionModal .folder-selection label {
    display: block;
    margin-bottom: 8px;
    color: rgba(255, 255, 255, 0.9);
    font-weight: 500;
}

#addToCollectionModal .folder-select {
    width: 100%;
    padding: 12px 16px;
    border: 2px solid rgba(255, 255, 255, 0.15);
    border-radius: 0;
    font-size: 14px;
    background: rgba(30, 30, 30, 0.98);
    color: var(--color-white, #fff);
    cursor: pointer;
    transition: all 0.2s ease;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23B8936F' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 36px;
}

#addToCollectionModal .folder-select:focus {
    outline: none;
    border-color: #B8936F;
    box-shadow: 0 0 0 2px rgba(184, 147, 111, 0.3);
}

#addToCollectionModal .folder-select:hover {
    border-color: rgba(184, 147, 111, 0.5);
}

#addToCollectionModal .folder-select option {
    background: rgba(30, 30, 30, 0.98) !important;
    color: var(--color-white, #fff) !important;
    padding: 10px 12px;
}

#addToCollectionModal .folder-select option:hover,
#addToCollectionModal .folder-select option:checked {
    background: rgba(139, 111, 82, 0.5) !important;
    color: var(--color-white, #fff) !important;
}

/* Hide scrollbar in folder pie modal legend */
.viz-modal-body div[style*="scrollbar-width: none"]::-webkit-scrollbar {
    display: none;
}

/* Hide scrollbar in folder dropdown */
#addToCollectionModal .folder-select {
    scrollbar-width: none; /* Firefox */
    -ms-overflow-style: none; /* IE/Edge */
}

#addToCollectionModal .folder-select::-webkit-scrollbar {
    display: none; /* Chrome/Safari/Opera */
}

#addToCollectionModal .modal-footer {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    padding: 16px 24px;
    background: rgba(0, 0, 0, 0.2);
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

#addToCollectionModal .modal-btn {
    padding: 12px 24px;
    border: none;
    border-radius: 0;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease;
    min-width: 120px;
}

#addToCollectionModal .modal-btn.cancel {
    background: rgba(184, 147, 111, 0.2);
    color: var(--color-primary);
    border: 1px solid var(--color-primary);
}

#addToCollectionModal .modal-btn.cancel:hover {
    background: var(--color-primary);
    color: var(--color-white);
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(184, 147, 111, 0.4);
}

#addToCollectionModal .modal-btn.confirm {
    background: rgba(184, 147, 111, 0.2);
    color: var(--color-primary);
    border: 1px solid var(--color-primary);
}

#addToCollectionModal .modal-btn.confirm:hover {
    background: var(--color-primary);
    color: var(--color-white);
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(184, 147, 111, 0.4);
}

/* Summary Edit Mode - Disable swipe/touch interference */
body.editing-summary {
    touch-action: auto !important;
    -webkit-user-select: text !important;
    user-select: text !important;
    overflow: auto !important;
}

body.editing-summary .summary-edit-mode,
body.editing-summary .summary-edit-textarea {
    touch-action: auto !important;
    -webkit-user-select: text !important;
    user-select: text !important;
    pointer-events: auto !important;
    z-index: 10000 !important;
}

.summary-edit-textarea {
    width: 100%;
    min-height: 300px;
    padding: 15px;
    background: rgba(30, 30, 30, 0.95);
    border: 1px solid #666;
    border-radius: 4px;
    color: #fff;
    font-family: inherit;
    font-size: 14px;
    line-height: 1.6;
    resize: vertical;
    white-space: pre-wrap;
    word-wrap: break-word;
}

.summary-edit-textarea:focus {
    outline: none;
    border-color: #C8A87F;
}

/* =============================================================================
   MOBILE RESPONSIVE IMPROVEMENTS - Summary Cards and Input Rows
   ============================================================================= */

/* Mobile: Wider cards for better readability */
@media (max-width: 768px) {
    /* Make dashboard cards nearly full width on mobile */
    .album-summary-card,
    .artist-summary-card,
    .release-summary-card,
    .now-playing-card,
    .pulse-content-card {
        width: 96% !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }
    
    /* Reduce card padding on mobile */
    .summary-card-controls {
        padding: 12px 10px;
    }
    
    /* Dashboard columns should use more width */
    .dashboard-left,
    .dashboard-right,
    .dashboard-middle {
        width: 100% !important;
        padding-left: 2% !important;
        padding-right: 2% !important;
    }
}

/* Smaller mobile screens: Stack input rows vertically */
@media (max-width: 600px) {
    /* Make cards even wider on small mobile */
    .album-summary-card,
    .artist-summary-card,
    .release-summary-card,
    .now-playing-card,
    .pulse-content-card {
        width: 98% !important;
    }
    
    /* Stack follow-up question input row */
    .summary-chat-input-row {
        flex-direction: column;
        gap: 8px;
    }
    
    .summary-chat-input-row .summary-chat-input {
        width: 100%;
    }
    
    /* Buttons row below input */
    .summary-chat-input-row .summary-send-btn,
    .summary-chat-input-row .summary-image-btn {
        width: 100%;
        justify-content: center;
    }
    
    /* Stack regeneration instructions row */
    .summary-instructions-row {
        flex-direction: column;
        gap: 8px;
    }
    
    .summary-instructions-row .summary-custom-instructions {
        width: 100%;
    }
    
    .summary-instructions-row .summary-regenerate-btn {
        width: 100%;
        justify-content: center;
    }
    
    /* Ensure Edit Content button stays full width */
    .summary-edit-btn {
        width: 100%;
    }
    
    /* Reduce padding for more space */
    .summary-card-controls {
        padding: 10px 8px;
        gap: 8px;
    }
    
    /* Adjust font sizes for mobile */
    .summary-chat-input,
    .summary-custom-instructions {
        font-size: 14px;
        padding: 12px;
    }
    
    .summary-send-btn,
    .summary-regenerate-btn {
        font-size: 14px;
        padding: 12px 16px;
    }
}

/* =============================================================================
   MOBILE TOUCH OVERLAY - Tap to reveal album action buttons
   ============================================================================= */

/* Touch-revealed state - shows overlay when tapped on mobile */
.dashboard-album-overlay.touch-revealed,
.album-overlay.touch-revealed {
    opacity: 1 !important;
    pointer-events: auto !important;
}

/* Touch device optimizations - smaller buttons, tighter spacing */
@media (hover: none) and (pointer: coarse) {
    /* Constrain overlay to fit within album cover */
    .dashboard-album-overlay,
    .album-overlay {
        width: 90%;
        max-width: none;
        max-height: 90%;
        padding: 8px;
        gap: 4px;
        overflow-y: auto;
    }
    
    /* Smaller, more compact buttons for touch */
    .dashboard-album-overlay .album-action,
    .album-overlay .album-action {
        padding: 8px 10px;
        font-size: 11px;
        min-width: 90px;
        width: 100%;
        max-width: 140px;
    }
    
    /* Ensure buttons have good tap target (44px min) */
    .dashboard-album-overlay .album-action,
    .album-overlay .album-action {
        min-height: 36px;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    
    /* Collection/wantlist card overlays */
    .collection-card-front .album-overlay .album-action {
        padding: 6px 8px;
        font-size: 10px;
        min-width: 80px;
    }
}

/* Extra small screens */
@media (max-width: 480px) {
    /* Full width cards */
    .album-summary-card,
    .artist-summary-card,
    .release-summary-card,
    .now-playing-card,
    .pulse-content-card {
        width: 100% !important;
        margin: 0 !important;
        border-radius: 0 !important;
    }
    
    /* Minimal padding on smallest screens */
    .dashboard-left,
    .dashboard-right,
    .dashboard-middle {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    
    /* Adjust card content padding */
    .artist-summary-content,
    .album-summary-content,
    .pulse-content-container {
        padding: 12px;
    }
    
    /* Keep input stacked but allow buttons to share a row */
    .summary-chat-input-row {
        flex-wrap: wrap;
        flex-direction: row; /* Reset to row for buttons */
    }
    
    /* Input takes full width on its own row */
    .summary-chat-input-row .summary-chat-input {
        flex: 0 0 100%;
        width: 100%;
        margin-bottom: 8px;
    }
    
    /* Make camera and send buttons share row below input */
    .summary-chat-input-row .summary-image-btn,
    .summary-chat-input-row .summary-send-btn {
        flex: 1;
        width: auto;
        min-width: 0;
    }
    
    /* Same for regeneration row */
    .summary-instructions-row {
        flex-wrap: wrap;
        flex-direction: row;
    }
    
    .summary-instructions-row .summary-custom-instructions {
        flex: 0 0 100%;
        width: 100%;
        margin-bottom: 8px;
    }
    
    .summary-instructions-row .summary-regenerate-btn {
        flex: 1;
        width: auto;
    }
}

/* ============================================
   AI Insights Page Mobile Responsive Fixes
   ============================================ */

/* Mobile: Stack buttons under text input on AI Insights page */
@media (max-width: 768px) {
    /* Main search section wraps to stacked layout */
    .main-search-section {
        flex-wrap: wrap;
        padding: 0 12px 12px;
        gap: 8px;
    }
    
    /* Text input takes full width on its own row */
    .main-search-section .chat-input {
        flex: 0 0 100%;
        width: 100%;
        order: 1;
    }
    
    /* Photo button and send button share 50/50 on second row */
    .main-search-section .image-btn {
        flex: 1;
        order: 2;
        min-width: 0;
    }
    
    .main-search-section .send-btn {
        flex: 1;
        order: 3;
        min-width: 0;
    }
    
    /* Stop button also takes half width when visible */
    .main-search-section .stop-btn {
        flex: 1;
        order: 3;
        min-width: 0;
    }
    
    /* Chat messages viewport: end above footer */
    .main-chat .chat-messages {
        height: calc(100vh - 280px); /* Account for header, context bar, search section, and footer */
        max-height: calc(100vh - 280px);
        min-height: calc(100vh - 280px);
        padding-bottom: 60px; /* Space above footer */
    }
    
    /* Context info smaller on mobile */
    .context-info {
        font-size: 18px;
        padding: 20px 12px 12px;
        margin-bottom: 8px;
    }
}

/* =============================================================================
   AI Insights Accordion - Mobile Controls Toggle
   ============================================================================= */

/* Desktop: accordion is always open, toggle button hidden */
.ai-insights-header-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.ai-insights-header-row .context-info {
    flex: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding: 24px 0 12px;
    margin-bottom: 0;
}

.ai-insights-accordion-toggle {
    display: none; /* Hidden on desktop */
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid var(--color-primary);
    color: var(--color-primary);
    padding: 8px;
    cursor: pointer;
    transition: all 0.2s ease;
    flex-shrink: 0;
}

.ai-insights-accordion-toggle:hover {
    background: rgba(184, 147, 111, 0.2);
    box-shadow: 0 0 8px rgba(184, 147, 111, 0.3);
}

.ai-insights-accordion-toggle svg {
    transition: transform 0.3s ease;
}

.ai-insights-accordion-toggle.collapsed svg {
    transform: rotate(-90deg);
}

.ai-insights-accordion-content {
    display: block; /* Always visible on desktop */
}

/* Mobile: Show accordion toggle and make content collapsible */
@media (max-width: 768px) {
    .ai-insights-header-row {
        padding: 8px 0;
    }
    
    .ai-insights-header-row .context-info {
        font-size: 14px;
        padding: 8px 0;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    
    .ai-insights-accordion-toggle {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 36px;
        height: 36px;
        padding: 0;
    }
    
    .ai-insights-accordion-content {
        overflow: hidden;
        transition: max-height 0.3s ease, opacity 0.3s ease;
        max-height: 500px;
        opacity: 1;
    }
    
    .ai-insights-accordion-content.collapsed {
        max-height: 0;
        opacity: 0;
        padding: 0;
        margin: 0;
    }
    
    /* Ensure AI Insights container fills space properly on mobile */
    .ai-insights-container {
        height: calc(100vh - 90px);
        display: flex;
        flex-direction: column;
    }
    
    .ai-insights-container .chat-messages {
        flex: 1;
        min-height: 0;
        overflow-y: auto;
    }
    
    .ai-insights-container .main-search-section {
        flex-shrink: 0;
        padding: 8px 0 12px;
    }
    
    /* Make context row more compact on mobile */
    .ai-insights-context-row .np-chat-context-left {
        flex-wrap: wrap;
        gap: 4px;
    }
    
    .ai-insights-context-row .np-chat-context-label {
        width: 100%;
        font-size: 12px;
    }
    
    /* Stack history row vertically on mobile */
    .ai-insights-history-row {
        flex-direction: column;
        gap: 8px;
    }
    
    .ai-insights-history-left,
    .ai-insights-history-right {
        width: 100%;
    }
    
    .ai-history-select {
        width: 100%;
        min-width: 0;
    }
}

