@charset "UTF-8";/* 탭 텍스트 크기 12px로 통일 */
.ant-tabs-tab {
    font-size: 12px !important;
    padding: 4px 8px !important;
    height: auto !important;
    min-height: 24px !important;
}
.ant-tabs-tab-btn {
    font-size: 12px !important;
    line-height: 1.2 !important;
}

/* 상단 탭 메뉴바 hover 시 가독성 개선 (어두운 텍스트 + 배경) */
.ant-tabs-editable-card .ant-tabs-tab:not(.ant-tabs-tab-active):hover {
    background: #e6f7ff !important;
}
.ant-tabs-editable-card .ant-tabs-tab:not(.ant-tabs-tab-active):hover .ant-tabs-tab-btn {
    color: #0958d9 !important;
}
.ant-tabs-nav {
    margin: 0 !important;
    padding: 0 !important;
}
.ant-tabs-nav-wrap {
    padding: 0 !important;
}
.ant-tabs-tab-close {
    font-size: 12px !important;
    width: 14px !important;
    height: 14px !important;
}

/* 메인 탭 활성화 시 계절별 그라데이션 배경 적용 */
.dashboard-tab-active .ant-tabs-tab-active {
    background: var(--seasonal-gradient, linear-gradient(135deg, #636e72 0%, #2d3436 100%)) !important;
    color: #fff !important;
    border-color: transparent !important;
}

.dashboard-tab-active .ant-tabs-tab-active .ant-tabs-tab-btn {
    color: #fff !important;
}

/* 계절별 배경색 동적 적용 */
.dashboard-tab-active.spring .ant-tabs-tab-active {
    background: linear-gradient(135deg, #a8e6cf 0%, #dcedc1 100%) !important;
}

.dashboard-tab-active.summer .ant-tabs-tab-active {
    background: linear-gradient(135deg, #74b9ff 0%, #0984e3 100%) !important;
}

.dashboard-tab-active.autumn .ant-tabs-tab-active {
    background: linear-gradient(135deg, #fdcb6e 0%, #e17055 100%) !important;
}

.dashboard-tab-active.winter .ant-tabs-tab-active {
    background: linear-gradient(135deg, #636e72 0%, #2d3436 100%) !important;
}

/* 그룹웨어 모드: 콘텐츠 탭 바 다크 스타일 (사이드바와 이질감 없음) */
.groupware-tabs-bar .ant-tabs-nav {
    margin-bottom: 0 !important;
}
.groupware-tabs-bar .ant-tabs-tab {
    color: #9ca3af !important;
    border-color: #374151 !important;
    background: transparent !important;
}
.groupware-tabs-bar .ant-tabs-tab .ant-tabs-tab-btn {
    color: #9ca3af !important;
}
.groupware-tabs-bar .ant-tabs-tab:hover .ant-tabs-tab-btn {
    color: #e5e7eb !important;
}
.groupware-tabs-bar .ant-tabs-tab-active {
    background: #374151 !important;
    border-color: #374151 !important;
}
.groupware-tabs-bar .ant-tabs-tab-active .ant-tabs-tab-btn {
    color: #fff !important;
}
.groupware-tabs-bar .ant-tabs-ink-bar {
    background: #3b82f6 !important;
}
.groupware-tabs-bar .ant-tabs-nav::before {
    border-bottom-color: #374151 !important;
}
.groupware-tabs-bar .ant-tabs-tab-remove {
    color: #9ca3af !important;
}
.groupware-tabs-bar .ant-tabs-tab-remove:hover {
    color: #fff !important;
}

/* 사이드바 메뉴 hover 효과 - Light Theme (옅은 하늘색 대신 중립 회색) */
.ant-layout-sider .ant-menu-light .ant-menu-item:hover,
.ant-layout-sider .ant-menu-light .ant-menu-submenu-title:hover {
    background-color: #f5f5f5 !important;
    color: #0958d9 !important;
    transition: background-color 0.2s ease, color 0.2s ease !important;
}

.ant-layout-sider .ant-menu-light .ant-menu-item:hover .ant-menu-title-content,
.ant-layout-sider .ant-menu-light .ant-menu-submenu-title:hover .ant-menu-title-content {
    color: #0958d9 !important;
}

/* Space 컴포넌트 내부의 span도 hover 시 색상 적용 (결재함, 재고현황 등) */
.ant-layout-sider .ant-menu-light .ant-menu-item:hover .ant-menu-title-content span,
.ant-layout-sider .ant-menu-light .ant-menu-submenu-title:hover .ant-menu-title-content span {
    color: #0958d9 !important;
}

.ant-layout-sider .ant-menu-light .ant-menu-item:hover .anticon,
.ant-layout-sider .ant-menu-light .ant-menu-submenu-title:hover .anticon {
    color: #0958d9 !important;
    transition: all 0.2s ease;
}

/* 선택된 메뉴 아이템 - 배경 파란색일 때 텍스트/아이콘 반드시 흰색 */
.ant-layout-sider .ant-menu-light .ant-menu-item-selected {
    background-color: #1890ff !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

.ant-layout-sider .ant-menu-light .ant-menu-item-selected .ant-menu-title-content,
.ant-layout-sider .ant-menu-light .ant-menu-item-selected .anticon,
.ant-layout-sider .ant-menu-light .ant-menu-item-selected .ant-menu-item-label,
.ant-layout-sider .ant-menu-light .ant-menu-item-selected .ant-menu-item-label * {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

/* 선택된 메뉴의 Space 내부 span도 흰색으로 */
.ant-layout-sider .ant-menu-light .ant-menu-item-selected .ant-menu-title-content span,
.ant-layout-sider .ant-menu-light .ant-menu-item-selected .ant-menu-title-content *,
.ant-layout-sider .ant-menu-light .ant-menu-item-selected span {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

/* 서브메뉴 내 선택된 항목도 동일하게 흰색 (custom-sidebar, menu-container) */
.custom-sidebar .ant-menu-sub .ant-menu-item-selected,
.menu-container .ant-menu-sub .ant-menu-item-selected,
.ant-layout-sider .ant-menu-light .ant-menu-sub .ant-menu-item-selected {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}
.custom-sidebar .ant-menu-sub .ant-menu-item-selected .ant-menu-title-content,
.custom-sidebar .ant-menu-sub .ant-menu-item-selected .ant-menu-item-label,
.custom-sidebar .ant-menu-sub .ant-menu-item-selected .ant-menu-item-label *,
.custom-sidebar .ant-menu-sub .ant-menu-item-selected .anticon,
.custom-sidebar .ant-menu-sub .ant-menu-item-selected span,
.custom-sidebar .ant-menu-sub .ant-menu-item-selected *,
.menu-container .ant-menu-sub .ant-menu-item-selected .ant-menu-title-content,
.menu-container .ant-menu-sub .ant-menu-item-selected .ant-menu-item-label,
.menu-container .ant-menu-sub .ant-menu-item-selected .ant-menu-item-label *,
.menu-container .ant-menu-sub .ant-menu-item-selected .anticon,
.menu-container .ant-menu-sub .ant-menu-item-selected span,
.menu-container .ant-menu-sub .ant-menu-item-selected *,
.ant-layout-sider .ant-menu-light .ant-menu-sub .ant-menu-item-selected .ant-menu-title-content,
.ant-layout-sider .ant-menu-light .ant-menu-sub .ant-menu-item-selected .ant-menu-item-label,
.ant-layout-sider .ant-menu-light .ant-menu-sub .ant-menu-item-selected .anticon,
.ant-layout-sider .ant-menu-light .ant-menu-sub .ant-menu-item-selected span,
.ant-layout-sider .ant-menu-light .ant-menu-sub .ant-menu-item-selected * {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

/* 서브메뉴 아이템 hover 효과 */
.ant-layout-sider .ant-menu-light .ant-menu-submenu .ant-menu-item:hover {
    background-color: #f5f5f5 !important;
    color: #0958d9 !important;
    transition: background-color 0.2s ease, color 0.2s ease !important;
}

.ant-layout-sider .ant-menu-light .ant-menu-submenu .ant-menu-item:hover .ant-menu-title-content {
    color: #0958d9 !important;
}

/* 서브메뉴의 Space 내부 span도 hover 시 색상 적용 */
.ant-layout-sider .ant-menu-light .ant-menu-submenu .ant-menu-item:hover .ant-menu-title-content span {
    color: #0958d9 !important;
}

/* 메뉴 아이템 기본 스타일 */
.ant-layout-sider .ant-menu-light .ant-menu-item,
.ant-layout-sider .ant-menu-light .ant-menu-submenu-title {
    margin: 4px 8px;
    border-radius: 6px;
    width: calc(100% - 16px);
}

/* 부모 메뉴(대분류) 텍스트 굵게 - 하위 메뉴와 가독성 구분 */
.ant-layout-sider .ant-menu-light .ant-menu-submenu-title,
.custom-sidebar .ant-menu-submenu-title,
.menu-container .ant-menu-submenu-title {
    font-weight: 700 !important;
}
.ant-layout-sider .ant-menu-light .ant-menu-submenu-title .ant-menu-title-content,
.custom-sidebar .ant-menu-submenu-title .ant-menu-title-content,
.menu-container .ant-menu-submenu-title .ant-menu-title-content {
    font-weight: 700 !important;
}

/* 펼친 하위 메뉴 패널 배경 — 별도 하늘색 블록 제거 */
.ant-layout-sider .ant-menu-light .ant-menu-sub,
.custom-sidebar:not(.groupware-dark-mode) .ant-menu-light .ant-menu-sub,
.menu-container .ant-menu-light .ant-menu-sub {
    background: transparent !important;
}

/* 하위 메뉴 아이템 - 일반 굵기 (부모와 시각적 구분) */
.ant-layout-sider .ant-menu-light .ant-menu-sub .ant-menu-item,
.custom-sidebar .ant-menu-sub .ant-menu-item,
.menu-container .ant-menu-sub .ant-menu-item {
    font-weight: 400 !important;
}
.ant-layout-sider .ant-menu-light .ant-menu-sub .ant-menu-item .ant-menu-title-content,
.custom-sidebar .ant-menu-sub .ant-menu-item .ant-menu-title-content,
.menu-container .ant-menu-sub .ant-menu-item .ant-menu-title-content {
    font-weight: 400 !important;
}

/* 사용자 정보 메뉴 아이템 여백 */
.user-info-menu .ant-menu-item {
    margin: 8px 16px !important;
    width: calc(100% - 32px) !important;
    padding-left: 16px !important;
}

/* 사이드바 로고 텍스트 크기 및 색상 (여백 확보를 위해 적정 크기로 조정) */
.ant-layout-sider .sidebar-logo-title,
.ant-layout-sider .sidebar-logo-title.ant-typography {
    font-size: 20px !important;
    line-height: 24px !important;
    color: #262626 !important;
}

/* 검색창 스타일 - Light Theme (사이드 메뉴 재디자인) */
.menu-search-input,
.menu-search-input.ant-input-affix-wrapper,
span.ant-input-affix-wrapper.menu-search-input {
    border-radius: 8px !important;
    background-color: #f8fafc !important;
    border: 1px solid #e2e8f0 !important;
    transition: all 0.2s ease !important;
}

.menu-search-input:hover,
.menu-search-input.ant-input-affix-wrapper:hover {
    background-color: #f1f5f9 !important;
    border-color: #cbd5e1 !important;
}

.menu-search-input:focus,
.menu-search-input.ant-input-affix-wrapper:focus,
.menu-search-input.ant-input-affix-wrapper-focused {
    background-color: #ffffff !important;
    border-color: #1890ff !important;
    box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.1) !important;
}

.menu-search-input .ant-input,
.menu-search-input input.ant-input,
input.ant-input.menu-search-input,
.ant-input-affix-wrapper.menu-search-input input,
.ant-input-affix-wrapper.menu-search-input input.ant-input,
.custom-sidebar .menu-search-input input,
.custom-sidebar input.ant-input,
span.ant-input-affix-wrapper.menu-search-input input {
    border-radius: 6px !important;
    color: #262626 !important;
    background-color: transparent !important;
    -webkit-text-fill-color: #262626 !important;
    caret-color: #262626 !important;
}

/* 포커스 상태에서도 색상 유지 */
.menu-search-input .ant-input:focus,
.ant-input-affix-wrapper.menu-search-input input:focus,
.ant-input-affix-wrapper.menu-search-input:focus input,
.custom-sidebar input.ant-input:focus {
    color: #262626 !important;
    -webkit-text-fill-color: #262626 !important;
    background-color: transparent !important;
}

/* 활성 상태에서도 색상 유지 */
.menu-search-input .ant-input:active,
.ant-input-affix-wrapper.menu-search-input input:active,
.custom-sidebar input.ant-input:active {
    color: #262626 !important;
    -webkit-text-fill-color: #262626 !important;
}

.menu-search-input .ant-input::placeholder,
.menu-search-input input.ant-input::placeholder,
input.ant-input.menu-search-input::placeholder,
.ant-input-affix-wrapper.menu-search-input input::placeholder {
    color: rgba(0, 0, 0, 0.45) !important;
    -webkit-text-fill-color: rgba(0, 0, 0, 0.45) !important;
    opacity: 1 !important;
}

.menu-search-input .ant-input-prefix,
.menu-search-input .anticon,
.ant-input-affix-wrapper.menu-search-input .ant-input-prefix,
.ant-input-affix-wrapper.menu-search-input .anticon {
    color: rgba(0, 0, 0, 0.45) !important;
}

/* 검색창 wrapper - 포커스 상태 */
.ant-input-affix-wrapper.menu-search-input,
.ant-input-affix-wrapper.menu-search-input:focus,
.ant-input-affix-wrapper.menu-search-input:hover,
.ant-input-affix-wrapper.menu-search-input-focused {
    background-color: #ffffff !important;
}

.ant-input-affix-wrapper.menu-search-input .ant-input,
.ant-input-affix-wrapper.menu-search-input:focus .ant-input,
.ant-input-affix-wrapper.menu-search-input:hover .ant-input {
    color: #262626 !important;
    background-color: transparent !important;
    -webkit-text-fill-color: #262626 !important;
}

.ant-input-affix-wrapper.menu-search-input .ant-input::placeholder,
.ant-input-affix-wrapper.menu-search-input:focus .ant-input::placeholder {
    color: rgba(0, 0, 0, 0.45) !important;
}

/* 사이드바 내 모든 Input 강제 스타일 */
.custom-sidebar input[type="text"],
.ant-layout-sider input[type="text"],
.custom-sidebar input[type="text"]:focus,
.ant-layout-sider input[type="text"]:focus,
.custom-sidebar input[type="text"]:active,
.ant-layout-sider input[type="text"]:active {
    color: #262626 !important;
    -webkit-text-fill-color: #262626 !important;
    caret-color: #262626 !important;
}

/* Light theme search input - 가장 강력한 우선순위 */
/* 모든 상태에서 텍스트 색상 고정 */
.light-theme-search.ant-input-affix-wrapper input,
.light-theme-search input.ant-input,
input.ant-input[class*="light-theme"],
.light-theme-search.ant-input-affix-wrapper:hover input,
.light-theme-search.ant-input-affix-wrapper:focus input,
.light-theme-search.ant-input-affix-wrapper:active input,
.light-theme-search.ant-input-affix-wrapper:focus-within input,
.light-theme-search input.ant-input:hover,
.light-theme-search input.ant-input:focus,
.light-theme-search input.ant-input:active,
.light-theme-search input.ant-input:focus-visible,
.ant-input-affix-wrapper.light-theme-search input,
.ant-input-affix-wrapper.light-theme-search:hover input,
.ant-input-affix-wrapper.light-theme-search:focus input,
.ant-input-affix-wrapper.light-theme-search:active input,
.ant-input-affix-wrapper.light-theme-search:not(:hover):not(:focus) input,
.light-theme-search:not(:hover):not(:focus) input,
span.ant-input-affix-wrapper.light-theme-search input,
span.ant-input-affix-wrapper.light-theme-search:not(:hover) input,
span.ant-input-affix-wrapper.light-theme-search:not(:focus) input {
    color: #262626 !important;
    -webkit-text-fill-color: #262626 !important;
    background-color: transparent !important;
    caret-color: #262626 !important;
    opacity: 1 !important;
}

/* wrapper가 hover/focus 없을 때도 텍스트 보이도록 */
.ant-input-affix-wrapper.menu-search-input input,
.ant-input-affix-wrapper.light-theme-search input {
    color: #262626 !important;
    -webkit-text-fill-color: #262626 !important;
}

/* 전체 펼치기/접기 버튼 스타일 */
.custom-sidebar .ant-btn {
    border-radius: 6px !important;
}

/* 사이드바 스크롤바 디자인 */
.custom-sidebar::-webkit-scrollbar,
.ant-layout-sider::-webkit-scrollbar,
.custom-sidebar *::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

.custom-sidebar::-webkit-scrollbar-track,
.ant-layout-sider::-webkit-scrollbar-track,
.custom-sidebar *::-webkit-scrollbar-track {
    background: transparent;
    border-radius: 10px;
}

.custom-sidebar::-webkit-scrollbar-thumb,
.ant-layout-sider::-webkit-scrollbar-thumb,
.custom-sidebar *::-webkit-scrollbar-thumb {
    background: #d9d9d9;
    border-radius: 10px;
    border: 2px solid transparent;
    background-clip: padding-box;
    transition: background 0.3s ease;
}

.custom-sidebar::-webkit-scrollbar-thumb:hover,
.ant-layout-sider::-webkit-scrollbar-thumb:hover,
.custom-sidebar *::-webkit-scrollbar-thumb:hover {
    background: #bfbfbf;
    border-radius: 10px;
    border: 2px solid transparent;
    background-clip: padding-box;
}

.custom-sidebar::-webkit-scrollbar-thumb:active,
.ant-layout-sider::-webkit-scrollbar-thumb:active,
.custom-sidebar *::-webkit-scrollbar-thumb:active {
    background: #8c8c8c;
}

/* 그룹웨어 모드일 때 스크롤바 */
.custom-sidebar.groupware-mode::-webkit-scrollbar-thumb,
.ant-layout-sider.groupware-mode::-webkit-scrollbar-thumb {
    background: #91caff;
}

.custom-sidebar.groupware-mode::-webkit-scrollbar-thumb:hover,
.ant-layout-sider.groupware-mode::-webkit-scrollbar-thumb:hover {
    background: #69b1ff;
}

/* 메뉴 컨테이너 스크롤바 */
.menu-container::-webkit-scrollbar {
    width: 6px;
}

.menu-container::-webkit-scrollbar-thumb {
    background: #d9d9d9;
    border-radius: 10px;
}

.menu-container::-webkit-scrollbar-thumb:hover {
    background: #bfbfbf;
}

/* 메뉴 컨테이너 배경색 - 사이드바와 동일하게 설정하여 끊김 방지 */
.menu-container {
    background-color: #f0f2f5;
}

/* 그룹웨어 모드일 때 메뉴 컨테이너 배경색 */
.custom-sidebar.groupware-mode .menu-container {
    background-color: #e6f7ff;
}

/* ========================================
   그룹웨어 다크 모드 스타일
   ======================================== */

/* 다크 모드 메뉴 기본 스타일 */
.custom-sidebar.groupware-dark-mode .ant-menu-dark,
.custom-sidebar.groupware-dark-mode .ant-menu-dark .ant-menu-sub {
    background: #1f2937 !important;
}

/* 다크 모드 메뉴 아이템 */
.custom-sidebar.groupware-dark-mode .ant-menu-dark .ant-menu-item,
.custom-sidebar.groupware-dark-mode .ant-menu-dark .ant-menu-submenu-title {
    color: #e5e7eb !important;
    background: transparent !important;
    border-radius: 6px !important;
    margin: 4px 8px !important;
    transition: all 0.2s ease !important;
}

/* 그룹웨어 메뉴: submenu title(영업일지)과 일반 item의 왼쪽 정렬 통일 */
.groupware-menu .ant-menu-item,
.groupware-menu .ant-menu-submenu-title {
    padding-inline-start: 16px !important;
    padding-left: 16px !important;
}

/* 영업일지 등 하위 메뉴는 우측 안쪽으로 들여쓰기 */
.groupware-menu .ant-menu-sub .ant-menu-item {
    padding-inline-start: 32px !important;
    padding-left: 32px !important;
}

/* 다크 모드 메뉴 아이템 hover */
.custom-sidebar.groupware-dark-mode .ant-menu-dark .ant-menu-item:hover,
.custom-sidebar.groupware-dark-mode .ant-menu-dark .ant-menu-submenu-title:hover {
    background: #374151 !important;
    color: #60a5fa !important;
}

.custom-sidebar.groupware-dark-mode .ant-menu-dark .ant-menu-item:hover .ant-menu-title-content,
.custom-sidebar.groupware-dark-mode .ant-menu-dark .ant-menu-submenu-title:hover .ant-menu-title-content {
    color: #60a5fa !important;
}

.custom-sidebar.groupware-dark-mode .ant-menu-dark .ant-menu-item:hover .anticon,
.custom-sidebar.groupware-dark-mode .ant-menu-dark .ant-menu-submenu-title:hover .anticon {
    color: #60a5fa !important;
}

/* 다크 모드 선택된 메뉴 아이템 */
.custom-sidebar.groupware-dark-mode .ant-menu-dark .ant-menu-item-selected {
    background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%) !important;
    color: white !important;
    box-shadow: 0 2px 8px rgba(59, 130, 246, 0.3) !important;
}

.custom-sidebar.groupware-dark-mode .ant-menu-dark .ant-menu-item-selected .ant-menu-title-content,
.custom-sidebar.groupware-dark-mode .ant-menu-dark .ant-menu-item-selected .anticon {
    color: white !important;
}

/* 다크 모드 서브메뉴 */
.custom-sidebar.groupware-dark-mode .ant-menu-dark .ant-menu-sub {
    background: #111827 !important;
}

.custom-sidebar.groupware-dark-mode .ant-menu-dark .ant-menu-submenu .ant-menu-item {
    background: transparent !important;
    color: #d1d5db !important;
}

.custom-sidebar.groupware-dark-mode .ant-menu-dark .ant-menu-submenu .ant-menu-item:hover {
    background: #374151 !important;
    color: #60a5fa !important;
}

/* 다크 모드 검색창 스타일 */
.dark-theme-search,
.dark-theme-search.ant-input-affix-wrapper {
    border-radius: 8px !important;
    background-color: #1f2937 !important;
    border: 1px solid #4b5563 !important;
    transition: all 0.2s ease !important;
}

.dark-theme-search:hover,
.dark-theme-search.ant-input-affix-wrapper:hover {
    background-color: #374151 !important;
    border-color: #60a5fa !important;
}

.dark-theme-search:focus,
.dark-theme-search.ant-input-affix-wrapper:focus,
.dark-theme-search.ant-input-affix-wrapper-focused {
    background-color: #374151 !important;
    border-color: #3b82f6 !important;
    box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.2) !important;
}

.dark-theme-search .ant-input,
.dark-theme-search input.ant-input {
    color: #f3f4f6 !important;
    background-color: transparent !important;
    -webkit-text-fill-color: #f3f4f6 !important;
    caret-color: #f3f4f6 !important;
}

.dark-theme-search .ant-input::placeholder {
    color: rgba(255, 255, 255, 0.45) !important;
    -webkit-text-fill-color: rgba(255, 255, 255, 0.45) !important;
}

.dark-theme-search .ant-input-prefix,
.dark-theme-search .anticon {
    color: #60a5fa !important;
}

/* 다크 모드 메뉴 컨테이너 배경 */
.custom-sidebar.groupware-dark-mode .menu-container {
    background-color: #1f2937 !important;
}

/* 다크 모드 스크롤바 */
.custom-sidebar.groupware-dark-mode::-webkit-scrollbar-thumb {
    background: #4b5563 !important;
}

.custom-sidebar.groupware-dark-mode::-webkit-scrollbar-thumb:hover {
    background: #6b7280 !important;
}

.custom-sidebar.groupware-dark-mode::-webkit-scrollbar-track {
    background: #1f2937 !important;
}

/* 다크 모드 메뉴 화살표 */
.custom-sidebar.groupware-dark-mode .ant-menu-dark .ant-menu-submenu-arrow {
    color: #9ca3af !important;
}

.custom-sidebar.groupware-dark-mode .ant-menu-dark .ant-menu-submenu-arrow::before,
.custom-sidebar.groupware-dark-mode .ant-menu-dark .ant-menu-submenu-arrow::after {
    background: #9ca3af !important;
}

.custom-sidebar.groupware-dark-mode .ant-menu-dark .ant-menu-submenu-title:hover .ant-menu-submenu-arrow::before,
.custom-sidebar.groupware-dark-mode .ant-menu-dark .ant-menu-submenu-title:hover .ant-menu-submenu-arrow::after {
    background: #60a5fa !important;
}

/* 좁은 레일: 비활성 호버 · 활성 탭과 톤 통일 */
.app-sidebar-rail .app-sidebar-rail__btn.ant-btn-text {
    border: none !important;
}
.app-sidebar-rail .app-sidebar-rail__btn.ant-btn-text:not(:disabled):not(.app-sidebar-rail__btn--active):hover {
    color: #1890ff !important;
    background-color: rgba(24, 144, 255, 0.12) !important;
}
.app-sidebar-rail--dark .app-sidebar-rail__btn.ant-btn-text:not(:disabled):not(.app-sidebar-rail__btn--active):hover {
    color: #f8fafc !important;
    background-color: rgba(255, 255, 255, 0.12) !important;
}
.app-sidebar-rail .app-sidebar-rail__btn--active.ant-btn-text:not(:disabled):hover {
    filter: brightness(1.08);
}

/* 메뉴 검색 + 펼침 도구줄 */
.menu-search-toolbar .menu-toolbar-action-btn.ant-btn-default:hover {
    color: #1890ff !important;
    border-color: #91d5ff !important;
    background: #f0f9ff !important;
}

/* 현재 경로가 속한 대분류(1차 메뉴): 연한 배경 + 왼쪽 인디케이터 — 최종 항목(리프)의 진한 선택과 구분 */
.custom-sidebar:not(.groupware-dark-mode) .ant-menu-light .ant-menu-submenu.ant-menu-submenu-selected > .ant-menu-submenu-title {
    background-color: #e6f4ff !important;
    color: #0958d9 !important;
    box-shadow: inset 3px 0 0 #1890ff !important;
}
.custom-sidebar:not(.groupware-dark-mode) .ant-menu-light .ant-menu-submenu.ant-menu-submenu-selected > .ant-menu-submenu-title .anticon {
    color: #1890ff !important;
}
.custom-sidebar:not(.groupware-dark-mode) .ant-menu-light .ant-menu-submenu.ant-menu-submenu-selected > .ant-menu-submenu-title:hover {
    background-color: #d4edff !important;
    color: #0958d9 !important;
}
.custom-sidebar:not(.groupware-dark-mode) .ant-menu-light .ant-menu-submenu.ant-menu-submenu-selected > .ant-menu-submenu-title:hover .anticon {
    color: #1890ff !important;
}/* ??? ???????? ????? ??????????*/
/* ??? ?????????????????12px???????? ?????????*/

/* ?? ???????? */
body {
  font-size: 12px !important;
}

/* ?? ???????? ?? ??? */
* {
  font-size: inherit;
}

/* ??? style? ??? ?? ??? ??? ??? ?? (12px ?? ??)
   - body + inherit? ??? ??? 12px ??
   - ?? ??, ??? ?? ? ??? fontSize? ??? ?? */

/* ???????????? ???? ????? ????????*/
[style*="padding: '24px'"],
[style*="padding: \"24px\""],
[style*="padding: 24px"],
[style*="padding: '20px'"],
[style*="padding: \"20px\""],
[style*="padding: 20px"],
[style*="padding: '16px'"],
[style*="padding: \"16px\""],
[style*="padding: 16px"],
[style*="padding: '20px 24px'"],
[style*="padding: \"20px 24px\""],
[style*="padding: 20px 24px"],
[style*="padding: '16px 24px'"],
[style*="padding: \"16px 24px\""],
[style*="padding: 16px 24px"] {
  padding: 8px 12px !important;
}

[style*="marginBottom: '24px'"],
[style*="marginBottom: \"24px\""],
[style*="margin-bottom: 24px"],
[style*="marginBottom: '20px'"],
[style*="marginBottom: \"20px\""],
[style*="margin-bottom: 20px"],
[style*="marginBottom: '16px'"],
[style*="marginBottom: \"16px\""],
[style*="margin-bottom: 16px"] {
  margin-bottom: 8px !important;
}

[style*="margin: '0 0 8px 0'"],
[style*="margin: \"0 0 8px 0\""],
[style*="margin: 0 0 8px 0"] {
  margin: 0 0 4px 0 !important;
}

/* Ant Design ????? ??? ??????*/
.ant-btn {
  font-size: 12px !important;
  padding: 2px 8px !important;
  height: auto !important;
  min-height: 24px !important;
  line-height: 1.2 !important;
}

.ant-btn-sm {
  font-size: 12px !important;
  height: 24px !important;
  padding: 0 8px !important;
}

.ant-input,
.ant-input-affix-wrapper,
.ant-input-number,
.ant-select-selector {
  font-size: 12px !important;
  padding: 2px 8px !important;
  height: 32px !important;
  line-height: 32px !important;
  display: flex !important;
  align-items: center !important;
}

.ant-picker-input > input {
  font-size: 12px !important;
  padding: 2px 8px !important;
  height: 32px !important;
  line-height: 32px !important;
  display: flex !important;
  align-items: center !important;
}

.ant-input-affix-wrapper {
  display: flex !important;
  align-items: center !important;
}

.ant-input-affix-wrapper .ant-input {
  font-size: 12px !important;
  line-height: 20px !important;
  padding: 0 !important;
  height: 20px !important;
  border: none !important;
  box-shadow: none !important;
}

.ant-input {
  line-height: 20px !important;
  padding: 2px 8px !important;
}

/* Input Affix Wrapper ???? ??????? ??? */
.ant-input-affix-wrapper .ant-input-prefix,
.ant-input-affix-wrapper .ant-input-suffix {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 100% !important;
}

.ant-input-affix-wrapper .ant-input-prefix .anticon,
.ant-input-affix-wrapper .ant-input-suffix .anticon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  vertical-align: middle !important;
}

/* Input Clear ?? ?? ??? */
.ant-input-clear-icon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 100% !important;
  vertical-align: middle !important;
}

.ant-input-clear-icon .anticon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  vertical-align: middle !important;
}

.ant-input-sm,
.ant-input-number-sm,
.ant-select-sm .ant-select-selector {
  font-size: 12px !important;
  height: 24px !important;
  padding: 2px 8px !important;
  line-height: 24px !important;
  display: flex !important;
  align-items: center !important;
}

.ant-input-sm {
  line-height: 20px !important;
}

.ant-input-affix-wrapper-sm {
  display: flex !important;
  align-items: center !important;
}

.ant-input-affix-wrapper-sm .ant-input {
  line-height: 20px !important;
  padding: 0 !important;
  height: 20px !important;
}

.ant-input-affix-wrapper-sm .ant-input-prefix,
.ant-input-affix-wrapper-sm .ant-input-suffix {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 100% !important;
}

/* Small ?????Select ??????? ??? */
.ant-select-sm .ant-select-selector {
  padding-right: 24px !important;
  position: relative !important;
}

.ant-select-sm .ant-select-selector .ant-select-arrow,
.ant-select-sm .ant-select-selector .ant-select-suffix,
.ant-select-sm .ant-select-selector .ant-select-clear,
.ant-select-sm .ant-select-arrow,
.ant-select-sm .ant-select-suffix,
.ant-select-sm .ant-select-clear {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  position: absolute !important;
  right: 11px !important;
  top: 50% !important;
  transform: translateY(calc(-50% - 1px)) !important;
  margin-top: 0 !important;
  line-height: 1 !important;
  height: auto !important;
}

.ant-select-sm .ant-select-selector .ant-select-clear,
.ant-select-sm .ant-select-clear {
  right: 8px !important;
}

.ant-select-sm .ant-select-arrow .anticon,
.ant-select-sm .ant-select-suffix .anticon,
.ant-select-sm .ant-select-clear .anticon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  vertical-align: middle !important;
  line-height: 1 !important;
  margin: 0 !important;
}

.ant-input-number {
  display: flex !important;
  align-items: center !important;
}

.ant-input-number-input {
  font-size: 12px !important;
  line-height: 20px !important;
  padding: 0 !important;
  height: 20px !important;
}

.ant-input-number-handler-wrap {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 100% !important;
}

.ant-input-number-handler {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.ant-select-selector {
  display: flex !important;
  align-items: center !important;
  padding-right: 24px !important;
  position: relative !important;
}

.ant-select-selection-item,
.ant-select-selection-placeholder {
  line-height: 20px !important;
  display: flex !important;
  align-items: center !important;
}

/* Select ???????????? ??? - ?????????????? */
.ant-select .ant-select-arrow,
.ant-select .ant-select-suffix,
.ant-select-selector .ant-select-arrow,
.ant-select-selector .ant-select-suffix {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  position: absolute !important;
  right: 11px !important;
  top: 50% !important;
  transform: translateY(calc(-50% - 1px)) !important;
  margin-top: 0 !important;
  line-height: 1 !important;
  height: auto !important;
}

.ant-select .ant-select-arrow .anticon,
.ant-select .ant-select-suffix .anticon,
.ant-select-selector .ant-select-arrow .anticon,
.ant-select-selector .ant-select-suffix .anticon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  vertical-align: middle !important;
  line-height: 1 !important;
  margin: 0 !important;
}

/* Select Clear ?? ?? ??? */
.ant-select .ant-select-clear,
.ant-select-selector .ant-select-clear {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  position: absolute !important;
  right: 8px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  margin-top: 0 !important;
  line-height: 1 !important;
  height: auto !important;
}

.ant-select .ant-select-clear .anticon,
.ant-select-selector .ant-select-clear .anticon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  vertical-align: middle !important;
  line-height: 1 !important;
  margin: 0 !important;
}

/* ????? Select: ??????Select?? ??? ??????(32px), ??? ??? ?? (???????) */
.work-type-select.ant-select-lg .ant-select-selector,
.work-type-select .ant-select-selector {
  height: 32px !important;
  min-height: 32px !important;
  padding: 0 8px !important;
  display: flex !important;
  align-items: center !important;
}
.work-type-select .ant-select-selection-overflow {
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 2px !important;
}
.work-type-select .ant-select-selection-item {
  display: inline-flex !important;
  align-items: center !important;
  line-height: 18px !important;
  margin: 0 !important;
  vertical-align: middle !important;
  font-size: 12px !important;
}
.work-type-select .ant-select-selection-placeholder {
  display: flex !important;
  align-items: center !important;
  line-height: 20px !important;
}

.ant-picker {
  font-size: 12px !important;
  height: 32px !important;
  display: flex !important;
  align-items: center !important;
}

.ant-picker-input {
  display: flex !important;
  align-items: center !important;
}

.ant-picker-input > input {
  font-size: 12px !important;
  line-height: 32px !important;
  padding: 0 !important;
  height: 32px !important;
}

.ant-picker-small {
  font-size: 12px !important;
  height: 24px !important;
  display: flex !important;
  align-items: center !important;
}

.ant-picker-small .ant-picker-input > input {
  font-size: 12px !important;
  line-height: 20px !important;
}

/* Picker ???????????? ??? */
.ant-picker-suffix {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 100% !important;
  top: 0 !important;
  bottom: 0 !important;
  margin-top: 0 !important;
}

.ant-picker-suffix .anticon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  vertical-align: middle !important;
}

.ant-picker-clear {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 100% !important;
  top: 0 !important;
  bottom: 0 !important;
}

.ant-picker-clear .anticon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  vertical-align: middle !important;
}

