/* ================================================
   DESIGN TOKENS - MOMA + Universal Design System
   デザイントークン - MOMAミニマリズム + ユニバーサルデザイン

   Created: 2025-10-31
   Philosophy:
   - MOMA Minimalism (余白重視、装飾最小限)
   - Monochrome + 1 Accent Color
   - 8pt Grid System
   - Perfect Fourth Typography Scale (1.333)
   - WCAG 2.1 AA Compliant
   ================================================ */

:root {
    /* ========================================
       MOMA Color Palette - Minimalist
       モノクローム + アクセント1色
       ======================================== */

    /* Primary Colors - Vibrant Blue (Professional, Trust, Clear) */
    --color-primary: #1988FF;
    --primary-color: #1988FF;        /* Alias for compatibility */
    --primary: #1988FF;              /* Short alias */
    --primary-hover: #0066cc;
    --primary-light: #4da3ff;
    --primary-dark: #0055aa;

    /* Secondary Color - Neutral Gray */
    --secondary-color: #6b7280;
    --color-secondary: #6b7280;      /* Alias */

    /* Accent Color - Bright Sky Blue */
    --color-accent: #0099ff;
    --accent-color: #0099ff;         /* Alias for compatibility */
    --accent: #0099ff;               /* Short alias */
    --color-accent-light: #33aaff;
    --color-accent-dark: #0077cc;
    --color-accent-alpha-10: rgba(0, 153, 255, 0.1);
    --color-accent-alpha-20: rgba(0, 153, 255, 0.2);

    /* Grayscale - MOMA Monochrome Palette */
    --color-white: #ffffff;
    --color-gray-50: #fafafa;       /* Off-white */
    --color-gray-100: #f5f5f5;      /* Light background */
    --color-gray-200: #eeeeee;      /* Subtle borders */
    --color-gray-300: #e0e0e0;      /* Borders */
    --color-gray-400: #bdbdbd;      /* Muted elements */
    --color-gray-500: #9e9e9e;      /* Disabled */
    --color-gray-600: #757575;      /* Secondary text */
    --color-gray-700: #4a4a4a;      /* Body text - darker gray */
    --color-gray-800: #2d2d2d;      /* Primary text - near black */
    --color-gray-900: #1a1a1a;      /* Headings - very dark */
    --color-black: #000000;

    /* Semantic Colors - WCAG AA Compliant (4.5:1 ratio) */
    --color-success: #10b981;       /* Emerald Green - Balanced */
    --success: #10b981;             /* Alias for compatibility */
    --color-success-light: #34d399;
    --color-success-dark: #059669;
    --color-success-bg: rgba(16, 185, 129, 0.08);

    --color-warning: #f59e0b;       /* Amber - Balanced & Warm */
    --warning: #f59e0b;             /* Alias for compatibility */
    --color-warning-light: #fbbf24;
    --color-warning-dark: #d97706;
    --color-warning-bg: rgba(245, 158, 11, 0.08);

    --color-error: #ef4444;         /* Red - Balanced & Clear */
    --danger: #ef4444;              /* Alias for compatibility */
    --color-error-light: #f87171;
    --color-error-dark: #dc2626;
    --color-error-bg: rgba(239, 68, 68, 0.08);

    --color-info: #00a8ff;          /* Light Blue - Info & Help */
    --info: #00a8ff;                /* Alias for compatibility */
    --color-info-bg: rgba(0, 168, 255, 0.1);

    /* ========================================
       Typography Scale - Perfect Fourth (1.333)
       ======================================== */

    /* Font Sizes */
    --font-size-xs: 0.75rem;        /* 12px */
    --font-size-sm: 0.875rem;       /* 14px */
    --font-size-base: 1rem;         /* 16px - iOS zoom prevention */
    --font-size-lg: 1.125rem;       /* 18px */
    --font-size-xl: 1.25rem;        /* 20px */
    --font-size-2xl: 1.5rem;        /* 24px */
    --font-size-3xl: 1.875rem;      /* 30px */
    --font-size-4xl: 2.25rem;       /* 36px */

    /* Line Heights */
    --line-height-tight: 1.4;       /* Headings */
    --line-height-normal: 1.6;      /* Body text */
    --line-height-relaxed: 1.8;     /* Long-form content */

    /* Font Weights */
    --font-weight-light: 300;
    --font-weight-normal: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;

    /* Letter Spacing */
    --letter-spacing-tight: -0.02em;
    --letter-spacing-normal: 0;
    --letter-spacing-wide: 0.02em;

    /* ========================================
       Spacing System - 8pt Grid
       余白システム - 8ポイントグリッド
       ======================================== */

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

    /* ========================================
       Shadows - Soft & Rounded Design
       影 - 柔らかく丸みを帯びたデザイン
       ======================================== */

    --shadow-none: none;
    --shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);
    --shadow-md: 0 4px 8px rgba(0, 0, 0, 0.08), 0 2px 4px rgba(0, 0, 0, 0.06);
    --shadow-lg: 0 8px 16px rgba(0, 0, 0, 0.10), 0 4px 8px rgba(0, 0, 0, 0.08);
    --shadow-xl: 0 12px 24px rgba(0, 0, 0, 0.12), 0 6px 12px rgba(0, 0, 0, 0.10);

    /* Focus Shadow - Accessibility */
    --shadow-focus: 0 0 0 3px var(--color-accent-alpha-20);

    /* ========================================
       Border Radius - Rounded Design
       角丸 - 丸みを帯びたデザイン
       ======================================== */

    --radius-none: 0;
    --radius-sm: 8px;       /* Subtle rounded */
    --radius-md: 12px;      /* Moderate rounded */
    --radius-lg: 16px;      /* Prominent rounded */
    --radius-xl: 24px;      /* Very rounded */
    --radius-2xl: 32px;     /* Extra rounded */
    --radius-full: 9999px;  /* Circular */

    /* ========================================
       Borders
       ======================================== */

    --border-width-thin: 1px;
    --border-width-medium: 1.5px;
    --border-width-thick: 2px;

    --border-color-light: var(--color-gray-200);
    --border-color-base: var(--color-gray-300);
    --border-color-dark: var(--color-gray-400);

    /* ========================================
       Transitions - Smooth & Subtle
       トランジション - スムーズで控えめ
       ======================================== */

    --transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
    --transition-base: 250ms cubic-bezier(0.4, 0, 0.2, 1);
    --transition-slow: 350ms cubic-bezier(0.4, 0, 0.2, 1);

    /* Easing Functions */
    --ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
    --ease-decelerate: cubic-bezier(0.0, 0.0, 0.2, 1);
    --ease-accelerate: cubic-bezier(0.4, 0.0, 1, 1);

    /* ========================================
       Layout Dimensions
       レイアウト寸法
       ======================================== */

    --sidebar-width: 280px;
    --header-height: 64px;
    --footer-height: auto;
    --max-content-width: 1200px;

    /* ========================================
       Universal Design - Touch Targets
       ユニバーサルデザイン - タッチターゲット
       ======================================== */

    /* Apple HIG: Minimum 44x44pt */
    --touch-target-min: 44px;

    /* Material Design: Recommended 48x48dp */
    --touch-target-comfortable: 48px;

    /* Desktop: Smaller targets acceptable */
    --touch-target-desktop: 40px;

    /* ========================================
       Z-Index Scale - Layering System
       Z-Index スケール - レイヤーシステム
       ======================================== */

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

    /* ========================================
       Breakpoints - Responsive Design
       ブレークポイント - レスポンシブデザイン
       ======================================== */

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

    /* ========================================
       Animation Durations
       アニメーション時間
       ======================================== */

    --duration-instant: 100ms;
    --duration-fast: 200ms;
    --duration-normal: 300ms;
    --duration-slow: 500ms;

    /* ========================================
       Accessibility - High Contrast Support
       アクセシビリティ - ハイコントラスト対応
       ======================================== */

    --focus-outline-width: 2px;
    --focus-outline-offset: 2px;
    --focus-outline-color: var(--color-accent);
}

