/* ════════════════════════════════════════════════════════════════
   GlobalCRM — Toss + Apple 디자인 시스템 v2
   Pretendard 폰트 / CSS 변수 기반 / 라이트·다크 모드
   ════════════════════════════════════════════════════════════════ */

@import url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable.min.css');

/* ════════════════════════════════════════════════════════════════
   CSS 변수 — 라이트 모드
   ════════════════════════════════════════════════════════════════ */
:root {
    --ta-primary:         #3182F6;
    --ta-primary-hover:   #1B64DA;
    --ta-primary-light:   #E8F0FE;
    --ta-primary-alpha:   rgba(49,130,246,0.14);
    --ta-primary-glow:    rgba(49,130,246,0.30);

    --ta-bg:              #EEF2F7;          /* 살짝 파란빛 도는 회색 배경 */
    --ta-bg-card:         #FFFFFF;
    --ta-bg-sidebar:      #FFFFFF;
    --ta-bg-input:        #F5F7FA;
    --ta-bg-hover:        #EBF3FF;          /* 클릭/hover 시 파란 틴트 */
    --ta-bg-active:       #DBEAFE;

    --ta-text-primary:    #111827;
    --ta-text-secondary:  #6B7684;
    --ta-text-tertiary:   #9CA3AF;
    --ta-text-on-primary: #FFFFFF;

    --ta-border:          #DDE3EC;
    --ta-border-focus:    #3182F6;
    --ta-divider:         #EEF2F7;

    --ta-shadow-xs:       0 1px 2px rgba(0,0,0,0.05);
    --ta-shadow-sm:       0 2px 8px rgba(0,0,0,0.07);
    --ta-shadow-md:       0 4px 20px rgba(0,0,0,0.10);
    --ta-shadow-lg:       0 10px 40px rgba(0,0,0,0.14);
    --ta-shadow-btn:      0 4px 16px rgba(49,130,246,0.35);
    --ta-shadow-sidebar:  4px 0 20px rgba(0,0,0,0.06);

    --ta-radius-xs:  6px;
    --ta-radius-sm:  10px;
    --ta-radius-md:  14px;
    --ta-radius-lg:  18px;
    --ta-radius-xl:  24px;
    --ta-radius-pill: 9999px;

    --ta-success:         #059669;
    --ta-success-light:   #D1FAE5;
    --ta-warning:         #D97706;
    --ta-warning-light:   #FEF3C7;
    --ta-danger:          #DC2626;
    --ta-danger-light:    #FEE2E2;
    --ta-info:            #0EA5E9;
    --ta-info-light:      #E0F2FE;

    --ta-transition:      0.18s cubic-bezier(0.4,0,0.2,1);
    --ta-sidebar-width:   240px;
}

/* ════════════════════════════════════════════════════════════════
   CSS 변수 — 다크 모드
   ════════════════════════════════════════════════════════════════ */
[data-theme="dark"] {
    --ta-primary:         #60A5FA;          /* 다크에서 더 밝은 파랑 */
    --ta-primary-hover:   #93C5FD;
    --ta-primary-light:   rgba(96,165,250,0.18);
    --ta-primary-alpha:   rgba(96,165,250,0.20);
    --ta-primary-glow:    rgba(96,165,250,0.25);

    --ta-bg:              #111318;          /* 매우 진한 블루그레이 */
    --ta-bg-card:         #1E2028;          /* 카드: 약간 밝은 블루그레이 */
    --ta-bg-sidebar:      #191C24;
    --ta-bg-input:        #2E3141;          /* 입력창: 약간 밝게 */
    --ta-bg-hover:        rgba(96,165,250,0.12);
    --ta-bg-active:       rgba(96,165,250,0.20);

    --ta-text-primary:    #F0F2F8;          /* 본문: 더 밝게 */
    --ta-text-secondary:  #B8BFD0;          /* 라벨: 충분한 대비 */
    --ta-text-tertiary:   #8892A4;          /* placeholder: 4.5:1 이상 */
    --ta-text-on-primary: #0F172A;          /* 밝은 파랑 버튼 위 어두운 글자 */

    --ta-border:          rgba(255,255,255,0.09);
    --ta-divider:         rgba(255,255,255,0.06);

    --ta-shadow-xs:       0 1px 2px rgba(0,0,0,0.40);
    --ta-shadow-sm:       0 2px 8px rgba(0,0,0,0.50);
    --ta-shadow-md:       0 4px 20px rgba(0,0,0,0.60);
    --ta-shadow-lg:       0 10px 40px rgba(0,0,0,0.70);
    --ta-shadow-btn:      0 4px 16px rgba(96,165,250,0.30);
    --ta-shadow-sidebar:  4px 0 20px rgba(0,0,0,0.40);

    --ta-success:         #34D399;
    --ta-success-light:   rgba(52,211,153,0.15);
    --ta-warning:         #FBBF24;
    --ta-warning-light:   rgba(251,191,36,0.15);
    --ta-danger:          #F87171;
    --ta-danger-light:    rgba(248,113,113,0.15);
    --ta-info:            #38BDF8;
    --ta-info-light:      rgba(56,189,248,0.15);
}

