   * {
       box-sizing: border-box;
   }

   html,
   body {
       overflow-x: hidden;
       scroll-behavior: smooth;
   }

   body {
       font-family: 'Plus Jakarta Sans', sans-serif;
       transition: background 0.3s ease, color 0.3s ease;
   }

   /* Dark theme */
   .dark body {
       background: #060911;
       color: #e5e7eb;
   }

   .dark .theme-bg {
       background: #060911;
   }

   .dark .theme-card {
       background: rgba(17, 24, 39, 0.6);
       border-color: rgba(255, 255, 255, 0.07);
   }

   .dark .theme-card-hover:hover {
       background: rgba(26, 34, 53, 0.8);
       border-color: rgba(245, 158, 11, 0.15);
   }

   .dark .theme-glass {
       background: rgba(17, 24, 39, 0.75);
       border-color: rgba(255, 255, 255, 0.06);
       backdrop-filter: blur(16px);
   }

   .dark .theme-sidebar {
       background: linear-gradient(180deg, #0a0e1a, #0f1629, #0a0e1a);
       border-color: rgba(255, 255, 255, 0.04);
   }

   .dark .theme-text {
       color: #e5e7eb;
   }

   .dark .theme-text-muted {
       color: #9ca3af;
   }

   .dark .theme-text-dim {
       color: #6b7280;
   }

   .dark .theme-border {
       border-color: rgba(255, 255, 255, 0.05);
   }

   .dark .theme-input {
       background: rgba(255, 255, 255, 0.05);
       border-color: rgba(255, 255, 255, 0.05);
       color: white;
   }

   .dark .theme-hover:hover {
       background: rgba(255, 255, 255, 0.05);
   }

   .dark .theme-item {
       background: rgba(255, 255, 255, 0.03);
   }

   .dark .theme-item:hover {
       background: rgba(255, 255, 255, 0.06);
   }

   .dark .theme-scroll::-webkit-scrollbar-track {
       background: #0a0e1a;
   }

   /* Light theme */
   body {
       background: #f5f7fb;
       color: #1e293b;
   }

   .theme-bg {
       background: #f5f7fb;
   }

   .theme-card {
       background: #ffffff;
       border: 1px solid #e5e7eb;
   }

   .theme-card-hover:hover {
       background: #fdfdfd;
       border-color: #f59e0b40;
       box-shadow: 0 12px 30px rgba(0, 0, 0, 0.06);
   }

   .theme-glass {
       background: rgba(255, 255, 255, 0.85);
       border: 1px solid #e5e7eb;
       backdrop-filter: blur(16px);
   }

   .theme-sidebar {
       background: linear-gradient(180deg, #ffffff, #f9fafb, #ffffff);
       border-right: 1px solid #e5e7eb;
   }

   .theme-text {
       color: #1e293b;
   }

   .theme-text-muted {
       color: #64748b;
   }

   .theme-text-dim {
       color: #94a3b8;
   }

   .theme-border {
       border-color: #e5e7eb;
   }

   .theme-input {
       background: #f8fafc;
       border: 1px solid #e5e7eb;
       color: #1e293b;
   }

   .theme-hover:hover {
       background: #f1f5f9;
   }

   .theme-item {
       background: #f8fafc;
   }

   .theme-item:hover {
       background: #f1f5f9;
   }

   .theme-scroll::-webkit-scrollbar-track {
       background: #f5f7fb;
   }

   ::-webkit-scrollbar {
       width: 5px;
       height: 5px;
   }

   ::-webkit-scrollbar-thumb {
       background: linear-gradient(180deg, #f59e0b, #8b5cf6);
       border-radius: 10px;
   }

   .card {
       border-radius: 1rem;
       transition: all 0.3s ease;
   }

   .card:hover {
       transform: translateY(-2px);
   }

   .glow-gold {
       box-shadow: 0 0 30px rgba(245, 158, 11, 0.08);
   }

   .glow-purple {
       box-shadow: 0 0 30px rgba(139, 92, 246, 0.08);
   }

   .glow-green {
       box-shadow: 0 0 30px rgba(16, 185, 129, 0.08);
   }

   .glow-red {
       box-shadow: 0 0 30px rgba(239, 68, 68, 0.08);
   }

   .text-gold-gradient {
       background: linear-gradient(135deg, #f59e0b, #fbbf24);
       -webkit-background-clip: text;
       -webkit-text-fill-color: transparent;
   }

   .text-purple-gradient {
       background: linear-gradient(135deg, #8b5cf6, #a78bfa);
       -webkit-background-clip: text;
       -webkit-text-fill-color: transparent;
   }

   .sidebar-link {
       position: relative;
       transition: all 0.3s ease;
   }

   .sidebar-link::before {
       content: '';
       position: absolute;
       left: 0;
       top: 0;
       bottom: 0;
       width: 3px;
       background: linear-gradient(180deg, #f59e0b, #8b5cf6);
       border-radius: 0 4px 4px 0;
       transform: scaleY(0);
       transition: 0.3s;
   }

   .sidebar-link:hover::before,
   .sidebar-link.active::before {
       transform: scaleY(1);
   }

   .dark .sidebar-link:hover,
   .dark .sidebar-link.active {
       background: linear-gradient(90deg, rgba(245, 158, 11, 0.1), transparent);
   }

   .sidebar-link:hover,
   .sidebar-link.active {
       background: linear-gradient(90deg, rgba(245, 158, 11, 0.08), transparent);
   }

   .live-dot {
       width: 8px;
       height: 8px;
       border-radius: 50%;
       background: #ef4444;
       animation: pulse 1.5s infinite;
       display: inline-block;
   }

   @keyframes pulse {
       0% {
           box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.7);
       }

       70% {
           box-shadow: 0 0 0 8px rgba(239, 68, 68, 0);
       }

       100% {
           box-shadow: 0 0 0 0 rgba(239, 68, 68, 0);
       }
   }

   .progress-bar {
       animation: fillWidth 2s ease forwards;
   }

   @keyframes fillWidth {
       from {
           width: 0;
       }
   }

   @keyframes fadeUp {
       from {
           opacity: 0;
           transform: translateY(20px);
       }

       to {
           opacity: 1;
           transform: translateY(0);
       }
   }

   .fade-up {
       animation: fadeUp 0.6s ease forwards;
   }

   @keyframes slideRight {
       from {
           opacity: 0;
           transform: translateX(30px);
       }

       to {
           opacity: 1;
           transform: translateX(0);
       }
   }

   .slide-right {
       animation: slideRight 0.4s ease forwards;
   }

   .overlay {
       background: rgba(0, 0, 0, 0.6);
       backdrop-filter: blur(4px);
   }

   .modal-bg {
       background: rgba(0, 0, 0, 0.7);
       backdrop-filter: blur(8px);
   }

   .btn {
       position: relative;
       overflow: hidden;
   }

   .btn::after {
       content: '';
       position: absolute;
       inset: 0;
       background: radial-gradient(circle, rgba(255, 255, 255, 0.2) 10%, transparent 10.01%);
       background-repeat: no-repeat;
       background-position: 50%;
       transform: scale(10);
       opacity: 0;
       transition: transform 0.5s, opacity 1s;
       pointer-events: none;
   }

   .btn:active::after {
       transform: scale(0);
       opacity: 0.3;
       transition: 0s;
   }

   /* Full-width mobile dropdowns */
   @media (max-width: 640px) {
       .mobile-full-dd {
           position: fixed !important;
           top: 56px !important;
           left: 0 !important;
           right: 0 !important;
           margin: 8px !important;
           width: calc(100vw - 16px) !important;
           max-width: none !important;
       }
   }

   /* Sparkline style */
   .spark {
       display: inline-block;
       height: 30px;
   }

   /* Mini stat pulse */
   .mini-pulse {
       animation: miniPulse 3s ease-in-out infinite;
   }

   @keyframes miniPulse {

       0%,
       100% {
           opacity: 1;
       }

       50% {
           opacity: 0.7;
       }
   }

   /* Rotate for switch icons */
   .rotate-icon {
       transition: transform 0.5s ease;
   }

   .rotate-icon.spin {
       transform: rotate(180deg);
   }

   /* Skeleton */
   .shimmer {
       background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.05), transparent);
       background-size: 200% 100%;
       animation: shimmer 2s infinite;
   }

   @keyframes shimmer {
       0% {
           background-position: -200% 0;
       }

       100% {
           background-position: 200% 0;
       }
   }

   /* Trophy shine */
   .shine {
       position: relative;
       overflow: hidden;
   }

   .shine::before {
       content: '';
       position: absolute;
       top: -50%;
       left: -50%;
       width: 200%;
       height: 200%;
       background: linear-gradient(45deg, transparent 30%, rgba(255, 255, 255, 0.15) 50%, transparent 70%);
       animation: shineMove 3s infinite;
   }

   @keyframes shineMove {
       0% {
           transform: translate(-100%, -100%);
       }

       100% {
           transform: translate(100%, 100%);
       }
   }