/*
 * 전자우편 관리자 화면 테마 보정
 *
 * 메일 관리 컴포넌트가 과거에 사용하던 여러 변수 이름을 현재 전역
 * 테마 토큰에 연결하고, Radzen/네이티브 입력 요소의 색상을 통일한다.
 */
:root {
    --app-accent: var(--accent);
    --app-active-color: var(--accent);
    --app-bg-color: var(--app-bg);
    --app-border: var(--border);
    --app-muted: var(--muted);
    --app-surface: var(--surface);
    --app-surface-2: var(--surface-2);
    --app-surface-hover: var(--surface-hover);
    --app-text: var(--text);
    --gw-accent: var(--accent-light);
    --gw-active-color: var(--accent);
    --gw-border: var(--border);
    --gw-surface: var(--surface);
    --gw-surface-2: var(--surface-2);
    --gw-text: var(--text);
    --gw-text-muted: var(--muted);
    --surface-card: var(--surface);
    --surface-elevated: var(--surface-2);
    --surface-border: var(--border);
    --surface-ground: var(--surface-2);
    --surface-section: var(--surface-2);
    --text-color-secondary: var(--muted);
    --primary-color: var(--accent);
    --danger-color: var(--danger);
}

/* 카드의 기본 바탕은 각 테마의 surface, 구분 영역은 surface-2를 사용한다. */
:is(
    .search-card,
    .list-card,
    .editor-card,
    .joint-create-card,
    .joint-list-card,
    .joint-note,
    .permission-feedback,
    .permission-toolbar,
    .permission-panel,
    .transport-feedback,
    .user-search-card,
    .transport-card,
    .header-feedback,
    .header-settings-card,
    .signature-feedback,
    .signature-settings-card,
    .hidden-copy-feedback,
    .user-panel,
    .rule-panel,
    .security-feedback,
    .security-settings-card,
    .options-feedback,
    .options-shell
) {
    border-color: var(--border) !important;
    background-color: var(--surface) !important;
    color: var(--text);
}

:is(
    .search-card,
    .category-menu,
    .range-options label,
    .section-title > span,
    .sample-message,
    .preview-body,
    .security-preview > strong,
    .grade-icon,
    .use-toggle,
    .inline-editor > header,
    .account-table-wrap th,
    .permission-table-wrap th,
    .joint-table th
) {
    background-color: var(--surface-2) !important;
    color: var(--text);
}

/* Radzen 스타일 우선순위와 무관하게 네 가지 테마에서 동일한 입력 대비를 보장한다. */
:is(
    .search-card,
    .editor-card,
    .joint-create-card,
    .permission-toolbar,
    .transport-card,
    .user-search-card,
    .header-settings-card,
    .signature-settings-card,
    .hidden-copy-workspace,
    .security-settings-card,
    .options-shell,
    .group-selector
) :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea, .rz-textbox, .rz-textarea, .rz-password, .rz-dropdown) {
    border-color: var(--border) !important;
    background-color: var(--surface-2) !important;
    color: var(--text) !important;
    caret-color: var(--text);
}

:is(
    .search-card,
    .editor-card,
    .joint-create-card,
    .permission-toolbar,
    .transport-card,
    .user-search-card,
    .header-settings-card,
    .signature-settings-card,
    .hidden-copy-workspace,
    .security-settings-card,
    .options-shell,
    .group-selector
) :is(input, textarea)::placeholder {
    color: var(--muted) !important;
    opacity: 1;
}

:is(
    .search-card,
    .editor-card,
    .joint-create-card,
    .permission-toolbar,
    .transport-card,
    .user-search-card,
    .header-settings-card,
    .signature-settings-card,
    .hidden-copy-workspace,
    .security-settings-card,
    .options-shell,
    .group-selector
) :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea, .rz-textbox, .rz-textarea, .rz-password, .rz-dropdown):focus,
:is(.header-settings-card, .signature-settings-card, .permission-toolbar) .rz-dropdown:focus-within {
    border-color: var(--accent) !important;
    background-color: var(--surface) !important;
    box-shadow: 0 0 0 3px var(--accent-soft) !important;
    outline: 0;
}

:is(.list-item, .user-item, .user-row, .grade-list button, .category-menu button, .permission-tree-row) {
    color: var(--text);
}

:is(.list-item, .user-item, .user-row, .grade-list button, .category-menu button, .permission-tree-row):hover {
    background-color: color-mix(in srgb, var(--accent) 12%, var(--surface)) !important;
}

:is(.range-options label.selected, .user-item.selected, .user-row.selected, .grade-list button.selected, .category-menu button.active, .permission-tree-row.selected) {
    border-color: var(--accent) !important;
    background-color: var(--accent-soft) !important;
    color: var(--text) !important;
}

:is(.primary-button, .transport-tabs button.active) {
    background-color: var(--accent) !important;
    color: #fff !important;
}

:is(.secondary-button, .icon-button) {
    border-color: var(--border) !important;
    background-color: var(--surface-2) !important;
    color: var(--text) !important;
}

:is(.admin-page-heading p, .card-heading small, .section-title small, .toolbar-copy small,
    .permission-panel small, .transport-card small, .option-copy small, .category-title small) {
    color: var(--muted) !important;
}

/* 기본/IGS 라이트 테마에서는 선택 상태도 어두운 카드가 되지 않게 유지한다. */
[data-bs-theme="light"] :is(.range-options label.selected, .category-menu button.active),
[data-bs-theme="igs"] :is(.range-options label.selected, .category-menu button.active) {
    background-color: var(--accent-soft) !important;
    color: var(--text) !important;
}

/* Bootstrap은 사용자 정의 igs-dark 이름을 인식하지 않으므로 기본 폼 토큰도 연결한다. */
[data-bs-theme="igs-dark"] {
    --bs-body-color: var(--text);
    --bs-body-bg: var(--app-bg);
    --bs-secondary-bg: var(--surface-2);
    --bs-tertiary-bg: var(--surface-hover);
    --bs-border-color: var(--border);
    --bs-emphasis-color: var(--text);
    --bs-secondary-color: var(--muted);
    --bs-form-control-bg: var(--surface-2);
    --bs-form-control-color: var(--text);
}
