@charset "UTF-8";
/**
 * Pest Trend Analysis
 *
 * @package   Pest_Trend_Analysis
 * @author    Havasi Archibald <hello@ipmflow.com>
 * @copyright 2025 Havasi Archibald
 * @license   GPL-2.0-or-later
 * @link      https://ipmflow.com/
 * @since     1.0.0
 *
 * @description  Pest Trend Analysis Plugin - IPMFlow Design System
 */

/* ====================================
   CSS VARIABLES - IPMFLOW DESIGN SYSTEM
   ==================================== */
:root {
    /* IPMFlow Brand Colors */
    --ipm-primary-color: #007f5f;
    --ipm-secondary-color: #94DD26;
    --ipm-accent-color: #005a47;
    --ipm-success-color: #28a745;
    --ipm-warning-color: #ffc107;
    --ipm-error-color: #dc3545;
    --ipm-info-color: #2196f3;
    
    /* Typography */
    --ipm-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --ipm-emoji-font-family: "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji", "Android Emoji", "EmojiSymbols", "EmojiOne Mozilla", "Twemoji Mozilla", "Symbola", sans-serif;
    --ipm-font-size-sm: 12px;
    --ipm-font-size-base: 14px;
    --ipm-font-size-lg: 16px;
    --ipm-font-size-xl: 18px;
    --ipm-font-size-xxl: 21px;
    --ipm-line-height: 1.6;
    
    /* Spacing */
    --ipm-spacing-xs: 4px;
    --ipm-spacing-sm: 8px;
    --ipm-spacing-md: 16px;
    --ipm-spacing-lg: 24px;
    --ipm-spacing-xl: 32px;
    --ipm-spacing-xxl: 48px;
    
    /* Layout */
    --ipm-border-radius: 8px;
    --ipm-border-radius-sm: 4px;
    --ipm-border-radius-lg: 12px;
    --ipm-border-width: 2px;
    --ipm-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    --ipm-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
    --ipm-shadow-lg: 0 6px 20px rgba(0, 0, 0, 0.12);
    --ipm-shadow-hover: 0 8px 24px rgba(0, 127, 95, 0.15);
    
    /* Background Colors */
    --ipm-bg-primary: #ffffff;
    --ipm-bg-secondary: #f8f9fa;
    --ipm-bg-accent: #e9ecef;
    --ipm-bg-gradient: linear-gradient(135deg, #ffffff 0%, #f0f4f8 100%);
    --ipm-bg-success: linear-gradient(135deg, #d4edda 0%, #c3e6cb 100%);
    --ipm-bg-warning: linear-gradient(135deg, #fff3cd 0%, #fef9e7 100%);
    --ipm-bg-error: linear-gradient(135deg, #f8d7da 0%, #f5c6cb 100%);
    
    /* Text Colors */
    --ipm-text-primary: #2c3e50;
    --ipm-text-secondary: #495057;
    --ipm-text-muted: #6c757d;
    --ipm-text-white: #ffffff;
    
    /* Border Colors */
    --ipm-border-color: #e1e8ed;
    --ipm-border-color-focus: var(--ipm-primary-color);
    --ipm-border-color-error: var(--ipm-error-color);
    
    /* Interactive States */
    --ipm-hover-bg: rgba(0, 127, 95, 0.05);
    --ipm-focus-shadow: 0 0 0 3px rgba(0, 127, 95, 0.15);
    --ipm-disabled-opacity: 0.6;

    /* Legacy compatibility for plugins */
    --pta-primary-color: var(--ipm-primary-color);
}

/* ====================================
   RESET & BASE STYLES
   ==================================== */
* {
    box-sizing: border-box;
}

body {
    font-family: var(--ipm-font-family);
    line-height: var(--ipm-line-height);
    color: var(--ipm-text-primary);
    background-color: var(--ipm-bg-secondary);
    margin: 0;
    padding: 0;
}

/* ====================================
   EMOJI FONT CONSISTENCY
   ==================================== */
h1, h2, h3, h4, h5, h6 {
    font-family: var(--ipm-font-family), var(--ipm-emoji-font-family);
}

/* Ensure emojis render properly across all elements */
body,
body * {
    font-family: inherit;
}

/* Elements that may contain emojis */
.pta-notification::before,
.alert-item::before,
.pta-credit-icon,
.pta-file-upload-icon,
.pta-step-icon,
.pta-site-icon,
.pta-modal-header h2::before,
.pta-modal-header h3::before,
.pdf-validation-disclaimer h4::before,
.pdf-validation-instructions .instruction-title::before {
    font-family: var(--ipm-emoji-font-family) !important;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-style: normal;
    font-weight: normal;
    display: inline-block;
    text-decoration: inherit;
    text-align: center;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
}

/* ====================================
   ACCESSIBILITY & FOCUS MANAGEMENT
   ==================================== */
*:focus {
    outline: none;
}

button:focus,
input:focus,
select:focus,
textarea:focus {
    outline: none; /* Custom focus styles applied in components */
}

/* ====================================
   HIGH CONTRAST MODE SUPPORT
   ==================================== */
@media (prefers-contrast: high) {
    :root {
        --ipm-border-width: 3px;
        --ipm-shadow: none;
        --ipm-shadow-lg: none;
        --ipm-shadow-hover: none;
    }
    
    .pta-btn {
        border: 2px solid currentColor;
    }
}

/* ====================================
   REDUCED MOTION SUPPORT
   ==================================== */
@media (prefers-reduced-motion: reduce) {
    *,
    ::before,
    ::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

/* ====================================
   PRINT STYLES
   ==================================== */
@media print {
    .pta-navigation,
    #pta-reset-container,
    .pta-site-selector-modal,
    .pta-document-manager-modal,
    .pta-notification {
        display: none !important;
    }
    
    .pest-trend-analysis-form-wrap,
    .pta-modal-content,
    .pta-site-selector-content {
        box-shadow: none;
        border: 1px solid #000;
    }
    
    .pta-step-card,
    .document-card {
        page-break-inside: avoid;
        box-shadow: none;
        border: 1px solid #000;
    }
}