/**
 * TSS 전역 다크 모드 — html[data-tss-theme="dark"]
 * 문서함(doc-library.css)과 동일한 슬레이트 톤
 */

/* 라이트 모드 기본 토큰 (페이지별 #fff 하드코딩 대신 사용) */
:root {
    --tss-bg: #fafafa;
    --tss-surface: #ffffff;
    --tss-surface-muted: #f5f5f5;
    --tss-text: #212121;
    --tss-muted: #757575;
    --tss-border: #eeeeee;

    /* 선택·강조·호버 (블루/슬레이트 틴트) */
    --tss-accent-soft: #eff6ff;
    --tss-accent-soft-hover: #f0f4ff;
    --tss-accent-selected: #e8f0fe;
    --tss-accent-border: #93c5fd;
    --tss-accent-border-soft: #bfdbfe;
    --tss-row-hover: #f8f9fa;
    --tss-chip-success-bg: #ecfdf5;
    --tss-chip-success-text: #166534;
    --tss-chip-success-border: #bbf7d0;

    /* 알림(alert) — google-style.css 등에서 공통 참조 */
    --tss-alert-success-bg: #e6f4ea;
    --tss-alert-success-text: #1e4620;
    --tss-alert-success-border: transparent;
    --tss-alert-warning-bg: #fff3e0;
    --tss-alert-warning-text: #e65100;
    --tss-alert-warning-border: transparent;
    --tss-alert-danger-bg: #fce8e6;
    --tss-alert-danger-text: #c5221f;
    --tss-alert-danger-border: transparent;
    --tss-alert-info-bg: #e8f0fe;
    --tss-alert-info-text: #174ea6;
    --tss-alert-info-border: transparent;
    --tss-alert-primary-bg: #e8f0fe;
    --tss-alert-primary-text: #174ea6;
    --tss-alert-primary-border: transparent;
    --tss-alert-secondary-bg: #f1f3f4;
    --tss-alert-secondary-text: #3c4043;
    --tss-alert-secondary-border: transparent;
}

html[data-tss-theme="dark"] {
    --google-gray-50: #0f172a;
    --google-gray-100: #1e293b;
    --google-gray-200: #334155;
    --google-gray-300: #475569;
    --google-gray-400: #64748b;
    --google-gray-500: #94a3b8;
    --google-gray-600: #cbd5e1;
    --google-gray-700: #e2e8f0;
    --google-gray-800: #f1f5f9;
    --google-gray-900: #f8fafc;
    --google-blue-light: rgba(96, 165, 250, 0.14);

    --tss-bg: #0f172a;
    --tss-surface: #1e293b;
    --tss-surface-muted: #172033;
    --tss-text: #e2e8f0;
    --tss-muted: #94a3b8;
    --tss-border: #334155;

    --tss-accent-soft: rgba(96, 165, 250, 0.12);
    --tss-accent-soft-hover: rgba(96, 165, 250, 0.16);
    --tss-accent-selected: rgba(96, 165, 250, 0.2);
    --tss-accent-border: rgba(96, 165, 250, 0.45);
    --tss-accent-border-soft: rgba(96, 165, 250, 0.35);
    --tss-row-hover: rgba(96, 165, 250, 0.08);
    --tss-chip-success-bg: rgba(34, 197, 94, 0.14);
    --tss-chip-success-text: #86efac;
    --tss-chip-success-border: rgba(34, 197, 94, 0.35);

    /* TS 모듈 전체 회색 팔레트 (텍스트·헤더 가독성) */
    --ts-bg: #0f172a;
    --ts-surface: #1e293b;
    --ts-surface-muted: #172033;
    --ts-border: rgba(148, 163, 184, 0.18);
    --ts-border-strong: rgba(148, 163, 184, 0.28);
    --ts-gray-50: #0f172a;
    --ts-gray-100: #1e293b;
    --ts-gray-200: #334155;
    --ts-gray-300: #475569;
    --ts-gray-400: #64748b;
    --ts-gray-500: #94a3b8;
    --ts-gray-600: #cbd5e1;
    --ts-gray-700: #e2e8f0;
    --ts-gray-800: #f1f5f9;
    --ts-gray-900: #f8fafc;
    --ts-light: #1e293b;
    --ts-dark: #e2e8f0;

    /* 게시판 UI 토큰 */
    --bd-bg: #0f172a;
    --bd-surface: #1e293b;
    --bd-text: #e2e8f0;
    --bd-muted: #94a3b8;
    --bd-border: #334155;
    --bd-primary-weak: rgba(96, 165, 250, 0.14);

    /* 알림(alert) 다크 톤 */
    --tss-alert-success-bg: rgba(34, 197, 94, 0.14);
    --tss-alert-success-text: #86efac;
    --tss-alert-success-border: rgba(34, 197, 94, 0.35);
    --tss-alert-warning-bg: rgba(251, 191, 36, 0.14);
    --tss-alert-warning-text: #fcd34d;
    --tss-alert-warning-border: rgba(251, 191, 36, 0.35);
    --tss-alert-danger-bg: rgba(248, 113, 113, 0.14);
    --tss-alert-danger-text: #fca5a5;
    --tss-alert-danger-border: rgba(248, 113, 113, 0.35);
    --tss-alert-info-bg: rgba(96, 165, 250, 0.14);
    --tss-alert-info-text: #93c5fd;
    --tss-alert-info-border: rgba(96, 165, 250, 0.35);
    --tss-alert-primary-bg: rgba(96, 165, 250, 0.14);
    --tss-alert-primary-text: #93c5fd;
    --tss-alert-primary-border: rgba(96, 165, 250, 0.35);
    --tss-alert-secondary-bg: rgba(148, 163, 184, 0.12);
    --tss-alert-secondary-text: #cbd5e1;
    --tss-alert-secondary-border: rgba(148, 163, 184, 0.28);

    color-scheme: dark;
}

/* ---- 공통 본문 ---- */
html[data-tss-theme="dark"] body {
    background-color: var(--tss-bg) !important;
    color: var(--tss-text);
}

html[data-tss-theme="dark"] body:not(.app) {
    background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%) !important;
}

html[data-tss-theme="dark"] h1,
html[data-tss-theme="dark"] h2,
html[data-tss-theme="dark"] h3,
html[data-tss-theme="dark"] h4,
html[data-tss-theme="dark"] h5,
html[data-tss-theme="dark"] h6 {
    color: var(--tss-text);
}

html[data-tss-theme="dark"] .text-muted,
html[data-tss-theme="dark"] .text-secondary {
    color: var(--tss-muted) !important;
}

html[data-tss-theme="dark"] .text-dark {
    color: var(--tss-text) !important;
}

/* 본문 내 일반 링크 (네비·버튼·메뉴 타일 제외) */
html[data-tss-theme="dark"] main a:not(.btn):not(.nav-link):not(.dropdown-item):not(.admin-quick-link):not(.dashboard-menu-card):not(.bd-action-btn):not(.bd-btn):not(.page-link):not(.doc-card):not(.doc-lib-back):not(.doc-lib-btn-upload),
html[data-tss-theme="dark"] .super-admin-main a:not(.btn):not(.nav-link):not(.dropdown-item):not(.admin-quick-link):not(.page-link),
html[data-tss-theme="dark"] #main.content a:not(.btn):not(.nav-link):not(.dropdown-item):not(.page-link) {
    color: #93c5fd;
}

html[data-tss-theme="dark"] main a:not(.btn):not(.nav-link):not(.dropdown-item):not(.admin-quick-link):not(.dashboard-menu-card):not(.bd-action-btn):not(.bd-btn):not(.page-link):not(.doc-card):not(.doc-lib-btn-upload):hover,
html[data-tss-theme="dark"] .super-admin-main a:not(.btn):not(.nav-link):not(.dropdown-item):not(.admin-quick-link):not(.page-link):hover,
html[data-tss-theme="dark"] #main.content a:not(.btn):not(.nav-link):not(.dropdown-item):not(.page-link):hover {
    color: #bfdbfe;
}

/* ---- 카드 · 패널 ---- */
html[data-tss-theme="dark"] .card,
html[data-tss-theme="dark"] .ts-card {
    background-color: var(--tss-surface);
    color: var(--tss-text);
    border-color: var(--tss-border);
}

html[data-tss-theme="dark"] .card-header,
html[data-tss-theme="dark"] .ts-card .card-header {
    background-color: var(--tss-surface-muted);
    border-bottom-color: var(--tss-border);
    color: var(--tss-text);
}

html[data-tss-theme="dark"] .card-footer,
html[data-tss-theme="dark"] .ts-card .card-footer {
    background-color: var(--tss-surface-muted);
    border-top-color: var(--tss-border);
}

/* ---- 표 ---- */
html[data-tss-theme="dark"] .table {
    color: var(--tss-text);
    border-color: var(--tss-border);
    --bs-table-bg: transparent;
    --bs-table-color: var(--tss-text);
    --bs-table-border-color: var(--tss-border);
    --bs-table-striped-bg: rgba(255, 255, 255, 0.03);
    --bs-table-hover-bg: rgba(96, 165, 250, 0.08);
}

html[data-tss-theme="dark"] .table thead th,
html[data-tss-theme="dark"] .ts-data-table .table thead th {
    background-color: var(--tss-surface-muted);
    border-color: var(--tss-border);
    color: var(--tss-text);
}

html[data-tss-theme="dark"] .table td,
html[data-tss-theme="dark"] .table th {
    border-color: var(--tss-border);
}

html[data-tss-theme="dark"] .table tbody tr,
html[data-tss-theme="dark"] .table tbody td,
html[data-tss-theme="dark"] .table tbody th {
    background-color: var(--tss-surface) !important;
    color: var(--tss-text) !important;
}

html[data-tss-theme="dark"] .table thead tr,
html[data-tss-theme="dark"] .table thead th,
html[data-tss-theme="dark"] .table-light,
html[data-tss-theme="dark"] .table-light > th,
html[data-tss-theme="dark"] .table-light > td {
    background-color: var(--tss-surface-muted) !important;
    color: var(--tss-text) !important;
    border-color: var(--tss-border) !important;
}

html[data-tss-theme="dark"] .table-hover tbody tr:hover {
    background-color: rgba(96, 165, 250, 0.08) !important;
    color: var(--tss-text);
}

/* ---- 폼 ---- */
html[data-tss-theme="dark"] .form-control,
html[data-tss-theme="dark"] .form-select,
html[data-tss-theme="dark"] textarea.form-control {
    background-color: #0f172a;
    color: var(--tss-text);
    border-color: var(--tss-border);
}

html[data-tss-theme="dark"] .form-control:focus,
html[data-tss-theme="dark"] .form-select:focus {
    background-color: #0f172a;
    color: var(--tss-text);
    border-color: #60a5fa;
    box-shadow: 0 0 0 0.2rem rgba(96, 165, 250, 0.2);
}

html[data-tss-theme="dark"] .form-control::placeholder {
    color: #64748b;
}

/* form-floating — Bootstrap은 placeholder를 transparent로 숨기고 label만 표시 */
html[data-tss-theme="dark"] .form-floating > .form-control::placeholder,
html[data-tss-theme="dark"] .form-floating > .form-select::placeholder {
    color: transparent !important;
}

/* readonly·plaintext — 모달·상세 화면 흰 입력창 방지 */
html[data-tss-theme="dark"] .form-control[readonly],
html[data-tss-theme="dark"] .form-control[disabled],
html[data-tss-theme="dark"] .form-control-plaintext,
html[data-tss-theme="dark"] .form-control-plaintext.bg-light {
    background-color: var(--tss-surface-muted) !important;
    color: var(--tss-muted) !important;
    border-color: var(--tss-border);
}

html[data-tss-theme="dark"] code {
    color: #93c5fd;
    background: rgba(96, 165, 250, 0.12);
    padding: 0.1em 0.35em;
    border-radius: 0.25rem;
}

