/* Extracted from signup_form.html — Phase 3 */

        .page-container {
            max-width: 900px;
            margin: 0 auto;
            padding: var(--spacing-8, 2rem) var(--spacing-4, 1rem);
        }
        
        .header {
            text-align: center;
            padding: var(--spacing-6) var(--spacing-4);
            background: var(--bg-surface);
            border: 1px solid var(--border);
            border-radius: 8px;
            margin-bottom: var(--spacing-6);
        }
        
        .header h1 {
            font-size: var(--font-size-2xl-mobile);
            font-weight: var(--font-weight-semibold);
            color: var(--text);
            margin-bottom: var(--spacing-2);
        }
        
        .header p {
            font-size: var(--font-size-base);
            color: var(--text-muted);
        }
        
        @media (min-width: 768px) {
            .header h1 {
                font-size: var(--font-size-3xl);
            }
        }
        
        .form-section {
            background: var(--bg-surface);
            border: 1px solid var(--border);
            border-radius: 8px;
            padding: var(--spacing-6);
            margin-bottom: var(--spacing-6);
            box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
        }
        
        .form-section h2 {
            font-size: var(--font-size-xl-mobile);
            font-weight: var(--font-weight-semibold);
            color: var(--text);
            margin-bottom: var(--spacing-4);
            padding-bottom: var(--spacing-3);
            border-bottom: 1px solid var(--border);
        }
        
        @media (min-width: 768px) {
            .form-section h2 {
                font-size: var(--font-size-2xl);
            }
        }
        
        .form-group {
            margin-bottom: var(--spacing-4);
        }
        
        .form-row {
            display: grid;
            grid-template-columns: 1fr;
            gap: var(--spacing-4);
        }
        
        @media (min-width: 768px) {
            .form-row {
                grid-template-columns: repeat(2, 1fr);
            }
        }
        
        .form-label {
            display: block;
            font-weight: var(--font-weight-medium);
            margin-bottom: var(--spacing-2);
            color: var(--text);
            font-size: var(--font-size-base);
        }
        
        .form-label .required {
            color: var(--danger);
        }
        
        .form-input,
        .form-select,
        .form-textarea {
            width: 100%;
            padding: var(--spacing-3) var(--spacing-4);
            border: 1px solid var(--border);
            border-radius: 4px;
            font-size: var(--font-size-base);
            font-family: var(--font-family-base);
            background: var(--bg-input);
            color: var(--text);
            min-height: 48px;
            transition: border-color 0.2s;
        }
        
        .form-input:focus,
        .form-select:focus,
        .form-textarea:focus {
            outline: none;
            border-color: var(--accent);
            box-shadow: 0 0 0 2px var(--focus-ring);
        }
        
        .form-textarea {
            min-height: 100px;
            resize: vertical;
        }
        
        .form-hint {
            display: block;
            font-size: var(--font-size-sm);
            color: var(--text-muted);
            margin-top: var(--spacing-1);
        }
        
        .form-error {
            display: block;
            font-size: var(--font-size-sm);
            color: var(--danger, #e74c3c);
            margin-top: var(--spacing-1);
            font-weight: 500;
        }
        
        .form-success {
            display: block;
            font-size: var(--font-size-sm);
            color: var(--success);
            margin-top: var(--spacing-1);
        }
        
        .form-input.error {
            border-color: var(--danger, #e74c3c);
            border-width: 2px;
        }
        
        .form-input.error:focus {
            border-color: var(--danger, #e74c3c);
            box-shadow: 0 0 0 3px rgba(231, 76, 60, 0.1);
        }
        
        .mfa-setup {
            background: var(--bg-surface-2);
            border: 1px solid var(--border);
            border-radius: 8px;
            padding: var(--spacing-6);
            margin-bottom: var(--spacing-4);
        }
        
        .mfa-qr {
            text-align: center;
            margin: var(--spacing-4) 0;
        }
        
        .mfa-qr img {
            max-width: 200px;
            height: auto;
            border: 1px solid var(--border);
            border-radius: 4px;
            padding: var(--spacing-2);
            background: var(--bg-surface);
        }
        
        .mfa-backup-codes {
            background: var(--bg-surface);
            border: 1px solid var(--border);
            border-radius: 4px;
            padding: var(--spacing-4);
            margin-top: var(--spacing-4);
        }
        
        .mfa-backup-codes h4 {
            font-size: var(--font-size-base);
            font-weight: var(--font-weight-semibold);
            margin-bottom: var(--spacing-2);
        }
        
        .mfa-backup-codes code {
            display: block;
            padding: var(--spacing-1);
            font-family: var(--font-family-mono);
            font-size: var(--font-size-sm);
            background: var(--bg-app);
            border-radius: 2px;
            margin-bottom: var(--spacing-1);
        }
        
        .plan-grid {
            display: grid;
            grid-template-columns: 1fr;
            gap: var(--spacing-4);
            margin-top: var(--spacing-4);
        }
        
        @media (min-width: 768px) {
            .plan-grid {
                grid-template-columns: repeat(2, 1fr);
            }
        }
        
        .plan-card {
            border: 2px solid var(--border);
            border-radius: 8px;
            padding: var(--spacing-4);
            cursor: pointer;
            transition: all 0.2s;
        }
        
        .plan-card:hover {
            border-color: var(--accent);
        }
        
        .plan-card.selected {
            border-color: var(--accent);
            background: var(--bg-surface-2);
        }
        
        .plan-card input[type="radio"] {
            margin-right: var(--spacing-2);
        }
        
        .plan-name {
            font-weight: var(--font-weight-semibold);
            font-size: var(--font-size-lg);
            margin-bottom: var(--spacing-2);
        }
        
        .plan-price {
            font-size: var(--font-size-xl);
            font-weight: var(--font-weight-bold);
            color: var(--accent);
            margin-bottom: var(--spacing-2);
        }
        
        .plan-description {
            font-size: var(--font-size-sm);
            color: var(--text-muted);
        }
        
        .checkbox-group {
            display: flex;
            align-items: flex-start;
            gap: var(--spacing-2);
            margin-bottom: var(--spacing-3);
        }
        
        .checkbox-group input[type="checkbox"] {
            margin-top: var(--spacing-1);
            flex-shrink: 0;
        }
        
        .checkbox-group label {
            font-size: var(--font-size-sm);
            color: var(--text);
        }
        
        .radio-group {
            display: flex;
            gap: var(--spacing-4);
            margin-top: var(--spacing-2);
            flex-wrap: wrap;
        }
        
        .radio-label {
            display: flex;
            align-items: center;
            gap: var(--spacing-2);
            cursor: pointer;
            padding: var(--spacing-2) var(--spacing-3);
            border: 1px solid var(--border);
            border-radius: 4px;
            transition: all 0.2s;
            background: var(--bg-input);
        }
        
        .radio-label:hover {
            border-color: var(--accent);
            background: var(--bg-surface-2);
        }
        
        .radio-label input[type="radio"] {
            width: auto;
            margin: 0;
            cursor: pointer;
        }
        
        .radio-label input[type="radio"]:checked + span {
            font-weight: var(--font-weight-semibold);
            color: var(--accent);
        }
        
        .radio-label:has(input[type="radio"]:checked) {
            border-color: var(--accent);
            background: var(--bg-surface-2);
            box-shadow: 0 0 0 2px var(--focus-ring);
        }
        
        .btn:disabled {
            opacity: 0.5;
            cursor: not-allowed;
        }
        
        .btn-submit {
            width: 100%;
        }
        
        .header-top {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: var(--spacing-4);
        }
        
        .language-switcher {
            display: flex;
            align-items: center;
            gap: var(--spacing-2);
        }
        
        .language-switcher label {
            font-size: var(--font-size-sm);
            color: var(--text-muted);
            font-weight: var(--font-weight-medium);
        }
        
        .language-switcher select {
            padding: var(--spacing-2) var(--spacing-3);
            border: 1px solid var(--border);
            border-radius: 4px;
            background: var(--bg-surface);
            color: var(--text);
            font-size: var(--font-size-sm);
            font-family: var(--font-family-base);
            cursor: pointer;
            min-height: 36px;
        }
        
        .language-switcher select:hover {
            border-color: var(--accent);
        }
        
        .language-switcher select:focus {
            outline: none;
            border-color: var(--accent);
            box-shadow: 0 0 0 2px rgba(107, 155, 210, 0.1);
        }
        
        /* Hide desktop select on mobile, show custom dropdown */
        @media (max-width: 1023px) {
            .language-select-desktop {
                display: none !important;
            }
            .language-select-mobile {
                display: block !important;
            }
        }
        
        /* Hide mobile custom dropdown on desktop */
        @media (min-width: 1024px) {
            .language-select-mobile {
                display: none !important;
            }
        }
        
        /* Custom Dropdown Styles for Mobile */
        .custom-dropdown {
            position: relative;
            width: 100%;
        }
        
        .custom-dropdown-trigger {
            display: flex;
            justify-content: space-between;
            align-items: center;
            width: 100%;
            padding: var(--spacing-2) var(--spacing-3);
            border: 1px solid var(--border);
            border-radius: 4px;
            background: var(--bg-surface);
            color: var(--text);
            font-family: var(--font-family-base);
            font-size: var(--font-size-sm);
            cursor: pointer;
            min-height: 36px;
            box-sizing: border-box;
        }
        
        .custom-dropdown-trigger.open {
            border-color: var(--accent);
            box-shadow: 0 0 0 3px rgba(107, 155, 210, 0.1);
        }
        
        .custom-dropdown-trigger .dropdown-arrow {
            margin-left: var(--spacing-2);
            transition: transform 0.2s ease-in-out;
            font-size: 14px;
            color: var(--text-muted);
        }
        
        .custom-dropdown-trigger.open .dropdown-arrow {
            transform: rotate(180deg);
        }
        
        .custom-dropdown-overlay {
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: rgba(0, 0, 0, 0.5);
            z-index: 1000;
            display: none;
        }
        
        .custom-dropdown-overlay.show {
            display: block;
        }
        
        .custom-dropdown-menu {
            position: fixed;
            bottom: 0;
            left: 0;
            right: 0;
            background-color: var(--bg-surface);
            border-top-left-radius: 12px;
            border-top-right-radius: 12px;
            box-shadow: 0 -4px 8px rgba(0, 0, 0, 0.2);
            z-index: 1001;
            transform: translateY(100%);
            transition: transform 0.3s ease-out;
            max-height: 70vh;
            overflow-y: auto;
            -webkit-overflow-scrolling: touch;
        }
        
        .custom-dropdown-menu.show {
            transform: translateY(0);
            display: block;
        }
        
        .custom-dropdown-menu-header {
            padding: 1rem;
            border-bottom: 1px solid var(--border);
            display: flex;
            justify-content: space-between;
            align-items: center;
            position: sticky;
            top: 0;
            background: var(--bg-surface);
            z-index: 1;
        }
        
        .custom-dropdown-menu-title {
            font-size: 18px;
            font-weight: 600;
            color: var(--text);
        }
        
        .custom-dropdown-menu-close {
            background: none;
            border: none;
            font-size: 24px;
            color: var(--text-muted);
            cursor: pointer;
            padding: 0;
            width: 32px;
            height: 32px;
            display: flex;
            align-items: center;
            justify-content: center;
        }
        
        .custom-dropdown-menu-items {
            padding: var(--spacing-2);
        }
        
        .custom-dropdown-menu-item {
            padding: var(--spacing-4);
            font-family: var(--font-family-base);
            font-size: var(--font-size-base);
            color: var(--text);
            cursor: pointer;
            border-radius: 4px;
            margin-bottom: var(--spacing-1);
        }
        
        .custom-dropdown-menu-item:active {
            background: var(--bg-hover);
        }
        
        .custom-dropdown-menu-item.selected {
            background: rgba(107, 155, 210, 0.1);
            color: var(--accent);
            font-weight: var(--font-weight-semibold);
        }
        
        .back-link {
            color: var(--accent);
            text-decoration: none;
            font-size: var(--font-size-sm);
            font-weight: var(--font-weight-medium);
            display: flex;
            align-items: center;
            gap: var(--spacing-2);
        }
        
        .back-link:hover {
            text-decoration: underline;
        }
        }
        
        .loading {
            display: none;
            text-align: center;
            padding: var(--spacing-4);
            color: var(--text-muted);
        }
        
        .alert {
            padding: var(--spacing-4);
            border-radius: 4px;
            margin-bottom: var(--spacing-4);
        }
        
        .alert-error {
            background: var(--danger-bg);
            border: 1px solid var(--danger);
            color: var(--danger);
        }
        
        .alert-success {
            background: var(--success-bg);
            border: 1px solid var(--success);
            color: var(--success);
        }
        
        .alert-info {
            background: var(--info-bg);
            border: 1px solid var(--info);
            color: var(--info);
    }
    
    /* Custom Phone Dropdown Styles */
    /* Country Selector Button */
    .country-selector-button {
        display: flex;
        align-items: center;
        gap: var(--spacing-1);
        padding: var(--spacing-2);
        border: 1px solid var(--border);
        border-radius: 6px;
        background: var(--bg-input);
        color: var(--text);
        font-family: var(--font-family-base);
        font-size: var(--font-size-base);
        cursor: pointer;
        min-height: 48px;
        box-sizing: border-box;
        transition: border-color 0.2s, box-shadow 0.2s;
    }

    .country-selector-button:hover,
    .country-selector-button:focus {
        border-color: var(--accent);
        box-shadow: 0 0 0 3px rgba(107, 155, 210, 0.1);
        outline: none;
    }

    .country-flag {
        font-size: 20px;
        line-height: 1;
    }

    .country-code {
        font-weight: 500;
        font-size: var(--font-size-base);
    }

    .country-selector-button .dropdown-arrow {
        font-size: 12px;
        color: var(--text-muted);
        transition: transform 0.2s ease-in-out;
    }

    .country-selector-button.open .dropdown-arrow {
        transform: rotate(180deg);
    }

    /* Custom Dropdown Styles */
    .custom-dropdown-overlay {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: rgba(0, 0, 0, 0.5);
        z-index: 1000;
        display: none;
    }

    .custom-dropdown-overlay.show {
        display: block;
    }

    .custom-dropdown-menu {
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        background-color: var(--bg-surface);
        border-top-left-radius: 8px;
        border-top-right-radius: 8px;
        box-shadow: 0 -4px 8px rgba(0, 0, 0, 0.2);
        z-index: 1001;
        transform: translateY(100%);
        transition: transform 0.3s ease-out;
        max-height: 70vh;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }

    .custom-dropdown-menu.show {
        transform: translateY(0);
    }

    .custom-dropdown-menu-header {
        padding: 1rem;
        border-bottom: 1px solid var(--border);
        display: flex;
        justify-content: space-between;
        align-items: center;
        position: sticky;
        top: 0;
        background: var(--bg-surface);
        z-index: 1;
    }

    .custom-dropdown-menu-title {
        font-size: 18px;
        font-weight: 600;
        color: var(--text);
    }

    .custom-dropdown-menu-close {
        background: none;
        border: none;
        font-size: 24px;
        color: var(--text-muted);
        cursor: pointer;
        padding: 0;
        width: 32px;
        height: 32px;
        display: flex;
        align-items: center;
        justify-content: center;
        border-radius: 4px;
        transition: background 0.2s;
    }

    .custom-dropdown-menu-close:hover {
        background: var(--bg-hover);
    }

    .custom-dropdown-menu-items {
        padding: 0;
    }

    .custom-dropdown-menu-item {
        padding: 1rem;
        border-bottom: 1px solid var(--border);
        cursor: pointer;
        display: flex;
        align-items: center;
        gap: var(--spacing-2);
        transition: background 0.2s;
    }

    .custom-dropdown-menu-item:last-child {
        border-bottom: none;
    }

    .custom-dropdown-menu-item:hover {
        background: var(--bg-hover);
    }

    .custom-dropdown-menu-item.selected {
        background: rgba(107, 155, 210, 0.15);
        font-weight: 600;
    }

    .custom-dropdown-menu-item .country-flag {
        font-size: 24px;
        line-height: 1;
        flex-shrink: 0;
    }

    .custom-dropdown-menu-item .country-name {
        flex: 1;
        text-align: left;
    }

    .custom-dropdown-menu-item .country-dial-code {
        color: var(--text-muted);
        font-size: var(--font-size-sm);
    }

    /* Hide intl-tel-input flag button - we use custom button instead */
    .iti__flag-container {
        display: none !important;
    }

    .iti__selected-flag,
    .iti__flag,
    .iti__selected-dial-code,
    .iti__arrow {
        display: none !important;
        visibility: hidden !important;
    }

    .iti {
        width: 100% !important;
        max-width: 100% !important;
        position: relative !important;
        z-index: 10 !important;
        margin: 0 !important;
        padding: 0 !important;
        display: block !important;
    }

    #contact_phone {
        width: 100% !important;
        padding: var(--spacing-3) !important;
        border: 1px solid var(--border) !important;
        border-radius: 6px !important;
        font-size: var(--font-size-base) !important;
        box-sizing: border-box !important;
        height: auto !important;
        min-height: 48px !important;
        line-height: 1.5 !important;
        margin: 0 !important;
        vertical-align: top !important;
    }


/* Phase 3 utility replacements for former inline styles */
.uv-m-0 { margin: 0; }
.uv-phone-row { display: flex; gap: var(--spacing-2); width: 100%; align-items: flex-start; }
.uv-country-btn { flex-shrink: 0; min-width: 80px; }
.uv-flex-1 { flex: 1; min-width: 0; }
.uv-span-all { grid-column: 1 / -1; }
.uv-check-row { display: flex; align-items: flex-start; cursor: pointer; }
.uv-mt-1 { margin-top: 4px; }
.uv-my-3 { margin: var(--spacing-3) 0; }
.uv-label-sm { font-size: var(--font-size-sm); margin-bottom: var(--spacing-1); }
.uv-select-sm { width: 100%; padding: var(--spacing-2); font-size: var(--font-size-sm); }
.uv-plan-total { font-size: var(--font-size-sm); color: var(--text-muted); margin-top: var(--spacing-1); }
.uv-plan-savings { font-size: var(--font-size-xs); color: var(--success); margin-top: var(--spacing-1); }
.uv-muted-sm { font-size: var(--font-size-sm); color: var(--text-muted); margin-bottom: var(--spacing-4); }
.uv-coupon-row { display: flex; gap: var(--spacing-2); align-items: flex-start; }
.uv-coupon-input { flex: 1; text-transform: uppercase; }
.uv-nowrap { white-space: nowrap; }
.uv-coupon-msg { margin-top: var(--spacing-2); font-size: var(--font-size-sm); }
.uv-coupon-card { margin-top: var(--spacing-4); padding: var(--spacing-4); background: var(--bg-surface-2); border: 1px solid var(--border); border-radius: var(--radius-md); }
.uv-row-between { display: flex; justify-content: space-between; align-items: center; }
.uv-coupon-title { font-size: var(--font-size-lg); font-weight: var(--font-weight-semibold); color: var(--success); margin: 0; }
.uv-btn-compact { padding: var(--spacing-1) var(--spacing-2); font-size: var(--font-size-sm); }
.uv-stack-sm { display: grid; gap: var(--spacing-2); }
.uv-text-muted { color: var(--text-muted); }
.uv-fw-medium { font-weight: var(--font-weight-medium); }
.uv-fw-semibold { font-weight: var(--font-weight-semibold); }
.uv-fw-bold { font-weight: var(--font-weight-bold); }
.uv-text-success { color: var(--success); }
.uv-text-accent { color: var(--accent); }
.uv-text-lg { font-size: var(--font-size-lg); }
.uv-border-top { padding-top: var(--spacing-2); border-top: 1px solid var(--border); }
.uv-salesman { margin-top: var(--spacing-3); padding-top: var(--spacing-3); border-top: 1px solid var(--border); font-size: var(--font-size-sm); color: var(--text-muted); }
.uv-form-error { color: #d32f2f; margin-top: 0.25rem; font-size: 0.875rem; }