/* ?????*/
.ant-table {
  font-size: 12px !important;
}

/* ????? ?????????????? ?????*/
.ant-table-wrapper {
  overflow-x: auto !important;
  max-width: 100% !important;
}

.ant-table-container {
  overflow-x: auto !important;
}

.ant-table-thead > tr > th {
  font-size: 12px !important;
  padding: 4px 2px !important;
  font-weight: 500 !important;
}

.ant-table-tbody > tr > td {
  font-size: 12px !important;
  padding: 4px 2px !important;
}

.ant-table-small .ant-table-thead > tr > th,
.ant-table-small .ant-table-tbody > tr > td {
  padding: 4px 2px !important;
  font-size: 12px !important;
}

/* ??*/
.ant-form-item {
  margin-bottom: 8px !important;
}

.ant-form-item-label {
  padding: 0 0 2px !important;
}

.ant-form-item-label > label {
  font-size: 12px !important;
  height: auto !important;
  line-height: 1.2 !important;
}

.ant-form-item-label > label.ant-form-item-required:not(.ant-form-item-required-mark-optional)::before {
  font-size: 12px !important;
}

/* ?? */
.ant-card {
  font-size: 12px !important;
  margin-bottom: 8px !important;
}

.ant-card-head {
  padding: 4px 8px !important;
  min-height: auto !important;
  border-bottom: 1px solid #f0f0f0 !important;
}

.ant-card-head-title {
  padding: 0 !important;
  font-size: 12px !important;
  line-height: 1.2 !important;
}

/* ??? ????: ?? ??????(??? ??? - ??? 12px ??? */
.draft-requests-page .dr-main-card .ant-card-head .ant-card-head-title {
  font-size: 20px !important;
  line-height: 1.4 !important;
}

/* ????? ????: ??? ?????? 18px ??? */
.weekly-production-plan-page .wpp-header-card h2.wpp-header-title,
.weekly-production-plan-page .wpp-gantt-card .ant-card-head-title .wpp-header-title,
.weekly-production-plan-page .wpp-materials-card .ant-card-head-title .wpp-header-title,
.weekly-production-plan-page .wpp-products-card .ant-card-head-title .wpp-header-title {
  font-size: 20px !important;
}
.weekly-production-plan-page .wpp-gantt-card .ant-card-head-title,
.weekly-production-plan-page .wpp-materials-card .ant-card-head-title,
.weekly-production-plan-page .wpp-products-card .ant-card-head-title {
  font-size: 18px !important;
}

.ant-card-body {
  padding: 8px !important;
  font-size: 12px !important;
}

.ant-card-small {
  font-size: 12px !important;
}

.ant-card-small .ant-card-head {
  padding: 4px 8px !important;
  min-height: auto !important;
}

.ant-card-small .ant-card-body {
  padding: 8px !important;
}

.ant-card-small .ant-card-head-title {
  font-size: 12px !important;
}

/* ?? - ??: 16px ?? (??? fontSize ?? ? ??? ??) */
.ant-modal-title {
  font-size: 16px !important;
}

.ant-modal-body {
  padding: 4px !important;
  font-size: 12px !important;
}

/* ??????? ??? ??: ??? 12px ??????????? (??????? ??? 14px), ???/?????? ??? ???? ??????????? */
.sd-detail-modal .ant-modal-title,
.sd-detail-modal .sd-detail-section-title {
  font-size: 14px !important;
}
.sd-detail-modal .sd-detail-section-title {
  padding-left: 18px !important;
  padding-right: 0 !important;
  padding-top: 6px !important;
  padding-bottom: 6px !important;
}

.ant-modal-footer {
  padding: 2px 4px !important;
  font-size: 12px !important;
}

.ant-modal-header {
  padding: 4px 8px !important;
}

/* ?? ???? ????? ????*/
.ant-modal-body .ant-form-item {
  margin-bottom: 4px !important;
}

.ant-modal-body .ant-form-item-label {
  padding: 0 0 1px !important;
}

.ant-modal-body .ant-form-item-label > label {
  font-size: 12px !important;
}

/* ?? ???? ?? ??? ??? ???????? */
.ant-modal-body .ant-input,
.ant-modal-body .ant-input-number,
.ant-modal-body .ant-input-number-input,
.ant-modal-body .ant-picker-input > input,
.ant-modal-body .ant-select-selector,
.ant-modal-body .ant-select-selection-item,
.ant-modal-body .ant-select-selection-placeholder,
.ant-modal-body textarea.ant-input {
  font-size: 12px !important;
  line-height: 20px !important;
}

.ant-modal-body .ant-input-affix-wrapper {
  display: flex !important;
  align-items: center !important;
  height: 32px !important;
}

/* textarea???????? affix-wrapper????? ?? (Ant Design?? .ant-input-textarea-affix-wrapper ????????) */
.ant-modal-body .ant-input-textarea-affix-wrapper {
  display: inline-block !important;
  position: relative !important;
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
  box-sizing: border-box !important;
  width: 100% !important;
  vertical-align: top !important;
  line-height: 0 !important;
}

.ant-modal-body .ant-input-affix-wrapper .ant-input {
  line-height: 20px !important;
  padding: 0 !important;
  height: auto !important;
  flex: 1 !important;
}

/* textarea???????? affix-wrapper ??????textarea???? ?? */
.ant-modal-body .ant-input-textarea-affix-wrapper textarea {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  min-height: auto !important;
  line-height: 1.5 !important;
  padding: 8px 12px 24px 12px !important;
  box-sizing: border-box !important;
  resize: vertical !important;
  margin: 0 !important;
  border: 1px solid #d9d9d9 !important;
  border-radius: 6px !important;
  vertical-align: top !important;
}

.ant-modal-body .ant-input:not(textarea) {
  line-height: 20px !important;
  height: 32px !important;
}

/* ?? ???? textarea ??? ?? */
.ant-modal-body textarea.ant-input {
  min-height: 120px !important;
  height: auto !important;
  line-height: 1.5 !important;
  padding: 8px 12px !important;
}

/* textarea??showCount ??????? ?? */
.ant-modal-body .ant-input-textarea-affix-wrapper .ant-input-show-count-suffix {
  position: absolute !important;
  bottom: 4px !important;
  right: 12px !important;
  pointer-events: none !important;
  z-index: 1 !important;
  background: transparent !important;
  color: rgba(0, 0, 0, 0.45) !important;
  font-size: 12px !important;
}

/* ?? ???? Select ??? ??????????? */
.ant-modal-body .ant-select {
  height: 32px !important;
  display: flex !important;
  align-items: center !important;
}

.ant-modal-body .ant-select-selector {
  height: 32px !important;
  display: flex !important;
  align-items: center !important;
  padding: 0 24px 0 8px !important;
  position: relative !important;
}

.ant-modal-body .ant-select-selection-item,
.ant-modal-body .ant-select-selection-placeholder {
  line-height: 1.5 !important;
  display: flex !important;
  align-items: center !important;
  height: auto !important;
}

/* ?? ???? Select/Picker ??????? ??? - ???????????? */
.ant-modal-body .ant-select .ant-select-arrow,
.ant-modal-body .ant-select-arrow,
.ant-modal-body .ant-select .ant-select-suffix,
.ant-modal-body .ant-select-suffix {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  position: absolute !important;
  top: 50% !important;
  right: 11px !important;
  transform: translateY(calc(-50% - 1px)) !important;
  margin-top: 0 !important;
  line-height: 1 !important;
  height: auto !important;
}

.ant-modal-body .ant-select-selector .ant-select-arrow,
.ant-modal-body .ant-select-selector .ant-select-suffix {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  position: absolute !important;
  top: 50% !important;
  right: 11px !important;
  transform: translateY(calc(-50% - 1px)) !important;
  margin-top: 0 !important;
  line-height: 1 !important;
  height: auto !important;
}

.ant-modal-body .ant-select .ant-select-clear,
.ant-modal-body .ant-select-clear,
.ant-modal-body .ant-select-selector .ant-select-clear,
.ant-modal-body .ant-picker-suffix,
.ant-modal-body .ant-picker-clear,
.ant-modal-body .ant-input-affix-wrapper .ant-input-prefix,
.ant-modal-body .ant-input-affix-wrapper .ant-input-suffix,
.ant-modal-body .ant-input-clear-icon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  position: absolute !important;
  top: 50% !important;
  right: 8px !important;
  transform: translateY(-50%) !important;
  margin-top: 0 !important;
  line-height: 1 !important;
  height: auto !important;
}

.ant-modal-body .ant-select .ant-select-arrow .anticon,
.ant-modal-body .ant-select-arrow .anticon,
.ant-modal-body .ant-select .ant-select-suffix .anticon,
.ant-modal-body .ant-select-suffix .anticon,
.ant-modal-body .ant-select-selector .ant-select-arrow .anticon,
.ant-modal-body .ant-select-selector .ant-select-suffix .anticon,
.ant-modal-body .ant-select .ant-select-clear .anticon,
.ant-modal-body .ant-select-clear .anticon,
.ant-modal-body .ant-select-selector .ant-select-clear .anticon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  vertical-align: middle !important;
  line-height: 1 !important;
  margin: 0 !important;
  font-size: 12px !important;
}

/* ?? ???? ?? ???????? */
.ant-modal-footer .ant-btn,
.ant-modal-body .ant-btn {
  font-size: 12px !important;
}

/* ?? ???? ?? ???????? */
.ant-modal-body h1,
.ant-modal-body h2,
.ant-modal-body h3,
.ant-modal-body h4,
.ant-modal-body h5,
.ant-modal-body h6,
.ant-modal-body p,
.ant-modal-body span:not(.anticon):not([style*="fontSize"]):not([style*="font-size"]),
.ant-modal-body div:not(.anticon):not([style*="fontSize"]):not([style*="font-size"]) {
  font-size: 12px !important;
}

/* ?? ???? Form.Item ??? ?????*/
.ant-modal-body .ant-form-item-explain,
.ant-modal-body .ant-form-item-extra {
  font-size: 12px !important;
}

/* ?? ???? Tag, Badge ??*/
.ant-modal-body .ant-tag,
.ant-modal-body .ant-badge,
.ant-modal-body .ant-alert-message,
.ant-modal-body .ant-alert-description {
  font-size: 12px !important;
}

.ant-modal-body .ant-row {
  margin-bottom: 4px !important;
}

.ant-modal-body .ant-space {
  gap: 4px !important;
}

.ant-modal-body .ant-space-item {
  margin: 0 !important;
}

/* ?? ???? ??? ?? ????*/
.ant-modal-body > div {
  margin-bottom: 4px !important;
}

.ant-modal-body > div:last-child {
  margin-bottom: 0 !important;
}

/* ?? ???? ?? ??? ????*/
.ant-modal-body .ant-card {
  margin-bottom: 4px !important;
}

.ant-modal-body .ant-card-head {
  padding: 2px 4px !important;
  min-height: auto !important;
}

.ant-modal-body .ant-card-body {
  padding: 4px !important;
}

/* ?? ???? Divider ??? ????*/
.ant-modal-body .ant-divider {
  margin: 4px 0 !important;
}

/* ?? ???? Descriptions ??? ????*/
.ant-modal-body .ant-descriptions-item-label,
.ant-modal-body .ant-descriptions-item-content {
  padding: 2px 4px !important;
}

/* ?? ???? Tabs ??? ????*/
.ant-modal-body .ant-tabs-tab {
  padding: 2px 6px !important;
  margin: 0 2px !important;
}

.ant-modal-body .ant-tabs-content-holder {
  padding-top: 4px !important;
}

/* ?? ???? Table ??? ????*/
.ant-modal-body .ant-table-wrapper {
  margin-bottom: 4px !important;
}

/* ?? ???? Alert ??? ????*/
.ant-modal-body .ant-alert {
  margin-bottom: 4px !important;
  padding: 4px 8px !important;
}

/* ?? ???? List ??? ????*/
.ant-modal-body .ant-list-item {
  padding: 4px 0 !important;
}

/* ?? ???? Collapse ??? ????*/
.ant-modal-body .ant-collapse-item {
  margin-bottom: 4px !important;
}

.ant-modal-body .ant-collapse-header {
  padding: 4px 8px !important;
}

.ant-modal-body .ant-collapse-content-box {
  padding: 4px !important;
}

/* ??*/
.ant-tabs-tab {
  font-size: 12px !important;
  padding: 4px 8px !important;
  height: auto !important;
  min-height: 24px !important;
}

.ant-tabs-tab-btn {
  font-size: 12px !important;
  line-height: 1.2 !important;
}

.ant-tabs-nav {
  margin: 0 !important;
  padding: 0 !important;
}

.ant-tabs-nav-wrap {
  padding: 0 !important;
}

.ant-tabs-tab-close {
  font-size: 12px !important;
  width: 14px !important;
  height: 14px !important;
}

/* ??? */
.ant-tag {
  font-size: 12px !important;
  padding: 2px 6px !important;
  line-height: 1.2 !important;
  margin: 0 2px !important;
}

/* ???/??? */
.ant-message {
  font-size: 12px !important;
}

.ant-notification {
  font-size: 12px !important;
}

.ant-notification-notice-message {
  font-size: 12px !important;
}

.ant-notification-notice-description {
  font-size: 12px !important;
}

/* ??? */
.ant-alert {
  font-size: 12px !important;
}

.ant-alert-message {
  font-size: 12px !important;
}

.ant-alert-description {
  font-size: 12px !important;
}

/* ??? ?? */
.ant-descriptions-item-label,
.ant-descriptions-item-content {
  font-size: 12px !important;
  padding: 4px 8px !important;
}

.ant-descriptions-small .ant-descriptions-item-label,
.ant-descriptions-small .ant-descriptions-item-content {
  font-size: 12px !important;
  padding: 2px 4px !important;
}

/* Descriptions ??: ??????????????????? ????????(overflow/height ??? ???) */
.ant-descriptions-bordered .ant-descriptions-item-content {
  overflow: visible !important;
  min-height: auto !important;
}

/* ????, ?????*/
.ant-checkbox-wrapper {
  font-size: 12px !important;
}

.ant-radio-wrapper {
  font-size: 12px !important;
}

/* ?????? ?? ????*/
.ant-space {
  gap: 4px !important;
}

.ant-space-small {
  gap: 4px !important;
}

.ant-space-vertical {
  gap: 4px !important;
}

/* Row/Col ?? ????*/
.ant-row {
  margin-left: -4px !important;
  margin-right: -4px !important;
  margin-bottom: 4px !important;
}

.ant-row:last-child {
  margin-bottom: 0 !important;
}

.ant-col {
  padding-left: 4px !important;
  padding-right: 4px !important;
}

/* ???? ????? ??? ????*/
div[style*="padding"][style*="24px"],
div[style*="padding"][style*="16px"] {
  padding: 8px !important;
}

/* ??? ??? ??? ????*/
div[style*="padding"][style*="20px"],
div[style*="padding"][style*="24px"]:has(> div > h1),
div[style*="padding"][style*="24px"]:has(> div > h2),
div[style*="padding"][style*="20px 24px"] {
  padding: 8px 12px !important;
}

/* ??? ?? ????*/
div[style*="marginBottom"][style*="16px"],
div[style*="marginBottom"][style*="24px"],
div[style*="marginBottom"][style*="20px"] {
  margin-bottom: 8px !important;
}

/* ??? ???????? ????*/
p[style*="margin"][style*="0"],
p[style*="margin"][style*="8px"],
p[style*="marginBottom"][style*="8px"] {
  margin: 0 0 4px 0 !important;
  font-size: 12px !important;
}

/* ??? ??? ???? ??? ????*/
div[style*="display"][style*="flex"]:has(> h1),
div[style*="display"][style*="flex"]:has(> h2),
div[style*="display"][style*="flex"]:has(> div > h1),
div[style*="display"][style*="flex"]:has(> div > h2) {
  gap: 4px !important;
}

/* ???????? ??? ?? ????*/
div:has(> h1) + p,
div:has(> h2) + p,
div:has(> h3) + p,
h1 + p,
h2 + p,
h3 + p {
  margin-top: 4px !important;
  margin-bottom: 0 !important;
}

/* ?????????*/
.ant-typography {
  font-size: 12px !important;
}

h1.ant-typography,
h2.ant-typography,
h3.ant-typography,
h4.ant-typography,
h5.ant-typography,
h6.ant-typography {
  font-size: 12px !important;
  margin: 0 !important;
  line-height: 1.2 !important;
  font-weight: 600 !important;
}

/* Typography.Title ?? ??? */
.ant-typography-title {
  font-size: 12px !important;
  margin: 0 0 4px 0 !important;
  line-height: 1.2 !important;
  font-weight: 600 !important;
}

span.ant-typography,
div.ant-typography,
p.ant-typography {
  font-size: 12px !important;
  margin: 0 0 4px 0 !important;
  line-height: 1.2 !important;
}

/* ???? ?????? ??? ?? - h1, h2, h3, h4, h5, h6??12px ???? */
h1, h2, h3, h4, h5, h6 {
  font-size: 12px !important;
  margin: 0 0 4px 0 !important;
  padding: 0 !important;
  line-height: 1.2 !important;
  font-weight: 600 !important;
}

h1 {
  font-size: 12px !important;
}

h2 {
  font-size: 12px !important;
}

h3 {
  font-size: 12px !important;
}

h4 {
  font-size: 12px !important;
}

h5 {
  font-size: 12px !important;
}

h6 {
  font-size: 12px !important;
}

/* ???????????? ??? ?????????????- h1~h6??12px ???? */
/* ??: ??? fontSize? ??? ??? ??? ???? ?? */

/* ?? h1, h2, h3, h4, h5, h6 ??? ?? 12px - ????????????? */
h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: 12px !important;
}

/* ?????????????? ??? ?????? - 20px ?? (??? 12px ???) */
.page-header-title,
.groupware-hub__title,
h2.page-header-title,
h2.groupware-hub__title,
h4.page-header-title {
  font-size: 20px !important;
}

/* div ???? h2/h4??page-header-title ??? 20px ???? */
div h2.page-header-title,
div h4.page-header-title,
div h2.groupware-hub__title,
.groupware-hub__header .groupware-hub__title {
  font-size: 20px !important;
}

/* ??? ??? ??? ??????*/
/* div ? heading ??? fontSize ?? (12px ?? ??) */