html[data-tss-theme="dark"] .input-group-text {
    background-color: var(--tss-surface-muted);
    color: var(--tss-muted);
    border-color: var(--tss-border);
}

html[data-tss-theme="dark"] .form-label,
html[data-tss-theme="dark"] .form-text {
    color: var(--tss-muted);
}

/* 파일 선택 — 네이티브 「파일 선택」 버튼 다크 톤 */
html[data-tss-theme="dark"] input[type="file"].form-control {
    background-color: #0f172a;
    color: var(--tss-text);
    border-color: var(--tss-border);
}

html[data-tss-theme="dark"] input[type="file"].form-control::file-selector-button {
    background-color: var(--tss-surface-muted);
    color: var(--tss-text);
    border: 1px solid var(--tss-border);
    border-radius: 0.375rem;
    padding: 0.375rem 0.85rem;
    margin-right: 0.75rem;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

html[data-tss-theme="dark"] input[type="file"].form-control::file-selector-button:hover {
    background-color: #334155;
    border-color: #475569;
}

html[data-tss-theme="dark"] input[type="file"].form-control::-webkit-file-upload-button {
    background-color: var(--tss-surface-muted);
    color: var(--tss-text);
    border: 1px solid var(--tss-border);
    border-radius: 0.375rem;
    padding: 0.375rem 0.85rem;
    margin-right: 0.75rem;
    cursor: pointer;
}

html[data-tss-theme="dark"] input[type="file"].form-control:hover:not(:disabled):not([readonly])::file-selector-button {
    background-color: #334155;
    border-color: #475569;
}

html[data-tss-theme="dark"] .form-check-input {
    background-color: #0f172a;
    border-color: var(--tss-border);
}

html[data-tss-theme="dark"] .form-check-input:checked {
    background-color: #2563eb;
    border-color: #2563eb;
}

html[data-tss-theme="dark"] .form-check-label {
    color: var(--tss-text);
}

/* ---- 모달 · 드롭다운 ---- */
html[data-tss-theme="dark"] .modal-content {
    background-color: var(--tss-surface);
    color: var(--tss-text);
    border-color: var(--tss-border);
}

html[data-tss-theme="dark"] .modal-header,
html[data-tss-theme="dark"] .modal-footer {
    border-color: var(--tss-border);
}

html[data-tss-theme="dark"] .dropdown-menu {
    background-color: var(--tss-surface);
    border-color: var(--tss-border);
}

html[data-tss-theme="dark"] .dropdown-item {
    color: var(--tss-text);
}

html[data-tss-theme="dark"] .dropdown-item:hover,
html[data-tss-theme="dark"] .dropdown-item:focus {
    background-color: rgba(96, 165, 250, 0.12);
    color: var(--tss-text);
}

html[data-tss-theme="dark"] .list-group-item {
    background-color: var(--tss-surface);
    color: var(--tss-text);
    border-color: var(--tss-border);
}

/* ---- 알림 · 배지 · 토스트 ---- */
html[data-tss-theme="dark"] .alert {
    border-width: 1px;
    border-style: solid;
}

html[data-tss-theme="dark"] .alert-success {
    background-color: var(--tss-alert-success-bg);
    color: var(--tss-alert-success-text);
    border-color: var(--tss-alert-success-border);
}

html[data-tss-theme="dark"] .alert-warning {
    background-color: var(--tss-alert-warning-bg);
    color: var(--tss-alert-warning-text);
    border-color: var(--tss-alert-warning-border);
}

html[data-tss-theme="dark"] .alert-danger {
    background-color: var(--tss-alert-danger-bg);
    color: var(--tss-alert-danger-text);
    border-color: var(--tss-alert-danger-border);
}

html[data-tss-theme="dark"] .alert-info {
    background-color: var(--tss-alert-info-bg);
    color: var(--tss-alert-info-text);
    border-color: var(--tss-alert-info-border);
}

html[data-tss-theme="dark"] .alert-primary {
    background-color: var(--tss-alert-primary-bg);
    color: var(--tss-alert-primary-text);
    border-color: var(--tss-alert-primary-border);
}

html[data-tss-theme="dark"] .alert-secondary {
    background-color: var(--tss-alert-secondary-bg);
    color: var(--tss-alert-secondary-text);
    border-color: var(--tss-alert-secondary-border);
}

html[data-tss-theme="dark"] .alert-light {
    background-color: var(--tss-surface-muted);
    color: var(--tss-text);
    border-color: var(--tss-border);
}

html[data-tss-theme="dark"] .alert-dark {
    background-color: #0f172a;
    color: var(--tss-text);
    border-color: var(--tss-border);
}

html[data-tss-theme="dark"] .alert a:not(.btn) {
    color: inherit;
    font-weight: 600;
    text-decoration: underline;
}

html[data-tss-theme="dark"] .alert .btn-close {
    filter: invert(1) grayscale(100%) brightness(1.6);
    opacity: 0.75;
}

html[data-tss-theme="dark"] .alert .btn-close:hover {
    opacity: 1;
}

html[data-tss-theme="dark"] .toast:not(.text-white) {
    background-color: var(--tss-surface);
    color: var(--tss-text);
    border: 1px solid var(--tss-border);
}

html[data-tss-theme="dark"] .toast .toast-header {
    background-color: var(--tss-surface-muted);
    color: var(--tss-text);
    border-bottom-color: var(--tss-border);
}

html[data-tss-theme="dark"] .toast .toast-body {
    background-color: var(--tss-surface);
    color: var(--tss-text);
}

html[data-tss-theme="dark"] .toast .btn-close {
    filter: invert(1) grayscale(100%) brightness(1.6);
}

html[data-tss-theme="dark"] .badge-success {
    background-color: var(--tss-alert-success-bg) !important;
    color: var(--tss-alert-success-text) !important;
}

html[data-tss-theme="dark"] .badge-warning {
    background-color: var(--tss-alert-warning-bg) !important;
    color: var(--tss-alert-warning-text) !important;
}

html[data-tss-theme="dark"] .badge-danger {
    background-color: var(--tss-alert-danger-bg) !important;
    color: var(--tss-alert-danger-text) !important;
}

html[data-tss-theme="dark"] .badge-info {
    background-color: var(--tss-alert-info-bg) !important;
    color: var(--tss-alert-info-text) !important;
}

html[data-tss-theme="dark"] .invalid-feedback,
html[data-tss-theme="dark"] .valid-feedback {
    color: var(--tss-muted);
}

html[data-tss-theme="dark"] .bg-light {
    background-color: var(--tss-surface-muted) !important;
}

html[data-tss-theme="dark"] .bg-white {
    background-color: var(--tss-surface) !important;
}

html[data-tss-theme="dark"] .border,
html[data-tss-theme="dark"] .border-top,
html[data-tss-theme="dark"] .border-bottom {
    border-color: var(--tss-border) !important;
}

/* ---- 사용자 모드 상단 네비 ---- */
html[data-tss-theme="dark"] .navbar:not(.navbar-dark) {
    background-color: var(--tss-surface) !important;
    border-bottom-color: var(--tss-border);
}

html[data-tss-theme="dark"] .navbar:not(.navbar-dark) .navbar-brand,
html[data-tss-theme="dark"] .navbar:not(.navbar-dark) .nav-link,
html[data-tss-theme="dark"] .navbar:not(.navbar-dark) .tss-nav-btn {
    color: var(--tss-text);
}

html[data-tss-theme="dark"] .navbar:not(.navbar-dark) .nav-link:hover,
html[data-tss-theme="dark"] .navbar:not(.navbar-dark) .tss-nav-btn:hover {
    color: #93c5fd;
}

html[data-tss-theme="dark"] .tss-page-subnav {
    background: var(--tss-surface);
    border-bottom-color: var(--tss-border);
}

html[data-tss-theme="dark"] .tss-breadcrumb .breadcrumb-item {
    color: var(--tss-muted);
}

html[data-tss-theme="dark"] .tss-breadcrumb .breadcrumb-item.active {
    color: var(--tss-text);
}

html[data-tss-theme="dark"] .footer {
    background-color: var(--tss-surface);
    border-top: 1px solid var(--tss-border);
}

html[data-tss-theme="dark"] .empty-state {
    color: var(--tss-muted);
}

html[data-tss-theme="dark"] .empty-state h5 {
    color: var(--tss-text);
}

/* ---- Super Admin ---- */
html[data-tss-theme="dark"] header.navbar.navbar-light {
    background-color: var(--tss-surface) !important;
    border-bottom-color: var(--tss-border);
}

html[data-tss-theme="dark"] header.navbar.navbar-light .navbar-brand,
html[data-tss-theme="dark"] header.navbar.navbar-light .nav-link {
    color: var(--tss-text) !important;
}

html[data-tss-theme="dark"] header.navbar.navbar-light .tss-lang-switch a {
    color: var(--tss-text);
}

html[data-tss-theme="dark"] header.navbar.navbar-light .tss-lang-switch .text-muted {
    color: var(--tss-muted) !important;
}

html[data-tss-theme="dark"] .sidebar {
    background: var(--tss-surface);
    border-right-color: var(--tss-border);
}

html[data-tss-theme="dark"] .sidebar .nav-link {
    color: var(--tss-muted);
}

html[data-tss-theme="dark"] .sidebar .nav-link i {
    color: var(--tss-muted);
}

html[data-tss-theme="dark"] .sidebar .nav-link:hover {
    color: var(--tss-text);
    background-color: rgba(96, 165, 250, 0.08);
}

html[data-tss-theme="dark"] .sidebar .nav-link.active {
    color: #93c5fd;
    background-color: rgba(96, 165, 250, 0.14);
}

html[data-tss-theme="dark"] .sidebar .nav .collapse .nav-link {
    color: var(--tss-muted);
    background: transparent;
}

html[data-tss-theme="dark"] .sidebar .nav .collapse .nav-link i {
    color: var(--tss-muted);
}

html[data-tss-theme="dark"] .sidebar .nav .collapse .nav-link:hover,
html[data-tss-theme="dark"] .sidebar .nav .collapse .nav-link.active {
    color: #93c5fd;
    background: rgba(96, 165, 250, 0.1);
}

html[data-tss-theme="dark"] .sidebar .nav .collapse .nav-link:hover i,
html[data-tss-theme="dark"] .sidebar .nav .collapse .nav-link.active i {
    color: #93c5fd;
}

html[data-tss-theme="dark"] .sidebar .nav .collapse {
    border-left-color: var(--tss-border);
    background: transparent;
}

html[data-tss-theme="dark"] .super-admin-main {
    background-color: var(--tss-bg);
}

/* ---- TS Admin ---- */
html[data-tss-theme="dark"] body.app {
    background: var(--tss-bg) !important;
    color: var(--tss-text);
}

html[data-tss-theme="dark"] #main.content {
    background: var(--tss-bg);
    color: var(--tss-text);
}

html[data-tss-theme="dark"] .ts-layout {
    background: var(--tss-bg);
}

/* ---- 로딩 오버레이 ---- */
html[data-tss-theme="dark"] #global-loading {
    background: rgba(15, 23, 42, 0.72) !important;
    color: var(--tss-text);
}

