@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;400;500;700&display=swap');
body { min-height: 100vh; display: flex; flex-direction: column; font-family: 'Noto Sans KR', sans-serif; background-color: #f4f7f6; color: #333; }
a {text-decoration: none; color: inherit; 
-webkit-transition: all 0.2s ease-in-out; -moz-transition: all 0.2s ease-in-out;-ms-transition: all 0.2s ease-in-out; -o-transition: all 0.2s ease-in-out; transition: all 0.2s ease-in-out;}
.sidebar { min-height: 100vh; width: 250px; position: fixed; top: 0; left: 0; background-color: #2c3e50; /*padding-top: 60px;*/ transition: transform .3s ease; z-index: 10; }
.sidebar.collapsed { transform: translateX(-250px); }
.sidebar .nav-link { color: #ecf0f1; font-size: .95rem; padding: 12px 20px; border-radius: 8px; margin: 4px 10px; }
.sidebar .nav-link:hover { background-color: #34495e; }
.sidebar .nav-link.active { background-color: #3498db; color: #fff; font-weight: 500; }
.sidebar .logo_li{width:100%; height:60px; text-align: center; margin-bottom:15px;}
.content-wrapper { margin-left: 250px; padding: 80px 20px 20px; transition: margin-left .3s ease; position: relative; z-index: 5; }
.content-wrapper.collapsed { margin-left: 0; }
.topbar { position: fixed; top: 0; left: 250px; right: 0; z-index: 15; transition: left .3s ease; background-color: #fff !important; box-shadow: 0 2px 4px rgba(0,0,0,.05); padding: 0.6rem 0px;}
.topbar.collapsed { left: 0; }
.topbar .navbar-brand, .topbar .nav-link { color: #333 !important; }
.table{min-width:1000px;}
#sidebarToggle { color: #333; border: 1px solid #ddd; }
.nav-link { padding-left: 1rem !important; padding-right: 1rem !important; }
@media (max-width: 991px) {
    .sidebar.collapsed { transform: translateX(-250px); }
    .content-wrapper, .topbar { margin-left: 0; left: 0; }
    .content-wrapper.collapsed, .topbar.collapsed { margin-left: 0; left: 0; }
    .navbar-brand { display: none; }
    #navbarNav { display: flex !important; flex-direction: row; }
}
@media (min-width: 992px) {
    .sidebar { transform: translateX(0); }
    .sidebar.collapsed { transform: translateX(-250px); }
    .content-wrapper { margin-left: 250px; }
    .content-wrapper.collapsed { margin-left: 0; }
    .topbar { left: 250px; }
    .topbar.collapsed { left: 0; }
    #navbarNav { display: flex !important; flex-direction: row; }
}
.card { border-radius: 12px; border: none; box-shadow: 0 4px 12px rgba(0,0,0,.08); overflow: hidden; transition: all .3s ease; }
#main_page .card:hover { transform: translateY(-5px); box-shadow: 0 6px 16px rgba(0,0,0,.12); }
.card-header { background-color: #fff; border-bottom: 1px solid #e9ecef; font-weight: 500; padding: 1rem 1.25rem; }
.status-circle { width: 36px; height: 36px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; margin-right: 10px; font-size: 1rem; }
.status-on { background-color: #28a745; color: #fff; }
.status-off { background-color: #6c757d; color: #fff; }
.btn-custom { border-radius: 8px; padding: 8px 20px; font-size: .9em; font-weight: 500; background-color: #3498db; border-color: #3498db; color: #fff; transition: all .2s ease; }
.btn-custom:hover { background-color: #2980b9; border-color: #2980b9; transform: scale(1.05); }
.time-display { font-size: 2rem; font-weight: 300; color: #3498db; }
.small-text { font-size: .75em; color: #6c757d; }
#sidebarToggle { pointer-events: auto; z-index: 20; }
#sidebarToggle:hover { background-color: #ddd; cursor: pointer; }

#push_btn{ background-color: rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important; color: #333; border: 1px solid var(--bs-warning-rgb); padding: 5px 10px; border-radius: 10px; cursor: pointer;}
.bell_span{left: 38px !important; top: 10px !important;}
.color-gray{color:#797979;}

/* 2차 메뉴 스타일 */
.sidebar .nav-item .collapse { padding-left: 20px;}
.sidebar .nav-item .sub-link { padding: 10px 15px; font-size: 0.9rem; color: #bdc3c7;}
.sidebar .nav-item .sub-link:hover { color: #fff;}
.sidebar .nav-item .sub-link.active { color: #fff; background-color: transparent; font-weight: bold;}
.sidebar .nav-link { display: flex; align-items: center;}
.sidebar .bi-chevron-down { transition: transform 0.3s ease; font-size: 0.8em;}
.sidebar a[aria-expanded="true"] .bi-chevron-down { transform: rotate(180deg);}

/*조직도*/
.org-chart-container { background-color: #fff; border-radius: 12px; padding: 20px; box-shadow: 0 4px 12px rgba(0,0,0,.08); }
.org-chart-container ul { padding-left: 25px; list-style: none; border-left: 1px dashed #ccc; }
.org-chart-container > ul { padding-left: 0; border-left: none; } /* 최상위 ul은 스타일 제거 */
.org-chart-container li { position: relative; padding: 10px 0 10px 20px; }
.org-chart-container li::before { content: ''; position: absolute; top: 26px; left: -25px; width: 25px; height: 1px; background-color: #ccc; border-left: 1px dashed #ccc; }
.team-name { font-weight: 500; font-size: 1.1rem; margin-bottom: 10px; display: flex; align-items: center; gap: 10px; }
.team-controls { display: inline-flex; gap: 8px; }
.team-controls i { cursor: pointer; color: #6c757d; font-size: 0.9rem; }
.team-controls i:hover { color: #343a40; }
.members { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 10px; min-height: 40px; }
.member { display: flex; align-items: center; gap: 8px; padding: 5px 10px; background-color: #f8f9fa; border: 1px solid #dee2e6; border-radius: 8px; font-size: 0.9rem; cursor: grab; }
.org-badge { color: #fff; padding: 3px 8px; border-radius: 5px; font-size: 0.8rem; font-weight: 500; }
.team-controls i.btn-delete-team:hover { color: #dc3545; }

/*결제 라인 구성*/
.approval-container { display: flex; gap: 20px; }
.employee-panel, .line-panel { flex-basis: 50%; max-width: 50%; }
.employee-list { height: 600px; overflow-y: auto; border: 1px solid #ddd; border-radius: 8px; }
.employee-list-item { display: flex; justify-content: space-between; align-items: center; padding: 10px 15px; border-bottom: 1px solid #eee; cursor: pointer; transition: background-color .2s; }
.employee-info { display: flex; flex-direction: column; }
.employee-list-item:hover { background-color: #f8f9fa; }
.employee-list-item.active { background-color: #e9ecef; font-weight: 500; }
.line-panel-placeholder { display: flex; justify-content: center; align-items: center; height: 100%; border: 2px dashed #ddd; border-radius: 8px; color: #999; }
#approver-list { list-style: none; padding: 0; }
#approver-list li { display: flex; align-items: center; padding: 10px; border: 1px solid #ddd; border-radius: 5px; margin-bottom: 5px; background-color: #fff; cursor: grab; }
#approver-list li.sortable-ghost { background-color: #f0f8ff; }
#notifier-list { list-style: none; padding: 0; }
#notifier-list li { display: flex; align-items: center; padding: 10px; border: 1px solid #ddd; border-radius: 5px; margin-bottom: 5px; background-color: #f8f9fa; }

/* 로그인 페이지 스타일 */
.login-body { display: flex; align-items: center; justify-content: center; height: 100vh; background-color: #f4f7f6;}
.login-card { max-width: 450px; width: 100%; padding: 20px;}
.login-card .card { border-radius: 12px; border: none; box-shadow: 0 4px 12px rgba(0,0,0,.08);}
