/* Небольшие дополнения поверх Tabler. Тему (светлая/тёмная) задаёт атрибут data-bs-theme на <html>. */

.copy-clipboard .copy-btn {
    cursor: pointer;
}

pre.code-block,
.code-block {
    background: var(--tblr-bg-surface-secondary);
    border: 1px solid var(--tblr-border-color);
    border-radius: var(--tblr-border-radius);
    padding: .75rem 1rem;
    max-height: 28rem;
    overflow: auto;
    font-size: .8125rem;
    white-space: pre-wrap;
    word-break: break-word;
}

.table-responsive .text-truncate-cell {
    max-width: 22rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ---------- Подсветка JSON (в стиле IDE: IntelliJ Light / Darcula) ---------- */
:root,
[data-bs-theme="light"] {
    --json-key: #871094;
    --json-string: #067d17;
    --json-number: #1750eb;
    --json-keyword: #0033b3;
    --json-punct: #4d4d4d;
    --json-bg: #fafafa;
    --json-fg: #1f2328;
    --json-gutter: #e8e8e8;
}

[data-bs-theme="dark"] {
    --json-key: #9876aa;
    --json-string: #6a8759;
    --json-number: #6897bb;
    --json-keyword: #cc7832;
    --json-punct: #a9b7c6;
    --json-bg: #2b2b2b;
    --json-fg: #a9b7c6;
    --json-gutter: #3c3f41;
}

.json-key {
    color: var(--json-key);
}

.json-string {
    color: var(--json-string);
}

.json-number {
    color: var(--json-number);
}

.json-keyword {
    color: var(--json-keyword);
    font-weight: 600;
}

.json-punct {
    color: var(--json-punct);
}

pre.code-block,
.code-block {
    background: var(--json-bg);
    color: var(--json-fg);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "JetBrains Mono", monospace;
    border-color: var(--json-gutter);
}

pre.code-block code,
.code-block code {
    color: inherit;
    background: transparent;
    padding: 0;
    font-size: inherit;
}

/* Редактор JSON: прозрачный textarea поверх подсвеченного слоя */
.json-editor {
    position: relative;
    background: var(--json-bg);
    border: 1px solid var(--json-gutter);
    border-radius: var(--tblr-border-radius);
    overflow: hidden;
    min-height: 160px;
    resize: vertical;
}

.json-editor.is-invalid {
    border-color: var(--tblr-danger);
}

.json-editor.is-valid {
    border-color: var(--tblr-success);
}

.json-editor-highlight,
.json-editor-input {
    margin: 0;
    padding: .75rem 1rem;
    border: 0;
    width: 100%;
    height: 100%;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "JetBrains Mono", monospace;
    font-size: .8125rem;
    line-height: 1.55;
    letter-spacing: 0;
    tab-size: 4;
    white-space: pre;
    overflow: auto;
    word-wrap: normal;
}

.json-editor-highlight {
    position: absolute;
    inset: 0;
    color: var(--json-fg);
    background: transparent;
    pointer-events: none;
    overflow: hidden;
}

.json-editor-highlight code {
    display: block;
    color: inherit;
    background: transparent;
    padding: 0;
    font: inherit;
}

.json-editor-input {
    position: relative;
    display: block;
    resize: none;
    background: transparent !important;
    color: transparent !important;
    caret-color: var(--json-fg);
    box-shadow: none !important;
    outline: none;
}

.json-editor-input::selection {
    background: rgba(66, 153, 225, .35);
    color: transparent;
}

.json-editor-input::placeholder {
    color: var(--tblr-secondary);
}

/* ---------- Читаемость бейджей и ссылок ---------- */
/* Сплошные цветные бейджи заменяем на «мягкие» (светлый текст на полупрозрачном фоне) в обеих темах */
.badge {
    font-weight: 600;
}

[data-bs-theme="dark"] .badge.bg-success,
[data-bs-theme="dark"] .badge.bg-green {
    background: rgba(47, 179, 68, .22) !important;
    color: #7ee08f !important;
}

[data-bs-theme="dark"] .badge.bg-danger,
[data-bs-theme="dark"] .badge.bg-red {
    background: rgba(214, 57, 57, .25) !important;
    color: #ff9b9b !important;
}

[data-bs-theme="dark"] .badge.bg-warning,
[data-bs-theme="dark"] .badge.bg-yellow,
[data-bs-theme="dark"] .badge.bg-orange {
    background: rgba(247, 159, 31, .22) !important;
    color: #ffc766 !important;
}

[data-bs-theme="dark"] .badge.bg-info,
[data-bs-theme="dark"] .badge.bg-azure,
[data-bs-theme="dark"] .badge.bg-cyan {
    background: rgba(70, 170, 230, .22) !important;
    color: #8fd3ff !important;
}

[data-bs-theme="dark"] .badge.bg-primary,
[data-bs-theme="dark"] .badge.bg-blue {
    background: rgba(66, 133, 244, .25) !important;
    color: #a9c8ff !important;
}

[data-bs-theme="dark"] .badge.bg-secondary,
[data-bs-theme="dark"] .badge.bg-dark,
[data-bs-theme="dark"] .badge.bg-surface-secondary {
    background: rgba(160, 170, 185, .2) !important;
    color: #d3d9e2 !important;
}

[data-bs-theme="light"] .badge.bg-success,
[data-bs-theme="light"] .badge.bg-green {
    background: rgba(47, 179, 68, .15) !important;
    color: #1e7a31 !important;
}

[data-bs-theme="light"] .badge.bg-danger,
[data-bs-theme="light"] .badge.bg-red {
    background: rgba(214, 57, 57, .14) !important;
    color: #b02a2a !important;
}

[data-bs-theme="light"] .badge.bg-warning,
[data-bs-theme="light"] .badge.bg-yellow,
[data-bs-theme="light"] .badge.bg-orange {
    background: rgba(247, 159, 31, .2) !important;
    color: #8a5300 !important;
}

[data-bs-theme="light"] .badge.bg-info,
[data-bs-theme="light"] .badge.bg-azure,
[data-bs-theme="light"] .badge.bg-cyan {
    background: rgba(70, 170, 230, .18) !important;
    color: #0b5f8f !important;
}

[data-bs-theme="light"] .badge.bg-primary,
[data-bs-theme="light"] .badge.bg-blue {
    background: rgba(32, 107, 196, .14) !important;
    color: #174f94 !important;
}

[data-bs-theme="light"] .badge.bg-secondary,
[data-bs-theme="light"] .badge.bg-dark,
[data-bs-theme="light"] .badge.bg-surface-secondary {
    background: rgba(98, 105, 118, .14) !important;
    color: #3d4350 !important;
}

/* Ссылки и «синие» тексты в тёмной теме: более светлый оттенок для контраста с тёмным фоном */
[data-bs-theme="dark"] {
    --tblr-link-color: #7db8ff;
    --tblr-link-color-rgb: 125, 184, 255;
    --tblr-link-hover-color: #a9d0ff;
    --tblr-link-hover-color-rgb: 169, 208, 255;
}

[data-bs-theme="dark"] a:not(.btn):not(.nav-link):not(.dropdown-item):not(.page-link):not(.list-group-item):not(.navbar-brand a) {
    color: var(--tblr-link-color);
}

[data-bs-theme="dark"] a:not(.btn):not(.nav-link):not(.dropdown-item):not(.page-link):not(.list-group-item):hover {
    color: var(--tblr-link-hover-color);
}

[data-bs-theme="dark"] .text-primary,
[data-bs-theme="dark"] .text-blue {
    color: #7db8ff !important;
}

[data-bs-theme="dark"] .text-info,
[data-bs-theme="dark"] .text-azure {
    color: #8fd3ff !important;
}

[data-bs-theme="dark"] .btn-outline-primary {
    --tblr-btn-color: #7db8ff;
    --tblr-btn-border-color: #7db8ff;
}

[data-bs-theme="dark"] .btn-outline-info {
    --tblr-btn-color: #8fd3ff;
    --tblr-btn-border-color: #8fd3ff;
}

[data-bs-theme="dark"] .btn-outline-success {
    --tblr-btn-color: #7ee08f;
    --tblr-btn-border-color: #7ee08f;
}

[data-bs-theme="dark"] .btn-outline-danger {
    --tblr-btn-color: #ff9b9b;
    --tblr-btn-border-color: #ff9b9b;
}

[data-bs-theme="dark"] .btn-outline-warning {
    --tblr-btn-color: #ffc766;
    --tblr-btn-border-color: #ffc766;
}

[data-bs-theme="dark"] .btn-outline-primary:hover,
[data-bs-theme="dark"] .btn-outline-info:hover,
[data-bs-theme="dark"] .btn-outline-success:hover,
[data-bs-theme="dark"] .btn-outline-danger:hover,
[data-bs-theme="dark"] .btn-outline-warning:hover {
    color: #0f1722;
}

/* Выпадающий список поиска приложений: непрозрачный фон и рамка в обеих темах */
[data-mobile-cathouse-app-picker-target="results"] {
    --tblr-list-group-bg: var(--tblr-bg-surface);
    background-color: var(--tblr-bg-surface);
    border: 1px solid var(--tblr-border-color);
    border-radius: var(--tblr-border-radius);
    box-shadow: 0 .5rem 1.5rem rgba(0, 0, 0, .35);
}

[data-mobile-cathouse-app-picker-target="results"] .list-group-item {
    background-color: var(--tblr-bg-surface);
    color: var(--tblr-body-color);
}

[data-mobile-cathouse-app-picker-target="results"] .list-group-item:hover,
[data-mobile-cathouse-app-picker-target="results"] .list-group-item:focus,
[data-mobile-cathouse-app-picker-target="results"] .list-group-item.active {
    background-color: var(--tblr-bg-surface-secondary);
    color: var(--tblr-body-color);
}

[data-mobile-cathouse-app-picker-target="results"] .list-group-item.active {
    background-color: var(--tblr-primary-lt, var(--tblr-bg-surface-secondary));
    border-color: var(--tblr-border-color);
}