/* ???? ??? ??? ??? ????*/
div[style*="padding"]:has(> h1),
div[style*="padding"]:has(> h2),
div[style*="padding"]:has(> h3),
div[style*="padding"]:has(> div > h1),
div[style*="padding"]:has(> div > h2),
div[style*="padding"]:has(> div > h3) {
  padding: 8px 12px !important;
}

/* ??? ??? ????? ??? ????*/
div[style*="background"][style*="white"][style*="padding"] {
  padding: 8px 12px !important;
  margin-bottom: 8px !important;
}

/* Card ??? ??? */
.ant-card-head-title h1,
.ant-card-head-title h2,
.ant-card-head-title h3,
.ant-card-head-title h4,
.ant-card-head-title .ant-typography {
  font-size: 12px !important;
  margin: 0 !important;
  line-height: 1.2 !important;
}

/* ??? ??? ??? ?????*/
/* ??? fontSize ??? p/div ??? ?? (12px ?? ??) */

/* ?????? ?? */
.ant-dropdown-menu {
  font-size: 12px !important;
  max-height: 300px !important;
  overflow-y: auto !important;
  z-index: 1050 !important;
  padding: 2px 0 !important;
}

.ant-dropdown-menu-item {
  font-size: 12px !important;
  padding: 2px 6px !important;
  margin: 0 !important;
  white-space: normal !important;
  word-break: break-word !important;
  overflow-wrap: break-word !important;
  max-width: 100% !important;
  line-height: 1.4 !important;
  min-height: auto !important;
}

.ant-dropdown-menu-item-divider {
  margin: 2px 0 !important;
}

/* Select ?????? ?? */
.ant-select-dropdown {
  font-size: 12px !important;
  max-height: 300px !important;
  overflow-y: auto !important;
  z-index: 1050 !important;
  padding: 2px 0 !important;
}

.ant-select-dropdown-menu {
  max-height: 300px !important;
  overflow-y: auto !important;
  padding: 2px 0 60px 0 !important;
  font-size: 12px !important;
  will-change: scroll-position !important;
}

/* Select ?????? ??????????????? ?????*/
.ant-select-dropdown .rc-virtual-list-holder {
  padding-bottom: 60px !important;
}

.ant-select-item {
  font-size: 12px !important;
  padding: 2px 6px !important;
  margin: 0 !important;
  white-space: normal !important;
  word-break: break-word !important;
  overflow-wrap: break-word !important;
  line-height: 1.4 !important;
  min-height: auto !important;
}

.ant-select-item-option {
  font-size: 12px !important;
}

.ant-select-item-option-content {
  font-size: 12px !important;
  white-space: normal !important;
  word-break: break-word !important;
  overflow-wrap: break-word !important;
  max-width: 100% !important;
  padding: 0 !important;
}

/* Select ?????? ???? ?? ?????*/
.ant-select-dropdown .ant-select-item-option span,
.ant-select-dropdown .ant-select-item-option div,
.ant-select-dropdown .ant-select-item-option p,
.ant-select-dropdown .ant-select-item-option label {
  font-size: 12px !important;
}

/* Select ?????? ???? ??????????? ?? ?????*/
.ant-select-dropdown .ant-select-item-option:not(.anticon) {
  font-size: 12px !important;
}

/* ?????? ?? ???? ??????????????? */
.ant-select-item-option {
  white-space: normal !important;
  word-break: break-word !important;
  padding: 2px 6px !important;
  margin: 0 !important;
  line-height: 1.4 !important;
  min-height: auto !important;
}

.ant-select-item-option-selected {
  white-space: normal !important;
  word-break: break-word !important;
  padding: 2px 6px !important;
  margin: 0 !important;
  line-height: 1.4 !important;
  min-height: auto !important;
}

/* Select ??? ?? */
.ant-select-item-group {
  padding: 2px 6px !important;
  font-size: 12px !important;
  line-height: 1.4 !important;
}

/* Select ??? ?? ??? ???? ???? */
.ant-select-item-group + .ant-select-item-option {
  padding-top: 2px !important;
}

/* ?????? ??? ?????? ????????? ???????? ??? ??? */
.ant-dropdown,
.ant-select-dropdown,
.ant-picker-dropdown {
  max-width: calc(100vw - 32px) !important;
}

.ant-dropdown-menu,
.ant-select-dropdown-menu,
.ant-picker-dropdown-menu {
  max-width: 100% !important;
}

/* AutoComplete ?????? */
.ant-select-dropdown.ant-select-dropdown-placement-bottomLeft,
.ant-select-dropdown.ant-select-dropdown-placement-bottomRight,
.ant-select-dropdown.ant-select-dropdown-placement-topLeft,
.ant-select-dropdown.ant-select-dropdown-placement-topRight {
  max-width: calc(100vw - 32px) !important;
}

/* ????? ??? */
.ant-popover {
  font-size: 12px !important;
}

.ant-popover-inner-content {
  font-size: 12px !important;
  padding: 4px 8px !important;
}

.ant-tooltip-inner {
  font-size: 12px !important;
  padding: 4px 8px !important;
}

/* ?????????*/
.ant-pagination {
  font-size: 12px !important;
}

.ant-pagination-item {
  font-size: 12px !important;
  min-width: 24px !important;
  height: 24px !important;
  line-height: 22px !important;
}

.ant-pagination-prev,
.ant-pagination-next {
  font-size: 12px !important;
  min-width: 24px !important;
  height: 24px !important;
  line-height: 22px !important;
}

/* ??? */
.ant-statistic-title {
  font-size: 12px !important;
}

.ant-statistic-content {
  font-size: 12px !important;
}

/* ??? */
.ant-badge {
  font-size: 12px !important;
}

.ant-badge-count {
  font-size: 12px !important;
  min-width: 16px !important;
  height: 16px !important;
  line-height: 14px !important;
  padding: 0 4px !important;
}

/* ???? */
.ant-spin-text {
  font-size: 12px !important;
}

/* ?????*/
.ant-drawer-header {
  padding: 8px 12px !important;
}

.ant-drawer-title {
  font-size: 12px !important;
}

.ant-drawer-body {
  padding: 8px !important;
  font-size: 12px !important;
}

/* Summary cell ?? ??? */
.summary-no-fixed .ant-table-cell {
  position: relative !important;
  left: auto !important;
}

/* Expanded row ?? ??? ???? ??? */
.ant-table-expanded-row-fixed {
  position: relative !important;
  left: auto !important;
  width: 100% !important;
}

/* ???????????? ??? ??? */
.approval-table-header .ant-table-thead > tr > th {
  padding: 16px 16px !important;
  height: auto !important;
  min-height: 50px !important;
  vertical-align: middle !important;
  line-height: 1.5 !important;
}

.approval-table-header .ant-table-tbody > tr > td {
  vertical-align: middle !important;
}

/* ??? ????????- ????? ??????*/
.equipment-table-bordered .ant-table {
  border: 1px solid #595959 !important;
}

.equipment-table-bordered .ant-table-thead > tr > th {
  border: 1px solid #595959 !important;
  background: #fafafa !important;
  font-weight: 600 !important;
  text-align: center !important;
}

.equipment-table-bordered .ant-table-tbody > tr > td {
  border: 1px solid #d9d9d9 !important;
  padding: 8px !important;
}

.equipment-table-bordered .ant-table-tbody > tr:hover > td {
  background: #f5f5f5 !important;
}

/* ??????????????????? ??????*/
.equipment-table-bordered .ant-table-tbody > tr > td[style*="borderRight"] {
  border-right: 1px solid #595959 !important;
}

/* ??? ????????????? ??? ?? - Flexbox????? ?? */
.equipment-table-bordered {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 !important;
  min-height: 0 !important;
  height: 100% !important;
}

.equipment-table-bordered .ant-table-wrapper {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 !important;
  min-height: 0 !important;
  height: 100% !important;
}

.equipment-table-bordered .ant-spin-nested-loading {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 !important;
  min-height: 0 !important;
  height: 100% !important;
}

.equipment-table-bordered .ant-spin-container {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 !important;
  min-height: 0 !important;
  height: 100% !important;
}

.equipment-table-bordered .ant-table-container {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 !important;
  min-height: 0 !important;
  overflow: hidden !important;
}

.equipment-table-bordered .ant-table-body {
  flex: 1 !important;
  overflow-y: auto !important;
  min-height: 0 !important;
}

/* ??? ??????????????*/

/* ????????- ?? ??????*/
@media (max-width: 768px) {
  /* ??? ?????12px ???? */
  body {
    font-size: 12px !important;
  }

  /* ??????????????*/
  .ant-table-wrapper {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  /* ?? ????*/
  .ant-modal {
    max-width: calc(100vw - 16px) !important;
    margin: 8px !important;
  }

  .ant-modal-content {
    max-height: calc(100vh - 16px);
    overflow-y: auto;
  }

  /* ???????? ????*/
  .ant-form-item {
    margin-bottom: 8px !important;
  }

  /* ?? ??? ????(??? ????? ??????? ?????? 12px) */
  .ant-btn {
    min-height: 32px;
    font-size: 12px !important;
    padding: 4px 12px !important;
  }

  /* ??? ??? ????(??? ????? ??????? ?????? 12px) */
  .ant-input,
  .ant-input-number,
  .ant-select-selector {
    min-height: 32px;
    font-size: 12px !important;
    padding: 4px 8px !important;
    line-height: 32px !important;
    display: flex !important;
    align-items: center !important;
  }

  .ant-input-affix-wrapper {
    display: flex !important;
    align-items: center !important;
  }

  .ant-input-affix-wrapper .ant-input {
    line-height: 28px !important;
    height: 28px !important;
  }

  .ant-input:not(textarea) {
    line-height: 28px !important;
  }

  /* ?? ??? ?? */
  .ant-card-body {
    padding: 8px !important;
  }

  /* ??????*/
  .ant-tabs-tab {
    padding: 4px 8px !important;
    font-size: 12px !important;
    min-height: 28px !important;
  }

  /* ?????? ?? ?? */
  .ant-space {
    gap: 4px !important;
  }
}

/* ???? ????(576px ???) */
@media (max-width: 576px) {
  body {
    font-size: 12px !important;
  }

  /* ?? ??? ??????*/
  .ant-card-body {
    padding: 6px !important;
  }

  /* ?? ??? ???? */
  .ant-btn {
    min-height: 32px;
    padding: 4px 10px !important;
    font-size: 12px !important;
  }

  /* ??????? */
  .ant-tabs-tab {
    padding: 4px 6px !important;
    font-size: 12px !important;
    min-height: 28px !important;
  }
}

/* ??? ?????? ????*/
@media (hover: none) and (pointer: coarse) {
  /* ??? ??? ???? (?????? 12px ????) */
  .ant-btn,
  .ant-menu-item,
  .ant-menu-submenu-title,
  button,
  a {
    min-height: 36px;
    min-width: 36px;
    font-size: 12px !important;
  }

  /* ??? ??? ??? (??? ??????????????? */
  .ant-btn:hover,
  .ant-menu-item:hover {
    /* ?? ??? ??? ???????, ??? ??????? */
  }
}

/* ?????/???? ??????????????????????? - ????????????? */
.ant-table-tbody > tr.shipping-selected-row > td {
  background-color: #d4f4dd !important;
}

.ant-table-tbody > tr.shipping-selected-row:hover > td {
  background-color: #c3f0cd !important;
}

/* ??? ??? ??- ?????????? ?? (????? ?????/???? ?? ?? */
.top-action-bar-sticky {
  position: sticky;
  top: 0;
  z-index: 100;
}

/* ??? ??????????????????????? - ?? ???? ??? (???) */
.ant-table-tbody > tr.ant-table-row-selected > td {
  background-color: #d4f4dd !important;
}

.ant-table-tbody > tr.ant-table-row-selected:hover > td {
  background-color: #c3f0cd !important;
}

/* ????????? ?? - ???????? ???? */
.ant-modal .ant-table-tbody > tr.selected-item-row {
  background-color: #e6f7ff !important;
}

.ant-modal .ant-table-tbody > tr.selected-item-row:hover {
  background-color: #d1efff !important;
}

.ant-modal .ant-table-tbody > tr.selected-item-row > td {
  background-color: #e6f7ff !important;
  font-weight: 500;
}

.ant-modal .ant-table-tbody > tr.selected-item-row:hover > td {
  background-color: #d1efff !important;
}

/* ?????????? ??????- ??? ??? */
* ::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

*::-webkit-scrollbar-track {
  background: rgba(0, 0, 0, 0.05);
  border-radius: 10px;
}

*::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, #667eea 0%, #764ba2 100%);
  border-radius: 10px;
  border: 2px solid transparent;
  background-clip: padding-box;
  transition: all 0.3s ease;
}

*::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, #5568d3 0%, #65408a 100%);
  background-clip: padding-box;
  box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
}

