/* ==============================================================================
   deviers admin theme — 26-10-01 디자인 마이그레이션
   전략: Bootstrap 3.3.6 / SB Admin 2 의 클래스는 구조적 훅으로 유지하고
        비주얼(색·모양·상태)만 이 파일에서 전면 재정의한다.
   로드 순서: bootstrap.css → sb-admin-2.css → deviers.css → tokens.css → 본 파일 (마지막)
   폴백: ?ui=legacy 쿼리(또는 dv_ui=legacy 쿠키)로 본 파일 미로드 시 구 화면 유지
   ============================================================================== */

/* ---- 폰트: Pretendard Variable (자체호스팅) ---- */
@font-face {
	font-family: 'Pretendard Variable';
	font-weight: 45 920;
	font-style: normal;
	font-display: swap;
	src: url('/css/fonts/PretendardVariable.woff2') format('woff2-variations');
}

/* ============================== 1. 기본/타이포 ============================== */
body {
	font-family: 'Pretendard Variable', Pretendard, -apple-system, BlinkMacSystemFont, 'Malgun Gothic', '맑은 고딕', sans-serif;
	background-color: var(--dv-bg);
	color: var(--dv-text-1);
	font-size: 14px;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

a {
	color: var(--dv-accent);
	transition: color var(--dv-transition);
}
a:hover, a:focus {
	color: var(--dv-accent-hover);
}
a:focus, .btn:focus, .btn:focus-visible, .form-control:focus {
	outline: none;
}

/* 데이터 테이블 숫자 정렬 안정화 */
table, .table, td, th {
	font-variant-numeric: tabular-nums;
}

/* 키보드 포커스 가시성 (접근성) */
a:focus-visible, .btn:focus-visible, .form-control:focus-visible,
input:focus-visible, select:focus-visible, textarea:focus-visible {
	box-shadow: var(--dv-focus-ring);
}

::selection {
	background: var(--dv-accent-tint);
	color: var(--dv-text-1);
}

/* 스크롤바 (웹킷) */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
	background: #cdd2da;
	border-radius: 5px;
	border: 2px solid var(--dv-bg);
}
::-webkit-scrollbar-thumb:hover { background: #b6bcc7; }

/* 페이지 제목 (frag/title.php 의 h1.page-header) */
h1.page-header {
	font-size: 20px;
	font-weight: 700;
	letter-spacing: -.02em;
	color: var(--dv-text-1);
	padding-bottom: 12px;
	margin: 24px 0 20px;
	border-bottom: 1px solid var(--dv-border-soft);
}
h1.page-header small, h1.page-header .small {
	font-weight: 400;
	color: var(--dv-text-3);
}

/* ============================== 2. 레이아웃 셸 ============================== */
/* 상단 navbar — 흰 배경, 하단 1px 보더 */
.navbar.navbar-default.navbar-static-top {
	background-color: var(--dv-surface);
	border: 0;
	border-bottom: 1px solid var(--dv-border);
	box-shadow: var(--dv-shadow-1);
	min-height: var(--dv-navbar-height);
	z-index: var(--dv-z-navbar);
}
.navbar.navbar-default.navbar-static-top .navbar-brand {
	color: var(--dv-text-1);
	font-weight: 800;
	font-size: 16px;
	letter-spacing: .02em;
	height: var(--dv-navbar-height);
	padding: 16px 20px;
	line-height: 24px;
}
.navbar.navbar-default.navbar-static-top .navbar-brand:hover {
	color: var(--dv-text-1);
}
.navbar.navbar-default.navbar-static-top .navbar-toggle {
	border-color: var(--dv-border-strong);
	margin-top: 11px;
	margin-bottom: 11px;
}
.navbar.navbar-default.navbar-static-top .navbar-toggle .icon-bar {
	background-color: var(--dv-text-2);
}
.navbar-top-links li a {
	min-height: var(--dv-navbar-height);
	padding: 13px 8px;
}
.navbar-top-links li:last-child {
	margin-right: 10px;
}
.navbar-top-links .btn {
	margin-top: 3px;
}

/* 사이드바 — 라이트 (흰 배경 + 우측 보더) */
@media (min-width: 768px) {
	.navbar-default.sidebar {
		background-color: var(--dv-sidebar);
		border-right: 1px solid var(--dv-border);
		margin-top: var(--dv-navbar-height);
		width: var(--dv-sidebar-width);
	}
}
@media (max-width: 767px) {
	.navbar-default.sidebar {
		background-color: var(--dv-sidebar);
		border-bottom: 1px solid var(--dv-border);
	}
}
.sidebar .sidebar-nav.navbar-collapse {
	padding-left: 0;
	padding-right: 0;
}
.sidebar ul li {
	border-bottom: 0;
}
.sidebar ul li a {
	color: var(--dv-text-2);
	font-size: 13.5px;
	font-weight: 500;
	padding: 10px 16px;
	border-radius: var(--dv-radius);
	margin: 2px 8px;
	transition: background-color var(--dv-transition), color var(--dv-transition);
}
.sidebar ul li a:hover,
.sidebar ul li a:focus {
	background-color: var(--dv-surface-2);
	color: var(--dv-text-1);
}
.sidebar ul li a.active {
	background-color: var(--dv-accent-tint);
	color: var(--dv-accent);
	font-weight: 700;
	position: relative;
}
.sidebar ul li a.active::before {
	content: '';
	position: absolute;
	left: -8px;
	top: 6px;
	bottom: 6px;
	width: 3px;
	border-radius: 2px;
	background-color: var(--dv-accent);
}
.sidebar .fa.arrow {
	font-size: 11px;
	margin-top: 3px;
	transition: transform var(--dv-transition);
}
.sidebar .nav-second-level li,
.sidebar .nav-third-level li {
	border-bottom: 0 !important;
}
.sidebar .nav-second-level li a {
	padding-left: 34px;
	color: var(--dv-text-2);
	font-size: 13px;
}
.sidebar .nav-third-level li a {
	padding-left: 48px;
}
.sidebar .nav-second-level {
	background: var(--dv-surface-2);
	border-radius: var(--dv-radius);
	margin: 0 8px 6px;
}

/* 콘텐츠 영역 */
@media (min-width: 768px) {
	#page-wrapper {
		margin: 0 0 0 var(--dv-sidebar-width);
		padding: 0 24px;
		border-left: 0;
		background-color: var(--dv-bg);
	}
}
#page-wrapper {
	background-color: var(--dv-bg);
	min-height: calc(100vh - var(--dv-navbar-height));
}

