/**
 * L'Orto Design Tokens
 *
 * CSS custom properties (variables) defining the design system foundation.
 * Based on Atlantic Canada aesthetic with maritime-inspired palette.
 *
 * @package RynueLorto
 * @since 1.0.0
 */

:root {
    /* ========================================
       BRAND FOUNDATION - Atlantic Design Language
       Official Rynue Brand Colors
       ======================================== */

    /* Boreal - Dark Foundation (Navy/Charcoal) */
    --boreal-0: #0F1A22;   /* Darkest - hero backgrounds */
    --boreal-1: #1A2832;   /* Dark panels */
    --boreal-2: #25363F;   /* Medium dark */
    --boreal-3: #30444D;   /* Dark text on light */

    /* Shore - Light Foundation (Whites/Warm Grays) */
    --shore-0: #FFFFFF;     /* Pure white */
    --shore-1: #F8F6F2;     /* Carta paper - primary light bg */
    --shore-2: #F0EBE5;     /* Secondary light bg */
    --shore-3: #E8E2DA;     /* Tertiary light bg */
    --shore-4: #D8D2CA;     /* Borders on light */

    /* Atlantic - Primary Blue (Ocean/Maritime) */
    --atlantic-0: #1A3548;  /* Darkest blue - text */
    --atlantic-1: #2B577D;  /* Primary brand blue */
    --atlantic-2: #3A6F9F;  /* Medium blue */
    --atlantic-3: #4A88C1;  /* Light blue */
    --atlantic-4: #6BA3D4;  /* Lighter blue */
    --atlantic-5: #B4D8F3;  /* Very light blue */

    /* Warmth - Ginger Accent (Sunrise/Earth Tones) */
    --warmth-0: #8F6721;    /* Dark ginger */
    --warmth-1: #D4885C;    /* Primary ginger accent */
    --warmth-2: #E09B38;    /* Bright ginger */
    --warmth-3: #F7AC42;    /* Light ginger gold */
    --warmth-4: #FABD5F;    /* Lighter ginger */

    /* Granite - Neutral Text & UI Elements */
    --granite-0: #1A1A1A;   /* Near black - headers */
    --granite-1: #3C4A56;   /* Dark gray - body text */
    --granite-2: #666666;   /* Medium gray - secondary text */
    --granite-3: #999999;   /* Light gray - tertiary text */
    --granite-4: #BDBDBD;   /* Very light gray - disabled */
    --granite-5: #E0E0E0;   /* Borders */

    /* Forest - Secondary Green (Nature/Growth) */
    --forest-0: #1E3D36;    /* Dark forest */
    --forest-1: #3A5F56;    /* Medium forest */
    --forest-2: #5A9F86;    /* Primary green */
    --forest-3: #75B69E;    /* Light green */
    --forest-4: #B9E3D2;    /* Very light green */

    /* Semantic Brand Colors */
    --success-green: #4CAF50;   /* Harvest green */
    --warning-amber: #FF9800;   /* Maritime amber */
    --error-red: #F44336;       /* Storm red */
    --info-blue: #03A9F4;       /* Atlantic info blue */

    /* Paper Grain Texture (Brand Signature) */
    --paper-grain: url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");

    /* ========================================
       LEGACY TOKEN ALIASES
       Mapping old --lorto-* tokens to brand tokens
       ======================================== */

    /* Primary Colors - Deep Ocean Blues (mapped to Atlantic) */
    --lorto-primary-900: var(--boreal-0);
    --lorto-primary-800: var(--atlantic-0);
    --lorto-primary-700: var(--atlantic-1);
    --lorto-primary-600: var(--atlantic-2);
    --lorto-primary-500: var(--atlantic-3);
    --lorto-primary-400: var(--atlantic-4);
    --lorto-primary-300: #8FBEE6;
    --lorto-primary-200: var(--atlantic-5);
    --lorto-primary-100: #DAF0FF;

    /* Secondary Colors - Forest Canopy (mapped to Forest) */
    --lorto-secondary-900: var(--forest-0);
    --lorto-secondary-800: #2A4F46;
    --lorto-secondary-700: var(--forest-1);
    --lorto-secondary-600: #4A7F6E;
    --lorto-secondary-500: var(--forest-2);
    --lorto-secondary-400: var(--forest-3);
    --lorto-secondary-300: #95CDB8;
    --lorto-secondary-200: var(--forest-4);
    --lorto-secondary-100: #DFF5EB;

    /* Accent Colors - Sunrise Gold (mapped to Warmth) */
    --lorto-accent-900: #6B4E1A;
    --lorto-accent-800: var(--warmth-0);
    --lorto-accent-700: #C98A2E;
    --lorto-accent-600: var(--warmth-2);
    --lorto-accent-500: var(--warmth-3);
    --lorto-accent-400: var(--warmth-4);
    --lorto-accent-300: #FCCE82;
    --lorto-accent-200: #FDDFA5;
    --lorto-accent-100: #FFF0C8;

    /* Success - Harvest Green (mapped to brand success) */
    --lorto-success-900: #1B5E20;
    --lorto-success-800: #2E7D32;
    --lorto-success-700: #388E3C;
    --lorto-success-600: #43A047;
    --lorto-success-500: var(--success-green);
    --lorto-success-400: #66BB6A;
    --lorto-success-300: #81C784;
    --lorto-success-200: #A5D6A7;
    --lorto-success-100: #C8E6C9;

    /* Warning - Maritime Amber (mapped to brand warning) */
    --lorto-warning-900: #E65100;
    --lorto-warning-800: #EF6C00;
    --lorto-warning-700: #F57C00;
    --lorto-warning-600: #FB8C00;
    --lorto-warning-500: var(--warning-amber);
    --lorto-warning-400: #FFA726;
    --lorto-warning-300: #FFB74D;
    --lorto-warning-200: #FFCC80;
    --lorto-warning-100: #FFE0B2;

    /* Error - Storm Red (mapped to brand error) */
    --lorto-error-900: #B71C1C;
    --lorto-error-800: #C62828;
    --lorto-error-700: #D32F2F;
    --lorto-error-600: #E53935;
    --lorto-error-500: var(--error-red);
    --lorto-error-400: #EF5350;
    --lorto-error-300: #E57373;
    --lorto-error-200: #EF9A9A;
    --lorto-error-100: #FFCDD2;

    /* Info - Atlantic Blue (mapped to brand info) */
    --lorto-info-900: #01579B;
    --lorto-info-800: #0277BD;
    --lorto-info-700: #0288D1;
    --lorto-info-600: #039BE5;
    --lorto-info-500: var(--info-blue);
    --lorto-info-400: #29B6F6;
    --lorto-info-300: #4FC3F7;
    --lorto-info-200: #81D4FA;
    --lorto-info-100: #B3E5FC;

    /* Neutrals - Shore Tones (mapped to Granite) */
    --lorto-neutral-900: var(--granite-0);
    --lorto-neutral-800: #424242;
    --lorto-neutral-700: #616161;
    --lorto-neutral-600: #757575;
    --lorto-neutral-500: var(--granite-3);
    --lorto-neutral-400: var(--granite-4);
    --lorto-neutral-300: var(--granite-5);
    --lorto-neutral-200: #EEEEEE;
    --lorto-neutral-100: #F5F5F5;
    --lorto-neutral-50: #FAFAFA;

    /* Carta E-Ink - Warm Paper Tones (mapped to Shore) */
    --lorto-carta-primary: var(--shore-1);
    --lorto-carta-secondary: var(--shore-2);
    --lorto-carta-tertiary: var(--shore-3);
    --lorto-carta-text: #2D2A26;
    --lorto-carta-border: var(--shore-4);

    /* Semantic Color Aliases */
    --lorto-primary: var(--atlantic-1);
    --lorto-primary-dark: var(--atlantic-0);
    --lorto-primary-light: var(--atlantic-3);
    --lorto-secondary: var(--forest-1);
    --lorto-accent: var(--warmth-1);
    --lorto-success: var(--success-green);
    --lorto-warning: var(--warning-amber);
    --lorto-error: var(--error-red);
    --lorto-info: var(--info-blue);

    /* Background Colors */
    --lorto-bg-primary: var(--shore-0);
    --lorto-bg-secondary: var(--shore-1);
    --lorto-bg-tertiary: var(--shore-2);
    --lorto-bg-dark: var(--boreal-1);

    /* Text Colors */
    --lorto-text-primary: var(--atlantic-0);
    --lorto-text-secondary: var(--granite-2);
    --lorto-text-tertiary: var(--granite-3);
    --lorto-text-disabled: var(--granite-4);
    --lorto-text-inverse: var(--shore-0);

    /* Border Colors */
    --lorto-border-primary: #DDDDDD;
    --lorto-border-secondary: #E0E0E0;
    --lorto-border-tertiary: #F0F0F0;
    --lorto-border-focus: var(--lorto-primary);

    /* ========================================
       TYPOGRAPHY
       ======================================== */

    /* Brand Font Families */
    --font-display: 'Nunito', 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --font-ui: 'Outfit', system-ui, -apple-system, sans-serif;
    --font-body: 'Outfit', 'Plus Jakarta Sans', system-ui, sans-serif;
    --font-serif: 'Lora', Georgia, 'Times New Roman', serif;
    --font-handwritten: 'Caveat', cursive;
    --font-mono: 'Courier New', Courier, monospace;

    /* Legacy Font Family Aliases (for backwards compatibility) */
    --lorto-font-primary: var(--font-body);
    --lorto-font-secondary: var(--font-serif);
    --lorto-font-handwritten: var(--font-handwritten);
    --lorto-font-mono: var(--font-mono);

    /* Font Sizes - Modular Scale (1.250 - Major Third) */
    --lorto-text-xs: 0.75rem;      /* 12px */
    --lorto-text-sm: 0.875rem;     /* 14px */
    --lorto-text-base: 1rem;       /* 16px */
    --lorto-text-lg: 1.125rem;     /* 18px */
    --lorto-text-xl: 1.25rem;      /* 20px */
    --lorto-text-2xl: 1.563rem;    /* 25px */
    --lorto-text-3xl: 1.953rem;    /* 31px */
    --lorto-text-4xl: 2.441rem;    /* 39px */
    --lorto-text-5xl: 3.052rem;    /* 49px */

    /* Font Weights */
    --lorto-font-light: 300;
    --lorto-font-regular: 400;
    --lorto-font-medium: 500;
    --lorto-font-semibold: 600;
    --lorto-font-bold: 700;
    --lorto-font-extrabold: 800;

    /* Line Heights */
    --lorto-leading-none: 1;
    --lorto-leading-tight: 1.25;
    --lorto-leading-snug: 1.375;
    --lorto-leading-normal: 1.5;
    --lorto-leading-relaxed: 1.625;
    --lorto-leading-loose: 2;

    /* Letter Spacing */
    --lorto-tracking-tighter: -0.05em;
    --lorto-tracking-tight: -0.025em;
    --lorto-tracking-normal: 0;
    --lorto-tracking-wide: 0.025em;
    --lorto-tracking-wider: 0.05em;
    --lorto-tracking-widest: 0.1em;

    /* ========================================
       SPACING - 8px Grid System
       ======================================== */

    --lorto-space-0: 0;
    --lorto-space-1: 0.25rem;   /* 4px */
    --lorto-space-2: 0.5rem;    /* 8px */
    --lorto-space-3: 0.75rem;   /* 12px */
    --lorto-space-4: 1rem;      /* 16px */
    --lorto-space-5: 1.25rem;   /* 20px */
    --lorto-space-6: 1.5rem;    /* 24px */
    --lorto-space-8: 2rem;      /* 32px */
    --lorto-space-10: 2.5rem;   /* 40px */
    --lorto-space-12: 3rem;     /* 48px */
    --lorto-space-16: 4rem;     /* 64px */
    --lorto-space-20: 5rem;     /* 80px */
    --lorto-space-24: 6rem;     /* 96px */

    /* ========================================
       BORDER RADIUS
       ======================================== */

    --lorto-radius-none: 0;
    --lorto-radius-sm: 0.25rem;    /* 4px */
    --lorto-radius-base: 0.375rem; /* 6px */
    --lorto-radius-md: 0.5rem;     /* 8px */
    --lorto-radius-lg: 1rem;       /* 16px */
    --lorto-radius-xl: 1.5rem;     /* 24px */
    --lorto-radius-full: 9999px;   /* Pill shape */

    /* ========================================
       SHADOWS - Carta Paper Aesthetic
       ======================================== */

    --lorto-shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    --lorto-shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
    --lorto-shadow-base: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
    --lorto-shadow-md: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
    --lorto-shadow-lg: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
    --lorto-shadow-xl: 0 25px 50px -12px rgba(0, 0, 0, 0.15);
    --lorto-shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, 0.05);

    /* ========================================
       Z-INDEX LAYERS
       ======================================== */

    --lorto-z-base: 0;
    --lorto-z-dropdown: 1000;
    --lorto-z-sticky: 1020;
    --lorto-z-fixed: 1030;
    --lorto-z-modal-backdrop: 1040;
    --lorto-z-modal: 1050;
    --lorto-z-popover: 1060;
    --lorto-z-tooltip: 1070;
    --lorto-z-notification: 1080;

    /* ========================================
       TRANSITIONS
       ======================================== */

    --lorto-transition-fast: 150ms ease-in-out;
    --lorto-transition-base: 200ms ease-in-out;
    --lorto-transition-slow: 300ms ease-in-out;
    --lorto-transition-slower: 500ms ease-in-out;

    /* Easing Functions */
    --lorto-ease-in: cubic-bezier(0.4, 0, 1, 1);
    --lorto-ease-out: cubic-bezier(0, 0, 0.2, 1);
    --lorto-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);

    /* ========================================
       BREAKPOINTS (for reference in media queries)
       ======================================== */

    --lorto-breakpoint-xs: 480px;
    --lorto-breakpoint-sm: 640px;
    --lorto-breakpoint-md: 768px;
    --lorto-breakpoint-lg: 1024px;
    --lorto-breakpoint-xl: 1280px;
    --lorto-breakpoint-2xl: 1536px;

    /* ========================================
       CONTAINER WIDTHS
       ======================================== */

    --lorto-container-sm: 640px;
    --lorto-container-md: 768px;
    --lorto-container-lg: 1024px;
    --lorto-container-xl: 1280px;
    --lorto-container-2xl: 1400px;
}