*::-webkit-scrollbar-thumb:active {
  background: linear-gradient(180deg, #4556c1 0%, #553a78 100%);
  background-clip: padding-box;
}

/* Firefox??????? ??????*/
* {
  scrollbar-width: thin;
  scrollbar-color: #667eea rgba(0, 0, 0, 0.05);
}

/* ?????????? ????????(??? ??) - ?? ???? ?? */
tr.table-row-selected-highlight td {
  background: #1890ff !important;
  color: #fff !important;
}
.sd-list-impl-sched-text {
  color: #666;
}
tr.table-row-selected-highlight td .sd-list-impl-sched-text {
  color: #fff !important;
}
tr.table-row-selected-highlight td .ant-tag {
  background: rgba(255,255,255,0.25);
  color: #fff;
  border-color: rgba(255,255,255,0.5);
}
tr.table-row-selected-highlight td .ant-btn-text {
  color: rgba(255,255,255,0.9);
}
tr.table-row-selected-highlight td .ant-btn-text:hover {
  color: #fff;
}
tr.table-row-selected-highlight td .ant-btn-dangerous.ant-btn-text {
  color: #ffccc7;
}

/* 근태현황 페이지 헤더 - 20px 강제 (최종 우선순위) */
.attendance-status-page h4.page-header-title,
.attendance-status-page h4.ant-typography.page-header-title {
  font-size: 20px !important;
}

/* 페이지 헤더 20px - 전역 h2/h4 12px 덮어쓰기 */
.attendance-status-page .page-header-title,
.attendance-status-page h4.page-header-title,
.attendance-status-page h4.ant-typography.page-header-title {
  font-size: 20px !important;
}
.certifications-page .page-header-title,
.certifications-page h2.page-header-title,
.certifications-page h2.ant-typography.page-header-title {
  font-size: 20px !important;
}
.contracts-page .page-header-title,
.contracts-page h2.page-header-title,
.contracts-page h2.ant-typography.page-header-title {
  font-size: 20px !important;
}

/* 공정관리기록표 페이지 헤더 - h3 전역 12px 덮어쓰기 */
.process-control-records-page .page-header-title,
.process-control-records-page h3.page-header-title,
.process-control-records-page h3.ant-typography.page-header-title {
  font-size: 20px !important;
}

/* 추적 페이지 헤더 - h1 전역 12px 덮어쓰기 */
.analysis-page .page-header-title,
.analysis-page h1.page-header-title,
.analysis-page h1.ant-typography.page-header-title {
  font-size: 20px !important;
}

/* 공정관리기록표 페이지 헤더 - h3 전역 12px 덮어쓰기 */
.process-control-records-page .page-header-title,
.process-control-records-page h3.page-header-title,
.process-control-records-page h3.ant-typography.page-header-title {
  font-size: 20px !important;
}

/* 통계 메뉴 페이지 헤더 - h2/h3/h4 전역 12px 덮어쓰기 */
.statistics-dashboard-page .page-header-title,
.statistics-dashboard-page h3.page-header-title,
.statistics-dashboard-page h3.ant-typography.page-header-title,
.production-sales-dashboard-page .page-header-title,
.production-sales-dashboard-page h3.page-header-title,
.production-sales-dashboard-page h3.ant-typography.page-header-title,
.crusher-dashboard-page .page-header-title,
.crusher-dashboard-page h3.page-header-title,
.crusher-dashboard-page h3.ant-typography.page-header-title,
.statistics-sales-by-region-page .page-header-title,
.statistics-sales-by-region-page h2.page-header-title,
.statistics-sales-by-region-page h2.ant-typography.page-header-title,
.statistics-sales-by-item-page .page-header-title,
.statistics-sales-by-item-page h2.page-header-title,
.statistics-sales-by-item-page h2.ant-typography.page-header-title,
.raw-material-inventory-stats-page .page-header-title,
.raw-material-inventory-stats-page h4.page-header-title,
.raw-material-inventory-stats-page h4.ant-typography.page-header-title {
  font-size: 20px !important;
}
/* 모든 Modal 헤더에 드래그 커서 추가 (데스크톱만) */
@media (min-width: 768px) {
	.ant-modal-header {
		cursor: move !important;
	}
	
	.ant-modal-header:hover {
		background-color: rgba(0, 0, 0, 0.02);
	}
}

/* 모달 내부 Tab 헤더와 불필요한 요소 Tab 네비게이션 제외 */
.ant-modal .ant-tabs-tab {
	outline: none !important;
}

.ant-modal .ant-tabs-tab:focus {
	outline: none !important;
}

.ant-modal .ant-tabs-nav {
	pointer-events: auto !important;
}

/* 모달 내부 경고/알림 메시지 Tab 네비게이션 제외 */
.ant-modal .ant-alert {
	pointer-events: none !important;
}

.ant-modal .ant-alert * {
	pointer-events: none !important;
}

/* 확장 상세 패널: 목록과 확실히 구분되도록 강한 배경/보더 적용 */
.expanded-panel {
	background: #f0f5ff; /* 연한 파란색 */
	padding: 12px;
	border: 1px solid #d6e4ff;
	border-left: 4px solid #91caff;
	border-radius: 6px;
	box-shadow: 0 1px 0 rgba(0,0,0,0.02), 0 2px 8px rgba(0,0,0,0.04);
}

/* 타 담당자 품목 행 강조 */
.other-manager-row {
	background-color: #fff7e6 !important;
}

.other-manager-row:hover {
	background-color: #ffe7ba !important;
}

.shipping-requests-item-table .other-manager-row .ant-table-cell,
.shipping-requests-item-table .other-manager-row .ant-table-cell-fix-left,
.shipping-requests-item-table .other-manager-row .ant-table-cell-fix-left-first,
.shipping-requests-item-table .other-manager-row .ant-table-cell-fix-right,
.shipping-requests-item-table .other-manager-row .ant-table-cell-fix-right-last {
	background-color: #fff7e6 !important;
}

/* 사이드바 스크롤바 스타일 개선 */
.custom-sidebar::-webkit-scrollbar {
	width: 6px;
}

.custom-sidebar::-webkit-scrollbar-track {
	background: rgba(0, 0, 0, 0.1);
	border-radius: 3px;
}

.custom-sidebar::-webkit-scrollbar-thumb {
	background: rgba(255, 255, 255, 0.2);
	border-radius: 3px;
	transition: background 0.2s;
}

.custom-sidebar::-webkit-scrollbar-thumb:hover {
	background: rgba(255, 255, 255, 0.3);
}

/* Firefox용 스크롤바 스타일 */
.custom-sidebar {
	scrollbar-width: thin;
	scrollbar-color: rgba(255, 255, 255, 0.2) rgba(0, 0, 0, 0.1);
}

/* 메뉴 검색 입력창 스타일 개선 - 모든 가능한 상태와 변형 포함 */
.custom-sidebar .menu-search-input .ant-input-affix-wrapper,
.custom-sidebar .menu-search-input .ant-input-affix-wrapper-outlined,
.custom-sidebar .menu-search-input .ant-input-affix-wrapper-status-normal,
.custom-sidebar .menu-search-input .ant-input-affix-wrapper-status-error,
.custom-sidebar .menu-search-input .ant-input-affix-wrapper-status-warning,
.custom-sidebar .menu-search-input .ant-input-affix-wrapper-status-success,
.custom-sidebar .menu-search-input .ant-input-affix-wrapper:hover,
.custom-sidebar .menu-search-input .ant-input-affix-wrapper:focus,
.custom-sidebar .menu-search-input .ant-input-affix-wrapper-focused,
.custom-sidebar .menu-search-input .ant-input-affix-wrapper.ant-input-affix-wrapper-focused,
.custom-sidebar .menu-search-input .ant-input-affix-wrapper.ant-input-affix-wrapper-outlined:hover,
.custom-sidebar .menu-search-input .ant-input-affix-wrapper.ant-input-affix-wrapper-outlined.ant-input-affix-wrapper-focused {
	background: rgba(255, 255, 255, 0.1) !important;
	background-color: rgba(255, 255, 255, 0.1) !important;
	border: 1px solid rgba(255, 255, 255, 0.2) !important;
	border-radius: 6px !important;
}

/* Ant Design의 기본 배경색 완전히 제거 */
.custom-sidebar .menu-search-input .ant-input-affix-wrapper[style*="background"],
.custom-sidebar .menu-search-input .ant-input-affix-wrapper[style*="background-color"] {
	background: rgba(255, 255, 255, 0.1) !important;
	background-color: rgba(255, 255, 255, 0.1) !important;
}

.custom-sidebar .menu-search-input .ant-input,
.custom-sidebar .menu-search-input .ant-input-outlined,
.custom-sidebar .menu-search-input input,
.custom-sidebar .menu-search-input input[type="text"],
.custom-sidebar .menu-search-input .ant-input-input,
.custom-sidebar .menu-search-input .ant-input-affix-wrapper input {
	background: transparent !important;
	background-color: transparent !important;
	border: none !important;
	border-radius: 6px !important;
	color: #ffffff !important;
	transition: all 0.2s !important;
}

/* Ant Design Input 내부 요소들 */
.menu-search-input .ant-input-affix-wrapper {
	background: rgba(255, 255, 255, 0.1) !important;
	background-color: rgba(255, 255, 255, 0.1) !important;
}

.menu-search-input .ant-input-affix-wrapper .ant-input {
	background: transparent !important;
	background-color: transparent !important;
	color: #ffffff !important;
}

/* 입력된 텍스트 색상 강제 적용 */
.menu-search-input .ant-input-input input,
.menu-search-input input[type="text"],
.menu-search-input .ant-input-affix-wrapper input {
	color: #ffffff !important;
}

.menu-search-input .ant-input::placeholder,
.menu-search-input input::placeholder,
.menu-search-input input[type="text"]::placeholder {
	color: rgba(255, 255, 255, 0.45) !important;
}

.custom-sidebar .menu-search-input .ant-input-affix-wrapper:hover,
.menu-search-input .ant-input-affix-wrapper:hover {
	background: rgba(255, 255, 255, 0.15) !important;
	background-color: rgba(255, 255, 255, 0.15) !important;
	border-color: rgba(255, 255, 255, 0.3) !important;
}

.custom-sidebar .menu-search-input .ant-input-affix-wrapper:hover .ant-input,
.menu-search-input .ant-input-affix-wrapper:hover .ant-input {
	background: transparent !important;
	background-color: transparent !important;
}

.custom-sidebar .menu-search-input .ant-input-affix-wrapper-focused,
.custom-sidebar .menu-search-input .ant-input-affix-wrapper.ant-input-affix-wrapper-focused,
.menu-search-input .ant-input-affix-wrapper-focused {
	background: rgba(255, 255, 255, 0.15) !important;
	background-color: rgba(255, 255, 255, 0.15) !important;
	border-color: rgba(255, 255, 255, 0.4) !important;
	box-shadow: none !important;
}

.custom-sidebar .menu-search-input .ant-input-affix-wrapper-focused .ant-input,
.custom-sidebar .menu-search-input .ant-input-affix-wrapper.ant-input-affix-wrapper-focused .ant-input,
.menu-search-input .ant-input-affix-wrapper-focused .ant-input,
.menu-search-input input:focus,
.menu-search-input .ant-input-input input:focus,
.menu-search-input .ant-input-affix-wrapper input:focus {
	background: transparent !important;
	background-color: transparent !important;
	color: #ffffff !important;
}

.menu-search-input .ant-input-group-addon {
	background: transparent !important;
	border: none !important;
}

.menu-search-input .ant-input-search-button {
	background: rgba(255, 255, 255, 0.1) !important;
	border: 1px solid rgba(255, 255, 255, 0.2) !important;
	border-left: none !important;
	color: rgba(255, 255, 255, 0.65) !important;
}

.menu-search-input .ant-input-search-button:hover {
	background: rgba(255, 255, 255, 0.15) !important;
	border-color: rgba(255, 255, 255, 0.3) !important;
	color: rgba(255, 255, 255, 0.85) !important;
}

/* 미지급금 요약 테이블 행 스타일 */
.unpaid-summary-row-even {
	background-color: #fafafa;
}

.unpaid-summary-row-even:hover {
	background-color: #f0f0f0 !important;
}

.unpaid-summary-row-odd {
	background-color: #ffffff;
}

.unpaid-summary-row-odd:hover {
	background-color: #f5f5f5 !important;
}

/* 작업일보 하이라이트 행 스타일 (녹색) */
.highlighted-row {
	background-color: #d4f4dd !important;
	border-left: 3px solid #52c41a !important;
}

.highlighted-row:hover {
	background-color: #c3f0cd !important;
}

.highlighted-row .ant-table-cell {
	background-color: #d4f4dd !important;
}

/* 선택된 행 스타일 (녹색) */
.selected-row {
	background-color: #d4f4dd !important;
	border-left: 3px solid #52c41a !important;
}

.selected-row:hover {
	background-color: #c3f0cd !important;
}

.selected-row .ant-table-cell {
	background-color: #d4f4dd !important;
}

/* 문서관리 폴더 트리 - 상위/하위 구분 강화 (showLine, indent, blockNode와 함께 사용) */
.documents-folder-tree .ant-tree-treenode {
	border-radius: 4px;
}

.documents-folder-tree .ant-tree-node-content-wrapper {
	width: 100%;
	min-width: 0;
}

.documents-folder-tree .ant-tree-node-content-wrapper:hover {
	background: #f0f7ff !important;
	border-radius: 4px;
}

/* 폴더/문서 이름이 좁은 영역에서 세로로 표시되는 현상 방지 */
.documents-folder-tree .ant-tree-title {
	display: flex !important;
	align-items: center;
	min-width: 0;
	flex: 1;
	overflow: hidden;
}

.documents-folder-tree .ant-tree-title * {
	writing-mode: horizontal-tb !important;
}

/* 수주 확장 영역 트리 - 데이터 영역 가독성 강화 */
.sales-order-expanded-tree .ant-tree-treenode {
	border-radius: 4px;
}

.sales-order-expanded-tree .ant-tree-node-content-wrapper:hover {
	background: #f0f7ff !important;
	border-radius: 4px;
}

.sales-order-expanded-tree .ant-tree-indent-unit {
	width: 20px;
}

.sales-order-expanded-tree .ant-tree-title {
	width: 100%;
}

/* 품목별 소요 원자재 트리 (상세 라인 내부) */
.sales-line-materials-tree .ant-tree-treenode {
	border-radius: 4px;
}

.sales-line-materials-tree .ant-tree-node-content-wrapper:hover {
	background: #e6f7ff !important;
	border-radius: 4px;
}

.sales-line-materials-tree .ant-tree-indent-unit {
	width: 16px;
}

/* 수주 메인 트리 (목록 → 확장 영역) */
.sales-order-main-tree .ant-tree-treenode {
	border-bottom: 1px solid #f0f0f0;
}
.sales-order-main-tree .ant-tree-node-content-wrapper {
	width: 100%;
}
.sales-order-main-tree .ant-tree-node-content-wrapper:hover {
	background: #f5f5f5 !important;
}
.sales-order-main-tree .ant-tree-node-selected .ant-tree-node-content-wrapper {
	background: #e6f7ff !important;
}
.sales-order-main-tree .ant-tree-indent-unit {
	width: 20px;
}
.sales-order-main-tree .ant-tree-title {
	flex: 1;
	min-width: 0;
	overflow: hidden;
}
.sales-order-tree-row {
	min-width: 900px;
}
/* 헤더와 데이터 그리드 열 정렬용 (44px = indent 20px + switcher 24px) */
.sales-order-tree-header {
	padding-left: 44px !important;
}
/* 열 너비 조정 핸들 */
.sales-order-tree-resize-handle:hover {
	background: rgba(24, 144, 255, 0.2);
}
.sales-order-tree-resize-handle:active {
	background: rgba(24, 144, 255, 0.3);
}/* stylelint-disable */
html,
body {
  width: 100%;
  height: 100%;
}
input::-ms-clear,
input::-ms-reveal {
  display: none;
}
*,
*::before,
*::after {
  box-sizing: border-box;
}
html {
  font-family: sans-serif;
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  -ms-overflow-style: scrollbar;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
@-ms-viewport {
  width: device-width;
}
body {
  margin: 0;
}
[tabindex='-1']:focus {
  outline: none;
}
hr {
  box-sizing: content-box;
  height: 0;
  overflow: visible;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  margin-top: 0;
  margin-bottom: 0.5em;
  font-weight: 500;
}
p {
  margin-top: 0;
  margin-bottom: 1em;
}
abbr[title],
abbr[data-original-title] {
  -webkit-text-decoration: underline dotted;
  text-decoration: underline dotted;
  border-bottom: 0;
  cursor: help;
}
address {
  margin-bottom: 1em;
  font-style: normal;
  line-height: inherit;
}
input[type='text'],
input[type='password'],
input[type='number'],
textarea {
  -webkit-appearance: none;
}
ol,
ul,
dl {
  margin-top: 0;
  margin-bottom: 1em;
}
ol ol,
ul ul,
ol ul,
ul ol {
  margin-bottom: 0;
}
dt {
  font-weight: 500;
}
dd {
  margin-bottom: 0.5em;
  margin-left: 0;
}
blockquote {
  margin: 0 0 1em;
}
dfn {
  font-style: italic;
}
b,
strong {
  font-weight: bolder;
}
small {
  font-size: 80%;
}
sub,
sup {
  position: relative;
  font-size: 75%;
  line-height: 0;
  vertical-align: baseline;
}
sub {
  bottom: -0.25em;
}
sup {
  top: -0.5em;
}
pre,
code,
kbd,
samp {
  font-size: 1em;
  font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace;
}
pre {
  margin-top: 0;
  margin-bottom: 1em;
  overflow: auto;
}
figure {
  margin: 0 0 1em;
}
img {
  vertical-align: middle;
  border-style: none;
}
a,
area,
button,
[role='button'],
input:not([type='range']),
label,
select,
summary,
textarea {
  touch-action: manipulation;
}
table {
  border-collapse: collapse;
}
caption {
  padding-top: 0.75em;
  padding-bottom: 0.3em;
  text-align: left;
  caption-side: bottom;
}
input,
button,
select,
optgroup,
textarea {
  margin: 0;
  color: inherit;
  font-size: inherit;
  font-family: inherit;
  line-height: inherit;
}
button,
input {
  overflow: visible;
}
button,
select {
  text-transform: none;
}
button,
html [type='button'],
[type='reset'],
[type='submit'] {
  -webkit-appearance: button;
}
button::-moz-focus-inner,
[type='button']::-moz-focus-inner,
[type='reset']::-moz-focus-inner,
[type='submit']::-moz-focus-inner {
  padding: 0;
  border-style: none;
}
input[type='radio'],
input[type='checkbox'] {
  box-sizing: border-box;
  padding: 0;
}
input[type='date'],
input[type='time'],
input[type='datetime-local'],
input[type='month'] {
  -webkit-appearance: listbox;
}
textarea {
  overflow: auto;
  resize: vertical;
}
fieldset {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}
legend {
  display: block;
  width: 100%;
  max-width: 100%;
  margin-bottom: 0.5em;
  padding: 0;
  color: inherit;
  font-size: 1.5em;
  line-height: inherit;
  white-space: normal;
}
progress {
  vertical-align: baseline;
}
[type='number']::-webkit-inner-spin-button,
[type='number']::-webkit-outer-spin-button {
  height: auto;
}
[type='search'] {
  outline-offset: -2px;
  -webkit-appearance: none;
}
[type='search']::-webkit-search-cancel-button,
[type='search']::-webkit-search-decoration {
  -webkit-appearance: none;
}
::-webkit-file-upload-button {
  font: inherit;
  -webkit-appearance: button;
}
output {
  display: inline-block;
}
summary {
  display: list-item;
}
template {
  display: none;
}
[hidden] {
  display: none !important;
}
mark {
  padding: 0.2em;
  background-color: #feffe6;
}
.react-resizable {
  position: relative;
}
.react-resizable-handle {
  position: absolute;
  width: 20px;
  height: 20px;
  background-repeat: no-repeat;
  background-origin: content-box;
  box-sizing: border-box;
  background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+');
  background-position: bottom right;
  padding: 0 3px 3px 0;
}
.react-resizable-handle-sw {
  bottom: 0;
  left: 0;
  cursor: sw-resize;
  transform: rotate(90deg);
}
.react-resizable-handle-se {
  bottom: 0;
  right: 0;
  cursor: se-resize;
}
.react-resizable-handle-nw {
  top: 0;
  left: 0;
  cursor: nw-resize;
  transform: rotate(180deg);
}
.react-resizable-handle-ne {
  top: 0;
  right: 0;
  cursor: ne-resize;
  transform: rotate(270deg);
}
.react-resizable-handle-w,
.react-resizable-handle-e {
  top: 50%;
  margin-top: -10px;
  cursor: ew-resize;
}
.react-resizable-handle-w {
  left: 0;
  transform: rotate(135deg);
}
.react-resizable-handle-e {
  right: 0;
  transform: rotate(315deg);
}
.react-resizable-handle-n,
.react-resizable-handle-s {
  left: 50%;
  margin-left: -10px;
  cursor: ns-resize;
}
.react-resizable-handle-n {
  top: 0;
  transform: rotate(225deg);
}
.react-resizable-handle-s {
  bottom: 0;
  transform: rotate(45deg);
}/* ============================================================
   대시보드 — 영업일지 분석 스타일 통일 버전
   기준: SalesDiaryStatisticsPage.css
   ============================================================ */

/* index.css 전역 12px 오버라이드 대응 — 대시보드 인라인 폰트 크기 복원 */
.dashboard-container [style*="font-size: 11px"],
.dashboard-container [style*="fontSize: 11"] { font-size: 11px !important; }
.dashboard-container [style*="font-size: 12px"],
.dashboard-container [style*="fontSize: 12"] { font-size: 12px !important; }
.dashboard-container [style*="font-size: 13px"],
.dashboard-container [style*="fontSize: 13"] { font-size: 13px !important; }
.dashboard-container [style*="font-size: 14px"],
.dashboard-container [style*="fontSize: 14"] { font-size: 14px !important; }
.dashboard-container [style*="font-size: 15px"],
.dashboard-container [style*="fontSize: 15"] { font-size: 15px !important; }
.dashboard-container [style*="font-size: 16px"],
.dashboard-container [style*="fontSize: 16"] { font-size: 16px !important; }
.dashboard-container [style*="font-size: 17px"],
.dashboard-container [style*="fontSize: 17"] { font-size: 17px !important; }
.dashboard-container [style*="font-size: 18px"],
.dashboard-container [style*="fontSize: 18"] { font-size: 18px !important; }
.dashboard-container [style*="font-size: 19px"],
.dashboard-container [style*="fontSize: 19"] { font-size: 19px !important; }
.dashboard-container [style*="font-size: 20px"],
.dashboard-container [style*="fontSize: 20"] { font-size: 20px !important; }
.dashboard-container [style*="font-size: 24px"],
.dashboard-container [style*="fontSize: 24"] { font-size: 24px !important; }
.dashboard-container [style*="font-size: 26px"],
.dashboard-container [style*="fontSize: 26"] { font-size: 26px !important; }
.dashboard-container [style*="font-size: 28px"],
.dashboard-container [style*="fontSize: 28"] { font-size: 28px !important; }

/* 게시글 상세 모달 폰트 복원 */
.board-detail-modal [style*="font-size: 12px"],
.board-detail-modal [style*="fontSize: 12"] { font-size: 12px !important; }
.board-detail-modal [style*="font-size: 13px"],
.board-detail-modal [style*="fontSize: 13"] { font-size: 13px !important; }
.board-detail-modal [style*="font-size: 14px"],
.board-detail-modal [style*="fontSize: 14"] { font-size: 14px !important; }
.board-detail-modal [style*="font-size: 15px"],
.board-detail-modal [style*="fontSize: 15"] { font-size: 15px !important; }
.board-detail-modal [style*="font-size: 17px"],
.board-detail-modal [style*="fontSize: 17"] { font-size: 17px !important; }
.board-detail-modal [style*="font-size: 26px"],
.board-detail-modal [style*="fontSize: 26"] { font-size: 26px !important; }

/* ============================================================
   1. 컨테이너 & 페이지 배경 — 영업일지 분석 스타일
   ============================================================ */
.dashboard-container {
  position: relative;
  z-index: 1;
  overflow-x: hidden;
  overflow-y: hidden;
  height: 100%;
  display: flex;
  flex-direction: column;
  /* 🎨 영업일지 분석과 동일한 그라디언트 배경 */
  background: linear-gradient(180deg, #f1f5f9 0%, #f8fafc 32%, #ffffff 100%) !important;
}

.dashboard-container > * {
  position: relative;
  z-index: 1;
}

/* ============================================================
   2. 카드 공통 스타일 — 영업일지 분석 sd-chart-card 기준
   ============================================================ */
.dashboard-container .ant-card {
  border-radius: 12px !important;
  border: 1px solid #e2e8f0 !important;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.05) !important;
  background: #ffffff !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

.dashboard-container .ant-card:hover {
  border-color: #cbd5e1 !important;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.06) !important;
}

.dashboard-container .ant-card-head {
  border-bottom-color: #f1f5f9 !important;
}

.dashboard-container .ant-card-head-title {
  font-size: 15px !important;
  font-weight: 600 !important;
  color: #1e293b !important;
}

/* 헤더 카드 — 약간 더 강조 */
.dashboard-header-weather-card.ant-card {
  border-radius: 16px !important;
  border: 1px solid #e2e8f0 !important;
  box-shadow:
    0 4px 6px -1px rgba(30, 64, 175, 0.08),
    0 8px 20px -4px rgba(37, 99, 235, 0.10) !important;
  background: #ffffff !important;
}

/* ============================================================
   3. 모바일 반응형
   ============================================================ */
@media (max-width: 991px) {
  .dashboard-container {
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch;
    padding: 16px !important;
    padding-top: 12px !important;
    padding-bottom: 24px !important;
    min-height: auto !important;
    height: auto !important;
  }
  .dashboard-container .ant-row { flex: none !important; min-height: auto !important; overflow: visible !important; }
  .dashboard-container .ant-col { overflow: visible !important; min-height: auto !important; }
  .dashboard-container .ant-space { flex: none !important; min-height: auto !important; }
}

@media (max-width: 767px) {
  .dashboard-header-row .dashboard-header-divider { display: none !important; }
  .dashboard-header-weather {
    flex-basis: 100% !important;
    width: 100% !important;
    padding-top: 12px !important;
    margin-top: 4px !important;
    border-top: 1px solid #e2e8f0;
    justify-content: flex-start;
  }
}

/* ============================================================
   4. 스크롤바 — 깔끔하게
   ============================================================ */
.dashboard-container::-webkit-scrollbar { width: 5px; }
.dashboard-container::-webkit-scrollbar-track { background: transparent; }
.dashboard-container::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 3px; }
.dashboard-container::-webkit-scrollbar-thumb:hover { background: #94a3b8; }
.dashboard-container { scrollbar-width: thin; scrollbar-color: #cbd5e1 transparent; }

/* ============================================================
   5. 간트차트 — 기능 유지, 시각 정리
   ============================================================ */
.dashboard-gantt-wrapper { position: relative; }

.dashboard-gantt-legend {
  display: flex;
  gap: 16px;
  margin-bottom: 10px;
  padding: 6px 0;
  flex-wrap: wrap;
}

.dashboard-gantt-legend span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: #64748b;
}

.dashboard-gantt-legend i {
  display: inline-block;
  width: 12px;
  height: 12px;
  border-radius: 3px;
  flex-shrink: 0;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}

.dashboard-gantt-legend em {
  font-style: normal;
  font-weight: 500;
}

.dashboard-gantt-thead {
  background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%) !important;
}

.dashboard-gantt-thead th { font-weight: 600 !important; }

.dashboard-gantt-now-line {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 2px;
  background: #dc2626;
  z-index: 2;
  pointer-events: none;
  border-radius: 1px;
  box-shadow: 0 0 6px rgba(220, 38, 38, 0.4);
}

.dashboard-gantt-now-label {
  position: absolute;
  left: 50%;
  bottom: -22px;
  transform: translateX(-50%);
  font-size: 10px;
  font-weight: 700;
  color: #dc2626;
  background: rgba(255, 255, 255, 0.96);
  padding: 2px 6px;
  border-radius: 4px;
  box-shadow: 0 1px 3px rgba(220, 38, 38, 0.2);
  white-space: nowrap;
  z-index: 3;
}

.gantt-bar {
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.gantt-bar:hover {
  transform: translateY(-1px);
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15) !important;
}

.dashboard-gantt-expected-label {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  margin-left: 6px;
  font-size: 11px;
  font-weight: 600;
  color: #2563eb;
  white-space: nowrap;
  pointer-events: none;
}

/* ============================================================
   6. 최근 게시글 리스트
   ============================================================ */
.dashboard-recent-boards-list .ant-list-item {
  border-block-end: none !important;
}

.dashboard-recent-board-item {
  border-radius: 6px;
  margin-bottom: 2px;
  transition: background 0.18s ease;
}

.dashboard-recent-board-item:last-child { border-bottom: none !important; }

.dashboard-recent-board-item:hover {
  background: rgba(37, 99, 235, 0.06) !important;
}

.dashboard-recent-board-item.unread:hover {
  background: rgba(37, 99, 235, 0.10) !important;
}

.dashboard-recent-board-item:hover .dashboard-recent-arrow {
  color: #2563eb !important;
}

/* ============================================================
   7. 바로가기 카테고리 버튼 — 영업일지 팔레트 기반
   ============================================================ */
.dashboard-shortcut-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
}

.dashboard-shortcut-btn {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 16px;
  min-width: 120px;
  border-radius: 10px;
  border: 1.5px solid #e2e8f0;
  cursor: pointer;
  transition: all 0.22s cubic-bezier(0.4, 0, 0.2, 1);
  background: #ffffff;
}

.dashboard-shortcut-btn:hover {
  transform: translateY(-2px);
  border-color: #cbd5e1;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.08);
}

.dashboard-shortcut-btn.selected {
  border-width: 2px;
}

.dashboard-shortcut-btn.selected:hover {
  box-shadow: 0 5px 16px rgba(37, 99, 235, 0.2);
}

.dashboard-shortcut-icon {
  font-size: 20px;
  display: flex;
  align-items: center;
}

.dashboard-shortcut-label {
  font-size: 14px;
  white-space: nowrap;
}

/* ============================================================
   8. 바로가기 하위 메뉴 모달 아이템
   ============================================================ */
.dashboard-menu-modal-item {
  cursor: pointer;
  text-align: center;
  padding: 18px 14px;
  border-radius: 10px;
  transition: all 0.22s ease;
  border: 1.5px solid #e2e8f0;
  background: #ffffff;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
}

.dashboard-menu-modal-item:hover {
  transform: translateY(-2px);
  border-color: #cbd5e1;
  box-shadow: 0 6px 16px rgba(15, 23, 42, 0.08);
}

.dashboard-menu-modal-icon {
  font-size: 28px;
  margin-bottom: 10px;
  display: flex;
  justify-content: center;
}

.dashboard-menu-modal-icon .anticon { font-size: 28px; }

.dashboard-menu-modal-label {
  font-size: 13px;
  font-weight: 600;
  word-break: keep-all;
  color: #1e293b;
  line-height: 1.4;
}

/* ============================================================
   9. 생산 캐러셀 (간트 확장 시)
   ============================================================ */
.production-carousel-viewport {
  overflow: hidden;
  padding: 4px 0;
  height: 240px;
  flex-shrink: 0;
}

.production-carousel-track {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  will-change: transform;
  min-height: 240px;
}

.production-carousel-card {
  flex-shrink: 0;
  border-radius: 14px;
  cursor: pointer;
  transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  backface-visibility: hidden;
  position: relative;
}

.production-carousel-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.12);
}

.production-carousel-card.card-small {
  opacity: 0.8;
  transform: scale(0.88);
}

.production-carousel-card.card-small:hover {
  opacity: 0.95;
  transform: scale(0.9) translateY(-2px);
}

.production-carousel-card.card-large {
  box-shadow: 0 10px 40px rgba(37, 99, 235, 0.12);
}

.production-carousel-nav-btn {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid #e2e8f0;
  background: #ffffff;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.22s ease;
  flex-shrink: 0;
}

.production-carousel-nav-btn:hover:not(:disabled) {
  background: #eff6ff;
  border-color: #2563eb;
  transform: scale(1.08);
}

.production-carousel-nav-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.production-carousel-eq-btn {
  padding: 6px 14px;
  border-radius: 8px;
  border: 1px solid #e2e8f0;
  background: #ffffff;
  color: #64748b;
  font-weight: 500;
  font-size: 13px;
  cursor: pointer;
  transition: all 0.22s ease;
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.production-carousel-eq-btn:hover {
  border-color: #bfdbfe;
  color: #2563eb;
}

.production-carousel-eq-btn.active {
  border: 2px solid #2563eb;
  background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
  color: #2563eb;
  font-weight: 600;
}

.production-carousel-eq-btn.has-live { border-color: #86efac; }

.production-eq-live-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #059669;
  flex-shrink: 0;
  animation: production-live-pulse 1.5s ease-in-out infinite;
}

@keyframes production-live-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.15); }
}

.production-card-live-badge {
  position: absolute;
  top: 8px;
  right: 10px;
  padding: 2px 8px;
  font-size: 10px;
  font-weight: 700;
  color: #fff;
  background: linear-gradient(90deg, #059669 0%, #10b981 100%);
  border-radius: 6px;
  letter-spacing: 0.5px;
  box-shadow: 0 1px 4px rgba(5, 150, 105, 0.4);
  animation: production-live-pulse 1.5s ease-in-out infinite;
}

.production-carousel-card.card-small .production-card-live-badge {
  top: 4px;
  right: 6px;
  padding: 1px 5px;
  font-size: 9px;
}

.production-carousel-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  border: none;
  background: #e2e8f0;
  cursor: pointer;
  padding: 0;
  transition: all 0.22s ease;
}

.production-carousel-dot:hover {
  background: #94a3b8;
  transform: scale(1.2);
}

.production-carousel-dot.active {
  background: #2563eb;
  transform: scale(1.25);
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.25);
}

/* ============================================================
   10. 반응형 메뉴 아이콘/레이블 크기
   ============================================================ */
@media (max-width: 576px) {
  .dashboard-menu-icon { font-size: 20px !important; }
  .dashboard-menu-label { font-size: 12px !important; }
  .dashboard-menu-item { max-width: 58px !important; max-height: 58px !important; }
}

@media (min-width: 577px) and (max-width: 768px) {
  .dashboard-menu-icon { font-size: 24px !important; }
  .dashboard-menu-label { font-size: 13px !important; }
  .dashboard-menu-item { max-width: 66px !important; max-height: 66px !important; }
}

@media (min-width: 769px) and (max-width: 1200px) {
  .dashboard-menu-icon { font-size: 26px !important; }
  .dashboard-menu-label { font-size: 14px !important; }
  .dashboard-menu-item { max-width: 70px !important; max-height: 70px !important; }
}

@media (min-width: 1201px) {
  .dashboard-menu-icon { font-size: 30px !important; }
  .dashboard-menu-label { font-size: 14px !important; }
  .dashboard-menu-item { max-width: 72px !important; max-height: 72px !important; }
}
/* Tiptap 에디터 스타일 */
.draft-request-editor {
  width: 100%;
  background: white;
  border-radius: 4px;
  display: flex;
  flex-direction: column;
  direction: ltr !important;
}

.draft-editor-toolbar {
  padding: 8px 12px;
  border-bottom: 1px solid #d9d9d9;
  background: #fafafa;
  border-top-left-radius: 4px;
  border-top-right-radius: 4px;
}

.draft-editor-wrapper {
  padding: 16px;
  min-height: 400px;
  direction: ltr !important;
  background-color: #fafafa;
}

.draft-editor-content {
  outline: none;
  font-family: 'Malgun Gothic', '맑은 고딕', sans-serif;
  font-size: 15px;
  line-height: 1.6;
  direction: ltr !important;
  text-align: left !important;
  min-height: 400px;
  background-color: #fafafa;
}

.draft-editor-content p {
  margin: 0.5em 0;
  direction: ltr !important;
  text-align: left !important;
}

.draft-editor-content h1,
.draft-editor-content h2,
.draft-editor-content h3,
.draft-editor-content h4,
.draft-editor-content h5,
.draft-editor-content h6 {
  margin: 1em 0 0.5em 0;
  direction: ltr !important;
  text-align: left !important;
}

.draft-editor-content ul,
.draft-editor-content ol {
  padding-left: 1.5em;
  direction: ltr !important;
}

/* 표 스타일 */
.draft-table,
.ProseMirror table {
  border-collapse: collapse;
  width: 100% !important;
  table-layout: auto;
  margin: 10px 0;
  border: 1px solid #000 !important;
  direction: ltr !important;
  background-color: white;
}

.draft-editor-content table,
.ProseMirror .tableWrapper table {
  width: 100% !important;
}

.draft-table td,
.draft-table th,
.ProseMirror table td,
.ProseMirror table th {
  border: 1px solid #000 !important;
  padding: 8px 12px;
  text-align: left;
  min-width: 100px;
  direction: ltr !important;
  background-color: white;
}

.draft-table th,
.ProseMirror table th {
  background-color: #f5f5f5;
  font-weight: 600;
}

.draft-table tr:nth-child(even),
.ProseMirror table tr:nth-child(even) {
  background-color: #fafafa;
}

.draft-table tr:hover,
.ProseMirror table tr:hover {
  background-color: #f0f0f0;
}

/* 표 크기 조정 핸들 스타일 */
.ProseMirror table .column-resize-handle,
.ProseMirror table .row-resize-handle {
  position: absolute;
  background-color: #1890ff;
  opacity: 0.6;
  z-index: 10;
}

.ProseMirror table .column-resize-handle {
  width: 4px;
  cursor: col-resize;
  top: 0;
  bottom: 0;
}

.ProseMirror table .row-resize-handle {
  height: 4px;
  cursor: row-resize;
  left: 0;
  right: 0;
}

.ProseMirror table .column-resize-handle:hover,
.ProseMirror table .row-resize-handle:hover {
  opacity: 1;
  background-color: #1890ff;
}

/* 표 셀 선택 시 스타일 */
.ProseMirror table td.selectedCell,
.ProseMirror table th.selectedCell {
  background-color: #e6f7ff;
  border: 2px solid #1890ff !important;
}

/* ProseMirror 기본 스타일 */
.ProseMirror {
  outline: none;
  direction: ltr !important;
  text-align: left !important;
  background-color: #fafafa;
}

.ProseMirror p.is-editor-empty:first-child::before {
  content: attr(data-placeholder);
  float: left;
  color: #adb5bd;
  pointer-events: none;
  height: 0;
}

/* 상세 보기 본문 스타일 */
.draft-request-content-view {
  font-family: 'Malgun Gothic', '맑은 고딕', sans-serif;
  font-size: 14px;
  line-height: 1.6;
  direction: ltr !important;
  text-align: left !important;
}

.draft-request-content-view p {
  margin: 0.5em 0;
  direction: ltr !important;
  text-align: left !important;
}

.draft-request-content-view h1,
.draft-request-content-view h2,
.draft-request-content-view h3,
.draft-request-content-view h4,
.draft-request-content-view h5,
.draft-request-content-view h6 {
  margin: 1em 0 0.5em 0;
  direction: ltr !important;
  text-align: left !important;
}

.draft-request-content-view ul,
.draft-request-content-view ol {
  padding-left: 1.5em;
  direction: ltr !important;
}

.draft-request-content-view table {
  border-collapse: collapse;
  width: 100%;
  margin: 10px 0;
  border: 1px solid #000 !important;
  direction: ltr !important;
  background-color: white;
}

.draft-request-content-view table td,
.draft-request-content-view table th {
  border: 1px solid #000 !important;
  padding: 8px 12px;
  text-align: left;
  min-width: 100px;
  direction: ltr !important;
  background-color: white;
}

.draft-request-content-view table th {
  background-color: #f5f5f5;
  font-weight: 600;
}

.draft-request-content-view table tr:nth-child(even) {
  background-color: #fafafa;
}

.draft-request-content-view table tr:hover {
  background-color: #f0f0f0;
}

/* 이미지 스타일 */
.draft-image,
.ProseMirror img,
.draft-request-content-view img {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 10px 0;
  border-radius: 4px;
}

.draft-image {
  cursor: pointer;
}

.draft-image:hover {
  opacity: 0.9;
}

/* 인쇄 시 스타일 */
@media print {
  .draft-editor-toolbar {
    display: none !important;
  }
  
  .draft-editor-content {
    padding: 0;
  }
  
  .draft-table {
    page-break-inside: avoid;
  }
}
/* 영업일지 캘린더 · 상세 모달 전용 스타일 (디자인 개선) */

.sd-detail-modal {
  --sd-radius: 12px;
  --sd-radius-sm: 8px;
  --sd-accent: #2563eb;
  --sd-accent-soft: rgba(37, 99, 235, 0.08);
  --sd-surface: #ffffff;
  --sd-bg: #f1f5f9;
  --sd-border: #e2e8f0;
  --sd-text: #0f172a;
  --sd-text-muted: #64748b;
  --sd-text-soft: #475569;
  --sd-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
  --sd-font: 12px;
  --sd-font-title: 14px;
  --sd-empty-icon: 48px;
  --sd-font-family: 'Noto Sans KR', -apple-system, BlinkMacSystemFont, 'Malgun Gothic', sans-serif;
}

