        body {
            font-family: 'Inter', sans-serif;
            background-color: #050505;
            color: #E0E0E0;
            overflow-x: hidden;
        }

        .aurora-background {
            position: absolute; top: 0; left: 0; right: 0; bottom: 0;
            background-image: radial-gradient(ellipse 80% 50% at 50% -20%, rgba(217, 70, 239, 0.15), transparent),
                              radial-gradient(ellipse 80% 50% at 50% 120%, rgba(124, 58, 237, 0.1), transparent);
            z-index: -1;
            animation: aurora-glow 15s infinite alternate;
        }

        @keyframes aurora-glow {
            from { opacity: 0.6; transform: scale(1); }
            to { opacity: 1; transform: scale(1.1); }
        }
        
        .btn-primary {
            background: linear-gradient(95deg, #EC4899 0%, #D946EF 100%);
            color: white; font-weight: 600; padding: 0.75rem 1.5rem; border-radius: 0.5rem;
            transition: all 0.3s ease; box-shadow: 0 0 20px rgba(236, 72, 153, 0.3);
        }
        .btn-primary:hover { transform: scale(1.05); box-shadow: 0 0 30px rgba(236, 72, 153, 0.5); }
        .btn-primary:disabled { background: #4b5563; cursor: not-allowed; opacity: 0.7; }

        .btn-secondary {
            background-color: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1);
            color: white; font-weight: 600; padding: 0.75rem 1.5rem; border-radius: 0.5rem;
            transition: all 0.3s ease; backdrop-filter: blur(5px);
        }
        .btn-secondary:hover { background-color: rgba(255, 255, 255, 0.1); border-color: rgba(255, 255, 255, 0.2); }
        .btn-secondary:disabled { background-color: rgba(255, 255, 255, 0.02); color: #6b7280; cursor: not-allowed; }
        
        .btn-view-switch.active {
             background: linear-gradient(95deg, #EC4899 0%, #D946EF 100%);
            box-shadow: 0 0 20px rgba(236, 72, 153, 0.3); border-color: transparent;
            color: white;
        }

        .gradient-text {
            background: linear-gradient(95deg, #EC4899 0%, #D946EF 50%, #8B5CF6 100%);
            -webkit-background-clip: text; -webkit-text-fill-color: transparent;
        }

        #universe-visuals {
            transition: all 0.5s ease-in-out;
            max-height: 0;
            overflow: hidden;
        }
        #universe-visuals.expanded {
            max-height: 100vh;
        }
        #bubble-container, #bar-chart-container {
            background-color: rgba(17, 17, 17, 0.5); border: 1px solid #222;
            border-radius: 1rem; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
            backdrop-filter: blur(5px); position: relative; overflow: hidden;
        }
        #bar-chart-container { cursor: default; }
        #bubble-container { cursor: grab; }

        .token-bubble circle, .token-bubble image, .token-bubble clipPath circle { 
            transition: all 0.4s ease-in-out; 
        }
        .token-bubble:hover circle { 
            stroke: #ffffff; 
            transform: scale(1.03);
        }
        .bubble-image { object-fit: cover; border-radius: 50%; }
        .bubble-text {
            font-size: 14px; font-weight: 800; fill: #ffffff;
            text-anchor: middle; pointer-events: none;
            text-shadow: 1px 1px 4px rgba(0, 0, 0, 1);
        }
        .bubble-text-percent { font-size: 12px; font-weight: 700; }
        
        .bar-chart-bar { transition: all 0.3s ease; cursor: pointer; }
        .bar-chart-bar:hover { opacity: 0.8; }

        .time-filter-btn {
            padding: 0.25rem 1rem; font-size: 0.875rem; font-weight: 500;
            color: #9ca3af; border: none; background: transparent;
            border-radius: 0.375rem; transition: all 0.2s ease-in-out;
            white-space: nowrap; cursor: pointer;
        }
        .time-filter-btn.active, .screener-filter.active {
            background: linear-gradient(95deg, #EC4899 0%, #D946EF 100%);
            box-shadow: 0 0 20px rgba(236, 72, 153, 0.3); border-color: transparent;
            color: white; font-weight: 600;
        }

        #token-table-container {
            background-color: rgba(17, 17, 17, 0.5); border: 1px solid #222;
            border-radius: 1rem; 
        }
        .token-table-row { transition: background-color 0.2s ease; cursor: pointer; }
        .token-table-row:hover { background-color: rgba(255, 255, 255, 0.05); }
        th[data-sort] { cursor: pointer; user-select: none; }
        th[data-sort]::after { content: ' '; display: inline-block; width: 8px; height: 8px; margin-left: 5px; opacity: 0.5; }
        th[data-sort-dir="asc"]::after { content: '▲'; }
        th[data-sort-dir="desc"]::after { content: '▼'; }
        
        .notification {
            width: 320px; background-color: #1a1a1a; color: #fff;
            padding: 1rem; border-radius: 0.5rem; border-left-width: 4px;
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3); display: flex;
            align-items: center; gap: 0.75rem;
            animation: slideIn 0.3s ease-out forwards;
        }
        .notification.fade-out { animation: fadeOut 0.5s ease-in forwards; }
        .notification-success { border-color: #10B981; }
        .notification-error { border-color: #EF4444; }
        .notification-info { border-color: #3B82F6; }
        @keyframes slideIn { from { opacity: 0; transform: translateX(100%); } to { opacity: 1; transform: translateX(0); } }
        @keyframes fadeOut { from { opacity: 1; } to { opacity: 0; } }
        #details-modal-overlay { transition: opacity 0.3s ease-in-out; }
        #details-modal { transition: transform 0.3s ease-out, opacity 0.3s ease-in-out; }
       
        .upvote-btn {
            background-color: rgba(255, 255, 255, 0.1); border: 1px solid rgba(255, 255, 255, 0.2);
            border-radius: 9999px; padding: 0.25rem 0.75rem; display: inline-flex;
            align-items: center; gap: 0.25rem; font-weight: 500; transition: all 0.2s ease;
        }
        .upvote-btn:hover:not([disabled]) { background-color: rgba(255, 255, 255, 0.2); border-color: rgba(255, 255, 255, 0.3); }
        .upvote-btn.voted, .upvote-btn:disabled { cursor: default; }
        .upvote-btn.voted { background-color: #EC4899; color: white; border-color: transparent; }