* {
    font-family: 'Plus Jakarta Sans', 'Noto Sans KR', sans-serif;
    font-size: var(--font-normal);
    box-shadow: none !important;
    outline: none !important;
}

*:focus {
    outline: none !important;
    box-shadow: none !important;
}

/* Layout Structure */
.layout-wrapper {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    background-color: var(--bs-light);
}

.layout-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    background-color: var(--bs-white);
    border-bottom: 1px solid var(--bs-slate-200);
    height: 64px;
}

.layout-body {
    display: flex;
    flex: 1;
    margin-top: 65px;
    overflow: hidden;
}

.layout-sidebar {
    position: fixed;
    top: 64px;
    left: 0;
    bottom: 0;
    width: 280px;
    background-color: var(--bs-white);
    color: var(--bs-slate-600);
    overflow-y: auto;
    border-right: 1px solid var(--bs-slate-200);
    z-index: 999;
}

.layout-content {
    flex: 1;
    margin-left: 280px;
    overflow-y: auto;
    background-color: var(--bs-light);
    padding: 30px 40px;
}

.layout-footer {
    flex-shrink: 0;
    background-color: var(--bs-white);
    color: var(--bs-slate-600);
    padding: 25px 0;
    border-top: 1px solid var(--bs-slate-200);
}

/* Sidebar Navigation */
.sidebar-nav {
    padding: 25px 15px;
}

.sidebar-nav .nav-link {
    color: var(--bs-secondary);
    padding: 10px;
    border-radius: var(--bs-border-radius);
    transition: all 0.2s ease-in-out;
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: var(--font-normal);
    font-weight: 500;
    margin-bottom: 5px;
}

.sidebar-nav .nav-link:hover {
    background-color: var(--bs-slate-100);
    color: var(--bs-slate-900);
}

.sidebar-nav .nav-link.active {
    background-color: rgba(var(--bs-primary-rgb), 0.1);
    color: var(--bs-primary);
}

.nav-icon {
    font-size: 18px;
    width: 20px;
    text-align: center;
}

.sidebar-nav .nav-link-label { display: inline-flex; align-items: center; gap: 10px; }

/* Nested Menu */
.sidebar-nav .nav-item {
    position: relative;
}

.sidebar-nav .submenu {
    display: none;
    padding-left: 10px;
}

.sidebar-nav .submenu.show {
    display: block;
}

.sidebar-nav .submenu-toggle {
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
}

.sidebar-nav .submenu-toggle .ri-arrow-down-s-line {
    font-size: var(--font-normal);
    transition: transform 0.2s ease-in-out;
    color: var(--bs-slate-400);
}

.sidebar-nav .submenu-toggle.collapsed .ri-arrow-down-s-line {
    transform: rotate(-90deg);
}

.sidebar-nav .submenu .nav-link {
    padding-left: 40px;
}

.sidebar-nav .submenu .submenu .nav-link {
    padding-left: 55px;
}

.sidebar-nav .submenu .submenu .submenu .nav-link {
    padding-left: 70px;
}

.sidebar-nav .submenu .submenu .submenu .submenu .nav-link {
    padding-left: 90px;
}

/* Content Area */
.content-header {
    margin-bottom: 30px;
}

.content-header h1 {
    font-weight: 600;
    color: var(--bs-slate-900);
    margin-bottom: 10px;
    font-size: 28px;
}

.content-header p {
    color: var(--bs-secondary);
    margin: 0;
    font-size: var(--font-large);
}

.content-body {
    max-width: 1400px;
}

/* Brand Icon */
.brand-icon {
    font-size: 24px;
    margin-right: 10px;
}

/* Dropdown Positioning Fix */
.layout-header .dropdown-menu {
    position: absolute;
    right: 0;
    left: auto;
    transform: translateX(0);
}

.layout-header .dropdown-menu.show {
    transform: translateX(0);
}

/* Card Hover Effect Override */
.card {
    box-shadow: none !important;
    transition: none !important;
    border: 1px solid var(--bs-slate-200);
    border-radius: var(--bs-border-radius);
    background-color: var(--bs-white);
}

.card:hover {
    box-shadow: none !important;
    transform: none !important;
}

.card-header {
    background-color: var(--bs-white);
    border-bottom: 1px solid var(--bs-slate-200);
    font-weight: 600;
    padding: 20px 25px;
    color: var(--bs-slate-900);
}