/* ========================================
   DARK MODE SUPPORT (Future Enhancement)
   ======================================== */

@media (prefers-color-scheme: dark) {
    :root {
        /* Dark mode overrides can be added here */
    }
}

/* ========================================
   PRINT STYLES
   ======================================== */

@media print {
    :root {
        /* Print-specific adjustments */
        --lorto-shadow-xs: none;
        --lorto-shadow-sm: none;
        --lorto-shadow-base: none;
        --lorto-shadow-md: none;
        --lorto-shadow-lg: none;
        --lorto-shadow-xl: none;
    }
}

/* ========================================
   BRAND SIGNATURE - PAPER GRAIN TEXTURE
   Subtle texture overlay on admin pages
   ======================================== */

body.lorto-admin-page::before,
.wp-admin.toplevel_page_lorto-dashboard::before,
.wp-admin.lorto_page_lorto-garden::before,
.wp-admin.lorto_page_lorto-fields::before,
.wp-admin.lorto_page_lorto-cooperative::before,
.wp-admin.lorto_page_lorto-settings::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: var(--paper-grain);
    opacity: 0.025;
    pointer-events: none;
    z-index: 0;
    mix-blend-mode: multiply;
}

/* Ensure content stays above paper grain */
.lorto-admin-page > *,
.wp-admin #wpwrap {
    position: relative;
    z-index: 1;
}