.sd-detail-modal.ant-modal .ant-modal-content {
  font-family: var(--sd-font-family);
  font-size: var(--sd-font) !important;
  border-radius: var(--sd-radius);
  overflow: hidden;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.14), 0 8px 24px rgba(0, 0, 0, 0.06);
  border: 1px solid var(--sd-border);
}

.sd-detail-modal .ant-modal-header {
  padding: 14px 18px 12px;
  border-bottom: 1px solid var(--sd-border);
  background: linear-gradient(165deg, #f8fafc 0%, #fff 50%);
  position: relative;
}

.sd-detail-modal .ant-modal-header::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  background: linear-gradient(180deg, var(--sd-accent) 0%, #3b82f6 100%);
  border-radius: 0 2px 2px 0;
}

.sd-detail-modal .ant-modal-title {
  font-family: var(--sd-font-family);
  font-size: var(--sd-font-title) !important;
  font-weight: 700 !important;
  letter-spacing: -0.03em;
  color: var(--sd-text);
  padding-left: 4px;
}

.sd-detail-modal .ant-modal-close {
  color: var(--sd-text-muted);
  width: 40px;
  height: 40px;
  top: 0;
  inset-inline-end: 0;
  line-height: 40px;
  border-radius: var(--sd-radius-sm);
}

.sd-detail-modal .ant-modal-close:hover {
  color: var(--sd-text);
  background: var(--sd-bg);
}

.sd-detail-modal .ant-modal-body {
  padding: 0;
  background: var(--sd-bg);
  background-image: radial-gradient(circle at 1px 1px, rgba(0, 0, 0, 0.03) 1px, transparent 0);
  background-size: 20px 20px;
  background-position: 0 0;
}

.sd-detail-content {
  font-family: var(--sd-font-family);
  font-size: var(--sd-font) !important;
  line-height: 1.65;
  color: var(--sd-text-soft);
  max-height: 70vh;
  overflow-y: auto;
  padding: 16px 18px;
}

.sd-detail-content::-webkit-scrollbar {
  width: 10px;
}

.sd-detail-content::-webkit-scrollbar-track {
  background: #e2e8f0;
  border-radius: 5px;
  margin: 4px 0;
}

.sd-detail-content::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, #94a3b8 0%, #64748b 100%);
  border-radius: 5px;
  border: 2px solid #e2e8f0;
}

.sd-detail-content::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, #64748b 0%, #475569 100%);
}

.sd-detail-info {
  display: grid;
  grid-template-columns: 88px 1fr 88px 1fr;
  gap: 0;
  background: var(--sd-surface);
  border-radius: var(--sd-radius);
  border: 1px solid var(--sd-border);
  overflow: hidden;
  margin-bottom: 14px;
  box-shadow: var(--sd-shadow);
}

/* 각 항목이 레이블+값 두 칸을 사용하도록(작성일/작성자/팀명/근무형태) */
.sd-detail-info-item:nth-child(1) { grid-column: 1 / span 2; }
.sd-detail-info-item:nth-child(2) { grid-column: 3 / span 2; }
.sd-detail-info-item:nth-child(3) { grid-column: 1 / span 2; }
.sd-detail-info-item:nth-child(4) { grid-column: 3 / span 2; }

.sd-detail-info-item {
  display: flex;
  align-items: center;
  padding: 10px 12px;
  border-bottom: 1px solid #f1f5f9;
  font-size: var(--sd-font) !important;
  font-family: var(--sd-font-family);
  min-height: 40px;
  line-height: 1.5;
  overflow: visible;
  box-sizing: border-box;
}

.sd-detail-info-item:nth-child(1),
.sd-detail-info-item:nth-child(3) {
  background: #fafbfc;
  border-right: 1px solid #f1f5f9;
}

.sd-detail-info-item:nth-child(2),
.sd-detail-info-item:nth-child(4) {
  background: #fafbfc;
}

.sd-detail-info-item:nth-last-child(-n+2) {
  border-bottom: none;
}

.sd-detail-info-label {
  flex: 0 0 80px;
  font-size: var(--sd-font) !important;
  font-family: var(--sd-font-family);
  font-weight: 600;
  color: var(--sd-text-muted);
  letter-spacing: -0.01em;
  margin-right: 10px;
  white-space: nowrap;
  line-height: 1.5;
}

.sd-detail-info-value {
  flex: 1;
  min-width: 0;
  font-weight: 500;
  color: var(--sd-text);
  font-size: var(--sd-font) !important;
  font-family: var(--sd-font-family);
  word-break: keep-all;
  overflow-wrap: normal;
  line-height: 1.5;
}

/* 작성일/작성자/팀명/근무형태는 한 줄로 표시(잘못된 줄바꿈 방지) */
.sd-detail-info-item:not(.sd-detail-info-full) .sd-detail-info-value {
  white-space: nowrap;
}

/* 값이 옆 셀로 넘치지 않도록 */
.sd-detail-info-item:not(.sd-detail-info-full) .sd-detail-info-value {
  overflow: hidden;
  text-overflow: ellipsis;
}

.sd-detail-info-item.sd-detail-info-full {
  grid-column: 1 / -1;
  background: #fff !important;
  min-height: 44px;
}

.sd-detail-section {
  margin-bottom: 14px;
}

.sd-detail-section-title {
  font-family: var(--sd-font-family);
  font-size: 14px !important;
  font-weight: 700 !important;
  color: var(--sd-text);
  letter-spacing: -0.02em;
  margin: 0 0 8px 0;
  padding: 6px 0 6px 18px;
  border-left: 3px solid var(--sd-accent);
  line-height: 1.4;
  background: linear-gradient(90deg, var(--sd-accent-soft) 0%, transparent 100%);
  border-radius: 0 var(--sd-radius-sm) var(--sd-radius-sm) 0;
}

.sd-detail-card-list {
  background: var(--sd-surface);
  border-radius: var(--sd-radius);
  border: 1px solid var(--sd-border);
  overflow: hidden;
  margin-bottom: 14px;
  box-shadow: var(--sd-shadow);
}

.sd-detail-card-item {
  padding: 10px 14px;
  border-bottom: 1px solid #f1f5f9;
  font-size: var(--sd-font) !important;
  font-family: var(--sd-font-family);
  line-height: 1.5;
  transition: background 0.15s ease;
}

.sd-detail-card-item:last-child {
  border-bottom: none;
}

.sd-detail-card-item:hover {
  background: #fafbfc;
}

.sd-detail-card-client {
  font-weight: 600;
  color: var(--sd-text);
  margin-bottom: 4px;
  font-size: var(--sd-font) !important;
  font-family: var(--sd-font-family);
  letter-spacing: -0.01em;
}

.sd-detail-card-body {
  color: var(--sd-text-soft);
  white-space: pre-wrap;
  margin: 0;
  font-size: var(--sd-font) !important;
  font-family: var(--sd-font-family);
  line-height: 1.5;
}

.sd-detail-remarks {
  background: var(--sd-surface);
  border-radius: var(--sd-radius);
  border: 1px solid var(--sd-border);
  padding: 10px 14px;
  margin-bottom: 14px;
  font-size: var(--sd-font) !important;
  font-family: var(--sd-font-family);
  line-height: 1.5;
  color: var(--sd-text-soft);
  white-space: pre-wrap;
  box-shadow: var(--sd-shadow);
}

.sd-detail-attachments {
  background: var(--sd-surface);
  border-radius: var(--sd-radius);
  border: 1px solid var(--sd-border);
  padding: 10px 14px;
  margin-bottom: 14px;
  box-shadow: var(--sd-shadow);
}

.sd-detail-attachments a {
  font-size: var(--sd-font) !important;
  font-family: var(--sd-font-family);
  color: var(--sd-accent);
  text-decoration: none;
  font-weight: 500;
  padding: 4px 0;
  display: inline-block;
  border-radius: var(--sd-radius-sm);
  transition: color 0.15s, background 0.15s;
}

.sd-detail-attachments a:hover {
  color: #1d4ed8;
  background: var(--sd-accent-soft);
}

.sd-detail-divider {
  margin: 18px 0 14px 0;
  border: none;
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, var(--sd-border) 20%, var(--sd-border) 80%, transparent 100%);
}

.sd-detail-comments-wrap {
  background: var(--sd-surface);
  border-radius: var(--sd-radius);
  border: 1px solid var(--sd-border);
  padding: 14px 16px;
  margin-bottom: 14px;
  box-shadow: var(--sd-shadow);
}

.sd-detail-comments-title {
  font-family: var(--sd-font-family);
  font-size: var(--sd-font) !important;
  font-weight: 700 !important;
  color: var(--sd-text);
  margin: 0 0 10px 0;
  letter-spacing: -0.02em;
  padding-bottom: 8px;
  border-bottom: 1px solid #f1f5f9;
}

.sd-detail-comment-item {
  padding: 10px 0;
  border-bottom: 1px solid #f1f5f9;
  font-size: var(--sd-font) !important;
  font-family: var(--sd-font-family);
}

.sd-detail-comment-item:last-of-type {
  border-bottom: none;
}

.sd-detail-comment-meta {
  font-size: var(--sd-font) !important;
  font-family: var(--sd-font-family);
  color: var(--sd-text-muted);
  margin-bottom: 4px;
}

.sd-detail-comment-meta strong {
  color: var(--sd-text);
  font-weight: 600;
  margin-right: 10px;
}

.sd-detail-comment-content {
  white-space: pre-wrap;
  margin: 0;
  color: var(--sd-text-soft);
  line-height: 1.5;
  font-size: var(--sd-font) !important;
  font-family: var(--sd-font-family);
}

.sd-detail-comments-empty {
  text-align: center;
  padding: 24px 16px;
  color: var(--sd-text-muted);
  font-size: var(--sd-font) !important;
  font-family: var(--sd-font-family);
  background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
  border-radius: var(--sd-radius-sm);
  margin-bottom: 12px;
}

.sd-detail-comments-empty-icon {
  font-size: var(--sd-empty-icon);
  margin-bottom: 12px;
  opacity: 0.5;
  line-height: 1;
}

.sd-detail-comment-input-wrap {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px dashed var(--sd-border);
}

.sd-detail-comment-input-wrap .ant-input {
  font-family: var(--sd-font-family) !important;
  font-size: var(--sd-font) !important;
  border-radius: var(--sd-radius-sm);
  border: 1px solid var(--sd-border);
  transition: border-color 0.2s, box-shadow 0.2s;
}

.sd-detail-comment-input-wrap .ant-input:focus,
.sd-detail-comment-input-wrap .ant-input:hover {
  border-color: var(--sd-accent);
  box-shadow: 0 0 0 2px var(--sd-accent-soft);
}

/* 결재 정보 테이블 (상세 하단) */
.sd-detail-approval-table-wrap {
  overflow-x: auto;
  border-radius: var(--sd-radius-sm);
  border: 1px solid var(--sd-border);
  background: var(--sd-surface);
}

.sd-detail-approval-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--sd-font);
}

.sd-detail-approval-table th,
.sd-detail-approval-table td {
  padding: 10px 14px;
  text-align: left;
  border-bottom: 1px solid var(--sd-border);
}

.sd-detail-approval-table th {
  background: #f8fafc;
  font-weight: 600;
  color: var(--sd-text-soft);
}

.sd-detail-approval-table tbody tr:last-child td {
  border-bottom: none;
}

.sd-detail-approval-table tbody tr:hover {
  background: var(--sd-accent-soft);
}

/* 결재이력 리스트 형식 (1차/2차/3차...) */
.sd-detail-approval-history-list {
  padding: 4px 0;
}

.sd-detail-approval-history-item {
  padding: 10px 0;
}

.sd-detail-approval-history-header {
  font-size: var(--sd-font);
  color: var(--sd-text);
  line-height: 1.6;
}

.sd-detail-approval-history-comment {
  margin-top: 6px;
  padding-left: 0;
  font-size: var(--sd-font) !important;
  color: var(--sd-text-muted);
  line-height: 1.5;
}

.sd-detail-approval-original {
  padding: 8px 0;
  white-space: pre-wrap;
  color: var(--sd-text);
  line-height: 1.7;
}

.sd-detail-approval-empty {
  padding: 12px 0;
  color: var(--sd-text-muted);
}

.sd-detail-approval-empty-text {
  color: #94a3b8;
}

.sd-detail-approval-history-divider {
  margin: 12px 0 0;
  border: none;
  border-top: 1px solid var(--sd-border);
}