/* ---- 테마 토글 버튼 ---- */
.tss-theme-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    padding: 0;
    border: 1px solid var(--google-gray-300, #cbd5e1);
    border-radius: 999px;
    background: transparent;
    color: inherit;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.tss-theme-toggle:hover {
    background: rgba(96, 165, 250, 0.12);
    border-color: #60a5fa;
    color: #2563eb;
}

.tss-theme-toggle:focus-visible {
    outline: 2px solid #60a5fa;
    outline-offset: 2px;
}

.tss-theme-toggle--on-dark {
    border-color: rgba(255, 255, 255, 0.25);
    color: rgba(255, 255, 255, 0.85);
}

.tss-theme-toggle--on-dark:hover {
    background: rgba(255, 255, 255, 0.12);
    border-color: rgba(255, 255, 255, 0.45);
    color: #fff;
}

html[data-tss-theme="dark"] .tss-theme-toggle:not(.tss-theme-toggle--on-dark) {
    border-color: var(--tss-border);
    color: #fbbf24;
}

html[data-tss-theme="dark"] .tss-theme-toggle:not(.tss-theme-toggle--on-dark):hover {
    background: rgba(251, 191, 36, 0.12);
    border-color: #fbbf24;
    color: #fde68a;
}

.tss-theme-toggle-wrap {
    display: flex;
    align-items: center;
}

/* ---- 사용자 대시보드 ---- */
html[data-tss-theme="dark"] .dashboard-welcome,
html[data-tss-theme="dark"] .dashboard-menu-panel,
html[data-tss-theme="dark"] .dashboard-menu-card,
html[data-tss-theme="dark"] .dashboard-page .card {
    background-color: var(--tss-surface);
    border-color: var(--tss-border);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
}

html[data-tss-theme="dark"] .dashboard-welcome h2,
html[data-tss-theme="dark"] .dashboard-menu-card .dashboard-card-title {
    color: var(--tss-text);
}

html[data-tss-theme="dark"] .dashboard-role-badge {
    color: var(--tss-muted);
    background: var(--tss-surface-muted);
}

html[data-tss-theme="dark"] .dashboard-section-title,
html[data-tss-theme="dark"] .dashboard-tab-lead,
html[data-tss-theme="dark"] .dashboard-menu-card .dashboard-card-description {
    color: var(--tss-muted);
}

html[data-tss-theme="dark"] .dashboard-menu-tabs {
    border-bottom-color: var(--tss-border);
}

html[data-tss-theme="dark"] .dashboard-menu-tabs .nav-link {
    color: var(--tss-muted);
}

html[data-tss-theme="dark"] .dashboard-menu-tabs .nav-link:hover {
    color: var(--tss-text);
    background: rgba(255, 255, 255, 0.04);
}

html[data-tss-theme="dark"] .dashboard-menu-tabs .nav-link.active {
    color: #93c5fd;
    background: var(--tss-surface);
    border-bottom-color: #60a5fa;
}

html[data-tss-theme="dark"] .dashboard-menu-card:hover {
    border-color: #60a5fa;
    box-shadow: 0 4px 12px rgba(96, 165, 250, 0.15);
}

html[data-tss-theme="dark"] .dashboard-page .card-header {
    background: var(--tss-surface-muted);
    border-bottom-color: var(--tss-border);
    color: var(--tss-text);
}

html[data-tss-theme="dark"] .btn-outline-primary {
    color: #93c5fd;
    border-color: #60a5fa;
    background-color: var(--tss-surface) !important;
    --bs-btn-bg: var(--tss-surface);
}

html[data-tss-theme="dark"] .btn-outline-primary:hover {
    background-color: rgba(96, 165, 250, 0.14) !important;
    border-color: #93c5fd;
    color: #bfdbfe;
}

html[data-tss-theme="dark"] .btn-close {
    filter: invert(1) grayscale(100%) brightness(200%);
}

/* ============================================================
   TS 관리 모듈 (거래관리·기준정보 등)
   ============================================================ */
html[data-tss-theme="dark"] #main .card,
html[data-tss-theme="dark"] #main .card-body,
html[data-tss-theme="dark"] .ts-card,
html[data-tss-theme="dark"] .ts-page-header,
html[data-tss-theme="dark"] .ts-chart-container,
html[data-tss-theme="dark"] .ts-table,
html[data-tss-theme="dark"] .ts-data-table,
html[data-tss-theme="dark"] .ts-toast .toast-body {
    background-color: var(--tss-surface) !important;
    color: var(--tss-text);
    border-color: var(--tss-border);
}

html[data-tss-theme="dark"] #main .card .card-header,
html[data-tss-theme="dark"] #main .ts-panel-table > .card-header {
    background-color: var(--tss-surface-muted) !important;
    color: var(--tss-text) !important;
    border-bottom-color: var(--tss-border) !important;
}

html[data-tss-theme="dark"] .ts-page-title,
html[data-tss-theme="dark"] #main .table,
html[data-tss-theme="dark"] .ts-list-table,
html[data-tss-theme="dark"] .ts-table tbody td {
    color: var(--tss-text);
}

html[data-tss-theme="dark"] .ts-page-subtitle,
html[data-tss-theme="dark"] .ts-page-lead {
    color: var(--tss-muted);
}

html[data-tss-theme="dark"] .ts-form-label {
    color: var(--tss-text);
}

html[data-tss-theme="dark"] .ts-form-control {
    background-color: #0f172a;
    color: var(--tss-text);
    border-color: var(--tss-border);
}

/* ---- TS 공통: 흰 카드·라벨·버튼 (거래/매출/CRM/메일 등) ---- */
html[data-tss-theme="dark"] body.app #main .deal-info-card,
html[data-tss-theme="dark"] body.app #main .group-info-card,
html[data-tss-theme="dark"] body.app #main .deal-stats-card,
html[data-tss-theme="dark"] body.app #main .deal-table,
html[data-tss-theme="dark"] body.app #main .revenue-section,
html[data-tss-theme="dark"] body.app #main .progress-section,
html[data-tss-theme="dark"] body.app #main .kpi-card,
html[data-tss-theme="dark"] body.app #main .filter-panel,
html[data-tss-theme="dark"] body.app #main .chart-container,
html[data-tss-theme="dark"] body.app #main .stats-card {
    background: var(--ts-surface, var(--tss-surface)) !important;
    color: var(--tss-text) !important;
    border: 1px solid var(--tss-border);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.28) !important;
}

html[data-tss-theme="dark"] body.app #main .deal-table th,
html[data-tss-theme="dark"] body.app #main .deal-lines-table thead th {
    background: var(--tss-surface-muted) !important;
    color: var(--tss-text) !important;
    border-color: var(--tss-border) !important;
}

html[data-tss-theme="dark"] body.app #main .deal-table td,
html[data-tss-theme="dark"] body.app #main .deal-lines-table td {
    background: var(--ts-surface, var(--tss-surface)) !important;
    color: var(--tss-text) !important;
    border-color: var(--tss-border) !important;
}

html[data-tss-theme="dark"] body.app #main .deal-lines-table tbody tr:hover td {
    background: rgba(96, 165, 250, 0.06) !important;
}

html[data-tss-theme="dark"] body.app #main .text-muted,
html[data-tss-theme="dark"] body.app #main .form-label.text-muted,
html[data-tss-theme="dark"] body.app #main .form-text.text-muted,
html[data-tss-theme="dark"] body.app #main small.text-muted {
    color: var(--tss-muted) !important;
}

html[data-tss-theme="dark"] body.app #main .deal-value,
html[data-tss-theme="dark"] body.app #main .dashboard-title,
html[data-tss-theme="dark"] body.app #main .kpi-value,
html[data-tss-theme="dark"] body.app #main .filter-panel-title,
html[data-tss-theme="dark"] body.app #main .stats-card h3,
html[data-tss-theme="dark"] body.app #main .stats-card h4,
html[data-tss-theme="dark"] body.app #main .stats-card p {
    color: var(--tss-text) !important;
}

html[data-tss-theme="dark"] body.app #main .kpi-title,
html[data-tss-theme="dark"] body.app #main .kpi-description,
html[data-tss-theme="dark"] body.app #main .kpi-period,
html[data-tss-theme="dark"] body.app #main .kpi-detail-toggle {
    color: var(--tss-muted) !important;
}

html[data-tss-theme="dark"] body.app #main .kpi-detail-content,
html[data-tss-theme="dark"] body.app #main .kpi-trend {
    border-top-color: var(--tss-border) !important;
}

/* 매출/매입 대시보드 — 빠른 선택·탭 */
html[data-tss-theme="dark"] body.app #main .quick-select-btn {
    background: var(--tss-surface-muted) !important;
    border-color: var(--tss-border) !important;
    color: var(--tss-text) !important;
}

html[data-tss-theme="dark"] body.app #main .quick-select-btn:hover,
html[data-tss-theme="dark"] body.app #main .quick-select-btn.active {
    background: rgba(96, 165, 250, 0.22) !important;
    border-color: #60a5fa !important;
    color: #bfdbfe !important;
}

html[data-tss-theme="dark"] body.app #main .sales-dashboard-toggle {
    background: var(--tss-surface-muted) !important;
}

html[data-tss-theme="dark"] body.app #main .sales-dashboard-toggle .btn-tab {
    color: var(--tss-muted);
}

html[data-tss-theme="dark"] body.app #main .sales-dashboard-toggle .btn-tab.active {
    background: #2563eb !important;
    color: #fff !important;
}

html[data-tss-theme="dark"] body.app #main .segmented {
    background: var(--tss-surface-muted) !important;
    border-color: var(--tss-border) !important;
}

html[data-tss-theme="dark"] body.app #main .segmented button {
    color: var(--tss-muted);
}

html[data-tss-theme="dark"] body.app #main .segmented button.active {
    background: #2563eb !important;
    color: #fff !important;
}

html[data-tss-theme="dark"] body.app #main .filter-panel-header {
    border-bottom-color: var(--tss-border) !important;
}

html[data-tss-theme="dark"] body.app #main .quick-select-group {
    border-bottom-color: var(--tss-border) !important;
}

/* 영업활동·CRM */
html[data-tss-theme="dark"] body.app #main .note-content {
    background: var(--tss-surface-muted) !important;
    color: var(--tss-text) !important;
    border: 1px solid var(--tss-border);
}

html[data-tss-theme="dark"] body.app #main .note-content :is(p, li, span, div, td, th),
html[data-tss-theme="dark"] body.app #main .note-content-html :is(p, li, span, div) {
    color: var(--tss-text) !important;
}

html[data-tss-theme="dark"] body.app #main .note-content [style*="color"],
html[data-tss-theme="dark"] body.app #main .note-content-html [style*="color"] {
    color: var(--tss-text) !important;
}

html[data-tss-theme="dark"] body.app #main .attachment-drop-zone {
    background: var(--tss-surface-muted) !important;
    border-color: var(--tss-border) !important;
    color: var(--tss-muted);
}

html[data-tss-theme="dark"] body.app #main .attachment-pending-list .attachment-item {
    background: var(--tss-surface) !important;
    border-color: var(--tss-border) !important;
    color: var(--tss-text);
}

html[data-tss-theme="dark"] body.app #main #nextActionsTable,
html[data-tss-theme="dark"] body.app #main #nextActionsTable th,
html[data-tss-theme="dark"] body.app #main #nextActionsTable td {
    background: var(--tss-surface) !important;
    color: var(--tss-text) !important;
    border-color: var(--tss-border) !important;
}

html[data-tss-theme="dark"] body.app #main #nextActionsTable thead th {
    background: var(--tss-surface-muted) !important;
}

html[data-tss-theme="dark"] body.app #main .next-action-row-expanded {
    background: var(--tss-surface-muted) !important;
}

/* TS 배지·상태·보조 박스 */
html[data-tss-theme="dark"] body.app #main .badge.bg-secondary,
html[data-tss-theme="dark"] body.app #main .badge.bg-light,
html[data-tss-theme="dark"] body.app #main span.badge.bg-secondary {
    background-color: #475569 !important;
    color: #e2e8f0 !important;
}

html[data-tss-theme="dark"] body.app #main .badge.bg-warning.text-dark {
    color: #1e293b !important;
}

html[data-tss-theme="dark"] body.app #main .bg-light {
    background-color: var(--tss-surface-muted) !important;
    color: var(--tss-text) !important;
}

