      :root {
            --glass: rgba(255, 255, 255, 0.03);
            --glass-border: rgba(255, 255, 255, 0.08);
        }

        [data-theme="light"] {
            --glass: rgba(0, 0, 0, 0.03);
            --glass-border: rgba(0, 0, 0, 0.08);
            background-color: #f8fafc;
            color: #0f172a;
        }

        [data-theme="dark"] {
            background-color: #020617;
            color: #f8fafc;
        }

        body { font-family: 'Plus Jakarta Sans', sans-serif; transition: background-color 0.3s ease; }
        
        .glass {
            background: var(--glass);
            backdrop-filter: blur(12px);
            -webkit-backdrop-filter: blur(12px);
            border: 1px solid var(--glass-border);
        }

        .modal-overlay { background: rgba(0, 0, 0, 0.8); backdrop-filter: blur(8px); }
        .closed { transform: translateX(-100%); transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); }
        #mobileNav:not(.closed) { transform: translateX(0); }
        
        .category-chip.active {
            background: #2563eb !important;
            color: white !important;
            opacity: 1 !important;
        }

        .nav-link.active {
            background: rgba(37, 99, 235, 0.1);
            color: #2563eb;
            font-weight: 700;
            opacity: 1;
        }

        .timer-active {
            border-color: #2563eb;
            box-shadow: 0 0 20px rgba(37, 99, 235, 0.1);
        }

        input::-webkit-outer-spin-button,
        input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

        .custom-scrollbar::-webkit-scrollbar { width: 4px; }
        .custom-scrollbar::-webkit-scrollbar-track { background: transparent; }
        .custom-scrollbar::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.1); border-radius: 10px; }
        
        .page-transition { animation: fadeIn 0.4s ease-out; }
        @keyframes fadeIn {
            from { opacity: 0; transform: translateY(10px); }
            to { opacity: 1; transform: translateY(0); }
        }