/* ════════════════════════════════════════════════════════════════
   전체 베이스
   ════════════════════════════════════════════════════════════════ */
* { box-sizing: border-box; }
*, *::before, *::after {
    transition-property: background-color, border-color, color, box-shadow, opacity;
    transition-duration: var(--ta-transition);
}

body {
    font-family: 'Pretendard Variable', Pretendard, -apple-system, BlinkMacSystemFont,
                 'Apple SD Gothic Neo', 'Noto Sans KR', sans-serif !important;
    background: var(--ta-bg) !important;
    color: var(--ta-text-primary) !important;
    font-size: 14px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}

/* ════════════════════════════════════════════════════════════════
   사이드바 — 화사한 라이트 / 진한 다크
   ════════════════════════════════════════════════════════════════ */
.sidebar {
    background: var(--ta-bg-sidebar) !important;
    border-right: 1px solid var(--ta-border) !important;
    box-shadow: var(--ta-shadow-sidebar) !important;
    width: var(--ta-sidebar-width);
}

/* 브랜드 영역 — 그라디언트 */
.sidebar-brand {
    padding: 18px 16px 14px !important;
    border-bottom: 1px solid var(--ta-divider) !important;
    background: linear-gradient(135deg, #EBF3FF 0%, #F5F0FF 100%) !important;
}
[data-theme="dark"] .sidebar-brand {
    background: linear-gradient(135deg, rgba(96,165,250,0.12) 0%, rgba(139,92,246,0.10) 100%) !important;
}
.sidebar-brand .brand-link { display:flex; align-items:center; gap:10px; text-decoration:none; }
.sidebar-brand .brand-icon {
    width: 36px; height: 36px;
    background: linear-gradient(135deg, #3182F6, #7C3AED) !important;
    border-radius: var(--ta-radius-sm) !important;
    display: flex; align-items: center; justify-content: center;
    color: #fff !important; font-size: 16px;
    box-shadow: 0 4px 14px rgba(49,130,246,0.45);
}
.sidebar-brand .brand-text {
    font-size: 17px !important; font-weight: 700 !important;
    color: var(--ta-text-primary) !important; letter-spacing: -0.4px;
}
.sidebar-brand .brand-text strong { color: #3182F6 !important; }

/* 사용자 정보 */
.sidebar-user {
    padding: 12px 16px !important;
    border-bottom: 1px solid var(--ta-divider) !important;
    background: transparent !important;
}
.sidebar-user .user-name {
    font-size: 14px !important; font-weight: 600 !important;
    color: var(--ta-text-primary) !important;
}
.sidebar-user .user-role {
    font-size: 11px !important; color: var(--ta-text-secondary) !important;
}

/* 메뉴 */
.sidebar-menu { padding: 8px !important; list-style:none; margin:0; }
.menu-item { margin-bottom: 1px; }

.menu-link {
    display: flex !important; align-items: center !important; gap: 10px !important;
    padding: 9px 12px !important;
    border-radius: var(--ta-radius-sm) !important;
    color: var(--ta-text-secondary) !important;
    font-size: 13.5px !important; font-weight: 500 !important;
    text-decoration: none !important;
}
/* ── hover: 텍스트 항상 선명하게 ── */
.menu-link:hover {
    background: var(--ta-bg-hover) !important;
    color: #1B64DA !important;           /* 라이트: 진한 파랑 */
}
[data-theme="dark"] .menu-link:hover {
    background: var(--ta-bg-hover) !important;
    color: #93C5FD !important;           /* 다크: 밝은 파랑 (눈에 잘 보임) */
}
/* ── active ── */
.menu-item.active > .menu-link,
.menu-link.active {
    background: linear-gradient(135deg, #EBF3FF, #EDE9FE) !important;
    color: #1D4ED8 !important;
    font-weight: 600 !important;
    border-left: 3px solid #3182F6 !important;
}
[data-theme="dark"] .menu-item.active > .menu-link,
[data-theme="dark"] .menu-link.active {
    background: rgba(96,165,250,0.18) !important;
    color: #93C5FD !important;
    border-left: 3px solid #60A5FA !important;
}
.menu-icon {
    width: 28px !important; height: 28px !important;
    border-radius: var(--ta-radius-xs) !important;
    display: flex !important; align-items: center !important; justify-content: center !important;
    font-size: 13px !important; background: transparent !important; color: inherit !important; flex-shrink:0;
}
.menu-item.active > .menu-link .menu-icon,
.menu-link.active .menu-icon {
    background: rgba(49,130,246,0.15) !important; color: #3182F6 !important;
}
[data-theme="dark"] .menu-item.active > .menu-link .menu-icon,
[data-theme="dark"] .menu-link.active .menu-icon {
    background: rgba(96,165,250,0.20) !important; color: #93C5FD !important;
}
.menu-section-label {
    font-size: 10px !important; font-weight: 700 !important;
    letter-spacing: 0.8px !important; text-transform: uppercase !important;
    color: var(--ta-text-tertiary) !important; padding: 14px 14px 4px !important;
}

/* ════════════════════════════════════════════════════════════════
   메인 콘텐츠
   ════════════════════════════════════════════════════════════════ */
.main-content { background: var(--ta-bg) !important; }

/* ════════════════════════════════════════════════════════════════
   카드
   ════════════════════════════════════════════════════════════════ */
.card {
    background-color: var(--ta-bg-card, #ffffff) !important;
    background:       var(--ta-bg-card, #ffffff) !important;
    border: 1px solid var(--ta-border, #DDE3EC) !important;
    border-radius: var(--ta-radius-lg, 18px) !important;
    box-shadow: var(--ta-shadow-sm) !important;
    color: var(--ta-text-primary, #111827) !important;
}
[data-theme="dark"] .card {
    background-color: var(--ta-bg-card, #1E2028) !important;
    background:       var(--ta-bg-card, #1E2028) !important;
    color: var(--ta-text-primary, #E8EAF0) !important;
    border-color: var(--ta-border, rgba(255,255,255,0.09)) !important;
}
.card:hover { box-shadow: var(--ta-shadow-md) !important; }
.card-header {
    background: transparent !important;
    border-bottom: 1px solid var(--ta-divider, #EEF2F7) !important;
    padding: 16px 20px !important; font-weight: 600 !important;
    font-size: 14px !important; color: var(--ta-text-primary, #111827) !important;
    border-radius: var(--ta-radius-lg, 18px) var(--ta-radius-lg, 18px) 0 0 !important;
}
/* Bootstrap bg-* 클래스가 있는 card-header는 배경색 유지 */
.card-header.bg-primary   { background-color: #0d6efd !important; color: #fff !important; }
.card-header.bg-info      { background-color: #0dcaf0 !important; color: #000 !important; }
.card-header.bg-success   { background-color: #198754 !important; color: #fff !important; }
.card-header.bg-warning   { background-color: #ffc107 !important; color: #000 !important; }
.card-header.bg-secondary { background-color: #6c757d !important; color: #fff !important; }
.card-header.bg-danger    { background-color: #dc3545 !important; color: #fff !important; }
[data-theme="dark"] .card-header {
    color: var(--ta-text-primary, #E8EAF0) !important;
    border-bottom-color: var(--ta-divider, rgba(255,255,255,0.06)) !important;
}
.card-body {
    padding: 20px !important;
    color: var(--ta-text-primary, #111827) !important;
    background: transparent !important;
}
[data-theme="dark"] .card-body { color: var(--ta-text-primary, #E8EAF0) !important; }
.card-footer {
    background: transparent !important;
    border-top: 1px solid var(--ta-divider, #EEF2F7) !important;
    padding: 12px 20px !important;
    border-radius: 0 0 var(--ta-radius-lg, 18px) var(--ta-radius-lg, 18px) !important;
}

/* ════════════════════════════════════════════════════════════════
   버튼 — 그라디언트·화사하게
   ════════════════════════════════════════════════════════════════ */
.btn {
    border-radius: var(--ta-radius-sm) !important;
    font-weight: 600 !important; font-size: 13.5px !important;
    padding: 8px 16px !important; letter-spacing: -0.1px;
    transition: all var(--ta-transition) !important;
}
.btn-primary {
    background: linear-gradient(135deg, #3182F6, #5B67F5) !important;
    border-color: #3182F6 !important; color: #fff !important;
}
.btn-primary:hover, .btn-primary:focus {
    background: linear-gradient(135deg, #1B64DA, #4A55E0) !important;
    border-color: #1B64DA !important;
    box-shadow: var(--ta-shadow-btn) !important;
    transform: translateY(-1px); color: #fff !important;
}
.btn-primary:active { transform: translateY(0) !important; }

.btn-success {
    background: linear-gradient(135deg, #059669, #10B981) !important;
    border-color: #059669 !important; color: #fff !important;
}
.btn-success:hover {
    background: linear-gradient(135deg, #047857, #059669) !important;
    box-shadow: 0 4px 14px rgba(5,150,105,0.35) !important;
    transform: translateY(-1px); color: #fff !important;
}
.btn-danger {
    background: linear-gradient(135deg, #DC2626, #EF4444) !important;
    border-color: #DC2626 !important; color: #fff !important;
}
.btn-danger:hover {
    background: linear-gradient(135deg, #B91C1C, #DC2626) !important;
    box-shadow: 0 4px 14px rgba(220,38,38,0.35) !important;
    transform: translateY(-1px); color: #fff !important;
}
.btn-warning {
    background: linear-gradient(135deg, #D97706, #F59E0B) !important;
    border-color: #D97706 !important; color: #fff !important;
}
.btn-warning:hover {
    background: linear-gradient(135deg, #B45309, #D97706) !important;
    transform: translateY(-1px); color: #fff !important;
}
.btn-outline-primary {
    border-color: #3182F6 !important; color: #3182F6 !important;
    background: transparent !important;
}
.btn-outline-primary:hover {
    background: #EBF3FF !important; color: #1B64DA !important;
    border-color: #1B64DA !important;
}
[data-theme="dark"] .btn-outline-primary:hover {
    background: rgba(96,165,250,0.15) !important; color: #93C5FD !important;
    border-color: #60A5FA !important;
}
.btn-secondary {
    background: var(--ta-bg-input) !important;
    border-color: var(--ta-border) !important; color: var(--ta-text-primary) !important;
}
.btn-secondary:hover {
    background: var(--ta-bg-hover) !important; color: #1B64DA !important;
    border-color: #3182F6 !important;
}
[data-theme="dark"] .btn-secondary:hover {
    background: var(--ta-bg-hover) !important; color: #93C5FD !important;
}
.btn-outline-secondary {
    border-color: var(--ta-border) !important; color: var(--ta-text-secondary) !important;
    background: transparent !important;
}
.btn-outline-secondary:hover {
    background: var(--ta-bg-hover) !important; color: #1B64DA !important;
    border-color: var(--ta-primary) !important;
}
[data-theme="dark"] .btn-outline-secondary:hover {
    background: var(--ta-bg-hover) !important; color: #93C5FD !important;
}
.btn-sm { padding: 5px 12px !important; font-size: 12px !important; border-radius: var(--ta-radius-xs) !important; }
.btn-lg { padding: 12px 24px !important; font-size: 15px !important; border-radius: var(--ta-radius-md) !important; }

/* ════════════════════════════════════════════════════════════════
   폼
   ════════════════════════════════════════════════════════════════ */
.form-control, .form-select {
    background: var(--ta-bg-input) !important;
    border: 1.5px solid var(--ta-border) !important;
    border-radius: var(--ta-radius-sm) !important;
    color: var(--ta-text-primary) !important;
    font-size: 13.5px !important; padding: 9px 13px !important;
}
.form-control:focus, .form-select:focus {
    border-color: var(--ta-border-focus) !important;
    box-shadow: 0 0 0 3px var(--ta-primary-alpha) !important;
    background: var(--ta-bg-card) !important; outline: none;
}
.form-control::placeholder { color: var(--ta-text-tertiary) !important; }
.form-label {
    font-size: 12.5px !important; font-weight: 600 !important;
    color: var(--ta-text-secondary) !important; margin-bottom: 6px !important;
}

/* ════════════════════════════════════════════════════════════════
   테이블 — hover 항상 보이게
   ════════════════════════════════════════════════════════════════ */
.table { color: var(--ta-text-primary) !important; font-size: 13.5px !important; }
.table thead th {
    background: var(--ta-bg) !important;
    color: var(--ta-text-secondary) !important;
    font-size: 11.5px !important; font-weight: 700 !important;
    letter-spacing: 0.4px !important; text-transform: uppercase !important;
    border-bottom: 2px solid var(--ta-border) !important;
    padding: 10px 14px !important;
}
.table tbody tr { border-bottom: 1px solid var(--ta-divider) !important; }
.table tbody tr:last-child { border-bottom: none !important; }
.table tbody tr:hover {
    background: var(--ta-bg-hover) !important;
}
/* 다크모드 table hover — 텍스트 반드시 보이게 */
[data-theme="dark"] .table tbody tr:hover td,
[data-theme="dark"] .table tbody tr:hover {
    background: rgba(96,165,250,0.10) !important;
    color: var(--ta-text-primary) !important;
}
.table tbody td {
    padding: 12px 14px !important;
    color: var(--ta-text-primary) !important;
    border: none !important; vertical-align: middle !important;
}
.table-responsive {
    border-radius: var(--ta-radius-lg) !important;
    border: 1px solid var(--ta-border) !important; overflow: hidden;
}

/* ════════════════════════════════════════════════════════════════
   배지
   ════════════════════════════════════════════════════════════════ */
.badge {
    border-radius: var(--ta-radius-pill) !important;
    font-weight: 600 !important; font-size: 11px !important;
    padding: 3px 10px !important;
}
.badge.bg-primary  { background: var(--ta-primary) !important; color: #fff !important; }
.badge.bg-success  { background: var(--ta-success) !important; color: #fff !important; }
.badge.bg-danger   { background: var(--ta-danger)  !important; color: #fff !important; }
.badge.bg-warning  { background: var(--ta-warning) !important; color: #fff !important; }
.badge.bg-info     { background: var(--ta-info)    !important; color: #fff !important; }
.badge.bg-secondary, .badge.bg-light {
    background: var(--ta-bg-hover) !important;
    color: var(--ta-text-secondary) !important;
}

/* ════════════════════════════════════════════════════════════════
   Alert
   ════════════════════════════════════════════════════════════════ */
.alert { border-radius: var(--ta-radius-md) !important; border: none !important; font-size: 13.5px !important; }
.alert-primary  { background: var(--ta-primary-light) !important; color: #1D4ED8 !important; }
.alert-success  { background: var(--ta-success-light) !important; color: #065F46 !important; }
.alert-danger   { background: var(--ta-danger-light)  !important; color: #991B1B !important; }
.alert-warning  { background: var(--ta-warning-light) !important; color: #92400E !important; }
.alert-info     { background: var(--ta-info-light)    !important; color: #0C4A6E !important; }
[data-theme="dark"] .alert-primary  { color: #93C5FD !important; }
[data-theme="dark"] .alert-success  { color: #6EE7B7 !important; }
[data-theme="dark"] .alert-danger   { color: #FCA5A5 !important; }
[data-theme="dark"] .alert-warning  { color: #FDE68A !important; }
[data-theme="dark"] .alert-info     { color: #7DD3FC !important; }

/* ════════════════════════════════════════════════════════════════
   모달
   ════════════════════════════════════════════════════════════════ */
.modal-content {
    border: none !important; border-radius: var(--ta-radius-xl) !important;
    background: var(--ta-bg-card) !important; box-shadow: var(--ta-shadow-lg) !important;
    color: var(--ta-text-primary) !important;
}
.modal-header { border-bottom: 1px solid var(--ta-divider) !important; padding: 20px 24px !important; }
.modal-title  { font-size: 16px !important; font-weight: 700 !important; color: var(--ta-text-primary) !important; }
.modal-body   { padding: 24px !important; }
.modal-footer { border-top: 1px solid var(--ta-divider) !important; padding: 16px 24px !important; }
.modal-backdrop { backdrop-filter: blur(4px); }

/* ════════════════════════════════════════════════════════════════
   드롭다운 — hover 텍스트 항상 보이게
   ════════════════════════════════════════════════════════════════ */
.dropdown-menu {
    border: 1px solid var(--ta-border) !important; border-radius: var(--ta-radius-md) !important;
    box-shadow: var(--ta-shadow-md) !important; background: var(--ta-bg-card) !important;
    padding: 6px !important; font-size: 13.5px !important;
}
.dropdown-item {
    border-radius: var(--ta-radius-xs) !important;
    color: var(--ta-text-primary) !important; padding: 8px 12px !important;
}
.dropdown-item:hover {
    background: var(--ta-bg-hover) !important;
    color: #1B64DA !important;       /* 라이트: 진한 파랑 */
}
[data-theme="dark"] .dropdown-item:hover {
    background: rgba(96,165,250,0.12) !important;
    color: #93C5FD !important;       /* 다크: 밝은 파랑 */
}
.dropdown-divider { border-color: var(--ta-divider) !important; margin: 4px 0 !important; }

/* ════════════════════════════════════════════════════════════════
   탭
   ════════════════════════════════════════════════════════════════ */
.nav-tabs { border-bottom: 2px solid var(--ta-border) !important; gap: 2px; }
.nav-tabs .nav-link {
    border: none !important; border-radius: var(--ta-radius-sm) var(--ta-radius-sm) 0 0 !important;
    color: var(--ta-text-secondary) !important;
    font-size: 13.5px !important; font-weight: 500 !important;
    padding: 9px 16px !important; margin-bottom: -2px;
}
.nav-tabs .nav-link:hover {
    background: var(--ta-bg-hover) !important;
    color: #1B64DA !important;
}
[data-theme="dark"] .nav-tabs .nav-link:hover {
    color: #93C5FD !important;
}
.nav-tabs .nav-link.active {
    background: transparent !important;
    color: #1D4ED8 !important; font-weight: 700 !important;
    border-bottom: 2.5px solid #3182F6 !important;
}
[data-theme="dark"] .nav-tabs .nav-link.active {
    color: #93C5FD !important; border-bottom-color: #60A5FA !important;
}

/* ════════════════════════════════════════════════════════════════
   페이지 제목·텍스트
   ════════════════════════════════════════════════════════════════ */
.page-title, h1,h2,h3,h4,h5,h6 { color: var(--ta-text-primary) !important; letter-spacing: -0.3px; }
h5 { font-size: 15px !important; font-weight: 700 !important; }
h4 { font-size: 17px !important; font-weight: 700 !important; }
h3 { font-size: 20px !important; font-weight: 800 !important; }
.text-muted, .text-secondary { color: var(--ta-text-secondary) !important; }
a { color: var(--ta-primary) !important; }
a:hover { color: var(--ta-primary-hover) !important; }
[data-theme="dark"] a { color: #60A5FA !important; }
[data-theme="dark"] a:hover { color: #93C5FD !important; }

/* ════════════════════════════════════════════════════════════════
   Breadcrumb
   ════════════════════════════════════════════════════════════════ */
.breadcrumb { background: transparent !important; padding: 0 !important; font-size: 12.5px !important; }
.breadcrumb-item { color: var(--ta-text-secondary) !important; }
.breadcrumb-item.active { color: var(--ta-text-primary) !important; }
.breadcrumb-item + .breadcrumb-item::before { color: var(--ta-text-tertiary) !important; }

/* ════════════════════════════════════════════════════════════════
   페이지네이션
   ════════════════════════════════════════════════════════════════ */
.pagination .page-link {
    border: 1px solid var(--ta-border) !important;
    color: var(--ta-text-secondary) !important; background: var(--ta-bg-card) !important;
    border-radius: var(--ta-radius-sm) !important; margin: 0 2px !important;
    font-size: 13px !important; padding: 6px 12px !important;
}
.pagination .page-link:hover {
    background: var(--ta-bg-hover) !important; color: #1B64DA !important;
    border-color: #3182F6 !important;
}
[data-theme="dark"] .pagination .page-link:hover { color: #93C5FD !important; border-color: #60A5FA !important; }
.pagination .page-item.active .page-link {
    background: linear-gradient(135deg, #3182F6, #5B67F5) !important;
    border-color: #3182F6 !important; color: #fff !important;
}

/* ════════════════════════════════════════════════════════════════
   역할 배지
   ════════════════════════════════════════════════════════════════ */
.badge-role {
    font-size: 11px !important; font-weight: 600 !important;
    padding: 3px 10px !important; border-radius: var(--ta-radius-pill) !important;
}
.role-super    { background: rgba(220,38,38,0.12) !important;  color: #DC2626 !important; }
.role-ceo      { background: rgba(124,58,237,0.12) !important; color: #7C3AED !important; }
.role-branch   { background: rgba(49,130,246,0.12) !important; color: #3182F6 !important; }
.role-director { background: rgba(49,130,246,0.12) !important; color: #3182F6 !important; }
.role-bm       { background: rgba(5,150,105,0.12) !important;  color: #059669 !important; }
.role-sm       { background: rgba(5,150,105,0.12) !important;  color: #059669 !important; }
.role-agent    { background: rgba(107,114,128,0.12) !important;color: #6B7280 !important; }
[data-theme="dark"] .role-super    { background: rgba(248,113,113,0.15) !important; color: #F87171 !important; }
[data-theme="dark"] .role-ceo      { background: rgba(167,139,250,0.15) !important; color: #A78BFA !important; }
[data-theme="dark"] .role-branch,
[data-theme="dark"] .role-director { background: rgba(96,165,250,0.15) !important;  color: #60A5FA !important; }
[data-theme="dark"] .role-bm,
[data-theme="dark"] .role-sm       { background: rgba(52,211,153,0.15) !important;  color: #34D399 !important; }
[data-theme="dark"] .role-agent    { background: rgba(156,163,175,0.15) !important; color: #9CA3AF !important; }

/* ════════════════════════════════════════════════════════════════
   다크모드 — Bootstrap 기본 오버라이드
   hover 시 텍스트가 배경과 동화되지 않도록
   ════════════════════════════════════════════════════════════════ */
[data-theme="dark"] .list-group-item {
    background: var(--ta-bg-card) !important; color: var(--ta-text-primary) !important;
    border-color: var(--ta-border) !important;
}
[data-theme="dark"] .list-group-item:hover,
[data-theme="dark"] .list-group-item-action:hover {
    background: rgba(96,165,250,0.10) !important; color: #93C5FD !important;
}
[data-theme="dark"] .list-group-item.active {
    background: rgba(96,165,250,0.20) !important; color: #E8EAF0 !important;
    border-color: #60A5FA !important;
}
[data-theme="dark"] input, [data-theme="dark"] textarea, [data-theme="dark"] select {
    color: var(--ta-text-primary) !important;
    background-color: var(--ta-bg-input) !important;
}
[data-theme="dark"] .text-dark { color: var(--ta-text-primary) !important; }
[data-theme="dark"] .bg-light  { background: var(--ta-bg-input) !important; }
[data-theme="dark"] .bg-white  { background: var(--ta-bg-card) !important; }
[data-theme="dark"] .border    { border-color: var(--ta-border) !important; }

/* ════════════════════════════════════════════════════════════════
   다크모드 토글 버튼
   ════════════════════════════════════════════════════════════════ */
#ta-dark-toggle {
    position: fixed; bottom: 24px; right: 24px; z-index: 9999;
    width: 48px; height: 48px;
    border-radius: var(--ta-radius-pill) !important;
    background: var(--ta-bg-card) !important; border: 1.5px solid var(--ta-border) !important;
    box-shadow: var(--ta-shadow-md) !important;
    color: var(--ta-text-secondary) !important; cursor: pointer;
    display: flex; align-items: center; justify-content: center; font-size: 18px;
}
#ta-dark-toggle:hover {
    box-shadow: var(--ta-shadow-lg) !important; transform: scale(1.10);
    color: var(--ta-primary) !important; border-color: var(--ta-primary) !important;
}

/* ════════════════════════════════════════════════════════════════
   스크롤바
   ════════════════════════════════════════════════════════════════ */
::-webkit-scrollbar { width: 5px; height: 5px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--ta-border); border-radius: var(--ta-radius-pill); }
::-webkit-scrollbar-thumb:hover { background: var(--ta-text-tertiary); }

/* ════════════════════════════════════════════════════════════════
   반응형
   ════════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
    .card { border-radius: var(--ta-radius-md) !important; }
    .card-body { padding: 16px !important; }
    .btn { padding: 9px 16px !important; font-size: 14px !important; }
    #ta-dark-toggle { bottom: 80px; right: 16px; }
}

/* ════════════════════════════════════════════════════════════════
   필드맵핑 에디터 — 테마 오버라이드 제외
   ════════════════════════════════════════════════════════════════ */
#map-editor-wrap .card {
    border-radius: 6px !important; box-shadow: 0 2px 8px rgba(0,0,0,.12) !important;
    background: #fff !important; border: 1px solid #dee2e6 !important; padding: 0 !important;
}
[data-theme="dark"] #map-editor-wrap .card {
    background: #2c2c2e !important; border-color: rgba(255,255,255,.12) !important;
}
#map-editor-wrap .card-body  { padding: 6px !important; }
#map-editor-wrap .card-header {
    padding: 7px 10px !important; font-size: 12px !important;
    border-radius: 6px 6px 0 0 !important; background: transparent !important;
    border-bottom: 1px solid #dee2e6 !important; color: inherit !important;
}
[data-theme="dark"] #map-editor-wrap .card-header { border-bottom-color: rgba(255,255,255,.1) !important; }
#map-editor-wrap .badge { border-radius: 3px !important; font-size: 9px !important; padding: 1px 4px !important; }
#map-editor-wrap .form-control,
#map-editor-wrap .form-select {
    border-radius: 4px !important; padding: 4px 8px !important;
    font-size: 12px !important; line-height: 1.4 !important;
}
#map-editor-wrap .btn {
    border-radius: 4px !important; font-size: 12px !important;
    padding: 4px 10px !important; transform: none !important;
    background: unset; /* gradient 제거 */
}
#map-editor-wrap .btn-primary {
    background: #0d6efd !important; border-color: #0d6efd !important;
}
#map-editor-wrap .btn-warning {
    background: #ffc107 !important; border-color: #ffc107 !important; color: #000 !important;
}
#map-editor-wrap .btn-success {
    background: #198754 !important; border-color: #198754 !important;
}
#map-editor-wrap .btn-outline-danger  { color: #dc3545 !important; border-color: #dc3545 !important; }
#map-editor-wrap .btn-outline-secondary { color: #6c757d !important; }
#map-editor-wrap .btn:hover { transform: none !important; box-shadow: none !important; }
#catalog-panel .form-control  { border-radius: 4px !important; padding: 5px 8px !important; font-size: 12px !important; }
#catalog-panel .badge { border-radius: 3px !important; font-size: 9px !important; padding: 1px 4px !important; }
#ai-preview-panel { border: 2px solid #fd7e14 !important; }
#page-tabs .nav-link { padding: 6px 14px !important; font-size: 13px !important; }

/* ════════════════════════════════════════════════════════════════
   라이트 모드 강제 오버라이드 (v2026-06)
   다크 배경 하드코딩 제거 — app.css 의 dark 기본값 덮어쓰기
   ════════════════════════════════════════════════════════════════ */

/* body / 메인 레이아웃 */
body,
body.theme-default,
#app, .app-wrapper, .wrapper, .main-wrapper {
    background-color: #EEF2F7 !important;
    color: #111827 !important;
}

/* 사이드바 */
.sidebar, nav.sidebar, #sidebar {
    background-color: #FFFFFF !important;
    border-right: 1px solid #DDE3EC !important;
    color: #111827 !important;
}
.sidebar *, nav.sidebar * {
    color: #374151 !important;
}
.sidebar .menu-link.active,
.sidebar .nav-link.active,
.sidebar a.active {
    background-color: #EBF3FF !important;
    color: #3182F6 !important;
}
.sidebar .menu-link:hover,
.sidebar .nav-link:hover {
    background-color: #F3F7FF !important;
    color: #3182F6 !important;
}
.sidebar .menu-icon, .sidebar .nav-icon {
    background-color: #EEF2F7 !important;
    color: #374151 !important;
}
.sidebar .menu-link.active .menu-icon,
.sidebar a.active .menu-icon {
    background-color: #3182F6 !important;
    color: #FFFFFF !important;
}

/* 메인 콘텐츠 영역 */
.main-content, .content-wrapper, .page-content, #main-content, main {
    background-color: #EEF2F7 !important;
}

/* 카드 */
.card, .stat-card, .dashboard-card {
    background-color: #FFFFFF !important;
    border: 1px solid #DDE3EC !important;
    color: #111827 !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.07) !important;
}
.card-header:not([class*="bg-"]) {
    background-color: #F8FAFC !important;
    border-bottom: 1px solid #DDE3EC !important;
    color: #111827 !important;
}
.card * { color: inherit; }

/* 통계 카드 (대시보드 숫자 카드) */
.stat-card, [class*="stat-"], .kpi-card {
    background: #FFFFFF !important;
    border: 1px solid #DDE3EC !important;
    color: #111827 !important;
}
.stat-card h2, .stat-card .stat-num,
[class*="stat-"] h2, [class*="stat-"] .num {
    color: #3182F6 !important;
}

/* 상단 헤더·네비게이션 바 */
.navbar, .topbar, .header, #topbar, header {
    background-color: #FFFFFF !important;
    border-bottom: 1px solid #DDE3EC !important;
    box-shadow: 0 1px 4px rgba(0,0,0,0.06) !important;
}
.navbar *, .topbar *, header * { color: #111827 !important; }

/* 테이블 */
.table, table {
    background-color: #FFFFFF !important;
    color: #111827 !important;
}
.table thead th, thead tr th {
    background-color: #F8FAFC !important;
    color: #374151 !important;
    border-color: #DDE3EC !important;
}
.table tbody tr:hover, tbody tr:hover {
    background-color: #F3F7FF !important;
}
.table-striped tbody tr:nth-of-type(odd) {
    background-color: #FAFBFC !important;
}
td, th { border-color: #DDE3EC !important; }

/* 폼 요소 */
.form-control, .form-select, input[type="text"],
input[type="date"], input[type="tel"], input[type="email"],
input[type="number"], textarea, select {
    background-color: #F8FAFC !important;
    border-color: #DDE3EC !important;
    color: #111827 !important;
}
.form-control:focus, .form-select:focus, input:focus, textarea:focus {
    background-color: #FFFFFF !important;
    border-color: #3182F6 !important;
    box-shadow: 0 0 0 3px rgba(49,130,246,0.15) !important;
}

/* 뱃지 · 알림 */
.badge.bg-secondary { background-color: #6B7684 !important; }
.badge.bg-light      { background-color: #EEF2F7 !important; color: #374151 !important; }

/* 드롭다운 메뉴 */
.dropdown-menu {
    background-color: #FFFFFF !important;
    border: 1px solid #DDE3EC !important;
    box-shadow: 0 4px 20px rgba(0,0,0,0.10) !important;
}
.dropdown-item { color: #374151 !important; }
.dropdown-item:hover { background-color: #F3F7FF !important; color: #3182F6 !important; }

/* 모달 */
.modal-content {
    background-color: #FFFFFF !important;
    border: 1px solid #DDE3EC !important;
    color: #111827 !important;
}
.modal-header {
    background-color: #F8FAFC !important;
    border-bottom: 1px solid #DDE3EC !important;
}

/* 페이지 타이틀 */
.page-title, h1, h2, h3, h4, h5 {
    color: #111827 !important;
}

/* 링크 */
a:not(.btn):not(.badge):not(.nav-link) {
    color: #3182F6;
}

/* 스크롤바 (WebKit) */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: #EEF2F7; }
::-webkit-scrollbar-thumb { background: #C4CDD6; border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #9CA3AF; }

/* 달력 셀 */
.calendar-day, .fc-day, [class*="cal-day"] {
    background-color: #FFFFFF !important;
    color: #111827 !important;
}
.calendar-day:hover { background-color: #EBF3FF !important; }

/* Chart.js 캔버스 배경 방어 */
canvas { background: transparent !important; }