html[data-tss-theme="dark"] body.app #main .list-group-item-light {
    background-color: var(--tss-surface-muted) !important;
    color: var(--tss-text) !important;
    border-color: var(--tss-border) !important;
}

html[data-tss-theme="dark"] body.app #main .status-badge.status-draft,
html[data-tss-theme="dark"] body.app #main .status-draft {
    background: var(--tss-surface-muted) !important;
    color: var(--tss-muted) !important;
}

html[data-tss-theme="dark"] body.app #main .status-badge.status-active,
html[data-tss-theme="dark"] body.app #main .status-active {
    background: rgba(34, 197, 94, 0.18) !important;
    color: #86efac !important;
}

html[data-tss-theme="dark"] body.app #main .status-badge.status-pending,
html[data-tss-theme="dark"] body.app #main .status-pending {
    background: rgba(251, 191, 36, 0.18) !important;
    color: #fcd34d !important;
}

html[data-tss-theme="dark"] body.app #main .status-badge.status-closed,
html[data-tss-theme="dark"] body.app #main .status-closed {
    background: rgba(96, 165, 250, 0.18) !important;
    color: #93c5fd !important;
}

html[data-tss-theme="dark"] body.app #main .status-badge.status-canceled,
html[data-tss-theme="dark"] body.app #main .status-canceled {
    background: rgba(248, 113, 113, 0.18) !important;
    color: #fca5a5 !important;
}

html[data-tss-theme="dark"] body.app #main .deal-type-sale {
    background: rgba(96, 165, 250, 0.18) !important;
    color: #93c5fd !important;
}

html[data-tss-theme="dark"] body.app #main .deal-type-buy {
    background: rgba(248, 113, 113, 0.18) !important;
    color: #fca5a5 !important;
}

html[data-tss-theme="dark"] body.app #main .completion-progress,
html[data-tss-theme="dark"] body.app #main .progress {
    background: var(--tss-surface-muted) !important;
}

html[data-tss-theme="dark"] body.app #main .timeline-item::after {
    background: var(--tss-border) !important;
}

html[data-tss-theme="dark"] body.app #main .revenue-item {
    border-bottom-color: var(--tss-border) !important;
}

html[data-tss-theme="dark"] body.app #main .btn-outline-info {
    color: #67e8f9;
    border-color: rgba(34, 211, 238, 0.45);
}

html[data-tss-theme="dark"] body.app #main .btn-outline-info:hover {
    background: rgba(34, 211, 238, 0.12);
    color: #a5f3fc;
}

html[data-tss-theme="dark"] body.app #main .btn-light {
    background: var(--tss-surface-muted) !important;
    border-color: var(--tss-border) !important;
    color: var(--tss-text) !important;
}

html[data-tss-theme="dark"] body.app #main .table-striped > tbody > tr:nth-of-type(odd) > * {
    background-color: rgba(148, 163, 184, 0.06) !important;
    color: var(--tss-text) !important;
}

html[data-tss-theme="dark"] body.app #main .table > :not(caption) > * > * {
    background-color: var(--ts-surface, var(--tss-surface));
    border-bottom-color: var(--tss-border);
    color: var(--tss-text);
}

/* 인라인 style="background:#fff" 등 TS 페이지 잔여 밝은 패널 */
html[data-tss-theme="dark"] body.app #main [style*="background: #fff"],
html[data-tss-theme="dark"] body.app #main [style*="background:#fff"],
html[data-tss-theme="dark"] body.app #main [style*="background: white"],
html[data-tss-theme="dark"] body.app #main [style*="background:#ffffff"],
html[data-tss-theme="dark"] body.app #main [style*="background: #ffffff"] {
    background: var(--tss-surface) !important;
    color: var(--tss-text);
}

html[data-tss-theme="dark"] .sidebar .nav .collapse {
    background: var(--tss-surface-muted);
}

/* ============================================================
   Super Admin — 관리자 홈·통계 카드
   ============================================================ */
html[data-tss-theme="dark"] .admin-home-title,
html[data-tss-theme="dark"] .admin-stat-value,
html[data-tss-theme="dark"] .admin-home-panel-title {
    color: var(--tss-text);
}

html[data-tss-theme="dark"] .admin-home-subtitle,
html[data-tss-theme="dark"] .admin-stat-label,
html[data-tss-theme="dark"] .admin-home-date-sep {
    color: var(--tss-muted);
}

html[data-tss-theme="dark"] .admin-stat-card,
html[data-tss-theme="dark"] .admin-home-panel,
html[data-tss-theme="dark"] .stats-card {
    background: var(--tss-surface) !important;
    border-color: var(--tss-border) !important;
    color: var(--tss-text);
}

/* Super Admin — dashboard-card (세션 관리·관리자 홈 google-style) */
html[data-tss-theme="dark"] .super-admin-main .dashboard-card {
    background: var(--tss-surface) !important;
    border: 1px solid var(--tss-border);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.28);
    color: var(--tss-text);
}

html[data-tss-theme="dark"] .super-admin-main .dashboard-card-value,
html[data-tss-theme="dark"] .super-admin-main .dashboard-card-title {
    color: var(--tss-text) !important;
}

html[data-tss-theme="dark"] .super-admin-main .dashboard-card-description {
    color: var(--tss-muted) !important;
}

/* Super Admin — card·헤더·제목 (super-admin.css / 페이지 inline 보정) */
html[data-tss-theme="dark"] .super-admin-main .card,
html[data-tss-theme="dark"] .super-admin-main .card-body {
    background-color: var(--tss-surface) !important;
    color: var(--tss-text);
    border-color: var(--tss-border) !important;
}

html[data-tss-theme="dark"] .super-admin-main .card-header,
html[data-tss-theme="dark"] .super-admin-main .card-header *,
html[data-tss-theme="dark"] .super-admin-main .card-header h5,
html[data-tss-theme="dark"] .super-admin-main .card-header .mb-0 {
    background-color: var(--tss-surface-muted) !important;
    color: var(--tss-text) !important;
    border-bottom-color: var(--tss-border) !important;
}

html[data-tss-theme="dark"] .super-admin-main h1,
html[data-tss-theme="dark"] .super-admin-main h2,
html[data-tss-theme="dark"] .super-admin-main .h2,
html[data-tss-theme="dark"] .super-admin-main .h3 {
    color: var(--tss-text);
}

html[data-tss-theme="dark"] .super-admin-main .chart-card,
html[data-tss-theme="dark"] .super-admin-main .content-box,
html[data-tss-theme="dark"] .super-admin-main .filter-panel {
    background: var(--tss-surface) !important;
    border-color: var(--tss-border) !important;
    color: var(--tss-text);
}

/* 세션 관리 — 접속자 테이블 */
html[data-tss-theme="dark"] .super-admin-main .session-user-table thead th {
    color: var(--tss-muted) !important;
    background: var(--tss-surface-muted) !important;
    border-bottom-color: var(--tss-border) !important;
}

html[data-tss-theme="dark"] .super-admin-main .session-user-table tbody td {
    color: var(--tss-text);
    border-bottom-color: var(--tss-border) !important;
}

html[data-tss-theme="dark"] .super-admin-main .session-user-name {
    color: var(--tss-text) !important;
}

html[data-tss-theme="dark"] .super-admin-main .session-count-badge {
    background: var(--tss-surface-muted) !important;
    border-color: var(--tss-border) !important;
    color: var(--tss-text) !important;
}

/* Super Admin — 페이지 inline 밝은 배경 catch-all */
html[data-tss-theme="dark"] .super-admin-main [style*="background-color: #f8f9fa"],
html[data-tss-theme="dark"] .super-admin-main [style*="background: #f8f9fa"],
html[data-tss-theme="dark"] .super-admin-main [style*="background-color:#f8f9fa"] {
    background-color: var(--tss-surface-muted) !important;
    color: var(--tss-text) !important;
}

html[data-tss-theme="dark"] .admin-home-panel-header {
    border-bottom-color: var(--tss-border);
}

html[data-tss-theme="dark"] .admin-quick-link {
    color: var(--tss-text) !important;
    border-bottom-color: var(--tss-border);
}

html[data-tss-theme="dark"] .admin-quick-link i:first-child,
html[data-tss-theme="dark"] .admin-quick-link-arrow {
    color: var(--tss-muted);
}

html[data-tss-theme="dark"] .admin-quick-link:hover {
    background: rgba(96, 165, 250, 0.08);
    color: #93c5fd !important;
}

html[data-tss-theme="dark"] .admin-quick-link:hover i:first-child {
    color: #93c5fd;
}

html[data-tss-theme="dark"] .btn-outline-secondary {
    color: var(--tss-muted);
    border-color: var(--tss-border);
    background-color: var(--tss-surface) !important;
    --bs-btn-bg: var(--tss-surface);
}

html[data-tss-theme="dark"] .btn-outline-secondary:hover {
    background: rgba(148, 163, 184, 0.12) !important;
    color: var(--tss-text);
    border-color: var(--tss-muted);
}

html[data-tss-theme="dark"] .btn-outline-success {
    color: #86efac;
    border-color: #4ade80;
    background-color: var(--tss-surface) !important;
}

html[data-tss-theme="dark"] .btn-outline-success:hover {
    background: rgba(34, 197, 94, 0.14) !important;
    color: #bbf7d0;
    border-color: #86efac;
}

/* ============================================================
   커뮤니티 — 게시판 UI
   ============================================================ */
html[data-tss-theme="dark"] .bd-page {
    background: var(--bd-bg);
    color: var(--bd-text);
}

html[data-tss-theme="dark"] .bd-card,
html[data-tss-theme="dark"] .bd-page .naver-card.card,
html[data-tss-theme="dark"] .bd-table-panel,
html[data-tss-theme="dark"] .bd-comment-item,
html[data-tss-theme="dark"] .bd-post-content-card,
html[data-tss-theme="dark"] .bd-post-form-card {
    background: var(--bd-surface) !important;
    border-color: var(--bd-border) !important;
    color: var(--bd-text);
}

html[data-tss-theme="dark"] .bd-title,
html[data-tss-theme="dark"] .bd-page .naver-title.bd-title {
    color: var(--bd-text);
}

html[data-tss-theme="dark"] .bd-like-btn,
html[data-tss-theme="dark"] .bd-action-btn-ghost,
html[data-tss-theme="dark"] .bd-badge:not(.bd-badge-hot):not(.bd-badge-best) {
    background: var(--bd-surface) !important;
    color: var(--bd-muted);
    border-color: var(--bd-border);
}

html[data-tss-theme="dark"] .bd-like-btn:hover,
html[data-tss-theme="dark"] .bd-action-btn-ghost:hover {
    background: rgba(96, 165, 250, 0.08) !important;
    color: var(--bd-text);
}

html[data-tss-theme="dark"] .bd-table tbody tr:hover {
    background: rgba(96, 165, 250, 0.06);
}