.card-body {
    padding: 25px;
}

.card-footer {
    background-color: var(--bs-white);
    border-top: 1px solid var(--bs-slate-200);
    padding: 15px 25px;
}

/* Stat Cards */
.stat-card {
    background-color: var(--bs-white);
    border: 1px solid var(--bs-slate-200);
    border-radius: var(--bs-border-radius);
    padding: 25px;
    height: 100%;
}

.stat-number {
    font-size: 30px;
    font-weight: 700;
    color: var(--bs-slate-900);
    margin-bottom: 10px;
}

.stat-label {
    font-size: var(--font-large);
    color: var(--bs-secondary);
    font-weight: 500;
}

[data-bs-theme="dark"] .stat-card {
    background-color: var(--bs-dark);
    border-color: var(--bs-slate-600);
}

[data-bs-theme="dark"] .stat-number {
    color: var(--bs-slate-100);
}

[data-bs-theme="dark"] .stat-label {
    color: var(--bs-slate-400);
}

/* Dark Theme Layout */
[data-bs-theme="dark"] .layout-wrapper {
    background-color: var(--bs-slate-900);
}

[data-bs-theme="dark"] .layout-header {
    background-color: var(--bs-dark);
    border-bottom-color: var(--bs-slate-600);
}

[data-bs-theme="dark"] .layout-sidebar {
    background-color: var(--bs-dark);
    border-right-color: var(--bs-slate-600);
}

[data-bs-theme="dark"] .layout-content {
    background-color: var(--bs-slate-900);
}

[data-bs-theme="dark"] .layout-footer {
    background-color: var(--bs-dark);
    border-top-color: var(--bs-slate-600);
    color: var(--bs-slate-200);
}

[data-bs-theme="dark"] .sidebar-nav .nav-link {
    color: var(--bs-slate-400);
}

[data-bs-theme="dark"] .sidebar-nav .nav-link:hover {
    background-color: var(--bs-slate-600);
    color: var(--bs-slate-100);
}

[data-bs-theme="dark"] .sidebar-nav .nav-link.active {
    background-color: rgba(var(--bs-primary-rgb), 0.2);
    color: var(--bs-primary-lighter);
}

[data-bs-theme="dark"] .card {
    background-color: var(--bs-dark);
    border-color: var(--bs-slate-600);
}

[data-bs-theme="dark"] .card-header {
    background-color: var(--bs-dark);
    border-bottom-color: var(--bs-slate-600);
    color: var(--bs-slate-100);
}

[data-bs-theme="dark"] .card-footer {
    background-color: var(--bs-dark);
    border-top-color: var(--bs-slate-600);
}

[data-bs-theme="dark"] .content-header h1 {
    color: var(--bs-slate-100);
}

[data-bs-theme="dark"] .content-header p {
    color: var(--bs-slate-400);
}

/* Responsive Design */
@media (max-width: 991.98px) {
    .layout-sidebar {
        left: -280px;
        transition: left 0.3s ease-in-out;
    }

    .layout-sidebar.show {
        left: 0;
    }

    .layout-content {
        margin-left: 0;
        padding: 25px;
    }

    .sidebar-toggle {
        display: block !important;
    }
}

@media (max-width: 575.98px) {
    .layout-content {
        padding: 15px;
    }

    .content-header {
        margin-bottom: 25px;
    }

    .content-header h1 {
        font-size: 24px;
    }
}

/* ============================================================
   공통 폴리시 (전 페이지)
   ============================================================ */

/* 헤더 브랜드 — 테마 적응 색상 */
.brand-link strong {
    font-size: var(--font-large);
    color: var(--bs-emphasis-color);
}