.sd-detail-modal .ant-modal-footer {
  padding: 12px 18px 14px;
  border-top: 1px solid var(--sd-border);
  background: linear-gradient(0deg, #f8fafc 0%, #fff 100%);
}

.sd-detail-modal .ant-modal-footer .ant-btn {
  font-family: var(--sd-font-family);
  font-size: var(--sd-font) !important;
  font-weight: 500;
  border-radius: var(--sd-radius-sm);
  min-width: 88px;
  height: 32px;
}

.sd-detail-modal .ant-modal-footer .ant-btn-primary {
  box-shadow: 0 2px 6px rgba(37, 99, 235, 0.25);
}

.sd-detail-modal .ant-modal-footer .ant-btn-primary:hover {
  box-shadow: 0 4px 12px rgba(37, 99, 235, 0.3);
}

.sd-detail-footer-notice {
  font-size: var(--sd-font);
  color: var(--sd-text-muted);
  margin-bottom: 8px;
}

/* 결재상태 태그: 잘림·겹침 방지 */
.sd-detail-info-value .ant-tag {
  font-family: var(--sd-font-family);
  font-size: var(--sd-font) !important;
  font-weight: 500;
  margin: 0;
  border-radius: 6px;
  line-height: 1.5 !important;
  padding: 4px 10px !important;
  min-height: 24px;
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
}

.sd-detail-loading {
  padding: 80px 28px;
  text-align: center;
  font-family: var(--sd-font-family);
  font-size: var(--sd-font) !important;
  background: var(--sd-bg);
}

/* ========== 영업일지 캘린더 전용 (상세 모달과 톤 통일) ========== */
.sd-calendar-page .ant-card {
  border-radius: 12px;
  border: 1px solid #e2e8f0;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}
.sd-calendar-page .ant-card-head {
  border-bottom: 1px solid #e2e8f0;
  font-weight: 600;
  color: #0f172a;
}
.sd-calendar-page .ant-card-head .ant-card-head-extra .ant-btn {
  border-radius: 8px;
}

.sd-calendar-wrap {
  --sd-cal-accent: #2563eb;
  --sd-cal-bg: #f8fafc;
  --sd-cal-border: #e2e8f0;
  --sd-cal-today: rgba(37, 99, 235, 0.12);
  --sd-cal-font: 11px;
  --sd-cal-font-hint: 12px;
}
.sd-calendar-wrap .ant-picker-calendar {
  background: transparent;
}
/* 오늘 날짜 강조 */
.sd-calendar-wrap .ant-picker-cell.ant-picker-cell-today .ant-picker-cell-inner {
  background: var(--sd-cal-today) !important;
  border-radius: 8px;
}
.sd-calendar-wrap .ant-picker-cell.ant-picker-cell-today:not(.ant-picker-cell-selected) .ant-picker-cell-inner::before {
  border-color: var(--sd-cal-accent);
  border-radius: 8px;
}
/* 요일 헤더 스타일 */
.sd-calendar-wrap .ant-picker-calendar .ant-picker-content th {
  font-weight: 600;
  padding: 8px 0;
}
/* 일요일(1열): 빨간색 */
.sd-calendar-wrap .ant-picker-calendar .ant-picker-content th:nth-child(1),
.sd-calendar-wrap .ant-picker-calendar .ant-picker-content td:nth-child(1) .ant-picker-calendar-date-value,
.sd-calendar-wrap .ant-picker-calendar .ant-picker-content td:nth-child(1) .ant-picker-calendar-date {
  color: #dc2626 !important;
}
.sd-calendar-wrap .ant-picker-calendar .ant-picker-content td:nth-child(1) .ant-picker-cell-inner {
  background: rgba(220, 38, 38, 0.08) !important;
}
.sd-calendar-wrap .ant-picker-calendar .ant-picker-content td:nth-child(1).ant-picker-cell-today .ant-picker-cell-inner {
  background: linear-gradient(135deg, rgba(220, 38, 38, 0.12) 0%, rgba(37, 99, 235, 0.12) 100%) !important;
}
/* 토요일(7열): 파란색 */
.sd-calendar-wrap .ant-picker-calendar .ant-picker-content th:nth-child(7),
.sd-calendar-wrap .ant-picker-calendar .ant-picker-content td:nth-child(7) .ant-picker-calendar-date-value,
.sd-calendar-wrap .ant-picker-calendar .ant-picker-content td:nth-child(7) .ant-picker-calendar-date {
  color: #2563eb !important;
}
.sd-calendar-wrap .ant-picker-calendar .ant-picker-content td:nth-child(7) .ant-picker-cell-inner {
  background: rgba(37, 99, 235, 0.08) !important;
}
.sd-calendar-wrap .ant-picker-calendar .ant-picker-content td:nth-child(7).ant-picker-cell-today .ant-picker-cell-inner {
  background: linear-gradient(135deg, rgba(37, 99, 235, 0.12) 0%, rgba(37, 99, 235, 0.12) 100%) !important;
}
/* 월~금(2~6열) 헤더 기본 색상 */
.sd-calendar-wrap .ant-picker-calendar .ant-picker-content th:nth-child(n+2):nth-child(-n+6) {
  color: #64748b;
}

/* 영업일지 캘린더: 최소 4주 높이 확보, 남는 세로 공간 채우기 */
.sd-calendar-wrap .ant-picker-calendar .ant-picker-panel .ant-picker-body {
  min-height: 380px;
}

/* 셀 내 일지 목록: 모두 표시, 세로 스크롤 없이 셀 높이만 넓어지도록 */
.sd-calendar-cell-list {
  list-style: none;
  padding: 0 !important;
  margin: 0 !important;
  overflow: visible !important;
  max-height: none !important;
}

.sd-calendar-cell-item {
  margin: 0 0 1px 0 !important;
}

/* 일지 색상 블록: 이전 양식 스타일 + 호버 애니메이션 */
.sd-calendar-block {
  padding: 4px 6px;
  color: #fff !important;
  font-size: var(--sd-cal-font);
  line-height: 1.4;
  border-radius: 4px;
  cursor: pointer;
  word-break: break-word;
  min-height: 22px;
  transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
}

.sd-calendar-block:hover {
  transform: translateY(-2px) scale(1.02);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
  filter: brightness(1.1);
}

.sd-calendar-block:active {
  transform: translateY(0) scale(0.98);
  transition-duration: 0.1s;
}

/* 캘린더 날짜 셀: 스크롤/높이 제한 제거, 내용만큼 셀 높이 늘어나도록 */
.sd-calendar-wrap .ant-picker-calendar .ant-picker-content td,
.sd-calendar-wrap .ant-picker-calendar .ant-picker-cell,
.sd-calendar-wrap .ant-picker-calendar .ant-picker-cell .ant-picker-cell-inner,
.sd-calendar-wrap .ant-picker-calendar .ant-picker-calendar-date {
  overflow: visible !important;
  max-height: none !important;
  height: auto !important;
  min-height: 32px;
  vertical-align: top;
}

/* Ant Design 하드코딩 오버라이드: date-content에 height + overflowY:auto 적용됨 → 제거, 가로는 열 안에서 줄바꿈 */
.sd-calendar-wrap .ant-picker-calendar-date-content {
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  overflow-y: visible !important;
  min-width: 0;
  word-break: break-word;
  padding: 0 !important;
  margin: 0 !important;
  gap: 0 !important;
}
/* 날짜 셀 전체: 내부 여백·간격 제거 */
.sd-calendar-wrap .ant-picker-calendar-date {
  padding: 0 !important;
  margin: 0 !important;
  gap: 0 !important;
  display: block !important;
}
/* 날짜 숫자와 내용 사이 여백 제거 */
.sd-calendar-wrap .ant-picker-calendar-date .ant-picker-calendar-date-value {
  margin-bottom: 0 !important;
  padding: 0 !important;
}

/* 토·일 셀 너비 축소, 월~금 셀 너비 확대 */
.sd-calendar-wrap .ant-picker-calendar .ant-picker-content {
  table-layout: fixed !important;
  width: 100% !important;
  border-collapse: separate;
  border-spacing: 0 0;
}
/* 일요일(1열): 10% */
.sd-calendar-wrap .ant-picker-calendar .ant-picker-content th:nth-child(1),
.sd-calendar-wrap .ant-picker-calendar .ant-picker-content td:nth-child(1) {
  width: 10% !important;
}
/* 월~금(2~6열): 각 16% */
.sd-calendar-wrap .ant-picker-calendar .ant-picker-content th:nth-child(2),
.sd-calendar-wrap .ant-picker-calendar .ant-picker-content td:nth-child(2),
.sd-calendar-wrap .ant-picker-calendar .ant-picker-content th:nth-child(3),
.sd-calendar-wrap .ant-picker-calendar .ant-picker-content td:nth-child(3),
.sd-calendar-wrap .ant-picker-calendar .ant-picker-content th:nth-child(4),
.sd-calendar-wrap .ant-picker-calendar .ant-picker-content td:nth-child(4),
.sd-calendar-wrap .ant-picker-calendar .ant-picker-content th:nth-child(5),
.sd-calendar-wrap .ant-picker-calendar .ant-picker-content td:nth-child(5),
.sd-calendar-wrap .ant-picker-calendar .ant-picker-content th:nth-child(6),
.sd-calendar-wrap .ant-picker-calendar .ant-picker-content td:nth-child(6) {
  width: 16% !important;
}
/* 토요일(7열): 10% */
.sd-calendar-wrap .ant-picker-calendar .ant-picker-content th:nth-child(7),
.sd-calendar-wrap .ant-picker-calendar .ant-picker-content td:nth-child(7) {
  width: 10% !important;
}
.sd-calendar-wrap .ant-picker-calendar .ant-picker-content th,
.sd-calendar-wrap .ant-picker-calendar .ant-picker-content td {
  min-width: 0;
  box-sizing: border-box;
  padding: 1px !important;
}
.sd-calendar-wrap .ant-picker-calendar .ant-picker-cell .ant-picker-cell-inner {
  padding: 0 2px !important; /* 셀 내부 여백 최소화 */
}

/* 캘린더 하단: 색상 범례 (작성자별 구분) */
.sd-calendar-legend {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px dashed var(--sd-cal-border, #e2e8f0);
  font-size: var(--sd-cal-font);
  color: #64748b;
}
.sd-calendar-legend span {
  margin-right: 12px;
}
.sd-calendar-legend .sd-calendar-legend-dot {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 3px;
  margin-right: 4px;
  vertical-align: middle;
}

/* 이번 달 일지 없을 때 안내 */
.sd-calendar-empty-hint {
  margin-top: 12px;
  padding: 12px 16px;
  background: #f8fafc;
  border-radius: 8px;
  border: 1px dashed #e2e8f0;
  font-size: var(--sd-cal-font-hint);
  color: #64748b;
  text-align: center;
}

/* 날짜 클릭 시 뜨는 일지 목록 모달 */
.sd-calendar-date-modal.ant-modal .ant-modal-content {
  border-radius: 12px;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.12);
}
.sd-calendar-date-modal .ant-modal-header {
  border-bottom: 1px solid #e2e8f0;
}
.sd-calendar-date-modal .ant-list-item {
  border-radius: 8px;
  transition: background 0.2s;
}
.sd-calendar-date-modal .ant-list-item:hover {
  background: #f8fafc;
}
/* 영업일지 결재 상세 - 디자인 개선 */
.approvals-sales-diary-section {
  margin-bottom: 16px;
}

.approvals-sales-diary-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  background: linear-gradient(135deg, #f6ffed 0%, #e6f7e1 100%);
  border-radius: 8px;
  margin-bottom: 16px;
  border-left: 4px solid #52c41a;
  box-shadow: 0 1px 2px rgba(82, 196, 26, 0.08);
}

.approvals-sales-diary-header .anticon {
  font-size: 18px;
  color: #52c41a;
}

.approvals-sales-diary-header span {
  font-weight: 600;
  font-size: 15px;
  color: #389e0d;
}

.approvals-sales-diary-subsection {
  background: #fff;
  border-radius: 8px;
  padding: 14px 16px;
  margin-bottom: 14px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
  border: 1px solid #f0f0f0;
}

.approvals-sales-diary-subsection-title {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
  font-weight: 600;
  font-size: 14px;
  color: #262626;
}

.approvals-sales-diary-subsection-title.implementation .anticon {
  color: #1890ff;
}

.approvals-sales-diary-subsection-title.schedule .anticon {
  color: #722ed1;
}

.approvals-sales-diary-table.ant-table-wrapper .ant-table {
  border-radius: 6px;
  overflow: hidden;
}

.approvals-sales-diary-table.ant-table-wrapper .ant-table-thead > tr > th {
  background: #fafafa !important;
  font-weight: 600;
  color: #595959;
  padding: 10px 12px;
  border-bottom: 1px solid #f0f0f0;
}

.approvals-sales-diary-table.ant-table-wrapper .ant-table-tbody > tr > td {
  padding: 12px;
  vertical-align: top;
  transition: background-color 0.15s ease;
}

.approvals-sales-diary-table.ant-table-wrapper .ant-table-tbody > tr:hover > td {
  background: #fafafa !important;
}

.approvals-sales-diary-table.ant-table-wrapper .ant-table-tbody > tr:nth-child(even) > td {
  background: #fafafa;
}

.approvals-sales-diary-table.ant-table-wrapper .ant-table-tbody > tr:nth-child(even):hover > td {
  background: #f5f5f5 !important;
}

.approvals-sales-diary-remarks {
  padding: 12px 16px;
  background: linear-gradient(135deg, #fafafa 0%, #f5f5f5 100%);
  border-radius: 8px;
  border: 1px solid #f0f0f0;
  white-space: pre-wrap;
  line-height: 1.6;
  color: #595959;
}

/* 결재함 영업일지 - 실시/예정사항 섹션 구분 강화 (가독성 향상) */
.approvals-sales-diary-content .sd-detail-section {
  margin-bottom: 24px;
  padding: 18px 20px;
  background: #fff;
  border-radius: 10px;
  border: 1px solid #e8e8e8;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
}

.approvals-sales-diary-content .sd-detail-section:last-child {
  margin-bottom: 0;
}

/* 실시사항: 연한 파란 톤 */
.approvals-sales-diary-content .sd-detail-section-implementation {
  border-left: 4px solid #1890ff;
  background: linear-gradient(90deg, rgba(24, 144, 255, 0.05) 0%, #fff 20%);
}

.approvals-sales-diary-content .sd-detail-section-implementation .sd-detail-section-title {
  border-left-color: #1890ff;
  background: linear-gradient(90deg, rgba(24, 144, 255, 0.1) 0%, transparent 100%);
}

/* 예정사항: 연한 보라 톤 */
.approvals-sales-diary-content .sd-detail-section-schedule {
  border-left: 4px solid #722ed1;
  background: linear-gradient(90deg, rgba(114, 46, 209, 0.05) 0%, #fff 20%);
}

.approvals-sales-diary-content .sd-detail-section-schedule .sd-detail-section-title {
  border-left-color: #722ed1;
  background: linear-gradient(90deg, rgba(114, 46, 209, 0.1) 0%, transparent 100%);
}

/* 비고: 회색 톤 */
.approvals-sales-diary-content .sd-detail-section-remarks {
  border-left: 4px solid #8c8c8c;
  background: linear-gradient(90deg, rgba(0, 0, 0, 0.03) 0%, #fff 20%);
}

.approvals-sales-diary-content .sd-detail-section-remarks .sd-detail-section-title {
  border-left-color: #8c8c8c;
  background: linear-gradient(90deg, rgba(0, 0, 0, 0.05) 0%, transparent 100%);
}

.approvals-sales-diary-content .sd-detail-section-title {
  margin-bottom: 12px;
  padding-left: 18px !important;  /* 파란 구분선과 텍스트 간격 */
}

.approvals-sales-diary-content .sd-detail-card-list {
  margin-bottom: 0;
}

/* 결재함 탭 간격 최소화 - 탭이 붙어 보이도록 */
.approvals-page-tabs.ant-tabs .ant-tabs-nav-list {
  gap: 0 !important;
  column-gap: 0 !important;
  width: auto !important;
  flex: none !important;
  justify-content: flex-start !important;
}
.approvals-page-tabs.ant-tabs .ant-tabs-tab {
  margin: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  margin-inline-start: 0 !important;
  margin-inline-end: 0 !important;
}
.approvals-page-tabs.ant-tabs .ant-tabs-tab + .ant-tabs-tab {
  margin-left: -1px !important;
  margin-inline-start: -1px !important;
}

/* === 결재함 모바일 최적화 (768px 이하) === */
@media (max-width: 768px) {
  .approvals-page-wrapper {
    padding: 12px 16px !important;
    overflow-x: hidden;
  }

  /* 탭 영역 - 좁은 화면에서 가로 스크롤 */
  .approvals-page-tabs .ant-tabs-nav-wrap {
    overflow-x: auto !important;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
  }
  .approvals-page-tabs .ant-tabs-nav-list {
    flex-wrap: nowrap !important;
  }
  .approvals-page-tabs .ant-tabs-tab {
    padding: 10px 12px !important;
    white-space: nowrap;
    flex-shrink: 0;
    font-size: 13px !important;
  }
  .approvals-page-tabs .ant-tabs-tab-btn {
    gap: 4px !important;
    font-size: 13px !important;
  }

  /* 테이블 터치 영역 확대 */
  .approvals-page-wrapper .ant-table-cell {
    padding: 12px 10px !important;
    min-height: 44px;
  }
  .approvals-page-wrapper .ant-table-wrapper {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  /* 결재 상세 모달 내부 */
  .ant-modal .ant-descriptions-item-label,
  .ant-modal .ant-descriptions-item-content {
    padding: 8px 12px !important;
    font-size: 13px !important;
  }
  .ant-modal-body .ant-table-wrapper {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}
/* 점검항목 추가/수정 모달 - 가로 넓게, 세로 스크롤 없이 */
.inspection-item-form-modal .ant-modal-body {
  padding: 20px 24px !important;
  background: #fafafa;
  overflow: visible !important;
}

.inspection-item-form-modal .ant-modal-header {
  padding: 16px 24px;
  border-bottom: 1px solid #f0f0f0;
}

.inspection-item-form-modal .ant-modal-title {
  font-size: 18px;
  font-weight: 600;
}

/* 상단 2열: 적용 대상 | 점검 항목 정보 */
.inspection-item-form-modal .form-row-main {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 16px;
}

/* 섹션 블록 */
.inspection-item-form-modal .form-section {
  background: #fff;
  border-radius: 8px;
  padding: 20px;
  margin-bottom: 0;
  border: 1px solid #f0f0f0;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
  overflow: hidden;
  box-sizing: border-box;
}

/* 적용 대상 카드 */
.inspection-item-form-modal .form-section-apply-target {
  padding: 24px;
  min-height: 320px;
}

/* 점검 항목 정보 카드 - 텍스트박스·글자수 여유 확보 */
.inspection-item-form-modal .form-section-inspection-info {
  padding: 24px;
  padding-bottom: 40px;
  min-height: 380px;
}

/* 하단: 기타 + 푸터 한 줄 */
.inspection-item-form-modal .form-footer-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.inspection-item-form-modal .form-section-etc {
  flex: 0 0 auto;
  padding: 16px 20px;
  margin-bottom: 0;
}

.inspection-item-form-modal .form-section-title {
  font-size: 13px;
  font-weight: 600;
  color: #262626;
  margin-bottom: 16px;
  padding-bottom: 8px;
  border-bottom: 1px solid #e8e8e8;
  letter-spacing: -0.2px;
}

.inspection-item-form-modal .ant-form-item {
  margin-bottom: 20px !important;
}

.inspection-item-form-modal .form-section .ant-form-item-control-input {
  max-width: 100%;
}

.inspection-item-form-modal .form-section .ant-form-item-control-input-content {
  max-width: 100%;
}

.inspection-item-form-modal .ant-form-item:last-child {
  margin-bottom: 0 !important;
}

.inspection-item-form-modal .ant-form-item-label > label {
  font-weight: 500;
  color: #434343;
}

.inspection-item-form-modal .ant-form-item-explain {
  font-size: 12px;
}

/* 점검 내용 TextArea - 섹션 카드 안에 올바르게 포함 */
.inspection-item-form-modal .form-section .ant-input-affix-wrapper,
.inspection-item-form-modal .form-section .ant-input-textarea-affix-wrapper {
  max-width: 100%;
  box-sizing: border-box;
}

.inspection-item-form-modal .ant-input-textarea-affix-wrapper textarea,
.inspection-item-form-modal .ant-input-textarea-affix-wrapper textarea.ant-input,
.inspection-item-form-modal textarea.ant-input {
  min-height: 130px !important;
  max-height: 220px !important;
  overflow-y: auto !important;
  line-height: 1.5;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

/* 2열 레이아웃 - 기본 정보 */
.inspection-item-form-modal .form-row-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

@media (max-width: 900px) {
  .inspection-item-form-modal .form-row-main {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 480px) {
  .inspection-item-form-modal .form-row-2 {
    grid-template-columns: 1fr;
  }

  .inspection-item-form-modal .form-footer-row {
    flex-direction: column;
    align-items: stretch;
  }
}

/* 푸터 액션 영역 */
.inspection-item-form-modal .form-footer {
  flex: 0 0 auto;
  padding: 16px 20px;
  background: #fff;
  border: 1px solid #f0f0f0;
  border-radius: 8px;
}
/* 원재료가 계산 페이지 - 섹션별 구분 스타일 */
.rmcc-page {
  padding: 24px;
  max-width: 1200px;
  margin: 0 auto;
  font-size: 12px;
}

.rmcc-page-header {
  background: white;
  padding: 16px 24px;
  border-radius: 8px;
  margin-bottom: 16px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
}

/* 페이지 헤더 제목 - 20px (전역 h4.ant-typography 12px 덮어쓰기) */
.rmcc-page-title,
.rmcc-page h4.rmcc-page-title,
.rmcc-page h4.ant-typography.rmcc-page-title {
  margin-bottom: 4px !important;
  font-size: 20px !important;
}

.rmcc-section {
  margin-bottom: 24px;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.rmcc-section-inner {
  padding: 20px 24px;
  background: #fff;
  border: 1px solid #e8e8e8;
  border-left-width: 4px;
  border-radius: 0 8px 8px 0;
}

.rmcc-section--1 .rmcc-section-inner { border-left-color: #1890ff; }
.rmcc-section--2 .rmcc-section-inner { border-left-color: #13c2c2; }
.rmcc-section--3 .rmcc-section-inner { border-left-color: #fa8c16; }
.rmcc-section--4 .rmcc-section-inner { border-left-color: #722ed1; }
.rmcc-section--5 .rmcc-section-inner { border-left-color: #52c41a; }

.rmcc-section-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid #f0f0f0;
}

.rmcc-section-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  height: 24px;
  border-radius: 6px;
  font-weight: 700;
  font-size: 12px;
  color: #fff;
}

.rmcc-section--1 .rmcc-section-badge { background: #1890ff; }
.rmcc-section--2 .rmcc-section-badge { background: #13c2c2; }
.rmcc-section--3 .rmcc-section-badge { background: #fa8c16; }
.rmcc-section--4 .rmcc-section-badge { background: #722ed1; }
.rmcc-section--5 .rmcc-section-badge { background: #52c41a; }

.rmcc-section-title {
  font-size: 12px;
  font-weight: 600;
  color: #262626;
  margin: 0 !important;
}

.rmcc-section-desc {
  font-size: 12px;
  color: #8c8c8c;
  margin: 4px 0 0 0 !important;
}

.rmcc-divider {
  margin: 32px 0 24px 0;
  border: none;
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, #e8e8e8 20%, #e8e8e8 80%, transparent 100%);
}

.rmcc-results-section {
  background: linear-gradient(180deg, #fafafa 0%, #fff 100%);
  border: 1px solid #e8e8e8;
  border-radius: 8px;
  padding: 20px;
  margin-top: 20px;
}

.rmcc-results-title {
  font-size: 12px;
  font-weight: 600;
  color: #262626;
  margin: 0 0 12px 0;
  padding-left: 12px;
  border-left: 3px solid #52c41a;
}

.rmcc-detail-card {
  border-radius: 8px;
  border: 1px solid #e8e8e8;
  margin-bottom: 12px;
  overflow: hidden;
}

.rmcc-detail-card .ant-card-head {
  background: #fafafa;
  border-bottom: 1px solid #f0f0f0;
}

.rmcc-detail-card .ant-card-body {
  padding: 16px;
}

/* 합계금액 셀 - 우측정렬 */
.rmcc-sum-cell {
  display: block;
  text-align: right;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
}

/* 합계금액 행 - 우측정렬, 가독성 */
.rmcc-total-sum {
  margin-top: 12px;
  padding: 12px 16px;
  text-align: right;
  font-weight: 600;
  font-size: 14px;
  background: #fafafa;
  border-radius: 6px;
  border-top: 1px solid #f0f0f0;
}

.rmcc-total-sum .rmcc-total-label {
  margin-right: 10px;
  color: #595959;
  font-size: 12px;
}

.rmcc-total-sum .rmcc-total-value {
  font-size: 16px;
  color: #262626;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
}

/* 층별 소계 행 */
.rmcc-subtotal-row {
  background: #f5f5f5 !important;
  font-weight: 600;
}
.rmcc-subtotal-row td {
  border-top: 1px solid #e8e8e8 !important;
}

/* 원재료 단가 입력 - 층별 블록 구분 */
.rmcc-input-layer-block {
  margin-bottom: 24px;
  padding: 16px;
  background: #fafafa;
  border-radius: 8px;
  border: 1px solid #f0f0f0;
}
.rmcc-input-layer-block:last-child {
  margin-bottom: 0;
}
.rmcc-input-layer-title {
  font-size: 12px;
  font-weight: 700;
  color: #262626;
  margin-bottom: 12px;
  padding-bottom: 8px;
  border-bottom: 2px solid #fa8c16;
}
.rmcc-input-layer-sum {
  margin-top: 12px;
  padding: 10px 16px;
  text-align: right;
  font-weight: 600;
  font-size: 12px;
  background: #fff;
  border-radius: 6px;
  border-top: 1px solid #e8e8e8;
}
.rmcc-input-layer-sum .rmcc-total-label {
  margin-right: 8px;
  color: #595959;
}
.rmcc-input-layer-sum .rmcc-total-value {
  font-size: 14px;
  color: #262626;
}
/* 품목별 톤당 원가·판매 추이 */
.stat-item-cost-page {
  min-height: 100vh;
  padding: 24px;
  background: linear-gradient(165deg, #eef2f7 0%, #f4f7fb 35%, #fafbfc 100%);
  box-sizing: border-box;
}

.stat-item-cost-surface {
  border-radius: 12px;
  border: 1px solid rgba(15, 23, 42, 0.06);
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04), 0 4px 16px rgba(15, 23, 42, 0.06);
  overflow: hidden;
}

.stat-item-cost-surface .ant-card-head {
  border-bottom-color: rgba(15, 23, 42, 0.06);
  min-height: 48px;
}

.stat-item-cost-surface .ant-card-head-title {
  font-weight: 600;
  font-size: 15px;
  color: #0f172a;
}

.stat-item-cost-toolbar-wrap {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 16px;
}

.stat-item-cost-list-scroll {
  max-height: min(56vh, 560px);
  overflow-y: auto;
  padding-right: 4px;
  margin-right: -4px;
}

.stat-item-cost-list-scroll::-webkit-scrollbar {
  width: 6px;
}
.stat-item-cost-list-scroll::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 6px;
}
.stat-item-cost-list-scroll::-webkit-scrollbar-thumb:hover {
  background: #94a3b8;
}

.stat-item-cost-row {
  border-radius: 10px;
  padding: 10px 12px;
  margin-bottom: 6px;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
  border: 1px solid transparent;
  background: #fff;
}

.stat-item-cost-row:hover {
  background: #f8fafc;
  border-color: #e2e8f0;
}

.stat-item-cost-row.selected {
  background: linear-gradient(105deg, rgba(59, 130, 246, 0.12) 0%, rgba(59, 130, 246, 0.04) 100%);
  border-color: rgba(59, 130, 246, 0.35);
  box-shadow: 0 1px 3px rgba(59, 130, 246, 0.12);
}

.stat-item-cost-summary-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}

.stat-item-cost-stat-pill {
  background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 12px 14px;
}

.stat-item-cost-stat-pill .label {
  font-size: 12px;
  color: #64748b;
  margin-bottom: 4px;
  letter-spacing: -0.01em;
}

.stat-item-cost-stat-pill .value {
  font-size: 17px;
  font-weight: 600;
  color: #0f172a;
  line-height: 1.3;
}

.stat-item-cost-stat-pill.positive .value {
  color: #059669;
}

.stat-item-cost-stat-pill.muted .value {
  color: #94a3b8;
  font-weight: 500;
  font-size: 14px;
}

.stat-item-cost-chart-wrap {
  height: 440px;
  border-radius: 10px;
  background: #fafbfc;
  border: 1px solid #f1f5f9;
  padding: 8px 4px 4px;
}

.stat-item-cost-empty-chart {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 280px;
  color: #94a3b8;
  font-size: 14px;
  background: #f8fafc;
  border-radius: 10px;
  border: 1px dashed #e2e8f0;
}
/* ===== 그룹웨어 허브 — 심플·밝은 스타일 ===== */
.groupware-hub {
  --gw-page-bg: #f3f4f6;
  --gw-radius: 14px;
  --gw-radius-sm: 10px;
  min-height: min(100%, 100dvh);
  padding: 32px 28px 48px;
  margin: 0 auto;
  max-width: 1400px;
  position: relative;
  background: var(--gw-page-bg);
  box-sizing: border-box;
}

.groupware-hub > * {
  position: relative;
  z-index: 1;
}

/* ----- 헤더 ----- */
.groupware-hub__header {
  margin-bottom: 40px;
  padding-bottom: 28px;
  border-bottom: 1px solid #e5e7eb;
}

.groupware-hub__accent-line {
  height: 4px;
  width: 72px;
  background: linear-gradient(90deg, #3b82f6, #6366f1);
  border-radius: 2px;
  margin-bottom: 20px;
}

.groupware-hub__title {
  font-size: 20px !important;
  font-weight: 800 !important;
  color: #111827 !important;
  margin: 0 0 8px 0 !important;
  letter-spacing: -0.03em;
  line-height: 1.2 !important;
}

.groupware-hub__subtitle {
  font-size: 0.9375rem !important;
  color: #6b7280 !important;
  margin: 0 !important;
  letter-spacing: 0.01em;
}

/* ----- 피처드 카드 (메인 4개) — 밝은 카드 ----- */
.groupware-hub__featured {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  margin-bottom: 32px;
}

@media (max-width: 900px) {
  .groupware-hub__featured {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }
}

@media (max-width: 480px) {
  .groupware-hub__featured {
    grid-template-columns: 1fr;
  }
}

.groupware-hub__card--featured {
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: var(--gw-radius);
  padding: 28px 20px;
  cursor: pointer;
  min-height: 160px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
  font-family: inherit;
  appearance: none;
  outline: none;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease, background 0.2s ease;
  animation: gw-card-in 0.5s ease backwards;
}

.groupware-hub__card--featured:nth-child(1) { animation-delay: 0.05s; }
.groupware-hub__card--featured:nth-child(2) { animation-delay: 0.1s; }
.groupware-hub__card--featured:nth-child(3) { animation-delay: 0.15s; }
.groupware-hub__card--featured:nth-child(4) { animation-delay: 0.2s; }

@keyframes gw-card-in {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.groupware-hub__card--featured:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.08);
  border-color: #93c5fd;
  background: #fafbff;
}

.groupware-hub__card--featured:active {
  transform: translateY(-1px);
}

.groupware-hub__card--featured:focus {
  outline: none;
}

.groupware-hub__card--featured:focus-visible {
  box-shadow:
    0 1px 3px rgba(0, 0, 0, 0.06),
    0 0 0 2px rgba(59, 130, 246, 0.45);
  border-color: #60a5fa;
}

.groupware-hub__card-icon--featured {
  width: 56px;
  height: 56px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  flex-shrink: 0;
  transition: transform 0.2s ease;
}

.groupware-hub__card--featured:hover .groupware-hub__card-icon--featured {
  transform: scale(1.05);
}

.groupware-hub__card-title--featured {
  font-size: 1rem !important;
  font-weight: 600 !important;
  color: #374151 !important;
  margin: 0 !important;
  text-align: center;
  line-height: 1.3;
}

.groupware-hub__card--featured:hover .groupware-hub__card-title--featured {
  color: #1f2937 !important;
}

/* 피처드 아이콘 — 파스텔 배경 + 포인트 컬러 */
.groupware-hub__card-icon--schedule { background: #eff6ff; color: #2563eb; }
.groupware-hub__card-icon--board { background: #ecfdf5; color: #059669; }
.groupware-hub__card-icon--documents { background: #f5f3ff; color: #7c3aed; }
.groupware-hub__card-icon--inventory { background: #fffbeb; color: #d97706; }

/* ----- 하단 2열: 결재·기안 | 영업일지 ----- */
.groupware-hub__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  align-items: start;
}

@media (max-width: 700px) {
  .groupware-hub__row {
    grid-template-columns: 1fr;
  }
}

.groupware-hub__panel {
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: var(--gw-radius);
  padding: 20px;
  animation: gw-card-in 0.5s ease backwards;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.groupware-hub__panel:nth-child(1) { animation-delay: 0.25s; }
.groupware-hub__panel:nth-child(2) { animation-delay: 0.3s; }

.groupware-hub__section-title {
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  color: #6b7280 !important;
  letter-spacing: 0.02em;
  margin: 0 0 16px 0 !important;
  padding-bottom: 10px;
  border-bottom: 1px solid #e5e7eb;
}

.groupware-hub__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}

@media (min-width: 500px) {
  .groupware-hub__grid--two { grid-template-columns: repeat(2, 1fr); }
  .groupware-hub__grid--four { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 800px) {
  .groupware-hub__grid--four { grid-template-columns: repeat(4, 1fr); }
}

/* ----- 퀵 링크 카드 — 밝은 카드 ----- */
.groupware-hub__card {
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: var(--gw-radius-sm);
  padding: 14px 12px;
  cursor: pointer;
  transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  min-height: 96px;
  justify-content: center;
  font-family: inherit;
  appearance: none;
  outline: none;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}

.groupware-hub__card:focus {
  outline: none;
}

.groupware-hub__card:focus-visible {
  box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.4);
}

.groupware-hub__card:hover {
  border-color: #93c5fd;
  background: #fafbff;
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.06);
}

.groupware-hub__card:active {
  transform: translateY(0);
}

.groupware-hub__card-icon {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.125rem;
  flex-shrink: 0;
  transition: transform 0.2s ease;
}

.groupware-hub__card:hover .groupware-hub__card-icon {
  transform: scale(1.05);
}

.groupware-hub__card-icon--approvals { background: #fce7f3; color: #db2777; }
.groupware-hub__card-icon--drafts { background: #ccfbf1; color: #0d9488; }
.groupware-hub__card-icon--diary { background: #eff6ff; color: #2563eb; }
.groupware-hub__card-icon--diary-calendar { background: #e0f2fe; color: #0369a1; }
.groupware-hub__card-icon--diary-analytics { background: #fef3c7; color: #b45309; }

.groupware-hub__card-title {
  font-size: 0.8125rem !important;
  font-weight: 600 !important;
  color: #374151 !important;
  margin: 0 !important;
  text-align: center;
  line-height: 1.25;
}

.groupware-hub__card:hover .groupware-hub__card-title {
  color: #1f2937 !important;
}

@media (prefers-reduced-motion: reduce) {
  .groupware-hub__card--featured,
  .groupware-hub__panel {
    animation: none;
  }

  .groupware-hub__card--featured,
  .groupware-hub__card,
  .groupware-hub__card-icon--featured,
  .groupware-hub__card-icon {
    transition: none;
  }

  .groupware-hub__card--featured:hover,
  .groupware-hub__card--featured:active,
  .groupware-hub__card:hover,
  .groupware-hub__card:active {
    transform: none;
  }

  .groupware-hub__card--featured:hover .groupware-hub__card-icon--featured,
  .groupware-hub__card:hover .groupware-hub__card-icon {
    transform: none;
  }
}

.rbc-btn {
  color: inherit;
  font: inherit;
  margin: 0;
}

button.rbc-btn {
  overflow: visible;
  text-transform: none;
  -webkit-appearance: button;
     -moz-appearance: button;
          appearance: button;
  cursor: pointer;
}

button[disabled].rbc-btn {
  cursor: not-allowed;
}

button.rbc-input::-moz-focus-inner {
  border: 0;
  padding: 0;
}

.rbc-calendar {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
}

.rbc-m-b-negative-3 {
  margin-bottom: -3px;
}

.rbc-h-full {
  height: 100%;
}

.rbc-calendar *,
.rbc-calendar *:before,
.rbc-calendar *:after {
  -webkit-box-sizing: inherit;
          box-sizing: inherit;
}

.rbc-abs-full, .rbc-row-bg {
  overflow: hidden;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}

.rbc-ellipsis, .rbc-show-more, .rbc-row-segment .rbc-event-content, .rbc-event-label {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.rbc-rtl {
  direction: rtl;
}

.rbc-off-range {
  color: #999999;
}

.rbc-off-range-bg {
  background: #e6e6e6;
}

.rbc-header {
  overflow: hidden;
  -webkit-box-flex: 1;
      -ms-flex: 1 0 0%;
          flex: 1 0 0%;
  text-overflow: ellipsis;
  white-space: nowrap;
  padding: 0 3px;
  text-align: center;
  vertical-align: middle;
  font-weight: bold;
  font-size: 90%;
  min-height: 0;
  border-bottom: 1px solid #ddd;
}
.rbc-header + .rbc-header {
  border-left: 1px solid #ddd;
}
.rbc-rtl .rbc-header + .rbc-header {
  border-left-width: 0;
  border-right: 1px solid #ddd;
}
.rbc-header > a, .rbc-header > a:active, .rbc-header > a:visited {
  color: inherit;
  text-decoration: none;
}

.rbc-button-link {
  color: inherit;
  background: none;
  margin: 0;
  padding: 0;
  border: none;
  cursor: pointer;
  -webkit-user-select: text;
     -moz-user-select: text;
      -ms-user-select: text;
          user-select: text;
}

.rbc-row-content {
  position: relative;
  -moz-user-select: none;
   -ms-user-select: none;
       user-select: none;
  -webkit-user-select: none;
  z-index: 4;
}

.rbc-row-content-scrollable {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  height: 100%;
}
.rbc-row-content-scrollable .rbc-row-content-scroll-container {
  height: 100%;
  overflow-y: scroll;
  -ms-overflow-style: none; /* IE and Edge */
  scrollbar-width: none; /* Firefox */
  -ms-overflow-style: none; /* IE and Edge */
  scrollbar-width: none; /* Firefox */
  /* Hide scrollbar for Chrome, Safari and Opera */
}
.rbc-row-content-scrollable .rbc-row-content-scroll-container::-webkit-scrollbar {
  display: none;
}

.rbc-today {
  background-color: #eaf6ff;
}

.rbc-toolbar {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-bottom: 10px;
  font-size: 16px;
}
.rbc-toolbar .rbc-toolbar-label {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  padding: 0 10px;
  text-align: center;
}
.rbc-toolbar button {
  color: #373a3c;
  display: inline-block;
  margin: 0;
  text-align: center;
  vertical-align: middle;
  background: none;
  background-image: none;
  border: 1px solid #ccc;
  padding: 0.375rem 1rem;
  border-radius: 4px;
  line-height: normal;
  white-space: nowrap;
}
.rbc-toolbar button:active, .rbc-toolbar button.rbc-active {
  background-image: none;
  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
          box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  background-color: #e6e6e6;
  border-color: #adadad;
}
.rbc-toolbar button:active:hover, .rbc-toolbar button:active:focus, .rbc-toolbar button.rbc-active:hover, .rbc-toolbar button.rbc-active:focus {
  color: #373a3c;
  background-color: #d4d4d4;
  border-color: #8c8c8c;
}
.rbc-toolbar button:focus {
  color: #373a3c;
  background-color: #e6e6e6;
  border-color: #adadad;
}
.rbc-toolbar button:hover {
  color: #373a3c;
  cursor: pointer;
  background-color: #e6e6e6;
  border-color: #adadad;
}

.rbc-btn-group {
  display: inline-block;
  white-space: nowrap;
}
.rbc-btn-group > button:first-child:not(:last-child) {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.rbc-btn-group > button:last-child:not(:first-child) {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.rbc-rtl .rbc-btn-group > button:first-child:not(:last-child) {
  border-radius: 4px;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.rbc-rtl .rbc-btn-group > button:last-child:not(:first-child) {
  border-radius: 4px;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.rbc-btn-group > button:not(:first-child):not(:last-child) {
  border-radius: 0;
}
.rbc-btn-group button + button {
  margin-left: -1px;
}
.rbc-rtl .rbc-btn-group button + button {
  margin-left: 0;
  margin-right: -1px;
}
.rbc-btn-group + .rbc-btn-group, .rbc-btn-group + button {
  margin-left: 10px;
}

@media (max-width: 767px) {
  .rbc-toolbar {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}
.rbc-event, .rbc-day-slot .rbc-background-event {
  border: none;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-box-shadow: none;
          box-shadow: none;
  margin: 0;
  padding: 2px 5px;
  background-color: #3174ad;
  border-radius: 5px;
  color: #fff;
  cursor: pointer;
  width: 100%;
  text-align: left;
}
.rbc-slot-selecting .rbc-event, .rbc-slot-selecting .rbc-day-slot .rbc-background-event, .rbc-day-slot .rbc-slot-selecting .rbc-background-event {
  cursor: inherit;
  pointer-events: none;
}
.rbc-event.rbc-selected, .rbc-day-slot .rbc-selected.rbc-background-event {
  background-color: #265985;
}
.rbc-event:focus, .rbc-day-slot .rbc-background-event:focus {
  outline: 5px auto #3b99fc;
}

.rbc-event-label {
  font-size: 80%;
}

.rbc-event-overlaps {
  -webkit-box-shadow: -1px 1px 5px 0px rgba(51, 51, 51, 0.5);
          box-shadow: -1px 1px 5px 0px rgba(51, 51, 51, 0.5);
}

.rbc-event-continues-prior {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

.rbc-event-continues-after {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

.rbc-event-continues-earlier {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

.rbc-event-continues-later {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

.rbc-row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
}

.rbc-row-segment {
  padding: 0 1px 1px 1px;
}
.rbc-selected-cell {
  background-color: rgba(0, 0, 0, 0.1);
}

.rbc-show-more {
  background-color: rgba(255, 255, 255, 0.3);
  z-index: 4;
  font-weight: bold;
  font-size: 85%;
  height: auto;
  line-height: normal;
  color: #3174ad;
}
.rbc-show-more:hover, .rbc-show-more:focus {
  color: #265985;
}

.rbc-month-view {
  position: relative;
  border: 1px solid #ddd;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-flex: 1;
      -ms-flex: 1 0 0px;
          flex: 1 0 0;
  width: 100%;
  -moz-user-select: none;
   -ms-user-select: none;
       user-select: none;
  -webkit-user-select: none;
  height: 100%;
}

.rbc-month-header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
}

.rbc-month-row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  position: relative;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-flex: 1;
      -ms-flex: 1 0 0px;
          flex: 1 0 0;
  -ms-flex-preferred-size: 0px;
      flex-basis: 0px;
  overflow: hidden;
  height: 100%;
}
.rbc-month-row + .rbc-month-row {
  border-top: 1px solid #ddd;
}

.rbc-date-cell {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          flex: 1 1 0;
  min-width: 0;
  padding-right: 5px;
  text-align: right;
}
.rbc-date-cell.rbc-now {
  font-weight: bold;
}
.rbc-date-cell > a, .rbc-date-cell > a:active, .rbc-date-cell > a:visited {
  color: inherit;
  text-decoration: none;
}

.rbc-row-bg {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-box-flex: 1;
      -ms-flex: 1 0 0px;
          flex: 1 0 0;
  overflow: hidden;
  right: 1px;
}

.rbc-day-bg {
  -webkit-box-flex: 1;
      -ms-flex: 1 0 0%;
          flex: 1 0 0%;
}
.rbc-day-bg + .rbc-day-bg {
  border-left: 1px solid #ddd;
}
.rbc-rtl .rbc-day-bg + .rbc-day-bg {
  border-left-width: 0;
  border-right: 1px solid #ddd;
}

.rbc-overlay {
  position: absolute;
  z-index: 5;
  border: 1px solid #e5e5e5;
  background-color: #fff;
  -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.25);
          box-shadow: 0 5px 15px rgba(0, 0, 0, 0.25);
  padding: 10px;
}
.rbc-overlay > * + * {
  margin-top: 1px;
}

.rbc-overlay-header {
  border-bottom: 1px solid #e5e5e5;
  margin: -10px -10px 5px -10px;
  padding: 2px 10px;
}

.rbc-agenda-view {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-flex: 1;
      -ms-flex: 1 0 0px;
          flex: 1 0 0;
  overflow: auto;
}
.rbc-agenda-view table.rbc-agenda-table {
  width: 100%;
  border: 1px solid #ddd;
  border-spacing: 0;
  border-collapse: collapse;
}
.rbc-agenda-view table.rbc-agenda-table tbody > tr > td {
  padding: 5px 10px;
  vertical-align: top;
}
.rbc-agenda-view table.rbc-agenda-table .rbc-agenda-time-cell {
  padding-left: 15px;
  padding-right: 15px;
  text-transform: lowercase;
}
.rbc-agenda-view table.rbc-agenda-table tbody > tr > td + td {
  border-left: 1px solid #ddd;
}
.rbc-rtl .rbc-agenda-view table.rbc-agenda-table tbody > tr > td + td {
  border-left-width: 0;
  border-right: 1px solid #ddd;
}
.rbc-agenda-view table.rbc-agenda-table tbody > tr + tr {
  border-top: 1px solid #ddd;
}
.rbc-agenda-view table.rbc-agenda-table thead > tr > th {
  padding: 3px 5px;
  text-align: left;
  border-bottom: 1px solid #ddd;
}
.rbc-rtl .rbc-agenda-view table.rbc-agenda-table thead > tr > th {
  text-align: right;
}

.rbc-agenda-time-cell {
  text-transform: lowercase;
}
.rbc-agenda-time-cell .rbc-continues-after:after {
  content: " »";
}
.rbc-agenda-time-cell .rbc-continues-prior:before {
  content: "« ";
}

.rbc-agenda-date-cell,
.rbc-agenda-time-cell {
  white-space: nowrap;
}

.rbc-agenda-event-cell {
  width: 100%;
}

.rbc-time-column {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  min-height: 100%;
}
.rbc-time-column .rbc-timeslot-group {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}

.rbc-timeslot-group {
  border-bottom: 1px solid #ddd;
  min-height: 40px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-flow: column nowrap;
          flex-flow: column nowrap;
}

.rbc-time-gutter,
.rbc-header-gutter {
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
}

.rbc-label {
  padding: 0 5px;
}

.rbc-day-slot {
  position: relative;
}
.rbc-day-slot .rbc-events-container {
  bottom: 0;
  left: 0;
  position: absolute;
  right: 0;
  margin-right: 10px;
  top: 0;
}
.rbc-day-slot .rbc-events-container.rbc-rtl {
  left: 10px;
  right: 0;
}
.rbc-day-slot .rbc-event, .rbc-day-slot .rbc-background-event {
  border: 1px solid #265985;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  max-height: 100%;
  min-height: 20px;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-flow: column wrap;
          flex-flow: column wrap;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  overflow: hidden;
  position: absolute;
}
.rbc-day-slot .rbc-background-event {
  opacity: 0.75;
}
.rbc-day-slot .rbc-event-label {
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
  padding-right: 5px;
  width: auto;
}
.rbc-day-slot .rbc-event-content {
  width: 100%;
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          flex: 1 1 0;
  word-wrap: break-word;
  line-height: 1;
  height: 100%;
  min-height: 1em;
}
.rbc-day-slot .rbc-time-slot {
  border-top: 1px solid #f7f7f7;
}

.rbc-time-view-resources .rbc-time-gutter,
.rbc-time-view-resources .rbc-time-header-gutter {
  position: sticky;
  left: 0;
  background-color: white;
  border-right: 1px solid #ddd;
  z-index: 10;
  margin-right: -1px;
}
.rbc-time-view-resources .rbc-time-header {
  overflow: hidden;
}
.rbc-time-view-resources .rbc-time-header-content {
  min-width: auto;
  -webkit-box-flex: 1;
      -ms-flex: 1 0 0px;
          flex: 1 0 0;
  -ms-flex-preferred-size: 0px;
      flex-basis: 0px;
}
.rbc-time-view-resources .rbc-time-header-cell-single-day {
  display: none;
}
.rbc-time-view-resources .rbc-day-slot {
  min-width: 140px;
}
.rbc-time-view-resources .rbc-header,
.rbc-time-view-resources .rbc-day-bg {
  width: 140px;
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          flex: 1 1 0;
  -ms-flex-preferred-size: 0 px;
      flex-basis: 0 px;
}

.rbc-time-header-content + .rbc-time-header-content {
  margin-left: -1px;
}

.rbc-time-slot {
  -webkit-box-flex: 1;
      -ms-flex: 1 0 0px;
          flex: 1 0 0;
}
.rbc-time-slot.rbc-now {
  font-weight: bold;
}

.rbc-day-header {
  text-align: center;
}

.rbc-slot-selection {
  z-index: 10;
  position: absolute;
  background-color: rgba(0, 0, 0, 0.5);
  color: white;
  font-size: 75%;
  width: 100%;
  padding: 3px;
}

.rbc-slot-selecting {
  cursor: move;
}

.rbc-time-view {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  width: 100%;
  border: 1px solid #ddd;
  min-height: 0;
}
.rbc-time-view .rbc-time-gutter {
  white-space: nowrap;
  text-align: right;
}
.rbc-time-view .rbc-allday-cell {
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
  width: 100%;
  height: 100%;
  position: relative;
}
.rbc-time-view .rbc-allday-cell + .rbc-allday-cell {
  border-left: 1px solid #ddd;
}
.rbc-time-view .rbc-allday-events {
  position: relative;
  z-index: 4;
}
.rbc-time-view .rbc-row {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  min-height: 20px;
}

.rbc-time-header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
}
.rbc-time-header.rbc-overflowing {
  border-right: 1px solid #ddd;
}
.rbc-rtl .rbc-time-header.rbc-overflowing {
  border-right-width: 0;
  border-left: 1px solid #ddd;
}
.rbc-time-header > .rbc-row:first-child {
  border-bottom: 1px solid #ddd;
}
.rbc-time-header > .rbc-row.rbc-row-resource {
  border-bottom: 1px solid #ddd;
}

.rbc-time-header-cell-single-day {
  display: none;
}

.rbc-time-header-content {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  min-width: 0;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  border-left: 1px solid #ddd;
}
.rbc-rtl .rbc-time-header-content {
  border-left-width: 0;
  border-right: 1px solid #ddd;
}
.rbc-time-header-content > .rbc-row.rbc-row-resource {
  border-bottom: 1px solid #ddd;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}

.rbc-time-content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 1;
      -ms-flex: 1 0 0%;
          flex: 1 0 0%;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  width: 100%;
  border-top: 2px solid #ddd;
  overflow-y: auto;
  position: relative;
}
.rbc-time-content > .rbc-time-gutter {
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
}
.rbc-time-content > * + * > * {
  border-left: 1px solid #ddd;
}
.rbc-rtl .rbc-time-content > * + * > * {
  border-left-width: 0;
  border-right: 1px solid #ddd;
}
.rbc-time-content > .rbc-day-slot {
  width: 100%;
  -moz-user-select: none;
   -ms-user-select: none;
       user-select: none;
  -webkit-user-select: none;
}

.rbc-current-time-indicator {
  position: absolute;
  z-index: 3;
  left: 0;
  right: 0;
  height: 1px;
  background-color: #74ad31;
  pointer-events: none;
}

.rbc-resource-grouping.rbc-time-header-content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
.rbc-resource-grouping .rbc-row .rbc-header {
  width: 141px;
}

/*# sourceMappingURL=react-big-calendar.css.map *//*!
 * Quill Editor v1.3.7
 * https://quilljs.com/
 * Copyright (c) 2014, Jason Chen
 * Copyright (c) 2013, salesforce.com
 */
.ql-container {
  box-sizing: border-box;
  font-family: Helvetica, Arial, sans-serif;
  font-size: 13px;
  height: 100%;
  margin: 0px;
  position: relative;
}
.ql-container.ql-disabled .ql-tooltip {
  visibility: hidden;
}
.ql-container.ql-disabled .ql-editor ul[data-checked] > li::before {
  pointer-events: none;
}
.ql-clipboard {
  left: -100000px;
  height: 1px;
  overflow-y: hidden;
  position: absolute;
  top: 50%;
}
.ql-clipboard p {
  margin: 0;
  padding: 0;
}
.ql-editor {
  box-sizing: border-box;
  line-height: 1.42;
  height: 100%;
  outline: none;
  overflow-y: auto;
  padding: 12px 15px;
  tab-size: 4;
  -moz-tab-size: 4;
  text-align: left;
  white-space: pre-wrap;
  word-wrap: break-word;
}
.ql-editor > * {
  cursor: text;
}
.ql-editor p,
.ql-editor ol,
.ql-editor ul,
.ql-editor pre,
.ql-editor blockquote,
.ql-editor h1,
.ql-editor h2,
.ql-editor h3,
.ql-editor h4,
.ql-editor h5,
.ql-editor h6 {
  margin: 0;
  padding: 0;
  counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
}
.ql-editor ol,
.ql-editor ul {
  padding-left: 1.5em;
}
.ql-editor ol > li,
.ql-editor ul > li {
  list-style-type: none;
}
.ql-editor ul > li::before {
  content: '\2022';
}
.ql-editor ul[data-checked=true],
.ql-editor ul[data-checked=false] {
  pointer-events: none;
}
.ql-editor ul[data-checked=true] > li *,
.ql-editor ul[data-checked=false] > li * {
  pointer-events: all;
}
.ql-editor ul[data-checked=true] > li::before,
.ql-editor ul[data-checked=false] > li::before {
  color: #777;
  cursor: pointer;
  pointer-events: all;
}
.ql-editor ul[data-checked=true] > li::before {
  content: '\2611';
}
.ql-editor ul[data-checked=false] > li::before {
  content: '\2610';
}
.ql-editor li::before {
  display: inline-block;
  white-space: nowrap;
  width: 1.2em;
}
.ql-editor li:not(.ql-direction-rtl)::before {
  margin-left: -1.5em;
  margin-right: 0.3em;
  text-align: right;
}
.ql-editor li.ql-direction-rtl::before {
  margin-left: 0.3em;
  margin-right: -1.5em;
}
.ql-editor ol li:not(.ql-direction-rtl),
.ql-editor ul li:not(.ql-direction-rtl) {
  padding-left: 1.5em;
}
.ql-editor ol li.ql-direction-rtl,
.ql-editor ul li.ql-direction-rtl {
  padding-right: 1.5em;
}
.ql-editor ol li {
  counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
  counter-increment: list-0;
}
.ql-editor ol li:before {
  content: counter(list-0, decimal) '. ';
}
.ql-editor ol li.ql-indent-1 {
  counter-increment: list-1;
}
.ql-editor ol li.ql-indent-1:before {
  content: counter(list-1, lower-alpha) '. ';
}
.ql-editor ol li.ql-indent-1 {
  counter-reset: list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
}
.ql-editor ol li.ql-indent-2 {
  counter-increment: list-2;
}
.ql-editor ol li.ql-indent-2:before {
  content: counter(list-2, lower-roman) '. ';
}
.ql-editor ol li.ql-indent-2 {
  counter-reset: list-3 list-4 list-5 list-6 list-7 list-8 list-9;
}
.ql-editor ol li.ql-indent-3 {
  counter-increment: list-3;
}
.ql-editor ol li.ql-indent-3:before {
  content: counter(list-3, decimal) '. ';
}
.ql-editor ol li.ql-indent-3 {
  counter-reset: list-4 list-5 list-6 list-7 list-8 list-9;
}
.ql-editor ol li.ql-indent-4 {
  counter-increment: list-4;
}
.ql-editor ol li.ql-indent-4:before {
  content: counter(list-4, lower-alpha) '. ';
}
.ql-editor ol li.ql-indent-4 {
  counter-reset: list-5 list-6 list-7 list-8 list-9;
}
.ql-editor ol li.ql-indent-5 {
  counter-increment: list-5;
}
.ql-editor ol li.ql-indent-5:before {
  content: counter(list-5, lower-roman) '. ';
}
.ql-editor ol li.ql-indent-5 {
  counter-reset: list-6 list-7 list-8 list-9;
}
.ql-editor ol li.ql-indent-6 {
  counter-increment: list-6;
}
.ql-editor ol li.ql-indent-6:before {
  content: counter(list-6, decimal) '. ';
}
.ql-editor ol li.ql-indent-6 {
  counter-reset: list-7 list-8 list-9;
}
.ql-editor ol li.ql-indent-7 {
  counter-increment: list-7;
}
.ql-editor ol li.ql-indent-7:before {
  content: counter(list-7, lower-alpha) '. ';
}
.ql-editor ol li.ql-indent-7 {
  counter-reset: list-8 list-9;
}
.ql-editor ol li.ql-indent-8 {
  counter-increment: list-8;
}
.ql-editor ol li.ql-indent-8:before {
  content: counter(list-8, lower-roman) '. ';
}
.ql-editor ol li.ql-indent-8 {
  counter-reset: list-9;
}
.ql-editor ol li.ql-indent-9 {
  counter-increment: list-9;
}
.ql-editor ol li.ql-indent-9:before {
  content: counter(list-9, decimal) '. ';
}
.ql-editor .ql-indent-1:not(.ql-direction-rtl) {
  padding-left: 3em;
}
.ql-editor li.ql-indent-1:not(.ql-direction-rtl) {
  padding-left: 4.5em;
}
.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right {
  padding-right: 3em;
}
.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right {
  padding-right: 4.5em;
}
.ql-editor .ql-indent-2:not(.ql-direction-rtl) {
  padding-left: 6em;
}
.ql-editor li.ql-indent-2:not(.ql-direction-rtl) {
  padding-left: 7.5em;
}
.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right {
  padding-right: 6em;
}
.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right {
  padding-right: 7.5em;
}
.ql-editor .ql-indent-3:not(.ql-direction-rtl) {
  padding-left: 9em;
}
.ql-editor li.ql-indent-3:not(.ql-direction-rtl) {
  padding-left: 10.5em;
}
.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right {
  padding-right: 9em;
}
.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right {
  padding-right: 10.5em;
}
.ql-editor .ql-indent-4:not(.ql-direction-rtl) {
  padding-left: 12em;
}
.ql-editor li.ql-indent-4:not(.ql-direction-rtl) {
  padding-left: 13.5em;
}
.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right {
  padding-right: 12em;
}
.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right {
  padding-right: 13.5em;
}
.ql-editor .ql-indent-5:not(.ql-direction-rtl) {
  padding-left: 15em;
}
.ql-editor li.ql-indent-5:not(.ql-direction-rtl) {
  padding-left: 16.5em;
}
.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right {
  padding-right: 15em;
}
.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right {
  padding-right: 16.5em;
}
.ql-editor .ql-indent-6:not(.ql-direction-rtl) {
  padding-left: 18em;
}
.ql-editor li.ql-indent-6:not(.ql-direction-rtl) {
  padding-left: 19.5em;
}
.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right {
  padding-right: 18em;
}
.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right {
  padding-right: 19.5em;
}
.ql-editor .ql-indent-7:not(.ql-direction-rtl) {
  padding-left: 21em;
}
.ql-editor li.ql-indent-7:not(.ql-direction-rtl) {
  padding-left: 22.5em;
}
.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right {
  padding-right: 21em;
}
.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right {
  padding-right: 22.5em;
}
.ql-editor .ql-indent-8:not(.ql-direction-rtl) {
  padding-left: 24em;
}
.ql-editor li.ql-indent-8:not(.ql-direction-rtl) {
  padding-left: 25.5em;
}
.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right {
  padding-right: 24em;
}
.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right {
  padding-right: 25.5em;
}
.ql-editor .ql-indent-9:not(.ql-direction-rtl) {
  padding-left: 27em;
}
.ql-editor li.ql-indent-9:not(.ql-direction-rtl) {
  padding-left: 28.5em;
}
.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right {
  padding-right: 27em;
}
.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right {
  padding-right: 28.5em;
}
.ql-editor .ql-video {
  display: block;
  max-width: 100%;
}
.ql-editor .ql-video.ql-align-center {
  margin: 0 auto;
}
.ql-editor .ql-video.ql-align-right {
  margin: 0 0 0 auto;
}
.ql-editor .ql-bg-black {
  background-color: #000;
}
.ql-editor .ql-bg-red {
  background-color: #e60000;
}
.ql-editor .ql-bg-orange {
  background-color: #f90;
}
.ql-editor .ql-bg-yellow {
  background-color: #ff0;
}
.ql-editor .ql-bg-green {
  background-color: #008a00;
}
.ql-editor .ql-bg-blue {
  background-color: #06c;
}
.ql-editor .ql-bg-purple {
  background-color: #93f;
}
.ql-editor .ql-color-white {
  color: #fff;
}
.ql-editor .ql-color-red {
  color: #e60000;
}
.ql-editor .ql-color-orange {
  color: #f90;
}
.ql-editor .ql-color-yellow {
  color: #ff0;
}
.ql-editor .ql-color-green {
  color: #008a00;
}
.ql-editor .ql-color-blue {
  color: #06c;
}
.ql-editor .ql-color-purple {
  color: #93f;
}
.ql-editor .ql-font-serif {
  font-family: Georgia, Times New Roman, serif;
}
.ql-editor .ql-font-monospace {
  font-family: Monaco, Courier New, monospace;
}
.ql-editor .ql-size-small {
  font-size: 0.75em;
}
.ql-editor .ql-size-large {
  font-size: 1.5em;
}
.ql-editor .ql-size-huge {
  font-size: 2.5em;
}
.ql-editor .ql-direction-rtl {
  direction: rtl;
  text-align: inherit;
}
.ql-editor .ql-align-center {
  text-align: center;
}
.ql-editor .ql-align-justify {
  text-align: justify;
}
.ql-editor .ql-align-right {
  text-align: right;
}
.ql-editor.ql-blank::before {
  color: rgba(0,0,0,0.6);
  content: attr(data-placeholder);
  font-style: italic;
  left: 15px;
  pointer-events: none;
  position: absolute;
  right: 15px;
}
.ql-snow.ql-toolbar:after,
.ql-snow .ql-toolbar:after {
  clear: both;
  content: '';
  display: table;
}
.ql-snow.ql-toolbar button,
.ql-snow .ql-toolbar button {
  background: none;
  border: none;
  cursor: pointer;
  display: inline-block;
  float: left;
  height: 24px;
  padding: 3px 5px;
  width: 28px;
}
.ql-snow.ql-toolbar button svg,
.ql-snow .ql-toolbar button svg {
  float: left;
  height: 100%;
}
.ql-snow.ql-toolbar button:active:hover,
.ql-snow .ql-toolbar button:active:hover {
  outline: none;
}
.ql-snow.ql-toolbar input.ql-image[type=file],
.ql-snow .ql-toolbar input.ql-image[type=file] {
  display: none;
}
.ql-snow.ql-toolbar button:hover,
.ql-snow .ql-toolbar button:hover,
.ql-snow.ql-toolbar button:focus,
.ql-snow .ql-toolbar button:focus,
.ql-snow.ql-toolbar button.ql-active,
.ql-snow .ql-toolbar button.ql-active,
.ql-snow.ql-toolbar .ql-picker-label:hover,
.ql-snow .ql-toolbar .ql-picker-label:hover,
.ql-snow.ql-toolbar .ql-picker-label.ql-active,
.ql-snow .ql-toolbar .ql-picker-label.ql-active,
.ql-snow.ql-toolbar .ql-picker-item:hover,
.ql-snow .ql-toolbar .ql-picker-item:hover,
.ql-snow.ql-toolbar .ql-picker-item.ql-selected,
.ql-snow .ql-toolbar .ql-picker-item.ql-selected {
  color: #06c;
}
.ql-snow.ql-toolbar button:hover .ql-fill,
.ql-snow .ql-toolbar button:hover .ql-fill,
.ql-snow.ql-toolbar button:focus .ql-fill,
.ql-snow .ql-toolbar button:focus .ql-fill,
.ql-snow.ql-toolbar button.ql-active .ql-fill,
.ql-snow .ql-toolbar button.ql-active .ql-fill,
.ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill,
.ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill,
.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,
.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,
.ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill,
.ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill,
.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,
.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,
.ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill,
.ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill,
.ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill,
.ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill,
.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,
.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,
.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,
.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,
.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,
.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,
.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,
.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,
.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,
.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill {
  fill: #06c;
}
.ql-snow.ql-toolbar button:hover .ql-stroke,
.ql-snow .ql-toolbar button:hover .ql-stroke,
.ql-snow.ql-toolbar button:focus .ql-stroke,
.ql-snow .ql-toolbar button:focus .ql-stroke,
.ql-snow.ql-toolbar button.ql-active .ql-stroke,
.ql-snow .ql-toolbar button.ql-active .ql-stroke,
.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke,
.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke,
.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,
.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,
.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke,
.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke,
.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,
.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,
.ql-snow.ql-toolbar button:hover .ql-stroke-miter,
.ql-snow .ql-toolbar button:hover .ql-stroke-miter,
.ql-snow.ql-toolbar button:focus .ql-stroke-miter,
.ql-snow .ql-toolbar button:focus .ql-stroke-miter,
.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,
.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,
.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,
.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,
.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,
.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,
.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,
.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,
.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,
.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter {
  stroke: #06c;
}
@media (pointer: coarse) {
  .ql-snow.ql-toolbar button:hover:not(.ql-active),
  .ql-snow .ql-toolbar button:hover:not(.ql-active) {
    color: #444;
  }
  .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill,
  .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill,
  .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,
  .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill {
    fill: #444;
  }
  .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke,
  .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke,
  .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,
  .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter {
    stroke: #444;
  }
}
.ql-snow {
  box-sizing: border-box;
}
.ql-snow * {
  box-sizing: border-box;
}
.ql-snow .ql-hidden {
  display: none;
}
.ql-snow .ql-out-bottom,
.ql-snow .ql-out-top {
  visibility: hidden;
}
.ql-snow .ql-tooltip {
  position: absolute;
  transform: translateY(10px);
}
.ql-snow .ql-tooltip a {
  cursor: pointer;
  text-decoration: none;
}
.ql-snow .ql-tooltip.ql-flip {
  transform: translateY(-10px);
}
.ql-snow .ql-formats {
  display: inline-block;
  vertical-align: middle;
}
.ql-snow .ql-formats:after {
  clear: both;
  content: '';
  display: table;
}
.ql-snow .ql-stroke {
  fill: none;
  stroke: #444;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2;
}
.ql-snow .ql-stroke-miter {
  fill: none;
  stroke: #444;
  stroke-miterlimit: 10;
  stroke-width: 2;
}
.ql-snow .ql-fill,
.ql-snow .ql-stroke.ql-fill {
  fill: #444;
}
.ql-snow .ql-empty {
  fill: none;
}
.ql-snow .ql-even {
  fill-rule: evenodd;
}
.ql-snow .ql-thin,
.ql-snow .ql-stroke.ql-thin {
  stroke-width: 1;
}
.ql-snow .ql-transparent {
  opacity: 0.4;
}
.ql-snow .ql-direction svg:last-child {
  display: none;
}
.ql-snow .ql-direction.ql-active svg:last-child {
  display: inline;
}
.ql-snow .ql-direction.ql-active svg:first-child {
  display: none;
}
.ql-snow .ql-editor h1 {
  font-size: 2em;
}
.ql-snow .ql-editor h2 {
  font-size: 1.5em;
}
.ql-snow .ql-editor h3 {
  font-size: 1.17em;
}
.ql-snow .ql-editor h4 {
  font-size: 1em;
}
.ql-snow .ql-editor h5 {
  font-size: 0.83em;
}
.ql-snow .ql-editor h6 {
  font-size: 0.67em;
}
.ql-snow .ql-editor a {
  text-decoration: underline;
}
.ql-snow .ql-editor blockquote {
  border-left: 4px solid #ccc;
  margin-bottom: 5px;
  margin-top: 5px;
  padding-left: 16px;
}
.ql-snow .ql-editor code,
.ql-snow .ql-editor pre {
  background-color: #f0f0f0;
  border-radius: 3px;
}
.ql-snow .ql-editor pre {
  white-space: pre-wrap;
  margin-bottom: 5px;
  margin-top: 5px;
  padding: 5px 10px;
}
.ql-snow .ql-editor code {
  font-size: 85%;
  padding: 2px 4px;
}
.ql-snow .ql-editor pre.ql-syntax {
  background-color: #23241f;
  color: #f8f8f2;
  overflow: visible;
}
.ql-snow .ql-editor img {
  max-width: 100%;
}
.ql-snow .ql-picker {
  color: #444;
  display: inline-block;
  float: left;
  font-size: 14px;
  font-weight: 500;
  height: 24px;
  position: relative;
  vertical-align: middle;
}
.ql-snow .ql-picker-label {
  cursor: pointer;
  display: inline-block;
  height: 100%;
  padding-left: 8px;
  padding-right: 2px;
  position: relative;
  width: 100%;
}
.ql-snow .ql-picker-label::before {
  display: inline-block;
  line-height: 22px;
}
.ql-snow .ql-picker-options {
  background-color: #fff;
  display: none;
  min-width: 100%;
  padding: 4px 8px;
  position: absolute;
  white-space: nowrap;
}
.ql-snow .ql-picker-options .ql-picker-item {
  cursor: pointer;
  display: block;
  padding-bottom: 5px;
  padding-top: 5px;
}
.ql-snow .ql-picker.ql-expanded .ql-picker-label {
  color: #ccc;
  z-index: 2;
}
.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill {
  fill: #ccc;
}
.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke {
  stroke: #ccc;
}
.ql-snow .ql-picker.ql-expanded .ql-picker-options {
  display: block;
  margin-top: -1px;
  top: 100%;
  z-index: 1;
}
.ql-snow .ql-color-picker,
.ql-snow .ql-icon-picker {
  width: 28px;
}
.ql-snow .ql-color-picker .ql-picker-label,
.ql-snow .ql-icon-picker .ql-picker-label {
  padding: 2px 4px;
}
.ql-snow .ql-color-picker .ql-picker-label svg,
.ql-snow .ql-icon-picker .ql-picker-label svg {
  right: 4px;
}
.ql-snow .ql-icon-picker .ql-picker-options {
  padding: 4px 0px;
}
.ql-snow .ql-icon-picker .ql-picker-item {
  height: 24px;
  width: 24px;
  padding: 2px 4px;
}
.ql-snow .ql-color-picker .ql-picker-options {
  padding: 3px 5px;
  width: 152px;
}
.ql-snow .ql-color-picker .ql-picker-item {
  border: 1px solid transparent;
  float: left;
  height: 16px;
  margin: 2px;
  padding: 0px;
  width: 16px;
}
.ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg {
  position: absolute;
  margin-top: -9px;
  right: 0;
  top: 50%;
  width: 18px;
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=''])::before,
.ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=''])::before,
.ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=''])::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=''])::before,
.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=''])::before,
.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=''])::before {
  content: attr(data-label);
}
.ql-snow .ql-picker.ql-header {
  width: 98px;
}
.ql-snow .ql-picker.ql-header .ql-picker-label::before,
.ql-snow .ql-picker.ql-header .ql-picker-item::before {
  content: 'Normal';
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]::before {
  content: 'Heading 1';
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]::before {
  content: 'Heading 2';
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]::before {
  content: 'Heading 3';
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]::before {
  content: 'Heading 4';
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]::before {
  content: 'Heading 5';
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]::before {
  content: 'Heading 6';
}
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]::before {
  font-size: 2em;
}
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]::before {
  font-size: 1.5em;
}
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]::before {
  font-size: 1.17em;
}
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]::before {
  font-size: 1em;
}
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]::before {
  font-size: 0.83em;
}
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]::before {
  font-size: 0.67em;
}
.ql-snow .ql-picker.ql-font {
  width: 108px;
}
.ql-snow .ql-picker.ql-font .ql-picker-label::before,
.ql-snow .ql-picker.ql-font .ql-picker-item::before {
  content: 'Sans Serif';
}
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]::before,
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]::before {
  content: 'Serif';
}
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]::before,
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before {
  content: 'Monospace';
}
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]::before {
  font-family: Georgia, Times New Roman, serif;
}
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before {
  font-family: Monaco, Courier New, monospace;
}
.ql-snow .ql-picker.ql-size {
  width: 98px;
}
.ql-snow .ql-picker.ql-size .ql-picker-label::before,
.ql-snow .ql-picker.ql-size .ql-picker-item::before {
  content: 'Normal';
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]::before,
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]::before {
  content: 'Small';
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]::before,
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]::before {
  content: 'Large';
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]::before,
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]::before {
  content: 'Huge';
}
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]::before {
  font-size: 10px;
}
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]::before {
  font-size: 18px;
}
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]::before {
  font-size: 32px;
}
.ql-snow .ql-color-picker.ql-background .ql-picker-item {
  background-color: #fff;
}
.ql-snow .ql-color-picker.ql-color .ql-picker-item {
  background-color: #000;
}
.ql-toolbar.ql-snow {
  border: 1px solid #ccc;
  box-sizing: border-box;
  font-family: 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif;
  padding: 8px;
}
.ql-toolbar.ql-snow .ql-formats {
  margin-right: 15px;
}
.ql-toolbar.ql-snow .ql-picker-label {
  border: 1px solid transparent;
}
.ql-toolbar.ql-snow .ql-picker-options {
  border: 1px solid transparent;
  box-shadow: rgba(0,0,0,0.2) 0 2px 8px;
}
.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label {
  border-color: #ccc;
}
.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options {
  border-color: #ccc;
}
.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected,
.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover {
  border-color: #000;
}
.ql-toolbar.ql-snow + .ql-container.ql-snow {
  border-top: 0px;
}
.ql-snow .ql-tooltip {
  background-color: #fff;
  border: 1px solid #ccc;
  box-shadow: 0px 0px 5px #ddd;
  color: #444;
  padding: 5px 12px;
  white-space: nowrap;
}
.ql-snow .ql-tooltip::before {
  content: "Visit URL:";
  line-height: 26px;
  margin-right: 8px;
}
.ql-snow .ql-tooltip input[type=text] {
  display: none;
  border: 1px solid #ccc;
  font-size: 13px;
  height: 26px;
  margin: 0px;
  padding: 3px 5px;
  width: 170px;
}
.ql-snow .ql-tooltip a.ql-preview {
  display: inline-block;
  max-width: 200px;
  overflow-x: hidden;
  text-overflow: ellipsis;
  vertical-align: top;
}
.ql-snow .ql-tooltip a.ql-action::after {
  border-right: 1px solid #ccc;
  content: 'Edit';
  margin-left: 16px;
  padding-right: 8px;
}
.ql-snow .ql-tooltip a.ql-remove::before {
  content: 'Remove';
  margin-left: 8px;
}
.ql-snow .ql-tooltip a {
  line-height: 26px;
}
.ql-snow .ql-tooltip.ql-editing a.ql-preview,
.ql-snow .ql-tooltip.ql-editing a.ql-remove {
  display: none;
}
.ql-snow .ql-tooltip.ql-editing input[type=text] {
  display: inline-block;
}
.ql-snow .ql-tooltip.ql-editing a.ql-action::after {
  border-right: 0px;
  content: 'Save';
  padding-right: 0px;
}
.ql-snow .ql-tooltip[data-mode=link]::before {
  content: "Enter link:";
}
.ql-snow .ql-tooltip[data-mode=formula]::before {
  content: "Enter formula:";
}
.ql-snow .ql-tooltip[data-mode=video]::before {
  content: "Enter video:";
}
.ql-snow a {
  color: #06c;
}
.ql-container.ql-snow {
  border: 1px solid #ccc;
}
/* 기안지 페이지 디자인 개선 */

.draft-requests-page {
  --dr-accent: #2563eb;
  --dr-accent-soft: rgba(37, 99, 235, 0.08);
  --dr-surface: #ffffff;
  --dr-bg: #f1f5f9;
  --dr-border: #e2e8f0;
  --dr-text: #0f172a;
  --dr-text-muted: #64748b;
  --dr-radius: 12px;
  --dr-radius-sm: 8px;
  /* 타이틀 제외 버튼·데이터 통일 크기 */
  --dr-body-font: 13px;
  padding: 24px;
  background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
  min-height: 100vh;
}

/* 메인 카드 */
.draft-requests-page .dr-main-card.ant-card {
  border-radius: var(--dr-radius);
  border: 1px solid var(--dr-border);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06);
  overflow: hidden;
}

.draft-requests-page .dr-main-card .ant-card-head {
  border-bottom: 1px solid var(--dr-border);
  padding: 16px 20px;
  background: linear-gradient(165deg, #f8fafc 0%, #fff 50%);
  position: relative;
}

.draft-requests-page .dr-main-card .ant-card-head::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  background: linear-gradient(180deg, var(--dr-accent) 0%, #3b82f6 100%);
  border-radius: 0 2px 2px 0;
}

/* 기안지 관리 - 페이지 메인 타이틀 (index.css 전역 11px 덮어씀) */
.draft-requests-page .dr-main-card .ant-card-head .ant-card-head-title {
  font-size: 20px !important;
  font-weight: 600 !important;
  color: var(--dr-text);
  padding-left: 8px;
  line-height: 1.4 !important;
}

.draft-requests-page .dr-main-card .ant-card-body {
  padding: 20px;
}

/* 검색 필터 카드 */
.draft-requests-page .dr-filter-card.ant-card {
  margin-bottom: 20px;
  border-radius: var(--dr-radius-sm);
  border: 1px solid var(--dr-border);
  background: var(--dr-surface);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}

.draft-requests-page .dr-filter-card .ant-card-body {
  padding: 16px 20px;
}

.draft-requests-page .dr-filter-label {
  display: block;
  font-size: var(--dr-body-font);
  color: var(--dr-text-muted);
  font-weight: 500;
  margin-bottom: 6px;
}

.draft-requests-page .dr-filter-card .ant-select,
.draft-requests-page .dr-filter-card .ant-picker,
.draft-requests-page .dr-filter-card .ant-input {
  border-radius: 8px;
}

.draft-requests-page .dr-filter-card .ant-btn {
  border-radius: 8px;
}

/* 액션 바 (목록 제목 + 버튼) */
.draft-requests-page .dr-action-bar {
  margin-bottom: 16px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
}

/* 기안지 목록 - 기안지 관리와 동일 크기 */
.draft-requests-page .dr-action-bar-title {
  font-size: 20px !important;
  font-weight: 600;
  color: var(--dr-text);
}

.draft-requests-page .dr-action-bar-meta {
  font-weight: 400;
  color: var(--dr-text-muted);
  font-size: var(--dr-body-font);
  margin-left: 8px;
}

.draft-requests-page .dr-action-bar-selection {
  font-size: var(--dr-body-font);
}

.draft-requests-submit-modal .dr-submit-approver-label {
  font-size: var(--dr-body-font);
}

.draft-requests-page .dr-action-bar .ant-btn {
  border-radius: 8px;
}

.draft-requests-page .dr-action-bar .ant-btn-primary {
  box-shadow: 0 2px 8px rgba(37, 99, 235, 0.25);
  font-weight: 500;
}

.draft-requests-page .dr-action-bar .ant-btn-primary:hover {
  box-shadow: 0 4px 12px rgba(37, 99, 235, 0.35);
}

/* 테이블 래퍼 */
.draft-requests-page .dr-table-wrap {
  background: var(--dr-surface);
  border-radius: var(--dr-radius-sm);
  border: 1px solid var(--dr-border);
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}

.draft-requests-page .dr-table-wrap .ant-table {
  border-radius: var(--dr-radius-sm);
}

/* 테이블 헤더 - 모든 컬럼 동일 크기/굵기 */
.draft-requests-page .dr-table-wrap .ant-table-thead > tr > th {
  background: #f8fafc !important;
  font-weight: 600 !important;
  font-size: var(--dr-body-font) !important;
  color: var(--dr-text-muted) !important;
  border-bottom: 1px solid var(--dr-border);
}

/* 테이블 데이터 - 모든 컬럼(문서번호, 제목, 작성일자 포함) 동일 크기 */
.draft-requests-page .dr-table-wrap .ant-table-tbody > tr > td {
  font-size: var(--dr-body-font) !important;
  font-weight: 400 !important;
}

.draft-requests-page .dr-table-wrap .ant-table-tbody > tr > td * {
  font-size: var(--dr-body-font) !important;
}

.draft-requests-page .dr-table-wrap .ant-table-tbody .ant-tag,
.draft-requests-page .dr-table-wrap .ant-table-tbody .ant-btn {
  font-size: var(--dr-body-font) !important;
  font-weight: 400 !important;
}

.draft-requests-page .dr-table-wrap .ant-table-tbody > tr:hover > td {
  background: var(--dr-accent-soft) !important;
}

/* ========== 작성/수정 모달 ========== */
.draft-requests-editor-modal.ant-modal .ant-modal-content {
  border-radius: var(--dr-radius);
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.12);
  border: 1px solid var(--dr-border);
}

.draft-requests-editor-modal .ant-modal-header {
  border-bottom: 1px solid var(--dr-border);
  padding: 16px 24px;
  background: linear-gradient(165deg, #f8fafc 0%, #fff 50%);
}

.draft-requests-editor-modal .ant-modal-title {
  font-size: 18px;
  font-weight: 600;
  color: var(--dr-text);
}

.draft-requests-editor-modal .ant-modal-body {
  padding: 24px;
  max-height: 70vh;
  overflow-y: auto;
}

.draft-requests-editor-modal .ant-modal-footer {
  border-top: 1px solid var(--dr-border);
  padding: 12px 24px;
  background: #fafbfc;
}

.draft-requests-editor-modal .ant-modal-footer .ant-btn {
  border-radius: 8px;
  font-weight: 500;
}

/* ========== 상세 보기 모달 ========== */
.draft-requests-detail-modal.ant-modal .ant-modal-content {
  border-radius: var(--dr-radius);
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.12);
  border: 1px solid var(--dr-border);
}

.draft-requests-detail-modal .ant-modal-header {
  border-bottom: 1px solid var(--dr-border);
  padding: 16px 24px;
  background: linear-gradient(165deg, #f8fafc 0%, #fff 50%);
  position: relative;
}

.draft-requests-detail-modal .ant-modal-header::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  background: linear-gradient(180deg, var(--dr-accent) 0%, #3b82f6 100%);
  border-radius: 0 2px 2px 0;
}

.draft-requests-detail-modal .ant-modal-title {
  font-size: 18px;
  font-weight: 600;
  color: var(--dr-text);
  padding-left: 8px;
}

.draft-requests-detail-modal .ant-modal-body {
  padding: 24px;
  max-height: 70vh;
  overflow-y: auto;
  background: #fafbfc;
}

.draft-requests-detail-modal .ant-descriptions-bordered .ant-descriptions-item-label {
  background: #f8fafc !important;
  font-weight: 600;
  font-size: 15px;
  color: var(--dr-text-muted);
  border-color: var(--dr-border);
}

.draft-requests-detail-modal .ant-descriptions-bordered .ant-descriptions-item-content {
  font-size: 15px;
  border-color: var(--dr-border);
}

.draft-requests-detail-modal .dr-detail-divider {
  margin: 24px 0 16px;
  border-color: var(--dr-border);
}

.draft-requests-detail-modal .dr-detail-divider .ant-divider-inner-text {
  font-size: 16px;
  font-weight: 600;
  color: var(--dr-text);
}

.draft-requests-detail-modal .dr-content-box {
  min-height: 200px;
  padding: 20px;
  font-size: 15px;
  border: 1px solid var(--dr-border);
  border-radius: var(--dr-radius-sm);
  background: var(--dr-surface);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}

.draft-requests-detail-modal .dr-empty-attachments {
  padding: 24px;
  font-size: 15px;
  text-align: center;
  color: var(--dr-text-muted);
  background: #f8fafc;
  border-radius: var(--dr-radius-sm);
  border: 1px dashed var(--dr-border);
}

.draft-requests-detail-modal .ant-modal-footer {
  border-top: 1px solid var(--dr-border);
  padding: 12px 24px;
  background: #fafbfc;
}

.draft-requests-detail-modal .ant-modal-footer .ant-btn {
  border-radius: 8px;
}

/* ========== 상신 모달 ========== */
.draft-requests-submit-modal.ant-modal .ant-modal-content {
  border-radius: var(--dr-radius);
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.12);
  border: 1px solid var(--dr-border);
}

.draft-requests-submit-modal .ant-modal-header {
  border-bottom: 1px solid var(--dr-border);
  padding: 16px 24px;
}

.draft-requests-submit-modal .ant-modal-title {
  font-size: 18px;
  font-weight: 600;
  color: var(--dr-text);
}

.draft-requests-submit-modal .dr-submit-info.ant-card {
  margin-bottom: 20px;
  border-radius: var(--dr-radius-sm);
  border: 1px solid rgba(37, 99, 235, 0.25);
  background: linear-gradient(135deg, rgba(37, 99, 235, 0.06) 0%, rgba(59, 130, 246, 0.04) 100%);
}

.draft-requests-submit-modal .dr-submit-info .ant-card-body {
  padding: 14px 18px;
}

.draft-requests-submit-modal .dr-submit-info-title {
  margin-bottom: 6px;
  color: var(--dr-accent);
  font-size: 14px;
  font-weight: 600;
}

.draft-requests-submit-modal .dr-submit-info-desc {
  color: var(--dr-text-muted);
  font-size: 13px;
}

.draft-requests-submit-modal .ant-modal-footer .ant-btn {
  border-radius: 8px;
  font-weight: 500;
}

.draft-requests-submit-modal .ant-modal-footer .ant-btn-primary {
  box-shadow: 0 2px 8px rgba(37, 99, 235, 0.25);
}

/* 타이틀 제외 전체 텍스트 통일 */
.draft-requests-page .ant-select-selector,
.draft-requests-page .ant-input,
.draft-requests-page .ant-picker-input input {
  font-size: var(--dr-body-font) !important;
}

.draft-requests-page .ant-form-item-label > label {
  font-size: var(--dr-body-font);
}

/* 필터초기화, 새로고침, 새기안지작성, 보기, 선택해제 등 모든 버튼 13px */
.draft-requests-page .ant-btn {
  font-size: var(--dr-body-font) !important;
}

/* 페이지네이션 */
.draft-requests-page .ant-pagination,
.draft-requests-page .ant-pagination-total-text,
.draft-requests-page .ant-pagination-options {
  font-size: var(--dr-body-font) !important;
}

.draft-requests-page .ant-pagination-item {
  font-size: var(--dr-body-font);
}

/* 상단 액션 바 선택 표시 등 */
.draft-requests-page .top-action-bar-sticky {
  font-size: var(--dr-body-font);
}

/* 상세 모달 내 테이블 */
.draft-requests-detail-modal .ant-table-thead > tr > th,
.draft-requests-detail-modal .ant-table-tbody > tr > td {
  font-size: 15px;
}
/* 영업일지 작성 폼 - 모바일 최적화 */

/* === 상단 액션 바 (스티키) - 모바일에서 세로 배치 === */
.sales-diary-form__header {
  position: sticky;
  top: 0;
  z-index: 10;
  background: #fff;
  padding: 16px 0 24px;
  margin-bottom: 24px;
  border-bottom: 1px solid #f0f0f0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
}

@media (max-width: 768px) {
  .sales-diary-form__header {
    flex-direction: column;
    align-items: stretch;
    padding: 12px 0 16px;
    margin-bottom: 16px;
    gap: 12px;
  }

  .sales-diary-form__header-title {
    order: 1;
  }

  .sales-diary-form__header-actions {
    order: 2;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: stretch;
  }

  .sales-diary-form__header-actions .ant-btn {
    flex: 1;
    min-width: 0;
  }
}

@media (max-width: 480px) {
  .sales-diary-form__header-actions {
    flex-direction: column;
  }

  .sales-diary-form__header-actions .ant-btn {
    width: 100%;
  }
}

/* === 카드 extra (항목 추가 버튼) - 모바일에서 카드 하단으로 === */
@media (max-width: 768px) {
  .sales-diary-form .ant-card-extra {
    margin-top: 8px;
    margin-bottom: 0;
  }

  .sales-diary-form .ant-card-head-wrapper {
    flex-wrap: wrap;
  }

  .sales-diary-form .ant-card-head-title {
    flex: 1 1 100%;
  }

  .sales-diary-form .ant-card-extra .ant-btn {
    width: 100%;
  }
}

/* === 실시/예정 테이블 - 모바일 터치 영역 확대 === */
@media (max-width: 768px) {
  .sales-diary-form .ant-table-cell {
    padding: 12px 10px !important;
    min-height: 44px;
  }

  .sales-diary-form .ant-table-wrapper {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}

/* === 결재라인 Transfer 모달 - 모바일: 세로 쌓기, 전체 너비 === */
@media (max-width: 768px) {
  .sales-diary-approval-modal.ant-modal {
    max-width: calc(100vw - 32px) !important;
    width: calc(100vw - 32px) !important;
  }

  .sales-diary-approval-modal .ant-transfer {
    flex-direction: column !important;
    align-items: stretch !important;
  }

  .sales-diary-approval-modal .ant-transfer-list {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    height: 220px !important;
  }

  .sales-diary-approval-modal .ant-transfer-operation {
    margin: 12px 0 !important;
  }
}
/* 내 영업일지 목록 - 모바일 최적화 */

.my-sales-diary-list-page {
  padding: 24px;
}

.my-sales-diary-list-page__extra {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

@media (max-width: 768px) {
  .my-sales-diary-list-page {
    padding: 12px 16px;
  }

  /* extra 영역: 날짜 + 새로고침 + 새 일지 작성 - 모바일에서 세로 배치 */
  .my-sales-diary-list-page .ant-card-extra {
    margin-left: 0;
  }

  .my-sales-diary-list-page .ant-card-head-wrapper {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }

  .my-sales-diary-list-page .ant-card-head-title {
    padding-right: 0;
  }

  .my-sales-diary-list-page .ant-card-extra {
    width: 100%;
  }

  .my-sales-diary-list-page__extra {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
  }

  .my-sales-diary-list-page__extra .ant-picker {
    width: 100%;
    max-width: 100%;
  }

  /* 행 선택 액션 바 - 모바일 터치 영역 확대 */
  .my-sales-diary-list-page .ant-table-cell {
    padding: 12px 10px !important;
    min-height: 44px;
  }

  .my-sales-diary-list-page .ant-table-wrapper {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  /* 작성 모달: index.css 전역 모바일 스타일 적용됨 */
}

@media (max-width: 480px) {
  .my-sales-diary-list-page {
    padding: 8px 12px;
  }

  .my-sales-diary-list-page__extra {
    flex-direction: column;
    align-items: stretch;
  }

  .my-sales-diary-list-page__extra .ant-btn {
    width: 100%;
  }

  .my-sales-diary-list-page__extra .ant-picker {
    width: 100%;
  }
}
/* 영업일지 분석 페이지 레이아웃 */
.sd-statistics-page {
  min-height: 100%;
  padding: 20px 24px 32px;
  background: linear-gradient(180deg, #f1f5f9 0%, #f8fafc 32%, #ffffff 100%);
}

.sd-page-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 20px;
}

.sd-page-title-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
}

.sd-page-title {
  margin: 0;
  font-size: 20px !important;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: #0f172a;
  line-height: 1.3;
}

.sd-page-title-icon {
  font-size: 22px;
  color: #2563eb;
}

/* 영업활동지표 히어로 */
.sd-kpi-hero-card.ant-card {
  border: none;
  border-radius: 16px;
  overflow: hidden;
  background: linear-gradient(135deg, #1e3a5f 0%, #1e40af 48%, #2563eb 100%);
  box-shadow:
    0 4px 6px -1px rgba(30, 64, 175, 0.25),
    0 12px 24px -8px rgba(37, 99, 235, 0.45);
}

.sd-kpi-hero-card .ant-card-body {
  padding: 22px 24px 20px;
}

.sd-kpi-hero-inner {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.sd-kpi-hero-label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.75);
}

.sd-kpi-hero-value-row {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 8px 12px;
}

.sd-kpi-hero-value {
  font-size: clamp(2.25rem, 5vw, 2.75rem);
  font-weight: 800;
  line-height: 1.05;
  color: #ffffff;
  letter-spacing: -0.03em;
}

.sd-kpi-hero-suffix {
  font-size: 1.35rem;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.85);
}

.sd-kpi-hero-meta {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.88);
}

.sd-kpi-hero-meta strong {
  color: #fff;
  font-weight: 600;
}

.sd-kpi-explain {
  margin: 0;
  padding: 12px 14px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.18);
  font-size: 12.5px;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.95);
}

