/**
 * TopCalc 디자인 시스템 - PC 웹 (www.topcalc.net)
 *
 * CSS 변수 기반 디자인 토큰 시스템
 * 모든 컴포넌트 CSS가 이 파일의 변수를 참조한다.
 *
 * @version 1.0.0
 * @date 2026-05-25
 */

/* ==============================================
   1. 컬러 팔레트 (Color Palette)
   ============================================== */
:root {
    /* --- Primary (메인 브랜드 - 파랑 계열) --- */
    --primary-50:  #F0F9FF;
    --primary-100: #E0F2FE;
    --primary-200: #BAE6FD;
    --primary-300: #7DD3FC;
    --primary-400: #38BDF8;
    --primary-500: #0EA5E9;
    --primary-600: #0284C7;
    --primary-700: #0369A1;
    --primary-800: #075985;
    --primary-900: #0C4A6E;

    /* --- Secondary (포인트 - 금색/주황 계열) --- */
    --secondary-50:  #FFFBEB;
    --secondary-100: #FEF3C7;
    --secondary-200: #FDE68A;
    --secondary-300: #FCD34D;
    --secondary-400: #FBBF24;
    --secondary-500: #F59E0B;
    --secondary-600: #D97706;
    --secondary-700: #B45309;
    --secondary-800: #92400E;
    --secondary-900: #78350F;

    /* --- Neutral (회색 계열 - 텍스트, 배경, 보더) --- */
    --gray-50:  #F9FAFB;
    --gray-100: #F3F4F6;
    --gray-200: #E5E7EB;
    --gray-300: #D1D5DB;
    --gray-400: #9CA3AF;
    --gray-500: #6B7280;
    --gray-600: #4B5563;
    --gray-700: #374151;
    --gray-800: #1F2937;
    --gray-900: #111827;
    --gray-950: #030712;

    /* --- Semantic (상태 표시 컬러) --- */
    --success-50:  #ECFDF5;
    --success-100: #D1FAE5;
    --success-500: #10B981;
    --success-600: #059669;
    --success-700: #047857;

    --warning-50:  #FFFBEB;
    --warning-100: #FEF3C7;
    --warning-500: #F59E0B;
    --warning-600: #D97706;

    --error-50:  #FEF2F2;
    --error-100: #FEE2E2;
    --error-500: #EF4444;
    --error-600: #DC2626;
    --error-700: #B91C1C;

    --info-50:  #EFF6FF;
    --info-100: #DBEAFE;
    --info-500: #3B82F6;
    --info-600: #2563EB;

    /* --- 배경 컬러 --- */
    --bg-white:   #FFFFFF;
    --bg-gray:    #F9FAFB;
    --bg-light:   #F3F4F6;
    --bg-dark:    #111827;
    --bg-overlay: rgba(0, 0, 0, 0.5);

    /* --- 보더 컬러 --- */
    --border-light:   #E5E7EB;
    --border-default: #D1D5DB;
    --border-dark:    #9CA3AF;
    --border-focus:   #0EA5E9;

    /* --- 그라데이션 --- */
    --gradient-primary: linear-gradient(135deg, #0EA5E9 0%, #0284C7 100%);
    --gradient-secondary: linear-gradient(135deg, #F59E0B 0%, #D97706 100%);
    --gradient-hero: linear-gradient(135deg, #0C4A6E 0%, #0369A1 50%, #0EA5E9 100%);
    --gradient-card-top: linear-gradient(90deg, #0EA5E9, #F59E0B);
    --gradient-gold: linear-gradient(155deg,
        rgba(255, 210, 0, 0.26) 0%,
        rgba(255, 210, 0, 0.07) 55%,
        rgba(255, 210, 0, 0.16) 100%
    );
    --gradient-result: linear-gradient(135deg, #F0F9FF 0%, #E0F2FE 100%);
}


/* ==============================================
   2. 타이포그래피 (Typography)
   ============================================== */
:root {
    /* --- 폰트 패밀리 --- */
    --font-primary: 'Pretendard', -apple-system, BlinkMacSystemFont, system-ui, 'Segoe UI', sans-serif;
    --font-mono: 'JetBrains Mono', 'Consolas', 'Monaco', 'Courier New', monospace;

    /* --- 폰트 크기 (PC) --- */
    --text-xs:   12px;
    --text-sm:   14px;
    --text-base: 16px;
    --text-lg:   18px;
    --text-xl:   20px;
    --text-2xl:  24px;
    --text-3xl:  30px;
    --text-4xl:  36px;
    --text-5xl:  48px;

    /* --- 폰트 굵기 --- */
    --font-light:    300;
    --font-regular:  400;
    --font-medium:   500;
    --font-semibold: 600;
    --font-bold:     700;
    --font-extrabold: 800;

    /* --- 줄 높이 --- */
    --leading-tight:  1.25;
    --leading-snug:   1.375;
    --leading-normal: 1.5;
    --leading-relaxed: 1.625;
    --leading-loose:  2;

    /* --- 자간 --- */
    --tracking-tight:  -0.025em;
    --tracking-normal: 0;
    --tracking-wide:   0.025em;
    --tracking-wider:  0.05em;
}


/* ==============================================
   3. 스페이싱 시스템 (4px 기반)
   ============================================== */
:root {
    --space-0:   0;
    --space-px:  1px;
    --space-0-5: 2px;
    --space-1:   4px;
    --space-1-5: 6px;
    --space-2:   8px;
    --space-2-5: 10px;
    --space-3:   12px;
    --space-4:   16px;
    --space-5:   20px;
    --space-6:   24px;
    --space-7:   28px;
    --space-8:   32px;
    --space-9:   36px;
    --space-10:  40px;
    --space-12:  48px;
    --space-14:  56px;
    --space-16:  64px;
    --space-20:  80px;
    --space-24:  96px;
}


/* ==============================================
   4. 보더 반경 (Border Radius)
   ============================================== */
:root {
    --radius-none: 0;
    --radius-sm:   6px;
    --radius-md:   8px;
    --radius-lg:   12px;
    --radius-xl:   16px;
    --radius-2xl:  24px;
    --radius-3xl:  32px;
    --radius-full: 9999px;
}


/* ==============================================
   5. 그림자 (Box Shadow)
   ============================================== */
:root {
    --shadow-xs:  0 1px 2px 0 rgba(0, 0, 0, 0.05);
    --shadow-sm:  0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
    --shadow-md:  0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
    --shadow-lg:  0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
    --shadow-xl:  0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
    --shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
    --shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, 0.05);
    --shadow-none: 0 0 0 0 transparent;

    /* 컬러 그림자 (브랜드 강조용) */
    --shadow-primary: 0 4px 14px 0 rgba(14, 165, 233, 0.3);
    --shadow-secondary: 0 4px 14px 0 rgba(245, 158, 11, 0.3);
    --shadow-success: 0 4px 14px 0 rgba(16, 185, 129, 0.3);
    --shadow-error: 0 4px 14px 0 rgba(239, 68, 68, 0.3);
}


/* ==============================================
   6. 트랜지션 & 애니메이션
   ============================================== */
:root {
    --transition-fast:   150ms ease;
    --transition-base:   200ms ease;
    --transition-slow:   300ms ease;
    --transition-slower: 500ms ease;

    --ease-in:      cubic-bezier(0.4, 0, 1, 1);
    --ease-out:     cubic-bezier(0, 0, 0.2, 1);
    --ease-in-out:  cubic-bezier(0.4, 0, 0.2, 1);
    --ease-bounce:  cubic-bezier(0.68, -0.55, 0.265, 1.55);
}


/* ==============================================
   7. 레이아웃 변수
   ============================================== */
:root {
    --max-width-sm:   640px;
    --max-width-md:   768px;
    --max-width-lg:   1024px;
    --max-width-xl:   1280px;
    --max-width-2xl:  1400px;

    --container-padding: 2rem;
    --header-height:  64px;
    --footer-height:  auto;
    --sidebar-width:  260px;

    /* 카드 그리드 간격 */
    --grid-gap-sm: 12px;
    --grid-gap-md: 16px;
    --grid-gap-lg: 24px;
    --grid-gap-xl: 32px;
}


/* ==============================================
   8. Z-Index 계층
   ============================================== */
:root {
    --z-base:      1;
    --z-dropdown:  10;
    --z-sticky:    20;
    --z-fixed:     30;
    --z-overlay:   40;
    --z-modal:     50;
    --z-popover:   60;
    --z-toast:     70;
    --z-tooltip:   80;
}


/* ==============================================
   9. 포커스 링 (접근성)
   ============================================== */
:root {
    --focus-ring-width: 3px;
    --focus-ring-color: rgba(14, 165, 233, 0.4);
    --focus-ring-offset: 2px;
    --focus-ring: 0 0 0 var(--focus-ring-width) var(--focus-ring-color);
}