/* 전역 토스트 호스트 (app.js가 주입) */
.sr-toasts {
    position: fixed;
    right: 20px;
    bottom: 20px;
    z-index: 1090;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

/* nav-pills 안의 카운트 배지 가독성 */
.nav-pills .nav-link .badge {
    background: rgba(var(--bs-white-rgb), 0.25);
    color: inherit;
}
.nav-pills .nav-link:not(.active) .badge {
    background: var(--bs-border-color);
    color: var(--bs-secondary);
}

/* 빈 상태 박스 */
.empty-state {
    text-align: center;
    color: var(--bs-secondary);
    padding: 50px 15px;
}
.empty-state i {
    font-size: 36px;
    opacity: 0.5;
}

/* 예약 취소 모달 — 요약 박스 */
.cancel-summary {
    background: var(--bs-light);
    border: 1px solid var(--bs-border-color);
    border-radius: var(--bs-border-radius);
    padding: 15px;
    margin-bottom: 20px;
}
.cancel-summary .line {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 0;
    font-size: var(--font-normal);
}
.cancel-summary .line .k { color: var(--bs-secondary); }
.cancel-summary .line .v { color: var(--bs-emphasis-color); font-weight: 600; }
.cancel-summary .refund { color: var(--bs-danger); }
[data-bs-theme="dark"] .cancel-summary { background: var(--bs-slate-900); border-color: var(--bs-slate-700); }

/* 환불 금액 안내 — 박스로 감싸 우측정렬 강조 (환불불가는 빨강) */
#refundHint {
    margin-top: 10px;
    padding: 10px 15px;
    border-radius: var(--bs-border-radius);
    background: rgba(var(--bs-primary-rgb), 0.08);
    text-align: right;
    font-size: var(--font-normal);
    font-weight: 600;
    color: var(--bs-primary);
}
#refundHint.none {
    background: rgba(var(--bs-danger-rgb), 0.10);
    color: var(--bs-danger);
}

/* 다듬은 테이블 — 예약 관리 · 사용자 관리 · 방 관리 */
.sr-table {
    margin-bottom: 0;
}

.sr-table thead th {
    background: transparent;
    border-bottom: 1px solid var(--bs-border-color);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-size: var(--font-normal);
    font-weight: 600;
    color: var(--bs-secondary);
    padding: 10px;
    white-space: nowrap;
}

.sr-table tbody td {
    padding: 10px;
    font-size: var(--font-normal);
    vertical-align: middle;
    border-color: var(--bs-border-color);
}

/* 테이블 안 배지는 btn-sm(행 버튼)과 같은 크기로 */
.sr-table .badge {
    padding: 5px 10px;
    font-size: var(--font-small);
}

.sr-table tbody tr:last-child td {
    border-bottom: 0;
}

.sr-table tbody tr {
    transition: background 0.15s ease;
}

.sr-table tbody tr:hover {
    background: rgba(var(--bs-primary-rgb), 0.05);
}

/* 첫/마지막 칸 여백 */
.sr-table th:first-child,
.sr-table td:first-child { padding-left: 20px; }
.sr-table th:last-child,
.sr-table td:last-child { padding-right: 20px; }

[data-bs-theme="dark"] .sr-table thead th {
    background: transparent;
    color: var(--bs-slate-400);
    border-bottom-color: var(--bs-slate-700);
}
[data-bs-theme="dark"] .sr-table tbody td { border-color: var(--bs-slate-700); }
[data-bs-theme="dark"] .sr-table tbody tr:hover { background: rgba(var(--bs-primary-rgb), 0.12); }

/* ============================================================
   Aurora 스타일 — 헤더 / 사이드바 / 대시보드
   ============================================================ */

/* ---- 헤더 ---- */
.layout-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    padding: 0 25px;
}

.header-left {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 220px;
}

.brand-link {
    display: flex;
    align-items: center;
    gap: 5px;
    text-decoration: none;
}
.brand-link strong {
    font-size: var(--font-large);
    color: var(--bs-emphasis-color);
}
.brand-icon { font-size: 24px; }

.header-search {
    flex: 1;
    max-width: 460px;
    position: relative;
    display: flex;
    align-items: center;
}
.header-search > i {
    position: absolute;
    left: 16px;
    color: var(--bs-slate-400);
    font-size: var(--font-large);
    pointer-events: none;
}
.header-search .form-control {
    width: 100%;
    background: var(--bs-light);
    border: 1px solid transparent;
    border-radius: var(--bs-border-radius);
    padding: 10px 15px 10px 40px;
}
.header-search .form-control:focus {
    background: var(--bs-white);
    border-color: var(--bs-primary);
}

