body .admin-content-root {
    color: #1f2937;
    line-height: 1.42857143;
    letter-spacing: 0;
    padding-top: 14px;
}

body .admin-content-root .admin-page-header {
    align-items: flex-end;
    border-bottom: 1px solid #e4e9f1;
    display: flex;
    gap: 16px;
    justify-content: space-between;
    margin-bottom: 14px;
    padding-bottom: 12px;
}

body .admin-content-root .admin-page-title {
    color: #20242a;
    font-size: 22px;
    font-weight: 800;
    line-height: 1.25;
    margin: 0;
}

body .admin-content-root .admin-page-meta {
    color: #6f7782;
    font-size: 12px;
    font-weight: 700;
    margin-top: 6px;
}

body .admin-content-root .admin-page-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
}

body .admin-content-root .admin-panel {
    background: #ffffff;
    border: 1px solid #e4e9f1;
    border-radius: 7px;
    margin-bottom: 14px;
    overflow: visible;
}

body .admin-content-root .admin-panel-header {
    align-items: center;
    border-bottom: 1px solid #e4e9f1;
    display: flex;
    gap: 12px;
    justify-content: space-between;
    min-height: 42px;
    padding: 8px 14px;
}

body .admin-content-root .admin-panel-title {
    color: #20242a;
    font-size: 15px;
    font-weight: 800;
    line-height: 1.35;
    margin: 0;
}

body .admin-content-root .admin-panel-body {
    padding: 12px 14px 14px;
}

body .admin-content-root .admin-panel-actions,
body .admin-content-root .admin-form-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

body .admin-content-root .admin-form-actions {
    margin-top: 10px;
}

body .admin-content-root .admin-table-wrap {
    overflow-x: auto;
    width: 100%;
}

body .admin-content-root .admin-table-wrap > .table {
    margin-bottom: 0;
    min-width: max-content;
    width: 100%;
}

body .admin-content-root .admin-toolbar {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: space-between;
    margin-bottom: 12px;
}

body .admin-content-root .admin-toolbar-left,
body .admin-content-root .admin-toolbar-right {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

body .admin-content-root .admin-inline-form {
    align-items: center;
    display: inline-flex;
    gap: 8px;
    margin: 0;
}

body .admin-content-root .admin-inline-select {
    min-width: 120px;
    width: auto;
}

body .admin-content-root .admin-filter-grid {
    align-items: end;
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
}

body .admin-content-root .admin-filter-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

body .admin-content-root .admin-filter-field.is-wide {
    grid-column: span 2;
}

body .admin-content-root .admin-filter-field .form-label {
    color: #374151;
    font-size: 12px;
    font-weight: 800;
    margin: 0;
}

body .admin-content-root .admin-filter-action {
    align-items: end;
    display: flex;
}

body .admin-content-root .admin-filter-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-start;
    margin-top: 12px;
    width: 100%;
}

/* 액션 버튼 의미 그룹 구분선: 검색/초기화(조회 트리거) ↔ 그 외 작업 */
body .admin-content-root .admin-filter-actions-sep {
    align-self: stretch;
    flex: 0 0 auto;
    width: 1px;
    min-height: 24px;
    margin: 0 4px;
    background: #d9dee5;
}

@media (max-width: 767px) {
    body .admin-content-root .admin-filter-field.is-wide {
        grid-column: auto;
    }
    /* 좁은 화면에서 wrap 시 줄 경계의 구분선 숨김 */
    body .admin-content-root .admin-filter-actions-sep {
        display: none;
    }
}

body .admin-content-root .admin-data-table {
    border-collapse: separate;
    border-spacing: 0;
}

body .admin-content-root .admin-data-table > thead > tr > th,
body .admin-content-root .admin-data-table > tbody > tr > td {
    white-space: nowrap;
}

body .admin-content-root .admin-data-table > tbody > tr.admin-row-clickable {
    cursor: pointer;
}

body .admin-content-root .admin-data-table > tbody > tr.admin-row-clickable:hover > * {
    --bs-table-accent-bg: #eef4ff;
    background-color: #eef4ff;
}

body .admin-content-root .admin-data-table > tbody > tr.admin-row-muted > * {
    --bs-table-accent-bg: #fff8e8;
    background-color: #fff8e8 !important;
    color: #6b5a2a;
}

body .admin-content-root .admin-status-pill {
    align-items: center;
    border-radius: 999px;
    display: inline-flex;
    font-size: 12px;
    font-weight: 800;
    justify-content: center;
    line-height: 1;
    min-width: 42px;
    padding: 5px 8px;
}

body .admin-content-root .admin-status-pill.is-active {
    background: #e8f7ef;
    color: #137047;
}

body .admin-content-root .admin-status-pill.is-muted {
    background: #f3f4f6;
    color: #6b7280;
}

body .admin-content-root .admin-date-input {
    background: url('/img/icon/calendar_icon.png') 95% center / 12px 12px no-repeat;
    border: 1px solid #d8dee8;
    border-radius: 6px;
    color: #4b5563;
    height: 30px;
    letter-spacing: 0;
    padding-left: 10px;
    width: 150px;
}

body .admin-content-root .admin-section-heading {
    border-bottom: 1px solid #e4e9f1;
    color: #20242a;
    font-size: 16px;
    font-weight: 800;
    line-height: 1.45;
    margin: 0 0 12px;
    padding-bottom: 10px;
}

body .admin-content-root .admin-section-heading p {
    color: #6b7280;
    font-size: 13px;
    font-weight: 600;
    margin: 8px 0 0;
}

html.admin-bootstrap5 body {
    color: #1f2937;
    font-size: 14px;
    letter-spacing: 0;
}

html.admin-bootstrap5 .hide {
    display: none !important;
}