html[data-tss-theme="dark"] .bd-poll-option {
    background: var(--bd-surface-muted, #172033);
    border-color: var(--bd-border);
    color: var(--bd-text);
}

html[data-tss-theme="dark"] .bd-poll-option:hover {
    background: var(--bd-surface) !important;
    border-color: #60a5fa;
}

html[data-tss-theme="dark"] .bd-page .comment-section {
    border-color: var(--bd-border);
}

/* ============================================================
   커뮤니티 — 요청접수·익명신문고
   ============================================================ */
html[data-tss-theme="dark"] .tickets-page,
html[data-tss-theme="dark"] .wb-page {
    background: var(--tss-bg);
    color: var(--tss-text);
}

html[data-tss-theme="dark"] .tickets-stat-card,
html[data-tss-theme="dark"] .wb-panel {
    background: var(--tss-surface) !important;
    border-color: var(--tss-border) !important;
    color: var(--tss-text);
}

html[data-tss-theme="dark"] .tickets-panel {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

html[data-tss-theme="dark"] .tickets-page-title,
html[data-tss-theme="dark"] .tickets-stat-card__value,
html[data-tss-theme="dark"] .wb-page-title {
    color: var(--tss-text);
}

html[data-tss-theme="dark"] .tickets-stat-card__label,
html[data-tss-theme="dark"] .wb-page-lead {
    color: var(--tss-muted);
}

/* ============================================================
   Bootstrap 공통 — 탭·페이지네이션·아코디언
   ============================================================ */
html[data-tss-theme="dark"] .nav-tabs {
    border-bottom-color: var(--tss-border);
}

html[data-tss-theme="dark"] .nav-tabs .nav-link {
    color: var(--tss-muted);
}

html[data-tss-theme="dark"] .nav-tabs .nav-link:hover {
    color: var(--tss-text);
    border-color: var(--tss-border);
}

html[data-tss-theme="dark"] .nav-tabs .nav-link.active {
    background: var(--tss-surface);
    color: #93c5fd;
    border-color: var(--tss-border) var(--tss-border) var(--tss-surface);
}

html[data-tss-theme="dark"] .page-link {
    background-color: var(--tss-surface);
    border-color: var(--tss-border);
    color: var(--tss-text);
}

html[data-tss-theme="dark"] .page-link:hover {
    background-color: rgba(96, 165, 250, 0.1);
    color: #93c5fd;
}

html[data-tss-theme="dark"] .page-item.active .page-link {
    background-color: #2563eb;
    border-color: #2563eb;
    color: #fff;
}

html[data-tss-theme="dark"] .page-item.disabled .page-link {
    background-color: var(--tss-surface-muted);
    color: var(--tss-muted);
}

html[data-tss-theme="dark"] .accordion-item {
    background: var(--tss-surface);
    border-color: var(--tss-border);
    color: var(--tss-text);
}

html[data-tss-theme="dark"] .accordion-button {
    background: var(--tss-surface-muted);
    color: var(--tss-text);
}

html[data-tss-theme="dark"] .accordion-button:not(.collapsed) {
    background: rgba(96, 165, 250, 0.12);
    color: #93c5fd;
}

html[data-tss-theme="dark"] .accordion-body {
    background: var(--tss-surface);
    color: var(--tss-text);
}

/* ============================================================
   익명 신문고 — 목록 카드
   ============================================================ */
html[data-tss-theme="dark"] .wb-post-card {
    background: var(--tss-surface) !important;
    border-color: var(--tss-border);
}

html[data-tss-theme="dark"] .wb-post-card:hover {
    border-color: #60a5fa;
    box-shadow: 0 2px 8px rgba(96, 165, 250, 0.12);
}

html[data-tss-theme="dark"] .wb-post-card__title a {
    color: #93c5fd;
}

html[data-tss-theme="dark"] .wb-post-card__title a:hover {
    color: #bfdbfe;
}

html[data-tss-theme="dark"] .wb-post-meta {
    color: var(--tss-muted);
}

html[data-tss-theme="dark"] .wb-post-card__footer {
    border-top-color: var(--tss-border);
}

html[data-tss-theme="dark"] .wb-section-title {
    color: var(--tss-text);
}

html[data-tss-theme="dark"] .wb-btn-ghost,
html[data-tss-theme="dark"] .wb-action-btn--primary,
html[data-tss-theme="dark"] .wb-action-btn--danger {
    background: var(--tss-surface);
    border-color: var(--tss-border);
    color: var(--tss-text);
}

html[data-tss-theme="dark"] .wb-action-btn--primary {
    color: #93c5fd;
    border-color: #60a5fa;
}

html[data-tss-theme="dark"] .wb-action-btn--danger {
    color: #fca5a5;
    border-color: #f87171;
}

/* ============================================================
   게시판 — naver 스타일·목록 테이블
   ============================================================ */
html[data-tss-theme="dark"] body.naver-style.bd-page,
html[data-tss-theme="dark"] .bd-page {
    background: var(--bd-bg) !important;
    color: var(--bd-text);
}

html[data-tss-theme="dark"] .bd-page .naver-card.card,
html[data-tss-theme="dark"] .bd-card,
html[data-tss-theme="dark"] .bd-table-panel,
html[data-tss-theme="dark"] .bd-post-content-card,
html[data-tss-theme="dark"] .bd-post-form-card {
    background: var(--bd-surface) !important;
    border-color: var(--bd-border) !important;
    color: var(--bd-text);
}

html[data-tss-theme="dark"] .bd-table thead th,
html[data-tss-theme="dark"] .bd-list-table thead th {
    background: var(--tss-surface-muted) !important;
    color: var(--tss-text) !important;
    border-color: var(--tss-border) !important;
}

html[data-tss-theme="dark"] .bd-table tbody td,
html[data-tss-theme="dark"] .bd-list-table tbody td,
html[data-tss-theme="dark"] .naver-table tbody td {
    background: var(--bd-surface) !important;
    color: var(--bd-text) !important;
    border-color: var(--bd-border) !important;
}

html[data-tss-theme="dark"] .bd-table tbody tr:hover td,
html[data-tss-theme="dark"] .bd-list-table tbody tr:hover td {
    background: rgba(96, 165, 250, 0.06) !important;
}

html[data-tss-theme="dark"] .bd-link {
    color: #93c5fd;
}

html[data-tss-theme="dark"] .bd-page .comment-section {
    background: var(--bd-surface);
    border-color: var(--bd-border);
}

html[data-tss-theme="dark"] .naver-card .card-body {
    color: var(--bd-text);
}

/* 게시글 본문·댓글 — detail.html 인라인 색·TinyMCE HTML 대응 */
html[data-tss-theme="dark"] body.naver-style.bd-page {
    background: var(--bd-bg) !important;
}

html[data-tss-theme="dark"] .bd-page .naver-title {
    color: var(--bd-text) !important;
}

html[data-tss-theme="dark"] .bd-page .naver-meta,
html[data-tss-theme="dark"] .bd-page .bd-post-meta {
    color: var(--bd-muted) !important;
}

html[data-tss-theme="dark"] .bd-page .breadcrumb {
    background: var(--bd-surface) !important;
    color: var(--bd-muted);
}

html[data-tss-theme="dark"] .bd-page .breadcrumb-item a {
    color: #93c5fd;
}

html[data-tss-theme="dark"] .bd-page .breadcrumb-item.active {
    color: var(--bd-muted);
}

html[data-tss-theme="dark"] .bd-page .naver-content,
html[data-tss-theme="dark"] .bd-page .comment-content {
    color: var(--bd-text) !important;
}

html[data-tss-theme="dark"] .bd-page .naver-content :is(p, li, ol, ul, td, th, blockquote, figcaption, dd, dt, pre, div, span),
html[data-tss-theme="dark"] .bd-page .comment-content :is(p, li, ol, ul, td, th, blockquote, div, span) {
    color: var(--bd-text) !important;
}

html[data-tss-theme="dark"] .bd-page .naver-content :is(h1, h2, h3, h4, h5, h6, strong, b),
html[data-tss-theme="dark"] .bd-page .comment-content :is(h1, h2, h3, h4, h5, h6, strong, b) {
    color: var(--bd-text) !important;
}

/* TinyMCE 등 에디터 인라인 color 스타일 덮어쓰기 */
html[data-tss-theme="dark"] .bd-page .naver-content [style*="color"],
html[data-tss-theme="dark"] .bd-page .comment-content [style*="color"] {
    color: var(--bd-text) !important;
}

html[data-tss-theme="dark"] .bd-page .naver-content a:not(.btn),
html[data-tss-theme="dark"] .bd-page .comment-content a:not(.btn) {
    color: #93c5fd !important;
}

html[data-tss-theme="dark"] .bd-page .comment-author {
    color: #93c5fd !important;
}

html[data-tss-theme="dark"] .bd-page .bd-post-body-divider {
    border-color: var(--bd-border) !important;
    opacity: 1;
}

/* 댓글 카드·버튼 */
html[data-tss-theme="dark"] .bd-page .bd-comment {
    background: var(--bd-surface) !important;
    border-color: var(--bd-border) !important;
    color: var(--bd-text);
}

html[data-tss-theme="dark"] .bd-page .bd-comment.is-level-1 {
    background: rgba(96, 165, 250, 0.06) !important;
}

html[data-tss-theme="dark"] .bd-page .bd-comment.is-level-2 {
    background: rgba(251, 191, 36, 0.08) !important;
}

html[data-tss-theme="dark"] .bd-page .bd-comment-btn {
    background: var(--tss-surface-muted, #172033) !important;
    border-color: var(--bd-border) !important;
    color: var(--bd-text) !important;
    box-shadow: none !important;
}

html[data-tss-theme="dark"] .bd-page .bd-comment-btn:hover,
html[data-tss-theme="dark"] .bd-page .bd-comment-btn:focus {
    background: rgba(96, 165, 250, 0.1) !important;
    border-color: #475569 !important;
    color: var(--bd-text) !important;
}

html[data-tss-theme="dark"] .bd-page .bd-comment-btn-primary {
    background: rgba(96, 165, 250, 0.14) !important;
    border-color: rgba(96, 165, 250, 0.35) !important;
    color: #93c5fd !important;
}

html[data-tss-theme="dark"] .bd-page .bd-comment-btn-primary:hover,
html[data-tss-theme="dark"] .bd-page .bd-comment-btn-primary:focus {
    background: rgba(96, 165, 250, 0.22) !important;
    color: #bfdbfe !important;
}

html[data-tss-theme="dark"] .bd-page .bd-comment-btn-warning {
    background: rgba(251, 191, 36, 0.12) !important;
    border-color: rgba(251, 191, 36, 0.35) !important;
    color: #fcd34d !important;
}

html[data-tss-theme="dark"] .bd-page .bd-comment-btn-success {
    background: rgba(34, 197, 94, 0.12) !important;
    border-color: rgba(34, 197, 94, 0.35) !important;
    color: #86efac !important;
}

html[data-tss-theme="dark"] .bd-page .bd-comment-btn-danger:hover,
html[data-tss-theme="dark"] .bd-page .bd-comment-btn-danger:focus {
    background: rgba(248, 113, 113, 0.14) !important;
    border-color: rgba(248, 113, 113, 0.35) !important;
    color: #fca5a5 !important;
}

html[data-tss-theme="dark"] .bd-page .bd-comment-actions .bd-like-btn.is-liked {
    background: rgba(248, 113, 113, 0.14) !important;
    border-color: rgba(248, 113, 113, 0.35) !important;
    color: #fca5a5 !important;
}

html[data-tss-theme="dark"] .bd-page .comment-section .form-control {
    background-color: #0f172a;
    color: var(--bd-text);
    border-color: var(--bd-border);
}

html[data-tss-theme="dark"] .bd-page .bd-comment-reply::before,
html[data-tss-theme="dark"] .bd-page .bd-comment-replies::before {
    background: rgba(148, 163, 184, 0.25);
}

/* ============================================================
   요청접수 — 폼·검색·댓글 패널
   ============================================================ */
html[data-tss-theme="dark"] .tickets-search,
html[data-tss-theme="dark"] .tickets-form {
    background: var(--tss-surface) !important;
    border-color: var(--tss-border) !important;
    color: var(--tss-text);
}

html[data-tss-theme="dark"] .tickets-page-title {
    color: var(--tss-text);
}

html[data-tss-theme="dark"] .tickets-stat-card__label {
    color: var(--tss-muted);
}

html[data-tss-theme="dark"] .tickets-stat-card__value {
    color: var(--tss-text);
}

html[data-tss-theme="dark"] .tickets-page .comment {
    background: var(--tss-surface) !important;
    border-bottom-color: var(--tss-border) !important;
    color: var(--tss-text);
}

html[data-tss-theme="dark"] .tickets-page .comment .author {
    color: var(--tss-text);
}

html[data-tss-theme="dark"] .tickets-page .comment .date {
    color: var(--tss-muted);
}

html[data-tss-theme="dark"] .tickets-table tbody td.tickets-actions-cell {
    background: var(--tss-surface);
}

html[data-tss-theme="dark"] .tickets-table tbody tr:hover td.tickets-actions-cell {
    background: rgba(96, 165, 250, 0.06);
}

html[data-tss-theme="dark"] .tickets-table thead th.col-actions {
    background: var(--tss-surface-muted);
}

/* ============================================================
   차량 예약 — 캘린더·범례·뷰 토글
   ============================================================ */
html[data-tss-theme="dark"] .container.py-4 > h2,
html[data-tss-theme="dark"] .container > h2 {
    color: var(--tss-text);
}

html[data-tss-theme="dark"] .btn-view:not(.active) {
    background: var(--tss-surface) !important;
    color: #93c5fd !important;
    border-color: #60a5fa !important;
}

html[data-tss-theme="dark"] .btn-view.active {
    background: #2563eb !important;
    color: #fff !important;
}

html[data-tss-theme="dark"] .form-section {
    background: var(--tss-surface);
    border-color: var(--tss-border);
    color: var(--tss-text);
}

html[data-tss-theme="dark"] .form-section h6 {
    color: var(--tss-text);
    border-bottom-color: var(--tss-border);
}

/* FullCalendar 다크모드 */
html[data-tss-theme="dark"] .fc {
    --fc-border-color: var(--tss-border);
    --fc-page-bg-color: var(--tss-surface);
    --fc-neutral-bg-color: var(--tss-surface-muted);
    --fc-neutral-text-color: var(--tss-muted);
    --fc-today-bg-color: rgba(96, 165, 250, 0.12);
    --fc-list-event-hover-bg-color: rgba(96, 165, 250, 0.1);
}

html[data-tss-theme="dark"] .fc .fc-scrollgrid,
html[data-tss-theme="dark"] .fc .fc-scrollgrid-section-body td,
html[data-tss-theme="dark"] .fc .fc-daygrid-day-frame,
html[data-tss-theme="dark"] .fc .fc-timegrid-slot,
html[data-tss-theme="dark"] .fc .fc-list-day-cushion,
html[data-tss-theme="dark"] .fc .fc-list-event {
    background: var(--tss-surface);
}

html[data-tss-theme="dark"] .fc .fc-col-header-cell-cushion,
html[data-tss-theme="dark"] .fc .fc-daygrid-day-number,
html[data-tss-theme="dark"] .fc .fc-toolbar-title,
html[data-tss-theme="dark"] .fc .fc-list-event-title,
html[data-tss-theme="dark"] .fc .fc-list-event-time {
    color: var(--tss-text);
}

html[data-tss-theme="dark"] .fc .fc-button-primary {
    background-color: #2563eb;
    border-color: #2563eb;
}

html[data-tss-theme="dark"] .fc .fc-button-primary:not(:disabled).fc-button-active,
html[data-tss-theme="dark"] .fc .fc-button-primary:not(:disabled):active {
    background-color: #1d4ed8;
    border-color: #1d4ed8;
}

html[data-tss-theme="dark"] .fc .fc-button-primary:disabled {
    background-color: var(--tss-surface-muted);
    border-color: var(--tss-border);
    color: var(--tss-muted);
}

html[data-tss-theme="dark"] #calendar .fc-theme-standard td,
html[data-tss-theme="dark"] #calendar .fc-theme-standard th {
    border-color: var(--tss-border);
}

html[data-tss-theme="dark"] .modal-content .list-group-item {
    background: var(--tss-surface);
    color: var(--tss-text);
    border-color: var(--tss-border);
}

/* ============================================================
   §6 Refix — layout 미사용 페이지 · TS 메일 · Super Admin 잔여
   ============================================================ */

/* 독립 페이지 — 테마 토글 고정 위치 */
.tss-standalone-toolbar {
    position: fixed;
    top: 1rem;
    right: 1rem;
    z-index: 1050;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

html[data-tss-theme="dark"] .profile-lang-switch {
    gap: 0.75rem;
    align-items: center;
}

/* 로그인 · 회원가입 · 프로필 · 접근거부 */
html[data-tss-theme="dark"] .login-container,
html[data-tss-theme="dark"] .register-container,
html[data-tss-theme="dark"] .profile-card,
html[data-tss-theme="dark"] .denied-container {
    background: var(--tss-surface) !important;
    border-color: var(--tss-border) !important;
    color: var(--tss-text);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.35) !important;
}

html[data-tss-theme="dark"] .login-title,
html[data-tss-theme="dark"] .profile-card h2 {
    color: var(--tss-text) !important;
}

html[data-tss-theme="dark"] .login-subtitle,
html[data-tss-theme="dark"] .login-footer-text {
    color: var(--tss-muted) !important;
}

html[data-tss-theme="dark"] .profile-card .form-control[readonly],
html[data-tss-theme="dark"] .profile-card .form-control[disabled] {
    background: var(--tss-surface-muted) !important;
    color: var(--tss-muted) !important;
}

/* 오류 페이지 */
html[data-tss-theme="dark"] .error-container {
    background: linear-gradient(135deg, #0f172a 0%, #1e1b4b 100%) !important;
}

html[data-tss-theme="dark"] .error-card {
    background: var(--tss-surface) !important;
    color: var(--tss-text);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.35) !important;
}

html[data-tss-theme="dark"] .error-message,
html[data-tss-theme="dark"] .error-card details summary {
    color: var(--tss-muted) !important;
}

html[data-tss-theme="dark"] .error-code,
html[data-tss-theme="dark"] .error-icon {
    color: #fca5a5 !important;
}

html[data-tss-theme="dark"] .error-card details .bg-light,
html[data-tss-theme="dark"] .error-card pre {
    background: var(--tss-surface-muted) !important;
    color: var(--tss-text) !important;
    border: 1px solid var(--tss-border);
}

/* Super Admin — alert-card · 패널 잔여 */
html[data-tss-theme="dark"] .super-admin-main .alert-card.error {
    background-color: var(--tss-alert-danger-bg) !important;
    color: var(--tss-alert-danger-text) !important;
    border-left-color: #f87171;
}

html[data-tss-theme="dark"] .super-admin-main .alert-card.warning {
    background-color: var(--tss-alert-warning-bg) !important;
    color: var(--tss-alert-warning-text) !important;
    border-left-color: #fbbf24;
}

html[data-tss-theme="dark"] .super-admin-main .list-group-item,
html[data-tss-theme="dark"] .super-admin-main .nav-tabs .nav-link {
    background: transparent;
    color: var(--tss-muted);
    border-color: var(--tss-border);
}

html[data-tss-theme="dark"] .super-admin-main .nav-tabs .nav-link.active {
    background: var(--tss-surface);
    color: var(--tss-text);
    border-color: var(--tss-border) var(--tss-border) var(--tss-surface);
}

html[data-tss-theme="dark"] .super-admin-main [style*="background: #fff"],
html[data-tss-theme="dark"] .super-admin-main [style*="background:#fff"],
html[data-tss-theme="dark"] .super-admin-main [style*="background: white"],
html[data-tss-theme="dark"] .super-admin-main [style*="background:#ffffff"],
html[data-tss-theme="dark"] .super-admin-main [style*="background: #ffffff"] {
    background: var(--tss-surface) !important;
    color: var(--tss-text) !important;
}

/* TS 메일 · 코드유형 · CRM · 거래처 — 페이지 inline style 공통 덮어쓰기 */
html[data-tss-theme="dark"] body.app #main .code-box,
html[data-tss-theme="dark"] body.app #main .mail-box,
html[data-tss-theme="dark"] body.app #main .template-preview-box,
html[data-tss-theme="dark"] body.app #main .source-radio-wrap,
html[data-tss-theme="dark"] body.app #main .ux-guide,
html[data-tss-theme="dark"] body.app #main .template-helper-box,
html[data-tss-theme="dark"] body.app #main .compose-section,
html[data-tss-theme="dark"] body.app #main .contact-apply-toolbar,
html[data-tss-theme="dark"] body.app #main .lookup-results,
html[data-tss-theme="dark"] body.app #main .ab-dual-wrap,
html[data-tss-theme="dark"] body.app #main .ab-dual-col,
html[data-tss-theme="dark"] body.app #main .ab-dual-col__header,
html[data-tss-theme="dark"] body.app #main .mn-form-section,
html[data-tss-theme="dark"] body.app #main .note-content-wrap,
html[data-tss-theme="dark"] body.app #main .party-info-panel,
html[data-tss-theme="dark"] body.app #main .party-contact-panel,
html[data-tss-theme="dark"] body.app #main .party-duplicate-item,
html[data-tss-theme="dark"] body.app #main .party-duplicate-card,
html[data-tss-theme="dark"] body.app #main .attachment-item {
    background: var(--tss-surface) !important;
    border-color: var(--tss-border) !important;
    color: var(--tss-text);
}

html[data-tss-theme="dark"] body.app #main .code-box .code-box-header,
html[data-tss-theme="dark"] body.app #main .mail-box .mail-box-header,
html[data-tss-theme="dark"] body.app #main .template-preview-title,
html[data-tss-theme="dark"] body.app #main .compose-section-title {
    border-bottom-color: var(--tss-border) !important;
    color: var(--tss-text) !important;
}