/* ========================================
   High Contrast Mode Support
   ハイコントラストモード対応
   ======================================== */
@media (prefers-contrast: high) {
    :root {
        /* Increase border widths */
        --border-width-thin: 1.5px;
        --border-width-medium: 2px;
        --border-width-thick: 3px;

        /* Stronger borders */
        --border-color-light: var(--color-gray-300);
        --border-color-base: var(--color-gray-400);
        --border-color-dark: var(--color-gray-600);

        /* Increase focus visibility */
        --focus-outline-width: 3px;
        --shadow-focus: 0 0 0 4px var(--color-accent-alpha-20);
    }
}

/* ========================================
   Dark Mode Support (Optional)
   ダークモード対応（オプション）
   ======================================== */
@media (prefers-color-scheme: dark) {
    /* Currently disabled - can be enabled later */
    /*
    :root {
        --color-white: #111827;
        --color-gray-50: #1f2937;
        --color-gray-100: #374151;
        --color-gray-200: #4b5563;
        --color-gray-800: #f9fafb;
        --color-gray-900: #ffffff;
        --color-black: #ffffff;
    }
    */
}

/* ========================================
   Print Styles - Design Token Overrides
   印刷スタイル - デザイントークン上書き
   ======================================== */
@media print {
    :root {
        /* Remove shadows for print */
        --shadow-sm: none;
        --shadow-md: none;
        --shadow-lg: none;
        --shadow-xl: none;

        /* Simplify colors for print */
        --color-accent: #000000;
        --color-primary: #000000;
    }
}
