/**
 * Public Styles for Tenant Referral Program
 * 
 * Extracted and adapted from template-referral-signup-test.php
 * Includes form styling, message types, and referral-specific components
 */

/* CSS Custom Properties */
:root {
    /* Brand Colors - Use theme colors if available, fallback to defaults */
    --trp-red: var(--primary, #E60000); 
    --trp-dark-red: var(--primary-dark, #C00000); 
    --trp-text-light: var(--primary-foreground, #ffffff);
    --trp-text-dark: var(--foreground, #333333);
    --trp-border-color: var(--border, #dddddd);
    --trp-input-bg: var(--input, #f9f9f9);
    --trp-background: var(--background, #ffffff);
    --trp-muted: var(--muted, #f9f9f9);
    --trp-muted-foreground: var(--muted-foreground, #666666);
    
    /* Message Type Colors - Use theme colors if available */
    --trp-success-bg: var(--success-bg, #d4edda);
    --trp-success-text: var(--success-text, #155724);
    --trp-success-border: var(--success-border, #c3e6cb);
    
    --trp-error-bg: var(--destructive-bg, #f8d7da);
    --trp-error-text: var(--destructive-foreground, #721c24);
    --trp-error-border: var(--destructive-border, #f5c6cb);
    
    --trp-warning-bg: var(--warning-bg, #fff3cd);
    --trp-warning-text: var(--warning-text, #856404);
    --trp-warning-border: var(--warning-border, #ffeeba);
    
    --trp-info-bg: var(--info-bg, #d1ecf1);
    --trp-info-text: var(--info-text, #0c5460);
    --trp-info-border: var(--info-border, #bee5eb);
    
    /* Border radius from theme */
    --trp-radius: var(--radius, 0.375rem);
    
    /* Shadow variables from theme */
    --trp-shadow-sm: var(--shadow-sm, 0 1px 2px 0 rgba(0, 0, 0, 0.05));
    --trp-shadow: var(--shadow, 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06));
    --trp-shadow-md: var(--shadow-md, 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06));
    --trp-shadow-lg: var(--shadow-lg, 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05));
    --trp-shadow-xl: var(--shadow-xl, 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04));
}

/* Widget Container */
.trp-widget-container {
    margin: 20px 0;
}

.trp-widget-container h2 {
    font-size: 1.5em;
    margin-bottom: 15px;
    color: var(--trp-text-dark);
    text-align: left;
}

/* Widget iframe */
#trp-widget-iframe {
    width: 100%;
    min-height: 600px;
    border: 1px solid var(--trp-border-color);
    border-radius: var(--trp-radius);
    overflow: hidden;
}

/* Signup form placeholder */
.trp-signup-form-placeholder {
    padding: 20px;
    background: var(--trp-muted);
    border: 1px solid var(--trp-border-color);
    border-radius: var(--trp-radius);
    text-align: center;
}

.trp-signup-form-placeholder h3 {
    margin-top: 0;
    color: var(--trp-text-dark);
}

.trp-signup-form-placeholder p {
    margin-bottom: 10px;
    color: var(--trp-muted-foreground);
}

.trp-signup-form-placeholder em {
    color: var(--trp-muted-foreground);
    font-size: 0.9em;
}

/* Widget Button Styles */
.trp-widget-button {
    display: inline-block;
    padding: 12px 24px;
    background-color: var(--trp-red);
    color: var(--trp-text-light);
    text-decoration: none;
    border: none;
    border-radius: var(--trp-radius);
    cursor: pointer;
    font-size: 1em;
    font-weight: bold;
    text-transform: uppercase;
    transition: background-color 0.3s ease, transform 0.2s ease;
    box-shadow: var(--trp-shadow-sm);
}

.trp-widget-button:hover {
    background-color: var(--trp-dark-red);
    color: var(--trp-text-light);
    text-decoration: none;
    transform: translateY(-1px);
    box-shadow: var(--trp-shadow-md);
}

.trp-widget-button:active {
    transform: translateY(0);
    box-shadow: var(--trp-shadow-sm);
}

/* Modal Button Styles */
.trp-modal-button {
    display: inline-block;
    padding: 10px 20px;
    background-color: var(--trp-red);
    color: var(--trp-text-light);
    text-decoration: none;
    border: none;
    border-radius: var(--trp-radius);
    cursor: pointer;
    font-size: 0.9em;
    font-weight: bold;
    transition: background-color 0.3s ease;
}

.trp-modal-button:hover {
    background-color: var(--trp-dark-red);
    color: var(--trp-text-light);
    text-decoration: none;
}

/* Debug Container */
.trp-debug-container {
    background-color: var(--trp-muted);
    border: 1px solid var(--trp-border-color);
    border-radius: var(--trp-radius);
    padding: 15px;
    margin: 10px 0;
    font-family: monospace;
    font-size: 0.9em;
}

.trp-debug-container h4 {
    margin-top: 0;
    color: var(--trp-text-dark);
}

.trp-debug-container ul {
    margin: 10px 0;
    padding-left: 20px;
}

.trp-debug-container li {
    margin: 5px 0;
}

/* Form Container Styles */
.trp-form-container {
    max-width: 600px;
    margin: 40px auto;
    padding: 20px 30px 30px;
    background-color: var(--trp-background);
    border: 1px solid var(--trp-border-color);
    border-radius: var(--trp-radius);
    box-shadow: var(--trp-shadow-lg);
    font-family: var(--font-sans, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol");
}

.trp-form-container .entry-title {
    color: var(--trp-red);
    text-align: center;
    margin-bottom: 25px;
    font-size: 2em;
    font-weight: bold;
}

/* Form Field Styles */
.trp-signup-form p,
.trp-signup-form div.form-field {
    margin-bottom: 15px;
}

.trp-signup-form label {
    display: block;
    margin-bottom: 5px;
    font-weight: bold;
    color: var(--trp-text-dark);
}

.trp-signup-form label .required-star {
    color: var(--trp-red);
    font-weight: bold;
}

.trp-signup-form input[type="email"],
.trp-signup-form input[type="password"],
.trp-signup-form input[type="text"],
.trp-signup-form input[type="tel"],
.trp-signup-form select {
    width: 100%;
    padding: 10px;
    border: 1px solid var(--trp-border-color);
    border-radius: var(--trp-radius);
    box-sizing: border-box;
    background-color: var(--trp-input-bg);
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
    font-size: 1rem;
}

.trp-signup-form input[type="email"]:focus,
.trp-signup-form input[type="password"]:focus,
.trp-signup-form input[type="text"]:focus,
.trp-signup-form input[type="tel"]:focus,
.trp-signup-form select:focus {
    border-color: var(--trp-red);
    outline: none;
    box-shadow: 0 0 0 3px rgba(230, 0, 0, 0.25);
}

/* Checkbox Styles */
.trp-signup-form .checkbox-group {
    margin-bottom: 10px;
}

.trp-signup-form .checkbox-group input[type="checkbox"] {
    margin-right: 8px;
    vertical-align: middle;
}

.trp-signup-form .checkbox-group label {
    display: inline;
    font-weight: normal;
    margin-bottom: 0;
}

/* Submit Button Styles */
.trp-signup-form input[type="submit"] {
    display: block;
    width: 100%;
    padding: 12px 15px;
    background-color: var(--trp-red) !important;
    color: var(--trp-text-light) !important;
    border: none !important;
    border-radius: var(--trp-radius);
    cursor: pointer;
    font-size: 1.1em;
    font-weight: bold;
    transition: background-color 0.3s ease;
    text-transform: uppercase;
}

.trp-signup-form input[type="submit"]:hover {
    background-color: var(--trp-dark-red) !important;
}

/* Message Feedback Styles */
.trp-signup-feedback p {
    padding: 12px 15px;
    margin-bottom: 15px;
    border-radius: var(--trp-radius);
    border-width: 1px;
    border-style: solid;
    font-size: 0.95em;
}

.trp-signup-feedback .message-type-error {
    color: var(--trp-error-text);
    background-color: var(--trp-error-bg);
    border-color: var(--trp-error-border);
}

.trp-signup-feedback .message-type-success {
    color: var(--trp-success-text);
    background-color: var(--trp-success-bg);
    border-color: var(--trp-success-border);
}

.trp-signup-feedback .message-type-warning {
    color: var(--trp-warning-text);
    background-color: var(--trp-warning-bg);
    border-color: var(--trp-warning-border);
}

.trp-signup-feedback .message-type-info {
    color: var(--trp-info-text);
    background-color: var(--trp-info-bg);
    border-color: var(--trp-info-border);
}

/* Referral Code Notice Styles */
#referral-code-applied-notice {
    margin-bottom: 15px;
    font-style: italic;
    color: var(--trp-muted-foreground);
}

/* Manual Referral Code Area */
#manual-referral-code-area {
    display: none;
    margin-bottom: 15px;
    padding: 10px;
    border: 1px solid var(--trp-border-color);
    border-radius: var(--trp-radius);
    background-color: var(--trp-muted);
}

#manual-referral-code-area label {
    display: block;
    margin-bottom: 5px;
    font-weight: normal;
    color: var(--trp-text-dark);
}

#manual-referral-code-area .manual-code-input-group {
    display: flex;
}

#manual_ref_code_input {
    flex-grow: 1;
    padding: 8px;
    border: 1px solid var(--trp-border-color);
    border-radius: var(--trp-radius) 0 0 var(--trp-radius);
}

#apply_manual_ref_code_button {
    padding: 8px 12px;
    border: 1px solid var(--trp-red);
    border-left: none;
    background-color: var(--trp-red);
    color: var(--trp-text-light);
    border-radius: 0 var(--trp-radius) var(--trp-radius) 0;
    cursor: pointer;
    transition: background-color 0.3s ease;
}

#apply_manual_ref_code_button:hover {
    background-color: var(--trp-dark-red);
}

#manual_ref_code_feedback {
    font-size: 0.9em;
    margin-top: 5px;
}

/* Responsive Design */
@media (max-width: 768px) {
    .trp-form-container {
        margin: 20px auto;
        padding: 15px 20px 25px;
    }
    
    .trp-form-container .entry-title {
        font-size: 1.5em;
        margin-bottom: 20px;
    }
    
    .trp-widget-button {
        padding: 10px 20px;
        font-size: 0.9em;
    }
    
    #manual-referral-code-area .manual-code-input-group {
        flex-direction: column;
    }
    
    #manual_ref_code_input {
        border-radius: var(--trp-radius);
        margin-bottom: 8px;
    }
    
    #apply_manual_ref_code_button {
        border: 1px solid var(--trp-red);
        border-radius: var(--trp-radius);
    }
}

/* Accessibility Improvements */
.trp-signup-form input:focus,
.trp-signup-form select:focus,
.trp-widget-button:focus,
.trp-modal-button:focus,
#apply_manual_ref_code_button:focus {
    outline: 2px solid var(--trp-red);
    outline-offset: 2px;
}

/* Screen reader only text */
.trp-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Loading states */
.trp-loading {
    opacity: 0.6;
    pointer-events: none;
}

.trp-loading::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 20px;
    height: 20px;
    margin: -10px 0 0 -10px;
    border: 2px solid var(--trp-border-color);
    border-top: 2px solid var(--trp-red);
    border-radius: 50%;
    animation: trp-spin 1s linear infinite;
}

@keyframes trp-spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
} 