html[data-tss-theme="dark"] body.app #main .mail-box-body,
html[data-tss-theme="dark"] body.app #main .code-box-body,
html[data-tss-theme="dark"] body.app #main .template-preview-body,
html[data-tss-theme="dark"] body.app #main .mail-subtitle,
html[data-tss-theme="dark"] body.app #main .ux-guide,
html[data-tss-theme="dark"] body.app #main .pre-wrap-small {
    color: var(--tss-text) !important;
}

html[data-tss-theme="dark"] body.app #main .pre-wrap-small {
    background: var(--tss-surface-muted) !important;
    border-color: var(--tss-border) !important;
}

html[data-tss-theme="dark"] body.app #main .lookup-item {
    border-bottom-color: var(--tss-border);
    color: var(--tss-text);
}

html[data-tss-theme="dark"] body.app #main .lookup-item:hover {
    background: rgba(96, 165, 250, 0.08) !important;
}

html[data-tss-theme="dark"] body.app #main .selected-badge,
html[data-tss-theme="dark"] body.app #main .rc-chip,
html[data-tss-theme="dark"] body.app #main .selection-count-badge {
    background: rgba(96, 165, 250, 0.14) !important;
    color: #93c5fd !important;
    border-color: rgba(96, 165, 250, 0.35) !important;
}

html[data-tss-theme="dark"] body.app #main .validation-chip.ok {
    background: rgba(34, 197, 94, 0.14) !important;
    color: #86efac !important;
    border-color: rgba(34, 197, 94, 0.35) !important;
}

html[data-tss-theme="dark"] body.app #main .validation-chip.warn {
    background: rgba(248, 113, 113, 0.14) !important;
    color: #fca5a5 !important;
    border-color: rgba(248, 113, 113, 0.35) !important;
}

/* TS 메일 — 수신자 설정 모달 (--ab-* 페이지 변수 다크 매핑) */
html[data-tss-theme="dark"] #modalRecipientConfig {
    --ab-bg: var(--tss-bg);
    --ab-surface: var(--tss-surface);
    --ab-border: var(--tss-border);
    --ab-text: var(--tss-text);
    --ab-muted: var(--tss-muted);
    --ab-accent-soft: rgba(96, 165, 250, 0.14);
}

html[data-tss-theme="dark"] #modalRecipientConfig .modal-body {
    background: var(--tss-bg) !important;
}

