/* --- THEME & COLOR VARIABLES (TWITCH) --- */
        :root {
            --color-bg-primary: #18181B; /* Twitch Dark Grey */
            --color-bg-secondary: #28282E;
            --color-bg-secondary-rgb: 40, 40, 46;
            --color-bg-input: #3A3A40;
            --color-border: #464649;
            --color-border-rgb: 70, 70, 73;
            --color-accent-start: #A970FF; /* Twitch Light Purple */
            --color-accent-end: #9146FF;   /* Twitch Main Purple */
            --color-accent-start-rgb: 169, 112, 255;
            --color-accent-end-rgb: 145, 70, 255;
            --color-text-primary: #FFFFFF;
            --color-text-secondary: #A0A0AB;
            --color-success: #16a34a;
            --color-error: #dc2626;
            --color-warning: #f59e0b;
            --color-danger: #ef4444;
        }

        /* --- BASE & LAYOUT STYLES --- */
        html, body {
            height: 100%;
            overflow: hidden; 
        }
        body {
            display: flex;
            flex-direction: column;
            background-color: var(--color-bg-primary);
            color: var(--color-text-primary);
            font-family: 'Poppins', sans-serif;
            transition: background-color 0.3s ease, color 0.3s ease;
        }
        main {
            flex-grow: 1;
            display: flex;
            align-items: center;
            justify-content: center;
        }
        header {
            background-color: rgba(24, 24, 27, 0.8);
            transition: background-color 0.3s ease;
        }
        .text-glow {
            text-shadow: 0 0 8px rgba(var(--color-accent-start-rgb), 0.5), 0 0 20px rgba(var(--color-accent-end-rgb), 0.3);
        }
        
        /* --- MODAL STYLES --- */
        .mfp-bg {
            background: rgba(24, 24, 27, 0.8);
            backdrop-filter: blur(8px);
            -webkit-backdrop-filter: blur(8px);
        }
        .mfp-zoom-in .mfp-content {
            opacity: 0;
            transform: scale(0.95);
            transition: all 0.45s ease-in-out;
        }
        .mfp-zoom-in.mfp-ready .mfp-content {
            opacity: 1;
            transform: scale(1);
        }
        .mfp-zoom-in.mfp-removing .mfp-content {
            opacity: 0;
            transform: scale(0.95);
        }
        #modal-container {
            background: transparent;
            border: none;
            box-shadow: none;
            transition: opacity 0.3s ease-in-out, max-width 0.3s ease;
        }
        #modal-container.is-hiding { opacity: 0; }
        
        /* --- FINAL VERIFICATION MODAL STYLES --- */
        .modal-outline-container {
            --login-box-color: #1a1a1a;
            display: flex;
            justify-content: center;
            align-items: center;
            position: relative;
            overflow: hidden;
            background: var(--login-box-color);
            border-radius: 24px;
            width: 100%;
            max-width: 420px;
            margin: 0 auto;
            z-index: 8;
            transition: opacity 0.45s ease-in-out;
            border: 1px solid var(--color-border);
        }
        .modal-outline-container::before {
            content: "";
            position: absolute;
            inset: -100px;
            z-index: -2;
            background: conic-gradient(from 90deg, transparent 75%, var(--color-accent-start), var(--color-accent-end), transparent 100%);
            animation: spin 4s linear infinite;
        }
        @keyframes spin { 100% { transform: rotate(360deg); } }
        .modal-inner-box {
            background: var(--login-box-color);
            border-radius: 24px;
            padding: 28px;
            width: 100%;
            height: 100%;
            position: relative;
            z-index: 10;
        }
        @keyframes icon-pulse-animation {
            0%, 100% { transform: scale(1); }
            50% { transform: scale(1.1); }
        }
        .icon-pulse {
            animation: icon-pulse-animation 2s infinite cubic-bezier(0.36, 0.07, 0.19, 0.97);
        }
        #countdown-timer.urgent { color: var(--color-danger); animation: pulse-urgent 1s infinite; }
        @keyframes pulse-urgent { 0%, 100% { opacity: 1; } 50% { opacity: 0.7; } }
        
        /* --- PACKAGE CARD STYLES --- */
        .package-item {
            background-color: var(--color-bg-input);
            transition: border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
        }
        .package-item:hover {
            border-color: var(--color-accent-start);
            transform: translateY(-2px);
        }
        .package-item.selected {
             border-color: var(--color-accent-start);
             box-shadow: 0 0 15px rgba(var(--color-accent-start-rgb), 0.4);
             transform: scale(1.02);
        }
         .package-item.selected.premium {
            border-color: var(--color-accent-start);
            box-shadow: 0 0 20px rgba(var(--color-accent-start-rgb), 0.6);
        }
        
        /* --- CHECKMARK ANIMATION --- */
        .checkmark {
            opacity: 0;
            transform: scale(0.5);
            transition: all .3s ease-in-out;
            color: var(--color-success);
        }
        .checklist-item.completed .checkmark {
            opacity: 1;
            transform: scale(1);
        }
        .checklist-item.completed i { color: var(--color-success); }


        /* --- NEW LOADER/SPINNER STYLES --- */
        .loader {
            display: block;
            --height-of-loader: 6px;
            width: 100%;
            height: var(--height-of-loader);
            border-radius: 30px;
            background-color: var(--color-bg-input);
            position: relative;
            border: 1px solid var(--color-border);
            overflow: hidden;
            margin-bottom: 1.5rem;
        }
        .loader::before {
            content: "";
            position: absolute;
            background: linear-gradient(90deg, var(--color-accent-start), var(--color-accent-end));
            top: 0;
            left: 0;
            width: 0%;
            height: 100%;
            border-radius: 30px;
            animation: moving 2s ease-in-out infinite;
        }
        @keyframes moving {
            50% { width: 100%; }
            100% { width: 0; right: 0; left: unset; }
        }
        .btn-gradient {
            background-image: linear-gradient(to right, var(--color-accent-start) 0%, var(--color-accent-end) 51%, var(--color-accent-start) 100%);
            background-size: 200% auto;
            transition: background-position 0.5s;
        }
        .btn-gradient:hover {
            background-position: right center;
        }
        .fa-twitch { color: #9146FF; }