:root {
            --lux-olive: #2F6A5F;
            --lux-olive-light: #3A8173;
            --lux-gold: #BFA380;
            --lux-cream: #FBF9F6;
            --lux-text: #1F2937;
        }
        body { 
            background-color: var(--lux-cream); 
            color: var(--lux-text); 
            font-family: 'Manrope', sans-serif; 
        }
        .serif { font-family: 'Playfair Display', serif; }
        
        .input-field {
            background-color: #ffffff;
            border: 1px solid #E5E7EB;
            transition: all 0.3s ease;
        }
        .input-field:focus {
            border-color: var(--lux-olive);
            box-shadow: 0 0 0 3px rgba(47, 106, 95, 0.1);
            outline: none;
        }
        
        .btn-primary {
            background-color: var(--lux-olive);
            color: white;
            transition: all 0.3s ease;
        }
        .btn-primary:hover:not(:disabled) {
            background-color: var(--lux-olive-light);
            transform: translateY(-1px);
        }
        .btn-primary:disabled {
            opacity: 0.6;
            cursor: not-allowed;
        }

        .alert {
            padding: 15px;
            margin: 15px 0;
            border-radius: 8px;
            display: none;
        }
        .alert.show { display: block; }
        .alert-success {
            background-color: #d4edda;
            color: #155724;
            border: 1px solid #c3e6cb;
        }
        .alert-error {
            background-color: #f8d7da;
            color: #721c24;
            border: 1px solid #f5c6cb;
        }
        .alert-info {
            background-color: #d1ecf1;
            color: #0c5460;
            border: 1px solid #bee5eb;
        }
        
        .spinner {
            display: inline-block;
            width: 16px;
            height: 16px;
            border: 2px solid rgba(255,255,255,0.3);
            border-radius: 50%;
            border-top-color: white;
            animation: spin 1s linear infinite;
        }
        @keyframes spin { to { transform: rotate(360deg); } }
        
        .progress-step {
            display: flex;
            align-items: center;
            gap: 12px;
            padding: 12px 0;
            opacity: 0.5;
            transition: opacity 0.3s;
        }
        .progress-step.active {
            opacity: 1;
        }
        .progress-step .dot {
            width: 24px;
            height: 24px;
            border-radius: 50%;
            background-color: #E5E7EB;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 12px;
            font-weight: bold;
            color: #9CA3AF;
        }
        .progress-step.active .dot {
            background-color: var(--lux-olive);
            color: white;
        }
        .progress-step.completed .dot {
            background-color: #10B981;
            color: white;
        }