/**
 * Nova 스타일 카드 공통 클래스
 * design_renewal_2026_06_08 설계 §4.2 참조
 */

.nova-card {
	background: var(--color-surface);
	border: 1px solid var(--color-gray-200);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-sm);
	position: relative;
	margin-bottom: 10px;
}

.nova-card-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 20px;
	border-bottom: 1px solid var(--color-gray-200);
}

.nova-card-header .card-title {
	font-size: var(--font-size-section-title);
	font-weight: var(--font-weight-section-title);
	color: var(--color-gray-900);
	margin: 0;
}

.nova-card-header .card-icon {
	color: var(--color-primary-500);
	font-size: 14px;
	margin-right: 8px;
}

.nova-card-header .card-tool {
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--radius-md);
	color: var(--color-gray-500);
	cursor: pointer;
	transition: background var(--motion-fast), color var(--motion-fast);
}

.nova-card-header .card-tool:hover {
	background: var(--color-gray-100);
	color: var(--color-gray-700);
}

.nova-card-body {
	padding: var(--space-card-padding);
}

.nova-card-footer {
	padding: 12px 20px;
	border-top: 1px solid var(--color-gray-200);
}

/* Bootstrap .card override (하위호환) */
.tw-app .card {
	background: var(--color-surface) !important;
	border: 1px solid var(--color-gray-200) !important;
	border-radius: var(--radius-lg) !important;
	box-shadow: var(--shadow-sm) !important;
	margin-bottom: 10px;
}

.tw-app .card-header {
	background: var(--color-surface) !important;
	border-bottom: 1px solid var(--color-gray-200) !important;
	color: var(--color-gray-900) !important;
	font-weight: 600;
	padding: 16px 20px;
}

.tw-app .card-header .card-title {
	color: var(--color-gray-900) !important;
	font-size: var(--font-size-section-title);
}

.tw-app .card-header .fa,
.tw-app .card-header .fas {
	color: var(--color-primary-500);
}

.tw-app .card-header .btn-tool {
	color: var(--color-gray-500);
}

.tw-app .card-body {
	background: var(--color-surface) !important;
	color: var(--color-gray-700) !important;
	padding: var(--space-card-padding);
}

.tw-app .card-footer {
	background: var(--color-surface) !important;
	border-top: 1px solid var(--color-gray-200) !important;
	color: var(--color-gray-700);
}

/* table-responsive 내부도 덮기 */
.tw-app .card-body.table-responsive {
	background: var(--color-surface) !important;
}

/* collapsed-card 상태 */
.tw-app .collapsed-card .card-body {
	display: none;
}


/* nova-card 추가 서브 클래스 */
.nova-card-body {
	padding: var(--space-card-padding);
}

.nova-card-footer {
	padding: 12px 20px;
	border-top: 1px solid var(--color-gray-200);
}

.nova-table-wrap {
	overflow: visible;
	-webkit-overflow-scrolling: touch;
	min-height: 200px;
	position: relative;
}
@media (max-width: 1023px) {
	.nova-table-wrap {
		overflow-x: auto;
		overflow-y: visible;
		min-height: auto;
	}
	.nova-table-wrap .nova-table {
		min-width: 800px;
	}
}

/* === Nova 리스트 페이지 공통 (헤더 액션 / 추가 버튼 / 필터 행) === */
.nova-card-header .card-header-left {
	display: flex;
	align-items: center;
}
.nova-header-actions {
	display: flex;
	gap: 8px;
}
.nova-add-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 7px 14px;
	background: var(--color-primary-500);
	color: #fff;
	border: none;
	border-radius: var(--radius-md);
	font-size: 13px;
	font-weight: 500;
	cursor: pointer;
	transition: background var(--motion-fast);
}
.nova-add-btn:hover {
	background: var(--color-primary-600);
}
.nova-btn-ghost {
	background: transparent;
	border: 1px solid var(--color-gray-200);
	color: var(--color-gray-700);
}
.nova-btn-ghost:hover {
	background: var(--color-gray-100);
	color: var(--color-gray-900);
}
.nova-filter-row {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 12px;
}
.nova-filter-item {
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.nova-filter-item label {
	font-size: 12px;
	color: var(--color-gray-500);
	margin: 0;
}
.nova-filter-item .form-control {
	min-width: 140px;
}