/* ============================== 3. 버튼 ============================== */
.btn {
	border-radius: var(--dv-radius);
	font-weight: 600;
	font-size: 13px;
	padding: 6px 14px;
	transition: all var(--dv-transition);
	touch-action: manipulation;
}
.btn:active, .btn.active {
	transform: scale(.98);
}
.btn-lg { padding: 10px 20px; font-size: 15px; border-radius: var(--dv-radius-lg); }
.btn-sm, .btn-xs { font-size: 12px; border-radius: var(--dv-radius-sm); }
.btn-xs { padding: 2px 8px; }
.btn-sm { padding: 4px 10px; }

.btn-default {
	background-color: var(--dv-surface);
	border-color: var(--dv-border-strong);
	color: #374151;
}
.btn-default:hover, .btn-default:focus, .btn-default.focus {
	background-color: var(--dv-surface-2);
	border-color: #c3c9d4;
	color: var(--dv-text-1);
}
.btn-primary {
	background-color: var(--dv-accent);
	border-color: var(--dv-accent);
	color: var(--dv-text-inverse);
}
.btn-primary:hover, .btn-primary:focus, .btn-primary.focus {
	background-color: var(--dv-accent-hover);
	border-color: var(--dv-accent-hover);
	color: var(--dv-text-inverse);
}
.btn-success {
	background-color: var(--dv-success);
	border-color: var(--dv-success);
	color: var(--dv-text-inverse);
}
.btn-success:hover, .btn-success:focus { background-color: #15803d; border-color: #15803d; color: var(--dv-text-inverse); }
.btn-info {
	background-color: var(--dv-info);
	border-color: var(--dv-info);
	color: var(--dv-text-inverse);
}
.btn-info:hover, .btn-info:focus { background-color: #0369a1; border-color: #0369a1; color: var(--dv-text-inverse); }
.btn-warning {
	background-color: var(--dv-warning);
	border-color: var(--dv-warning);
	color: var(--dv-text-inverse);
}
.btn-warning:hover, .btn-warning:focus { background-color: #b45309; border-color: #b45309; color: var(--dv-text-inverse); }
.btn-danger {
	background-color: var(--dv-danger);
	border-color: var(--dv-danger);
	color: var(--dv-text-inverse);
}
.btn-danger:hover, .btn-danger:focus { background-color: var(--dv-danger-hover); border-color: var(--dv-danger-hover); color: var(--dv-text-inverse); }
.btn-link { color: var(--dv-accent); font-weight: 600; }

.btn-outline {
	border-width: 1px;
	background-color: transparent;
	transition: all var(--dv-transition);
}
/* [26-10-01 수정] 원형 아이콘 버튼(btn-circle) — 고정폭이라 좌우 패딩 0 이어야 아이콘이 중앙에 온다.
   위 .btn { padding: 6px 14px } 이 sb-admin-2 의 .btn-circle { padding: 6px 0 } 을 덮어써서
   아이콘이 오른쪽으로 치우치는 문제를 복원한다 (본 규칙이 뒤에서 다시 이긴다) */
.btn-circle,
.btn-circle.btn-sm,
.btn-circle.btn-xs {
	padding-left: 0;
	padding-right: 0;
}
.btn-circle.btn-lg,
.btn-circle.btn-xl {
	padding-left: 0;
	padding-right: 0;
}
.btn-default.btn-outline {
	color: #374151;
	border-color: var(--dv-border-strong);
}
.btn-default.btn-outline:hover {
	background-color: var(--dv-text-1);
	color: var(--dv-text-inverse);
	border-color: var(--dv-text-1);
}

/* ============================== 4. 폼 ============================== */
.form-control {
	border-color: var(--dv-border-strong);
	border-radius: var(--dv-radius);
	box-shadow: none;
	color: var(--dv-text-1);
	font-size: 13px;
	height: 36px;
	padding: 6px 12px;
	transition: border-color var(--dv-transition), box-shadow var(--dv-transition);
}
.form-control::placeholder { color: var(--dv-text-3); }
.form-control:focus {
	border-color: var(--dv-accent);
	box-shadow: var(--dv-focus-ring);
}
.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control {
	background-color: var(--dv-surface-2);
}
textarea.form-control, select[multiple].form-control { height: auto; }

.input-group-addon {
	background-color: var(--dv-surface-2);
	border-color: var(--dv-border-strong);
	color: var(--dv-text-2);
	font-size: 13px;
	border-radius: var(--dv-radius);
}
.input-group .form-control:first-child,
.input-group-addon:first-child { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.input-group .form-control:last-child,
.input-group-addon:last-child { border-top-left-radius: 0; border-bottom-left-radius: 0; }
.input-group-btn .btn { border-radius: 0; }
.input-group-btn:first-child .btn { border-radius: var(--dv-radius) 0 0 var(--dv-radius); }
.input-group-btn:last-child .btn { border-radius: 0 var(--dv-radius) var(--dv-radius) 0; }

.help-block { color: var(--dv-text-3); font-size: 12px; }
.has-error .form-control { border-color: var(--dv-danger); box-shadow: none; }
.has-error .form-control:focus { box-shadow: 0 0 0 3px rgba(220, 38, 38, .12); }
.has-error .control-label, .has-error .help-block, .has-error .input-group-addon { color: var(--dv-danger); }

/* ============================== 5. 테이블 ============================== */
.table > thead > tr > th {
	background-color: var(--dv-surface-2);
	color: var(--dv-text-2);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .01em;
	border-bottom: 1px solid var(--dv-border);
	padding: 10px 12px;
	vertical-align: middle;
}
.table > tbody > tr > td {
	padding: 10px 12px;
	vertical-align: middle;
	color: #1f2937;
	border-top: 1px solid var(--dv-border-soft);
}
.table > tbody > tr:hover > td {
	background-color: #f5f8ff;
}
.table-striped > tbody > tr:nth-of-type(odd) > td {
	background-color: var(--dv-surface-2);
}
.table-striped > tbody > tr:hover > td {
	background-color: #f5f8ff;
}
.table-bordered, .table-bordered > thead > tr > th,
.table-bordered > tbody > tr > td {
	border-color: var(--dv-border-soft);
}
.table-responsive {
	border: 0;
}
.table-hover > tbody > tr:hover > td { background-color: #f5f8ff; }

/* DataTables (bootstrap3 integration) */
table.dataTable thead .sorting:after,
table.dataTable thead .sorting_asc:after,
table.dataTable thead .sorting_desc:after {
	opacity: .55;
	font-size: 11px;
}
.dataTables_wrapper .dataTables_info,
.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter {
	color: var(--dv-text-2);
	font-size: 12.5px;
}
.dataTables_wrapper .dataTables_filter input {
	border: 1px solid var(--dv-border-strong);
	border-radius: var(--dv-radius);
	padding: 4px 10px;
	outline: none;
}
.dataTables_wrapper .dataTables_filter input:focus {
	border-color: var(--dv-accent);
	box-shadow: var(--dv-focus-ring);
}

/* ============================== 6. 패널 → 카드 ============================== */
.panel {
	border: 1px solid var(--dv-border);
	border-radius: var(--dv-radius-lg);
	box-shadow: var(--dv-shadow-1);
	background-color: var(--dv-surface);
	margin-bottom: 20px;
	transition: box-shadow var(--dv-transition);
}
.panel > .panel-heading {
	background-color: var(--dv-surface);
	border-bottom: 1px solid var(--dv-border-soft);
	color: var(--dv-text-1);
	font-weight: 700;
	border-top-left-radius: calc(var(--dv-radius-lg) - 1px);
	border-top-right-radius: calc(var(--dv-radius-lg) - 1px);
	padding: 12px 16px;
}
.panel > .panel-body { padding: 16px; }
.panel > .panel-footer {
	background-color: var(--dv-surface-2);
	border-top: 1px solid var(--dv-border-soft);
	border-radius: 0 0 var(--dv-radius-lg) calc(var(--dv-radius-lg) - 1px);
}
.panel-default { border-color: var(--dv-border); }

/* 색상 패널 — 채도 낮춘 현대판 */
.panel-green { border-color: var(--dv-success); }
.panel-green > .panel-heading { color: var(--dv-text-inverse); background-color: var(--dv-success); border-color: var(--dv-success); }
.panel-green > a { color: var(--dv-success); }
.panel-red { border-color: var(--dv-danger); }
.panel-red > .panel-heading { color: var(--dv-text-inverse); background-color: var(--dv-danger); border-color: var(--dv-danger); }
.panel-red > a { color: var(--dv-danger); }
.panel-yellow { border-color: var(--dv-warning); }
.panel-yellow > .panel-heading { color: var(--dv-text-inverse); background-color: var(--dv-warning); border-color: var(--dv-warning); }
.panel-yellow > a { color: var(--dv-warning); }

/* well / alert / label / badge */
.well {
	background-color: var(--dv-surface-2);
	border: 1px solid var(--dv-border-soft);
	border-radius: var(--dv-radius-lg);
	box-shadow: none;
	color: var(--dv-text-2);
}
.alert {
	border-radius: var(--dv-radius-lg);
	border-width: 0;
	border-left: 3px solid transparent;
	box-shadow: var(--dv-shadow-1);
	font-size: 13px;
}
.alert-success { background-color: var(--dv-success-tint); color: #14532d; border-left-color: var(--dv-success); }
.alert-info    { background-color: var(--dv-info-tint);    color: #0c4a6e; border-left-color: var(--dv-info); }
.alert-warning { background-color: var(--dv-warning-tint); color: #78350f; border-left-color: var(--dv-warning); }
.alert-danger  { background-color: var(--dv-danger-tint);  color: #7f1d1d; border-left-color: var(--dv-danger); }

.label {
	border-radius: var(--dv-radius-sm);
	font-weight: 700;
	padding: .25em .6em;
	letter-spacing: .01em;
}
.label-default { background-color: #6b7280; }
.label-primary { background-color: var(--dv-accent); }
.label-success { background-color: var(--dv-success); }
.label-info    { background-color: var(--dv-info); }
.label-warning { background-color: var(--dv-warning); }
.label-danger  { background-color: var(--dv-danger); }

.badge {
	background-color: var(--dv-accent-tint);
	color: var(--dv-accent);
	font-weight: 700;
}

/* ============================== 7. 모달 ============================== */
.modal-backdrop.in { opacity: .45; background-color: #0f172a; }
.modal-content {
	border: 0;
	border-radius: var(--dv-radius-xl);
	box-shadow: var(--dv-shadow-3);
}
.modal-header {
	border-bottom: 1px solid var(--dv-border-soft);
	padding: 16px 20px;
}
.modal-header .close { opacity: .5; transition: opacity var(--dv-transition); }
.modal-header .close:hover { opacity: 1; }
.modal-title {
	font-size: 16px;
	font-weight: 700;
	letter-spacing: -.01em;
}
.modal-body { padding: 20px; }
.modal-footer {
	border-top: 1px solid var(--dv-border-soft);
	padding: 14px 20px;
}

/* ============================== 8. 드롭다운/탭/페이지네이션 ============================== */
.dropdown-menu {
	border: 1px solid var(--dv-border);
	border-radius: var(--dv-radius-lg);
	box-shadow: var(--dv-shadow-2);
	padding: 6px;
}
.dropdown-menu > li > a {
	border-radius: var(--dv-radius-sm);
	color: var(--dv-text-1);
	padding: 8px 12px;
	transition: background-color var(--dv-transition);
}
.dropdown-menu > li > a:hover {
	background-color: var(--dv-surface-2);
	color: var(--dv-text-1);
}
.dropdown-menu .divider {
	margin: 6px 0;
	background-color: var(--dv-border-soft);
}

.nav-tabs {
	border-bottom: 1px solid var(--dv-border);
}
.nav-tabs > li > a {
	color: var(--dv-text-2);
	font-weight: 600;
	border-radius: var(--dv-radius) var(--dv-radius) 0 0;
	transition: background-color var(--dv-transition), color var(--dv-transition);
}
.nav-tabs > li > a:hover { background-color: var(--dv-surface-2); border-color: var(--dv-border); }
.nav-tabs > li.active > a, .nav-tabs > li.active > a:focus {
	color: var(--dv-accent);
	border-color: var(--dv-border) var(--dv-border) transparent;
	border-top: 2px solid var(--dv-accent);
	font-weight: 700;
}

.pagination > li > a, .pagination > li > span {
	color: var(--dv-text-2);
	border-color: var(--dv-border);
	margin: 0 2px;
	border-radius: var(--dv-radius-sm) !important;
	transition: all var(--dv-transition);
}
.pagination > li > a:hover { background-color: var(--dv-surface-2); color: var(--dv-text-1); }
.pagination > .active > a, .pagination > .active > span {
	background-color: var(--dv-accent);
	border-color: var(--dv-accent);
	color: var(--dv-text-inverse);
	font-weight: 700;
}
.pager li > a { border-radius: var(--dv-radius); }

/* 툴팁 */
.tooltip-inner {
	background-color: #1f2937;
	border-radius: var(--dv-radius-sm);
	font-size: 12px;
	padding: 6px 10px;
}
.tooltip.top .tooltip-arrow { border-top-color: #1f2937; }
.tooltip.bottom .tooltip-arrow { border-bottom-color: #1f2937; }
.tooltip.left .tooltip-arrow { border-left-color: #1f2937; }
.tooltip.right .tooltip-arrow { border-right-color: #1f2937; }

/* ============================== 9. 특수 컴포넌트 ============================== */
/* Pace 로딩바 — [26-10-01] Pace 제거됨. 하위호환용 잔재 정리 */
.pace { display: none !important; }

/* 페이지 로드 스켈레톤 (menus.php #dv_page_skeleton)
   숨김 안전장치 3중: JS window load → JS 6초 타이머 → CSS 12초 애니메이션 */
.dv_page_skeleton {
	position: fixed;
	inset: 0;
	z-index: var(--dv-z-toast);
	background: var(--dv-bg);
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding: 72px 24px 24px;
	opacity: 1;
	transition: opacity .3s ease, visibility .3s ease;
	animation: dvsk_autohide 12s ease forwards;
}
.dv_page_skeleton.dvsk_done {
	/* 애니메이션(failsafe)이 실행 중이면 키프레임이 클래스보다 우선하므로
	   숨김 시에는 애니메이션을 무력화한다 */
	animation: none !important;
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
}
@keyframes dvsk_autohide {
	0%, 91% { opacity: 1; visibility: visible; }
	100% { opacity: 0; visibility: hidden; pointer-events: none; }
}
.dvsk_panel { width: 100%; max-width: 980px; }
.dvsk_card {
	background: var(--dv-surface);
	border: 1px solid var(--dv-border-soft);
	border-radius: var(--dv-radius-lg);
	box-shadow: var(--dv-shadow-1);
	padding: 18px 20px;
	margin-bottom: 16px;
}
.dvsk_bar {
	height: 14px;
	border-radius: 7px;
	margin-bottom: 14px;
	background: linear-gradient(90deg, #eceff3 25%, #f5f7fa 45%, #eceff3 65%);
	background-size: 200% 100%;
	animation: dvsk_shimmer 1.3s ease-in-out infinite;
}
.dvsk_bar:last-child { margin-bottom: 0; }
.dvsk_title { height: 22px; width: 220px; margin: 0 0 22px; }
.dvsk_w30 { width: 30%; } .dvsk_w50 { width: 50%; } .dvsk_w60 { width: 60%; }
.dvsk_w70 { width: 70%; } .dvsk_w75 { width: 75%; } .dvsk_w80 { width: 80%; }
.dvsk_w85 { width: 85%; } .dvsk_w90 { width: 90%; }
@keyframes dvsk_shimmer {
	0% { background-position: 120% 0; }
	100% { background-position: -80% 0; }
}
@media (prefers-reduced-motion: reduce) {
	.dvsk_bar { animation: none; }
	.dv_page_skeleton { transition: none; }
}

/* SweetAlert(1세대) 리스타일 */
.sweet-alert {
	border-radius: var(--dv-radius-xl) !important;
	font-family: inherit !important;
	box-shadow: var(--dv-shadow-3) !important;
}
.sweet-alert h2 {
	font-size: 18px !important;
	font-weight: 700 !important;
	color: var(--dv-text-1) !important;
}
.sweet-alert p {
	font-size: 13.5px !important;
	color: var(--dv-text-2) !important;
}
.sweet-alert button {
	border-radius: var(--dv-radius) !important;
	font-weight: 700 !important;
	padding: 8px 22px !important;
	box-shadow: none !important;
}

/* 업로드/로딩 오버레이 (footer.php .upload_progress) */
.upload_progress {
	background: rgba(255, 255, 255, .85) !important;
	backdrop-filter: blur(2px);
	color: var(--dv-accent) !important;
}

/* typeahead 드롭다운 */
.typeahead, .tt-query, .tt-hint { border-radius: var(--dv-radius); }
.tt-menu, .tt-dropdown-menu {
	border: 1px solid var(--dv-border);
	border-radius: var(--dv-radius);
	box-shadow: var(--dv-shadow-2);
	background-color: var(--dv-surface);
	padding: 6px;
}
.tt-suggestion.tt-cursor, .tt-suggestion:hover {
	background-color: var(--dv-accent-tint);
	color: var(--dv-accent);
}

/* bootstrap-datepicker */
.datepicker.dropdown-menu {
	border-radius: var(--dv-radius-lg);
	box-shadow: var(--dv-shadow-2);
	border-color: var(--dv-border);
	padding: 8px;
	font-size: 12.5px;
}
.datepicker table tr td.active.active,
.datepicker table tr td span.active.active,
.datepicker table tr td.day:hover,
.datepicker table tr td.day.focused {
	background-color: var(--dv-accent-tint);
	color: var(--dv-accent);
}
.datepicker table tr td.active.active,
.datepicker table tr td span.active.active {
	background-color: var(--dv-accent);
	color: var(--dv-text-inverse);
}

/* 이미지 썸네일/라운드 */
.img-thumbnail {
	border-color: var(--dv-border);
	border-radius: var(--dv-radius);
	box-shadow: none;
}
.img-rounded { border-radius: var(--dv-radius); }

/* progress bar */
.progress {
	border-radius: 99px;
	background-color: var(--dv-surface-2);
	box-shadow: none;
	height: 8px;
}
.progress-bar {
	background-color: var(--dv-accent);
	box-shadow: none;
	border-radius: 99px;
}

/* 입력 그룹 라벨 애드온 안의 체크박스 정렬 유지 (menus.php 정보수정 모달 등) */
.input-group-addon.checkbox {
	border-left: 1px solid var(--dv-border-strong);
}

/* text-* 색상 보정 */
.text-primary { color: var(--dv-accent); }
.text-success { color: var(--dv-success); }
.text-info { color: var(--dv-info); }
.text-warning { color: var(--dv-warning); }
.text-danger { color: var(--dv-danger); }
.text-muted { color: var(--dv-text-3); }
.bg-primary { background-color: var(--dv-accent); }
.bg-success { background-color: var(--dv-success-tint); }
.bg-info { background-color: var(--dv-info-tint); }
.bg-warning { background-color: var(--dv-warning-tint); }
.bg-danger { background-color: var(--dv-danger-tint); }