/* ---- 글로벌 검색 결과 드롭다운 (스팟라이트) ---- */
.search-results {
    position: absolute;
    top: calc(100% + 5px);
    left: 0;
    right: 0;
    max-height: 60vh;
    overflow-y: auto;
    background: var(--bs-white);
    border: 1px solid var(--bs-border-color);
    border-radius: var(--bs-border-radius);
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.12) !important;
    padding: 5px;
    z-index: 1100;
    display: none;
}
.search-results.show { display: block; }
.search-group-label {
    font-size: var(--font-small);
    color: var(--bs-secondary);
    font-weight: 600;
    padding: 10px 10px 5px;
}
.search-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px;
    border-radius: var(--bs-border-radius);
    cursor: pointer;
}
.search-item:hover,
.search-item.active { background: rgba(var(--bs-primary-rgb), 0.08); }
.search-item .s-ico {
    width: 32px;
    height: 32px;
    flex-shrink: 0;
    border-radius: 50%;
    background: rgba(var(--bs-primary-rgb), 0.12);
    color: var(--bs-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: var(--font-large);
}
.search-item .s-body { flex: 1; min-width: 0; }
.search-item .s-label {
    font-size: var(--font-normal);
    color: var(--bs-emphasis-color);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.search-item .s-label b { color: var(--bs-primary); font-weight: 700; }
.search-item .s-sub {
    font-size: var(--font-small);
    color: var(--bs-secondary);
}
.search-item .s-cat {
    font-size: var(--font-small);
    color: var(--bs-slate-400);
    flex-shrink: 0;
}
.search-empty {
    padding: 25px 10px;
    text-align: center;
    color: var(--bs-secondary);
    font-size: var(--font-normal);
}
[data-bs-theme="dark"] .search-results {
    background: var(--bs-dark);
    border-color: var(--bs-slate-600);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.4) !important;
}

.header-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

/* 회사 선택 스위처 (헤더 select2 — 검색 + 무한스크롤) */
.company-switcher {
    min-width: 190px;
    max-width: 230px;
}
.company-switcher .select2-container--bootstrap-5 .select2-selection {
    height: 38px;
    min-height: 38px;
    border-radius: 999px;
    border-color: var(--bs-border-color);
    background: var(--bs-white);
    display: flex;
    align-items: center;
    padding: 0 12px;
}
.company-switcher .select2-container--bootstrap-5 .select2-selection__rendered {
    padding: 0;
    line-height: 1.2;
    color: var(--bs-body-color);
}
.company-switcher .select2-container--bootstrap-5 .select2-selection__clear { margin-right: 4px; }
[data-bs-theme="dark"] .company-switcher .select2-container--bootstrap-5 .select2-selection {
    background: var(--bs-dark);
    border-color: var(--bs-slate-700);
}

.icon-btn {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    border: 1px solid var(--bs-border-color);
    background: var(--bs-white);
    color: var(--bs-body-color);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: var(--font-large);
    position: relative;
    transition: all 0.15s ease;
}
.icon-btn:hover { background: var(--bs-slate-100); color: var(--bs-primary); }
.icon-btn.has-dot::after {
    content: "";
    position: absolute;
    top: 8px;
    right: 9px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--bs-danger);
    border: 2px solid var(--bs-white);
}

.user-btn {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    background: transparent;
    border: none;
    color: var(--bs-secondary);
    padding: 5px 5px;
}
.user-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--bs-primary), var(--bs-primary-dark));
    color: var(--bs-white);
    font-weight: 700;
    font-size: var(--font-normal);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.notif-menu { width: 320px; padding: 10px; }
.notif-menu .dropdown-header { font-weight: 700; color: var(--bs-emphasis-color); padding: 10px 10px; }
.notif-menu .dropdown-item { display: flex; gap: 10px; align-items: center; white-space: normal; padding: 10px 10px; font-size: var(--font-normal); }
.notif-menu .dropdown-item i { font-size: var(--font-large); margin-top: 5px; }

/* ---- 사이드바 섹션 ---- */
.nav-section {
    font-size: var(--font-small);
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    color: var(--bs-slate-400);
    padding: 5px 15px;
    margin-top: 15px;
}
.nav-section:first-child { margin-top: 0; }

[data-bs-theme="dark"] .icon-btn { background: var(--bs-dark); border-color: var(--bs-slate-700); color: var(--bs-slate-200); }
[data-bs-theme="dark"] .icon-btn:hover { background: var(--bs-slate-700); }
[data-bs-theme="dark"] .header-search .form-control { background: var(--bs-slate-900); }
[data-bs-theme="dark"] .header-search .form-control:focus { background: var(--bs-dark); }

