/**
 * ZipPicks Registration CSS - Extends Global System
 * File: assets/style.css
 * Uses ZipPicks CSS tokens and component patterns
 */

/* Form row layout for side-by-side fields */
.zip-form-row {
    display: flex;
    gap: var(--zip-spacing-md);
    margin-bottom: var(--zip-spacing-md);
}

.zip-form-half {
    flex: 1;
}

/* Error message styling consistent with ZipPicks error system */
.zip-error {
    display: block;
    color: #dc3232;
    font-size: 0.875rem;
    margin-top: var(--zip-spacing-xs);
    font-weight: 500;
    min-height: 1.2rem; /* Consistent spacing */
}

/* Help text using ZipPicks muted color */
.zip-help-text {
    font-size: 0.875rem;
    color: var(--zip-color-muted);
    line-height: 1.4;
    margin-top: var(--zip-spacing-xs);
    margin-bottom: var(--zip-spacing-md);
}

/* Submit button extensions */
.zip-submit-btn {
    width: 100%;
    position: relative;
    margin: var(--zip-spacing-lg) 0;
}

.zip-submit-btn:disabled {
    opacity: 0.7;
    cursor: not-allowed;
    transform: none !important;
}

.zip-spinner {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

/* Form footer styling */
.zip-form-footer {
    text-align: center;
    margin-top: var(--zip-spacing-lg);
    padding-top: var(--zip-spacing-md);
    border-top: 1px solid var(--zip-color-border);
}

.zip-form-footer p {
    margin-bottom: var(--zip-spacing-sm);
    color: var(--zip-color-muted);
}

/* Success/error messages using ZipPicks design system */
.zip-message {
    padding: var(--zip-spacing-md);
    border-radius: var(--zip-radius-sm);
    margin-bottom: var(--zip-spacing-md);
    font-size: 0.9rem;
    line-height: 1.5;
    border: 1px solid transparent;
}

.zip-message.success {
    background-color: #d4edda;
    border-color: #c3e6cb;
    color: #155724;
}

.zip-message.error {
    background-color: #f8d7da;
    border-color: #f5c6cb;
    color: #721c24;
}

.zip-message.info {
    background-color: #cce5ff;
    border-color: #99d6ff;
    color: #004085;
}

/* reCAPTCHA styling */
.g-recaptcha {
    display: flex;
    justify-content: center;
    margin: var(--zip-spacing-md) 0;
}

/* ========================================
   UPDATED CREATE ACCOUNT BUTTON STYLES
   Using ZipPicks Global Design System
   ======================================== */

/* Registration Form Container */
.zippicks-registration-form {
    background: var(--zp-surface-elevated, #FFFFFF);
    border-radius: var(--zp-radius-xl, 12px);
    padding: var(--zp-space-xl, 32px);
    box-shadow: var(--zp-shadow-card, 0 4px 12px rgba(25, 79, 173, 0.15));
    max-width: 480px;
    margin: 0 auto;
}

/* Form Fields */
.zippicks-registration-form input,
.zippicks-registration-form select {
    width: 100%;
    padding: var(--zp-space-md, 16px);
    border: 2px solid var(--zp-border, #E9ECEF);
    border-radius: var(--zp-radius-lg, 8px);
    font-family: var(--zp-font-family-primary, 'Inter', sans-serif);
    font-size: var(--zp-text-base, 16px);
    transition: var(--zp-transition-fast, 150ms ease-in-out);
    background: var(--zp-background, #FFFFFF);
    color: var(--zp-text-primary, #212529);
}

.zippicks-registration-form input:focus,
.zippicks-registration-form select:focus {
    outline: none;
    border-color: var(--zp-primary, #194FAD);
    box-shadow: 0 0 0 3px rgba(25, 79, 173, 0.1);
}

/* User Type Dropdown */
.zippicks-registration-form select {
    cursor: pointer;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236B7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
    background-position: right 12px center;
    background-repeat: no-repeat;
    background-size: 16px;
    padding-right: 40px;
}

/* Create Account Button - MAIN STYLING */
.zippicks-registration-form button[type="submit"],
.zippicks-registration-form .zp-create-account-btn,
button.zp-create-account-btn,
.zip-submit-btn,
input[type="submit"].zip-submit-btn {
    width: 100% !important;
    padding: var(--zp-space-lg, 24px) var(--zp-space-xl, 32px) !important;
    background: var(--zp-primary, #194FAD) !important;
    color: var(--zp-text-inverse, #FFFFFF) !important;
    border: 2px solid var(--zp-primary, #194FAD) !important;
    border-radius: var(--zp-radius-lg, 8px) !important;
    font-family: var(--zp-font-family-primary, 'Inter', sans-serif) !important;
    font-size: var(--zp-text-lg, 18px) !important;
    font-weight: var(--zp-font-semibold, 600) !important;
    letter-spacing: 0.5px !important;
    text-transform: none !important;
    cursor: pointer !important;
    transition: all var(--zp-transition-fast, 150ms ease-in-out) !important;
    box-shadow: var(--zp-shadow-button, 0 2px 8px rgba(25, 79, 173, 0.2)) !important;
    text-decoration: none !important;
    display: block !important;
    text-align: center !important;
    margin-top: var(--zp-space-xl, 32px) !important;
    position: relative !important;
    overflow: hidden !important;
}

/* Create Account Button Hover State */
.zippicks-registration-form button[type="submit"]:hover,
.zippicks-registration-form .zp-create-account-btn:hover,
button.zp-create-account-btn:hover,
.zip-submit-btn:hover,
input[type="submit"].zip-submit-btn:hover {
    background: var(--zp-text-inverse, #FFFFFF) !important;
    color: var(--zp-primary, #194FAD) !important;
    border-color: var(--zp-primary, #194FAD) !important;
    transform: translateY(-2px) !important;
    box-shadow: var(--zp-shadow-lg, 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)) !important;
}

/* Create Account Button Focus State */
.zippicks-registration-form button[type="submit"]:focus,
.zippicks-registration-form .zp-create-account-btn:focus,
button.zp-create-account-btn:focus,
.zip-submit-btn:focus,
input[type="submit"].zip-submit-btn:focus {
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(25, 79, 173, 0.3), var(--zp-shadow-button, 0 2px 8px rgba(25, 79, 173, 0.2)) !important;
}

/* Create Account Button Active State */
.zippicks-registration-form button[type="submit"]:active,
.zippicks-registration-form .zp-create-account-btn:active,
button.zp-create-account-btn:active,
.zip-submit-btn:active,
input[type="submit"].zip-submit-btn:active {
    transform: translateY(0) !important;
    box-shadow: var(--zp-shadow-sm, 0 1px 2px 0 rgba(0, 0, 0, 0.05)) !important;
}

/* Loading State - Override existing disabled styles */
.zippicks-registration-form button[type="submit"]:disabled,
.zippicks-registration-form .zp-create-account-btn:disabled,
button.zp-create-account-btn:disabled,
.zip-submit-btn:disabled,
input[type="submit"].zip-submit-btn:disabled {
    opacity: 0.7 !important;
    cursor: not-allowed !important;
    transform: none !important;
    background: var(--zp-primary, #194FAD) !important;
    color: var(--zp-text-inverse, #FFFFFF) !important;
}

/* Form Labels */
.zippicks-registration-form label {
    display: block;
    margin-bottom: var(--zp-space-sm, 8px);
    font-weight: var(--zp-font-medium, 500);
    color: var(--zp-text-primary, #212529);
    font-size: var(--zp-text-sm, 14px);
}

/* Form Field Containers */
.zippicks-registration-form .form-field {
    margin-bottom: var(--zp-space-lg, 24px);
}

/* User Type Info Section */
.zippicks-user-types {
    background: var(--zp-surface, #F8F9FA);
    border-radius: var(--zp-radius-lg, 8px);
    padding: var(--zp-space-lg, 24px);
    margin-bottom: var(--zp-space-xl, 32px);
    border-left: 4px solid var(--zp-primary, #194FAD);
}

.zippicks-user-types h3 {
    color: var(--zp-text-primary, #212529);
    font-size: var(--zp-text-lg, 18px);
    font-weight: var(--zp-font-semibold, 600);
    margin-bottom: var(--zp-space-md, 16px);
}

.zippicks-user-types ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.zippicks-user-types li {
    padding: var(--zp-space-sm, 8px) 0;
    border-bottom: 1px solid var(--zp-border-light, #F1F3F4);
}

.zippicks-user-types li:last-child {
    border-bottom: none;
}

.zippicks-user-types strong {
    color: var(--zp-primary, #194FAD);
    font-weight: var(--zp-font-semibold, 600);
}

/* Already have account link */
.zippicks-registration-form .sign-in-link {
    text-align: center;
    margin-top: var(--zp-space-lg, 24px);
    padding-top: var(--zp-space-lg, 24px);
    border-top: 1px solid var(--zp-border-light, #F1F3F4);
}

.zippicks-registration-form .sign-in-link a {
    color: var(--zp-primary, #194FAD);
    text-decoration: none;
    font-weight: var(--zp-font-medium, 500);
    transition: var(--zp-transition-fast, 150ms ease-in-out);
}

.zippicks-registration-form .sign-in-link a:hover {
    color: var(--zp-primary-dark, #0F3A82);
    text-decoration: underline;
}

/* Terms and Privacy Links */
.zippicks-registration-form .terms-privacy {
    text-align: center;
    margin-top: var(--zp-space-lg, 24px);
    font-size: var(--zp-text-sm, 14px);
    color: var(--zp-text-secondary, #6C757D);
    line-height: var(--zp-leading-relaxed, 1.625);
}

.zippicks-registration-form .terms-privacy a {
    color: var(--zp-primary, #194FAD);
    text-decoration: none;
    font-weight: var(--zp-font-medium, 500);
}

.zippicks-registration-form .terms-privacy a:hover {
    text-decoration: underline;
}

/* Error Messages */
.zippicks-registration-form .error-message {
    background: rgba(220, 53, 69, 0.1);
    color: var(--zp-danger, #DC3545);
    padding: var(--zp-space-md, 16px);
    border-radius: var(--zp-radius-md, 6px);
    border-left: 4px solid var(--zp-danger, #DC3545);
    margin-bottom: var(--zp-space-lg, 24px);
    font-size: var(--zp-text-sm, 14px);
}

/* Success Messages */
.zippicks-registration-form .success-message {
    background: rgba(40, 167, 69, 0.1);
    color: var(--zp-success, #28A745);
    padding: var(--zp-space-md, 16px);
    border-radius: var(--zp-radius-md, 6px);
    border-left: 4px solid var(--zp-success, #28A745);
    margin-bottom: var(--zp-space-lg, 24px);
    font-size: var(--zp-text-sm, 14px);
}

/* Mobile responsive adjustments */
@media (max-width: 768px) {
    .zip-form-row {
        flex-direction: column;
        gap: 0;
    }
    
    .zip-form {
        margin: var(--zip-spacing-lg) auto;
        padding: var(--zip-spacing-md);
    }
    
    .zippicks-registration-form {
        padding: var(--zp-space-lg, 24px);
        margin: var(--zp-space-md, 16px);
    }
    
    .zippicks-registration-form button[type="submit"],
    .zippicks-registration-form .zp-create-account-btn,
    button.zp-create-account-btn,
    .zip-submit-btn,
    input[type="submit"].zip-submit-btn {
        padding: var(--zp-space-md, 16px) var(--zp-space-lg, 24px) !important;
        font-size: var(--zp-text-base, 16px) !important;
    }
}

@media (max-width: 480px) {
    .g-recaptcha {
        transform: scale(0.85);
        transform-origin: center;
    }
    
    .zip-form {
        padding: var(--zip-spacing-sm);
    }
}

/* Loading state animations */
@keyframes zip-spin {
    0% { transform: translate(-50%, -50%) rotate(0deg); }
    100% { transform: translate(-50%, -50%) rotate(360deg); }
}

.zip-spinner::before {
    content: '';
    width: 16px;
    height: 16px;
    border: 2px solid rgba(255, 255, 255, 0.3);
    border-top: 2px solid white;
    border-radius: 50%;
    animation: zip-spin 1s linear infinite;
    display: block;
}

/* Form validation states */
.zip-form input:invalid:not(:placeholder-shown) {
    border-color: #dc3232;
}

.zip-form input:valid {
    border-color: var(--zip-color-border);
}

/* Focus states using ZipPicks accent color */
.zip-form input:focus,
.zip-form select:focus,
.zip-form textarea:focus {
    border-color: var(--zip-color-accent);
    box-shadow: 0 0 0 3px rgba(25, 79, 173, 0.1);
}

/* Password toggle button positioning */
.zip-password-toggle {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    cursor: pointer;
    color: var(--zip-color-muted);
    padding: 4px;
    font-size: 16px;
}

.zip-password-toggle:hover {
    color: var(--zip-color-accent);
}

/* High contrast mode support */
@media (prefers-contrast: high) {
    .zip-form input,
    .zip-form select {
        border-width: 2px;
    }
    
    .zip-follow-button {
        border: 2px solid var(--zip-color-accent);
    }
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
    .zip-form input,
    .zip-form select,
    .zip-follow-button {
        transition: none;
    }
    
    .zip-spinner::before {
        animation: none;
    }
    
    .zip-follow-button:hover {
        transform: none;
    }
    
    .zippicks-registration-form button[type="submit"]:hover,
    .zip-submit-btn:hover {
        transform: none !important;
    }
}

/* Dark mode support */
@media (prefers-color-scheme: dark) {
    .zip-message.success {
        background-color: #1e4620;
        border-color: #2d5a2f;
        color: #75dd79;
    }
    
    .zip-message.error {
        background-color: #5c1e20;
        border-color: #7d2d2f;
        color: #ff6b6b;
    }
    
    .zip-message.info {
        background-color: #1e2a5c;
        border-color: #2f3d7d;
        color: #6bb3ff;
    }
}

/* Print styles */
@media print {
    .zip-form {
        box-shadow: none;
        border: 1px solid #000;
    }
    
    .zip-follow-button,
    .g-recaptcha {
        display: none;
    }
    
    .zip-form input,
    .zip-form select {
        border: 1px solid #000;
        background: transparent;
    }
    
    .zippicks-registration-form button[type="submit"],
    .zip-submit-btn {
        display: none;
    }
}