/* Удаление дубликатов — AdminLTE 4 / BS5 */

.cabinet-duplicates-page {
    --cabinet-dup-card-radius: 0.5rem;
}

.cabinet-duplicates-page .cabinet-dup-text-shell {
    position: relative;
    min-width: 0;
}

.cabinet-duplicates-page .cabinet-dup-highlight {
    display: none;
    position: absolute;
    inset: 0;
    z-index: 0;
    margin: 0;
    overflow: hidden;
    pointer-events: none;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    word-break: break-word;
    box-sizing: border-box;
    font-family: var(--bs-font-monospace);
    font-size: 0.875rem;
    line-height: 1.45;
    color: var(--bs-body-color);
    background: var(--bs-body-bg);
    border-radius: var(--bs-border-radius, 0.375rem);
}

.cabinet-duplicates-page .cabinet-dup-hl-line {
    display: block;
    min-height: 1.45em;
    border-radius: 0.15rem;
}

.cabinet-duplicates-page .cabinet-dup-hl-line--kept {
    background: rgba(25, 135, 84, 0.12);
}

.cabinet-duplicates-page .cabinet-dup-hl-line--auto {
    background: rgba(25, 135, 84, 0.28);
}

.cabinet-duplicates-page .cabinet-dup-hl-line--manual {
    background: rgba(253, 126, 20, 0.28);
}

.cabinet-duplicates-page .cabinet-dup-text-shell--lit .cabinet-dup-highlight {
    display: block;
}

.cabinet-duplicates-page .cabinet-dup-text-shell--lit .cabinet-dup-textarea {
    position: relative;
    z-index: 1;
    background-color: transparent;
    color: transparent;
    caret-color: var(--bs-body-color);
}

.cabinet-duplicates-page .cabinet-dup-text-shell--lit .cabinet-dup-textarea::selection {
    background: rgba(13, 110, 253, 0.28);
    color: transparent;
}

.cabinet-duplicates-page .cabinet-dup-text-shell--pulse {
    animation: cabinet-dup-pulse-green 1.1s ease;
}

.cabinet-duplicates-page .cabinet-dup-text-shell--manual {
    box-shadow: 0 0 0 2px rgba(253, 126, 20, 0.45);
    border-radius: var(--bs-border-radius, 0.375rem);
}

@keyframes cabinet-dup-pulse-green {
    0% {
        box-shadow: 0 0 0 0 rgba(25, 135, 84, 0.55);
    }
    55% {
        box-shadow: 0 0 0 6px rgba(25, 135, 84, 0.12);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(25, 135, 84, 0);
    }
}

.cabinet-duplicates-page .cabinet-dup-edit-status {
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1.2;
    padding: 0.2rem 0.5rem;
    border-radius: 999px;
    white-space: nowrap;
}

.cabinet-duplicates-page .cabinet-dup-edit-status--auto {
    color: #0f5132;
    background: rgba(25, 135, 84, 0.16);
}

.cabinet-duplicates-page .cabinet-dup-edit-status--manual {
    color: #984c0c;
    background: rgba(253, 126, 20, 0.2);
}

.cabinet-duplicates-page .cabinet-dup-textarea {
    min-height: 12rem;
    resize: vertical;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    font-family: var(--bs-font-monospace);
    font-size: 0.875rem;
    line-height: 1.45;
}

.cabinet-duplicates-page .cabinet-dup-textarea--readonly {
    background-color: var(--bs-secondary-bg);
    cursor: default;
}

.cabinet-duplicates-page .cabinet-dup-options-card {
    border-radius: var(--cabinet-dup-card-radius);
}

.cabinet-duplicates-page .cabinet-dup-options-card .form-check {
    margin-bottom: 0.65rem;
}

.cabinet-duplicates-page .cabinet-dup-options-card .form-check-label {
    line-height: 1.35;
    cursor: pointer;
}

.cabinet-duplicates-page .cabinet-dup-tip {
    font-size: 0.8rem;
    cursor: help;
    vertical-align: 0.1em;
}

.cabinet-duplicates-page .cabinet-dup-char-field {
    margin-left: 1.65rem;
    margin-bottom: 0.75rem;
    max-width: 22rem;
}

.cabinet-duplicates-page .cabinet-dup-char-field.is-disabled {
    opacity: 0.55;
}

.cabinet-duplicates-page .cabinet-dup-kpi .info-box {
    min-height: 5.25rem;
    margin-bottom: 0;
}

.cabinet-duplicates-page .cabinet-dup-kpi .info-box-number {
    font-size: 1.5rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.cabinet-duplicates-page .cabinet-dup-kpi.is-empty .info-box-number {
    color: var(--bs-secondary-color);
}

.cabinet-duplicates-page .cabinet-dup-actions {
    gap: 0.5rem;
}

.cabinet-duplicates-page .cabinet-dup-line-badge {
    font-variant-numeric: tabular-nums;
}

.cabinet-duplicates-page .cabinet-dup-hint,
.cabinet-duplicates-page .cabinet-dup-drop-hint {
    font-size: 0.875rem;
}

.cabinet-duplicates-page .cabinet-dup-presets .btn-group {
    gap: 0.25rem;
}

.cabinet-duplicates-page .cabinet-dup-editor {
    border-radius: var(--cabinet-dup-card-radius);
    min-width: 0;
    transition: box-shadow 0.15s ease, border-color 0.15s ease;
}

.cabinet-duplicates-page .cabinet-dup-editor.cabinet-dup-dropzone--active {
    box-shadow: inset 0 0 0 2px var(--bs-primary);
    background: rgba(var(--bs-primary-rgb), 0.04);
}

.cabinet-duplicates-page .cabinet-dup-compare-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
    min-width: 0;
}

@media (min-width: 992px) {
    .cabinet-duplicates-page .cabinet-dup-compare-grid {
        grid-template-columns: 1fr 1fr;
        gap: 1.25rem;
        align-items: stretch;
    }
}

.cabinet-duplicates-page .cabinet-dup-pane {
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.cabinet-duplicates-page .cabinet-dup-pane .cabinet-dup-textarea,
.cabinet-duplicates-page .cabinet-dup-pane .cabinet-dup-text-shell {
    flex: 1 1 auto;
}

.cabinet-duplicates-page .cabinet-dup-pane--source .cabinet-dup-textarea {
    background-color: var(--bs-secondary-bg);
    color: var(--bs-secondary-color);
}

.cabinet-duplicates-page .cabinet-dup-pane--source .cabinet-dup-textarea:focus {
    color: var(--bs-body-color);
    background-color: var(--bs-body-bg);
}

.cabinet-duplicates-page .cabinet-dup-pane--result .cabinet-dup-textarea {
    border-color: rgba(var(--bs-primary-rgb), 0.35);
}

.cabinet-duplicates-page .cabinet-dup-step-title {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    font-weight: 600;
    margin-bottom: 1rem;
    color: var(--bs-emphasis-color);
}

.cabinet-duplicates-page .cabinet-dup-step-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 50%;
    background: var(--bs-primary);
    color: #fff;
    font-size: 0.875rem;
    font-weight: 700;
    flex-shrink: 0;
}

.cabinet-duplicates-page .cabinet-dup-step + .cabinet-dup-step {
    padding-top: 0.25rem;
}

@media (max-width: 991.98px) {
    .cabinet-duplicates-page .cabinet-dup-kpi .info-box-number {
        font-size: 1.25rem;
    }
}