/* ---- 콘텐츠 헤더 (브레드크럼 + 제목 + 액션) ---- */
.content-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 15px;
    margin-bottom: 30px;
}
.page-breadcrumb {
    font-size: var(--font-normal);
    margin-bottom: 5px;
    color: var(--bs-secondary);
}
.page-breadcrumb a { color: var(--bs-secondary); text-decoration: none; }
.page-breadcrumb a:hover { color: var(--bs-primary); }
.page-breadcrumb .sep { margin: 0 5px; color: var(--bs-slate-300); }
.page-breadcrumb .cur { color: var(--bs-emphasis-color); font-weight: 600; }
.content-actions { flex-shrink: 0; display: flex; gap: 10px; align-items: center; }

/* ---- 카드 라운드 부드럽게 ---- */
.card { border-radius: var(--bs-border-radius); }

/* ---- KPI 요약 타일 (대시보드 공통: index · stats) ---- */
.rsv-kpis {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
    margin-bottom: 20px;
}
.rsv-kpi {
    background: var(--bs-white);
    border: 1px solid var(--bs-border-color);
    border-radius: var(--bs-border-radius);
    padding: 15px 20px;
}
.rsv-kpi .lbl {
    font-size: var(--font-small);
    color: var(--bs-secondary);
}
.rsv-kpi .num {
    font-size: 26px;
    font-weight: 700;
    color: var(--bs-dark);
    line-height: 1.1;
    margin-top: 10px;
}

/* KPI 헤더 (라벨·숫자 + 아이콘) */
.kpi-head { display: flex; align-items: flex-start; justify-content: space-between; }
.kpi-icon {
    width: 42px; height: 42px; border-radius: var(--bs-border-radius);
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 20px; background: rgba(var(--bs-primary-rgb), 0.12); color: var(--bs-primary);
}

/* KPI 증감 배지 */
.kpi-delta {
    display: inline-flex; align-items: center; gap: 5px;
    font-size: var(--font-small); font-weight: 600;
    padding: 5px 10px; border-radius: var(--bs-border-radius); margin-top: 10px;
}
.kpi-delta.up   { background: rgba(var(--bs-success-rgb), 0.12); color: var(--bs-success); }
.kpi-delta.down { background: rgba(var(--bs-danger-rgb), 0.12); color: var(--bs-danger); }
.kpi-delta.flat { background: var(--bs-border-color); color: var(--bs-secondary); }

[data-bs-theme="dark"] .rsv-kpi { background: var(--bs-dark); border-color: var(--bs-slate-700); }
[data-bs-theme="dark"] .rsv-kpi .num { color: var(--bs-slate-100); }

@media (max-width: 991.98px) {
    .rsv-kpis { grid-template-columns: repeat(2, 1fr); }
}

/* ---- 대시보드 위젯 카드 헤더 ---- */
.widget-head {
    display: flex; align-items: center; justify-content: space-between;
    padding: 20px 20px; border-bottom: 1px solid var(--bs-border-color);
}
.widget-head .title { font-weight: 700; color: var(--bs-emphasis-color); font-size: var(--font-large); display:flex; align-items: center; gap: 10px;}
.widget-head .title i { font-size: 30px; -webkit-text-stroke: 0.4px currentColor; }
.widget-head .subtitle { font-size: var(--font-small); color: var(--bs-secondary); }

/* ---- 활동 피드 ---- */
.feed-list { list-style: none; margin: 0; padding: 10px 0; max-height: 360px; overflow-y: auto; }
.feed-item {
    display: flex; gap: 10px; align-items: center;
    padding: 10px 20px; transition: background 0.15s ease;
}
.feed-item:hover { background: rgba(var(--bs-primary-rgb), 0.05); }
.feed-item.fresh { animation: feedFlash 1.2s ease; }
@keyframes feedFlash { 0% { background: rgba(var(--bs-warning-rgb), 0.18); } 100% { background: transparent; } }
.feed-avatar {
    width: 36px; height: 36px; border-radius: 50%; flex-shrink: 0;
    background: rgba(var(--bs-primary-rgb), 0.12); color: var(--bs-primary);
    display: inline-flex; align-items: center; justify-content: center;
    font-weight: 700; font-size: var(--font-normal);
}
.feed-body { flex: 1; min-width: 0; }
.feed-body .txt { font-size: var(--font-normal); color: var(--bs-body-color); }
.feed-body .txt b { color: var(--bs-emphasis-color); }
.feed-body .meta { font-size: var(--font-small); color: var(--bs-secondary); }
.feed-time { font-size: var(--font-small); color: var(--bs-slate-400); flex-shrink: 0; }

