/*
 interpass custom css
*/

table th, table td {
    word-break: keep-all;
}

table td:has(.form-check) {
   /* min-width: 0;*/
    width: 53px;
}

.table-label {
  padding: 3px 10px;
  color: #fff;
  font-weight: 500;
  border-radius: 0.25rem;
  justify-content: center;
  align-items: center;
  display: -webkit-inline-box;
}

.label-custom{
	background-color:#fb9678;	
}

.label-common {
  background-color:#FFD700; 
}

.check-mark{	
	margin-top: 0px !important;
}

/* 일별 운행 수집율 메뉴 */
#dailyReportTable_wrapper .dataTables_info {
	top: 20px;
    left: 100px;
    height: 20px;
    position: absolute;
    line-height: 18px;
} 

/* 일별운행검증 메뉴 */
ul.summary-div {
	margin: 20px 15px 5px 15px; 
	display: flex; 
	text-align: center; 
	padding: 0px;
}

#dailyVerificationTable_wrapper .dataTables_info {
	top: 20px;
    left: 125px;
    height: 20px;
    position: absolute;
    line-height: 18px;
}
	
	
/* 스마트폰 */
@media (max-width: 1170px){	
	.login-img-row{
		display:none;
	}
	
	.login-input-card{
		margin-right:0px !important;
	}
	
	.dtg-map-info{
		display:none;
	}
	
	.area-list-popup{
		left:240px !important;
	}
	
	.office-list-popup{
		width:170px !important;
		left:410px !important;
	}	
	
	/* 공통 */
	input[type="date"], input[type="time"], input[type="datetime-local"], input[type="month"]{
		display: block;
		width: 100%;
		appearance:none ;
	   -webkit-appearance: none;
	   -moz-appearance: none;
	}
	
	/* 공통 - 검색 영역 */
	.page-wrapper .container-fluid div:first-child .card .row > div[class^='col-lg-']{
		margin-bottom: 1rem;
	}
		
	.page-wrapper .container-fluid div:first-child .card .row > div:last-child:has(button.btn-info) {
		margin-bottom: 0;
	}
		
	.page-wrapper .container-fluid div:first-child .card .row > div:has(button.btn-info) label.control-label{
		display: none;
	}		
	
	/* 공통 - 메인 페이지 로고*/
	header.topbar nav .navbar-header .navbar-brand img.light-logo {
		top: 0px !important;
	}
		
		
	/* 일별운행검증 메뉴 */
	ul.summary-div {
		display: block;
	}
	
	#dailyVerificationTable_wrapper .dt-buttons {
		display: none;
	}
		 
    /* 운행 관리 메뉴 공통 */		 
	.left-tree {
		margin-bottom: 20px;
	}
	
	/* 사용자 관리 메뉴 */
	#infoUserModal table td {
	    display: block;
    	width: 100%;
    	border: 0;
    }
    
    #infoUserModal table td:nth-child(odd) {
    	padding: 16px 16px 0px 16px;
    }
    
    #infoUserModal table th {
    	margin-bottom: 10px;
    }
    
    #infoUserModal #dupl-user-td {
    	padding-top: 0px;
    }
    
    /* 운행기록표 메뉴 */
    #downDriveRecordForm button.buttons-excel,
	#downLowCollectRecordForm button.buttons-excel {
		margin: 0px 0px 0px 0px !important;
	}
}

@media (max-width: 768px){
	.card-footer{
		font-size: 12px;
	}	
}

.icon-office {
  height: 16px;
  width: 16px;
  background-image: url(../images/pin-map-fill.svg);
}

.icon-bus {
  height: 16px;
  width: 16px;
  background-image: url(../images/bus.svg);
}

.icon-route {
  height: 16px;
  width: 16px;
  background-image: url(../images/route.svg);
}

.icon-finger {
  height: 20px;
  width: 20px;
  background-image: url(../images/finger.png);
  background-size: cover;
  display: block;
}

/* CCTV Page CSS */
.filters-box {
    padding: 8px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    background: #fafafa;
    margin-bottom: 10px;
}
.filters-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: flex-end;
}
.filters-row .form-group {
    margin-bottom: 0;
}
.filters-row label {
    font-size: 13px;
}
.controls {
    display: flex;
    align-items: center;
    gap: 8px;
}
.meta {
    font-size: 13px;
    color: #6b7280;
}
.spacer { flex: 1; }
.grid-shell {
    border: 1px solid #e5e7eb;
    border-radius: 8px;
}
.tui-pagination.pager {
    display: flex;
    justify-content: center;
    margin-top: 4px;
}

.loading-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.25);
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 9999;
}
.loading-overlay.show {
    display: flex;
}
.loading-box {
    background: #fff;
    padding: 14px 20px;
    border-radius: 10px;
    display: flex;
    gap: 10px;
    align-items: center;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.12);
    transform: translateY(-200px);
}
.spinner {
    width: 18px;
    height: 18px;
    border: 3px solid #e5e7eb;
    border-top-color: #3b82f6;
    border-radius: 9999px;
    animation: spin 0.7s linear infinite;
}
@keyframes spin {
    to { transform: rotate(360deg); }
}

/* player modal */
.player-modal {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.55);
    z-index: 12000;
    display: none;
    align-items: center;
    justify-content: center;
}
.player-modal.show {
    display: flex;
}
.player-modal__content {
    position: relative;
    background: #fff;
    border-radius: 10px;
    padding: 10px;
    box-shadow: 0 20px 40px rgba(0,0,0,0.25);
}
.player-modal__close {
    position: absolute;
    top: 8px;
    right: 8px;
    border: none;
    background: #111827;
    color: #fff;
    border-radius: 9999px;
    padding: 4px 10px;
    cursor: pointer;
    font-size: 12px;
    line-height: 1;
}
#cmsv6flash {
	width: 900px;
    height: 500px;
    margin-top: 26px;
}

/* 반응형 간단 처리 */
@media (max-width: 992px) {
    #cmsv6flash {
        width: 100%;
        height: 360px;
    }
    .filters-row {
        flex-direction: column;
        align-items: stretch;
    }
}

#downloadModal .modal-content {
    height: 50vh;
    display: flex;
    flex-direction: column;
}

#downloadModal .modal-body {
    flex: 1;
    overflow-y: auto;
}

.custom-modal-width {
    max-width: 52% !important;
}

.refresh-spinner {
    display:inline-block;
    width:20px;
    height:20px;
    margin-left:14px;
    border:3px solid rgba(255,255,255,0.4);
    border-top-color:#0d6efd;
    border-radius:50%;
    animation: spin 0.7s linear infinite;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

.upload-progress-wrapper {
    width: 100%;
    height: 8px;
    background: rgba(0,0,0,0.1);
    border-radius: 4px;
    overflow: hidden;
}

.upload-progress-bar {
    width: 30%;
    height: 100%;
    background: #0d6efd;
    animation: loadingBar 1.2s ease-in-out infinite;
}

#downloadTable td:last-child {
    vertical-align: middle;
}

@keyframes loadingBar {
    0%   { transform: translateX(-100%); }
    50%  { transform: translateX(50%); }
    100% { transform: translateX(200%); }
}