html[data-tss-theme="dark"] #modalRecipientConfig .modal-header,
html[data-tss-theme="dark"] #modalRecipientConfig .modal-footer,
html[data-tss-theme="dark"] #modalRecipientConfig .card-header,
html[data-tss-theme="dark"] #modalRecipientConfig .alert.alert-light {
    background: var(--tss-surface) !important;
    border-color: var(--tss-border) !important;
    color: var(--tss-text);
}

html[data-tss-theme="dark"] #modalRecipientConfig .nav-tabs .nav-link {
    color: var(--tss-muted);
}

html[data-tss-theme="dark"] #modalRecipientConfig .nav-tabs .nav-link.active {
    color: var(--tss-text) !important;
    background: var(--tss-surface) !important;
    border-color: var(--tss-border) var(--tss-border) var(--tss-surface) !important;
}

/* TSS 권한 관리 — TS/DOC 3-Tier 카드 (super-admin) */
html[data-tss-theme="dark"] .super-admin-main .tss-perm-panel,
html[data-tss-theme="dark"] .super-admin-main .tss-user-panel,
html[data-tss-theme="dark"] .super-admin-main .ts-tier-card,
html[data-tss-theme="dark"] .super-admin-main .org-tree-container,
html[data-tss-theme="dark"] .super-admin-main .tss-meta-block,
html[data-tss-theme="dark"] .super-admin-main .tss-user-chip {
    background: var(--tss-surface) !important;
    border-color: var(--tss-border) !important;
    color: var(--tss-text);
}

html[data-tss-theme="dark"] .super-admin-main .tss-perm-panel .card-header,
html[data-tss-theme="dark"] .super-admin-main .tss-user-panel .card-header {
    background: var(--tss-surface-muted) !important;
    border-bottom-color: var(--tss-border) !important;
    color: var(--tss-text) !important;
}

html[data-tss-theme="dark"] .super-admin-main .ts-tier-card.active-tier {
    background: rgba(96, 165, 250, 0.12) !important;
    border-color: #60a5fa !important;
    box-shadow: 0 0 0 1px rgba(96, 165, 250, 0.2) !important;
}

html[data-tss-theme="dark"] .super-admin-main .ts-tier-card .text-muted,
html[data-tss-theme="dark"] .super-admin-main .dash-perm-section-title {
    color: var(--tss-muted) !important;
}

html[data-tss-theme="dark"] .super-admin-main .ts-tier-card strong,
html[data-tss-theme="dark"] .super-admin-main .ts-tier-card .fw-bold {
    color: var(--tss-text) !important;
}

html[data-tss-theme="dark"] .super-admin-main .dash-perm-action-bar {
    background: var(--tss-surface-muted) !important;
    border-top-color: var(--tss-border) !important;
}

html[data-tss-theme="dark"] .super-admin-main .org-tree-dept-row:hover,
html[data-tss-theme="dark"] .super-admin-main .org-tree-user-row:hover {
    background: rgba(96, 165, 250, 0.08) !important;
}

html[data-tss-theme="dark"] .super-admin-main .org-tree-dept-row,
html[data-tss-theme="dark"] .super-admin-main .org-tree-user-row {
    border-bottom-color: var(--tss-border);
    color: var(--tss-text);
}

html[data-tss-theme="dark"] .super-admin-main .org-tree-toggle {
    background: var(--tss-surface-muted) !important;
    border-color: var(--tss-border) !important;
    color: var(--tss-text) !important;
}

html[data-tss-theme="dark"] .super-admin-main .org-held-chip {
    background: var(--tss-surface-muted) !important;
    border-color: var(--tss-border) !important;
    color: var(--tss-text) !important;
}

/* TS 권한 관리기 (ts-admin /admin/ts/permissions) */
html[data-tss-theme="dark"] body.app #main .tier-card,
html[data-tss-theme="dark"] body.app #main .user-search-box,
html[data-tss-theme="dark"] body.app #main #searchResultList,
html[data-tss-theme="dark"] body.app #main .permission-info-card {
    background: var(--tss-surface) !important;
    border-color: var(--tss-border) !important;
    color: var(--tss-text);
}

html[data-tss-theme="dark"] body.app #main .tier-card.active {
    background: rgba(96, 165, 250, 0.12) !important;
    border-color: #60a5fa !important;
}

html[data-tss-theme="dark"] body.app #main .tier-desc,
html[data-tss-theme="dark"] body.app #main .tier-details {
    color: var(--tss-muted) !important;
}

html[data-tss-theme="dark"] body.app #main .tier-title {
    color: var(--tss-text) !important;
}

html[data-tss-theme="dark"] body.app #main .search-result-item {
    border-bottom-color: var(--tss-border);
    color: var(--tss-text);
}

html[data-tss-theme="dark"] body.app #main .search-result-item:hover {
    background: rgba(96, 165, 250, 0.08) !important;
}

/* TS 모바일 햄버거 버튼 */
html[data-tss-theme="dark"] body.app .navbar-toggler {
    background: var(--tss-surface) !important;
    border-color: var(--tss-border) !important;
}

html[data-tss-theme="dark"] body.app .navbar-toggler:hover {
    background: var(--tss-surface-muted) !important;
}

/* TS 대시보드 — 기간 선택 · KPI (inline style 보정) */
html[data-tss-theme="dark"] body.app #main .period-btn,
html[data-tss-theme="dark"] body.app #main .sr-quick-select-btn {
    background: var(--tss-surface) !important;
    border-color: var(--tss-border) !important;
    color: var(--tss-muted) !important;
}

html[data-tss-theme="dark"] body.app #main .period-btn:hover,
html[data-tss-theme="dark"] body.app #main .sr-quick-select-btn:hover,
html[data-tss-theme="dark"] body.app #main .period-btn.active,
html[data-tss-theme="dark"] body.app #main .sr-quick-select-btn.active {
    background: #2563eb !important;
    border-color: #2563eb !important;
    color: #fff !important;
}

html[data-tss-theme="dark"] body.app #main .custom-date-range {
    background: var(--tss-surface) !important;
    border: 1px solid var(--tss-border);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.28) !important;
}

html[data-tss-theme="dark"] body.app #main .dashboard-title {
    color: var(--tss-text) !important;
}

html[data-tss-theme="dark"] body.app #main .deal-type-tabs .nav-link {
    color: var(--tss-muted);
}

html[data-tss-theme="dark"] body.app #main .deal-type-tabs .nav-link.active,
html[data-tss-theme="dark"] body.app #main .deal-type-tabs .nav-link:hover {
    color: #93c5fd;
}

html[data-tss-theme="dark"] body.app #main .kpi-card .card-title,
html[data-tss-theme="dark"] body.app #main .kpi-card .card-change {
    color: var(--tss-muted) !important;
}

html[data-tss-theme="dark"] body.app #main .kpi-card .card-value {
    color: var(--tss-text) !important;
}

/* TS 기준정보·CRM — 페이지 inline #f8f9fa 박스 공통 */
html[data-tss-theme="dark"] body.app #main .year-select-area,
html[data-tss-theme="dark"] body.app #main .total-row,
html[data-tss-theme="dark"] body.app #main .note-content,
html[data-tss-theme="dark"] body.app #main .timeline-note-input .card,
html[data-tss-theme="dark"] body.app #main .timeline-note-input .card-body {
    background-color: var(--tss-surface-muted) !important;
    color: var(--tss-text) !important;
    border-color: var(--tss-border);
}

html[data-tss-theme="dark"] body.app #main #yearSummary,
html[data-tss-theme="dark"] body.app #main .year-select-area .text-muted,
html[data-tss-theme="dark"] body.app #main .year-select-area .form-label {
    color: var(--tss-muted) !important;
}

html[data-tss-theme="dark"] body.app #main .year-select-area .form-label.fw-bold,
html[data-tss-theme="dark"] body.app #main .card-body .form-label.fw-bold {
    color: var(--tss-text) !important;
}

html[data-tss-theme="dark"] body.app #main .total-row td,
html[data-tss-theme="dark"] body.app #main .total-row th {
    color: var(--tss-text) !important;
    font-weight: 700;
}

html[data-tss-theme="dark"] body.app #main [style*="background-color: #f8f9fa"],
html[data-tss-theme="dark"] body.app #main [style*="background-color:#f8f9fa"],
html[data-tss-theme="dark"] body.app #main [style*="background: #f8f9fa"],
html[data-tss-theme="dark"] body.app #main [style*="background:#f8f9fa"] {
    background-color: var(--tss-surface-muted) !important;
    color: var(--tss-text) !important;
}

/* ============================================================
   문서함 관리 (슈퍼관리자) — categories / permissions
   페이지·fragment inline #fff 가 tss-theme 뒤 로드 → !important
   ============================================================ */
html[data-tss-theme="dark"] .super-admin-main .doc-perm-page {
    --doc-perm-border: var(--tss-border);
    --doc-perm-surface: var(--tss-surface-muted);
}

/* 패널·2단 레이아웃 — 흰 박스 제거 */
html[data-tss-theme="dark"] .super-admin-main .doc-fm-panel,
html[data-tss-theme="dark"] .super-admin-main .doc-admin-split,
html[data-tss-theme="dark"] .super-admin-main .doc-admin-split-right,
html[data-tss-theme="dark"] .super-admin-main .doc-perm-workspace-card,
html[data-tss-theme="dark"] .super-admin-main .doc-perm-workspace-card > .card-body,
html[data-tss-theme="dark"] .super-admin-main .doc-org-panel,
html[data-tss-theme="dark"] .super-admin-main .org-tree-container,
html[data-tss-theme="dark"] .super-admin-main .granted-snapshot-wrap,
html[data-tss-theme="dark"] .super-admin-main .search-result-list,
html[data-tss-theme="dark"] .super-admin-main .dept-tree-panel,
html[data-tss-theme="dark"] .super-admin-main .doc-fm-details[open],
html[data-tss-theme="dark"] .super-admin-main .doc-fm-details-body,
html[data-tss-theme="dark"] .super-admin-main .doc-perm-check-card,
html[data-tss-theme="dark"] .super-admin-main .doc-wf-step:not(.is-active) {
    background: var(--tss-surface) !important;
    border-color: var(--tss-border) !important;
    color: var(--tss-text);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.22);
}

/* muted 영역 (헤더·좌측 트리·폼 박스) */
html[data-tss-theme="dark"] .super-admin-main .doc-admin-split-left,
html[data-tss-theme="dark"] .super-admin-main .doc-perm-page .doc-admin-split-left,
html[data-tss-theme="dark"] .super-admin-main .doc-fm-panel-header,
html[data-tss-theme="dark"] .super-admin-main .doc-admin-split-left .doc-fm-panel-header,
html[data-tss-theme="dark"] .super-admin-main .doc-perm-right-header,
html[data-tss-theme="dark"] .super-admin-main .doc-perm-hints,
html[data-tss-theme="dark"] .super-admin-main .doc-perm-workspace-card > .card-header,
html[data-tss-theme="dark"] .super-admin-main .doc-org-panel .card-header,
html[data-tss-theme="dark"] .super-admin-main .doc-org-action-bar,
html[data-tss-theme="dark"] .super-admin-main .doc-admin-workflow,
html[data-tss-theme="dark"] .super-admin-main .doc-cat-setup-add,
html[data-tss-theme="dark"] .super-admin-main .perm-grant-panel,
html[data-tss-theme="dark"] .super-admin-main .doc-fm-form-wrap,
html[data-tss-theme="dark"] .super-admin-main .doc-fm-details:not([open]),
html[data-tss-theme="dark"] .super-admin-main .selected-grantee-bar,
html[data-tss-theme="dark"] .super-admin-main .search-result-section,
html[data-tss-theme="dark"] .super-admin-main .doc-perm-empty-panel {
    background: var(--tss-surface-muted) !important;
    border-color: var(--tss-border) !important;
    color: var(--tss-text);
}