/* ---- 미니 리스트 (내 다가오는 예약) ---- */
.mini-list { list-style: none; margin: 0; padding: 0; }
.mini-item {
    display: flex; align-items: center; justify-content: space-between;
    padding: 10px 20px; border-bottom: 1px solid var(--bs-border-color);
}
.mini-item:last-child { border-bottom: 0; }
.mini-item .room { font-weight: 600; color: var(--bs-emphasis-color); font-size: var(--font-normal); }
.mini-item .when { font-size: var(--font-small); color: var(--bs-secondary); }

[data-bs-theme="dark"] .widget-head { border-bottom-color: var(--bs-slate-700); }
[data-bs-theme="dark"] .mini-item { border-bottom-color: var(--bs-slate-700); }
[data-bs-theme="dark"] .feed-item:hover { background: rgba(var(--bs-primary-rgb), 0.12); }

/* ---- 목록 필터 툴바 (예약 관리 · 사용자 관리 공통) ---- */
.list-toolbar {
    display: flex; flex-wrap: wrap; gap: 10px; align-items: center;
    padding: 15px 20px; border-bottom: 1px solid var(--bs-border-color);
}
.list-toolbar .form-select,
.list-toolbar .form-control { width: auto; min-width: 130px; }
/* select2도 툴바에선 auto 폭 (인라인 width:100% 무시) */
.list-toolbar .select2-container { width: auto !important; min-width: 150px; }
/* 검색창 — 한 줄 우측 정렬 */
.list-toolbar .tb-search { position: relative; margin-left: auto; flex: 0 0 auto; width: 280px; max-width: 100%; }
.list-toolbar .tb-search .form-control { width: 100%; min-width: 0; padding-left: 35px; }
.list-toolbar .tb-search i { position: absolute; left: 13px; top: 50%; transform: translateY(-50%); color: var(--bs-slate-400); z-index: 2; }
.list-toolbar .tb-spacer { margin-left: 0; }

/* ---- 상세 모달 키-값 리스트 (공통) ---- */
.kv-list { list-style: none; margin: 0; padding: 0; }
.kv-list li {
    display: flex; align-items: center; justify-content: space-between; gap: 15px;
    padding: 15px 0; border-bottom: 1px solid var(--bs-border-color);
}
.kv-list li:last-child { border-bottom: 0; }
.kv-list .k { color: var(--bs-secondary); font-size: var(--font-normal); }
.kv-list .v { font-weight: 600; color: var(--bs-emphasis-color); }

[data-bs-theme="dark"] .list-toolbar { border-bottom-color: var(--bs-slate-700); }
[data-bs-theme="dark"] .kv-list li { border-bottom-color: var(--bs-slate-700); }

/* ============================================================
   Select2 — .form-control 과 동일한 룩으로 통일
   (옵션은 글자 크기만 var(--font-normal))
   ============================================================ */
.select2-container--bootstrap-5 .select2-selection {
    border: 1px solid var(--bs-border-color) !important;
    border-radius: var(--bs-border-radius) !important;
    min-height: 37px;
    padding: 10px 35px 10px 10px;            /* 우측은 화살표 공간 */
    font-size: var(--font-normal);
    background-color: var(--bs-white);
    color: var(--bs-body-color);
    display: flex;
    align-items: center;
}
.select2-container--bootstrap-5 .select2-selection--single .select2-selection__rendered {
    padding: 0;
    line-height: 1.4;
    color: var(--bs-body-color);
}
.select2-container--bootstrap-5 .select2-selection--single .select2-selection__placeholder {
    color: var(--bs-slate-400);
}
.select2-container--bootstrap-5.select2-container--focus .select2-selection,
.select2-container--bootstrap-5.select2-container--open .select2-selection {
    border-color: var(--bs-primary) !important;
}
.select2-container--bootstrap-5 .select2-dropdown {
    border: 1px solid var(--bs-border-color);
    border-radius: var(--bs-border-radius);
    overflow: hidden;
    background-color: var(--bs-white);
}
.select2-container--bootstrap-5 .select2-results__option {
    font-size: var(--font-normal);
    padding: 10px 10px;
    color: var(--bs-body-color);
}
.select2-container--bootstrap-5 .select2-results__option--highlighted,
.select2-container--bootstrap-5 .select2-results__option--selected {
    background-color: var(--bs-primary) !important;
    color: var(--bs-white) !important;
}
.select2-container--bootstrap-5 .select2-search--dropdown .select2-search__field {
    font-size: var(--font-normal);
    border: 1px solid var(--bs-border-color);
    border-radius: var(--bs-border-radius);
    padding: 5px 10px;
}