.sd-kpi-explain-title {
  display: block;
  font-weight: 700;
  margin-bottom: 6px;
  font-size: 12px;
  letter-spacing: 0.02em;
  color: #bfdbfe;
}

/* 보조 지표 카드 */
.sd-stat-card.ant-card {
  border-radius: 12px;
  border: 1px solid #e2e8f0;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
  height: 100%;
}

.sd-stat-card.ant-card:hover {
  border-color: #cbd5e1;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.06);
}

.sd-stat-card .ant-card-body {
  padding: 16px 18px;
}

.sd-stat-card .ant-statistic-title {
  font-size: 13px;
  color: #64748b;
  margin-bottom: 4px;
}

.sd-stat-card .ant-statistic-content {
  font-size: 1.5rem;
  font-weight: 700;
  color: #0f172a;
}

.sd-chart-card.ant-card {
  border-radius: 12px;
  border: 1px solid #e2e8f0;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.05);
}

.sd-chart-card .ant-card-head {
  border-bottom-color: #f1f5f9;
  min-height: 48px;
  padding: 0 16px;
}

.sd-chart-card .ant-card-head-title {
  font-size: 15px;
  font-weight: 600;
  color: #1e293b;
}

.sd-chart-card .ant-card-body {
  padding: 12px 16px 16px;
}

.sd-page-alert.ant-alert {
  border-radius: 10px;
  border: 1px solid #bfdbfe;
  background: #eff6ff;
}

/* 거래처 이력 모달 제목 — 거래처명·담당자명 줄바꿈 허용 */
.sd-client-history-modal-title {
  display: inline-block;
  max-width: 100%;
  white-space: normal;
  line-height: 1.45;
  font-weight: 600;
}

/* 거래처 이력 모달 테이블 — 행 여백·본문 줄바꿈 */
.sales-diary-client-history-table.ant-table-wrapper .ant-table-thead > tr > th {
  padding: 12px 14px !important;
  font-weight: 600;
}

.sales-diary-client-history-table.ant-table-wrapper .ant-table-tbody > tr > td {
  padding: 14px 14px !important;
  vertical-align: top;
}

.sales-diary-client-history-table td.sd-history-cell-content {
  line-height: 1.7;
}

.sales-diary-client-history-table .sd-history-cell-inner {
  white-space: pre-wrap;
  word-break: break-word;
  max-width: 560px;
}