html[data-tss-theme="dark"] .super-admin-main .doc-cat-setup-edit {
    background: rgba(96, 165, 250, 0.12) !important;
    border-color: rgba(96, 165, 250, 0.35) !important;
    color: var(--tss-text);
}

html[data-tss-theme="dark"] .super-admin-main .doc-fm-subfolder-panel {
    background: var(--tss-surface-muted) !important;
    border-color: rgba(96, 165, 250, 0.35) !important;
}

html[data-tss-theme="dark"] .super-admin-main .doc-admin-workflow {
    background: linear-gradient(135deg, var(--tss-surface-muted) 0%, rgba(96, 165, 250, 0.08) 100%) !important;
}

/* 제목·본문 글자색 */
html[data-tss-theme="dark"] .super-admin-main .doc-fm-title,
html[data-tss-theme="dark"] .super-admin-main .doc-perm-right-header .doc-perm-cat-title,
html[data-tss-theme="dark"] .super-admin-main .doc-perm-col-label,
html[data-tss-theme="dark"] .super-admin-main .doc-perm-hints-summary,
html[data-tss-theme="dark"] .super-admin-main .doc-fm-details-summary,
html[data-tss-theme="dark"] .super-admin-main .doc-perm-check-label,
html[data-tss-theme="dark"] .super-admin-main .doc-perm-matrix-table .perm-target-name {
    color: var(--tss-text) !important;
}

html[data-tss-theme="dark"] .super-admin-main .doc-fm-desc,
html[data-tss-theme="dark"] .super-admin-main .doc-fm-code,
html[data-tss-theme="dark"] .super-admin-main .doc-fm-stat,
html[data-tss-theme="dark"] .super-admin-main .doc-fm-stat-inline,
html[data-tss-theme="dark"] .super-admin-main .doc-fm-tree-hint,
html[data-tss-theme="dark"] .super-admin-main .doc-perm-hints-body,
html[data-tss-theme="dark"] .super-admin-main .doc-admin-split-left-label,
html[data-tss-theme="dark"] .super-admin-main .doc-wf-desc,
html[data-tss-theme="dark"] .super-admin-main .doc-perm-matrix-table .perm-target-sub,
html[data-tss-theme="dark"] .super-admin-main .granted-snapshot-table tbody td.col-snap-dept,
html[data-tss-theme="dark"] .super-admin-main .granted-snapshot-table tbody td.col-snap-target .snap-type-tag {
    color: var(--tss-muted) !important;
}

html[data-tss-theme="dark"] .super-admin-main .doc-wf-step {
    color: var(--tss-muted);
}

html[data-tss-theme="dark"] .super-admin-main .doc-wf-step.is-active {
    background: rgba(96, 165, 250, 0.14) !important;
    border-color: rgba(96, 165, 250, 0.45) !important;
    color: #93c5fd !important;
}

html[data-tss-theme="dark"] .super-admin-main .doc-wf-step.is-active .doc-wf-desc {
    color: var(--tss-muted) !important;
}

/* 폴더 트리·노드 */
html[data-tss-theme="dark"] .super-admin-main .doc-folder-item {
    color: var(--tss-text);
}

html[data-tss-theme="dark"] .super-admin-main .doc-folder-item:hover {
    background: rgba(96, 165, 250, 0.08) !important;
    border-color: var(--tss-border) !important;
}

html[data-tss-theme="dark"] .super-admin-main .doc-folder-item.active {
    background: rgba(96, 165, 250, 0.16) !important;
    border-color: rgba(96, 165, 250, 0.45) !important;
    color: #93c5fd !important;
}

html[data-tss-theme="dark"] .super-admin-main .doc-folder-item.active .fm-picker-icon {
    background: rgba(96, 165, 250, 0.22) !important;
    color: #93c5fd !important;
}

html[data-tss-theme="dark"] .super-admin-main .doc-folder-item:not(.active) .fm-picker-icon {
    background: var(--tss-surface-muted) !important;
    color: var(--tss-muted) !important;
}

html[data-tss-theme="dark"] .super-admin-main .doc-fm-node-row:hover,
html[data-tss-theme="dark"] .super-admin-main .doc-fm-node.is-root > .doc-fm-node-row {
    background: rgba(96, 165, 250, 0.08) !important;
    border-color: var(--tss-border) !important;
}

html[data-tss-theme="dark"] .super-admin-main .doc-fm-node-row.is-selected {
    background: rgba(96, 165, 250, 0.16) !important;
    border-color: rgba(96, 165, 250, 0.45) !important;
}

html[data-tss-theme="dark"] .super-admin-main .doc-fm-icon.is-root {
    background: rgba(96, 165, 250, 0.22) !important;
    color: #93c5fd !important;
}

html[data-tss-theme="dark"] .super-admin-main .doc-fm-icon.is-child {
    background: var(--tss-surface-muted) !important;
    color: var(--tss-muted) !important;
}

html[data-tss-theme="dark"] .super-admin-main .doc-cat-setup-table tbody tr.is-selected {
    background: rgba(96, 165, 250, 0.14) !important;
}

/* 조직도 트리 */
html[data-tss-theme="dark"] .super-admin-main .org-tree-dept-row,
html[data-tss-theme="dark"] .super-admin-main .org-tree-user-row {
    border-bottom-color: var(--tss-border) !important;
    color: var(--tss-text);
}

html[data-tss-theme="dark"] .super-admin-main .org-tree-dept-row:hover {
    background: rgba(96, 165, 250, 0.08) !important;
}

html[data-tss-theme="dark"] .super-admin-main .org-tree-dept-row.dept-grant-target,
html[data-tss-theme="dark"] .super-admin-main .org-tree-user-row.selected-user {
    background: rgba(96, 165, 250, 0.16) !important;
    color: var(--tss-text) !important;
    box-shadow: inset 3px 0 0 #60a5fa;
}

html[data-tss-theme="dark"] .super-admin-main .org-tree-user-row:hover,
html[data-tss-theme="dark"] .super-admin-main .search-result-item:hover {
    background: rgba(96, 165, 250, 0.1) !important;
}

html[data-tss-theme="dark"] .super-admin-main .org-tree-toggle,
html[data-tss-theme="dark"] .super-admin-main .doc-fm-tree-toggle {
    background: var(--tss-surface-muted) !important;
    border-color: var(--tss-border) !important;
    color: var(--tss-text) !important;
}

html[data-tss-theme="dark"] .super-admin-main .org-tree-toggle:hover,
html[data-tss-theme="dark"] .super-admin-main .doc-fm-tree-toggle:hover {
    background: rgba(96, 165, 250, 0.12) !important;
}

html[data-tss-theme="dark"] .super-admin-main .doc-perm-toolbar,
html[data-tss-theme="dark"] .super-admin-main .org-held-preview,
html[data-tss-theme="dark"] .super-admin-main #docOrgPermList {
    background: var(--tss-surface-muted) !important;
    border-color: var(--tss-border) !important;
    color: var(--tss-text);
}

html[data-tss-theme="dark"] .super-admin-main #docOrgGrantedPanel {
    background: var(--tss-surface) !important;
    border-color: var(--tss-border) !important;
    color: var(--tss-text);
}

html[data-tss-theme="dark"] .super-admin-main .doc-perm-matrix-table thead th {
    background: var(--tss-surface-muted) !important;
    color: var(--tss-muted) !important;
    border-color: var(--tss-border) !important;
}

html[data-tss-theme="dark"] .super-admin-main .doc-perm-held-tag {
    color: #4ade80 !important;
}

/* 권한 체크 카드 — 선택 시 글자 안 보이던 문제 */
html[data-tss-theme="dark"] .super-admin-main .doc-perm-check-card:has(.doc-org-perm-check:checked) {
    background: rgba(96, 165, 250, 0.18) !important;
    border-color: #60a5fa !important;
    color: var(--tss-text) !important;
}

html[data-tss-theme="dark"] .super-admin-main .selected-grantee-chip {
    background: rgba(96, 165, 250, 0.14) !important;
    border-color: rgba(96, 165, 250, 0.35) !important;
    color: var(--tss-text) !important;
}

/* 부여 현황·힌트 (녹색 박스 가독성) */
html[data-tss-theme="dark"] .super-admin-main .granted-snapshot-hint,
html[data-tss-theme="dark"] .super-admin-main .permission-hint {
    background: rgba(34, 197, 94, 0.12) !important;
    border-left-color: #4ade80 !important;
    color: #86efac !important;
}

html[data-tss-theme="dark"] .super-admin-main .granted-snapshot-table thead th {
    background: var(--tss-surface-muted) !important;
    color: var(--tss-muted) !important;
    border-color: var(--tss-border) !important;
}

html[data-tss-theme="dark"] .super-admin-main .granted-snapshot-table tbody td {
    color: var(--tss-text);
    border-color: var(--tss-border);
}

html[data-tss-theme="dark"] .super-admin-main .snap-perm-mark {
    color: #4ade80 !important;
}

html[data-tss-theme="dark"] .super-admin-main .snap-perm-mark.is-inherited {
    color: var(--tss-muted) !important;
}

html[data-tss-theme="dark"] .super-admin-main .perm-cell-yes {
    color: #4ade80 !important;
}

html[data-tss-theme="dark"] .super-admin-main .perm-cell-no {
    color: var(--tss-muted) !important;
}

/* 권한 뱃지 미니 */
html[data-tss-theme="dark"] .super-admin-main .org-user-perm-mini.view-on {
    background: rgba(34, 197, 94, 0.18) !important;
    color: #86efac !important;
}

html[data-tss-theme="dark"] .super-admin-main .org-user-perm-mini.dl-on {
    background: rgba(251, 191, 36, 0.18) !important;
    color: #fcd34d !important;
}

html[data-tss-theme="dark"] .super-admin-main .org-user-perm-mini.manage-on {
    background: rgba(248, 113, 113, 0.18) !important;
    color: #fca5a5 !important;
}

html[data-tss-theme="dark"] .super-admin-main .org-user-perm-mini.none {
    background: var(--tss-surface-muted) !important;
    color: var(--tss-muted) !important;
}

html[data-tss-theme="dark"] .super-admin-main .doc-fm-details-badge {
    background: var(--tss-surface) !important;
    border-color: var(--tss-border) !important;
    color: var(--tss-muted) !important;
}

html[data-tss-theme="dark"] .super-admin-main .doc-fm-details--root .doc-fm-details-icon {
    background: rgba(96, 165, 250, 0.22) !important;
    color: #93c5fd !important;
}

html[data-tss-theme="dark"] .super-admin-main .doc-fm-details-summary:hover {
    background: rgba(96, 165, 250, 0.08) !important;
    color: #93c5fd !important;
}

html[data-tss-theme="dark"] .super-admin-main .doc-fm-empty-icon {
    background: rgba(96, 165, 250, 0.14) !important;
    color: #93c5fd !important;
}

html[data-tss-theme="dark"] .super-admin-main .doc-perm-col-label {
    border-bottom-color: rgba(96, 165, 250, 0.35) !important;
}

html[data-tss-theme="dark"] .super-admin-main .doc-perm-org-col {
    border-right-color: var(--tss-border) !important;
}

@keyframes orgRowFlashDark {
    0%   { background: rgba(251, 191, 36, 0.25); }
    100% { background: transparent; }
}

html[data-tss-theme="dark"] .super-admin-main .org-row-flash {
    animation: orgRowFlashDark 1.6s ease-out;
}

/* 문서함 — 전역 테마와 data-doc-theme 동기화 보조 */
html[data-tss-theme="dark"] .doc-lib {
    --doc-surface: var(--tss-surface);
    --doc-bg: var(--tss-bg);
    --doc-text: var(--tss-text);
    --doc-muted: var(--tss-muted);
    --doc-border: var(--tss-border);
    --doc-accent-soft: rgba(96, 165, 250, 0.14);
    --doc-accent-border: rgba(96, 165, 250, 0.35);
}