@keyframes admin-glyphicon-spin {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

html.admin-bootstrap5 .glyphicon {
    display: inline-block;
    font-family: "Font Awesome 5 Free" !important;
    font-style: normal;
    font-weight: 900;
    line-height: 1;
    text-rendering: auto;
}

html.admin-bootstrap5 .glyphicon:before {
    display: inline-block;
}

html.admin-bootstrap5 .glyphicon-spin:before {
    animation: admin-glyphicon-spin 1s linear infinite;
}

html.admin-bootstrap5 .glyphicon-align-left:before { content: "\f036"; }
html.admin-bootstrap5 .glyphicon-calculator:before { content: "\f1ec"; }
html.admin-bootstrap5 .glyphicon-chevron-down:before { content: "\f078"; }
html.admin-bootstrap5 .glyphicon-chevron-up:before { content: "\f077"; }
html.admin-bootstrap5 .glyphicon-cog:before { content: "\f013"; }
html.admin-bootstrap5 .glyphicon-comment:before { content: "\f075"; }
html.admin-bootstrap5 .glyphicon-copy:before { content: "\f0c5"; }
html.admin-bootstrap5 .glyphicon-download:before,
html.admin-bootstrap5 .glyphicon-download-alt:before { content: "\f019"; }
html.admin-bootstrap5 .glyphicon-edit:before { content: "\f044"; }
html.admin-bootstrap5 .glyphicon-eye-open:before { content: "\f06e"; }
html.admin-bootstrap5 .glyphicon-file:before { content: "\f15b"; }
html.admin-bootstrap5 .glyphicon-floppy-disk:before { content: "\f0c7"; }
html.admin-bootstrap5 .glyphicon-hand-up:before { content: "\f0a6"; }
html.admin-bootstrap5 .glyphicon-info-sign:before { content: "\f05a"; }
html.admin-bootstrap5 .glyphicon-list:before { content: "\f03a"; }
html.admin-bootstrap5 .glyphicon-minus:before { content: "\f068"; }
html.admin-bootstrap5 .glyphicon-ok:before { content: "\f00c"; }
html.admin-bootstrap5 .glyphicon-ok-circle:before { content: "\f058"; }
html.admin-bootstrap5 .glyphicon-play:before { content: "\f04b"; }
html.admin-bootstrap5 .glyphicon-plus:before { content: "\f067"; }
html.admin-bootstrap5 .glyphicon-question-sign:before { content: "\f059"; }
html.admin-bootstrap5 .glyphicon-refresh:before { content: "\f021"; }
html.admin-bootstrap5 .glyphicon-remove:before { content: "\f00d"; }
html.admin-bootstrap5 .glyphicon-search:before { content: "\f002"; }
html.admin-bootstrap5 .glyphicon-signal:before { content: "\f012"; }
html.admin-bootstrap5 .glyphicon-sort:before { content: "\f0dc"; }
html.admin-bootstrap5 .glyphicon-stats:before { content: "\f080"; }
html.admin-bootstrap5 .glyphicon-tasks:before { content: "\f0ae"; }
html.admin-bootstrap5 .glyphicon-trash:before { content: "\f1f8"; }
html.admin-bootstrap5 .glyphicon-triangle-bottom:before { content: "\f0d7"; }
html.admin-bootstrap5 .glyphicon-triangle-top:before { content: "\f0d8"; }
html.admin-bootstrap5 .glyphicon-warning-sign:before { content: "\f071"; }

html.admin-bootstrap5 .btn {
    border-radius: 6px;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.35;
    padding: 6px 10px;
}

html.admin-bootstrap5 .btn-lg {
    font-size: 14px;
    padding: 8px 14px;
}

html.admin-bootstrap5 .btn-sm {
    font-size: 12px;
    padding: 5px 9px;
}

html.admin-bootstrap5 .btn-xs {
    border-radius: 5px;
    font-size: 12px;
    line-height: 1.25;
    padding: 3px 7px;
}

html.admin-bootstrap5 .btn-block {
    display: block;
    width: 100%;
}

html.admin-bootstrap5 .btn-default {
    background-color: #ffffff;
    border-color: #d8dee8;
    color: #374151;
}

html.admin-bootstrap5 .btn-default:hover,
html.admin-bootstrap5 .btn-default:focus {
    background-color: #f3f6fb;
    border-color: #b8c3d4;
    color: #1f2937;
}

/* 솔리드 버튼 파스텔 톤 통일 — BS5 기본 원색이 눈에 피로해 채도를 낮추고 글씨는 진하게(가독성 유지) */
html.admin-bootstrap5 .btn-primary {
    background-color: #cfe2ff;
    border-color: #9ec5fe;
    color: #084298;
}
html.admin-bootstrap5 .btn-primary:hover,
html.admin-bootstrap5 .btn-primary:focus {
    background-color: #b6d4fe;
    border-color: #84b6fc;
    color: #084298;
}
html.admin-bootstrap5 .btn-success {
    background-color: #d1e7dd;
    border-color: #a3cfbb;
    color: #0a3622;
}
html.admin-bootstrap5 .btn-success:hover,
html.admin-bootstrap5 .btn-success:focus {
    background-color: #bcdfd0;
    border-color: #8fc6ab;
    color: #0a3622;
}
html.admin-bootstrap5 .btn-danger {
    background-color: #f8d7da;
    border-color: #f1aeb5;
    color: #842029;
}
html.admin-bootstrap5 .btn-danger:hover,
html.admin-bootstrap5 .btn-danger:focus {
    background-color: #f5c2c7;
    border-color: #ed969e;
    color: #842029;
}
html.admin-bootstrap5 .btn-warning {
    background-color: #fff3cd;
    border-color: #ffe69c;
    color: #664d03;
}
html.admin-bootstrap5 .btn-warning:hover,
html.admin-bootstrap5 .btn-warning:focus {
    background-color: #ffecb5;
    border-color: #ffdf80;
    color: #664d03;
}
html.admin-bootstrap5 .btn-info {
    background-color: #cff4fc;
    border-color: #9eeaf9;
    color: #055160;
}
html.admin-bootstrap5 .btn-info:hover,
html.admin-bootstrap5 .btn-info:focus {
    background-color: #b6effb;
    border-color: #6edff6;
    color: #055160;
}

/* 레거시 라벨/배지(BS3 .label-* / .badge-*) 파스텔 톤 — 색상(의미)은 유지하고 채도만 낮춤 */
html.admin-bootstrap5 .label-primary,
html.admin-bootstrap5 .badge-primary { background-color: #cfe2ff; color: #084298; }
html.admin-bootstrap5 .label-success,
html.admin-bootstrap5 .badge-success { background-color: #d1e7dd; color: #0a3622; }
html.admin-bootstrap5 .label-danger,
html.admin-bootstrap5 .badge-danger { background-color: #f8d7da; color: #842029; }
html.admin-bootstrap5 .label-warning,
html.admin-bootstrap5 .badge-warning { background-color: #fff3cd; color: #664d03; }
html.admin-bootstrap5 .label-info,
html.admin-bootstrap5 .badge-info { background-color: #cff4fc; color: #055160; }
html.admin-bootstrap5 .label-default,
html.admin-bootstrap5 .badge-default,
html.admin-bootstrap5 .label-secondary,
html.admin-bootstrap5 .badge-secondary { background-color: #e9ecef; color: #495057; }

/* summernote 0.8.x popover가 BS5 .popover(display:block)+BS3 .in 비호환으로
   절대위치를 잃고 페이지 하단에 block으로 노출되는 회귀 보정.
   summernote는 hover/클릭 시 .note-popover 위치를 인라인 top/left로 잡아 띄우므로,
   기본은 숨기고 인라인 위치(left가 잡힌 활성 상태)일 때만 절대위치로 표시한다. */
html.admin-bootstrap5 .note-popover.popover {
    position: absolute;
    display: none;
}
html.admin-bootstrap5 .note-popover.popover[style*="left"] {
    display: block;
}

/* summernote 0.8.x 툴바가 BS5(.btn-group=inline-flex, float 제거)와 충돌해
   버튼 그룹이 전체폭으로 퍼져(space-between 처럼) 보이는 회귀 보정.
   툴바를 flex-start 로 팩킹해 좌측 정렬한다. */
html.admin-bootstrap5 .note-editor .note-toolbar {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: center;
    gap: 3px 4px;
}
html.admin-bootstrap5 .note-editor .note-toolbar > .note-btn-group {
    float: none;
    margin: 0;
}

/* summernote 0.8.x(BS3 빌드) 드롭다운(글꼴크기/색상/문단/표)이 BS5 에서 안 열리는 문제 보정.
   BS3 dropdown JS 부재로 열리지 않으므로 compat JS 가 .note-dropdown-open 을 토글하고,
   여기서 열린 상태의 메뉴(.dropdown-menu)를 표시·위치시킨다.
   (BS5 는 .dropdown-menu{display:none} + 위치를 Popper 로 잡는데 Popper 미사용이라 직접 지정) */
html.admin-bootstrap5 .note-editor .note-btn-group.note-dropdown-open {
    position: relative;
}
html.admin-bootstrap5 .note-editor .note-btn-group.note-dropdown-open > .dropdown-menu {
    display: block;
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 1000;
}

html.admin-bootstrap5 .form-control,
html.admin-bootstrap5 .form-select {
    border-color: #d8dee8;
    border-radius: 6px;
    color: #374151;
    font-size: 13px;
    min-height: 32px;
    padding: 5px 9px;
}

html.admin-bootstrap5 select.selectpicker {
    appearance: auto;
    background-color: #ffffff;
    border: 1px solid #d8dee8;
    border-radius: 6px;
    color: #374151;
    font-size: 13px;
    min-height: 32px;
    padding: 5px 28px 5px 9px;
}

html.admin-bootstrap5 .form-control:focus,
html.admin-bootstrap5 .form-select:focus,
html.admin-bootstrap5 select.selectpicker:focus {
    border-color: #8bb8ff;
    box-shadow: 0 0 0 3px rgba(51, 122, 183, 0.12);
}

html.admin-bootstrap5 .table {
    border-color: #e4e9f1;
    color: #1f2937;
    font-size: 13px;
}

html.admin-bootstrap5 .table > :not(caption) > * > * {
    border-bottom-color: #e4e9f1;
    padding: 6px 8px;
    vertical-align: middle;
}

html.admin-bootstrap5 .table-striped > tbody > tr:nth-of-type(odd) > * {
    --bs-table-accent-bg: #f7f8fa;
}

html.admin-bootstrap5 .pull-right {
    float: right !important;
}

html.admin-bootstrap5 .pull-left {
    float: left !important;
}

html.admin-bootstrap5 .clearfix:before,
html.admin-bootstrap5 .clearfix:after {
    content: " ";
    display: table;
}

html.admin-bootstrap5 .clearfix:after {
    clear: both;
}

html.admin-bootstrap5 .label {
    border-radius: 5px;
    display: inline-flex;
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
    padding: 5px 7px;
}

html.admin-bootstrap5 .label-default {
    background-color: #e9ecef;
    color: #41464b;
}

html.admin-bootstrap5 .label-primary {
    background-color: #cfe2ff;
    color: #084298;
}

html.admin-bootstrap5 .label-success {
    background-color: #d1e7dd;
    color: #0a3622;
}

html.admin-bootstrap5 .label-info {
    background-color: #cff4fc;
    color: #055160;
}

html.admin-bootstrap5 .label-warning {
    background-color: #fff3cd;
    color: #664d03;
}

html.admin-bootstrap5 .label-danger {
    background-color: #f8d7da;
    color: #842029;
}

html.admin-bootstrap5 .input-group-addon {
    align-items: center;
    background-color: #f8fafc;
    border: 1px solid #d8dee8;
    border-radius: 6px;
    color: #6b7280;
    display: inline-flex;
    font-size: 13px;
    font-weight: 700;
    justify-content: center;
    min-height: 32px;
    padding: 5px 9px;
}

html.admin-bootstrap5 .input-group > .input-group-addon:first-child {
    border-bottom-right-radius: 0;
    border-right: 0;
    border-top-right-radius: 0;
}

html.admin-bootstrap5 .input-group > .input-group-addon:first-child + .form-control {
    border-bottom-left-radius: 0;
    border-top-left-radius: 0;
}

html.admin-bootstrap5 .panel {
    background: #ffffff;
    border: 1px solid #e4e9f1;
    border-radius: 7px;
    box-shadow: none;
    margin-bottom: 14px;
    /* clip: 모서리 클리핑은 유지하되 스크롤 컨테이너를 만들지 않아 자식의
       position:sticky 가 깨지지 않게 한다(hidden 은 sticky 를 깬다). */
    overflow: clip;
}

html.admin-bootstrap5 .panel-heading {
    background: #ffffff;
    border-bottom: 1px solid #e4e9f1;
    color: #20242a;
    font-size: 14px;
    font-weight: 800;
    padding: 9px 13px;
}

html.admin-bootstrap5 .panel-body {
    padding: 12px 14px;
}

html.admin-bootstrap5 .panel-default > .panel-heading {
    background: #ffffff;
}

html.admin-bootstrap5 .panel-warning > .panel-heading {
    background: #fff8e8;
    color: #76530b;
}

html.admin-bootstrap5 .panel-success > .panel-heading {
    background: #eefbf3;
    color: #17623a;
}

html.admin-bootstrap5 .panel-danger > .panel-heading {
    background: #fff1f1;
    color: #9b1c1c;
}

html.admin-bootstrap5 .panel-info > .panel-heading {
    background: #eef7ff;
    color: #226195;
}

html.admin-bootstrap5 .modal-content {
    border: 1px solid #dfe5ee;
    border-radius: 8px;
    box-shadow: 0 20px 48px rgba(15, 23, 42, 0.22);
}

html.admin-bootstrap5 .modal-header {
    align-items: center;
    border-bottom: 1px solid #e4e9f1;
    min-height: 48px;
    padding: 11px 14px;
}

html.admin-bootstrap5 .modal-title {
    color: #20242a;
    font-size: 16px;
    font-weight: 800;
    line-height: 1.35;
}

html.admin-bootstrap5 .modal-body {
    padding: 14px;
}

html.admin-bootstrap5 .modal-footer {
    border-top: 1px solid #e4e9f1;
    gap: 8px;
    padding: 11px 14px;
}

html.admin-bootstrap5 .close {
    align-items: center;
    appearance: none;
    background: transparent;
    border: 0;
    color: #6b7280;
    cursor: pointer;
    display: inline-flex;
    font-size: 22px;
    font-weight: 700;
    height: 28px;
    justify-content: center;
    line-height: 1;
    margin: -2px -4px -2px auto;
    opacity: 1;
    padding: 0;
    width: 28px;
}

html.admin-bootstrap5 .close:hover,
html.admin-bootstrap5 .close:focus {
    color: #1f2937;
}

html.admin-bootstrap5 .admin-compat-dialog-header-empty {
    justify-content: flex-end;
    min-height: 0;
    padding-bottom: 0;
}

html.admin-bootstrap5 .admin-compat-dialog-header-empty .modal-title {
    display: none;
}

body .admin-content-legacy {
    color: #333333;
    font-size: 14px;
    line-height: 1.42857143;
}

body .admin-content-legacy > h1:first-child,
body .admin-content-legacy > h2:first-child,
body .admin-content-legacy > h3:first-child {
    border-bottom: 1px solid #e4e9f1;
    color: #20242a;
    font-weight: 700;
    line-height: 1.35;
    margin: 0 0 14px;
    padding: 0 0 10px;
}

body .admin-content-legacy > h1:first-child {
    font-size: 22px;
}

body .admin-content-legacy > h2:first-child {
    font-size: 20px;
}

body .admin-content-legacy > h3:first-child {
    font-size: 18px;
}

body .admin-content-legacy > h1:first-child small,
body .admin-content-legacy > h2:first-child small,
body .admin-content-legacy > h3:first-child small {
    color: #6b7280;
    font-size: 65%;
    font-weight: 600;
}

body .admin-content-legacy .sub-header {
    align-items: center;
    border-bottom: 1px solid #e4e9f1;
    color: #20242a;
    display: flex;
    flex-wrap: wrap;
    font-size: 20px;
    font-weight: 700;
    gap: 8px;
    line-height: 1.35;
    margin: 0 0 12px;
    padding: 0 0 10px;
}

body .admin-content-legacy h3.sub-header {
    font-size: 18px;
}

body .admin-content-legacy h4.sub-header {
    font-size: 16px;
}

body .admin-content-legacy .page-header {
    border-bottom: 1px solid #e4e9f1;
    color: #20242a;
    line-height: 1.35;
    margin: 0 0 14px;
    padding: 0 0 10px;
}

body .admin-content-legacy .page-header > h1,
body .admin-content-legacy .page-header > h2,
body .admin-content-legacy .page-header > h3,
body .admin-content-legacy .page-header > h4 {
    color: inherit;
    font-weight: 700;
    line-height: 1.35;
    margin: 0;
}

body .admin-content-legacy h1.page-header,
body .admin-content-legacy .page-header > h1 {
    font-size: 22px;
}

body .admin-content-legacy h2.page-header,
body .admin-content-legacy .page-header > h2 {
    font-size: 20px;
}

body .admin-content-legacy h3.page-header,
body .admin-content-legacy .page-header > h3 {
    font-size: 18px;
}

body .admin-content-legacy .page-header small,
body .admin-content-legacy .page-header .text-muted {
    color: #6b7280 !important;
    font-size: 12px;
    font-weight: 600;
}

body .admin-content-legacy .sub-header .btn {
    margin-left: 0;
    vertical-align: middle;
}

body .admin-content-legacy .sub-header .badge,
body .admin-content-legacy .sub-header .label {
    vertical-align: middle;
}

body .admin-content-legacy .btn {
    border-radius: 6px;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.35;
    padding: 6px 10px;
}

body .admin-content-legacy .btn-lg {
    border-radius: 6px;
    font-size: 14px;
    line-height: 1.35;
    padding: 8px 14px;
}

body .admin-content-legacy .btn-sm {
    border-radius: 5px;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.35;
    padding: 5px 9px;
}

body .admin-content-legacy .btn-xs {
    border-radius: 5px;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.25;
    padding: 3px 7px;
}

body .admin-content-legacy .form-control,
body .admin-content-legacy .form-select,
body .admin-content-legacy select.selectpicker {
    border-color: #d8dee8;
    border-radius: 6px;
    color: #374151;
    font-size: 13px;
    font-weight: 400;
    height: 32px;
    line-height: 1.35;
    min-height: 32px;
    padding: 5px 9px;
}

body .admin-content-legacy .form-control:focus,
body .admin-content-legacy .form-select:focus,
body .admin-content-legacy select.selectpicker:focus {
    border-color: #8bb8ff;
    box-shadow: 0 0 0 3px rgba(51, 122, 183, 0.12);
}

body .admin-content-legacy textarea.form-control {
    height: auto;
}

body .admin-content-legacy .form-group {
    margin-bottom: 12px;
}

body .admin-content-legacy .control-label,
body .admin-content-legacy label {
    color: #374151;
    font-weight: 700;
}

body .admin-content-legacy .help-block {
    color: #6b7280;
    font-size: 12px;
    line-height: 1.45;
    margin-bottom: 0;
    margin-top: 5px;
}

body .admin-content-legacy .form-inline .form-group {
    align-items: center;
    display: inline-flex;
    gap: 6px;
    margin-bottom: 0;
    margin-right: 8px;
    vertical-align: middle;
}

body .admin-content-legacy .form-inline label {
    margin-bottom: 0;
    white-space: nowrap;
}

body .admin-content-root .search-panel,
body .admin-content-root .filter-panel,
body .admin-content-root .result-panel,
body .admin-content-root .stats-panel,
body .admin-content-root .summary-panel,
body .admin-content-root .manage-panel {
    background: #ffffff;
    border: 1px solid #e4e9f1;
    border-radius: 7px;
    box-shadow: none;
    margin-bottom: 14px;
    padding: 12px 14px;
}

body .admin-content-root .search-panel:after,
body .admin-content-root .filter-panel:after,
body .admin-content-root .result-panel:after,
body .admin-content-root .stats-panel:after,
body .admin-content-root .summary-panel:after,
body .admin-content-root .manage-panel:after {
    clear: both;
    content: "";
    display: table;
}

body .admin-content-root .manage-panel h3 {
    border-bottom: 1px solid #edf1f6;
    color: #20242a;
    font-size: 15px;
    font-weight: 800;
    line-height: 1.35;
    margin: 0 0 12px;
    padding-bottom: 9px;
}

body .admin-content-legacy .search-panel .form-group,
body .admin-content-legacy .filter-panel .form-group {
    margin-bottom: 8px;
}

body .admin-content-legacy .search-panel .row,
body .admin-content-legacy .filter-panel .row {
    --bs-gutter-x: 12px;
    --bs-gutter-y: 10px;
}

body .admin-content-legacy .input-sm,
body .admin-content-legacy .form-control.input-sm {
    border-radius: 3px;
    font-size: 12px;
    height: 30px;
    line-height: 1.5;
    padding: 5px 10px;
}

body .admin-content-legacy .search_table {
    background: #ffffff;
    border-color: #e4e9f1;
    border-radius: 7px;
    border-spacing: 0;
    overflow: hidden;
    margin-bottom: 12px;
}

body .admin-content-legacy .search_table > tbody > tr > th,
body .admin-content-legacy .search_table > tr > th {
    background: #f8fafc;
    border-color: #e4e9f1;
    color: #20242a;
    font-size: 12px;
    font-weight: 800;
    padding: 7px 9px;
    vertical-align: middle;
    white-space: nowrap;
}

body .admin-content-legacy .search_table > tbody > tr > td,
body .admin-content-legacy .search_table > tr > td {
    border-color: #e4e9f1;
    padding: 6px 9px;
    vertical-align: middle;
}

body .admin-content-legacy .search_table input[type="date"],
body .admin-content-legacy .search_table input[type="text"]:not(.form-control),
body .admin-content-legacy .search_table input[type="input"]:not(.form-control) {
    border: 1px solid #d8dee8;
    border-radius: 6px;
    color: #4b5563;
    font-size: 13px;
    min-height: 32px;
    padding: 5px 9px;
}

body .admin-content-legacy .table {
    color: #333333;
    font-size: 13px;
    margin-bottom: 14px;
}

body .admin-content-legacy .table > thead > tr > th,
body .admin-content-legacy .table > tbody > tr > th,
body .admin-content-legacy .table > tfoot > tr > th,
body .admin-content-legacy .table > thead > tr > td,
body .admin-content-legacy .table > tbody > tr > td,
body .admin-content-legacy .table > tfoot > tr > td {
    border-color: #e4e9f1;
    line-height: 1.4;
    padding: 7px 8px;
    vertical-align: middle;
}

body .admin-content-legacy .table > thead > tr > th {
    background: #f8fafc;
    border-bottom-color: #d8dee8;
    color: #20242a;
    font-size: 12px;
    font-weight: 800;
    white-space: nowrap;
}

body .admin-content-legacy .table-striped > tbody > tr:nth-of-type(odd) > * {
    --bs-table-accent-bg: #f7f8fa;
}

body .admin-content-legacy .table-hover > tbody > tr:hover > * {
    --bs-table-accent-bg: #eef4ff;
    background-color: #eef4ff;
}

body .admin-content-legacy .table-responsive {
    margin-top: 10px;
}

body .admin-content-legacy .table-condensed > thead > tr > th,
body .admin-content-legacy .table-condensed > tbody > tr > th,
body .admin-content-legacy .table-condensed > tfoot > tr > th,
body .admin-content-legacy .table-condensed > thead > tr > td,
body .admin-content-legacy .table-condensed > tbody > tr > td,
body .admin-content-legacy .table-condensed > tfoot > tr > td {
    padding: 5px;
}

body .admin-content-legacy .label {
    border-radius: 0.25em;
    display: inline;
    font-size: 75%;
    font-weight: 700;
    line-height: 1;
    padding: 0.2em 0.6em 0.3em;
}

body .admin-content-legacy .inputDate {
    background-image: url('/img/icon/calendar_icon.png') !important;
}

body .admin-content-legacy .default_section {
    margin-top: 12px;
}

body .admin-content-legacy .default_section .pagination {
    gap: 4px;
    margin: 0;
}

body .admin-content-legacy .default_section .page-link {
    border-color: #d8dee8;
    border-radius: 5px;
    color: #2563eb;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.25;
    min-width: 32px;
    padding: 6px 9px;
    text-align: center;
}

body .admin-content-legacy .default_section .page-item.active .page-link {
    background-color: #2563eb;
    border-color: #2563eb;
    color: #ffffff;
}

body .admin-content-legacy .panel {
    background: #ffffff;
    border: 1px solid #e4e9f1;
    border-radius: 7px;
    box-shadow: none;
    margin-bottom: 14px;
    overflow: clip;
}

body .admin-content-legacy .panel-heading {
    align-items: center;
    background: #ffffff;
    border-bottom: 1px solid #e4e9f1;
    color: #20242a;
    display: flex;
    font-size: 14px;
    font-weight: 800;
    gap: 10px;
    justify-content: space-between;
    min-height: 42px;
    padding: 9px 13px;
}

body .admin-content-legacy .panel-title {
    color: inherit;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.35;
    margin: 0;
}

body .admin-content-legacy .panel-body {
    padding: 12px 14px;
}

body .admin-content-legacy .panel-default > .panel-heading {
    background: #ffffff;
}

body .admin-content-legacy .panel-primary {
    border-color: #cfe0ff;
}

body .admin-content-legacy .panel-primary > .panel-heading {
    background: #eef4ff;
    border-color: #cfe0ff;
    color: #1d4ed8;
}

body .admin-content-legacy .panel-info > .panel-heading {
    background: #eef7ff;
    color: #226195;
}

body .admin-content-legacy .panel-success > .panel-heading {
    background: #eefbf3;
    color: #17623a;
}

body .admin-content-legacy .panel-warning > .panel-heading {
    background: #fff8e8;
    color: #76530b;
}

body .admin-content-legacy .panel-danger > .panel-heading {
    background: #fff1f1;
    color: #9b1c1c;
}

body .admin-content-legacy .well {
    background: #f8fafc;
    border: 1px solid #e4e9f1;
    border-radius: 7px;
    box-shadow: none;
    margin-bottom: 14px;
    padding: 12px 14px;
}

body .admin-content-legacy .well-sm {
    padding: 9px 11px;
}

body .admin-content-legacy .nav-tabs {
    border-bottom: 1px solid #e4e9f1;
    margin-bottom: 14px;
}

body .admin-content-legacy .nav-tabs > li > a {
    border: 1px solid transparent;
    border-radius: 6px 6px 0 0;
    color: #6b7280;
    font-size: 13px;
    font-weight: 700;
    margin-right: 4px;
    padding: 8px 12px;
    text-decoration: none;
}

body .admin-content-legacy .nav-tabs > li > a:hover,
body .admin-content-legacy .nav-tabs > li > a:focus {
    background: #f3f6fb;
    border-color: transparent;
    color: #1f2937;
}

body .admin-content-legacy .nav-tabs > li.active > a,
body .admin-content-legacy .nav-tabs > li > a.active,
body .admin-content-legacy .nav-tabs > li.active > a:hover,
body .admin-content-legacy .nav-tabs > li.active > a:focus,
body .admin-content-legacy .nav-tabs > li > a.active:hover,
body .admin-content-legacy .nav-tabs > li > a.active:focus {
    background: #ffffff;
    border-color: #e4e9f1 #e4e9f1 #ffffff;
    color: #1f2937;
}

body .admin-content-modern {
    line-height: 1.45;
}

body .admin-content-modern .admin-page-header {
    align-items: flex-end;
    border-bottom: 1px solid #e4e9f1;
    display: flex;
    gap: 16px;
    justify-content: space-between;
    margin-bottom: 14px;
    padding-bottom: 12px;
}

body .admin-content-modern .admin-page-title {
    color: #20242a;
    font-size: 22px;
    font-weight: 800;
    line-height: 1.25;
    margin: 0;
}

body .admin-content-modern .admin-page-meta {
    color: #6f7782;
    font-size: 12px;
    font-weight: 700;
    margin-top: 6px;
}

body .admin-content-modern .admin-page-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
}

body .admin-content-modern .admin-panel {
    background: #ffffff;
    border: 1px solid #e4e9f1;
    border-radius: 7px;
    margin-bottom: 14px;
    overflow: hidden;
}

body .admin-content-modern .admin-panel-header {
    align-items: center;
    border-bottom: 1px solid #e4e9f1;
    display: flex;
    gap: 12px;
    justify-content: space-between;
    min-height: 46px;
    padding: 0 14px;
}

body .admin-content-modern .admin-panel-title {
    color: #20242a;
    font-size: 15px;
    font-weight: 800;
    line-height: 1.35;
    margin: 0;
}

body .admin-content-modern .admin-section-heading {
    border-bottom: 1px solid #e4e9f1;
    color: #20242a;
    font-size: 16px;
    font-weight: 800;
    line-height: 1.45;
    margin: 0 0 12px;
    padding-bottom: 10px;
}

body .admin-content-modern .admin-section-heading p {
    color: #6b7280;
    font-size: 13px;
    font-weight: 600;
    margin: 8px 0 0;
}

body .admin-content-modern .admin-inline-section {
    margin: 0;
}

body .admin-content-modern .admin-panel-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
}

body .admin-content-modern .admin-panel-meta {
    color: #6b7280;
    font-size: 12px;
    font-weight: 700;
}

body .admin-content-modern .admin-panel-body {
    padding: 12px 14px 14px;
}

body .admin-content-modern .panel {
    background: #ffffff;
    border: 1px solid #e4e9f1;
    border-radius: 7px;
    box-shadow: none;
    margin-bottom: 14px;
    overflow: clip;
}

body .admin-content-modern .panel-heading {
    align-items: center;
    background: #ffffff;
    border-bottom: 1px solid #e4e9f1;
    color: #20242a;
    display: flex;
    gap: 10px;
    justify-content: space-between;
    min-height: 42px;
    padding: 9px 13px;
}

body .admin-content-modern .panel-heading b {
    font-size: 14px;
    font-weight: 800;
}

body .admin-content-modern .panel-heading small {
    color: #6b7280;
    font-size: 12px;
    font-weight: 600;
}

body .admin-content-modern .panel-body {
    padding: 12px 14px;
}

body .admin-content-modern .card,
body .admin-content-modern .card-body,
body .admin-content-modern.admin-standalone-popup .card-body {
    background: #ffffff;
    border: 1px solid #e4e9f1;
    border-radius: 7px;
    box-shadow: none;
    margin-bottom: 14px;
}

body .admin-content-modern .card-body,
body .admin-content-modern.admin-standalone-popup .card-body {
    padding: 12px 14px;
}

body .admin-content-modern .card > .card-body,
body .admin-content-modern.admin-standalone-popup .card-body {
    border: 0;
    margin-bottom: 0;
}

body .admin-content-modern .card-header {
    align-items: center;
    background: #ffffff;
    border-bottom: 1px solid #e4e9f1;
    color: #20242a;
    display: flex;
    min-height: 42px;
    padding: 9px 13px;
}

body .admin-content-modern .card-title {
    font-size: 14px;
    font-weight: 800;
}

body .admin-content-modern .panel-danger {
    border-color: #f4c7c7;
}

body .admin-content-modern .panel-danger > .panel-heading {
    background: #fff5f5;
    border-color: #f4c7c7;
    color: #b42318;
}

body .admin-content-modern .breadcrumb {
    background: transparent;
    border: 0;
    color: #6b7280;
    font-size: 12px;
    font-weight: 700;
    margin: 0 0 10px !important;
    padding: 0;
}

body .admin-content-modern .breadcrumb > li + li:before {
    color: #a8b0bc;
}

body .admin-content-modern .alert {
    border-radius: 7px;
    font-size: 13px;
    line-height: 1.5;
    margin-bottom: 12px;
    padding: 10px 12px;
}

body .admin-content-modern.admin-standalone-wide {
    max-width: none;
    padding-bottom: 24px;
    width: 100%;
}

body .admin-content-modern.admin-standalone-popup {
    max-width: 920px;
    padding-bottom: 24px;
    width: 100%;
}

body .admin-content-modern.admin-standalone-popup .admin-popup-form {
    margin-top: 12px;
}

body .admin-content-modern.admin-standalone-popup .admin-popup-form .form-group {
    margin-bottom: 12px;
}

body .admin-content-modern .admin-tabs {
    border-bottom: 1px solid #e4e9f1;
    margin-bottom: 14px;
}

body .admin-content-modern .nav-tabs > li {
    display: block;
}

body .admin-content-modern .nav-tabs > li > a {
    border: 1px solid transparent;
    border-radius: 6px 6px 0 0;
    color: #6b7280;
    display: block;
    font-size: 13px;
    font-weight: 700;
    margin-right: 4px;
    padding: 8px 12px;
    text-decoration: none;
}

body .admin-content-modern .nav-tabs > li > a:hover,
body .admin-content-modern .nav-tabs > li > a:focus {
    background: #f3f6fb;
    color: #1f2937;
}

body .admin-content-modern .nav-tabs > li.active > a,
body .admin-content-modern .nav-tabs > li > a.active,
body .admin-content-modern .nav-tabs > li.active > a:hover,
body .admin-content-modern .nav-tabs > li.active > a:focus,
body .admin-content-modern .nav-tabs > li > a.active:hover,
body .admin-content-modern .nav-tabs > li > a.active:focus {
    background: #ffffff;
    border-color: #e4e9f1 #e4e9f1 #ffffff;
    color: #1f2937;
}

body .admin-content-modern .admin-tabs > li > a {
    border: 0 !important;
    border-radius: 6px 6px 0 0;
    color: #6b7280;
    font-size: 13px;
    font-weight: 800;
    margin-right: 4px;
    padding: 9px 13px;
}

body .admin-content-modern .admin-tabs > li > a:hover,
body .admin-content-modern .admin-tabs > li > a:focus {
    background: #f3f6fb;
    color: #1f2937;
}

body .admin-content-modern .admin-tabs > li.active > a,
body .admin-content-modern .admin-tabs > li > a.active,
body .admin-content-modern .admin-tabs > li.active > a:hover,
body .admin-content-modern .admin-tabs > li.active > a:focus,
body .admin-content-modern .admin-tabs > li > a.active:hover,
body .admin-content-modern .admin-tabs > li > a.active:focus {
    background: #ffffff;
    border: 1px solid #e4e9f1 !important;
    border-bottom-color: #ffffff !important;
    color: #1f2937;
}

body .admin-content-modern .admin-result-toolbar {
    align-items: center;
    display: flex;
    gap: 8px;
    justify-content: space-between;
    margin-bottom: 10px;
}

body .admin-content-modern .admin-result-toolbar p {
    color: #4b5563;
    font-size: 13px;
    font-weight: 700;
    margin: 0;
}

body .admin-content-modern .admin-result-summary {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 12px;
}

body .admin-content-modern .admin-count-badge {
    border-radius: 999px;
    display: inline-flex;
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
    padding: 7px 10px;
}

body .admin-content-modern .admin-count-badge-primary {
    background: #e7f0ff;
    color: #1d4ed8;
}

body .admin-content-modern .admin-count-badge-info {
    background: #e6f6fb;
    color: #036480;
}

body .admin-content-modern .summary-card {
    background: #f8fafc !important;
    border: 1px solid #e4e9f1 !important;
    border-radius: 7px !important;
    margin-bottom: 10px !important;
    padding: 11px 13px !important;
}

body .admin-content-modern .summary-card .summary-label {
    color: #6b7280 !important;
    font-size: 12px !important;
    font-weight: 800;
}

body .admin-content-modern .summary-card .summary-value {
    color: #1f2937;
    font-size: 20px !important;
    font-weight: 800 !important;
    line-height: 1.3;
}

body .admin-content-modern .summary-success .summary-value {
    color: #18864b !important;
}

body .admin-content-modern .summary-fail .summary-value {
    color: #b42318 !important;
}

body .admin-content-modern .summary-skip .summary-value {
    color: #a16207 !important;
}

body .admin-content-modern .summary-total .summary-value {
    color: #2563eb !important;
}

body .admin-content-modern .admin-result-description {
    color: #6b7280;
    font-size: 12px;
    font-weight: 700;
}

body .admin-content-modern .admin-filter-grid {
    align-items: end;
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}

body .admin-content-modern .admin-filter-grid-wide {
    grid-template-columns: minmax(150px, 0.8fr) minmax(130px, 0.7fr) minmax(220px, 1.3fr) minmax(320px, 1.5fr) auto;
}

body .admin-content-modern .admin-filter-grid-six {
    grid-template-columns: minmax(220px, 1.3fr) minmax(120px, 0.7fr) minmax(130px, 0.7fr) minmax(130px, 0.7fr) minmax(110px, 0.6fr) auto;
}

body .admin-content-modern .admin-filter-grid-admin-user {
    grid-template-columns: minmax(150px, 0.8fr) minmax(130px, 0.6fr) minmax(240px, 1.5fr) auto;
}

body .admin-content-modern .admin-filter-grid-charge {
    align-items: end;
    grid-template-columns: minmax(220px, 320px) auto;
    justify-content: start;
}

body .admin-content-modern .admin-filter-grid-simple {
    align-items: end;
    grid-template-columns: minmax(220px, 360px) auto;
    justify-content: start;
}

body .admin-content-modern .admin-filter-grid-leaked-data {
    align-items: end;
    grid-template-columns: minmax(180px, 280px) minmax(260px, 420px) auto;
    justify-content: start;
}

body .admin-content-modern .admin-filter-grid-tutor-exclusion {
    align-items: end;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

body .admin-content-modern .admin-filter-grid-banner {
    align-items: end;
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
}

body .admin-content-modern .admin-filter-grid-category {
    align-items: end;
    grid-template-columns: minmax(220px, 320px) minmax(120px, 160px) auto;
    justify-content: start;
}

body .admin-content-modern .admin-filter-grid-exposure {
    align-items: start;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

body .admin-content-modern .admin-filter-grid-campaign {
    align-items: end;
    grid-template-columns: minmax(200px, 1.2fr) minmax(150px, 0.8fr) minmax(170px, 1fr) minmax(120px, 0.6fr) auto;
}

body .admin-content-modern .admin-filter-grid-bonus-promotion {
    align-items: end;
    grid-template-columns: minmax(150px, 0.8fr) minmax(220px, 1.2fr) minmax(130px, 0.7fr) minmax(130px, 0.7fr) auto;
}

body .admin-content-modern .admin-filter-field {
    display: grid;
    gap: 6px;
    min-width: 0;
}

body .admin-content-modern .admin-filter-field-wide {
    min-width: 180px;
}

body .admin-content-modern .admin-filter-field label {
    color: #374151;
    font-size: 13px;
    font-weight: 800;
    margin: 0;
}

body .admin-content-modern .admin-filter-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-start;
    margin-top: 12px;
    width: 100%;
}

body .admin-content-modern .admin-inline-fields {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 6px 10px;
}

body .admin-content-modern .admin-checkbox-group {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 12px;
    min-height: 32px;
}

body .admin-content-modern .admin-checkbox-inline {
    align-items: center;
    color: #374151;
    display: inline-flex;
    font-size: 13px;
    font-weight: 700;
    gap: 5px;
    margin: 0;
}

body .admin-content-modern .admin-checkbox-inline input[type="checkbox"] {
    margin: 0;
}

body .admin-content-modern .admin-help-block-tight {
    color: #6b7280;
    font-size: 12px;
    font-weight: 700;
    margin: 4px 0 0;
}

body .admin-content-modern .admin-timing-control {
    display: grid;
    gap: 8px;
    grid-template-columns: minmax(130px, 1fr) minmax(96px, 120px);
}

body .admin-content-modern .admin-checkbox-button {
    align-items: center;
    display: inline-flex;
    gap: 6px;
    margin: 0;
}

body .admin-content-modern .admin-checkbox-button input[type="checkbox"] {
    margin: 0;
}

body .admin-content-modern .bootstrap-select > .dropdown-toggle {
    border-color: #d8dee8;
    border-radius: 6px;
    box-shadow: none;
    height: 32px;
    padding: 5px 9px;
}

body .admin-content-modern .admin-date-range {
    align-items: center;
    display: flex;
    gap: 6px;
    min-width: 0;
}

body .admin-content-modern .admin-date-range .form-control {
    max-width: 130px;
}

body .admin-content-modern .admin-date-input {
    background: url('/img/icon/calendar_icon.png') 95% center / 12px 12px no-repeat;
    border: 1px solid #d8dee8;
    border-radius: 6px;
    color: #4b5563;
    height: 30px;
    letter-spacing: 0;
    padding-left: 10px;
    width: 150px;
}

body .admin-content-modern .admin-form {
    margin: 0;
}

body .admin-content-modern .admin-form-horizontal {
    max-width: 1100px;
}

body .admin-content-modern .admin-form-campaign {
    max-width: 1320px;
}

body .admin-content-modern .admin-form-horizontal .form-group {
    margin-left: 0;
    margin-right: 0;
}

body .admin-content-modern .admin-form-horizontal .control-label {
    color: #374151;
    font-size: 13px;
    font-weight: 800;
}

body .admin-content-modern .admin-form-grid {
    display: grid;
    gap: 15px;
    max-width: 720px;
}

body .admin-content-modern .admin-form-grid-wide {
    max-width: none;
}

body .admin-content-modern .admin-form-field {
    display: grid;
    gap: 6px;
    min-width: 0;
}

body .admin-content-modern .admin-form-field > label {
    color: #374151;
    font-size: 13px;
    font-weight: 800;
    margin: 0;
}

body .admin-content-modern .admin-required {
    color: #d92d20;
    font-weight: 800;
}

body .admin-content-modern .admin-field-help {
    color: #7a8491;
    display: block;
    font-size: 12px;
    line-height: 1.45;
}

body .admin-content-modern .form-section {
    background: #f7f9fc;
    border-left: 4px solid #2f6fed;
    border-radius: 6px;
    color: #20242a;
    font-size: 14px;
    font-weight: 800;
    margin: 20px 0 14px;
    padding: 11px 14px;
}

body .admin-content-modern .form-help {
    color: #6b7280;
    display: block;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.45;
    margin-top: 4px;
}

body .admin-content-modern .required {
    color: #d92d20;
    font-weight: 800;
}

body .admin-content-modern .image-preview {
    background: #ffffff;
    border: 1px solid #d8dee8;
    border-radius: 8px;
    display: block;
    height: auto;
    max-width: 100%;
    width: 460px;
}

body .admin-content-modern .inline-input {
    display: inline-block;
    width: auto;
}

body .admin-content-modern .upload_path {
    float: right;
    height: auto;
    min-height: 30px;
    width: 85%;
}

body .admin-content-modern .landing-preview {
    color: #4b5563;
    font-size: 12px;
    font-weight: 700;
    margin-top: 8px;
    word-break: break-all;
}

body .admin-content-modern .segment-row .checkbox-inline {
    margin-bottom: 8px;
}

body .admin-content-modern .segment-row .checkbox-inline + .checkbox-inline {
    margin-left: 10px;
}

body .admin-content-modern .trial-status-row {
    margin-bottom: 8px;
}

body .admin-content-modern .trial-status-label {
    color: #374151;
    display: inline-block;
    font-weight: 800;
    min-width: 70px;
    margin-right: 8px;
}

body .admin-content-modern .timing-days-wrap {
    display: inline-block;
    margin-left: 8px;
    vertical-align: middle;
    width: 130px;
}

body .admin-content-modern .admin-hidden {
    display: none;
}

body .admin-content-modern .admin-upload-errors {
    margin-bottom: 10px;
}

body .admin-content-modern .admin-status-error {
    color: #d92d20;
}

body .admin-content-modern .admin-status-success {
    color: #18864b;
}

body .admin-content-modern .admin-form-actions {
    align-items: center;
    border-top: 1px solid #edf1f5;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
    padding-top: 12px;
}

body .admin-content-modern .admin-form-actions-right {
    justify-content: flex-end;
}

body .admin-content-modern .admin-layout-split {
    align-items: start;
    display: grid;
    gap: 18px;
    grid-template-columns: minmax(0, 2fr) minmax(300px, 0.85fr);
}

body .admin-content-modern .admin-layout-equal {
    align-items: start;
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

body .admin-content-modern .admin-meta-list {
    background: #f8fafc;
    border: 1px solid #edf1f5;
    border-radius: 6px;
    color: #4b5563;
    font-size: 13px;
    line-height: 1.7;
    margin: 0;
    padding: 10px 12px;
}

body .admin-content-modern .admin-meta-list strong {
    color: #20242a;
    font-weight: 800;
}

body .admin-content-modern .admin-media-preview {
    margin-top: 5px;
}

body .admin-content-modern .admin-media-preview img {
    border: 1px solid #d8dee8;
    border-radius: 6px;
    max-height: 200px;
    max-width: 200px;
    padding: 3px;
}

body .admin-content-modern .admin-file-row {
    align-items: center;
    display: grid;
    gap: 6px;
    grid-template-columns: minmax(0, 1fr) auto;
}

body .admin-content-modern .admin-file-row .form-control {
    min-width: 0;
}

body .admin-content-modern .admin-file-button {
    align-items: center;
    border-radius: 6px;
    cursor: pointer;
    display: inline-flex;
    font-size: 12px;
    font-weight: 700;
    height: 30px;
    justify-content: center;
    line-height: 1;
    margin: 0;
    padding: 0 10px;
}

body .admin-content-modern .admin-file-button label {
    color: #fff;
    cursor: pointer;
    font-size: 12px;
    font-weight: 700;
    margin: 0;
}

body .admin-content-modern .btn_file {
    align-items: center;
    border-radius: 6px;
    cursor: pointer;
    display: inline-flex;
    float: left;
    height: 30px;
    justify-content: center;
    line-height: 1;
    margin-left: 6px;
    text-align: center;
    width: 70px;
}

body .admin-content-modern .btn_file label {
    color: #ffffff;
    cursor: pointer;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    margin: 0 !important;
}

body .admin-content-modern .admin-audio-item {
    align-items: center;
    display: flex;
    gap: 6px;
    margin-bottom: 4px;
}

body .admin-content-modern .admin-audio-name {
    color: #4b5563;
    flex: 1;
    font-size: 12px;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body .admin-content-modern .admin-summary-grid {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

body .admin-content-modern .admin-summary-item {
    background: #f8fafc;
    border: 1px solid #edf1f5;
    border-radius: 6px;
    padding: 10px 12px;
}

body .admin-content-modern .admin-summary-label {
    color: #6b7280;
    display: block;
    font-size: 12px;
    font-weight: 800;
    margin-bottom: 4px;
}

body .admin-content-modern .admin-summary-value {
    color: #20242a;
    display: block;
    font-size: 13px;
    font-weight: 800;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body .admin-content-modern .admin-empty-state {
    color: #6b7280;
    font-size: 13px;
    font-style: italic;
    line-height: 1.55;
    padding: 42px 16px;
    text-align: center;
}

body .admin-content-modern .admin-empty-state-large .glyphicon,
body .admin-content-modern .admin-empty-state-large .fa,
body .admin-content-modern .admin-empty-state-large .fas {
    color: #9aa4b2;
    display: block;
    font-size: 40px;
    margin-bottom: 14px;
}

body .admin-content-modern .admin-json-details {
    margin-top: 16px;
}

body .admin-content-modern .admin-json-details summary {
    color: #337ab7;
    cursor: pointer;
    font-size: 13px;
}

body .admin-content-modern .admin-json-details .json-display {
    margin-top: 10px;
}

body .admin-content-modern textarea.admin-textarea-tall {
    min-height: 132px;
}

body .admin-content-modern .admin-table-wrap {
    overflow-x: auto;
    width: 100%;
}

body .admin-content-modern .admin-table-wrap > .table {
    min-width: max-content;
    width: 100%;
}

body .admin-content-modern .admin-table-wrap-popup > .table {
    min-width: 520px;
}

body .admin-content-modern .admin-table-wrap-banner > .table {
    min-width: 1320px;
}

body .admin-content-modern .admin-table-wrap-category > .table {
    min-width: 620px;
}

body .admin-content-modern .admin-table-wrap-exposure > .table {
    min-width: 1180px;
}

body .admin-content-modern .admin-table-wrap-campaign > .table {
    min-width: 1320px;
}

body .admin-content-modern .admin-table-wrap-bonus-promotion > .table {
    min-width: 1180px;
}

body .admin-content-modern .admin-table-wrap-referral > .table {
    min-width: 720px;
}

body .admin-content-modern .admin-table-cell-ellipsis {
    max-width: 300px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body .admin-content-modern .admin-text-nowrap {
    white-space: nowrap;
}

body .admin-content-modern .admin-table-action {
    color: #2563eb;
    cursor: pointer;
    font-weight: 800;
    white-space: nowrap;
}

body .admin-content-modern .admin-table-action-danger {
    color: #dc2626;
}

body .admin-content-modern .admin-pagination-wrap {
    margin-top: 14px;
}

body .admin-content-modern .sub-header {
    border-bottom: 1px solid #e4e9f1;
    color: #20242a;
    font-size: 15px;
    font-weight: 800;
    line-height: 1.45;
    margin: 0 0 12px;
    padding: 0 0 9px;
}

/* 본문 안 클래스 없는 raw 섹션 제목(예: <h4>FAQ 카테고리</h4>)을 일관된 크기로
   정돈한다. 헬퍼 제목(.admin-page-title/.admin-panel-title)과 .sub-header 는
   각자 클래스가 있어 제외된다. */
body .admin-content-modern h2:not([class]),
body .admin-content-modern h3:not([class]),
body .admin-content-modern h4:not([class]),
body .admin-content-modern h5:not([class]) {
    color: #20242a;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.45;
    margin: 4px 0 10px;
}

body .admin-content-modern .admin-table-compact > tbody > tr > td {
    font-size: 13px;
    line-height: 1.35;
}

body .admin-content-modern .admin-table-compact > thead > tr > th,
body .admin-content-modern .admin-table-compact > tbody > tr > td,
body .admin-content-modern .admin-table-compact > tbody > tr > th {
    padding: 7px 9px;
    vertical-align: middle;
}

body .admin-content-modern .admin-search-table {
    margin-bottom: 0;
}

body .admin-content-modern .admin-search-table > tbody > tr > th {
    background: #f8fafc;
    color: #374151;
    font-size: 13px;
    font-weight: 800;
    padding: 7px 9px;
    vertical-align: middle;
    white-space: nowrap;
}

body .admin-content-modern .admin-search-table > tbody > tr > td {
    padding: 7px 9px;
    vertical-align: middle;
}

body .admin-content-modern .csv-preview {
    border: 1px solid #e4e9f1;
    border-radius: 7px;
    margin: 10px 0;
    max-height: 300px;
    overflow-y: auto;
    padding: 10px 12px;
}

body .admin-content-modern .plan-summary,
body .admin-content-modern .execution-status {
    background: #f8fafc;
    border: 1px solid #e4e9f1;
    border-radius: 7px;
    margin: 10px 0;
    padding: 12px 14px;
}

body .admin-content-modern .admin-search-table input[type="date"],
body .admin-content-modern .admin-search-table input[type="text"]:not(.form-control) {
    border: 1px solid #d8dee8;
    border-radius: 6px;
    height: 30px;
    line-height: 1.4;
    padding: 5px 9px;
}

body .admin-content-modern .admin-search-table input[type="date"] {
    width: 145px;
}

body .admin-content-modern .search_table {
    margin-bottom: 10px;
}

body .admin-content-modern .search_table > tbody > tr > th,
body .admin-content-modern .search_table > tr > th {
    background: #f8fafc;
    color: #374151;
    font-size: 13px;
    font-weight: 800;
    padding: 7px 9px;
    vertical-align: middle;
    white-space: nowrap;
}

body .admin-content-modern .search_table > tbody > tr > td,
body .admin-content-modern .search_table > tr > td {
    padding: 7px 9px;
    vertical-align: middle;
}

body .admin-content-modern .inputDate {
    background-image: url('/img/icon/calendar_icon.png') !important;
    background-position: 95% center !important;
    background-repeat: no-repeat !important;
    background-size: 12px 12px !important;
    background-color: #ffffff;
    border: 1px solid #d8dee8 !important;
    border-radius: 6px !important;
    color: #4b5563 !important;
    height: 30px !important;
    letter-spacing: 0 !important;
}

body .admin-content-modern .label {
    border-radius: 5px;
    display: inline-flex;
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
    padding: 5px 7px;
}

body .admin-content-modern button.label {
    align-items: center;
    border: 0;
    justify-content: center;
    min-height: 24px;
}

body .admin-content-modern .memo_text_area,
body .admin-content-modern.admin-standalone-popup .memo_text_area {
    border: 1px solid #d8dee8;
    border-radius: 6px;
    min-height: 260px;
    padding: 8px 10px;
    resize: vertical;
    width: 100%;
}

body .admin-content-modern .form-inline {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

body .admin-content-modern .form-inline .form-group {
    align-items: center;
    display: inline-flex;
    gap: 6px;
    margin-bottom: 0;
    margin-right: 0;
}

body .admin-content-modern .form-inline label {
    color: #374151;
    font-size: 12px;
    font-weight: 800;
    margin: 0;
    white-space: nowrap;
}

body .admin-content-modern .well {
    background: #f8fafc;
    border: 1px solid #e4e9f1;
    border-radius: 7px;
    box-shadow: none;
    margin-bottom: 14px;
    padding: 12px 14px;
}

body .admin-content-modern .pull-right {
    float: right !important;
}

body .admin-content-modern .pull-left {
    float: left !important;
}

body .admin-content-modern .checkbox,
body .admin-content-modern .radio {
    margin-bottom: 8px;
    margin-top: 8px;
}

body .admin-content-modern .checkbox label,
body .admin-content-modern .radio label {
    align-items: center;
    color: #374151;
    display: inline-flex;
    font-size: 13px;
    font-weight: 600;
    gap: 6px;
    margin: 0;
}

body .admin-content-modern .checkbox input[type="checkbox"],
body .admin-content-modern .radio input[type="radio"] {
    margin: 0;
}

body .admin-content-modern .radio-inline,
body .admin-content-modern .checkbox-inline {
    align-items: center;
    display: inline-flex;
    font-size: 13px;
    font-weight: 600;
    gap: 6px;
    margin-bottom: 0;
    margin-right: 12px;
}

body .admin-content-modern .radio-inline input[type="radio"],
body .admin-content-modern .checkbox-inline input[type="checkbox"] {
    margin: 0;
}

body .admin-content-modern .pbs-filter {
    margin-bottom: 14px !important;
}

body .admin-content-modern .pbs-panel-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-left: auto;
    margin-top: 0 !important;
}

body .admin-content-modern .pbs-selected-summary,
body .admin-content-modern .pbs-muted,
body .admin-content-modern .pbs-help {
    color: #6b7280 !important;
    font-size: 12px;
    font-weight: 700;
}

body .admin-content-modern .admin-table-centered > thead > tr > th,
body .admin-content-modern .admin-table-centered > tbody > tr > td {
    text-align: center;
    vertical-align: middle !important;
}

body .admin-content-modern .admin-table-centered .text-left {
    text-align: left;
}

body .admin-content-modern .admin-banner-table th,
body .admin-content-modern .admin-banner-table td {
    vertical-align: middle !important;
}

body .admin-content-modern .admin-banner-thumb {
    background: #f5f7fa;
    border: 1px solid #d8dee8;
    border-radius: 5px;
    height: 24px;
    object-fit: cover;
    width: 96px;
}

body .admin-content-modern .admin-banner-thumb-wide {
    background: #f5f7fa;
    border: 1px solid #d8dee8;
    border-radius: 5px;
    height: 30px;
    object-fit: cover;
    width: 120px;
}

body .admin-content-modern .admin-banner-preview {
    background: #ffffff;
    border: 1px solid #d8dee8;
    border-radius: 8px;
    height: auto;
    max-width: 100%;
    width: 460px;
}

body .admin-content-modern .admin-segment-labels .label {
    display: inline-block;
    margin: 0 3px 4px 0;
    max-width: 100%;
    text-align: left;
    white-space: normal;
}

body .admin-content-modern .admin-row-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

body .admin-content-modern .admin-priority-cell {
    font-size: 18px;
    font-weight: 800;
    text-align: center;
}

body .admin-content-modern .admin-landing-cell {
    max-width: 190px;
    word-break: break-all;
}

body .admin-content-modern .admin-reason-labels .label {
    display: inline-block;
    margin: 0 3px 4px 0;
    max-width: 100%;
    text-align: left;
    white-space: normal;
}

body .admin-content-modern .admin-selected-card {
    border: 1px solid #e4e9f1;
    border-radius: 8px;
    display: grid;
    gap: 16px;
    grid-template-columns: minmax(240px, 460px) minmax(260px, 1fr);
    margin-bottom: 12px;
    padding: 14px;
}

body .admin-content-modern .admin-selected-card h3 {
    color: #20242a;
    font-size: 18px;
    font-weight: 800;
    line-height: 1.35;
    margin: 0 0 10px;
}

body .admin-content-modern .admin-selected-card p {
    color: #374151;
    font-size: 13px;
    font-weight: 600;
    margin: 0 0 8px;
}

body .admin-content-modern .admin-exposure-table th,
body .admin-content-modern .admin-exposure-table td {
    vertical-align: middle !important;
}

body .admin-content-modern .campaign-popup-table th,
body .admin-content-modern .campaign-popup-table td {
    vertical-align: middle !important;
}

body .admin-content-modern .campaign-popup-table th {
    white-space: nowrap;
}

body .admin-content-modern .popup-title-cell {
    min-width: 220px;
}

body .admin-content-modern .popup-content-cell {
    max-width: 260px;
    word-break: break-word;
}

body .admin-content-modern .popup-url-cell {
    max-width: 220px;
}

body .admin-content-modern .dataTables_wrapper {
    color: #1f2937;
    font-size: 13px;
}

body .admin-content-modern .dataTables_wrapper .dataTables_filter,
body .admin-content-modern .dataTables_wrapper .dataTables_info,
body .admin-content-modern .dataTables_wrapper .dataTables_length {
    color: #6b7280;
    font-size: 12px;
    font-weight: 700;
}

body .admin-content-modern .dataTables_wrapper .dataTables_filter {
    margin-bottom: 10px;
}

body .admin-content-modern .dataTables_wrapper .dataTables_filter input,
body .admin-content-modern .dataTables_wrapper .dataTables_length select {
    border: 1px solid #d8dee8;
    border-radius: 6px;
    box-shadow: none;
    color: #374151;
    font-size: 13px;
    height: 30px;
    line-height: 1.4;
    margin-left: 6px;
    padding: 4px 8px;
}

body .admin-content-modern .dataTables_wrapper .dataTables_filter input:focus {
    border-color: #8bb8ff;
    box-shadow: 0 0 0 3px rgba(51, 122, 183, 0.12);
    outline: none;
}

body .admin-content-modern table.dataTable.no-footer {
    border-bottom: 1px solid #d8dee8;
}

body .admin-content-modern table.dataTable thead th,
body .admin-content-modern table.dataTable thead td {
    border-bottom: 1px solid #d8dee8;
}

body .admin-content-modern .admin-week-table textarea.form-control {
    min-height: 64px;
}

body .admin-content-modern .admin-course-position-table {
    font-size: 12px;
}

body .admin-content-modern .admin-course-position-table > thead > tr > th,
body .admin-content-modern .admin-course-position-table > tbody > tr > td {
    padding: 6px 8px;
}

body .admin-content-modern .admin-week-order,
body .admin-content-modern .admin-table-action-cell {
    text-align: center;
    vertical-align: middle !important;
}

body .admin-content-modern .admin-course-row-duplicate {
    background-color: #fff1f2;
    outline: 2px solid #e5484d;
    outline-offset: -2px;
}

body .admin-content-modern .admin-course-row-new {
    background-color: #eefbf3;
    outline: 2px solid #2ca36a;
    outline-offset: -2px;
}

body .admin-content-modern .admin-course-row-current {
    background-color: #eef7ff;
    outline: 2px solid #337ab7;
    outline-offset: -2px;
}

body .admin-content-modern .admin-course-row-duplicate td,
body .admin-content-modern .admin-course-row-duplicate .admin-course-marker {
    color: #c92a2a;
    font-weight: 800;
}

body .admin-content-modern .admin-course-row-new td,
body .admin-content-modern .admin-course-row-new .admin-course-marker {
    color: #18864b;
    font-weight: 800;
}

body .admin-content-modern .admin-course-row-current td {
    color: #226195;
    font-weight: 800;
}

body .admin-content-modern .admin-clickable-row {
    cursor: pointer;
}

body .admin-content-modern .admin-clickable-row:hover {
    background-color: #f8f9fa;
}

body .admin-content-modern tr.row-unused td {
    background-color: #fff8e1 !important;
}

body .admin-content-modern .notification-table .admin-clickable-row:hover {
    background-color: #f0f0f0;
}

body .admin-content-modern .notification-row {
    cursor: pointer;
}

body .admin-content-modern .notification-row:hover {
    background-color: #f8f9fa;
}

body .admin-content-modern .notification-card {
    border-left: 4px solid #5cb85c;
    border-radius: 6px;
    cursor: pointer;
    margin: 10px;
    transition: background-color 0.2s ease, box-shadow 0.2s ease;
}

body .admin-content-modern .notification-card:hover {
    background-color: #f8f9fa;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

body .admin-content-modern .notification-card-line {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
}

body .admin-content-modern .notification-card-item {
    flex: 0 0 auto;
}

body .admin-content-modern .notification-card-message {
    flex: 1;
    min-width: 200px;
}

body .admin-content-modern .notification-card-date {
    color: #337ab7;
    font-size: 14px;
}

body .admin-content-modern .notification-card-schedule {
    color: #d9534f;
    font-size: 14px;
}

body .admin-content-modern .notification-card-divider {
    color: #dddddd;
}

body .admin-content-modern .notification-list {
    display: grid;
    gap: 0;
}

body .admin-content-modern .notification-raw-data {
    margin: 25px 15px 15px;
}

body .admin-content-modern .notification-raw-data summary {
    color: #337ab7;
    cursor: pointer;
}

body .admin-content-modern .no-result {
    color: #6c757d;
    font-style: italic;
    padding: 40px;
    text-align: center;
}

body .admin-content-modern .status-badge {
    border-radius: 15px;
    display: inline-block;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.2;
    padding: 5px 10px;
}

body .admin-content-modern .status-badge.status-pending {
    background-color: #ffc107;
    color: #212529;
}

body .admin-content-modern .status-badge.status-sent {
    background-color: #28a745;
    color: #ffffff;
}

body .admin-content-modern .status-badge.status-failed {
    background-color: #dc3545;
    color: #ffffff;
}

body .admin-content-modern .status-pending {
    color: #f0ad4e;
}

body .admin-content-modern .status-sent,
body .admin-content-modern .status-delivered {
    color: #5cb85c;
}

body .admin-content-modern .status-failed {
    color: #d9534f;
}

body .admin-content-modern .push-stat-value {
    color: #20242a;
    display: block;
    font-size: 22px;
    font-weight: 800;
    line-height: 1.2;
    margin-top: 4px;
}

body .admin-content-modern .push-reach-rate {
    font-weight: 800;
}

body .admin-content-modern .push-reach-rate-good {
    color: #28a745;
}

body .admin-content-modern .push-reach-rate-average {
    color: #ffc107;
}

body .admin-content-modern .push-reach-rate-poor {
    color: #dc3545;
}

body .admin-content-modern .content-cell,
body .admin-content-modern .webhook-cell {
    max-width: 200px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body .admin-content-modern .json-display {
    background-color: #f8f9fa;
    border: 1px solid #dee2e6;
    border-radius: 4px;
    font-family: "Courier New", monospace;
    max-height: 400px;
    overflow-y: auto;
    padding: 15px;
    white-space: pre-wrap;
    word-wrap: break-word;
}

body .admin-content-modern .detail-row {
    border-bottom: 1px solid #eeeeee;
    margin-bottom: 10px;
    padding: 8px;
}

body .admin-content-modern .detail-label {
    color: #337ab7;
    display: inline-block;
    font-weight: 800;
    width: 150px;
}

body .admin-content-modern .admin-detail-section {
    border: 1px solid #e4e9f1;
    border-radius: 8px;
    margin-bottom: 12px;
    overflow: hidden;
}

body .admin-content-modern .admin-detail-section-header {
    background: #f8fafc;
    border-bottom: 1px solid #e4e9f1;
    color: #20242a;
    font-weight: 800;
    padding: 10px 12px;
}

body .admin-content-modern .admin-detail-section-body {
    padding: 12px;
}

body .admin-content-modern .button-group {
    align-items: center;
    display: flex;
    flex-wrap: nowrap;
    gap: 10px;
    justify-content: center;
}

body .admin-content-modern .button-group .btn {
    flex-shrink: 0;
    min-width: 100px;
    white-space: nowrap;
}

body .admin-content-modern code {
    background: #f3f6fb;
    border: 1px solid #e2e8f0;
    border-radius: 4px;
    color: #255f99;
    font-size: 12px;
    padding: 2px 5px;
}

body .admin-content-modern .admin-mt-10 {
    margin-top: 10px;
}

body .admin-content-modern .admin-mt-6 {
    margin-top: 6px;
}

body .admin-content-modern .admin-mt-12 {
    margin-top: 12px;
}

body .admin-content-modern .admin-mt-20 {
    margin-top: 20px;
}

body .admin-content-modern .admin-mt-30 {
    margin-top: 30px;
}

body .admin-content-modern .admin-mb-0 {
    margin-bottom: 0;
}

body .admin-content-modern .admin-mb-8 {
    margin-bottom: 8px;
}

body .admin-content-modern .admin-mb-15 {
    margin-bottom: 15px;
}

body .admin-content-modern .admin-ml-10 {
    margin-left: 10px;
}

body .admin-content-modern .admin-mr-10 {
    margin-right: 10px;
}

body .admin-content-modern .admin-ml-20 {
    margin-left: 20px;
}

body .admin-content-modern .admin-image-fluid-rounded {
    border-radius: 4px;
    max-width: 100%;
}

body .admin-content-modern .admin-code-block {
    background: #f8f9fa;
    border: 1px solid #edf1f5;
    border-radius: 4px;
    color: #374151;
    font-family: Consolas, Monaco, "Courier New", monospace;
    font-size: 13px;
    line-height: 1.45;
    padding: 15px;
    white-space: pre-wrap;
}

body .admin-content-modern .admin-divider-tight {
    margin: 12px 0;
}

body .admin-content-modern .admin-col-w-80 {
    width: 80px;
}

body .admin-content-modern .admin-col-w-90 {
    width: 90px;
}

body .admin-content-modern .admin-col-w-120 {
    width: 120px;
}

body .admin-content-modern .admin-col-w-140 {
    width: 140px;
}

body .admin-content-modern .admin-muted-description {
    color: #666666;
    font-size: 12px;
    margin-bottom: 8px;
}

body .admin-content-modern .notification-template-detail {
    background-color: #f8fbff;
    border: 1px solid #dce7ff;
    border-radius: 6px;
    margin-bottom: 0;
    padding: 15px;
}

body .admin-content-modern .placeholder-badge {
    background-color: #eef2ff;
    border-radius: 12px;
    color: #4c60d3;
    display: inline-block;
    font-size: 12px;
    margin: 3px;
    padding: 4px 8px;
}

body .admin-content-modern .notification-preview-box {
    background-color: #f5f7fb;
    border: 1px solid #dbe2f0;
    border-radius: 6px;
    font-family: "Courier New", monospace;
    padding: 15px;
    white-space: pre-wrap;
}

body .admin-content-modern .json-helper {
    color: #6c757d;
    font-size: 12px;
    margin-top: 5px;
}

body .admin-content-modern .token-list code {
    background-color: #f0f4ff;
    border-radius: 4px;
    display: block;
    margin-bottom: 6px;
    padding: 6px 8px;
    word-break: break-all;
}

body .admin-content-modern .result-success {
    color: #2e7d32;
    font-weight: 800;
}

body .admin-content-modern .result-fail {
    color: #c62828;
    font-weight: 800;
}

body .admin-content-modern .label-fallback {
    background-color: #ffb74d;
    color: #222222;
}

body .admin-content-modern .label-primary-token {
    background-color: #5bc0de;
}

body .admin-content-modern .character-count {
    color: #6b7280;
    font-size: 12px;
    margin-top: 5px;
    text-align: right;
}

body .admin-content-modern .preview-box {
    background-color: #f8fafc;
    border: 1px dashed #cfd8e3;
    border-radius: 8px;
    margin-top: 10px;
    padding: 18px;
    text-align: center;
}

body .admin-content-modern .push-preview {
    background: #ffffff;
    border: 1px solid #dfe5ee;
    border-radius: 10px;
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.07);
    color: #1f2937;
    margin: 0 auto;
    max-width: 340px;
    padding: 16px;
    text-align: left;
}

body .admin-content-modern .push-preview .app-icon {
    background: #8bd35c;
    border-radius: 8px;
    display: inline-block;
    height: 36px;
    margin-right: 10px;
    vertical-align: top;
    width: 36px;
}

body .admin-content-modern .push-preview .push-content {
    display: inline-block;
    max-width: calc(100% - 52px);
    vertical-align: top;
}

body .admin-content-modern .push-preview .push-title,
body .admin-content-modern .push-preview-title {
    color: #111827;
    font-size: 15px;
    font-weight: 800;
    line-height: 1.35;
    margin-bottom: 6px;
}

body .admin-content-modern .push-preview .push-message,
body .admin-content-modern .push-preview-content {
    color: #4b5563;
    font-size: 13px;
    line-height: 1.45;
}

body .admin-content-modern .segment-info {
    background-color: #f0f6ff;
    border: 1px solid #d7e8ff;
    border-radius: 7px;
    color: #314158;
    font-size: 13px;
    line-height: 1.7;
    margin-top: 12px;
    padding: 12px 14px;
}

body .admin-content-modern .CodeMirror {
    border: 1px solid #d8dee8;
    border-radius: 6px;
    height: 200px;
}

body .admin-content-modern .sql-test-success,
body .admin-content-modern .sql-test-error {
    border-radius: 7px;
    font-size: 13px;
    line-height: 1.55;
    margin-top: 12px;
    padding: 12px 14px;
}

body .admin-content-modern .sql-test-success {
    background-color: #eefbf3;
    border: 1px solid #c9efd8;
    color: #17623a;
}

body .admin-content-modern .sql-test-error {
    background-color: #fff1f1;
    border: 1px solid #ffd2d2;
    color: #9b1c1c;
}

body .admin-content-modern .status-warning {
    background-color: #fff8e8;
    border: 1px solid #f7dfad;
    border-radius: 7px;
    color: #76530b;
    font-size: 13px;
    line-height: 1.5;
    margin-bottom: 14px;
    padding: 12px 14px;
}

body .admin-content-modern .stat-metric {
    background: #f8fafc;
    border: 1px solid #edf1f5;
    border-radius: 7px;
    margin-bottom: 10px;
    padding: 14px 10px;
    text-align: center;
}

body .admin-content-modern .stat-value {
    color: #2563eb;
    font-size: 22px;
    font-weight: 800;
    line-height: 1.2;
}

body .admin-content-modern .stat-label {
    color: #6b7280;
    font-size: 12px;
    font-weight: 800;
    margin-top: 5px;
}

body .admin-content-modern .timeline {
    border-left: 2px solid #e2e8f0;
    margin-left: 8px;
    padding-left: 18px;
}

body .admin-content-modern .timeline-item {
    margin-bottom: 17px;
    position: relative;
}

body .admin-content-modern .timeline-item:before {
    background: #1f9d61;
    border: 2px solid #ffffff;
    border-radius: 999px;
    box-shadow: 0 0 0 2px #c9efd8;
    content: "";
    height: 8px;
    left: -23px;
    position: absolute;
    top: 6px;
    width: 8px;
}

body .admin-content-modern .timeline-time {
    color: #7a8491;
    font-size: 12px;
}

body .admin-content-modern .timeline-event {
    color: #20242a;
    font-weight: 800;
}

body .admin-content-modern .info-table th {
    background-color: #f8fafc;
    width: 120px;
}

body .admin-content-modern .chart-small {
    height: 250px;
}

body .admin-content-modern .metric-card {
    background: #ffffff;
    border: 1px solid #e4e9f1;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.04);
    margin-bottom: 14px;
    min-height: 126px;
    padding: 16px 14px;
    text-align: center;
}

body .admin-content-modern .metric-value {
    color: #20242a;
    font-size: 26px;
    font-weight: 800;
    line-height: 1.2;
    margin-bottom: 4px;
}

body .admin-content-modern .metric-label {
    color: #6b7280;
    font-size: 12px;
    font-weight: 800;
}

body .admin-content-modern .metric-change {
    font-size: 12px;
    font-weight: 800;
    margin-top: 8px;
}

body .admin-content-modern .change-up {
    color: #16834b;
}

body .admin-content-modern .change-down {
    color: #c33131;
}

body .admin-content-modern .chart-panel {
    height: 300px;
}

body .admin-content-modern .chart-panel-sm {
    height: 210px;
}

body .admin-content-modern .quick-action-list {
    display: grid;
    gap: 8px;
}

body .admin-content-modern .quick-action-item {
    align-items: center;
    background: #f8fafc;
    border: 1px solid #edf1f5;
    border-radius: 7px;
    color: #253041;
    display: flex;
    font-weight: 700;
    gap: 8px;
    padding: 10px 12px;
}

body .admin-content-modern .quick-action-item:hover {
    background: #eef5ff;
    text-decoration: none;
}

body .admin-content-modern .status-indicator {
    border-radius: 999px;
    display: inline-block;
    height: 8px;
    margin-right: 8px;
    width: 8px;
}

body .admin-content-modern .status-excellent {
    background-color: #16a34a;
}

body .admin-content-modern .status-good {
    background-color: #0ea5e9;
}

body .admin-content-modern .status-average {
    background-color: #f59e0b;
}

body .admin-content-modern .status-poor {
    background-color: #dc2626;
}

body .admin-content-modern .segment-card {
    background: #ffffff;
    border: 1px solid #e4e9f1;
    border-left: 4px solid #2563eb;
    border-radius: 8px;
    margin-bottom: 12px;
    padding: 16px;
}

body .admin-content-modern .segment-header {
    align-items: flex-start;
    display: flex;
    gap: 12px;
    justify-content: space-between;
    margin-bottom: 12px;
}

body .admin-content-modern .segment-name {
    color: #20242a;
    font-size: 16px;
    font-weight: 800;
    line-height: 1.35;
}

body .admin-content-modern .segment-description {
    color: #6b7280;
    font-size: 13px;
    margin-top: 4px;
}

body .admin-content-modern .segment-count {
    color: #2563eb;
    font-size: 18px;
    font-weight: 800;
    white-space: nowrap;
}

body .admin-content-modern .segment-actions {
    display: flex;
    gap: 6px;
    justify-content: flex-end;
    margin-top: 8px;
}

body .admin-content-modern .segment-sql {
    background: #f8fafc;
    border: 1px solid #edf1f5;
    border-radius: 6px;
    color: #374151;
    font-family: Consolas, Monaco, "Courier New", monospace;
    font-size: 12px;
    line-height: 1.45;
    max-height: 96px;
    overflow-y: auto;
    padding: 10px;
}

body .admin-content-modern .segment-meta {
    color: #7a8491;
    font-size: 12px;
    margin-top: 10px;
}

body .admin-content-modern .schema-help,
body .admin-content-modern .quick-queries {
    background: #f8fafc;
    border: 1px solid #edf1f5;
    border-radius: 8px;
    margin-bottom: 12px;
    padding: 14px;
}

body .admin-content-modern .schema-table {
    margin-bottom: 12px;
}

body .admin-content-modern .schema-table h5,
body .admin-content-modern .quick-queries h5 {
    color: #1f4f8a;
    font-size: 13px;
    font-weight: 800;
    margin: 0 0 8px;
}

body .admin-content-modern .schema-columns {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

body .admin-content-modern .schema-column {
    background: #ffffff;
    border: 1px solid #d7e8ff;
    border-radius: 4px;
    color: #314158;
    font-size: 12px;
    padding: 3px 7px;
}

body .admin-content-modern .quick-query-btn {
    background: #ffffff;
    border: 1px solid #dfe7f2;
    border-radius: 5px;
    color: #374151;
    display: block;
    font-size: 12px;
    margin-bottom: 7px;
    padding: 8px 10px;
}

body .admin-content-modern .quick-query-btn:hover {
    background: #eef5ff;
    text-decoration: none;
}

body .admin-content-modern .test-success,
body .admin-content-modern .test-error {
    border-radius: 7px;
    font-size: 13px;
    line-height: 1.55;
    margin-top: 12px;
    padding: 12px 14px;
}

body .admin-content-modern .test-success {
    background-color: #eefbf3;
    border: 1px solid #c9efd8;
    color: #17623a;
}

body .admin-content-modern .test-error {
    background-color: #fff1f1;
    border: 1px solid #ffd2d2;
    color: #9b1c1c;
}

body .admin-content-modern .admin-menu-icon-field {
    align-items: center;
    display: grid;
    gap: 8px;
    grid-template-columns: minmax(0, 1fr) auto;
}

body .admin-content-modern .admin-menu-icon-preview {
    align-items: center;
    color: #374151;
    display: inline-flex;
    min-height: 28px;
}

body .admin-content-modern .admin-menu-child-preview {
    background: #f8fafc;
    border: 1px solid #edf1f5;
    border-radius: 7px;
    padding: 10px;
}

body .admin-content-modern .admin-menu-child-help {
    color: #7a8491;
    font-size: 12px;
    line-height: 1.45;
    margin-bottom: 8px;
}

body .admin-content-modern #child_menu_list {
    margin-bottom: 0;
}

body .admin-content-modern #child_menu_list li[data-virtual='Y'] {
    cursor: move;
}

body .admin-content-modern #child_menu_list .sortable-placeholder {
    background: #f7fdff;
    border: 2px dashed #bce8f1;
    height: 42px;
    list-style: none;
    margin: 0;
}

body .admin-content-modern .admin-menu-child-empty {
    color: #7a8491;
}

body .admin-content-modern .admin-menu-child-icon {
    margin-right: 8px;
}

body .admin-content-modern .admin-menu-child-icon-muted {
    opacity: 0.3;
}

body .admin-content-modern .admin-menu-virtual-note {
    color: #31708f;
    margin-left: 8px;
}

body .admin-content-modern .admin-icon-picker-dialog,
body .admin-icon-picker-dialog {
    max-width: 1200px;
    width: 90%;
}

body .admin-content-modern .admin-icon-picker-body,
body .admin-icon-picker-body {
    max-height: 500px;
    overflow-y: auto;
}

body .admin-content-modern #icon_grid,
body #icon_grid {
    margin: 0;
    padding: 10px 0;
}

body .admin-content-modern .icon-item,
body .icon-item {
    border: 1px solid #d8dee8;
    border-radius: 6px;
    cursor: pointer;
    display: inline-block;
    margin: 5px;
    min-width: 120px;
    padding: 14px;
    text-align: center;
    transition: background-color 0.16s ease, border-color 0.16s ease, transform 0.16s ease;
    width: calc(10% - 10px);
}

body .admin-content-modern .icon-item:hover,
body .icon-item:hover {
    background-color: #f5f9ff;
    border-color: #8bb8ff;
    transform: translateY(-1px);
}

body .admin-content-modern .icon-item.selected,
body .icon-item.selected {
    background-color: #337ab7;
    border-color: #337ab7;
    color: #ffffff;
}

body .admin-content-modern .icon-item i,
body .icon-item i {
    display: block;
    font-size: 22px;
    margin-bottom: 5px;
}

body .admin-content-modern .icon-item span,
body .icon-item span {
    display: block;
    font-size: 11px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body .admin-content-modern .admin-legacy-section {
    width: 100%;
    margin-bottom: 16px;
}

body .admin-content-modern .btn-secondary {
    background-color: #6c757d;
    border-color: #6c757d;
    color: #ffffff;
}

body .admin-content-modern .btn-secondary:hover,
body .admin-content-modern .btn-secondary:focus {
    background-color: #5c636a;
    border-color: #565e64;
    color: #ffffff;
}

body .admin-content-modern .btn-outline-primary,
body .admin-content-modern .btn-outline-secondary,
body .admin-content-modern .btn-outline-info {
    background-color: transparent;
    color: #337ab7;
}

body .admin-content-modern .btn-outline-primary {
    border-color: #337ab7;
    color: #337ab7;
}

body .admin-content-modern .btn-outline-primary:hover,
body .admin-content-modern .btn-outline-primary:focus {
    background-color: #337ab7;
    color: #ffffff;
}

body .admin-content-modern .btn-outline-secondary {
    border-color: #6c757d;
    color: #6c757d;
}

body .admin-content-modern .btn-outline-secondary:hover,
body .admin-content-modern .btn-outline-secondary:focus {
    background-color: #6c757d;
    color: #ffffff;
}

body .admin-content-modern .btn-outline-info {
    border-color: #5bc0de;
    color: #31708f;
}

body .admin-content-modern .btn-outline-info:hover,
body .admin-content-modern .btn-outline-info:focus {
    background-color: #5bc0de;
    color: #ffffff;
}

/* modifier 없는 순수 .badge 의 BS3 기본색(회색) 복원 — 누락 시 흰 글자가 흰 배경에 묻힘 */
body .admin-content-modern .badge {
    background-color: #777777;
    color: #ffffff;
}

body .admin-content-modern .badge-secondary {
    background-color: #6c757d;
    color: #ffffff;
}

body .admin-content-modern .badge-primary,
body .admin-content-modern .badge-info,
body .admin-content-modern .badge-success,
body .admin-content-modern .badge-warning,
body .admin-content-modern .badge-danger,
body .admin-content-modern .badge-light,
body .admin-content-modern .badge-dark {
    color: #ffffff;
}

body .admin-content-modern .badge-primary {
    background-color: #337ab7;
}

body .admin-content-modern .badge-info {
    background-color: #5bc0de;
}

body .admin-content-modern .badge-success {
    background-color: #5cb85c;
}

body .admin-content-modern .badge-warning {
    background-color: #f0ad4e;
}

body .admin-content-modern .badge-danger {
    background-color: #d9534f;
}

body .admin-content-modern .badge-light {
    background-color: #f8f9fa;
    color: #333333;
}

body .admin-content-modern .badge-dark {
    background-color: #343a40;
}

body .admin-content-modern .form-select {
    background-color: #ffffff;
    border: 1px solid #cccccc;
    border-radius: 4px;
    color: #555555;
    display: block;
    font-size: 14px;
    height: 34px;
    line-height: 1.42857143;
    padding: 6px 12px;
    width: 100%;
}

body .admin-content-modern .d-none {
    display: none !important;
}

body .admin-content-modern .d-flex {
    display: flex !important;
}

body .admin-content-modern .d-inline-flex {
    display: inline-flex !important;
}

body .admin-content-modern .d-grid {
    display: grid !important;
}

body .admin-content-modern .align-items-center {
    align-items: center !important;
}

body .admin-content-modern .justify-content-between {
    justify-content: space-between !important;
}

body .admin-content-modern .justify-content-center {
    justify-content: center !important;
}

body .admin-content-modern .justify-content-end {
    justify-content: flex-end !important;
}

body .admin-content-modern .gap-1 {
    gap: 4px !important;
}

body .admin-content-modern .gap-2 {
    gap: 8px !important;
}

body .admin-content-modern .gap-3 {
    gap: 12px !important;
}

body .admin-content-modern .float-start {
    float: left !important;
}

body .admin-content-modern .float-end {
    float: right !important;
}

body .admin-content-modern .mt-0,
body .admin-content-modern .my-0 {
    margin-top: 0 !important;
}

body .admin-content-modern .mb-0,
body .admin-content-modern .my-0 {
    margin-bottom: 0 !important;
}

body .admin-content-modern .mt-1,
body .admin-content-modern .my-1 {
    margin-top: 4px !important;
}

body .admin-content-modern .mb-1,
body .admin-content-modern .my-1 {
    margin-bottom: 4px !important;
}

body .admin-content-modern .mt-2,
body .admin-content-modern .my-2 {
    margin-top: 8px !important;
}

body .admin-content-modern .mb-2,
body .admin-content-modern .my-2 {
    margin-bottom: 8px !important;
}

body .admin-content-modern .mt-3,
body .admin-content-modern .my-3 {
    margin-top: 12px !important;
}

body .admin-content-modern .mb-3,
body .admin-content-modern .my-3 {
    margin-bottom: 12px !important;
}

body .admin-content-modern .mt-4,
body .admin-content-modern .my-4 {
    margin-top: 16px !important;
}

body .admin-content-modern .mb-4,
body .admin-content-modern .my-4 {
    margin-bottom: 16px !important;
}

body .admin-content-modern .mt-5,
body .admin-content-modern .my-5 {
    margin-top: 24px !important;
}

body .admin-content-modern .mb-5,
body .admin-content-modern .my-5 {
    margin-bottom: 24px !important;
}

body .admin-content-modern .px-0 {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

body .admin-content-modern .py-0 {
    padding-bottom: 0 !important;
    padding-top: 0 !important;
}

body .admin-content-modern .w-100 {
    width: 100% !important;
}

body .admin-content-modern .h-100 {
    height: 100% !important;
}

body .admin-content-modern .form-check {
    align-items: center;
    display: flex;
    gap: 6px;
    margin-bottom: 8px;
}

body .admin-content-modern .form-check-input {
    flex: none;
    margin: 0;
}

body .admin-content-modern .form-check-label {
    color: #374151;
    font-weight: 600;
    margin: 0;
}

@media (max-width: 1199px) {
    body .admin-content-modern .admin-filter-grid-wide,
    body .admin-content-modern .admin-filter-grid-six {
        grid-template-columns: repeat(2, minmax(180px, 1fr));
    }

    body .admin-content-modern .admin-summary-grid {
        grid-template-columns: repeat(2, minmax(180px, 1fr));
    }

    body .admin-content-modern .admin-layout-split,
    body .admin-content-modern .admin-layout-equal {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767px) {
    body .admin-content-modern .admin-page-header,
    body .admin-content-modern .admin-panel-header {
        align-items: flex-start;
        flex-direction: column;
        padding-bottom: 12px;
        padding-top: 12px;
    }

    body .admin-content-modern .admin-page-actions,
    body .admin-content-modern .admin-panel-actions {
        justify-content: flex-start;
        width: 100%;
    }

    body .admin-content-modern .admin-date-range {
        align-items: stretch;
        flex-direction: column;
    }

    body .admin-content-modern .admin-date-range .form-control {
        max-width: none;
    }

    body .admin-content-modern .admin-filter-grid-wide,
    body .admin-content-modern .admin-filter-grid-six {
        grid-template-columns: 1fr;
    }

    body .admin-content-modern .admin-summary-grid {
        grid-template-columns: 1fr;
    }

    body .admin-content-modern .admin-selected-card,
    body .admin-content-modern .admin-timing-control {
        grid-template-columns: 1fr;
    }

    body .admin-content-modern .button-group {
        gap: 5px;
    }

    body .admin-content-modern .button-group .btn {
        font-size: 12px;
        min-width: 80px;
        padding: 6px 12px;
    }

    body .admin-content-modern .admin-menu-icon-field {
        grid-template-columns: 1fr;
    }
}

/* ── modern list table polish (admin-data-table) ─────────────────── */
body .admin-content-modern .admin-data-table {
    --bs-table-bg: transparent;
    --bs-table-striped-bg: #f9fafb;
    --bs-table-hover-bg: #f1f6ff;
    color: #374151;
    font-size: 13px;
    margin: 0;
    min-width: 100%;
}
/* 데이터 테이블 본문 셀: 칸 폭을 넘는 콘텐츠(긴 URL·세그먼트 배지 등)는
   칸 안에서 줄바꿈하여 옆 칸을 덮지 않도록 한다. 칸에 들어가는 콘텐츠는
   그대로 한 줄로 표시된다(오버플로 자체가 불가능). */
body .admin-content-modern .admin-data-table > tbody > tr > td {
    white-space: normal;
}
/* 링크(긴 URL 등)는 칸을 넘으면 칸 안에서 줄바꿈한다. 숫자·날짜 등 일반 토큰은
   영향 없음(white-space:normal 만으로 자연 줄바꿈 지점에서만 끊김). */
body .admin-content-modern .admin-data-table > tbody > tr > td a {
    overflow-wrap: anywhere;
    word-break: break-word;
}
body .admin-content-modern .admin-data-table > tbody > tr > td .label,
body .admin-content-modern .admin-data-table > tbody > tr > td .badge {
    margin-bottom: 3px;
}
body .admin-content-modern .admin-data-table > thead > tr > th {
    background: #f8fafc;
    border-top: 0;
    border-right: 0;
    border-left: 0;
    border-bottom: 1px solid #e4e9f1;
    color: #667085;
    font-size: 12px;
    font-weight: 700;
    padding: 10px 14px;
    vertical-align: middle;
}
body .admin-content-modern .admin-data-table > tbody > tr > td {
    border-top: 0;
    border-right: 0;
    border-left: 0;
    border-bottom: 1px solid #eef1f5;
    padding: 10px 14px;
    vertical-align: middle;
}
body .admin-content-modern .admin-data-table > tbody > tr:last-child > td {
    border-bottom: 0;
}

/* ── modern pagination ───────────────────────────────────────────── */
body .admin-content-modern .pagination {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    justify-content: center;
    margin: 18px 0 2px;
    padding: 0;
}
body .admin-content-modern .pagination > .page-item {
    margin: 0;
}
body .admin-content-modern .pagination > .page-item > .page-link {
    background: transparent;
    border: 1px solid transparent;
    border-radius: 8px;
    color: #475467;
    font-size: 13px;
    font-weight: 600;
    line-height: 1;
    min-width: 34px;
    padding: 8px 11px;
    text-align: center;
    transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
body .admin-content-modern .pagination > .page-item > .page-link:hover {
    background: #f1f5f9;
    color: #1f2937;
}
body .admin-content-modern .pagination > .page-item.active > .page-link {
    background: #4a86e8;
    border-color: #4a86e8;
    color: #ffffff;
}
body .admin-content-modern .pagination > .page-item > .page-link:focus {
    box-shadow: none;
    outline: none;
}

/* ===== Bootstrap 3 그리드 호환 (.row 없이 쓴 레거시 col-*) =====
   레거시 페이지는 BS3 float 기준으로 .row 래퍼 없이 col-md-* 등을 부모에 직접
   넣어 가로 배치했다. BS5 의 col-* 는 flex 기반이라 .row(display:flex) 부모가
   없으면 컬럼이 세로로 쌓이고 좁아진다(폼 필드·버튼·표가 뭉개짐). .row 가 아니면서
   col-* 를 직접 자식으로 가진 컨테이너를 flex 행으로 만들어 BS3 가로 배치를
   복원한다. 패널/헤더/표 등 레이아웃 컴포넌트는 제외해 부작용을 막는다. */
/* col-* 의 폭 규칙은 BS5 에서 해당 브레이크포인트(md=768px) 이상에서만 적용된다.
   그 미만(좁은 팝업 등)에서는 col-* 가 폭이 없어 flex 자식이 콘텐츠로 쪼그라들어
   오히려 표·필드가 더 뭉개진다(BS3 는 <768 에서 col-md 가 block 100% 로 세로 적층).
   따라서 가로 배치 복원은 md 이상에서만 한다. */
@media (min-width: 768px) {
    body .admin-content-modern :not(.row):not(.admin-panel):not(.admin-panel-body):not(.admin-filter-panel):not(.admin-page-header):not(.admin-table-wrap):not(.admin-data-table):not(table):not(thead):not(tbody):not(tfoot):not(tr):not(.tab-pane):not(.collapse):not(.collapsing):not(.modal):not(.dropdown-menu):not(.offcanvas):not(.carousel-item):has(> [class*="col-md-"], > [class*="col-sm-"], > [class*="col-lg-"], > [class*="col-xs-"]) {
        display: flex;
        flex-wrap: wrap;
        align-items: flex-start;
    }
    /* flex 행으로 복원된 컨테이너의 직속 섹션 제목·전체폭 요소는 한 줄을 모두
       차지해 컬럼과 같은 줄에 붙지 않게 한다. */
    body .admin-content-modern :not(.row):has(> [class*="col-md-"], > [class*="col-sm-"], > [class*="col-lg-"], > [class*="col-xs-"]) > :is(h1, h2, h3, h4, h5, h6, hr, .sub-header) {
        flex: 0 0 100%;
        width: 100%;
    }
}

/* standalone/팝업: admin_standalone 컨테이너 안의 레거시 사이드바 오프셋 래퍼
   (.main/.login-form)를 중립화해 본문이 컨테이너 폭을 그대로 채우게 한다.
   전체 셸 페이지는 .main 을 쓰지 않으므로 영향 없음. */
body .admin-content-modern .main,
body .admin-content-modern .login-form {
    width: auto !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    float: none !important;
}

/* ===== Bootstrap 3 nav-tabs 호환 =====
   레거시 탭은 .nav-link 클래스 없이 li > a 구조라 BS5 탭 스타일(특히 활성 표시)이
   적용되지 않는다. .nav-link 가 없는 레거시 탭 링크를 BS5 탭처럼 보이게 한다. */
body .admin-content-modern .nav-tabs > li > a:not(.nav-link) {
    display: block;
    padding: 8px 16px;
    margin-bottom: -1px;
    color: #59616f;
    text-decoration: none;
    border: 1px solid transparent;
    border-top-left-radius: 8px;
    border-top-right-radius: 8px;
}
body .admin-content-modern .nav-tabs > li > a:not(.nav-link):hover {
    color: #2b3240;
    border-color: #e9ecef #e9ecef #dee2e6;
}
body .admin-content-modern .nav-tabs > li.active > a:not(.nav-link),
body .admin-content-modern .nav-tabs > li > a.active:not(.nav-link) {
    color: #2b3240;
    font-weight: 600;
    background: #fff;
    border-color: #dee2e6 #dee2e6 #fff;
}

/* ===== 쿠폰 템플릿 생성/수정 팝업: BS5 모던 폼 레이아웃 =====
   마크업/JS 무수정, #couponForm 스코프 CSS 로만 현대화. */
body .admin-content-modern .login-form:has(#couponForm) {
    max-width: 960px !important;
    margin: 8px auto 28px !important;
    background: #fff;
    border: 1px solid #e6e9ef;
    border-radius: 14px;
    padding: 26px 32px 30px;
    box-shadow: 0 1px 3px rgba(16, 24, 40, 0.05);
}
body .admin-content-modern #couponForm { width: 100%; }
body .admin-content-modern #couponForm h2 {
    font-size: 20px; font-weight: 800; color: #1b1f27; margin: 0 0 4px;
}
body .admin-content-modern #couponForm h3 {
    font-size: 14px; font-weight: 700; color: #2b3240;
    margin: 22px 0 12px; padding-bottom: 8px; border-bottom: 1px solid #eaeef4;
}
/* 라벨이 직접 자식인 섹션은 라벨 위·인풋 아래(세로)로 정렬 */
body .admin-content-modern #couponForm > .form-group:has(> label) {
    flex-direction: column; align-items: flex-start;
}
body .admin-content-modern #couponForm label {
    font-size: 13px; font-weight: 600; color: #59616f; margin: 0 0 5px;
}
/* 필드 래퍼 폭 정규화(col-md-* 무시) */
body .admin-content-modern #couponForm .list-group {
    box-shadow: none; padding: 0; margin: 0 0 14px;
}
/* 좁은 필드 래퍼만 폭 제한(적용방법 col-md-12 는 표가 있어 전체폭 유지) */
body .admin-content-modern #couponForm .col-md-4.list-group { width: 100%; max-width: 440px; }
body .admin-content-modern #couponForm .col-md-2.list-group { max-width: 220px; }
body .admin-content-modern #couponForm .col-md-4.list-group:has(textarea) { max-width: 600px; }
/* 적용방법(col-md-12): 카드 폭을 유지하고 넓은 레슨권 표는 가로 스크롤로 수용 */
body .admin-content-modern #couponForm .col-md-12.list-group { max-width: 100%; overflow-x: auto; }
/* 인풋/셀렉트/텍스트에어리어 정규화(인라인 style override) */
body .admin-content-modern #couponForm .form-control {
    width: 100% !important; height: 40px !important;
    border: 1px solid #d7dce5 !important; border-radius: 8px !important;
    padding: 7px 12px !important; font-size: 14px; box-shadow: none;
}
body .admin-content-modern #couponForm textarea.form-control { height: auto !important; min-height: 88px; }
body .admin-content-modern #couponForm input[type="date"].form-control { width: 175px !important; }
body .admin-content-modern #couponForm .form-control:focus {
    border-color: #4a86e8 !important; box-shadow: 0 0 0 3px rgba(74, 134, 232, 0.15) !important; outline: none;
}
/* 라디오 그룹 모던 */
body .admin-content-modern #couponForm .radio-group {
    display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 0 0 10px;
}
body .admin-content-modern #couponForm .radio-group label {
    display: inline-flex; align-items: center; gap: 6px; margin: 0; font-weight: 500; color: #3a4150;
}
/* 저장 버튼 영역 (저장 버튼은 #couponForm 밖, form 직속이라 login-form 기준) */
body .admin-content-modern .login-form:has(#couponForm) .col-md-1 { width: auto !important; max-width: none !important; padding: 0; }
body .admin-content-modern .login-form:has(#couponForm) .btn-success { width: auto !important; min-width: 130px; height: 42px; font-weight: 600; margin-top: 18px; }
body .admin-content-modern .login-form:has(#couponForm) .btn { border-radius: 8px; }