[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-selection { background-color: var(--bs-dark); color: var(--bs-slate-200); }
[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-selection__rendered { color: var(--bs-slate-200); }
[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-dropdown { background-color: var(--bs-dark); border-color: var(--bs-slate-700); }
[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-results__option { color: var(--bs-slate-200); }
[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-search--dropdown .select2-search__field { background-color: var(--bs-dark); color: var(--bs-slate-200); border-color: var(--bs-slate-700); }

/* ============================================================
   DataTables — 카드 안 컨트롤 행(검색/정보/페이지) 일관 패딩
   ============================================================ */
.dt-container .row.dt-layout-table { margin: 0; }
.dt-container .row:not(.dt-layout-table) { margin: 0; padding: 15px 20px; }
.dt-container .row:not(.dt-layout-table) > * { padding-left: 0; padding-right: 0; }
.dt-container .dt-paging .pagination { margin: 0; }
.dt-container .dt-info { color: var(--bs-secondary); font-size: var(--font-normal); }

/* ============================================================
   flatpickr 달력 — 보라 테마 + 토큰
   ============================================================ */
.flatpickr-calendar {
    border: 1px solid var(--bs-border-color);
    border-radius: var(--bs-border-radius);
    box-shadow: 0 5px 25px rgba(var(--bs-black-rgb), 0.1) !important;
    font-family: inherit;
}
.flatpickr-day { border-radius: var(--bs-border-radius); color: var(--bs-body-color); }
.flatpickr-day:hover, .flatpickr-day:focus { background: var(--bs-slate-100); border-color: transparent; }
.flatpickr-day.selected, .flatpickr-day.selected:hover,
.flatpickr-day.startRange, .flatpickr-day.endRange {
    background: var(--bs-primary); border-color: var(--bs-primary); color: var(--bs-white);
}
.flatpickr-day.today { border-color: var(--bs-primary); }
.flatpickr-day.today:hover { background: var(--bs-primary); color: var(--bs-white); }
.flatpickr-day.flatpickr-disabled, .flatpickr-day.prevMonthDay, .flatpickr-day.nextMonthDay { color: var(--bs-slate-400); }
.flatpickr-months .flatpickr-month, .flatpickr-current-month input.cur-year { color: var(--bs-emphasis-color); font-weight: 600; }
span.flatpickr-weekday { color: var(--bs-secondary); font-weight: 600; }
.flatpickr-months .flatpickr-prev-month:hover svg, .flatpickr-months .flatpickr-next-month:hover svg { fill: var(--bs-primary); }

[data-bs-theme="dark"] .flatpickr-calendar { background: var(--bs-dark); border-color: var(--bs-slate-700); }
[data-bs-theme="dark"] .flatpickr-calendar.arrowTop::before, [data-bs-theme="dark"] .flatpickr-calendar.arrowTop::after { border-bottom-color: var(--bs-dark); }
[data-bs-theme="dark"] .flatpickr-calendar.arrowBottom::before, [data-bs-theme="dark"] .flatpickr-calendar.arrowBottom::after { border-top-color: var(--bs-dark); }
[data-bs-theme="dark"] .flatpickr-day { color: var(--bs-slate-200); }
[data-bs-theme="dark"] .flatpickr-day:hover, [data-bs-theme="dark"] .flatpickr-day:focus { background: var(--bs-slate-700); }
[data-bs-theme="dark"] .flatpickr-months .flatpickr-month, [data-bs-theme="dark"] .flatpickr-current-month input.cur-year { color: var(--bs-slate-100); }
[data-bs-theme="dark"] span.flatpickr-weekday { color: var(--bs-slate-400); }
[data-bs-theme="dark"] .flatpickr-day.prevMonthDay, [data-bs-theme="dark"] .flatpickr-day.nextMonthDay, [data-bs-theme="dark"] .flatpickr-day.flatpickr-disabled { color: var(--bs-slate-600); }
[data-bs-theme="dark"] .numInputWrapper span { border-color: var(--bs-slate-700); }

@media (max-width: 767.98px) {
    .header-search { display: none; }
    .header-left { min-width: 0; }
    .content-header { flex-wrap: wrap; }
}