:root {
            --neon-glow-color: #00d9ff;
            --dark-bg: #10101a;
            --dark-surface: #1d1d2a;
            --dark-text: #f0f0f0;
            --dark-border: #2a2a3a;

            --light-bg: #f8f9fa;
            --light-surface: #ffffff;
            --light-text: #212529;
            --light-border: #dee2e6;
        }

        body {
            font-family: 'Poppins', sans-serif;
            transition: background-color 0.3s, color 0.3s;
        }

        /* --- Dark Mode (Default) --- */
        body.dark-mode {
            background-color: var(--dark-bg);
            color: var(--dark-text);
        }

        .dark-mode .main-container {
            background-color: var(--dark-surface);
            border: 1px solid var(--dark-border);
            box-shadow: 0 0 15px rgba(var(--neon-glow-color), 0.2), 0 0 5px rgba(var(--neon-glow-color), 0.3);
        }

        .dark-mode .form-control,
        .dark-mode .form-select {
            background-color: var(--dark-bg);
            color: var(--dark-text);
            border-color: var(--dark-border);
        }

        .dark-mode .form-control:focus,
        .dark-mode .form-select:focus {
            background-color: var(--dark-bg);
            color: var(--dark-text);
            border-color: var(--neon-glow-color);
            box-shadow: 0 0 8px rgba(var(--neon-glow-color), 0.5);
        }

        .dark-mode .form-label {
            color: var(--neon-glow-color);
            text-shadow: 0 0 3px rgba(var(--neon-glow-color), 0.7);
        }
        
        .dark-mode .btn-primary {
            background-color: var(--neon-glow-color);
            border-color: var(--neon-glow-color);
            color: var(--dark-bg);
            font-weight: 600;
            transition: all 0.3s ease;
        }

        .dark-mode .btn-primary:hover {
            box-shadow: 0 0 12px rgba(var(--neon-glow-color), 0.8);
            background-color: var(--neon-glow-color);
            border-color: var(--neon-glow-color);
        }
        
        .dark-mode hr {
            border-top: 1px solid var(--dark-border);
        }
        
        .dark-mode .qr-canvas-container {
            background: repeating-linear-gradient(45deg, var(--dark-surface), var(--dark-surface) 10px, #232333 10px, #232333 20px);
        }

        /* --- Light Mode --- */
        body.light-mode {
            background-color: var(--light-bg);
            color: var(--light-text);
        }

        .light-mode .main-container {
            background-color: var(--light-surface);
            border: 1px solid var(--light-border);
            box-shadow: 0 4px 12px rgba(0,0,0,0.1);
        }

        .light-mode .form-control,
        .light-mode .form-select {
            background-color: #fff;
            color: var(--light-text);
            border-color: var(--light-border);
        }

        .light-mode .form-control:focus,
        .light-mode .form-select:focus {
            border-color: #86b7fe;
            box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
        }

        .light-mode .form-label {
            color: #0056b3;
            font-weight: 500;
        }

        .light-mode hr {
            border-top: 1px solid var(--light-border);
        }

        .light-mode .qr-canvas-container {
             background: #e9ecef;
        }


        /* --- General Styles --- */
        .main-container {
            border-radius: 15px;
            margin-top: 2rem;
            margin-bottom: 2rem;
            padding: 2rem;
            transition: background-color 0.3s, border-color 0.3s, box-shadow 0.3s;
        }

        h1 {
            font-weight: 600;
        }
        
        .dark-mode h1 {
             color: var(--neon-glow-color);
             text-shadow: 0 0 5px rgba(var(--neon-glow-color), 0.8);
        }

        .qr-canvas-container {
            display: flex;
            align-items: center;
            justify-content: center;
            border-radius: 10px;
            min-height: 320px;
            padding: 1rem;
        }
        
        .qr-canvas-container #qr-canvas {
            max-width: 100%;
            height: auto;
            transition: opacity 0.4s ease-in-out;
        }

        .dark-mode .spinner-border {
            color: var(--neon-glow-color);
        }

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

        .btn:hover {
            transform: translateY(-2px);
        }

        .form-label i {
            margin-right: 8px;
            width: 16px;
            text-align: center;
        }
        
        footer {
            margin-top: 1rem;
            font-size: 0.9em;
        }

        footer a {
            text-decoration: none;
            font-weight: 500;
            transition: color 0.3s;
        }

        .dark-mode footer,
        .dark-mode footer a {
            color: #777;
        }

        .light-mode footer,
        .light-mode footer a {
            color: #6c757d;
        }

        .dark-mode footer a:hover {
            color: var(--neon-glow-color);
        }

        .light-mode footer a:hover {
            color: #0d6efd;
        }

        /* Theme Switcher */
        .theme-switcher {
            position: absolute;
            top: 1rem;
            right: 1rem;
        }
        .form-check-input:checked {
            background-color: var(--neon-glow-color);
            border-color: var(--neon-glow-color);
        }